扩展lvm卷

这是很久以前一个项目工作案例:由于用户数据增长过快,导致一个LVM卷文件文件系统爆满,用户无法存储数据。紧急将原先项目预留的空间划分给该逻辑卷。

存储设备是一台外置的SCSI RAID存储器,在项目最初部署的时候,对存储裸磁盘采用LVM构建了卷管理,以便能够根据项目用户数据使用情况灵活调整。

LVM卷说明

项目有一个存储卷空间爆满

df -h

显示输出存储卷已经爆满:

Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VGdata-LVe3
                      493G  468G     0 100% /email/e3

不过在以前建设的时候,实际上已经预留了空间。(存储有1.2T空间预留)

  • VG检查

vgdisplay

显示VG中

  --- Volume group ---
  VG Name               VGdata
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  7
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
  Open LV               4
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               3.59 TB
  PE Size               4.00 MB
  Total PE              940543
  Alloc PE / Size       614400 / 2.34 TB
  Free  PE / Size       326143 / 1.24 TB
  VG UUID               pald22-Q2AX-XuIZ-hk47-i5hv-wZ0j-zJb5JW

这里可以看到Free PE显示存储有大约1.2T空间预留。

  • LV检查 - 可以看到 /dev/mapper/VGdata-LVe3 这个逻辑卷 (LV Name /dev/VGdata/LVe3)当前空间是500G(LV Size 500.00 GB

lvdisplay
  --- Logical volume ---
  LV Name                /dev/VGdata/LVe3
  VG Name                VGdata
  LV UUID                om73A6-cmv6-tbRK-od8I-KgKL-r9E5-UQdayr
  LV Write Access        read/write
  LV Status              available
  # open                 1
  LV Size                500.00 GB
  Current LE             128000
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:0

扩展逻辑卷

  • 给卷LVe3添加300G空间

lvextend -L+300G /dev/VGdata/LVe3
  • 停止挂载该卷的NFS服务(针对案例可选,需要确保无读写访问文件系统才能卸载该卷上的文件系统)

扩展ext文件系统的时候,需要先umount文件系统,此时需要停止访问这个文件系统

修改 /etc/exports 注释掉 /email/e3 卷输出

#/email/e3  10.1.1.0/24(rw,sync,no_root_squash)

重新输出NFS

exportfs -r
  • 然后卸载文件系统挂载

umount /email/e3
  • 扩展文件系统

resize2fs /dev/VGdata/LVe3

如果时间宽裕,不采用任何参数的resize2fs命令会提示需要先fsck磁盘设备。

但是,由于是故障抢修,并且有把握存储服务器没有出现过意外断电等非常情况,文件系统可以保证完整的,则可以跳过fsck过程。

注:对于邮件存储海量文件系统,500G的存储空间进行fsck是一个非常漫长的过程,在故障抢修过程中可能是不愿意花费这个时间的(前提是文件系统是可靠的,否则还是不要冒险忽略这个fsck过程)。

添加-f参数来使用resize2fs命令以忽略fsck过程:

resize2fs -f /dev/VGdata/LVe3
  • 扩展完成后再挂载文件系统

mount -t ext3 /dev/VGdata/LVe3 /email/e3

Ext4文件系统支持在线扩展

参考Resizing an Ext4 File System:

ext4文件系统支持在线(mounted)扩展,但是如果要收缩(decrease)文件系统,则需要先卸载(umounted)。但是,需要注意,扩展mounted在线状态的ext4文件系统,需要确保已经激活了resize_inode共嫩,否则就需要先卸载才能resize2fsExtending a Mounted Ext4 File System on LVM in Linux)。

以下命令检查逻辑卷是否支持resize_inode

sudo tune2fs -l /dev/mapper/fedora-home | grep resize_inode

输出显示特性有resize_inode

Filesystem features:      has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize

减小LVM卷分区的操作参考缩小lvm卷

参考

Last updated