e-works数字化企业网  »  文章频道  »  基础信息化  »  终端和服务器

浅谈主机HA高可用

2017/8/20    来源:TWT    作者:佚名      
关键字:主机  IT信息系统  
随着IT信息系统的不断发展,数据在企业的应用越来越广,如何提高IT系统的高可用性成为建设稳健的计算机系统的首要任务之一。

    1.信息层(Messaging)
 
    也叫底层基础架构层,主要用于节点之间传递心跳信息,也称为心跳层。节点之间传递心跳信息可以通过广播,组播,单播等方式。
 
    心跳信息:集群中每一台服务器都不停的将自己在线的信息通告给集群中的其他主机。
 
    心跳信息的传递是基于套接字通信的,通过软件提供服务监听套接字,实现数据发送、请求。必须安装软件,并开启服务,这是实现高可用集群的基础。
 
    2.成员层(Membership)
 
    这层最重要的作用是通过Cluster Consensus Menbership Service(CCM)这种服务由Messaging层提供的信息,来产生一个完整的成员关系。
 
    CCM 组件(Cluster Consensus Menbership Service):作用,承上启下,监听底层接受的心跳信息,当监听不到心跳信息的时候就重新计算整个集群的票数和收敛状态信息,并将结果转递给上层,让上层做出决定采取怎样的措施。CCM 还能够生成一个各节点状态的拓扑结构概览图,以本节点做为视角,保证该节点在特殊情况下能够采取对应的动作。
 
    Messaging & Membership一般由同一软件实现。
 
    3.资源分配层(Resource Allocation) 
 
    也叫资源管理器层,真正实现集群服务的层。包含CRM(集群资源管理器,cluster Resource Manager),CIB(集群信息基库,Cluster Infonation Base),PE(策略引擎,Policy Engine),TE(实施引擎,Transition Engine), LRM(Local Resource Manager,本地资源管理器)。
 
    CRM组件:核心组件,实现资源的分配和管理。每个节点上的CRM都维护一个CIB用来定义资源特定的属性,哪些资源定义在同一个节点上。主节点上的CRM被选举为DC(Designated Coordinator指定协调员,主节点挂掉会选出新的DC),成为管理者,它的工作是决策和管理集群中的所有资源。
 
    任何DC上会额外运行两个进程,一个叫PE,;一个叫TE。
 
    •PE :定义资源转移的一整套转移方式,但只做策略,并不亲自来参加资源转移的过程,而是让TE来执行自己的策略。
 
    •TE : 就是来执行PE做出的策略的并且只有DC上才运行PE和TE。
 
    CIB组件:XML格式的配置文件,工作的时候常驻内存,只有DC才能对CIB进行修改,其他节点上的复制DC上的CIB而来。集群的所有信息都会反馈在CIB中。
 
    LRM组件:是执行CRM传递过来的在本地执行某个资源的执行和停止的具体执行人。
 
    资源(补充):
 
    在集群中构成一个完整服务的每一部分都叫资源,都需要配置和管理。
 
    以web应用为例:vip是资源,web服务器是资源,存储也是资源。不同的服务的资源也不尽相同,其中存储资源的选择、配置、管理是高可用集群中的难点问题。
 
    4.资源代理层(Resource Agents)
 
    集群资源代理,能够管理本节点上的属于集群资源的某一资源的启动,停止和状态信息的脚本,资源代理分为:LSB(/etc/init.d/*),OCF(比LSB更专业,更加通用)。
 
    任何资源代理都要使用同一种风格,接收四个参数:{start|stop|restart|status},每个种资源的代理都要完成这四个参数据的输出。
 
    工作机制:PE根据CIB获取资源的配置信息(集群上的所有信息都会收集到DC的CIB,同步到其它节点),而后做出决策,一旦做得决策就会进行资源的管理。PE借助于本地的CCM通知给其它节点CIB来实现对某些资源管理信息的传递,比如说通告其它CRM要启动某一资源了,收到信息后CRM并不负责启动,转由LRM(Local Resource Manager本地资源管理)启动,而并发资源又借助于RA(Resource Agent资源代理)实现资源管理。
 
    上面这张图和各个专业术语的解释,很多也很详尽,对于没有接触过主机HA的人来说,真是云里雾里,都是底层细节,各种模块和作用。理解起来还是需要一定的功力。
 
    结合着上面图示我们这里浅显说一下主机HA应该具备的模块和实现原理。
 
    1.首先要有网络(IP和非IP网络),这个是HA软件多节点通讯的基础,只有网络畅通才各个模块才可以发现,协作,心跳等
 
    2.要有一个配置库,说白了要有一个记录配置集群各个方面配置信息的信息库,记录着目各个组件的构成和配置,如果某个节点的配置发生了变化,有据可查,需要保证集群配置的一致性,要不然集群切换回异常。
 
    3.要有一个事件采集器,或者认为是监控代理,说的其中某个节点或者集群中发生了什么事件集群管理器要清楚,统一掌控全局,触发什么事件执行什么策略。
 
    4.资源管理器,一般是集群的核心组件,派发资源和策略,维护配置等等中央首长职能。
 
    5.资源组:集群都是以资源组为单位进行切换,资源组包括:ip,app,共享磁盘 等
 
    这些就是集群中的主要构成,了解这些就大致掌握了HA 软件的结构和实现原理,具体到每款软件的实现及详细工作原理,请查看相应的技术手册。
 
    7.那些场景不适合主机HA
 
    主机HA可以解决很多高可用的问题,为企业带来便利,但是同时我们也应该清楚哪些场景不适用主机HA解决方案。
 
    下面几种情况均不适合服务器主机HA解决方案:
 
    1.服务器和网络环境是不安全的
 
    2.服务器管理比较随意
 
    3.不能忍受任何的(应用系统)中断
 
    4.应用系统还不稳定
 
    5.应用系统需要人工该有才能恢复
 
    同时我们也应该了解一下主机HA和容灾的区别,场景不能混淆。有的个别企业想使用主机HA来达到容灾的效果,往往不达目的,其实很简单,只需要了解本片小文的第三部分(主机HA能做什么)就清楚了,有针对性的选择高可用解决方案。
 
    下面附一张主机HA和容灾的区别:
 
浅谈主机HA高可用
 
    8.主机HA高可用选择参考
 
    这里分享一下社区会员对主机高可用解决方案的一些心得和体会,希望可以在方案选择方面起到一点参考作用。
 
    分享一:
 
    首先需要明确一点,主流的主机HA高可用解决方案和OS有比较紧密的关系。选择哪款软件差不多也就选择什么样的系统,这里我先分享一点经验。
 
    1.PowerHA 功能强大,配置灵活,切换和回切都很方便。支持命令行和smitty 方式进行,应用监控选项很多时候不启用,有些版本有些问题。。。
 
    2.ServiceGuard 配置复杂,切换方便,曾经配置一个群集需要2day,配置完成了很方便,支持gui界面,很不错。
 
    3.F5 基本上只是能够做到虚拟一个ip,然后进行轮训,当然可以设置权值以及会话选项,可以通过测试页面验证应用是否Ok。不能做到支持集群共享模式的环境,自动执行什么脚本进行切换。
 
    4.RoseHA 支持节点数量2个,不知道后续产品可以支持更多节点。。。
 
    SUSE HA 也是一个不错的产品,命令行crm load 配置文件也可图形界面。图形界面感觉比较繁琐。监控和管理使用还是不错的。
 
    分享二:
 
    PowerHA 使用多些,感觉好用;roseha 最不好用(问题多);ServiceGuard是HP的还可以,Linux RHCS自带的没使用过。
 
    分享三:
 
    不同的操作系统平台会有各自的高可用套件。我一开学习HA的知识就是PowerHA,当时叫做HACMP,诚如LS说的功能强大,配置灵活,配置逻辑清晰;一般搞清楚PowerHA里头的配置概念就足以完成配置。
 
    分享四:
 
    Bug一般的ha软件都会存在,只不过触发这个bug需要一定的条件,简单的方法就是升级补丁或者其他方法去修复这类的bug,防止bug发生!工程师会慢慢积累一些稳定版本的补丁,比如安装HA 6.1,我习惯吧SP16补丁打上,是目前很多苏皖客户使用的稳定版本。
 
    分享五:
 
    主机HA避免脑裂的常见方法:
 
    1.节点数量为计数,quorum法则
 
    2.串口心跳
 
    3.磁盘心跳
 
    4.管理口stnoith,直接资源隔离
 
    社区的会员积极的分享了在主机HA使用和选择方面的一些经验,希望对大家有所帮助,随着IT的发展,我们有了更多的方案可以去选择,没有最好的方案,只有适合的场景的解决办法,切勿为了简单问题复杂化,统一规划,适合就好。要不然就是画蛇添足,有卖弄技术和推销产品的嫌疑,对解决问题有害无利。
 
    X86的快速发展给大家提供了更多的选择,什么一体机,超融合,分布式,大数据,云等这些概念和产品都一一落地,不是说以前就没有这些东西,而是说在有了X86的快速发展的背景下,这些产品有了更好的发展。现在很多的解决方案都是基于X86环境,我们选择相应解决方案更应该统一考虑,切勿人云亦云。主机HA方案的选择亦是如此。
 
    主机HA高可用解决方案参考:
 
    1.选择主机HA成熟产品
 
    2.选择主流稳定版本和补丁版本
 
    3.选择易于管理维护,易于后期扩展的产品
 
    4.选择符合企业整体规划,切勿太多产品,太多版本,资源相对较多的产品
 
    9.Oracle高可用场景的解决方案探讨分享
 
    应用场景: Oracle 数据库的高可用方案选择?
 
    企业C由于业务开展的比较好,近些年IT基础平台也在大力的建设,该企业有一个重要业务系统,数据库平台使用oracle,由于地域和容量太等特点选择了使用多个数据库分别独立支撑不同该业务系统一部分,共计5个db,各个系统相互独立,如果每个db都搭建主机ha或集群的情况下,那将也是一笔不小的开支,该企业由于以前使用IBM的小型机平台,对PowerHA解决方案比较熟悉,所以他们对主机平台选择小型机还是有所倾向,在X86 平台日益成熟的背景下,你选择X86还是选择小型机平台,该企业的DB高可用方案你有哪些方面的考虑和想法,欢迎大家积极探讨。
 
    方案1:
 
    选择X86平台的LINUX,各系统分别独立物理机,成本比小型机只低不高,而且也能满足现状,甚至未来三到五年的发展,Oracle RAC+ADG+每天全备或者增量备+异地灾备(看需求,没有特殊需求,基本不用),这样基本不会断业务,除非自然灾害。
 
    方案2:
 
    因为是单库,分别独立,其实用主机ha解决,使用一备多的模式也是可以的,主机的数量也只是需要多一台设备就好,从硬件成本来考虑X86应该是首选,使用rac+adg的模式,因为是独立数据库架构有点复杂,投入感觉还是很大的,维护起来也是不那么容易。当然这些都是参考方案。
 
    方案3:
 
    1:个人在规划中得出的结论:所有想靠一套方案实现容灾、高可用的想法都是有瑕疵的,
 
    2:在考虑数据库授权的前提下。在软件成本上来说POWER HA要比Oracle RAC费用稍低,但硬件成本上说PPC平台远高于X86平台(利旧情况除外),
 
    3:针对于你说的这个C企业,因为不是很具体明了业务架构,比较常见的x86平台容灾方式就是本地中心的RAC+同城DG+实时备份+定时备份,PPC平台也同时也可以采用这一套方案或者用HACMP来代替RAC
 
    4:具体规划的容灾或者双活的时候,主要会考虑2个问题。主要从权威性进行考虑,例如设计到钱,必须需求这个数据‘准确无误’,比如财务系统、比如进销存、比如供应链的设计到财务的部分,这部分由于设计到从业务逻辑上就需要对数据的权威性、一致性有较高要求, 在设计的时候就会考虑到,在主节点配置高性能、多节点、高安全性的RAC来完成写入(如需,可能配置DG做读均衡),在第二、第三中心可以使用DG、GG、实时备份、定时备份等手段保证安全。
 
    5:如果这套系统对数据权威性要求并不是那么高、比如工艺研发、生产数据收集等,那完全可以使用更加简单的GLSB+stateless模式来做多活和容灾,
 
    6:针对于你说到C企业中的有5个DB放在不同位置的物理位置,其实这是一个综合考虑成本事情了。比如在4与5里面说道的 比如业务对数据权威要求很高,推荐的做法包含了每个DB的本地业务中心和异地容灾中心,在小数据量传输的情况下甚至可以选择数据集中一个中心使用VPN来走数据。;如果要求不高、可以用OGG实现一个中心5个分支stateless,配合GLSB选路完成容灾;
 
    方案4:
 
    预算够是土豪,那么使用硬件的高可用加上oracle的rac。
 
    例如,vplex呀,vmware的vmotion呀,还可以分布式存储爽一把呀,多的数不清。
 
    主要看预算
 
    方案5:
 
    可以参考一下oracle12.2 Oracle Domain Services Cluster,从更大层面来做oracle db和App的高可用方案,包括了异地多站点的HA,这样X86平台足够了
 
    总结:
 
    以上几种方案都是基于不同的考虑作出的,也都有一定的理由,作为吃瓜群众,我们是否也有也有一些切实可行的方案呢。这里有一点小小的体会:
 
    任何解决方案都要也解决实际问题为出发点。
 
    综合了解企业实际,统一规划,选择适合自身,且扩展性和延续性方面应该有所考虑。
 
    在以上两点的基础上尽量减少成本的投入。
 
    切勿人云亦云,画蛇添足,任何技术都要立足于需求。
 
责任编辑:李欢
本文为授权转载文章,任何人未经原授权方同意,不得复制、转载、摘编等任何方式进行使用,e-works不承担由此而产生的任何法律责任! 如有异议请及时告之,以便进行及时处理。联系方式:editor@e-works.net.cn tel:027-87592219/20/21。
兴趣阅读
相关资料
e-works
官方微信
掌上
信息化
编辑推荐
新闻推荐
博客推荐
视频推荐