Load-Balancing

名稱伺服器上的容錯

  • August 23, 2009

我有 3 台伺服器,每台伺服器都執行一個名稱伺服器和一個網路伺服器。今天,有 2 台伺服器出現故障。我認為最後一個伺服器將處理從那時起所有未來的請求,但這似乎只發生在一小部分時間。其他時候,請求會超時。

在我的每台伺服器上,我都有以下區域條目:

ns1          IN A        <SERVER IP 1>
ns2          IN A        <SERVER IP 2>
ns3          IN A        <SERVER IP 3>
example.com. IN A        <SERVER IP 1>
example.com. IN A        <SERVER IP 2>
example.com. IN A        <SERVER IP 3>
www          IN CNAME    example.com.

我應該只在每台伺服器上為 example.com 保留一個 A 記錄嗎?我想設置我的伺服器,以便在其他伺服器出現故障時任何伺服器都可以透明地處理所有請求。

您設置的是DNS 循環;雖然這將提供負載平衡,但它不會提供透明的動態故障轉移。這是因為當客戶端查詢 A 記錄“example.com”時,雖然他們將收到所有 3 個伺服器 IP,但他們通常會記憶體一個以用於將來與該域名的連接。即使您將區域的 TTL 設置為低,在公共 Internet 上,您也無法控制您和您的客戶端之間有多少記憶體解析器,更不用說客戶端電腦上可能發生的 DNS 條目的應用程序級別記憶體(Internet例如,資源管理器維護自己的 DNS 記憶體)。

您要設計的是高可用性。這將需要硬體設備或某種形式的軟體集群。硬體選項包括 Citrix Netscaler、F5 ig IP 或 Foundry NetIrons。除非您為託管許多應用程序的大型企業工作,否則購買自己的設備很可能不切實際。可能值得與您的託管服務提供商核實,因為許多服務提供商會提供對共享 HA 設備的訪問,但需額外付費。

基於軟體的選項包括Windows 上的Microsoft 網路負載平衡或Linux 上的ucarp;如果不知道您的確切要求以及您目前的基礎架構是什麼樣的,就很難更具體。還有其他幾個關於 SF 的問題可能會更有幫助——特別是查看高可用性集群標籤。

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