Leaving unallocated space on your celldisks instead of consuming 100% of it during initial griddisk creation is a standard Exadata best practice. It gives you an infrastructure safety net and operational flexibility.
Here are the primary benefits of leaving that space behind and exactly how you can use it later:
1. The Core Benefits of Leaving Headroom
Emergency Overhead for Rebalancing: If a physical disk or an entire storage cell fails, ASM immediately shifts into survival mode. It copies the missing mirrored data blocks from the failed node onto the remaining healthy drives to restore full 3-way HIGH redundancy. Having empty space already sitting at the block layer gives the storage cluster immediate, unconstrained room to execute this emergency rebalance without running out of space.
Avoiding "Disk Full" Lockups: If an ASM disk group fills up completely to 100%, the entire database freezes. Leaving unallocated space at the griddisk layer means you have an emergency reservoir of raw space hidden below the ASM layer that you can tap into within minutes to rescue a hung database.
Workspace for Flash/Cell Diagnostics: The Exadata operating system uses unallocated areas for core dumps, cell internal tracing, and software upgrade image staging without encroaching on database data files.
2. How That Space Can Be Used Later
If your business needs change six months down the line, that unallocated space can be put to work in two ways:
Scenario A: Dynamically Extending Your Existing Disk Groups
If your +DATA01 disk group is running out of space, you don't need to purchase new hardware. You can create new, small "extension" griddisks out of that unallocated pool and add them straight to the existing group.
https://www.pythian.com/blog/how-to-resize-exadata-grid-disks-without-an-outage
as per this exmaple
https://www.pythian.com/blog/how-to-resize-exadata-grid-disks-without-an-outage , as per this blog why only diskgrourp resize needed for DATA ? but not for RECO ?
As soon as that happens, Oracle ASM immediately detects that the underlying OS-level devices have shrunk. In modern Grid Infrastructure versions, ASM automatically adjusts its internal metadata for the RECO diskgroup to match the new, smaller size. If you look closely at the blog's output after the cellcli shrink but before any ASM command is run, v$asm_diskgroup already shows RECO dropped from 8,877 GB down to 2,100 GB.
Because ASM self-adjusts downwards when the storage layer shrinks, running an explicit ALTER DISKGROUP RECO RESIZE ALL is redundant.
When you expand DATA via cellcli, the underlying griddisks grow physically, creating new free sectors. However, ASM will never automatically consume newly available space on its own.
The Risk: If you ever try to shrink
RECOat thecellclilayer when it doesn't have enough free space, or if the data blocks inside ASM are sitting at the end of the disks,cellcliwill fail or you will risk corrupting the diskgroup because you are cutting off the disk where data blocks live.
If you were doing this in a tight production environment, the safest, most robust sequence is actually to do the reverse of the automatic behavior:
Shrink ASM First: Run
ALTER DISKGROUP RECO RESIZE ALL SIZE 25G;to force ASM to safely rebalance and evacuate all data blocks out of the tail end of the disks.Shrink Cell Second: Run
cellclito shrink theRECOgriddisks.Expand Cell Third: Run
cellclito expand theDATAgriddisks.Expand ASM Last: Run
ALTER DISKGROUP DATA RESIZE ALL;to make ASM claim the new space.
Minimum DG size (MB) = ( USED_MB + GROWTH_MB ) * 1.15