http://blog.51cto.com/linkinsds/416738

HA全称High Availability。它是VMware的企业应用环境中用来保障企业级应用的不间断运行需求所产生的一个组件。

HA允许一个集群中在资源许可的情况下,将出现故障的ESX主机上面的VM在其他的主机上启动起来,其间的业务时间间断为:VM系统启动时间+应用启动时间+15秒左右的心跳检测时间。通常这个时间都能够保持在3分钟内。

HA不受DRS和VMotion的影响,也就是说它并不依赖于后两者存在,它的心跳检测信号可以通过在ESX主机之间发生。HA甚至都不依赖于VC服务器,不过鉴于HA的配置需要一来VC,所以我们一般认为HA还是需要依赖于VC服务器的,但是我们必须清楚的认识:VC于HA的作用仅限于配置时需要它,配置完成之后,只要我们设定了心跳检测的隔离地址,则我们可以丢弃VC服务器了(前提是我们不需要用到DRS和VMotion等功能)。

设定HA集群过程中,我们可以看到如下几个选项,他们分别的含义是:

1、接入控制。用于设定集群中可以恢复或确保故障切换的最大主机故障数(VI3中集群最大允许故障主机数目为4台)、确定违反可用性限制的VM是否可以被启动。

2、默认群集设置。默认会应用于群集中的所有满足HA条件的VM。其中“虚拟机重新启动优先级”选项指定发生主机故障时重启VM的相对优先级,优先级较高的VM将优先启动,依此类推,优先级从高到低次第启动;“主机隔离响应”选项则用于执行已与集群失去连接的ESX主机应对正在运行的VM执行的操作。默认情况下,住过主机被隔离,则每台VM会保持启动状态,也就意味着被隔离ESX主机无法于集群中的其他主机取得联系,但是其中的VM还继续保持运行;“关闭虚拟机”和“虚拟机关闭”则会将VM交付于其他ESX主机,等同于切断VM的电源,可能导致应用数据丢失。其中前者相当于拔电源,后者则是温和的自动启动关机命令。区别在于,前者的等待时间较短,但是容易导致应用数据丢失,后者等待时间较长,但是应用数据更容易受到保护。

3、虚拟机监控。可以通过安装VMtools对虚拟机的运行状态通过VMtools发出的监控信号进行监控,如果在规定时间内没有收到信号则说明该机异常,将自动重启这台机。这个规定时间有:2分钟、1分钟、30秒钟三个选项。

4、高级选项。这里是对HA的一些高级选项进行配置。比如das.isolation-address(确定主机状态的隔离地址)。

HA的具体工作原理

在集群中,VC通过心跳信号(Agent Heartbeat)来监控各台ESX主机的工作状态,ESX主机之间也能够相互发送心跳信号来确定相互之间的连通性和运行状态。集群中的心跳信号默认通过Service Console来传输(端口不定),那么,当某台ESX主机没有收到其他主机的信号时,则可能有两种可能:(1)、其他ESX主机故障;(2)、本机网络连通性出了问题,我们称之为“孤立”(isolation)。

ESX主机的联通性心跳信号测试,还可以通过一个“隔离地址”来实现,默认情况下这个地址是Service Console的网关地址,但是,我们可以在高级选项中自定义这个地址。

一旦ESX主机确定是自身的问题,那么,系统将会自动解除对ESX主机上面虚拟机的VMDK文件解除锁定,方便其他主机接管它;如果ESX主机确认非自身问题,则开始尝试接管其他可能故障的ESX主机上面的VM。

根据实验资料,ESX主机会在停止收到心跳信号数秒后,开始确认自己是否被孤立,如果确认是,则会根据遇险的配置来决定其中VM的状态处理。正常ESX主机会在停止接收到故障ESX主机的心跳喜好15s之后,开始尝试接管并启动原来在故障主机上的VM。

另一种特殊的情况,我们称之为“脑裂”

