Windows-Server-2008

執行 IIS 和 SQL Server 的 3 台物理伺服器的理想冗餘配置

  • January 9, 2010

我希望建立一個盡可能冗餘的架構,以便為只有 3 台伺服器(只有 5U 機架空間)的以數據為中心的 Web 應用程序提供服務。在這兩種設置之間,哪個是最理想的,我會考慮每種設置的優缺點?

選項1:

  • 2 個 Web 伺服器 + 1 個數據庫伺服器。Web 伺服器將功能適中,並由負載平衡器提供流量服務,而數據庫伺服器將是一台非常強大的機器,具有盡可能多的板載冗餘(電源、熱插拔 HDD 等)

選項 2:

  • 3 台相同的伺服器,每台執行 IIS 和 SQL Server。它們每個都比選項 1 的 Web 伺服器更強大,每個都具有 RAID 5/10 設置、大量 RAM、8-16 個核心等。我不確定它們是否具有熱插拔驅動器或電源之類的東西, 儘管。

我喜歡選項 1 的簡單性,但不喜歡數據庫伺服器是一個大故障點。選項 2 似乎解決了數據庫問題,但是我確信將數據庫鏡像到 3 個實例並與 IIS 一起執行時會有一些警告。

有什麼想法嗎?提前致謝。

如果高可用性 (HA) 是您的目標,那麼您確實應該有一個單獨的站點用於災難恢復。如果機架斷電會怎樣?您的應用離線。數據庫鏡像對於數據庫伺服器來說是一個很好的、便宜的解決方案。您還可以考慮雙重複制甚至複製 SAN(更昂貴),以便您也可以複製 Web 伺服器。

對於本地 HA,您可以在機器 A 和 B 上設置負載平衡的 Web 伺服器。然後在機器 B 和 C 上設置 SQL Server 故障轉移群集,其中 B 是被動節點,C 是主動節點。這意味著機器 A 和 B 將為 Web 請求提供服務,並將這些請求傳遞給機器 C 上的數據庫伺服器。如果機器 C 當機,數據庫將故障轉移到機器 B,從而為您提供冗餘,但可能會影響性能。如果機器 A 死了,那麼機器 B 將接管。如果機器 B 當機,那麼機器 A 將照常服務 Web 請求,而機器 C 將照常服務數據庫請求。您可能有兩台機器出現故障(只要它們都不是 Web 伺服器),您的應用程序仍將執行,但性能受到重大影響。

我喜歡 phoebus 關於為此使用 VM 的建議,但是您確實需要使用 VM 測試性能,因為它可能是一個限制因素。不過,我不會集群虛擬機,我寧願依靠 Vmotion 進行故障轉移。出於性能考慮,我每台主機也只有 1 個虛擬機——為每台主機創建超過 1 個虛擬機 IMO 沒有任何好處。但請注意 VM 的限制 - 減少 RAM 和 CPU。您還需要相當有經驗的人來完全優化配置它。例如,我發現在某些情況下,通過將 VM 必須的 vCPU 數量減少到 1 可以提高性能。

應該進行大量測試和基準測試以找到最佳解決方案,但我的直覺是使用負載平衡的 Web 伺服器和 SQL Server 集群。確保您的磁碟陣列可以配置為共享磁碟。

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