LVM安全移除一个物理卷

场景

  • 前期规划给了太多磁盘,实际用不到那么多,需要移除一个物理硬盘
  • 当前LV总占用小于需要保留的硬盘容量
  • 保留的物理卷未分配给lv的空间必须小于文件总容量,下面是一个参考

需要保留sdb,移除sdc
vg总大小:4G

可迁移

lv总使用量: 1.5G

物理卷物理卷大小lv总分配量
sdb2G500M
sdc2G500M

不可迁移

lv总使用量: 3G

物理卷物理卷大小lv总分配量
sdb2G1.5G
sdc2G1G

技巧

root@debian:/# pvs
  PV         VG  Fmt  Attr PSize  PFree 
  /dev/sdb1  lvg lvm2 a--  <2.00g <2.00g
  /dev/sdc1  lvg lvm2 a--  <2.00g 20.00m
root@debian:/# 

通过pvs命令可以看到每个物理磁盘的空闲(PFree )大小,通过这个大小就可以知道结论

需要保留的物理磁盘空闲总lv使用大小迁移
1G500M
1G1.5G
  • 如果需要移除的设备PSize减去PFree 的值小于需要保留的设备PFree 则可以迁移并移除

  • 如果需要移除的设备PSize和自身PFree 的值一致说明这个磁盘并没有使用到,可以直接移除,不需要迁移数据

  • 如果需要移除的设备PSize减去PFree 的值大于需要保留的设备PFree 则可以无法迁移和移除

其他

Lvm创建请看: 从零开始创建LVM分区方案

配置

环境信息

root@debian:/# lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  d1   lvg -wi-ao---- 500.00m                                                    
  d2   lvg -wi-ao---- 500.00m                                                    
  d3   lvg -wi-ao----   1.00g                                                    
root@debian:/# vgs
  VG  #PV #LV #SN Attr   VSize VFree 
  lvg   2   3   0 wz--n- 3.99g <2.02g
root@debian:/# 

写入文件

root@debian:/# ls d1 d2 d3
d1:
DSM_VirtualDSM_42661.pat  lost+found

d2:
DSM_DS918+_42962.pat  lost+found

d3:
d3.pat  lost+found
root@debian:/# df -h
Filesystem          Size  Used Avail Use% Mounted on
udev                953M     0  953M   0% /dev
tmpfs               197M  560K  196M   1% /run
/dev/sda2            30G  4.1G   25G  15% /
tmpfs               981M     0  981M   0% /dev/shm
tmpfs               5.0M     0  5.0M   0% /run/lock
/dev/sda1           511M  5.9M  506M   2% /boot/efi
tmpfs               197M  4.0K  197M   1% /run/user/0
/dev/mapper/lvg-d1  459M  326M  104M  76% /d1
/dev/mapper/lvg-d2  459M  347M   84M  81% /d2
/dev/mapper/lvg-d3  1.5G  347M  1.1G  26% /d3
root@debian:/# 

迁移数据

语法

在移除硬盘之前,需要先迁移数据

pvmove命令用于将源物理卷上的物理盘区移动到一个或多个其他的目标物理卷。其基本语法格式为:

pvmove [选项] [源物理卷[:PE[-PE]...] [目标物理卷[:PE[-PE]...]...]]

这里是一些常用选项和实例:

常用选项:
--abort:中止正在进行的任何移动。
实例:
移动物理卷/dev/sda5上的所有物理盘区:

pvmove /dev/sda5

将源物理卷/dev/sda5上的物理盘区移动到物理卷/dev/sda6上:

pvmove /dev/sda5 /dev/sda6

将源物理卷/dev/sda5上的物理盘区1000~1999移动到物理卷/dev/sda6上:

pvmove /dev/sda5:1000-1999 /dev/sda6

在执行pvmove命令之前,确保目标物理卷有足够的空间来容纳源物理卷上的数据,并且目标物理卷没有被其他逻辑卷使用。可以通过pvdisplay命令来查看物理卷的状态和使用情况。

需要注意的是,pvmove命令的执行可能需要一些时间,具体取决于数据的大小和系统的性能。在数据迁移过程中,建议避免对涉及的物理卷进行其他操作,以防止数据丢失或系统不稳定。

实践

sdc的数据迁移到sdb

root@debian:/# pvmove /dev/sdc1 /dev/sdb1 
  /dev/sdc1: Moved: 0.40%
  /dev/sdc1: Moved: 24.70%
  /dev/sdc1: Moved: 49.41%
  /dev/sdc1: Moved: 100.00%
root@debian:/# 

执行结束之后,查看pv信息

root@debian:/# pvs
  PV         VG  Fmt  Attr PSize  PFree 
  /dev/sdb1  lvg lvm2 a--  <2.00g 20.00m
  /dev/sdc1  lvg lvm2 a--  <2.00g <2.00g
root@debian:/# 

此时可以看到,数据已经全部在sdb1

从VG中移除

vgreduce lvg /dev/sdc1
root@debian:/# vgreduce lvg /dev/sdc1
  Removed "/dev/sdc1" from volume group "lvg"
root@debian:/# 

从pv中移除

root@debian:/# pvs
  PV         VG  Fmt  Attr PSize  PFree 
  /dev/sdb1  lvg lvm2 a--  <2.00g 20.00m
  /dev/sdc1      lvm2 ---  <2.00g <2.00g
root@debian:/# pvremove /dev/sdc1 
  Labels on physical volume "/dev/sdc1" successfully wiped.
root@debian:/# pvs
  PV         VG  Fmt  Attr PSize  PFree 
  /dev/sdb1  lvg lvm2 a--  <2.00g 20.00m
root@debian:/# 

可以看到,此时的pv已经没有sdc1

root@debian:/# vgs
  VG  #PV #LV #SN Attr   VSize  VFree 
  lvg   1   3   0 wz--n- <2.00g 20.00m
root@debian:/# 

vg的总大小也变化了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

坐公交也用券

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值