乐趣区

关于运维:如何将lvm卷移动到另一台服务器中

在某些状况下,将卷组从一个零碎挪动到另一个零碎可能是咱们最须要的。上面看一下如何将一个蕴含多个磁盘的卷组从一台服务器挪动到另一台服务器,而不会失落任何文件。
环境
两台 Centos8 虚拟机
第一台名字为:server1 , 第二台名字为:server2

第一台 Centos8 额定增加 4 块硬盘。当配置完逻辑卷之后,用来挪动到另一个 Centos8 零碎中应用的。

第一台 Centos8 IP: 192.168.43.131

第二台 Centos8 IP: 192.168.43.137

创立 pv、vg、lv 并挂载,复制数据到卷外面
上面 4 个硬盘创立为物理卷

[root@server1 ~]# fdisk -l|grep sd
Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors
Disk /dev/sdd: 20 GiB, 21474836480 bytes, 41943040 sectors
[root@server1 ~]# pvcreate /dev/sd[a-d]
Physical volume “/dev/sda” successfully created.
Physical volume “/dev/sdb” successfully created.
Physical volume “/dev/sdc” successfully created.
Physical volume “/dev/sdd” successfully created.
创立卷组,卷组名称为 vg_data

[root@server1 ~]# vgcreate vg_data /dev/sd[a-d]
Volume group “vg_data” successfully created
[root@server1 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 2 0 wz–n- <19.00g <2.00g
vg_data 4 0 0 wz–n- 79.98g 79.98g
上面创立逻辑卷,卷的名称为 lvdata,空间容量应用所有的

[root@server1 ~]# lvcreate -l +100%FREE -n lvdata vg_data
WARNING: xfs signature detected on /dev/vg_data/lvdata at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/vg_data/lvdata.
Logical volume “lvdata” created.
[root@server1 ~]# lvs -o +devices
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert Devices
root cl -wi-ao—- 15.00g /dev/nvme0n1p2(512)
swap cl -wi-ao—- 2.00g /dev/nvme0n1p2(0)
lvdata vg_data -wi-a—– 79.98g /dev/sda(0)
lvdata vg_data -wi-a—– 79.98g /dev/sdb(0)
lvdata vg_data -wi-a—– 79.98g /dev/sdc(0)
lvdata vg_data -wi-a—– 79.98g /dev/sdd(0)
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
创立挂载点、格式化分区、挂载分区、写入数据:

[root@server1 ~]# mkdir /data
[root@server1 ~]# mkfs.xfs /dev/vg_data/lvdata
meta-data=/dev/vg_data/lvdata isize=512 agcount=4, agsize=5241856 blks

     =                       sectsz=512   attr=2, projid32bit=1
     =                       crc=1        finobt=1, sparse=1, rmapbt=0
     =                       reflink=1

data = bsize=4096 blocks=20967424, imaxpct=25

     =                       sunit=0      swidth=0 blks

naming =version 2 bsize=4096 ascii-ci=0, ftype=1
log =internal log bsize=4096 blocks=10238, version=2

     =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none extsz=4096 blocks=0, rtextents=0
[root@server1 ~]# mount /dev/vg_data/lvdata /data
[root@server1 ~]# df -h /data
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_data-lvdata 80G 604M 80G 1% /data
[root@server1 ~]# 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, 1.0 GiB) copied, 4.63086 s, 232 MB/s
[root@server1 ~]# touch /data/file{1..10}.txt
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中

卸载、停用逻辑卷和卷组
上面卸载分区

[root@server1 ~]# umount /data
停用逻辑卷和卷组:

[root@server1 ~]# lvchange -an /dev/vg_data/lvdata
[root@server1 ~]# vgchange -an vg_data
0 logical volume(s) in volume group “vg_data” now active
[root@server1 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao—- 15.00g
swap cl -wi-ao—- 2.00g
lvdata vg_data -wi——- 79.98g
停用逻辑卷之后,应用 lvs 命令查看逻辑卷,可看到 lvdata 卷的属性中 a 属性没有了,示意没有激活。
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中

导出卷组
在 server1 中导出卷组

[root@server1 ~]# vgexport vg_data
Volume group “vg_data” successfully exported
导出之后,咱们须要敞开 server1 零碎。而后复制它的磁盘到 server2 中。

复制 server1 的磁盘到 server2 目录中
将 server1 的四个磁盘复制到 server2 虚拟机的目录中。上面能够看到带有 *-000002.vmdk 的文件,这是因为我做了快照。须要一起复制到 server2 中。
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
复制到 server2 目录中:
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
关上 server2 的“编辑虚拟机设置”
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
增加现有虚构磁盘
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
关上 server2 的电源。如果发现开机无奈疏导零碎,开机按 f2 进入 bios,设置启动项,将存在零碎的磁盘程序调到最顶。

导入卷组
server2 开机之后,应用 pvscan 扫描一下,新增加的磁盘是否能够检测到:

[root@server2 ~]# pvscan
PV /dev/nvme0n1p2 VG cl lvm2 [<19.00 GiB / 0 free]
PV /dev/sda is in exported VG vg_data [<20.00 GiB / 0 free]
PV /dev/sdb is in exported VG vg_data [<20.00 GiB / 0 free]
PV /dev/sdc is in exported VG vg_data [<20.00 GiB / 0 free]
PV /dev/sdd is in exported VG vg_data [<20.00 GiB / 0 free]
Total: 5 [98.98 GiB] / in use: 5 [98.98 GiB] / in no VG: 0 [0]
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
上面应用 vgs 命令查看一下,能够看到 vg_data 卷组,然而能够看到属性,有一个 x 属性,这代表是内部的卷组。

[root@server2 ~]# vgs
VG #PV #LV #SN Attr VSize VFree
cl 1 2 0 wz–n- <19.00g 0
vg_data 4 1 0 wzx-n- 79.98g 0
[root@server2 ~]#
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
上面应用 vgimport 命令导入 vg_data 卷组:

[root@server2 ~]# vgimport vg_data
Volume group “vg_data” successfully imported
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
能够看到 x 属性隐没了。

激活卷组
上面应用 lvs 命令查看一下 lvdata 逻辑卷的属性:

[root@server2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao—- <17.00g
swap cl -wi-ao—- 2.00g
lvdata vg_data -wi——- 79.98g
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
发现没有 a, o 这两个属性。a 示意激活、o 示意是否挂载。

上面激活卷组:

[root@server2 ~]# vgchange -ay vg_data
1 logical volume(s) in volume group “vg_data” now active
[root@server2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao—- <17.00g
swap cl -wi-ao—- 2.00g
lvdata vg_data -wi-a—– 79.98g
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
能够看到 a 属性显示了。

挂载文件系统
首先创立挂载点,而后挂载文件系统:

[root@server2 ~]# mkdir /data
[root@server2 ~]# mount /dev/vg_data/lvdata /data/
[root@server2 ~]# df -h /data
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_data-lvdata 80G 1.6G 79G 2% /data
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中
再应用 lvs 命令查看一下,发现 lvdata 逻辑卷的 o 属性也显示了。

[root@server2 ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root cl -wi-ao—- <17.00g
swap cl -wi-ao—- 2.00g
lvdata vg_data -wi-ao—- 79.98g
上面是导入之后,物理卷、卷组、逻辑卷的内容:
如何将 lvm 卷挪动到另一台服务器中如何将 lvm 卷挪动到另一台服务器中

总结
就这样咱们曾经胜利实现了将卷组从一个零碎挪动到另一个零碎的工作。

退出移动版