VMware vSphere HA深入解析

简介:

概述

    相信大家都知道怎么在vSphere环境中配置HA功能,知道HA故障切换时间为VM系统启动时间+应用启动时间+15秒左右的心跳检测时间,知道HA不受DRS和vMotion影响,知道HA不需要依赖vCenter(vCenter挂了,License授权ESXi主机只有3天,之后虚拟关闭后无法开启),知道HA是通过ESXi主机的管理网路进行心跳检测故障,那么您是否知道HA是怎样实现虚拟机自动故障切换?下面就是我要讲的HA功能的深入解析,首先来看一张HA组件图,如图1-1所示。

clip_image002

图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执行虚拟机开启操作。

clip_image004

1-2 HA执行步骤

备注:以上HA的架构是根据vSphere 4.1版本进行介绍的,而5.1版本的俺还木有找到相关资料,如有会详细更新,谢谢支持。





本文转自 tim2009 51CTO博客,原文链接:http://blog.51cto.com/virtualbox/1127451,如需转载请自行联系原作者
目录
相关文章
|
3月前
|
JSON 监控 数据库
使用Telegraf+Influxdb+Grafana配置VMware vSphere监控大屏
使用Telegraf+Influxdb+Grafana配置VMware vSphere监控大屏
62 0
|
6月前
|
虚拟化
VMware vSphere Client中虚拟机“Disc Found”解决方法
VMware vSphere Client中虚拟机“Disc Found”解决方法
|
8月前
|
监控 负载均衡 安全
VMware vSphere 5.5 高可用性 2
VMware vSphere 5.5 高可用性
152 0
|
8月前
|
存储 资源调度 监控
VMware vSphere 5.5 高可用性 1
VMware vSphere 5.5 高可用性
68 0
|
10月前
|
存储 运维 程序员
[运维]VMware vSphere介绍
[运维]VMware vSphere介绍
121 1
|
11月前
|
存储 文件存储 开发工具
【VMware vSphere 7】虚拟化概述(一)
【VMware vSphere 7】虚拟化概述(一)
155 0
|
11月前
|
存储 测试技术 API
分享:VMware vSphere API玩法
分享:VMware vSphere API玩法
523 0
|
存储 Linux 虚拟化
VMware vSphere 入门学习笔记
ESXi是在物理服务器安装的服务端,所有虚拟机是安装再ESXi里面的,是服务端。 Vcenter是管理端 是安装在ESXi内的一台虚拟机,提供集中管理功能的,比如管理多台ESXi集群,还可以对虚拟机进行复制 克隆 制作模版等各种一系列管理功能操作。 Linux内核的Vcenter名字叫VCSA,Windows版本的Vcenter名字叫Vcenter。
275 0
VMware vSphere 入门学习笔记
|
虚拟化 容器 Linux

推荐镜像

更多