Cannot grow jfs file system on AIX 5.2

Hello all,
I'm trying to grow a file system by 500MB using SMIT on AIX 5.2 but I receive this error:

"0516-404 allocp: This system cannot fulfill the allocation request.
There are not enough free partitions or not enough physical volumes
to keep strictness and satisfy allocation requests. The command
should be retried with different allocation characteristics."

The file system I need to grow is /usr. It is a JFS file system - not JFS2. It resides on volume group rootvg. I verified this with the following command:

(I excluded all the other output, assuming it's irrelevant)

# lsvg -l rootvg
rootvg:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
hd2 jfs 276 552 2 open/syncd /usr

I verified there is at least 500MB free on the volume group with the command below (there's 700MB free):

# lsvg rootvg
VOLUME GROUP: rootvg VG IDENTIFIER: 0001770a00004c00000001100eb4b862
VG STATE: active PP SIZE: 32 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 1218 (38976 megabytes)
MAX LVs: 256 FREE PPs: 22 (704 megabytes)
LVs: 13 USED PPs: 1196 (38272 megabytes)
OPEN LVs: 12 QUORUM: 1
TOTAL PVs: 3 VG DESCRIPTORS: 3
STALE PVs: 0 STALE PPs: 0
ACTIVE PVs: 3 AUTO ON: yes
MAX PPs per PV: 1016 MAX PVs: 32
LTG size: 128 kilobyte(s) AUTO SYNC: no
HOT SPARE: no BB POLICY: relocatable

Does anyone know why I'm receiving this error? Can you grow JFS file sytems or do they need to be JFS2? Any advice is greatly appreciated.

What in particular is unclear with this message?

Your LV is mirrored. LVM is a great tool but it cannot cut 2 times 512 MB (i.e. 1024MB) out of the 704 MB that are available.

Hi shockneck,

Thanks for the advice. I wasn't aware this is a mirrored LV. How did you determine that with the output I supplied?

Also, after seeing your reply, I tried increasing the file system by 256MB instead of 512MB but I still received the same message. Is there any trick to adding space to a file system on a mirrored logical volume? Please help. I was recently made the AIX guy at work and all of my background is Windows and NetWare. I asked to be sent to training but, of course, it's not in the budget. :frowning:

Thank you

The good news here is: AIX is a UNIX that is very nice to administrate even for beginners because of the System Managment Interface Tool SMIT. Nonetheless you might hint to your boss that you cannot take responsibility for a production server without proper education.

The mirroring is visible by the number of Logical Partitions LP in relation to the number of Physical Partitions PP. There are twice as much PP as LP and thus you know the Logical Volume LV consists of two mirror copies. This is transparent for the application which sees just the LP.
As to the second allocation problem. Whenever you get problems with the allocation it is a good idea to look into the LVs configuration.
# lslv <yourlv>
and into what the Volume Group's disks look like. Allocation problems usually result from the LV configuration requireing a distribution of the data that cannot be fullfilled with the diskspace available. You can then either change the LV's configuration or make the diskspace fit (by adding disks or migrating data). Most of this work can be done online.

A mirror makes sense only when the PPs are placed on different disks. While you could place two copies on one disk the default is to force using different disks. This is likely to be the case with your /usr filesystem. However from the lsvg output it is not clear whether there is the same number of free PP on any rootvg disk. So after checking the LV you need to find out where you could possibly place the data. There are several commands to accomplish this but for now you might use
# lspv <rootvgdisk1>
# lspv <rootvgdisk2>
to find out how many PP are free on your rootvg disks. If every rootvg LV is mirrored evenly there should be 11 PP free on every disk because there are 22 PP free altogether in the VG. However, as there is another alloc Problem the PP might be distributed unevenly among the disks. So the trick here is to extend the /usr filesystem just by the minimum number of PP that are free on every rootvg disk. E.g. should there be 6 PP free on hdisk0 and 16 PP on hdisk1 you extend your /usr FS by 6*32M.

In case there are no free PP on one disk at all or not enough PP it is possible with AIX to move PP from one disk to the other online. In that case come back and post the output of lsvg -l rootvg.

HTH