如何将lvm卷移动到另一台服务器中

弓背霞明剑照霜,秋风走马出咸阳。这篇文章主要讲述如何将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 AttrVSizeVFree
cl120 wz--n- < 19.00g < 2.00g
vg_data400 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
LVVGAttrLSizePool Origin Data%Meta%Move Log Cpy%Sync Convert Devices
rootcl-wi-ao---- 15.00g/dev/nvme0n1p2(512)
swapcl-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)


创建挂载点、格式化分区、挂载分区、写入数据:
[root@server1 ~]# mkdir /data
[root@server1 ~]# mkfs.xfs /dev/vg_data/lvdata
meta-data=https://www.songbingjia.com/dev/vg_data/lvdataisize=512agcount=4, agsize=5241856 blks
=sectsz=512attr=2, projid32bit=1
=crc=1finobt=1, sparse=1, rmapbt=0
=reflink=1
data=https://www.songbingjia.com/android/bsize=4096blocks=20967424, imaxpct=25
=sunit=0swidth=0 blks
naming=version 2bsize=4096ascii-ci=0, ftype=1
log=internal logbsize=4096blocks=10238, version=2
=sectsz=512sunit=0 blks, lazy-count=1
realtime =noneextsz=4096blocks=0, rtextents=0
[root@server1 ~]# mount /dev/vg_data/lvdata /data
[root@server1 ~]# df -h /data
FilesystemSizeUsed Avail Use% Mounted on
/dev/mapper/vg_data-lvdata80G604M80G1% /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/file1..10.txt


卸载、停用逻辑卷和卷组
下面卸载分区
[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
LVVGAttrLSizePool Origin Data%Meta%Move Log Cpy%Sync Convert
rootcl-wi-ao---- 15.00g
swapcl-wi-ao----2.00g
lvdata vg_data -wi------- 79.98g

停用逻辑卷之后,使用lvs??命令???查看逻辑卷,可看到lvdata卷的属性中??a??属性没有了,表示没有激活。

导出卷组
在server1中导出卷组
[root@server1 ~]# vgexport vg_data
Volume group "vg_data" successfully exported

导出之后,我们需要关闭server1系统。然后复制它的磁盘到server2中。
复制server1的磁盘到server2目录中
将server1的四个磁盘复制到server2虚拟机的目录中。下面可以看到带有??*-000002.vmdk??的文件,这是因为我做了快照。需要一起复制到server2中。

复制到server2目录中:

打开server2的“编辑虚拟机设置”

添加现有虚拟磁盘


打开server2的电源。如果发现开机无法引导系统,开机按f2进入bios,设置启动项,将存在系统的磁盘顺序调到最顶。
导入卷组
server2开机之后,使用??pvscan??扫描一下,新添加的磁盘是否可以检测到:
[root@server2 ~]# pvscan
PV /dev/nvme0n1p2VG cllvm2 [< 19.00 GiB / 0free]
PV /dev/sdais in exported VG vg_data [< 20.00 GiB / 0free]
PV /dev/sdbis in exported VG vg_data [< 20.00 GiB / 0free]
PV /dev/sdcis in exported VG vg_data [< 20.00 GiB / 0free]
PV /dev/sddis in exported VG vg_data [< 20.00 GiB / 0free]
Total: 5 [98.98 GiB] / in use: 5 [98.98 GiB] / in no VG: 0 [0]


下面使用vgs??命令???查看一下,可以看到vg_data卷组,但是可以看到属性,有一个??x??属性,这代表是外部的卷组。
[root@server2 ~]# vgs
VG#PV #LV #SN AttrVSizeVFree
cl120 wz--n- < 19.00g0
vg_data410 wzx-n-79.98g0
[root@server2 ~]#


下面使用??vgimport??命令导入vg_data卷组:
[root@server2 ~]# vgimport vg_data
Volume group "vg_data" successfully imported


可以看到??x??属性消失了。
激活卷组
下面使用lvs命令查看一下lvdata逻辑卷的属性:
[root@server2 ~]# lvs
LVVGAttrLSizePool Origin Data%Meta%Move Log Cpy%Sync Convert
rootcl-wi-ao---- < 17.00g
swapcl-wi-ao----2.00g
lvdata vg_data -wi-------79.98g


发现没有??a, o??这两个属性。a表示激活、o表示是否挂载。
下面激活卷组:
[root@server2 ~]# vgchange -ay vg_data
1 logical volume(s) in volume group "vg_data" now active
[root@server2 ~]# lvs
LVVGAttrLSizePool Origin Data%Meta%Move Log Cpy%Sync Convert
rootcl-wi-ao---- < 17.00g
swapcl-wi-ao----2.00g
lvdata vg_data -wi-a-----79.98g


可以看到a属性显示了。
挂载文件系统
首先创建挂载点,然后挂载文件系统:
[root@server2 ~]# mkdir /data
[root@server2 ~]# mount /dev/vg_data/lvdata /data/
[root@server2 ~]# df -h /data
FilesystemSizeUsed Avail Use% Mounted on
/dev/mapper/vg_data-lvdata80G1.6G79G2% /data


再使用lvs命令查看一下,发现lvdata逻辑卷的o属性也显示了。
[root@server2 ~]# lvs
LVVGAttrLSizePool Origin Data%Meta%Move Log Cpy%Sync Convert
rootcl-wi-ao---- < 17.00g
swapcl-wi-ao----2.00g
lvdata vg_data -wi-ao----79.98g

下面是导入之后,物理卷、卷组、逻辑卷的内容:

总结
就这样我们已经成功完成了将卷组从一个系统移动到另一个系统的工作。
TRANSLATE withx
English
??Arabic??
??Hebrew??
??Polish??
??Bulgarian??
??Hindi??
??Portuguese??
??Catalan??
??Hmong Daw??
??Romanian??
??Chinese Simplified??
??Hungarian??
??Russian??
??Chinese Traditional??
??Indonesian??
??Slovak??
??Czech??
??Italian??
??Slovenian??
??Danish??
??Japanese??
??Spanish??
??Dutch??
??Klingon??
??Swedish??
??English??
??Korean??
??Thai??
??Estonian??
??Latvian??
??Turkish??
??Finnish??
??Lithuanian??
??Ukrainian??
??French??
??Malay??
??Urdu??
??German??
??Maltese??
??Vietnamese??
??Greek??
??Norwegian??
??Welsh??
??Haitian Creole??
??Persian??






TRANSLATE with
COPY THE URL BELOW


Back
EMBED THE SNIPPET BELOW IN YOUR SITE


Enable collaborative features and customize widget: ??Bing Webmaster Portal??
Back




【如何将lvm卷移动到另一台服务器中】


    推荐阅读