LVM and VxVM

Vxvm - increasing a striped volume

 
S.Rider
Regular Advisor

Vxvm - increasing a striped volume

HPUX 11.11 - Veritas Volume Manager 4.1
I have a volume that was created a while ago - ~200gb in size striped across 40 disks of 5gb each. It's the only lvol in that vg.
It was created with "layout=stripe stripe_stripeunit=4m".
Now they need it increased by 100gb.
Do I need another 40 disks to do the increase, or can I stripe the expansion across 4 or 20 or whatever-number-I-want disks ?
Ride Boldly Ride, but watch out for El Dorado's
2 REPLIES 2
VK2COT
Honored Contributor

Re: Vxvm - increasing a striped volume

Hello,

VxVM is very powerful.

Do not fear, there is an easy solution.

Here are more details as a convenient
reference:

http://docs.hp.com/en/B7961-90025/ch08s23.html

There are many more URLs with information
on vxassist(1).

In your specific case, something like this should work (I am not at my workplace so I cannot test it immediately). I am actually
teaching HP-UX 11.31 this week so I am at
the customer's site.

For example, if you want to add five disks
to a 40-disk stripe:

# vxassist -b -g relayout layout=stripe ncol=+5 stripeunit=4m

If you are using EMC SAN for your disks,
you might need to add flag "-o"...

Cheers,

VK2COT
VK2COT - Dusan Baljevic
chris huys_4
Honored Contributor

Re: Vxvm - increasing a striped volume

Hi S.,

If you have 40 luns of 5Gbyte. And you want to extend the volume with another 200Gbyte and would like to use all of the diskspace of that extra 200Gbyte and continue to use the current "striping policy" then yes, you will need to add the 200Gbyte of diskspace as 40 (new) luns of 5gbyte.

And then use the vxassist relayout command to go from 40 to 80 "stripes". Followed by the fsadm command to online extend the filesystem , if there would be any filesystem ontop of the volume.

If you would extend the diskgroup/vxvm volume, with 2 luns of 100Gbyte, then the "striping policy" would be able to only use the first 5Gbyte of the 2 extra luns.

See also beneath example.

Greetz,
Chris

1. create a diskgroup with 2 "small" luns


gsesrv8 # vxdg init sdg selarch11=c20t10d2 selarch12=c20t10d3

gsesrv8 # vxdisk -g sdg list
DEVICE TYPE DISK GROUP STATUS
c20t10d2 auto:cdsdisk selarch11 sdg online
c20t10d3 auto:cdsdisk selarch12 sdg online

Diskgroup sdg is created which contains vxvm luns selarch11 and selarch12.

2. create a 2way 1gbyte striped volume with stripesize of 256k

gsesrv8 # vxassist -g sdg make svol 1g layout=striped stripe_width=256k \
nstripe=2 alloc=selarch11, selarch12

dg sdg default default 30000 1208180746.172.gsesrv8

dm selarch11 c20t10d2 auto 1024 7208928 -
dm selarch12 c20t10d3 auto 1024 7208928 -

v svol - ENABLED ACTIVE 1048576 SELECT svol-01 fsgen

pl svol-01 svol ENABLED ACTIVE 1048576 STRIPE 2/256 RW
sd selarch11-01 svol-01 selarch11 0 524288 0/0 c20t10d2 ENA
sd selarch12-01 svol-01 selarch12 0 524288 1/0 c20t10d3 ENA


The 1 Gbyte, VxVM volume svol is created. The volume is striped over the 7.2Gbyte luns, selarch11 and selarch12, taking
from each lun 512Mbyte.


3. add a 3th "bigger" lun to the diskgroup

gsesrv8 # vxdg -g sdg adddisk selarch15=c20t15d0

gsesrv8 # vxdisk -g sdg list
DEVICE TYPE DISK GROUP STATUS
c20t10d2 auto:cdsdisk selarch11 sdg online
c20t10d3 auto:cdsdisk selarch12 sdg online
c20t15d0 auto:cdsdisk selarch15 sdg online

gsesrv8 # vxprint -ht -g sdg
[..]

dg sdg default default 30000 1208180746.172.gsesrv8

dm selarch11 c20t10d2 auto 1024 7208928 -
dm selarch12 c20t10d3 auto 1024 7208928 -
dm selarch15 c20t15d0 auto 1024 20469888 -

v svol - ENABLED ACTIVE 1048576 SELECT svol-01 fsgen

pl svol-01 svol ENABLED ACTIVE 1048576 STRIPE 2/256 RW
sd selarch11-01 svol-01 selarch11 0 524288 0/0 c20t10d2 ENA
sd selarch12-01 svol-01 selarch12 0 524288 1/0 c20t10d3 ENA

3th "bigger", i.e. 20Gbyte, lun selarch15 was added to the sdg diskgroup

