專利名稱:提供主機通過存儲控制器端口訪問設(shè)備的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于維護以及使用關(guān)于主機、端口和設(shè)備連接的連結(jié)信息(nexus information)的方法、系統(tǒng)和程序。
背景技術(shù):
在某些計算環(huán)境中,多主機系統(tǒng)可能與一個或多個諸如IBM企業(yè)存儲服務(wù)器(ESS)之類的存儲控制器交流由接收請求的ESS所管理的存儲設(shè)備中的數(shù)據(jù)。存儲控制器管理對諸如通過一個或多個邏輯路徑互連的硬盤驅(qū)動器之類的存儲設(shè)備的訪問。(IBM和ESS是IBM的注冊商標)??梢詫⒒ミB的設(shè)備配置為直接訪問存儲設(shè)備(DASD)、冗余獨立磁盤陣列(RedundantArray of Independent Disks,RAID)、磁盤連續(xù)捆束陣列(Just a Bunch ofDisks,JBOD)等。存儲控制器可以配置定義在存儲控制器所管理的存儲設(shè)備中存儲空間的區(qū)域的邏輯卷。
存儲控制器或存儲控制器中的適配器可以維護關(guān)于每個可能連接的連結(jié)信息,包括主機端口、存儲控制器端口和存儲設(shè)備(邏輯卷)。在小型計算機系統(tǒng)接口(SCSI)中,啟動器(initiator)(I)與目標(T)交互來發(fā)出到邏輯單元(L)的I/O操作。在I/O操作進行的同時,啟動程序/目標/邏輯單元具有被稱為ITL連結(jié)的關(guān)系。為了管理ITL連結(jié),存儲控制器可能需要維護某些持續(xù)超過I/O操作的持續(xù)時間的信息。例如,該信息可能包括涉及掛起單元關(guān)注條件(pending unit attention condition)和保留(reservation)的指示器。在典型的實現(xiàn)中,啟動器功能與主機端口相關(guān)聯(lián),目標功能與存儲控制器端口相關(guān)聯(lián),而邏輯單元與存儲設(shè)備相關(guān)聯(lián)。即使對于當前設(shè)有配置邏輯卷的主機端口-存儲控制器端口-邏輯卷組合,也維護該信息,這是由于它們可能在之后的時間被添加到配置中。隨著配置中的設(shè)備、存儲控制器端口和相連的主機端口的數(shù)量的增加,存儲連結(jié)信息所需的存儲器也在增加。
發(fā)明內(nèi)容
提供一種維護和使用關(guān)于主機、端口和設(shè)備連結(jié)的連結(jié)信息的方法、系統(tǒng)和程序。接收來自存儲控制器端口上的主機端口的登錄,其中在存儲控制器上配置主機端口來訪問一個或多個設(shè)備。將項添加到對于登錄中所涉及的主機端口和存儲控制器端口的主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中。在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)的項中初始化至少一個指針來指向至少一個中間數(shù)據(jù)結(jié)構(gòu)中的至少一個項。在由主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個經(jīng)初始化的指針尋址的一個中間數(shù)據(jù)結(jié)構(gòu)的每個項中,初始化一個指針來指向具有多個項的連結(jié)(nexi)數(shù)據(jù)結(jié)構(gòu)。
圖1圖解了計算環(huán)境的實施例;圖2圖解了用于維護關(guān)于主機-存儲控制器端口-邏輯卷連接的連結(jié)信息的數(shù)據(jù)結(jié)構(gòu);和圖3、4和5圖解了生成和使用連結(jié)信息的操作。
具體實施例方式
圖1圖解了計算環(huán)境的實施例。多個主機2a、2b、…、2n通過網(wǎng)絡(luò)8,將指向一個或多個存儲系統(tǒng)4(只示出一個)的輸入/輸出(I/O)請求發(fā)送到存儲控制器6,其中存儲控制器6管理對存儲系統(tǒng)4的訪問。每個主機2a、2b、…、2n可以包括主機適配器卡上的一個或多個主機端口。存儲控制器6包括處理器10,其執(zhí)行I/O管理器代碼12來配置并管理存儲系統(tǒng)中的邏輯卷14a、14b、…、14n。卷包括可以由主機2a、2b、…、2n引用的存儲系統(tǒng)4中的一部分存儲空間的邏輯表示,例如邏輯設(shè)備或者邏輯單元號碼(LUN)。存儲控制器6包括多個適配器16a、16b,適配器16a、16b包括端口18a、18b、18c和18d??梢杂斜葓D1中所示更多或更少的適配器和端口,以及每個適配器有更多或更少的端口。每個主機2a、2b、…、2n可以連接到每個端口18a、18b、…、18n,從而連接到邏輯卷14a、14b、…、14n。
存儲控制器6包括諸如非易失性存儲器之類的存儲器20,存儲器20包括I/O高速緩存22和提供關(guān)于主機、端口和邏輯卷之間所建立的連接的信息(又稱為連結(jié)信息)的連結(jié)信息24。連結(jié)信息可以提供關(guān)于連接指示器的信息,例如主動提供的單元關(guān)注條件(unsolicited unit attention conditions)、保留狀態(tài)、報告的事件、狀態(tài)等。盡管任何主機2a、2b、…、2n可以通過任何端口18a、18b、18c、18d連接到任何邏輯卷14a、14b、…、14n,但在很多實現(xiàn)中,主機可能不是通過所有可能的端口連接到所有可能的邏輯卷。I/O管理器代碼12能夠使用連結(jié)信息22來處理不同連接的請求。
主機2a、2b、…、2n可以包括能夠通過網(wǎng)絡(luò)發(fā)送I/O請求的計算環(huán)境,例如服務(wù)器、工作站、臺式機、大型機、便攜式計算機、手持計算設(shè)備、電話設(shè)備等。存儲控制器6可以包括存儲服務(wù)器、企業(yè)存儲服務(wù)器、存儲控制器或者用于管理指向由存儲控制器所管理的存儲系統(tǒng)4的I/O請求的其他設(shè)備。在一個實施例中,在使用SCSI上層協(xié)議(ULP)的光纖信道互連上執(zhí)行所述的用于管理卷的操作。存儲系統(tǒng)4可以包括一個或多個本領(lǐng)域中公知的設(shè)備,例如互相連接的硬盤驅(qū)動器(例如被配置為DASD、RAID、JBOD等)、磁帶驅(qū)動器、電存儲器等。網(wǎng)絡(luò)8可以包括局域網(wǎng)(LAN)、存儲區(qū)域網(wǎng)絡(luò)(SAN)、因特網(wǎng)以及內(nèi)聯(lián)網(wǎng)、無線網(wǎng)絡(luò)、總線接口、串行或并行連接等。
圖2圖解了用于維護不同的主機端口-存儲控制器端口-設(shè)備連接的連結(jié)信息的數(shù)據(jù)結(jié)構(gòu)的排列。索引50具有由主機端口2a、2b、…、2n和存儲控制器端口18a、18b、18c、18d的標識符索引的項,其中每個索引的項包括指向主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)56的項(例如54)的指針(例如52)。在一個實施例中,對I/O適配器中的每個I/O端口維護索引表50。每個I/O端口支持來自相連的主機的一定數(shù)量的N端口登錄,該登錄可以包括光纖信道或其他協(xié)議登錄。每個N端口登錄使用主機端口索引表50的一個元素,并且該項的內(nèi)容標識登錄的主機端口以及在主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的項的唯一索引,該索引是在主機端口發(fā)出進程登錄(process login)時從用于該特定N端口登錄在I/O端口上的存儲控制器獲得的。因此,當添加新的主機端口-存儲控制器端口組合的新的進程登錄時,添加項/指針(例如52)到索引50中,該指針尋址添加到該主機端口-存儲控制器端口組合的主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)56中的新的項(例如54)。主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中項的數(shù)量決定所有存儲控制器端口上可能的進程登錄的數(shù)量。主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)56中的每個項(例如54)包括多個指針58,其中每個指針(例如60a、60b)尋址單獨的中間數(shù)據(jù)結(jié)構(gòu)(例如62a、62b)。每個中間數(shù)據(jù)結(jié)構(gòu)62a、62b包括指針(例如64a、64b),其中每個指針(例如64a、64b)尋址不同連結(jié)數(shù)據(jù)結(jié)構(gòu)66a、66b。連結(jié)數(shù)據(jù)結(jié)構(gòu)的項66a、66b提供與地址連續(xù)的邏輯卷14a、14b、...、14n相關(guān)聯(lián)的LUN的連結(jié)信息,其中邏輯卷地址是唯一的,并且根據(jù)存儲控制器所使用的一定方案來分配。存在從由I/O接口上的主機端口所使用的LUN_ID到邏輯卷地址的定義的映射。
設(shè)備(邏輯卷)地址可以用于索引不同的數(shù)據(jù)結(jié)構(gòu),來定位連結(jié)數(shù)據(jù)結(jié)構(gòu)66a、66b中的連結(jié)信息項。例如,設(shè)備地址的第一部分可以標識第一指針60a、60b,包括任何一個包含在用于主機-端口對的主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)56中的項54中的指針58。設(shè)備地址的第二部分可以標識由第一指針(例如60a、60b)所尋址的中間數(shù)據(jù)結(jié)構(gòu)62a、62b中的第二指針64a、64b。第一和第二指針可以包括指針組58a和60a、60b中的任何指針。設(shè)備地址的第三部分則可以提供到連結(jié)數(shù)據(jù)結(jié)構(gòu)66a、66b中的項的索引,連結(jié)數(shù)據(jù)結(jié)構(gòu)66a、66b包含由中間數(shù)據(jù)結(jié)構(gòu)62a、62b中的指針64a、64b所尋址的、主機-端口-設(shè)備組合的連結(jié)信息。
在一個實施例中,連結(jié)數(shù)據(jù)結(jié)構(gòu)66中的連結(jié)信息提供通過同一主機端口-存儲控制器端口-對(例如進程登錄)訪問的設(shè)備的連結(jié)信息,其中同一連結(jié)數(shù)據(jù)結(jié)構(gòu)66a、66b中的設(shè)備可以具有連續(xù)的邏輯卷地址。在主機端口-存儲控制器端口對(例如進程登錄)被配置成只訪問可能的邏輯卷的子集的特定實施例中,不分配沒有連結(jié)信息的連結(jié)數(shù)據(jù)結(jié)構(gòu)(例如66a、66b)(因為與該連結(jié)數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)的邏輯卷不可訪問或沒有被配置),并且下一更高的中間數(shù)據(jù)結(jié)構(gòu)(例如62a、62b)中的指針(例如64a、64b)包含空指針(即不指向連結(jié)數(shù)據(jù)結(jié)構(gòu))。類似的,不分配任何包含所有空指針(例如64a、64b)的中間數(shù)據(jù)結(jié)構(gòu)(例如62a、62b),并且主機端口數(shù)據(jù)結(jié)構(gòu)中相關(guān)的指針包含空指針。對配置給定的進程登錄來訪問的邏輯卷的集合的改變可能導(dǎo)致添加或移除進程登錄的連結(jié)數(shù)據(jù)結(jié)構(gòu)(例如66a、66b)的需要,以及對應(yīng)的主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)56和中間數(shù)據(jù)結(jié)構(gòu)指針(例如64a、64b)的改變。
在一個實施例中,將連結(jié)數(shù)據(jù)結(jié)構(gòu)和中間數(shù)據(jù)結(jié)構(gòu)的集合保持為共享資源,在接收進程登錄時,根據(jù)主機-端口連接可以訪問的邏輯卷地址來動態(tài)地將該資源分配給給定的主機-端口數(shù)據(jù)結(jié)構(gòu)。如果主機和端口可以訪問的邏輯卷地址的集合改變,或者移除該主機和端口的進程登錄,則也動態(tài)分配或解除分配這些資源。進程登錄可以包括SCSI進程登錄,而N端口登錄可以包括光纖信道N端口登錄。在不同的實施例中可以使用其他協(xié)議和登錄類型。
圖3圖解了I/O管理器12中實現(xiàn)的、以關(guān)于主機端口和存儲控制器端口的第一級登錄的信息來初始化索引50的操作,其中第一級登錄可以包括諸如光纖信道N端口登錄之類的網(wǎng)絡(luò)登錄。在接收(在方框90)來自給定的存儲控制器端口18a、18b、18c、18d上的主機端口2a、2b、2n的第一級登錄(例如N端口登錄)時,如果(在方框92)索引50中不存在該主機端口-存儲控制器端口的項,則在索引50中添加該第一級(N端口)登錄的項。否則,控制結(jié)束。
圖4圖解了I/O管理器12中實現(xiàn)的、以響應(yīng)于諸如SCSI進程登錄之類的第二級登錄的信息來初始化圖2的數(shù)據(jù)結(jié)構(gòu)的操作。在接收(在方框100)主機端口和存儲控制器端口登錄的第二級登錄時,I/O管理器12確定(在方框102)主機-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)52中是否存在登錄中所指示的該主機端口和存儲控制器端口對的項。如果不存在這樣的項,則在主機-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)52中添加(在方框104)該第二級登錄(進程登錄)的項。然后將指針52添加到(在方框106)索引50中,來尋址主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)52中所添加的項。如果(在方框102)在主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)52中存在該項,或者在將指向主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)56中所添加的項的指針(例如52)添加到主機-端口索引50中(在方框106)之后,I/O管理器12在方框107到116對主機端口和存儲控制器端口連接可以訪問的每個邏輯設(shè)備地址執(zhí)行循環(huán)。在方框108,I/O管理器12確定主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)的項54中是否存在由邏輯卷14a、14b、...、14n的設(shè)備地址的第一部分所標識的有效指針(例如60a、60b)。有效指針包括尋址另一表或項并且不為空的指針。
如果(在方框108)不存在有效指針,則I/O管理器12初始化(在方框110)主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)52中的項中的、由設(shè)備地址的第一部分所標識的指針(例如60a、60b),來指向經(jīng)初始化的中間數(shù)據(jù)結(jié)構(gòu)(例如62a、62b),其中當初始化指針(例如60a、60b)時初始化中間數(shù)據(jù)結(jié)構(gòu)。同樣初始化(在方框112)由主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)52中的經(jīng)初始化的指針(例如60a、60b)尋址的中間數(shù)據(jù)結(jié)構(gòu)58a、58b中的項中的指針(例如64a、64b),來指向經(jīng)初始化的連結(jié)數(shù)據(jù)結(jié)構(gòu)(例如66a、66b),其中設(shè)備地址的第二部分索引經(jīng)初始化的中間數(shù)據(jù)結(jié)構(gòu)中的經(jīng)初始化的指針60a、60b。這樣,如果在同一主機-對的連接的之前建立期間沒有初始化這些數(shù)據(jù)結(jié)構(gòu)和指針,則為在登錄中正在建立的主機端口-存儲控制器端口添加通向連結(jié)數(shù)據(jù)結(jié)構(gòu)66a、66b的指針和數(shù)據(jù)結(jié)構(gòu)。
如果(在方框114)在由主機端口-存儲控制器端口數(shù)據(jù)結(jié)構(gòu)56中的指針(60a、60b)尋址的中間數(shù)據(jù)結(jié)構(gòu)62a、62b中,不存在由設(shè)備地址的第二部分標識的有效指針(例如64a、64b),則控制前進到方框112來初始化中間數(shù)據(jù)結(jié)構(gòu)(例如62a、62b)中的指針(例如64a、64b),來尋址經(jīng)初始化的連結(jié)數(shù)據(jù)結(jié)構(gòu)(例如66a、66b)。控制從方框112或114前進到方框116,在其中執(zhí)行在方框107到116的循環(huán)的另一迭代,直到將信息添加到主機端口和存儲控制器端口可以訪問的所有確定的邏輯卷地址的連結(jié)數(shù)據(jù)結(jié)構(gòu)中為止。I/O管理器12可以在設(shè)備活動期間添加連結(jié)信息。這樣,如果在進程登錄可以訪問的任何之前的邏輯卷地址的處理期間沒有初始化這些數(shù)據(jù)結(jié)構(gòu)和指針,則為與進程登錄相關(guān)聯(lián)的、正在建立的主機端口-存儲控制器端口組合添加通向連結(jié)數(shù)據(jù)結(jié)構(gòu)62a、62b的指針和數(shù)據(jù)結(jié)構(gòu)。
圖5圖解了I/O管理器12中執(zhí)行的、啟動關(guān)于給定的主機端口、存儲控制器端口和請求訪問連結(jié)信息的設(shè)備(邏輯卷)操作的操作的實施例。在啟動(在方框150)操作時,I/O管理器12使用(在方框152)用于要訪問的連接的主機和端口標識符(即索引)為主機-端口索引50中的指針(例如52)。使用主機-端口索引50中訪問的指針52(在方框154)來訪問第一(主機-端口)數(shù)據(jù)結(jié)構(gòu)56中的一個項(例如54)。然后I/O管理器12使用(在方框156)設(shè)備地址的第一部分來訪問第一(主機-端口)數(shù)據(jù)結(jié)構(gòu)56中所訪問的項中的指針58的指針(例如60a、60b)。使用(在方框158)所訪問的指針(例如60a、60b)來訪問一個第二(中間)數(shù)據(jù)結(jié)構(gòu)62a、62b。使用(在方框160)設(shè)備地址的第二部分來訪問在所訪問的第二(中間)數(shù)據(jù)結(jié)構(gòu)62a、62b中的指針(例如64a、64b)。使用(在方框162)所訪問的指針64a、64b來訪問一個連結(jié)數(shù)據(jù)結(jié)構(gòu)(例如66a、66b)。然后I/O管理器12使用設(shè)備地址的第三部分來訪問在具有與主機端口、存儲控制器端口和設(shè)備組合相關(guān)聯(lián)的連結(jié)信息的所訪問的連結(jié)數(shù)據(jù)結(jié)構(gòu)(例如66a、66b)中的一個項。該連結(jié)信息可以用于維護狀態(tài)以及檢查連接可以訪問的設(shè)備(即邏輯卷)返回連接中所指示的主機的條件。
所述的實施例以最佳的方式提供維持不同主機端口、存儲控制器端口和設(shè)備組合的連結(jié)信息的技術(shù),該方式通過按照建立的進程登錄和這些可以由給定的進程登錄訪問的邏輯卷的需要而創(chuàng)建連結(jié)信息的數(shù)據(jù)結(jié)構(gòu)和項,從而節(jié)省存儲空間。此外,如果假設(shè)相當百分比的進程登錄沒有被配置成能夠訪問高百分比的可配置的邏輯卷地址是正確的,則可以大大減少為連結(jié)信息分配的存儲器量,而不會失去配置連接的任意子集(即進程登錄)訪問多數(shù)或所有邏輯卷地址的能力。
額外實施例細節(jié)所述的實施例可以實現(xiàn)為方法、裝置或使用標準編程和/或工程技術(shù)來生產(chǎn)軟件、固件、硬件或其任何組合的制造物品(article of manufacture)。這里使用的術(shù)語“制造物品”指的是以硬件邏輯(例如集成電路芯片、可編程門陣列(PGA)、專用集成電路(ASIC)等)或諸如磁存儲介質(zhì)(例如硬盤驅(qū)動器、軟盤、磁帶等)、光存儲(CD-ROM、光盤等)、易失性和非易失性存儲設(shè)備(例如EEPROM、ROM、PROM、RAM、DRAM、SRAM、固件、可編程邏輯等)之類的計算機可讀介質(zhì)實現(xiàn)的代碼或邏輯。由處理器訪問并執(zhí)行計算機可讀介質(zhì)中的代碼。實現(xiàn)優(yōu)選實施例的代碼還可以通過傳輸介質(zhì)或通過網(wǎng)絡(luò)從文件服務(wù)器訪問。在這些情況中,實現(xiàn)代碼的制造物品還包括諸如網(wǎng)絡(luò)傳輸線、無線傳輸介質(zhì)、通過空間傳播的信號、無線電波、紅外信號之類的傳輸介質(zhì)。因此,“制造物品”可以包括其中實現(xiàn)有代碼的介質(zhì)。此外,“制造物品”還可以包括實現(xiàn)、處理和執(zhí)行代碼的硬件和軟件部件的組合。當然,本領(lǐng)域技術(shù)人員應(yīng)當認識到,可以在不背離本發(fā)明的范圍的前提下對該配置進行各種修改,并且制造物品可以包括本領(lǐng)域中任何已知的信息承載介質(zhì)。
參考字母“n”用于提及元件的示例號碼,例如主機2a、2b、...、2n,卷14a、14b、...、14n,并且可以指示不同用途中的元件的不同或相同號碼。例如主機號碼2n可以與卷號碼14n不同。
圖2顯示了用于維護連結(jié)信息的數(shù)據(jù)結(jié)構(gòu)的排列。在替代實施例中,可以使用另外的中間結(jié)構(gòu)來擴展可能的主機端口、存儲控制器端口和設(shè)備連接組合的數(shù)量。
特定實施例可以針對由人或?qū)⒂嬎銠C可讀代碼集成進計算系統(tǒng)的自動處理來實施計算指令的方法,其中,使得與計算系統(tǒng)組合的代碼能執(zhí)行所述實施例的操作。
圖3、4和5所示的操作顯示了以特定的順序發(fā)生的特定事件。在替代實施例中,可以以不同的順序執(zhí)行、修改或移除特定的操作。此外,可以在上述邏輯上增加步驟并且仍然遵從所示實施例。此外,這里所描述的實施例可以順序發(fā)生,或者可以并行處理特定的操作。此外,操作可以由單個處理單元或由分布式處理單元來執(zhí)行。
前面對本發(fā)明的各種實施例的進行的描述是用于說明和描述目的。其并不意欲窮舉或限制本發(fā)明為所公開的精確形式。根據(jù)上述教導(dǎo),許多修改和變型都成為可能。本發(fā)明不是由該詳細描述所限制,而是由所附權(quán)利要求數(shù)所限制。上述說明書、例子和數(shù)據(jù)提供對本發(fā)明組成的制造和使用的完整描述。由于可以在不背離本發(fā)明的宗旨和范圍的前提下做出本發(fā)明的許多實施例,因此本發(fā)明屬于所附權(quán)利要求書。
權(quán)利要求
1.一種用于提供主機通過存儲控制器端口訪問設(shè)備的方法,包括接收來自存儲控制器端口上的主機端口的登錄,其中在存儲控制器上配置主機端口來訪問一個或多個設(shè)備;將項添加到對于登錄中所涉及的主機端口和存儲控制器端口的主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中;在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)的項中初始化至少一個指針來指向至少一個中間數(shù)據(jù)結(jié)構(gòu)中的至少一個項;以及在由主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個經(jīng)初始化的指針尋址的一個中間數(shù)據(jù)結(jié)構(gòu)的每個項中,初始化一個指針來指向具有多個項的連結(jié)數(shù)據(jù)結(jié)構(gòu)。
2.如權(quán)利要求1所述的方法,其中登錄包括第二級登錄,還包括接收對一個主機端口和存儲控制器端口的第一級登錄;將項添加到第一級登錄中所指示的主機端口和存儲控制器端口的索引中;以及將指針添加到主機端口和存儲控制器端口的索引中所添加的項中,來尋址在第二級登錄期間添加到主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的項。
3.如權(quán)利要求2所述的方法,其中,第一級登錄包括光纖信道N端口登錄,而第二級登錄包括SCSI處理登錄。
4.如權(quán)利要求2所述的方法,還包括啟動關(guān)于一個主機端口、存儲控制器端口和設(shè)備連接的操作;使用主機端口和存儲控制器端口標識符來訪問對應(yīng)于主機端口和存儲控制器標識符的索引中的指針;以及使用索引中所訪問的指針來訪問主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項,來訪問在執(zhí)行操作中使用的主機端口、存儲控制器端口和設(shè)備連接的連結(jié)信息。
5.如權(quán)利要求1所述的方法,其中,連結(jié)信息被添加到的連結(jié)數(shù)據(jù)結(jié)構(gòu)中的項對應(yīng)于登錄中所涉及的設(shè)備的設(shè)備地址的一部分。
6.如權(quán)利要求1所述的方法,還包括處理關(guān)于主機端口、存儲控制器端口和設(shè)備的操作,其中設(shè)備具有設(shè)備地址;使用設(shè)備地址的第一部分來訪問主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項中的第一指針;使用所訪問的第一指針來訪問中間數(shù)據(jù)結(jié)構(gòu);使用設(shè)備地址的第二部分來訪問中間數(shù)據(jù)結(jié)構(gòu)中的訪問項中的第二指針;使用第二指針來訪問一個連結(jié)數(shù)據(jù)結(jié)構(gòu);和使用設(shè)備地址的第三部分來訪問具有與主機端口、存儲控制器端口和設(shè)備連接相關(guān)聯(lián)的連結(jié)信息的、所訪問的連接數(shù)據(jù)結(jié)構(gòu)。
7.如權(quán)利要求1所述的方法,其中,連結(jié)數(shù)據(jù)結(jié)構(gòu)中的項為具有相鄰設(shè)備地址的設(shè)備提供連結(jié)信息。
8.如權(quán)利要求1所述的方法,其中,中間數(shù)據(jù)結(jié)構(gòu)包括多個指針,每個指向不同連結(jié)數(shù)據(jù)結(jié)構(gòu),連接數(shù)據(jù)結(jié)構(gòu)具有與主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)的主機端口和存儲控制器端口所連接到的不同設(shè)備的連結(jié)信息。
9.如權(quán)利要求8所述的方法,其中,不是所有與主機和存儲控制器端口相關(guān)聯(lián)的連結(jié)數(shù)據(jù)結(jié)構(gòu)中的項都包含連結(jié)信息。
10.如權(quán)利要求8所述的方法,其中,主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項包括每個指向不同中間數(shù)據(jù)結(jié)構(gòu)的多個指針,其中,每個中間數(shù)據(jù)結(jié)構(gòu)包括至少一個尋址一個連結(jié)數(shù)據(jù)結(jié)構(gòu)的指針,該連接數(shù)據(jù)結(jié)構(gòu)提供具有主機端口、存儲控制器端口和設(shè)備連接的連接信息的項。
11.如權(quán)利要求1所述的方法,其中,所述設(shè)備包括由存儲控制器管理的邏輯存儲單元。
12.如權(quán)利要求1所述的方法,還包括確定是否存在一個由可以通過登錄訪問的一個設(shè)備的設(shè)備地址的第一部分所標識的指針,在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項中的該指針尋址中間數(shù)據(jù)結(jié)構(gòu)中的一個項,其中,響應(yīng)于確定不存在由尋址中間數(shù)據(jù)結(jié)構(gòu)中的一個項的設(shè)備地址的第一部分所標識的指針,在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中初始化該指針。
13.如權(quán)利要求1所述的方法,還包括確定是否存在一個由可以通過登錄訪問的一個設(shè)備的設(shè)備地址的第二部分所標識的指針,該指針在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的指針尋址的中間數(shù)據(jù)結(jié)構(gòu)中,其中,響應(yīng)于確定不存在由尋址一個連結(jié)數(shù)據(jù)結(jié)構(gòu)的設(shè)備地址的第二部分所標識的指針,在中間數(shù)據(jù)結(jié)構(gòu)中初始化該指針。
14.一種與具有主機端口的主機和設(shè)備有關(guān)的系統(tǒng),包括多個存儲控制器端口;處理器;存儲器,包括主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)、至少一個中間數(shù)據(jù)結(jié)構(gòu)和至少一個連結(jié)數(shù)據(jù)結(jié)構(gòu);計算機可讀介質(zhì),包含由處理器執(zhí)行來完成操作的代碼,所述操作包括(i)接收來自一個存儲控制器端口上的一個主機端口的登錄,其中在存儲控制器上配置主機端口來訪問一個或多個設(shè)備;(ii)將項添加到對于登錄中所涉及的主機端口和存儲控制器端口的主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中;(iii)在第一數(shù)據(jù)結(jié)構(gòu)的項中初始化至少一個指針來指向至少一個中間數(shù)據(jù)結(jié)構(gòu)中的至少一個項;以及(iv)在由主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個經(jīng)初始化的指針尋址的一個中間數(shù)據(jù)結(jié)構(gòu)的每個項中,初始化一個指針來指向具有多個項的一個連結(jié)數(shù)據(jù)結(jié)構(gòu)。
15.如權(quán)利要求14所述的系統(tǒng),其中所述登錄包括第二級登錄,存儲器還包括索引,所述操作還包括接收對一個主機端口和存儲控制器端口的第一級登錄;將項添加到第一級登錄中所指示的主機端口和存儲控制器端口的索引中;以及將指針添加到主機端口和存儲控制器端口的索引中所添加的項中,來尋址在第二級登錄期間添加到主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的項。
16.如權(quán)利要求15所述的系統(tǒng),其中,第一級登錄包括光纖信道N端口登錄,而第二級登錄包括SCSI處理登錄。
17.如權(quán)利要求14所述的系統(tǒng),其中所述操作還包括啟動關(guān)于一個主機端口、存儲控制器端口和設(shè)備連接的操作;使用主機端口和存儲控制器端口標識符來訪問對應(yīng)于主機端口和存儲控制器標識符的索引中的指針;以及使用索引中所訪問的指針來訪問主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項,來訪問在執(zhí)行操作中使用的主機端口、存儲控制器端口和設(shè)備連接的連結(jié)信息。
18.如權(quán)利要求14所述的系統(tǒng),其中,連結(jié)信息被添加到的連結(jié)數(shù)據(jù)結(jié)構(gòu)中的項對應(yīng)于登錄中所涉及的設(shè)備的設(shè)備地址的一部分。
19.如權(quán)利要求14所述的系統(tǒng),其中所述操作還包括處理關(guān)于主機端口、存儲控制器端口和設(shè)備的操作,其中設(shè)備具有設(shè)備地址;使用設(shè)備地址的第一部分來訪問主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項中的第一指針;使用所訪問的第一指針來訪問中間數(shù)據(jù)結(jié)構(gòu);使用設(shè)備地址的第二部分來訪問中間數(shù)據(jù)結(jié)構(gòu)中的訪問項中的第二指針;使用第二指針來訪問一個連結(jié)數(shù)據(jù)結(jié)構(gòu);和使用設(shè)備地址的第三部分來訪問具有與主機端口、存儲控制器端口和設(shè)備連接相關(guān)聯(lián)的連結(jié)信息的、所訪問的連接數(shù)據(jù)結(jié)構(gòu)。
20.如權(quán)利要求14所述的系統(tǒng),其中,連結(jié)數(shù)據(jù)結(jié)構(gòu)中的項為具有相鄰設(shè)備地址的設(shè)備提供連結(jié)信息。
21.如權(quán)利要求14所述的系統(tǒng),其中,中間數(shù)據(jù)結(jié)構(gòu)包括多個指針,每個指向不同連結(jié)數(shù)據(jù)結(jié)構(gòu),連接數(shù)據(jù)結(jié)構(gòu)具有與主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)的主機端口和存儲控制器端口所連接到的不同設(shè)備的連結(jié)信息。
22.如權(quán)利要求21所述的系統(tǒng),其中,不是所有與主機和存儲控制器端口相關(guān)聯(lián)的連結(jié)數(shù)據(jù)結(jié)構(gòu)中的項都包含連結(jié)信息。
23.如權(quán)利要求21所述的系統(tǒng),其中,主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項包括每個指向不同中間數(shù)據(jù)結(jié)構(gòu)的多個指針,其中,每個中間數(shù)據(jù)結(jié)構(gòu)包括至少一個尋址一個連結(jié)數(shù)據(jù)結(jié)構(gòu)的指針,該連接數(shù)據(jù)結(jié)構(gòu)提供具有主機端口、存儲控制器端口和設(shè)備連接的連接信息的項。
24.如權(quán)利要求14所述的系統(tǒng),其中,所述設(shè)備包括由系統(tǒng)管理的邏輯存儲單元。
25.如權(quán)利要求14所述的系統(tǒng),其中所述操作還包括確定是否存在一個由可以通過登錄訪問的一個設(shè)備的設(shè)備地址的第一部分所標識的指針,在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項中的該指針尋址中間數(shù)據(jù)結(jié)構(gòu)中的一個項,其中,響應(yīng)于確定不存在由尋址中間數(shù)據(jù)結(jié)構(gòu)中的一個項的設(shè)備地址的第一部分所標識的指針,在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中初始化該指針。
26.如權(quán)利要求14所述的系統(tǒng),其中所述操作還包括確定是否存在一個由可以通過登錄訪問的一個設(shè)備的設(shè)備地址的第二部分所標識的指針,該指針在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的指針尋址的中間數(shù)據(jù)結(jié)構(gòu)中,其中,響應(yīng)于確定不存在由尋址一個連結(jié)數(shù)據(jù)結(jié)構(gòu)的設(shè)備地址的第二部分所標識的指針,在中間數(shù)據(jù)結(jié)構(gòu)中初始化該指針。
27.一種制造物品,包含與具有主機端口的主機、設(shè)備和包含數(shù)據(jù)結(jié)構(gòu)的存儲器有關(guān)的代碼,其中代碼能夠?qū)е聢?zhí)行操作,所述操作包括接收來自一個存儲控制器端口上的一個主機端口的登錄,其中在存儲控制器上配置主機端口來訪問一個或多個設(shè)備;將項添加到存儲器中的、對于登錄中所涉及的主機端口和存儲控制器端口的主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中;在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)的項中初始化至少一個指針來指向存儲器中的至少一個中間數(shù)據(jù)結(jié)構(gòu)中的至少一個項;以及在由主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個經(jīng)初始化的指針尋址的一個中間數(shù)據(jù)結(jié)構(gòu)的每個項中,初始化一個指針來指向存儲器中的具有多個項的連結(jié)數(shù)據(jù)結(jié)構(gòu)。
28.如權(quán)利要求27所述的制造物品,其中所述登錄包括第二級登錄,所述操作還包括接收對一個主機端口和存儲控制器端口的第一級登錄;將項添加到第一級登錄中所指示的主機端口和存儲控制器端口的存儲器中的索引中;以及將指針添加到主機端口和存儲控制器端口的索引中所添加的項中,來尋址在第二級登錄期間添加到主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的項。
29.如權(quán)利要求28所述的制造物品,其中,第一級登錄包括光纖信道N端口登錄,而第二級登錄包括SCSI處理登錄。
30.如權(quán)利要求28所述的制造物品,其中所述操作還包括啟動關(guān)于一個主機端口、存儲控制器端口和設(shè)備連接的操作;使用主機端口和存儲控制器端口標識符來訪問對應(yīng)于主機端口和存儲控制器標識符的索引中的指針;以及使用索引中所訪問的指針來訪問主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項,來訪問在執(zhí)行操作中使用的主機端口、存儲控制器端口和設(shè)備連接的連結(jié)信息。
31.如權(quán)利要求27所述的制造物品,其中,連結(jié)信息被添加到的連結(jié)數(shù)據(jù)結(jié)構(gòu)中的項對應(yīng)于登錄中所涉及的設(shè)備的設(shè)備地址的一部分。
32.如權(quán)利要求27所述的制造物品,其中所述操作還包括處理關(guān)于主機端口、存儲控制器端口和設(shè)備的操作,其中設(shè)備具有設(shè)備地址;使用設(shè)備地址的第一部分來訪問主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項中的第一指針;使用所訪問的第一指針來訪問中間數(shù)據(jù)結(jié)構(gòu);使用設(shè)備地址的第二部分來訪問中間數(shù)據(jù)結(jié)構(gòu)中的訪問項中的第二指針;使用第二指針來訪問一個連結(jié)數(shù)據(jù)結(jié)構(gòu);和使用設(shè)備地址的第三部分來訪問具有與主機端口、存儲控制器端口和設(shè)備連接相關(guān)聯(lián)的連結(jié)信息的、所訪問的連接數(shù)據(jù)結(jié)構(gòu)。
33.如權(quán)利要求27所述的制造物品,其中,連結(jié)數(shù)據(jù)結(jié)構(gòu)中的項為具有相鄰設(shè)備地址的設(shè)備提供連結(jié)信息。
34.如權(quán)利要求27所述的制造物品,其中,中間數(shù)據(jù)結(jié)構(gòu)包括多個指針,每個指向不同連結(jié)數(shù)據(jù)結(jié)構(gòu),連接數(shù)據(jù)結(jié)構(gòu)具有與主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)相關(guān)聯(lián)的主機端口和存儲控制器端口所連接到的不同設(shè)備的連結(jié)信息。
35.如權(quán)利要求34所述的制造物品,其中,不是所有與主機和存儲控制器端口相關(guān)聯(lián)的連結(jié)數(shù)據(jù)結(jié)構(gòu)中的項都包含連結(jié)信息。
36.如權(quán)利要求34所述的制造物品,其中,主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項包括每個指向不同中間數(shù)據(jù)結(jié)構(gòu)的多個指針,其中,每個中間數(shù)據(jù)結(jié)構(gòu)包括至少一個尋址一個連結(jié)數(shù)據(jù)結(jié)構(gòu)的指針,該連接數(shù)據(jù)結(jié)構(gòu)提供具有主機端口、存儲控制器端口和設(shè)備連接的連接信息的項。
37.如權(quán)利要求27所述的制造物品,其中,所述設(shè)備包括由存儲控制器管理的邏輯存儲單元。
38.如權(quán)利要求27所述的制造物品,其中所述操作還包括確定是否存在一個由可以通過登錄訪問的一個設(shè)備的設(shè)備地址的第一部分所標識的指針,在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個項中的該指針尋址中間數(shù)據(jù)結(jié)構(gòu)中的一個項,其中,響應(yīng)于確定不存在由尋址中間數(shù)據(jù)結(jié)構(gòu)中的一個項的設(shè)備地址的第一部分所標識的指針,在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中初始化該指針。
39.如權(quán)利要求27所述的系統(tǒng),其中所述操作還包括確定是否存在一個由可以通過登錄訪問的一個設(shè)備的設(shè)備地址的第二部分所標識的指針,該指針在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的指針尋址的中間數(shù)據(jù)結(jié)構(gòu)中,其中,響應(yīng)于確定不存在由尋址一個連結(jié)數(shù)據(jù)結(jié)構(gòu)的設(shè)備地址的第二部分所標識的指針,在中間數(shù)據(jù)結(jié)構(gòu)中初始化該指針。
40.一種用于展開計算指令的方法,包括將計算機可讀代碼集成進系統(tǒng)中,其中所述代碼與系統(tǒng)結(jié)合,使得系統(tǒng)能夠執(zhí)行接收來自一個存儲控制器端口上的主機端口的登錄,其中在存儲控制器上配置主機端口來訪問一個或多個設(shè)備;將項添加到對于登錄中所涉及的主機端口和存儲控制器端口的主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中;在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)的項中初始化至少一個指針來指向至少一個中間數(shù)據(jù)結(jié)構(gòu)中的至少一個項;以及在由主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個經(jīng)初始化的指針尋址的一個中間數(shù)據(jù)結(jié)構(gòu)的每個項中,初始化一個指針來指向具有多個項的連結(jié)數(shù)據(jù)結(jié)構(gòu)。
41.如權(quán)利要求40所述的方法,其中所述登錄包括第二級登錄,還包括接收對一個主機端口和存儲控制器端口的第一級登錄;將項添加到第一級登錄中所指示的主機端口和存儲控制器端口的存儲器中的索引中;以及將指針添加到主機端口和存儲控制器端口的索引中所添加的項中,來尋址在第二級登錄期間添加到主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的項。
全文摘要
提供一種維持和使用關(guān)于主機、端口和設(shè)備連接的連結(jié)信息的方法、系統(tǒng)和程序。從存儲控制器端口上的主機端口接收登錄,其中在存儲控制器上配置主機端口來訪問一個或多個設(shè)備。將項添加到對于登錄中所涉及的主機端口和存儲控制器端口的主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中。在主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)的項中初始化至少一個指針來指向至少一個中間數(shù)據(jù)結(jié)構(gòu)中的至少一個項。在由主機存儲控制器端口數(shù)據(jù)結(jié)構(gòu)中的一個經(jīng)初始化的指針尋址的一個中間數(shù)據(jù)結(jié)構(gòu)的每個項中,初始化一個指針來指向具有多個項的連結(jié)數(shù)據(jù)結(jié)構(gòu)。
文檔編號G06F17/30GK1831748SQ20051012476
公開日2006年9月13日 申請日期2005年11月15日 優(yōu)先權(quán)日2004年11月17日
發(fā)明者馬修·J·卡洛斯, 理查德·A·里普伯格 申請人:國際商業(yè)機器公司