教你如何将 Lvm 卷移动到另一台服务器中

服务器
在某些情况下,将卷组从一个系统移动到另一个系统可能是我们最需要的。下面看一下如何将一个包含多个磁盘的卷组从一台服务器移动到另一台服务器,而不会丢失任何文件。

在某些情况下,将卷组从一个系统移动到另一个系统可能是我们最需要的。下面看一下如何将一个包含多个磁盘的卷组从一台服务器移动到另一台服务器,而不会丢失任何文件。

环 境

两台Centos8 虚拟机

第一台名字为:server1 , 第二台名字为:server2

第一台Centos8额外添加4块硬盘。当配置完逻辑卷之后,用来移动到另一个Centos8系统中使用的。

第一台Centos8 IP: 192.168.43.131

第二台Centos8 IP: 192.168.43.137

创建pv、vg、lv并挂载,复制数据到卷里面

下面4个硬盘创建为物理卷

  1. [root@server1 ~]# fdisk -l|grep sd 
  2. Disk /dev/sda: 20 GiB, 21474836480 bytes, 41943040 sectors 
  3. Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors 
  4. Disk /dev/sdc: 20 GiB, 21474836480 bytes, 41943040 sectors 
  5. Disk /dev/sdd: 20 GiB, 21474836480 bytes, 41943040 sectors 
  6. [root@server1 ~]# pvcreate /dev/sd[a-d] 
  7.   Physical volume "/dev/sda" successfully created. 
  8.   Physical volume "/dev/sdb" successfully created. 
  9.   Physical volume "/dev/sdc" successfully created. 
  10.   Physical volume "/dev/sdd" successfully created. 

创建卷组,卷组名称为vg_data

  1. [root@server1 ~]# vgcreate vg_data /dev/sd[a-d] 
  2.   Volume group "vg_data" successfully created 
  3. [root@server1 ~]# vgs 
  4.   VG      #PV #LV #SN Attr   VSize   VFree  
  5.   cl        1   2   0 wz--n- <19.00g <2.00g 
  6.   vg_data   4   0   0 wz--n-  79.98g 79.98g 

下面创建逻辑卷,卷的名称为lvdata,空间容量使用所有的

  1. [root@server1 ~]# lvcreate -l +100%FREE -n lvdata vg_data 
  2. WARNING: xfs signature detected on /dev/vg_data/lvdata at offset 0. Wipe it? [y/n]: y 
  3.   Wiping xfs signature on /dev/vg_data/lvdata. 
  4.   Logical volume "lvdata" created. 
  5. [root@server1 ~]# lvs -o +devices 
  6.   LV     VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices             
  7.   root   cl      -wi-ao---- 15.00g                                                     /dev/nvme0n1p2(512) 
  8.   swap   cl      -wi-ao----  2.00g                                                     /dev/nvme0n1p2(0)   
  9.   lvdata vg_data -wi-a----- 79.98g                                                     /dev/sda(0)         
  10.   lvdata vg_data -wi-a----- 79.98g                                                     /dev/sdb(0)         
  11.   lvdata vg_data -wi-a----- 79.98g                                                     /dev/sdc(0)         
  12.   lvdata vg_data -wi-a----- 79.98g       

创建挂载点、格式化分区、挂载分区、写入数据:

  1. [root@server1 ~]# mkdir /data 
  2. [root@server1 ~]# mkfs.xfs /dev/vg_data/lvdata  
  3. meta-data=/dev/vg_data/lvdata    isize=512    agcount=4, agsize=5241856 blks 
  4.          =                       sectsz=512   attr=2, projid32bit=1 
  5.          =                       crc=1        finobt=1, sparse=1, rmapbt=0 
  6.          =                       reflink=1 
  7. data     =                       bsize=4096   blocks=20967424, imaxpct=25 
  8.          =                       sunit=0      swidth=0 blks 
  9. naming   =version 2              bsize=4096   ascii-ci=0, ftype=1 
  10. log      =internal log           bsize=4096   blocks=10238, version=2 
  11.          =                       sectsz=512   sunit=0 blks, lazy-count=1 
  12. realtime =none                   extsz=4096   blocks=0, rtextents=0 
  13. [root@server1 ~]# mount /dev/vg_data/lvdata /data 
  14. [root@server1 ~]# df -h /data 
  15. Filesystem                  Size  Used Avail Use% Mounted on 
  16. /dev/mapper/vg_data-lvdata   80G  604M   80G   1% /data 
  17. [root@server1 ~]# dd if=/dev/zero of=/data/disk.img bs=1M count=1024 
  18. 1024+0 records in 
  19. 1024+0 records out 
  20. 1073741824 bytes (1.1 GB, 1.0 GiB) copied, 4.63086 s, 232 MB/s 
  21. [root@server1 ~]# touch /data/file{1..10}.txt 

卸载、停用逻辑卷和卷组

下面卸载分区

  1. [root@server1 ~]# umount /data 

停用逻辑卷和卷组:

  1. [root@server1 ~]# lvchange -an /dev/vg_data/lvdata  
  2. [root@server1 ~]# vgchange -an vg_data 
  3.   0 logical volume(s) in volume group "vg_data" now active 
  4. [root@server1 ~]# lvs 
  5.   LV     VG      Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert 
  6.   root   cl      -wi-ao---- 15.00g                                                     
  7.   swap   cl      -wi-ao----  2.00g                                                     
  8.   lvdata vg_data -wi------- 79.98g 

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

