專利名稱:在群集計算環(huán)境中管理存儲資源的系統(tǒng)和方法
技術領域:
本發(fā)明涉及數(shù)據(jù)存儲系統(tǒng)領域,尤其涉及在群集計算環(huán)境中管理存儲資源的系統(tǒng)和方法。
背景技術:
存儲區(qū)網(wǎng)絡(SAN)經(jīng)常包括與多個節(jié)點,如工作站和服務器以通信形式連接的數(shù)據(jù)存儲資源。在本發(fā)明中,術語“節(jié)點”和“服務器”是可替換使用的,應理解為“服務器”是“節(jié)點”的一種類型。
在SAN中,服務器可以通過采用光纖信道協(xié)議的結構訪問數(shù)據(jù)存儲資源。光纖信道協(xié)議是作為普通物理層工作的,該物理層允許傳遞多個上層協(xié)議,如小型計算機系統(tǒng)接口(SCSI)協(xié)議。在SAN環(huán)境中,SCSI協(xié)議將邏輯單元號(LUN)指定給數(shù)據(jù)存儲資源。LUN允許SAN中的服務器通過參照特殊數(shù)據(jù)存儲資源的SCSI LUN訪問特定的數(shù)據(jù)存儲資源。
盡管光纖信道存儲系統(tǒng)能夠提供巨大的存儲容量,但形成該系統(tǒng)很昂貴。結果用戶經(jīng)常試圖分享由多個服務器之間的系統(tǒng)所提供的可利用的存儲空間。不利的是,如果與指定SAN相連的服務器使用微軟的WINDOWS NT操作系統(tǒng),則服務器將嘗試享有對服務器來說很顯然的任何LUN的所有權。例如,如果當服務器啟動時特定的服務器檢測出有多個LUN,則可以假設每個LUN都有其自身的用途。由此,如果多個WINDOWS NT服務器連接在存儲庫或數(shù)據(jù)存儲資源上,則每個服務器都可嘗試控制存儲庫中的每個LUN。當多于一個服務器試圖訪問同一個LUN時,這種情況會導致沖突。
試圖解決這個問題的用戶,通過過濾或通過利用具有LUN掩蔽功能的最小端口的驅動器來劃分可利用的存儲空間,或將該存儲空間分區(qū)。實際上,這種劃分將使運行WINDOWS NT的服務器看不到?jīng)]有分配給它的存儲空間。這種方法對獨立的服務器有效,但在群集計算環(huán)境中還存在有很多缺點。
群集包含一組獨立的服務器的配置,從而它們可作為單個機器出現(xiàn)在網(wǎng)絡上。用戶經(jīng)常將群集作為單個系統(tǒng)管理,分享公共名稱空間,并進行特殊設計以能夠容忍單元(component)故障,并能夠以明確的方式支持單元的增加或減少。不利的是,因為群集器具有兩個或更多個以獨立機器形式出現(xiàn)的服務器,所以可以證明上述的劃分技術在兩個或更多服務器試圖訪問同一個LUN時,將不能避免發(fā)生沖突。
微軟群集服務器(Microsoft Cluster Server,MSCS)提出了一個現(xiàn)行的可行性技術,即在群集計算環(huán)境中裁決沖突,并管理存儲裝置的所有權。MSCS系統(tǒng)在群集中工作,該群集具有兩個服務器,即作為主管服務器的服務器A和服務器B。在工作中,服務器A將周期性的脈動信號傳遞給服務器B,以使服務器B知道服務器A是“活的”。如果服務器B沒有適時從服務器A處接收到脈動信號,則服務器B將判斷服務器A是否是可操作的,并且/或者判斷服務器B是否將接管服務器A所保留的所有LUN的所有權。不利的是,MSCS系統(tǒng)在此過程中可以利用SCSI的目標復位,而該SCSI復位可能會產(chǎn)生很多問題。例如,在MSCS系統(tǒng)中典型的SCSI復位可能導致所有在指定光纖信道系統(tǒng)中的服務器中止其待定的輸入/輸出,即“I/O”進程。這種中止進程直到總線穩(wěn)定才會最終完成。這種中止/等待/重試的處理會在整個系統(tǒng)運行中產(chǎn)生不利影響。
除了在運行中的潛在影響外,MSCS系統(tǒng)和它所使用的SCSI復位還對整個系統(tǒng)的可靠性產(chǎn)生不利的影響。在操作中,MSCS系統(tǒng)在某一時刻只使一個SCSI復位,而不能使其后的SCSI復位,這樣就不能產(chǎn)生期望的作用并降低該系統(tǒng)的可靠性。
根據(jù)本發(fā)明,用于在群集計算環(huán)境中管理存儲資源的系統(tǒng)和方法優(yōu)于現(xiàn)有技術中發(fā)展的技術。所公開的系統(tǒng)和方法在減少對SCSI復位依賴的情況下,進行存儲資源管理和解決沖突。
發(fā)明內容
根據(jù)本發(fā)明的一個方面,在群集計算環(huán)境中管理存儲資源的方法包括保留群集計算環(huán)境第一個節(jié)點的預留資源。例如該節(jié)點可以是服務器,工作站或任何其它包含在群集中的計算裝置。
可以進行第一節(jié)點的第三方進程退出(third party process logout),并釋放第一節(jié)點保留的預留資源。在一個實施例中,第三方進程退出對應于以第一節(jié)點為名義發(fā)出的退出命令。例如由第二節(jié)點或光纖信道交換機發(fā)出第三方進程退出命令。第三方進程退出命令包括識別信息,該信息可確認作為發(fā)出退出命令發(fā)令方的第一節(jié)點,盡管第一節(jié)點并不是實際上的發(fā)令方。例如識別信息包括全球域名(world widename)和指定給第一節(jié)點的資源標志符。
在群集計算環(huán)境中管理存儲資源還包括對光纖信道系統(tǒng)進行分區(qū)。所述區(qū)域將第一、第二節(jié)點和多個存儲資源,如硬盤驅動器,及其其它數(shù)據(jù)存儲裝置分成組。在分區(qū)的系統(tǒng)中,在第一節(jié)點發(fā)出第三方進程退出命令之后,第二節(jié)點將其本身退出。在兩個節(jié)點退出之后,對鏈接復位的循環(huán)初始協(xié)議(LIP)進行初始化,產(chǎn)生狀態(tài)變化通知,任何功能節(jié)點都可以重新進行注冊。
根據(jù)本發(fā)明的另一方面,在群集計算環(huán)境中管理存儲資源的方法包括接收預留命令,該預留命令力圖為群集中節(jié)點預留存儲資源。響應預留命令,發(fā)出使用預留服務操作的SCSI持續(xù)預留命令(SCSIpersistent reserve out command),以為該節(jié)點保留存儲資源。這種持續(xù)保留將在存儲資源中保持可清除的預留資源。在一個實施例中,而發(fā)出使用清除服務操作的SCSI持續(xù)預留命令,預留資源便被清除掉。在SCSI復位的同時,與立即清除多個LUN預留資源相反,使用持續(xù)預留命令允許對LUN預留資源個別釋放。
根據(jù)本發(fā)明的另一方面,在群集計算環(huán)境中能夠管理存儲資源的計算機系統(tǒng)包括第一節(jié)點、第二節(jié)點和資源管理器,該資源管理器能夠根據(jù)第二節(jié)點沒有適時接收到第一節(jié)點傳遞的脈動信號,而退出第一節(jié)點。該系統(tǒng)還包括用于存儲資源管理器的計算機可讀媒體和與計算機可讀媒體相聯(lián)的、并可運行資源管理器的中央處理單元。
在一個實施例中,該系統(tǒng)還包括多個與第一節(jié)點以通訊方式相連的計算機平臺。例如這些計算機平臺可以是個人計算機的網(wǎng)絡的計算機。該系統(tǒng)還包括與第一節(jié)點和多個存儲資源以通訊方式相連的光纖信道交換機。在一些實施例中,光纖信道交換機包括能夠運行資源管理器的中央處理單元。
對應于本發(fā)明所公開技術的系統(tǒng)和方法明顯優(yōu)于普通的群集資源管理方案。例如,所公開的技術能夠更好地管理和解決存儲資源的沖突。如上所述,群集計算環(huán)境中的SCSI復位將退出/等待/重試的初始化處理成多個I/O程序,該程序會對整個系統(tǒng)的執(zhí)行產(chǎn)生不利影響。本發(fā)明的技術有助于減少對SCSI復位的依賴,和對降級運行結果的依賴。
另外,本發(fā)明公開的技術有利于避免系統(tǒng)對應于群集計算環(huán)境中SCSI復位而產(chǎn)生可靠性的問題。傳統(tǒng)群集資源管理系統(tǒng),如MSCS,在原先SCSI復位的總線出現(xiàn)障礙過程中,不會引起SCSI復位的初始化。這種限制會產(chǎn)生不期望的情況,并減小系統(tǒng)的可靠性。因為本發(fā)明公開的技術有利于避免至少一些SCSI復位問題,所以可提高系統(tǒng)的可靠性。
參照說明書,權利要求書和附圖,本領域所屬普通技術人員會理解本發(fā)明的其它優(yōu)點。
參照下列說明和附圖,將能更完全地理解本發(fā)明和本發(fā)明的優(yōu)點,其中相同的標號表示相同的特征,其中圖1是根據(jù)本發(fā)明公開的技術,包含有資源管理器的一個實施例的存儲區(qū)網(wǎng)絡的單元圖表;圖2是根據(jù)本發(fā)明公開的技術,在群集計算環(huán)境中管理存儲資源的方法的一個實施例的流程圖;圖3是根據(jù)本發(fā)明公開的技術,在群集計算環(huán)境中管理存儲資源的方法的另一個實施例的流程圖。
具體實施例方式
圖1表示存儲區(qū)網(wǎng)絡(SAN)的一般框圖,由標號10表示。SAN10包括兩個群集計算系統(tǒng),群集12和14。如圖所示,群集12包括節(jié)點16和節(jié)點18,群集14包括節(jié)點20和22。例如節(jié)點16,18,20和22可以是服務器,工作站或其它網(wǎng)絡計算裝置。如圖1所示,群集12可以被多個注冊裝置所支持,如由標號24表示的注冊個人計算機。
SAN10也可以包括存儲庫26,例如該存儲庫26包括多個物理存儲裝置,如受一個或多個存儲控制器控制,并與該存儲控制器連接的硬盤裝置。將該存儲庫26的物理存儲裝置指定為邏輯單元號(LUN)。一些物理存儲裝置也可以歸類為RAID空間,將每一空間指定為SCSI的LUN地址。將其它物理存儲裝置分別指定為一個或多個LUN。但是指定了LUN后,圖1的LUN將獲得的存儲庫26的物理存儲映入多個邏輯存儲裝置,而且確認這些邏輯存儲裝置,并將其編址。
在工作中,節(jié)點16,18,20和22,通過采用光纖信道協(xié)議的光纖28與存儲庫26連通并將數(shù)據(jù)傳遞到存儲庫26處,再將數(shù)據(jù)從存儲庫26中傳送出來。如圖1所示,將節(jié)點16和18編入具有LUN-1和LUN-2的區(qū)域30。同樣,將節(jié)點20和22編入具有LUN-3,LUN-4和LUN-5的區(qū)域32。利用交換機分區(qū)而產(chǎn)生區(qū)30,以防止從節(jié)點16和18看到節(jié)點20和22。同樣,利用交換機分區(qū)段而產(chǎn)生區(qū)域32,以防止從節(jié)點20和22看到節(jié)點16和18。除分區(qū)外,圖1所示實施例還使用LUN掩蔽的方法。LUN掩蔽可以將特殊節(jié)點或群集掩蔽起來,而不能看到某些LUN。例如,LUN掩蔽的方法可以防止從節(jié)點16和18看到LUN-3,LUN-4和LUN-5。
在圖1所示的實施例中,將節(jié)點16,18,20和22指定為統(tǒng)一的全球域名(WWN),該WWN可以是8個字節(jié)的標志符。電子工程師學會(IEEE)將WWN框圖指定給制造商,從而使制造商可以用唯一的WWN建立光纖信道裝置。為了說明的目的,在圖1所示實施例中,節(jié)點16的WWN為“AAA”,節(jié)點18的WWN為“BBB”,節(jié)點20的WWN為“CCC”,節(jié)點22的WWN為“DDD”。這樣,耦接到結構28上的其它裝置就可以唯一地確認節(jié)點16,18,20和22了。
節(jié)點16,18,20和22除了他們各自的WWN外,還具有識別信息。例如,根據(jù)光纖信道協(xié)議,當將節(jié)點,如節(jié)點16初始化并聯(lián)入結構28時,將光纖信道ID指定給節(jié)點。該ID將隨每一刻初始化的結果而改變,例如當將其它節(jié)點或裝置聯(lián)入結構28時,該ID將隨每一刻初始化的結果而改變。如圖1所示,按下列方式結構28分配光纖信道ID節(jié)點16為S-ID-1,節(jié)點18為S-ID-2,節(jié)點20為S-ID-3,節(jié)點22為S-ID-4。
在圖1所示實施例中,將各種WWN和光纖信道ID存儲在計算機可讀媒體34中,該媒體可與SAN10的裝置匹配使用。如圖1所示,SAN10包括用于配置結構28的計算裝置38。這種計算裝置可包括以通訊方式與計算機可讀媒體34連接的CPU。交換機36至少具有一個端口40,該端口用于連接其它裝置,以形成整體光纖信道網(wǎng)絡。
在本發(fā)明實際公開的一個系統(tǒng)實施例中,可操作計算裝置38以運行資源管理器,該資源管理器存儲在計算機可讀媒體34中。也可以用資源管理器來完成各種功能。例如,可以用資源管理器訪問保留的SAN10裝置中WWN和光纖信道ID的表單。另外,也可以用資源管理器識別由節(jié)點發(fā)出的SCSI復位命令,并且將該復位命令轉換為釋放存儲資源命令。例如,釋放存儲資源命令可以是進行第三方進程退出(thirdparty process log out)或使用清除操作的SCSI持續(xù)預留命令。
在MSCS型群集中,當節(jié)點,如節(jié)點18或20確認從各自的群集伙伴處沒有適時接收到脈動信號42或44時,會發(fā)出SCSI復位命令。脈動42和44允許節(jié)點18和22分別能夠看到對方(如果它們的群集伙伴仍然在工作)。
例如,如果節(jié)點18不再“看到”節(jié)點16,節(jié)點18可以尋求獲得已釋放的、為節(jié)點16保持的任一個LUN。為了實現(xiàn)這種釋放,節(jié)點18發(fā)出一個與節(jié)點16和18相關的、SCSI總線的低級總線復位命令。在一些系統(tǒng)中,如在MSCS系統(tǒng)中,節(jié)點18在嘗試保留已由節(jié)點16保留的LUN之前,會等待特定的時間。這種等待使節(jié)點16在SCSI復位之前恢復控制保留的LUN。這樣,盡管節(jié)點18沒有接收到脈動信號42,但如果節(jié)點16被“激活”,則節(jié)點16仍可以再建立其資源預留,并使節(jié)點18知道它已被“激活”。
不利的是,如上所述,在群集計算環(huán)境中的SCSI復位對整體系統(tǒng)的工作情況和系統(tǒng)的可靠性有不利的影響。所公開的系統(tǒng)和資源管理器以各種途徑幫助減少群集計算環(huán)境對SCSI復位的依賴。例如,通過對圖2和圖3的分析能夠更好地理解避免SCSI復位的技術。
圖2描述的是一種方法100的實施例的流程圖,該方法100用于管理群集計算環(huán)境中的存儲資源。圖2的方法由資源管理器完成,該資源管理器是在與SAN結構連接的存儲控制器上運行的。在一些實施例中,可以在與交換機,如圖1所示的交換機36相連的CPU上運行資源管理器。在另一些實施例中,可以將CPU與SAN裝置而不是交換機配合使用。例如,可以在SAN的一個或多個節(jié)點上運行資源管理器。
在操作SAN過程中,接收到端口注冊命令(PLOGI)。在現(xiàn)有技術中已知,端口注冊命令是光纖信道命令,其中將節(jié)點接入連接在SAN上的存儲裝置。在結構將光纖信道ID(S-ID)指定給節(jié)點之后,該節(jié)點可以執(zhí)行PLOGI命令。正如在已有技術中所知的,當節(jié)點執(zhí)行光纖接入(FLOGI)命令時,可以指定節(jié)點的S-ID。
在步驟102中,群集節(jié)點的S-ID和WWN被摘錄出來。該摘錄工作可以在不同時刻進行。例如,在節(jié)點發(fā)出PLOGI命令時進行摘錄。一旦摘錄完成后,便更新S-ID和WWN,并將它們存儲在計算機可讀媒體上。在一些實施例中,計算機可讀媒體是SAN的一部分,并可以由SAN的多種裝置訪問。
在步驟104中,相對于指定的節(jié)點保留LUN預留資源。實際上,指定的節(jié)點有特定的權利使用保留的LUN。如上所述,群集節(jié)點經(jīng)常用脈動信號與另一個群集節(jié)點聯(lián)絡。在步驟106中,SAN裝置可以發(fā)現(xiàn)沒有適時接收到脈動信號。盡管沒有接收到脈動信號只說明脈動發(fā)生器與脈動接收器之間的通訊聯(lián)系中斷,但如步驟108所示,其從失敗的結果可以判斷出群集節(jié)點是不可操作的。
在圖2所示實施例中,對節(jié)點不可操作的判斷導致其它節(jié)點發(fā)出SCSI復位命令。如步驟110所示,對于已經(jīng)確信節(jié)點是不可操作的(“死”節(jié)點)情況,發(fā)出SCSI復位的命令,以解除該節(jié)點保持的LUN保留。在步驟112中,SCSI復位命令轉換成第三方進程退出命令。這種轉換可通過例如運行資源管理器來完成。
在步驟114中,第三方以“死”節(jié)點的名義發(fā)出對“死”節(jié)點的退出命令。例如,資源管理器可以進入存儲“死”節(jié)點的S-ID和WWN的計算機可讀媒體中。資源管理器可以使用“死”節(jié)點的S-ID和WWN退出“死”節(jié)點。該第三方執(zhí)行退出,將導致退出節(jié)點所保留的LUN預留資源釋放。
如圖2的步驟116所示,群集的其它節(jié)點也可以退出和被退出,并且循環(huán)初始化協(xié)議(LIP)的鏈接復位開始初始化。在步驟118中的LIP鏈接復位之后,步驟120產(chǎn)生狀態(tài)變化通告。在圖2所示實施例中,狀態(tài)變化通告導致激活沒有死的群集節(jié)點,以完成端口注冊,并尋找LUN預留資源。在步驟122中可看到被激活的群集節(jié)點的注冊。如果“死”節(jié)點沒有死,它便能夠取回其LUN保留。如“死”節(jié)點死了,則其它群集節(jié)點可以占據(jù)由“死”節(jié)點保留的LUN預留資源。實際上,由死節(jié)點保留的存儲資源能夠被“活”節(jié)點利用其導致對存儲資源更好的利用而不需SCSI復位。
從圖3可看到在群集計算環(huán)境中管理存儲資源的另一個方法實施例200。圖3所示的方法與圖2的方法相同,都是由資源管理器完成的。該資源管理器可以設在任何地方。例如,可以將該管理器設到交換機,節(jié)點或與光纖信道結構連接的存儲控制器上。
如步驟202所示,方法200包括接收SCSI LUN預留資源命令。典型的SCSI預留資源命令由SCSI復位而清除。如上所述,SCSI復位會導致群集計算環(huán)境中出現(xiàn)很多問題。這樣在步驟204中,使用RESERVE服務操作,將SCSI復位命令轉換成SCSI持續(xù)預留命令。例如從SCSI保留到SCSI持續(xù)保留的轉換是由運行資源管理器完成的。如節(jié)點SCSI預留命令的為原有節(jié)點而使步驟206所示,持續(xù)預留命令可以使節(jié)點保留持續(xù)的LUN預留資源。在步驟208中,判斷出占據(jù)的節(jié)點是不可操作的。根據(jù)這種判斷發(fā)出SCSI復位命令。步驟210中的SCSI復位命令根據(jù)服務器的CLEAR操作,在步驟212中轉換成SCSI持續(xù)預留命令。在操作中,使用CLEAR服務操作的SCSI持續(xù)預留命令釋放由最初的SCSI持續(xù)預留命令而保留的LUN預留資源。步驟214對LUN的釋放有效地將在步驟208中判斷為不可操作的節(jié)點所保留的存儲資源釋放。這樣導致群集計算環(huán)境中對存儲資源進行更好地初始化,并且不利用SCSI復位就能夠完成這種更好的初始化工作。
本發(fā)明也考慮到了上述實施例的各種變化。例如,在具有任何數(shù)量的拓撲的SAN中都可完成本發(fā)明的實施例。例如,可以有多個存儲控制器,可以有在每個群集節(jié)點上運行的資源管理器,或者可以有在群集計算環(huán)境的每個區(qū)中運行的單一的資源管理器。
盡管已經(jīng)詳細描述了本發(fā)明公開的實施例,但應理解在不脫離其構思和范圍的情況下,本發(fā)明的實施例還有各種變化,替代和修改。
權利要求
1.一種計算機系統(tǒng),該系統(tǒng)包括群集計算環(huán)境中的第一節(jié)點;群集計算環(huán)境中的第二節(jié)點;和能夠將小型計算機系統(tǒng)界面復位命令轉換成存儲資源釋放命令的資源管理器。
2.根據(jù)權利要求1的系統(tǒng),其特征在于資源釋放命令包括第三方進程退出。
3.根據(jù)權利要求1的系統(tǒng),其特征在于資源釋放命令包括使用清除操作的小型計算機系統(tǒng)界面持續(xù)保留的命令。
4.根據(jù)權利要求1的系統(tǒng),其特征在于該系統(tǒng)還包括用于存儲資源管理器的計算機可讀媒體;和一個以通信形式與計算機可讀媒體相連的、并能夠運行資源管理器的中央處理單元。
5.根據(jù)權利要求4的系統(tǒng),其特征在于該系統(tǒng)還包括多個以通信形式與第一節(jié)點相連的計算機平臺;一以通信形式與第一節(jié)點相連的光纖信道交換機;多個以通信形式與光纖信道交換機相連的存儲裝置。
6.根據(jù)權利要求5的系統(tǒng),其特征在于光纖信道交換機包括中央處理單元。
全文摘要
一種用于在群集計算環(huán)境中管理存儲資源的系統(tǒng)和方法。與本發(fā)明公開的技術相關的方法包括保留群集計算環(huán)境中第一節(jié)點的預留存儲資源。進行第一節(jié)點的第三方進程退出,釋放第一節(jié)點保留的預留資源。
文檔編號G06F15/16GK101086697SQ20071013615
公開日2007年12月12日 申請日期2001年2月28日 優(yōu)先權日2000年3月9日
發(fā)明者A·H·塔韋爾, N·V·古延 申請人:戴爾產(chǎn)品有限公司