阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

108次阅读
没有评论

共计 4452 个字符,预计需要花费 12 分钟才能阅读完成。

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

两台 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 卷移动到另一台服务器中
创建挂载点、格式化分区、挂载分区、写入数据:

[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 卷移动到另一台服务器中

卸载、停用逻辑卷和卷组

下面卸载分区

[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 卷移动到另一台服务器中

导出卷组

在 server1 中导出卷组

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

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

复制 server1 的磁盘到 server2 目录中

将 server1 的四个磁盘复制到 server2 虚拟机的目录中。下面可以看到带有 *-000002.vmdk 的文件,这是因为我做了快照。需要一起复制到 server2 中。
如何将 lvm 卷移动到另一台服务器中
复制到 server2 目录中:
如何将 lvm 卷移动到另一台服务器中
打开 server2 的“编辑虚拟机设置”
如何将 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 卷移动到另一台服务器中
下面使用 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 卷移动到另一台服务器中
下面使用 vgimport 命令导入 vg_data 卷组:

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

如何将 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 卷移动到另一台服务器中
发现没有 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 卷移动到另一台服务器中
可以看到 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 卷移动到另一台服务器中
再使用 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 卷移动到另一台服务器中

总结

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

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2024-07-25发表,共计4452字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中