在这种模式下,所有的节点都能提供服务(不会有用户请求在standby上被闲置的情况)。大部分案例中,集群成员的硬件配置都是相同的,避免可能的性能问题,也更容易实现负载均衡。Active/active集群需要更复杂的管理软件来管理所有资源,比如磁盘和内存需要在所有节点间进行同步。更常见的,一个私有网络被用做心跳连接。集群管理软件必须能够检测到节点问题,比如节点故障或者集群通讯问题
脑裂(split-brain)是集群中的一个糟糕的情况:集群中的所有集群正在工作的时候,内部通讯被断开。这种情况下,集群被分成了几个部分,每个部分的集群软件都会尝试去接管其他节点的资源,因为在它看来,别的节点发生了故障。可能会出现以下问题:如果应用能够正常连接集群的这些部分,因为此时这些集群部分不同步,可能会有不同的数据会被写入到磁盘中。脑裂对集群的危害显而易见,集群软件的供应商必须提供方案来解决这个问题
oracle的集群软件(11g中的Grid Infrastructure),使用一个仲裁设备(quorum device),称作voting disk,来决定集群中的成员。集群中的所有节点共享一个voting disk,当一个节点不能向内部网络和voting disk发送心跳时,它就会被逐出集群。若一个节点不能和其他节点通讯,但依然能连接到voting disk,集群在这种情况下将进行投票,并发出指令将该节点剔除。这个投票使用的是STONITH方式,软件将发出一个请求,使被踢出的节点自动重启。当需要重启的节点hung住的时候,重启指令变得不可用,这种情况比较棘手。幸运的是,若硬件允许,Grid Infrastructure可以支持IPMI(智能平台管理接口),可以向一个节点发出结束指令。当一个节点故障或被踢出集群,剩余的节点能够接管用户服务请求。
配置Active/passive集群
一个active/passive集群工作方式与active/active不同。一个active/passive集群中的成员硬件配置依然应该一致或基本一致,但同一时间两个节点中只有一个节点能处理用户请求。集群管理软件会不断地监控集群中资源的健康状况,当一个资源失败,集群管理软件会尝试将该资源重启数次,若还是无效,备用节点将进行接管。
根据安装时的选项,集群的资源可以分配在共享存储或文件系统上,后者在资源failover的时候也会进行一次failover。使用共享文件系统比使用非共享的文件系统更有优势,后者在重新挂载到standby节点上以前可能需要进行fsck(8)检测。Veritas集群套件、Sun(Oracle)集群和IBM的HACMP就可用作安装active/passive集群的集群管理工具。