For ASM rebalancing good commands always come handy. This one shows current ASM disks with group info and mount status with very well formed way.
column path format a20
set lines 132
set pages 50
select path, group_number group_#, disk_number disk_#, mount_status,
header_status, state, total_mb, free_mb
from v$asm_disk
order by group_number;
The next one does good formatting for showing disks in failgroup and diskgroup
SET ECHO OFF
SET FEEDBACK 6
SET HEADING ON
SET LINESIZE 180
SET PAGESIZE 50000
SET TERMOUT ON
SET TIMING OFF
SET TRIMOUT ON
SET TRIMSPOOL ON
SET VERIFY OFF
CLEAR COLUMNS
CLEAR BREAKS
CLEAR COMPUTES
COLUMN disk_group_name FORMAT a25 HEAD 'Disk Group Name'
COLUMN disk_file_path FORMAT a20 HEAD 'Path'
COLUMN disk_file_name FORMAT a20 HEAD 'File Name'
COLUMN disk_file_fail_group FORMAT a20 HEAD 'Fail Group'
SELECT
NVL(a.name, '[CANDIDATE]') disk_group_name
, b.path disk_file_path
, b.name disk_file_name
, b.failgroup disk_file_fail_group
FROM
v$asm_diskgroup a RIGHT OUTER JOIN v$asm_disk b USING (group_number)
ORDER BY
a.name
/
Adding and removing normal disks from diskgroup
alter diskgroup DISKDG add disk 'NEWDISK' rebalance power 11;
alter diskgroup DISKDG drop disk 'OLDDISK' rebalance power 11;
Adding and removing several disks from diskgroup
alter diskgroup DISKDG add disk 'ORCL:NEWDISK', 'ORCL:NEWDISK2' rebalance power 11;
alter diskgroup DISKDG drop disk 'OLDDISK', 'OLDIDSK2' rebalance power 11;
Adding disks into failgroup
ALTER DISKGROUP FAILDISKDG ADD
FAILGROUP FAILONE DISK 'ORCL:NEWDISK3', 'ORCL:NEWDISK4'
FAILGROUP FAILTWO DISK 'ORCL:NEWDISK5', 'ORCL:NEWDISK6'
REBALANCE POWER 11;
Checking status of ASM rebalance (remember to check ASM alert log, this will only give estimate of rebalancing)
SELECT group_number, operation, state, power, est_minutes FROM v$asm_operation;