高可用性虛擬機
我通過 Hyper-V 或 VMWare 閱讀了很多關於高可用性虛擬化的資訊。在這種情況下,本質上的高可用性意味著虛擬機由一組物理伺服器(節點)託管,因此如果其中一個物理伺服器出現故障,虛擬機仍然可以由其他物理伺服器提供服務。到目前為止一切順利,物理集群和虛擬機本身都是高可用的。
但是,如果所提供的服務(例如 SQL 伺服器、MSDTC 或任何其他服務)實際上是由 VM 映像和虛擬化作業系統提供的。所以我想在虛擬層仍然有一個沒有考慮到的故障點。虛擬機本身可能會發生物理集群無法解決的問題,對嗎?在這種情況下,物理故障轉移集群 (Hyper-V) 或 VMWare 主機無法進行故障轉移,因為問題不在於物理集群中的一台伺服器 - 對物理節點進行故障轉移不會有任何好處。
這是否需要在物理集群之上建構虛擬故障轉移集群,或者這不是必需的?
或者,我想您可以跳過物理集群,而只在虛擬層進行集群(基於子級的故障轉移集群),因為它仍然可以在物理故障中倖存下來。
請參見下圖,顯示基於父級(左)、基於子級(右)和組合(中)。是基於你需要去的父母,還是基於孩子更合適?
答案是視情況而定。
集群解決方案通常比應用層做得更多。傳統上,集群依賴圖將包括以下內容,
- 網路/IP 可用性檢查
- 儲存/共享卷可用性。
在 VM 中執行其中一些檢查非常困難。例如,在 Windows 2003 集群中,它需要一個仲裁驅動器,它使用 SCSI 鎖定來確保它是資源的所有者。在失敗時,它還會發送“毒包”來獲取該鎖。如果沒有到 LUN 的 RDM,幾乎不可能實現所有這些功能。
所有這些“硬體檢測”組件都會在 VM 中產生很大的成本。(VM 性能對於使用者應用程序來說總是很好,但是任何核心基礎總是會產生不同程度的成本)。
因此,對於 Microsoft Windows 2003 集群(我必須進行虛擬化,我會使用您的“子”方法)。
奮鬥的理想之地是,
- 用於硬體故障檢測的 VMware HA。
- vSphere 應用程序監控
其次是,
- 高可用性
- 僅應用程序監視器(不依賴硬體)
- 確保已為配對的 VM 啟用反關聯,以便 DRS、HA 永遠不會重新啟動同一主機上的節點!
最後
- 子分群