Windows Server 2003 服務器群集_第1頁
Windows Server 2003 服務器群集_第2頁
Windows Server 2003 服務器群集_第3頁
Windows Server 2003 服務器群集_第4頁
Windows Server 2003 服務器群集_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、microsoft windows server 2003 technical articlewindows server 2003 服務器群集:架構概述microsoft corporation發(fā)布日期: 2003 年 3 月摘要服務器群集是 microsoft windows 服務器產品家族提供的兩種 microsoft windows 群集技術中的一種。windows server 2003 為那些要求高可用性和數(shù)據(jù)完整性的后端應用和服務提供了故障轉移支持。這些后端應用包括數(shù)據(jù)庫、文件服務器、企業(yè)資源計劃 (erp) 以及消息系統(tǒng)等企業(yè)應用。本白皮書立足于這種群集服務的架構和功能,介紹了

2、其術語、概念、設計目標、關鍵組件和預定的發(fā)展方向。本文檔所包含的信息代表了在發(fā)布之日,microsoft corporation 對所討論問題的當前看法。因為 microsoft 必須順應不斷變化的市場條件,故該文檔不應理解為 microsoft 一方的承諾,microsoft 不保證所給信息在發(fā)布之日以后的準確性。本文檔僅供參考。對本文檔中的信息,microsoft 不做任何明示、默示或法定的保證。遵守所有適用的版權法律是用戶的責任。在不對版權法所規(guī)定的權利加以限制的情況下,如未得到 microsoft corporation明確的書面許可,不得為任何目的、以任何形式或手段(電子的、機械的、

3、影印、錄制等等)復制、傳播本文的任何部分,也不得將其存儲或引入到檢索系統(tǒng)中。microsoft 可能擁有本文檔主題涉及到的專利、專利申請、商標、版權或其他知識產權。除非在 microsoft 的任何書面許可協(xié)議中明確表述,否則獲得本文檔不代表您將同時獲得這些專利、商標、版權或其它知識產權的許可證。 2003 microsoft corporation. 保留所有權利。microsoft、windows、windows徽標和windows nt是 microsoft corporation在美國和/或其它國家或地區(qū)的注冊商標或商標。此處提到的實際公司和產品名稱可能是其各自所有者的商標。目錄目錄i

4、ii簡介4發(fā)展背景4群集術語6服務器群集6虛擬服務器8資源組9服務器群集架構11群集服務組件11節(jié)點管理器12數(shù)據(jù)庫管理器12檢查點管理器13日志管理器13故障轉移管理器13故障轉移14故障恢復14全局更新管理器14備份/恢復管理器15事件日志復制管理器15成員身份管理器15非群集服務組件15資源監(jiān)視器15事件服務16群集仲裁18標準仲裁18多數(shù)節(jié)點集仲裁19群集資源20群集管理22群集的形成和操作23創(chuàng)建群集23形成群集23加入群集24脫離群集24故障檢測25檢測節(jié)點故障25檢測資源故障25未來方向26詳細信息27書籍27相關鏈接270server clusters :服務器群集0 arch

5、itecture overviewiii microsoft windows server 2003 技術文章簡介服務器群集功能最早是為 microsoft windows nt server 4.0 操作系統(tǒng)設計的,這一功能在 microsoft windows server 2003 enterprise edition 和 windows server 2003 datacenter edition 操作系統(tǒng)中又得到重大改進。您可以借助服務器群集功能將多臺服務器連接在一起,從而為在該群集中運行的數(shù)據(jù)和程序提供高可用性和易管理性。服務器群集提供了以下三種主要的群集技術優(yōu)點: 更高的可用性。

6、允許服務器群集中的服務和應用在硬件或軟件組件故障下或在計劃維護期間仍能不間斷地提供服務。 更高的可擴展性。支持通過增加多個處理器(在 windows server 2003 enterprise edition 中最多可達 8 個,在 windows server 2003 datacenter edition 中最多可達 32 個)和額外內存(在企業(yè)版中,隨機存取內存 ram 最多可達 8 gb,在 windows server 2003 datacenter edition 中最多可達 64 gb)來擴展服務器。 更高的可管理性。允許管理員如同管理單臺計算機那樣管理整個群集內的設備和資源。

7、該群集服務是兩種互為補充的 windows 群集技術(為了擴展 windows server 2003 和 windows 2000 基礎操作系統(tǒng)而提供的)中的一種。另一個群集技術是網(wǎng)絡負載均衡(network load balancing,nlb)。該技術作為服務器群集的互補,可面向前端應用和服務(如 internet 或 intranet 站點、基于 web 的應用、媒體流以及 microsoft 終端服務)來支持高度可用和可伸縮的群集。本白皮書僅立足于服務器群集的架構和功能,介紹了服務器群集的術語、概念、設計目標、關鍵組件和預定的發(fā)展方向。本白皮書結尾處的“詳細信息”小節(jié)提供了一個參考列

8、表,您可以通過這些資源了解服務器群集和 nlb 技術的詳細信息。發(fā)展背景計算機群集的出現(xiàn)和使用已經有十幾年的歷史。作為最早的群集技術設計師之一,g. pfister 對群集的定義是,“一種并行或分布式的系統(tǒng),由全面互連的計算機集合組成,可作為一個統(tǒng)一的計算資源使用”。將數(shù)臺服務器計算機組合成一個統(tǒng)一的群集,多臺服務器將可以在用戶或管理員不必了解細節(jié)的情況下分擔計算負載。例如,如果服務器群集中的任何資源發(fā)生了故障,則不論發(fā)生故障的組件是硬件還是軟件資源,作為一個整體的群集都可以使用群集中其它服務器上的資源來繼續(xù)向用戶提供服務。換言之,當資源發(fā)生故障時,同服務器群集連接的用戶可能經歷短暫的性能下降

