windows server 2012 r2 hyper-v vhdx 压缩

hyper-v创建的虚机通过vhdx文件保存在硬盘,使用的童鞋都知道有个坑爹的问题,即vhdx文件不自动压缩,比方说往虚机里添加了100G文件,然后再删除100G文件,vhdx文件会增长100G,但是虚机里删除后,vhdx不会压缩100G,这样会导致vhdx大小不断增长达到设定值,无形中浪费很多空间。

很多童鞋说,可以用hyper-v的压缩功能,通过往虚机里添加大文件再删除,然后用hyper-v压缩,vhdx果然变小了。但实际应用中这种场景并不多,往往是随着系统使用、打补丁、部署各种应用等行为后,再清理历史备份或垃圾文件后空间释放,这时候用hyper-v压缩,往往没有什么效果。举个例子来说,随着系统补丁更新,万恶的winsxs目录会不断增大,到无法容忍时,可以采取一些机制来清理历史版本,这个时候会释放出大量的磁盘空间,但是用hyper-v压缩,就基本无效了。

网上hyper-v压缩的资料很多,又是转换格式,又是附加vhdx文件的,基本没有什么效果,难道就无解了么?

无意中发现微软官方关于hyper-v的一个答复里提到一句话“先整理来宾操作系统中的磁盘碎片”,联想到,是否在数据存储区间有大量空闲区块,这部分空闲空间,无法被hyper-v识别压缩呢?

立即下手测试一下,对虚机磁盘进行了整理,让数据存储连续性,然后再用hyper-v压缩,果然回收了大量的vhdx文件空间。问题解决。 

标签: hyper-v 压缩
评论: 0 | 引用: 0 | 阅读: 7665