Remember that in clustered enviroment you must think about the way both nodes see the changes. Both nodes must be informed about changes in shared VGs to prevent paritioning of a cluster and data inconsistency. First let's do some checks and collect data. I need to increase a clustered filesystem /globalPER
# df
Filesystem 512-blocks Free %Used Iused %Iused Mounted on
...
/dev/lv_contrm 1048576 450288 58% 1744 4% /controlm
/dev/lv_contrm610 4194304 2136536 50% 3149 2% /controlm610
/dev/lvglobalPER 90701824 9456672 90% 284364 21% /globalPER
...
Note i want to record the size in 512-byte blocks.
# lsvg
rootvg
hbvg
vgsapr3per
# lsvg -l vgsapr3per
vgsapr3per:
LV NAME TYPE LPs PPs PVs LV STATE MOUNT POINT
lvglobalPER jfs2 173 346 10 open/syncd /globalPER
...
# lsvg vgsapr3per
VOLUME GROUP: vgsapr3per VG IDENTIFIER: 00cbd98e00004c000000010437205038
VG STATE: active PP SIZE: 256 megabyte(s)
VG PERMISSION: read/write TOTAL PPs: 3380 (865280 megabytes)
MAX LVs: 256 FREE PPs: 420 (107520 megabytes)
...
We can see, the LV is mirrored and there are enough free PPs in VG. So far so good.
# lsvg -p vgsapr3per
vgsapr3per:
PV_NAME PV STATE TOTAL PPs FREE PPs FREE DISTRIBUTION
...
vpath9 active 260 0 00..00..00..00..00
vpath10 active 130 0 00..00..00..00..00
vpath12 active 260 0 00..00..00..00..00
vpath11 active 260 0 00..00..00..00..00
vpath13 active 260 210 52..02..52..52..52
vpath14 active 260 210 52..02..52..52..52
Only vpath13 and vpath14 have free PPs, so we will use only these two but don't forget to check with datapath command if they're mirrored over different datacenters to keep redundancy.
# datapath query device | egrep -p "vpath13 | vpath14"
DEV#: 13 DEVICE NAME: vpath13 TYPE: 2105800 POLICY: Optimized
SERIAL: 50224568
===========================================================================
Path# Adapter/Hard Disk State Mode Select Errors
0 fscsi0/hdisk54 OPEN NORMAL 22476 0
1 fscsi0/hdisk55 OPEN NORMAL 22394 0
2 fscsi1/hdisk58 OPEN NORMAL 22394 0
3 fscsi1/hdisk59 OPEN NORMAL 22564 0
DEV#: 14 DEVICE NAME: vpath14 TYPE: 2105800 POLICY: Optimized
SERIAL: 50218370
===========================================================================
Path# Adapter/Hard Disk State Mode Select Errors
0 fscsi0/hdisk56 OPEN NORMAL 22453 0
1 fscsi0/hdisk57 OPEN NORMAL 22233 0
2 fscsi1/hdisk60 OPEN NORMAL 22377 0
3 fscsi1/hdisk61 OPEN NORMAL 22767 0
Ok, last 5 numbers show these disks are stored in different boxes, so we are sure it will be spread to different places. Let's head to smitty hacmp. System Management (C-SPOC) > HACMP Logical Volume Management > Shared Logical Volumes > Set Characteristics of a Shared Logical Volume > Increase the Size of a Shared Logical Volume. In the popup menu select the correct LV, in our case it's lvglobalPER. In next menu select correct vpaths (vpath13, vpath14). In the next menu the only thing you need to put in are the additional LPs.
Increase the Size of a Shared Logical Volume
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
Resource Group Name sap_prod_PER
LOGICAL VOLUME name lvglobalPER
Reference node pesappc1
* Number of ADDITIONAL logical partitions [8] #
PHYSICAL VOLUME names vpath13 vpath14
POSITION on physical volume outer_middle +
RANGE of physical volumes minimum +
MAXIMUM NUMBER of PHYSICAL VOLUMES [] #
to use for allocation
Allocate each logical partition copy yes +
on a SEPARATE physical volume?
File containing ALLOCATION MAP []
I needed to increase by 2GB, PP size is 256MB so 8 LPs are just the right number. Confirm the selection and let's move on. In the HACMP Logical Volume Management menu choose Shared File Systems then ours is Enhanced Journaled File Systems > Change / Show Characteristics of a Shared Enhanced Journaled File System, in the popup menu choose the correct FS, we have /globalPER.
Change/Show Characteristics of a Shared Enhanced Journaled File System
Type or select values in entry fields.
Press Enter AFTER making all desired changes.
[Entry Fields]
Resource Group Name sap_prod_PER
File system name /globalPER
NEW mount point [/globalPER]
SIZE of file system [94896128]
Mount GROUP [per]
PERMISSIONS read/write +
Mount OPTIONS [] +
Start Disk Accounting? no +
Block Size (bytes) 4096
Inline Log? no
Inline Log size (MBytes) 0
Remember the 512-byte blocks? Here you see them, so if you added 2GB it's 2 GB x 1024 MB x1024 kB x 2 (512 byte blocks) = 4194304 additional. Add this to the previous value and you have the NEW size of the FS after increase. Confirm and voila, that's it!