How to move a Volume Group from one system to another

There are situations where we would be required to move a whole volume group from one system to another system for some requirement. As part of this, it also moves underlying logical volumes (LVM) too.

It is very easy and can be done using vgexport and vgimport commands.

This article will guide you on how to move or migrate LVM and volume group from one server to another.

Let’s move a volume group named ‘server1_data_vg‘ from one system to another, which is currently holding the following LVM ‘/dev/server1_data_vg/lvol1’ and it’s mounted under ‘/data’.

Make a Note: Though not necessary, always back up existing data as a precaution in order to rollback.

Moving Volume Group in Linux

As a prerequisite, find the block devices mapped to the volume group named ‘server1_data_vg’. This is needed later when you need to remove them from the system.

pvs

PV VG Fmt Attr PSize PFree
/dev/sdb lvm2 a-- 10.00g 0.00g
/dev/sdc lvm2 a-- 25.00g 0.00g

Step-1: Unmounting the file system

Unmount the desired filesystem. In this case, it would be ‘/data’ mount point. If it’s busy, use Lazy unmount option ‘-l or –lazy’

umount /data

Step-2: De-activating the volume group

Mark the volume group inactive, which removes it from the kernel table, clean up all references to this volume group and prevents any further activity on it.

vgchange -an server1_data_vg

vgchange -- volume group "server1_data_vg" successfully deactivated

Step-3: Exporting the volume group

Export the volume group. This prevents it from being accessed on the current system and prepares it to be removed. It only exports the VG configuration, but the data remains intact on disk.

vgexport server1_data_vg

vgexport -- volume group "server1_data_vg" successfully exported

Step-4: Detaching the disk/LUN

Remove the block device from the system and inform the respective team to unmap the disk or LUN.

echo 1 > /sys/block/sdb/device/delete
  • For ‘vmdk’ disk, the VMWare team needs to unmap the disk from ‘Server 1’.
  • For storage ‘LUNs’, the SAN team needs to unmap the disk from ‘Server 1’, but if it’s a VM, the same LUN must first unmapped at the VMWare level and then at Storage end.

Step-5: Presenting the Disk to the new Server

Respective team to map the disk to the system based on the setup. In this case, it would be mapped to ‘Server-2’.

  • For ‘vmdk’ disk, the VMWare team needs to map the disk to the ‘Server 2’.
  • For storage LUNs, the SAN team needs to map the disk directly to the ‘Server 2’, but If it’s a VM, the same LUN should be mapped at Storage level and then at VMWare end.

Once disk/LUN mapped, scan the disk/LUN to discover them at OS level.

for disk_scan in `ls /sys/class/scsi_hosts`; do echo "Scanning $disk_scan…Completed"; echo "- - -" > /sys/class/scsi_hosts/$disk_scan/scan; done

Scanning host0...Completed
Scanning host1...Completed
Scanning host2...Completed
.
.
Scanning host[N]...Completed

Now, you can see the exported VGs in the pvscan output.

pvscan

PV /dev/sdb is in exported VG server1_data_vg [<10.00 GiB / 0 free]
PV /dev/sdc VG app lvm2 [<25.00 GiB / 0 free]
Total: 2 [<34.99 GiB] / in use: 2 [<34.99 GiB] / in no VG: 0 [0 ]

Step-6: Importing the volume group

Import the volume group as shown below:

vgimport server1_data_vg

Volume group "server1_data_vg" successfully imported

Step-7: Activating the volume group

Activate the volume group as shown below:

vgchange -ay server1_data_vg

1 logical volume(s) in volume group "server1_data_vg" now active

Step-8: Mounting the file system

Finally create directory and mount the imported logical volume or disk on the server 2.

mkdir -p /data

mount /dev/server1_data_vg/lvol1 /data

Conclusion

In this tutorial, we’ve shown you how to move a Volume Group from one Linux system to another. This article can be used whenever you want to perform the similar activity.

If you have any questions or feedback, feel free to comment below. Kindly support us by sharing this article with wider circle.

About Jayabal Thiyagarajan

Love and like to work with Linux.

View all posts by Jayabal Thiyagarajan

Leave a Reply

Your email address will not be published. Required fields are marked *