首页 > 其他 > 详细

Openstack快照现状分析

时间:2014-02-27 22:25:22      阅读:670      评论:0      收藏:0      [点我收藏+]

当前能力

  • 支持功能
    • 卷快照(支持一致性快照)
    • 虚拟机快照(支持冷快照和live snapshot with no downtime)
  • 卷快照
cinder snapshot-create

支持通过qemu-ga完成自动一致性操作(fsfreeze)

  • 虚拟机快照制作过程
nova image-create
guest:
sync         #刷脏数据到磁盘
fsfreeze -f  #锁定文件系统
host:
nova image-create #创建快照
guest:
fsfreeze -u  #解除锁定文件系统
  • 当前限制   openstack的虚拟机快照只快照root盘,不快照内存/CPU状态以及挂载磁盘。挂载磁盘需要事先卸载磁盘(数据盘),然后进行快照,然后再挂载磁盘。

  • 虚拟机快照缺点:

    • 不支持内存快照
    • 只对系统盘进行快照
    • 没有快照链信息
    • 需要用户进行一致性操作
    • 不支持含元数据导出
    • 不支持含元数据导入
    • 只支持虚拟机全量数据快照(与快照的实现方式有关,因为是通过image进行保存的)
    • 快照以Image方式保存,而非以cinder卷方式保存
    • 过程较长(需要先通过存储快照,然后抽取并上传至glance)。
    • 无法充分利用存储本身能力加快快照的创建和使用
  • nova image-create的流程

    1. 获取token(获取token接口)
    2. 查询虚拟机状态(查询接口)
    3. 创建虚拟机快照(createImage接口)
curl -i http://186.100.8.214:8774/v2/86196260e1694d0cbb5049cfba3883f8/servers/6c2504f4-efa-47ec-b6f4-06a9fde8a00b/action -X POST -H "X-Auth-Project-Id: admin" -H "User-Agent: python-novaclient" -H "Content-Type: application/json" -H "Accept: application/json" -H "X-Auth-Token: " -d ‘{"createImage": {"name": "nova_100_new_01", "metadata": {}}}‘
  • createImage接口(创建虚拟机快照)流程
底层实现:
a. 清理block设备上次的job信息
[root@fedora170 data]# virsh blockjob test /data/test/test.qcow2 --abort
error: Requested operation is not valid: No active operation on device: drive-virtio-disk0

b. 创建基于block设备backing_file的qcow2文件
[root@fedora170 data]# qemu-img create -f qcow2 -o backing_file=/data/test/test.qcow2,cluster_size=65536,size=20G /data/test/test.qcow2.delta
Formatting ‘/data/test/test.qcow2.delta‘, fmt=qcow2 size=21474836480 backing_file=‘/data/test/test.qcow2‘ encryption=off cluster_size=65536 lazy_refcounts=off

c. persist类型的虚拟机,进行undefine
d. 将block数据拷贝到新做的qcow2文件上
[root@fedora170 data]# virsh blockcopy test /data/test/test.qcow2 /data/test/test.qcow2.delta 0 --shallow --reuse-external
Block Copy started

e. 查询进度,等待block job完成
[root@fedora170 data]# virsh blockjob test /data/test/test.qcow2 --info
Block Copy: [100 %]

f. 清理block设备上次的job信息
[root@fedora170 data]# virsh blockjob test /data/test/test.qcow2  --abort

g. persist类型的虚拟机,重新define
h. 抽取整个block的数据到新的qcow2文件中(后续可以上传到glance上)
[root@fedora170 data]# qemu-img convert -f qcow2 -O qcow2 -c /data/test/test.qcow2.delta /data/test/test_snapshot.qcow2

当前快照导入、导出方法

  • 虚拟机快照导出
    1. 使用nova image-create创建虚拟机快照
    2. 通过glance image-download --file filename.img导出虚拟机快照
  • 虚拟机快照导入
    1. 通过glance image-create --file导入虚拟机快照

虚拟机快照当前的BP

Openstack快照现状分析,布布扣,bubuko.com

Openstack快照现状分析

原文:http://blog.csdn.net/halcyonbaby/article/details/19998155

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!