精华内容
下载资源
问答
  • 中标麒麟高可用集群软件V5.0 产品白皮书, 文档格式为:.pdf
  • Linux集群主要分成三大类:可用集群(High Availability Cluster)、负载均衡集群(Load Balance Cluster)、科学计算集群(High Performance Computing Cluster)。...而在Linux平台下常见的高可用集群软件

    Linux集群主要分成三大类:高可用集群(High Availability Cluster)、负载均衡集群(Load Balance Cluster)、科学计算集群(High Performance Computing Cluster)。

    其中高可用集群具有保障应用程序持续提供服务的能力,可以将因软、硬件、人为造成的故障对业务的影响降低到最小程度。在高可用集群中,最常见的就是两个节点做成的HA集群,有很多通俗的名称,比如“双机热备”、“双机互备”、“双机”。

    而在Linux平台下常见的高可用集群软件有这些:

    1、RedHat 公司的RHCS

    RHCS 全称是RedHat Cluster Suite,实际上是一个套件,除了现在提到的高可用集群软件,还包含了一个基于LVS的负载均衡软件。RHCS包含的集群软件,是GPL协议下开放源代码的集群系统。RHCS是一个独立的产品,不包括在RedHat Enterprise Linux当中,无论是购买还是下载,都是单独存在的。

     

    2、中兴新支点的Newstart HA

    Newstart HA由中兴子公司“新支点”研发,是国内具有代表性的一款成熟的高可用集群软件。NewStart HA无需改变任何服务和应用,即可保证系统故障和部件故障时应用不中断;可以自动监控服务器、网卡、浮动 IP 、存储和业务,生产中心失效会自动切换到灾备中心;可实现数据实时同步,切换时间为秒级,因此可以提供电信级,高达 99.999% 的高可用性。

     

    3、Novell公司的Novell Cluster Service

    Novell收购SuSE公司之后,将原来在Novell netware操作系统上的大量企业级应用移植和整合到了SuSE Linux Enterprise Linux平台,Novell 当时名震集群领域的Novell Cluster Service也被整合移植到了Linux平台。Novell Cluster Service是一个商业系统,并非开放源代码产品。

    4、Steeleye公司的Lifekeeper for Linux

    Steeleye公司是集群行业非常著名的公司,他们的集群系统最早是AT&T 贝尔实验室开发的,后来被卖给了金融行业著名的IT公司NCR公司。Lifekeeper集群的历史非常悠久,后来Steeleye又得到了几个从当时的巨头DEC跳槽而来的核心开发人员,因此Lifekeeper的架构和品质都是有非常好的口碑的。

     

    5、Keepalived高可用集群软件

    Keepalived 集群软件是一个基于VRRP协议来实现的LVS(四层协议)服务高可用方案,可以避免单节点故障。LVS服务需要有2台服务器运行Keepalived服务,一台为主服务器(MASTER),一台为备份服务器(BACKUP),但是对外只有一个虚拟IP,主服务器会发送特定的消息给备份服务器,当备份服务器收不到这个消息的时候,备份服务器认为主服务器宕机并会接管虚拟IP提供服务,从而保证了服务的高可用性。

    展开全文
  • 银河麒麟高可用集群软件系统-产品白皮书.pdf
  • 高可用集群

    万次阅读 多人点赞 2016-09-23 20:49:13
    本文将详细介绍:可用集群、可用集群衡量标准、可用集群实现原理、可用集群工作模型、可用集群构架、高可用集群软件、共享存储

    高可用集群

     

    这篇先来认识高可用集群的一些基本概念。

    1、什么是高可用集群

           高可用集群(High Availability Cluster,简称HA Cluster),是指以减少服务中断时间为目的的服务器集群技术。它通过保护用户的业务程序对外不间断提供的服务,把因软件、硬件、人为造成的故障对业务的影响降低到最小程度。

           简单说就是:保证服务不间断地运行,比如,在淘宝网什么时候都可以上去买东西,微信随时可以打开发消息聊天。

    2、高可用集群的衡量标准

           要保证集群服务100%时间永远完全可用,几乎可以说是一件不可能完成的任务。比如,淘宝在这几年双十一刚开始的时候,一下子进来买东西的人很多,访问量大,都出现一些问题,如下单后却支付不了。所以说只能保证服务尽可能的可用,当然有些场景相信还是可能做到100%可用的。

           通常用平均无故障时间(MTTF)来度量系统的可靠性,用平均故障维修时间(MTTR)来度量系统的可维护性。于是可用性被定义为:HA=MTTF/(MTTF+MTTR)*100%。

          具体HA衡量标准:

    描述

    通俗叫法

    可用性级别

    年度停机时间

    基本可用性

    2个9

    99%

    87.6小时

    较高可用性

    3个9

    99.9%

    8.8小时

    具有故障自动恢复能力的可用性

    4个9

    99.99%

    53分钟

    极高可用性

    5个9

    99.999%

    5分钟

     

    3、高可用集群实现原理

          高可用集群主要实现自动侦测(Auto-Detect)故障、自动切换/故障转移(FailOver)自动恢复(FailBack)。

          简单来说就是,用高可用集群软件实现故障检查和故障转移(故障/备份主机切换)的自动化,当然像负载均衡、DNS分发也可提供高可性。

    3-1、自动侦测(Auto-Detect)/ 故障检查

         自动侦测阶段由主机上的软件通过冗余侦测线,经由复杂的监听程序,逻辑判断,来相互侦测对方运行的情况。

         常用的方法是:集群各节点间通过心跳信息判断节点是否出现故障。

    3-1-1、问题是:当有节点(一个或多个)和另外节点互相接收不到对方心跳信息时,如何决定哪一部分节点是正常运行的,而哪一部分是出现故障需要隔离的呢(避免集群脑裂)?

          这时候通过法定票数(quorum)决定,即当有节点故障时,节点间投票决定哪个节点是有问题的,票数大于半数为合法

    票数:

           每个节点可以设置票数,即决定节点在集群内是否合法(正常)的权限值,这个是可以有多有少的,例如有些节点的性能较好或有其他优势,可以设置较多的票数。

    法定票数(quorum):

           当一个节点能和另一个节点保持心跳信息,该节点就获取得了另一个节点的票数,该节点获得的所有票数就是法定票数。

    3-1-2、比较特殊的是只有两个节点的集群,或两边票数相等

           这时候可以借助另外的参考节点,如ping网关(可以是一个节点),可以和测试点ping通,但不可以和对方通,说明对方节点有问题,或本节点有问题;还有就是通过仲裁设备,如仲裁磁盘,每个节点都间隔一定时间不停往磁盘写数据,若监测到对方不再写入的时候,可能对方节点出故障。

          但最好还是使得组成集群的节点数量为单数台(2n+1),当集群分区脑裂时,节点数量小于一半(>n+1)的分区自动停止对外提供服务。

    3-1-3、Pasox算法和Zookeeper

          关于“投票”,有必要知道著名的Pasox算法和Zookeeper:

    Paxos算法:

          Paxos算法解决的是保证集群中每个节点执行相同的操作序列,可以保证分布式群集中的数据一致性。

          例如,通过投票来对写操作进行全局编号,同一时刻,只有一个写操作被批准,同时并发的写操作要去争取选票,只有获得过半数选票的写操作才会被 批准(所以永远只会有一个写操作得到批准);而其他的写操作竞争失败只好再发起一轮投票,就这样,在日复一日年复一年的投票中,所有写操作都被严格编号排序。

          编号严格递增,当一个节点接受了一个编号为100的写操作,之后又接受到编号为99的写操作(因为网络延迟等很多不可预见原因),它马上能意识到自己数据不一致了,自动停止对外服务并重启同步过程。

          任何一个节点挂掉都不会影响整个集群的数据一致性(总2n+1台,除非挂掉大于n台)。

    Zookeeper:

          Zookeeper是 Hadoop 大数据生态的一个独立组件,是 Google 的 Chubby一个开源的实现,可以说是Paxos算法(类似)的实现。

          Zookeeper主要提供分布式协调服务,分布式应用程序可以基于它实现服务注册(高可用),同步服务,配置维护和命名服务等。

          Zookeeper真正提供的是类似我们普通电脑上的文件系统目录的功能,不过可以原子的进行增/删/改/查操作;具体要实现什么分布式协调服务,需要自己写程序来操作Zookeeper上的“目录”。

          Zookeeper为什么可以作为分布式系统提供协调服务?

          最主要的是Zookeeper本身运行的是一个由多个Zookeeper节点组成的稳定的高可用集群。

           Zookeeper集群的高可用性和各节点“目录”数据的一致性正是基于 类似 Paxos算法实现的投票机制来保证的。

          所以 Zookeeper集群节点数量最好也是单数(2n+1),当集群脑裂分区时,分区节点数量不超过一半的(<n+1),会自动停止对外服务。
           比如:

          5台ZK节点组成ZK集群,当分成2台和3台的两个分区时,2台的分区会自动停止对外服务,3台的分区会继续提供服务。

          另外,如果用6台节点组成ZK集群,当分成3台和3台的两个分区时,这两个分区都自动停止对外服务,所以,容错率和5台节点组成的集群的是一样的,更应该用单数(2n+1)节点数量组成集群。

    3-2、自动切换/故障转移(FailOver)

          自动切换阶段某一主机如果确认对方故障,则正常主机除继续进行原来的任务,还将依据各种容错备援模式接管预先设定的备援作业程序,并进行后续的程序及服务。

          通俗地说,即当A无法为客户服务时,系统能够自动地切换,使B能够及时地顶上继续为客户提供服务,且客户感觉不到这个为他提供服务的对象已经更换。

          通过上面判断节点故障后,将高可用集群资源(如VIP、httpd等,下面详见)从该不具备法定票数的集群节点转移到故障转移域(Failover Domain,可以接收故障资源转移的节点)。

    3-2-1、高可用集群资源(HA Resource)和集群资源类型

    集群资源是集群中使用的规则、服务和设备等,如VIP、httpd服务、STONITH设备等。类型如下:

            1、Primitive:主资源,在某一时刻只能运行在某个节点上,如VIP。

            2、group:组,资源容器,使得多个资源同时停/启等,一般只包含primitive资源。

            3、clone:克隆,可以在多个节点运行的资源,例如stonith设备管理进程、集群文件系统的分布式锁(dlm)作为资源,应运行在所有节点上。

            4、master/slave:特殊的clone资源,运行在两个节点上,一主一从,如:分布式复制块设备drbd(2.6.33之后整合进内核了)。

    3-2-2、转移到哪个节点

    根据资源的倾向(资源粘性、位置约束的分数比较)进行转移;

    资源的倾向(资源定位的依据):

     A、资源粘性:资源对节点倾向程度,资源是否倾向于当前节点。score,正值倾向于当前节点(还要和位置约束结合)。

     B、资源约束(Constraint):资源和资源之间的关系

    a、排列约束 (colocation):资源间的依赖/互斥性,定义资源是否运行在同一节点上。score,正值表示要运行在同一节点上,负值则不可。

    b、位置约束(location):每个节点都有一个score值,正值则倾向于本节点,负值倾向于其他节点,所有节点score比较,倾向于最大值的节点。

    c、顺序约束(order):定义资源执行动作的次序,例如vip应先配置,httpd服务后配置。特殊的score值,-inf 负无穷,inf 正无穷。

           也就是说资源粘性定义资源对资源当前所在节点的倾向性,而位置约束定义资源对集群中所有节点的倾向性。如webip的资源粘性为100,位置约束对node1为200,当webip在node2上时,node1上线资源会转移到node1,因为当前节点node2粘性100小于对node1的位置约束200;如webip的资源粘性为200,位置约束对node1为100,当webip在node2上时,node1上线资源不会转移到node1,继续留在node2上,因为当前节点node2粘性200大于对node1的位置约束100。

    3-3、自动恢复/故障回转(FailBack)

          自动恢复阶段在正常主机代替故障主机工作后,故障主机可离线进行修复工作。在故障主机修复后,透过冗余通讯线与原正常主机连线,自动切换回修复完成的主机上。

    3-3-1、当排除故障后,是否要故障回转?

          根据资源粘性和资源约束的设置,一般备用设备单纯只用于备份,性能低于主设备,所以当主设备恢复时应转回,但故障回转需要资源转移,会影响到正在使用的客户,过程代价较高,所以是否需要回转根据实际判断。

    3-4、其他关注点

    3-4-1、如果节点不再成为集群节点成员时(不合法),如何处理运行于当前节点的资源?

          如果集群没有对其进行Fecning/Stonith隔离前,可以进行相关配置(without_quorum_policy),有如下配置选项:

    1、stop:直接停止服务;

    2、ignore:忽略,以前运行什么服务现在还运行什么(双节点集群需要配置该选项);

    3、Freeze:冻结,保持事先建立的连接,但不再接收新的请求;

    4、suicide:kill掉服务。

    3-4-2、集群脑裂(Split-Brain)和资源隔离(Fencing)

           脑裂是因为集群分裂导致的,集群中有节点因为处理器忙或者其他原因暂时停止响应时,与其他节点间的心跳出现故障,但这些节点还处于active状态,其他节点可能误认为该节点"已死",从而争夺共享资源(如共享存储)的访问权,分裂为两部分独立节点。

           脑裂后果:这时两个节点开始争抢共享资源,结果会导致系统混乱,数据损坏。

           脑裂解决:上面3-1-1、3-1-2的方法也能一定程度上解决脑裂的问题,但完全解决还需要资源隔离(Fencing)。

           资源隔离(Fencing):

                  当不能确定某个节点的状态时,通过fencing把对方干掉,确保共享资源被完全释放,前提是必须要有可靠的fence设备。

       节点级别:

                STONITH(shoot the other node in the head,爆头。硬件方式),直接控制故障节点的电源,绝对彻底。

        资源级别:

                例如:FC SAN switch(软件方式)可以实现在存储资源级别拒绝某节点的访问

    4、高可用集群工作模型

    4-1、Active/Passive:主备模型

           一个活动主节点,另一个不活动作为备用节点,当主节点故障,转移到备节点,这时备节点就成为了主节点。备节点完全冗余,造成一定浪费。如下图,mysql、DRBD主从节点间还要进行同步:

    4-2、Active/Active:双主模型

           两个节点都是活动的,两个节点运行两个不同的服务,也互为备用节点。也可以提供同一个服务,比如ipvs,前端基于DNS轮询。这种模型可以使用比较均衡的主机配置,不会造成浪费。

    4-3、N+1

          N个活动主节点N服务,一个备用节点。这需要额外的备用节点必须能够代替任何主节点,当任何主节点故障时,备节点能够负责它的角色对外提供相应的服务。如下图,最后一个备用节点可以作为前两台主节点的DRBD和第三台主节点的MYSQL提供备用功能:

    4-4、N+M

          N个活动主节点M个备用节点。像上面的N+1模型,一个备用节点可能无法提供足够的备用冗余能力,备用节点的数量M是成本和可靠性要求之间的折衷。

          也有一种说法:N-M: N个节点M个服务, N>M, 活动节点为N, 备用节点为N-M。

    4-5、N-to-1

          这和N+1一样,也是N个活动主节点,一个备用节点;不同是的备用节点成为主节点只是暂时的,当原来故障的节点修复后,必须回转才能正常工作。

    4-6、N-to-N

          N个节点N个备用节点。这是A/A双主和N + M模型的组合,N节点都有服务,如果一个坏了,剩下的每个节点都可以作为替代提供服务。如下图,当共享存储是可用的,每一个节点都可能会被用于故障切换。起搏器甚至可以运行服务的多个副本,以分散工作量。

    5、高可用集群架构层次

       

    5-1、节点主机层

           这一层主要是正在运行在物理主机上的服务,高可用集群相关的软件运行在各主机上,集群资源也是在各主机上。

    5-2、Messaging and Membership Layer

           信息传递层,传递集群信息的一种机制,通过监听UDP 694号端口,可通过单播、组播、广播的方式,实时快速传递信息,传递的内容为高可用集群的集群事务,例如:心跳信息,资源事务信息等等,只负责传递信息,不负责信息的计算和比较。

           成员关系(Membership)层,这层最重要的作用是主节点(DC)通过Cluster Consensus Menbership Service(CCM或者CCS)这种服务由Messaging层提供的信息,来产生一个完整的成员关系。这层主要实现承上启下的作用,承上,将下层产生的信息生产成员关系图传递给上层以通知各个节点的工作状态;启下,将上层对于隔离某一设备予以具体实施。

    5-3、CRM(Cluster Resource Manager)

          集群资源管理器层,它主要是用来提供那些不具有高可用的服务提供高可用性的。它需要借助Messaging Layer来实现工作,因此工作在Messaging Layer上层。

          资源管理器的主要工作是收集messaging Layer传递的节点信息,并负责信息的计算和比较,并做出相应的动作,如服务的启动、停止和资源转移、资源的定义和资源分配。

          在每一个节点上都包含一个CRM,且每个CRM都维护这一个CIB(Cluster Information Base,集群信息库),只有在主节点上的CIB是可以修改的,其他节点上的CIB都是从主节点那里复制而来的。

           CRM会推选出一个用于计算和比较的节点,叫DC(Designated coordinator)指定协调节点,计算由PE(Policy Engine)策略引擎实现,计算出结果后的动作控制由TE(Transition Engine)事务引擎实现。

           在每个节点上都有一个LRM(local resource manager)本地资源管理器,是CRM的一个子功能,接收TE传递过来的事务,在节点上采取相应动作,如运行RA脚本等。

    5-4、RA(Resource Rgent)

          资源代理层,简单的说就是能够集群资源进行管理的脚本,如启动start,停止stop、重启restart和查询状态信息status等操作的脚本。LRM本地资源管理器负责运行。

          资源代理分为:

    1、Legacy heartbeat(heatbeat v1版本的资源管理);

    2、LSB(Linux Standard Base),主要是/etc/init.d/*目录下的脚,start/stop/restart/status;

    3、OCF(Open Cluster Famework),比LSB更专业,更加通用,除了上面的四种操作,还包含monitor、validate-all等集群操作,OCF 的规范在http://www.opencf.org/cgi-bin/viewcvs.cgi/specs/ra/resource-agent-api.txt?rev=HEAD

    4、STONITH:实现节点隔离

    6、高可用集群软件

    6-1、Messaging Layer 集群信息层软件

    1、heartbeat (v1, v2)

    2、heartbeat v3

    可以拆分为:heartbeat, pacemaker, cluster-glue

    3、corosync

    从OpenAIS分离的项目。

    4、cman

    5、keepalived

    一般用于两个节点的集群

    6、ultramokey

    6-2、CRM集群资源管理器软件

    1、Haresource

    heartbeat v1 v2包含,使用文本配置接口haresources

    2、crm

    heartbeat v2包含,可以使用crmsh或者heartbeat-gui来进行配置

    3、pacemaker

    heartbeat v3分离出来的项目,配置接口:CLI:crm、pcs和GUI:hawk(WEB-GUI)、LCMC、pacemaker-mgmt、pcs

    4、rgmanager

    Cman包含,使用rgmanager(resource group manager)实现管理, 具有Failover Domain故障转移域这一特性,也可以使用RHCS(Redhat Cluster Suite)套件来进行管理:Conga的全生命周期接口,Conga(luci/ricci)先安装后,可用其安装高可用软件,再进行配置。

    6-3、常用组合

    heartbeat v2+haresource(或crm) (说明:一般常用于CentOS 5.X)

    heartbeat v3+pacemaker (说明:一般常用于CentOS 6.X)

    corosync+pacemaker (说明:现在最常用的组合)

    cman + rgmanager (说明:红帽集群套件中的组件,还包括gfs2,clvm)

    keepalived+lvs (说明:常用于lvs的高可用)

    7、共享存储

           高可用集群多节点都需要访问数据,如果各节点访问同一个数据文件都是在同一个存储空间内的,就是说数据共享的就一份,而这个存储空间就共享存储。

           如Web或Mysql高可用集群,他们的数据一般需要放在共享存储中,主节点能访问,从节点也能访问。当然这也不是必须的,如可以通过rsync、DRBD来同步分别存储在主、从节点上的块数据,而且相对共享存储实现成本更低,具体使用什么需要根据实际场景来选择。下面我们就简单说一下共享存储的类型:

    7-1、DAS(Direct attached storage,直接附加存储)

           存储设备直接连接到主机总线上的,距离有限,而且还要重新挂载,之间有数据传输有延时;

           这是设备块级别驱动上实现的共享,持有锁是在节点主机本地上的,无法通知其他节点,所以如果多节点活动模型的集群同时写入数据,会发生严重的数据崩溃错误问题,主备双节点模型的集群在分裂的时候了会出现问题;

           常用的存储设备:RAID 阵列、SCSI 阵列。

    7-2、NAS(network attached storage,网络附加存储)

           文件级别交互的共享,各存储设备通过文件系统向集群各节点提供共享存储服务,是用C/S框架协议来实现通信的应用层服务。

           常用的文件系统:NFS、FTP、CIFS等,如使用NFS实现的共享存储,各节点是通过NFS协议来向共享存储请求文件的。

    7-3、SAN(storage area network、存储区域网络)

            块级别的,将通信传输网络模拟成SCSI(Small Computer System Interface)总线来使用,节点主机(initiator)和SAN主机(target)都需要SCSI驱动,并借助网络隧道来传输SAN报文,所以接入到SAN主机的存储设备不一定需要是SCSI类型的。

            常用的SAN:FC光网络(交换机的光接口超贵,代价太高)、IPSAN(iscsi、存取快,块级别,廉价)。


    经过写这篇文章,对高可用集群有了一个基本的认识,下面将会动手进行应用配置……

     

    【参考资料】

    1、《大型网站技术架构:核心原理与案例分析》

    2、《从Paxos到Zookeeper :分布式一致性原理与实践》

    3、《大话存储Ⅱ—存储系统架构与底层原理极限剖析》

    4、Pacemaker:http://clusterlabs.org/wiki/Pacemaker

    5、High-availability cluster:https://en.wikipedia.org/wiki/High-availability_cluster#Node_configurations|

    6、Linux 高可用(HA)集群基本概念详解:http://www.linuxidc.com/Linux/2013-08/88522.htm

    7、高可用集群基本概念与heartbeat文本配置接口:http://www.178linux.com/10982

    8、高可用集群原理:http://boxinknown.blog.51cto.com/10435935/1673396

    9、理解 OpenStack 高可用(HA) (4): Pacemaker 和 OpenStack Resource Agent (RA):http://www.cnblogs.com/sammyliu/p/5025362.html

    展开全文
  • 本文以两台机器实现双集热备高可用集群,主机名node1的IP为192.168.122.168 ,主机名node2的IP为192.168.122.169 。  一、安装集群软件  必须软件pcs,pacemaker,corosync,fence-agents-all,如果需要配置相关...
  • 在具备完善的理论知识后,本书又从实战角度讲解了如何对OpenStack的基础架构软件和核心组件项目进行高可用集群部署,并在成功部署OpenStack高可用集群后,介绍了如何在实际应用中对OpenStack高可用集群进行运维分析...
  • keepalived+mysql实现双主可用。keepalived是一个类似于layer3, 4 & 5交换机制的软件,也就是我们平时说的第3层、第4层和第5层交换。Keepalived是自动完成...使用keepalive可以灵活的配置各种应用的高可用集群方案。
  • 高可用集群是指以减少服务中断为目的的服务器集群技术。简单的说,集群是一组计算机,它们整体向一用户提供一组网络资源。
  • Rocky版高可用集群3-11、前期准备1.1 软硬件准备1.1.1组件1.1.2 网络拓扑(逻辑)1.1.3 物理拓扑(部分参考)1.2 配置hosts文件(集群所有电脑配置)1.3 节点间设置免密互相登陆1.4 配置NTP服务1.4.1 在控制节点进行...
  • 高可用集群软件(HACMP)的安装和使用,很详细的说明,比较有用
  • Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群) 高可用集群( High Availability Cluster)负载均衡集群(Load Balance Cluster)科学计算集群(High Performance Computing Cluster)=============...

     Linux集群主要分成三大类( 高可用集群, 负载均衡集群,科学计算集群) 

    高可用集群( High Availability Cluster)
    负载均衡集群(Load Balance Cluster)
    科学计算集群(High Performance Computing Cluster)
    ================================================

    高可用集群(High Availability Cluster)

    常见的就是2个节点做成的HA集群,有很多通俗的不科学的名称,比如”双机热备”, “双机互备”, “双机”.
    高可用集群解决的是保障用户的应用程序持续对外提供服务的能力。 (请注意高可用集群既不是用来保护业务数据的,保护的是用户的业务程序对外不间断提供服务,把因软件/硬件/人为造成的故障对业务的影响降低到最小程度)

    Linux平台常见的高可用集群 有这些:

    1.  RedHat 公司 的 开放源代码RedHat Cluster Suite, 简称RHCS . (产品介绍http://www.redhat.com/solutions/clustersuite/)

    - RHCS实际上是一个套件,除了现在提到的高可用集群软件,还包含了一个基于LVS的负载均衡软件.

    - RHCS包含的集群软件,是GPL协议下开放源代码的集群系统.

    <script type="text/javascript"> </script> <script src="http://pagead2.googlesyndication.com/pagead/show_ads.js" type="text/javascript"></script> <script type="text/javascript"> </script>

    - RHCS目前的版本有 RHCS v3和 v4,分别对应于RedHat 企业版Linux的 3.0家族和4.0家族.

    - RHCS是一个独立的产品,不包括在RedHat Enterprise Linux当中,无论是购买还是下载,都是单独存在的.

    RHCS的获得:

    RHCS的获得有三个途径:

    a. 从redhat 的官方销售渠道购买,得到的是RedHat RHCS产品的二进制代码(光盘或直接从RHN-RedHat Network下载),源代码,以及支持和升级服务.
    b. 从redhat 的官方站点下载SRPM包,编译并安装. 无原厂商业支持和升级服务. 这里下载 (ftp://ftp.redhat.com/pub/redhat/linux/enterprise/4/en/RHCSftp://ftp.redhat.com/pub/redhat/linux/enterprise/3/en/RHCS)
    c. 从centOS官方站点下载RHCS的二进制代码包并安装,无原厂商业支持和升级服务. 这里下载(http://mirror.centos.org/centos/4/csgfs/, 请阅读此目录中的README文件)

    2. Novell 公司 的 开放源代码高可用集群HA套件

    Novell 公司并购了欧洲Linux第一大厂SuSE之后,成为全球能够抗衡RedHat的主要力量.

    SuSE企业版Linux 带有一套开放源代码的HA集群软件,包括 HA project的heartbeat, heartbeat-ldirectord, heartbeat-pils, heartbeat-stonith, 集群关联的存储软件drbd, 虚拟IP的 src_vipa软件.和RHCS不同的是,SuSE/Novell 企业版Linux自带的 HA集群软件并非一个独立的软件,如上介绍,而是由不同的开放源代码项目提供的不同部分的程序。

    集群软件的获得:
    本集群软件组件已经附带在SuSE Linux Enterprise Server 光盘中(SLES9, SLES10), SuSE Linux Enterprise Server(SLES9, SLES10)的光盘,可以免费从download.novell.com获得,并提供2个月的在线网络更新服务. 用户只需要在novell站点上免费注册一个novell 站点账号,就可以下载SLES9, SLES10的所有光盘ISO.

    3. Novell 公司的Novell Cluster Service

    Novell 在败落前,曾经是一家非常伟大的公司,有着非常雄厚的技术力量。 早在10多年前,Novell公司就在集群领域独树一帜,是当时唯一能够在PC服务器上构建出32节点集群的厂商.
    Novell收购SuSE公司之后,将原来在Novell netware操作系统上的大量企业级应用移植和整合到了SuSE Linux Enterprise Linux平台, Novell 当时名震集群领域的Novell Cluster Service 也被整合移植到了Linux平台.

    Novell Cluster Service是一个商业系统,并非开放源代码产品

    这里可以看到细节
    http://www.novell.com/products/openenterpriseserver/ncs.html

    产品的获得

    直接从Novell 公司购买.

    4. Steeleye Lifekeeper for linux (产品介绍http://www.steeleye.com/)

    steeleye 公司是集群行业非常著名的公司,他们的集群系统最早是AT&T 贝尔实验室开发的,后来被卖给了金融行业的著名IT公司NCR公司。(不少朋友到ATM取钱的时候也许会看到NCR制造的ATM机). lifekeeper集群的历史非常悠久,后来steeleye又得到了几个从当时的巨头DEC跳槽来的核心开发人员.因此lifekeeper的构架和 品质是有非常好的口碑的.

    产品获得

    a. 从steeleye官方渠道申请试用版
    b. 从steeleye 官方购买

    5. HP MC/Service Guard for linux (http://h71028.www7.hp.com/enterprise/cache/6468-0-0-0-121.aspx)

    HP在和Compaq合并之前,在HP-UX平台有一套旗舰级的高可用集群系统(MC/SG for HP-UX),被广泛部署在各种关键业务计算领域。比如银行,电信,金融等等。主要的硬件平台是PA-RISC架构的小型机和中型机系统.
    Compaq在和HP合并之前,在Alpha 平台有一套旗舰级的高可用集群,叫做(TruCluster).被广泛部署在各种关键业务计算领域,比如国防,航天,制造等等。主要的硬件平台是Alpha架构的小型机和中型机.
    随着两个公司的合并,两套著名的集群系统也完成了合并,新的产品仍旧叫做MC/SG,但是可以跑在PA-RISC, IA, IA64平台.
    5年前,HP将MC/SG集群系统移植到了linux平台,并发展至今.  HP MC/SG for linux有着非常高的品质和长期在高度关键业务要求的领域发展的背景。

    软件的获得:

    从HP官方渠道购买并获得技术支持和升级服务.

    6. 开放源代码的 HA 项目 (http://www.linux-ha.org/)

    linux-HA 项目历史悠久, 很多linux 发行附带的HA集群都是采用了linux-HA 的heartbeat系统和相关的组件.需要构建完全的开源,自由而且免费的高可用集群的用户可以选择.

    软件获得:
    免费下载,没有商业支持和商业升级服务.

    7. Turbolinux  高可用集群系统

    Turbolinux 这几年发展的颇不顺利,从创始人走人到公司在日本的股权变动. 颇让人担忧。

    TurboLinux 的高可用集群软件有两个.

    a. TurboLinux Cluster HA 3.1
    b. TurboLinux8 ClusterPro

    因为都没有在具体的项目中深入用过,不做更多解释.

    软件获得:

    从Turbolinux 官方购买,并获得技术支持和升级服务

    展开全文
  • 在具备完善的理论知识后,本书又从实战角度讲解了如何对OpenStack的基础架构软件和核心组件项目进行高可用集群部署,并在成功部署OpenStack高可用集群后,介绍了如何在实际应用中对OpenStack高可用集群进行运维分析...
  • 集群高可用,linux

    2016-01-11 16:04:08
    集群高可用,linux, keepalived+nginx
  • hadoop高可用集群搭建

    千次阅读 2019-08-20 09:47:35
    软件版本 安装目录 数据目录 hadoop-01 192.168.10.51 Centos 7.6 hadoop-2.7.7、jdk1.8、zookeeper-3.4.6 /usr/local/hadoop /data/hadoop hadoop-02 192.168.10.52 Centos 7.6 hadoop-...

    主机配置环境如下表

    主机名IP系统软件版本安装目录数据目录
    hadoop-01192.168.10.51Centos 7.6hadoop-2.7.7、jdk1.8、zookeeper-3.4.6/usr/local/hadoop/data/hadoop
    hadoop-02192.168.10.52Centos 7.6hadoop-2.7.7、jdk1.8、zookeeper-3.4.6/usr/local/hadoop/data/hadoop
    hadoop-03192.168.10.53Centos 7.6hadoop-2.7.7、jdk1.8、zookeeper-3.4.6/usr/local/hadoop/data/hadoop

    安装后启动的进程如下表

    hadoop-01hadoop-02hadoop-03
    NodeManagerNodeManagerNodeManager
    NameNodeNameNode
    DataNodeDataNodeDataNode
    DFSZKFailoverControllerDFSZKFailoverController
    JournalNodeJournalNodeJournalNode
    ResourceManagerResourceManager
    QuorumPeerMainQuorumPeerMainQuorumPeerMain

    详细搭建过程记录如下

    1. 配置主机名以及解析(3台)

    在这里插入图片描述

    2. 配置服务器间ssh免密码登陆(3台)

    高可用模式下,hadoop的故障切换需要通过ssh登陆到其它机器,进行主备切换,因此需要配置主机间的免密码登陆
    以hadoop-01为例,剩下两台服务器做相同配置

    #第一步,ssh-keygen -t rsa生成密钥对
    [root@hadoop-01 ~]$ ssh-keygen -t rsa
    # 连续三次回车,即在本地生成了公钥和私钥,不设置密码,默认存储在 ~/.ssh目录下
    
    [root@hadoop-01 ~]# ll .ssh/
    total 16
    -rw------- 1 root root 1989 Jul 24 14:18 authorized_keys
    -rw------- 1 root root 1679 Jul 15 11:43 id_rsa
    -rw-r--r-- 1 root root  396 Jul 15 11:43 id_rsa.pub
    -rw-r--r-- 1 root root 1311 Jul 24 16:41 known_hosts
    
    #第二步,用ssh-copy-id拷贝将公钥复制到远程机器中
    [root@hadoop-01 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.10.51
    [root@hadoop-01 ~]# ssh-copy-id -i .ssh/id_rsa.pub  root@192.168.10.52
    [root@hadoop-01 ~]# ssh-copy-id -i .ssh/id_rsa.pub  root@192.168.10.53
    
    #第三步,测试免密码登陆
    [root@hadoop-01 ~]# ssh -p 9431 root@192.168.10.52
    Last login: Mon Aug 19 15:30:09 2019 from 192.168.10.45
    
    Welcome to Alibaba Cloud Elastic Compute Service !
    
    [root@hadoop-02 ~]# 
    

    3. 安装hadoop

    3.1 修改配置文件

    (1)将hadoop安装包解压,重命名为hadoop,拷贝到/usr/local下
    (2)修改各配置文件,所有的配置文件在/usr/local/hadoop/etc/hadoop目录下

    修改core-site.xml,内容如下:

    <configuration>
    	<!--指定hdfs连接地址,集群模式(高可用)-->
    	<property>
    		<name>fs.defaultFS</name>
    		<value>hdfs://cluster</value>
    	</property>
    	
    	<!-- 指定ZooKeeper集群的地址和端口。注意,数量一定是奇数,且不少于三个节点-->
    	<property>
      		<name>ha.zookeeper.quorum</name>
      		<value>hadoop-01:2181,hadoop-02:2181,hadoop-03:2181</value>
    	</property>
    </configuration>
    

    修改hdfs-site.xml,内容如下:

    <configuration>
    	<!--指定HDFS副本的数量,不能超过机器节点数-->
    	<property>
    		<name>dfs.replication</name>
    		<value>3</value>
    	</property>
    	<!-- 为namenode集群定义一个services name -->
    	<property>
     		<name>dfs.nameservices</name>
      		<value>cluster</value>
    	</property>
    	<!-- nameservice 包含哪些namenode,为各个namenode起名 -->
    	<property>
      		<name>dfs.ha.namenodes.cluster</name>
      		<value>nn01,nn02</value>
    	</property>
     	<!-- 名为nn01的namenode的rpc地址和端口号,rpc用来和datanode通讯 -->
    	<property>
      		<name>dfs.namenode.rpc-address.cluster.nn01</name>
      		<value>hadoop-01:9000</value>
    	</property>
     	<!--名为nn01的namenode的http地址和端口号,用来和web客户端通讯 -->
    	<property>
      		<name>dfs.namenode.http-address.cluster.nn01</name>
      		<value>hadoop-01:50070</value>
    	</property>
     	<!-- 名为nn02的namenode的rpc地址和端口号,rpc用来和datanode通讯 -->
    	<property>
      		<name>dfs.namenode.rpc-address.cluster.nn02</name>
      		<value>hadoop-02:9000</value>
    	</property>
     	<!--名为nn02的namenode的http地址和端口号,用来和web客户端通讯 -->
    	<property>
      		<name>dfs.namenode.http-address.cluster.nn02</name>
      		<value>hadoop-02:50070</value>
    	</property>
      	<!-- namenode间用于共享编辑日志的journal节点列表 -->
    	<property>
      		<name>dfs.namenode.shared.edits.dir</name>
      		<value>qjournal://hadoop-01:8485;hadoop-02:8485;hadoop-03:8485/cluster</value>
    	</property>
        <!-- journalnode 上用于存放edits日志的目录 -->
    	<property>
      		<name>dfs.journalnode.edits.dir</name>
      		<value>/data/hadoop/journaldata</value>
    	</property>
      	<!-- 指定该集群出现故障时,是否自动切换到另一台namenode -->
    	<property>
      		<name>dfs.ha.automatic-failover.enabled.cluster</name>
      		<value>true</value>
    	</property>
    	<!-- 配置失败自动切换实现方式 -->
    	<property>
        	<name>dfs.client.failover.proxy.provider.cluster</name>
     		<value>org.apache.hadoop.hdfs.server.namenode.ha.ConfiguredFailoverProxyProvider</value>
    	</property>
      	<!-- 一旦需要NameNode切换,使用ssh方式进行操作 -->
    	<property>
      		<name>dfs.ha.fencing.methods</name>
      		<value>sshfence(root:9431)</value>
    	</property>
      	<!-- 如果使用ssh进行故障切换,使用ssh通信时用的密钥存储的位置 -->
    	<property>
      		<name>dfs.ha.fencing.ssh.private-key-files</name>
      		<value>/root/.ssh/id_rsa</value>
    	</property>
    	<!-- connect-timeout超时时间 -->
    	<property>
        		<name>dfs.ha.fencing.ssh.connect-timeout</name>
        		<value>30000</value>
    	</property>
    	<property>
       		<name>dfs.name.dir</name>
       		<value>/data/hadoop/tmp/dfs/name</value>
       	</property>
       	<property>
       		<name>dfs.data.dir</name>
       		<value>/data/hadoop/tmp/dfs/data</value>
       	</property>
    </configuration>
    

    修改yarn-site.xml,内容如下:

    <configuration>
    	<!-- 启用Resource Manager HA高可用性 -->
    	<property>
    		<name>yarn.resourcemanager.ha.enabled</name>
    		<value>true</value>
    	</property>
    	<!-- 指定resourcemanager的名字 -->
    	<property>
    		<name>yarn.resourcemanager.cluster-id</name>
    		<value>yrc</value>
    	</property>
    	<!-- 使用了2个resourcemanager,分别指定Resourcemanager的地址 -->
    	<property>
    		<name>yarn.resourcemanager.ha.rm-ids</name>
    		<value>rm1,rm2</value>
    	</property>
    	<!-- 指定rm1的地址 -->
    	<property>
    		<name>yarn.resourcemanager.hostname.rm1</name>
    		<value>hadoop-01</value>
    	</property>
    	<!-- 指定rm2的地址  -->
    	<property>
    		<name>yarn.resourcemanager.hostname.rm2</name>
    		<value>hadoop-02</value>
    	</property>
    	<!-- 指定zookeeper集群机器 -->
    	<property>
    		<name>yarn.resourcemanager.zk-address</name>
    		<value>hadoop-01:2181,hadoop-02:2181,hadoop-03:2181</value>
    	</property>
    	<!-- NodeManager上运行的附属服务,默认是mapreduce_shuffle -->
    	<property>
    		<name>yarn.nodemanager.aux-services</name>
    		<value>mapreduce_shuffle</value>
    	</property>
    </configuration>
    

    修改mapred-site.xml(该文件不存在,需要手动创建),cp mapred-site.xml.template mapred-site.xml,内容如下:

    <configuration>
    	<!-- 采用yarn作为mapreduce的资源调度框架 -->
    	<property>
    		<name>mapreduce.framework.name</name>
    		<value>yarn</value>
    	</property>
    </configuration>
    

    修改slaves文件,内容如下:

    hadoop-01
    hadoop-02
    hadoop-03
    

    修改hadoop-env.sh文件,指定jdk的地址

    # The java implementation to use.
    export JAVA_HOME=/usr/java/jdk1.8.0_131
    
    # 如果ssh端口不是默认22,需要添加此配置
    export HADOOP_SSH_OPTS="-p 9431"
    
    # 指定hadoop相关的pid存放位置
    export HADOOP_PID_DIR=/usr/local/hadoop/pids
    

    配置hadoop环境变量,vim /etc/profile.d/hadoop.sh,内容如下

    export HADOOP_HOME=/usr/local/hadoop
    export LD_LIBRARY_PATH=$HADOOP_HOME/lib/native
    export HADOOP_COMMON_LIB_NATIVE_DIR=/usr/local/hadoop/lib/native
    export HADOOP_OPTS="-Djava.library.path=/usr/local/hadoop/lib"
    export PATH=$HADOOP_HOME/bin:$HADOOP_HOME/sbin:$PATH
    

    source /etc/profile.d/hadoop.sh

    3.2 拷贝复制到其它机器

    scp -r /usr/local/hadoop root@hadoop-02:/usr/local/
    scp -r /usr/local/hadoop root@hadoop-03:/usr/local/
    

    3.3 启动hadoop

    启动hadoop前,需要执行几步格式化操作:
    (1)启动journalnode,三台机器都要这一步操作(仅第一次启动hadoop时,需要这一步操作,之后不再需要手动启动journalnode)

    cd /usr/local/hadoop/sbin
    sh hadoop-daemon.sh start journalnode
    

    (2) 在hadoop-01上执行格式化操作,格式化namenode和zkfc

    hdfs namenode -format
    hdfs zkfc -formatZK
    

    (3) namenode主从信息同步,在hadoop-02节点上执行同步命令

    bin/hdfs namenode -bootstrapStandby
    

    上述步骤完成后,接下来我们就可以启动hadoop了

    在hadoop-01机器上执行下面的命令

    # 启动hdfs
    cd /usr/local/hadoop/sbin
    sh start-dfs.sh
    # 启动yarn
    sh start-yarn.sh
    #启动ZookeeperFailoverController
    sh hadoop-daemon.sh start zkfc
    

    在hadoop-02机器上执行下边命令

    /usr/local/hadoop/sbin/yarn-daemon.sh start resourcemanager
    /usr/local/hadoop/sbin/hadoop-daemon.sh start zkfc
    

    也可以简化启动

    启动命令

    #hadoop-01
    /usr/local/hadoop/sbin/start-all.sh
    /usr/local/hadoop/sbin/hadoop-daemon.sh start zkfc
    
    #hadoop-02
    /usr/local/hadoop/sbin/yarn-daemon.sh start resourcemanager
    /usr/local/hadoop/sbin/hadoop-daemon.sh start zkfc
    

    停止命令

    #hadoop-01
    /usr/local/hadoop/sbin/stop-all.sh
    /usr/local/hadoop/sbin/hadoop-daemon.sh stop zkfc
    
    #hadoop-02
    /usr/local/hadoop/sbin/yarn-daemon.sh stop resourcemanager
    /usr/local/hadoop/sbin/hadoop-daemon.sh stop zkfc
    

    3.4 查看每台节点的进程

    hadoop-01

    [root@hadoop-01 ~]# jps | grep -v Jps
    26849 NodeManager
    2770 QuorumPeerMain
    27331 DFSZKFailoverController
    26308 DataNode
    26537 JournalNode
    26154 NameNode
    26733 ResourceManager
    

    hadoop-02

    [root@hadoop-02 ~]# jps | grep -v Jps
    7489 JournalNode
    7281 NameNode
    627 QuorumPeerMain
    8233 DFSZKFailoverController
    8123 ResourceManager
    7389 DataNode
    7631 NodeManager
    

    hadoop-03

    [root@hadoop-03 ~]# jps | grep -v Jps
    21762 QuorumPeerMain
    29476 NodeManager
    29271 DataNode
    29370 JournalNode
    

    3.5 通过Web界面查看hadoop信息

    (1) 浏览器访问http://192.168.10.51:50070
    在这里插入图片描述
    由图可知,当前hadoop-01是active节点,即namenode主节点

    (2)浏览器访问http://192.168.10.52:50070
    在这里插入图片描述
    由图可知,当前hadoop-01是standby节点,即namenode备节点

    (3) 查看yarn的web控制台,浏览器访问http://192.168.10.51:8088
    在这里插入图片描述

    3.6 测试namenode高可用

    (1)在hadoop-01上kill掉namenode进程,然后通过浏览器查看hadoop-02的状态,发现状态变为active,说明高可用测试成功
    (2)重新启动hadoop-01的namenode进程,sh start-dfs.sh,浏览器访问hadoop-01,此时hadoop-01的状态为standby

    至此,hadoop高可用集群搭建完毕。

    展开全文
  • 1、简介2、基本环境3、配置MySQL主主复制4、中间件简述4.1、Haproxy介绍4.2、...软件3)、创建配置文件4)、创建脚本文件6、功能测试6.1、流程简述6.2、测试haproxy监听前端端口33066.3、测试高可用+keepalived不抢占vi
  • 第二部分 高可用性 第4章 使用rsync和SSH同步服务器 第5章 使用Systmlmager克隆系统 第6章 Heartbeat及其理论介绍 第7章 Heartbeat示范配置 第8章 Heartbeat资源及维护 第9章 Stonith和ipfial
  • 同时,使用lvs/nginx+keepalived做并发高可用集群,整合tomcat容器,采用辅助软git和Nas技术,分别确保多个数据库之间的数据同步和多个web服务器之间的网页同步,最后,用监控软件监控整体服务器的运行情况。
  • MySQL高可用集群搭建 ----- MHA

    千次阅读 2019-09-15 15:05:07
    一、何为高可用高可用性说白了就是应用可以 持续不间断 的 提供服务的能力! 注: 高可用和负载均衡的概念有些初学者可能会混淆,在这也说说负载均衡: 负载均衡:指后端服务器没有状态,可以任意分配,它们...
  • keepalived+Nginx实现高可用集群

    千次阅读 2020-10-08 18:51:56
    1.素材与软件版本 软件版本: IDAE:2019.2.2 VMware:12.5.2 虚拟机镜像:CentOs7.3标准版 Xshell:Xshell6 Postman:7.33.1 Tomcat:8.5.41 Nginx:1.18.0稳定版 keepalived:2.0.18 项目素材...
  • RabbitMQ 高可用集群模式

    千次阅读 2019-05-10 18:07:13
    rabbitMQ是用erlang开发的,集群非常方便,因为erlang天生就是一门分布式语言,但其本身并不支持负载均衡。 Rabbit模式大概分为以下三种:单一模式、普通模式、镜像模式 单一模式:最简单的情况,非集群模式。 没...
  • 目录 一、目的及要求: 实验目的: 实验要求: 二、环境要求: 集群规划: ...项目二:Hadoop高可用完全分布模式配置 ...项目四:Hadoop高可用完全分布模式... Hadoop HA 即Hadoop的高可用,不同于普通的namenode+s...
  • linux高可用集群(HA)原理详解

    万次阅读 2018-05-02 10:39:32
    高可用集群一、什么是高可用集群 高可用集群就是当某一个节点或服务器发生故障时,另一个节点能够自动且立即向外提供服务,即将有故障节点上的资源转移到另一个节点上去,这样另一个节点有了资源既可以向外提供服务...
  • mysql高可用集群部署方案(mha+atlas+keepalived)

    万次阅读 多人点赞 2018-09-13 11:44:06
    一、mysql高可用前提  在许多比较重要的系统中,基本上都是24h*365d不间断运行的。   对于应用程序来讲,可以做haproxy+app 或 nginx+app的集群。好,问题来了,当应用程序的性能调优后,那么瓶颈就卡在...
  • proxmox VE超融合、高可用集群

    千次阅读 2019-12-19 09:32:56
    去年早些时候,陕西的一家商超技术人员联系上我,想对已...虽然数量可观,但全部都是单点,任何一个物理设施故障,都会导致相关联的服务不可用,风险系数很。 这种场景最适合私有云,把各门店的服务器全撤销(收银...
  • Hadoop 2.0 HA 3节点高可用集群搭建

    千次阅读 2018-10-22 20:59:44
    概览 1.集群规划 2.准备 3.修改Hadoop配置文件 4.复制内容 5.启动集群 6.查看jps 7.测试 1.集群规划 HDFS HA背景 HDFS集群中NameNode 存在单点故障(SPOF)...影响HDFS集群可用主要包括以下两种情况:一是NameNod...
  • 1.素材与软件版本 软件版本: IDAE:2019.2.2 VMware:12.5.2 虚拟机镜像:CentOs7.3标准版 Xshell:Xshell6 Postman:7.33.1 Tomcat:8.5.41 Nginx:1.18.0稳定版 keepalived:2.0.18 项目素材...
  • Linux 高可用(HA)集群基本概念详解

    千次阅读 2018-09-18 21:08:37
    一、高可用集群的定义 高可用集群,英文原文为High Availability ... 高可用集群的出现是为了使集群的整体服务尽可能可用,从而减少由计算机硬件和软件易错性所带来的损失。如果某个节点失效,它的备援节点将在...
  • 随着你的网站业务量的增长你网站的服务器压力越来越大?需要负载均衡方案!商业的硬件如F5又太贵,你们又是创业型互联公司...我们利用LVS+Keepalived基于完整开源软件的架构可以为你提供一个负载均衡及高可用的服务器。
  • 蓝点高可用集群软件(双机热备软件)BluePoint-HA安装配置文档。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 121,066
精华内容 48,426
关键字:

高可用集群软件