4. "relayout" the 1Gbyte lun over the now 3 luns.

gsesrv8 # vxassist -g sdg relayout svol nstripe=3 alloc=selarch11,selarch12,selarch13

5. watch "time go buy" with vxtask list ;)

gsesrv8 # vxtask list
TASKID PTID TYPE/STATE PCT PROGRESS
169 RELAYOUT/R 02.62% 0/2097152/55040 RELAYOUT svol sdg

gsesrv8 # date;vxtask list
Mon Apr 14 15:54:58 METDST 2008
TASKID PTID TYPE/STATE PCT PROGRESS
169 RELAYOUT/R 54.05% 0/2097152/1133568 RELAYOUT svol sdg

gsesrv8 # date;vxtask list
Mon Apr 14 15:55:05 METDST 2008
TASKID PTID TYPE/STATE PCT PROGRESS
169 RELAYOUT/R 63.42% 0/2097152/1329920 RELAYOUT svol sdg

gsesrv8 # date;vxtask list
Mon Apr 14 15:55:26 METDST 2008
TASKID PTID TYPE/STATE PCT PROGRESS
169 RELAYOUT/R 92.87% 0/2097152/1947648 RELAYOUT svol sdg

6. result

gsesrv8 # vxprint -ht -g sdg
[..]

dg sdg default default 30000 1208180746.172.gsesrv8

dm selarch11 c20t10d2 auto 1024 7208928 -
dm selarch12 c20t10d3 auto 1024 7208928 -
dm selarch15 c20t15d0 auto 1024 20469888 -

v svol - ENABLED ACTIVE 1048576 SELECT svol-01 fsgen

pl svol-01 svol ENABLED ACTIVE 1049088 STRIPE 3/256 RW
sd selarch11-04 svol-01 selarch11 0 349696 0/0 c20t10d2 ENA
sd selarch12-03 svol-01 selarch12 0 349696 1/0 c20t10d3 ENA
sd selarch15-03 svol-01 selarch15 104448 349696 2/0 c20t15d0 ENA


>> CONCLUSION -- from the 1gbyte being striped over 2 luns, with taking 512mbyte of each lun, the 1 gbyte
is now striped over 3 luns, with taking 330k of each lun.

7. max "growth"

gsesrv8 # vxassist -g sdg maxgrow svol layout=striped nstripe=3
Volume svol can be extended by 20577280 to: 21625856 (21119Mb)

>> CONCLUSION -- as the smallest lun is 7.2Gbyte.. max growth = 7208928 * 3 = 21626784 what is very close to 21625856..

or ..
gsesrv8 # vxassist -g sdg growto svol 21625856
[root@gsesrv8]/
gsesrv8 # vxprint -ht -g sdg
DG NAME NCONFIG NLOG MINORS GROUP-ID
ST NAME STATE DM_CNT SPARE_CNT APPVOL_CNT
DM NAME DEVICE TYPE PRIVLEN PUBLEN STATE
RV NAME RLINK_CNT KSTATE STATE PRIMARY DATAVOLS SRL
RL NAME RVG KSTATE STATE REM_HOST REM_DG REM_RLNK
CO NAME CACHEVOL KSTATE STATE
VT NAME RVG KSTATE STATE NVOLUME
V NAME RVG/VSET/CO KSTATE STATE LENGTH READPOL PREFPLEX UTYPE

PL NAME VOLUME KSTATE STATE LENGTH LAYOUT NCOL/WID MODE
SD NAME PLEX DISK DISKOFFS LENGTH [COL/]OFF DEVICE MODE
SV NAME PLEX VOLNAME NVOLLAYR LENGTH [COL/]OFF AM/NM MODE
SC NAME PLEX CACHE DISKOFFS LENGTH [COL/]OFF DEVICE MODE
DC NAME PARENTVOL LOGVOL
SP NAME SNAPVOL DCO
EX NAME ASSOC VC PERMS MODE STATE
SR NAME KSTATE

dg sdg default default 30000 1208180746.172.gsesrv8

dm selarch11 c20t10d2 auto 1024 7208928 -
dm selarch12 c20t10d3 auto 1024 7208928 -
dm selarch15 c20t15d0 auto 1024 20469888 -

v svol - ENABLED ACTIVE 21625856 SELECT svol-01 fsgen

pl svol-01 svol ENABLED ACTIVE 21626112 STRIPE 3/256 RW
sd selarch11-04 svol-01 selarch11 0 7208704 0/0 c20t10d2 ENA
sd selarch12-03 svol-01 selarch12 0 7208704 1/0 c20t10d3 ENA
sd selarch15-03 svol-01 selarch15 104448 7208704 2/0 c20t15d0 ENA

So, in a striped "policy" to use all diskspace, all the luns will need to be of the same size.