Using splitvg in AIX to make a copy of a volume group


Technote (FAQ)


Question

How do I use splitvg to make a copy of a volume group I can back up?

Answer

Initial Volume Group Setup

Start with a mirrored volume group:
# lsvg -l zzvg
zzvg:
LV NAME            TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
zzlv               jfs        2       4       2    open/syncd    /zzfs
loglv03            jfslog     1       2       2    open/syncd    N/A

Since splitvg splits a volume group by mirror copy, the mirrored disks of each logical volume must be in the same columns, or splitvg will fail with the following error:

0516-1359 splitvg: The mirror specified to split the volume group must exists on a disk or
set of disks that contains nothing but this mirror.
0516-1355 splitvg: Unable to split the volume group.

This is an example of a volume group that will not be allowed to split:
# lslv -m zzlv
zzlv:/zzfs
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0129 hdisk16           0193 hdisk18
0002  0130 hdisk16           0194 hdisk18

# lslv -m loglv03
loglv03:N/A
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0131 hdisk18           0195 hdisk16

The first logical volume zzlv has hdisk16 as the first mirror copy, and hdisk18 as the second.

However the second logical volume loglv03 is reversed, with hdisk18 in the first copy and hdisk16 in the second. Using rmlvcopy to remove a copy from one of the logical volumes, then using mklvcopy to create it on the correct disk should fix this.

# lslv -m zzlv
zzlv:/zzfs
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0129 hdisk16           0193 hdisk18
0002  0130 hdisk16           0194 hdisk18

# lslv -m loglv03
loglv03:N/A
LP    PP1  PV1               PP2  PV2               PP3  PV3
0001  0131 hdisk16           0195 hdisk18

In the above example we have hdisk16 in the PV1 column, and hdisk18 in PV2 for both logical volumes, so this volume group is in a good configuration to be split. Splitvg will choose the 2nd mirror copy to split off by default.


Splitting Off A Copy Of The Volume Group

If we wish to make a split-off volume group that can be rejoined again to the original one, use the options below:

# splitvg -y newvg zzvg

# lsvg
rootvg
zzvg
newvg

# lsvg -l zzvg
zzvg:
LV NAME            TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
zzlv               jfs        2       4       2    open/syncd    /zzfs
loglv03            jfslog     1       2       2    open/syncd    N/A

# lsvg -l newvg
newvg:
LV NAME            TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
fszzlv             jfs        2       2       1    closed/syncd  /fs/zzfs
fsloglv03          jfslog     1       1       1    closed/syncd  N/A

Now we can mount our new mount points /fs/zzfs and back up the data.


Disk And Volume Group State While The Volume Group Is Split

Notice that while the volume groups are this state the disk that has been split-off from the original volume group has a new PV STATE:

# lsvg -p zzvg
zzvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE ...
hdisk16           active            639         636         ...
hdisk18           snapshotpv        639         636         ...

# lsvg -p newvg
newvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE ...
hdisk18           active            639         636         ...

Also note that the split-off volume group tells us it is a snapshot and where it came from.

# lsvg newvg
...
SNAPSHOT VG:        yes                      PRIMARY VG:     zzvg

Joining The Volume Group Together Again

To rejoin the vg again, which will remirror and synchronize with any new data that has been written to the original zzvg, use:

# joinvg zzvg

# lsvg -l zzvg
zzvg:
LV NAME            TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
zzlv               jfs        2       4       2    open/syncd    /zzfs
loglv03            jfslog     1       2       2    open/syncd    N/A


Splitting Off A New Independent Volume Group

Splitvg can also be used to split a mirrored volume group into a new, fully independent volume group. This volume group will not ever be joined back up with the original one. To do this use splitvg with the "-i" option, as in:

# splitvg -y newvg -i zzvg

In this case the disks will show that they completely belong to each respective volume group:

# lsvg -p zzvg
zzvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE ...
hdisk16           active            639         636        

# lsvg -p newvg
newvg:
PV_NAME           PV STATE          TOTAL PPs   FREE PPs    FREE ...
hdisk18           active            639         636        


Notes:

1. If a new volume group name is not provided using the "-y" option to splitvg, the new split-off snapshot vg will be called by a generic name "vgXX", where "XX" is numeric, starting at 00.

2. Splitvg really uses recreatevg behind the scenes, which is why the new logical volume and filesystem mount point names are the same that recreatevg produces.

3. The split-off logical volume will be prefixed with "fs". Note that for a generic JFS2 logical volume, which are named "fslvXX" this can get confusing, as they will be renamed "fsfslvXX".

4. To allow the split-off filesystems to be mounted, the mount points have been prefixed with "/fs". The /etc/filesystems file will also have been updated with this mount point information:

/fs/zzfs:
        dev             = /dev/fszzlv
        vfs             = jfs
        log             = /dev/fsloglv03
        mount           = false
        check           = false
        options         = rw
        account         = false

5. While the volume group is split, it still looks like a mirrored vg. However any updates to it will result in stale logical volumes.

For example, if you mount the original filesystem and copy some data into it, the logical volume and JFSlog logical volume go stale:

# lsvg -l zzvg
zzvg:
LV NAME            TYPE       LPs     PPs     PVs  LV STATE      MOUNT POINT
zzlv               jfs        2       4       2    open/stale    /zzfs
loglv03            jfslog     1       2       2    open/stale    N/A

This is because the mirror is still associated with the original volume group, even when split off to a temporary new volume group. Using splitvg -i to create an independent volume group will not have this same effect.



Article Number: 596
Posted: Mon, Jun 3, 2019 2:24 PM
Last Updated: Mon, Jun 3, 2019 2:24 PM

Online URL: http://kb.ictbanking.net/article.php?id=596