欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

在多主機計算環(huán)境中用于共享存儲卷的主機卷映射系統(tǒng)和方法

文檔序號:6528301閱讀:542來源:國知局
專利名稱:在多主機計算環(huán)境中用于共享存儲卷的主機卷映射系統(tǒng)和方法
技術(shù)領(lǐng)域
一般而言,本發(fā)明涉及具有兩個或更多個主計算機和至少一個共享數(shù)據(jù)存儲裝置的計算機系統(tǒng)和網(wǎng)絡(luò)。更具體地說,本發(fā)明涉及在具有多個主計算機的計算機系統(tǒng)和網(wǎng)絡(luò)中,特別是在存儲區(qū)域網(wǎng)絡(luò)(SAN)中控制共享存儲器訪問的結(jié)構(gòu)和方法,這些主計算機可能為共享數(shù)據(jù)存儲器造成數(shù)據(jù)完整性問題。
當(dāng)這多個主計算機是由具有不同操作系統(tǒng)的不同主計算機的異構(gòu)(heterogeneous)混合或集合形成時,這一問題特別普遍,但對于主計算機系統(tǒng)的同構(gòu)(homogeneous)混合或集合,這一問題也存在。
在一個示例場合中,一種類型的操作系統(tǒng)(例如由Sun Microsystems公司制造的計算機中的Unix操作系統(tǒng))需要在該存儲裝置的指定地址處的特殊信息,而一種不同的操作系統(tǒng)(例如使用Microsoft公司制造的Windows NT操作系統(tǒng)的計算機)可能需要任何附屬的存儲器有特殊的標(biāo)識信息寫到這同一存儲裝置上的同一個或重疊的地址中。這第二類(Windows NT)將重寫第一類(Unix)計算機所需要的信息,于是,從Unix計算機的角度看,該存儲器將是被破壞的和不可用的。
當(dāng)主機系統(tǒng)101有類似或相同的硬件以及相同的操作系統(tǒng)時,即對主機系統(tǒng)的同構(gòu)組合,也能頻繁地產(chǎn)生出問題的情況。例如,Windows NT4.0操作系統(tǒng)能代表在同構(gòu)或異構(gòu)硬件上的這種問題。每個主計算機(計算機A和計算機B)將向共享存儲器陣列的每個盤寫一個特殊的標(biāo)識性“標(biāo)記(tag)”。最后向該盤或共享存儲器陣列寫入的任何一個計算機將是“贏家”,因為它的“標(biāo)記”或“簽名”將在上次寫操作之后保持原封不動,而其他主機將表現(xiàn)為和被當(dāng)作它們以前從未看見該存儲陣列或該陣列的成員。還有,如果計算機A格式化一個盤,然后另一個計算機B隨后也格式化這同一個盤,則計算機A的格式和數(shù)據(jù)現(xiàn)在都被破壞了。這后一種情景不依賴于各主機操作系統(tǒng)的相似性或差異性。
前面提到了Microsoft Windows NT操作系統(tǒng),我們要指出的是,盡管本發(fā)明的實施示例引用Windows NT、Unix和Novel作為舉例,但本發(fā)明不限于Windows NT、Unix和Novel或任何其他特定的操作系統(tǒng)環(huán)境,相反,它可應(yīng)用于大范圍的計算機系統(tǒng)、服務(wù)器系統(tǒng)、信息存儲與檢索系統(tǒng)等,以及各種操作系統(tǒng),而且更一般地說,它可應(yīng)用于任何計算機和/或信息存儲/檢索系統(tǒng)。
我們現(xiàn)在針對

