您的位置:首页 > 运维架构

nova boot, reboot, suspend 工作流

2015-07-21 20:24 666 查看

nova boot 的工作流

为虚拟机分配网络,由nova.compute.manager处理。

创建磁盘文件并映射块设备,在这个过程中,首先从glance服务下载对应的image到instance_dir/_base, 将下载下来的镜像转换成RAW格式。创建磁盘文件instance_dir/uuid/{disk, disk.local, disk.swap}。

生成libvirt xml文件,拷贝一份/var/lib/nova/instance/uuid/libvirt.xml。

建立与磁盘卷的连接(这个主要用于boot-from-volume这种方式),具体执行什么样的操作取决于所使用volume的driver,iSCSI是通过tgt或者iscsiadm来建立连接,RBD主要由qemu处理。

建立必要的network stack,如创建bridges,为虚拟机创建安全组等。

通过libvirt用生成的xml文件定义一台虚拟机,等价于virsh define /var/lib/instance/uuid/libvirt.xml。

启动实例,virsh start uuid。

hard reboot 的工作流

destroy the domain 执行libvirt操作virsh destroy instance-id,执行当前操作不会损坏虚拟机的任何数据, 仅做kill -9 qemu-system-x86_64进程。

重新建立与磁盘卷的连接。

为虚拟机重新生成libvirt XML文件。

检查并且重新下载丢失的备份文件(instance_dir/_base)。

重新创建网桥,Vlan接口。

重新生成iptables规则并作用于虚拟机。

suspend 的工作流

相当于执行virsh managed-save操作,行为类似于hiberate操作。

保存内存里面的数据到磁盘。

恢复虚拟机,virsh resume instance-id。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息