我计划为高可用性方案设置一个双节点主动-主动应用服务器集群。现在,当其中一台服务器出现故障时,整个站点负载将集中在一台服务器上,直到另一台服务器再次启动。
在这种失败情况下最好的选择是什么
- 以降级模式运行网站,假设发生故障的服务器将快速恢复
- 始终以 50% 的负载运行每个应用服务器。因此,如果一台服务器发生故障,它仍然能够支持整个站点负载(假设服务器可以以 100% 的负载运行)。
请指教。
答案1
我知道这不一定是你想要的答案,但是:
这是一个商业决策,其他人无法替你做出。
但是你可以遵循一些原则:
您能多快更换故障的服务器?
你们是否有 24x7 全天候待命的服务人员?
你们是否签订了所有部件的维护合同?
更换件的保证交付时间是多久?您能在利用率较低的机器下运行吗?
您能买得起配置足够的机器吗?
管理层是否理解这一要求?
理想情况下,您希望单个机器的运行效率低于 50%。总计 100% 是不可行的。您的服务要求是什么?
如果一切都出错了,您的声誉或财务状况是否会受损?
您的用户期望什么或实际支付的费用是多少?
把这些加起来应该能让你更好地做出决定。
答案2
Dan Carley 的回答很好——我正在解释我经常看到人们犯的一个误解。
2 节点主动-主动应用服务器集群,用于 HA 方案。... 当其中一台服务器发生故障时,整个站点负载将集中在一台服务器上
是的,这就是为什么 2 节点主动/主动通常不是一个好的解决方案。从高层次上讲,如果您有 2 个节点,则可以执行以下操作之一:
- 双节点主动,其中每个节点不能处理全天负载。通过使用 2 个节点,您可以获得一定的额外空间来应对负载峰值(slashdotting),并且您可以在夜间将单个节点离线进行维护而不会中断服务。您没有获得高可用性,因为高峰时段单个节点的故障将导致您的系统瘫痪。事实上,您的服务(每个节点)至少有 2 个单点故障。
- 2 节点主动-被动,其中每个节点能处理满负荷。您可获得高可用性,并且设置相对简单。
- 双节点主动,其中每个节点能处理满负荷。您可以获得 1) 的所有好处以及高可用性,但通常需要更复杂的设置和更昂贵的硬件要求。
对于 2 节点 HA 系统,我通常首选主动-被动设置。在我看来,在 2 节点设置中运行主动-主动没有什么好处,而主动-被动通常更容易理解,也更易于工作。当您有 3 个或更多节点时,主动-主动会成为一个很好的解决方案,因此将一个节点的流量故障转移到其他节点不是问题。
我不是 100% 清楚 OP 的意思,但我认为他的选项 2 与我的选项 2 或 3 相对应,即每个单个节点的运行容量都低于 50%。