vMotion HA DRS
1 vMotion 概念
vMotion 是让处于运行状态下的 VMs 在 ESXi Hosts 之间自由、不停机的移动
优势:
- 计划内0停机硬件设备维护
- 提高资源的综合利用率
1.1 先决条件
- 至少两台ESXi主机,由同一个vCenter管理
- 拥有 vMotion VMkernel
1.2 工作原理
所有的 VMs 运行于 ESXi Host 上,相当于一个个应用程序,都会消耗 ESXi host 的物理资源,其中最重要的就是物理内存,vMotion需要解决的核心问题是:将 VMs 的内存从源 ESXi Host 不断电的情况下无中断拷贝到目标 ESXi Host
内存迁移描述:
- 按照 memory bitmap 迁移,如果 VM 在迁移过程中没有内存变动,则直接迁移
- 若有内存变动,则记录改变的内存块,等未改变的内存迁移完成后,用改变的内存块覆盖,直至迁移结束
- 然后在 ESXi2 上重启主机,整个过程用户应当感受不到变化
1.3 vMotion 对 ESXi 的要求
- 源主机和目标主机 CPU 兼容(EVC组件,保证CPU兼容)
- 源主机和目标主机连接到同一个网络
- 源主机和目标主机连接到同一个共享存储
- 源主机和目标主机同时拥有一个名为 vMtion 的 VMkernel 接口
1.3.1 CPU 要求详解
CPU功能特性 | 是否要求完全匹配 | 备注 |
---|---|---|
时钟频率、核数、缓存大小 | 否 | |
是否异构(intel/AMD) | 严格要求 | |
CPU指令集 | 严格要求 | |
CPU虚拟化 | 32位虚拟机没要求;64位有要求(64位的虚拟化需要CPU支持,在 bios 中设置) | |
CPU 微码的屏蔽 | 要求 |
1.4 vMotion 对虚拟机的要求
- 不能连接到 VM 所在 ESXi Host 的内部交换机(内部交换机是指,vsphere中没有上行端口的交换机)
- VM 的 vCPU 不能被绑定到所在 ESXi Host 的内核
- VM 不能连接到所在 ESXi Host 的本地设备(本地光驱、或者本地的文件等)
- 不支持 physical 模式的裸设备映射
- 虚拟机的硬件版本为9以上
1.5 vSphere 支持的迁移技术及差异对比
迁移技术 | VM状态 | 跨主机/存储 | 跨数据中心 | 共享存储 | CPU |
---|---|---|---|---|---|
冷迁移 | 关机 | 可以 | 可以 | 不要求 | 不要求 |
挂起迁移 | 挂起 | 可以 | 可以 | 不要求 | 要求 |
vMotion | 开机 | 仅Host | 不可以 | 要求 | 要求 |
Storage vMotion | 开机 | 仅存储 | 不可以 | 不要求 | 不要求 |
Enhanced vMotion | 开机 | 可以 | 不可以 | 不要求 | 要求 |
1.6 storage vMotion
虚机运行状态下,无中断变更虚拟机的存储位置
迁移描述:
- 若无数据块写/修改操作,则直接复制
- 若有数据块变动,且数据块已经完成复制,则同时在源端和目标端进行改动,若未完成复制,则只在源端改动,直至复制完成
- ESXi 尝试使用新的进程来运行主机,删除源端文件
2 HA
保证业务连续性
编号 | 支持场景 | 备注 |
---|---|---|
1 | ESXi host 故障 | |
2 | VM 故障 | |
3 | 操作系统故障 | |
4 | Application 故障 | 有局限性 |
5 | network partition | 网络逻辑隔离 |
6 | network isolation | 无法通讯 |
2.1 核心基础
- 网络心跳 master和slave之间8182端口
- 存储心跳
- 共享存储
- 缺省网关
ESXi主机角色:
- master 角色:
- 负责监控所有ESXi主机和虚拟机的可用性:slave主机故障后,VM会在其他slave主机上重启; Protected VM 的电源状态,故障时master会尝试重启它;
- 负责管理所有ESXi主机和虚拟机:负责更新和删除主机信息;负责维护 Protected List VM
- slave 角色:
- 监控本机的虚拟机运行状态,并且将所有的状态变更通知给master主机
- 不依赖任何中央控制功能,主要负责监控虚拟机的健康状态
- 监控master主机的健康状态,当master死掉之后会选举产生新的master主机
- 维护powered on 虚拟机
默认情况下,仅有一台master主机,其他的全部为slave主机
2.1.1 master主机产生的流程
master主机选举前提条件:
- vsphere HA 激活
- master 主机故障或者关闭
- management network partition (网络分区)
master 主机选举流程:
- datastore 数量较多的主机将会成为新的master
- MOID(vsphere随机生成给主机的ID,无法手动指定)较大的将会成为新的master;比对原则(首位大小比较,长度比较)
agent 通讯流程:
- ICMP 执行端到端通讯,不走广播
- UDP方式选举
- 选举完成后新的master于slave之间通过SSl加密RTCp通讯
- 每台slave单线TCP与master联系
datastore heartbeat
- 存在的价值时用作冗余心跳
- datastore被用于备份心跳检测,用于网络故障时备用
- 负责监控slave主机和其上的vm状态
- 由于vm只能由master管理,所i他还负责协调master主机
- 缺省2哥datastore最多5个datastore
2.1.2 VM protection States
- protected VM list 是再 HA 发生时会被尝试重启
- protected VM list 由vcenter负责更新给master主机
- vm 开机时 vcenter 会检测到它 然后通知给master
- 手动关闭的 vm 不受 HA 保护
- 关闭/启动过程中的 vm 不受 HA 保护
- ESXi主机与vcenter断开了连接,vm不受HA保护
- ESXi主机处于维护模式,vm不受HA保护
![ha架构及通讯][ha架构及通讯]
2.1.3 HA 故障切换情况
DRS
DRS(Distributed Resource Scheduler):基于业务优先级自动实现在不同宿主机之间的资源利用率负载均衡,以及通过在负载较低时段内关闭部分主机优化电源消耗。
VMware DRS执行VM在宿主机上的初始安装。
假设在一个ESX/ESXi集群服务器组中添加一个新的VM。DRS检查集群中不同宿主机的负载情况,然后选择合适的宿主机创建新VM。假设三台宿主机A、B和C, A和B主机大多数资源已经用到,vSphere DRS将在未充分利用的主机C上开始新的VM。
持续地监控集群中可供宿主机使用的资源,然后给出运行中VM建议来平衡地利用这些空闲资源。
例如,在A、B和C宿主机的集群中,所有的VM使用的内存和CPU资源类似。如果A和B主机每台运行5个VM,而C主机仅支撑了2个VM,DRS可能会建议从主机A和B迁移一台VM到C上。这样A和B都支持4台VM,平衡了资源。
DPM(Distributed Power Management)是DRS的可选功能。当DPM启用时,DRS评估集群宿主机现在和过去的使用情况,然后可以自动地(或配置为建议管理员)把主机置于待机状态直到需求增长。