这种情况一般发生在非冗余网络和主机集群中。假定某HA集群中有2台主机T1和T2,当T1崩溃后没能发出心跳信号时,T2无法确认是T1问题还是自身问题,这时它会尝试ping隔离地址设定的IP,来确认是否是自身被孤立,如果隔离地址因为防火墙封闭或其他原因无法ping通,则T2会认为自身是孤立主机,那么,它就会按照预先设定的操作进程对VM进行相应的处理,进而扩大化故障范围

正是为了防止“脑裂”现象的发生,VMware中将HA设置中的“主机隔离响应”默认配置为“保持VM启动状态”。

备注:早期的版本默认设置为“关闭VM”。 所以,我们一再强调对HA集群中的默认ESX主机为3台以上,或者集群中的ESX拥有冗余网络。

关于vmware 推荐的ha群集最佳做法:

主要是分设计群集,网络配置,网络冗余.

一关于设计群集:

1)将警报设置为监控群集更改

当 VMware HA 或容错执行可用来维护可用性的操作时(例如,虚拟机故障切换),我们需要系统通知我们

此更改。可以将 vCenter Server 中的警报触发设置配置为在执行操作或向指定的一组管理员发送警示(如,电

子邮件)时触发。

2)监控群集有效性

有效群集是尚未违反接入控制策略的群集。

当已启动的虚拟机数超过了故障切换需求,即当前故障切换容量小于所配置的故障切换容量,则已启用 VMware

HA 的群集将会变为无效(红色)。如果禁用了接入控制,则群集不会变为无效。

vSphere Client 中的群集的“摘要”页面显示群集的配置问题的列表。该列表说明了造成群集无效或过载(黄色)

的原因。

如果群集是由于 VMware HA 问题而变为红色的,则 DRS 行为不会受到影响。

3)检查群集的操作状态

群集或其主机可能会出现一些配置问题和其他问题,这会对 VMware HA 的正常运行产生负面影响。可以查

看“群集操作状态”屏幕来监控这些错误,能够从 vSphere Client 中群集的摘要选项卡的 VMware HA 部分访

问此屏幕。大家应该解决此屏幕上列出的所有问题。

二关于网络配置(维护):

下列网络维护建议可以帮助我们避免对由于丢失 VMware HA 检测信号而发生故障的主机和网络隔离的意外检测。

1)对群集 ESX/ESXi 主机所在的网络进行更改时,VMware 建议我们挂起主机监控功能。更改网络硬件或网络

设置会中断 VMware HA 用于检测主机故障的检测信号,并且这可能导致不必要的虚拟机故障切换尝试。

2)在 ESX/ESXi 主机上更改网络配置时(例如,添加端口组或移除 vSwitch),VMware 建议除了挂起主机

监控以外,还应将主机置于维护模式。

群集范围的网络注意事项

为了使 VMware HA 运行,群集内的所有主机都必须有兼容网络。添加到群集的第一个节点指明为了使所有后

续主机成为群集成员还必须拥有的网络。如果 IP 地址和子网掩码的组合生成的网络与其他主机的网络相匹配,

则将此网络视为兼容网络。如果尝试添加具有太多或太少管理网络的主机,或者要添加的主机具有不兼容的网络,

则配置任务将失败,而且“任务详细信息”窗格中将指定该主机不兼容。

例如,如果添加到群集的第一个主机有两个网络用于 VMware HA 通信,10.10.135.0/255.255.255.0 和

10.17.142.0/255.255.255.0,则所有后续主机必须配置相同的两个网络,并用于 VMware HA 通信。

网络隔离地址

网络隔离地址是要 ping 的 IP 地址,以确定主机是否与网络隔离。只有当主机已停止从群集内的任何其他主机

接收检测信号时才 ping 此地址。如果主机可以 ping 其网络隔离地址,则说明该主机并未与网络隔离,并且群

集内的其他主机已发生故障。但是,如果主机无法 ping 其隔离地址,则可能该主机已与网络隔离,并且不会

执行故障切换操作。

默认情况下,网络隔离地址是主机的默认网关。无论已定义了多少管理网络,都只指定了一个默认网关,因此,

应当使用 das.isolationaddress[...] 高级属性为其他网络添加隔离地址。

