OpenStack虚拟机rebuild和evacuate差异梳理
操作区别
rebuild:xp系统的虚拟机用烦了,想换个linux的操作系统,就可以使用rebuild。
evacuate:虚拟机所在的host宕机了,可以使用evacuate将虚拟机在另外一个host上启起来,其实利用这个接口配合host监控工具,可以实现虚拟机的HA能力。
为什么要将这两个一起说呢,是因为在底层,这两个接口其实对应一个操作spawn。
1、rebuild
引用一下官方的API文档说明:
底层的实现,其实就是在虚拟机所在的host上,将原来的虚拟机干掉,然后再根据新的镜像创建一个新的虚拟机,实现虚拟机系统盘的变更,而用户盘的数据是不变的(软件的安装和配置会丢失),虚拟机的网络信息也不变。API里的accessIPv4和accessIPv6参数,在使用Quantum的场景下,是无效的。
目前rebuild仅支持active和stopped状态的虚拟机。而且使用后端卷启动的虚拟机,rebuild之后系统盘不会发生变化,见后面的实验部分。
2、evacuate
引用官方的API文档说明:
该接口使用的前提是虚拟机所在的host宕机。
参数onSharedStorage是让使用者指明,计算节点是否使用共享存储。其实在计算节点是有能力判断是否使用共享存储的(并且计算节点也确实会再进行判断),这里写在接口里,猜测应该是为了在API层做判断吧。
当使用共享存储时,才是真正意义上的HA,虚拟机的软件和数据不会丢失;否则,只有虚拟机的用户盘数据不会丢失,系统盘是全新的系统盘。
上面提到,rebuild和evacuate在底层的实现是一样的。其实想想也是,两个接口都需要重新创建虚拟机,唯一的区别是:
1、rebuild需要多做一步删除虚拟机的操作,而evacuate是直接创建新虚拟机。
2、rebuild使用的镜像是接口指定的新的镜像(可以与老镜像相同),而evacuate使用的是虚拟机原来的镜像。
再次引用下wiki上的evacuate流程图:
但evacuate也有一些不足,比如如果支持系统自动选择主机,用户体验可能会更好;还有,同rebuild一样,目前evacuate仅支持active和stopped状态的虚拟机,其他状态(paused,suspended等)的虚拟机是不支持的,这也就意味着其他状态的虚拟机遇到host故障的时候是无法恢复的。
顺带说一句,目前只有libvirt driver支持rebuild和evacuate。
实践
一、rebuild
步骤如下:
1、先使用keypaire创建cirros虚拟机,关联floatingip,创建成功后,ssh登录,操作正常。
root@controller231:~# nova show rebuild-test2
±------------------------------------±---------------------------------------------------------+
| Property | Value |
±------------------------------------±---------------------------------------------------------+
| status | ACTIVE |
| updated | 2013-06-24T08:14:45Z |
| OS-EXT-STS:task_state | None |
| OS-EXT-SRV-ATTR:host | controller231 |
| key_name | mykey |
| image | cirros (4851d2f2-ef75-4a80-91c6-f0fcbcd7276a) |
| hostId | 083729f2f8f664fffd4cffb8c3e76615d7abc1e11efc993528dd88b9 |
| OS-EXT-STS:vm_state | active |
| OS-EXT-SRV-ATTR:instance_name | instance-0000000e |
| OS-EXT-SRV-ATTR:hypervisor_hostname | controller231.openstack.org |
| flavor | m1.small (2) |
| id | 03774415-d9ce-4b34-b012-6891d248b767 |
| security_groups | [{u’name’: u’default’}] |
| user_id | f882feb345064e7d9392440a0f397c25 |
| name | rebuild-test2 |
| created | 2013-06-24T08:14:38Z |
| tenant_id | 6fbe9263116a4b68818cf1edce16bc4f |
| OS-DCF:diskConfig | MANUAL |
| metadata | {} |
| accessIPv4 | |
| accessIPv6 | |
| testnet01 network | 10.1.1.20, 192.150.73.3 |
| progress | 0 |
| OS-EXT-STS:power_state | 1 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
±------------------------------------±---------------------------------------------------------+
root@network232:~# ssh -i mykey.pem -l cirros 192.150.73.3
OpenSSH_5.9p1 Debian-5ubuntu1.1, OpenSSL 1.0.1 14 Mar 2012
Authenticated to 192.150.73.3 ([192.150.73.3]:22).
$ sudo passwd
Changing password for root
New password:
Retype password:
Password for root changed by root
2、命令行执行rebuild,指定ubuntu镜像,注意此时虚拟机的image已经发生改变:
root@controller231:~# nova rebuild rebuild-test2 1f7f5763-33a1-4282-92b3-53366bf7c695
±------------------------------------±------------------------------------------------------------------+
| Property | Value |
±------------------------------------±------------------------------------------------------------------+
| status | REBUILD |
| updated | 2013-06-24T08:34:47Z |
| OS-EXT-STS:task_state | rebuilding |
| OS-EXT-SRV-ATTR:host | controller231 |
| key_name | mykey |
| image | Ubuntu 12.04 cloudimg i386 (1f7f5763-33a1-4282-92b3-53366bf7c695) |
| hostId | 083729f2f8f664fffd4cffb8c3e76615d7abc1e11efc993528dd88b9 |
| OS-EXT-STS:vm_state | active |
| OS-EXT-SRV-ATTR:instance_name | instance-0000000e |
| OS-EXT-SRV-ATTR:hypervisor_hostname | controller231.openstack.org |
| flavor | m1.small (2) |
| id | 03774415-d9ce-4b34-b012-6891d248b767 |
| security_groups | [{u’name’: u’default’}] |
| user_id | f882feb345064e7d9392440a0f397c25 |
| name | rebuild-test2 |
| created | 2013-06-24T08:14:38Z |
| tenant_id | 6fbe9263116a4b68818cf1edce16bc4f |
| OS-DCF:diskConfig | MANUAL |
| metadata | {} |
| accessIPv4 | |
| accessIPv6 | |
| testnet01 network | 10.1.1.20, 192.150.73.3 |
| progress | 0 |
| OS-EXT-STS:power_state | 1 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
±------------------------------------±------------------------------------------------------------------+
3、等待虚拟机状态变为ACTIVE,再次登录虚拟机:
root@network232:~# ssh -i mykey.pem 192.150.73.3
Welcome to Ubuntu 12.04.1 LTS (GNU/Linux 3.2.0-35-virtual i686)
- Documentation: https://help.ubuntu.com/
System information as of Mon Jun 24 08:47:49 UTC 2013
System load: 0.0 Processes: 60
Usage of /: 2.9% of 19.67GB Users logged in: 0
Memory usage: 1% IP address for eth0: 10.1.1.20
Swap usage: 0%
Graph this data and manage this system at https://landscape.canonical.com/
0 packages can be updated.
0 updates are security updates.
Get cloud support with Ubuntu Advantage Cloud Guest
http://www.ubuntu.com/business/services/cloud
Last login: Mon Jun 24 08:46:09 2013 from 192.168.82.232
root@rebuild-test2:~#
看到系统盘已经变成Ubuntu系统。
4、后端卷启动的虚拟机,rebuild
比如有一个虚拟机,后端卷启动,后端卷是cirros镜像:
root@controller231:~# nova show kong2
±------------------------------------±---------------------------------------------------------+
| Property | Value |
±------------------------------------±---------------------------------------------------------+
| status | ACTIVE |
| updated | 2013-06-26T10:01:29Z |
| OS-EXT-STS:task_state | None |
| OS-EXT-SRV-ATTR:host | controller231 |
| key_name | mykey |
| image | Attempt to boot from volume - no image supplied |
| hostId | 083729f2f8f664fffd4cffb8c3e76615d7abc1e11efc993528dd88b9 |
| OS-EXT-STS:vm_state | active |
| OS-EXT-SRV-ATTR:instance_name | instance-00000021 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | controller231.openstack.org |
| flavor | kong_flavor (6) |
| id | 8989a10b-5a89-4f87-9b59-83578eabb997 |
| security_groups | [{u’name’: u’default’}] |
| user_id | f882feb345064e7d9392440a0f397c25 |
| name | kong2 |
| created | 2013-06-26T10:00:51Z |
| tenant_id | 6fbe9263116a4b68818cf1edce16bc4f |
| OS-DCF:diskConfig | MANUAL |
| metadata | {} |
| accessIPv4 | |
| accessIPv6 | |
| testnet01 network | 10.1.1.6 |
| progress | 0 |
| OS-EXT-STS:power_state | 1 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
±------------------------------------±---------------------------------------------------------+
注意image字段中,显示该虚拟机是boot from volume。
对该虚拟机进行rebuild操作,指定ubuntu镜像:
root@controller231:~# nova rebuild kong2 1f7f5763-33a1-4282-92b3-53366bf7c695
±------------------------------------±------------------------------------------------------------------+
| Property | Value |
±------------------------------------±------------------------------------------------------------------+
| status | REBUILD |
| updated | 2013-06-26T10:25:03Z |
| OS-EXT-STS:task_state | rebuilding |
| OS-EXT-SRV-ATTR:host | controller231 |
| key_name | mykey |
| image | Ubuntu 12.04 cloudimg i386 (1f7f5763-33a1-4282-92b3-53366bf7c695) |
| hostId | 083729f2f8f664fffd4cffb8c3e76615d7abc1e11efc993528dd88b9 |
| OS-EXT-STS:vm_state | active |
| OS-EXT-SRV-ATTR:instance_name | instance-00000021 |
| OS-EXT-SRV-ATTR:hypervisor_hostname | controller231.openstack.org |
| flavor | kong_flavor (6) |
| id | 8989a10b-5a89-4f87-9b59-83578eabb997 |
| security_groups | [{u’name’: u’default’}] |
| user_id | f882feb345064e7d9392440a0f397c25 |
| name | kong2 |
| created | 2013-06-26T10:00:51Z |
| tenant_id | 6fbe9263116a4b68818cf1edce16bc4f |
| OS-DCF:diskConfig | MANUAL |
| metadata | {} |
| accessIPv4 | |
| accessIPv6 | |
| testnet01 network | 10.1.1.6, 192.150.73.16 |
| progress | 0 |
| OS-EXT-STS:power_state | 1 |
| OS-EXT-AZ:availability_zone | nova |
| config_drive | |
±------------------------------------±------------------------------------------------------------------+
待虚拟机active之后,VNC登录虚拟机,发现虚拟机并没有发生变化,还是cirros。
因为rebuild在nova driver层调用还是spawn函数创建新的虚拟机,而后端卷启动的虚拟机,是不会跟glance打交道的,还是直接挂载系统盘。
OpenStack虚拟机rebuild和evacuate差异梳理相关推荐
- 使用虚拟机备份软件备份OpenStack虚拟机
1.进入虚拟机备份系统 2.选择[虚拟机保护]--[备份],新建备份任务.选择虚拟化类型[OpenStack],再选择需要备份的虚拟机,点击[下一步] 3.设置备份目的地,选择[目标节点]与[目标存储 ...
- Openstack虚拟机镜像深度实践
转载:http://geek.csdn.net/news/detail/52407?ref=myread 虚拟机镜像(以下简称镜像)是Openstack云计算平台不可或缺的一部分.利用各种定制化的镜像 ...
- openstack虚拟机内文件遭破坏的急救方案
一.场景: openstack虚拟机存放于ceph存储,由于用户将系统的grub误删除,导致系统无法正常引导.现在用户要求抢救文件. 二.可行的方案: 1.将虚拟机保存为镜像,将镜像转换成云硬盘,将云 ...
- openstack云主机无法绑定ip_智汇华云|OpenStack 虚拟机 GPU 性能优化
随着大数据.人工智能技术的发展,越来越多的用户产生了获取拥有GPU算力的弹性计算服务的需求,GPU云主机具有突出的图形处理和高性能计算能力,适用于科学计算.视频处理.深度学习等应用场景,受到了市场的青 ...
- 大牛写的Openstack虚拟机创建细节
别以为真懂Openstack: 虚拟机创建的50个步骤和100个知识点(5) (1) http://www.cnblogs.com/popsuper1982/p/3927390.html (2) ht ...
- openstack 虚拟机如何修改ip地址
2019独角兽企业重金招聘Python工程师标准>>> 导读 在日常开发和生产环境中经常需要将OpenStack虚拟机配置一个静态Ip,但配置完成后发现外面无法访问.原因是opens ...
- 使用虚拟机备份软件恢复OpenStack虚拟机
1.进入虚拟机备份系统 2.选择[虚拟机保护]--[恢复],新建恢复任务,选择选择虚拟化类型[OpenStack],勾选需要恢复的备份点,点击[下一步] 3. 设置恢复目标宿主机,并按需配置恢复虚拟机 ...
- OpenStack 虚拟机冷/热迁移的实现原理与代码分析
目录 文章目录 目录 前文列表 冷迁移代码分析(基于 Newton) Nova 冷迁移实现原理 热迁移代码分析 Nova 热迁移实现原理 向 libvirtd 发出 Live Migration 指令 ...
- pve虚拟机和openstack虚拟机的区别
PVE 虚拟机和 OpenStack 虚拟机是两种不同的虚拟化技术. PVE 虚拟机是使用 Proxmox Virtual Environment (PVE) 所创建的虚拟机.PVE 是一个开源虚拟化 ...
- 联想服务器usb虚拟引入,联想ThinkCloud的OpenStack虚拟机的USB设备挂载
上周五开始电力停电,备用电源将要耗尽,解除了机房10台联想物理机组成的云平台OpenStack. 之前自己接触用得最多的虚拟机或平台是VMware的Workstation 14平台,自己弄了几台虚拟机 ...
最新文章
- 是男人就下100层【第四层】——Crazy贪吃蛇(2)
- VMware Tools按钮变灰色,无法安装的解决方法
- 20162328蔡文琛week07
- 【Android 插件化】VAHunt 引入 | VAHunt 原理 | VAHunt 识别插件化引擎
- Java中Dom解析XML
- vc6.0开发环境两个辅助工具
- OpenCV图像旋转,指定填充背景颜色边界颜色
- 《数据库SQL实战》获取所有员工当前的manager
- 玩的起也要输的起 。。没什么,照样支持你。。
- for循环下标 shell_如果再写for循环,我就锤自己
- python基于窗体的播放器_基于Python3的终端播放器 – MellPlayer
- 计算机的flash player在哪里,flash player电脑设置管理器在哪?怎么打开
- excel小写转大写公式_excel数字小写转大写公式的教程
- 公众号网课搜题API系统对接教程
- 微信公众平台小程序开发教程
- 波兰表达式(Polish Notation)简要介绍
- 【Linux学习笔记】27:环境变量中的语系变量
- 熵、条件熵、联合熵、互信息的理解
- bing搜索分析网站的方法
- 爬虫|12306模拟登录