VMware vSphere HA深入解析
概述
相信大家都知道怎么在vSphere环境中配置HA功能,知道HA故障切换时间为VM系统启动时间+应用启动时间+15秒左右的心跳检测时间,知道HA不受DRS和vMotion影响,知道HA不需要依赖vCenter(vCenter挂了,License授权ESXi主机只有3天,之后虚拟关闭后无法开启),知道HA是通过ESXi主机的管理网路进行心跳检测故障,那么您是否知道HA是怎样实现虚拟机自动故障切换?下面就是我要讲的HA功能的深入解析,首先来看一张HA组件图,如图1-1所示。
图1-1 HA组件图
VPXA
VPXA是非常重要的组件,它不是HA的代理,它是vCenter的代理,它允许vCenter服务器和ESX主机进行内部通信,在必要的时候,它还可以关闭或者开启ESXi主机上的虚拟机。
尽管是在vCenter Server上配置的HA功能,但HA和vCenter Server之间是一种松耦合的结构,所以HA功能也不必完全让vCenter Server来管理,大家很容易会想到这样一个例子,当vCenter Server虚拟服务器所在的ESXi主机发生故障时,HA功能仍然生效,它可以使vCenter Server在另一台主机上启动,当然故障主机上的其它虚拟机也会在另一台主机上启动。
我们会建议,当vCenter Server所在的ESXi主机发生故障时,应该设置vCenter Server在另一台主机上最优先的启动,这样当有些虚拟机与vCenter有依赖关系时,vCenter优先运行可以避免它们之间发生关联问题。
另外强烈建议在配置ESXi主机时写入主机的完全域名名称,如XX.domain.com,vCenter提供了HA功能所需的名称解析,HA存储在本地的文件叫“FT_HOSTS”,换句话说,我们建议HA不必在本地创建主机文件,如果用静态名称(不能解析),这样不灵活且不方便排错。
VMAP Plug-in
在图中的下一个组件是VMAP,大家知道VPXA是用来支持vCenter和ESXi主机进行通信的,而VMAP是HA Agent(AAM)和VPXA之间的信息传递者,当VPXA想要同AAM进行通信,VMAP就翻译成可以理解的指令传给AAM,一个很好的例子用来体现VMAP怎样传递虚拟机的状态信息,虚拟机的运行和关闭,在vSphere4.0之前它是VPXA的一个独立的插件,当群集中添加HA功能时,VMAP被加载到VPXA中。
VPXA与VMAP通信,VMAP与AAM通信,当AAM收到指令,马上把该信息传递给VMAP,VMAP把该指令转到VPXA,VMAP插件在同AAM通信中扮演者代理的角色。
那么你可能会疑惑,为什么我们需要VMAP?难道有些工作VPXA或者AAM不能够完成么?答案是肯定的,不管VPXA还是AAM都可以做到这个功能,但是,在介绍HA时,为了设计HA架构更为合理,从而建立了一个单独的组件,也就是衍生出的VMAP插件。
AAM
接下来是我们的最后一个组件,AAM Agent,AAM agent是HA功能的核心,全称“Automated Availability Manager”,如上所述,AAM最早是Legato开发的,它承担着很多任务,如主机资源信息交换,虚拟机状态搜集,群集主机上HA的属性搜集,AAM 存储所有的信息到数据库中,并在所有的HA主节点见同步数据(HA主节点接下来的内容再讲),大家经常提到HA功能只是用内存中保存的数据,其实并非如此,在本地磁盘和闪存中也同样存有数据。
AAM还承担着HA的心跳检测任务。
当我们开启HA功能,所有以上的作用使得AAM成为ESXi主机上最重要的组件之一,工程师们认识到它的重要性,从而会提高对HA的了解。AMM agent是多线程工作的,每个工作任务都像监控狗一样监视着其它工作任务,如果其中一个任务被监控狗发现死掉了,监控够会抓取它并重新启动该任务,以确保HA功能正常,而不会出现失败警告。它还可以反馈网络中断和组件运行失败。网络通信中断后,群集内主机自动用另一个路径进行通信(配置了管理网络冗余的情况下),底层消息框架会保证消息精准传递。
结论
如下图所示1-2所示,当左侧ESXi主机当机后,右侧节点AAM通过心跳检测到信号丢失,将之前同步的AAM中的虚拟机信息通知VMAP,VMAP通知VPXA,VPXA将信息传递给vCenter,vCenter通知VPXA执行虚拟机开启操作。
1-2 HA执行步骤
备注:以上HA的架构是根据vSphere 4.1版本进行介绍的,而5.1版本的俺还木有找到相关资料,如有会详细更新,谢谢支持。
VMware vSphere HA深入解析相关推荐
- VMware vSphere 7 服务器ESXi虚拟化HA高可用解决方案
一. 服务器虚拟化方案简介 服务器虚拟化是什么 将服务器物理资源抽象成逻辑资源,让一台物理服务器变成多台相互隔离的虚拟服务器.采用云计算数据中心解决方案后,可以让硬件资源利用率更好.能耗更低:从 ...
- VMware vSphere 5.1 群集深入解析(二十一)- 存储I/O控制(SIOC)
VMware vSphere 5.1 Clustering Deepdive HA.DRS.Storage DRS.Stretched Clusters Duncan Epping &Fran ...
- VMware vSphere 5.1 群集深入解析(二十六)- 数据存储维护模式汇总
VMware vSphere 5.1 Clustering Deepdive HA.DRS.Storage DRS.Stretched Clusters Duncan Epping &Fran ...
- 如何 sizing 一台物理机上可以承载多少 VMware 虚拟机? 分享 Vsphere HA 几个实用知识点
如何 sizing 一台物理机上可以承载多少 VMware 虚拟机? https://mp.weixin.qq.com/s?__biz=MjM5NTk0MTM1Mw==&mid=2650633 ...
- VMware vSphere 5.1 群集深入解析(二十九)-故障排错
VMware vSphere 5.1 Clustering Deepdive HA.DRS.Storage DRS.Stretched Clusters Duncan Epping &Fran ...
- VMware vSphere 5 HA详解 (part1)
delxu原创,转载请注明出处.谢绝百度文库的转载. 很久没有动笔写博客了.总算最近的几项工作告一段落,对iOS和Android的折腾也兴趣稍退,该写点技术博客了. 想写一篇关于VMware HA的博 ...
- VMware、配置VMware vSphere 6.0 vMotion、DRS、HA和FT
一.虚拟机迁移概述 1.vMotion基础知识简介 您可使用热迁移或冷迁移将虚拟机从一个主机或存储位置移至另一位置.例如,您可使用 vSphere vMotion 将已打开电源的虚拟机从主机 ...
- VMware vSphere 5.1 群集深入解析(二十五)- 关联性
VMware vSphere 5.1 Clustering Deepdive HA.DRS.Storage DRS.Stretched Clusters Duncan Epping &Fran ...
- VMware 虚拟化编程(3) —VMware vSphere Web Service API 解析
目录 目录 前文列表 VMware vSphere Web Services API VMware vSphere Web Services SDK vSphere WS API 中的托管对象 Man ...
最新文章
- QMYSQL driver not loaded
- 如何在多线程中调用winform窗体控件2——实例篇
- 深入Bert实战(Pytorch)----fine-Tuning 2
- (Oracle学习笔记) Oracle概述
- 【机器学习基础】数学推导+纯Python实现机器学习算法13:Lasso回归
- “开启IT管理新时代”惠普软件客户论坛圆满闭幕
- python数组和矩阵用法
- CentOS 程序开机自启动方法总结
- 采用批处理命令对文件进行解压及采用SQLCMD进行数据库挂载
- 4 form j1 w 如何填写_设计必备方法,如何通过数据优化设计?
- python图像处理应用的前景_传统图像处理还有前景吗?
- HTTP 返回304
- Zdal分库分表、超详细一步一步实现使用zdal搭建框架
- linux下编译fortran非法字符,linux下fortran中編譯代碼時“undefined reference to `_gfortran_st_”錯誤...
- 【CVRP】基于matlab节约算法求解带容量的车辆路径规划问题【含Matalb源码 157期】
- CVE-2020-10148: SolarWinds 远程代码执行漏洞通告
- 微信公众号开发之(35)地图导航
- address already in use :::8080,端口号已被占用
- 自动颁发证书 AD域策略
- ucharts折线图出现断点时画小圆圈(当线的width很大时,小圆圈会很大)
热门文章
- c专家编程 读书笔记
- 职业生涯中的选择时机非常重要,各种条件还没成熟时的时候,因为诱惑而贸然行事,只会得到适得其反的结果...
- Oracle - 安装 Oracle Database 11g Release 2
- 从FTP入侵到SQL
- Centos7使用yum下载rpm包而不执行安装
- Flex布局新旧混合写法详解
- 移动端ios中click点击失效
- android.graphics包中的一些类的使用
- JAVA学习篇--Java类加载
- JQuery中button提交表单报TypeError: elem[type] is not a function jquery