ACFS-03008: The volume could not be resized

I’ve created a ACFS file system which is based on a ADVM.  Initial size of the volume is 500M.

SQL> alter diskgroup datadg add volume datavol1 size 500M
/
Diskgroup altered.

Next I did the mkfs

# mkfs -t acfs -b 8k /dev/asm/datavol1-316
mkfs.acfs: version                   = 11.2.0.2.0
mkfs.acfs: on-disk version           = 39.0
mkfs.acfs: volume                    = /dev/asm/datavol1-316
mkfs.acfs: volume size               = 536870912
mkfs.acfs: Format complete.

Finally mounted the filesystem

# mount -t acfs /dev/asm/datavol1-316 /data

# df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/asm/datavol1-316   524288     38152    486136   8% /data

Now I want to dynamically increase the size of the ACFS (This will also increase the size of the ADVM i.e. no need to first change the volume size)

# acfsutil size +100M /data
acfsutil size: new file system size: 805306368 (768MB)
# acfsutil size +100M /data
acfsutil size: new file system size: 1073741824 (1024MB)
# acfsutil size +100M /data
acfsutil size: new file system size: 1342177280 (1280MB)
# acfsutil size +100M /data
acfsutil size: new file system size: 1610612736 (1536MB)

After increasing the size, for 4 times I could not extend it further (I have enough space in my ASM DG)

# acfsutil size +100M /data
acfsutil size: ACFS-03008: The volume could not be resized.  
Either the volume expansion's limit has been reached or ASM could 
not expand the storage.

This error is caused by file system’s internal storage bitmap has a five extent limit. Growing the file system may fail if it has already been grown four or more times, using up all available storage bitmap extents.

So to fix this problem, we need to run the fsck on the volume

Unmount the file system from all cluster nodes

# umount /data
# fsck -a -v -y -t acfs /dev/asm/datavol1-316
fsck 1.39 (29-May-2006)
version                   = 11.2.0.2.0
fsck.acfs: temporary directory '/usr/tmp'
fsck.acfs: current directory '/root'
*****************************
********** Pass: 1 **********
*****************************
fsck.acfs: file system check starting for volume: /dev/asm/datavol1-316
fsck.acfs: metadata read at disk offset: 65536 (0x10000)  size: 
512 (0x200)  bytes
Oracle ASM Cluster File System (ACFS) On-Disk Structure Version: 39.0
Volume indicates the on-disk version is 39.0
fsck.acfs: metadata read at disk offset: 67108864 (0x4000000)  
size: 512 (0x200)  bytes
Volume indicates the on-disk version is 39.0
ACFS file system created at: Thu Feb  3 19:59:26 2011
fsck.acfs: metadata read at disk offset: 72192 (0x11a00)  
size: 512 (0x200)  bytes
..............................
..............................
..............................
..............................
fsck.acfs: ACFS-07729: The Global_Bitmap file has been  consolidated 
into 2 extents. This may allow for file system expansion via the 
'acfsutil size' command.
..............................
..............................
..............................
..............................
Checker completed with no errors.

Now I can use the acfsutil size command 3 more time (it fails with same error after that)

# acfsutil size +100M /data
acfsutil size: new file system size: 2684354560 (2560MB)
# acfsutil size +100M /data
acfsutil size: new file system size: 2952790016 (2816MB)
# acfsutil size +100M /data
acfsutil size: new file system size: 3221225472 (3072MB)
# acfsutil size +100M /data
acfsutil size: ACFS-03008: The volume could not be resized.  
Either the volume expansion's limit has been reached or ASM could not 
expand the storage.

It’s a question of how many/how frequently we increase the size of the file system. 

Although increasing the file system size is an online operation, fsck will require some downtime.

Advertisements
This entry was posted in ACFS, ADVM, Oracle Automatic Storage Management and tagged . Bookmark the permalink.

2 Responses to ACFS-03008: The volume could not be resized

  1. saleem says:

    How a 100M in command line extends 256M?

    • The size value is rounded up based on the block size of the file system and the allocation unit of the Oracle ASM volume device file (defaulted is 256M).

      You can verify that from V$ASM_VOLUME-RESIZE_UNIT_MB

      OR

      volinfo -G DiskgroupName VolumeName

      Look for “Resize Unit (MB)” in output.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s