CentOS 虚拟机存储空间优化指南
一 快速诊断与定位占用
df -h,确认哪个挂载点(如 /、/var、/home)吃空间。du -sh /* 2>/dev/null | sort -rh | head -n 20;必要时用 find / -type f -size +100M -exec ls -lh {} \; 查找超大文件。df -i,若使用率接近 100%,说明小文件过多,需要清理或归档。ncdu / 交互式分析磁盘占用,定位更直观。二 安全清理释放空间
yum clean all;移除无用依赖:yum autoremove。journalctl --vacuum-size=200M;按需清理 /var/log/*.gz、*.1、*.old。rm -rf /tmp/* /var/tmp/*。package-cleanup --oldkernels --count=2。docker system prune -a(谨慎,会删除未使用镜像/容器/网络);限制容器日志大小:docker run --log-driver json-file --log-opt max-size=10m --log-opt max-file=3。三 在线扩容虚拟磁盘与分区
fdisk -l;创建新分区(如 /dev/sda4 或逻辑分区 /dev/sda5),保存退出。partprobe /dev/sda。mkfs.xfs /dev/sda5 或 mkfs.ext4 /dev/sda5),挂载到如 /data,并写入 /etc/fstab 实现开机自动挂载。lvextend -L +10G /dev/mapper/vg-root;随后扩容文件系统:resize2fs /dev/mapper/vg-root(ext4)或 xfs_growfs /(xfs)。resize2fs 扩容对应分区;xfs 需对挂载点执行 xfs_growfs。四 迁移大目录与新盘挂载
/dev/sdb1 → mkfs.xfs /dev/sdb1);创建挂载点 mkdir /data;挂载 mount /dev/sdb1 /data;写入 /etc/fstab 持久化。systemctl stop docker → mv /var/lib/docker /data/docker → ln -s /data/docker /var/lib/docker → systemctl start docker。五 收缩虚拟磁盘体积与长期预防
cat /dev/zero > zero.fill; sync; sleep 1; sync; rm -f zero.fill。vmware-vdiskmanager -k "path/to/disk.vmdk" 收缩;或通过 VMware Tools 的 Shrink 功能(对预分配磁盘、存在快照等情况不适用)。logrotate 合理轮转日志;设置磁盘使用率告警(如阈值 90%);定期执行清理脚本;必要时为关键目录设置磁盘配额。