解决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 如果是派生镜像需要加 -B 来指定back_file原镜像
转换完成后可以看到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 Don't 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 如果是派生镜像需要加 -B 来指定back_file原镜像 参考 https://qemu.readthedocs.io/en/latest/tools/qemu-img.html#cmdoption-qemu-img-arg-convert
转换完成后可以看到windows_new.qcow2占用的KVM主机存储空间与客户机使用的磁盘空间基本是一致的。然后用新的磁盘镜像文件windows_new.qcow2启动客户机即可。
                    
                
                
            
        
浙公网安备 33010602011771号