温馨提示×

centos分卷如何进行磁盘扩容

小樊
44
2025-12-15 17:58:11
栏目: 智能运维

CentOS 分卷磁盘扩容实操指南

一、前置判断与准备

  • 确认是否使用 LVM:执行 lsblk、df -Th、pvs、vgs、lvs,若看到 /dev/mapper/centos-root/dev/centos/home 这类名称,基本就是 LVM;同时确认文件系统类型:ext4 用 resize2fsxfs 用 xfs_growfs
  • 备份关键数据,尽量在维护窗口操作;根分区在线扩容风险较低,但操作前快照/备份更稳妥。
  • 若是虚拟机或云盘,先在控制台把磁盘容量扩大,再进系统扩容分区与 LVM。
  • 新增磁盘未被识别时,可触发 SCSI 总线重扫:
    for i in $(ls /sys/class/scsi_host/); do echo “- - -” > /sys/class/scsi_host/$i/scan; done
    之后用 fdisk -llsblk 确认新盘出现。

二、场景一 新增磁盘扩容到卷组 VG(最通用)

  • 识别新盘:lsblk/fdisk -l;必要时执行上面的 SCSI 重扫。
  • 分区并创建 PV(示例为整盘或单分区,类型选 Linux LVM 8e):
    • fdisk:n → p → t → 8e → w
    • 或 parted:mkpart primary ext4 1MiB 100%(LVM 分区类型)
  • 创建物理卷:pvcreate /dev/sdb1(或整盘 /dev/sdb,视分区方案而定)。
  • 扩容卷组:vgextend centos /dev/sdb1(卷组名以实际为准,常见为 centos)。
  • 扩容逻辑卷:
    • 指定容量:lvextend -L +20G /dev/centos/root
    • 用尽剩余空间:lvextend -l +100%FREE /dev/centos/root
  • 扩容文件系统:
    • ext2/3/4:resize2fs /dev/centos/root
    • xfs:xfs_growfs /dev/centos/root(或 xfs_growfs /)
  • 验证:df -h 查看容量是否已增加。

三、场景二 原有磁盘扩容(扩大底层磁盘后)

  • 扩大底层磁盘后,先让系统识别新大小:
    • 推荐:partprobe /dev/sda(或 partx -u /dev/sda)
    • 备选:echo 1 > /sys/class/block/sda/device/rescan
  • 调整分区大小(以 /dev/sda3 为例,LVM 分区):
    • parted /dev/sda
      • (parted) print free
      • (parted) resizepart 3 100%(或输入新的结束扇区/大小)
      • 如遇 GPT 提示,选择 Fix 修复备份 GPT 表
  • 让 PV 识别新增扇区:pvresize /dev/sda3
  • 扩容 LV:lvextend -l +100%FREE /dev/centos/root
  • 扩容文件系统:
    • ext4:resize2fs /dev/centos/root
    • xfs:xfs_growfs /dev/centos/root
  • 验证:df -h、lvs、vgs 查看空间变化。

四、场景三 从其他逻辑卷挪空间(如把 /home 腾给 /)

  • 原则:ext4 可在线缩小;xfs 不支持缩小。因此 xfs 场景需备份-重建-恢复。
  • ext4 方案(在线缩小 /home 后扩容 /):
    1. 检查并缩小文件系统到目标大小(需小于当前已用):e2fsck -f /dev/centos/home && resize2fs /dev/centos/home 50G
    2. 缩小 LV:lvreduce -L 50G /dev/centos/home
    3. 扩容根 LV:lvextend -l +100%FREE /dev/centos/root
    4. 扩容根文件系统:resize2fs /dev/centos/root
  • xfs 方案(备份-重建-恢复):
    1. 备份 /home:rsync -a /home/ /tmp/home_backup/
    2. 进入救援模式或确保 /home 无占用后卸载:umount /home
    3. 删除并重建更小的 /home LV:lvremove /dev/centos/home;lvcreate -L 100G -n home centos
    4. 格式化并挂载:mkfs.xfs /dev/centos/home;mount /dev/centos/home /home
    5. 恢复数据:rsync -a /tmp/home_backup/ /home/;必要时更新 /etc/fstab 的 UUID(blkid 查看)
    6. 将剩余空间给根:lvextend -l +100%FREE /dev/centos/root;xfs_growfs /

五、常用命令速查与排错要点

  • 常用命令
    • 查看:lsblk、df -Th、pvs、vgs、lvs、pvdisplay、vgdisplay、lvdisplay
    • 扩容:vgextend、lvextend -l +100%FREE / -L +10G
    • 文件系统:resize2fs(ext4)、xfs_growfs(xfs)
  • 排错要点
    • 新盘未识别:执行 SCSI 重扫或 partprobe;确认分区类型为 8e(LVM)。
    • 扩容后 df 未变化:忘记执行文件系统扩容(xfs_growfs/resize2fs)。
    • xfs 无法缩小:先备份,再重建 LV 并恢复数据。
    • 虚拟机/云盘:务必先在控制台扩容磁盘,再进系统执行分区与 LVM 步骤。

0