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

生成存儲(chǔ)系統(tǒng)命令的制作方法

文檔序號(hào):6455726閱讀:230來(lái)源:國(guó)知局
專利名稱:生成存儲(chǔ)系統(tǒng)命令的制作方法
技術(shù)領(lǐng)域
本發(fā)明的領(lǐng)域涉及生成用于存儲(chǔ)設(shè)備的命令。
背景技術(shù)
虛擬化的存儲(chǔ)系統(tǒng)為客戶機(jī)提供對(duì)多個(gè)物理存儲(chǔ)設(shè)備的訪問(wèn),就像 它們包括單個(gè)邏輯巻一樣。 一些存儲(chǔ)系統(tǒng)以分布的方式運(yùn)行,其中客戶 機(jī)直接訪問(wèn)物理存儲(chǔ)設(shè)備,而不需要專用的管理服務(wù)器。Zetera公司的 Z-SANTM技術(shù)代表了這樣一種允許客戶機(jī)直接與物理存儲(chǔ)設(shè)備交互的實(shí) 現(xiàn)方式。
虛擬存儲(chǔ)系統(tǒng)應(yīng)當(dāng)為客戶機(jī)提供對(duì)數(shù)據(jù)存儲(chǔ)的魯棒訪問(wèn)。當(dāng)系統(tǒng)動(dòng) 態(tài)改變時(shí),如果多個(gè)客戶機(jī)能夠共享對(duì)系統(tǒng)的訪問(wèn),可認(rèn)為系統(tǒng)是魯棒 的。另外,系統(tǒng)應(yīng)當(dāng)允許客戶機(jī)相互獨(dú)立地運(yùn)行,并且還應(yīng)當(dāng)允許物理 存儲(chǔ)設(shè)備相互獨(dú)立地運(yùn)行。當(dāng)獨(dú)立的客戶機(jī)可以適應(yīng)系統(tǒng)中的改變,而 不需要來(lái)自其它客戶機(jī)的信息時(shí),它們的效率是最高的。例如,在虛擬 存儲(chǔ)系統(tǒng)中共享一個(gè)邏輯巻的兩個(gè)客戶機(jī)可以有該邏輯巻的不同視圖。 有時(shí)一個(gè)客戶機(jī)可以看到與該邏輯巻相關(guān)聯(lián)的物理存儲(chǔ)設(shè)備,而另一個(gè)
客戶機(jī)可能看不到相同的物理設(shè)備;然而,該邏輯巻仍然可以對(duì)兩個(gè)客 戶機(jī)都有用。如果邏輯巻在不同的物理設(shè)備上包括冗余數(shù)據(jù),則兩個(gè)客 戶機(jī)仍然都可以對(duì)該邏輯巻進(jìn)行讀訪問(wèn),而寫(xiě)訪問(wèn)可能需要限制以防止 數(shù)據(jù)變得不同步。
客戶機(jī)應(yīng)當(dāng)具有發(fā)現(xiàn)虛擬存儲(chǔ)系統(tǒng)的要素的能力,其中要素包括邏 輯設(shè)備、物理存儲(chǔ)設(shè)備、分區(qū)、代理、服務(wù),或虛擬存儲(chǔ)系統(tǒng)的其它組 件。在2005年8月16日提交的題為"Disaggregated Resources and Access Methods"的共有美國(guó)專利申請(qǐng)1 1/205,895號(hào)中,描述了虛擬存儲(chǔ)系統(tǒng)要素的發(fā)現(xiàn),通過(guò)引用將該申請(qǐng)整體地結(jié)合于本文中。引用的 申請(qǐng)描述了發(fā)現(xiàn)包括虛擬存儲(chǔ)系統(tǒng)的邏輯設(shè)備的圖的方面。這些圖也可 隨著虛擬存儲(chǔ)系統(tǒng)的改變而改變。與發(fā)現(xiàn)虛擬存儲(chǔ)系統(tǒng)的圖一起,虛擬 存儲(chǔ)系統(tǒng)還應(yīng)當(dāng)提供一種用于在動(dòng)態(tài)環(huán)境中,特別是其中客戶機(jī)或設(shè)備 可以不通知地出現(xiàn)或消失的動(dòng)態(tài)環(huán)境中,生成存儲(chǔ)命令的方法。因?yàn)楦?變發(fā)生在虛擬存儲(chǔ)系統(tǒng)的巻級(jí)視圖之下,與邏輯巻相關(guān)聯(lián)的高級(jí)存儲(chǔ)命 令可能沒(méi)有必要隨著虛擬存儲(chǔ)系統(tǒng)或邏輯巻的改變而改變。然而,以物 理設(shè)備為目標(biāo)的低級(jí)存儲(chǔ)命令更有可能為了反映系統(tǒng)的更新而改變。在 所考慮的動(dòng)態(tài)環(huán)境中需要解決這些和其它問(wèn)題。
用于生成存儲(chǔ)命令的優(yōu)選的解決方案應(yīng)當(dāng)提供以下功能 命令生成應(yīng)當(dāng)處理共享的存儲(chǔ)區(qū)的部分對(duì)于一些客戶機(jī)不可見(jiàn),而
對(duì)于其它客戶機(jī)可見(jiàn)的情況。
客戶機(jī)應(yīng)當(dāng)能夠訪問(wèn)這樣的數(shù)據(jù)集即使存儲(chǔ)數(shù)據(jù)集的邏輯巻的部
分丟失,該數(shù)據(jù)集還是連貫的;就像丟失的物理設(shè)備鏡像了一些數(shù)據(jù)那樣。
系統(tǒng)應(yīng)當(dāng)擴(kuò)展到具有更多數(shù)量的客戶機(jī)或存儲(chǔ)設(shè)備的更大配置,而 沒(méi)有必要S1入額外的設(shè)備來(lái)管理存儲(chǔ)服務(wù)。
應(yīng)當(dāng)以支持與包括RAID組的邏輯巻相關(guān)聯(lián)的存儲(chǔ)組類型的異構(gòu)混 合的方式來(lái)生產(chǎn)命令。
命令生成系統(tǒng)應(yīng)當(dāng)與命令傳輸無(wú)關(guān),并且應(yīng)當(dāng)在包括采用標(biāo)準(zhǔn)協(xié)議 或?qū)S脜f(xié)議的環(huán)境的多種存儲(chǔ)環(huán)境中工作。
其它人已經(jīng)提到了虛擬存儲(chǔ)的不同方面,包括在動(dòng)態(tài)環(huán)境中處理邏 輯巻的改變。例如,題為 "Distributed network system with virtual izat ion"的美國(guó)專利第6, 7 32, 171號(hào)和同樣題為"Distributed network system with virtual izat ion " 的美國(guó)專利申"i青第 2005/00144199號(hào)通過(guò)使用存儲(chǔ)在存儲(chǔ)服務(wù)器和管理服務(wù)器上的存儲(chǔ)配 置標(biāo)識(shí)符來(lái)教導(dǎo)存儲(chǔ)虛擬化。這些標(biāo)識(shí)符是時(shí)間標(biāo)記,其在應(yīng)用客戶機(jī) 和存儲(chǔ)系統(tǒng)之間交換,以便指示存儲(chǔ)系統(tǒng)的存儲(chǔ)配置或分配中的改變發(fā) 生的時(shí)間。當(dāng)標(biāo)識(shí)符改變時(shí),應(yīng)用客戶機(jī)可隨后更新他們的存儲(chǔ)系統(tǒng)的 視圖。然而,這些引用文獻(xiàn)并不教導(dǎo)存儲(chǔ)系統(tǒng)應(yīng)當(dāng)如何通過(guò)與存儲(chǔ)系統(tǒng) 中的存儲(chǔ)區(qū)域類型相關(guān)聯(lián)的命令處理器(Commander Handler, CH)來(lái) 生成命令。除了以上引用文獻(xiàn),下面的引用文獻(xiàn)反映了生成用于與不同的存儲(chǔ)
介質(zhì)相關(guān)聯(lián)的虛擬存儲(chǔ)系統(tǒng)的圖的不同的方法美國(guó)未決專利申請(qǐng) 2005/0270856、 2005/0246401 、 2003/01 72157、 2003/002381 1;以及已 授權(quán)的美國(guó)專利6,775,673 、 6,755,672 、 6,772, 161 、 6,732,230 、 5, 758, 050和5, 129, 088。盡管這些引用文獻(xiàn)解決了它們要解決的特定 問(wèn)題,它們并沒(méi)有解決利用作為組成邏輯巻的存儲(chǔ)組類型的函數(shù)而建立 的邏輯巻的圖來(lái)生成存儲(chǔ)命令的問(wèn)題。在某些情況下,引用文獻(xiàn)描述了 命令或命令集,但是還沒(méi)有教導(dǎo)如何生成命令。
因此,對(duì)于能夠隨著存儲(chǔ)環(huán)境改變生成存儲(chǔ)命令的虛擬存儲(chǔ)中的方 法和設(shè)備的需求還是很可觀的。

發(fā)明內(nèi)容
本發(fā)明主題涉及生成用于存儲(chǔ)系統(tǒng)的命令的系統(tǒng)和方法。該存儲(chǔ)系 統(tǒng)具有一個(gè)或多個(gè)邏輯巻,其中邏輯巻包括第 一存儲(chǔ)設(shè)備上的第 一存儲(chǔ) 區(qū)和第二存儲(chǔ)設(shè)備上的第二存儲(chǔ)區(qū)。通常存儲(chǔ)區(qū)包括分區(qū)。該方法包括
根據(jù)與第 一或第二存儲(chǔ)區(qū)的存儲(chǔ)區(qū)類型相關(guān)聯(lián)的信息來(lái)提供邏輯巻的 圖。特別優(yōu)選的實(shí)施例包括第 一存儲(chǔ)區(qū)類型不同于第二存儲(chǔ)區(qū)類型的那 些實(shí)施例。該方法還包括根據(jù)存儲(chǔ)區(qū)類型將命令處理器結(jié)合到邏輯巻 的圖中。命令處理器將以邏輯巻為目標(biāo)的存儲(chǔ)命令轉(zhuǎn)換為以存儲(chǔ)區(qū)之一 為目標(biāo)的存儲(chǔ)命令。其它的實(shí)施例包括這種能力當(dāng)接收到邏輯巻已改 變的指示時(shí),通過(guò)更新圖而對(duì)邏輯巻的改變進(jìn)行響應(yīng)。當(dāng)生成命令時(shí), 一些實(shí)施例將根據(jù)圖中的巻地址而引用的數(shù)據(jù)地址轉(zhuǎn)換為根據(jù)存儲(chǔ)區(qū) 地址而引用的數(shù)據(jù)地址。 術(shù)語(yǔ)說(shuō)明
以下說(shuō)明涉及在本文中使用的術(shù)語(yǔ)。提供這些術(shù)語(yǔ)是為了在討論本 發(fā)明主題的不同方面時(shí)確保清楚,而不是意味著進(jìn)行限制。
術(shù)語(yǔ)"存儲(chǔ)組"表示一個(gè)或多個(gè)存儲(chǔ)區(qū)的組,其提供一種其中存儲(chǔ) 區(qū)包括相關(guān)的分區(qū)或分區(qū)組的存儲(chǔ)功能性。存儲(chǔ)功能性包括RAID功能、 跨接、提供奇偶校驗(yàn),或與訪問(wèn)數(shù)據(jù)相關(guān)的功能性。
術(shù)語(yǔ)"存儲(chǔ)命令"表示與數(shù)據(jù)訪問(wèn)相關(guān)并以存儲(chǔ)區(qū)為目標(biāo)的命令。 存儲(chǔ)命令通常包括描述存儲(chǔ)命令的若干參數(shù),這些參數(shù)包括數(shù)據(jù)地址、 數(shù)據(jù)請(qǐng)求大小,或用于存儲(chǔ)與命令相關(guān)聯(lián)的數(shù)據(jù)的緩存。其它可能的參數(shù)包括存儲(chǔ)區(qū)標(biāo)識(shí)符、要執(zhí)行的命令的指示,或其它在處理存儲(chǔ)命令時(shí) 有用的信息。在優(yōu)選實(shí)施例中,數(shù)據(jù)地址是邏輯塊地址(LBA)。緩沖 用于在進(jìn)行寫(xiě)時(shí)存儲(chǔ)數(shù)據(jù),或者用于在進(jìn)行讀時(shí)接收數(shù)據(jù),并且緩存具 有至少足以存儲(chǔ)數(shù)據(jù)請(qǐng)求大小的空間。通常通過(guò)到存儲(chǔ)器區(qū)的指針來(lái)引 用緩存。存儲(chǔ)區(qū)標(biāo)識(shí)符用于尋址特定的存儲(chǔ)區(qū),并且可包括IP地址或
邏輯單元號(hào)(LUN)。
存儲(chǔ)產(chǎn)品或存儲(chǔ)相關(guān)技術(shù)的開(kāi)發(fā)人員可以方便地使用本文的教示。
品,存儲(chǔ)系統(tǒng)的要素可在該虛擬環(huán)境中動(dòng)態(tài)改變。
根據(jù)本發(fā)明的優(yōu)選實(shí)施例的以下詳細(xì)說(shuō)明以及相同數(shù)字代表相同 組件的附圖,本發(fā)明的不同目的、特征、方面和優(yōu)點(diǎn)將更為明顯。


