在RHEL/CentOS中如何缩小 LVM 卷

与增加 LVM 卷大小不同,要缩小卷,我们需要卸载文件系统。
无法在线缩小 LVM 卷。

在缩小卷之前,请确保我们已备份安装点。
缩小卷有可能导致数据损坏。

  1. 在这篇文章的示例中,我们在挂载点 /data01 上挂载了一个卷 /dev/data_vg/lv_data01 :
# df -hP | grep data01
/dev/mapper/data_vg-lv_data01  976M  2.6M  907M   1% /data01
# lvs
  LV         VG      Attr       LSize   Pool Oroirn Data%  Move Log Cpy%Sync Convert
  root       centos  -wi-ao----  17.51g
  swap       centos  -wi-ao----   2.00g
  lv_data01  data_vg -wi-ao----   1.00g
  1. 在缩小卷之前,先卸载挂载点并在其上运行 fsck。
# umount /data01
# e2fsck -f /dev/data_vg/lv_data01
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/data_vg/lv_data01: 11/65536 files (0.0% non-contiguous), 12955/262144 blocks
  1. 将文件系统缩小到所需的大小。
    在我们的例子中,我们会将体积从 1G 减少到 800MB。
# lvreduce -r -L 500M /dev/data_vg/lv_data01
fsck from util-linux 2.23.2
/dev/mapper/data_vg-lv_data01: clean, 11/65536 files, 12955/262144 blocks
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/mapper/data_vg-lv_data01 to 128000 (4k) blocks.
The filesystem on /dev/mapper/data_vg-lv_data01 is now 128000 blocks long.
  Reducing logical volume lv_data01 to 500.00 MiB
  Logical volume lv_data01 successfully resized
  1. 再次挂载文件系统并验证新的大小。
# mount -t ext4 /dev/data_vg/lv_data01 /data01
# df -hP | grep data01
/dev/mapper/data_vg-lv_data01  460M  1.6M  424M   1% /data01
# lvs
  LV         VG      Attr       LSize   Pool Oroirn Data%  Move Log Cpy%Sync Convert
  root       centos  -wi-ao----  17.51g
  swap       centos  -wi-ao----   2.00g
  lv_data01  data_vg -wi-ao---- 500.00m
日期:2020-09-17 00:12:40 来源:oir作者:oir