如何迁移逻辑卷
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何迁移逻辑卷相关的知识,希望对你有一定的参考价值。
实验:将逻辑卷迁移到其他主机
1、在源主机上新增一个独立的虚拟磁盘
[[email protected](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
[[email protected](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
[[email protected](mit) ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created
[[email protected](mit) ~]# vgextend /dev/sdc vg0
Volume group "sdc" not found
Cannot process volume group sdc
[[email protected](mit) ~]# vgextend vg0 /dev/sdc
Volume group "vg0" successfully extended
3.将所有数据都移动到将要拆卸的物理卷上
[[email protected](mit) ~]# pvmove /dev/sdb1
/dev/sdb1: Moved: 4.1%
/dev/sdb1: Moved: 100.0%
[[email protected](mit) ~]# pvmove /dev/sdb2 /dev/sdc
/dev/sdb2: Moved: 1.2%
/dev/sdb2: Moved: 100.0%
[[email protected](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步
[email protected](mit) ~]# vgreduce vg0 /dev/sdb1
Removed "/dev/sdb1" from volume group "vg0"
[[email protected](mit) ~]# vgreduce vg0 /dev/sdb2
Removed "/dev/sdb2" from volume group "vg0"
5.将源卷组设置为非激活 (逻辑卷需要先卸载)
[[email protected](mit) ~]# vgchange -an vg0
0 logical volume(s) in volume group "vg0" now active
6.将源卷组设置为export状态(逻辑卷需要先卸载)
[[email protected](mit) ~]# vgexport vg0
Volume group "vg0" successfully exported
7、把硬盘(sdc)拆除并添加到目标主机上
关闭源主机,在目标主机上添加硬盘,选择 "使用现有虚拟磁盘(E)"这项,然后点击下一步,“文件名”要添写源主机上硬盘sdc所对应的磁盘文件,点击完成。
8、在目标主机上用命令lsblk查看新增加的硬盘
[[email protected](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在重新扫描)
[[email protected](mit) ~]# echo ‘- - -‘ > /sys/class/scsi_host/host0/scan
[[email protected](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
[[email protected](mit) ~]# vgimport vg0
Volume group "vg0" successfully imported
9.把卷组设置为激活
vgchange -ay vg0
[[email protected](mit) ~]# vgchange -ay vg0
1 logical volume(s) in volume group "vg0" now active
10、挂载
把新迁移过来的逻辑卷挂载起来,检查一下里面的数据,看是否迁移成功。
[[email protected](mit) ~]# mount /dev/vg0/lv0 /data/
[[email protected](mit) ~]# cd /data/
[[email protected](mit) data]# ls
f1 f2 f3 lost+found
[[email protected](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
来对比一下原来的数据
[[email protected](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
以上是关于如何迁移逻辑卷的主要内容,如果未能解决你的问题,请参考以下文章