Web-Server

消除網路伺服器的單點故障?

  • January 10, 2011

我知道在 DNS 中,每個 DNS 伺服器都會被嘗試查看它們是否會響應

我在電子郵件中知道,如果發生故障,它將轉到列表中的下一個,或者它將保留郵件一段時間

據我所知,在網路伺服器中,瀏覽器將獲取網路伺服器 IP 地址之一併嘗試它,如果失敗,它將放棄。它是否正確?如果是這樣,那麼引導流量遠離故障 IP 地址的唯一方法就是使用 DNS 伺服器,即使這樣也不會立即更新。

如果您根本不希望出現單點故障,則需要進行全域伺服器負載平衡——您顯然不能依賴單個數據中心,即使使用冗餘 BGP 配置,您的 BGP 表也會構成單點故障,如果有人推送了錯誤的配置,可能會搞砸。

您所做的是配置 DNS 為您的域名的 A 記錄通告多個 IP 地址,指向位於不同數據中心(最好位於不同城市)中的站點副本,並且瀏覽器將選擇一個(通常是隨機的,但注意 Windows Vista,它實現了 RFC3484 的愚蠢位,因此不是隨機的),並將儲存其他。根據瀏覽器的不同,如果它正在使用的地址不可用,它通常會使用其他地址之一。您的 DNS 伺服器必須持續監控所有站點並停止為任何出現故障的站點做廣告。他們還需要非常短的 TTL。對此有硬體解決方案——例如 F5 的 BigIP 設備。

您還需要在數據中心之間實時複製數據庫、文件和使用者會話狀態的方法。

您顯然還需要從所有 ISP 獲取網路圖和供應商列表,以確保您的所有網路路由在地理上完全多樣化,並且 ISP 不依賴同一個上游供應商。確保它們不在同一個電網上可能也是值得的。

有關全域伺服器負載平衡的更多資訊,請參見此處(儘管它有點舊且過時):http ://www.tenereillo.com/GSLBPageOfShame.htm

您的故障轉移不會像 BGP 故障轉移那麼快,但您無法通過一個錯誤的 BGP 配置完全關閉您的站點。您可能會弄亂單個 DNS 伺服器或數據中心的配置,但這不會讓您完全崩潰(除非您將 DNS 更新自動推送到所有 DNS 伺服器)。

引用自:https://serverfault.com/questions/220413