為了在單個站點或者跨站點間部署Hyper-V故障轉移集群,企業需要滿足某些前提條件、選擇合適的硬件,并理解集群的內部工作原理。
Hyper-V故障轉移集群是一種十分復雜的系統,被設計用來在發生故障時保護虛擬機。如果沒有在合適的框架下、采用正確的方式搭建Hyper-V集群,那么企業將會面臨丟失所有數據、浪費時間和資源等風險。如果管理員想要學習如何在單個站點或者跨站點間搭建Hyper-V故障轉移集群,那么這篇文章可以幫助你。其中還包括了如何為故障轉移集群選擇合適硬件類型,之后進一步介紹了集群的內部工作原理。如果在了解這些之后你仍然不能確定Hyper-V故障轉移集群是否適合于自己公司的話,那么可以了解其他解決方案,但是應該從下面五個方面開始。
部署Hyper-V故障轉移集群
很多人都知道使用免費版本的Hyper-V服務器就能夠實現虛擬機高可用性。但是為了實現這種功能,企業不僅需要復制Hyper-V服務器,還需要使用存儲陣列,理解如何部署和配置Hyper-V故障轉移集群,并且熟悉如何使用PowerShell。當管理員安裝Hyper-V服務器、并且完成最初的配置之后,需要使用一些簡單的命令將共享存儲連接到集群,并且熟練掌握整個流程。需要注意的是即便你使用免費Hyper-V故障轉移集群,仍然需要面臨虛擬機授權等費用。
搭建跨站點故障轉移集群為了搭建不同站點間的Hyper-V故障轉移集群,需要滿足多種硬件和存儲需求,這樣才能在出現網絡故障、電力故障甚至是大規模自然災害時有效保護虛擬機。此外,對于集群存儲當中的數據復制來說,管理員需要在同步復制和異步復制之間做出選擇(前者有可能影響系統性能,而后者有可能造成數據丟失)。另外一件需要考慮的事情是如何制定一套有效的投票流程,以決定集群是否保持在線。最后,如果真的發生站點間故障轉移,準備重新配置虛擬機的IP地址。
為故障轉移集群選擇恰當硬件盡管購買性能最為強大的服務器是支持Hyper-V故障轉移集群的最佳方式,但是內存超額分配等限制會使得購買流程更加復雜。不僅需要為主機處理預留一些內存,并且還需要在其他主機當中準備足夠的residual和unused內存,以防止本地主機當中的虛擬機進行遷移。最為關鍵的是避免浪費內存。增加更多的主機非常重要,除了購買性能更加強大的服務器之外,還應該降低總浪費比例。可以根據當前擁有的虛擬機總數量以及每臺虛擬機所需要的內存數量來計算最終需要多少臺主機。
在兩個Hyper-V節點間實現故障轉移
故障轉移工作原理為了實現高可用性,每臺虛擬機都需要擁有自己的資源DLL(動態鏈接庫),也被稱之為VMCLUSRES.DLL,通過MSCS(微軟集群服務)——更為確切的說,應該是RHS(資源主機服務),在Hyper-V故障轉移集群當中和虛擬機進行交互。由VMCLUSRES.DLL每五秒鐘執行一次VMIsAlive功能,檢測虛擬機何時需要在另外一個節點上被重啟。做為虛擬機和MSCS之間的信使,RHS從VMCLUSRES.DLL獲取虛擬機狀態信息,之后傳遞給MSCS。當需要進行故障轉移時,MSCS啟動故障轉移管理器。通過持續更新當前狀態,資源DLL能夠保護Hyper-V故障轉移集群當中的所有虛擬機。
Hyper-V故障轉移集群替代方案如果不想要構建故障轉移集群,也有其他方案選擇。好消息是微軟在Windows Server 2012當中不需要使用集群共享卷,所以即便沒有使用共享存儲,系統一樣能夠提供容錯能力,管理員只需要準備足夠的本地磁盤空間來容納虛擬機。管理員還可以使用微軟Hyper-V Replica,其可以利用組成虛擬機的虛擬硬盤將其從一臺主機復制到另外一臺主機當中。Hyper-V Replica特性允許管理員只使用源服務器和目標服務器就能夠創建存儲,而不需要兩、三個集群節點或者故障轉移集群所需的文件共享,這種方式的的性價比更高。