qemu的外部快照实现原理

COW是外部快照的读写流程中最重要的部分。


1 什么是COW

COW(Copy-On-Write),也被称之为「即写即拷」快照技术或「写时复制」快照技术,这种方式通常也被称为“元数据(源数据指针表)”拷贝。顾名思义,如果有人试图改写源数据块上的原始数据,首先将原始数据拷贝到新数据块中,然后再进行改写。


2 为何需要COW

当写请求发生在backing file上,要先分配new cluster。如果只是把要写的数据写到new cluster上,那数据是不完整的,因为每次写入的数据并非刚刚是cluster的整数倍,可能是几个或几个sector,所以需要我们把剩下的部分从old cluster上复制到new cluster,最后把这个cluster标记为allocated cluster。

当我们下次读该cluster,在overlay上就可以读到,且数据是完整的,不是残缺不全的。


3 如何COW

qcow2的COW并非先复制再写入,而是先写入再复制。步骤如下:

赞(0)
未经允许不得转载:小狮博客 » qemu的外部快照实现原理
分享到: 更多 (0)

联系我们