实验:将逻辑卷迁移到其他主机 1、在源主机上新增一个独立的虚拟磁盘 [root@centos6(mit) ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sr0 11:0 1 3.7G 0 rom
sda 8:0 0 200G 0 disk ├─sda1 8:1 0 300M 0 part /boot ├─sda2 8:2 0 20G 0 part / ├─sda3 8:3 0 10G 0 part /app ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 2G 0 part [SWAP] sdb 8:16 0 20G 0 disk ├─sdb1 8:17 0 2G 0 part │ └─vg0-lv0 (dm-0) 253:0 0 3G 0 lvm /data └─sdb2 8:18 0 2G 0 part └─vg0-lv0 (dm-0) 253:0 0 3G 0 lvm /data sdc 8:32 0 20G 0 disk 2、将该硬盘sdc做为PV,扩展进卷组vg0

[root@centos6(mit) ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 vg0 lvm2 a--u 2.00g 0 /dev/sdb2 vg0 lvm2 a--u 2.00g 1.01g [root@centos6(mit) ~]# pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created [root@centos6(mit) ~]# vgextend /dev/sdc vg0 Volume group "sdc" not found Cannot process volume group sdc [root@centos6(mit) ~]# vgextend vg0 /dev/sdc Volume group "vg0" successfully extended

3.将所有数据都移动到将要拆卸的物理卷上

[root@centos6(mit) ~]# pvmove /dev/sdb1 /dev/sdb1: Moved: 4.1% /dev/sdb1: Moved: 100.0% [root@centos6(mit) ~]# pvmove /dev/sdb2 /dev/sdc /dev/sdb2: Moved: 1.2% /dev/sdb2: Moved: 100.0% [root@centos6(mit) ~]# pvs PV VG Fmt Attr PSize PFree /dev/sdb1 vg0 lvm2 a--u 2.00g 2.00g /dev/sdb2 vg0 lvm2 a--u 2.00g 2.00g /dev/sdc vg0 lvm2 a--u 20.00g 17.00g

4.如果卷组中除了要拆卸的硬盘外还有其他的PV,则进行vgreduce,如没有,直接第5步

root@centos6(mit) ~]# vgreduce vg0 /dev/sdb1 Removed "/dev/sdb1" from volume group "vg0" [root@centos6(mit) ~]# vgreduce vg0 /dev/sdb2 Removed "/dev/sdb2" from volume group "vg0" 5.将源卷组设置为非激活 (逻辑卷需要先卸载)

[root@centos6(mit) ~]# vgchange -an vg0 0 logical volume(s) in volume group "vg0" now active

6.将源卷组设置为export状态(逻辑卷需要先卸载)

[root@centos6(mit) ~]# vgexport vg0 Volume group "vg0" successfully exported

7、把硬盘(sdc)拆除并添加到目标主机上

关闭源主机,在目标主机上添加硬盘,选择 "使用现有虚拟磁盘(E)"这项,然后点击下一步,“文件名”要添写源主机上硬盘sdc所对应的磁盘文件,点击完成。

8、在目标主机上用命令lsblk查看新增加的硬盘

[root@centos7(mit) ~]# lsblk

NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 120G 0 disk ├─sda1 8:1 0 300M 0 part /boot ├─sda2 8:2 0 20G 0 part / ├─sda3 8:3 0 10G 0 part /app ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 4G 0 part [SWAP] sr0 11:0 1 8.8G 0 rom

这时发现没有看到新增加的硬盘sdc,接下来用 echo '- - - ' > /sys/class/scsi_host/host0/scan 这条命令来扫描一下,结果出现了。 (如果没出现,把host0换成host2在重新扫描)

[root@centos7(mit) ~]# echo '- - -' > /sys/class/scsi_host/host0/scan [root@centos7(mit) ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 120G 0 disk ├─sda1 8:1 0 300M 0 part /boot ├─sda2 8:2 0 20G 0 part / ├─sda3 8:3 0 10G 0 part /app ├─sda4 8:4 0 1K 0 part └─sda5 8:5 0 4G 0 part [SWAP] sdb 8:16 0 20G 0 disk sr0 11:0 1 8.8G 0 rom

如果目标主机上有一块硬盘,新增加的硬盘盘符会按顺序添加而不是按源主机上的sdc。如果目标上现有三块硬盘,新增时,sdc会变成sdd,依次类推。

把vg0设置为import vgimport vg0 [root@centos7(mit) ~]# vgimport vg0 Volume group "vg0" successfully imported

9.把卷组设置为激活

vgchange -ay vg0

[root@centos7(mit) ~]# vgchange -ay vg0 1 logical volume(s) in volume group "vg0" now active

10、挂载

把新迁移过来的逻辑卷挂载起来,检查一下里面的数据,看是否迁移成功。

[root@centos7(mit) ~]# mount /dev/vg0/lv0 /data/

[root@centos7(mit) ~]# cd /data/ [root@centos7(mit) data]# ls f1 f2 f3 lost+found [root@centos7(mit) data]# ll total 28 -rw-r--r-- 1 root root 1890 Jun 24 11:56 f1 -rw-r--r-- 1 root root 1902 Jun 24 11:57 f2 -rw-r--r-- 1 root root 29 Jun 24 11:57 f3 drwx------ 2 root root 16384 Jun 24 11:53 lost+found 来对比一下原来的数据 [root@centos6(mit) data]# ll total 28 -rw-r--r-- 1 root root 1890 Jun 24 11:56 f1 -rw-r--r-- 1 root root 1902 Jun 24 11:57 f2 -rw-r--r-- 1 root root 29 Jun 24 11:57 f3 drwx------ 2 root root 16384 Jun 24 11:53 lost+found

和源主机上的数据一样,成功迁移。

备注:如果目标主机上也有逻辑卷,迁移时应该更改一下卷组和逻辑卷的名字,以免冲突。

逻辑卷重命名 lvrename VG LV LV_new

lvrename /dev/vg1/lv0 lv1

卷组重命名

vgrename VG VG_new

vgrename /dev/vg0 vg1