导出卷组

在server1中导出卷组

  1. [root@server1 ~]# vgexport vg_data  
  2.   Volume group "vg_data" successfully exported 

导出之后,我们需要关闭server1系统。然后复制它的磁盘到server2中。

复制server1的磁盘到server2目录中

将server1的四个磁盘复制到server2虚拟机的目录中。下面可以看到带有*-000002.vmdk的文件,这是因为我做了快照。需要一起复制到server2中。

复制到server2目录中:

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

添加现有虚拟磁盘

打开server2的电源。如果发现开机无法引导系统,开机按f2进入bios,设置启动项,将存在系统的磁盘顺序调到最顶。

导入卷组

server2开机之后,使用pvscan扫描一下,新添加的磁盘是否可以检测到:

  1. [root@server2 ~]# pvscan  
  2.   PV /dev/nvme0n1p2   VG cl              lvm2 [<19.00 GiB / 0    free
  3.   PV /dev/sda          is in exported VG vg_data [<20.00 GiB / 0    free
  4.   PV /dev/sdb          is in exported VG vg_data [<20.00 GiB / 0    free
  5.   PV /dev/sdc          is in exported VG vg_data [<20.00 GiB / 0    free
  6.   PV /dev/sdd          is in exported VG vg_data [<20.00 GiB / 0    free
  7.   Total: 5 [98.98 GiB] / in use: 5 [98.98 GiB] / in no VG: 0 [0   ] 

下面使用vgs命令查看一下,可以看到vg_data卷组,但是可以看到属性,有一个x属性,这代表是外部的卷组。

  1. [root@server2 ~]# vgs 
  2.   VG      #PV #LV #SN Attr   VSize   VFree 
  3.   cl        1   2   0 wz--n- <19.00g    0  
  4.   vg_data   4   1   0 wzx-n-  79.98g    0  
  5. [root@server2 ~]# 

下面使用vgimport命令导入vg_data卷组:

  1. [root@server2 ~]# vgimport vg_data  
  2.   Volume group "vg_data" successfully imported 

可以看到x属性消失了。

激活卷组

下面使用lvs命令查看一下lvdata逻辑卷的属性:

  1. [root@server2 ~]# lvs 
  2.   LV     VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert 
  3.   root   cl      -wi-ao---- <17.00g                                                     
  4.   swap   cl      -wi-ao----   2.00g                                                     
  5.   lvdata vg_data -wi-------  79.98g 

发现没有a, o这两个属性。a表示激活、o表示是否挂载。

下面激活卷组:

  1. [root@server2 ~]# vgchange -ay vg_data  
  2.   1 logical volume(s) in volume group "vg_data" now active 
  3. [root@server2 ~]# lvs 
  4.   LV     VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert 
  5.   root   cl      -wi-ao---- <17.00g                                                     
  6.   swap   cl      -wi-ao----   2.00g                                                     
  7.   lvdata vg_data -wi-a-----  79.98g 

可以看到a属性显示了。

挂载文件系统

首先创建挂载点,然后挂载文件系统:

  1. [root@server2 ~]# mkdir /data 
  2. [root@server2 ~]# mount /dev/vg_data/lvdata /data/ 
  3. [root@server2 ~]# df -h /data 
  4. Filesystem                  Size  Used Avail Use% Mounted on 
  5. /dev/mapper/vg_data-lvdata   80G  1.6G   79G   2% /data 

再使用lvs命令查看一下,发现lvdata逻辑卷的o属性也显示了。

  1. [root@server2 ~]# lvs 
  2.   LV     VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert 
  3.   root   cl      -wi-ao---- <17.00g                                                     
  4.   swap   cl      -wi-ao----   2.00g                                                     
  5.   lvdata vg_data -wi-ao----  79.98g 

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

总 结

就这样我们已经成功完成了将卷组从一个系统移动到另一个系统的工作。

 

责任编辑:武晓燕 来源: Linux就该这么学
相关推荐

2022-11-13 19:23:47

GNOMEGNOME Boxe

2016-07-12 10:40:35

服务器

2018-05-24 16:20:46

Windows 10Windows许可证

2016-08-16 15:21:19

服务器

2016-11-11 14:58:48

IBM 服务器

2017-04-06 10:15:36

Samba系列Linux命令

2009-09-22 16:49:01

第一台服务器

2023-09-05 09:32:07

服务器Redis

2021-02-27 10:35:32

Windows

2014-09-18 10:15:54

2013-12-20 09:48:12

2019-01-21 10:12:32

计算机修复Windows 10

2016-08-31 14:16:55

LinuxLVM卷转移

2013-08-30 10:15:24

2019-11-18 15:36:20

NginxWebServer

2018-09-06 09:22:22

Linux系统服务器

2018-12-25 14:20:58

服务器命令Linux

2021-09-07 17:47:06

服务器开发数据

2019-01-04 11:20:03

服务器命令Linux

2022-05-31 10:38:50

Linux密码scp
点赞
收藏

51CTO技术栈公众号