首先,我们来看一下集群软件的共有特征:



 



任何一款集群软件都能启动和停止应用程序



任何一款集群软件都能实现failover(切换)



任何一款集群软件都使用某种形式的集群通讯(即心跳)



任何一款集群软件都有防止“脑裂”的功能



任何一款集群软件都使用内核和非内核组件



 



所以,我们在选择集群软件时就不需要关注上述特征了,一款好的企业级群集软件应该具备如下的部分或全部特征:



 



在保证可用性和性能的前提下,尽可能地减少备机的数量



有一些应用如果跑在同一个系统环境下,会相互影响,这样的应用通常不会共存于同一台生产主机上,类似的,也不应该为它们配置同一台备机。



在保证性能的前提下,好的集群软件允许主备机采用不同等级的硬件。



传统1+1集群,特别是工作在AP模式的1+1集群,计算力只有50%得到利用(AA模式表面上提高了资源的利用率,其实未必,如果要保证性能,必须为双活节点配置更高级别的硬件),对多个独立集群加以整合,就可以实现n+1集群乃至n+0集群,从而大大提高服务器资源的利用率。




效率高,使用方便



效率高可以体现在很多方面,比如应用感知,资源配置,故障恢复手段等等。比如,好的集群软件可以支持较多的应用,你不需要经常使用常规服务或常规应用这样的对象来管理你的应用,大多数的应用可以非常方便地加入资源组。可以用最有效的方式检测应用的可用性,以对整个应用系统影响最小的方式恢复停止工作的进程或线程,减少宕机时间。



在备机的选择上,要足够智能,保证能够满足应用需求的前提下,应该选择当前负载最轻的主机进行切换。



此外,集群软件应该支持集群节点使用不同版本或补丁程序的操作系统和应用程序,这样才能实现集群环境下的系统和应用滚动升级。



 



全面的自动化容灾,包含容灾演练的功能



本地高可用在实现上比较容易,但是用户可能需要将本地的高可用系统扩展为准异地或异地的容灾方案,好的软件应该支持这种扩展,不管是加大两个群集节点之间的距离还是在原有集群的基础再增加容灾节点,集群软件都应该支持自动切换到备用节点或备用站点。容灾演练是容灾系统必不可少的一部分,没有容灾演练功能,就无法验证容灾系统是否有效。



 



多平台环境中保持一致性



大中型企业的应用往往运行于不同的系统平台之上,好的集群软件应该支持多种系统平台,并且在多种系统平台之间采用相同的技术来实现各种功能(虽然细节上会有所不同),这有利于整合集群系统,有利用节省投资,也有利于管理。



 



可以控制依赖关系和多级应用程序



在复杂的应用环境(如前端+中间件+后端)中,集群中的资源往往有着复杂的依赖关系,好的集群软件应该可以灵活地控制这些依赖关系,保证服务状态和应用数据的一致性,不管这些服务和数据存在于同一台服务器上,还是分布于多台服务器之上。不管这些服务和数据归属于同一个资源组,还是不同的资源组。



 



集中管理所有的集群



这个好理解,就是用一个集中的控制台管理所有集群,这样集群的管理才能高效,调度和配置资源时更加方便,也便于监视所有集群系统的运行。


转载于:https://blog.51cto.com/simon/217064