圖1示例說(shuō)明虛擬存儲(chǔ)系統(tǒng)的示例性實(shí)施例。 圖2示例說(shuō)明包括多個(gè)分區(qū)的邏輯巻的示例性實(shí)施例。 圖3示出邏輯巻可如何包括存儲(chǔ)組的圖例。 圖4示出組類型的組織的示例性實(shí)施例。 圖5示例說(shuō)明存儲(chǔ)組數(shù)據(jù)結(jié)構(gòu)的示例性實(shí)施例。 圖6示例說(shuō)明由鏈接存儲(chǔ)組的命令堆棧代表的邏輯巻圖的示例性實(shí) 施例。
圖7A示出由鏡像命令處理器進(jìn)行的巻級(jí)命令的轉(zhuǎn)換的示例性實(shí)施例。
圖7B示例說(shuō)明存儲(chǔ)命令如何被轉(zhuǎn)換為一個(gè)或多個(gè)條帶級(jí)存儲(chǔ)命令 的示例性實(shí)施例。
圖7C示例說(shuō)明存儲(chǔ)命令如何被轉(zhuǎn)換為一個(gè)或多個(gè)跨接級(jí)存儲(chǔ)命令 的示例性實(shí)施例。
圖7D示例說(shuō)明存儲(chǔ)命令如何被轉(zhuǎn)換為一個(gè)或多個(gè)分區(qū)級(jí)存儲(chǔ)命令 的示例性實(shí)施例。
具體實(shí)施例方式
以下詳細(xì)說(shuō)明描述了本發(fā)明主題的多個(gè)實(shí)例。盡管給出了特定實(shí)例 以使題材清楚,這些實(shí)例不限制所描述概念的表達(dá)。讀者應(yīng)當(dāng)以他們盡可能廣的知識(shí)范圍來(lái)理解這些概念。 虛擬存儲(chǔ)系統(tǒng)
圖1示例說(shuō)明虛擬存儲(chǔ)系統(tǒng)的示例性實(shí)施例。在一些實(shí)施例中,虛
擬存儲(chǔ)系統(tǒng)120包括一個(gè)或多個(gè)客戶機(jī)IOOA到100N,它們通過(guò)通信鏈 接115訪問(wèn)一個(gè)或多個(gè)存儲(chǔ)設(shè)備110A到110M。優(yōu)選的虛擬存儲(chǔ)系統(tǒng)120 允許每個(gè)客戶機(jī)100A到100N直接訪問(wèn)與邏輯巻相關(guān)聯(lián)的每個(gè)存儲(chǔ)設(shè)備 11 OA到IIOM。
客戶機(jī)1 0OA到1 0ON代表訪問(wèn)或使用存儲(chǔ)設(shè)備11 0A到11謹(jǐn)上的數(shù) 據(jù)存儲(chǔ)的主機(jī)??蛻魴C(jī)100A可以包括通用計(jì)算機(jī)系統(tǒng)或?qū)S玫挠?jì)算設(shè) 備。通用計(jì)算機(jī)系統(tǒng)運(yùn)行到操作系統(tǒng)可能是Windows⑧或Linux,并且優(yōu) 選地包括文件系統(tǒng)。通用計(jì)算機(jī)系統(tǒng)能夠運(yùn)行可請(qǐng)求訪問(wèn)存儲(chǔ)空間的多 個(gè)不同類型的應(yīng)用程序。專用的計(jì)算設(shè)備包括嵌入式系統(tǒng),其包括應(yīng)用 程序的有限組,例如媒體播放器、媒體錄音機(jī)、游戲控制臺(tái)或其它類似 的系統(tǒng)。優(yōu)選實(shí)施例使用具有文件系統(tǒng)的通用計(jì)算機(jī)系統(tǒng),該文件系統(tǒng) 能夠掛載遍布一個(gè)或多個(gè)存儲(chǔ)設(shè)備11 OA到11固的邏輯巻。
存儲(chǔ)設(shè)備110A、 IIOB到IIOM代表提供對(duì)一個(gè)或多個(gè)存儲(chǔ)介質(zhì)的訪 問(wèn)的物理組件。存儲(chǔ)介質(zhì)可以是磁性或非磁性的。磁性存儲(chǔ)的實(shí)例包括 磁盤(pán)驅(qū)動(dòng)器或磁帶,其中非磁性介質(zhì)的實(shí)例包括光學(xué)系統(tǒng)、閃存、R認(rèn) 或其它類型的存儲(chǔ)器。不要求存儲(chǔ)設(shè)備110A到IIOM是存儲(chǔ)設(shè)備的同類 混合,而是可以包括多個(gè)不同類型的存儲(chǔ)設(shè)備。在優(yōu)選實(shí)施例中,存儲(chǔ) 設(shè)備110A到ll謹(jǐn)是在磁盤(pán)驅(qū)動(dòng)器上提供數(shù)據(jù)存儲(chǔ)的專用存儲(chǔ)設(shè)備。專 用存儲(chǔ)設(shè)備包括機(jī)架固定系統(tǒng)、桌上型機(jī)殼或其它類型的機(jī)殼。優(yōu)選的 機(jī)殼提供對(duì)多個(gè)磁盤(pán)驅(qū)動(dòng)器的支持,例如,支持2、 4、 8、 16或更多的 磁盤(pán)驅(qū)動(dòng)器。在一些實(shí)施例中,存儲(chǔ)設(shè)備110A代表磁盤(pán)驅(qū)動(dòng)器本身, 其中磁盤(pán)與客戶機(jī)100A結(jié)合在一起。另外,例如,如果客戶機(jī)100A向 客戶機(jī)100N提供對(duì)客戶機(jī)100A的存儲(chǔ)介質(zhì)的訪問(wèn),客戶機(jī)100A可表 示存儲(chǔ)設(shè)備。
通信鏈接115將客戶機(jī)10OA到10ON通信地連接到存儲(chǔ)設(shè)備11 OA 到110M。在優(yōu)選實(shí)施例中,通信鏈接115使用互聯(lián)網(wǎng)協(xié)議(IP)網(wǎng)絡(luò), 其中通過(guò)以太網(wǎng)交換數(shù)據(jù)報(bào)。然而,對(duì)于通信鏈接115,可能有其它的 實(shí)施例。通信鏈接115可以是客戶機(jī)100A中的內(nèi)部鏈接,或相對(duì)于客 戶機(jī)100A的外部鏈接。內(nèi)部鏈接代表包括ATA、 SATA、 SAS、 SCSI、 PCI或其它總線的到存儲(chǔ)設(shè)備的接口。外部鏈接可包括有線或無(wú)線鏈接。有 線鏈接的實(shí)例包括以太網(wǎng)、USB、光纖通道、火線接口、串行鏈接,或
其它有線通信系統(tǒng)。無(wú)線鏈接的實(shí)例包括藍(lán)牙、無(wú)線USB、 802. 11、 IrDA, 或其它非物理鏈接。
虛擬存儲(chǔ)系統(tǒng)120的優(yōu)選實(shí)施例使用Zetera,公司的Z-SANTm技水。 Z-SAN技術(shù)提供基于IP的存儲(chǔ)區(qū)網(wǎng)絡(luò)(SAN)環(huán)境,其中每個(gè)客戶機(jī)100A 到IOON通過(guò)基于UDP的存儲(chǔ)協(xié)議與每個(gè)存儲(chǔ)設(shè)備110A到ll謹(jǐn)通信, 以傳輸存儲(chǔ)命令。Z-SAN技術(shù)將IP地址分配給存儲(chǔ)設(shè)備中的每個(gè)分區(qū)。 因此,客戶機(jī)可以與每個(gè)分區(qū)直接通信,而不需要另外的分區(qū)識(shí)別信息。 客戶機(jī)集合關(guān)于每個(gè)分區(qū)的信息,并隨后使用這些信息來(lái)形成包括這些 分區(qū)的邏輯巻的圖。盡管優(yōu)選實(shí)施例使用塊級(jí)存儲(chǔ)協(xié)議來(lái)傳輸存儲(chǔ)命 令,本發(fā)明主題獨(dú)立于傳輸協(xié)議進(jìn)行操作;因此,使用基于包括iSCSI、 iFCP、 FCIP,或者甚至包括ATA、 SATA、 SAS、 SCSI,或其它存儲(chǔ)設(shè)備協(xié) 議的低級(jí)協(xié)議或接口的標(biāo)準(zhǔn)的其它存儲(chǔ)協(xié)議,本發(fā)明主題也可以同樣良 好地操作。另外,認(rèn)為所公開(kāi)的技術(shù)還利用包括NFS、 CIFS或其它面向 文件的協(xié)議的文件系統(tǒng)級(jí)存儲(chǔ)協(xié)議來(lái)進(jìn)行操作。
在虛擬存儲(chǔ)系統(tǒng)120中,客戶機(jī)IOOA到IOON通常以邏輯巻表現(xiàn)為 本地連接的存儲(chǔ)區(qū)的方式來(lái)掛載邏輯巻。例如,客戶機(jī)IOOA可支持CIFS 協(xié)議,并掛載存儲(chǔ)設(shè)備110B上的磁盤(pán)。邏輯巻代表位于一個(gè)或多個(gè)存 儲(chǔ)設(shè)備110A到IIOM上的一個(gè)或多個(gè)存儲(chǔ)區(qū)的虛擬表示。在本文的上下 文中,術(shù)語(yǔ)"分區(qū),,表示存儲(chǔ)設(shè)備中的存儲(chǔ)區(qū)。例如,分區(qū)可以是硬盤(pán) 驅(qū)動(dòng)器中范圍代表硬盤(pán)驅(qū)動(dòng)器容量的一部分的單個(gè)部分。或者,分區(qū)可 代表跨容納多個(gè)磁盤(pán)驅(qū)動(dòng)器的機(jī)架中的兩個(gè)或兩個(gè)以上磁盤(pán)的存儲(chǔ)區(qū)。 還認(rèn)為分區(qū)可代表由代理提供的存儲(chǔ)區(qū),其中該存儲(chǔ)區(qū)包括多個(gè)遠(yuǎn)程分 區(qū)。機(jī)架或代理將集合存儲(chǔ)區(qū)表現(xiàn)為單個(gè)存儲(chǔ)區(qū)。
邏輯巻
圖2示例說(shuō)明包括多個(gè)分區(qū)的邏輯巻的示例性實(shí)施例。邏輯巻230 包括分區(qū)220A到220M,其中這些分區(qū)分布在存儲(chǔ)設(shè)備210A到210M之 中。優(yōu)選地,邏輯巻230代表分布在分區(qū)220A到22固上的從Q跑到最 大值的LBA的范圍。在一些實(shí)施例中,用48位值來(lái)代表LBA;然而,其 它的LBA大小也是可以考慮的。分區(qū)220A示例說(shuō)明了一個(gè)實(shí)例,其中 存儲(chǔ)設(shè)備21 OA有單個(gè)存儲(chǔ)區(qū)參加在邏輯巻230中。分區(qū)220B和220C提供一個(gè)實(shí)例,其示出存儲(chǔ)設(shè)備210B可如何具有一個(gè)以上的屬于邏輯 巻230的存儲(chǔ)區(qū)。另外,分區(qū)220M示出存儲(chǔ)設(shè)備210M的全部都可向邏 輯巻230提供存儲(chǔ)區(qū)。
盡管所示的邏輯巻230示例說(shuō)明了在分區(qū)"OA到220M上的線性跨 接,可由組成該巻的分區(qū)形成其它更復(fù)雜的結(jié)構(gòu)。在優(yōu)選實(shí)施例中,邏 輯巻230包括多個(gè)不同類型的存儲(chǔ)結(jié)構(gòu),包括提供鏡像、條帶化 (striping)、跨接(spanning)、奇偶校驗(yàn),或提供RAID功能性的 存儲(chǔ)結(jié)構(gòu)。每種類型的存儲(chǔ)結(jié)構(gòu)包括一組分區(qū)。因此,可以認(rèn)為邏輯巻 230是一組存儲(chǔ)組,其中以向系統(tǒng)提供一套用于管理邏輯巻230的通用 規(guī)則的方式來(lái)組織這些存儲(chǔ)組。 存儲(chǔ)組
圖3示出邏輯巻可如何包括存儲(chǔ)組的圖例。邏輯巻300包括一個(gè)或 多個(gè)存儲(chǔ)組,其中存儲(chǔ)組最終包括一個(gè)或多個(gè)分區(qū)。在優(yōu)選實(shí)施例中, 存儲(chǔ)組包括一個(gè)或多個(gè)成員,其中每個(gè)成員也是一個(gè)存儲(chǔ)組。例如,組 310A包括兩個(gè)成員。組310A的第一成員是組310C,而組310A的第二 成員是分區(qū)320。分區(qū)320代表具有單個(gè)成員的存儲(chǔ)組,其基本上包含 了存儲(chǔ)設(shè)備上的分區(qū)的特征。如所示,邏輯巻組300有三個(gè)成員,包括 組310A、 310B和分區(qū)320。組31 OB包括組31 OD和分區(qū)320。
優(yōu)選地,在分區(qū)是存儲(chǔ)組的最小表示的意義上,分區(qū)320代表基本 組。全部存儲(chǔ)組必須最終具有至少一個(gè)分區(qū),以便向客戶機(jī)提供對(duì)設(shè)置 在存儲(chǔ)設(shè)備上的存儲(chǔ)介質(zhì)的訪問(wèn)。在一個(gè)實(shí)施例中,可以用存儲(chǔ)在客戶 機(jī)存儲(chǔ)器中的數(shù)據(jù)結(jié)構(gòu)來(lái)表示分區(qū)320,其中該數(shù)據(jù)結(jié)構(gòu)包括與存儲(chǔ)設(shè) 備上的該分區(qū)相關(guān)的信息。例如,數(shù)據(jù)結(jié)構(gòu)優(yōu)選地包括用于尋址分區(qū) 的分區(qū)標(biāo)識(shí)符、分區(qū)預(yù)期的數(shù)據(jù)傳輸大小、與分區(qū)相關(guān)的屬性,或其它 在訪問(wèn)分區(qū)時(shí)有用的信息。在優(yōu)選實(shí)施例中,分區(qū)標(biāo)識(shí)符包括相對(duì)于客 戶機(jī)的外部地址,其包括IP地址(IPv4或IPv6)或LUN;然而,還認(rèn) 為分區(qū)標(biāo)識(shí)符包括在客戶機(jī)中訪問(wèn)分區(qū)的內(nèi)部地址。SCSI ID可代表內(nèi) 部地址。
存儲(chǔ)組組類型
優(yōu)選地,根據(jù)存儲(chǔ)組在邏輯巻中提供的存儲(chǔ)功能性對(duì)它們進(jìn)行分 類。通過(guò)按類型來(lái)組織存儲(chǔ)組有助于建立為虛擬存儲(chǔ)系統(tǒng)的要素所理解 的通用規(guī)則系統(tǒng),使得全部客戶機(jī)能夠連貫地訪問(wèn)數(shù)據(jù)。由于每個(gè)組類型可獨(dú)立于另一組類型處理存儲(chǔ)命令,這些規(guī)則在產(chǎn)生用于邏輯巻的存
儲(chǔ)命令時(shí)幫助客戶機(jī)。優(yōu)選的存儲(chǔ)組類型包括RAID組類型或非RAID組 類型。RAID組類型包括的存儲(chǔ)組中使用某種形式的冗余以保護(hù)存儲(chǔ)在與 存儲(chǔ)組相關(guān)聯(lián)的存儲(chǔ)設(shè)備上的數(shù)據(jù)。示例性RAID組類型包括鏡像組、 奇偶校驗(yàn)組、Z-RAID組,或其它冗余配置。示例性非RAID組類型包括 跨接組、條帶組或分區(qū)組。
存儲(chǔ)設(shè)備領(lǐng)域的技術(shù)人員將認(rèn)可術(shù)語(yǔ)RAID的使用,該術(shù)語(yǔ)RAID表 示獨(dú)立磁盤(pán)的冗余陣列。盡管條帶化常被歸類為RAID級(jí)0,它不攜帶冗 余信息,并且因此在本文中被歸類為非RAID類型。還應(yīng)當(dāng)注意,RAID 常與磁盤(pán)級(jí)的存儲(chǔ)結(jié)構(gòu)相關(guān)。為了本文的說(shuō)明,在分區(qū)級(jí)應(yīng)用RAID功 能性。鏡像組代表一種包括多個(gè)成員的存儲(chǔ)組,其中鏡像組的每個(gè)成員 具有在其它組成員上的數(shù)據(jù)的副本。換句話說(shuō),每個(gè)鏡像組成員具有邏 輯巻的LBA的范圍的副本。條帶組代表一種包括多個(gè)成員的存儲(chǔ)組,這 些成員是單獨(dú)的條帶化的基本單元。奇偶校驗(yàn)組代表包括具有奇偶校驗(yàn) 信息的多個(gè)成員的存儲(chǔ)組。奇偶校驗(yàn)組可被實(shí)現(xiàn)為條帶組的變形。 Z-RAID組代表一種包括多個(gè)成員的存儲(chǔ)組,這些成員形成交錯(cuò)鏡像的基 本單元,如題為 "Topology Independent Storage Arrays and Methods" 的共有美國(guó)專利申請(qǐng)1 1 /1 7 3,765號(hào)中所述,通過(guò)引用將該申請(qǐng)整體地 結(jié)合在本文中。如前所述,分區(qū)組就是其中組包括關(guān)于分區(qū)的信息的基 本組。預(yù)期所有的存儲(chǔ)組類型,包括存檔組、備份組、延遲鏡像組、QoS 組,或者可以提供附加的存儲(chǔ)功能性的其它存儲(chǔ)組類型。
存儲(chǔ)組組類型組織
圖4示出組類型的組織的示例性實(shí)施例。盡管可作為這些組所提供 的功能性的函數(shù)將它們分為不同的類型,還優(yōu)選的情況是通過(guò)建立 一套 通用規(guī)則而以方便生成存儲(chǔ)命令的方式來(lái)組織存儲(chǔ)組類型,所有的客戶 機(jī)都在該套通用規(guī)則下操作,并且在該套通用規(guī)則下在存儲(chǔ)設(shè)備上實(shí)例 化所有的分區(qū)。特別優(yōu)選的組織包括存儲(chǔ)組類型的分級(jí)結(jié)構(gòu)。為了清楚 起見(jiàn),提供圖4所示的實(shí)例,并且該實(shí)例集中在鏡像、條帶、跨接和分 區(qū)上;然而,這些概念可被延伸來(lái)處理附加的存儲(chǔ)組類型。在該實(shí)例中, 鏡像組400在邏輯上被放在分級(jí)結(jié)構(gòu)的最高級(jí)。存儲(chǔ)系統(tǒng)中的每個(gè)邏輯 巻可包括具有一個(gè)或多個(gè)成員的鏡像組。鏡像組400的每個(gè)成員可以是 鏡像類型以外的另一其它的較低類型的組。另外,鏡像組400的每個(gè)成員可代表邏輯巻的一個(gè)實(shí)例,從這個(gè)意義上來(lái)說(shuō),鏡像組400的每個(gè)成 員代表邏輯巻的一個(gè)副本。條帶組410對(duì)跨接組420B上的數(shù)據(jù)進(jìn)行鏡 像,跨接組420B也對(duì)分區(qū)組430F上的數(shù)據(jù)進(jìn)行鏡像。這示例說(shuō)明了 , 對(duì)于組組織的該特定實(shí)施例來(lái)說(shuō),例如鏡像組400的鏡像組可包括其它 的較低類型的組,不論它們是條帶組類型、跨接組類型或分區(qū)組類型。
當(dāng)存儲(chǔ)命令被發(fā)送給包括鏡像組的邏輯巻時(shí),為鏡像組的每個(gè)成員 復(fù)制該存儲(chǔ)命令。例如,當(dāng)巻級(jí)存儲(chǔ)命令被發(fā)送給鏡像組400所代表的 邏輯巻時(shí),為該組的每個(gè)成員復(fù)制巻級(jí)存儲(chǔ)命令為條帶組410復(fù)制一 次,為跨接組420B復(fù)制份一次,并且為分區(qū)430F復(fù)制一次。從這個(gè)意 義上來(lái)說(shuō),鏡像組將單個(gè)存儲(chǔ)命令轉(zhuǎn)換為多個(gè)副本存儲(chǔ)命令。
示例性存儲(chǔ)組類型分級(jí)結(jié)構(gòu)中的第二高級(jí)是條帶類型,如條帶組 410所示。條帶組包括兩個(gè)或兩個(gè)以上成員,如跨接組420A和分區(qū)430C 所指示的,它們或是跨接組,或是分區(qū)。條帶組410的每個(gè)成員表示完 整條帶的條帶化的基本單元。因此,當(dāng)數(shù)據(jù)存儲(chǔ)在與條帶組410相關(guān)聯(lián) 的分區(qū)上時(shí),數(shù)據(jù)被條帶化在代表?xiàng)l帶基本單元Q的跨接組420A上, 然后到作為條帶單元1的分區(qū)430C。
條帶組包括一組描述條帶組特征的參數(shù)。這些參數(shù)包括條帶塊大 小,其代表在進(jìn)行到下一個(gè)成員之前向每個(gè)成員寫(xiě)入的數(shù)據(jù)塊的數(shù)量。 當(dāng)存儲(chǔ)命令被發(fā)送給條帶組時(shí),該命令被轉(zhuǎn)換為 一個(gè)或多個(gè)以該組的每 個(gè)成員為目標(biāo)的條帶級(jí)命令。像在傳統(tǒng)條帶化的RAID系統(tǒng)中所做的那 樣,通過(guò)利用關(guān)于條帶塊大小的模運(yùn)算來(lái)計(jì)算數(shù)據(jù)訪問(wèn)大小,條帶命令 確保數(shù)據(jù)訪問(wèn)與該組的條帶結(jié)構(gòu)一致;然而,在組或分區(qū)級(jí)執(zhí)行數(shù)據(jù)訪 問(wèn),而不是在磁盤(pán)級(jí)。條帶化的組的每個(gè)成員提供相同的容量以確保均 勻的條帶化。
該示例性分級(jí)結(jié)構(gòu)中的第三級(jí)是跨接類型,如跨接組420A和402B 所示。跨接組將兩個(gè)或兩個(gè)以上成員組合在一起,成為0到該3爭(zhēng)接組的 最大值的LBA的范圍所代表的單個(gè)線性邏輯存儲(chǔ)區(qū)。例如,跨接組420A 包括分區(qū)430A所指示的第一部分和分區(qū)430B所指示的第二部分,各自 分別表示跨接組420A的跨接基本單元G和跨接基本單元1。類似地,跨 ^接組420B包括形成單個(gè)邏輯存^f諸區(qū)的分區(qū)430D和分區(qū)430E。
接的信息。當(dāng)跨接組接收存儲(chǔ)命令時(shí),檢查存儲(chǔ)命令數(shù)據(jù)和數(shù)據(jù)大小,以了解是否數(shù)據(jù)訪問(wèn)需要將該命令發(fā)送給跨接組的一個(gè)以上的成員。如 果是這樣,以確保數(shù)據(jù)訪問(wèn)與成員邊界一致的方式將該命令轉(zhuǎn)換為 一個(gè) 或多個(gè)跨接命令。
分區(qū)組類型在示例性分級(jí)結(jié)構(gòu)的最低級(jí)。分區(qū)430A到430F各自是 具有一個(gè)成員的組,其中該一個(gè)成員基本單元代表存儲(chǔ)設(shè)備上的單獨(dú)分 區(qū)。應(yīng)當(dāng)注意到,不要求每個(gè)分區(qū)是統(tǒng)一的大小,而可以是相對(duì)于彼此 的任何大小。
盡管該優(yōu)選實(shí)施例建立了具有鏡像、條帶、跨接和分區(qū)的分級(jí)結(jié)構(gòu); 應(yīng)當(dāng)注意到,其它的分級(jí)結(jié)構(gòu)也是可能的。例如,可以以每個(gè)分區(qū)被單 獨(dú)鏡像而不是在巻級(jí)鏡像的方式,將鏡像類型放在分區(qū)之下?;蛘?,條 帶和跨接可以交換在分級(jí)結(jié)構(gòu)中的級(jí)別。
存儲(chǔ)組通用規(guī)則
形成用于邏輯巻中的存儲(chǔ)組的組織結(jié)構(gòu)為用于處理存儲(chǔ)命令的一 套規(guī)則提供了基礎(chǔ)。再次參照?qǐng)D4中的示例性分級(jí)結(jié)構(gòu),如果在鏡像級(jí) 有任何存儲(chǔ)組,則初始地在鏡像級(jí)處理巻級(jí)命令。鏡像級(jí)處理包括生成 存儲(chǔ)命令和將存儲(chǔ)命令傳遞給較低級(jí)。如果有條帶組的成員,則在條帶
級(jí)處理存儲(chǔ)命令,以確保根據(jù)與條帶組相關(guān)聯(lián)的條帶化規(guī)則來(lái)訪問(wèn)數(shù) 據(jù)。例如,利用基于條帶塊大小和條帶組成員數(shù)量的模運(yùn)算來(lái)訪問(wèn)數(shù)據(jù)。 條帶級(jí)處理還包括生成存儲(chǔ)命令和將存儲(chǔ)命令傳遞給較低級(jí)。如果有跨 接組,在跨接級(jí)處理存儲(chǔ)命令,其中將數(shù)據(jù)訪問(wèn)對(duì)齊到跨接成員邊界。 最后,在分區(qū)級(jí)處理命令,以確保數(shù)據(jù)訪問(wèn)與分區(qū)特征一致。例如,形 成具有用于分區(qū)的適當(dāng)?shù)膫鬏敶笮〉拿?。本文將在后面更全面地描?存儲(chǔ)命令處理。
存儲(chǔ)組組數(shù)據(jù)結(jié)構(gòu)
在一些實(shí)施例中,用提供組之間的鏈接的組數(shù)據(jù)結(jié)構(gòu)來(lái)代表存儲(chǔ) 組。優(yōu)選地,存儲(chǔ)組被鏈接在一起以形成父子關(guān)系或等同關(guān)系。父組代 表具有一個(gè)或多個(gè)成員的組,其中認(rèn)為每個(gè)成員是父組的子組。相同父 組的每個(gè)子組是其它子組的對(duì)等組。在優(yōu)選實(shí)施例中,父組在組分級(jí)結(jié) 構(gòu)中的級(jí)別高于子組;然而,對(duì)等組可以在相對(duì)于彼此相同或更低的級(jí)。 例如,鏡像組可包括三個(gè)子組。每個(gè)子組是邏輯巻的實(shí)例。子組可包括 條帶化的組、跨接組或分區(qū)組的任意組合,而每個(gè)子組被認(rèn)為是鏡像組 中的對(duì)等組。在優(yōu)選實(shí)施例中,組數(shù)據(jù)結(jié)構(gòu)包括代表到其它組的鏈接和函數(shù)指針 的一般數(shù)據(jù)結(jié)構(gòu)。然后, 一般結(jié)構(gòu)被結(jié)合到附加數(shù)據(jù)結(jié)構(gòu)中,該附加數(shù) 據(jù)結(jié)構(gòu)包括用于特定組類型的信息鏡像、條帶、跨接,或其它存儲(chǔ)組
類型。該方法對(duì)于嵌入式系統(tǒng)有助于以C實(shí)現(xiàn);然而,計(jì)算機(jī)編程領(lǐng)域 的技術(shù)人員將認(rèn)識(shí)到,有大量的備選方案用于形成組數(shù)據(jù)結(jié)構(gòu),預(yù)期所 有的這些方案,包括面向?qū)ο蟮姆桨浮?br> 圖5示例說(shuō)明存儲(chǔ)組數(shù)據(jù)結(jié)構(gòu)的示例性實(shí)施例??捎冒ńM參數(shù) 510的組數(shù)據(jù)結(jié)構(gòu)500來(lái)代表存儲(chǔ)組,組參數(shù)510描述了與存儲(chǔ)組相關(guān) 聯(lián)的存儲(chǔ)組類型的特征。組參數(shù)510隨著組類型或數(shù)據(jù)結(jié)構(gòu)所代表的特 定組的特征而不同。另外,數(shù)據(jù)結(jié)構(gòu)500還包括若千指針。組指針形成 組的鏈接列表,以便于處理存儲(chǔ)命令。優(yōu)選的組指針包括可選的父組指 針520或可選的上一對(duì)等組指針530。父組指針520鏈接當(dāng)前組與父組, 存儲(chǔ)組是該父組的成員。如果存儲(chǔ)組是邏輯巻中的最高級(jí)組,則父組指 針520有空值。在優(yōu)選實(shí)施例中,父組代表組分級(jí)結(jié)構(gòu)中級(jí)別較高的存 儲(chǔ)組。例如,如果存儲(chǔ)組是分區(qū),并且是條帶組的成員,則父組指針520 將鏈接回到條帶組。上一對(duì)等組指針530鏈接回到與該存儲(chǔ)組對(duì)等的組。 例如,如果當(dāng)前組是分區(qū),并且是條帶組的第三成員,則上一對(duì)等組指 針5 30將鏈接回到條帶組的第二成員。父組指針520和上一對(duì)等組指針 530在優(yōu)選實(shí)施例中是可選的。
特別優(yōu)選的指針包括對(duì)等組指針540,子組指針550或函數(shù)指針 560。對(duì)等組指針540鏈接存儲(chǔ)組與同一父組中的下一成員。子組指針 550指向存儲(chǔ)組的第一成員。通過(guò)提供對(duì)等組指針540和子組指針55 0, 在處理命令時(shí)可遍歷組的鏈接的列表。
數(shù)據(jù)結(jié)構(gòu)5 00中的每個(gè)組指針還可有空值,而不是指向另一組???值指示已到達(dá)鏈接鏈的末端。例如,當(dāng)處理與存儲(chǔ)組相關(guān)聯(lián)的存儲(chǔ)命令 時(shí),將通過(guò)遍歷對(duì)等組指針540鏈接來(lái)檢查存儲(chǔ)組的每個(gè)子組,直到到 達(dá)空為止??罩甘敬鎯?chǔ)組的全部子組已被處理。
計(jì)算機(jī)編程領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,在存儲(chǔ)組之間建立關(guān)系的大 量的實(shí)施例存在。例如,對(duì)等級(jí)別存儲(chǔ)組的陣列可代替對(duì)等鏈接列表。 考慮形成存儲(chǔ)組關(guān)系的全部實(shí)施例。
函數(shù)指針560代表到特定于存儲(chǔ)組類型的命令處理器的指針,該特 定命令處理器處理用于該存儲(chǔ)組類型的存儲(chǔ)命令。在優(yōu)選實(shí)施例中,存儲(chǔ)組的每個(gè)類型有至少一個(gè)相關(guān)聯(lián)的命令處理器。優(yōu)選地,命令處理器 使用組參數(shù)510來(lái)處理存儲(chǔ)命令,并從而生成用于該組的存儲(chǔ)命令。另 外,當(dāng)命令處理器執(zhí)行時(shí),其根據(jù)用于特定存儲(chǔ)組類型的規(guī)則來(lái)轉(zhuǎn)換存
i多個(gè)存儲(chǔ)命令。 t I 、 — " 、、 ° 、
每個(gè)組代表一個(gè)邏輯存儲(chǔ)區(qū),從分區(qū)一直到形成單個(gè)邏輯巻的多個(gè) 鏡像。優(yōu)選實(shí)施例通過(guò)與存儲(chǔ)區(qū)相關(guān)聯(lián)的數(shù)據(jù)尋址方案來(lái)訪問(wèn)每個(gè)邏輯 存儲(chǔ)區(qū)中的數(shù)據(jù)。優(yōu)選的方案是使用塊級(jí)尋址,其中在存儲(chǔ)區(qū)中唯一地
對(duì)每個(gè)數(shù)據(jù)塊進(jìn)行尋址。優(yōu)選實(shí)施例使用LBA來(lái)尋址每個(gè)具有5U字節(jié) 大小的數(shù)據(jù)塊。可認(rèn)為存儲(chǔ)組類型命令處理器是對(duì)命令的數(shù)據(jù)和與命令 的數(shù)據(jù)相關(guān)聯(lián)的LBA的轉(zhuǎn)換。并且,在優(yōu)選實(shí)施例中,存儲(chǔ)組所代表的 每個(gè)存儲(chǔ)區(qū)具有范圍從0到最大值的LBA范圍。每個(gè)存儲(chǔ)組的各LBA的 范圍也存儲(chǔ)在參數(shù)510中。通過(guò)將每個(gè)存儲(chǔ)組定義為單獨(dú)的各LBA的范 圍,每個(gè)命令處理器可以以獨(dú)立于它們的父組的方式來(lái)處理存儲(chǔ)命令。 該獨(dú)立的程度支持將存儲(chǔ)組或命令處理器按需要鏈接在一起以形成邏 輯巻的能力。
命令處理器所提供的功能性反映了相關(guān)聯(lián)的存儲(chǔ)組類型的功能性;
令處理器可執(zhí)行附加的指令以輔助處理存儲(chǔ)命令或提供其它功能性。例 如,用于RAID-5系統(tǒng)的奇偶校驗(yàn)組命令處理器將包括對(duì)其組成員執(zhí)行
"讀-修改-寫(xiě)"操作的指令,并且類似于條帶組命令處理器地起作用。 這樣的指令包括計(jì)算用于奇偶校驗(yàn)組成員的XOR奇偶校驗(yàn)。另外,附加 的指令可包括帶外管理、監(jiān)控虛擬存儲(chǔ)系統(tǒng)、錯(cuò)誤檢查、調(diào)用或執(zhí)行遠(yuǎn) 程函數(shù),或任何其它功能。 存儲(chǔ)組命令堆棧
使鏈接的存儲(chǔ)組與同存儲(chǔ)組類型相關(guān)聯(lián)的命令處理器結(jié)合支持建 立用于生成存儲(chǔ)命令的命令堆棧。命令堆棧代表一種數(shù)據(jù)結(jié)構(gòu)構(gòu)造,其 中數(shù)據(jù)結(jié)構(gòu)包括到函數(shù)的指針。通過(guò)函數(shù)指針調(diào)用函數(shù)允許在運(yùn)行期間 通過(guò)改變指針來(lái)再分配函數(shù),這支持可在運(yùn)行中構(gòu)造的動(dòng)態(tài)調(diào)用鏈。使 用命令處理器方案為主機(jī)提供了建立對(duì)于邏輯巻是特定的命令堆棧的 能力,而不會(huì)導(dǎo)致用于處理其它邏輯巻的附加開(kāi)銷。換句話說(shuō),系統(tǒng)中 的每個(gè)邏輯巻具有反映該巻拓樸的命令堆棧;然而,不論拓樸如何,每個(gè)命令堆棧訪問(wèn)同一組命令處理器。例如,如果有四個(gè)用于存儲(chǔ)組的每 個(gè)類型(鏡像、條帶、跨接或分區(qū))的命令處理器,則系統(tǒng)只需要這四 個(gè)命令處理器,因?yàn)榇鎯?chǔ)組在它們的數(shù)據(jù)結(jié)構(gòu)參數(shù)中攜帶它們的組的上 下文。在優(yōu)選實(shí)施例中,當(dāng)客戶機(jī)發(fā)現(xiàn)邏輯巻時(shí),客戶機(jī)遵循該分級(jí)結(jié) 構(gòu)的規(guī)則將存儲(chǔ)組的鏈接的列表接合在 一起。 一旦存儲(chǔ)組被鏈接在一 起,具有用于每個(gè)存儲(chǔ)組的參數(shù)和命令處理器的鏈接結(jié)構(gòu)代表該邏輯巻 的圖。另外,鏈接結(jié)構(gòu)代表用于邏輯巻的命令堆棧。那么,客戶機(jī)在再 次使用相同的命令處理器時(shí)可發(fā)現(xiàn)附加的邏輯巻,因?yàn)楦郊拥倪壿嫀喭?過(guò)它們自身的存儲(chǔ)組鏈接結(jié)構(gòu)攜帶了它們的圖信息。
還應(yīng)當(dāng)注意到,當(dāng)發(fā)現(xiàn)邏輯巻中的改變時(shí),鏈接結(jié)構(gòu)可以被快速更 新。例如,如果加入了附加跨接,則在適當(dāng)?shù)狞c(diǎn)將附加存儲(chǔ)組鏈接到該
備選的鏈在存儲(chǔ)組結(jié)構(gòu)中還考慮了其它的鏈接。在一個(gè)實(shí)施例中,特別是在 鏡像組成員包括條帶組時(shí),提供備選的鏈接以交叉鏈接鏡像組成員。這
樣的備選的鏈接允許建立類似于RAID 10的存儲(chǔ)結(jié)構(gòu)。在一些實(shí)施例中, 還提供RAID IO命令處理器,以當(dāng)條帶組成員不一定可訪問(wèn)時(shí),遍歷備 選的鏈接,來(lái)找到能夠提供對(duì)所請(qǐng)求的數(shù)據(jù)的訪問(wèn)的備選的存儲(chǔ)組。備 選的鏈接還可以在分區(qū)級(jí)操作,以提供分區(qū)級(jí)鏡像。 邏輯巻圖命令堆棧
在優(yōu)選實(shí)施例中,邏輯巻命令堆棧將高級(jí)存儲(chǔ)命令作為輸入來(lái)接 受。命令堆棧處理存儲(chǔ)命令,將存儲(chǔ)命令傳遞給最高級(jí)命令處理器。每
多個(gè)存儲(chǔ)命:。'然后,這些存儲(chǔ)命令的每一個(gè)被傳遞給;一級(jí)的命令it
理器,直到在分區(qū)級(jí)到達(dá)最低級(jí)為止。分區(qū)級(jí)命令處理器生成分區(qū)級(jí)存 儲(chǔ)命令,并將它們放進(jìn)隊(duì)列中以用于后面的打包或向分區(qū)的傳輸。
圖6示例說(shuō)明由鏈接的存儲(chǔ)組的命令堆棧表示的邏輯巻圖的示例性 實(shí)施例。為了清楚起見(jiàn),該特定實(shí)例被構(gòu)造為示出鏈接的存儲(chǔ)組和命令 處理器的概念如何結(jié)合在一起以形成命令堆棧所代表的邏輯巻的圖。該 實(shí)例并不復(fù)雜;然而,這些概念可以被推廣到更大、復(fù)雜、異構(gòu)的邏輯 巻。邏輯巻映射到存儲(chǔ)組,其中存儲(chǔ)組映射到分區(qū)。在存儲(chǔ)命令生成處 理的每一步,可認(rèn)為通過(guò)在把數(shù)據(jù)分成字節(jié)片時(shí)將高級(jí)數(shù)據(jù)地址轉(zhuǎn)換到
17低級(jí)數(shù)據(jù)地址來(lái)轉(zhuǎn)換存儲(chǔ)命令。例如,邏輯巻LBA被轉(zhuǎn)換為存儲(chǔ)組LBA, 存儲(chǔ)組LBA隨后被最終轉(zhuǎn)換為分區(qū)LBA。在優(yōu)選實(shí)施例中,存儲(chǔ)設(shè)備隨 后將分區(qū)LBA轉(zhuǎn)換為該存儲(chǔ)設(shè)備的存儲(chǔ)介質(zhì)中的數(shù)據(jù)地址。 邏輯巻圖鏡像級(jí)
在該實(shí)例中,用鏡像組600來(lái)代表邏輯巻。在該實(shí)例中,有兩個(gè)與 邏輯巻相關(guān)聯(lián)的鏡像。用條帶組620來(lái)代表第一鏡像,而用分區(qū)組680 來(lái)代表第二鏡像。組數(shù)據(jù)結(jié)構(gòu)被用于存儲(chǔ)不同的存儲(chǔ)組參數(shù)、它們的組 鏈接以及它們的命令處理器指針。鏡像組600包括指向鏡像命令處理器 的函數(shù)指針603、對(duì)等組指針605以及子組指針607。對(duì)等組指針605 具有空值,該空值表示沒(méi)有與該鏡像組相關(guān)聯(lián)的對(duì)等組。子組指針607 指向條帶組620,該條帶組620開(kāi)始代表鏡像組600的成員的鏈接鏈。
當(dāng)系統(tǒng)訪問(wèn)來(lái)自邏輯巻的數(shù)據(jù)時(shí),系統(tǒng)發(fā)送巻級(jí)命令并通過(guò)函數(shù)指 針603調(diào)用鏡像命令處理器。如果命令是讀命令,則巻命令可具有指向 接收緩存而不是裝滿數(shù)據(jù)的緩存的指針。在優(yōu)選實(shí)施例中,鏡像命令處 理器使用鏡像組600的參數(shù)以處理命令。鏡像命令處理器通過(guò)將到巻命 令的指針傳遞給用于鏡像組的每個(gè)子組的命令處理器來(lái)復(fù)制巻級(jí)命令。 例如,它首先通過(guò)條帶組620的函數(shù)指針623來(lái)調(diào)用條帶命令處理器, 將巻級(jí)命令傳遞給條帶命令處理器。 一旦條帶命令處理器返回,鏡像命 令處理器接著通過(guò)分區(qū)組680的函數(shù)指針683來(lái)調(diào)用分區(qū)命令處理器, 又將巻級(jí)命令傳遞給分區(qū)命令處理器。分區(qū)處理器處理巻級(jí)命令,并將 其轉(zhuǎn)換為一個(gè)或多個(gè)分區(qū)級(jí)命令,其中每個(gè)分區(qū)級(jí)命令符合用于與分區(qū) D通信的正確形式。如具有空值的對(duì)等組指針685所指示的,分區(qū)組680 是對(duì)等鏈中的最后一個(gè),并且沒(méi)有子組,如子組指針687的空值所指示。 分區(qū)命令處理器將巻級(jí)命令轉(zhuǎn)換為分區(qū)級(jí)命令的鏈接列表,該鏈接列表 可被打包或發(fā)送給目標(biāo)分區(qū)。
優(yōu)選的巻級(jí)命令是從文件系統(tǒng)發(fā)送的。預(yù)期文件系統(tǒng)包括多重存取 啟動(dòng)(multi-initiator )文件系統(tǒng)或非多重存取啟動(dòng)文件系統(tǒng)。多重 存取啟動(dòng)文件系統(tǒng)提供多個(gè)客戶機(jī)共享的對(duì)存儲(chǔ)設(shè)備上同 一數(shù)據(jù)的訪 問(wèn),而不會(huì)損壞該數(shù)據(jù)。優(yōu)選的多重存取啟動(dòng)文件系統(tǒng)的實(shí)例包括 DataPlow San文件系統(tǒng)(SFS )。非多重存取啟動(dòng)文件系統(tǒng)為單個(gè)客戶 才幾提供訪問(wèn),例如NTFS。
邏輯巻圖條帶級(jí)在該實(shí)例中,條帶組620是鏡像組600的子組,并從而是邏輯巻的 一個(gè)實(shí)例。對(duì)等組指針625指向下一鏡像,該鏡像在該實(shí)例中是分區(qū)組 680。在該實(shí)施例中,條帶組620包括兩個(gè)條帶化的單元跨接組640 和分區(qū)組670。也通過(guò)組數(shù)據(jù)結(jié)構(gòu)將條帶組620存儲(chǔ)在存儲(chǔ)器中。
當(dāng)通過(guò)函數(shù)指針623調(diào)用條帶命令處理器時(shí),條帶命令處理器接收 巻級(jí)命令。通過(guò)利用條帶的條帶塊大小將巻級(jí)命令的LBA映射到子組的 LBA范圍,條帶命令處理器將巻級(jí)命令轉(zhuǎn)換為一個(gè)或多個(gè)用于其每個(gè)子 組的命令。在該實(shí)例中,條帶命令處理器使用條帶組的參數(shù)信息來(lái)將巻 級(jí)命令的LBA轉(zhuǎn)換為進(jìn)入每個(gè)其子組的偏移量?;叵肫鹪趦?yōu)選實(shí)施例中, 每個(gè)組具有從0跑到最大值的LBA范圍,以保持每個(gè)組獨(dú)立于其父組。 對(duì)于條帶組,條帶命令處理器通過(guò)使用基于條帶組塊大小和條帶組中成 員數(shù)量的模運(yùn)算來(lái)計(jì)算進(jìn)入每個(gè)子組的偏移量。 一旦為每個(gè)子組計(jì)算了 偏移量并且必要時(shí)將數(shù)據(jù)分成字節(jié)片,條帶命令處理器開(kāi)始遍歷用于其 每個(gè)子組的命令處理器。條帶命令處理器將向第一子組傳遞第一條帶級(jí) 存儲(chǔ)命令,然后向第二子組傳遞第二條帶級(jí)存儲(chǔ)命令,等等。另外,條 帶命令處理器將在必要時(shí)環(huán)回第一子組。對(duì)于該實(shí)例,條帶命令處理器 通過(guò)函數(shù)指針643調(diào)用跨接命令處理器,隨后通過(guò)與組670相關(guān)聯(lián)的函 數(shù)指針673來(lái)調(diào)用分區(qū)命令處理器,在必要時(shí)可能回到組640。函數(shù)指 針673指向和函數(shù)指針683 —樣的分區(qū)命令處理器。該分區(qū)命令處理器 使用包括分區(qū)的優(yōu)選數(shù)據(jù)傳輸大小的分區(qū)組67 0參數(shù)信息,以將條帶級(jí) 命令轉(zhuǎn)換為一個(gè)或多個(gè)具有適當(dāng)?shù)挠糜谀繕?biāo)分區(qū)的傳輸大小的分區(qū)級(jí) 命令。分區(qū)級(jí)命令被鏈接到準(zhǔn)備好用于傳輸?shù)姆謪^(qū)級(jí)命令的隊(duì)列。分區(qū)
發(fā)送的分組或數(shù)據(jù)報(bào)可需要其它可能用于避免擁塞的處理。
注意分區(qū)組670是跨接組64G的最后一個(gè)成員。對(duì)等組指針675具 有空值,其向條帶命令處理器指示已沒(méi)有用于處理的子組。另外,因?yàn)?分區(qū)組670代表分區(qū)C, 一基本成員,分區(qū)組670不具有任何子組;因 此,子組指針677具有空值。因此,分區(qū)命令處理器不進(jìn)行任何其它命 令處理器調(diào)用,并且在條帶命令處理器的每次調(diào)用之后返回到條帶命令 處理器。
邏輯巻圖跨接級(jí)
跨接組640是條帶組620的子組,并且是條帶組的單個(gè)條帶化的單元??缃咏M640包^舌分區(qū)組650和分區(qū)組660所4戈表的兩個(gè)分區(qū)。正如 鏡像組600和條帶組620那樣,將跨接組640存儲(chǔ)在存儲(chǔ)器中為具有用 于跨接組的參數(shù)的組數(shù)據(jù)結(jié)構(gòu)。在該實(shí)例中,參數(shù)包括每個(gè)分區(qū)組的范 圍,以及數(shù)據(jù)訪問(wèn)應(yīng)當(dāng)在哪里在分區(qū)之間橋接。
在該實(shí)例中,當(dāng)從條帶命令處理器調(diào)用跨接命令處理器時(shí),跨接命 令處理器接收條帶級(jí)命令??缃用钐幚砥鲗l帶級(jí)命令轉(zhuǎn)換為以跨接 組640的每個(gè)子組為目標(biāo)的一個(gè)或多個(gè)跨接級(jí)命令。通過(guò)高級(jí)LBA到子 組的LBA范圍的映射來(lái)執(zhí)行該轉(zhuǎn)換。分區(qū)組650是第一子組,并且通過(guò) 對(duì)等組指針655鏈接到分區(qū)組660。如對(duì)等組指針655的空值所指示的, 分區(qū)組660是最后一個(gè)跨接組成員??缃用钐幚砥鞅容^高級(jí)命令的 LBA加上數(shù)據(jù)請(qǐng)求的大小與子組的LBA范圍,以確定必要時(shí)應(yīng)當(dāng)在哪里 分開(kāi)數(shù)據(jù)。然后,跨接命令處理器開(kāi)始通過(guò)函數(shù)指針653和663調(diào)用子 組的分區(qū)處理器,函數(shù)指針653和663也指向與函數(shù)指針673和683 — 樣的分區(qū)命令處理器。如上所述,分區(qū)命令處理器將跨接級(jí)命令轉(zhuǎn)換為 用于分區(qū)A和B的分區(qū)級(jí)命令。分區(qū)組650和66G在命令堆棧中的最后, 因?yàn)樗鼈兊淖咏M指針657和667分別有空值。分區(qū)處理器將分區(qū)級(jí)命令 鏈接到分區(qū)級(jí)命令的隊(duì)列,以便被發(fā)送給存儲(chǔ)設(shè)備,并且一旦它們完成 處理,將返回到跨接處理器。
圖6所示的實(shí)例示例說(shuō)明了命令堆棧通過(guò)首先下降到分區(qū)級(jí)來(lái)處理 存儲(chǔ)命令的實(shí)施例。該下降方案支持形成分區(qū)級(jí)命令的隊(duì)列,并且支持 最小的處理開(kāi)銷。
對(duì)于圖6所示的實(shí)例,不要求分區(qū)A、 B、 C和D具有相同的結(jié)構(gòu), 因?yàn)樗鼈冊(cè)谶壿嫀喼衅鸬讲煌墓δ艽鎯?chǔ)作用。然而,對(duì)于該特定實(shí)例, 它們應(yīng)當(dāng)具有彼此相關(guān)的容量。例如,分區(qū)D應(yīng)當(dāng)具有與分區(qū)A、 B和C 的組合容量相同的存儲(chǔ)容量,因?yàn)榉謪^(qū)D是邏輯巻的一個(gè)完整實(shí)例,而 A、 B和C形成邏輯巻的另一個(gè)完整實(shí)例。另外,分區(qū)C應(yīng)當(dāng)具有與分區(qū) A和B的組合容量相同的容量,因?yàn)榉謪^(qū)C代表一個(gè)條帶化的單元,而 組合的分區(qū)A和B代表?xiàng)l帶化的組的另一個(gè)條帶化的單元。只要分區(qū)A 和B的組合容量等于分區(qū)C,它們可以有不同的容量。該實(shí)例示例說(shuō)明 了邏輯巻可如何包括分區(qū)或存儲(chǔ)組類型的異構(gòu)混合。
盡管優(yōu)選實(shí)施例使用鏈接列表來(lái)形成存儲(chǔ)組之間的關(guān)系,計(jì)算機(jī)編 程領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,可能有其它的實(shí)施例。例如,可通過(guò)將分級(jí)結(jié)構(gòu)中的相同級(jí)處的成員放在陣列內(nèi)來(lái)代替成員之間的對(duì)等關(guān)系。因 此,命令處理器可迭代通過(guò)陣列的索引,而不是遍歷對(duì)等組鏈接鏈。預(yù) 期命令堆棧的所有實(shí)施例。
命令處理器
命令處理器通過(guò)形成存儲(chǔ)命令并向較低級(jí)的命令處理器傳遞這些 存儲(chǔ)命令來(lái)操作存儲(chǔ)命令。存儲(chǔ)命令被優(yōu)選地存儲(chǔ)在具有若干成員的數(shù)
據(jù)結(jié)構(gòu)中,這些成員包括巻級(jí)LBA、代表進(jìn)入存儲(chǔ)組的偏移量的組LBA、 數(shù)據(jù)請(qǐng)求大小或到用于在存儲(chǔ)器中存儲(chǔ)數(shù)據(jù)的緩存的指針。在優(yōu)選實(shí)施 例中,通過(guò)條帶或跨接命令處理器將巻級(jí)LBA用于正確地計(jì)算如何操作 存儲(chǔ)命令,以生成以條帶或跨接組子組為目標(biāo)的存儲(chǔ)命令。組LBA是代 表從O進(jìn)入組的偏移量的值。另外,存儲(chǔ)組可包括到與存儲(chǔ)命令相關(guān)聯(lián) 的分區(qū)級(jí)命令隊(duì)列的鏈接。
與存儲(chǔ)組類型相關(guān)聯(lián)的命令處理器根據(jù)代表存儲(chǔ)組的功能性的規(guī) 則對(duì)存儲(chǔ)命令進(jìn)行轉(zhuǎn)換。優(yōu)選的命令處理器不攜帶它們所操作的命令的 上下文,而是從存儲(chǔ)組和傳遞給它們的命令獲得上下文信息,從這個(gè)意 義上來(lái)說(shuō),優(yōu)選的命令處理器是通用的。下面的說(shuō)明提供了關(guān)于優(yōu)選的 命令處理器如何操作存儲(chǔ)命令的其它細(xì)節(jié)。命令處理器通過(guò)對(duì)與存儲(chǔ)命 令相關(guān)聯(lián)的數(shù)據(jù)緩存進(jìn)行分區(qū)來(lái)處理不同類型的存儲(chǔ)命令,包括讀或 寫(xiě)。在優(yōu)選實(shí)施例中,命令處理器負(fù)責(zé)將數(shù)據(jù)訪問(wèn)從高級(jí)分解成低級(jí), 使得低級(jí)存儲(chǔ)命令可以被發(fā)送給存儲(chǔ)組,或最終發(fā)送給分區(qū)。
命令處理器鏡像命令處理器
圖7A示出由鏡像命令處理器進(jìn)行的巻級(jí)命令的轉(zhuǎn)換的示例性實(shí)施 例。鏡像命令處理器725操作存儲(chǔ)命令700。在優(yōu)選實(shí)施例中,由于在 邏輯上將鏡像放在存儲(chǔ)組類型分級(jí)結(jié)構(gòu)的最高級(jí),存儲(chǔ)命令700代表用 于鏡像處理器725的巻級(jí)存儲(chǔ)命令。換句話說(shuō),在優(yōu)選實(shí)施例中,鏡像 處理器725將只接收巻級(jí)存儲(chǔ)命令。每個(gè)命令處理器能夠處理存儲(chǔ)命令 700所代表的存儲(chǔ)命令;然而,該命令結(jié)構(gòu)中的要素的值可以是不同的, 如果有上一命令處理器,這取決于上一命令處理器如何操作存儲(chǔ)命令。
存儲(chǔ)命令7QQ包括緩存指針703、巻LBA7G5、組LBA7Q7、請(qǐng)求數(shù) 據(jù)大小709、組指針711以及命令指針713。緩存指針703指向用于存 儲(chǔ)與存儲(chǔ)命令700相關(guān)聯(lián)的數(shù)據(jù)的緩存720的頭。如果存儲(chǔ)命令700代 表數(shù)據(jù)寫(xiě),則緩存720存儲(chǔ)要寫(xiě)入的數(shù)據(jù);然而,如果存儲(chǔ)命令700代表數(shù)據(jù)讀,則緩存720是用于存儲(chǔ)從存儲(chǔ)設(shè)備讀取的數(shù)據(jù)的存儲(chǔ)區(qū)。優(yōu)
選地,以數(shù)據(jù)塊的形式組織緩存720。巻LBA 705代表與存儲(chǔ)命令700 相關(guān)聯(lián)的巻級(jí)數(shù)據(jù)地址,并且為某些命令處理器所使用,例如條帶和跨 接命令處理器。組LBA 707代表進(jìn)入當(dāng)前存儲(chǔ)組的偏移量,回想起每個(gè) 存儲(chǔ)組具有其自身的LBA范圍,該范圍從O到最大值。數(shù)據(jù)大小709代 表緩存720中的塊數(shù)。組指針711只是引用哪個(gè)組是正在通過(guò)其處理存 儲(chǔ)命令的當(dāng)前存儲(chǔ)組。命令指針713代表分區(qū)級(jí)命令隊(duì)列的錨點(diǎn),使得 一旦命令堆棧完成處理一存儲(chǔ)命令;系統(tǒng)可以開(kāi)始傳輸分區(qū)級(jí)命令。
存儲(chǔ)命令700代表以存儲(chǔ)區(qū)為目標(biāo)的任何類型的命令。命令700可 以是讀命令、寫(xiě)命令、檢查狀態(tài)命令,或其它可以以邏輯巻或邏輯巻的 一部分為目標(biāo)的命令。在優(yōu)選實(shí)施例中,巻級(jí)存儲(chǔ)命令源于文件系統(tǒng), 特別是多重存取啟動(dòng)文件系統(tǒng)。
鏡像命令處理器725負(fù)責(zé)將巻級(jí)存儲(chǔ)命令傳遞給與鏡像組的每個(gè)子 組相關(guān)聯(lián)的命令處理器。因此,鏡像命令處理器形成一個(gè)或多個(gè)存儲(chǔ)命 令700A到700N所表示的存儲(chǔ)命令,這些存儲(chǔ)命令基本上是存儲(chǔ)命令700 的副本。存儲(chǔ)命令700A被形成并傳遞給第一鏡像成員的命令處理器; 并在隨后當(dāng)返回時(shí),下一存儲(chǔ)命令被形成并傳遞給下一鏡像成員的命令 處理器,等等,直到存儲(chǔ)命令700N被處理為止。注意存儲(chǔ)命令700A到 700N基本相同,因?yàn)槊總€(gè)存儲(chǔ)命令以邏輯巻的一個(gè)實(shí)例為目標(biāo),這是鏡 像巻的特性。例如,緩存指針703A到703N指向數(shù)據(jù)緩存720的第一塊。 并且,巻LBA 705A到705N具有和巻LBA 705相同的值,在該實(shí)例中為 VLBA的值。另外,組LBA 707A到7 07N還具有和巻LBA 705相同的值, 在該實(shí)例中為VLBA的值,因?yàn)殓R像組的每個(gè)成員具有的組LBA范圍和 巻級(jí)LBA范圍相同大小或范圍。另外,數(shù)據(jù)大小709A到709N具有和存 儲(chǔ)命令700的數(shù)據(jù)大小709相同的值。組指針711A指向與第一成員相 關(guān)聯(lián)的組,而組指針711N指向與第N成員相關(guān)聯(lián)的組。并且,注意命 令指針713也和存儲(chǔ)命令一起傳輸,使得當(dāng)?shù)竭_(dá)分區(qū)級(jí)時(shí),分區(qū)命令處 理器通過(guò)在分區(qū)級(jí)命令中鏈接到命令指針713來(lái)形成分區(qū)級(jí)命令隊(duì)列。
鏡像命令處理器725生成巻級(jí)存儲(chǔ)命令,并為其每個(gè)子組調(diào)用命令 處理器。當(dāng)子組的命令處理器被調(diào)用時(shí),鏡像命令處理器725將新生成 的存儲(chǔ)命令傳遞給用于該子組的命令處理器。 一旦子組命令處理器返 回,不再需要發(fā)送給子組的存儲(chǔ)命令;隨后可形成和處理下一存儲(chǔ)命令。不再需要存儲(chǔ)命令,因?yàn)榉謪^(qū)命令處理器生成了存儲(chǔ)命令堆棧處理結(jié)果 的分區(qū)命令隊(duì)列。
命令處理器條帶命令處理器
圖7B示例說(shuō)明存儲(chǔ)命令如何被轉(zhuǎn)換為一個(gè)或多個(gè)條帶級(jí)存儲(chǔ)命令 的示例性實(shí)施例。條帶命令處理器745通過(guò)生成如存儲(chǔ)命令730A到730N 所指示的一個(gè)或多個(gè)條帶級(jí)存儲(chǔ)命令來(lái)操作存儲(chǔ)命令700。在優(yōu)選實(shí)施 例中,存儲(chǔ)命令700可源于鏡像命令處理器,或者對(duì)于沒(méi)有鏡像的情況 可直接來(lái)自文件系統(tǒng)。
存儲(chǔ)命令處理器745使用包括條帶塊大小和條帶成員數(shù)量的條帶組 特定信息,以形成要被條帶組成員的命令處理器處理的存儲(chǔ)命令730A、 730B到730N。由于條帶的布置,每個(gè)條帶級(jí)命令730A、 730B到730N 代表以邏輯巻中不同的存儲(chǔ)區(qū)部分為目標(biāo)的不同的存儲(chǔ)命令。因此,假 設(shè)數(shù)據(jù)大小709指示有足夠的數(shù)據(jù),存儲(chǔ)命令730A到7 30N代表跨條帶 組成員的數(shù)據(jù)訪問(wèn)。RAID系統(tǒng),特別是條帶化領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到, 除了文中提出的簡(jiǎn)單實(shí)例,還有其它可能的數(shù)據(jù)訪問(wèn)布置;預(yù)期所有的 這些布置。
存儲(chǔ)命令730A代表與組指針741A所定位的條帶組成員相關(guān)聯(lián)的第 一條帶級(jí)存儲(chǔ)命令。由于條帶命令730A是要處理的第一條帶級(jí)命令, 緩存指針7 33A指向緩存720的開(kāi)端。另外,由于條帶存儲(chǔ)命令730A是 數(shù)據(jù)訪問(wèn)的第一部分,巻LBA 7 35A再次具有和巻LBA 705 —樣的值。 組LBA 7 37A具有作為巻LBA 7 35A、條帶成員數(shù)量和條帶塊大小的函數(shù) 來(lái)計(jì)算的值,這和用傳統(tǒng)條帶化所做的一樣,除了在存儲(chǔ)組而不是在磁 盤(pán)上對(duì)數(shù)據(jù)進(jìn)行條帶化。結(jié)果值代表進(jìn)入條帶組成員的LBA范圍的偏移 量。假設(shè)數(shù)據(jù)大小709大于或等于條帶塊大小,數(shù)據(jù)大小739A的范圍 將從O到條帶塊大小。命令指針713再次向下傳遞通過(guò)命令堆棧,以被 分區(qū)級(jí)命令處理器所使用。
在存儲(chǔ)命令730A被處理并且其命令處理器返回之后,條帶命令處 理器745形成存儲(chǔ)命令730B,并調(diào)用下一條帶組成員的命令處理器。緩 存指針733B指向緩存720中的下一條帶塊大小的字節(jié)片。巻LBA 735B 引用與下一數(shù)據(jù)條帶塊相關(guān)聯(lián)的巻級(jí)LBA,并具有巻LBA 705加上塊大 小的值。還計(jì)算組LBA 737B,正如計(jì)算組LBA 737A那樣。在該實(shí)例中, 假設(shè)兩個(gè)命令都訪問(wèn)在條帶中的相同深度的數(shù)據(jù),組737B具有和組7 37A相同的值。在該實(shí)例中,數(shù)據(jù)大小739B也具有條帶塊大小的大小。 組指針741B指向與條帶組成員相關(guān)聯(lián)的目標(biāo)組,并且最后存儲(chǔ)命令 730B攜帶命令指針713。
條帶命令處理器745繼續(xù)以該方式形成下一條帶級(jí)命令并調(diào)用下一 成員的命令處理器,直到到達(dá)最后的條帶級(jí)存儲(chǔ)命令730N。緩存指針 7 33N指向緩存720的最后部分,其具有等于或小于如數(shù)據(jù)大小739N所 指示的條帶塊大小的大小,該數(shù)據(jù)大小739N具有代表最后的字節(jié)片大 小的值。并且,條帶命令處理器745將巻LBA 735A作為在條帶成員上 寫(xiě)入多少塊的函數(shù)來(lái)計(jì)算。組LBA 737N可包括不同值組LBA 7 37A,因 為條帶命令處理器745有可能可以完成命令的一完整條帶并啟動(dòng)另一輪 次,導(dǎo)致訪問(wèn)在條帶組成員的LBA范圍中更深的數(shù)據(jù)。類似地,組指針 741N還可指向上次用過(guò)的組。對(duì)于熟悉多個(gè)存儲(chǔ)設(shè)備上的數(shù)據(jù)條帶化的 人可以理解在該簡(jiǎn)單實(shí)例所描述的計(jì)算和方案之外的適當(dāng)數(shù)據(jù)條帶化 所需要的不同的計(jì)算和不同的方案,所有的這些計(jì)算和方案都適用于本 發(fā)明主題。
預(yù)期條帶命令處理器745可被修改為執(zhí)行奇偶校驗(yàn)計(jì)算,以提供用 于支持RAID 4、 RAID 5、 RAID 6或其它奇偶校驗(yàn)配置的奇偶校驗(yàn)RAID 處理器。優(yōu)選地,奇偶校驗(yàn)命令處理器發(fā)送用于奇偶校驗(yàn)信息的讀請(qǐng)求, 然后基于任何寫(xiě)請(qǐng)求來(lái)修改奇偶校驗(yàn)值;并且隨后向奇偶校驗(yàn)組的成員 發(fā)送寫(xiě)命令。在一些實(shí)施例中,可通過(guò)設(shè)置在另一設(shè)備上的代理來(lái)處理 用于奇偶校驗(yàn)的附加處理。
命令處理器跨接命令處理器
圖7C示例說(shuō)明存儲(chǔ)命令如何被轉(zhuǎn)換為一個(gè)或多個(gè)跨接級(jí)存儲(chǔ)命令 的示例性實(shí)施例。跨接命令處理器765通過(guò)將存儲(chǔ)命令700轉(zhuǎn)換為一個(gè) 或多個(gè)如存儲(chǔ)命令75 0A和75 0B所指示的跨接級(jí)存儲(chǔ)命令來(lái)操作存儲(chǔ)命 令700。在優(yōu)選實(shí)施例中,跨接命令處理器765可直接從文件系統(tǒng)、從 鏡像命令處理器或從條帶命令處理器接收存儲(chǔ)命令700,因?yàn)樵诖鎯?chǔ)組 類型組織中跨接命令處理器765在它們之下。
跨接命令處理器765使用關(guān)于其每個(gè)子組LBA范圍的信息來(lái)計(jì)算跨 接邊界處于跨接組的LBA范圍內(nèi)的哪里。該信息隨后被用于當(dāng)存儲(chǔ)命令 700橋接分區(qū)時(shí),形成存儲(chǔ)命令750A和750B。存儲(chǔ)命令750A代表訪問(wèn) 來(lái)自第一分區(qū)的數(shù)據(jù)的第一跨接級(jí)存儲(chǔ)命令,而存儲(chǔ)命令750B代表訪問(wèn)來(lái)自接在第 一分區(qū)之后的第二分區(qū)的數(shù)據(jù)的第二跨接級(jí)存儲(chǔ)命令。
存儲(chǔ)命令750A包括關(guān)于第一分區(qū)訪問(wèn)的信息。緩存指針75 3A指向 緩存720的開(kāi)端。由于巻LBA 755A表示數(shù)據(jù)訪問(wèn)的第一部分,它是和 巻LBA 705相同的。組LBA 757A具有跨接處理器765所計(jì)算的值,并 且代表進(jìn)入跨接成員的組的偏移量。根據(jù)巻LBA 705和跨接組成員的LBA 范圍的每一個(gè)的范圍來(lái)計(jì)算該值。類似地,也是根據(jù)相同的信息,特別 是跨接邊界相對(duì)于巻LBA 755A在哪里,計(jì)算數(shù)據(jù)大小759A。當(dāng)然,該 實(shí)例假設(shè)跨接邊界的值在和巻級(jí)LBA范圍相同的圖空間內(nèi)。組指針761A 指向存儲(chǔ)命令750A以其為目標(biāo)的分區(qū)組,并且命令指針713被再次傳 遞給分區(qū)級(jí)命令處理器。
一旦處理了存儲(chǔ)命令750A,分區(qū)命令處理器返回;隨后跨接命令處 理器765處理存儲(chǔ)命令750B。存儲(chǔ)命令750B代表以下一分區(qū)為目標(biāo)的 存儲(chǔ)命令700的第二部分。緩存指針753B指向緩存720中數(shù)據(jù)將在分 區(qū)之間橋接的位置,如分區(qū)邊界755所指示。巻LBA 755B具有前一分 區(qū)的跨接邊界加1的位置的值。另外,組LBA 757B將具有G值,指示 將在分區(qū)的開(kāi)端進(jìn)行訪問(wèn)。還根據(jù)包括使用跨接邊界的分區(qū)范圍信息來(lái) 計(jì)算數(shù)據(jù)大小759B。組指針761B指向存儲(chǔ)命令750B針對(duì)的分區(qū)。
和在上一優(yōu)選的命令處理器中一樣,跨接命令處理器765生成存儲(chǔ) 命令750A,然后調(diào)用與組指針761A相關(guān)聯(lián)的命令處理器。存儲(chǔ)命令75 0A 一旦被處理,將不再被需要。跨接命令處理器765隨后前進(jìn)以生成存儲(chǔ) 命令75GB,并隨后接著處理該存儲(chǔ)命令75GB.
命令處理器分區(qū)命令處理器
圖7D示例說(shuō)明存儲(chǔ)命令如何被轉(zhuǎn)換為一個(gè)或多個(gè)分區(qū)級(jí)存儲(chǔ)命令 的示例性實(shí)施例。在優(yōu)選實(shí)施例中,生成分區(qū)級(jí)命令代表存儲(chǔ)組分級(jí)結(jié) 構(gòu)的底部,并提供用于生成分區(qū)級(jí)命令的實(shí)際結(jié)構(gòu),以訪問(wèn)以存儲(chǔ)設(shè)備 為目標(biāo)的數(shù)據(jù)。分區(qū)命令處理器785將存儲(chǔ)命令700轉(zhuǎn)換為分區(qū)級(jí)存儲(chǔ) 命令770A、 770B到770N所代表的一個(gè)或多個(gè)分區(qū)級(jí)命令。在優(yōu)選實(shí)施 例中,分區(qū)命令處理器785通過(guò)將分區(qū)命令770A到770N加到由命令指 針713引用的命令列表來(lái)形成分區(qū)命令隊(duì)列790。隨著巻級(jí)存儲(chǔ)命令被 完全地處理通過(guò)邏輯巻的命令堆棧,該列表繼續(xù)生長(zhǎng)。優(yōu)選地,在給定 存儲(chǔ)組的優(yōu)選規(guī)定的分級(jí)結(jié)構(gòu)的情況下,存儲(chǔ)命令700代表巻級(jí)存儲(chǔ)命 令、條帶級(jí)存儲(chǔ)命令或跨接級(jí)存儲(chǔ)命令。分區(qū)命令處理器785使用與分區(qū)特征相關(guān)的信息,以確定如何生成 存儲(chǔ)命令770A到770N。在優(yōu)選實(shí)施例中,分區(qū)命令略微不同于通用存 儲(chǔ)命令,因?yàn)樗鼈兲貏e以存儲(chǔ)區(qū)為目標(biāo),并被打包或發(fā)送給存儲(chǔ)設(shè)備。
與分區(qū)相關(guān)聯(lián)的參數(shù)包括數(shù)據(jù)傳輸大小、塊形式的分區(qū)大小或分區(qū) 標(biāo)識(shí)符。優(yōu)選的傳輸大小以512字節(jié)塊為單位,以符合通用存儲(chǔ)設(shè)備上 的塊大小。特別優(yōu)選的傳輸大小包括1、 2、 4、 8、 16、 32或64數(shù)據(jù)塊, 以適應(yīng)于單個(gè)數(shù)據(jù)報(bào)中的傳輸;然而,也考慮其它的塊大小。命令處理 器使用分區(qū)大小信息以將高級(jí)存儲(chǔ)命令數(shù)據(jù)訪問(wèn)正確地映射到分區(qū)。如 上所述,分區(qū)標(biāo)識(shí)符被用于尋址特定分區(qū)。優(yōu)選地,分區(qū)標(biāo)識(shí)符是IP 地址;然而,也可使用LUN或其它地址而不失去適用性。在一個(gè)使用 iSCSI的實(shí)施例中,IP地址可被用于將存儲(chǔ)命令定位到存儲(chǔ)設(shè)備上,而 LUN則被接著用于尋址在存儲(chǔ)設(shè)備上的特定存儲(chǔ)區(qū)。
分區(qū)命令處理器785使用傳輸大小信息來(lái)形成分區(qū)命令770A到 770N中的每一個(gè),這表示單個(gè)訪問(wèn)最多請(qǐng)求一個(gè)數(shù)據(jù)傳輸大小。分區(qū)命 令77 0A代表第一分區(qū)命令。緩存指針773A指向緩存720的第一部分。 由于先前的層已完成了全部巻級(jí)處理,分區(qū)命令770A在其請(qǐng)求中不需 要巻LBA 707信息。組LBA 777A引用目標(biāo)分區(qū)中的偏移量,并且數(shù)據(jù) 大小779A指示所請(qǐng)求的數(shù)據(jù)訪問(wèn)是至少預(yù)期的分區(qū)傳輸大小。命令鏈 接78 3A通過(guò)像命令鏈接78 3B那樣鏈接到下一分區(qū)級(jí)命令來(lái)繼續(xù)形成分 區(qū)命令隊(duì)列790。 一旦分區(qū)命令處理器785完成分區(qū)命令770A的生成, 分區(qū)命令處理器785生成分區(qū)命令770B。
以類似于生成分區(qū)命令770A的方式生成分區(qū)命令770B。緩存指針 773B在位于下一數(shù)據(jù)字節(jié)片開(kāi)端的深度為一個(gè)傳輸大小的位置指向緩 存720。組LBA 777B具有比上一分區(qū)命令大一個(gè)傳輸大小的值,并且數(shù) 據(jù)大小779B又是傳輸大小。分區(qū)命令處理器785繼續(xù)生成分區(qū)命令, 直到緩存的全部數(shù)據(jù)被處理為止。分區(qū)命令770N所代表的最后一 個(gè)分區(qū)命令通過(guò)使緩存指針773N指向緩存720的最后一部分來(lái)處理緩 存720的結(jié)尾部分。組LBA 777N具有被計(jì)算為需要用來(lái)處理存儲(chǔ)命令 700的字節(jié)片數(shù)量的函數(shù)的值。數(shù)據(jù)大小779N具有小于或等于分區(qū)傳輸 大小的值。最后,命令鏈接78 3N在必要時(shí)是以空結(jié)束的,這代表命令 隊(duì)列790的末端。
一旦存儲(chǔ)設(shè)備接收到分區(qū)級(jí)命令,存儲(chǔ)設(shè)備將分區(qū)級(jí)LBA轉(zhuǎn)換成與物理存儲(chǔ)設(shè)備相關(guān)聯(lián)的設(shè)備級(jí)LBA。例如,存儲(chǔ)命令770A具有相關(guān)聯(lián)的 組LBA 777A,該組LBA 777A具有范圍從0到該目標(biāo)分區(qū)的最大值的值。 然而,當(dāng)存儲(chǔ)設(shè)備接收存儲(chǔ)命令770A時(shí),其有可能將組LBA 777A映射 到實(shí)際硬盤(pán)驅(qū)動(dòng)器中的絕對(duì)LBA索引。 命令處理器命令堆棧處理
由鏈接存儲(chǔ)組和命令處理器形成的命令堆棧將高級(jí)存儲(chǔ)命令轉(zhuǎn)換 為低級(jí)存儲(chǔ)命令,可由負(fù)責(zé)分區(qū)的存儲(chǔ)設(shè)備來(lái)處理該低級(jí)存儲(chǔ)命令。命 令堆棧通過(guò)將高級(jí)命令映射到由不同的分區(qū)存儲(chǔ)組提供的功能性來(lái)生 成命令。計(jì)算機(jī)編程領(lǐng)域的技術(shù)人員將認(rèn)識(shí)到,有很多種用于處理存儲(chǔ)
命令的可能的實(shí)施例。
在優(yōu)選實(shí)施例中,通過(guò)命令數(shù)據(jù)結(jié)構(gòu)的指針將存儲(chǔ)命令傳遞給命令 堆棧或組命令處理器。命令數(shù)據(jù)結(jié)構(gòu)包括與命令屬性相關(guān)的信息,命令 屬性包括請(qǐng)求的類型(讀、寫(xiě)、狀態(tài)、等)、數(shù)據(jù)請(qǐng)求的大小(如果有) 或用于保持任何數(shù)據(jù)的緩存的指針。利用數(shù)據(jù)緩存的指針允許命令處理 器基本以相同的方式處理寫(xiě)請(qǐng)求和讀請(qǐng)求。當(dāng)命令處理器將高級(jí)存儲(chǔ)命
令轉(zhuǎn)換為低級(jí)存儲(chǔ)命令時(shí),命令處理器將低級(jí)存儲(chǔ)命令放入存儲(chǔ)命令的 鏈接列表中,優(yōu)選地在分區(qū)級(jí)。存儲(chǔ)命令表最終導(dǎo)致只有一個(gè)分區(qū)級(jí)存 儲(chǔ)命令表可被打包并發(fā)送給存儲(chǔ)設(shè)備。該表中的每一個(gè)分區(qū)級(jí)存儲(chǔ)命令 包括進(jìn)入緩存的偏移量、請(qǐng)求大小、分區(qū)LBA、分區(qū)標(biāo)識(shí)符,或者當(dāng)對(duì) 分區(qū)級(jí)存儲(chǔ)命令進(jìn)行打包時(shí)有用的其它信息。
盡管命令堆棧本身可以是復(fù)雜的結(jié)構(gòu),該結(jié)構(gòu)只調(diào)用幾個(gè)函數(shù);存 儲(chǔ)組的每個(gè)類型用一個(gè)函數(shù)。這意味著如果邏輯巻支持四個(gè)存儲(chǔ)組類 型鏡像、條帶、跨接或分區(qū);命令堆棧將只調(diào)用四個(gè)函數(shù)鏡像命令 處理器、條帶命令處理器、跨接命令處理器或分區(qū)命令處理器。每個(gè)組 在它們的供命令處理器使用的組數(shù)據(jù)結(jié)構(gòu)中攜帶其進(jìn)行定義的上下文 信息。開(kāi)發(fā)以該方式操作的命令堆棧減少使用遞歸的需求,這可有利于 有內(nèi)存限制的嵌入式系統(tǒng)。
打包存儲(chǔ)命令
最后,低級(jí)存儲(chǔ)命令被打包以傳輸?shù)酱鎯?chǔ)設(shè)備。在優(yōu)選實(shí)施例中, 根據(jù)為存儲(chǔ)設(shè)備所理解的存儲(chǔ)協(xié)議來(lái)打包分區(qū)級(jí)命令;然而,也有可能 打包較高級(jí)的存儲(chǔ)命令,并將它們發(fā)送給包括代理的其它設(shè)備,用于進(jìn) 一步的命令堆棧處理。例如,在Zetera的Z-SAN協(xié)議中,每個(gè)分區(qū)級(jí)、適當(dāng)?shù)膫鬏敶笮〉臄?shù)據(jù)有效載荷以及分 區(qū)的IP地址的UDP數(shù)據(jù)報(bào)中。啟用Z-SAN的設(shè)備可具有多個(gè)IP地址, 每個(gè)分區(qū)用對(duì)其負(fù)責(zé)的一個(gè)IP地址。利用Z-SAN數(shù)據(jù)報(bào)的IP地址在IP 層對(duì)分區(qū)進(jìn)行區(qū)分。或者,可使用iSCSI協(xié)議來(lái)打包分區(qū)級(jí)命令。iSCSI 使用IP地址來(lái)定位存儲(chǔ)設(shè)備,而不是使用IP地址來(lái)識(shí)別分區(qū),并隨后 使用LUN來(lái)尋址分區(qū)。iSCSI還通過(guò)iSCSI會(huì)話中的TCP/IP連接來(lái)傳輸 分區(qū)級(jí)命令,該連接還可被用于傳輸較高級(jí)的存儲(chǔ)命令。應(yīng)當(dāng)注意,分
使用任何協(xié)議,包括FCIP、 iFCP、 SATA、 ATA、 SAS、 SCSI、 USB、無(wú)線 USB、 IEEE 1 394、 802.1 1,或其它可攜帶存儲(chǔ)命令的協(xié)議。
一個(gè)實(shí)施例支持分區(qū)處理器打包生成的存儲(chǔ)命令,而不是將分區(qū)級(jí) 存儲(chǔ)命令鏈接到代表命令隊(duì)列的鏈接列表中。 一旦生成分區(qū)級(jí)存儲(chǔ)命 令,它們可被打包到數(shù)據(jù)包中并發(fā)送給分區(qū)。這是有利的,因?yàn)樗峁?了存儲(chǔ)系統(tǒng)中的最快速響應(yīng);然而,對(duì)于預(yù)期對(duì)每個(gè)發(fā)送命令響應(yīng)的執(zhí) 行協(xié)議,當(dāng)沒(méi)有提供回答時(shí),系統(tǒng)將在等待響應(yīng)時(shí)中斷存儲(chǔ)命令處理。
在分區(qū)處理器通過(guò)分區(qū)級(jí)存儲(chǔ)命令的鏈接列表將命令排成隊(duì)列以 用于以后的傳輸?shù)膬?yōu)選實(shí)施例中,打包和發(fā)送分區(qū)級(jí)存儲(chǔ)命令。該方案 的優(yōu)點(diǎn)是命令處理與任何存儲(chǔ)協(xié)議處理無(wú)關(guān),因此命令生成不被處理存 儲(chǔ)協(xié)議中斷。例如,如果每個(gè)打包在iSCSI協(xié)議中的分區(qū)級(jí)命令需要來(lái) 自分區(qū)或存儲(chǔ)設(shè)備的響應(yīng),則分區(qū)命令處理器沒(méi)有必要在發(fā)送下一分區(qū) 級(jí)存儲(chǔ)命令之前等待響應(yīng)。
構(gòu)造邏輯巻圖
鏈接存儲(chǔ)組和命令處理器所代表的命令堆棧代表邏輯巻的圖。在所 考慮的預(yù)期客戶機(jī)和存儲(chǔ)設(shè)備不預(yù)先通知地出現(xiàn)和消失的分布式虛擬 環(huán)境中,客戶機(jī)不需要系統(tǒng)的先驗(yàn)知識(shí)。優(yōu)選地,客戶機(jī)通過(guò)發(fā)現(xiàn)一個(gè) 或多個(gè)分區(qū)來(lái)訪問(wèn)存儲(chǔ)系統(tǒng)。進(jìn)入系統(tǒng)的客戶機(jī)可能利用UDP廣播向用 分區(qū)信息響應(yīng)的存儲(chǔ)設(shè)備發(fā)送發(fā)現(xiàn)報(bào)文。分區(qū)信息包括代表客戶機(jī)所使 用的邏輯巻圖信息的屬性。然后,客戶機(jī)能夠?qū)⑦壿嫀喌膱D構(gòu)造為發(fā)現(xiàn) 的圖數(shù)據(jù)的函數(shù)。例如,分區(qū)可以用描述其在存儲(chǔ)組類型的分級(jí)結(jié)構(gòu)中 的組從屬關(guān)系的屬性來(lái)響應(yīng)。包括例如名稱的屬性可包括關(guān)于分區(qū)所屬 組的分級(jí)結(jié)構(gòu)信息??蛻魴C(jī)分析來(lái)自分區(qū)的屬性信息以獲得對(duì)分區(qū)如何 相互配合以形成邏輯巻的理解。該屬性以客戶機(jī)可以理解的方式對(duì)關(guān)于存儲(chǔ)組組織的普通規(guī)則信息進(jìn)行編碼,因此客戶機(jī)可以構(gòu)造邏輯巻。然 后,客戶機(jī)根據(jù)組織規(guī)則和屬性信息建立代表邏輯巻的圖的命令堆棧。 在某種意義上,可認(rèn)為這些屬性是發(fā)送給客戶機(jī)的關(guān)于如何構(gòu)造用于邏
輯巻的命令堆沖戔的指令。題為 "Di saggreted Resources and Access Methods"的共有美國(guó)專利申請(qǐng)1 1/205, 895號(hào)提供了關(guān)于客戶機(jī)發(fā)現(xiàn)分 區(qū)信息、分級(jí)結(jié)構(gòu)名稱或?qū)Υ鎯?chǔ)組組織進(jìn)行編碼的屬性的使用的細(xì)節(jié)。
當(dāng)客戶機(jī)在建立邏輯巻命令堆棧時(shí)理解屬性信息時(shí),使用可選的父 組指針或可選的前一對(duì)等組指針是有利的。使用這些指針是為了遍歷組 結(jié)構(gòu),以確保沒(méi)有漏洞或錯(cuò)誤。
認(rèn)為虛擬存儲(chǔ)系統(tǒng)中的存儲(chǔ)區(qū)單獨(dú)地或集體地對(duì)發(fā)現(xiàn)請(qǐng)求響應(yīng)。單 獨(dú)響應(yīng)代表來(lái)自每個(gè)分區(qū)的單個(gè)響應(yīng),其中該響應(yīng)包括分區(qū)信息。集體 響應(yīng)表示來(lái)自系統(tǒng)中的單元的響應(yīng),其包括與多個(gè)分區(qū)相關(guān)的信息。在 一些實(shí)施例中,代理將集合來(lái)自很多分區(qū)的單獨(dú)響應(yīng),并隨后像單個(gè)存 儲(chǔ)區(qū)那樣用單獨(dú)響應(yīng)對(duì)客戶機(jī)發(fā)現(xiàn)進(jìn)行響應(yīng)。例如,如果代理集合條帶 存儲(chǔ)組,代理可以將該條帶存儲(chǔ)組當(dāng)作單個(gè)分區(qū)來(lái)處理,并且像單獨(dú)分 區(qū)的組那樣向客戶機(jī)提供發(fā)現(xiàn)響應(yīng)。在其它實(shí)施例中,存儲(chǔ)設(shè)備或其它 設(shè)備收集關(guān)于分區(qū)的信息,并隨后形成包括用于多個(gè)分區(qū)的信息的報(bào) 文。例如,單個(gè)存儲(chǔ)設(shè)備可用包括每個(gè)單獨(dú)分區(qū)的名稱或?qū)傩缘膱?bào)文來(lái) 響應(yīng)發(fā)現(xiàn)請(qǐng)求。
結(jié)果命令堆??梢允呛?jiǎn)單或者復(fù)雜的。簡(jiǎn)單的命令堆棧代表使用用
射到:l的邏輯巻只請(qǐng)求一個(gè)分區(qū)命令處[器。復(fù)雜的命令堆棧包括用 于不同類型的存儲(chǔ)組,包括鏡像、條帶、跨接、分區(qū)、奇偶校驗(yàn),的多 個(gè)命令處理器,或命令處理器的其它混合。 更新邏輯巻圖
邏輯巻圖包括存儲(chǔ)組的鏈接結(jié)構(gòu)。和在任何鏈接列表中一樣,可通 過(guò)調(diào)節(jié)列表中的指針來(lái)更新成員。通過(guò)在附加存儲(chǔ)組中鏈接可將一些存 儲(chǔ)組加到邏輯巻上,或者通過(guò)解除存儲(chǔ)組的鏈接可從邏輯巻移除一些存儲(chǔ)組。
加上存儲(chǔ)組的實(shí)例包括通過(guò)將附加分區(qū)加到邏輯巻上來(lái)增加邏輯 巻的容量。例如,如果邏輯巻只包括具有三個(gè)成員的跨接組,邏輯巻可 通過(guò)在第四成員中鏈接到跨接組的對(duì)等鏈接來(lái)增加其容量??蛻魴C(jī)現(xiàn)在將察覺(jué)邏輯巻具有增加的容量而不必卸下邏輯巻。
移除存儲(chǔ)組的實(shí)例包括處理丟失分區(qū)。如果巻包括具有一個(gè)以上成 員的鏡像組,則每個(gè)成員代表邏輯巻的一個(gè)實(shí)例。當(dāng)客戶機(jī)不再能訪問(wèn) 與 一 個(gè)成員相關(guān)聯(lián)的分區(qū)時(shí),該客戶機(jī)還能訪問(wèn)來(lái)自其它鏡像組成員的 一個(gè)或多個(gè)分區(qū)的數(shù)據(jù)。客戶機(jī)可以通過(guò)移除對(duì)丟失分區(qū)的鏈接來(lái)更新 邏輯巻圖,或者通過(guò)以空結(jié)束對(duì)等鏈接或子組鏈接來(lái)更新與其相關(guān)聯(lián)的
任何組。命令堆棧還是有效的,并且正常地處理存儲(chǔ)命令;然而,命令
組只是不能進(jìn)入被移除的存儲(chǔ)組。認(rèn)為客戶機(jī)包括確定客戶機(jī)是否應(yīng)當(dāng) 繼續(xù)向損壞的鏡像巻寫(xiě)入的指令。
在優(yōu)選實(shí)施例中,客戶機(jī)獲得與對(duì)于數(shù)據(jù)的邏輯巻的連貫性相關(guān)的 分區(qū)信息。連貫性指的是,即使邏輯巻的部分不可以被訪問(wèn),客戶機(jī)也
能夠訪問(wèn)邏輯巻的LBA范圍所代表的邏輯巻的完整實(shí)例。在一個(gè)實(shí)施例 中,客戶機(jī)周期性地向系統(tǒng)探查分區(qū)的屬性,以確保與邏輯巻相關(guān)聯(lián)的 分區(qū)是可用的。當(dāng)客戶機(jī)通過(guò)分析屬性信息而檢測(cè)到邏輯巻結(jié)構(gòu)中的改 變時(shí),它可以通過(guò)加上或移除適當(dāng)?shù)拇鎯?chǔ)組來(lái)更新邏輯巻的圖。
一旦客戶機(jī)已形成對(duì)于LBA范圍的連貫的邏輯巻圖,它可以將邏輯 巻掛載為本地連接的存儲(chǔ)設(shè)備。在優(yōu)選實(shí)施例中,當(dāng)客戶機(jī)檢測(cè)到邏輯 巻中的改變時(shí),它更新邏輯巻圖而不用卸下邏輯巻。不要求客戶機(jī)卸下 邏輯巻,因?yàn)榇鎯?chǔ)組可被鏈接或被解除鏈接,而不影響操作系統(tǒng)或文件 系統(tǒng)。
其它的考慮
盡管優(yōu)選實(shí)施例對(duì)向存儲(chǔ)設(shè)備傳輸?shù)姆謪^(qū)級(jí)存儲(chǔ)命令進(jìn)行打包,聰 明的讀者將認(rèn)識(shí)到,對(duì)于打包來(lái)說(shuō),分區(qū)級(jí)存儲(chǔ)命令和較高級(jí)的存儲(chǔ)命 令之間幾乎沒(méi)有差別。因此,本發(fā)明主題還包括對(duì)向存儲(chǔ)設(shè)備或向存儲(chǔ)
案支持建立分布式命令堆棧,其中命令處理器可跨對(duì)客戶機(jī)、代理、存
鏈接操:乍。、代理代表、一種設(shè):備,其對(duì)于另一的;l備表現(xiàn)為二個(gè)或多個(gè)單 獨(dú)的存儲(chǔ)區(qū),同時(shí)集合來(lái)自其它存儲(chǔ)設(shè)備的一個(gè)或多個(gè)存儲(chǔ)區(qū)。對(duì)于存
儲(chǔ)設(shè)備來(lái)說(shuō),代理起到客戶機(jī)的作用;然而,對(duì)于客戶機(jī)來(lái)說(shuō),代理也 起到存儲(chǔ)設(shè)備的作用。
毫無(wú)疑問(wèn),與操作與 一種類型存儲(chǔ)組相關(guān)聯(lián)的存儲(chǔ)命令的命令處理器結(jié)合的存儲(chǔ)組組織可被認(rèn)為是描述LBA轉(zhuǎn)換的"數(shù)學(xué)"。命令處理器
代表將LBA和數(shù)據(jù)請(qǐng)求大小作為輸入來(lái)接受的不同的運(yùn)算符。然后,命 令處理器輸出一個(gè)或多個(gè)轉(zhuǎn)換的LBA和數(shù)據(jù)請(qǐng)求大小。因此,預(yù)期對(duì)數(shù) 據(jù)地址和請(qǐng)求大小進(jìn)行轉(zhuǎn)換的全部命令處理器。例如,本發(fā)明主題支持 在命令處理器中增加功能,以反映用于一種類型的存儲(chǔ)組的附加功能 性。命令處理器充分地脫離邏輯巻的結(jié)構(gòu),對(duì)命令處理器功能性的修改 不改變邏輯巻的拓樸。修改條帶命令處理器以處理奇偶校驗(yàn)代表一個(gè)實(shí) 例。
另 一 實(shí)例包括修改鏡像命令處理器以改善邏輯巻的性能。具有包括 兩個(gè)或兩個(gè)以上成員的鏡像組的邏輯巻包括一組以上的邏輯巻數(shù)據(jù),通 過(guò)一組以上的LBA對(duì)它們進(jìn)行訪問(wèn)。因此,鏡像命令處理器可#皮+務(wù)改為 將讀存儲(chǔ)命令跨鏡像組成員展開(kāi)。當(dāng)鏡像命令處理器處理巻級(jí)讀命令
配給多;存儲(chǔ)設(shè)備。:與鏡像成員相關(guān)聯(lián)的:區(qū)被設(shè)置在不同的存儲(chǔ)設(shè)
備上時(shí),讀性能將好于從設(shè)置在統(tǒng)一存儲(chǔ)設(shè)備上的鏡像成員讀數(shù)據(jù)。在 一個(gè)實(shí)施例中,修改的鏡像命令處理器就像鏡像組成員屬于條帶組來(lái)處 理鏡像組成員上的數(shù)據(jù)??梢栽诰哂袃?nèi)部存儲(chǔ)設(shè)備的客戶機(jī)中有利地配 置這樣的方案,包括有兩個(gè)硬盤(pán),其中一個(gè)硬盤(pán)對(duì)另一個(gè)硬盤(pán)進(jìn)行鏡像 的計(jì)算機(jī)。另外,命令處理器可以區(qū)分請(qǐng)求類型。例如,命令處理器可 以有差另'j地處理寫(xiě)或讀請(qǐng)求,以獲得附加的功能性。
本文所公開(kāi)的結(jié)構(gòu)可被用于存儲(chǔ)以外的其它技術(shù)??赏茝V這些概念 以提供用于分布式或集合式設(shè)備的命令處理??蛻魴C(jī)可以發(fā)現(xiàn)集合式設(shè) 備的結(jié)構(gòu),并隨后基于發(fā)現(xiàn)信息形成命令堆棧。在其它的實(shí)施例中,客 戶機(jī)可以使用來(lái)自服務(wù)器的信息來(lái)構(gòu)造通信堆棧,以確保只使用必要的 通信基礎(chǔ)設(shè)施。例如,如果客戶機(jī)和服務(wù)器被鏈接在相同的以太網(wǎng)LAN 上,可以想象的是,客戶機(jī)可以根據(jù)服務(wù)器指令生成只使用以太網(wǎng)的通 信堆棧,而不使用完整TCP/IP堆棧用于通信,以獲得更有效的通信。 這樣的命令堆棧相當(dāng)適用于原子的命令響應(yīng)應(yīng)用協(xié)議。
還考慮將命令堆棧鏈接在一起。如上所述,可在客戶機(jī)、代理、存 儲(chǔ)設(shè)備,或存儲(chǔ)系統(tǒng)中的其它單元之間散布命令堆棧。這包括了這樣的 概念客戶機(jī)與存儲(chǔ)設(shè)備交互,該存儲(chǔ)設(shè)備自身采用命令堆棧以訪問(wèn)其 它的存儲(chǔ)功能性。例如,客戶機(jī)可以感知包括分區(qū)的跨接組的邏輯巻。然而,每個(gè)分區(qū)實(shí)際上是存儲(chǔ)設(shè)備中的RAID-5條帶組。存儲(chǔ)設(shè)備使用RAID-5命令處理器以與本地分區(qū)交互,而客戶機(jī)使用跨接命令處理器以 與存儲(chǔ)設(shè)備上的分區(qū)交互?;旧?,跨接級(jí)命令被發(fā)送給把它們當(dāng)作高 級(jí)命令并且通過(guò)RAID-5命令處理器進(jìn)一步處理它們的存儲(chǔ)設(shè)備。由于分區(qū)的LBA范圍與存儲(chǔ)組的范圍無(wú)關(guān),每個(gè)存儲(chǔ)設(shè)備可以把每 個(gè)分區(qū)當(dāng)作具有LBA范圍從Q到存儲(chǔ)區(qū)的最大LBA的存儲(chǔ)區(qū)。這提供了 存儲(chǔ)設(shè)備上的快速處理,而不需要存儲(chǔ)設(shè)備執(zhí)行額外的計(jì)算。另外,這 意味著存儲(chǔ)設(shè)備不需要理解如何根據(jù)存儲(chǔ)組組織的規(guī)則來(lái)操作的能力。 當(dāng)分區(qū)被實(shí)例化時(shí),更新它們的名稱或?qū)傩砸詳y帶客戶機(jī)所使用的規(guī)則 信息,以便構(gòu)造邏輯巻圖。分區(qū)只是以LBA的線性范圍存儲(chǔ)數(shù)據(jù)。優(yōu)點(diǎn)通過(guò)根據(jù)包括命令處理器的邏輯巻圖生成存儲(chǔ)命令的使用,實(shí)現(xiàn)了 很多優(yōu)點(diǎn)。在每個(gè)客戶機(jī)相互無(wú)關(guān)地運(yùn)行的系統(tǒng)中,由于全部客戶機(jī)采 用相同的用于構(gòu)造邏輯巻的通用規(guī)則,每個(gè)客戶機(jī)具有基本相同的圖, 盡管如此,每個(gè)客戶機(jī)建立其自身的邏輯巻視圖。當(dāng)一客戶機(jī)看不到邏 輯巻的一部分而引起更新其圖時(shí),不影響其它客戶機(jī)。另外,在邏輯巻 包括具有兩個(gè)或兩個(gè)以上成員的鏡像組的情況下,即使當(dāng)鏡像成員的一 部分不再可訪問(wèn)時(shí),客戶機(jī)也可以保持邏輯巻上數(shù)據(jù)的連貫視圖。只要 完整的數(shù)據(jù)組或LBA的巻級(jí)范圍是可用的,即使通過(guò)是不同的鏡像組成 員可用,客戶機(jī)保持訪問(wèn)數(shù)據(jù)的能力。通過(guò)解除不再可訪問(wèn)的組或分區(qū) 與邏輯巻的鏈接,只從圖移除不再可訪問(wèn)的組或分區(qū),而不需要卸載邏 輯巻。使用本公開(kāi)技術(shù)的存儲(chǔ)系統(tǒng)可擴(kuò)展為具有很多存儲(chǔ)設(shè)備或很多客 戶機(jī)的更大的配置。如上所述,每個(gè)客戶機(jī)獨(dú)立地運(yùn)行,并且能夠共享 存儲(chǔ)設(shè)備而不加重其負(fù)擔(dān)。系統(tǒng)可擴(kuò)展到客戶機(jī)和存儲(chǔ)設(shè)備之間的通信 鏈接帶寬的極限。另外,可將邏輯巻命令堆棧從單個(gè)主機(jī)擴(kuò)展到其它設(shè) 備。例如,客戶機(jī)可具有命令堆棧的一部分,該部分隨后調(diào)用設(shè)置在繼 續(xù)生成存儲(chǔ)命令的代理設(shè)備上的命令堆棧,有可能利用網(wǎng)絡(luò)服務(wù)來(lái)執(zhí)行 遠(yuǎn)程功能。所公開(kāi)的方法與用于傳輸存儲(chǔ)命令的協(xié)議無(wú)關(guān),這支持被專 用的存儲(chǔ)工具以及基于標(biāo)準(zhǔn)的包括iSCSI的工具所采用。與存儲(chǔ)組類型相關(guān)的命令處理器的使用支持存儲(chǔ)組類型的同構(gòu)混 合。如上所述,鏡像、條帶、跨接或分區(qū)可以以不同的方式組合以建立單個(gè)邏輯巻。將存儲(chǔ)組的同構(gòu)混合與命令處理器的能力結(jié)合以有差別地 處理多種請(qǐng)求,這支持建立具有特定特征的邏輯巻。例如,包括條帶組 和跨接組的邏輯巻可優(yōu)先地從條帶組讀取,而同時(shí)向兩個(gè)組寫(xiě)入,其中 跨接組可被用于歸檔。有可能支持傳輸協(xié):^同構(gòu)混合,其;每個(gè)協(xié)議以不同類型的存儲(chǔ)設(shè)備 為目標(biāo)。在一個(gè)實(shí)施例中,例如,單個(gè)邏輯巻可包括設(shè)置在通過(guò)內(nèi)部控 制器訪問(wèn)的直接鏈接的設(shè)備上的分區(qū),或者設(shè)置在通過(guò)網(wǎng)絡(luò)存儲(chǔ)協(xié)議訪 問(wèn)的遠(yuǎn)程設(shè)備上的分區(qū)。分區(qū)命令處理器可適用于處理每種類型的協(xié)議 的特定細(xì)節(jié)。特定的示例性實(shí)施例可包括一種邏輯巻,該邏輯巻包括直接鏈接的SATA磁盤(pán)驅(qū)動(dòng)器上的分區(qū)、通過(guò)iSCSI訪問(wèn)的分區(qū),以及通 過(guò)Zetra的Z-SAN協(xié)議訪問(wèn)的分區(qū)。由于根據(jù)與存儲(chǔ)組類型的紐織相關(guān)的規(guī)則來(lái)構(gòu)造邏輯巻圖,客戶機(jī)可快速地生成存儲(chǔ)命令。在優(yōu)選實(shí)施例中,在最多四個(gè)級(jí)別的命令處理 器中,高級(jí)巻命令在不使用遞歸的情況下被轉(zhuǎn)換為 一個(gè)或多個(gè)分區(qū)級(jí)命 令。這支持存儲(chǔ)命令的快速處理。 硬件其它方面涉及與本發(fā)明主題相關(guān)的硬件。認(rèn)為可以開(kāi)發(fā)硬件用于存 儲(chǔ)、樣機(jī)研究、制造、操縱、管理、封裝、測(cè)試、物理控制或支持,或 用于與本發(fā)明主題的物理方面相關(guān)的其它行為。因此,本發(fā)明主題包括 用于開(kāi)發(fā)、生產(chǎn)、制造或運(yùn)行硬件的系統(tǒng)、方法或設(shè)備。從這個(gè)意義上 來(lái)說(shuō),硬件屬于本發(fā)明主題范圍。軟件在另一方面,認(rèn)為可以編寫(xiě)這樣的軟件配置、仿真或管理本發(fā)明 主題的不同方面以及它們的相關(guān)基礎(chǔ)構(gòu)架。從這個(gè)角度來(lái)說(shuō),本發(fā)明主 題包括以下方法編寫(xiě)該軟件,以機(jī)器可讀的形式記錄軟件,授權(quán)、銷 售、分配、安裝或在適當(dāng)?shù)挠布喜僮髟撥浖?。另外,該軟件本質(zhì)上被 認(rèn)為屬于本發(fā)明主題的范圍。因此,已公開(kāi)了生成存儲(chǔ)命令的特定構(gòu)成和方法。然而,對(duì)于本領(lǐng) 域的技術(shù)人員來(lái)說(shuō)很明顯的是,在不背離文中的本發(fā)明的概念的前提 下,可能有除已描述的修改之外的很多其它修改。因此,除了將本發(fā)明 主題限制于本公開(kāi)的精神以外,不作其它的限制。另外,在理解本公開(kāi)時(shí),應(yīng)當(dāng)以與上下文一致的最大可能方式來(lái)理解所有術(shù)語(yǔ)。尤其是術(shù)語(yǔ) "包括"和"包含",它們應(yīng)當(dāng)被理解為以非排除的方式涉及要素、組 件或步驟,指示所引用的要素、組件或步驟可存在,或者被使用,或者 與沒(méi)有被明確引用的其它要素、組件或步驟組合。
權(quán)利要求
1. 一種生成用于存儲(chǔ)系統(tǒng)的存儲(chǔ)命令的方法,所述存儲(chǔ)系統(tǒng)具有包括位于第一存儲(chǔ)設(shè)備上的第一分區(qū)和位于第二存儲(chǔ)設(shè)備上的第二分區(qū)的邏輯卷,所述方法包括(a)提供所述邏輯卷的圖,其中所述圖構(gòu)造為(i)與第一存儲(chǔ)組相關(guān)聯(lián)的第一存儲(chǔ)組類型,所述第一分區(qū)是所述第一存儲(chǔ)組的成員;以及(ii)與第二存儲(chǔ)組相關(guān)聯(lián)的第二存儲(chǔ)組類型,所述第二分區(qū)是所述第二存儲(chǔ)組的成員;的函數(shù),以及(b)將分別用于所述第一和第二存儲(chǔ)組類型的第一和第二命令處理器結(jié)合到所述圖中;并且其中所述第一命令處理器將與所述第一存儲(chǔ)組相關(guān)聯(lián)的第一存儲(chǔ)命令轉(zhuǎn)換為與所述第二組相關(guān)聯(lián)的第二存儲(chǔ)命令。
2. 如權(quán)利要求l所述的方法,進(jìn)一步包括當(dāng)檢測(cè)到所述邏輯巻結(jié) 構(gòu)中的改變時(shí)更新所述圖的至少 一 部分。
3. 如權(quán)利要求2所述的方法,進(jìn)一步包括在保持所述邏輯巻掛載 的同時(shí)執(zhí)行所述邏輯圖的所述更新。
4. 如權(quán)利要求l所述的方法,進(jìn)一步包括發(fā)現(xiàn)所述第一存儲(chǔ)組類型。
5. 如權(quán)利要求4所述的方法,其中所述第一存儲(chǔ)組類型被包括在 第 一存儲(chǔ)設(shè)備所生成的發(fā)現(xiàn)響應(yīng)中。
6. 如權(quán)利要求l所述的方法,進(jìn)一步包括通過(guò)利用第一命令處 理器,將與所述第 一存儲(chǔ)命令相關(guān)聯(lián)的巻級(jí)數(shù)據(jù)地址轉(zhuǎn)換為與所述第一 分區(qū)相關(guān)聯(lián)的分區(qū)數(shù)據(jù)地址。
7. 如權(quán)利要求7所述的方法,其中所述分區(qū)地址包括LBA。
8. 如權(quán)利要求l所述的方法,其中所述第二存儲(chǔ)命令包括分區(qū)標(biāo) 識(shí)符。
9. 如權(quán)利要求9所述的方法,其中所述分區(qū)標(biāo)識(shí)符包括IP地址 和LUN中的至少一個(gè)。
10. 如權(quán)利要求l所述的方法,其中所述巻級(jí)命令源于文件系統(tǒng)。
11. 如權(quán)利要求11所述的方法,進(jìn)一步包括利用存儲(chǔ)協(xié)議將所述
12. 如權(quán)利要求11所述的方法,進(jìn)一步包括利用存儲(chǔ)協(xié)議將所述第二存儲(chǔ)命令發(fā)送給所述第二存儲(chǔ)設(shè)備。
13. 如權(quán)利要求12所述的方法,其中所述存儲(chǔ)協(xié)議使用以下協(xié)議至少之一ATA、 SATA、 SAS、 SCSI、 USB、火線接口、光纖通道、iSCSI、 FCIP、 iFCP、 NFS以及CIFS。
14. 如權(quán)利要求l所述的方法,其中所述圖包括存儲(chǔ)在存儲(chǔ)器中的 數(shù)據(jù)結(jié)構(gòu),并且其中所述第一命令處理器或所述第二命令處理器是所述 數(shù)據(jù)結(jié)構(gòu)的成員。
15. 如權(quán)利要求14所述的方法,其中所述第一命令處理器和所述 的第二命令處理器在所述數(shù)據(jù)結(jié)構(gòu)中形成命令堆棧。
16. 如權(quán)利要求14所述的方法,其中分級(jí)地組織所述數(shù)據(jù)結(jié)構(gòu), 其中所述第 一存儲(chǔ)組類型在邏輯上級(jí)別高于所述第二存儲(chǔ)組類型。
17. 如權(quán)利要求16所述的方法,其中與所述邏輯巻相關(guān)聯(lián)的所述 命令堆棧不同于與第二邏輯巻相關(guān)聯(lián)的第二命令堆棧,所述第二邏輯巻 與所述邏輯巻共享所述第一存儲(chǔ)設(shè)備。
18. 如權(quán)利要求l所述的方法,其中所述第一存儲(chǔ)組類型是非RAID 組類型。
19. 如權(quán)利要求18所述的方法,其中所述非RAID組類型是以下存 儲(chǔ)組類型中的至少一個(gè)跨接組、條帶組和分區(qū)組。
20. 如權(quán)利要求l所述的方法,其中所述第一存儲(chǔ)組類型是RAID組類型。
21. 如權(quán)利要求20所述的方法,其中所述RAID組類型包括以下存 儲(chǔ)組類型中的至少一個(gè)鏡像組、Z-RAID組和奇偶校驗(yàn)組。
22. 如權(quán)利要求l所述的方法,進(jìn)一步包括通過(guò)通信鏈接將所述第 二存儲(chǔ)組命令發(fā)送給所述第二命令處理器。
23.—種存儲(chǔ)系統(tǒng),包括(a) 客戶機(jī),其適用于訪問(wèn)所述存儲(chǔ)系統(tǒng)中的邏輯巻;(b) 存儲(chǔ)設(shè)備,其適用于向所述客戶機(jī)提供對(duì)所述存儲(chǔ)設(shè)備中的 存儲(chǔ)區(qū)的訪問(wèn),其中所述存儲(chǔ)區(qū)代表所述邏輯巻的至少一部分;以及(c) 存儲(chǔ)器,其存儲(chǔ)與命令堆棧相關(guān)聯(lián)的指令,其中所述命令堆所述存儲(chǔ)區(qū)的存儲(chǔ)命令。
24.如權(quán)利要求23所述的系統(tǒng),其中所述客戶機(jī)包括所述存儲(chǔ)器。
25. 如權(quán)利要求23所述的系統(tǒng),進(jìn)一步包括包含所述存儲(chǔ)器的代理。
26. 如權(quán)利要求23所述的系統(tǒng),進(jìn)一步包括將所述客戶機(jī)通信地 連接到所述存儲(chǔ)設(shè)備的通信鏈接。
27. 如權(quán)利要求26所述的系統(tǒng),其中所述通信鏈接在所述客戶機(jī)的內(nèi)部。
28. 如權(quán)利要求26所述的系統(tǒng),其中利用存儲(chǔ)協(xié)議通過(guò)所述通信 鏈接傳輸所述存儲(chǔ)命令。
29. 如權(quán)利要求23所述的系統(tǒng),其中所述存儲(chǔ)區(qū)與一種存儲(chǔ)組類 型相關(guān)聯(lián)。
30. 如權(quán)利要求28所述的系統(tǒng),其中所述存儲(chǔ)組類型是RAID組類型。
全文摘要
提出了用于生成存儲(chǔ)系統(tǒng)命令的系統(tǒng)和方法。邏輯卷包括一個(gè)或多個(gè)存儲(chǔ)區(qū)。該方法包括根據(jù)與組成該卷的存儲(chǔ)區(qū)的類型相關(guān)的信息來(lái)提供邏輯卷的圖。通過(guò)與邏輯卷中的存儲(chǔ)區(qū)的類型相關(guān)聯(lián)的命令處理器,將引用邏輯卷圖的存儲(chǔ)命令轉(zhuǎn)換為存儲(chǔ)區(qū)命令。存儲(chǔ)系統(tǒng)包括通過(guò)利用與邏輯卷相關(guān)聯(lián)的命令堆棧來(lái)訪問(wèn)存儲(chǔ)區(qū)的客戶機(jī)。
文檔編號(hào)G06F13/00GK101506779SQ200780031115
公開(kāi)日2009年8月12日 申請(qǐng)日期2007年6月20日 優(yōu)先權(quán)日2006年6月20日
發(fā)明者M·亞當(dāng)斯, N·維基, N·薩里, S·K·鮑夫曼, T·E·路德維希 申請(qǐng)人:雷特澤遙距管理有限責(zé)任公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
体育| 扬中市| 伊川县| 汾西县| 台北市| 伊吾县| 湘阴县| 图木舒克市| 东乡| 麟游县| 珠海市| 迭部县| 江都市| 蒙自县| 华蓥市| 洪江市| 奉节县| 调兵山市| 黄骅市| 高阳县| 广汉市| 康保县| 禹城市| 海盐县| 张家口市| 蓝田县| 祁门县| 五原县| 哈尔滨市| 喀喇| 句容市| 额济纳旗| 瓦房店市| 治多县| 岳西县| 天柱县| 新建县| 始兴县| 柘荣县| 益阳市| 兴业县|