如果我基于备份文件(称为 base.qcow2)创建 new.qcow2 qcow2 映像,并且该备份文件位于 nfs 共享上。如果有人尝试修改、替换或删除 base.qcow2 会发生什么?
是否有锁定机制可以防止这种情况发生?在删除或修改 base.qcow2 之前,是否会将所有块复制到 new.qcow2 映像?
场景如下:
qemu-img create -f qcow2 -b /mnt/nfs/base.qcow2 /localdisk/new.qcow2
在nfs服务器或其他客户端上:
rm nfs/base.qcow2
从 base.qcow2 创建的 new.qcow2 会发生什么?
答案1
如果有人尝试修改、替换或删除 base.qcow2 会发生什么?
基于基础镜像的镜像变得不相关/损坏/无用。当然,完整克隆将继续工作。
是否有锁定机制可以防止这种情况发生?
内置于 qemu - 不。 oVirt/RHEV 等管理系统将具备这些功能。
在删除或修改 base.qcow2 之前,是否会将所有块复制到 new.qcow2 映像?
仅当您手动执行qemu-img rebase
.如果您只是编辑基本文件,或者直接将其与虚拟机一起使用,而不是快照链中最后一个派生映像,则会破坏整个快照树。
对于实际场景,该-b
选项将仅创建增量映像,仅包含新快照与基础映像之间的差异。如果删除基础,快照将变得无用,因为它没有参考。过去http://docs.fedoraproject.org/en-US/Fedora/13/html/Virtualization_Guide/sect-Virtualization-Tips_and_tricks-Using_qemu_img.html以供更好的参考。