現如今的企業組織需要保證全年的每一天都24小時全天候的正常運營。而且,他們的服務必須保持時刻在線,否則就會失去客戶。同時,在今天的全球市場上,確保企業的系統總是可用,以使得企業組織保持競爭優勢,進而保持和提升用戶滿意度是至關重要的。數據中心的高度可用性可以通過幾種方式來實現,但最常見的和最簡單的方式則是通過服務器虛擬化和故障轉移群集(Failover Cluster)。
服務器虛擬化為許多企業組織的IT部門帶來了諸多的益處,包括允許他們將多款不同的系統整合到一臺單一的主機服務器,帶來了更高的資源利用率 和密度,同時還為運行在每臺虛擬機內的不同的工作負載提供了隔離。而通過隔離每臺虛擬機中的應用程序,一個不安全事故或組件出現故障失敗進而影響其他業務的風險得以降低,需要修補的組件數量得到減少,進一步減少了系統宕機和重新啟動的次數。因為克隆虛擬機或從模板部署虛擬機很容易,這簡化了部署,從而最大限度的減少了人為配置的錯誤,并提供快速的可擴展性。虛擬化還為該虛擬機提供了移動性,并允許其遷移到不同的虛擬化主機,而不會讓虛擬機內運行的應用程序發生停機,進而使得主機能夠被修補或更新。虛擬化是任何現代數據中心的一個重要組成部分。因此,擁有一套高可用性解決方案,以便從計劃外停機中斷中獲得保護和恢復,同時簡化因維護而帶來的計劃停機的管理是非常關鍵的。
對虛擬機而言,當前有幾款不同的高可用性的解決方案。而最為普遍的便是集群,負載均衡,復制和備份,而如果VM虛擬硬盤被刪除或損壞的話,可以通過使用Veeam公司的Backup &Replication軟件產品,System Center Data Protection Manager或Windows Server Backup定期復制虛擬數據,然后將其恢復。復制將把虛擬硬盤和虛擬機的配置文件拷貝到一個次要位置,并且如果主要虛擬機出現故障失敗,還將啟動復制的虛擬機。最常見的解決方案包括Veeam公司的Backup &Replication和Windows Server Hyper-V Replica技術。而借助一款負載均衡解決方案,如Windows Server網絡負載平衡,多款虛擬機的配置都相同。而負載均衡器跨每臺虛擬機相當均勻的分發服務請求。此過程減少了任何一臺單一的虛擬機超載的風險。使用負載均衡是一種用來消除虛擬機停機時間的簡單的方法,因為虛擬機可以單獨運轉和服務,而不會讓服務下線。然而,負載平衡只能用于同樣無狀態的虛擬機,它們沒有共享的或集中式的數據,如一個網站前端。
故障轉移群集為虛擬機提供了最好的高可用性解決方案,包括快速自動恢復,對共享數據的訪問幾乎沒有停機中斷。其為諸如服務、維護、升級所帶來的計劃停機時間以及由于安全威脅、停電甚至自然災害所導致的計劃外的停機時間提供了高可用性。本文中,我們將為廣大讀者朋友們介紹關于保持服務在微軟的虛擬化和集群平臺、Windows Server Hyper-V和故障轉移群集網絡運行的相關場景、設計考慮因素、特點和最佳實踐方案。
故障轉移群集的工作原理
故障轉移集群是一個復雜的分布式系統,其需要在應用程序,操作系統,虛擬機,虛擬化主機、存儲和網絡之間的互操作性。以下,我們將快速地為廣大讀者朋友們回顧關于故障轉移集群的關鍵要求,以及每一項要求是如何為虛擬機提供高可用性的:
· 隨處部署冗余硬件。在您企業高可用的解決方案中消除每一個單點故障是非常必要的。此外,除了具備多臺主機服務器(稱為集群節點),您企業必須通過具備多個互連的到達存儲的路徑,如使用MPIO(多路徑I/O),以便在存儲結構中有冗余。存儲本身應該使用數據可用性功能,如RAID、鏡像和備份。而網絡應該有多個路徑和所有網絡適配器應使用NIC組合(NIC teaming)。
· 在共享存儲上所存儲的數據能夠為所有的節點所訪問。因為應用程序運行在一個需要共享某些類型的信息的集群上(例如,一臺虛擬機的虛擬硬盤或一個SQL Server數據庫),這些數據必須保持在一個使得每個節點都能訪問到的單一的位置。這使得應用程序能夠在集群中的任何節點上運行,但仍讀取和寫入同一個集中化的信息。
· 群集將其配置寫入注冊表。Windows Server包含一個內置的、層次型數據庫用來跟蹤系統和應用程序的設置,這被稱為注冊表。故障轉移群集通過當應用程序運行在該節點上時寫入將需要的信息以利用注冊表,具體如下:
① 工作負載應該在哪個節點上運行
② 每個群集虛擬機或應用程序的屬性是什么,如其名稱、IP地址、磁盤、網絡等
③ 每個群集虛擬機或應用程序的狀態如何,如其是否應該在線,離線的,失敗等
· 群集注冊表跨所有節點進行復制。為了確保虛擬機在每個節點上的操作都是相同的,群集注冊表中的設置必須保持跨每個節點的一致性。這是通過一個隱藏的群集復制服務來管理的,即在集群中將虛擬機性質或狀態的改變拷貝到所有節點。
· 群集節點健康狀況的互相檢查。通過使用一個簡單的請求和響應測試,每個群集節點都將檢查群集節點的健康狀況,以確保所有節點都是在線且響應的。如果某個特定的節點錯過了太多的健康狀況檢查,集群中的其他節點將確定其是否已經失敗,并采取糾正措施,以重新啟動在該節點崩潰之前所運行的任何服務。
· 使用來自群集注冊表的數據重新啟動群集工作負載。即使一個集群節點崩潰,集群中的其他每一個節點均能夠通過注冊表中數據復制知道該崩潰的節點曾經托管了哪臺虛擬機。而健康的節點將使用這些信息以節點崩潰之前相同的狀態來重新啟動虛擬機。其將配置相同的屬性(名稱、IP地址、磁盤、狀態等)和相同的狀態(在線、離線等),并從共享的存儲上訪問相同的數據。這實質上通過在健康的群集節點上以相同的連接設置再造了完全同樣的虛擬機。在節點崩潰之前,使用虛擬機的任何服務或客戶端屆時都將能夠重新連接到這臺新的虛擬機,這會出現與節點在崩潰之前相同的虛擬機。
部署一個故障轉移群集
由于一個故障轉移群集需要很多的硬件和軟件組件,故而在進行其部署時,需要充分考慮多種因素。隨后的大多數管理任務都將通過故障轉移群集GUI控制臺來完成,其被稱為故障轉移群集管理器,雖然這些任務也可以通過借助PowerShell來完成。欲了解更多關于借助PowerShell來管理一個群集的相關信息,請點擊:https://technet.microsoft.com/en-us/library/hh847239.aspx
主機SKU選擇
支持故障轉移群集的Windows Server有幾個版本,它們均提供相同的功能設置。而如下所述,適用于每款SKU又有一些區別:
Windows Server數據中心版——由于其允許企業組織用戶在客戶端操作系統中使用Windows Server運行數量不限的虛擬機,故而該版本的SKU在虛擬化環境的備受推崇。當您企業為主機購買一份許可證授權時,運行在該主機上的所有Windows Server虛擬機可以共享相同的許可證授權,甚至可以通過主機使用自動虛擬機激活功能來實現自動激活。
Windows Server標準版——該SKU受到了其虛擬化權限的限制,故而其在Hyper-V主機中并不被推薦。借助每個主機許可授權,您企業組織只能為兩臺額外的運行Windows Server的虛擬機提供一個共享的許可授權。該SKU一般用于服務器,而不用于托管的虛擬機,如一款域控制器或SQL Server。
Hyper-V Server——該SKU專為Hyper-V主機設計,是完全免費且永不過期的。并且其目的在于提供一個零成本的選擇,以幫助Hyper-V的發展。其支持所有其他SKU所能夠支持的虛擬化和高可用性功能。但是,其沒有圖形用戶界面(GUI),只具備核心的虛擬化、存儲盒網絡功能。并不包括任何其他Windows Server的功能和角色作用,如AD(活動目錄,Active Directory),DNS或IIS。也不包括任何許可證授權以在客戶端操作系統運行 Windows Server。盡管如此,如果您企業在客戶端操作系統中使用Linux,您幾乎可以得到一款完全免費的Hyper-V解決方案。Hyper-V Server可以在此獲得:aka.ms/HyperVServer。
Windows Server數據中心版和標準版均為完全的安裝(具有一個GUI)和服務器核心安裝(沒有GUI)提供了一個安裝選擇。而兩種選擇均支持Hyper-V和故障轉移群集的全部功能特征。服務器核心安裝是Hyper-V主機所推薦的,因為其通過降低了網絡攻擊風險,具有較小的服務足跡占地面積,而且其可以使用完全安裝(具有一個GUI)的Windows Server或使用遠程服務器管理工具(aka.ms/RSAT)實現遠程管理。服務器核心安裝也可以使用PowerShell實現本地管理,或可以使用5nine Software公司的5nine管理器直接為其添加一個GUI。
Windows 8也支持Hyper-V,但是其并不包括任何企業級的功能,不具備實時遷移或故障轉移群集的功能。然而,可以使用Windows客戶端創建一臺虛擬機,然后,其可以被導入導出到一臺Hyper-V主機上,并可以像任何其他虛擬機一樣的訪問所有企業的功能。
角色作用和功能安裝
Hyper-V的角色作用和故障轉移群集的功能必須安裝在每一個群集節點。在Windows Server 2012及更高版本中,您企業組織可以創建一個多達64個節點和8000臺虛擬機的集群,這樣的角色作用和功能的安裝可以使用PowerShell來編寫腳本,以及任何其他重復的Hyper-V或故障轉移群集來管理任務。
圖1 - 故障轉移群集功能的安裝
活動目錄配置
使用故障轉移群集需要AD(活動目錄,Active Directory),盡管Hyper-V并不需要它。這意味著即使您企業打算為您的群集節點使用免費的Hyper-V Server SKU,您仍然需要至少有一個完全版本的Windows Server運行AD在您的企業環境中。所有的群集節點必須是相同的AD域的一部分,在至少是Windows Server 2003的一個域功能級別運行。群集節點也必須是成員服務器,這意味著您企業不能直接在主機上運行的域控制器。這些要求是因為當開始聚集虛擬機和其他工作負載時,AD需要用于身份驗證,所以如果群集節點托管域控制器發生通訊中斷或被集群網絡流量堵塞,則可能無法啟動應用程序。這對于在同一個組織單位中的所有的群集節點計算機對象也是一個很好的最佳實踐方案。以便使得群組策略可以跨所有節點始終應用。如果要使用BitLocker以保護虛擬機的數據不會被物理竊取,那么,域控制器必須運行Windows Server 2012 R2。
也可以在專用的集群虛擬機上運行域控制器,為其提供任何集群虛擬機所具有的相同的高可用性的益處。此外,您可以在AD中預配置集群帳戶,使得只有較少特權的管理員能夠在一個只讀的域控制器 (RODC)環境創建集群或虛擬機。當然,這一話題其實已經超出了本文的討論范圍,更多的信息可以訪問此處。
存儲配置
故障轉移群集需要某種類型的共享存儲,以便使得數據可以被所有節點訪問,并能夠與使用一款支持協議的最現代的SAN(存儲區域網絡)兼容。幸運的是,故障轉移群集包括一個內置的最佳實踐分析工具(集群驗證),其將能夠驗證存儲是否能夠正常運轉。您企業可以從Windows Server目錄和微軟私有云快速追蹤計劃購買預測試的解決方案。許多購買了新的硬件的Hyper-V用戶選擇融合系統,把所有的群集節點、存儲和網絡組件捆綁打包到一個單一的機架上,如StarWind超融合平臺,其中包括戴爾服務器和來自xByte Technologies公司的存儲技術、采用StarWind虛擬SAN的存儲管理、集中的Hyper-V、5nine管理器的集群管理及Veeam公司Backup &Replication工具進行的備份。
存儲類型主要分為三個類別:
SAN使用主機總線適配器(HBA)——這是最傳統的SAN類型。支持的類型包括光纖通道和串行連接SCSI(SAS)。光纖通道往往更昂貴,但比SAS提供更快的性能。
SAN使用以太網——近年來,網絡帶寬已經明顯變得更快,匹配了以前只在基于HBA的存儲架構才可能的速度。這使得基于以太網的解決方案能夠以低得多的成本提供,但他們仍然需要專用的網卡和網絡。由故障轉移群集支持的兩款協議是iSCSI與FCoE (Fibre Channel over Ethernet)。
SMB 3文件服務器——服務器消息塊(SMB,Server Message Block)協議是一個以微軟為中心,應用程序層的網絡協議,用于文件服務器上的文件共享。一款傳統的文件分享,如\MyShare,是一個能夠被多臺服務器訪問的數據存儲的位置。而隨著Windows Server 2012的推出,為虛擬機在這一文件共享上存儲虛擬硬盤成為了可能,這使得其能夠作為一個共享存儲類型,允許所有群集節點能夠立刻對其進行訪問。
在Windows Server 2008 R2中,故障轉移群集推出了一款軟件定義的、磁盤虛擬化層,稱為群集共享卷(CSV),其允許一個單一LUN存儲多臺虛擬機,可在不同的集群節點上運行。當利用一個SAN為虛擬機部署故障轉移群集時,強烈建議為您所有的共享磁盤打開CSV,以通過允許您在一個單一磁盤上整合多臺虛擬機來簡化存儲管理。傳統的群集磁盤不允許多個節點同時訪問同一個磁盤,所以您需要為每臺虛擬機分配一個LUN,而這為存儲管理增加了復雜性。
網絡配置
對于高可用性而言,優化集群的網絡是至關重要的,因為網絡用于管理、虛擬機訪問、健康狀況檢查、實時遷移;以及如果通過SMB使用基于以太網的解決方案或Hyper-V的話通常用于存儲。存儲集群節點可以在相同的子網或不同的子網上,群集被創建或新的網絡被添加時,集群將自動配置網絡。
您必須使用Hyper-V管理器以在每個集群節點上創建相同的虛擬網絡和交換機,使得您企業的虛擬機可以連接到其他服務。這些虛擬網絡必須在集群中的每個節點上命名為相同的名稱,所以虛擬機才能夠始終使用其名稱連接到相同的網絡,而不管該虛擬機是在哪臺主機上運行。
所有的集群需要至少兩個網絡的冗余,如果一個網絡不可用,那么,其流量將過二級網絡改變傳輸路徑。最佳實踐方案則是為每種網絡流量的類型都有一個至少1 Gbps的專用網絡,而這種專用網絡最多可以有五個:
內部群集流量(必需的)——除了使用這個專用網絡進行健康狀況檢查,當某個變化發生時,集群需要這個專用網絡來更新群集數據庫注冊表,并與其他類型的內部通信。該網絡不應該被其他類型的流量所使用,否則可能干擾集群的健康狀況檢查機制。
客戶端和應用程序流量(必需的)——虛擬機很少在一個孤立的環境中運行,他們為其他應用程序或客戶端提供服務。這意味著那些最終用戶需要通過一個外部網絡連接到虛擬機。出于安全方面的原因,將該流量從內部的集群流量分離,從而確保在這個網絡上的拒絕服務攻擊不影響集群流量是相當重要的。
實時遷移流量(強烈推薦) ——將正在運行的虛擬機從一臺主機遷移到另一臺,被稱為實時遷移,虛擬機的內存通過網絡連接在主機之間進行復制。隨著數千兆字節的數據都是通過該網絡盡可能快的發送,該數據帶來了大量的網絡流量。一個專用的網絡是強烈建議的,以便使得其不會干擾到其他網絡。
主機管理流量(推薦)——有某些特定類型的管理任務也需要通過網絡發送大量的數據,例如借助Veeam Backup &Replication執行備份、從一個庫在一臺主機上部署一臺虛擬機、或復制一臺虛擬機。在理想的情況下,這種類型的流量應該有一個專用的網絡。然而,如果需要的話,其可以實時遷移流量網絡結合。
使用以太網存儲的流量(如果使用基于以太網的存儲則為必需的)——如果您企業組織使用的是iSCSI、FCoE或SMB 3文件服務器進行存儲,那么,您企業必須有一個專用的網絡以連接這些存儲數據。這對于確保該網絡有足夠的帶寬以支持在主機上的所有虛擬機的需要是相當重要的,否則如果他們不能足夠快的訪問數據的話,在一臺主機上的所有虛擬機的性能將下降。
圖2 - 實時遷移網絡的配置
當群集創建時,其將基于所發現的不同的網絡適配器的命令為每個網絡分配一個不同的值。網卡,能夠訪問一個默認網關,指定用于客戶端和應用流量,因為該群集假設這一網絡具有外部連接。這一值被稱為網絡優先。必須使用PowerShell來為每個群集網絡配置不同的流量模式。關于該網絡配置的具體細節,您可以訪問這篇博客。
驗證故障轉移群集
創建一個故障轉移群集的過程中,通過借助被稱為群集驗證向導的內置的測試最佳實踐分析器,針對每一個組成部分進行測試,以確保解決方案能夠正常使用是可能的。這款工具是隨著故障轉移群集管理器一起推出的,將能夠對整個解決方案運行一系列的測試,包括存儲、網絡、Windows Server配置和Hyper-V配置。其也將以文檔形式記錄下群集節點的設置,而這對于提供支持和遵從合規性是有幫助的。這款工具甚至可以作為一款故障診斷的工具測試現有的集群。而運行的另一套額外的測試則是為了確保每個群集的工作負載的高可用性得到優化。
測試結果在一個基于XML的網頁中報告,而報告的一個副本會被保存在群集中的每個節點的C:WindowsClusterReports目錄下。無論集群是否通過測試或是測試失敗,或曾有一個警告,幾十個測試中的每一個都將報告,這意味著該解決方案將工作,但并沒有一直遵循最佳實踐方案。對于完全由微軟支持的集群,其必須滿足兩個要求。首先,不能有一個群集出現驗證測試失敗(僅僅只是發出警告是OK的);第二,每個硬件和軟件組件必須是由制造商為Windows Server所鑒定的。然而,群集節點甚至可以有不同的硬件,推薦該節點盡可能的相似,以便確保當運行在任何群集節點上時,該虛擬機的行為相同。
圖3 - 集群驗證測試配置
創建一個故障轉移群集
在硬件和軟件配置通過了群集驗證后,該群集可以使用創建群集向導以幾個步驟進行創建,其是從故障轉移群集管理器推出的。在具體指定了將成為群集節點的Hyper-V主機后,您將被提示為集群提供一個IP地址和NetBIOS名稱。如果一臺DHCP服務器被檢測到,它會自動為群集提供IPv4或IPv6地址,而這可以稍后進行更改。此群集名稱實際上是另一個群集資源,將運行在任何活躍的節點上,而如果第一個節點不可用的話,其將會故障轉移到一個不同的節點。這允許您通過通過唯一指定的群集名稱或IP地址連接到該集群,實際上無需知道哪一個群集節點當前在線。
創建一個橫向擴展文件服務器
如果您企業組織決定使用一款SMB 3.0文件服務器以訪問虛擬機的虛擬硬盤,這是通過需要在一臺文件服務器上運行的一個文件共享所提供的。如果該文件共享通往虛擬硬盤的路徑,如\ MyShareMyVM.vhdx ,變得不可用,那么虛擬機將無法訪問其磁盤,這將無法正常工作。因為這個原因,使得對于這個文件共享訪問的高度可用性是非常重要的。這也可以通過一個故障轉移群集來完成,雖然其應該在一個獨立的群集上完成,因為Hyper-V群集的硬件需要為虛擬化進行優化。
創建一個高可用的文件服務器是通過高可用性向導來完成的,其是隨故障轉移群集管理器而一起推出的。不過,如果節點托管的文件共享不可用并需要故障轉移的話,這種類型的文件服務器也可能造成暫時的虛擬機的停機中斷,因為文件共享會暫時離線。
在Windows Server 2012中,推出了一種新的群集文件服務器類型,被稱為橫向擴展的文件服務器(SOFS)。這使得文件共享路徑能夠跨多個節點通過利用群集共享卷(CSV)技術同步創建。這意味著,多個節點可以失敗,但只要托管文件路徑的一個節點保持在線狀態,那么虛擬機將能夠獲得對于其虛擬硬盤的持續訪問,并保持運行。橫向擴展的文件服務器不是必需的,但當為您企業集群的虛擬機提供最高水平的可用性時,建議使用。
圖4 - 創建一個橫向擴展文件服務器
部署一臺群集虛擬機
現在,既然您企業組織的故障轉移群集已經創建。那么,是時候部署高可用的虛擬機了。而通過故障轉移群集管理器,有幾種不同的方法來做到這一點,具體則取決于其是否是一臺新的或現有的虛擬機。
創建一臺集群虛擬機
在群集上創建一臺虛擬機與創建其他群集工作負載稍有不同,因為其不是使用高可用性向導,而是使用新的虛擬機向導,與Hyper-V管理器的工具相同。這提供了一個一致的體驗,無論是創建一個集群或是單獨的虛擬機,其中的主要不同點就在于:集群的虛擬機應存儲在每個群集節點都能訪問的共享存儲上。而在新建虛擬機向導完成后,一個次向導會把虛擬機添加到集群,自動啟動并完成,而不需要任何額外的信息。然后,虛擬機將以在線狀態出現在集群上,這樣您就可以在啟動虛擬機之前,進行其他額外的設置了。其采用了與Hyper-V管理器相同的屬性界面。您可以在一個集群上運行由Hyper-V支持的任何類型的客戶操作系統,而Windows Server、Windows和Linux客戶操作系統的一份最新列表則可以在這里找到。
圖5 - 創建一個高可用的虛擬機
添加一臺現有的虛擬機到一個群集
如果您企業想要使得一臺現有的虛擬機變得具有高可用性,其必須首先被遷移到其中一個集群節點。這可以通過一個實時遷移、一個導入/導出或從一個備份中恢復虛擬機來完成。一旦該虛擬機被托管到一個集群節點,其便可以通過高可用性的向導選擇虛擬機的資源類型來實現高可用性。而如果您企業使用了Veeam公司的Backup &Replication,您可以恢復虛擬機到該集群,并立即使其具有高度可用性。該虛擬機將由故障轉移群集管理器管理,并將在節點之間進行故障轉移。
從現有的群集上遷移一臺虛擬機
如果您在您企業的環境中已經有了群集的虛擬機,那么可以使用復制群集角色向導(Copy Cluster Roles Wizard )將它們遷移到新的集群,其是通過故障轉移群集管理器啟動的。在從您企業新的群集上啟動向導之后,您將指定源群集,然后從運行在其之上的虛擬機列表清單中選擇那些您想要遷移的虛擬機。您將被給予再次映射集群存儲和網絡路徑的選擇。而在完成遷移后,您可以在老集群上離線虛擬機,并在新的集群上讓新遷入的虛擬機在線。
創建一個客戶端的故障轉移群集
通過從虛擬服務器而不是物理服務器創建一個新的群集,為虛擬化的工作負載提供更高的可用性是可能的。這被稱為客戶端群集。這使得一款應用程序能夠在虛擬機上運行,如SQL Server,如果工作負載運行失敗其能夠通過其彈性具有高度可用性,虛擬機崩潰或客戶端操作系統需要更新或服務,通過遷移該工作負載到一個不同的虛擬群集節點。配置一個客戶端集群遵循與創建一個物理故障轉移群集相同的步驟,同時也有一些額外的注意事項:
工作負載——不是讓一臺虛擬機變得高度可用,您企業將群集一款不同的應用程序運行在虛擬機的客戶操作系統中。該工作負載可能需要特殊的配置。注意:在一臺虛擬機中運行一臺虛擬機(也稱為嵌套虛擬化)是不可能的。
存儲——存儲也必須為虛擬機所共享。所以,所有的虛擬集群節點可以訪問數據。該虛擬機只能連接到具有虛擬化的HBA的存儲或是基于以太網的存儲,因為他們無法連接到一個物理存儲適配器。Hyper-V提供了一個虛擬光纖通道HBA以使得虛擬機能夠連接到這種類型的存儲,但一個虛擬的串行SCSI(Serial-Attached SCSI,SAS)適配器在Hyper-V不可用。虛擬機也可以使用iSCSI、光纖以太網(FCoE)或SMB 3.0文件共享連接到存儲。
共享的VHDX——為了簡化一個客戶端群集的存儲管理,讓所有的群集節點均能夠訪問一個單一的在其之上具有多VHDX(虛擬硬盤)文件的LUN是可能的。每個磁盤都可作為共享存儲的功能,將存儲客戶端群集數據,如虛擬化的SQL Server的數據庫。
管理一個群集虛擬機
對于一個故障轉移群集,有許多的管理選項,而那些管理選項對于Hyper-V集群是非常重要的。
虛擬機組
每個群集工作負載都被組織到了其自己的群組,其中包含幾個相關資源和在不同的群集節點之間移動。一個虛擬機的群集組包含虛擬機,而該虛擬機的配置文件和磁盤在共享的存儲中(不是一個CSV就是傳統的群集磁盤)。當虛擬機遷移或故障轉移到一個不同的節點上時,配置文件和磁盤的所有權也轉移到該節點。
圖6 - 幾個群集虛擬機的管理
虛擬機啟動優先級
集群的虛擬機可以按照高、中、低或不自動啟動幾個級別來指定啟動優先級。這四種設置讓您組織可以將虛擬機組成幾個管理組。當某項操作需要被用于一個組的虛擬機時,虛擬機的優先級設置將被用于首先執行高優先級虛擬機的動作,隨后是中、低和不自動啟動的級別。一些操作所考慮的優先級包括在一個節點上啟動虛擬機,實時遷移的一組虛擬機,以及當進入維修模式時從一個節點消耗虛擬機。而如果您企業組織的群集崩潰,這可以讓您確保您的基礎設施或關鍵業務的虛擬機首先重啟,而不必與不重要的虛擬機爭奪資源。
一些管理人員還用虛擬機優先級設置將虛擬機安排進入不同的層次。例如,您可以為后臺數據庫虛擬機指定一個高優先級設置,這樣他們就可以最先啟動;隨后將是對中間層業務虛擬機的一個中等優先級設置;最后是對于前端Web虛擬機的一個低優先級設置,這樣他們將最后啟動,進而在讓客戶端能夠訪問系統之前,留出額外的時間讓后端服務上線。
不自動啟動的設置稍微有點不同。因為如果一臺虛擬機被指定了這一不自動啟動的級別,而一旦主機崩潰,就會使得涉及到關鍵業務的虛擬機首先上線。故而當您企業為一臺虛擬機制定了不自動啟動的級別時務必要格外小心,因為其必需由群集管理員人工手動啟動。
圖7 - 一臺虛擬機的啟動優先級配置
在主機上安置虛擬機
Windows Server故障轉移群集不需要為每臺主機配置相同的硬件,只要整個解決方案在任何群集驗證測試中沒有故障失敗。由于某些主機較之其他主機可能會更強大,或對于存儲有不同的訪問速度,您可能希望某些虛擬機在特定的主機上運行。
首選所有者(Preferred Owner)設置允許您企業指定您傾向于讓虛擬機在哪個群集節點上來運行。如果有任何首選所有者節點在線,虛擬機將被托管在那里。而如果沒有任何一個首選所有者的節點處于聯機狀態,那么虛擬機將遷移到另一臺活躍的主機。該虛擬機可以在任何群集節點上運行,并提供更多的故障轉移選項,因為在默認情況下,沒有一個節點是首選所有者。
圖8 - 為一個群集虛擬機配置首選所有者
可能的所有者(The Possible Owner)設置指定是否允許虛擬機在所有節點上運行。如果可能的所有者節點均不可用,虛擬機將保持在離線狀態,等待一個可能的所有者節點回歸在線。默認情況下,所有的群集節點都是可能的所有者,這意味著虛擬機可以運行在任何群集節點上,以獲得高可用性。
使用PowerShell或系統中心虛擬機管理器,您企業可以將虛擬機指定為一個可用集合的一部分。在這個集合組中的所有虛擬機會故意嘗試跨不同的主機來自行分配,以便提供更高的可用性。而如果您企業有兩臺或更多的虛擬域控制器,您可以將這些虛擬機納入一個可用集合,以便使得并非所有的虛擬機都運行在同一主機上,因為這將創建一個單點故障。除了使用這個方法以按角色作用來群組虛擬機之外,另一個常見的案例是把來自相同客戶端虛擬)集群的所有節點放入一個可用集合。這種方法跨不同物理節點分配客戶端群集節點,并確保一個物理節點的故障不會影響到整個客戶端群集。使用PowerShell,這種方法配置了反類名屬性。關于這個話題的更多信息,請訪問這篇博客。
您企業應該進行評估的另一個主機配置設置是故障恢復,其將決定一旦其從崩潰之后恢復聯機,您企業是否想要虛擬機返回到該主機或保持在其位置。即使虛擬機正在使用實時遷移以消除停機時間,打開故障恢復會增加額外的實時遷移網絡流量,所以默認情況下禁用。
虛擬機離線設置
群集節點偶爾會因意外停機或計劃內檢修時的停電而離線。當預計會發生停電時,建議將虛擬機實時遷移到一臺不同的主機上,這樣就不會發生停機中斷。而當主機上發生計劃外故障時,如停電或藍屏,虛擬機將被關閉并在一個不同的群集節點上重啟,或者在同一個節點上也是可能的,這取決于主機的位置設置。還需要考慮虛擬機的優先級是否已經設置為不自動啟動,因為如果主機崩潰虛擬機將需要人工手動重新啟動。
當您在策略標簽下查看虛擬機的性能時,您會看到當其運行失敗時重新啟動虛擬機的幾個設置。一般情況下,您將要立即重新啟動虛擬機,但,如果您想要審查該問題,或者相關服務需要被首先重新啟動的話,您也可能想要添加一個延遲。
在設置選項標簽中,當群集在線聯機占有資源時,您將能夠控制一臺
虛擬機是如何關閉。默認情況下,其使用保存選項提交虛擬機的運行內存到磁盤。您同時也有關閉、(強制)關閉和關機的選項,其要么正常關閉虛擬機,要么立即將其關機。
虛擬機監控
聚類任何應用程序的一大優勢就是該集群將通過一個被稱為“心跳”的機制,定期檢查并重新啟動一個工作負載。如果該“心跳”已經停止,則說明該工作負載已經掛掉或崩潰。
群集Hyper-V虛擬機使用“心跳”,以確保虛擬機正在運行額外的健康狀況檢查,以判定客戶端操作系統未掛掉或凍結,即使虛擬機的狀況看起來是健康的。在Windows Server 2012 R2,這兩個設置默認打開的。但是,在早期版本中,他們必須通過編輯群集虛擬機的性能來配置。
圖9 - 一臺群集虛擬機的在線聯機操作和“心跳”設置配置
如果您有訪問運行Windows 8、Windows Server 2012或更高版本的虛擬機客戶端操作系統的權限,那么,還有一個額外的設置,您可以配置,以便允許您從集群節點上監控任何客戶端操作系統上的Windows服務。這使得您可以為這個錯誤的服務嘗試先進的回收行動,否則可能永遠無法檢測到。這些補救措施包括重新啟動服務,重啟虛擬機,或將虛擬機遷移到另一臺不同的主機。針對虛擬機監控的配置需要同時在主機和虛擬機上完成,而相關的步驟文檔您可以從這篇博客中找到。
節點健康狀況檢查
一旦您企業的虛擬機已經部署,那么,在生產條件下來測試他們將如何發揮功用是非常重要的,特別是如果您企業的網絡有帶寬限制的話。群集使用一個簡單的“請求-反應”機制,以便跨集群節點執行健康檢查。速度慢的網絡可能會影響其可靠性,這些設置都是可配置的,并且是讓Hyper-V集群與其他類型的集群不同的,其他類型的集群每隔5秒發送健康狀況檢查;而在一個Hyper-V集群,健康狀況檢查每隔10秒在相同的子網的節點上出現,每隔20秒在不同的子網的節點上出現。每一分鐘,一個更徹底的健康狀況檢查將被發送出。如果某個節點不能對幾次連續的健康狀況檢查請求作出響應的話,那么,其將被認為已經失敗,這可能是由于網絡流量造成的,而即使該節點的狀況是健康的。
默認設置應該適用于絕大多數的集群,但是,基于帶寬、網絡數量、節點和網絡流量之間的距離等因素,在生產條件下的測試和根據需要進行的健康狀況的調整檢查很重要的。
圖10 - 集群節點的健康狀況檢查配置
節點維護
如果您企業需要為一個集群模式做計劃性的維護,那么,有一套簡單的以一個步驟就能實時遷移所有的虛擬機的方法。選擇一個節點,將其暫停,并作出是否排出角色作用(Drain Roles)的選擇。當您暫停一個節點時,會將該節點納入維護,這意味著沒有虛擬機將故障轉移到該節點。如果您選擇排出角色作用,集群會根據它們的優先級,將虛擬機實時遷移到其他群集節點。為了從維護刪除一個節點,您可以選擇節點并恢復它,您可以選擇是否讓失敗的角色作用回來,其將實時遷移回該節點之前托管的所有虛擬機。
還有一個群集范圍內的屬性:DrainOnShutdown,其在默認情況下是啟用的。當一位管理員關閉一臺Hyper-V主機時,該關閉將被延遲,而與此同時虛擬機將實時遷移到其他節點,從高優先級的虛擬機開始。如果一位管理員試圖關閉群集節點,但并沒有意識到在其之上有虛擬機運行的話,這能夠防止停機中斷。
圖11 - 一個節點置入維護模式
群集感知更新
為了您企業的軟件和硬件保持虛擬機的補丁更新是相當重要的。Windows Server 2012推出了一項被稱為群集感知更新(Cluster Aware Updating,CAU)的功能,可以在物理和客戶端(虛擬)集群上都自動重復集群修補進程。CAU可以在本地或遠程運行,以集中管理集群修補。其連接到一個Windows Server Update Services server 或Windows Update。更新工作流程的步驟如下:
1、管理員創建一個更新的集合,被稱為集群的基線。
2、CAU每個節點上基于基線進行更新比較,并確定哪些節點需要更新哪些補丁。
3、CAU選擇工作負載最少的節點,以盡量減少中斷,然后將其暫停,并把它置于維護,然后將虛擬機實時遷移到其他節點。
4、在所有虛擬機已經從節點上遷出后,下載更新并應用于節點并將其重新啟動(如果需要的話)。
5、在節點重啟并聯機在線后,CAU將驗證補丁是否安裝成功和群集節點運行是否正常。
6、CAU將恢復節點,并將其從維修中取出,并允許其再次托管新的虛擬機。注:CAU在集群中對所有節點重復這個過程。
如果CAU遇到一個錯誤,其將暫停修補周期,并提醒管理員。這是為了確保一個故障更新不會被應用到集群中的每個節點。CAU也有一個自我更新模式,允許其運行在其所修補的同一集群上。這使得更新服務本身能夠隨著他們的重新啟動移動到不同的集群節點,從而消除了專門修補基礎設施的需要。
群集虛擬機安全
確保虛擬化環境不受病毒,惡意軟件和其他安全威脅的攻擊的方法與通常是靜態的服務器硬件的傳統數據中心不同的。在虛擬環境中,很容易通過端點保護在每臺服務器上安裝和管理代理。虛擬化環境的安全管理與傳統數據中心的安全管理存在不同之處的原因在于:虛擬機、磁盤和網絡可以是動態的和不斷變化的。通常,在每臺虛擬機中安裝安全代理是不切實際的。5nine Cloud Security產品為Hyper-V提供了唯一的無代理防病毒、防火墻和入侵檢測的解決方案。這個安全軟件通過到虛擬交換機的一個擴展,過濾進出虛擬機的流量。這意味著安全是集中管理的,而虛擬機用戶從不擔心更新或掃描客戶操作系統,無論其是運行Windows Server、Windows或Linux系統。了解更多關于5nine Cloud Security產品的信息。
群集虛擬機復制
在Windows Server 2012中,為Hyper-V推出了一項新的功能,其通過將虛擬硬盤復制到一處不同的數據中心,甚至復制到微軟的Azure,為Hyper-V提供了虛擬機災難恢復。這項Hyper-V復制功能需要任何托管或接收一臺復制虛擬機的服務器或群集啟用。每臺虛擬機都可以單獨為復制配置及測試,然后每隔30秒,5分鐘或15分鐘異步發送復制數據。
在故障轉移群集上的Hyper-V復制配置是不同的,其通過創建一個新的集群負載,從稱為Hyper-V Replica Broker。這是一個高度可用,復制服務的版本,這意味著復制引擎將群集節點之間故障轉移,以確保復制總會發生。
注意:如果您企業是在一個集群上配置復制,一定要將虛擬硬盤存儲在共享存儲上,而不是本地磁盤。
為一個集群設計一套災難恢復計劃應基于:工作負載、數據中心之間的距離和其他網絡因素。本文中將介紹用于一個故障轉移群集的不同的設計方案選項。
圖12 - Hyper-V Replica Broker的創建
集群虛擬機備份
一旦您企業的群集虛擬機運行,為虛擬機的配置文件和虛擬硬盤配置自動定期備份,以及定期測試恢復是相當重要的。Veeam公司的Backup &Replication產品支持所有類型的Hyper-V集群技術備份。無論是使用群集共享卷(Clustered Shared Volumes,CSV)或SMB 3.0共享,Veeam產品均可以輕松的保護這些Hyper-V虛擬機。另外,如果使用的是系統中心虛擬機管理器,將支持備份和復制工作。
注意:對于Veeam Backup &Replication產品,系統中心虛擬機管理器不是必須的。
虛擬機移動性
服務器虛擬化的一個主要的好處便是易于在不同的Hyper-V主機之間遷移虛擬機,而很少或沒有停機時間。而如果您企業想在遷移虛擬機的同時,保持服務可用性,那么內存必須在主機之間復制,而且在遷移期間,他們必須保持在線,這是要記住的重要一點?;谶@一原因,如果一臺主機有一個意外的故障失敗發生,會出現停機中斷。因為一旦健康狀況檢查檢測到故障失敗,虛擬機將暫時離線并在另一個節點重啟。
圖13 - 一臺虛擬機遷移至另一節點
快速遷移
一臺虛擬機遷移到另一不同群集節點的最快的方式是通過一個快速遷移,從而為磁盤節省了虛擬機的運行內存狀態,重新啟動虛擬機并加載存儲到一個新的節點以重新在一臺新的主機上創建虛擬機的運行。此方法將導致虛擬機的停機中斷,因此其并不常用。除非如果您需要以最快的速度將所有的虛擬機從一臺主機遷移。
當執行一次快速遷移時,您企業可以選擇特定的節點遷移虛擬機,或者您也可以選擇最佳的節點。此選項將以最大量的可用內存把虛擬機遷移到該節點。因為這通常是主機資源的最重要的限制,故而簡化了管理。
實時遷移
大多數時候,您企業將執行實時遷移,以便將一臺虛擬機遷移到其他節點或集群外的Hyper-V主機。而為了執行一次實時遷移,原始和新的主機都必須處于聯機狀態,他們應該通過實時遷移網絡發送數據。一次實時遷移遞歸地在主機和看上去就像是一個虛擬機克隆的結果之間復制虛擬機內存,但卻是在新的主機上。一旦所有虛擬機都具有了一致的內存,群集將更新網絡路由表,以便新傳入的網絡數據包重定向到新的虛擬機。最后,舊的虛擬機被破壞,因此在舊主機上使用的內存可以回收。一次實時遷移可以在群集節點、獨立的Hyper-V主機、或任意節點和主機的組合之間進行。
選擇多臺虛擬機,并在故障轉移群集管理器中同時將它們進行實時遷移是可能的,而虛擬機將需要排隊,遷移將基于優先級。您企業也可以為每臺主機配置一個允許同時實時遷移的最大數量,通常在4到8之間,這取決于您企業的網絡帶寬和工作負載。如果您選擇的值太大,您可以實際降低總的實時遷移的速度,因為處理器將花費太多的循環管理遞歸遷移過程。
Windows Server 2012 R2通過在將數據發送到網絡之前,對數據進行壓縮,使得實時遷移變得更快。然后,當數據被新的群集節點收到時解壓縮。默認情況下,此功能是啟用的,因為當較少的網絡流量必須在主機之間發送時,傳輸速度通常會快幾倍。而一些更新的網絡則支持被稱為遠程直接數據存取(Remote Direct Memory Access ,RMDA )的技術,其允許更快的數據傳輸速度,使得實時遷移的速度比標準的遷移速度快10倍。
存儲遷移
Hyper-V還支持遷移一臺虛擬機的虛擬磁盤的存儲位置,而不會造成虛擬機運行的停機中斷。在一個類似于實時遷移的過程中,Hyper-V將虛擬硬盤上的數據復制到另一個位置,然后重新定向未來的IO到新創建的磁盤。使用存儲遷移,您可以通過排出存儲陣列執行SAN維修,而不會讓您的虛擬機離線。
有可能存在您需要在同一時間對正在運行的虛擬機及其虛擬硬盤都進行遷移的情況。使用一個無共享遷移(shared nothing migration),無論是虛擬機或是其磁盤都將被復制到新主機作為一個單一的操作,而不會發生虛擬機停機。這使您企業可以在一個集群和一臺獨立主機之間,甚至兩臺獨立主機之間遷移虛擬機,只有本地存儲。
實時遷移和存儲遷移可以通過Hyper-V管理器調整Hyper-V的設置來啟用和配置。
圖14 - 同步實時遷移的配置
結論
Windows Server故障轉移群集應該是您企業數據中心的高可用性計劃的一個關鍵組成部分,因為其提供了持續的服務可用性。在本文中,我們為您提供了優化您企業群集虛擬機的最佳時間方案。您同時也了解了虛擬化堆棧只是您數據中心的一部分,而在整個數據中心消除任何單點失敗是非常重要的。
其他務必要記住關鍵的貼士包括:
確保您企業的硬件冗余和容錯。
制定一套災難恢復計劃,以便能夠在另一處數據中心或Microsoft Azure上運行您的服務。
所有的管理和監控系統都需要高度可用性,并盡可能自動化,以減少人工干預以檢測和解決任何問題的次數。
請務必記住,微軟公司的System Center 2012 R2管理套件通過與Hyper-V和故障轉移群集的全面的集成整合提供集中的虛擬化和云計算管理。*系統中心通過虛擬機管理器提供集群管理;而通過操作管理器提供集群監控;通過Orchestrator協調器(虛擬機管理器)提供自動化;通過數據保護管理器提供備份;通過Azure Pack提供集群虛擬機自助服務。
*關于System Center與Windows Server故障轉移群集集成整合的更多信息,請訪問這里。
索引
Channel 9: Hyper-V的高可用性和故障轉移群集的最佳實踐方案:https://channel9.msdn.com/events/teched/europe/2014/cdp-b335
集群團隊博客:http://blogs.msdn.com/b/clustering/
微軟虛擬學院:在Windows Server 2012 R2中的故障轉移群集:https://www.microsoftvirtualacademy.com/en-us/training-courses/failover-clustering-in-windows - server-2012-r2-8489
TechNet故障轉移群集:https://technet.microsoft.com/en-us/library/hh831579.aspx
TechNet Hyper-V:https://technet.microsoft.com/en-us/library/mt169373.aspx
虛擬實驗室:Windows Server 2012 R2:故障轉移群集介紹:http://go.microsoft.com/?linkid=9846211
關于作者
本文作者西蒙·佩里曼是5nine Software公司的業務發展和市場營銷副總裁。此前他曾經是微軟的高級技術專家,覆蓋虛擬化(Hyper-V)、基礎設施(Windows Server)、管理 (System Center) 和云服務 (Microsoft Azure) 等諸多領域的全球技術領導。作為微軟最廣為人們所熟悉的面孔之一,西蒙曾先后培養了數以百萬計的IT專業人士,擁有多項專利和行業認證。他在2013年與人合著了《Introduction to System Center 2012 R2 for IT Professionals 》一書。(微軟出版社)
關于Veeam軟件公司
Veeam公司充分認識到當今世界各地的企業組織所面臨的必須保持其業務24 / 7全天候正常運行的新的挑戰。而為了解決這個問題,Veeam公司已率先開辟了現代數據中心可用性這一新興市場,以幫助企業用戶在15分鐘內滿足其所有應用程序和數據的恢復時間目標和點目標(RTPOTM)。通過一種全新的解決方案,其能夠提供高速的恢復,避免數據損失,驗證保護,并利用數據和完整的可視化。Veeam公司的可用性套件,包括了Veeam Backup &Replication,利用虛擬化、存儲和云計算技術,使得企業組織能夠利用現代數據中心來節省時間,降低風險,并大幅降低資本和運營成本。
Veeam公司成立于2006年,目前在全球擁有30500家專業的合作伙伴和超過145500家客戶。Veeam公司的全球總部位于瑞士巴爾,公司辦事處遍布世界各地。