專利名稱:用于虛擬化sas存儲(chǔ)適配器的方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及存儲(chǔ)適配器。更具體地說(shuō),本發(fā)明涉及計(jì)算機(jī)系統(tǒng)的邏輯 分區(qū)的SAS (串行連接小型計(jì)算機(jī)系統(tǒng)接口 )適配器的虛擬化。
背景技術(shù):
大型計(jì)算機(jī)系統(tǒng)通常被分成多個(gè)邏輯分區(qū)。每個(gè)邏輯分區(qū)代表系統(tǒng)中 的資源的劃分并且作為獨(dú)立的邏輯系統(tǒng)運(yùn)行。邏輯分區(qū)的一個(gè)實(shí)例是將多 處理器計(jì)算機(jī)系統(tǒng)分成多個(gè)獨(dú)立的服務(wù)器,每個(gè)服務(wù)器都具有其自己的處
理器、主存儲(chǔ)裝置以及i/o設(shè)備。
每個(gè)邏輯分區(qū)都需要的典型資源M存儲(chǔ)裝置。許多系統(tǒng)利用SAS設(shè) 備來(lái)提供存儲(chǔ)。SAS是一種設(shè)計(jì)為以增加的性能、可伸縮性和冗余度取代 并行SCSI(小型計(jì)算機(jī)系統(tǒng)接口 )的數(shù)據(jù)傳輸技術(shù)。它可以提供SATA(串 行高級(jí)技術(shù)附件)兼容性和互操作性、成本有效的分層存儲(chǔ)部署,以及盤 驅(qū)動(dòng)器和平臺(tái)選擇的靈活性。
邏輯分區(qū)的當(dāng)前實(shí)施方式的缺點(diǎn)是每個(gè)分區(qū)都需要具有其自己的存儲(chǔ) 適配器。因此,對(duì)于大型計(jì)算機(jī)系統(tǒng),需要大量的物理存儲(chǔ)適配器,并且 為了為這些適配器提供關(guān)聯(lián)的PCI (外圍組件互聯(lián))或PCI Express適配 器槽,還需要大量的才幾殼,這導(dǎo)致顯著的額外開支。當(dāng)前實(shí)施方式還要求 每個(gè)分區(qū)都具有其自己的存儲(chǔ)設(shè)備,這導(dǎo)致過(guò)多數(shù)量的存儲(chǔ)設(shè)備以及過(guò)多 數(shù)量的用于容納存儲(chǔ)設(shè)備的相應(yīng)機(jī)殼。此外,每個(gè)機(jī)殼典型地封裝為單個(gè) SAS域以便機(jī)殼限于單個(gè)分區(qū)。因此,需要單個(gè)設(shè)備(或幾個(gè)設(shè)備)的分 區(qū)必須承擔(dān)完整機(jī)殼(其可能具有許多空的設(shè)備槽)的成本,這也導(dǎo)致大 量的資源浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明提供了用于虛擬化S AS存儲(chǔ)適配器以便允許計(jì)算機(jī)系統(tǒng)的邏輯 分區(qū)共享存儲(chǔ)設(shè)備的方法、計(jì)算機(jī)程序產(chǎn)品以及計(jì)算機(jī)系統(tǒng)。所述方法、 計(jì)算機(jī)程序產(chǎn)品以及計(jì)算機(jī)系統(tǒng)包括將邏輯存儲(chǔ)適配器分配給所述邏輯 分區(qū)中的每個(gè)邏輯分區(qū)的操作系統(tǒng);創(chuàng)建從所述邏輯分區(qū)中的每個(gè)邏輯分 區(qū)到所述存儲(chǔ)設(shè)備中的各個(gè)邏輯塊組的映射;以及使用系統(tǒng)管理程序配置 所述邏輯存儲(chǔ)適配器,使得選定分區(qū)可以訪問允許該選定分區(qū)訪問的選定 邏輯塊組。
圖l是示出共享存^i殳備的多個(gè)分區(qū)的方塊圖2是示出多個(gè)盤區(qū)(extent)的方塊圖,每個(gè)盤區(qū)都包含多個(gè)連續(xù) 邏輯塊;
圖3是示出分區(qū)到盤區(qū)的映射的表;
圖4是示出本發(fā)明的一個(gè)實(shí)施例中的工作流的流程圖;以及 圖5是可以使用本發(fā)明的計(jì)算機(jī)系統(tǒng)的概念圖。
具體實(shí)施例方式
現(xiàn)在將參考附圖中示出的實(shí)施例通過(guò)實(shí)例的方式更詳細(xì)地說(shuō)明本發(fā) 明。應(yīng)注意的是,僅通過(guò)實(shí)例的方式提供了以下描述的實(shí)施例并且不應(yīng)理 解為將本發(fā)明的概念限于任何特定的物理配置。此夕卜,所使用的術(shù)語(yǔ)"上"、 "下,,、"前"、"后"、"之上,,、"之下"以及類似的此類術(shù)語(yǔ)不應(yīng) 理解為將本發(fā)明限于特定的方向,除非另外指出。相反,僅在相對(duì)的^i^出
上使用這些術(shù)語(yǔ)。
如本領(lǐng)域的技術(shù)人員將理解的,本發(fā)明可以被體現(xiàn)為系統(tǒng)、方法或計(jì) 算機(jī)程序產(chǎn)品。相應(yīng)地,本發(fā)明可以采取完全硬件實(shí)施例、完全軟件實(shí)施 例(包括固件、駐留軟件、微代碼等)或組合在此可總稱為"電路"、"模塊"或"系統(tǒng)"的軟件和硬件方面的實(shí)施例的形式。此外,本發(fā)明可以采 取體現(xiàn)在任何有形表達(dá)介質(zhì)內(nèi)的計(jì)算機(jī)程序產(chǎn)品的形式,所述介質(zhì)中包含 有計(jì)算^^可用程序代碼。
可以使用 一個(gè)或多個(gè)計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)的任意組合。所述 計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)例如可以是(但不限于)電、磁、光、電磁、
紅外線或半導(dǎo)體系統(tǒng)、裝置或設(shè)備,或傳播介質(zhì)。計(jì)算機(jī)可讀介質(zhì)的更具
體的實(shí)例(非窮舉列表)包括具有一條或多條線的電連接、便攜式計(jì)算 機(jī)軟盤、硬盤、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦 寫可編程只讀存儲(chǔ)器(EPROM或閃存)、光纖、便攜式光盤只讀存儲(chǔ)器 (CD-ROM)、光存儲(chǔ)設(shè)備、諸如那些支持互聯(lián)網(wǎng)或內(nèi)聯(lián)網(wǎng)的傳輸介質(zhì)或 磁存儲(chǔ)設(shè)備。要注意的是,所述計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)甚至可以是 程序被打印在其上的紙張或其他適合的介質(zhì),因?yàn)樗龀绦蚩梢酝ㄟ^(guò)例如 光掃描所述紙張或其他介質(zhì)被電子地捕獲,然后被編譯、解釋或另外以適 合的方式被處理(如果必要),然后被存儲(chǔ)在計(jì)算^儲(chǔ)器中。在此文檔 的上下文中,計(jì)算機(jī)可用或計(jì)算機(jī)可讀介質(zhì)可以是任何能夠包含、存儲(chǔ)、 傳送、傳播或傳輸由指令執(zhí)行系統(tǒng)、裝置或設(shè)^f吏用或與指令執(zhí)行系統(tǒng)、 裝置或設(shè)備結(jié)合的程序的介質(zhì)。計(jì)算機(jī)可用介質(zhì)可以包括其中包含計(jì)算機(jī) 可用程序代碼(在基帶中或作為載波的一部分)的傳播數(shù)據(jù)信號(hào)??梢允?用任何適當(dāng)?shù)慕橘|(zhì)(包括但不限于無(wú)線、有線、光纜、射頻等)來(lái)傳輸計(jì) 算機(jī)可用程序代碼。
用于執(zhí)行本發(fā)明的操作的計(jì)算機(jī)程序代碼可以以 一種或多種編程語(yǔ)言 的任意組合來(lái)編寫,所述編程語(yǔ)言包括面向?qū)ο蟮木幊陶Z(yǔ)言(如Java、 Smalltalk或C十+等)和傳統(tǒng)的過(guò)程編程語(yǔ)言(如"C"編程語(yǔ)言或類似的 編程語(yǔ)言)。所述程序代碼可以完全地在用戶計(jì)算機(jī)上、部分地在用戶計(jì) 算機(jī)上、作為單獨(dú)的軟件包、部分地在用戶計(jì)算機(jī)上并部分地在遠(yuǎn)程計(jì)算 機(jī)上或完全地在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在后者的情況中,所述遠(yuǎn)程 計(jì)算機(jī)可以通過(guò)任何類型的網(wǎng)絡(luò)(包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)) 與所述用戶計(jì)算樹目連,或者可以進(jìn)行與外部計(jì)算機(jī)的連接(例如,利用互聯(lián)網(wǎng)服務(wù)提供商并通過(guò)互聯(lián)網(wǎng))。
參考根據(jù)本發(fā)明的實(shí)施例的方法、裝置(系統(tǒng))和/或計(jì)算機(jī)程序產(chǎn)品 的流程圖和/或方塊圖在下面描述了本發(fā)明。將理解,所述流程圖和/或方塊 圖的每個(gè)方塊以及所述流程圖和/或方塊圖中的方塊的組合可以由計(jì)算機(jī) 程序指令來(lái)實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以被提供給通用計(jì)算機(jī)、專用計(jì) 算機(jī)或其他可編程數(shù)據(jù)處理裝置的處理器以產(chǎn)生一種機(jī)器,以便通過(guò)所述 計(jì)算機(jī)和/或其他可編程數(shù)據(jù)處理裝置的處理器執(zhí)行的所述指令將創(chuàng)建用
于實(shí)現(xiàn)所述流程圖和/或方塊圖方塊(多個(gè))中指定的功能/操作的裝置。
這些計(jì)算機(jī)程序指令也可以被存儲(chǔ)在能夠以特定方式引導(dǎo)計(jì)算機(jī)或其
他可編程數(shù)據(jù)處理裝置執(zhí)行功能的計(jì)算機(jī)可讀介質(zhì)中,以便存儲(chǔ)在所述計(jì) 算機(jī)可讀介質(zhì)中的所述指令將產(chǎn)生一件包括實(shí)現(xiàn)在所述流程圖和/或方塊 圖方塊(多個(gè))中指定的功能/操作的指令的制品。
所述計(jì)算機(jī)程序指令還可以被加載到計(jì)算機(jī)或其他可編程數(shù)據(jù)處理裝 置上以導(dǎo)致將在所述計(jì)算機(jī)或其他可編程裝置上執(zhí)行一系列的操作步驟以 產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的過(guò)程,以便在所述計(jì)算機(jī)或其他可編程裝置上執(zhí)行的所 述指令將提供用于實(shí)現(xiàn)在所述流程圖和/或方塊圖方塊(多個(gè))中指定的功 能/操作的過(guò)程。
附圖中的流程圖和方塊圖示出了根據(jù)本發(fā)明的各種實(shí)施例的系統(tǒng)、方 法和計(jì)算枳4呈序產(chǎn)品的可能實(shí)施方式的體系結(jié)構(gòu)、功能和操作。在此方面, 所述流程圖或方塊圖中的每個(gè)方塊都可以表示代碼的模塊、段或部分,所 述代碼包括用于實(shí)現(xiàn)指定的邏輯功能(多個(gè))的一個(gè)或多個(gè)可執(zhí)行指令。 還應(yīng)指出,在某些備選實(shí)施方式中,在方塊中說(shuō)明的功能可以不按圖中說(shuō) 明的順序發(fā)生。例如,示出為連續(xù)的兩個(gè)方塊可以實(shí)際上^^本同時(shí)地執(zhí) 行,或者某些時(shí)候,取決于所涉及的功能,可以以相反的順序執(zhí)行所述方 塊。還將指出,所述方塊圖和/或流程圖的每個(gè)方塊以及所述方塊圖和/或流 程圖中的方塊的組合可以由執(zhí)行指定功能或操作的基于硬件的專用系統(tǒng)或 專用硬件和計(jì)算機(jī)指令的組合來(lái)實(shí)現(xiàn)。
本發(fā)明提供了一種方法,其用于虛擬化存儲(chǔ)設(shè)備(例如,盤),以便允許邏輯分區(qū)或甚至允許分區(qū)內(nèi)的應(yīng)用訪問所述存^i殳備的一部分。將存 儲(chǔ)設(shè)備虛擬化成多個(gè)邏輯設(shè)備,并且每個(gè)分區(qū)只看到允許該分區(qū)訪問的邏 輯設(shè)備。訪問實(shí)際物理設(shè)備的細(xì)節(jié)由硬件來(lái)處理。
本發(fā)明實(shí)現(xiàn)了 一種方法,其細(xì)分單個(gè)存儲(chǔ)i殳備以允許不同分區(qū)同時(shí)直 接訪問同一物理設(shè)備。本發(fā)明并不是如虛擬輸入/輸出(VIO)方法中那樣 在共享存儲(chǔ)設(shè)備中通過(guò)第三方分區(qū)來(lái)排隊(duì)讀/寫請(qǐng)求,而是允許多個(gè)分區(qū)直 接共享存儲(chǔ)設(shè)備,因此提供了性能優(yōu)勢(shì)。
在本發(fā)明中,多個(gè)不同分區(qū)對(duì)同一物理設(shè)備的訪問被彼此隔離,使得 異常分區(qū)或惡意分區(qū)不會(huì)影響使用同一設(shè)備的其他分區(qū)。在硬件中實(shí)現(xiàn)此 隔離以最小化性能成本。用戶應(yīng)用可以被許可直接訪問存儲(chǔ)設(shè)備的子集。 硬件將實(shí)施訪問限制,使得用戶應(yīng)用不會(huì)影響其他存儲(chǔ)設(shè)備或該存儲(chǔ)設(shè)備 的其他分區(qū)。存^i殳備無(wú)需特殊的能力或功能來(lái)使用本發(fā)明。
可以由SCSI客戶端-服務(wù)器的服務(wù)-提供模型來(lái)概括分區(qū)與盤資源之 間的關(guān)系??蛻舳?皮稱為SCSI啟動(dòng)器,而月l務(wù)器4皮稱為SCSI目標(biāo)。SCSI 目標(biāo)包括一個(gè)或多個(gè)邏輯存儲(chǔ)實(shí)體,例如,每個(gè)都具有邏輯單元號(hào)(LUN) 的邏輯單元。例如,對(duì)于訪問存儲(chǔ)設(shè)備的分區(qū),分區(qū)是SCSI啟動(dòng)器,而 存儲(chǔ)設(shè)備是SCSI目標(biāo)。例如,在使用較小的硬盤作為存儲(chǔ)設(shè)備時(shí),存儲(chǔ) 設(shè)備(或目標(biāo))可以包含單個(gè)LUN?;蛘?,例如,當(dāng)存儲(chǔ)設(shè)備包括外部 RAID盒時(shí),存儲(chǔ)設(shè)備可以包含多個(gè)LUN。在此,LUN單元是存儲(chǔ)實(shí)體, 后者可以包括盤驅(qū)動(dòng)器上的存儲(chǔ)的一部分、盤驅(qū)動(dòng)器上的全部存儲(chǔ)、盤陣 列中的多個(gè)驅(qū)動(dòng)器上的總存儲(chǔ),以及它們的任意組合。
在本發(fā)明的優(yōu)選實(shí)施例中,虛擬化平臺(tái)(也稱為系統(tǒng)管理程序)位于 物理硬件資源之上并且提供通過(guò)硬件管理控制臺(tái)(HMC )操縱資源管理的 功能。系統(tǒng)管理程序向操作系統(tǒng)提供抽象層。例如,從分區(qū)的操作系統(tǒng)的 角度,虛擬硬件資源似乎屬于該分區(qū)。系統(tǒng)管理程序控制對(duì)硬件資源的分 區(qū)訪問。每個(gè)操作系統(tǒng)都接收作為物理存儲(chǔ)適配器一部分的邏輯存儲(chǔ)適配 器。系統(tǒng)管理程序支持邏輯適配器的配置并且僅暴露允許該適配器訪問的 那些設(shè)備。分區(qū)就像對(duì)待專用物理存儲(chǔ)適配器那樣對(duì)待邏輯存儲(chǔ)適配器。在本發(fā)明的一個(gè)實(shí)施例中,將虛擬化InfiniBand接口實(shí)現(xiàn)為到提供給 分區(qū)的物理主機(jī)SAS適配器的軟件接口 。主機(jī)SAS適配器然后將虛擬接 口映射成物理SAS。
從HMC啟動(dòng)主機(jī)SAS適配器配置。系統(tǒng)管理程序執(zhí)行此配置從而無(wú) 需分區(qū)參與。在配置期間,將實(shí)現(xiàn)邏輯SAS擴(kuò)展器并且創(chuàng)建啟動(dòng)器組。每 個(gè)邏輯操作系統(tǒng)分區(qū)都具有邏輯存儲(chǔ)適配器。將啟動(dòng)器SAS地址分配^ 個(gè)邏輯存儲(chǔ)適配器。每個(gè)邏輯存儲(chǔ)適配器因此具有其自己的啟動(dòng)器ID以 便能夠正確地執(zhí)行SAS結(jié)構(gòu)上的事務(wù)。主機(jī)SAS適配器配置建立啟動(dòng)器 SAS地址(I )的結(jié)構(gòu)相關(guān)的員。啟動(dòng)器地址是啟動(dòng)器—目標(biāo)一LUN( I_T—L ) 連系的組件。系統(tǒng)對(duì)待此邏輯適配器就像其對(duì)待SAS操作中的專用物理適 配器那樣。
圖l是示出共享存儲(chǔ)設(shè)備的多個(gè)分區(qū)的方塊圖。在圖1中,多個(gè)分區(qū) 100 (即,SCSI啟動(dòng)器)共享存儲(chǔ)設(shè)備140 (即,SCSI目標(biāo))。系統(tǒng)管理 程序IIO控制分區(qū)100經(jīng)由SAS適配器120和目標(biāo)端口 130對(duì)存^i殳備140 的訪問。存儲(chǔ)設(shè)備140包含多個(gè)邏輯存儲(chǔ)實(shí)體LUN 150。借助SAS適配器 120的虛擬化,分區(qū)IOO可以訪問LUN 150,就像LUN 150是經(jīng)由專用物 理存儲(chǔ)適配器連接到分區(qū)100的專用物理存儲(chǔ)i殳備那樣。
HMC負(fù)責(zé)配置盤資源和將其分配給不同的分區(qū)。本發(fā)明使得多個(gè)分 區(qū)能夠共享存儲(chǔ)設(shè)備的邏輯存儲(chǔ)單元,每個(gè)分區(qū)都能夠訪問作為單個(gè)LUN 下的連續(xù)邏輯塊的組的一個(gè)或多個(gè)"盤區(qū),,。如圖l所示,LUN 150可以 包含一個(gè)或多個(gè)盤區(qū)160。圖2是示出多個(gè)盤區(qū)的方塊圖,每個(gè)盤區(qū)都包 含多個(gè)連續(xù)邏輯塊。
HMC構(gòu)造表以將分區(qū)與LUN的盤區(qū)關(guān)聯(lián)。然后,每個(gè)盤區(qū)似乎是分 區(qū)的"邏輯,,LUN。該表被發(fā)送給系統(tǒng)管理程序,后者則使用該表來(lái)執(zhí)行 盤區(qū)的邏輯地址與存儲(chǔ)設(shè)備上的物理扇區(qū)之間的映射。圖3示出了將分區(qū) 與LUN的盤區(qū)(即,連續(xù)邏輯塊的組)關(guān)聯(lián)的示意性表,其中映射包含 基礎(chǔ)地址和盤區(qū)的長(zhǎng)度。例如,分區(qū)103與LUN160的盤區(qū)關(guān)聯(lián),其中盤 區(qū)始于基礎(chǔ)地址1288并且長(zhǎng)度為2048個(gè)塊。在本發(fā)明的一個(gè)實(shí)施例中,為了使分區(qū)可以通過(guò)InfiniBand接口與存 儲(chǔ)設(shè)備通信,將首先創(chuàng)建包括隊(duì)列對(duì)(QP)的工作隊(duì)列(WQ)。為了執(zhí) 行操作,將工作隊(duì)列元素(WQE)置于WQ中,然后SAS適配器執(zhí)行該 WQE。因此,WQ形成了分區(qū)與SAS適配器之間的通信媒介,減輕了操 作系統(tǒng)參與的負(fù)擔(dān)。每個(gè)過(guò)程可以創(chuàng)建一個(gè)或多個(gè)用于通信的QP,其中 每個(gè)QP都具有關(guān)聯(lián)的上下文??梢栽谟布袑?shí)現(xiàn)QP以便從CPU卸載大 部分工作。 一旦正確地處理了 WQE,就將創(chuàng)建完成隊(duì)列元素(CQE)并 將其置于完成隊(duì)列(CQ)中。使用CQ通知調(diào)用方已完成的WQE減少了 以其他形式將生成的中斷。
圖4是示出本發(fā)明的一個(gè)實(shí)施例中的此工作流的流程圖。首先,在狀 態(tài)400,為設(shè)備狀況創(chuàng)建存儲(chǔ)器區(qū)域。在狀態(tài)401,將WQE元素置于接收 隊(duì)列以接收設(shè)備狀況。在狀態(tài)402,對(duì)于InfiniBand中的主機(jī)通道適配器, 通過(guò)Hcall標(biāo)識(shí)包含所述數(shù)椐的存儲(chǔ)器區(qū)域。此存儲(chǔ)器區(qū)域Hcall將存儲(chǔ)器 中的虛擬區(qū)域映射到物理地址范圍,使得硬件能夠直接向/從存儲(chǔ)器區(qū)域訪 問數(shù)據(jù)。在讀取流期間,保留此存儲(chǔ)器區(qū)域以包含從存儲(chǔ)設(shè)備接收的讀取 數(shù)據(jù)。在寫入流期間,SAS硬件將從此存儲(chǔ)器區(qū)域讀取數(shù)據(jù)并將其發(fā)送到 所述設(shè)備。在狀態(tài)403,形成WQE并將其置于分區(qū)的發(fā)送隊(duì)列。WQE包 含請(qǐng)求ID和讀取數(shù)據(jù)的存儲(chǔ)器區(qū)域描述符。此WQE包含SCSI CDB (公 共描述符塊,包括地址/長(zhǎng)度/關(guān)鍵詞)以及含有要讀取/寫入的數(shù)據(jù)的存儲(chǔ) 器區(qū)域的描述符。在狀態(tài)404,硬件將命令發(fā)送到所述i殳備,然后在狀態(tài) 405,物理適配器使用啟動(dòng)器_目標(biāo)—LUNJ壬務(wù)標(biāo)識(shí)符(I—T—L—Q )連系從 原始發(fā)送的WQE獲取存儲(chǔ)器區(qū)域ID,后者然后被用于獲取物理地址并且 執(zhí)行讀取和寫入操作。在狀態(tài)406,存^i殳備將設(shè)備狀況(例如,SCSI狀 況和自動(dòng)讀出)發(fā)送到主機(jī)SAS適配器。接著在狀態(tài)407,設(shè)備狀況被存 儲(chǔ)在描述為接收隊(duì)列WQE的設(shè)備狀況存儲(chǔ)器區(qū)域中。設(shè)備狀況指示了寫 入是成功還是失敗,并且如果為失敗,指示了失敗的詳細(xì)信息。
分區(qū)創(chuàng)建QP以便與盤區(qū)通信,所述盤區(qū)似乎是該分區(qū)的標(biāo)準(zhǔn)普通設(shè) 備。系統(tǒng)管理程序?qū)P內(nèi)的特殊寄存器編程以控制分區(qū)與盤區(qū)之間的映射。所述映射包含基礎(chǔ)地址和盤區(qū)的長(zhǎng)度。在硬件中實(shí)現(xiàn)的QP動(dòng)態(tài)地將 讀取或?qū)懭朊畹奶摂M尋址轉(zhuǎn)換為命令的物理尋址。在本發(fā)明的一個(gè)實(shí)施 例中,通過(guò)將盤區(qū)的基礎(chǔ)地址與用戶提供的地址相加以生成物理地址來(lái)完 成此地址轉(zhuǎn)換。在硬件中實(shí)施范圍檢查。如果得到的物理地址超出范圍, 則利用普通的InfiniBand語(yǔ)義經(jīng)由置于CQ上的餘誤CQE向用戶返回通 信請(qǐng)求。如果命令成功完成,則通過(guò)創(chuàng)建CQE并將其置于CQ中來(lái)通知 用戶。每個(gè)QP都具有唯一的啟動(dòng)器ID。從物理設(shè)備的角度,這允許每個(gè) 盤區(qū)-QP對(duì)都是唯一的I—T—L連系,后者允許錯(cuò)誤的標(biāo)準(zhǔn)處理(如果錯(cuò)誤 發(fā)生的話)而無(wú)需特殊處理。因?yàn)槊總€(gè)盤區(qū)都與唯一的IJT一L連系關(guān)聯(lián), 所以所有標(biāo)準(zhǔn)SCSI協(xié)議都得到支持并且對(duì)于"邏輯"LUN,將如預(yù)期的 那樣工作。硬件還解釋InfiniBand的讀取容量命令。向用戶報(bào)告的盤大小 是與該QP關(guān)聯(lián)的HMC所分配的盤區(qū)大小。
由于對(duì)于盤區(qū)的硬件支持。用戶訪問很容易地被限于各個(gè)"邏輯" LUN,即,每個(gè)LUN的子集。現(xiàn)在用戶應(yīng)用可以直接執(zhí)4亍盤I/O而無(wú)需 內(nèi)核訪問,并且異常的應(yīng)用不會(huì)影響同一盤的其他用戶。這提高了性能并 且允許額外的應(yīng)用優(yōu)化。
圖5示出了其上可以實(shí)現(xiàn)本發(fā)明的計(jì)算機(jī)系統(tǒng)(502)。所述計(jì)算機(jī)系 統(tǒng)可以是以下項(xiàng)中的任意一項(xiàng)個(gè)人計(jì)算機(jī)系統(tǒng)、工作站計(jì)算機(jī)系統(tǒng)、膝 上型計(jì)算機(jī)系統(tǒng)、嵌入式控制器系統(tǒng)、基于^:處理器的系統(tǒng)、基于數(shù)字信 號(hào)處理器的系統(tǒng)、手持設(shè)備系統(tǒng)、個(gè)人數(shù)字助理(PDA)系統(tǒng)、無(wú)線系統(tǒng)、 無(wú)線聯(lián)網(wǎng)系統(tǒng)等。所述計(jì)算機(jī)系統(tǒng)包括總線(504)或其他通信機(jī)制以便傳 送信息并且包括與總線(504)相連的處理器(506)以便處理信息。所述 計(jì)算機(jī)系統(tǒng)還包括與所述總線相連以便存儲(chǔ)將由處理器(506 )執(zhí)行的信息 和指令的主存儲(chǔ)器,例如,隨M取存儲(chǔ)器(RAM)或其他動(dòng)態(tài)存儲(chǔ)設(shè)備 (例如,動(dòng)態(tài)RAM( DRAM )、靜態(tài)RAM( SRAM )、同步DRAM( SDRAM )、 閃速RAM)。此外,主存儲(chǔ)器(508)可用于存儲(chǔ)臨時(shí)變量或處理器執(zhí)行 指令期間的其他中間信息。所述計(jì)算機(jī)系統(tǒng)還包括與總線(504)相連以便 存儲(chǔ)靜態(tài)信息和處理器的指令的只讀存儲(chǔ)器(ROM) 510或其他靜態(tài)存儲(chǔ)設(shè)備(例如,可編程ROM (PROM)、可擦寫PROM (EPROM),以 及電可擦寫PROM (EEPROM))。提供了諸如磁盤或光盤之類的存儲(chǔ) 設(shè)備(512 )并將其連接到總線以便存儲(chǔ)信息和指令。此存儲(chǔ)設(shè)備是計(jì)算機(jī) 可讀介質(zhì)的一個(gè)實(shí)例。
所述計(jì)算機(jī)系統(tǒng)還包括輸入信號(hào)的輸入/輸出端口 ( 530)以連接計(jì)算 機(jī)系統(tǒng)。此類連接可以包括直接電連接、無(wú)線連接、聯(lián)網(wǎng)連接等以便實(shí)現(xiàn) 自動(dòng)控制功能、遠(yuǎn)程控制功能等??梢园惭b適合的接口卡以提供所需的功 能和信號(hào)級(jí)別。
所述計(jì)算機(jī)系統(tǒng)還可以包括專用邏輯設(shè)備(例如,專用集成電路 (ASIC))或可配置的邏輯設(shè)備(例如,通用邏輯陣列(GAL)或可重新 編程的現(xiàn)場(chǎng)可編程門陣列(FPGA)),它們可用于替代參考圖1-4所述的 方法的任何部分或所有部分的功能。可以使用適當(dāng)?shù)脑O(shè)備總線(例如,小 型計(jì)算機(jī)系統(tǒng)接口 (SCSI)總線、增強(qiáng)的集成設(shè)備電子部件(IDE)總線, 或超高速直接存儲(chǔ)器存取(DMA)總線)向計(jì)算機(jī)系統(tǒng)添加其他可移動(dòng)介 質(zhì)設(shè)備(例如,光盤、磁帶,以及可移動(dòng)磁-光介質(zhì))或固定的高密度介質(zhì) 驅(qū)動(dòng)器。所述計(jì)算機(jī)系統(tǒng)還可以額外地包括光盤讀取器、光盤讀-寫單元, 或者光盤點(diǎn)播機(jī),它們都可以連接到同 一設(shè)備總線或另 一設(shè)備總線。
所述計(jì)算機(jī)系統(tǒng)可以經(jīng)由總線連接到顯示器(514),例如,陰極射線 管(CRT)、液晶顯示器(LCD)、語(yǔ)音合成硬件和/或軟件等,以便向計(jì) 算機(jī)用戶顯示和/或提供信息。所述顯示器可以由顯卡或圖形卡來(lái)控制。所 述計(jì)算機(jī)系統(tǒng)包括輸入設(shè)備,例如鍵盤(516)和光標(biāo)控件(518),以便 向處理器(506)傳送信息和命令選擇??梢酝ㄟ^(guò)用作輸入設(shè)備(516)的 語(yǔ)音識(shí)別^^件和/或軟件來(lái)實(shí)現(xiàn)此類命令選擇。光標(biāo)控件(518)例如是鼠 標(biāo)、跟蹤球、光標(biāo)方向鍵、觸摸屏顯示器、光學(xué)字符識(shí)別硬件和/或軟件等, 以便向處理器(506)傳送方向信息和命令選擇并控制顯示器(514)上的 光標(biāo)移動(dòng)。此外,打印機(jī)(未示出)可以提供數(shù)據(jù)結(jié)構(gòu)、信息或任何其他 由計(jì)算機(jī)系統(tǒng)存儲(chǔ)和/或生成的數(shù)據(jù)的打印列表。
所述計(jì)算機(jī)系統(tǒng)執(zhí)行本發(fā)明的一部分處理步驟或所有處理步驟以響應(yīng)處理器執(zhí)行一組或多組在存儲(chǔ)器(例如,主存儲(chǔ)器)中包含的一個(gè)或多個(gè)
指令??梢詮钠渌?jì)算機(jī)可讀介質(zhì)(例如,存^i殳備)將此類指令讀入主 存儲(chǔ)器。還可以采用多處理布置中的一個(gè)或多個(gè)處理器執(zhí)行主存儲(chǔ)器中包 含的系列指令。在備選實(shí)施例中,硬連線電路可用于替代軟件指令或與軟 件指令相結(jié)合。因此,實(shí)施例并不限于硬件電路和軟件的任何特定組合。
本發(fā)明的計(jì)算機(jī)代碼設(shè)備可以是任何解釋的或可執(zhí)行的代碼裝置,包 括但不限于腳本、解釋器、動(dòng)態(tài)鏈接庫(kù)、Java類,以及完整的可執(zhí)行程序。 此外,為了更佳的性能、可靠性和/或成本,本發(fā)明的處理的各部分可以是 棘的。
所述計(jì)算機(jī)系統(tǒng)還可以包括與總線相連的通信接口 。所述通信接口 (520)提供連接到網(wǎng)絡(luò)鏈路(522)(其可以例如連接到本地網(wǎng)絡(luò)(524)) 的雙向數(shù)據(jù)通信。例如,通信接口 (520)可以是網(wǎng),口卡以連接到任何 分組交換局域網(wǎng)(LAN)。作為另一個(gè)實(shí)例,通信接口 (520)可以是非 對(duì)稱用戶數(shù)字線路(ADSL)卡、綜合服務(wù)數(shù)字網(wǎng)絡(luò)(ISDN)卡或調(diào)制解 調(diào)器,以便提供到相應(yīng)類型的電話線路的數(shù)據(jù)通信連接。還可以通過(guò)通信 接口 (520)實(shí)現(xiàn)無(wú)線鏈路。在任何此類實(shí)施方式中,通信接口 (520)都 發(fā)送和接收電、電磁或光信號(hào),所述信號(hào)承載代表各類信息的數(shù)字?jǐn)?shù)據(jù)流。
網(wǎng)絡(luò)鏈路(522 )典型地通過(guò)一個(gè)或多個(gè)網(wǎng)絡(luò)提供到其他數(shù)據(jù)設(shè)備的數(shù) 據(jù)通信。例如,網(wǎng)絡(luò)鏈路可以通過(guò)本地網(wǎng)絡(luò)(524)(例如,局域網(wǎng))或通 過(guò)服務(wù)提供商(其通過(guò)通信網(wǎng)絡(luò)(528 )提供通信服務(wù))運(yùn)營(yíng)的設(shè)備來(lái)提供 到計(jì)算機(jī)(526)的連接。在優(yōu)選實(shí)施例中,所述本地網(wǎng)絡(luò)和通信網(wǎng)g選 地使用承載數(shù)字?jǐn)?shù)據(jù)流的電、電磁或光信號(hào)。通過(guò)各種網(wǎng)絡(luò)的信號(hào)、網(wǎng)絡(luò) 鏈路上以及通過(guò)通信接口的信號(hào)(它們承載去往/來(lái)自計(jì)算機(jī)系統(tǒng)的數(shù)字?jǐn)?shù) 據(jù))是傳輸信息的載波的示意性形式。所述計(jì)算機(jī)系統(tǒng)可以通過(guò)所述網(wǎng)絡(luò) (多個(gè))、網(wǎng)絡(luò)鏈路和通信接口來(lái)發(fā)送通知并接收數(shù)據(jù)(包括程序代碼)。
應(yīng)理解的是,本發(fā)明不必限于以上示出和描述的特定過(guò)程、布置、材 料和組件,相反,本發(fā)明可以存在大量在本發(fā)明的范圍之內(nèi)的變化。
權(quán)利要求
1.一種用于虛擬化SAS存儲(chǔ)適配器以便允許計(jì)算機(jī)系統(tǒng)的邏輯分區(qū)共享存儲(chǔ)設(shè)備的方法,包括以下步驟將邏輯存儲(chǔ)適配器分配給所述邏輯分區(qū)中的每個(gè)邏輯分區(qū)的操作系統(tǒng);創(chuàng)建從所述邏輯分區(qū)中的每個(gè)邏輯分區(qū)到所述存儲(chǔ)設(shè)備中的各個(gè)邏輯塊組的映射,由此生成映射信息;以及使用所述映射信息配置所述邏輯存儲(chǔ)適配器,使得選定分區(qū)可以訪問允許該選定分區(qū)訪問的選定邏輯塊組。
2. 根據(jù)權(quán)利要求l的方法,其中所述生成步驟包括 構(gòu)造記錄從所述邏輯分區(qū)中的每個(gè)邏輯分區(qū)到所述存儲(chǔ)i殳備中的各個(gè)邏輯塊組的映射的表;以及將所M提供給系統(tǒng)管理程序,以便允許所述系統(tǒng)管理程序使用所述 表來(lái)配置所述邏輯存儲(chǔ)適配器。
3. 根據(jù)權(quán)利要求2的方法,其中通過(guò)硬件管理控制臺(tái)來(lái)執(zhí)行所述構(gòu)造 步驟。
4. 根據(jù)權(quán)利要求l的方法,其中所述配置步驟包括 實(shí)現(xiàn)邏輯SAS擴(kuò)展器和啟動(dòng)器組;將所述啟動(dòng)器中的每個(gè)啟動(dòng)器的SAS地址分配給各個(gè)邏輯存儲(chǔ)適配 器;以及提供所述映射信息以便將訪問所述存儲(chǔ)設(shè)備的數(shù)據(jù)存儲(chǔ)操作的虛擬尋 址轉(zhuǎn)換成所述數(shù)據(jù)存儲(chǔ)操作的物理尋址。
5. 根據(jù)權(quán)利要求4的方法,其中通過(guò)硬件執(zhí)行所述轉(zhuǎn)換步驟。
6. 根據(jù)權(quán)利要求4的方法,其中所述數(shù)據(jù)存儲(chǔ)操作包M操作和寫操 作中的一個(gè)操作。
7. 根據(jù)權(quán)利要求l的方法,其中所述邏輯存儲(chǔ)適配器提供到所述邏輯 分區(qū)的InfiniBand編程接口 。
8. 根據(jù)權(quán)利要求l的方法,其中所述邏輯塊組是連續(xù)邏輯塊的組。
9. 一種用于虛擬化SAS存儲(chǔ)適配器以^^允許計(jì)算機(jī)系統(tǒng)的邏輯分區(qū) 共享存儲(chǔ)設(shè)備的計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包括實(shí)現(xiàn)根據(jù)權(quán)利 要求1-8中的任一權(quán)利要求的方法的計(jì)算機(jī)可用程序代碼。
10. —種計(jì)算機(jī)系統(tǒng),包括 處理器;可操作地與所述處理器相連的存儲(chǔ)器; 可操作地與所述處理器和所述存儲(chǔ)器相連的存儲(chǔ)設(shè)備;以及 用于虛擬化SAS存儲(chǔ)適配器以便允許計(jì)算機(jī)系統(tǒng)的邏輯分區(qū)共享存儲(chǔ) 設(shè)備的計(jì)算 fc^呈序產(chǎn)品,所述計(jì)算枳一呈序產(chǎn)品包括其中包含計(jì)算機(jī)可用程序代碼的計(jì)算機(jī)可用介質(zhì),所述計(jì)算機(jī)可 用程序代碼包括將邏輯存儲(chǔ)適配器分配給所述邏輯分區(qū)中的每個(gè)邏輯分區(qū)的 操作系統(tǒng)的指令;創(chuàng)建從所述邏輯分區(qū)中的每個(gè)邏輯分區(qū)到所述存儲(chǔ)設(shè)備中的 各個(gè)邏輯塊組的映射的指令,和生成映射信息的指令;以及使用所述映射信息配置所述邏輯存儲(chǔ)適配器,使得選定分區(qū) 可以訪問允許該選定分區(qū)訪問的選定邏輯塊組的指令。
11. 根據(jù)權(quán)利要求10的計(jì)算機(jī)系統(tǒng),其中用于生成的指令包括邏輯塊組的映射的表的指令;以及將所ii^提供給系統(tǒng)管理程序,以便允許所述系統(tǒng)管理程序使用所述 表來(lái)配置所述邏輯存儲(chǔ)適配器的指令。
12. 根據(jù)權(quán)利要求ll的計(jì)算機(jī)系統(tǒng),其中通過(guò)硬件管理控制臺(tái)來(lái)構(gòu)造 所錄。
13. 根據(jù)權(quán)利要求10的計(jì)算機(jī)系統(tǒng),其中用于配置的指令包括 實(shí)現(xiàn)邏輯SAS擴(kuò)展器和啟動(dòng)器組的指令;將所述啟動(dòng)器中的每個(gè)啟動(dòng)器的S AS地址分配給各個(gè)邏輯存儲(chǔ)適配器的指令;以及提供所述映射信息以便將訪問所述存儲(chǔ)設(shè)備的數(shù)據(jù)存儲(chǔ)操作的虛擬尋 址轉(zhuǎn)換成所述數(shù)據(jù)存儲(chǔ)操作的物理尋址的指令。
14. 根據(jù)權(quán)利要求13的計(jì)算機(jī)系統(tǒng),其中通過(guò)硬件執(zhí)行所述轉(zhuǎn)換。
15. 根據(jù)權(quán)利要求13的計(jì)算機(jī)系統(tǒng),其中所述數(shù)據(jù)存儲(chǔ)操作包^操 作和寫操作中的一個(gè)操作。
16. 根據(jù)權(quán)利要求10的計(jì)算機(jī)系統(tǒng),其中所述邏輯存儲(chǔ)適配器提供到 所述邏輯分區(qū)的InfiniBand編程接口 。
17. 根據(jù)權(quán)利要求10的計(jì)算機(jī)系統(tǒng),其中所述邏輯塊組是連續(xù)邏輯塊 的組。
全文摘要
本發(fā)明涉及一種用于虛擬化SAS存儲(chǔ)適配器的方法和系統(tǒng)。提供了用于虛擬化SAS存儲(chǔ)適配器以便允許計(jì)算機(jī)系統(tǒng)的邏輯分區(qū)共享存儲(chǔ)設(shè)備的方法和計(jì)算機(jī)系統(tǒng)。所述方法和計(jì)算機(jī)系統(tǒng)包括將邏輯存儲(chǔ)適配器分配給所述邏輯分區(qū)中的每個(gè)邏輯分區(qū)的操作系統(tǒng);創(chuàng)建從所述邏輯分區(qū)中的每個(gè)邏輯分區(qū)到所述存儲(chǔ)設(shè)備中的各個(gè)邏輯塊組的映射;以及使用系統(tǒng)管理程序配置所述邏輯存儲(chǔ)適配器,使得選定分區(qū)可以訪問允許該選定分區(qū)訪問的選定邏輯塊組。
文檔編號(hào)G06F3/06GK101615106SQ20091014250
公開日2009年12月30日 申請(qǐng)日期2009年6月22日 優(yōu)先權(quán)日2008年6月23日
發(fā)明者B·E·巴基, E·M·鮑曼, L·A·森德爾巴克, T·J·席姆克 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司