圖1描述一個示例性分布式計算機系統(tǒng)100,它有第一、第二和第三主計算機101(101-1、101-2、101-3)與陣列控制器104耦合,該陣列控制器104又與存儲子系統(tǒng)108耦合,存儲子系統(tǒng)108由一個或多個邏輯卷構(gòu)成,這里顯示為邏輯盤驅(qū)動器存儲卷(108-1、108-2、108-3…、108-N)陣列。一般地說,這些邏輯卷108可以對應(yīng)于物理硬盤驅(qū)動器裝置或這種物理硬盤驅(qū)動器裝置組。在這一實施例中,三個主計算機101-1、101-2和101-3經(jīng)由光纖通道環(huán)路120通信通道連接到陣列控制器104,而存儲子系統(tǒng)的邏輯卷108經(jīng)由一個適當(dāng)?shù)耐ǖ?22連接到陣列控制器104,例如經(jīng)由光纖通道環(huán)路通信通道或并行SCSI通信通道。對于光纖通道環(huán)路,除了光纖通道物理層及相關(guān)協(xié)議和標(biāo)準(zhǔn)外,還經(jīng)常使用SCSI協(xié)議。光纖通道環(huán)路120對于主機互連是有利的,因為這類接口對于大量主計算機具有靈活性和可擴展性,還有,針對本發(fā)明的結(jié)構(gòu)和方法,有利于現(xiàn)有的對全球范圍編號(world wide Number,WWN)識別的支持。
在計算機系統(tǒng)100中,陣列控制器104把存儲器分成若干邏輯卷108。這些卷通過邏輯單元號(LUN)尋址方案被訪問,這種方案在基于SCSI協(xié)議的存儲系統(tǒng)(包括基于SCSI協(xié)議的光纖通道環(huán)路物理層結(jié)構(gòu))中是通用的。術(shù)語LUN是指一個邏輯單元或邏輯卷,或者在基于SCSI協(xié)議的裝置或系統(tǒng)中是指SCSI邏輯單元或SCSI邏輯卷。本領(lǐng)域普通技術(shù)人員將會理解,物理盤驅(qū)動器的個數(shù)可以與邏輯驅(qū)動器或邏輯卷的個數(shù)相同或者不同;然而,為了在這里的描述簡單明了,我們可互換地使用這些術(shù)語,與物理盤驅(qū)動器相比,焦點主要放在邏輯卷上。將物理裝置賦予、分組或映射到邏輯卷的一般方式在本領(lǐng)域是已知的,這里不再進一步描述。
如本領(lǐng)域已知的那樣,系統(tǒng)100的每個主計算機101有一操作系統(tǒng)。在任何單個主機上的操作系統(tǒng),如Windows NT,都將試圖安裝它檢測到的在主機引導(dǎo)時(例如在主機系統(tǒng)加電或復(fù)位期間)被物理連接的所有邏輯存儲卷108。結(jié)果,在任何一個邏輯卷108上的任何數(shù)據(jù)都能被該操作系統(tǒng)訪問。在新盤存儲器(附加邏輯卷)被添加到系統(tǒng)100從而使主機可用它時,或者當(dāng)一用戶試圖配置該主機已經(jīng)可用的存儲器時,除非受到限制,否則該操作系統(tǒng)(包括Windows NT4.0操作系統(tǒng))將自動地向這些新的存儲裝置寫一個標(biāo)識簽名。
這一標(biāo)識簽名通常包括允許該特定操作系統(tǒng)(如Windows NT)唯一地識別該存儲裝置的信息。除了這些簽字的存在本身,這些簽字的格式和內(nèi)容對于本發(fā)明是不重要的,它們通常由特定操作系統(tǒng)的供應(yīng)商(如Windows NT的Microsoft公司)來建立,而且在本領(lǐng)域是已知的。所以這里不再進一步描述這些簽名的具體內(nèi)容和位置。
通常,在存儲裝置上為該簽名保留一個特定的區(qū)域,全其實現(xiàn)是針對特定的操作系統(tǒng)和安裝的。因此,即使對于有共同操作系統(tǒng)的那些主機,不同的主機安裝也可能引起問題。例如,存儲器大小、操作系統(tǒng)、操作系統(tǒng)的版本和/或修訂版本等,都可能各主機彼此不同。重要的是,一個操作系統(tǒng)可能把重要的數(shù)據(jù)放在通常由于其他原因而在不同操作系統(tǒng)中或在同一操作系統(tǒng)的不同安裝中被保留的區(qū)域里。所以,盡管一個區(qū)域可能是為Windows NT保留的,可惜問題會出在另一個Windows NT系統(tǒng)將把另一個簽名寫在這同一區(qū)域中。對于給定的主機硬件和操作系統(tǒng)安裝,該簽名的位置通常是固定的。一般地說,對于簽名的寫入位置,操作系統(tǒng)供應(yīng)商進行相當(dāng)大的控制,但由于所有這些操作系統(tǒng)假定它們單獨擁有該存儲器,所以沒有一種通用的方式來保證數(shù)據(jù)不被重寫。這種情況使該問題與傳統(tǒng)作法混合在一起,表明需要一種更通用的解決方案,它不需要靠運氣來保持?jǐn)?shù)據(jù)完整性。
作為另一個主機系統(tǒng),例如包含Unix操作系統(tǒng)的系統(tǒng),可能把數(shù)據(jù)存儲在先前寫入Windows NT“簽名”的存儲位置,其后寫入的Unix簽名將破壞先前的簽名和其他數(shù)據(jù)。再有,該簽名本身可能在其后被正常寫操作過程中來自另一個主計算機的數(shù)據(jù)重寫。重寫能在任何時候發(fā)生,但最可能在格式化或初始化過程中發(fā)生。不管在哪種情況,清楚的是存儲在物理裝置和/或邏輯卷上的信息將被破壞。
所以,存在的問題是在傳統(tǒng)的系統(tǒng)100中每個主計算機101有權(quán)完全訪問全部邏輯卷100,沒有任何結(jié)構(gòu)或措施能限制由特定主機或主機組對特定邏輯卷的訪問。
所以需要一種結(jié)構(gòu)和方法,通過有效地測試和認(rèn)證對特定一組主計算機的陣列控制器上的存儲卷、邏輯卷或存儲裝置的訪問并把訪問只限定于被授權(quán)的主機,來解決這一共享訪問問題,于是關(guān)鍵性信息和一般性數(shù)據(jù)都不會被重寫或被破壞。
在一個實施例中,在存儲器中定義數(shù)據(jù)結(jié)構(gòu)的過程包括在該存儲器中定義一個主計算機ID映射數(shù)據(jù)結(jié)構(gòu);在該存儲器中定義一個端口映射表數(shù)據(jù)結(jié)構(gòu),其中包含多個端口映射表條目;在該存儲器中定義一個主機標(biāo)識符列表數(shù)據(jù)結(jié)構(gòu);在該存儲器中定義一個卷許可表數(shù)據(jù)結(jié)構(gòu);以及在該存儲器中定義一個卷號表數(shù)據(jù)結(jié)構(gòu)。在一個特定實施例中,該存儲器是控制硬件裝置的存儲器控制器的存儲器,而該硬件裝置是存儲器子系統(tǒng)的邏輯卷。
本發(fā)明還提供了一個發(fā)明的控制器結(jié)構(gòu),以及實現(xiàn)本發(fā)明的方法的計算機程序產(chǎn)品。
圖2顯示本發(fā)明的主機卷映射結(jié)構(gòu)的實施例,該映射結(jié)構(gòu)包括用于本發(fā)明的結(jié)構(gòu)和方法的各種數(shù)據(jù)結(jié)構(gòu)。
圖3是流程圖,顯示主機卷映射方法的訪問控制和驗證過程的實施例。
本發(fā)明的結(jié)構(gòu)和方法對下述場合特別適用這里一個或多個存儲陣列控制器以一個控制器連接到多個主計算機(或具有多個接口的單個計算機),該控制器將請求與存儲裝置,例如獨立盤冗余陣列(RAID)存儲裝置陣列的數(shù)據(jù)事務(wù)。如已經(jīng)描述的那樣,對于主計算機硬件和主計算機操作系統(tǒng)的同構(gòu)和異構(gòu)組合兩種情況都存在問題,這里異構(gòu)是指或者硬件類型不同或者操作系統(tǒng)不同。通常,硬件異構(gòu)不是一個顯著的問題,因為這已通過定義SCSI和光纖通道環(huán)路的標(biāo)準(zhǔn)解決了。操作系統(tǒng)的異構(gòu)更可能造成受破壞的數(shù)據(jù)。
在一個方面,本發(fā)明結(jié)構(gòu)的主機到卷映射(HVM)特性把對任何特別配置的邏輯卷的訪問限制為只允許單個主機或主機組。這為存儲器陣列提供了數(shù)據(jù)訪問和安全控制,這對于在存儲區(qū)域網(wǎng)絡(luò)(SAN)環(huán)境中保持?jǐn)?shù)據(jù)完整性特別有好處,這里多個主機與一個控制器相連,而且經(jīng)常是與一個外部控制器相連。存儲區(qū)域網(wǎng)絡(luò)(SAN)是指連接到一個存儲資源公用池的一個或多個主計算機的集合。“主機到卷映射(HVM)”特性理想地作為軟件和/或固件計算機程序產(chǎn)品來實現(xiàn),該計算機程序產(chǎn)品在控制器106內(nèi)的處理器或CPU中執(zhí)行,并利用與該處理器關(guān)聯(lián)的存儲器中定義的數(shù)據(jù)結(jié)構(gòu)來改變控制器的操作。通常,本發(fā)明的控制器可以不同于傳統(tǒng)的控制器;但是本發(fā)明也可用于經(jīng)適當(dāng)修改的傳統(tǒng)控制器以提供這里描述的特征。例如,本發(fā)明的計算機程序產(chǎn)品可以存儲在具有光纖通道主機接口和適當(dāng)?shù)拇鎯ζ饕怨┒x和存儲本發(fā)明數(shù)據(jù)結(jié)構(gòu)的控制器中并在其中執(zhí)行,例如Mylex公司的DACSF、DACFF和DACFFX控制器以及其他控制器。
某些示例的Mylex公司控制器的控制器設(shè)計方面在DACSX/DACSF/DACFL/DACFF OEM系統(tǒng)參考手冊固件版5.0-Mylex公司部件號771992-04(Mylex公司,F(xiàn)remont,California和Boulder,Colorado)中做了描述,這里引入作為參考。SCSI-3基本命令,如由光纖通道連接的那些使用SCSI-3命令的裝置所適用的命令,在SCSI-3基本命令,T10/995D修訂版(11a-1997年3月28日)中做了描述,這里也引入作為參考。
通過利用本發(fā)明的HVM,每個邏輯卷108可被配置成對單個主計算機101(例如只是主機101-2)為可見的,或者對選定的一組主計算機(例如只是主機101-1和101-2)為可見的。參考圖1的硬件配置,盡管所有主機101和所有邏輯卷108物理上連接到控制器,但一個簡單的HVM配置將允許主計算機101-1只訪問邏輯卷108-1,主計算機101-2只訪問邏輯卷108-2,而主計算機101-3只訪問邏輯卷108-3。
如這里更詳細描述的那樣,控制器106使用新穎的數(shù)據(jù)結(jié)構(gòu)和節(jié)點名(如世界范圍名(WWN))與每個光纖通道環(huán)路120裝置相關(guān)聯(lián),包括每個主計算機101中安裝的光纖通道主機總線適配器,來唯一地標(biāo)識已經(jīng)登錄到控制器106中的主計算機。(作為選項,可以向外部配置者(configurator)提供已被允許訪問每個邏輯卷的有效主計算機及其相應(yīng)WWN的列表,以提供圖形用戶界面來協(xié)助配置控制器106和配置HVM。)應(yīng)該說明的是,節(jié)點是一個端口或多個端口的集合,而節(jié)點名(Node Name)通常是指與一節(jié)點關(guān)聯(lián)的世界范圍名(WWN)標(biāo)識符。端口名是與一端口關(guān)聯(lián)的世界范圍名稱標(biāo)識符,例如主機或邏輯卷與控制器106相連的端口。
本發(fā)明的HVM結(jié)構(gòu)、方法和計算機程序產(chǎn)品提供了對前面描述的共享訪問問題的一個解決方案,其作法是利用一個唯一的主機標(biāo)識符(主機節(jié)點名標(biāo)識符)與其他結(jié)構(gòu)和過程相結(jié)合,以控制對每個邏輯卷上存儲器的訪問。由于主機節(jié)點名標(biāo)識符的使用對本發(fā)明的操作是重要的,還由于世界范圍名(WWN)是主機節(jié)點名標(biāo)識符的一種現(xiàn)存的有用類型,特別是對于以光纖通道環(huán)路連接的主機和控制器,所以在對HVM進行更詳細的描述之前,先簡要描述WWN的一些屬性。
當(dāng)把主機101連接到陣列控制器106上的通信通道120是一個遵循“光纖通道物理和信號接口”(PC-PH)修訂版4.3,X3T11,1994年6月1日標(biāo)準(zhǔn),信息系統(tǒng)美國國家標(biāo)準(zhǔn))的光纖通道環(huán)路時,在環(huán)路20上的每個裝置,包括利用光纖通道主機總線適配器的每個主機101,都有一個唯一的標(biāo)識符,稱作它的世界范圍名(WWN)107,這里把“光纖通道物理和信號接口”標(biāo)準(zhǔn)引入作為參考。在本領(lǐng)域,特別是對于光纖通道裝置,WWN107是大家都知道的,所以這里只詳細描述對理解本發(fā)明的結(jié)構(gòu)和操作有用的那些方面。
世界范圍名(WWN107)是一個64位標(biāo)識符(8字節(jié)),有60位的值并在前面有4位網(wǎng)絡(luò)地址權(quán)限標(biāo)識符(NANI)用于唯一地標(biāo)識裝置、節(jié)點或端口,包括例如主機總線適配器(HBA),用于將主計算機101與光纖通道通信環(huán)路120連接。這個WWN107對每個光纖通道裝置是唯一的,通常是以號碼(序列號)的形式,該號碼是制造商通過作為光纖通道標(biāo)準(zhǔn)規(guī)范一部分而規(guī)定的過程在適當(dāng)?shù)臉?biāo)準(zhǔn)委員會登記的號碼。它對于所制造的每個光纖通道連接裝置是唯一的。例如,在每個主機中的光纖通道接口或主機總線適配器(HBA)有唯一的WWN。盡管在這個WWN字符或數(shù)字串中有許多字段(field)和子字段,但從本發(fā)明的角度看,許多字段和子字段是與本發(fā)明沒有關(guān)系的,為了本發(fā)明的目的,WWN可方便地認(rèn)為是光纖通道裝置的唯一序列號。WWN的格式和內(nèi)容在“光纖通道物理和信號接口(FC-PH)修訂版4.3,X3T11,1994年6月1日標(biāo)準(zhǔn),信息系統(tǒng)美國國家標(biāo)準(zhǔn)(ANSI)”中有詳細描述,這里引入作為參考。
WWN107用于唯一地標(biāo)識與光纖通道環(huán)路120相連的每個主計算機101,或者更具體地說,是每個主機總線適配器(HBA),它把光纖通道總線120耦合于主計算機系統(tǒng)的處理器和存儲器。這樣,如果在單個主計算機101中安裝了兩個光纖通道HBA,則該主計算機將有兩個WWN與其關(guān)聯(lián),于是有可能不僅識別出通信發(fā)自哪一個主機或在響應(yīng)中應(yīng)該指向哪一個主機,而且還能識別出是該主機的哪一個HBA。由于WWN是通用的而且是當(dāng)前存在的,所以本發(fā)明的一個方面在于使用WWN以允許訪問基于WWN107的存儲卷。再有,盡管其他實施例得益于或需要傳統(tǒng)控制器中未提供的特殊控制器硬件,但至少是本發(fā)明的一些實施例可以在現(xiàn)有硬件中實現(xiàn)。
應(yīng)該指出,我們主要是針對光纖通道環(huán)路120和與這種光纖通道環(huán)路相關(guān)聯(lián)的WWN107來描述本發(fā)明的,但本發(fā)明不限于這種光纖通道環(huán)路或WWN作為僅有的主機節(jié)點標(biāo)識符,而是能用于采取其他通信通道策略和協(xié)議和/或不同的主機節(jié)點標(biāo)識符,例如并行SCSI通道和SCSI ID,盡管這將不代表一種優(yōu)選配置,這是由于SCSI地址數(shù)有限(15)而且這些SCSI裝置之間的物理距離有限(通常約6米),而這些限制中的任何一個在光纖通道通信中都不存在。例如,對于在因特網(wǎng)或萬維網(wǎng)上互連的計算機和存儲器,可以預(yù)見有各種計算節(jié)點標(biāo)識符。
參考圖2,我們現(xiàn)在描述本發(fā)明的主機卷映射(HVM)結(jié)構(gòu)和方法的一個實施例,它所處系統(tǒng)的配置是有多個主計算機101-1、101-2…、101M連接到一個或多個外部存儲裝置陣列控制器(下文中的“控制器”106),還有多個硬磁盤驅(qū)動器配置成與控制器耦合的多個邏輯卷108;這是經(jīng)常用于實現(xiàn)存儲區(qū)域網(wǎng)絡(luò)(SAN)配置的一種配置。主計算機101通過光纖通道判優(yōu)環(huán)路120和/或一個交換機(已知多種類型)連接到控制器106。邏輯卷108與控制器106的耦合可以使用光纖通道判優(yōu)環(huán)路(FibreChannel Arbitrated Loop)122,或者在足以支持單元數(shù)和電纜距離限制的情況下可以通過并行SCSI鏈。如在本領(lǐng)域已知的那樣,邏輯卷108可被配置為RAID或其他存儲器子系統(tǒng)。
再有,盡管這里具體描述的是磁盤驅(qū)動器,但容易理解,可以使用其他形式的數(shù)據(jù)和信息存儲器,例如(但不限于)硬磁盤驅(qū)動器、磁光驅(qū)動器、光驅(qū)動器、CD-ROM、DVD、光盤、可卸下介質(zhì)如lomega ZIP盤和lomega JAZ盤、帶驅(qū)動器、固態(tài)存儲器裝置以及其他數(shù)據(jù)和信息存儲裝置。最后,HVM結(jié)構(gòu)和方法可以應(yīng)用于希望由另一個裝置來控制對一個裝置的訪問的任何場合,因此,盡管我們描述的是由每個主計算機控制對邏輯存儲卷108的訪問以保持?jǐn)?shù)據(jù)完整性,但本發(fā)明的方法可以容易地應(yīng)用于為了任何其他理由而控制對任何其他計算機外圍裝置的訪問。例如,可能限制特定的計算機訪問彩色打印機和CD-ROM記錄裝置,其中尚未對使用這些較昂貴的計算機外圍設(shè)備付款,或者由于安全的理由,這里只舉出少數(shù)幾個可能希望控制訪問的場合。
我們現(xiàn)在參考圖2中的計算機系統(tǒng)201來描述本發(fā)明的訪問控制和驗證過程(ACVP)300的一個實施例。圖2a顯示控制器106以及它與主計算機101和邏輯卷108的關(guān)系,還包括控制器的NVRAM182中定義的數(shù)據(jù)結(jié)構(gòu)的頂級圖示。圖2b顯示數(shù)據(jù)結(jié)構(gòu)的補充細節(jié)。這里使用的短語“數(shù)據(jù)事務(wù)(data transaction)”是指主機101和陣列控制器106之間的信息傳送,包括像從陣列控制器106讀數(shù)據(jù)和向其寫數(shù)據(jù)這些典型操作。當(dāng)主計算機101在光纖通道總線120上發(fā)出一個數(shù)據(jù)傳送命令(通常為讀或?qū)懻埱?時,一次數(shù)據(jù)事務(wù)便開始了,或者說主計算機101發(fā)起了一次數(shù)據(jù)事務(wù)。
在存儲器陣列中的每個邏輯卷被賦予或者說被關(guān)聯(lián)于一個卷數(shù)據(jù)結(jié)構(gòu)140,該結(jié)構(gòu)的一個元素是卷WWN表(VNT)130。這些VNT表(130-1,130-2,…,130-N)可以認(rèn)為是一些單獨的小表或單個較大的表,但在任何情況下,它們都提供了在其后的搜索或查詢操作中使用的VNT數(shù)據(jù)結(jié)構(gòu)。(下文中我們將擴展卷數(shù)據(jù)結(jié)構(gòu)概念的描述,以包括卷許可表160。)例如,邏輯卷108-1與VNT130-1相關(guān)聯(lián),邏輯卷108-2與VNT130-2相關(guān)聯(lián),而邏輯卷108-N與VNT130-N相關(guān)聯(lián)。這一個或這些個VNT表作為存在在控制器106的非易失存儲器(NVRAM)182中的控制器106配置數(shù)據(jù)的一部分被存儲起來,而且希望的是存儲在與那個控制器106關(guān)聯(lián)的盤(邏輯卷)上。這一配置通常稱作“盤上配置(COD)”,可由供應(yīng)商獨特直接命令訪問(讀和寫),這些命令允許存儲卷陣列108被初始配置和/或在必要時重新配置。這些供應(yīng)商獨特命令將在本說明中其他地方描述。
每個卷WWN表130在任何給定時刻有有限數(shù)量的條目,每個被允許訪問與其相關(guān)聯(lián)的邏輯卷108的WWN有一個條目。但是,盡管在任何一個卷WWN表130中條目的大小或個數(shù)在任何給定時刻是限定的,這限定的個數(shù)對應(yīng)于被允許訪問該卷的光纖通道裝置(主機或HBA)的個數(shù),但卷WWN表的大小是不固定的,它能在必要時擴展到任何大小,從而包含所需要的光纖通道裝置條目數(shù),只是在實踐的意義上受限于為存儲這些條目所能得到的存儲器。在一個實施例中,如果與邏輯卷關(guān)聯(lián)的VNT中全部條目為零,則該零值用于表明所有主機可以有對那個特定邏輯卷的訪問。
在一個數(shù)據(jù)事務(wù)的開始,如果一個主計算機101希望訪問由控制器106控制的邏輯卷108,那它必須登錄或者標(biāo)識它的訪問請求。主機101首先經(jīng)由控制器106登錄到邏輯卷存儲器陣列108,然后提出訪問特定邏輯卷的請求。這一登錄的各方面是光纖通道判優(yōu)環(huán)路協(xié)議的一個傳統(tǒng)部分,這里不予詳述。(參見光纖通道判優(yōu)環(huán)路協(xié)議標(biāo)準(zhǔn)和光纖通道物理和信號接口,這里被引入作為參考。)作為這一登錄事務(wù)的一部分,告知陣列控制器106一個主機101正在試圖與邏輯卷108連接,并以命令包109的形式發(fā)送與發(fā)請求的主機101(或與主機101關(guān)聯(lián)的HBA103)對應(yīng)的唯一WWN107以及環(huán)路ID152。
隨著登錄過程的繼續(xù),控制器106根據(jù)所收到的環(huán)路ID152識別那個主機的主機索引(HI)151。在一個實施例中,主機索引151是由控制器根據(jù)主機試圖登錄到光纖通道端口的順序依次產(chǎn)生的。第一個試圖登錄的主機將被賦予HI=0,第二個主機將被賦予HI=1,依此類推。另一種情況是可以實現(xiàn)其他主計算機HI賦值規(guī)則。如下文中更詳細描述的那樣,主機索引151的作用或操作是作為一個指針以允許簡化的對存儲在主機WWN列表153中的信息的訪問和間接進入卷WWN表(VNT)130和卷許可表(VPT)194。在一個實施例中,主機索引含有4位,于是至少16個不同的主機能被唯一地標(biāo)識,而其他實施例提供更多位從而允許有更多的主機被唯一地標(biāo)識。
需要指出的是,在這一試圖登錄之前,先前已登錄到控制器106的主計算機101的WWN107第一列表被存儲于定義在控制器106的存儲器(NVRAM)182中的主機WWN列表153數(shù)據(jù)結(jié)構(gòu)中,并由主機索引151編排了索引。例如,在圖2中,主機WWN列表153包括被編索引的存儲器用于線性列表中的可多達256(編號0-255)個主機WWN107條目。在該列表中的WWN條目(例如與HI=0對應(yīng)的條目顯示為十六進制的“20.00.00.E0.8B.00.00.07”)是示例性的,不一定與所制造的裝置相關(guān)聯(lián)的過去、現(xiàn)在或?qū)淼膶嶋HWWN有任何關(guān)系。在主機WWM列表153中的空存儲位置用“FF.FF.FF.FF.FF.FF.FF.FF”指示。
也定義在控制器106的存儲器(NVRAM)182中的第二個數(shù)據(jù)結(jié)構(gòu),或者說存儲主機索引列表151的主機ID映射列表155數(shù)據(jù)結(jié)構(gòu)由光纖通道環(huán)路ID152編排索引。這個主機ID映射列表155把每個環(huán)路ID152映射到主機索引151,如圖2b中所示。在一個實施例中,在連續(xù)存儲器存儲位置中的環(huán)路ID152是連續(xù)數(shù)(指針),而主機索引151值是不連續(xù)的,是由二字節(jié)的16進制值表示的。
主機ID映射列表155由主機環(huán)路ID152指針查詢。在圖2b中描繪的例子中,與一特定的收到命令109關(guān)聯(lián)的主機環(huán)路ID152是值“23”,所以用作進入主機ID映射表155的指針或索引,以選擇主機ID映射155的條目環(huán)路ID號23(實際上是從零條目開始的第24個條目)。主機ID映射155條目號23含有主機索引“01 h”,它又用作進入主機WWN列表153的指針或索引,以選擇與那個主機索引相關(guān)聯(lián)的WWN107,在這一情況中,第二條目從位置零開始,這里WWN是“20.00.08.00.09.00.34.12”。
在圖2的實施例中,控制器106對全部主機端口114、184只保持一個主機WWN列表153;而且即使對于多個控制器106的情況,這一結(jié)構(gòu)和過程允許對光纖通道連接拓外做最簡單的表達,即不管主機與哪個端口或控制器通信,該特定主計算機的主機索引(HI)151都保持不變。
一旦在主計算機登錄陣列控制器106時建立了主機WWN列表153和主機ID映射列表155,并作為這些登錄的結(jié)果由陣列控制器產(chǎn)生卷WWN表130,這一過程便能對試圖登錄的主機認(rèn)可或者拒絕訪問。
我們現(xiàn)在描述一個示例性的LUN到邏輯卷映射(卷映射)結(jié)構(gòu)和過程。
“卷映射”(VM)是一個過程,這里控制器106把特定的光纖通道(由接收該命令的I/O處理器標(biāo)識)、光纖通道環(huán)路ID以及SCSI LUN映射到一特定的邏輯卷。SCSI LUN是到邏輯存儲卷的一個路徑?!爸鳈C到卷映射(HVM)”允許特定的主機(由光纖通道、光纖通道環(huán)路ID以及SCSI LUN標(biāo)識)到邏輯卷,從而擴展了卷映射(VM)的概念、方法和結(jié)構(gòu)。所以,HVM允許對卷的主機訪問控制,而VM不允許。根據(jù)光纖通道約定,基于硬件、軟件或協(xié)商過的設(shè)置來賦予主計算機環(huán)路ID,但也可以與本發(fā)明的結(jié)構(gòu)和方法結(jié)合使用其他賦值規(guī)則。
卷映射特性為控制器106、端口114、光纖通道I/O處理器184以及邏輯卷108組合維持一個端口映射表190形式的卷映射表。這允許指定的邏輯卷作為不同的LUN出現(xiàn)在每個主機端口114上。可能有多個主機端口114而且對每個端口可能有多個光纖通道I/O處理器184,而每個主機端口與特定的控制器106關(guān)聯(lián)。借助光纖通道環(huán)路特性或SCSI協(xié)議和/或規(guī)范,通常可能有多個主計算機連接于一個或一些控制器主機端口。允許特定邏輯卷作為不同的LUN出現(xiàn)在每個主機端口是有好處的,因為它在允許主機訪問該邏輯卷方面可以有大的靈活性,而且對于下文要更詳細描述的HVM環(huán)境,這一特性特別有好處,因為所允許的靈活性允許存儲卷映射到有異構(gòu)操作系統(tǒng)的主計算機的異構(gòu)集合。這些系統(tǒng)的每一個將對映射存儲器有特定的要求,而接納這些不同的存儲器映射要求則有利地依賴于以多種不同的方式映射存儲器的能力。
卷映射的思想是把連到陣列控制器的物理盤驅(qū)動器的存儲容量分割成一些“邏輯卷”,然后,通過對每個邏輯卷賦予一個訪問路徑并進行檢驗以確認(rèn)試圖使用的訪問路徑有效,以此來控制主計算機對這些邏輯卷的訪問。通常,該訪問路徑包含主機到控制器端口114(即哪個主機I/O處理器184),主機處理器184的SCSI ID(或光纖環(huán)路ID),以及讀或?qū)懨畹腟CSI LUN號。
在端口映射表190內(nèi)含有的端口映射表條目191有利地作為圖2b中所示每個控制器106、每個主機通道184以及每個邏輯卷108的例子,規(guī)定了每個主機端口114和主機端口I/O控制器184如何通過陣列控制器106與每個邏輯卷108相連。端口映射表190含有多個端口映射表條目191,每個控制器106、主機I/O處理器184以及邏輯卷108的組合有一個條目。每個端口映射表條目191包括含有這一端口上邏輯卷的環(huán)路ID的一個8位(1字節(jié))目標(biāo)ID192、含有該命令所指的這一端口上的邏輯卷的LUN號(也稱作目標(biāo)環(huán)路ID)的一個8位(1字節(jié))LUN193、一個32位卷許可表194、以及存儲各種標(biāo)志指示符的標(biāo)志位195字段(8位)。
標(biāo)志位有特殊的功能,如果“有效”標(biāo)志(位6)被清除,則所有主機被允許訪問該邏輯卷。如果“有效”標(biāo)志(位6)被置為“1”而且卷許可表還是全零,則任何主機都將不能訪問該邏輯卷。
卷許可表194是一位標(biāo)志隊列,它從位位置0到位位置255。根據(jù)支持的裝置數(shù),可提供多些或少些位數(shù)。如果這些位中有一位不為零,則邏輯卷108可以被具有該WWN的主機訪問,該WWN是在卷WWN表130中相應(yīng)的主機索引位置處找到的。例如,如果卷許可表中的位置5被置為1(“1”),則檢驗卷WWN表130的位置5(HI=5),并讀取或查詢在那個位置包含的WWN。具有這個WWN的主機將被允許訪問這一邏輯卷。
端口映射表條目191有利地作為例子,用于說明單控制器情況中的控制器101或多控制器(例如雙工控制器)配置下的每個控制器、每個主機通道以及每個邏輯卷的情況。這意味著存在一個端口映射表190,它定義每個主機端口(控制器106中的主計算機光纖通道I/O處理器184)如何與每個邏輯卷相連。
一旦配置了邏輯卷108,控制器106便在其處理器存儲器中為每個邏輯卷維護一個卷許可表194,它含有被允許訪問該邏輯卷的主機的WWN列表。這個表根據(jù)WWN標(biāo)識主計算機101中哪些被允許訪問與該控制器連接的每個特定邏輯卷。一個控制器106通??赡苡卸鄠€主機端口114和盤驅(qū)動器端口115,以及相應(yīng)的在每個端口的I/O處理器184、185。I/O處理器,例如主機I/O處理器、光纖通道I/O處理器184、185,可以是相同類型的,但它們被分類為主機端口184(用于與主計算機通信)或盤端口185(用于與盤通信)。
在本發(fā)明的一個實施例中,一種智能SCSI處理器(ISP)芯片用于光纖通道I/O處理器184、185。ISP處理器芯片由Q-Logic公司制造,可由Q-Logic公司(3545 Harbor Blvd,Costa Mesa,CA 92626)得到。在“ISP產(chǎn)品家族”中,Q-Logic公司制造多種ISP芯片。
控制器106使用由主機請求的LUN號和收到命令的主機到控制器端口114、115(或184、185)的標(biāo)識,這二者都是由ISP以命令產(chǎn)生的,來確定該主機正在試圖訪問哪個邏輯卷。光纖通道協(xié)議芯片(如ISP)的操作在本領(lǐng)域是公知的,這里不再進一步詳細描述。
控制器106使用卷WWN表130確定被允許的和不被允許的任何特定主計算機對一特定邏輯卷的訪問。如果一個主計算機101向控制器106發(fā)送一個新命令。該控制器在服務(wù)這個主機命令之前,先要針對表130中的數(shù)據(jù)來驗證WWN、控制器端口以及LUN。如果對于該邏輯卷該WWN、LUN和主機到控制器端口信息是有效的,則由主機請求的命令被正常地完成。但是,如果該WWN、LUN和主機到控制器端口組合對該邏輯卷是無效的,則所請求的命令不被正常地完成,于是返回一個狀態(tài),指出該特定邏輯卷不被支持。(但是,發(fā)生三個例外,這在下文中描述。)在本發(fā)明的一個特定實施例中,作為固件301實現(xiàn)的程序代碼使得不能被確認(rèn)有效的那個命令以“檢查條件”這一狀態(tài)完成,同時感知關(guān)鍵字設(shè)為”非法請求(05h)和感知代碼設(shè)為“邏輯單元不被支持(25h)”。
我們現(xiàn)在把這一描述聚焦到本發(fā)明的主機卷映射(HVM)結(jié)構(gòu)和方法的一個實施例。在這方面,圖2b中顯示了控制器106、主機101以及邏輯卷108上存在的各種數(shù)據(jù)結(jié)構(gòu)、列表、位映射等以及它們彼此之間的關(guān)系。每個與主計算機101耦合的光纖通道環(huán)路120存在一個WWN107,這提供了一個機會可以利用本發(fā)明方法中的WWN來為每個邏輯卷108建立被允許的WWN的分離表,即卷WWN表130。只有當(dāng)要從特定邏輯卷108請求數(shù)據(jù)的特定主計算機的WWN被包含在與該特定邏輯卷108相關(guān)聯(lián)的卷WWN表130中的時候,盤陣列控制器106才允許對每個特定邏輯卷108的訪問。該WWN必須存在于該表中,如果它存在,而且該主機已登錄到該陣列上,那么只需再檢查卷許可表來驗證訪問。對于有N個邏輯卷的陣列,在系統(tǒng)中提供N個卷WWN表130(130-1、130-2、130-3、…、130-N)。如果所有卷可以由同一組主計算機訪問,則這N個卷WWN表中每個將含有相同的主機WWN列表;然而,當(dāng)不同的卷可由不同的主機訪問時,邏輯卷的N個卷WWN表的內(nèi)容通常是不同的。
在這一點,陣列控制器106搜索與每個邏輯卷關(guān)聯(lián)的所有卷WWN表130(即表130-1、130-2、…、130-N),以確定發(fā)請求的主機被允許訪問哪個(如果有的話)邏輯卷。當(dāng)一個主機的世界范圍名出現(xiàn)在與一個邏輯卷關(guān)聯(lián)的卷WWN表130中時,該主機將被允許訪問那個邏輯卷,而當(dāng)那個主機的世界范圍名沒有出現(xiàn)在那個表中時,該主機將不被允許訪問那個邏輯卷。該陣列控制器這樣控制訪問。
卷許可表194是在搜索進行過程中產(chǎn)生的,并作為端口映射表130的一部分被保持。卷許可表194包括許可指示符195,它指出是否允許具有HI的特定主機訪問該邏輯卷上的數(shù)據(jù)。這些VPT194也顯示在圖2b中,并且標(biāo)識哪些主機(根據(jù)主機索引151)被允許訪問和哪些主機不能允許訪問。
在進行卷WWN表130搜索時,將根據(jù)搜索結(jié)果把特定主機(由主機HI標(biāo)識)的卷許可表194條目或者設(shè)為“真”(等于1)或者設(shè)為“假”(等于0)。例如,如果卷WWN表130搜索表明一個主機應(yīng)被允許訪問一個特定邏輯卷(當(dāng)那個主機的WWN出現(xiàn)在與那個卷關(guān)聯(lián)的卷WWN表130中的時候),則對那個主機(由其HI標(biāo)識)的卷許可表194條目(允許標(biāo)志195)將設(shè)置為“真”或“1”,表明該主機可以對那個邏輯卷進行訪問,反之,如果查詢表明該主機的WWN沒有出現(xiàn),則那個主機(由其HI標(biāo)識)的卷許可表194條目(允許標(biāo)識195)將設(shè)置為“假”或“0”。
當(dāng)主計算機101試圖讀或?qū)戇壿嬀?08時,由控制器108確定這個發(fā)請求主機的HI151,其根據(jù)是由光纖通道I/O處理器184返回的那個主機的光纖通道環(huán)路ID152以及完全定義該操作的詳細信息,包括該讀或?qū)懻埱髮ぶ返腖UN。如果該請求不是一個供應(yīng)商獨特命令(它可能指明試圖配置或重新配置一個卷并需要特殊的處置),則陣列控制器106檢驗對于那個HI和對那個邏輯卷的卷許可表194。如果與那個HI關(guān)聯(lián)的許可指示符是真(“1”),則該請求被正常執(zhí)行。就是說,使用對邏輯卷讀或?qū)懙恼_^程來執(zhí)行該讀、寫或其他訪問請求。反之,如果與那個HI關(guān)聯(lián)的和該請求針對的那個邏輯卷的許可指示符是假(“0”),則該讀和寫命令被拒絕,并以錯誤條件回送到發(fā)出該命令的主計算機。
當(dāng)請求為“查詢”命令或“供應(yīng)商獨特”命令或“報告LUN”命令時,存在特殊的條件。這些命令通常與確定該系統(tǒng)的配置或特征相關(guān)聯(lián),或者與該系統(tǒng)或其部件(例如控制器106)的配置或重配置相關(guān)聯(lián)。在本說明書的其他地方更詳細地描述這些特殊命令的各方面。對于查詢、供應(yīng)商獨特以及報告LUN類命令之外的其他命令,如果由一主機對一邏輯卷提出請求,而該邏輯卷沒有對那個主機的許可,則陣列控制器將聲明一個錯誤件條并拒絕訪問。
如果該主機有許可,而且該命令既不是查詢命令,也不是供應(yīng)商獨特命令,也不是報告LUN命令,則該命令被正常地處理。正常處理一個讀命令意味著一旦接收了一個讀命令,陣列控制器將從附屬的一個或一些盤驅(qū)動器(邏輯卷)讀取數(shù)據(jù),并把這些數(shù)據(jù)返回給該主機。一旦收到寫命令則陣列控制器把主機發(fā)送的數(shù)據(jù)存儲到附屬的一個或一些盤驅(qū)動器中。除了這些程序上的步驟外,控制器106還應(yīng)該確認(rèn)該邏輯卷是被映射到接收命令的控制器端口。由于能有多個主機到控制器端口114、184;而且一個邏輯卷能被映射到任何單個端口或任何選定的多個端口,或者不映射到任何端口;所以控制器106應(yīng)該保證該邏輯卷能通過接收該命令的特定主機到控制器端口被訪問。該控制器還應(yīng)確認(rèn)該邏輯卷被映射到該命令的邏輯單元號(LUN)。由于每個端口能有許多邏輯單元,如在SCSI和光纖通道規(guī)范中定義的那樣,這允許一個端口去訪問許多裝置。最后,該控制器應(yīng)確認(rèn)對這一邏輯卷該WWN是有效的,這些已經(jīng)描述過了。
這些過程允許主機101在允許訪問時讀和寫數(shù)據(jù),去識別在該陳列和該計算機系統(tǒng)100中存在邏輯卷108并被映射到那個邏輯單元號(LUN),但是,當(dāng)不允許訪問時,在該邏輯卷上的數(shù)據(jù)不允許被訪問和可能被改變。向主機系統(tǒng)提供識別邏輯卷的存在和被映射到特定邏輯單元號的能力是符合希望的,因為遵從SCSI標(biāo)準(zhǔn)是所希望的,而且SCSI協(xié)議需要允許任何主計算機確定哪個存儲器是可用的以及那個存儲器的參數(shù)(大小、傳送能力等)是什么。
陳列控制器106的配置經(jīng)常是存儲在盤上的特殊保留區(qū)上,這稱作“盤配置”(COD)。這允許在替換陣列控制器時更有效地進行陣列控制器106的配置(例如在一個控制器失效之后)。該替換控制器從盤中檢索原來的配置自動恢復(fù)它,而不必在單獨的費時的重新配置過程中去弄清楚配置信息。當(dāng)盤配置(COD)空間有限時,被連接主機的最多個數(shù)也被限制,例如限制為某一主機數(shù),例如16個主機。在COD不受限制的其他實施例中,被連接主機最多個數(shù)參數(shù)可以設(shè)為256個條目,從而允許有足夠多的條目用于根據(jù)光纖通道規(guī)范全填滿的環(huán)路。
除了卷WWN表130,在陣列控制器106中的固件還使用主機ID映射155把主計算機光纖通道環(huán)路ID152轉(zhuǎn)換成正確的卷WWN表130條目。這允許主機101改變它們的特定光纖通道環(huán)路ID152而不影響卷WWN表130。對陣列控制器106上的每個光纖通道端口維持一個主機ID映射155。能容納的光纖通道主機節(jié)點(WWN)名的最多個數(shù)設(shè)為256,以允許在0至255范圍內(nèi)的任何環(huán)路ID。
首先以含有HVM特性的固件引導(dǎo)控制器106,接著使光纖通道復(fù)位的第一環(huán)路初始化基元,在控制器106中執(zhí)行的固件從環(huán)路120上的所有主機101檢索登陸信息。該固件由這些登陸信息構(gòu)建卷WWN表130以及主機ID映射表155。一前一后的這兩個表向固件提供了把來自光纖協(xié)議芯片(例如ISP芯片)的嵌在一個新命令中的環(huán)路ID152正確地翻譯成主機索引151的能力,而該主機索引151又以特定的WWN107來標(biāo)識主機101。事實上,環(huán)路ID152是這樣被映射到主機WWN107的(1)首先把環(huán)路ID152映射到主機索引151,(2)然后把主機索引151映射到主機WWN107。這一方法是有利的,因為只需要小量的(最小量的)查詢和比較以確定是否應(yīng)允許一個特定主機訪問一個邏輯卷。
我們針對圖了(圖3a和圖3b)的流程圖著重說明本發(fā)明過程的一個實施例300,它以確定是否已有一主機試圖登陸開始(步驟302)。當(dāng)檢測到一個主機試圖登陸時(步驟302),控制器106在主機WWN列表153中搜索試圖登陸的主機的WWN107。如果找到了試圖登陸的控制器的WWN(步驟306),則該主機的WWN107在主機WWN列表153中的位置便是主機索引151。如果沒找到該WWN,試圖登陸的主機的WWN107被加到主機的WWN列表153(步驟307)的末尾并且該位置是主機索引151。然后,該主機索引151被放入主機ID映射155,放在由主機光纖通道環(huán)路ID152指出的位置(步驟308)。然后控制器106從光纖通道I/O處理184收集下列信息控制器(步驟309)、產(chǎn)生該請求的I/O處理器(步驟310)以及該命令指向的目標(biāo)的邏輯卷(步驟311)。(收集這些信息的過程對實現(xiàn)光纖通道I/O處理器184的特定硬件而言通常是獨特的,所以這是不予以詳細描述。這些信息允許控制器106去識別正確的端口映射表191(步驟312),它含有那個邏輯卷108的卷許可表194。然后控制器106搜索與那個LUN關(guān)聯(lián)的卷名表136以確定那個試圖登陸的主機是否被允許訪問那個邏輯卷108(步驟313)。如果在卷名表130中找到了對那個邏輯卷108匹配的主機WWN107,則該控制器106把由主機索引151指向的卷許可表194條目設(shè)為“真”或“1”(步驟315)。如果對那個邏輯卷108未發(fā)現(xiàn)匹配的WWN,則控制器106把由HI指向的卷許可表194條目設(shè)為“假”或“0”(步驟314)。
控制器106等待要接收的主機訪問請求(例如一個命令)。當(dāng)收到一個主機訪問請求(例如一個讀或?qū)懨睿蛘咭粋€查詢或供應(yīng)商獨特命令時),控制器106確定該命令的類型(步驟302)。一旦收到一個命令,控制器106使確定該命令的類型是一個I/O命令(如讀命令或?qū)懨?還是一個供應(yīng)商獨特命令或查詢命令(步驟303)。
如果該請求是一個I/O命令(例如讀命令、寫命令或查詢命令),則控制器106確定收到該命令的控制器的標(biāo)識(步驟317)、該命令的主機端口(步驟318)以及該命令尋址的LUN和相應(yīng)的邏輯卷(步驟319)。根據(jù)控制器、主機端口I/O處理器以及邏輯卷,定位適當(dāng)?shù)亩丝谟成浔?步驟320);并根據(jù)該命令的目標(biāo)ID識別出主機ID映射中的主機索引(步驟321)。然后控制器106檢驗卷許可表194中由該命令的主機索引的指示的位置,以確定該位置存儲的是“1”位(真)還是“0”位(假)(步驟322)。如果該許可指示符是真,則對該邏輯卷的訪問被允許,并且控制器106正常地處理該命令(步驟325)。然后該過程完成并返回(步驟326)。如果該值是假,則對該邏輯卷的訪問不被允許,控制器106以一錯誤條件指出對那個邏輯卷無可用的存儲空間,于是過程完成并返回(步驟326)。如果該請求不是一個I/O命令,而是一個查詢命令或供應(yīng)商獨特命令,則響應(yīng)取決于命令類型。如果該請求是一個供應(yīng)商獨特命令,則控制器106正常處理該命令返回(步驟304)。
如已經(jīng)描述的那樣,主機到卷映射(HVM)是已描述的陣列控制器的卷映射(VM)能力的增強和擴展,它保持基于每個邏輯卷的端口映射數(shù)據(jù)結(jié)構(gòu)?!盎诿總€邏輯卷”是指對每個邏輯卷說明端口映射數(shù)據(jù)結(jié)構(gòu)。在HVM增強中,我們提供主機的WWN作為進一步訪問路徑限制符。
本發(fā)明的過程300可以有利地作為計算機程序產(chǎn)品301實現(xiàn),定義和存儲在控制器106的存儲器中,通常是NVRAM182,并可選地存儲在主機存儲器中或者存儲在其他存儲介質(zhì)上并可下載到該控制器。程序產(chǎn)品301,或者它的可執(zhí)行部分,從存儲器182移到與控制器106地處理器180關(guān)聯(lián)地RAM181,并由控制器內(nèi)地處理器180執(zhí)行。處理器存儲器181-182是指RAM、ROM、NVRAM及它們的組織。在主計算機101和邏輯卷或盤驅(qū)動器108之間發(fā)送的數(shù)據(jù)在數(shù)據(jù)高速緩存存儲器186中暫存,該數(shù)據(jù)高速緩存存儲器186通過PCI總線接口和存儲器控制器183訪問,當(dāng)然也可使用其它接口。光纖通道I/O處理器184(184-1、184-2、184-3、……、185-N)發(fā)送和接收來自邏輯卷或驅(qū)動器101的數(shù)據(jù),并把該數(shù)據(jù)暫存在數(shù)據(jù)高速緩存存儲器186中。處理器180協(xié)調(diào)所有I/O處理器184-185的活動,并處置包括讀和寫任務(wù)在內(nèi)的各任務(wù)的調(diào)度以及錯誤處理。
本發(fā)明的方法至少是部分地減小了所需搜索的次數(shù),因為在登陸時創(chuàng)建(或更新)了有效組織和構(gòu)成的卷數(shù)據(jù)節(jié)后142,包括與每個邏輯卷關(guān)聯(lián)的卷許可表194。在這里描述的本發(fā)明實施例中,在能確認(rèn)訪問權(quán)限和能安排讀或?qū)懖僮鲿r間之前,只需要檢驗一個字節(jié)(1位)。沒有卷許可表194時本發(fā)明可能提供這一功能的效率不那么高的一種實現(xiàn),于是對所收到的每個讀和寫命令需要單獨地查詢卷WWN表130的每個條目需要搜索和比較多達16個條目,每個條目為8字節(jié)。在完成這些比較之前沒有數(shù)據(jù)傳送,而且會加以顯著的限制和增加響應(yīng)時間,并且減小了整個系統(tǒng)的吞吐能力。在本發(fā)明的最佳實施例中,只需在登陸時進行一次搜索,在其后試用卷許可表194便能很簡單地確定訪問權(quán)限。
上述實施例提供了若干有利特性和能力。這些包括(1)一個邏輯卷映射到只在一個指定主機端口上的單一LUN;(2)一個邏輯卷映射到卷許可表(或主機索引位圖)中被允許訪問該邏輯裝置的所有主機的相同LUN;(3)一個邏輯卷可以映射到不同控制器或不同主機端口上的不同LUN;以及(4)多個邏輯卷可以映射到單個主機端口上的LUNO(或任何其他LUN),如果這些邏輯裝置的卷許可表(或主機索引位圖)沒有重疊的話。
我們現(xiàn)在回來描述某些供應(yīng)商獨特命令,從而能更容易地理解在初始時配置該系統(tǒng)以容納HVM和在希望改變或更新時重新配置該系統(tǒng)的方式。供應(yīng)商獨特命令允許系統(tǒng)100被配置,而且通常是獨立于邏輯卷的。這樣,作為系統(tǒng)100一部分而尚未被配置的陣列控制器106能被配置或重新配置從而與系統(tǒng)100中主機101的唯一WWN107正確地操作。配置控制器,從而針對邏輯卷108和主機101的獨特存儲要求進行正確的操作,這涉及構(gòu)建一個配置數(shù)據(jù)結(jié)構(gòu),以及把該數(shù)據(jù)結(jié)構(gòu)通過一個供應(yīng)商獨特命令傳送給陳列控制器。
我們簡要地描述這些邏輯卷配置步驟。首先,主計算機(與控制器106連接的主計算機101的任何一個)的一個用戶在該主機的內(nèi)部存儲器中構(gòu)建配置數(shù)據(jù)結(jié)構(gòu)。(這一過程還可以根據(jù)從其他信息源收集或可得到的信息自動進行)。接下來,主計算機通過一供應(yīng)商獨特命令的寫配置變量把該配置數(shù)據(jù)結(jié)構(gòu)傳送給陳列控制器106。控制器106響應(yīng)該供應(yīng)商獨特命令,通過向主機返回一個“好SCSI”狀態(tài)來確認(rèn)已成功接收了該命令。第四,在完成這一寫配置供應(yīng)商獨特命令之后,陣列控制器把配置數(shù)據(jù)寫到與該控制器相連的所有盤(邏輯卷)。第五,該主機向陣列控制器發(fā)出復(fù)位控制器供應(yīng)商獨特命令,它使控制器復(fù)位和重啟動。最后,在完成重啟動之后,控制器106按照該配置結(jié)構(gòu)中的數(shù)據(jù)所指定的那樣被配置。
在前文的描述中還指出,與讀或?qū)懨钕啾龋?dāng)所請求的訪問是“查詢”命令或“供應(yīng)商獨特命令”或“報告LUN”命令時存在的特殊條件查詢命令是這樣一個命令,它允許主計算機確定對一特定SCSI邏輯單元是否存在可得到的數(shù)據(jù)存儲空間,并允許主機確定那個SCSI邏輯單元的傳輸特征。它返回指定的信息,詳細說明SCSI、LUN的存儲容量、該LUN的傳輸能力、序列號以及其他信息。供應(yīng)商獨特命令是這樣一個命令,它允許確定和設(shè)置該陣列控制器的獨特特征(例如,沒有在SCSI或光纖通道規(guī)范中定義的因而可能通過標(biāo)準(zhǔn)的SCSI或光纖通道命令或協(xié)議得不到的那些特征,以及允許對存儲陣列108的其它特殊操作。該陣列處理允許未被配置的控制器被重新配置,從而針對所連接的主機正確地操作。供應(yīng)商獨特類命令的實例包括設(shè)置配置命令和讀配置命令,用于讀和設(shè)置陣列控制器的配置,以及通過操作命令,它允許主機直接訪問連到控制器上的盤裝置。這些命令在本領(lǐng)域是公知的,除了必需描述與本發(fā)明有關(guān)的特殊處理外,這里將不再更詳細地描述。
如果該請求是一個查詢命令,陳列控制器106將返回傳統(tǒng)的查詢數(shù)據(jù),并將指出那個主機是否有對該邏輯單元(從而對該邏輯卷)的訪問。如果該主機沒有對該邏輯卷的訪問,則控制器將返回查詢數(shù)據(jù)和外圍限制符,該外圍限制符作為指示符以指明該陣列能支持這個SCSI邏輯單元上的一個裝置,但當(dāng)前沒有任何裝置連到這個SCSI邏輯單元。
以這種方式處置查詢命令,部分原因是SCSI規(guī)范聲明一個SCSI LUN總是應(yīng)該返回查詢數(shù)據(jù)。查詢數(shù)據(jù)是關(guān)于SCSI裝置的狀態(tài)數(shù)據(jù),而且與那個裝置上存儲的數(shù)據(jù)沒有任何關(guān)系。該命令和該主機的一個結(jié)果是確定該裝置是否有任何存儲器,以及確定該裝置的能力如何,例如它傳送數(shù)據(jù)有多快。SCSI協(xié)議在光纖通道層的頂上運行,所以這一描述適用于本發(fā)明的并行SCSI和光纖通道兩種實現(xiàn)。在不需要遵從SCSI規(guī)范的地方,可以代之以其他過程。
最后,如果該請求是一個“報告LUN”命令,而且被尋址的LUN是0(SCSI規(guī)范要求LUN=0),則控制器正常地完成該命令,只報告可由請求該命令的主機訪問的那些LUN。報告LUN命令返回的信息詳細說明在那個光纖通道上和在那個SCSI地址的主機能得到哪些SCSI邏輯單元。
對于查詢、供應(yīng)商獨特和報告LUN類命令以外的其他命令,如果由一主機產(chǎn)生一個對一邏輯卷的請求,而該邏輯卷沒有用于那個主機的許可,則陣列控制器將聲明一個錯誤條件并拒絕訪問。例如,可以為那個命令設(shè)置一個SCSI檢查條件狀態(tài),返回SCSI數(shù)據(jù),并使感知關(guān)鍵詞設(shè)為“非法命令”,把附加感知代碼設(shè)為“邏輯單元不被支持”,由此來聲明錯誤條件檢查條件、非法命令、感知數(shù)據(jù)、感知關(guān)鍵詞、附加感知代碼、外圍限制符和邏輯單元不被支持都是SCSI標(biāo)準(zhǔn)術(shù)語,這里不再進一步描述。
除了這些命令,主機到卷映射(HVM)有利地使用了若干特定的供應(yīng)商獨特直接命令。這里把這些命令稱作主機到卷映射(HVM)直接命令。一個直接命令是一個SCSI供應(yīng)商獨特命令,它允許由陣列控制器發(fā)送和接收配置數(shù)據(jù)。這些主機到卷映射(HVM)直接命令包括讀LUN映射、寫LUN映射和讀卷WWN表。
讀LUN映射命令向主機返回由陣列控制器106維護的卷映射信息。主機需要來自控制器的卷映射信息,以向用戶顯示該邏輯卷陣列的當(dāng)前配置。該映射信息存儲在該控制器配置數(shù)據(jù)中定義的邏輯卷端口映射表數(shù)據(jù)結(jié)構(gòu)中。這些數(shù)據(jù)存儲在陣列控制器106的非易失存儲器中,而且最好是還存儲在盤驅(qū)動器的特殊保留區(qū)(COD)中。
在本發(fā)明的一個實施例中,使用控制器固件中的供應(yīng)商獨特直接命令操作碼(20h)發(fā)送讀LUN映射命令。表1中列出一個命令格式示例。
表1.讀LUN映射供應(yīng)商獨特直接命令CDB格式示例

在這個命令數(shù)據(jù)塊(CDB)格式示例中,LUN字段含有該CDB的邏輯單元號,并被忽略。直接命令操作碼(DCMP OP CODE)是要執(zhí)行的命令,而MDACIOCTL_READLUNMAP(D1h)是讀LUN映射命令的具體命令值。邏輯卷號(最大有效位-MSB和最小有效位-LSB)指定要報告其信息的邏輯卷的裝置號。分配長度(MSB和LSB)指出啟動者(initiator)為返回信息分配的字節(jié)數(shù)。如果該長度為零,則無數(shù)據(jù)被傳送,這不作為錯誤條件處理。當(dāng)控制器已完成所請求字節(jié)數(shù)的傳輸,或少于該字節(jié)數(shù)的全部返回卷映射信息時該控制器終止數(shù)據(jù)傳送階段。所有保留子段和控制字節(jié)(這里它被忽略)應(yīng)為0。
讀LUN映射命令的錯誤條件包括對一錯誤的標(biāo)準(zhǔn)SCSI響應(yīng),包括指定一個無效邏輯卷號。控制器還將響應(yīng)SCSI檢查條件狀態(tài),如在命令中指定一個不存在的邏輯卷時將會發(fā)生的那樣寫LUN映射供應(yīng)商獨特直接命令允許一個啟動者(如一個主計算機)創(chuàng)建或改變由控制器使用的主機到卷映射(HVM)信息。當(dāng)控制器被初始配置時創(chuàng)建主機到卷映射(HVM)信息,而當(dāng)增加或刪除邏輯卷時,或者當(dāng)增加或去掉主計算機時,則改變主機到卷映射(HVM)信息。這已數(shù)據(jù)格式反映端口映射表數(shù)據(jù)結(jié)構(gòu)。寫LUN映射直接命令CDB格式示例于表II。
表II.寫LUN映射直接命令CDB格式示例

寫LUN映射的操作碼(DCMD OP CODE)字段值(MDACIOCTL_WRITELUNMAP)(D2h)指定該直接命令為寫LUN映射。邏輯卷號指定要報告其信息的邏輯裝置的裝置號。分配長度指出啟動者要向控制器發(fā)送的字節(jié)數(shù)。如果該長度為零,則無數(shù)據(jù)傳送,這不作為錯誤條件處理。所有保留字段和控制字節(jié)必須為0。寫LUN映射的錯誤條件包括對一錯誤的標(biāo)準(zhǔn)SCSI響應(yīng),包括指定一個無效的或不存在的邏輯卷號。
讀卷WWN表命令返回由控制器維護的卷WWN表。由這一命令返回的數(shù)據(jù)提供了從主機物理WWN到主機索引的轉(zhuǎn)換,該主機索引由控制器內(nèi)部使用和由讀/寫LUN映射命令使用。當(dāng)主計算機構(gòu)建在寫LUN映射命令過程中發(fā)送的配置信息時,這一信息是必須的。讀卷WWN表供應(yīng)商獨特直接命令的CDB示例示于表III。
表III.讀卷WWN表供應(yīng)商獨特直接命令的CDB示例

標(biāo)簽為操作代碼字段(DCMD OP CODE)的讀主機WWN字段(READ_HOST_WWN_TABLE)指定該直接命令為讀主機WWN表。這一命令可被修改成對每個被支持的主機返回希望字節(jié)數(shù)的數(shù)據(jù)。返回字節(jié)數(shù)通常由該特定主計算機確定。它應(yīng)該準(zhǔn)備好接收控制器發(fā)送的數(shù)據(jù),所以它應(yīng)有足夠的可用空間存儲該數(shù)據(jù)。這通常會因計算機而異。例如,在本發(fā)明的一個實施例中,該命令為每個主機返回12個字節(jié)數(shù)據(jù),而在本發(fā)明的另一實施例中該命令為每個被支持的主機返回192個字節(jié)數(shù)據(jù),而在本發(fā)明的又一個實施例中,在其中實現(xiàn)該命令的固件對每個被支持的主機返回3072個字節(jié)數(shù)據(jù)。
外部配置程序,如GAM(全局陣列管理器)或RAIDfx能使用來自讀卷WN表命令的數(shù)據(jù),以確定關(guān)于該光纖主機電纜連接拓撲結(jié)構(gòu)的一些有限信息。在HVM中賦值可用的主機應(yīng)以它們各自的WWN顯示出來用于光纖通道拓撲結(jié)構(gòu)。主機索引的概念通常對于最終用戶是隱藏的,因為主機索引的賦值時任意的,其主機索引與物理主機沒有固定的關(guān)系。一旦賦予了主機索引,它們將保持固定,直至該配置被清除。還可以可選向用戶提供主機電纜和連接拓撲結(jié)構(gòu)的簡單圖形表示,以協(xié)助最終用戶適當(dāng)?shù)貨Q定一個可行的主機到卷映射(HVM)策略??梢韵蛲獠颗渲贸绦蛱峁┮粋€用于通過網(wǎng)絡(luò)上其它主機連接的存儲器的探測器(probe),使配置程序能把所連接的主機的實際網(wǎng)絡(luò)名與它們各自的WWN關(guān)聯(lián)起來。還可以可選地為遺留系統(tǒng)和先于HVM實現(xiàn)的配置提供翻譯和變換過程。
我們現(xiàn)在描述在HVM環(huán)境中的SCSI命令支持以及在標(biāo)準(zhǔn)SCSI命令環(huán)境中使用主機到卷映射(HVM)時在本發(fā)明的一個實施例中控制器響應(yīng)命令的示例。主機到卷映射(HVM)特性根據(jù)請求命令的主機的標(biāo)識和所發(fā)送的具體命令,限制對邏輯卷的訪問。
控制器總是以好狀態(tài)響應(yīng)來自任何主機和對任何LUN的SCSI查詢命令。如果該主機沒有對該邏輯卷的訪問,則控制器返回查詢數(shù)據(jù),以外圍限制符設(shè)置指出該目標(biāo)能支持這個LUN上的指定裝置類型,但當(dāng)前沒有裝置連接到那個LUN。如果該主機確有對該邏輯卷的訪問,則控制器返回它的正常查詢數(shù)據(jù)。SCSI報告LUN命令總使在LUN0上被支持,不管發(fā)送該命令的主機或接收該命令的控制器端口是哪個。該控制器返回的信息只是關(guān)于發(fā)命令請求的主機有訪問的那些LUN。對于SCSI請求感知命令,如果一主機沒有對針對LUN的訪問,則控制器返回感知數(shù)據(jù),該數(shù)據(jù)具有感知關(guān)鍵字設(shè)為“非法請求”,而附加感知代碼設(shè)為“邏輯單元不被支持”。所有其它標(biāo)準(zhǔn)SCSI命令以“檢查條件”狀態(tài)和自動感知數(shù)據(jù)作為終結(jié),這些自動感知數(shù)據(jù)包含設(shè)置為“非法請求”的感知關(guān)鍵字和設(shè)置為“邏輯單元不被支持”的附加感知代碼。當(dāng)一個命令操作指定邏輯卷時,如果該主機不可以訪問所針對的邏輯卷,則這些命令通常以檢查條件狀態(tài)終止。
作為舉例而不是很限定,本發(fā)明的結(jié)構(gòu)和方法支持多種不同的多主機配置,包括同一NT主機內(nèi)的多HBA,多NT主機,在同一IRIX主機內(nèi)的多HBA以及有混合操作系統(tǒng)(例如IRIX和NT)的多主機。
本發(fā)明的結(jié)構(gòu)和方法還可以應(yīng)用于因特網(wǎng)配置或用于主計算計系統(tǒng)和/或裝置的任何互聯(lián)網(wǎng)絡(luò),如廣域網(wǎng)(WAN)和存儲區(qū)域網(wǎng)絡(luò)(SAN)。在外部通信網(wǎng)速度加快的同時,存儲區(qū)域網(wǎng)給速度保持比它快約10倍。再有,盡管我們描述的是基于光纖通道裝置的WWN的結(jié)構(gòu)和方法,但其它唯一標(biāo)識符也可以使用,例如嵌入某些主計算機處理器芯片(如IntelPentium(奔騰)III微處理器芯片)中的序列號。這些和其他標(biāo)識符可以被選用。隨著外部網(wǎng)(WAN)帶寬變得比得上存儲區(qū)域網(wǎng)絡(luò)(SAN),這里所描述的結(jié)構(gòu)、過程和方法可以實現(xiàn)于因特網(wǎng)上的或主計算機、存儲裝置、信息設(shè)備等的其他互聯(lián)網(wǎng)絡(luò)上的分布式存儲器,其方式很像因特網(wǎng)上網(wǎng)也得分布和鏈接。
再有,這里在上文中描述的方法和系統(tǒng)適合于在各類可抽行介質(zhì)中執(zhí)行,包括存儲器裝置和不同于存儲器裝置的其他介質(zhì),如隨機存取存儲器。能使用其他類型的可執(zhí)行介質(zhì),例如但不限于計算機可讀存儲介質(zhì),它可以是任何存儲裝置,光盤,硬磁盤,ROM,RAM,CR-ROM盤,DVD,光介質(zhì),磁光介質(zhì)或軟盤。
前文的描述為了解釋的目的使用了具體的名稱已提供對本發(fā)明的徹底理解。然而,對本領(lǐng)域技術(shù)人員而言,顯然并不需要這些具體細節(jié)來實現(xiàn)本發(fā)明。在其他情況下,公知的電路和裝置以防框圖的形式顯示,以避免不必要的從下面的發(fā)明中分散注意力。這樣,上文對本發(fā)明具體實施例的描述是為了演示和描述的目的而呈現(xiàn)的。不是要用它們來窮盡地包括本發(fā)明或把本發(fā)明限制于恰好是所公開的形式,顯然,在考慮上文講解的內(nèi)容后,許多修改和變化時可能的。這些實施例的選擇和描述是為了最好地解釋本發(fā)明的原理及其實際應(yīng)用,從而使本領(lǐng)域其他技術(shù)人員能最好地利用本發(fā)明和帶有各種修改的各種實施例,以適合于所預(yù)想的具體應(yīng)用。本發(fā)明的范圍要由下述權(quán)利要求及其等同物定義。
按照條約第19條的修改1.一種在具有多個計算機和至少一個與所述多個計算機相連的硬件裝置的計算機系統(tǒng)中,控制所述多個計算機之一對所述硬件裝置的訪問的方法,所述方法包含使局部唯一標(biāo)識符與所述多個計算機中的每一個相關(guān)聯(lián);在存儲器中定義一個數(shù)據(jù)結(jié)構(gòu),使用所述局部唯一標(biāo)識符來標(biāo)識所述計算機中哪些特定計算機是根據(jù)所述計算機和所述硬件裝置之間的邏輯配置被允許訪問所述裝置的,該邏輯配置允許一個或多個計算機訪問所述硬件裝置;以及查詢所述數(shù)據(jù)結(jié)構(gòu),以確定所述計算機中發(fā)請求的一個是否應(yīng)被允許訪問所述硬件裝置。
2.權(quán)利要求1的方法,其中所述在存儲器中定義一個數(shù)據(jù)結(jié)構(gòu)進一步包含在所述存儲器中定義一個主計算機ID映射數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個含有多個端口映射表條目的端口映射表數(shù)據(jù)結(jié)構(gòu),在所述存儲器中定義一個主機標(biāo)識符列表數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個卷許可表數(shù)據(jù)結(jié)構(gòu);以及在所述存儲器中定義一個卷號表數(shù)據(jù)結(jié)構(gòu)。
3.權(quán)利要求1的方法,其中所述數(shù)據(jù)結(jié)構(gòu)是定義在控制所述硬件裝置的存儲器控制器的存儲器中。
4.權(quán)利要求2的方法,其中所述數(shù)據(jù)結(jié)構(gòu)是定義在控制所述硬件裝置的存儲器控制器的存儲器中。
5.權(quán)利要求2的方法,其中所述計算機標(biāo)識符包含一個世界范圍號標(biāo)識符。
6.權(quán)利要求1的方法,其中所述硬件裝置包含至少一個信息存儲裝置。
7.權(quán)利要求2的方法,其中所述硬件裝置包含至少一個被配置為邏輯卷的硬盤驅(qū)動器存儲裝置。
8.權(quán)利要求2的方法,其中所述硬件裝置包含一個RAID存儲器系統(tǒng),所述控制器包含一個RAID陣列控制器。
10.一個計算機互聯(lián)網(wǎng)絡(luò),包含至少一個共享硬件裝置;多個主計算機,通過通信通道被連接到所述硬件裝置并具有局部唯一節(jié)點標(biāo)識符;一個控制器,被連接在所述多個主計算機和所述至少一個共享硬件裝置之間,并控制所述主計算機對所述硬件裝置的訪問;一個定義在所述控制器的存儲器中的數(shù)據(jù)結(jié)構(gòu),包括(i)主計算機ID映射數(shù)據(jù)結(jié)構(gòu);(ii)含有多個端口映射表條目的端口映射表數(shù)據(jù)結(jié)構(gòu);(iii)在所述存儲器中的主機標(biāo)識符列表數(shù)據(jù)結(jié)構(gòu);(iv)卷許可表數(shù)據(jù)結(jié)構(gòu);以及(v)卷號表數(shù)據(jù)結(jié)構(gòu)。
11.權(quán)利要求10的計算機互聯(lián)網(wǎng)絡(luò),其中所述至少一個共享硬件裝置包含信息存儲裝置。
12.權(quán)利要求10中的計算機互聯(lián)網(wǎng)絡(luò),其中所述至少一個共享硬件裝置包含盤驅(qū)動器存儲子系統(tǒng)的邏輯卷。
13.權(quán)利要求10中的計算機互聯(lián)網(wǎng)絡(luò),其中所述通信通道包含光纖通道判優(yōu)環(huán)路通信通道。
14.權(quán)利要求10中的計算機互聯(lián)網(wǎng)絡(luò),其中所述局部唯一節(jié)點標(biāo)識符包含世界范圍號(WWN)標(biāo)識符。
15.權(quán)利要求10中的計算機互聯(lián)網(wǎng)絡(luò),其中所述硬件裝置包含存儲區(qū)域網(wǎng)絡(luò)。
16.權(quán)利要求10中的計算機互聯(lián)網(wǎng)絡(luò),其中所述至少一個共享硬件裝置包含盤驅(qū)動器存儲子系統(tǒng)的邏輯卷;所述通信通道包含光纖通道判優(yōu)環(huán)路通信通道;以及所述局部唯一節(jié)點標(biāo)識符包含世界范圍號(WWW)標(biāo)識符。
17.一種與一計算機系統(tǒng)一同使用的計算機程序產(chǎn)品,該計算機系統(tǒng)有多個主計算機和至少一個共享硬件裝置,該計算機程序產(chǎn)品包含計算機可讀存儲介質(zhì)和嵌入其中的計算機程序構(gòu)制,該計算機程序機制包含
用于控制所述多個主計算機之一對所述共享硬件裝置的訪問的一個程序模塊,該程序模塊包括指令用于使局部唯一標(biāo)識符與所述多個計算機中的每一個相關(guān)聯(lián);在存儲器中定義一個數(shù)據(jù)結(jié)構(gòu),使用所述局部唯一標(biāo)識符來標(biāo)識所述計算機中哪些特定計算機是根據(jù)所述計算機和所述硬件裝置之間的邏輯配置被允許訪問所述裝置的,該邏輯配置允許一個或多個計算機訪問所述硬件裝置;以及查詢所述數(shù)據(jù)結(jié)構(gòu),以確定所述計算機中發(fā)請求的一個是否應(yīng)被允許訪問所述硬件裝置。
18.權(quán)利要求17的計算機程序產(chǎn)品,其中所述程序模塊進一步包括指令用于在存儲器中定義一個主計算機ID映射數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個含有多個端口映射表條目的端口映射表數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個主機標(biāo)識符列表數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個卷許可表數(shù)據(jù)結(jié)構(gòu);以及在所述存儲器中定義一個卷號表數(shù)據(jù)結(jié)構(gòu)。
19.權(quán)利要求17的計算機程序產(chǎn)品,其中所述程序模塊進一步包含指令用于查詢所述數(shù)據(jù)結(jié)構(gòu),以確定是否允許對所述硬件裝置的訪問。
20.權(quán)利要求17的計算機程序產(chǎn)品,其中所述硬件裝置包含存儲區(qū)域網(wǎng)絡(luò)。
21.一個用于控制對至少一個共享硬件裝置的訪問的控制器,該硬件裝置用通信通道與多個主計算機相連并具有局部唯一節(jié)點標(biāo)識符,所述控制器包含一個處理器;與所述處理器相連的存儲器,并用于存儲指令以處理與所述硬件裝置的輸入/輸出操作和定義數(shù)據(jù)結(jié)構(gòu);所述數(shù)據(jù)結(jié)構(gòu)包含(i)主計算機ID映射數(shù)據(jù)結(jié)構(gòu);(ii)含有多個端口映射表條目的端口映射表數(shù)據(jù)結(jié)構(gòu);(iii)主機標(biāo)識符列表數(shù)據(jù)結(jié)構(gòu);(iv)卷許可表數(shù)據(jù)結(jié)構(gòu);以及(v)卷號表數(shù)據(jù)結(jié)構(gòu)。
22.權(quán)利要求21中的控制器,其中所述至少一個共享硬件裝置包含信息存儲裝置。
23.權(quán)利要求21中的控制器,其中所述至少一個共享硬件裝置包含盤驅(qū)動器存儲子系統(tǒng)的邏輯卷。
24.權(quán)利要求21中的控制器,其中所述通信通道包含光纖通道判優(yōu)環(huán)路通信通道。
25.權(quán)利要求21中的控制器,其中所述局部唯一節(jié)點標(biāo)識符包含世界范圍號(WWN)標(biāo)識符。
26.權(quán)利要求21中的控制器,其中所述硬件裝置包含存儲區(qū)域網(wǎng)絡(luò)。
27.權(quán)利要求21中的控制器,其中所述至少一個共享硬件裝置包含盤驅(qū)動器存儲子系統(tǒng)的邏輯卷;所述通信通道包含光纖通道判優(yōu)環(huán)路通信通道;以及所述局部唯一節(jié)點標(biāo)識符包含世界范圍號(WWN)標(biāo)識符。
28.權(quán)利要求21中的控制器,其中所述指令包括指令用于使局部唯一標(biāo)識符與所述多個計算機中的每一個相關(guān)聯(lián);在所述存儲器中定義一個數(shù)據(jù)結(jié)構(gòu),以根據(jù)所述局部唯一標(biāo)識符來標(biāo)識所述計算機中哪些特定計算機可被允許訪問所述裝置;以及查詢所述數(shù)據(jù)結(jié)構(gòu),以確定所述計算機中發(fā)請求的一個是否應(yīng)被允許訪問所述硬件裝置。
29.權(quán)利要求28中的控制器,其中所述指令進一步包括指令用于在所述存儲器中定義一個主計算機ID映射數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個含有多個端口映射表條目的端口映射表數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個主機標(biāo)識符列表數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個卷許可表數(shù)據(jù)結(jié)構(gòu);以及在所述存儲器中定義一個卷號表數(shù)據(jù)結(jié)構(gòu)。
權(quán)利要求
1.一種在具有多個計算機和至少一個與所述多個計算機相連的硬件裝置的計算機系統(tǒng)中,控制所述多個計算機之一對所述硬件裝置的訪問的方法,所述方法包括如下步驟使局部唯一表識符與所述多個計算機中的每一個相關(guān)聯(lián);在存儲器中定義一個數(shù)據(jù)結(jié)構(gòu),以根據(jù)所述局部唯一標(biāo)識符來標(biāo)識所述計算機中哪些特定計算機可能允許訪問所述裝置;以及查詢所述數(shù)據(jù)結(jié)構(gòu),以確定所述計算機中發(fā)請求的一個是否應(yīng)被允許訪問所述硬件裝置。
2.權(quán)利要求1的方法,其中所述在存儲器中定義一個數(shù)據(jù)結(jié)構(gòu)的步驟進一步包含如下步驟在所述存儲器中定義一個主計算機ID映射數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個包含多個端口映射表條目的端口映射表數(shù)據(jù)結(jié)構(gòu),在所述存儲器中定義一個主機標(biāo)識符列表數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個卷許可表數(shù)據(jù)結(jié)構(gòu);以及在所述存儲器中定義一個卷號表數(shù)據(jù)結(jié)構(gòu)。
3.權(quán)利要求1的方法,其中所述數(shù)據(jù)結(jié)構(gòu)是定義在控制所述硬件裝置的存儲器控制器的存儲器中。
4.權(quán)利要求2的方法,其中所述數(shù)據(jù)結(jié)構(gòu)是定義在控制所述硬件裝置的存儲器控制器的存儲器中。
5.權(quán)利要求2的方法,其中所述計算機標(biāo)識符包含一個世界范圍號標(biāo)識符。
6.權(quán)利要求1的方法,其中所述硬件裝置包含至少一個信息存儲裝置。
7.權(quán)利要求2的方法,其中所述硬件裝置包含至少一個被配置為邏輯卷的硬盤驅(qū)動器存儲裝置。
8.權(quán)利要求2的方法,其中所述硬件裝置包含一個RAID存儲器系統(tǒng),所述控制器包含一個RAID陣列控制器。
10.一個計算機互聯(lián)網(wǎng)絡(luò),包含至少一個共享硬件裝置;多個主計算機,通過通信通道被連接到所述硬件裝置并具有局部唯一節(jié)點標(biāo)識符;一個控制器,被連接在所述多個主計算機和所述至少一個共享硬件裝置之間,并控制所述主計算機對所述硬件裝置的訪問;一個定義在所述控制器的存儲器中的數(shù)據(jù)結(jié)構(gòu),包括(i)主計算機ID映射數(shù)據(jù)結(jié)構(gòu);(ii)含有多個端口映射表條目的端口映射表數(shù)據(jù)結(jié)構(gòu);(iii)在所述存儲器中的主機標(biāo)識符列表數(shù)據(jù)結(jié)構(gòu);(iv)卷許可表數(shù)據(jù)結(jié)構(gòu);以及(v)卷號表數(shù)據(jù)結(jié)構(gòu)。
11.權(quán)利要求10的計算機互聯(lián)網(wǎng)絡(luò),其中所述至少一個共享硬件裝置包含信息存儲裝置。
12.權(quán)利要求10中的計算機互聯(lián)網(wǎng)絡(luò),其中所述至少一個共享硬件裝置包含盤驅(qū)動器存儲子系統(tǒng)的邏輯卷。
13.權(quán)利要求10中的計算機互聯(lián)網(wǎng)絡(luò),其中所述通信通道包含光纖通道判優(yōu)環(huán)路通信通道。
14.權(quán)利要求10中的計算機互聯(lián)網(wǎng)絡(luò),其中所述局部唯一節(jié)點標(biāo)識符包含世界范圍號(www)標(biāo)識符。
15.權(quán)利要求10中的計算機互聯(lián)網(wǎng)絡(luò),其中所述硬件裝置包含存儲區(qū)域網(wǎng)絡(luò)。
16.權(quán)利要求10中的計算機互聯(lián)網(wǎng)絡(luò),其中所述至少一個共享硬件裝置包含盤驅(qū)動器存儲子系統(tǒng)的邏輯卷;所述通信通道包含光纖通道判優(yōu)環(huán)路通信通道;以及所述局部唯一節(jié)點標(biāo)識符包含世界范圍號(www)標(biāo)識符。
17.一種與一計算機系統(tǒng)一同使用的計算機程序產(chǎn)品,該計算機系統(tǒng)有多個主計算機和至少一個共享硬件裝置,該計算機程序產(chǎn)品包含計算機可讀存儲介質(zhì)和嵌入其中的計算機程序機制,該計算機程序機制包含用于控制所述多個主計算機之一對所述共享硬件的訪問的一個程序模塊包括指令用于使局部唯一標(biāo)識符與所述多個計算機中的每個相關(guān)聯(lián);在存儲器中定義一個數(shù)據(jù)結(jié)構(gòu),以根據(jù)所述局部唯一標(biāo)識所述計算機中哪些特定計算機可能允許訪問所述裝置;以及查詢所述數(shù)據(jù)結(jié)構(gòu),以確定所述計算機中發(fā)請求的一個是否應(yīng)被允許訪問所述硬件裝置。
18.權(quán)利要求17的計算機程序產(chǎn)品,其中所述程序模塊進一步包括指令用于在存儲器中定義一個主計算機ID映射數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個含有多個端口映射表條目的端口映射表數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個主機標(biāo)識符列表數(shù)據(jù)結(jié)構(gòu);在所述存儲器中定義一個卷許可表數(shù)據(jù)結(jié)構(gòu);以及在所述存儲器中定義一個卷號表數(shù)據(jù)結(jié)構(gòu)。
19.權(quán)利要求17的計算機程序產(chǎn)品,其中所述程序模塊進一步包含指令用于查詢所述數(shù)據(jù)結(jié)構(gòu),以確定是否允許對所述硬件裝置的訪問。
20.權(quán)利要求17的計算機程序產(chǎn)品,其中所述硬件裝置包含存儲區(qū)域網(wǎng)絡(luò)。
全文摘要
本發(fā)明提供一種結(jié)構(gòu)和方法,用于在有多個主計算機(101)的計算機系統(tǒng)和網(wǎng)絡(luò)中控制對共享存儲裝置(例如盤驅(qū)動器存儲器陣列)的訪問。一種方法用于在有多個計算機和至少一個硬件裝置(106)與這多個計算機相連的計算機系統(tǒng)中控制對該硬件裝置的訪問。該方法包括如下步驟:使局部唯一標(biāo)識符(130)與這多個計算機中的每一個相關(guān)聯(lián);在存儲器中定義一個數(shù)據(jù)結(jié)構(gòu),用于根據(jù)局部唯一標(biāo)識符標(biāo)識該計算機中哪一些可被允許訪問該裝置(190);以及查詢該數(shù)據(jù)結(jié)構(gòu)以確定這些計算機中發(fā)請求的一個是否應(yīng)被允許訪問該硬件裝置。在一個實施例中,在存儲器中定義數(shù)據(jù)結(jié)構(gòu)的過程包括:在該存儲器中定義一個主計算機ID映射數(shù)據(jù)結(jié)構(gòu);在該存儲器中定義一個包含多個端口映射表條目的端口映射表數(shù)據(jù)結(jié)構(gòu);在該存儲器中定義一個主機標(biāo)識符列表數(shù)據(jù)結(jié)構(gòu);在該存儲器中定義一個卷許可表數(shù)據(jù)結(jié)構(gòu);以及在該存儲器中定義一個卷號表數(shù)據(jù)結(jié)構(gòu)。
文檔編號G06F12/00GK1373874SQ00812798
公開日2002年10月9日 申請日期2000年7月26日 優(yōu)先權(quán)日1999年9月13日
發(fā)明者W·A·休比斯, W·G·德逖孜 申請人:國際商業(yè)機器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
砚山县| 潜江市| 徐州市| 定远县| 柘城县| 瓦房店市| 嘉祥县| 滦南县| 阜南县| 江口县| 原阳县| 临洮县| 教育| 平果县| 佛学| 台山市| 镇雄县| 白水县| 马山县| 雷山县| 海宁市| 奉节县| 盐山县| 延吉市| 梓潼县| 榕江县| 荥阳市| 大渡口区| 叙永县| 丽水市| 宁津县| 容城县| 农安县| 庆城县| 安庆市| 奉节县| 松江区| 铜鼓县| 天镇县| 疏附县| 涪陵区|