9、現(xiàn)象,但不會完全失去對服務的訪問能力。當需要更高的處理能力時,管理員可以通過滾動升級過程來添加新資源。該過程中,群集在整體上將保持聯(lián)機狀態(tài),它不僅可供用戶使用,而且在升級后,其性能也將得到改善。windows server 2003 enterprise edition 和 windows server 2003 datacenter edition 操作系統(tǒng)是完全針對用戶和業(yè)務對群集技術的要求而設計開發(fā)的。主要目標是:開發(fā)一種能滿足大多數(shù)商業(yè)機構和組織的群集需求的操作系統(tǒng)服務,而不是僅針對小型和特定的市場段。microsoft 市場調查顯示,隨著中小型商業(yè)機構的日常運作已越來越離不開數(shù)據(jù)庫和

10、電子郵件,因此它們對高可用系統(tǒng)的需求很大,而且這種需求日趨旺盛。易于安裝和管理,被認為是這種規(guī)模的機構最關鍵的要求。microsoft 的調查同時顯示,那些對高性能和高可用性具有很高要求的大企業(yè)對基于 windows 的服務器也日益感興趣。作為 windows nt、windows 2000 和 windows server 2003 基礎操作系統(tǒng)的集成化擴展而開發(fā)的服務器群集服務,正是源于此次市場調查。該服務同其設計目標保持了一致,通過它可將多臺服務器和數(shù)據(jù)存儲組件連接成一個易于管理的單元,即服務器群集。對于大型和小型企業(yè)中運行基于 windows server 2003 和 windows

11、 2000 的應用程序的系統(tǒng),服務器群集功能將可以賦予它們高可用性和易管理性。服務器群集功能還提供了開發(fā)可利用服務器群集的高可用功能并且具有群集意識的新應用程序所必需的應用程序接口和工具。群集術語“服務器群集”是 windows server 2003 中群集技術的名稱,microsoft 最初在 windows nt server 4.0 enterprise edition 中提供該技術時使用的是“microsoft 群集服務器” (mscs)。當談到構成一個群集的服務器時,各個服務器計算機都被稱為節(jié)點。群集服務 是指在各個節(jié)點上執(zhí)行群集操作的組件所構成的集合,而資源 是指在群集內由群集服

12、務管理的硬件和軟件組件。服務器群集為實現(xiàn)資源管理而提供的規(guī)范機制是資源動態(tài)鏈接庫 (dll)。資源 dll 定義了資源抽象方法、通訊接口以及管理操作。當資源可供使用并且可以向群集提供其服務時,我們說它是聯(lián)機 的。資源是符合以下條件的物理或邏輯實體: 可以聯(lián)機(服務)和脫機(停止服務)。 可以在服務器群集中管理。 一次只能由一個節(jié)點擁有。群集資源包括磁盤驅動器和網(wǎng)卡等物理硬件設備以及 internet 協(xié)議 (ip) 地址、應用程序、應用數(shù)據(jù)庫等邏輯實體。群集中的每個節(jié)點都有自己的本地資源。但群集也有共用資源,比如共用的數(shù)據(jù)存儲陣列和專用的群集網(wǎng)絡。群集中的每個節(jié)點都可以訪問這些共用資源。一個特

13、殊的共用資源是仲裁資源,這是指共用的群集磁盤陣列中對群集運行有著關鍵性作用的物理磁盤。它是節(jié)點操作(比如構成群集或加入群集)得以發(fā)生所必須具備的。資源組 是指群集服務作為一個邏輯單元進行管理的資源集合。通過將邏輯上相關的資源分成資源組,可以非常容易地管理應用資源和群集實體。對資源組執(zhí)行群集服務操作時,操作對于該組內包含的各個資源都有效。通常來說,創(chuàng)建資源組的目的是為了將特定應用程序服務器和客戶端正常使用該應用程序而所需的全部元素都包括在一起。服務器群集服務器群集基于無共享的群集架構模型。這種模型涉及群集的服務器如何管理和使用本地以及共用的群集設備和資源。在無共享的群集中,每個服務器都擁有和管理

14、自己的本地設備。對于群集共用的設備,比如共用的磁盤陣列和連接介質,在任何給定時間,只能由一個服務器選擇性地擁有和管理。在這種無共享的模型下,可以更為輕松地管理磁盤設備和標準應用程序。這種模型不需要任何專門的布線或應用程序即可讓服務器群集支持基于 windows server 2003 和 windows 2000 的標準應用程序和磁盤資源。對于本地存儲設備和介質連接,服務器群集使用標準的 windows server 2003 和 windows2000 server 驅動程序。對于群集內的所有服務器都需要訪問的外部共用設備,服務器群集支持多個連接介質。群集共用的外部存儲設備需要有小型計算機系

15、統(tǒng)接口 (scsi) 設備,并且支持標準的 pci scsi 連接以及位于光纖通道和 scsi 總線上、帶有多個始發(fā)端的 scsi 連接。光纖連接是指僅位于光纖通道(而不是 scsi 總線)上的 scsi 設備。理論上說,光纖通道技術會在光纖通道內封裝 scsi 命令,并且允許使用服務器群集意欲支持的 scsi 命令。這些 scsi 命令(“預留/釋放”以及“總線復位”)在標準的或非光纖 scsi 互連介質上具有相同的作用。下圖顯示了一個 2 節(jié)點服務器群集的組件。構成這個服務器群集的服務器可能運行 windows server 2003 enterprise edition 或 window

16、s 2000 advanced server,并且具有 scsi 或光纖通道 scsi 形式的共享存儲設備連接。圖 1- 運行 windows server 2003 enterprise edition 的 2 節(jié)點服務器群集windows server 2003 datacenter edition 支持 4 節(jié)點或 8 節(jié)點群集,它要求使用光纖通道形式的設備連接(以下 4 節(jié)點群集的組件圖對此進行了說明)。圖 2- 運行 windows server 2003 datacenter edition 的 4 節(jié)點服務器群集虛擬服務器群集的優(yōu)點之一是,運行在服務器群集上的應用程序和服務可以用

