温馨提示×

centos分卷如何进行磁盘缩容

小樊
34
2025-12-15 17:59:03
栏目: 智能运维

CentOS 分卷缩容实操指南

一、前置判断与准备

  • 确认是否为 LVM:执行 pvs / vgs / lvs,若能看到 PV/VG/LV 信息,说明是 LVM 管理;若不是 LVM,则属于传统分区,步骤完全不同且风险更高。
  • 确认文件系统类型:执行 blkid /dev/mapper/-df -T。若是 xfs,请注意其不支持在线或离线缩小;若是 ext2/ext3/ext4,可按本文步骤缩容。
  • 备份与停机窗口:缩容有数据风险,务必先完整备份;尽量在停机窗口操作,避免业务写入。
  • 基本检查:用 df -h 确认已用空间小于目标大小;用 lsblk 理清磁盘与分区关系。

二、ext2/ext3/ext4 分卷缩容步骤(LVM)

  • 原则与顺序:先缩小文件系统,再缩小逻辑卷;缩容前文件系统必须处于“干净”状态。
  • 步骤概览:
    1. 卸载目标逻辑卷(非根分区):umount /mount_point;若提示忙,用 fuser -m /mount_point 查占用并停掉相关进程。
    2. 强制检查并缩小文件系统:e2fsck -f /dev/mapper/-;resize2fs /dev/mapper/- <目标大小(如 20G)>。
    3. 缩小逻辑卷:lvreduce -L <目标大小> /dev/mapper/-(大小需与文件系统一致或更大一点,避免数据截断)。
    4. 重新挂载并验证:mount /mount_point;df -h;lsblk。
  • 示例(将 /home 缩到 20G):
    umount /home
    e2fsck -f /dev/mapper/centos-home
    resize2fs /dev/mapper/centos-home 20G
    lvreduce -L 20G /dev/mapper/centos-home
    mount /home
    df -h
  • 提示:resize2fs 支持按“绝对大小”或“增减量”调整;缩容时务必确保目标大小≥已用空间。

三、根分区缩容与把空间给其它逻辑卷

  • 难点:根分区(/)通常在线且无法卸载,不能直接缩容。
  • 推荐做法:
    • 方案 A(通用):进入救援/单用户环境(如 LiveCD/救援模式),激活 LVM 后按“ext4 缩容流程”先对根文件系统做离线缩小,再缩小 LV,最后重启。
    • 方案 B(更稳妥):先备份 /home,清空或缩小 /home 的 LV,再把空闲空间扩展到根 LV;适用于 /home 可暂时离线的场景。
  • 将空闲空间给根分区的示例(ext4):
    lvextend -l +100%FREE /dev/mapper/centos-root
    resize2fs /dev/mapper/centos-root
    df -h
  • 要点:根分区缩容务必在救援模式完成;若 /home 为 xfs,不能直接缩小,可先备份后重建为 ext4 再缩容,或采用方案 B 迁移空间。

四、缩容后空间回收与 PV 移除(可选)

  • 查看空闲空间:vgdisplay 或 vgs 查看 Free PE/Size
  • 迁移数据(如需移除某块盘):pvmove /dev/sdX(将数据迁走)。
  • 从卷组移除磁盘:vgreduce /dev/sdX。
  • 清理物理卷:pvremove /dev/sdX。
  • 注意:迁移/移除前确保数据已备份,且 VG 中有足够可用空间承接迁移。

五、常见陷阱与建议

  • 文件系统限制:xfs 不支持缩小,只能增大(xfs_growfs);需要缩容时请使用 ext4 或先迁移数据后重建文件系统。
  • 顺序不能颠倒:缩容必须先 resize2fslvreduce;扩容则相反(先 lvextend 再 resize2fs)。
  • 大小边界:目标大小必须≥实际已用空间;缩容过度会导致数据损坏。
  • 在线与离线:LV 缩小通常要求卸载(根分区需救援模式);扩展某些场景可在线,但缩容不建议在线。
  • 校验与回滚:每一步后用 df -h / lsblk / blkid 校验;重要数据务必有可用备份与回滚方案。

0