背景
某项目,现有控制节点*1(controller),计算节点*4(compute1-compute4)。
现在,因为业务调整,需要撤出compute1、compute2。
原有在这两个节点上的虚拟机需要迁移到compute3、compute4上。
其中,compute1、compute2为同型号主机,compute3、compute4为同型号主机。
相关知识
在Openstack中,迁移主要分为2种方式:冷迁移和热迁移。
冷迁移(cold migration),也叫静态迁移。关闭电源的虚拟机进行迁移。通过冷迁移,可以选择将关联的磁盘从一个数据存储移动到另一个数据存储。
热迁移(Live Migration),又叫动态迁移、实时迁移,即虚拟机保存/恢复,通常是将整个虚拟机的运行状态完整保存下来,同时可以快速的恢复到原有硬件平台甚至是不同硬件平台上。恢复以后,虚拟机仍旧平滑运行,用户不会察觉到任何差异。
冷迁移 | 热迁移 | |
---|---|---|
优点 | 虚拟机不需要位于共享存储器上,数据丢失率小。 | 软件和硬件系统的维护升级,不会影响用户的关键服务,提高了服务的高可用性和 用户的满意度。 |
缺点 | 需要关闭电源,业务中断。 | 过程不可中断,操作复杂。 |
热迁移的操作方式
对于热迁移,OpenStack提供了命令行接口,看起来操作很简单.
$ openstack server migrate [--live hostname] serverId
例如,我们想把vm1迁移到compute3节点上,就可以执行:
$ openstack server migrate --live compute3 vm1
但是限制条件比较多,如要求迁移前后的cpu特性一致。
冷迁移的操作方式
冷迁移有很多种方式:
-
命令行接口
也是上面的openstack server migrate命令,不加–live就可以了。缺点是,无法制定迁移到哪台主机。
类似的,还有通过Horizon界面选择迁移功能。 -
快照迁移
先为虚拟机创建快照,然后通过快照创建虚拟机。 -
实例(虚拟机)文件迁移
拷贝实例文件到相应的计算节点,手工修改修改nova.instances中的host和node属性为迁移后的计算节点名称。
其中,实例文件存