17、虛擬服務器的形式出現(xiàn)在用戶和工作站面前。用戶和客戶端在連接到以群集化的虛擬服務器形式運行的應用程序或服務時,就如同連接到一臺物理性的服務器。事實上,群集中的任何節(jié)點都可以接受這樣的虛擬服務器連接。用戶或客戶端不會知道虛擬服務器真正駐留在哪個節(jié)點上。注意:如果某個服務或應用程序不是供用戶或客戶端應用程序訪問的,則它們可以運行在不是以虛擬服務器形式管理的群集節(jié)點上。在群集中可以駐留代表不同應用程序的多個虛擬服務器。圖 3 展示了這種情況。圖 3 虛擬服務器在群集服務器下的實際表觀上圖顯示了一個含有四個虛擬服務器的 2 節(jié)點群集;每個節(jié)點有兩個虛擬服務器。服務器群集將虛擬服務器作為資源組加以管理,每

18、個虛擬服務器資源組都包含兩個資源:一個 ip 地址以及一個同該 ip 地址相對應的網(wǎng)絡名稱。應用程序客戶端將通過客戶端會話同虛擬服務器建立連接。這些客戶端會話僅知道由群集服務作為該虛擬服務器的地址發(fā)布的 ip 地址。在客戶端方面,僅涉及各個網(wǎng)絡名稱和 ip 地址。對于支持四個虛擬服務器的 2 節(jié)點群集,圖 4 顯示了該群集節(jié)點和四個虛擬服務器的客戶端情況。如圖 4 所示,客戶端只能看到 ip 地址和網(wǎng)絡名稱,它們無法了解同任何一個虛擬服務器的物理位置有關的信息。這為服務器群集針對以虛擬服務器形式運行的應用程序提供高可用性支持創(chuàng)造了條件。圖 4- 服務器群集的虛擬服務器的客戶端情況 一旦應用程序

19、或服務器發(fā)生故障,群集服務就會將整個虛擬服務器資源組轉移到群集中的另一個節(jié)點上。在發(fā)生這樣的故障時,客戶端將會在其同該應用程序的會話中檢測到故障,并且試圖用與先前連接完全一致的方式進行重新連接。由于群集服務在恢復操作中可以簡單地將虛擬服務器的公開 ip 地址映射到群集中幸存的節(jié)點,因此客戶端的上述努力將可以獲得成功??蛻舳藭挷槐刂老嚓P的應用程序現(xiàn)在是否已實際駐留到了群集中的不同節(jié)點上就可以重建同該應用程序的連接。注意:雖然這可以為應用程序或服務提供高可用性,但同發(fā)生故障的客戶端會話有關的會話狀態(tài)信息將丟失,除非該應用程序在設計上或在配置上會將客戶端會話數(shù)據(jù)存儲在磁盤上以備在應用程序恢復期間

20、使用。服務器群集雖然可以實現(xiàn)高可用性,但不能提供應用程序容錯,除非應用程序自身支持容錯行為。在存儲客戶端數(shù)據(jù)以便實現(xiàn)客戶端會話故障恢復的應用示例中,microsoft 的動態(tài)主機配置協(xié)議 (dhcp) 服務算是其中的一個。dhcp 客戶端的 ip 地址預訂信息保存在 dhcp 數(shù)據(jù)庫中。如果 dhcp 服務器資源發(fā)生故障,上述 dhcp 數(shù)據(jù)庫將可以被轉移到群集中可用的節(jié)點上,并且可以用從該 dhcp 數(shù)據(jù)庫恢復的客戶端數(shù)據(jù)重新啟動。資源組資源組是群集資源的不同邏輯集合。通常而言,資源組是由邏輯上相關的資源(比如應用程序及其關聯(lián)的外圍設備和數(shù)據(jù))組成的。但是,資源組也可能包含僅出于管理需要而相

21、互關聯(lián)的群集實體,比如由服務器名稱和 ip 地址組成的管理性集合。資源組一次只能由一個節(jié)點所擁有,一個資源組的各個資源都必須位于當前擁有該組的節(jié)點上。在任何給定的情況下,群集中的不同服務器都不能擁有同一資源組內的不同資源。每個資源組都對應一個全群集性的策略。該策略指定了該資源組將優(yōu)先在哪個服務器上運行,以及在發(fā)生故障時該資源組應該轉移到哪個服務器上。為了允許網(wǎng)絡客戶端綁定到資源組提供的服務,每個資源組還有一個網(wǎng)絡服務名稱和地址。在發(fā)生故障時,可以將資源組作為最小單元的形式從故障節(jié)點故障轉移到群集中另一可用的節(jié)點。資源組中的各個資源可能依賴群集中的其它資源。這種資源之間的依存關系指定了只有首先啟

22、動哪些資源并讓它們可用才能啟動另外的資源。例如,如果要啟動數(shù)據(jù)庫應用程序并向其它程序和客戶端提供服務,可能會取決于磁盤、ip 地址和網(wǎng)絡名稱是否可用。資源依存關系是使用群集資源組屬性來標識的。借此,群集服務可以控制資源聯(lián)機和脫機的順序。對任何指定的依存關系而言,其作用范圍只能局限于同一資源組內的資源。群集管理的依存關系不能超出資源組的范圍,原因是資源組可以聯(lián)機、脫機并且可以獨立被轉移。服務器群集架構服務器群集在設計上是由聯(lián)同操作系統(tǒng)一起工作的組件構成的單獨、隔離的集合。這種設計避免了在服務器群集和操作系統(tǒng)之間引入復雜的處理系統(tǒng)。但為了實現(xiàn)群集功能,仍將要求對基礎操作系統(tǒng)進行某些更改。這些更改包

23、括: 支持動態(tài)地創(chuàng)建、刪除網(wǎng)絡名稱和地址。 修改了文件系統(tǒng),以便在磁盤驅動器卸載期間可以關閉打開的文件。 修改了輸入輸出 (i/o) 子系統(tǒng),以便實現(xiàn)在多個節(jié)點之間共享磁盤和卷集。如果拋開上述變化和其它細微修改不論,可以說群集功能就建立在 windows server 2003 和 windows 2000 操作系統(tǒng)的現(xiàn)有基礎之上。服務器群集的核心正是群集服務,該服務包括幾個功能單元。它們是節(jié)點管理器、故障轉移管理器、數(shù)據(jù)庫管理器、全局更新管理器、檢查點管理器、日志管理器、事件日志復制管理器以及備份/恢復管理器。resource monitors 圖 6 詳細顯示了這些組件之間的關系架構示意。

