lvm卷移动到其他服务器且不丢失文件
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
***以下案例,仅供参考***
前言
Hi!这里介绍了如何将一个包含多个磁盘的卷组从一台服务器移动到另一台服务器,并且不丢失任何文件。
环境
两台linux主机系统,第一台额外添加4块硬盘(当配置完逻辑卷之后,用来移动到另一个系统中使用的)
系统:Cent Os 7.6 分别名为test和test2
磁盘:test:系统盘 40G 四块额外添加的16G硬盘
test2:系统盘40G
1.创建pv、vg、lv
(1)下面4块盘创建物理卷
[root@test ~]# fdisk -l |grep sd
Disk /dev/sda: 42.9 GB, 42949672960 bytes, 83886080 sectors
/dev/sda1 * 2048 2099199 1048576 83 Linux
/dev/sda2 2099200 83886079 40893440 8e Linux LVM
Disk /dev/sdb: 17.2 GB, 17179869184 bytes, 33554432 sectors
Disk /dev/sdc: 17.2 GB, 17179869184 bytes, 33554432 sectors
Disk /dev/sdd: 17.2 GB, 17179869184 bytes, 33554432 sectors
Disk /dev/sde: 17.2 GB, 17179869184 bytes, 33554432 sectors
[root@test ~]# pvcreate /dev/sd[b-e]
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
Physical volume "/dev/sdd" successfully created.
Physical volume "/dev/sde" successfully created.
(2)创建卷组,名为:vg_data
[root@test ~]# vgcreate vg_data /dev/sd[b-e]
Physical volume "/dev/sdb" successfully created.
Physical volume "/dev/sdc" successfully created.
Physical volume "/dev/sdd" successfully created.
Physical volume "/dev/sde" successfully created.
Volume group "vg_data" successfully created
[root@test ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <39.00g 0
vg_data 4 0 0 wz--n- 63.98g 63.98g
(3)创建逻辑卷,卷名:lvdata,空间容量:所有
root@test ~]# lvcreate -l +100%FREE -n lvdata vg_data
Logical volume "lvdata" created.
[root@test ~]# lvs -o +devices
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
root centos -wi-ao---- <35.00g /dev/sda2(0)
swap centos -wi-ao---- 4.00g /dev/sda2(8959)
lvdata vg_data -wi-a----- 63.98g /dev/sdb(0)
lvdata vg_data -wi-a----- 63.98g /dev/sdc(0)
lvdata vg_data -wi-a----- 63.98g /dev/sdd(0)
lvdata vg_data -wi-a----- 63.98g /dev/sde(0)
(4)创建挂载点、格式化分区、挂载分区、写入数据:
[root@test ~]# mkdir /data
[root@test ~]# mkfs.xfs /dev/vg_data/lvdata
meta-data=/dev/vg_data/lvdata isize=512 agcount=4, agsize=4193280 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=0, sparse=0
data = bsize=4096 blocks=16773120, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=8190, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
[root@test ~]# mount /dev/vg_data/lvdata /data/
[root@test ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 35G 1.2G 34G 4% /
devtmpfs 3.9G 0 3.9G 0% /dev
tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs 3.9G 8.9M 3.9G 1% /run
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda1 1014M 145M 870M 15% /boot
tmpfs 783M 0 783M 0% /run/user/0
/dev/mapper/vg_data-lvdata 64G 33M 64G 1% /data
[root@test ~]# dd if=/dev/zero of=/data/disk.img bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 0.888231 s, 1.2 GB/s
[root@test ~]# touch /data/file{1..8}.txt
[root@test ~]# ll /data/
total 1048576
-rw-r--r--. 1 root root 1073741824 Dec 9 23:38 disk.img
-rw-r--r--. 1 root root 0 Dec 9 23:39 file1.txt
-rw-r--r--. 1 root root 0 Dec 9 23:39 file2.txt
-rw-r--r--. 1 root root 0 Dec 9 23:39 file3.txt
-rw-r--r--. 1 root root 0 Dec 9 23:39 file4.txt
-rw-r--r--. 1 root root 0 Dec 9 23:39 file5.txt
-rw-r--r--. 1 root root 0 Dec 9 23:39 file6.txt
-rw-r--r--. 1 root root 0 Dec 9 23:39 file7.txt
-rw-r--r--. 1 root root 0 Dec 9 23:39 file8.txt
2.卸载、停用逻辑卷和卷组
(1)卸载分区,停用逻辑卷和卷组
[root@test ~]# umount /data/
[root@test ~]# lvchange -an /dev/vg_data/lvdata
[root@test ~]# vgchange -an vg_data
0 logical volume(s) in volume group "vg_data" now active
[root@test ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <35.00g
swap centos -wi-ao---- 4.00g
lvdata vg_data -wi------- 63.98g
能看见lvdata卷的属性中‘a’属性没有了,表示没有激活。
注意,到这一步,我们的第一台机器就已经完成了
导出卷组:vgexport vg_data
(2)复制卷组
两台机器都处于关机的状态下,在第二台机器上"编辑设置"–“添加硬盘”–“现有硬盘”,添加第一台机器的四块硬盘保存即可
开启第二台机器,查看磁盘
[root@test2 ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<39.00 GiB / 0 free]
PV /dev/sdb is in exported VG vg_data [<16.00 GiB / 0 free]
PV /dev/sdc is in exported VG vg_data [<16.00 GiB / 0 free]
PV /dev/sdd is in exported VG vg_data [<16.00 GiB / 0 free]
PV /dev/sde is in exported VG vg_data [<16.00 GiB / 0 free]
Total: 5 [102.98 GiB] / in use: 5 [102.98 GiB] / in no VG: 0 [0 ]
可以看见四块硬盘都复制过来了,查看vg、lv和文件
[root@test2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <39.00g 0
vg_data 4 1 0 wzx-n- 63.98g 0
vg_data有个"x"属性,代表外部的卷组
// An highlighted block
var foo = 'bar';
导入卷组
[root@test2 ~]# vgimport vg_data
Volume group "vg_data" successfully imported
导入卷组后可以看见x属性消失
[root@test2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <39.00g 0
vg_data 4 1 0 wz--n- 63.98g 0
激活卷组
[root@test2 ~]# vgchange -ay vg_data
1 logical volume(s) in volume group "vg_data" now active
[root@test2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <35.00g
swap centos -wi-ao---- 4.00g
lvdata vg_data -wi-a----- 63.98g
创建挂载点挂载文件
[root@test2 ~]# mkdir /data
[root@test2 ~]# mount /dev/vg_data/lvdata /data/
[root@test2 ~]# df -h /data/
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_data-lvdata 64G 1.1G 63G 2% /data
查看之前的数据
[root@test2 ~]# ll /data/
total 1048576
-rw-r--r--. 1 root root 1073741824 Jan 10 23:54 disk.img
-rw-r--r--. 1 root root 0 Jan 10 23:55 file1.txt
-rw-r--r--. 1 root root 0 Jan 10 23:55 file2.txt
-rw-r--r--. 1 root root 0 Jan 10 23:55 file3.txt
-rw-r--r--. 1 root root 0 Jan 10 23:55 file4.txt
-rw-r--r--. 1 root root 0 Jan 10 23:55 file5.txt
-rw-r--r--. 1 root root 0 Jan 10 23:55 file6.txt
-rw-r--r--. 1 root root 0 Jan 10 23:55 file7.txt
-rw-r--r--. 1 root root 0 Jan 10 23:55 file8.txt
[root@test2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- <39.00g 0
vg_data 4 1 0 wz--n- 63.98g 0
[root@test2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root centos -wi-ao---- <35.00g
swap centos -wi-ao---- 4.00g
lvdata vg_data -wi-ao---- 63.98g
[root@test2 ~]# pvscan
PV /dev/sda2 VG centos lvm2 [<39.00 GiB / 0 free]
PV /dev/sdb VG vg_data lvm2 [<16.00 GiB / 0 free]
PV /dev/sdc VG vg_data lvm2 [<16.00 GiB / 0 free]
PV /dev/sdd VG vg_data lvm2 [<16.00 GiB / 0 free]
PV /dev/sde VG vg_data lvm2 [<16.00 GiB / 0 free]
Total: 5 [102.98 GiB] / in use: 5 [102.98 GiB] / in no VG: 0 [0 ]
[root@test2 ~]# vgs -o +devices
VG #PV #LV #SN Attr VSize VFree Devices
centos 1 2 0 wz--n- <39.00g 0 /dev/sda2(0)
centos 1 2 0 wz--n- <39.00g 0 /dev/sda2(8959)
vg_data 4 1 0 wz--n- 63.98g 0 /dev/sdb(0)
vg_data 4 1 0 wz--n- 63.98g 0 /dev/sdc(0)
vg_data 4 1 0 wz--n- 63.98g 0 /dev/sdd(0)
vg_data 4 1 0 wz--n- 63.98g 0 /dev/sde(0)
[root@test2 ~]# lvs -o +devices
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
root centos -wi-ao---- <35.00g /dev/sda2(0)
swap centos -wi-ao---- 4.00g /dev/sda2(8959)
lvdata vg_data -wi-ao---- 63.98g /dev/sdb(0)
lvdata vg_data -wi-ao---- 63.98g /dev/sdc(0)
lvdata vg_data -wi-ao---- 63.98g /dev/sdd(0)
lvdata vg_data -wi-ao---- 63.98g /dev/sde(0)
总结
以上就是今天所记录的内容,欢迎大家补充~
PS:本文灵感来自公众号:linux就该这么学