1. snapshot overview
对openstack而言,虚拟机的快照即是镜像,快照做完后以镜像形式存于glance。虽然openstack的快照是基于libvirt(qemu-kvm),但是二者在实现上有很大区别:
- libvirt 主流快照实现: 采用virDomainSnapshotCreateXML()函数(CLI为virsh snapshot-create)。 新建的快照与虚拟机有关联:若为内置快照,快照信息和虚拟机存在同一个qcow2镜像中;若为外置快照,新建一个qcow2文件,原虚拟机的disk将变为一个read only的模板镜像,新qcow2镜像仅记录与2.模板镜像的差异数据。这种快照包含快照链信息,可保留disk和ram信息,可回滚至快照点。
- openstack快照实现:openstack并未采用virDomainSnapshotCreateXML()来实现快照,而是单纯的对虚拟机镜像做转换和拷贝,生成一个与虚拟机无关联的镜像,最后上传至glance中。这种快照不包含快照链信息,只保留disk信息,无法回滚至快照点,只能采用该快照镜像创建一个新的虚拟机。
2. cold snapshot and live snapshot
- cold snapshot: 创建snapshot时,需暂停虚拟机。
- live snapshot: 创建snapshot时,无需暂停虚拟机。
3. cold snapshot 流程:

本文探讨了OpenStack如何实现快照,与libvirt的快照实现进行对比。OpenStack不使用virDomainSnapshotCreateXML(),而是通过转换和拷贝虚拟机镜像生成独立快照,上传至Glance。快照不包含快照链,仅保留磁盘信息,无法回滚,只能用于创建新虚拟机。同时,文章提到了冷快照和热快照的概念以及快照流程,并指出OpenStack快照的局限性和缺点,如不支持内存快照、快照链等。
最低0.47元/天 解锁文章
3781

被折叠的 条评论
为什么被折叠?