24、群集服務組件群集服務運行在 windows server 2003 或 windows 2000 操作系統(tǒng)上,而這些操作系統(tǒng)又使用了專門針對服務器群集及其組成過程設計的網(wǎng)絡驅動程序、設備驅動程序以及資源規(guī)范過程。這些同群集服務緊密相關的組件是: 檢查點管理器 負責將應用程序注冊表項保存到位于仲裁資源上的群集目錄中。 數(shù)據(jù)庫管理區(qū) 負責維護群集配置信息。 事件日志復制管理區(qū) 負責將事件日志從一個節(jié)點復制到群集中的所有其它節(jié)點。 故障轉移管理區(qū) 負責執(zhí)行資源管理和啟動相應的操作,比如啟動、重啟和故障轉移。 全局更新管理器 負責提供群集組件使用的全局更新服務。 日志管理器 負責將變更寫入存儲在仲裁資

25、源上的恢復日志中。 成員管理器 負責管理群集的成員關系,并且監(jiān)視群集中其它節(jié)點是否正常。 節(jié)點管理器 負責根據(jù)資源組首選項列表和節(jié)點的可用性來指定節(jié)點對資源組的所有權。 資源監(jiān)視器 使用對資源 dll 的回調來監(jiān)視每個群集資源的健康狀況。資源監(jiān)視器以獨立的進程運行,它通過遠程過程調用 (rpc) 同群集服務器通信,以保護群集服務器不受群集資源中個別故障的影響。 備份/恢復管理器 借助故障轉移管理器和數(shù)據(jù)庫管理器,備份或恢復仲裁日志文件和所有的檢查點文件。資源dll群集 api 群 集 服 務檢查點管理器節(jié)點 管理器事件日志 復制 管理器全局更新 管理器備份/恢復管理器故障轉移 管理器數(shù)據(jù)庫庫管

26、理器日志 管理器資源監(jiān)視器windows 文件系統(tǒng)windows 注冊表資源 dll圖 5 群集服務組件示意圖節(jié)點管理器 節(jié)點管理器運行在每個節(jié)點上,它維護著一個包含群集所屬節(jié)點的本地列表。節(jié)點服務器會定期向在群集中其它節(jié)點上運行的節(jié)點服務器發(fā)送消息(稱為“心跳”),以檢測節(jié)點故障。這是保持群集中的所有節(jié)點時時刻刻都具有完全一致的群集成員身份所不可或缺的。如果一個節(jié)點檢測到同另一節(jié)點的通信故障,它就會向整個群集發(fā)送多播消息,從而讓所有成員都對其當前的群集成員身份進行檢查。這被稱作一個重新分組事件。除非已建立起穩(wěn)定的成員關系,否則群集服務將禁止對所有群集節(jié)點所共用的任何磁盤設備執(zhí)行寫入操作。如果

27、某個節(jié)點上的節(jié)點管理器沒有響應,則該節(jié)點將被從群集中刪除,其活動的資源組會被轉移到另外的活動節(jié)點上。為選擇應將資源組轉移到哪個節(jié)點上,節(jié)點管理器會確定資源組首選運行的節(jié)點以及可以擁有單獨資源的潛在擁有者(節(jié)點)。在 2 節(jié)點群集中,節(jié)點管理器會直接將資源組從故障節(jié)點轉移到幸存的節(jié)點。在 3 節(jié)點或更多節(jié)點的群集中,節(jié)點管理器有選擇地將資源組分發(fā)到幸存的節(jié)點。節(jié)點管理器還充當網(wǎng)關守衛(wèi)的作用,它允許“合作”節(jié)點進入群集并且負責處理添加或逐出節(jié)點的請求。注意: 當群集服務及其組成過程發(fā)生故障時,同遭遇故障的節(jié)點連接的資源將被停止,目的是在群集的有效節(jié)點上重新啟動它們。數(shù)據(jù)庫管理器 數(shù)據(jù)庫管理器提供了

28、維護群集配置數(shù)據(jù)庫(該數(shù)據(jù)庫包括了有關群集中所有物理和邏輯實體的信息)需要的功能。這些實體包括群集本身、群集節(jié)點的成員身份、資源組、資源類型以及特定資源(如磁盤和 ip地址)的描述。存儲在該配置數(shù)據(jù)庫中的長期性和短暫性信息可用于跟蹤群集的當前狀態(tài)或意欲了解的狀態(tài)。運行在各個群集節(jié)點上的數(shù)據(jù)庫管理器共同維護著在整個群集內一致的配置信息。為了確保所有節(jié)點上的配置數(shù)據(jù)庫副本都一致,一次只能有一個數(shù)據(jù)庫管理器向配置數(shù)據(jù)庫提交數(shù)據(jù)。數(shù)據(jù)庫管理器還提供了可供其它群集服務組件(如故障轉移管理器和節(jié)點管理器)使用的接口。該接口類似于 win32 應用程序編程接口 (api) 集提供的注冊表接口。主要區(qū)別是,數(shù)

29、據(jù)庫管理器會將對群集實體進行的更改同時記錄到注冊表和仲裁資源中(這些更改由日志管理器寫入仲裁資源)。全局更新管理器隨即將注冊表變化復制到其它的節(jié)點。數(shù)據(jù)庫管理器支持對群集部分的事務性更新,并且僅向內部群集服務組件提供接口。故障轉移管理器和節(jié)點管理器通常會借助這種事務性支持,因為它們要獲取復制的事務。群集 api 會將除事務支持外的數(shù)據(jù)庫管理器功能暴露給客戶端。這些數(shù)據(jù)庫管理器 api 的主要客戶端是資源 dll,它們將使用數(shù)據(jù)庫管理器將專用屬性保存到群集數(shù)據(jù)庫中。其它客戶端通常使用數(shù)據(jù)庫管理器查詢群集數(shù)據(jù)庫。注意: 應用程序注冊表項的數(shù)據(jù)和變化將由檢查點管理器記錄到位于仲裁資源上的仲裁日志文件

