如何迁移逻辑卷

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

以上是关于如何迁移逻辑卷的主要内容,如果未能解决你的问题,请参考以下文章

LVM逻辑卷-创建扩容缩减迁移快照

迁移逻辑卷

迁移逻辑卷

Linux将Oracle安装目录从根目录下迁移到逻辑卷

Linux将Oracle安装目录从根目录下迁移到逻辑卷

逻辑卷管理