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。
相关文章推荐
- 如何使用 virt-manager 运行虚拟机
- 什么是OpenStack 开源的云计算管理平台项目
- openstack(juno版)使用rsyslog转发日志
- 【原创】OpenStack Swift源码分析(二)ring文件的生成
- 【原创】Swift服务启动架构分析
- 【原创】OpenStack Swift源码分析(三)proxy服务启动
- 【原创】OpenStack Swift源码分析(四)proxy服务响应
- 【原创】OpenStack Swift源码分析(五)keystone鉴权
- Swift中的一致性哈希算法分析
- 【原创】OpenStack Swift源码分析(六)object服务
- 【原创】OpenStack Swift源码分析(七)Replication服务
- 【原创】OpenStack Swift源码分析(八)Updater && Auditor服务
- Swift中映射与冗余
- 【翻译】Nova系统架构
- Swift 源码分析 脑图
- 开放式创新改变世界——OpenStack生态系统将重新洗牌
- 用puppet快速部署openstack
- OpenStack安全性分析:开源云软件的利与弊
- OpenStack-swift架构
- OPENSTACK ICEHOUSE 迁移虚拟机