30、中。檢查點管理器 為確保群集服務能夠從資源故障中恢復,檢查點會在資源聯(lián)機時檢查注冊表項,并在資源脫機時向仲裁資源寫入檢查點數(shù)據(jù)。能夠感知群集的應用程序可使用群集配置數(shù)據(jù)庫存儲恢復信息。不能感知群集的應用程序將在本地服務器注冊表中存儲信息。檢查點管理器還支持資源擁有特定于應用程序的注冊表樹(該注冊表樹是在資源聯(lián)機的群集節(jié)點上被實例化的,一個資源可以擁有一個或多個關聯(lián)的注冊表樹)。當資源聯(lián)機時,檢查點管理器會監(jiān)視對這些注冊表樹所作的更改。如果檢測到已發(fā)生了更改,它會在擁有該資源的節(jié)點上創(chuàng)建注冊表樹的轉儲文件,然后將其轉移到擁有仲裁資源的節(jié)點上。檢查點管理器會執(zhí)行一定量的“批處理”,這樣一來,對注冊

31、表樹的頻繁更改就不會為群集服務施加過重的負擔。日志管理器日志管理器聯(lián)同檢查點管理器一起工作,確保仲裁資源上的恢復日志包含有最近的配置數(shù)據(jù)和變更檢查點。如果一個或多個群集節(jié)點發(fā)生故障,仍然可以對幸存的節(jié)點進行配置更改。當這些節(jié)點發(fā)生故障時,數(shù)據(jù)庫管理器會使用日志管理器記錄仲裁資源的配置變化。當故障節(jié)點重新投入服務時,它們會從其注冊表的本地群集部分讀取仲裁資源的位置。由于這部分的數(shù)據(jù)可能已過時,因此會有一個內置的機制來檢測從過時的群集配置數(shù)據(jù)庫中讀取的無效仲裁資源。數(shù)據(jù)庫管理器隨后會請求日志管理器使用仲裁資源中的檢查點文件對本地副本的群集部分進行更新,并接著從檢查點日志的序列號開始在仲裁磁盤中重放

32、日志文件。這樣就可以完全更新群集部分的信息。一旦重置了仲裁日志,就會制作群集信息的快照。另外,這種操作也會每四個小時執(zhí)行一次。故障轉移管理器故障轉移管理器負責停止和啟動資源、管理資源依存關系以及啟動資源組的故障轉移。為執(zhí)行這些操作,它會從資源監(jiān)視器和群集節(jié)點接收資源和系統(tǒng)狀態(tài)信息。故障轉移管理器還負責決定群集中的節(jié)點可以擁有的資源組。完成了資源組的仲裁后,擁有各個資源組的節(jié)點會將對資源組內資源的控制權移交給節(jié)點管理器。當擁有某個資源組的節(jié)點無法處理該組內的資源故障時,各個群集節(jié)點上的故障轉移管理器將一起來仲裁該資源組的所有權。發(fā)生資源故障時,故障轉移管理器可能重新啟動該資源或將資源及其依存資源

33、脫機。如果將資源脫機,它會指示將該資源的所有權移交給另一節(jié)點并且以新節(jié)點的名義重新啟動該資源。這被稱作故障轉移。故障轉移在發(fā)生意外的硬件或應用程序故障時,故障轉移可能會自動執(zhí)行,也可能由群集管理人員手動觸發(fā)。這兩種情形的算法相同,只不過在人工啟動故障轉移時,資源是按有序方式關閉的(即使這種關閉形式在故障狀態(tài)下可能顯得突然和具有破壞性)。當群集中的某個節(jié)點完全失效時,其資源組將被轉移到群集中的一個或多個可用的服務器。自動故障轉移類似于按照計劃對資源所有權進行管理性的重新分配。但該過程將更為復雜一些,因為正常有序的關閉步驟可能受到影響或者根本就不會發(fā)生。因此為了評估故障時的群集狀態(tài),還將需要一些額

34、外步驟。自動故障轉移需要確定在故障節(jié)點上運行的資源組以及哪些節(jié)點將會獲得各個資源組的所有權。群集中所有可以駐留這些資源組的節(jié)點會彼此協(xié)商這些資源組的歸屬事宜。這種協(xié)商基于節(jié)點性能、當前負載、應用程序反饋或者節(jié)點首選項列表。節(jié)點首選項列表是資源組屬性的一部分,可用來將資源組指定給某個節(jié)點。一旦完成資源組的協(xié)商,所有群集節(jié)點就會更新各自的數(shù)據(jù)庫并跟蹤擁有資源組的節(jié)點。在具有兩個以上節(jié)點的群集中,各個資源組的節(jié)點首選項列表可以指定一個首選服務器外加一個或多個優(yōu)先的備用服務器。這樣可以實現(xiàn)級聯(lián)式故障轉移 功能。通過該功能,資源組可以不受多個服務器故障的影響,因為它們可以逐級地故障轉移到節(jié)點首選項列表的

35、下一個服務器上。群集管理員可以為某個服務器上的資源組設置不同的節(jié)點首選項列表,這樣,一旦服務器發(fā)生故障,就可以將該資源組分發(fā)到幸存的群集服務器上。這種方案的一個替代做法是設置群集中所有資源組的節(jié)點首選項列表(該做法通常稱為 n+i 故障轉移)。節(jié)點首選項列表將確定首次故障轉移時應將資源轉移到哪個備用的群集節(jié)點。這些備用服務器應該是群集中最為空閑的服務器,或者它們可以非常容易地清除自己的工作載荷以便接收故障服務器轉移來的工作載荷。當群集管理員在選擇級聯(lián)式故障轉移和 n+i 故障轉移時,關鍵問題是要考慮群集是否有額外的容量來容納因為少了服務器而損失的容量。使用級聯(lián)式故障轉移的前提是,群集的每個服務

36、器都有一定的額外容量來接納其它服務器發(fā)生故障時轉移來的一部分工作負載。而使用 n+i 故障轉移的前提是,這“+i”個備用服務器將是提供額外容量的主要位置。故障恢復當節(jié)點恢復聯(lián)機時,故障轉移管理器可以決定是否將某些資源組轉移回這個已恢復正常的節(jié)點。這被稱作故障恢復。只有資源組的屬性定義了首選的擁有者,已恢復正常或重新啟動的節(jié)點才有可能實現(xiàn)故障恢復。如果恢復的或重新啟動的節(jié)點是資源組的首選擁有者,則該資源組會從其當前的擁有者轉移到恢復的或重啟的節(jié)點。資源組的故障恢復屬性可能包括在一天之中的哪個時間才允許故障恢復以及對故障恢復嘗試時間的限制。這樣,群集服務就可以防止在高峰處理時間進行資源的故障恢復,

