Facebook 解释了它的历史性垮台是如何发生的以及它是如何修复它的

的秋天 Facebook 周一发生的全球范围内的公司前后,他们完全与互联网断开了5个多小时,这对于世界上最大的公司之一来说是前所未有的。 现在有了 Facebook 平台, WhatsAppInstagram 已经从周一发生的崩溃中 100% 恢复,Facebook 团队已经发布了有关崩溃是如何发生的、为什么会发生以及他们如何设法修复它的详细信息。 想知道迄今为止 Facebook 历史上最大的崩溃的所有细节吗?

Facebook解释了其历史性垮台是如何发生的

Facebook 是如何运作的,为什么它会彻底垮台?

Facebook 表示,全球范围内的服务完全中断是由于管理公司主干容量的系统出现故障,该主干是 Facebook 网络的“骨干”,连接 Facebook 所分布的所有数据中心数以千计的服务器和数百公里的光纤组成,因为它们还通过海底电缆连接其数据中心。 一些 Facebook 数据中心拥有数百万台服务器来存储数据并具有很高的计算负载,但在其他情况下,这些设施较小,负责将骨干网连接到互联网,供人们使用他们的平台。

当像我们这样的任何用户连接到 Facebook 或 Instagram 时,数据请求从我们的设备传输到地理位置最近的设施,然后直接与主干通信以访问最大的数据中心,这是它检索请求信息的地方,并且处理,以便我们在智能手机上看到它。

不同数据中心之间的所有数据流量都由路由器管理,路由器决定应将入站和出站数据发送到何处。 作为日常工作的一部分,Facebook 的工程团队需要维护此基础设施并执行诸如升级路由器、修复光纤线路或在某些网络上增加更多容量等任务。 这就是周一全球 Facebook 崩溃的问题。

在维护工作期间,发送了一条命令,旨在评估全球骨干网容量的可用性,但它意外切断了所有骨干网连接,从而断开了全球所有 Facebook 数据中心的连接。 通常,Facebook 使用系统来审核这些类型的命令,并减轻或避免此类错误,但是此审核和更改控制工具中的错误(错误)阻止了订单的执行,然后一切都崩溃了。

当我运行命令时,Facebook 上发生了什么?

该命令一执行,就导致 Internet 和数据中心连接完全断开,即我们无法访问任何 Facebook 服务,因为它们在 Internet 上不再可见。 此外,这种完全断开导致了系统中的第二次灾难性故障,更具体地说是在 DNS. 小型数据中心安装执行的任务之一是响应 DNS 查询,这些查询由具有众所周知的 IP 地址的权威名称服务器响应,并使用 BGP 协议向 Internet 的其余部分通告。

为了确保更可靠的运行,Facebook 让 DNS 服务器在无法与 Facebook 的数据中心通信时关闭这些 BGP 广告,因为这表明网络连接无法正常工作。 随着主干网的完全中断,这些 DNS 服务器所做的就是删除 BGP 广告。 这样做的结果是,即使 Facebook 的 DNS 服务器运行良好,它们也无法访问,因此,世界其他地方无法访问 Facebook 服务。

从逻辑上讲,整个过程只需几秒钟,而 Facebook 工程师试图弄清楚发生了什么以及为什么会发生,但他们面临两个关键问题:

  • 无法正常访问数据中心,因为网络因第一个问题而完全瘫痪。
  • DNS 的崩溃破坏了许多通常用于调查和解决此类问题的内部工具。

对主网络和带外网络的访问都出现了故障,没有任何工作,因此他们不得不派人到数据中心解决问题并重新启动系统。 这花了很长时间,因为这些中心的物理安全是最大的,事实上,正如 Facebook 所证实的那样,他们甚至很难物理访问它们进行修改,以避免或减轻可能对其网络的物理攻击。 这花了很长时间,直到他们能够对系统进行身份验证并查看发生了什么。

恢复生机……但一点一点地,以免把整个系统扔掉

一旦 Facebook 数据中心不同区域的主干连接恢复,一切又恢复正常,但对用户而言却不是这样。 为了避免由于大量用户想要进入而导致他们的系统崩溃,他们不得不一点一点地激活服务,以避免由于流量的指数增长而导致新的问题。

问题之一是各个数据中心使用的电力非常少,突然逆转所有流量可能会使电网无法吸收那么多额外的电力,并且还会使电力系统面临风险。 我缓存了它们。 Facebook 已经针对这些类型的事件进行了培训,因此他们非常清楚在发生像这样的全球性崩溃事件时应该怎么做才能避免更多问题。 虽然 Facebook 模拟了许多服务器和网络的问题和崩溃,但他们从未考虑过主干完全掉线,因此他们已经表示他们将在不久的将来寻找一种方法来模拟这种情况,以防止它再次出现背部。 通过,需要很长时间才能修复。

Facebook 还表示,当他们试图从全球范围内的故障中恢复时,看到物理安全措施如何防止未经授权的访问导致对服务器的访问速度大大减慢,这一点非常有趣。 无论如何,与放松数据中心的安全措施相比,最好每天保护自己免受这些类型的问题的影响并且恢复速度稍慢。