專利名稱:多重連接管理系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及計算系統(tǒng),特別涉及用來在計算系統(tǒng)的聯(lián)網(wǎng)設(shè)備之間進行通信的計算機軟件和硬件。
背景技術(shù):
有效的計算機操作需要高效地從諸如存儲盤的外圍設(shè)備中讀取數(shù)據(jù)和向其中寫入數(shù)據(jù)。此讀取和寫入能力的基礎(chǔ)是提供用于與該外圍設(shè)備通信的物理通路的硬件連接。這樣的連接一般包括耦接到計算機和外圍設(shè)備兩者的端口的光纖線纜。這樣,線纜包括在其上交換讀取和寫入的數(shù)據(jù)的通信鏈路。
出于性能和可靠性的考慮,已經(jīng)開發(fā)了使用多個線纜來連接兩個設(shè)備的計算機系統(tǒng)。例如,計算機可以使用5條或更多條線纜來將數(shù)據(jù)寫入到單個盤存儲單元中,以及從單個盤存儲單元中讀取數(shù)據(jù)。在一個方面,使用多條線纜來連接相同的計算機設(shè)備加強了可靠性。如果一條或更多條線纜變?yōu)閿嚅_或者因其它原因而不能工作,則另一連接理想地保持可用。更大數(shù)目的線纜還提供增大的帶寬,從而允許更高效的數(shù)據(jù)交換。
盡管有這樣的處理和可靠性進步,然而,使用冗余連接給計算機性能提出了新的挑戰(zhàn)。例如,現(xiàn)有系統(tǒng)僅被配置為使用單個連接來將數(shù)據(jù)發(fā)送(route)到所希望的外圍設(shè)備?,F(xiàn)有的系統(tǒng)上層程序設(shè)計(upper level programming)依賴于外圍設(shè)備與其各自的線纜連接的一對一關(guān)系,以便將數(shù)據(jù)發(fā)送給該設(shè)備。這是因為該上層程序設(shè)計在不考慮連接的情況下發(fā)送讀取/寫入命令。例如,當寫入數(shù)據(jù)時,上層程序被配置為僅“看到”或者以其它方式處理目標盤單元所特有的地址。
隨著冗余連接的出現(xiàn),具有通向相同盤單元的多個連接的計算機必須說明(account for)每個線纜連接的存在,以便成功地讀取和寫入數(shù)據(jù)。必須知道每條線纜的狀態(tài),例如,線纜是否在報告(report)、是否被刪除、添加等。否則,若未能分別跟蹤每個連接,則可能造成將數(shù)據(jù)寫入到不恰當?shù)脑O(shè)備,或者從不恰當?shù)脑O(shè)備讀取數(shù)據(jù)。這樣的錯誤通信將導致文件損壞。
此外,現(xiàn)有系統(tǒng)具有相對有限的可用來潛在地存儲地址、路由和與不同通信路徑有關(guān)的其它信息的存儲器資源。接納用于每個設(shè)備的多個線纜連接必須以某種方式不使可用的存儲器超負荷。另外,計算機處理的時間關(guān)鍵(critical)性質(zhì)要求任何路由方案都應足夠高效,以便無延遲地處理日益增加的工作量。
因此,存在著對于管理硬件設(shè)備和計算機系統(tǒng)之間連接的改進方式的相當大的需求。
發(fā)明內(nèi)容
本發(fā)明通過提供一種管理通向外圍設(shè)備的多個物理連接的裝置、程序產(chǎn)品和方法,來解決與現(xiàn)有技術(shù)相關(guān)的這些和其它問題。根據(jù)本發(fā)明的實施例包括提供邏輯連接接口的多路徑驅(qū)動程序(driver)。此接口允許客戶端通過一個或多個物理連接來高效地訪問外圍設(shè)備。例如,客戶端用戶或系統(tǒng)可以從外圍設(shè)備讀取數(shù)據(jù)和將數(shù)據(jù)寫入到外圍設(shè)備中,而不考慮使用哪個實際的物理連接來發(fā)送該數(shù)據(jù)。作為替代地,由多路徑驅(qū)動程序來自動且透明地確定那個物理連接。
成為本發(fā)明的特征的這些和其他優(yōu)點及特征在附加于此的權(quán)利要求中闡述,并形成本發(fā)明另一部分。然而,為了更好地理解本發(fā)明以及通過使用本發(fā)明而達到的優(yōu)點和目的,應當參考附圖和伴隨的描述性內(nèi)容,其中在所述描述性內(nèi)容中描述了本發(fā)明的示例實施例。
圖1是根據(jù)本發(fā)明的計算機系統(tǒng)的方框圖。
圖2是圖1的系統(tǒng)中的計算機的方框圖。
圖3是圖2的操作系統(tǒng)在添加新連接之后的方框圖。
圖4是圖示用于對與圖1的計算機系統(tǒng)中的盤單元相關(guān)的基本連接(primary)定位的示例例程的流程圖。
圖5示出配置為使新設(shè)備驅(qū)動程序與圖4中定位的基本連接相關(guān)聯(lián)的一系列示例步驟。
圖6是圖示由圖3的多路徑驅(qū)動程序進行的、用于響應于失敗連接而按順序轉(zhuǎn)到另一連接的示例例程的流程圖。
圖7是圖示用于將連接從圖1的計算機系統(tǒng)中的盤單元脫離的示例例程的流程圖。
具體實施例方式
本發(fā)明提供一種管理通向外圍設(shè)備的多個物理連接的裝置、程序產(chǎn)品和方法。根據(jù)本發(fā)明的實施例包括多路徑驅(qū)動程序,其使得客戶端能夠通過一個或多個物理連接來高效地訪問外圍設(shè)備。由多路徑驅(qū)動程序自動且透明地確定用來訪問所述設(shè)備的物理連接。
在一種意義上,多路徑驅(qū)動程序包括客戶端/上層程序設(shè)計和與每個連接相關(guān)的邏輯之間的邏輯接口層。也就是說,多路徑驅(qū)動程序可包括為當前硬件和軟件實現(xiàn)保留“一個設(shè)備”接口的新層,而同時提供保持通向外圍設(shè)備的各個連接特定的信息的接口。這允許上層程序設(shè)計實現(xiàn)諸如讀取、寫入、重置、讀取參數(shù)等的功能,同時僅集中于由多路徑驅(qū)動程序提供的外圍設(shè)備的“一個視圖(view)”。這樣,實際的物理連接仍然未卸下客戶端和其它上層程序設(shè)計的負荷。
通過將多個連接與單個外圍設(shè)備相關(guān)聯(lián),并且允許將該連接作為一個實體對待,多路徑驅(qū)動程序減少了數(shù)據(jù)損壞的發(fā)生。例如,多路徑驅(qū)動程序幫助防止連接的遺漏、或者連接與外圍設(shè)備的不正確關(guān)聯(lián)。此外,可以在“運行中(on the fly)”添加另外的連接,而不需要任何關(guān)機/停頓等。
為此,多路徑驅(qū)動程序可包括這樣的列表,該列表包括僅指向與可用或在其它方面合乎需要的連接相關(guān)的那些對象字段的指針。通過僅保持有效(active)連接的單獨列表,節(jié)省了存儲空間。而且,更為簡明的列表減少了對適當連接定位所需的處理時間和功率。多路徑設(shè)備通過從所述列表中移除失敗連接,并且通過確定通向該外圍設(shè)備的替換連接來附加地處理連接失敗。
值得注意的是,到此替換連接的轉(zhuǎn)換被無縫地,或者在沒有任何客戶端可辨識的延遲的情況下實現(xiàn)。這樣,盡管有失敗連接,但計算操作仍然是不間斷的。這樣,有效列表和多路徑驅(qū)動程序的這些特征使得在確定新路線時不必檢查每個設(shè)備驅(qū)動程序的狀態(tài)。這些特征也確保重試的最佳數(shù)目,并確保嘗試了所有可能的路徑。將失敗的連接從列表刪除也為其它應用釋放了存儲器。
此外,多路徑驅(qū)動程序持續(xù)地更新連接信息,以減少數(shù)據(jù)損壞和處理延遲的發(fā)生。例如,當添加和刪除每個系統(tǒng)規(guī)格的連接時,自動建立對應的邏輯連接。另外,本發(fā)明的過程通過刪除與不希望的連接有關(guān)的數(shù)據(jù)來使對存儲器的使用最少。
轉(zhuǎn)向附圖,其中在這幾幅視圖中,相同的標號總是表示相同部件,圖1示出了示例計算機系統(tǒng)10,其被配置為管理將計算機12鏈接到外圍設(shè)備18的多個物理連接22。也就是說,圖1的計算機12使用多于一條線纜或其它連接來耦接到外圍設(shè)備18。系統(tǒng)10管理這些連接,以允許計算機命令和數(shù)據(jù)的高效通信。出于客戶端處理的考慮,這樣的管理包括數(shù)據(jù)發(fā)送功能、以及使每一個連接22與基本連接和/或外圍設(shè)備18相關(guān)聯(lián)。
為此,系統(tǒng)10的計算機12被配置為支持向客戶端軟件提供邏輯連接接口的多路徑驅(qū)動程序。此接口允許客戶端通過一個或多個物理連接22來高效地訪問外圍設(shè)備18。在這么做的時候,計算機12的邏輯連接/多路徑接口將該連接與基本連接相關(guān)聯(lián),同時更新并使用有效連接列表來將數(shù)據(jù)無縫地發(fā)送到外圍設(shè)備18。在一個實施例中,從存儲器刪除無效連接。
如圖1所示,系統(tǒng)10包括多個計算機12、14和16,它們互相聯(lián)網(wǎng),并連接到外圍設(shè)備18和20。圖1的示例外圍設(shè)備包括存儲服務(wù)器邏輯單元,其被配置為將數(shù)據(jù)存儲到聯(lián)網(wǎng)的計算機12、14和16上,以及從聯(lián)網(wǎng)的計算機12、14和16發(fā)送數(shù)據(jù)。這樣的存儲服務(wù)器邏輯單元包括可單獨尋址的盤單元,其中,每個計算機12、14和16可以分別從所述盤單元讀取數(shù)據(jù),并將數(shù)據(jù)寫入到所述盤單元上。服務(wù)器邏輯單元的示例是例如可以從國際商業(yè)機器公司得到的企業(yè)存儲服務(wù)器(Enterprise Storage Server)。光纖線纜22將計算機12、14和16連接到外圍單元18和20上。
盡管圖1示出外圍單元18和20為服務(wù)器邏輯單元,但本領(lǐng)域技術(shù)人員應當理解,合適的替換外圍設(shè)備可以包括其它聯(lián)網(wǎng)的硬件設(shè)備。另外,盡管圖1中示出的連接22包括光纖線纜,但是根據(jù)本發(fā)明的其它實施例的合適連接可以包括其它通信設(shè)備,以至包括無線傳輸裝置。
盡管對根據(jù)本發(fā)明的一些實施例的目的來說不是必要的,但是圖1的系統(tǒng)10支持集群。集群通常是指將多臺計算機聯(lián)網(wǎng)到一起以合作執(zhí)行計算機任務(wù)的計算機系統(tǒng)組織。計算機集群的重要方面是集群中的所有計算機呈現(xiàn)出單個映像。集群常常用在特別關(guān)心高性能和可靠性的相對大型多用戶計算機系統(tǒng)中。
例如,由于與單個計算機所能夠處理的相比,多個計算機可以并行處理更大數(shù)量的任務(wù),因此使用集群來增大總體性能。通常,可以使用負荷平衡來確保在計算機之間公平地分配任務(wù),以防止個別計算機超負荷。還可以使用集群來提供冗余、或故障容忍,使得如果任何計算機或連接失敗,則將由集群中的其它計算機或連接來處理先前由那個計算機或連接執(zhí)行的操作。
在圖1的特定環(huán)境中,多個連接22支持集群系統(tǒng)10的集群計算機12和外圍單元18之間的通信。這樣,多個連接22可以包括從服務(wù)器邏輯單元的相同盤單元到計算機12的不同通信路徑。這些冗余連接22可以提供提高的系統(tǒng)可靠性和性能。
在一個示例實施例中,計算機12、14和16被實現(xiàn)為來自國際商業(yè)機器公司的iSeries計算機,而操作系統(tǒng)40被實現(xiàn)為諸如也可以從IBM得到的OS/400操作系統(tǒng)的合并了集群性能的適當操作系統(tǒng)。對于本領(lǐng)域普通技術(shù)人員來說,示例環(huán)境中的集群服務(wù)的一般使用和結(jié)構(gòu)是眾所周知的。
應當理解,可以在除了集群結(jié)構(gòu)中組織的系統(tǒng)以外的系統(tǒng)中完成根據(jù)本發(fā)明的過程。還應當理解,可以在其它環(huán)境中使用除了在此專門用來描述由計算機系統(tǒng)進行的計算機任務(wù)處理的命名以外的命名。因此,本發(fā)明不應被限于在此使用的例如關(guān)于協(xié)議、請求、寫入、讀取、刪除、作業(yè)、對象等的特定命名。
圖2示出了被配置為管理通向外圍設(shè)備18的一個或多個物理連接的圖1的計算機12的示例硬件結(jié)構(gòu)。例如,計算機12一般地代表多個多用戶計算機中任何一個,如網(wǎng)絡(luò)服務(wù)器、中型計算機、大型計算機等。這樣,在此說明書全文中,有時互換地使用術(shù)語“節(jié)點”、“系統(tǒng)”和“計算機”。無論如何,應當理解的是,可以在其它計算機和數(shù)據(jù)處理系統(tǒng)中,例如在諸如工作站、臺式計算機、便攜計算機等的單機或單用戶計算機中,或者在其它(例如,合并了嵌入式控制器等的)可編程電子設(shè)備中,實現(xiàn)本發(fā)明。
計算機12通常包括一個或多個系統(tǒng)處理器24,其通過布置在高速緩存系統(tǒng)28中的一級或多級高速緩沖存儲器而耦接到主存儲器26。此外,主存儲器26通過系統(tǒng)輸入/輸出(I/O)總線35以及例如工作站控制器34和I/O處理器36的多個接口設(shè)備而耦接到多種外部設(shè)備,其中,所述系統(tǒng)輸入/輸出(I/O)總線35和多個接口設(shè)備分別提供對一個或多個外部網(wǎng)絡(luò)(例如,集群網(wǎng)絡(luò)互連)、一個或多個工作站14、和/或諸如存儲服務(wù)器邏輯單元的一個或多個存儲設(shè)備的外部訪問??梢允褂萌魏螖?shù)量的替換計算機體系結(jié)構(gòu)。
為了實現(xiàn)根據(jù)本發(fā)明的用于管理連接的裝置、程序產(chǎn)品和方法,圖示計算機12為在主存儲器26中駐留有操作系統(tǒng)40,該操作系統(tǒng)40實現(xiàn)用于管理通向外圍設(shè)備18的連接的多個對象31、41、42和50。對象包括統(tǒng)稱為方法的數(shù)據(jù)結(jié)構(gòu)和操作。方法訪問并操縱數(shù)據(jù)結(jié)構(gòu)??梢詫⒕哂型瑯訑?shù)據(jù)結(jié)構(gòu)和共同行為的對象集中到一起成為類。對象結(jié)構(gòu)包括數(shù)據(jù)和指針字段,指針包含其它存儲器位置的地址。數(shù)據(jù)字段體現(xiàn)信息或其它對象。盡管在圖示的實施例中作為對象示出,但是在其它實施例中,多路徑驅(qū)動程序、設(shè)備驅(qū)動程序和根據(jù)本發(fā)明的所有其它軟件組件不限于由對象組成。
如圖2所示,操作系統(tǒng)40的一些對象31、41和42可以對應于計算機12和/或計算機系統(tǒng)10的物理組件。例如,IOP 31可對應于連同適配器(未示出)一起與外圍設(shè)備18通信的I/O處理器36。這樣,IOP 31包括訪問和操縱I/O處理器36的方法。也就是說,IOP 41使用I/O處理器36來發(fā)起與訪問外圍設(shè)備18相關(guān)的過程。類似地,設(shè)備驅(qū)動程序42可一對一地對應于與外圍設(shè)備18通信的物理連接。因而,設(shè)備驅(qū)動程序42充當操作系統(tǒng)40用來操縱與各個線纜連接相關(guān)的信息和過程的邏輯結(jié)構(gòu)。這樣,如圖2所示,計算機12僅具有一個與外圍設(shè)備18相關(guān)的物理連接。
存儲管理器50包括負責管理盤分配的其它上層程序,或者以其它方式與負責管理盤分配的其它上層程序通信。也就是說,存儲管理器50被配置為對盤單元和其它外圍設(shè)備18進行命令和其它數(shù)據(jù)的分配、讀取和寫入。
在圖2的單個連接的情景中,存儲管理器50將信息發(fā)送到設(shè)備驅(qū)動程序42,并從設(shè)備驅(qū)動程序42接收信息。設(shè)備驅(qū)動程序42部分地充當IOP 31和存儲管理器50之間的接口。例如,設(shè)備驅(qū)動程序42可以在其與存儲管理器50通信之前從外圍設(shè)備18進行讀取。這樣的數(shù)據(jù)包括一個或多個與各個外圍單元如盤單元相關(guān)的標識符。例如,當確定讀取/寫入分配時,存儲管理器50可以使用此標識符信息。
如本領(lǐng)域所眾所周知的,設(shè)備驅(qū)動程序42可以附加地與邏輯硬件資源信息(LHRI)41相對接。LHRI 41解決和處理用戶及系統(tǒng)輸入,以在一個方面確保計算機和系統(tǒng)之間的一致命名約定。此外,LHRI 41可以對應于用于接收用戶輸入的物理HRI接口。如在下面所更詳細地討論的,這樣的輸入可以包括指定從與外圍設(shè)備18的關(guān)聯(lián)中移除連接。
在計算機12中還圖示了一個或多個任務(wù)或應用46,每個任務(wù)或應用46可以訪問對象31、41、42和50、以及在操作系統(tǒng)40中實現(xiàn)的其它特征。然而,應當理解,可以在計算機12中的其它軟件層中實現(xiàn)在此描述的功能性或特征,并且可以在集群計算機系統(tǒng)10中的其它程序、方法、計算機或組件之間分配功能性。因此,本發(fā)明不限于在此描述的特定軟件實現(xiàn)。
圖2的I/O處理器36和外圍單元18之間的連接可以包括一個或多個連接,例如圖1中示出的光纖線纜。示例對象31、41和42可以各自為單個連接所特有。如圖3所示,可以為所添加的或者以其它方式與相同盤單元相關(guān)的每個附加連接創(chuàng)建這樣的新對象。
更具體地說,圖3示出了具有通向單個盤單元60的多個連接的圖2的計算機12的操作系統(tǒng)40。在一種意義上,圖3圖示了在計算機12和盤單元60之間添加了兩個附加連接之后的圖2的操作系統(tǒng)40。當在計算機12和相同的盤單元60之間安裝新線纜時,可以創(chuàng)建新連接66和68。這樣,圖3的盤單元60利用由分支線64、66和68邏輯表示的三個連接而連接到計算機12。
如圖3所示,每個連接的添加可以引起操作系統(tǒng)40內(nèi)用于每個連接的新設(shè)備驅(qū)動程序、IOP和LHRI的創(chuàng)建。這樣,操作系統(tǒng)40的每個設(shè)備驅(qū)動程序42、71和72可以與各個物理連接64、66和68相關(guān)。因此,每個設(shè)備驅(qū)動程序充當操作系統(tǒng)40用來操縱與各個線纜連接相關(guān)的信息和過程的邏輯結(jié)構(gòu)。出于下面詳細討論的原因,與通向盤單元60的第一連接64相關(guān)的設(shè)備驅(qū)動程序42可以包括基本標志67或其它指示符。設(shè)備驅(qū)動程序42中的這種基本指示符可以幫助將順次安裝的連接與基本設(shè)備驅(qū)動程序42和盤單元60相關(guān)聯(lián)。
每個連接64、66和68具有各自的IOP 41、69和70。然而,本領(lǐng)域技術(shù)人員將理解,合適的IOP可以與多于一個連接相關(guān)。這些IOP 41、69和70傳送盤單元60以及連接64、66和68所特有的信息。IOP 41、69和70可以將這樣的信息傳遞到各個設(shè)備驅(qū)動程序42、71、72。這樣,每個連接64、66和68分別與它自己的設(shè)備驅(qū)動程序42、71和72相關(guān)聯(lián)。以這一方式,圖3的操作系統(tǒng)40為每個連接64、66和68保持各自的設(shè)備驅(qū)動程序42、71和72。這允許單獨跟蹤連接狀態(tài)和其它特性,例如連接的可操作性和連接信息。
每個設(shè)備驅(qū)動程序42、71和72還包括盤單元60所特有的識別信息。分別為每個連接64、66和68附加地創(chuàng)建LHRI 73、74和75。LHRI 73、74和75保持連接64、66和68與盤單元60之間的一致命名,并且給用戶提供接口機制,以對特定連接尋址。如在下面詳細討論的,例如,可以使用LHRI來從盤單元刪除連接數(shù)據(jù)。
與用于每個設(shè)備驅(qū)動程序42、71和72的各個連接和盤單元有關(guān)的信息最終可以傳送到多路徑驅(qū)動程序76??梢皂憫诓僮飨到y(tǒng)40確定有多于一個連接形成主計算機12和盤單元60之間的通信路徑,創(chuàng)建多路徑驅(qū)動程序76。例如,基本設(shè)備驅(qū)動程序42可以響應于來自新設(shè)備驅(qū)動程序71的提示而創(chuàng)建多路徑驅(qū)動程序76。新設(shè)備驅(qū)動程序71與通向相同盤單元60的新連接66相關(guān)。
在一種意義上,多路徑驅(qū)動程序76包括上層程序設(shè)計/存儲管理器50和與每個連接相關(guān)的邏輯之間的邏輯接口層。也就是說,多路徑驅(qū)動程序76包括設(shè)備驅(qū)動程序42、69和70之間的新層,其為當前硬件和軟件實現(xiàn)保留“一個設(shè)備”接口,而同時提供保持通向盤單元60的各個連接64、66和68特定的信息的接口。因此,多路徑驅(qū)動程序76呈現(xiàn)外圍設(shè)備/盤單元60的一個“視圖”,而不管有多少通向盤單元60的連接。這允許上層程序設(shè)計和存儲管理器50實現(xiàn)諸如讀取、寫入、重置、讀取參數(shù)等的功能,同時僅集中在多路徑驅(qū)動程序76提供的盤單元60上。
因為多個連接與單個盤單元60相關(guān)聯(lián),所以存儲管理器50可以將它們作為一個實體對待。這確保了通向盤單元的連接不被排除在外,并且用于兩個不同盤單元的兩個連接不被錯誤地關(guān)聯(lián)到一起。這減少了數(shù)據(jù)損害的發(fā)生。
為此,多路徑驅(qū)動程序76可以編制完整連接列表77。該完整連接列表可以包括涉及每個設(shè)備驅(qū)動程序42、71和72的信息。例如,多路徑驅(qū)動程序76可以編制具有指向與給定連接相關(guān)的每個設(shè)備驅(qū)動程序的類型/級別/序列號字段的指針的完整列表77。例如,只要連接變得可操作或者添加了新的盤單元,就可以將這樣的信息記錄在完整列表77中。完整連接列表77被安排成對上層程序設(shè)計/存儲管理器50可用。
多路徑驅(qū)動程序76還可以包括有效連接列表78。有效列表78可包括指向可用或者以其它方式合乎需要的那些設(shè)備驅(qū)動程序的對象字段的指針。例如,示例有效列表可以包括指向設(shè)備驅(qū)動程序42和72、但不指向設(shè)備驅(qū)動程序71的指針,其中,例如,設(shè)備驅(qū)動程序71的相關(guān)線纜連接66為了維護而被斷開。
此外,更為簡明的列表減少了對適當連接進行定位所需的處理時間和功率。多路徑設(shè)備76通過從提供給存儲管理器50的有效列表中移除失敗連接71來附加地處理連接失敗。多路徑設(shè)備76響應于失敗連接66而附加地查找通向盤單元60的替換連接64和/或68。
同時,多路徑驅(qū)動程序76可以將相關(guān)信息,以至于完整列表77中包含的信息,向上傳遞給存儲管理器50。存儲管理器50可以將讀取/寫入命令向下發(fā)送到多路徑驅(qū)動程序76。而多路徑驅(qū)動程序76又充當接口,以協(xié)調(diào)和管理應當將寫入/讀取命令發(fā)送到哪里以到達它們的目標。也就是說,多路徑驅(qū)動程序76可以使用有效連接列表78來確定應當使用哪個連接64、66和/或68。如在此討論的,由多路徑驅(qū)動程序76進行的所述確定除了確定給定連接是否有效以外,還可以包括負荷均衡和其它考慮。
出于示例的目的,圖3只包括一個多路徑驅(qū)動程序76,因此,設(shè)備驅(qū)動程序42、71和72只與一個盤單元60相關(guān)聯(lián)。然而,本領(lǐng)域技術(shù)人員將理解,操作系統(tǒng)40可以包括管理另外的盤單元的連接所需的多個另外的多路徑驅(qū)動程序。
針對此特定盤單元60的所有通信都流經(jīng)圖2的一個多路徑驅(qū)動程序76。當有多個連接時,每個連接與設(shè)備驅(qū)動程序、資源名稱和相同盤單元60相關(guān)。多路徑驅(qū)動程序76管理所有對象。存儲管理器50和其它上層程序設(shè)計根據(jù)有多少實際連接而保持無負擔(unburdened)。此外,可以“在運行中”添加另外的連接,而無需任何關(guān)機/停頓等。
外圍設(shè)備18的每個盤單元60、62包括唯一的標識符字符串,例如由存儲服務(wù)器邏輯單元的制造商設(shè)置的標識符字符串。該字符串可以被讀取,并且通常不會被系統(tǒng)10改變。外圍設(shè)備18還包括具有連接信息的頁。操作系統(tǒng)40使用該連接信息來保持對盤單元的跟蹤,從而將相同的資源名稱分配給用于每次初始程序加載(IPL)的每個盤單元和連接。當連接22最初耦接到盤單元60時,盤單元60將與連接22有關(guān)的連接信息記錄在盤單元的頁上。如在下面詳細討論的,當用戶使用LHRI來移除連接時,可以更新這樣的信息。
圖3的操作系統(tǒng)40的全局設(shè)備79可以維持注冊信息的全局列表80。全局列表80的注冊信息可以與在計算機12上注冊的所有連接有關(guān)。此注冊信息可以與多路徑驅(qū)動程序76的當前連接列表77中包括的信息不同。也就是說,當前列表77的指針信息僅與和單個盤單元60相關(guān)的那些連接有關(guān)。可替換地,全局列表80可包括指向已經(jīng)與計算機12相關(guān)聯(lián)地注冊的所有連接的指針。
全局列表80可訪問的、或者在其它情況下全局列表80中包括的注冊信息包括例如在激活連接時或者在IPL期間傳送的類型/級別/序列號信息。如在下面討論的,出于管理的考慮,此全局列表80提供使通向相同盤單元的連接與基本盤單元相關(guān)聯(lián)的機制。也可以使用此全局列表80來確定當移除連接時有用的替換路線。
下文中的討論將集中在用來以根據(jù)本發(fā)明的方式來管理連接的特定例程。被執(zhí)行以實現(xiàn)本發(fā)明的實施例的例程,不管是作為操作系統(tǒng)的一部分還是作為特定應用、組件、程序、對象、模塊或指令序列來實現(xiàn),在此都將被稱為“計算機程序”、“程序代碼”、或者被簡稱為“程序”。計算機程序通常包括一個或多個這樣的指令,其中,所述指令在不同時刻駐留在計算機內(nèi)的不同的存儲器和存儲設(shè)備中,并且在被計算機內(nèi)的一個或多個處理器讀取和執(zhí)行時,該指令使得那臺計算機進行執(zhí)行體現(xiàn)本發(fā)明的各個方面的步驟或元素所必需的步驟。
此外,盡管已經(jīng)且下文中仍將在全功能計算機和計算機系統(tǒng)的上下文中描述本發(fā)明,但本領(lǐng)域技術(shù)人員將理解,本發(fā)明的各種實施例能夠被作為程序產(chǎn)品而以各種形式分發(fā),并且,不管用來實際進行該分發(fā)的特定類型的信號承載介質(zhì)是什么,本發(fā)明同等地適用。信號承載介質(zhì)的示例包括但不限于可記錄型介質(zhì),尤其是諸如易失性和非易失性存儲設(shè)備、軟盤和其它可移動盤、硬盤驅(qū)動器、光盤(例如CD-ROM、DVD等);和諸如數(shù)字和模擬通信鏈路的傳輸型介質(zhì)。
應當理解,可以基于應用來標識下文中描述的各種程序,其中,為了所述應用而在本發(fā)明的特定實施例中實現(xiàn)所述各種程序。然而,應當理解,后面的任何特定程序命名都僅僅是為了方便而使用,因而,本發(fā)明不應被限制為只用于由這樣的命名所標識和/或暗示的任何特定應用中。
此外,本領(lǐng)域技術(shù)人員將認識到,圖1-3中圖示的示例環(huán)境不意欲限制本發(fā)明。實際上,本領(lǐng)域技術(shù)人員將認識到,在不脫離本發(fā)明范圍的情況下,可以使用其它替換硬件和/或軟件環(huán)境。
圖4示出了可由圖1-3的硬件和軟件環(huán)境執(zhí)行的步驟序列。更具體地說,圖4的流程圖90的示例步驟被配置為部分地確定基本連接的候選者。也就是說,通常,流程圖90的過程旨在對通向盤單元的基本連接進行定位。然后,為了根據(jù)連接的共同盤單元來組織和管理適當連接,而使通向相同盤單元的所有其它連接與此基本連接相關(guān)聯(lián)。
在圖4的方框92,連接事件發(fā)生。典型的連接事件可以包括計算機12給所連接的盤單元供電;線纜被插入端口或接線器(switch)中;和/或配置新的盤單元。在圖4的方框94,報告與經(jīng)歷了方框92的事件的連接有關(guān)的類型/級別/序列號信息。通常,出于識別的目的而在制造商制造的硬件設(shè)備中包括這樣的類型/級別/序列號信息。這樣,IOP 69可以通過物理連接66而從盤單元60中檢索該類型/級別/序列號信息。
然后,在方框96,IOP 69可以發(fā)起設(shè)備驅(qū)動程序71的生成。這樣,與IOP 69相關(guān)聯(lián)地生成設(shè)備驅(qū)動程序71。而IOP 69又依次與連接66和盤單元60相關(guān)。從而,新創(chuàng)建的設(shè)備驅(qū)動程序71可以包括對在方框94檢索到的類型/級別/序列號的訪問權(quán)。
然后,在方框98,將包含新生成對象的地址的指針添加到全局列表80中。當這樣配置時,全局列表80可以包括指向先前生成的對象的指針。這些對象可以與相同的盤單元60相關(guān),也可以不與相同的盤單元60相關(guān)。
在方框100,設(shè)備驅(qū)動程序71使IOP 69讀出盤單元60的頁的唯一ID。在流程圖90的方框102,可以存儲此唯一ID。與方框94處IOP 69檢索到的類型/級別/序列號信息不同,方框100處的唯一ID為單個盤單元60所特有。也就是說,沒有兩個盤單元共享相同的唯一ID。這樣,這兩種類型的識別信息提供關(guān)于識別給定盤單元的確切性(specificity)的不同級別的粒度(granularity)。
如完全閱讀本說明書之后將明白的,根據(jù)本發(fā)明的實施例利用這些不同級別的粒度來首先在全局列表80中對具有與方框94處讀取的類型/級別/序列號相同的類型/級別/序列號的設(shè)備驅(qū)動程序定位。如在下面結(jié)合圖5詳細描述的,對此第一對象定位有助于搜索基本連接,而不過度減慢其它過程。為此,在方框104,新設(shè)備驅(qū)動程序71在全局列表80中搜索與在方框94處檢索到的數(shù)據(jù)相匹配的類型/級別/序列號數(shù)據(jù)。由于可以容易地得到類型/級別/序列號數(shù)據(jù),所以以相對少的處理和存儲器需求迅速地實現(xiàn)了對基本連接定位的這一部分。
在圖4的方框112,鎖定具有所述類型/級別/序列號的所識別的第一設(shè)備驅(qū)動程序42。值得注意的是,由于對在方框98處添加到全局列表80中的設(shè)備驅(qū)動程序71本身的搜索,必須有至少一個這樣的具有匹配的類型/級別/序列號的對象。方框112的鎖定允許所定位的設(shè)備驅(qū)動程序42繼續(xù)搜索全局列表80,而具有相同類型/級別/序列號的所有其它對象被操作系統(tǒng)40有效地抑制(hold)、或者被保持無效。也就是說,不允許全局列表80中具有相同類型/級別/序列號的其它設(shè)備驅(qū)動程序?qū)ο筮M行搜索,直到解除對所定位的第一設(shè)備驅(qū)動程序42的鎖定為止。這一預防措施防止全局列表80中后來注冊的對象同時搜索基本連接。這樣的同時搜索會錯誤地導致確定多于一個基本連接,這將導致分離和數(shù)據(jù)丟失。
在一個實施例中,鎖定保持只施加到全局列表80上具有所查找的類型/級別/序列號的那些設(shè)備驅(qū)動程序上。因為只有具有相同類型/級別/序列號的那些對象被保持無效,所以列表上的其它方法能夠同時搜索與其它盤單元相關(guān)的其它類型/級別/序列號對象。這一特征通過使能并行處理而允許良好的效率。
當具有相同類型/級別/序列號的其它對象保持無效時,在方框116,所定位的第一設(shè)備驅(qū)動程序42順次讀取鎖定對象的唯一標識符。然后,在方框117,具有鎖定的設(shè)備驅(qū)動程序42比較所讀取的唯一標識符和在方框114取回的所存儲的唯一標識符。也就是說,鎖定的設(shè)備驅(qū)動程序42可以評估列表上的其它設(shè)備驅(qū)動程序,以找到匹配的唯一ID。此唯一ID被用來確認特定設(shè)備驅(qū)動程序確實與相同的盤單元60相關(guān)。
圖5的流程圖118示出了被配置為將新設(shè)備驅(qū)動程序71與圖4中定位的基本連接相關(guān)聯(lián)的一系列示例步驟。更具體地轉(zhuǎn)向圖5的過程,被鎖定的設(shè)備驅(qū)動程序42比較它自己的唯一ID與所取回的(在圖4的方框102存儲的)新創(chuàng)建的設(shè)備驅(qū)動程序71的ID。當在圖5的方框119,與全局列表80中的任何設(shè)備驅(qū)動程序相關(guān)的唯一ID均與所取回的ID不匹配時,然后,在方框120,在被鎖定的設(shè)備驅(qū)動程序42中設(shè)置標志67。此標志67指定被鎖定的設(shè)備驅(qū)動程序42為用于給定盤單元60的基本設(shè)備驅(qū)動程序。因此,添加到全局列表80中的所有后來的連接可以對基本設(shè)備驅(qū)動程序定位,并與基本設(shè)備驅(qū)動程序相關(guān)聯(lián)。
如上面所討論的,在圖4中定位的第一設(shè)備驅(qū)動程序42可以是在圖4的方框96生成的相同設(shè)備驅(qū)動程序71。出現(xiàn)這樣的情形,其中,方框96處生成的設(shè)備驅(qū)動程序是添加到列表中的第一個設(shè)備驅(qū)動程序。如在此討論的,這將是把新創(chuàng)建的對象指定為用于給定盤單元的基本設(shè)備驅(qū)動程序的情況。
在圖5的方框122,釋放對基本設(shè)備驅(qū)動程序42的鎖定。然后,在方框123,基本設(shè)備驅(qū)動程序42可以報告它自己,以登記(post)到存儲管理器50或其它上層程序。
當在圖5的方框119,被鎖定的對象42的唯一標識符替換地匹配所取回的新創(chuàng)建的設(shè)備驅(qū)動程序71的唯一標識符時,然后,可以使新對象71與被鎖定的對象、或基本設(shè)備驅(qū)動程序42相關(guān)聯(lián)。更具體地說,新設(shè)備驅(qū)動程序71提示基本設(shè)備驅(qū)動程序42查看是否已經(jīng)有與基本設(shè)備驅(qū)動程序42(和盤單元60)相關(guān)的多路徑驅(qū)動程序76。如果沒有,則在圖5的方框126,基本設(shè)備驅(qū)動程序42創(chuàng)建多路徑驅(qū)動程序76。無論如何,在方框128,把指向新的輔助設(shè)備驅(qū)動程序71的指針添加到多路徑驅(qū)動程序76中。
以這一方式,多路徑驅(qū)動程序76改進(develop)分別包括當前和有效連接列表77和78的陣列。這些列表部分地將新設(shè)備驅(qū)動程序71關(guān)聯(lián)到基本設(shè)備驅(qū)動程序42,其中,新設(shè)備驅(qū)動程序71和基本設(shè)備驅(qū)動程序42均與盤單元60相關(guān)。多路徑驅(qū)動程序76可以根據(jù)連接的狀態(tài)來更新當前連接列表77和有效連接列表78。
圖6的流程圖130示出了適于更新有效連接列表78的一個這樣的示例步驟序列。更具體地說,流程圖130的步驟更新和使用有效連接列表78,以在連接66變得不能工作的情況下透明地轉(zhuǎn)換到替換連接。例如,在圖6的方框132,設(shè)備驅(qū)動程序71可以將連接失敗的通知傳送給多路徑驅(qū)動程序76。
響應于該失敗,在方框134,多路徑驅(qū)動程序76確定設(shè)備驅(qū)動程序71與失敗連接66相關(guān)。例如,多路徑驅(qū)動程序76可以讀取通知中包括的指向失敗設(shè)備驅(qū)動程序的指針。然后,在方框136,多路徑驅(qū)動程序76可以從有效連接列表78移除指向所述連接的指針。從有效連接列表78的這一移除確保了多路徑驅(qū)動程序76不會試圖再次通過失敗連接66發(fā)送數(shù)據(jù),或者至少在根據(jù)圖4的連接過程而重新建立連接66之前不會這么做。
當在方框138,有效列表78表明多路徑驅(qū)動程序76具有多個由其支配的通向盤單元60的替換連接時,多路徑驅(qū)動程序76可以順著(sequence)列表78向下,以通過工作的連接68發(fā)送數(shù)據(jù)。值得注意的是,到此新連接68的轉(zhuǎn)變被無縫或者沒有任何可辨識延遲地實現(xiàn)。因此,盡管連接66失敗,計算操作仍保持不中斷。
為此,多路徑驅(qū)動程序76嘗試使用指向與連接68相關(guān)的適當設(shè)備驅(qū)動程序72的指針來將數(shù)據(jù)發(fā)送到替換連接68。當在方框142通信成功時,然后,在方框144,操作無縫地繼續(xù)進行。在圖6的方框136,將隨后發(fā)現(xiàn)的任何失敗連接都從有效列表78中移除。這樣,失敗連接只被嘗試一次,并且系統(tǒng)10避免失敗連接之間的徒勞循環(huán)。也就是說,有效列表78中的每個連接只被嘗試一次,并且,重試的最大數(shù)目等于列表78中的連接數(shù)目。只有當在圖6的方框138不能確定替換連接時,才在方框146中止操作。
因而,列表78和多路徑驅(qū)動程序76的這些特征使得不必在確定新路線時檢查每個設(shè)備驅(qū)動程序的狀態(tài)。自最后一次的更新起,有效列表中包括的所有對象應當是有效的。這些特征也確保最佳次數(shù)的重試,并確保嘗試了所有可能的路徑。
使存儲器需求最小化也是由圖7中示出的流程圖150的過程實現(xiàn)的好處。更具體地說,流程圖150的示例步驟更新存儲在外圍設(shè)備/盤單元60上的連接信息。除了減少存儲器利用率以外,如下面所討論的將連接信息從盤單元移除有助于對當前連接信息的處理。
盤單元包括用于存儲連接信息的有限空間。連接信息包括將盤單元耦接到計算機的一個或多個連接所特有的標識符序列。例如,存儲在盤單元上的可讀取可寫入的數(shù)據(jù)頁可以包括與耦接到盤單元的每個連接相關(guān)的字符串。當添加更多連接時,此存儲空間將充滿。因此,本發(fā)明的特征提供用于刪除有關(guān)每個盤單元的錯誤或過時的連接信息的機制。
具體轉(zhuǎn)向圖7的方框152,用戶可以將命令輸入到計算機12,以刪除失敗或無報告連接。作為響應,計算機12的操作系統(tǒng)40可以自動地發(fā)起從盤單元60移除連接信息的過程。例如,在方框154,與無報告連接66的設(shè)備驅(qū)動程序71相關(guān)的LHRI 74可以提示全局驅(qū)動程序79對耦接到盤單元60的工作的連接進行定位。也就是說,LHRI 74發(fā)起自動發(fā)現(xiàn)不同于無報告連接且通向以前與該無報告連接進行有效通信的相同盤單元60的替換路徑的過程。
為此,在方框156,全局驅(qū)動程序79在全局列表80中搜索與盤單元60相關(guān)的類型/級別/序列號信息,如果發(fā)現(xiàn)信息匹配,則在方框164,全局驅(qū)動程序79提示與列表80中可適用的指針相關(guān)的設(shè)備驅(qū)動程序72讀出盤單元60的連接數(shù)據(jù)。在方框166,這種數(shù)據(jù)的成功讀取可以自動地發(fā)起對盤單元60的連接數(shù)據(jù)的評估。當該數(shù)據(jù)不能被讀取或者連接數(shù)據(jù)不匹配時,在方框156,可以繼續(xù)進行對替換連接的搜索。
可替換地,當在方框168定位并確認了通向盤單元60的工作的連接時,則在方框170,設(shè)備驅(qū)動程序72可以使用IOP 70來使盤單元60上的連接數(shù)據(jù)被移除。然后,此連接數(shù)據(jù)被設(shè)備驅(qū)動程序72重新寫入,使得其不包含對無報告連接的引用。一旦被這樣更新,在方框174,設(shè)備驅(qū)動程序72將更新后的連接信息寫回到盤單元60。在方框160,方框174處的成功更新結(jié)束更新序列。
以這一方式,可以為準確的連接信息和其它用途而保留盤存儲空間。此外,例如,可以使用更新后的連接信息來在IPL或安裝時驗證連接性。在這樣的一種場景下,來自盤單元的連接信息可以向多路徑驅(qū)動程序表明與四條不同線纜有關(guān)的數(shù)據(jù)駐留在盤單元存儲器中。多路徑驅(qū)動程序可以使用有效連接列表78來驗證那四個連接當前可用。不相符之處可導致對與一個或多個所述連接相關(guān)的對象進行檢查,以驗證它們是否仍然如所報告的一樣在運行。
盡管通過對各種實施例的描述而說明了本發(fā)明,并且,盡管相當詳細地描述了這些實施例,但是申請人并不想將所附權(quán)利要求的范圍約束或者以任何方式限制于這樣的細節(jié)。例如,可以根據(jù)本發(fā)明的原理來刪除、增加上述示例流程圖的任何步驟,或者使其與另一步驟同時發(fā)生,或者以其它方式對其進行改變。
此外,盡管根據(jù)本發(fā)明原理的計算機系統(tǒng)實際上可以包括任何數(shù)目的聯(lián)網(wǎng)計算機,并且,盡管通過權(quán)利申請(entitlement application)可以促進本發(fā)明上下文中那些計算機之間的通信,但是,本領(lǐng)域技術(shù)人員仍將理解,本發(fā)明的過程也可以適用于引導如上面的示例中的兩臺計算機之間的直接通信,或者甚至適用于單個計算機的內(nèi)部處理。對本領(lǐng)域技術(shù)人員來說,其它優(yōu)點和修改將變得非常明顯。因此,在其更為廣泛的方面,本發(fā)明不限于所示出和描述的特定細節(jié)、代表裝置和方法以及說明性示例。因此,在不脫離申請人的總體發(fā)明構(gòu)思的精神或范圍的情況下,可以脫離這樣的細節(jié)。
權(quán)利要求
1.一種裝置,包括處理器;以及多路徑設(shè)備驅(qū)動程序,被配置為在處理器上運行,并管理通向外圍設(shè)備的多個物理連接,該多路徑設(shè)備驅(qū)動程序提供邏輯連接接口,該邏輯連接接口被配置為給客戶端提供通過所述多個物理連接中的至少一個對外圍設(shè)備的訪問。
2.如權(quán)利要求1所述的裝置,其中,多路徑設(shè)備驅(qū)動程序包括用于所述多個物理連接中的每一個并耦接到該多路徑設(shè)備驅(qū)動程序的設(shè)備驅(qū)動程序。
3.如權(quán)利要求1所述的裝置,其中,多路徑設(shè)備驅(qū)動程序被配置為管理包括所述多個物理連接的列表。
4.如權(quán)利要求3所述的裝置,其中,多路徑設(shè)備驅(qū)動程序還被配置為管理包括與所述多個物理連接中的有效連接有關(guān)的信息的第二列表。
5.如權(quán)利要求4所述的裝置,其中,第二列表包括與所述多個連接中的每一個的狀態(tài)有關(guān)的信息。
6.如權(quán)利要求1所述的裝置,其中,多路徑設(shè)備驅(qū)動程序響應于失敗連接而發(fā)起確定替換連接的操作。
7.如權(quán)利要求6所述的裝置,其中,多路徑設(shè)備驅(qū)動程序通過訪問替換連接的列表來確定替換連接。
8.如權(quán)利要求1所述的裝置,其中,多路徑設(shè)備驅(qū)動程序發(fā)起從外圍設(shè)備刪除連接數(shù)據(jù)的操作。
9.如權(quán)利要求1所述的裝置,其中,多路徑設(shè)備驅(qū)動程序通過經(jīng)由所述多個連接中的另一個連接與外圍設(shè)備通信,來發(fā)起刪除連接數(shù)據(jù)的操作。
10.如權(quán)利要求1所述的裝置,其中,多路徑設(shè)備驅(qū)動程序發(fā)起將連接數(shù)據(jù)寫入外圍設(shè)備中的操作。
11.如權(quán)利要求1所述的裝置,其中,多路徑設(shè)備驅(qū)動程序發(fā)起使第一設(shè)備驅(qū)動程序與第二設(shè)備驅(qū)動程序相關(guān)聯(lián)的操作。
12.如權(quán)利要求1所述的裝置,其中,多路徑設(shè)備驅(qū)動程序發(fā)起從列表中搜索指示外圍設(shè)備的標識符的操作,以便確定基本連接。
13.如權(quán)利要求1所述的裝置,其中,多路徑設(shè)備驅(qū)動程序發(fā)起對設(shè)備驅(qū)動程序加鎖的操作,以防止另一設(shè)備驅(qū)動程序搜索列表。
14.如權(quán)利要求1所述的裝置,其中,多路徑設(shè)備驅(qū)動程序發(fā)起將連接指定為基本連接的操作。
15.如權(quán)利要求1所述的裝置,其中,多路徑設(shè)備驅(qū)動程序由基本設(shè)備驅(qū)動程序創(chuàng)建。
16.如權(quán)利要求15所述的裝置,其中,基本設(shè)備驅(qū)動程序響應于檢測到與外圍設(shè)備相關(guān)的新連接而創(chuàng)建多路徑設(shè)備驅(qū)動程序。
17.一種裝置,包括處理器;以及設(shè)備驅(qū)動程序,在處理器上運行,并被配置為管理通向外圍設(shè)備的多個物理連接,該設(shè)備驅(qū)動程序提供邏輯連接接口,該邏輯連接接口被配置為創(chuàng)建包括與將計算機連接到外圍設(shè)備的多個連接中的至少一個有效連接相關(guān)的數(shù)據(jù)的列表,并且被配置為使用所述列表來自動地為從計算機到外圍設(shè)備的通信選擇路線。
18.如權(quán)利要求17所述的裝置,其中,設(shè)備驅(qū)動程序被配置為在第一連接失敗的情況下使用所述列表來給通信選擇路線為列表上的第二連接。
19.如權(quán)利要求17所述的裝置,其中,設(shè)備驅(qū)動程序被配置為響應于至少一個有效連接失敗而從列表移除與所述至少一個有效連接相關(guān)的數(shù)據(jù)。
20.如權(quán)利要求17所述的裝置,其中,設(shè)備驅(qū)動程序被配置為創(chuàng)建包括與全部所述多個連接有關(guān)的信息的第二列表。
21.一種裝置,包括處理器;以及多路徑設(shè)備驅(qū)動程序,在處理器上運行,并被配置為管理通向外圍設(shè)備的多個物理連接,該多路徑設(shè)備驅(qū)動程序提供邏輯連接接口,該邏輯連接接口被配置為接收關(guān)于從外圍設(shè)備的存儲器中移除與將計算機連接到外圍設(shè)備的多個連接中不希望的連接有關(guān)的信息的輸入,并從外圍設(shè)備中移除該信息。
22.如權(quán)利要求21所述的裝置,其中,多路徑設(shè)備驅(qū)動程序還被配置為確定與該外圍設(shè)備通信的替換連接。
23.如權(quán)利要求21所述的裝置,其中,多路徑設(shè)備驅(qū)動程序還被配置為使用與該外圍設(shè)備通信的替換連接來從外圍設(shè)備中移除所述信息。
24.一種用于管理從計算機到外圍設(shè)備的多個物理連接的方法,該方法包括創(chuàng)建多路徑設(shè)備驅(qū)動程序,所述多路徑設(shè)備驅(qū)動程序包括通向通過多個物理連接而耦接到計算機的外圍設(shè)備的邏輯連接;以及使用多路徑設(shè)備驅(qū)動程序來訪問外圍設(shè)備。
25.如權(quán)利要求24所述的方法,還包括響應于檢測到外圍設(shè)備和計算機之間的新連接,而添加與多路徑設(shè)備驅(qū)動程序相關(guān)的新設(shè)備驅(qū)動程序。
26.如權(quán)利要求24所述的方法,其中,使用多路徑設(shè)備驅(qū)動程序來訪問外圍設(shè)備還包括訪問存儲器。
27.如權(quán)利要求24所述的方法,其中,使用多路徑設(shè)備驅(qū)動程序來訪問外圍設(shè)備還包括響應于檢測到失敗連接而確定通向外圍設(shè)備的替換連接。
28.如權(quán)利要求27所述的方法,其中,響應于檢測到失敗連接而確定通向外圍設(shè)備的替換連接還包括訪問有效連接的列表。
29.如權(quán)利要求24所述的方法,其中,通過多路徑設(shè)備驅(qū)動程序來訪問外圍設(shè)備還包括從外圍設(shè)備中刪除連接數(shù)據(jù)。
30.如權(quán)利要求29所述的方法,其中,從外圍設(shè)備刪除連接數(shù)據(jù)還包括通過所述多個連接中的另一個來與外圍設(shè)備通信。
31.如權(quán)利要求24所述的方法,其中,通過多路徑設(shè)備驅(qū)動程序來訪問外圍設(shè)備還包括將連接數(shù)據(jù)寫入外圍設(shè)備中。
32.如權(quán)利要求24所述的方法,其中,創(chuàng)建多路徑設(shè)備驅(qū)動程序還包括將新設(shè)備驅(qū)動程序與基本設(shè)備驅(qū)動程序相關(guān)聯(lián),其中,基本設(shè)備驅(qū)動程序與多路徑設(shè)備驅(qū)動程序相關(guān)聯(lián)。
33.如權(quán)利要求24所述的方法,其中,創(chuàng)建多路徑設(shè)備驅(qū)動程序還包括更新包括通向外圍設(shè)備的有效連接的列表。
34.如權(quán)利要求24所述的方法,其中,創(chuàng)建多路徑設(shè)備驅(qū)動程序還包括更新包括與所述多個連接有關(guān)的狀態(tài)信息的列表。
35.如權(quán)利要求24所述的方法,其中,創(chuàng)建多路徑設(shè)備驅(qū)動程序還包括在列表中搜索與外圍設(shè)備相關(guān)的標識符。
36.如權(quán)利要求24所述的方法,其中,創(chuàng)建多路徑設(shè)備驅(qū)動程序還包括給對象加鎖,以防止該對象搜索列表。
37.如權(quán)利要求24所述的方法,其中,創(chuàng)建多路徑設(shè)備驅(qū)動程序還包括從外圍設(shè)備讀取識別數(shù)據(jù),以確認連接的身份。
38.如權(quán)利要求24所述的方法,其中,創(chuàng)建多路徑設(shè)備驅(qū)動程序還包括響應于檢測到與不同外圍設(shè)備相關(guān)的新連接而創(chuàng)建多路徑驅(qū)動程序。
39.如權(quán)利要求24所述的方法,其中,創(chuàng)建多路徑設(shè)備驅(qū)動程序還包括使用基本設(shè)備驅(qū)動程序來創(chuàng)建多路徑設(shè)備驅(qū)動程序。
40.如權(quán)利要求37所述的裝置,其中,創(chuàng)建多路徑設(shè)備驅(qū)動程序還包括響應于檢測到與外圍設(shè)備相關(guān)的新連接而創(chuàng)建多路徑設(shè)備驅(qū)動程序。
41.如權(quán)利要求37所述的裝置,其中,創(chuàng)建多路徑設(shè)備驅(qū)動程序還包括使用與新連接相關(guān)的新設(shè)備驅(qū)動程序來提示基本設(shè)備驅(qū)動程序創(chuàng)建多路徑設(shè)備驅(qū)動程序,其中,該多路徑設(shè)備與基本設(shè)備驅(qū)動程序和新設(shè)備驅(qū)動程序兩者都相關(guān)。
42.一種用于管理從計算機到外圍設(shè)備的多個物理連接的方法,該方法包括創(chuàng)建包括與將計算機連接到外圍設(shè)備的多個連接中的至少一個有效連接相關(guān)的數(shù)據(jù)的列表;以及使用該列表來自動地為從計算機到外圍設(shè)備的通信選擇路線。
43.如權(quán)利要求42所述的方法,其中,使用所述列表還包括在至少一個有效連接失敗的情況下使用該列表來給該通信選擇路線為第二連接。
44.如權(quán)利要求42所述的方法,還包括響應于至少一個有效連接失敗而移除與所述至少一個有效連接相關(guān)的數(shù)據(jù)。
45.如權(quán)利要求42所述的方法,還包括創(chuàng)建包括與全部所述多個連接有關(guān)的信息的列表。
46.一種用于管理從計算機到外圍設(shè)備的多個物理連接的方法,該方法包括接收關(guān)于從外圍設(shè)備的存儲器中移除與將計算機連接到外圍設(shè)備的多個連接中不希望的連接有關(guān)的信息的輸入;以及從外圍設(shè)備中移除所述信息。
47.如權(quán)利要求46所述的方法,其中,移除所述信息還包括確定與該外圍設(shè)備通信的替換連接。
48.如權(quán)利要求47所述的方法,其中,移除所述信息還包括使用與該外圍設(shè)備通信的替換連接來從外圍設(shè)備中移除該信息。
49.一種程序產(chǎn)品,包括程序代碼,包括被配置為管理通向外圍設(shè)備的多個物理連接的設(shè)備驅(qū)動程序,該設(shè)備驅(qū)動程序提供邏輯連接接口,該邏輯連接接口被配置為給客戶端提供通過所述多個物理連接中的至少一個對外圍設(shè)備的訪問;以及信號承載介質(zhì),承載該程序代碼。
50.如權(quán)利要求49所述的程序產(chǎn)品,其中,該信號承載介質(zhì)包括可記錄介質(zhì)和傳輸型介質(zhì)中的至少一種。
全文摘要
一種用于管理通向外圍設(shè)備的多個物理連接的裝置、程序產(chǎn)品和方法。多路徑驅(qū)動程序給客戶端提供邏輯連接接口。此接口允許客戶端通過一個或多個物理連接來高效地訪問外圍設(shè)備。在這么做的時候,邏輯連接接口將各連接與基本連接相關(guān)聯(lián),從存儲器中刪除無效連接,并更新和使用有效連接的列表來將數(shù)據(jù)無縫地發(fā)送到外圍設(shè)備。
文檔編號G06F15/16GK1641611SQ20051000443
公開日2005年7月20日 申請日期2005年1月17日 優(yōu)先權(quán)日2004年1月15日
發(fā)明者特洛伊·D·阿姆斯特朗, 托馬斯·R·克勞萊, 肯尼斯·G·林, 詹姆斯·L·內(nèi)勒, 約瑟夫·T·里茲 申請人:國際商業(yè)機器公司