37、或者保護尚未正確恢復或重啟的節(jié)點。全局更新管理器內部群集組件(比如故障轉移管理器或數(shù)據(jù)庫管理器)可以使用全局更新管理器 (gum) 以原子方式(或者更新所有正常的節(jié)點,或者一個都不更新)和串行方式(保持一個整體順序)將群集服務器的變更復制到各個群集節(jié)點。gum 更新的發(fā)起,通常源于群集 api 調用。在客戶端節(jié)點上啟動 gum 更新時,gum 首先會請求負責鎖定的節(jié)點實現(xiàn)全局(“全局“表示所有的群集節(jié)點)鎖定。如果無法進行全局鎖定,客戶端會一直等待。當可以鎖定時,負責鎖定的節(jié)點會將鎖定授予該客戶端,并且從本地(在負責鎖定的節(jié)點上)發(fā)布更新。該客戶端隨即將更新發(fā)布到包括它自身在內的所有正常節(jié)點。

38、如果在負責鎖定的節(jié)點上成功完成了更新,但在其它某些節(jié)點上更新失敗,則會剝奪這些節(jié)點在當前群集中的成員資格。如果在負責鎖定的節(jié)點上更新失敗,該節(jié)點僅向客戶端返回故障信息。備份/恢復管理器群集服務為群集數(shù)據(jù)庫備份提供了一個 api,即 backupclusterdatabase。backupclusterdatabase 首先會同故障轉移層聯(lián)系,而后者會接著將請求轉交給擁有仲裁資源的節(jié)點。這樣就可以調用該擁有者節(jié)點中的數(shù)據(jù)庫管理器,并由它來完成仲裁日志文件和所有檢查點文件的備份。除了 api 外,群集服務在啟動時也會以備份寫入程序的形式將自己注冊到卷影復制服務 (vss)。當備份客戶端調用 vss

39、 執(zhí)行系統(tǒng)狀態(tài)備份時,它會通過一系列的入口點調用來調用群集服務執(zhí)行群集數(shù)據(jù)庫備份。群集服務中的服務器代碼會直接調用故障轉移管理器來執(zhí)行備份,其余的操作與 backupclusterdatabase api 相同。為了從備份路徑恢復群集數(shù)據(jù)庫,群集服務提供了另一個 api,即 restoreclusterdatabase。該 api 只能從某個群集節(jié)點的本地調用。調用該 api 時,它將依次停止群集服務、從備份中恢復群集數(shù)據(jù)庫、設置包含備份路徑的注冊表值,然后再啟動群集服務。群集服務在啟動時會檢測到需要進行恢復,并會接著從備份路徑將群集數(shù)據(jù)庫恢復到仲裁資源中。事件日志復制管理器群集服務會同群集中

40、的事件日志服務進行交互,以便將事件日志條目復制到所有的群集節(jié)點。當群集服務在某個節(jié)點上啟動時,它會調用本地事件日志服務中的專用 api,并且要求該事件日志服務向回綁定到群集服務。作為響應,該事件日志服務將使用 lrpc 綁定到 clusapi 接口。從此時開始,只要事件日志服務收到要記錄的事件,它就會在本地記錄它,然后將事件放到持續(xù)性的批處理隊列中,并且安排一個計時器線程。如果沒有活動的計時器線程,該線程就會在 20 秒后啟動。計時器線程啟動時,它會排空批處理隊列,并借助事件日志服務已綁定的群集 api 接口將所有事件作為一個整體緩沖發(fā)送到群集服務。一旦群集服務收到來自事件日志服務的批量事件,

41、它會將這些事件放到本地的“傳出”隊列中并且從該 rpc 返回。群集服務中的事件廣播器線程會排空該隊列,并借助群集內的 rpc 將隊列中的事件發(fā)送到所有有效的遠程群集節(jié)點。服務器側的 api 將收到的事件放到“傳入”隊列中。事件日志寫入程序線程隨后會排空該隊列,并且通過專用的 rpc 請求本地事件日志服務在本地寫入這些事件。群集服務使用 lrpc 來調用事件日志專用 rpc 接口。事件日志服務也會使用 lrpc 來調用請求群集服務對事件進行復制的群集 api 接口。成員身份管理器成員身份管理器(也稱為“重新分組引擎)負責維護在任何給定時刻的群集節(jié)點情況(活動或停機)的一致性。組件的心跳是決定是否

42、重新分組的依據(jù)。只要有證據(jù)表明一個或多個節(jié)點已失效,就會調用重新分組。在重新分組過程的最后,所有有關的節(jié)點都會對新的群集成員身份達成相同的看法。非群集服務組件雖然以下組件通常被認為并不屬于真正的群集服務,但它們仍然是同群集服務操作緊密聯(lián)系在一起的。資源監(jiān)視器資源監(jiān)視器提供了資源 dll 同群集服務之間的通訊接口。當群集服務需要從資源獲取數(shù)據(jù)時,資源監(jiān)視器會收到該請求并將它轉交給相應的資源 dll。相反,當資源 dll 需要報告其狀態(tài)或需要通知群集服務某個事件時,資源監(jiān)視器會將這些來自資源的信息轉交給群集服務。資源監(jiān)視器進程是作為群集服務的子進程而派生的,該進程在自己的進程空間中加載監(jiān)視群集資源

43、的資源 dll(在同群集服務進程不同的進程中加載資源 dll 將有助于隔離故障)。同時可以派生和執(zhí)行多個資源監(jiān)視器進程。一個同資源關聯(lián)的共用屬性將確定是將對應的 dll 載入單獨的監(jiān)視器進程還是載入默認的監(jiān)視器進程。在 windows server 2003 群集中,只能在單獨的監(jiān)視器進程載入一個資源 dll,不允許進行資源分組。默認情況下,僅會派生一個資源監(jiān)視器進程,而所有的資源 dll 都將被載入該單一進程。每個資源監(jiān)視器都充當群集服務進程的 lrpc 服務器。當群集服務收到要求同資源 dll 通訊的群集 api 調用時,它會使用這種 lrpc 接口來調用資源監(jiān)視器 rpc。為了接收來自資

