qcow2简介
qcow2是动态的,即便文件系统不支持sparse file,文件大小也很小
qcow2功能一:copy on write
qcow2的格式如下
它实行的是2-Level loopup
qcow2的数据是存储在data clusters里面的,每个cluster是512 byte sector
为了能够管理这些cluster,qcow2保存了两层的Table,L1 table指向L2 Table,L2 Table管理data cluster.
在image里面的offset会被解析成三部分,L1 Table Pointer先找L1,L1 Table Pointer+ offset[0]是L1中的一个entry,读出来便是L2 Table Pointer, L2 Table Pointer + offset[1]是L2中的一个entry,读出来便是data cluster pointer, data cluster pointer +offset[3]便是数据所在的位置。
backing file就是基于这个原理的用处,一个qcow2的image可以保存另一个disk image的改变,而不影响另一个image
创建backing file
qemu-img create -f qcow2 -o backing_file=./ubuntutest.qcow2 ubuntutest1.qcow2
一开始新的image是空的,读取的内容都从老的image里面读取。