centos怎样回收虚拟机空间
导读:CentOS 虚拟机回收宿主机磁盘空间的实用步骤 一、前置条件与限制 安装并启用 open-vm-tools(推荐):sudo yum install -y open-vm-tools,用于支持磁盘收缩与空间擦除。 删除所有 快照,快照存...
CentOS 虚拟机回收宿主机磁盘空间的实用步骤
一、前置条件与限制
- 安装并启用 open-vm-tools(推荐):
sudo yum install -y open-vm-tools,用于支持磁盘收缩与空间擦除。 - 删除所有 快照,快照存在时无法收缩虚拟磁盘。
- 虚拟磁盘需为 动态扩展 类型;若创建时勾选了 “立即分配所有磁盘空间”(预分配),收缩效果非常有限或不可用。
- 收缩前确保宿主机磁盘有 充足可用空间(wipe 阶段需要临时空间)。
- 某些环境(如 精简置备 LVM 或加密卷)可能限制收缩,需按对应场景处理后再尝试。
二、标准流程 VMware Workstation 与 Player
- 清理系统垃圾与可回收空间
- 清理包管理器缓存:
sudo yum clean all - 清理旧日志与临时文件:
sudo find /var/log -type f -name "*.log*" -delete,sudo rm -rf /tmp/* /var/tmp/* - 清理旧内核(CentOS/RHEL):
sudo package-cleanup --oldkernels --count=2 - 如用 Docker:
docker system prune -af --volumes - 清理 VMware 拖放缓存(常见可释放大量空间):
rm -rf ~/.cache/vmware/drag_and_drop - 分析大文件定位占用:
sudo du -h --max-depth=1 / | sort -hr | head或使用图形化工具(如安装 baobab)
- 将已释放的空间“填零”,便于宿主机回收
- 建议先确保根分区有少量可用空间再执行(否则
dd会失败):
df -h / - 填零文件(会临时占用等同“已用空间”的磁盘):
sudo dd if=/dev/zero of=/zero.file bs=2M status=progress
sync
rm -f /zero.file - 原理:虚拟磁盘以“扇区”管理,只有数据块被写为 0 的区域,宿主机才能在收缩时真正释放。
- 在虚拟机内收缩虚拟磁盘
- 查看可收缩路径:
/usr/bin/vmware-toolbox-cmd disk list - 收缩根分区(或指定挂载点):
sudo /usr/bin/vmware-toolbox-cmd disk shrink / - 若提示不支持或失败,可尝试先
wipe再shrink:
sudo /usr/bin/vmware-toolbox-cmd disk wipe /
sudo /usr/bin/vmware-toolbox-cmd disk shrink / - 完成后关机,在 VMware 界面:虚拟机设置 → 硬盘 → 压缩(部分环境此步效果有限,主要空间回收发生在上一步)。
三、其他平台或替代方案
- VMware vSphere/ESXi 场景
- 删除快照后,使用
vmkfstools收缩:vmkfstools -k /vmfs/volumes/datastore/VM/VM.vmdk(仅对厚置备延迟置零/精简置备有效)。
- 删除快照后,使用
- KVM/QEMU 场景
- 在客户机内填零:
dd if=/dev/zero of=/zero.file bs=2M; sync; rm -f /zero.file - 关机后用
qemu-img重建镜像(qcow2 常用):
qemu-img convert -O qcow2 source.qcow2 dest.qcow2 & & mv dest.qcow2 source.qcow2 - 注意:转换会生成新镜像,首次启动前做好备份。
- 在客户机内填零:
四、常见问题与排查
- 收缩按钮无效或收缩很小:多因未删除 快照、磁盘为 预分配、或 LVM/加密 限制;先处理这些前置条件。
vmware-toolbox-cmd不存在或命令失败:安装/启动 open-vm-tools,确认命令路径为 /usr/bin/vmware-toolbox-cmd。- 填零阶段失败:根分区剩余空间不足,先清理出少量空间再执行
dd。 - 宿主机空间未下降:确认已执行“填零 + shrink”,且虚拟机已 关机 后在宿主端执行“压缩”;某些情况下界面“压缩”作用有限,核心回收在客户机 shrink。
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: centos怎样回收虚拟机空间
本文地址: https://pptw.com/jishu/763669.html
