什么是vMotion
VMware vMotion允许虚拟机在不停机的情况下更改其运行位置。例如,我可以将虚拟机从一个ESXi主机移
动到另一个ESXi主机,而正在使用此虚拟机的用户并不会感觉到这个迁移的发生。通过vMotion可以实现零
停机时间和连续可用的服务,并能全面保证业务的完整性和连续性。vMotion是一种用户创建动态、自动化、
自我优化的数据中心的关键技术。VMware vMotion在Virtual Center 1.0中首次亮相,并且是一款不断伴
随vCenter和ESXi升级的产品。
vMotion工作原理
vMotion的工作原理是将虚拟机从一个主机转移到另一个主机,而不破坏它所服务的虚拟机或应用程序。这
就需要vMotion在不同ESXi主机之间传输虚拟机状态信息。如下图,一个可以运行vMotion的环境需要包括
共享存储、共享网络和用于转移虚拟机状态的网络。这三个要素是vMotion运行必须具备的先决条件。虚拟
机的状态信息是指内存中的内容(虚拟机正在做什么),以及关于虚拟机的一些唯一标识信息。这些信息包
括BIOS、设备、CPU、以太网卡的MAC地址、芯片组状态、寄存器等等。
如下图,在ESXi主机1上正在运行着一台虚拟机。作为将虚拟机从ESXi主机1移动到ESXi主机2的vMotion操
作的一部分,ESXi主机之间会传输关于虚拟机的所有信息,包括虚拟机内存的内容。一旦状态被转移,虚拟
机将运行在目的地ESXi主机2上。这是一个典型的vMotion,因此需要共享存储和共享网络这两个重要组件。
Storage vMotion
VMware 在ESX 3.5及之后版本推出的一项针对存储迁移的功能,就是在虚拟机开机状态下改变其存储位置,
和VMotion一样,整个迁移过程对用户透明,应用不会中断。vMotion关注的是虚拟机的状态,而Storage
vMotion关注的是存储。它允许您在虚拟机运行时在数据存储之间移动虚拟机的文件。这个特性非常方便,
通过Storage vMotion可以将虚拟机在线移动到新的数据存储中,以便从旧的存储中迁移出去。或者如果
需要更好的性能,可以移动到具有更快磁盘的数据存储中。vMotion和Storage vMotion等特性使得在主
机、集群、存储阵列等之间迁移虚拟机变得很容易。
VMware vMotion的类型
在迁移虚拟机的时候,如下图我们可以看到有三种类型可选,分别是:
● Change compute resource only ## vMotion
● Change storage only ## Storage vMotion
● Change both compute resource and storage ## vMotion+Storage vMotion
● vMotion: 在线更改虚拟机的计算资源(只更改计算资源)
● Storage vMotion:在线更改虚拟机磁盘的位置(仅更改存储)
● Change both compute resource and storage:同时更改虚拟机的主机和数据存储。当将虚拟机移动
到不与前一个集群共享存储资源的新集群时,这个功能非常方便。
高级vMotion功能
● 跨vCenters的迁移
这个功能是在vSphere 6.0中添加的。在这之前要想在vCenters之间迁移虚拟机并不是件容易的事情。具体
介绍可以参考VMware官方KB:Cross vCenter Migration and Clone requirements
● 长途vMotion
同样发布在vSphere 6.0中,long distance vMotion是一个延迟超过4毫秒的vMotion操作,只要往返延
迟小于150毫秒,就可以跨距离使用vMotion。具体介绍可以参考VMware官方KB:
Long Distance vMotion requirements
● vSphere vMotion加密
从vSphere 6.5开始,vMotion就支持加密虚拟机。但是,需要注意的是,如果磁盘没有加密,那么Storage
vMotion将不会在传输期间加密磁盘。具体介绍可以参考VMware官方文档:
Encrypted vSphere vMotion
VMware vMotion配置条件
如前面介绍,vMotion有多种类型,下面我们来介绍一下配置各种类型vMotion的必要条件。
经典vMotion
我们先来说一下经典vMotion的配置条件,这也是实现其它各种类型vMotion的基础。
1、需要在源和目标ESXi主机之间共享存储和共享网络,并确保虚拟机能够访问相同的资源,并且在它到达它
的新家时仍然能够通信。
2、在每个主机上创建一个支持vMotion的VMkernel端口,这是传输vMotion数据的网络。如下图专门配置
vmk1为vMotion的端口。具体介绍参考VMware官方KB:
Understand vMotion networking requirements
3、确保ESXi主机之间配置始终相同的一种方法是使用VMware主机概要文件。这使得确保您满足vMotion的要
求变得很容易。
其它高级vMotion的配置条件可以参考以下VMware 官方文档:
跨vCenters的vMotion:
Cross vCenter Migration and Clone requirements
Requirements for Migration Between vCenter Server Instances
长途vMotion:
Long Distance vMotion requirements
vSphere HA
vSphere HA可以将虚拟机及其所驻留的主机集中在群集内,从而为虚拟机提供高可用性。群集中的主机均
会受到监控,如果发生故障,故障主机上的虚拟机将在备用主机上重新启动。vSphere HA会持续监控资源
池中的所有物理服务器,并重启受服务器故障影响的虚拟机。
● 监控和检测虚拟机的“客户操作系统”故障,并在用户指定的时间间隔后自动启动虚拟机。
● 使用服务器上的“心跳信号”来自动检测服务器故障。
● 无需人工干预立即在同一资源池中的其它物理主机上重启虚拟机。
● 与DRS配合使用,选择要在其上重启虚拟机的资源池中的最佳物理主机。
vSphere HA的工作原理
HA不间断地监控集群中所有ESXi服务器,并检测故障。放置在每台主机上的代理程序不断向集群中的其它主
机发出“心跳信号”。如果“心跳信号”终止,将触发所有受影响的虚拟机在其它主机上的重启过程。HA同时时
刻监控集群中是否有足够的资源可用,以便在发生主机故障时能够在其它主机上重启虚拟机。利用ESXi的存
储堆栈中的锁定技术,可以使虚拟机的安全重启成为可能,它允许多个ESXi服务器同时访问同一个虚拟机文
件。当在一个集群中启用HA时,需要指定要保护的主机故障的最大数量,此数量将作为已配置故障切换容量
。HA使用这个数量计算对虚拟机进行故障切换所需的资源并不间断的监控是否有足够的资源启动集群中的虚
拟机。
此资源的确定是基于虚拟机的已配置的CPU和内存资源预留及处理集群中是承压主机故障的能力,使集群中的
主机更加一致,例如,为了避免没有足够的资源在新的主机上重启虚拟机,当主机故障数量超过配置的备用
容量时,将首先对具有最启优先级的虚拟机进行切换。注意,可以选择允许集群在违反可用性限制的情况下
启动虚拟机,但这也意味着故障切换不会得到保证。
DRS(Distributed Resource Scheduler)
VMware DRS代表分布式资源调度程序。VMware在ESX3.0/Virtual Center2.0时推出了vMotion,ESX3.5
/Virtual Center2.5时推出了DRS。VMware DRS是VMware vSphere集群的一部分,它查看集群中的主机,
并平衡它们之间的CPU和内存利用率。如果一台主机超载,它将分散工作负载,以确保性能不受影响。这是对
VMware DRS功能的一个非常简单的解释。
VMware DRS跨聚合到逻辑资源池中的硬件资源集合来动态的分配和平衡计算容量,DRS会不间断的监控资源
利用率,并根据需要和不断变化的优先级的预定义规则,在多台虚拟机之间智能地分配可用资源,当虚拟机
负载增大时,DRS会通过在资源池中的物理主机之间重新分发虚拟机来自动分配额外的资源。
vSphere DRS的类型
● 存储DRS (SDRS)。平衡跨数据存储的数据存储利用率。它同时检查容量和性能指标。
Storage DRS FAQ (2149938)
● 预测DRS。结合vSphere 6.5+和vROPS 6.4+的功能,在发生资源不平衡之前主动移动工作负载。
Predictive DRS
● 弹性DRS。在AWS上的VMware Cloud中,弹性DRS根据需要添加和删除ESXi主机,从而动态地扩展和收缩
集群。
About Elastic DRS
所有类型DRS的核心都是一个算法,该算法关注性能指标,然后根据需要移动内容以实现最佳配置。
与vMotion一样,DRS也在vSphere 6.5中得到了重大增强。其中一个增强是算法的改变,它开始将网络利用
率考虑到主机性能的监控范围之中。
VMware DRS需求
与VMware vMotion一样,VMware DRS也有一些要求,因为它是vSphere集群的一部分,所以必须有一个有
效的ESXi集群才能打开DRS。其中一些要求是大家熟悉的,例如:
● 共享存储
● ESXi主机上兼容的处理器
● vMotion已经启用
DRS的详细需求可以参考VMware官方文档:
DRS Cluster Requirements
vMotion与DRS
vMotion允许在vSphere环境中以非破坏性的方式移动对象,DRS决定如何移动对象以获得最佳性能。当DRS
需要移动某个东西时,它只使用vMotion!虽然这两种技术是完全独立的,但它们彼此很好地互补。虽然vMo
tion和DRS是不同的技术,但它们可以完美的配合在一起。配置vMotion不要求必须配置DRS,也就是说vMo
tion不依赖说DRS。但是如果没有vMotion就不能有DRS,DRS必须依赖vMotion才能工作。这两个特性都确
保VMware vSphere环境的性能最佳,并允许在不影响应用程序和用户的情况下移动工作负载。