修改云主机快照方式为live snapshot

          客户反馈虚拟机做快照时一直无法连接(后端存储使用的为ceph),远程测试发现做快照时无法ping通,vnc无法登录.

如上图,在做快照期间,ping虚拟机的ip中间会出现"请求超时"

如上图,快照期间,vnc也无法登录了.

在虚拟机所在的计算节点,用watch  -n1 "virsh list  --all",发现虚拟机在快照期间的状态为shutoff.

观察虚拟机所在的计算节点nova-compute日志,发现日志输出为"Begining cold snapshot process"

 问题原因也在于快照方式了.OpenStack默认的快照方式都是cold snapshot,虚拟机会被关机.

在nova后端为ceph的情况下,虚拟机的快照大致分为以下几步:

1,ceph里面给虚拟机系统盘的rbd镜像文件创建一个快照并进行protect.

2.从上面创建的rbd快照克隆一个rbd文件,rbd文件名为nova 快照对应的uuid

3 flatten操作,将上面克隆的rbd文件拍平.

4 拍平后,删除虚拟机系统盘的rbd快照

步骤截图如下:

如上图,一个虚拟机快照正处于保存状态.

 如上图,虚拟机快照的rbd文件(其中rbd文件名为快照的id),parent为虚拟机系统盘rbd的快照.

 如上图,nova 快照的rbd文件,已经被flatten.

具体分析可以参考如下链接:

http://int32bit.me/2016/10/25/OpenStack%E4%BD%BF%E7%94%A8Ceph%E5%AD%98%E5%82%A8%E5%90%8E%E7%AB%AF%E5%88%9B%E5%BB%BA%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%BF%AB%E7%85%A7%E5%8E%9F%E7%90%86%E5%89%96%E6%9E%90/

问题解决:

       为了避免虚拟机快照期间的shutoff状态,修改快照方式为live snapshot方式,具体为编辑计算节点nova.conf,修改disable_libvirt_livesnapshot=false并重启nova-compute服务.再次做快照时,发现nova-compute日志已经显示"Begining  live snapshot process"

注意:
libvirt版本低于1.2.2不支持启用热快照

官方说明:

# When using libvirt 1.2.2 live snapshots fail intermittently under load
# (likely related to concurrent libvirt/qemu operations). This config
# option provides a mechanism to disable live snapshot, in favor of cold
# snapshot, while this is resolved. Cold snapshot causes an instance
# outage while the guest is going through the snapshotting process.
 

参考:

http://int32bit.me/2016/10/25/OpenStack%E4%BD%BF%E7%94%A8Ceph%E5%AD%98%E5%82%A8%E5%90%8E%E7%AB%AF%E5%88%9B%E5%BB%BA%E8%99%9A%E6%8B%9F%E6%9C%BA%E5%BF%AB%E7%85%A7%E5%8E%9F%E7%90%86%E5%89%96%E6%9E%90/

原文地址:https://www.cnblogs.com/360linux/p/13062073.html