44、源監(jiān)視器的響應,群集服務會為每一個資源監(jiān)視器進程創(chuàng)建一個通知線程。該通知線程將調用暫時停留在資源監(jiān)視器中的 rpc,從而一旦有通知生成就可以立即接收它們(比如“資源 x 已聯(lián)機“)。該線程只有當資源監(jiān)視器終止或通過來自群集服務的關閉命令明確停止了資源監(jiān)視器時才會被釋放。資源監(jiān)視器并不維護同自身有關的任何存續(xù)狀態(tài)。其所有初始狀態(tài)都是群集服務提供的,它僅保存某些有限的資源內存狀態(tài)。資源監(jiān)視器通過完善定義的入口點(這是資源 dll 必須提供的,類似于 com v-table)同資源 dll 通訊。對資源監(jiān)視器自身而言,它要執(zhí)行的唯一操作是通過“isalive”和“l(fā)ooksalive”入口點來輪詢資

45、源 dll(或者說輪流檢查資源 dll 表明的故障事件)、派生計時器線程(針對那些從 online 或 offline 入口點返回 error_io_pending 的資源 dll,目的是監(jiān)視其未決的超時)、檢測群集服務是否崩潰(如果崩潰,則關閉資源)。在資源監(jiān)視器中發(fā)生的其它操作則要取決于群集服務通過 rpc 接口請求了什么樣的操作。群集服務會監(jiān)視資源監(jiān)視器是否崩潰,如果檢測到該進程崩潰,它將重新啟動一個監(jiān)視器。在目前的群集服務器中,群集服務不會執(zhí)行任何 hang(暫停)檢測。群集服務和資源監(jiān)視器進程共享一個內存映射扇區(qū)(由分頁文件支持),在資源監(jiān)視器啟動時,系統(tǒng)會將該扇區(qū)的句柄傳遞給資源監(jiān)

46、視器。資源監(jiān)視器隨即會復制該句柄。資源監(jiān)視器進程在調用資源 dll 入口點之前會將入口點編號和資源名稱記錄到該映射區(qū)中。如果資源監(jiān)視器崩潰,群集服務(以及該資源監(jiān)視器的上級異常過濾器)會讀取這個共享扇區(qū),以檢測導致監(jiān)視器進程崩潰的資源及其入口點。事件服務事件服務充當了電子交換機的作用,它負責為在群集節(jié)點上運行的應用程序和群集服務組件發(fā)送事件,或者將事件發(fā)送給它們。事件處理器可幫助群集服務組件將有關重要事件的信息分發(fā)給所有其它組件,并且可支持群集 api 事件處理機制。事件處理器執(zhí)行雜項服務,比如向那些可感知群集的應用程序發(fā)送信號事件和維護群集對象。圖 6 服務器群集架構。非群集組件帶有灰色背景

47、群集仲裁每個群集都有一種特定資源,即所謂的仲裁資源。仲裁資源可能是執(zhí)行以下操作的任何資源: 提供一種旨在實現(xiàn)成員身份和群集狀態(tài)決定的仲裁機制。 提供物理性存儲空間以存儲配置信息。仲裁日志只是一種用于服務器群集化功能的配置數(shù)據(jù)庫。它保存了多種配置信息,比如群集的成員服務器都有哪些、群集中安裝了哪些資源以及這些資源處于何種狀態(tài)(例如,是聯(lián)機還是脫機)。默認情況下,該仲裁日志位于 mscsquolog.log。仲裁在群集中非常重要,其主要原因有兩個。以下介紹了這兩個原因。一致性由于群集的基本設計理念就是多臺物理服務器充當一個虛擬服務器的作用,因此每個物理服務器在群集配置方式上是否具有一致的狀態(tài),將顯

48、得非常關鍵。對所有同群集有關的配置信息而言,仲裁充當了最具權威性的倉庫。如果群集服務無法讀取仲裁日志,它將不會啟動,因為它無法保證群集是否處于一致性的狀態(tài),而這又是群集最主要的要求之一。斡旋作用仲裁提供的斡旋作用可以避免“各自為政”的情況。當兩個或多個群集節(jié)點之間的所有網(wǎng)絡通訊鏈路都失效時,會發(fā)生“各自為政”的局面。此時,群集可能分成兩個或更多個在彼此之間無法交流的“派別”。使用仲裁后,可以保證任何群集資源只會在某一個節(jié)點上進入聯(lián)機狀態(tài)。這是通過僅允許“擁有”仲裁的一派繼續(xù)存在,同時將其它派別逐出群集來實現(xiàn)的。標準仲裁如上所述,仲裁只是用于 microsoft 群集服務的一種配置數(shù)據(jù)庫,它存儲

49、在仲裁日志文件中。標準的仲裁是使用位于互連的共享存儲區(qū)中的仲裁日志文件,群集的所有成員都可以訪問該文件。注意: 可以對服務器群集進行配置,讓它使用服務器的本地硬盤來存儲仲裁,但僅在出于測試和開發(fā)目的時才支持這樣做,在生產環(huán)境中不應該使用這樣的配置。 各個成員都將可以使用某種互連形式(比如 scsi 或光纖通道)同共享存儲區(qū)連接,而共享存儲區(qū)可以由外部硬盤(通常配置為 raid 磁盤)或存儲區(qū)域網(wǎng)絡 (san) 構成。使用 san 時,其邏輯片段將顯示為物理磁盤。注意: 非常重要的一點是,仲裁需要使用物理磁盤資源而不是磁盤分區(qū),因為在故障轉移過程中,整個物理磁盤資源都將被轉移。您可以在 wind

