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

Centos8中迁移逻辑卷

85次阅读
没有评论

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

导读 迁移逻辑卷是通过将分区从一个 PV(物理卷)移动至另一个 PV。迁移逻辑卷是替换磁盘最安全的方法之一。

将要执行迁移的方法是使用 pvmove 操作。

假设在我们的设置中,只有一个磁盘 /dev/sda1,大小为 20gb。此时 /dev/sda1处于故障警告状态,需要更换新的同等容量的硬盘。让我们使用 pvmove 选项将分区移动到一个新的 PV 中。

使用 pvmove 命令是通过将底层旧物理卷替换为新的物理卷。此外,使用文件系统的用户将不会注意到在底层发生的更改。

为什么需要迁移逻辑卷?

1. 更换故障磁盘。

2. 将现有的磁盘替换为较大的磁盘。

创建 PV、VG 和 LV
# 创建 PV
[root@localhost ~]# pvcreate /dev/sda1 
  Physical volume "/dev/sda1" successfully created.
# 创建 VG
[root@localhost ~]# vgcreate vg_data /dev/sda1 
  Volume group "vg_data" successfully created
# 创建 LV,使用所有空间。[root@localhost ~]# lvcreate -l 100%FREE -n lv_data vg_data
  Logical volume "lv_data" created.

Centos8 中迁移逻辑卷
创建完成之后格式化并挂载文件系统。

[root@localhost ~]# mkfs.xfs /dev/vg
[root@localhost ~]# mkfs.xfs /dev/vg_data/lv_data 
[root@localhost ~]# mkdir /data
[root@localhost ~]# mount /dev/vg_data/lv_data /data

Centos8 中迁移逻辑卷

列出现有的逻辑卷

下面列出逻辑卷使用率:

[root@localhost ~]# df -h /data
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/vg_data-lv_data   20G  2.2G   18G  11% /data

Centos8 中迁移逻辑卷
下面列出所有的物理卷、卷组、逻辑卷:

[root@localhost ~]# pvs
  PV             VG      Fmt  Attr PSize   PFree 
  /dev/nvme0n1p2 cl      lvm2 a--  <19.00g <2.00g
  /dev/sda1      vg_data lvm2 a--  <20.00g     0 
[root@localhost ~]# vgs
  VG      #PV #LV #SN Attr   VSize   VFree 
  cl        1   2   0 wz--n- <19.00g <2.00g
  vg_data   1   1   0 wz--n- <20.00g     0 
[root@localhost ~]# 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                                                    
  lv_data vg_data -wi-a----- <20.00g

Centos8 中迁移逻辑卷
下面检验一下逻辑卷使用到的磁盘是哪块,使用 lvs 命令并使用 -o +devices 选项,可以显示逻辑卷使用到的是哪块磁盘:

[root@localhost ~]# lvs -o +devices /dev/vg_data/lv_data
  LV      VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices     
  lv_data vg_data -wi-ao---- <20.00g                                                     /dev/sda1(0)

Centos8 中迁移逻辑卷
使用 dmsetup 命令获取逻辑卷的主编号和次编号。

[root@localhost ~]# dmsetup deps /dev/vg_data/lv_data 
1 dependencies : (8, 1)

记住主编号和次编号。一旦我们将故障 PV 替换为另一个 PV,它将改变。

开始迁移逻辑卷

可以通过运行 pvmove 命令来执行逻辑卷的迁移。下面首先开始创建一个新的物理卷:

[root@localhost ~]# pvcreate /dev/sdb1 
  Physical volume "/dev/sdb1" successfully created.

Centos8 中迁移逻辑卷
然后将新创建的物理卷添加到已存在的卷组中,下面图中可看到 vg_data 卷组容量增加了:

[root@localhost ~]# vgextend vg_data /dev/sdb1 
  Volume group "vg_data" successfully extended

Centos8 中迁移逻辑卷
使用 pvs 命令添加 -o +pv_used 选项可以显示物理卷的使用情况:

[root@localhost ~]# pvs -o +pv_used
  PV             VG      Fmt  Attr PSize   PFree   Used   
  /dev/nvme0n1p2 cl      lvm2 a--  <19.00g  <2.00g  17.00g
  /dev/sda1      vg_data lvm2 a--  <20.00g      0  <20.00g
  /dev/sdb1      vg_data lvm2 a--  <20.00g <20.00g      0

Centos8 中迁移逻辑卷
下面就可以使用 pvmove 命令迁移逻辑卷啦,下面是用法:

# pvmove -n   

下面是常用选项解释:

  • -n 指定逻辑卷的名称。
  • -b 可以添加 - b 选项,意思是在后台运行,如果容量大,文件多可以配合 screen 在后台运行。
  • -i 5 表示每 5 秒打印一次状态。

下面将逻辑卷 lv_data 从 /dev/sda1 迁移到 /dev/sdb1 中:

[root@localhost ~]# pvmove -n /dev/vg_data/lv_data /dev/sda1 /dev/sdb1 
  /dev/sda1: Moved: 1.29%
  /dev/sda1: Moved: 39.99%
  /dev/sda1: Moved: 73.90%
  /dev/sda1: Moved: 100.00%

Centos8 中迁移逻辑卷
迁移完成后,运行命令 lvs -o +devices。在这里,我们看到旧磁盘/dev/sda1 已经被 /dev/sdb1 替换了。

[root@localhost ~]# lvs -a -o +devices /dev/vg_data/lv_data
  LV      VG      Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices     
  lv_data vg_data -wi-ao---- <20.00g                                                     /dev/sdb1(0)

Centos8 中迁移逻辑卷
运行 pvs -o +pv_used 命令查看可看到,/dev/sda1 使用空间为 0。/dev/sdb1 的使用空间用满了。

[root@localhost ~]# pvs -o +pv_used
  PV             VG      Fmt  Attr PSize   PFree   Used   
  /dev/nvme0n1p2 cl      lvm2 a--  <19.00g  <2.00g  17.00g
  /dev/sda1      vg_data lvm2 a--  <20.00g <20.00g      0 
  /dev/sdb1      vg_data lvm2 a--  <20.00g      0  <20.00g

与此同时我们检查一下 /data 目录中的内容仍然保留,逻辑卷仍然挂载着。这就说明迁移逻辑卷的时候不影响用户使用该逻辑卷。

[root@localhost ~]# df -h /data
Filesystem                   Size  Used Avail Use% Mounted on
/dev/mapper/vg_data-lv_data   20G  2.2G   18G  11% /data[root@localhost ~]# ll /data/
total 2097152
-rw-r--r-- 1 root root 2147483648 Apr 26 15:17 disk.img

Centos8 中迁移逻辑卷

移除故障磁盘

下面我们可以使用 vgreduce 命令将故障的物理卷移除。

[root@localhost ~]# vgreduce vg_data /dev/sda1 
  Removed "/dev/sda1" from volume group "vg_data"

Centos8 中迁移逻辑卷
移除故障的物理卷:

[root@localhost ~]# pvremove /dev/sda1 
  Labels on physical volume "/dev/sda1" successfully wiped.

下面使用 dmsetup 命令查看逻辑卷的主编号和次编号是否变了:

[root@localhost ~]# dmsetup deps /dev/vg_data/lv_data 
1 dependencies : (8, 17)

Centos8 中迁移逻辑卷
就这样,我们已经完成迁移逻辑卷了。

总结

本文使用了 pvmove 命令从逻辑卷迁移数据而无需停机。

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