簡體   English   中英

如何在Windows Server上進行故障轉移

[英]how to do failover on windows server

我們有2台Windows Server 2008 R2。 兩台PC均安裝了帶網絡應用程序的glassfish。 第一台PC(PDC)的IP為192.168.1.7,第二台PC(BDC)的IP為192.168.1.8,用戶使用ip 192.168.1.7登錄到應用程序。

我們要做的是,如果PC用戶無法使用ip 192.168.1.7訪問該應用程序,則使用192.168.1.8,而無需用戶執行任何操作。

我們發現您可以用玻璃魚來做,但是它使用apache作為中介。 如果具有apache的PC發生故障,則無法進行故障轉移或使用該應用程序。 另外,我們已經看到我們可以使用EasyDNS來使用域名來實現它,但是網絡無法訪問Internet,因此我們也將其丟棄。

有什么方法可以進行故障轉移而無需依賴Internet或中央PC中的程序?

人們需要一種在一個共享ip地址上接收請求並將請求分布在多個節點上的方法(負載平衡/高可用性故障轉移)。

可選地,可以在LB / HA與后端服務之間分層中介功能,例如,卸載靜態內容,某些類型的請求篩選等。

僅對於LB / HA,通常使用

  • 適用於現有平台(在您的情況下為Windows)的軟件附件。 Windows具有內置的NLB功能,可用於分配負載並為多個相同的后端服務器提供故障轉移。 NLB直接安裝在每個后端服務器上,或者如果需要通過單獨的Apache,IIS或其他前端服務直接要求在前端節點上提供分層功能。
  • 專用冗余軟件負載平衡器(例如HAproxy)位於應用程序服務器前面。
  • 專用冗余硬件負載平衡器位於應用程序服務器前面。

您的問題尚不清楚,除冗余之外,您打算用Apache解決什么問題,因為冗余本身本身就是一個單點故障,所以通常不會解決。 IIS具有相同的困境,經常使用ARR附加組件將代理反向代理到后端服務器,但是它本身就是一個單點故障。 正如Windows具有NLB為多個相同配置的服務器(例如Java服務器,具有ARR節點的IIS,Apache節點)提供冗余鏈接一樣,Linux上的Apache具有如此處所述的機制。

但是,這些功能不像使用專用負載均衡器和專用負載均衡器來前端服務器和可選IIS / Apache /其他前端Webnode那樣功能豐富和高效。 另外,他們傾向於創建自己的問題域,從而限制功能集並創建其他依賴復雜性。 簡而言之,除非安裝非常簡單,否則它們往往會過度消耗維護/開發時間。

共享同一磁盤的群集服務(如注釋中建議的)通常不用於Web冗余方案,因為它們可以更好地解決其他設計問題(例如高可用性文件或打印服務)。 如本答案所述,使用Web冗余技術的一個原因是維護易於回收節點,另一個是可伸縮性因素,依此類推。 與群集解決方案相比,唯一的缺點是它們無法跟蹤用戶狀態。 但是,由於群集解決方案通常專門針對特定的實現以保持用戶會話意識,而Web交付解決方案具有廣泛的會話意識分布,因此這種論點在大多數情況下都是無聊的。

人們將使用DNS之類的外圍服務進行故障轉移的做法容易引起人們的懷疑,因為這些例外情況(例如mx指針)幾乎沒有在設計時考慮到這種情況。 專用變體可能仍會受到普遍使用的DNS子系統內置的大量緩存的影響,並且在這種設置中形成弱鏈接。

在以下情況下,仍可以考慮將DNS作為主要冗余機制:

  • (非常長的)故障轉移延遲是可以接受的,或者如果:
  • 一種是完全控制從客戶端到服務器的整個分布式DNS基礎結構(可以通過短TTL保證切換延遲),或者滿足以下條件:
  • 可以以編程方式確保客戶端/服務器代碼可以利用DNS進行快速故障轉移。

提供LB / HA邏輯服務器端的替代方法是將其構建到客戶端中。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM