温馨提示×

centos虚拟机如何管理磁盘空间

小樊
36
2025-11-23 18:02:09
栏目: 云计算

CentOS 虚拟机磁盘空间管理

一 快速排查与清理

  • 查看整体占用:df -h,定位高占用挂载点(如 //var/opt)。
  • 定位大目录与大文件:sudo du -sh /* 2>/dev/null | sort -hr | head -n 20
  • 常见清理项:
    • 清理 YUM/DNF 缓存:sudo dnf clean allsudo yum clean all
    • 清理 systemd 日志:sudo journalctl --vacuum-time=7d(保留最近 7 天)。
    • 清理旧日志文件:sudo find /var/log -type f -name "*.gz" -mtime +7 -delete
    • Docker 场景:清理无用镜像/容器/卷(如 docker system prune -af --volumes),或迁移 /var/lib/docker 到大盘后再软链或改配置。
  • 原则:先确认占用来源,再定向清理,避免误删业务数据。

二 扩容方案总览

  • 方案 A 加新磁盘:在宿主机/平台给虚拟机新增一块虚拟磁盘,分区并格式化后挂载到如 /data,再把占用大的目录(如 /var/lib/docker/opt)迁移过去,长期可解压根分区压力。
  • 方案 B 扩展现有虚拟磁盘:在 VMware/VirtualBox/云平台把虚拟盘容量调大,然后在系统内识别新增空间并扩容分区/逻辑卷/文件系统。
  • 方案 C 使用 LVM:若安装时使用了 LVM,扩容更灵活,可直接扩展 PV/VG/LV 并调整文件系统大小。
  • 方案选择建议:无停机需求且平台支持时优先“扩展现有盘”;已有 LVM 优先用 LVM;临时缓解或结构性分离数据时选“加新盘并迁移目录”。

三 操作步骤范式

  • 步骤 1 识别现状
    • lsblkfdisk -ldf -h 确认磁盘、分区、挂载点与文件系统类型(如 xfsext4)。
  • 步骤 2 在宿主机/平台扩容虚拟盘
    • VMware/VirtualBox:关机或在线(部分平台支持)调整虚拟磁盘大小;云上在控制台扩容云盘。
  • 步骤 3 让系统识别新增空间
    • 新增磁盘:多数场景无需重启,系统会自动识别。
    • 扩展已有盘:
      • SCSI 总线重扫(常用于 VMware,无需重启):
        • ls /sys/class/scsi_host/ 查看 host 号;
        • 对每个 host 执行:echo "- - -" > /sys/class/scsi_host/hostX/scan
        • 或按设备重扫:echo 1 > /sys/class/scsi_device/<id>/device/rescan
      • 分区表变更后:sudo partprobe /dev/sda 让内核重读分区表。
  • 步骤 4 分区与格式化(两种典型路径)
    • 路径 1 非 LVM:
      • 分区:sudo fdisk /dev/sda(n 新建,w 保存);
      • 格式化:
        • XFS:sudo mkfs.xfs /dev/sdaX
        • EXT4:sudo mkfs.ext4 /dev/sdaX
      • 挂载:sudo mount /dev/sdaX /data
      • 开机自动挂载:将 /dev/sdaX /data xfs/ext4 defaults 0 0 写入 /etc/fstab
    • 路径 2 LVM:
      • 创建物理卷:sudo pvcreate /dev/sdaX
      • 扩展卷组:sudo vgextend <vg_name> /dev/sdaX(可用 vgs/vgdisplay 查看卷组名);
      • 扩展逻辑卷:sudo lvextend -L +<size>G /dev/mapper/<vg>-<lv>-l +100%FREE 用尽剩余空间;
      • 扩展文件系统:
        • XFS:sudo xfs_growfs <挂载点>(如 /);
        • EXT4:sudo resize2fs /dev/mapper/<vg>-<lv>
  • 步骤 5 迁移大目录并重用空间(可选)
    • 例:迁移 Docker 数据
      • sudo systemctl stop docker
      • sudo mv /var/lib/docker /data/docker
      • sudo ln -s /data/docker /var/lib/docker(或改 Docker 配置中的 data-root)
      • sudo systemctl start docker
  • 步骤 6 验证
    • df -hlsblkvgs/lvs 确认容量已生效。

四 常见陷阱与建议

  • 扩展已有盘时,若看到 Extended/Logical 分区:扩展的是 sda4(扩展分区),真正可挂载的是其内的 sda5/sda6…(逻辑分区),不要尝试直接格式化扩展分区。
  • 使用 LVM 扩容后,记得按文件系统类型执行扩容命令:XFS 用 xfs_growfs(指定挂载点)EXT4 用 resize2fs(指定 LV 设备)
  • 修改分区表存在数据风险,务必先备份;对关键业务建议在维护窗口操作。
  • 某些平台/快照场景下,扩展虚拟磁盘前需先处理快照或关机;操作前确认平台限制与兼容性。

0