This is quick and dirty. I hope to get a more polished write-up of what it means and how it works, but since I’m so busy right now I don’t know if I’ll get to it soon. In the meantime someone just might find this useful or informative so I’m just going to put it out there as it is.
This is an worked-through example of how ASM reports free space, taking into consideration “hot spare capacity” that is reserved to restore redundancy after the largest failure group dies.
ASM has 46 local disks attached to 6 controllers - two controllers have 6 disks, other four have 8 - ASM has failure groups by controller =========================================================================== Each disk is partitioned. Get the size of the ASM partition according to the Linux kernel. All partitions are the same size. # sfdisk -s /dev/sdav1 401624968 Now get the size info from ASM. ASMCMD> lsdg State Type Rebal Sector Block AU Total_MB Free_MB MOUNTED NORMAL N 512 4096 1048576 18041706 18041326 Req_mir_free_MB Usable_file_MB Offline_disks Name 3137688 7451819 0 DATA01/ =========================================================================== -- size of individual disk in MB is kernel-reported KB divided by 1024 401624968 /1024 = 392211.8828125 M -- ASM can't use partial AU's so truncate and we get Total_MB 392211 * 46 = 18041706 -- largest failure group [controller] has 8 disks so get Req_mir_free_MB (amount of "hot spare" capacity that is reserved to restore redundancy after a controller failure) 392211 * 8 = 3137688 -- asm reports that some space is used; use "Free_MB" to see total free space = 18041326 -- with normal-mirroring, usable space is (totalfree-spare)/2 (18041326 - 3137688) / 2 = 7451819