记一次阿里云硬盘LVM的扩容

正式环境:mail实例:centos 6.9 内核版本:2.6.32
测试环境: test实例:centos 7.7 内核版本:3.10.0
需求:centos 6.9的ECS实例中,5块高效云盘,1块系统盘,4块组成了lvm,挂载了iradpad邮箱服务的数据存储,磁盘空间500G,占用超过80%,需要扩容

LVM的制作步骤:
yum -y install lvm2
pvcreate /dev/vdb /dev/vdv /dev/vdd
pvs | pvdisplay
vgcreate lvm_01 /dev/vdb /dev/vdc /dev/vdd
vgs | vgdisplay
lvcreate -L 50G -n lv01 lvm_01
lvs | lvdisplay
mkfs.xfs /dev/lvm_01/lv01
mount /dev/lvm_01/lv01 /test/
df -h
lsblk
blkid

方案1:直接选择云盘在线扩容,LVM扩容
正式环境:centos7以下版本不支持云盘的在线扩容,也没有对应的扩容工具
测试环境:可以扩容,但有一些注意事项
扩容步骤:
1.阿里云控制台选择其中一块进行在线扩容
2.下载阿里云在线云盘扩容命令
yum -y install cloud-utils-growpart xfsprogs

3.查看是否有新增的磁盘空间
fdisk -l /dev/vda
growpart /dev/vda (如果是磁盘下分区需要扩容,比如:扩容第一个分区,growpart /dev/vda 1)

4.对pv卷组内的磁盘进行刷新,重新读取(重点)
pvresize /dev/vdc
vgs

5.将新加空间添加到逻辑卷及xfs文件系统中
lvextend -l +100%FREE /dev/mapper/lvm_01-lv01
xfs_growfs /dev/mapper/lvm_01-lv01

方案2:新建块云盘到LVM中,LVM扩容
证书环境:实现成功
测试环境:实现成功
扩容步骤:
1.阿里云控制台新增磁盘并挂载到ecs
2.将新增磁盘pv化
pvcreate /dev/vde
pvs

3.将pv化的新盘加到vg卷组中
vgextend lvm_01 /dev/vde
vgs

4.扫描卷组,刷新vg卷组信息(因我在新增新盘前就做了在线扩容,导致LVM信息和之前不一致,步骤3执行失败)(重点)
vgscan 或 vgdisplay

5.将新加空间添加到逻辑卷及xfs文件系统中
lvextend -l +100%FREE /dev/mapper/lvm_01-lv01
xfs_growfs /dev/mapper/lvm_01-lv01

方案3:新添加块硬盘,将LVM数据迁移到新盘,将LVM废弃
优点:方便管理和备份。LVM所在磁盘备份困难,恢复可能出现问题
难点:小文件太多,长时间同步到新盘,会造成服务器资源OOM,将部分服务杀死,邮箱服务属于线上服务不能暂停,而且属于陌生项目,出现故障无法排故解决,iradpad文档稀少
临时方案:数据目录下文件按批次同步到新盘,作为冗余,如果LVM出现故障方便切换和回滚

题外话:LVM缩容(xfs系统)
注意事项:ext4缩容比较方便,但是xfs系统不建议缩容,隐患问题会比较严重

(一)ext4系统缩容(未验证)
转发https://www.cnblogs.com/cheyunhua/p/14195518.html

  1. 卸载设备
    umount /mnt

  2. 进行磁盘检查
    e2fsck -f /dev/VolGroup/lv_mnt

  3. 收缩文件系统
    resize2fs /dev/VolGroup/lv_mnt 3G

  4. 收缩LV
    lvreduce -L -2G /dev/VolGroup/lv_mnt

  5. 将PE移动到空闲的地方
    查看哪些PV上有空闲的PE
    pvdisplay | grep 'PV Name| Free'
    将PE移动到有空闲PE的PV上
    pvmove /dev/sdb6:0-99 /dev/sdb4

  6. 从VG中移除PV
    vgreduce VolGroup /dev/sdb6

  7. 移除该PV
    pvremove /dev/sdb6

(二)xfs系统缩容:(有备份较安全)
转载https://blog.51cto.com/zhukeqiang/2471926(未验证)
ext4文件系统,扩容和缩减容量都比较慢,我喜欢用xfs文件系统。
但是今天我才知道xfs的lvm不能直接在线缩减空间,所以一定注意,xfs文件系统的lvm分区,尽量往小了分,一旦上线就只扩不减!
如果你强行用以前ext4文件系统的lvm扩容方法去缩减空间,会导致出现superblock错误无法挂载非常坑的。

万不得已需要缩减xfs文件系统的lvm分区空间时候,一定要注意顺序。

1.安装xfs备份工具
yum install -y xfsdump

2.目标数据备份。以/home为例。
xfsdump -f “dump文件存放的绝对路径加文件名” “需要缩减容量的目录”
比如 xfsdump -f /opt/home.dump /home

3.卸载你挂载的目录
umount /home

4.把你原来的逻辑卷变成7G是扩大还是缩小它自己会判断
lvresize -L 7G /dev/mapper/centos-home

5.格式化以更新到最新大小
mkfs.xfs -f /dev/mapper/centos-home

6.挂载出来空分区
mount /dev/mapper/centos-home

7.把dump的数据恢复
xfsrestore -f /opt/home.dump /home

(三)LVM缩减物理卷
1.卸载逻辑卷挂载点
umount /test
2.缩容逻辑卷空间
lvreduce -L 50G /dev/mapper/lvm_01-lv01
3.移除lvm_01卷组中/dev/vde物理卷
vgreduce lvm_01 /dev/vde
4.移除/dev/vde物理卷
pvremove /dev/vde
5.查看磁盘情况
lsblk
df -h

原文地址:https://www.cnblogs.com/wangchengshi/p/15598843.html