当前位置:   article > 正文

虚拟磁盘的空间回收: Virtual Disk UNMAP/Shrink_qcow2 discard

qcow2 discard

同时发布于: http://leiqzhang.com/2013/08/2013-08-07-virtual-disk-unmap-shrink/


虚拟磁盘的空间回收: Virtual Disk UNMAP/Shrink

问题

虚拟化场景下,瘦分配(Thin-provisioning)磁盘应用场景非常广泛。目前主流的虚拟磁盘镜像格式,如Dynamic VHD、Sparse Raw、Qcow2、VMDK等均只具有随着虚拟机读写而动态增长的能力,一般来说是按需每次分配一个固定大小的块,如VHD的块是2M为单位。

当Guest OS删除了文件,已经分配的空间在虚拟磁盘上可否进行空间回收呢?

空间回收主要包括两步,一是获取到可以回收的空间,二是在虚拟磁盘文件中对相应空间进行回收。

根据获取所需回收空间时虚拟磁盘的IO情况来讲,回收主要有在线回收和离线回收,在线和离线的区别在于虚拟磁盘是否在有Guest持续写IO的情况下进行空间回收。也即离线回收不单单指虚拟机关机情形下的回收,也包括虚拟磁盘只有读IO的情况(如虚拟磁盘为某个ROW快照的父镜像)。

就虚拟磁盘文件来说,空间回收的结果可以是如下两种

  1. 在Host上实际占用的空间减少
  2. 在Host上实际占用的空间减少,但是后续Guest的写入可以复用之前需要回收的空间,从而使得虚拟磁盘文件不会随着Guest的写入立即分配新块

下文首先分别对离线和在线可回收空间获取方法进行讨论,然后对虚拟磁盘文件的空间回收方式进行讨论,最后以Qemu当前的实现为例进行说明。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/217380
推荐阅读
相关标签
  

闽ICP备14008679号