假设你的任务是运行一组关键任务 Web 服务,目标正常运行时间为 99.5%
为了实现这一点,您需要在两个完全独立的数据中心拥有两个相同的硬件集群,并且拥有不同的带宽提供商等。
每个机架的顶部都需要有一些机架顶部硬件(交换和防火墙设备)。
您的软件设置是这样的,如果其中一个集群离线,通过人工干预,可以很容易地将所有服务从一个数据中心重新路由到另一个数据中心。假设这大约需要 15 分钟。
问题是:您是否愿意为每个数据中心额外花费 8000 美元,以消除机架顶部设备的单点故障(热故障切换和防火墙)。作为参考,每个机架设备中大约有 50000 台服务器。
冗余设置更加复杂,具有更多的故障模式,并且必然会增加初始购买价格以及维护和排除更复杂设置故障所花费的时间。
此外,我们已经运行 (冗余) 设置超过 8 年,从未发生过一次 (敲木头) 机架顶部设备故障。我们以 3 年为服务周期更换所有设备。
单点故障模型的缺点是,如果我们丢失了一个交换机或防火墙,整个数据中心就会瘫痪。此外,必须有人打开交换机,将故障服务路由到另一个数据中心(由于各种原因,没有可靠的方法可以自动执行此操作)
我怀疑,因为它使用较少的硬件,而且更简单单点故障选项将在现实世界中带来更长的正常运行时间。根据我的经验,硬件故障发生的频率比人为故障要低得多,而交换机/防火墙(没有旋转磁盘驱动器和安全操作系统等)很少发生故障...
服务器故障社区怎么看?
答案1
无论你做什么,硬件都会出问题。人总会犯错。
毫无疑问,我会升级每个机架,以便拥有多种东西。
您说每个机架中有 50k 台服务器,但只有一台交换机将它们连接到外部世界?我猜也是一台路由器和一台防火墙。
如果我是系统管理员,我不确定我个人能否应付这种情况。我会要求多个不同的传输提供商、一对处于 HA/HSRP 模式的边缘路由器、一对 HA 防火墙、至少 2 台交换机,并且所有服务器都有双网卡,每个网卡上都有一个不同的交换机。
STP 处理交换机或端口的故障,这是自动的。路由器的故障由对上的 HA 软件处理。防火墙也是如此。丢失数据中心并在它们之间切换流量,我假设您使用某种形式的 GSLB 设备?
我完全理解你的想法,但问题是,假设 DC1 因重大事故而下线,需要几天或几周才能恢复(火灾、洪水、$imaginary_deity 的行为)……然后 DC2 中的路由器出现故障。这不是一个完全不可能的情况。根据你告诉我们的情况,你的整个基础设施现在都无法从互联网访问。
这是可以接受的故障模式之一吗?我肯定不会容忍这种中断,因为它很容易(且成本不高)避免。
我想,如果你对这种中断进行风险评估,并考虑到你的雇主将遭受的业务损失,如果升级成本低于一周的业务损失,那么这是一笔很好的交易。