内容摘要:

文章介绍了基于华为fusioncompute平台的虚拟机热迁移,包括热迁移的价值、工作原理和应用场景,以及实现热迁移的前提条件和步骤。

什么需要热迁移

随着云计算技术的逐渐成熟,越来越多的企业将应用部署在云环境中。为了保证业务持久化的运行,当物理主机出现停机维护的时候,如何才能保证业务不中断运行呢?在FusionCompute中就提供这样一个功能——虚拟机热迁移,能够支持在不影响用户使用或中断服务的情况下,在服务器之间实时迁移虚拟机,从而无需为进行计划内服务器维护而安排应用中断。

什么是虚拟机热迁移

虚拟机热迁移是指在不中断业务的情况下,将同一个集群中虚拟机从一台物理服务器移动至另一台物理服务器。虚拟机管理器提供内存数据快速复制和共享存储技术,确保虚拟机迁移前后数据不变。虚拟机迁移过程中,磁盘不进行迁移,即磁盘的位置不变,仍处于原数据存储中。可以手动迁移虚拟机,也可以设置一个调度策略来自动执行迁移。在FusionCompute里支持3种迁移的方式:虚拟机热迁移(更改主机)、存储热迁移(更改数据存储)、整机热迁移(更改主机和数据存储)。

FusionCompute虚拟机热迁移工作原理及应用场景_linux

虚拟机热迁移有哪些价值

当长期运行虚拟机业务的物理服务器需要进行停机维持或者系统升级之前,运维人员可以将该虚拟机上的虚拟机迁移到其它服务器,降低操作维护过程中业务中断的风险,等到维护升级完成后可以将所有虚拟机迁移回来,继续正常提供业务。同时,当集群中主机出现资源分配不均时(如负载较重或者负载较轻),还可以将空闲服务器上的虚拟机迁移到其他服务器, 对虚拟机迁移整合,将没有负载的服务器关闭,以减少主机数量,提高资源的利用率,实现节能减排,降低业务运行成本。

FusionCompute虚拟机热迁移工作原理及应用场景_linux_02

虚拟机热迁移的工作原理

一、 虚拟机热迁移需要满足的条件
实现虚拟机热迁移的前提条件是需要各主机在同一个集群,不同的主机需要使用同一个共享存储,要求源主机和目标主机均能访问虚拟机的所有磁盘,即虚拟机磁盘所属的数据存储必须同时关联至源主机和目标主机。。虚拟机的状态要求为“运行中”,并且不能绑定USB设备或者其它外部设备;源主机和目标主机的网络必须互通,即虚拟机网卡所属端口组所在的分布式交换机的上行链路必须同时关联至源主机和目标主机。

FusionCompute虚拟机热迁移工作原理及应用场景_服务器_03

二、 虚拟机热迁移的步骤
(1) 在源主机和目标主机之间建议连接。 热迁移从本质上来说还是群集的一种实现方式,不同主机之间网络需要互通。

(2) 传送虚拟机配置及设备信息。 这里值得注意的是,该部分传送的并非虚拟机目录中的XML配置文件,仅仅是注册表中的信息。以上两步完成的是迁移的准备工作,告知了目标服务器虚拟机所需的资源,并分配所需资源。

(3)传送虚拟机内存数据。 该部分是迁移的核心技术部分,详细描述一下内存传送的过程:
1、锁定Guest主机内存,并将该部分的信息传送到目标服务器;
2、Guest主机继续运行,在Host主机中开启一个新的内存分区为Guest主机提供服务。该区域仅保存变更的内容;
3、新内存分区将继续分片锁定,并传送;
4、重复2~3,保证原HOST服务器与目标HOST服务器变更内存的差异在一个极小的时钟周期之内,直至操作1中的内存传送完成。

(4) 暂停(挂起)源虚拟机并传送状态。 这部分包含3个操作:
1、挂起源虚拟机
2、传送最后的源虚拟机内存变更片段
3、通知存储,将存储挂载至目标服务器

第四步是迁移时间消耗的关键。而关键的关键是实时内存状态的保存。根据实测,在热迁移操作中,ping包监视根据系统负载不同可以做到0丢包。完全可以满足一般企业高可用的需求。

虚拟机热迁移的应用场景

一、DRS
随着热迁移技术的成熟稳定,又可以将它应用在集群的负载均衡上,实现DRS的功能。动态资源调度DRS(Dynamic Resource Scheduler),指采用智能负载均衡调度算法,并结合动态电源管理功能,通过周期性检查同一集群资源内各个主机的负载情况,在不同的主机间迁移虚拟机,从而实现同一集群内不同主机间的负载均衡,并最大程度降低系统的功耗。系统轻载时,将迁移部分虚拟机,并将其集中在部分物理主机,随即将空闲主机下电。系统重载时,将启动部分物理主机,并将虚拟机均衡分布在各主机中,以保证资源的供应和用户的体验。通过计划任务,可根据系统运行的情况,分时段采取不同的资源调度策略,以满足不同场景的用户需求。

FusionCompute虚拟机热迁移工作原理及应用场景_数据存储_04

二、DPM
动态电源管理DPM(Dynamic Power Management)根据业务情况,智能地将部分物理机上下电,配置主机BMC参数之后,电源管理才生效,系统才可按照电源管理阈值对主机进行调度。电源管理依赖于计算资源调度,因此电源管理只有在开启计算资源调度,并且迁移阈值的设置不为”保守”时生效。电源管理自动化功能会周期性地检查集群中服务器的资源使用情况,如果集群中资源利用率不足,则会将多余的主机下电节能,下电前会将虚拟机迁移至其他主机;如果集群资源过度利用,则会将离线的主机上电,以增加集群资源,减轻主机的负荷。