解决kvm虚拟机qcow2格式磁盘文件比实际空间占用大的问题

Posted liuforhacker

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了解决kvm虚拟机qcow2格式磁盘文件比实际空间占用大的问题相关的知识,希望对你有一定的参考价值。

参考:http://www.viper.im/archives/qcow2-disk-reduce.html

在基于qcow2格式的虚拟机中进行删除文件操作后,物理磁盘文件并不会变小。可以用以下方法对磁盘文件瘦身。

linux客户机

1、使用dd命令将客户机未使用的磁盘空间用0填满



$dd if=/dev/zero of=~/junk




dd: writing to `/home/***/junk: No space left on device


2、然后

$rm junk

3、关闭客户机

4、转换磁盘镜像文件

$qemu-img convert -O qcow2 centos7.qcow2 centos7_new.qcow2

转换完成后可以看到centos7_new.qcow2占用的KVM主机存储空间与客户机使用的磁盘空间基本是一致的。然后用新的磁盘镜像文件centos7_new.qcow2启动客户机即可。

windows客户机

1、删除不需要的文件,清理系统垃圾,然后整理磁盘碎片

2、下载SDelete,借助sdelete用0来填充未使用硬盘空间

查看sdelete帮助



C:\\>sdelete




SDelete - Secure Delete v1.6




Copyright (C) 1999-2010 Mark Russinovich




Sysinternals - www.sysinternals.com






usage: sdelete.exe [-p passes] [-s] [-q] ...




sdelete.exe [-p passes] [-z|-c] [drive letter] ...




-a Remove Read-Only attribute




-c Clean free space




-p passes Specifies number of overwrite passes (default is 1)




-q Dont print errors (Quiet)




-s or -r Recurse subdirectories




-z Zero free space (good for virtual disk optimization)


用0填充C分区空闲区域

C:\\>sdelete -z c:

3、关闭客户机

4、最后在KVM主机上转换qcow2磁盘镜像文件

$qemu-img convert -O qcow2 windows.qcow2 windows_new.qcow2

转换完成后可以看到windows_new.qcow2占用的KVM主机存储空间与客户机使用的磁盘空间基本是一致的。然后用新的磁盘镜像文件windows_new.qcow2启动客户机即可。




以上是关于解决kvm虚拟机qcow2格式磁盘文件比实际空间占用大的问题的主要内容,如果未能解决你的问题,请参考以下文章

linux-qcow2格式安装虚拟机及脚本一键克隆qcow2虚拟机

KVM虚拟化笔记------kvm虚拟机磁盘文件的读取

KVM之raw和qcow2格式虚拟磁盘创建

KVM虚拟化平台——磁盘管理

Linux系统 误删除kvm虚拟机数据恢复方法-数据恢复成功案例

kvm虚拟机磁盘扩容