指定额外的隔离地址时,VMware 建议将 das.failuredetectiontime 高级属性的设置增加到 20000 毫秒(20 秒)

或更长时间。如果主机隔离响应是为了故障切换虚拟机(而非将其保持为启动状态),则从网络隔离的节点需

要时间释放其虚拟机的 VMFS 锁。必须在其他节点将该节点声明为故障节点之前进行此操作,以便当它们启动

虚拟机时,不会由于虚拟机仍然被此隔离节点锁定而收到错误。

其他网络注意事项

配置交换机。如果连接服务器的物理网络交换机支持 PortFast(或等效)设置,请将其启用。此设置可防止主

机在执行冗长的跨树算法期间误认为网络已被隔离。

主机防火墙。在 ESX/ESXi 主机上,VMware HA 需要并自动打开以下防火墙端口。

A 入站端口:TCP/UDP 8042-8045

B 出站端口:TCP/UDP 2050-2250

端口组名称和网络标签。在 VLAN 上使用一致的公用网络端口组名称和网络标签。端口组名称用于重新配置虚

拟机对网络的访问。如果在原始服务器和故障切换服务器间使用的名称不一致,虚拟机将在故障切换后中断网

络连接。虚拟机使用这些标签在重新启动时重新建立网络连接。

三网络路径冗余

群集节点之间的网络路径冗余对 VMware HA 可靠性非常重要。单个管理网络会最终成为单一故障点。

如果当我们只有一个管理网络,则主机和群集之间的任何故障都可能导致不必要的(错误的)故障切换情况。可

能的故障包括网卡故障、网络电缆故障、网络电缆移除和交换机重置。考虑主机可能导致故障的上述原因,然

后尝试减少这些问题(通常通过提供网络冗余来实现此目的)。

可以使用网卡绑定在网卡级别或在管理网络级别实现网络冗余。在大多数实现中,网卡绑定可以提供足够的冗余,

但如果需要,可以使用或增加管理网络冗余。冗余管理网络可以可靠地检测故障并防止出现隔离的情况,因为

检测信号可以通过多个网络发送。

在群集内的服务器之间尽量少配置硬件分段,目的是为了限制单一故障点。此外,跃点过多的路由可能会导致

检测信号的网络数据包延迟,并增加潜在的故障点数目。

使用网卡绑定的网络冗余

如果用两个连接到不同物理交换机的网卡组成一个网卡组,则可以提高管理网络的可靠性。因为通过两个网卡

(并且通过单独的交换机)连接的服务器具有两条独立的路径来发送和接收检测信号,所以群集具有更好的弹性。

要为管理网络配置网卡组,请在活动或待机配置的 vSwitch 配置中配置 vNIC。推荐的 vNIC 参数设置如下:

A默认的负载平衡 = 基于源虚拟端口 ID 的路由

B 故障恢复 = 否

在为 VMware HA 群集内的主机添加网卡后,必须在该主机上重新配置 VMware HA。

使用辅助网络的网络冗余

除了使用网卡绑定提供检测信号冗余之外,还可以创建一个辅助管理网络连接,并将其连接到一个单独的虚拟

交换机上。主管理网络连接用于网络和管理。辅助管理网络连接创建之后,VMware HA 会同时通过主管理网

络连接和辅助管理网络连接发送检测信号。如果一条路径发生故障,VMware HA 仍可通过另一条路径发送和

接收检测信号。

