首页主机资讯centos怎样回收虚拟机空间

centos怎样回收虚拟机空间

时间2025-12-04 16:37:04发布访客分类主机资讯浏览1478
导读: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

  1. 清理系统垃圾与可回收空间
  • 清理包管理器缓存:sudo yum clean all
  • 清理旧日志与临时文件:sudo find /var/log -type f -name "*.log*" -deletesudo 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
  1. 将已释放的空间“填零”,便于宿主机回收
  • 建议先确保根分区有少量可用空间再执行(否则 dd 会失败):
    df -h /
  • 填零文件(会临时占用等同“已用空间”的磁盘):
    sudo dd if=/dev/zero of=/zero.file bs=2M status=progress
    sync
    rm -f /zero.file
  • 原理:虚拟磁盘以“扇区”管理,只有数据块被写为 0 的区域,宿主机才能在收缩时真正释放。
  1. 在虚拟机内收缩虚拟磁盘
  • 查看可收缩路径:/usr/bin/vmware-toolbox-cmd disk list
  • 收缩根分区(或指定挂载点):sudo /usr/bin/vmware-toolbox-cmd disk shrink /
  • 若提示不支持或失败,可尝试先 wipeshrink
    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
CentOS readdir读取大文件方法 CentOS Apache日志中的Referer是什么

游客 回复需填写必要信息