服务器利用率以及如何处理数据中心故障

服务器利用率以及如何处理数据中心故障

Docker、Mesos、Kubernetes 等新技术可使组织中的服务器利用率大大提高。但是,我想知道如何在考虑整个数据中心发生故障的情况下,在两个数据中心之间实现利用率最大化。

假设这种情况:

两个数据中心(DC-A 和 DC-B)拥有同等数量的计算资源。两个数据中心都以负载平衡/循环方式运行并处理请求。两个数据中心的服务器利用率均为 80%。

假设 DC-B 发生故障(物理或网络)并且无法访问。DC-A 将无法再增加 80% 的利用率,因为它本身已经达到 80%。组织可能会处于 DC-A 无法处理额外需求并导致中断的状态……

这是否意味着双数据中心(DC-A 和 DC-B)组织每个数据中心的最大利用率只能达到 50%?也就是说,其中一个 DC 发生故障,另一个 DC 将能够弥补另一个 DC 所承担的不足(50% + 50%)。

这种想法正确吗?其他人是如何解决这个问题的?还是我遗漏了什么?

答案1

对于需要始终可用的服务,您需要 N+1 冗余,其中 N 是处理负载所需的数据中心或服务器的数量(或在假设的故障情况下您丢失的其他任何东西)。冗余越多,成本越低 - 最低端有两个数据中心,每个数据中心都需要能够处理整个工作负载。但是,如果您有 10 个,它们可以完成 9 个的工作,并且仍然是冗余的。

另一种选择是减载,尽管这个短语在电力系统中更常用。基本上,在发生故障时关闭所有非必要服务,以便其余系统有足够的资源。

答案2

一种相当常见的方法是,对于生产环境,硬保留容量足够,以便在发生灾难时剩余的数据中心能够处理全部负载并且所有操作能够照常继续。

通常预算永远不够,而且明显的业务案例也不可能允许非生产环境实现完全灾难恢复/故障转移。降级或完全不可用可能被视为可接受的。

根据平台的不同,有些人可能会选择增加可用的生产能力,通过在发生灾难时缩减非生产环境来满足剩余数据中心增加的负载。

相关内容