轉載:http://dufei.blog.51cto.com/382644/902026
今天有客戶問起Windows 群集的相關內容,畢竟Windows Server2008所支持的群集技術和Windows Server2003還是有點不同的,就收集了以下知識供參考。以下內容均來自互聯網。
Windows Server 2008提供兩種群集技術:故障轉移群集和網絡負責平衡群集。故障轉移群集主要提供高可用性;網絡負載平衡群集主要提供可伸縮性,在實現可伸縮性的同時,提高基於WEB服務的可用性。有的資料上說還有一種支持高性能計算的組件負載平衡群集。
在應用中到底是選擇故障轉移群集還是網絡負載平衡群集,主要取決於所運行的應用程序是否具有長期運行的內存中狀態:
故障轉移群集是針對具有長期運行在內存中的狀態或具有大型的、頻繁更新的數據狀態的應用程序而設計。這些應用程序稱為狀態應用程序,並且它們包括數據庫應用程序和消息應用程序。故障轉移群集的典型使用包括文件服務器、打印服務器、數據庫服務器和消息服務器。
網絡負載平衡適用於沒有長期運行在內存中的狀態的應用程序。這些應用程序為無狀態應用程序。無狀態應用程序將每個客戶端請求視為獨立的操作,因此它可以獨立地對每個請求進行負載平衡。無狀態應用程序通常具有只讀數據或不常更改的數據。前端Web服務器、FTP服務器以及代理服務器通常使用網絡負載平衡。NLB還可以支持其他基於TCP或UDP的服務和應用程序。
我們今天主要介紹故障轉移群集的配置。
故障轉移群集可以配置使用多種不同的配置。組成群集的服務器可以是活躍狀態或不活躍狀態,而不同服務器可以被配置為在活躍服務器故障后立刻接管相應的資源。一般故障轉移的過程只需要幾分鍾的時間,至於時間的長短主要取決於群集的配置和具體應用,當節點處於活躍狀態時,該節點上可以使用所有資源。當服務器故障后,在這台服務器上配置了故障轉移群集的資源組就會被其他服務器所接管。當故障服務器重新上線后,群集服務可以配置為允許讓原服務器進行故障回復,或者是讓當前服務器繼續處理新的客戶端請求。
Windows Server 2008
支持三種基本類型的故障轉移群集: 單節點群集、單仲裁多節點群集、過半數節點群集。
單節點群集:
單節點群集並不能用來實現故障轉移,一般用來實現更為簡單的共享資源和網絡存儲管理。主要優勢是,在故障或停止響應時監控和自動重啟應用和依存的資源。單節點群集可用作文件、打印或WEB共享,而這種群集主要考慮的是讓和戶更方便的訪問相應的資源,而不需要提供其他復雜的功能。這種實際應用的應該比較少。
多節點群集:
一般使用較多的是多節點群集:多節點群集模式包括“活躍、活躍”和“活躍、非活躍”方式。在“活躍、非活躍”方式中,有一台或多台服務器是活躍的,可處理客戶端的請求,另外一些服務器是空閑的。在“活躍、活躍”方式中,所有的節點都是活躍的,都可以處理客戶端的請求,其中一個活躍節點發生故障,其他節點會接管此節點的工作,直到此節點恢復正常。
在多節點的群集配置中會存在一台仲裁設備,所有節點共享群集配置信息數據都存儲在仲裁設備的存儲設備上。
過半數節點群集:
還有一種故障轉移群集類型是過半數節點數,在此類型中,節點可以不需要連接到共享的存儲設備上,每個節點可以有自己的存儲設備。群集配置數據可以保存在群集內的多個磁盤上,這樣每個節點就可以有自己的仲裁設備。
過半數節點群集配置通常用於分散在不同位置的服務呂上。最主要的是,這是因為每個節點可以有自己的存儲設備,以及群集配置數據的本地副本。
故障轉移群集資源:
資源是群集實現故障轉移的基礎,互相之間有有關系的或者是互相依賴的資源可以被看作是資源組,所有位於同一個組中的資源也必須位於同一個節點上。如果其中某個服務故障了,則所有服務都有可能出錯。
在將應用添加為高可用性資源之間,需要判斷該應用是否可以在群集環境內運行。而能夠在群集環境中運行,並且支持群集事件的能力叫群集感知。群集感知應用可以在故障轉移群集中注冊,以獲得狀態和通知信息,例如:DFS、DHCP、exchange服務器、文件服務器、internet存儲名稱服務器、MSDTC、SQL服務器等。不支持群集事件的應用叫做群集不感知,有些群集不感知應用程序也可以配置為高可用性資源,並實現故障轉移。
硬件需求:
硬件的配置應該被調節以能夠最大化實現總體吞吐量,並為有高要求的應用和服務進行性能優化。不同服務器具有不同的優化需求,例如處理靜態HTML頁面的Web服務器可能需要更快的硬盤和更多的內存,以將頁面緩存的內存中,但通常並不需要高速度的CPU。而典型的數據庫服務器則可能需要高端CPU、快速的硬盤,以及更多的內存。
管理員應該仔細對群集節點中的每台服務器進行優化。在進行優化時,能夠獲得最大收益的關鍵內容則是分頁文件。有關分頁文件的重要規則如下:
為了防范過量,分頁文件的大小應該是固定的,同時不應該位於共享的群集存儲設備上。分頁文件的大小都應該根據硬件設備制造商的建議設置。如果有多個本地硬盤,請考慮將分頁文件放在獨立硬盤上以提升性能。
同時還需要注意,同一群集中的服務器必須運行同樣的硬件架構版本的Windows Servers 2008操作系統,例如應該都使用x64或Itanium版本。群集中的服務器必須是同一個Active Directory域的成員,並且需要使用DNS進行名稱解析。
群集對象:
群集服務負責管理故障轉移群集的所有功能,這中間包括群集中要用到的物理以及邏輯單元和對象。
群集對象包含屬性,可定義對象在群集內的行為。群集API中包含了通過群集服務管理對象所需要的控制代碼和管理功能,群集中的每個節點都需要運行群集服務Lussvc.exe、群集網絡驅動clusnet.sys以及群集磁盤驅動clusdisk.sys的實例。
群集服務器通過專用網絡適配器和其他節點傳輸檢測信號,也就是說每個節點網絡驅動會定期在節點間發送UDP數據包來檢測網絡及路由狀態,如果某個節點沒有響應,則說明出現問題,群集網絡驅動就會通知群集服務,進行故障轉移。
每個節點的群集磁盤驅動主要用來負責維護共享磁盤的獨占所有權。只有擁有物理磁盤資源的節點才可以訪問磁盤,所有其他節點都無法訪問磁盤資源。
群集數據庫:
群集正常工作中,傳輸的信息除了檢測信號之外還需要傳遞管理數據,而這些數據基本保存在群集數據庫中,這個數據庫中包含了群集的配置和資源的使用信息,這些信息稱為群集對象,群集服務會定期維護這些信息。
群集仲裁資源:
仲裁資源主要用於負責維護恢復日志,會將群集加的所有變動寫入到恢復日志中,以確保群集的配置和狀態中以被恢復。仲裁資源一般在發生故障的時候發揮作用。群集完整功能取決於仲裁,配置群集的時候,群集服務會自動為群集設置必要的仲裁設置,而仲裁設置決定了群集可以承受的故障的最大數量。如果在該數量外發生了額外的故障。群集就會停止工作。例如:如果有四個節點的群集,如果有兩個節點發生故障,達到了半數,則無法繼續運行,但如果是五個節點,有兩個發生故障,還可以故障轉移,繼續工作。
群集接口和網絡狀態:
群集節點間為了判斷對方是否發生故障,群集服務會監控專用網絡的適配器接口以及群集網絡的狀態。
用戶可以使用Cluster netinterface或故障轉移群集管理工具查看網絡接口的當前狀態。一般狀態如下:
Up: 正常的工作狀態,可以和網絡上的其他接口通訊。
Unknown:目前無法判斷其狀態。
Unavailable:接口被禁止用於群集,或連接節點的網絡接口故障。
Unreachable:節點無法通過該接口通訊。
Failed: 關聯給該接口的節點是活躍的,但無法通過該接口通訊。
用戶還可以使用cluster network命令或工具查看網絡的狀態。
Up: 正常的工作狀態。
Unknown:目前無法判斷其狀態。
Unavailable: 網絡被禁止用於群集,或連接到該網絡的所有節點都不活躍。
Partitioned: 網絡功能故障,有些活躍群集無法通過網絡通訊。
Down:網絡出現故障,所有活躍群集都無法通過網絡通訊。
如果某個網絡接口為failed狀態,群集服務會對使用該網絡接口的所有IP地址資源發起故障轉移。但如果網絡接口的狀態是unreachable,群集服務則不會進行轉移,如果接口狀態是unavailable,則群集服務會認為節點down了。
通常群集網絡都應該是Up狀態,在這種狀態下,群集網絡的工作完全正常,所有活躍群集都可以通訊。如果網絡變為Partitioned狀態,這意味着一個或多個節點的通訊有問題,或者最近故障了。Down狀態代表了當前網絡已經故障,無法正常工作。在Down狀態下,群集之間無法通過網絡通訊。