IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    [原]【虚拟化实战】Cluster设计之三HA

    u010170023发表于 2013-11-22 11:33:04
    love 0

    作者:范军 (Frank Fan) 新浪微博:@frankfan7

    一 为什么使用HA

    高可用性是虚拟化平台最突出的特性之一,设置和维护非常简单,技术非常成熟。对于一些非常关键的应用,可能对容灾的要求特别高,可以考虑采用基于应用层的HA,或者操作系统层的HA,比如MSCS。虚拟层的HA是在底层架构上实现的高可用性,在恢复时间可接受的情况下是非常好的选择。

    相对应用层和操作系统层HA而言,vSphere HA以较低的成本实现了整个集群的高可用性,同时实施和维护都十分的简单。无需在应用或者VM上作任何设置或改动。

    二 HA是如何工作的?

    HA Agent

    vSphere5.0之后的版本对架构作了很多的改动。摒弃了原来Cluster中的Primary Node和Secondary Nodes的概念。并且引入了Master  HAagent 和 Slave HA Agent的概念。通常情况下一个Cluster中仅有一个Master HA Agent。HA Agent有以下的功能:

    -与vCenter互相交换信息

    -Master  HA Agent监控VM的状态,在其出现问题时重启

    -Slave  HA Agent把VM的状态信息传递给Master HA Agent, 并且在MasterAgent 的指令下重启VM

    -检测VM上运行的应用的状态

    当Master HA所在的主机出现问题时,其他主机上的Agent开始参与竞选成为MasterHA,   连接DataStore数目最多的主机会成为Master。如果两台主机DataStore数目相同,Managed Object Id较高的主机会成为Master。


    HeartBeating

    用来判断主机是否仍然正常运行。

    Network Heartbeating

    每台Slave都和Master主机互相发送Heartbeat信息。

    Datastore Heartbeating

    有的情况下Management网络中断之后,如果VM还能够继续访问其他网络和存储,那么就无需对被隔离主机上的VM采取响应措施。这是就需要检测Datastore Heartbeating来进一步验证。

    对于Converged Infrastructure,比如Cisco UCS等系统,Datastore  Heartbeating能起的作用不大,因为管理网络和存储共用物理链路,在管理网络中断的情况下,存储很可能也无法访问了。

    主机隔离

    检测: 在某个主机无法与Management Network通讯时,也就是ping isolation Address失败后,该主机会被认为处于隔离状态。 Management Network的网关缺省作为isolationAddress。 为了增加可靠性和避免误判,可以设置多个isolationAddress

    响应:

    下面的分析帮助你在确认主机处于隔离状态后,选择合适的响应动作


    主机可以访问VM DataStore的可能性

    可以访问VM网络的可能性

    建议的响应动作

    理由

    可能

    可能

    Leave Powered On

    VM可能仍在正常运行

    可能

    不可能

    Leave Powered On 或 Shut Down

    因为VM仍然可以访问DataStore,选择shutdown可以把该VM在其他主机上重启

    不可能

    可能

    Power Off

    避免两个VM拷贝同时运行的情况。尤其是使用iSCSI或NFS的情况下。



    以上仅仅是建议参考,Leave Powered On适用于大多数的情况。因为虚拟化设计大多考虑了网络的冗余,出现HostIsolation本来就是很少见的情况。

    在使用iSCSI或NFS的情况下,如果你估计管理网络中断的同时,可能存储网络也会中断。考虑使用PowerOff.  在主机无法访问存储时,HAAgent会在其他主机上启动VM的第二个Instance.而此时第一个Instance仍然在被隔离的主机上运行,当所有网络正常恢复时,这可能会造成很麻烦的情况。因为同一个VM有两个Instance同时运行。


    Admission Control

    用来保证在主机出问题时,Cluster有充足的资源供问题主机上的VM使用。

    有以下策略可供选择:

    1 Define failover capacity bystatic number of hosts

    2 Use dedicated failover hosts

    3 Define failover capacity byreserving a percentage of the cluster

    resources

    第三种方式,也就是用百分比方式定义Failover Capacity,适用于大多数情况。最大可能的高效使用资源,从而可以运行较多的VM。



    三基本设计原则

    • HA策略中优先启动vCenter以及较重要的VM。比如DNS,AD,MS SQL等。同时需要注意HA并不能完全保证VM重启的顺序。如果VM之间有复杂的依赖关系以及严格的启动顺利,可以考虑VMware  SRM。

    • 如果维护可能造成Management Network的中断,考虑暂时屏蔽HA,避免触发HA的隔离响应措施

    • 最好每台主机有一致的CPU和RAM配置。如果一个Cluster中某个主机有较高的配置,HA的策略需要保证有充足的资源来保证运行该主机的VM

    • 虽然多个Cluster可以共享同一个DataStore,但最好还是为每个Cluster分配专属的Datastore。这样可以简化管理,同时在某主机被隔离后,HA可以较容易的重启VM。

    • 一定注意Management Network的冗余。 因为HA的Network Heartbeating依赖于ManagementNetwork

    • 在Stretched Cluster情况下,也就是Cluster中的主机和存储分布在两个间隔较远的数据中心,建议最少设置4个HeartbeatDatastore. 每个数据中心设置2个。


    参考:

    VMware vSphere 5.1 ClusteringDeepdive by Duncan Epping

    HAArchitecture Decision by Josh Odgers

    vSphereAvailability Guide

    VMware vSphere High Availability5.0  Deployment Best Practices




沪ICP备19023445号-2号
友情链接