50、ows nt 4.0 enterprise edition、windows 2000 advanced server、windows 2000 datacenter edition、windows server 2003 enterprise edition 以及 windows server 2003 datacenter edition 中使用標準仲裁,圖 7 說明了這種標準仲裁。圖 7 四節(jié)點群集中的標準仲裁示意多數(shù)節(jié)點集仲裁從服務器群集的發(fā)展來看,多數(shù)節(jié)點集 (mns) 仲裁將成為唯一的仲裁資源。但在默認情況下,其數(shù)據(jù)實際存儲在各個群集成員的系統(tǒng)磁盤上。mns 資源負責確保在 mns

51、上存儲的群集配置數(shù)據(jù)在不同磁盤上都保持一致性。圖 8 顯示了一個使用 mns 仲裁配置的四節(jié)點群集。您可以在 windows server 2003 enterprise edition 以及 windows server 2003 datacenter edition 中使用多數(shù)節(jié)點集仲裁。圖 8 四節(jié)點群集中的 mns 仲裁示意盡管構成 mns 的磁盤在理論上說可以是共享存儲結構上的磁盤,但作為 windows server 2003 的一部分提供的 mns 實現(xiàn)使用各個節(jié)點本地系統(tǒng)磁盤上的目錄來存儲仲裁數(shù)據(jù)。如果群集配置發(fā)生變化,這種變化將被反映到各個不同磁盤上。只有對以下數(shù)目的節(jié)點都進

52、行了更改,這種更改才被認為是完成的,即成為持久性更改: (/2) + 1這保證了大多數(shù)節(jié)點都可以獲得最新的數(shù)據(jù)副本。如果被配置為群集成員的大多數(shù)節(jié)點都能正常運行群集服務,群集服務會直接啟動,并且讓資源聯(lián)機。如果只是少數(shù)節(jié)點,群集會被告知沒有仲裁,因此群集服務會始終等待(試圖重新啟動),直到更多的節(jié)點試圖加入進來。只有當大多數(shù)節(jié)點都可用或者節(jié)點仲裁可用時,群集服務才會啟動,并且資源才會聯(lián)機。在這種方式下,由于不考慮節(jié)點故障就將最新的配置寫入大多數(shù)節(jié)點,因此群集會始終保證它僅在最近和最新的配置下被啟動。當發(fā)生故障或“各自為政”的情況時,所有未包含大多數(shù)節(jié)點的派別都將被終止。這保證了如果有一個運行的

53、派別包括了大多數(shù)節(jié)點,該派別將可以隨意啟動過去未在該派別上運行的任何資源,換言之,它將是群集中唯一能運行資源的派別(因為其它所有派別都被終止)。由于清楚了共享磁盤仲裁群集同 mns 仲裁群集在行為方式上的區(qū)別,因此用戶在確定要選擇的模型時必須謹慎。例如,如果您的群集中只有兩個節(jié)點,則最好不要使用 mns 模型,因為一旦某個節(jié)點發(fā)生故障,將導致整個群集失?。ㄒ驗椴豢赡艽嬖诙鄶?shù)節(jié)點)。群集資源群集服務使用資源監(jiān)視器和資源 dll 將所有資源都作為不透明的對象進行管理。資源監(jiān)視器接口為群集服務啟動資源管理命令和獲取資源狀態(tài)數(shù)據(jù)提供了標準的通訊接口。資源監(jiān)視器通過資源 dll 執(zhí)行實際的命令和獲取數(shù)據(jù)

54、。群集服務使用資源 dll 將資源聯(lián)機、管理這些資源同其它群集資源的交互,單更為重要的是通過監(jiān)視它們的健康狀況來檢測故障情況。服務器群集提供的資源 dll 可以同時支持 microsoft 群集感知應用程序和獨立軟件供應商 (isv) 以及第三方公司提供的通常不能感知群集的應用程序。另外,isv 和第三方也可以提供讓它們的特定產品能夠感知群集的資源 dll。有關當前可感知群集的應用程序和硬件的詳細信息,請參閱“詳細信息”一節(jié)。為支持資源管理,資源 dll 僅需要提供少量的簡單資源接口和屬性。資源監(jiān)視器可將特定的資源 dll 作為系統(tǒng)帳戶下優(yōu)先運行的代碼載入其地址空間。系統(tǒng)帳戶是僅供操作系統(tǒng)以及

55、同基礎操作系統(tǒng)集成的服務所使用的帳戶。借助系統(tǒng)帳戶,群集服務可以在操作系統(tǒng)的上下文中執(zhí)行多種功能。有關 windows server 2003 或 windows 2000 系統(tǒng)服務架構以及帳戶安全性的詳細信息,請訪問:microsoft 為 microsoft 群集感知應用程序提供的所有資源 dll 都僅在單一的資源監(jiān)視器進程中運行。isv 或第三方資源 dll 可能需要有自己的資源監(jiān)視器。當在群集節(jié)點上安裝或啟動資源時,群集服務會根據(jù)需要創(chuàng)建資源監(jiān)視器進程。如果某些資源要求有其它資源才能工作,這些依存關系可以通過資源 dll 來定義。如果某個資源依賴于其它資源,則群集服務只有在該資源所依存

56、的資源按照正確的序列聯(lián)機后才會讓該資源聯(lián)機。資源的脫機方式與此類似。群集服務只有在任何所依存的資源已脫機后才會將有關資源脫機。這可以防止在加載資源時導致依存關系循環(huán)。每個資源 dll 都可以定義資源所要求的計算機類型和設備連接類型。例如,磁盤資源可能要求只有同該磁盤設備物理相連的節(jié)點才能擁有它。在資源 dll 中還可以定義本地重啟策略以及在故障轉移事件期間希望執(zhí)行的操作。借助隨 windows server 2003 產品一起提供的資源 dll,服務器群集可以支持以下資源: 文件和打印共享 通用服務或應用程序 通用腳本 物理磁盤 microsoft 分布式事務協(xié)調器 (msdtc) internet 信息服務 (iis) 消息隊列 (msmq) 觸發(fā)器 網(wǎng)絡地址和名稱windows server 2003 enterprise edition 和 windows server 2003 datacenter edition 中還包括用于以下附加服務的資源 dll: 分布式文件系統(tǒng) (dfs) 動態(tài)主機配置協(xié)議 (dhcp) 服務 wi

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論