VMware vSphere中的HA工作原理介绍的更多相关文章

  1. 【】VMware vSphere中三种磁盘规格的解释说明

    在VMware vSphere中,不管是以前的5.1版本,或者是现在的6.5版本,创建虚拟机时,在创建磁盘时,都会让选择磁盘的置备类型,如下图所示,分为: 厚置备延迟置零 厚置备置零 Thin Pro ...

  2. 双机热备ROSE HA工作原理

    双机热备ROSE HA工作原理 当双机热备软件启动后,ROSE HA首先启动HA Manager管理程序,根据高可靠性系统的配置结构初始化,然后启动必要的服务和代理程序来监控和管理系统服务.HA代理程 ...

  3. 转:ListView中getView的工作原理

    ListView中getView的工作原理: [1]ListView asks adapter “give me a view” (getView) for each item of the list ...

  4. JavaScript中this的工作原理以及注意事项

    在JavaScript中,this 的概念比较复杂.除了在面向对象编程中,this 还是随处可用的.这篇文章介绍了this 的工作原理,它会造成什么样的问题以及this 的相关例子. 要根据this  ...

  5. 【转】memcached工作原理介绍

    FROM: http://my.oschina.net/flynewton/blog/8984 官方主页: http://memcached.org/ 面临的问题  对于高并发高访问的Web应用程序来 ...

  6. Java[4] Jetty工作原理介绍(转)

    转自:https://www.ibm.com/developerworks/cn/java/j-lo-jetty/ Jetty 的工作原理以及与 Tomcat 的比较 Jetty 应该是目前最活跃也是 ...

  7. PHP中的Session工作原理

    一直在使用session存储数据,一直没有好好总结一下session的使用方式以及其工作原理,今天在这里做一下梳理. 这里的介绍主要是基于php语言,其他的语言操作可能会有差别,但基本的原理不变. 1 ...

  8. JVM(四) G1 收集器工作原理介绍

    此篇文章半原创是对参考资料中的知识点进行总结,欢迎评论指点,谢谢!        部分知识点总结来自R大的帖子,下文有参考资料的链接 概述 G1 收集是相比于其他收集器(可见 上一篇文章),可以独立运 ...

  9. Struts1、Struts2、Hibernate、Spring框架工作原理介绍

    Struts1工作原理 Struts1工作原理图 1.初始化:struts框架的总控制器ActionServlet是一个Servlet,它在web.xml中配置成自动启动的Servlet,在启动时总控 ...

随机推荐

  1. Python3安装turtle提示错误:Command "python setup.py egg_info" failed with error code 1

    Python3安装turtle提示错误:Command "python setup.py egg_info" failed with error code 1 Python3.5安 ...

  2. String、Date和Timestamp的互转

    begin 2018年8月17日19:09:49 String.Date和Timestamp的互转 String和Date的互转 关于String和Date的互转,在java8后会有不同.因为java ...

  3. SpringBoot详细研究-01基础

    Springboot可以说是当前最火的java框架了,非常适合于"微服务"思路的开发,大幅缩短软件开发周期. 概念 过去Spring充满了配置bean的xml文件,随着spring ...

  4. linux学习笔记-1.man_page

    1.内部命令:echo 查看内部命令帮助:help echo 或者 man echo 2.外部命令:ls 查看外部命令帮助:ls --help 或者 man ls 或者 info ls 3.man文档 ...

  5. Hdu5385 The path

    The path Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others)Total Su ...

  6. 【面试虐菜】—— JAVA面试题(2)

    前篇推荐:http://www.cnblogs.com/xing901022/p/3975626.html 1 String = 与 new 的不同 使用“=”赋值不一定每次都创建一个新的字符串,而是 ...

  7. Linux学习笔记01—安装LInux系统

    1.首先,使用光驱或U盘或你下载的Linux ISO文件进行安装. 界面说明: Install or upgrade an existing system 安装或升级现有的系统 install sys ...

  8. PHP上传文件大小限制的问题(转)

      在用PHP进行文件上传的操作中,需要知道怎么控制上传文件大小的设置,而文件可传大小是受到多种因素制约的,现总结如下:1.php.ini:upload_max_filesize 所上传的文件的最大大 ...

  9. [Deepin 15] 编译安装 MySQL-5.6.35

    在 Ubuntu 下,先前一直是 二进制包解压安装,详情参考: http://www.cnblogs.com/52php/p/5680906.html 现改为 源码编译安装: #!/bin/bash ...

  10. DOM对象之document对象

    DOM对象:当网页被加载时,浏览器会创建页面的文档对象模型(Document Object Model). HTML DOM 模型被构造为对象的树. 打开网页后,首先看到的是浏览器窗口,即顶层的win ...