Adding mirrors to Veritas Volume Manager volumes


One of the cool features of Veritas Volume Manager (VxVM) is it’s ability to change the layout of a volume on the fly with vxasssist(1m). This option has helped me numerous times, especially when I needed to mirror volumes that weren’t mirrored. Given the following unmirrored striped volume:

$ vxprint -hft

Disk group: oradg

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 NVOLUME KSTATE STATE
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

dg oradg default default 10000 1127240283.19.winnie

dm c1t1d0 c1t1d0s2 auto 2048 35521408 -
dm c1t2d0 c1t2d0s2 auto 2048 35521408 -
dm c1t3d0 c1t3d0s2 auto 2048 35521408 -
dm c1t4d0 c1t4d0s2 auto 2048 35365968 -
dm c1t5d0 c1t5d0s2 auto 2048 35521408 -
dm c1t6d0 c1t6d0s2 auto 2048 35521408 -

v oravol01 - ENABLED ACTIVE 20971520 SELECT oravol01-01 fsgen
pl oravol01-01 oravol01 ENABLED ACTIVE 20971776 STRIPE 3/128 RW
sd c1t1d0-01 oravol01-01 c1t1d0 0 6990592 0/0 c1t1d0 ENA
sd c1t2d0-01 oravol01-01 c1t2d0 0 6990592 1/0 c1t2d0 ENA
sd c1t3d0-01 oravol01-01 c1t3d0 0 6990592 2/0 c1t3d0 ENA

We can easily add a mirror by invoking vxassist(1m) with the “mirror” option:

$ vxassist mirror oravol01 layout=stripe ncol=3 &

The mirror option accepts a layout option and several keywords to control the layout of the new mirror. In this example we used a 3-column striped plex to match the layout of the existing plex. After the mirror operation completes, the volume will contain a second plex (the mirror) that matches the original:

$ vxprint -hft

Disk group: oradg

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 NVOLUME KSTATE STATE
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

dg oradg default default 10000 1127240283.19.winnie

dm c1t1d0 c1t1d0s2 auto 2048 35521408 -
dm c1t2d0 c1t2d0s2 auto 2048 35521408 -
dm c1t3d0 c1t3d0s2 auto 2048 35521408 -
dm c1t4d0 c1t4d0s2 auto 2048 35365968 -
dm c1t5d0 c1t5d0s2 auto 2048 35521408 -
dm c1t6d0 c1t6d0s2 auto 2048 35521408 -

v oravol01 - ENABLED ACTIVE 20971520 SELECT - fsgen
pl oravol01-01 oravol01 ENABLED ACTIVE 20971776 STRIPE 3/128 RW
sd c1t1d0-01 oravol01-01 c1t1d0 0 6990592 0/0 c1t1d0 ENA
sd c1t2d0-01 oravol01-01 c1t2d0 0 6990592 1/0 c1t2d0 ENA
sd c1t3d0-01 oravol01-01 c1t3d0 0 6990592 2/0 c1t3d0 ENA
pl oravol01-02 oravol01 ENABLED ACTIVE 20971776 STRIPE 3/128 RW
sd c1t4d0-01 oravol01-02 c1t4d0 0 6990592 0/0 c1t4d0 ENA
sd c1t5d0-01 oravol01-02 c1t5d0 0 6990592 1/0 c1t5d0 ENA
sd c1t6d0-01 oravol01-02 c1t6d0 0 6990592 2/0 c1t6d0 ENA

Veritas makes managing storage a snap!

This article was posted by Matty on 2005-11-03 19:11:00 -0400 -0400