亚洲成年人黄色一级片,日本香港三级亚洲三级,黄色成人小视频,国产青草视频,国产一区二区久久精品,91在线免费公开视频,成年轻人网站色直接看

并行讀寫訪問可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)的模擬連續(xù)數(shù)據(jù)的制作方法

文檔序號:6750423閱讀:197來源:國知局
專利名稱:并行讀寫訪問可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)的模擬連續(xù)數(shù)據(jù)的制作方法
技術(shù)領(lǐng)域
本發(fā)明涉及存儲在可移動(dòng)數(shù)據(jù)存儲介質(zhì),例如可移動(dòng)的磁帶,上的數(shù)據(jù)。特別涉及在磁帶或光盤數(shù)據(jù)存儲介質(zhì)環(huán)境中,提供對存儲在可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上的數(shù)據(jù)的訪問。
背景技術(shù)
磁帶數(shù)據(jù)存儲介質(zhì),一般是在一個(gè)盤盒里使用磁帶,眾所周知可以用來有效地存儲大量的數(shù)據(jù)。一般情況下,為了有效利用盒式磁帶大存儲量的優(yōu)點(diǎn),在一個(gè)單獨(dú)的盒式磁帶中,將大量的數(shù)據(jù)存儲在一起,或“堆放”起來。并且一般情況下,還將每個(gè)數(shù)據(jù)集中的數(shù)據(jù),至少在初始時(shí),寫成一個(gè)連續(xù)的數(shù)據(jù)串,并且將數(shù)據(jù)集寫成連續(xù)的數(shù)據(jù)串集合。
數(shù)據(jù)一般以非流式方式寫入,因?yàn)椋?dāng)主機(jī)處理信息并且向緩沖器填入要寫入的數(shù)據(jù)時(shí),磁帶被停止工作然后重新啟動(dòng)。在寫處理之間進(jìn)行另一個(gè)寫處理或讀處理是不可行的,因?yàn)榇艓枰蚯盎蛳蚝缶砝@以訪問另一個(gè)位置,并且在原來寫處理過程中的等待時(shí)間比對另一個(gè)位置的訪問時(shí)間要短許多。
光盤數(shù)據(jù)存儲介質(zhì),一般是在一個(gè)盤盒里使用一張光盤,也可以有效地存儲大量的數(shù)據(jù)。當(dāng)光盤在驅(qū)動(dòng)器中工作時(shí),光盤連續(xù)地旋轉(zhuǎn),但是磁道到磁道的訪問相對比較費(fèi)時(shí),所以數(shù)據(jù)以非流式的方式寫入相同或者相鄰的磁道中的不連續(xù)的扇區(qū)中,如上面所討論的,直到磁道被寫滿為止。因此,在兩次寫處理之間進(jìn)行另一個(gè)寫或讀處理也是不實(shí)際的,因?yàn)楣鈱W(xué)頭需要訪問其他的磁道,并且在原來寫處理過程中的等待時(shí)間比對其他磁道的訪問時(shí)間要短許多。
在一種方案中,每一個(gè)數(shù)據(jù)集可以被分配給一個(gè)特定的連續(xù)數(shù)量的磁帶或光盤的存儲容量。因此,當(dāng)數(shù)據(jù)被加入數(shù)據(jù)集時(shí),它被寫在先前被寫入的數(shù)據(jù)集的尾部的“附加點(diǎn)”上。如果所添加的數(shù)據(jù)連續(xù)超出被分配的存儲容量,并且隨后是另一個(gè)被入棧的數(shù)據(jù)集,則將數(shù)據(jù)寫入磁帶或光盤上的下一個(gè)可用的位置。在另一種方案中,分配給每一個(gè)數(shù)據(jù)集的磁帶或光盤的存儲容量是變化的,從而可以更加有效地存儲數(shù)據(jù)。在這種情況下,由于數(shù)據(jù)被添加到一個(gè)數(shù)據(jù)集上,該數(shù)據(jù)集后面跟著另一個(gè)入棧的數(shù)據(jù)集,附加點(diǎn)實(shí)際上變成了磁帶或光盤上的下一個(gè)可用位置。
更進(jìn)一步,當(dāng)數(shù)據(jù)集被讀取、修改或重寫時(shí),人們希望在磁帶或光盤上原來數(shù)據(jù)集所在的地方重寫數(shù)據(jù)。但是,如上所述,要重寫的數(shù)據(jù)也許會(huì)超出所分配的存儲容量,數(shù)據(jù)集將被拆分,附加的數(shù)據(jù)存儲在磁帶或光盤的下一個(gè)可用位置上。
一般情況下,對盒式磁帶或光盤的訪問是費(fèi)時(shí)的。例如,一個(gè)單獨(dú)的磁帶或光盤驅(qū)動(dòng)器也許需要從存儲器手工檢索盒式磁帶或光盤。自動(dòng)數(shù)據(jù)存儲庫可以在存儲格上存儲大量的盒式磁帶,由自動(dòng)機(jī)在存儲格上檢索的盒帶并將盒帶加載到數(shù)據(jù)存儲驅(qū)動(dòng)器中,從而加快盒帶的檢索過程。
一旦盒帶被檢索到并且加載到數(shù)據(jù)存儲驅(qū)動(dòng)器中,對特定數(shù)據(jù)集的讀取和寫入訪問是順序進(jìn)行的并且相對比較費(fèi)時(shí)。磁帶總是被回卷到它被存儲時(shí)預(yù)先確定的一個(gè)點(diǎn),稱為“磁帶起始”,或“BOT”。為了訪問一個(gè)所需的數(shù)據(jù)集,磁帶需要被卷繞到所需數(shù)據(jù)集的位置上,讀取數(shù)據(jù),直到遇到下一個(gè)數(shù)據(jù)集,然后磁帶被卷繞到數(shù)據(jù)集的附加點(diǎn)位置。當(dāng)磁帶正在被卷繞時(shí),數(shù)據(jù)傳輸將被中斷,因?yàn)楫?dāng)磁帶被卷繞到附加點(diǎn)的過程中沒有數(shù)據(jù)能從所需的數(shù)據(jù)集中讀出。同樣,光盤系統(tǒng)在進(jìn)行任何訪問之前,需要將激光束初始化到介質(zhì)上的一個(gè)特定的扇區(qū)。此外,磁道-磁道的隨機(jī)訪問相對比較費(fèi)時(shí),因此,在對一個(gè)附加點(diǎn)進(jìn)行磁道-磁道訪問時(shí)數(shù)據(jù)傳輸將被中斷。因此,許多磁帶和光盤系統(tǒng)提供大量的數(shù)據(jù)緩沖系統(tǒng)來給出數(shù)據(jù),以便看起來似乎數(shù)據(jù)是在一個(gè)單獨(dú)的連續(xù)的序列中。同樣的問題發(fā)生在寫訪問期間,數(shù)據(jù)一般被緩存,并且隨后寫在先前被讀出的數(shù)據(jù)所在的各個(gè)非連續(xù)的位置上。
在美國專利申請第09/970,881號中,作為一個(gè)加速數(shù)據(jù)訪問的裝置,數(shù)據(jù)通過可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)存儲,例如盤盒中的“硬”磁盤,并且相應(yīng)的能夠?qū)﹄S機(jī)訪問介質(zhì)進(jìn)行讀和寫的數(shù)據(jù)存儲驅(qū)動(dòng)器被提供,例如,在自動(dòng)數(shù)據(jù)存儲庫中,作為可移動(dòng)數(shù)據(jù)存儲介質(zhì)的一部分。正如那里所描述的,一個(gè)“分區(qū)”是一個(gè)相關(guān)聯(lián)的數(shù)據(jù)組,在一個(gè)隨機(jī)訪問介質(zhì)上,它可以是連續(xù)的或者不連續(xù)的,可以是順序的或者非順序的。
隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)總是被用于較小的數(shù)據(jù)長度,例如扇區(qū),并且提供對數(shù)據(jù)的直接訪問,例如,通過快速移動(dòng)讀/寫頭到包含所需數(shù)據(jù)的磁道直接訪問。
但是,磁帶和光盤用于順序地而不是隨機(jī)地進(jìn)行的數(shù)據(jù)讀和寫。
另外,對于一個(gè)給定的磁帶或者光盤,在一個(gè)時(shí)刻只能為一臺主機(jī)提供服務(wù)。在磁帶或光盤的不同的位置間來回移動(dòng),并試圖因此為不止一個(gè)請求服務(wù),這是不可行的。因此,對于同一磁帶或者光盤上數(shù)據(jù)集合的并行的請求被排成隊(duì)列,并依次提供服務(wù)。

發(fā)明內(nèi)容
為訪問一個(gè)可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì),如裝有磁盤的盒式磁盤,上的數(shù)據(jù),根據(jù)本發(fā)明提供了一種方法,一個(gè)數(shù)據(jù)存儲驅(qū)動(dòng)器和一個(gè)自動(dòng)數(shù)據(jù)存儲庫。
存儲在可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上的數(shù)據(jù)由多個(gè)數(shù)據(jù)段組成,至少某些數(shù)據(jù)段包括至少一個(gè)共同的數(shù)據(jù)流,稱為一個(gè)分區(qū),用以模擬磁帶或光盤上的連續(xù)數(shù)據(jù)??梢苿?dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)可以在數(shù)據(jù)存儲器上被訪問或被移走。數(shù)據(jù)存儲驅(qū)動(dòng)器被安排為多個(gè)邏輯存取器,每一個(gè)邏輯存取器被安排與至少一個(gè)對可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)進(jìn)行讀和/或?qū)懺L問的主機(jī)通信。
一個(gè)控制器響應(yīng)其中一個(gè)邏輯存取器對一個(gè)分區(qū)的讀和/或?qū)懺L問。當(dāng)一個(gè)邏輯存取器對一個(gè)分區(qū)進(jìn)行寫訪問時(shí),控制器建立一個(gè)寫訪問上下文(context),該上下文至少包括為寫訪問標(biāo)識的分區(qū)的數(shù)據(jù)段,并且將該寫訪問上下文鎖定到一個(gè)寫訪問邏輯存取器上。隨后,控制器操縱一個(gè)讀/寫訪問單元為被鎖定的寫訪問邏輯存取器訪問寫訪問上下文中的數(shù)據(jù)。
由于寫操作是以一種不連續(xù)的方式進(jìn)行,控制器允許除被鎖定的寫訪問邏輯存取器之外的其它邏輯存取器對可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上的數(shù)據(jù)進(jìn)行并行讀訪問,避免除被鎖定的寫訪問邏輯存取器之外的其他任何邏輯存取器對寫訪問上下文中的數(shù)據(jù)進(jìn)行讀訪問;以及避免除了具有鎖定該分區(qū)寫訪問的邏輯存取器之外的其他任何邏輯存取器對于鎖定分區(qū)中的數(shù)據(jù)進(jìn)行寫訪問;在被鎖定的寫訪問邏輯存取器完成寫操作之后,釋放寫訪問上下文中被鎖定的數(shù)據(jù)到被鎖定的寫訪問邏輯存取器。
按照通常的連續(xù)設(shè)備性能,一旦在一個(gè)數(shù)據(jù)集中的任意點(diǎn)完成了寫操作,寫操作發(fā)生處之后剩余的數(shù)據(jù)不再有效。因此,在本發(fā)明的一個(gè)實(shí)施例中,一個(gè)寫訪問上下文可以包括這樣的數(shù)據(jù)段,即其中包括從當(dāng)前寫入點(diǎn)到數(shù)據(jù)集結(jié)尾的所有數(shù)據(jù)。
本發(fā)明的另一個(gè)特性是讀隨機(jī)訪問的數(shù)據(jù)段將由主機(jī)組織為一個(gè)順序訪問。
因此,本發(fā)明利用非連續(xù)讀寫過程期間的等待時(shí)間,以利用對隨機(jī)訪問介質(zhì)的高速隨機(jī)訪問,提供對不同數(shù)據(jù)集的并行訪問。本發(fā)明還允許以任意的方式,如循環(huán)方式,或性能加權(quán)方式共享訪問時(shí)間。
附圖簡要說明現(xiàn)在將采用只使用例子并參照附圖的方式描述本發(fā)明,其中附圖為

圖1A和1B是現(xiàn)有技術(shù)的磁帶盒和磁帶盒中的磁帶的圖表示;圖2A和2B是現(xiàn)有技術(shù)的盤盒和盤盒中的硬盤的圖表示;圖3是一個(gè)框圖,表示根據(jù)本發(fā)明布置的磁盤驅(qū)動(dòng)器;
圖4是一個(gè)框圖,表示根據(jù)本發(fā)明布置的自動(dòng)數(shù)據(jù)存儲庫;圖5是一個(gè)格式結(jié)構(gòu)的圖表示,該結(jié)構(gòu)標(biāo)識例如2A和2B所示的隨機(jī)數(shù)據(jù)訪問存儲介質(zhì)上的分區(qū)和數(shù)據(jù)段,在該結(jié)構(gòu)中應(yīng)用了本發(fā)明;圖6是一個(gè)索引的圖示,可以根據(jù)本發(fā)明選擇性地加以使用;圖7,8和9是流程圖,描述本發(fā)明的方法的實(shí)施例。
具體實(shí)施例方式
參見圖1A和1B,磁帶數(shù)據(jù)存儲介質(zhì),一般是在磁帶盒21中使用磁帶20,被公認(rèn)為可以有效地存儲大量的數(shù)據(jù)。如上所述,光盤數(shù)據(jù)存儲器同樣可以存儲大量的數(shù)據(jù)。通常多個(gè)數(shù)據(jù)集存儲在一起,或“堆積”在一個(gè)單獨(dú)的盒式磁帶中,以利用盒式磁帶數(shù)據(jù)存儲容量高的優(yōu)點(diǎn)。如上所述,對于磁帶或光盤的訪問是費(fèi)時(shí)的,并且,一旦磁帶盒21被檢索并加載到一個(gè)數(shù)據(jù)存儲驅(qū)動(dòng)器中,對于磁帶20中的特定數(shù)據(jù)集的讀或?qū)懺L問是順序進(jìn)行的,且相對較慢。一個(gè)磁帶20包括縱向的線性磁道22,通常被回卷至其存儲時(shí)預(yù)先確定的一個(gè)點(diǎn),稱為“磁帶起始”,或“BOT”。為了訪問一個(gè)所需的數(shù)據(jù)集,磁帶隨后被卷繞至所需的數(shù)據(jù)集的位置,數(shù)據(jù)被讀出直到遇到下一個(gè)數(shù)據(jù)集,然后磁帶卷繞至數(shù)據(jù)集的附加點(diǎn)。當(dāng)磁帶20被卷繞時(shí)數(shù)據(jù)傳輸將被中斷,因?yàn)楫?dāng)磁帶卷繞時(shí)將無法從所需的數(shù)據(jù)集中讀取數(shù)據(jù)。光盤系統(tǒng)在磁道間進(jìn)行隨機(jī)訪問時(shí)也比較費(fèi)時(shí)。因此,許多磁帶系統(tǒng)和光盤系統(tǒng)都配備了大量的數(shù)據(jù)緩存系統(tǒng)來提供數(shù)據(jù),數(shù)據(jù)看起來像是存儲在一個(gè)單獨(dú)的、連續(xù)的序列中。在寫訪問期間也會(huì)出現(xiàn)同樣的問題,此時(shí)數(shù)據(jù)一般被緩存并被作為一個(gè)新的序列寫入,或者在先前讀出的數(shù)據(jù)上被重寫。但是,數(shù)據(jù)集很少與它所替換的數(shù)據(jù)長度相同或者更短一些。因此,當(dāng)遇到了另一個(gè)先前記錄的數(shù)據(jù)集時(shí)寫操作將被停止,要確定一個(gè)添加新記錄的位置,這個(gè)位置就成為附加點(diǎn),磁帶隨后被卷繞至數(shù)據(jù)集的附加點(diǎn)的位置,然后繼續(xù)寫操作。另外,寫操作是以不連續(xù)的方式進(jìn)行的,在寫操作之間磁帶必須被停止,而光盤在寫操作之間則連續(xù)旋轉(zhuǎn)。
參見圖2A和2B,給出了一個(gè)加快訪問存儲在可移動(dòng)數(shù)據(jù)存儲介質(zhì)和隨機(jī)存儲介質(zhì),如盤盒26中的“硬”磁盤25上的數(shù)據(jù)的裝置,正如美國專利申請第09/970,881號中所論述的那樣,例如,在自動(dòng)數(shù)據(jù)存儲庫中,該裝置作為可移動(dòng)數(shù)據(jù)存儲介質(zhì)的一部分。隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)更常見的是用于長度較小的數(shù)據(jù),如在被分成扇區(qū)27的同心圓磁道中,并提供對數(shù)據(jù)的直接訪問,例如,通過快速移動(dòng)讀/寫頭到保存所需數(shù)據(jù)的磁道或扇區(qū)。
如上所述,許多磁帶和光盤系統(tǒng)被設(shè)計(jì)成順序讀取和寫入數(shù)據(jù),而不是隨機(jī)讀寫。因此,即便使用了隨機(jī)訪問介質(zhì)來保存磁帶或光盤數(shù)據(jù),比較可能的情況是數(shù)據(jù)將仍然以與磁帶或光盤同樣的方式被訪問,使得磁帶或光盤與隨機(jī)訪問存儲器數(shù)據(jù)的讀寫訪問看起來是一樣的。
另外,利用給定的磁帶或光盤,每次只能為一個(gè)主機(jī)提供服務(wù)。這樣是不現(xiàn)實(shí)的,即來回在磁帶或光盤的不同位置工作,并試圖為多于一個(gè)的請求服務(wù)。因此,對于同一個(gè)磁帶或光盤上的數(shù)據(jù)集的并行請求被排成隊(duì)列,并依次提供服務(wù)。
圖3說明數(shù)據(jù)存儲驅(qū)動(dòng)器30,它可以在如圖2A所示的隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)25上讀取和寫入數(shù)據(jù)。在美國專利申請第09/970,881號中,一個(gè)數(shù)據(jù)存儲驅(qū)動(dòng)器也被稱為一個(gè)“傳輸站”,因?yàn)檎麄€(gè)驅(qū)動(dòng)器被包含在一個(gè)盒子中,傳輸站只用裝有驅(qū)動(dòng)器的盒子提供一個(gè)數(shù)據(jù)傳輸接口。因此,此處這些術(shù)語“數(shù)據(jù)存儲驅(qū)動(dòng)器”,“驅(qū)動(dòng)器”,“隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)”,“便攜式盒子”,“可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)”,“隨機(jī)訪問介質(zhì)”等等,都是指帶有隨機(jī)訪問數(shù)據(jù)存儲介質(zhì),連同對該隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)進(jìn)行讀和/或?qū)憯?shù)據(jù)的數(shù)據(jù)存儲驅(qū)動(dòng)器的結(jié)構(gòu)。在圖3中,驅(qū)動(dòng)器30包括一個(gè)加載/卸載裝置31,用來加載如圖2A所示的隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)盤盒26,并由一個(gè)讀/寫訪問單元32打開盤盒進(jìn)行訪問。例如,盤盒可以是手工提供的,或者又如,盤盒可以是由一個(gè)自動(dòng)數(shù)據(jù)存儲庫提供的。讀/寫訪問單元32可以包括一個(gè)常規(guī)的伺服系統(tǒng),用以快速移動(dòng)讀/寫頭到所需的磁道,還包括一個(gè)電路,用于在讀/寫控制器35的控制下讀/寫數(shù)據(jù)。一個(gè)輸入/輸出單元37,如SCSI接口,被連接在讀寫控制器35上,用來接收命令并且為讀/寫控制器提供命令,并且用來,例如關(guān)于一個(gè)或多個(gè)主機(jī)310,312接收并傳輸數(shù)據(jù)。
讀/寫控制器35包括邏輯電路40和存儲器41,用來接收命令和操縱讀/寫訪問單元32,并從如圖2A和2B所示的用于讀和/或?qū)懖僮鞯碾S機(jī)訪問數(shù)據(jù)存儲介質(zhì)25上訪問特定的數(shù)據(jù)段。根據(jù)本發(fā)明,讀/寫控制器35由內(nèi)部的設(shè)備或由外部或內(nèi)部的命令組織成為多個(gè)獨(dú)立的邏輯單元45-47,或用SCSI中的術(shù)語來說,組織成為“LUN”,每一個(gè)單元都可以由主機(jī)獨(dú)立地尋址。正如本領(lǐng)域?qū)I(yè)人員所知道的那樣,虛擬地址可以相對于每個(gè)主機(jī)為每個(gè)邏輯單元提供。每個(gè)主機(jī)以及它的每個(gè)被尋址的邏輯單元,包括虛擬地址路徑,或者用SCSI術(shù)語來說是一個(gè)“節(jié)點(diǎn)”。此處,每臺主機(jī)的節(jié)點(diǎn)或者虛擬地址路徑以及每個(gè)連接到主機(jī)的邏輯單元,被定義為“存取器”60-65,或者說是“邏輯存取器”。如果沒有使用虛擬地址路徑,一個(gè)邏輯單元,例如一個(gè)LUN或者類似的邏輯結(jié)構(gòu),此處也被定義為一個(gè)“存取器”或者“邏輯存取器”。因此,在當(dāng)前的例子中,主機(jī)H1 310的虛擬地址路徑,以及邏輯單元0 45包括存取器60,主機(jī)H2 312的虛擬地址路徑以及邏輯單元0 45包括存取器61,等等。從數(shù)據(jù)存儲介質(zhì)中通過讀/寫訪問單元32讀出的數(shù)據(jù),或者將被寫入數(shù)據(jù)存儲介質(zhì)的數(shù)據(jù),可以被臨時(shí)存儲并組織在一個(gè)緩沖器50中。緩沖器50可以包括,例如,分離的固定長度的緩沖器,或者可以被安排成分離的可訪問的變長的緩沖器。
根據(jù)本發(fā)明的一個(gè)實(shí)施例,每個(gè)存取器60-65都與緩沖器50的緩沖器70-75相關(guān)聯(lián),并且任何一個(gè)存取器都可以被分配為對于可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)進(jìn)行讀和/或?qū)懺L問,下文將對此進(jìn)行論述。
數(shù)據(jù)存儲驅(qū)動(dòng)器30包括磁帶庫系統(tǒng)中的驅(qū)動(dòng)器,如圖4所示為多主機(jī)庫系統(tǒng)300。一個(gè)磁帶庫系統(tǒng)的實(shí)例是IBM 3494數(shù)據(jù)存儲庫。磁帶庫系統(tǒng)包括一個(gè)庫控制器302,它連接了至少兩個(gè)主機(jī)310和312以及多個(gè)存儲驅(qū)動(dòng)器,包括磁帶驅(qū)動(dòng)器(圖中沒有顯示),以及根據(jù)本發(fā)明的實(shí)施例的可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲器30,它可以代表多個(gè)安裝在便攜式盤盒中驅(qū)動(dòng)器中的一個(gè),用于在庫內(nèi)存儲和傳輸數(shù)據(jù),它也被安裝在磁帶庫系統(tǒng)300中并且與庫控制器302相連。
主機(jī)與庫控制器的連接330和332可以是,例如,光纖通道,SCSI或者串行存儲結(jié)構(gòu)(SSA),設(shè)備的連接也可以是這樣。數(shù)據(jù)存儲介質(zhì),不論是磁帶還是如圖1A和2A所示的隨機(jī)訪問數(shù)據(jù)存儲介質(zhì),都被保存在位于庫機(jī)架350中的存儲格342中。自動(dòng)機(jī)354和356可以存取某些或所有的存儲格342,也可以存取某些或者全部磁帶驅(qū)動(dòng)器和驅(qū)動(dòng)器30。庫控制器302在主機(jī)310,312以及磁帶驅(qū)動(dòng)器和驅(qū)動(dòng)器30間的總線360,362之間進(jìn)行切換。自動(dòng)機(jī)354和356保存并檢索磁帶介質(zhì)21,保存并檢索在存儲格342上的可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)盤盒26,在數(shù)據(jù)存儲驅(qū)動(dòng)器30上加載以及從所述數(shù)據(jù)存儲驅(qū)動(dòng)器30移去可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)盤盒,在磁帶驅(qū)動(dòng)器上加載以及從磁帶驅(qū)動(dòng)器移去磁帶介質(zhì)。自動(dòng)機(jī)可以用于傳輸磁帶介質(zhì)和隨機(jī)訪問數(shù)據(jù)存儲介質(zhì),或者可以專門用于僅處理一種類型的介質(zhì)。
在讀和/或?qū)懖僮髌陂g,主機(jī)310,312被連接在磁帶驅(qū)動(dòng)器及驅(qū)動(dòng)器30上,庫控制器302將執(zhí)行從多個(gè)主機(jī)傳來的移動(dòng)指令。根據(jù)本發(fā)明,正如上文所述,為驅(qū)動(dòng)器30提供了幾個(gè)虛擬地址,至少為圖3中的每個(gè)存取器60-65提供一個(gè)虛擬地址。庫控制器302使用直接信號線328可以改變存取器60-65或驅(qū)動(dòng)器的虛擬地址。正如本領(lǐng)域所知,每一個(gè)物理數(shù)據(jù)存取介質(zhì)卷,或圖1A和2A中的盤盒26,21可以包含多個(gè)數(shù)據(jù)的邏輯卷,邏輯卷的庫存表或映射可以存放在介質(zhì)上,在庫控制器302中,和/或放在相關(guān)的主機(jī)310,312中。這些目錄映射與物理數(shù)據(jù)存儲介質(zhì)卷26,21的物理存儲映射表不同,它可以在庫控制器中動(dòng)態(tài)更新,以包括加載到數(shù)據(jù)存儲驅(qū)動(dòng)器上的介質(zhì)。
主機(jī)連接器330,332通過主機(jī)協(xié)議電路370,372與庫控制器302的內(nèi)部總線380相連。這個(gè)內(nèi)部總線提供與存儲器382,處理器386,邏輯電路388和自動(dòng)機(jī)總線390的連接。內(nèi)部邏輯電路388控制轉(zhuǎn)換器392,動(dòng)態(tài)地通過多個(gè)總線360,362將多個(gè)主機(jī)310,312與特定的磁帶驅(qū)動(dòng)器和驅(qū)動(dòng)器30相連。
根據(jù)本發(fā)明的一個(gè)方面,控制器至少標(biāo)識這樣的數(shù)據(jù)段,這些數(shù)據(jù)段是組成一個(gè)分區(qū)的共同的數(shù)據(jù)流。當(dāng)一個(gè)寫訪問邏輯存取器對一個(gè)被標(biāo)識分區(qū)的至少一個(gè)數(shù)據(jù)段進(jìn)行寫訪問時(shí),控制器為寫訪問邏輯存取器鎖定該分區(qū)的一部分,稱為一個(gè)“上下文”(context)。控制器隨后為寫訪問邏輯存取器訪問這樣的寫訪問上下文,它是可移動(dòng)隨機(jī)訪問數(shù)據(jù)存取介質(zhì)上的被鎖定分區(qū)的寫訪問上下文??刂破鞑⑿械卦试S對該分區(qū)上的非鎖定部分以及其他分區(qū)進(jìn)行讀訪問,這個(gè)讀訪問是通過不同于鎖定該分區(qū)的寫訪問邏輯存取器的其他邏輯存取器進(jìn)行的,當(dāng)寫訪問邏輯存取器完成寫訪問時(shí),將釋放對于該分區(qū)的上下文的鎖定以及寫訪問邏輯存取器。其他的寫訪問邏輯存取器可以同時(shí)鎖定可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上的其它唯一的分區(qū)。
分區(qū)可以根據(jù)介質(zhì)本身管理的格式結(jié)構(gòu)來被標(biāo)識和跟蹤,或者換句話說,可以根據(jù)一個(gè)索引結(jié)構(gòu)來被標(biāo)識和跟蹤。
參照圖5,是一個(gè)在可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上存儲數(shù)據(jù)的格式結(jié)構(gòu)安排,例如,圖2A和2B所示的盤盒26中的硬盤25,在多個(gè)扇區(qū)27中,像在美國專利申請第09/970,881中描述的一樣被圖示出來。
具體而言,數(shù)據(jù)被存儲和映射到三層結(jié)構(gòu)上。第三層包括110,111和112三個(gè)區(qū)域,每個(gè)區(qū)域可以是不同的格式,或者整個(gè)隨機(jī)訪問存儲介質(zhì)可以包括一種格式的一個(gè)單獨(dú)的分區(qū)。對本發(fā)明有意義的一種格式包括磁帶的格式類型,其他的格式可能包括各種類型的光盤或磁盤。盒式磁盤以線性順序方式存儲數(shù)據(jù),訪問數(shù)據(jù)的方式是將磁帶從一個(gè)卷軸上卷繞到另一個(gè)卷軸上。這種線性順序格式可以包括一個(gè)連續(xù)的數(shù)據(jù)流,也可以包括各種長度的數(shù)據(jù)塊,或者其他的格式。每一個(gè)區(qū)域有關(guān)于該區(qū)域的特定數(shù)據(jù)格式的一個(gè)標(biāo)識,在一個(gè)區(qū)域設(shè)備塊映射表“RDBM”115,116中提供,并以涉及圖2B中順序編碼的邏輯扇區(qū)27的方式提供。數(shù)據(jù)以指定的格式被寫入,例如,寫入邏輯塊118中。在線形順序的格式的情形下,例如采用變長的順序設(shè)備塊的磁盤格式,又如IBM 3590,格式的標(biāo)識包括區(qū)域中所有設(shè)備塊的起始點(diǎn),并在區(qū)域設(shè)備塊映射表“RDMB”120中提供。
第二層結(jié)構(gòu)被記錄為包括一個(gè)全局設(shè)備塊映射表,一個(gè)頭區(qū)域“GDBM”128和每個(gè)區(qū)域至少一個(gè)全局設(shè)備塊元素“GDE”130-133。每一個(gè)全局設(shè)備元素標(biāo)識記錄在相應(yīng)的區(qū)域中的數(shù)據(jù)邊界,根據(jù)圖2B中的順序編號的邏輯扇區(qū)27。GDE根據(jù)邏輯扇區(qū)標(biāo)識區(qū)域的的起始點(diǎn)和大小,并可以包括格式特定信息,例如,為了實(shí)現(xiàn)高速定位或?yàn)榱酥亟ㄒ粋€(gè)RDBM。包括GDBM 128的初始頭區(qū)域的格式設(shè)備塊映射表“FDBM”139被提供?!癋DBM”139在通常的使用中保持不變,不被更新,并包括每個(gè)GDE的初始部分,標(biāo)識著每個(gè)區(qū)域的起始點(diǎn)。
第一層結(jié)構(gòu)被記錄為包括至少一種格式標(biāo)志符“FID1”141,最好還包括第二個(gè)冗余的格式標(biāo)志符“FID2”142。每個(gè)格式標(biāo)志符有一個(gè)指針標(biāo)識著第二層結(jié)構(gòu)的位置和大小,全局設(shè)備塊映射表,根據(jù)圖2B的順序編號的邏輯扇區(qū)27。
還是參見圖5,在另一個(gè)實(shí)施例中,直接明確指出數(shù)據(jù)的格式是線性順序的,一個(gè)結(jié)構(gòu),例如第三層結(jié)構(gòu),被記錄為包括至少一個(gè)區(qū)域用于以線性順序的格式讀數(shù)據(jù)和寫數(shù)據(jù),如區(qū)域110-112。線性順序格式的數(shù)據(jù)被組織成為一個(gè)用于寫和讀的變長的順序設(shè)備塊150-151流。每一個(gè)區(qū)域有一個(gè)區(qū)域設(shè)備塊映射表“RDBM”120,它可以標(biāo)識包括設(shè)備塊150-151的格式特定地址方法與根據(jù)圖2B的順序編碼邏輯扇區(qū)27的區(qū)域之間的關(guān)聯(lián)。
盡管被說明為包括一個(gè)真正的線性順序,數(shù)據(jù)和結(jié)構(gòu)是被記錄在隨機(jī)訪問介質(zhì)上的,以任意適當(dāng)?shù)姆绞椒植荚诖诺乐g和如圖2A所示的扇區(qū)27之間。
線性順序格式的數(shù)據(jù)被另外在一個(gè)數(shù)據(jù)段流170-176中組織起來。在美國專利申請第09/970,881中,數(shù)據(jù)段被稱為“設(shè)備包”,叫做“DP”。數(shù)據(jù)段170-176在尺寸上不比設(shè)備塊大,并且沒有一個(gè)數(shù)據(jù)段跨越兩個(gè)設(shè)備塊的邊界。另外對于一個(gè)設(shè)備塊的每一個(gè)設(shè)備包,如設(shè)備塊150-151,在設(shè)備塊頭部“DBH”180-181提供了一個(gè)設(shè)備包頭元素“PHE”。在即時(shí)例子中,數(shù)據(jù)流包括磁帶邏輯塊“TLB”185和磁帶子塊“TSB”186。設(shè)備包被定義為不比磁帶子塊186大,另外不跨越兩個(gè)設(shè)備塊的邊界。因此,設(shè)備包173和174拆分一個(gè)磁帶子塊186和一個(gè)磁帶邏輯塊185,使得它們不跨越設(shè)備塊150和設(shè)備塊151的邊界,這樣設(shè)備包173在設(shè)備塊150中,并且設(shè)備包174在設(shè)備塊151中。因此各個(gè)設(shè)備包頭元素“PHE”也在各個(gè)設(shè)備塊150和151的各自的設(shè)備塊頭“DBH”180和181中提供。每個(gè)設(shè)備包頭元素包括設(shè)備包的一個(gè)線性順序格式數(shù)據(jù)的標(biāo)志,采用線性順序格式。
作為一個(gè)特例,一個(gè)磁帶邏輯塊185有一個(gè)或多個(gè)子塊186,在尺寸上可以從1字節(jié)向上變化,一個(gè)子塊186有一個(gè)或多個(gè)設(shè)備包,可以在尺寸上從磁帶邏輯塊185的尺寸向上變化至一個(gè)最大值,如256kb,無論哪一個(gè)是更小的。設(shè)備包被定義為包括一個(gè)子塊186或作為一個(gè)子塊的一部分,以便不超出一個(gè)設(shè)備塊邊界。
換句話說,當(dāng)前發(fā)明的“數(shù)據(jù)段”可以包括磁帶邏輯塊185,子塊186,或設(shè)備塊150-151每一個(gè)都包括區(qū)域110-112的一部分。
正如在美國專利申請第09/970,881號中也描述的那樣,隨機(jī)訪問介質(zhì)可以被排列成區(qū)域110-112的組。作為一個(gè)例子,一組區(qū)域可以為相關(guān)數(shù)據(jù)被保留。在此,一組區(qū)域被稱為一個(gè)“公共數(shù)據(jù)流”或一個(gè)“分區(qū)”。
在美國專利申請第09/970,881號中,一個(gè)組的區(qū)域,或一個(gè)“分區(qū)”,有一個(gè)分區(qū)標(biāo)識符,每一個(gè)分區(qū)的區(qū)域被給定一個(gè)區(qū)域序列號。對于在GDBM 125中存儲的每個(gè)區(qū)域,分區(qū)標(biāo)識符和區(qū)域序列號在GDE 130-133中被提供。
因此,一個(gè)分區(qū)的分區(qū)標(biāo)識符可以容易地標(biāo)識出來,一個(gè)區(qū)域在分區(qū)中的位置可以通過區(qū)域序列號標(biāo)識出來,這樣分區(qū)就可以被跟蹤和保存。
根據(jù)本發(fā)明,參見圖6,保存分區(qū)和關(guān)聯(lián)控制信息的另外一種形式被闡明。因此,一個(gè)索引410被提供,可以存儲在如圖2A和2B所示的可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)25上,并且為每個(gè)分區(qū)的數(shù)據(jù)段421標(biāo)識出分區(qū)420。
如上所述,一個(gè)數(shù)據(jù)流在它所需的空間中可能不能同時(shí)被寫在一個(gè)連續(xù)的序列中。而是,如在磁帶或光盤中一樣,每一個(gè)數(shù)據(jù)集可以有一個(gè)為它分配的特定的初始連續(xù)數(shù)量的存儲能力。因此,當(dāng)數(shù)據(jù)添加到數(shù)據(jù)集時(shí),它被寫在先前被寫入的數(shù)據(jù)集的末尾的一個(gè)“附加點(diǎn)”上。當(dāng)超出了存儲長度時(shí),添加的數(shù)據(jù)應(yīng)當(dāng)連續(xù),另一個(gè)入棧的數(shù)據(jù)集立即跟在被分配的存儲長度之后,數(shù)據(jù)被寫在下一個(gè)可用的位置。
如上所述,結(jié)構(gòu)沒有必要以線性的方式被記錄,同樣附加點(diǎn)可以在隨機(jī)訪問介質(zhì)的任何合適的隨機(jī)訪問位置上被提供。
另外,當(dāng)數(shù)據(jù)集被讀出,修改和重寫時(shí),期望能夠在與原來數(shù)據(jù)集相同的位置上重寫數(shù)據(jù)。但是,如上所述,被重寫的數(shù)據(jù)可能擴(kuò)大以至超出所分配存儲空間,數(shù)據(jù)集被拆分,額外的數(shù)據(jù)在一個(gè)可用的位置上存儲。
參見圖6,作為一個(gè)例子,一個(gè)分區(qū)可能包括一系列數(shù)據(jù)段,這些數(shù)據(jù)段有一個(gè)序列號422,例如,其中段序列包括在一個(gè)區(qū)域內(nèi)與區(qū)域序列號相結(jié)合的序列,在上面。423的位置地址包括一個(gè)數(shù)據(jù)流的第一段的隨機(jī)訪問映射的地址,并包括在數(shù)據(jù)流的序列422中的每一個(gè)序列段的附加點(diǎn)。在此,一個(gè)分區(qū)還可以包括一個(gè)數(shù)據(jù)流,該數(shù)據(jù)流在一個(gè)單獨(dú)的區(qū)域中被提供。
根據(jù)本發(fā)明,為了主機(jī)的順序訪問,通過對讀訪問的非順序?qū)懭氲臄?shù)據(jù)段進(jìn)行組織,磁帶和光盤對于數(shù)據(jù)流的順序組織被模擬,例如,圖5所示的設(shè)備包170-176。在一個(gè)實(shí)施例中,(A),數(shù)據(jù)以最有效的訪問順序被讀入,例如,在數(shù)據(jù)段的隨機(jī)訪問順序中,當(dāng)被訪問時(shí),數(shù)據(jù)存儲在一個(gè)緩存器中,例如圖3所示的緩存器50,然后在緩存器中依次被調(diào)整例如通過指針的方法。在另一個(gè)實(shí)施例中,在可移動(dòng)數(shù)據(jù)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)25上數(shù)據(jù)段以實(shí)際的線性序列被訪問,并依次在緩存器50中被存儲。
當(dāng)向可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)25寫入數(shù)據(jù)時(shí),該步驟按相反的方向進(jìn)行。
再次參照圖3和4,在本發(fā)明的一個(gè)方面,一個(gè)主機(jī)系統(tǒng)310,312可以為一次特別的訪問選擇一個(gè)LUN,和一個(gè)控制器,例如,控制器35,對LUN 45-47進(jìn)行分配,并因此對存取器60-65進(jìn)行分配。對于每次存取該分配可以被改變,或在對一個(gè)主機(jī)的連接時(shí)期內(nèi)該分配可以被改變,等等??刂破?5響應(yīng)對于一個(gè)分區(qū)的一個(gè)存取器的讀和/或?qū)懺L問,方法是為那個(gè)訪問標(biāo)識該分區(qū)的至少一個(gè)數(shù)據(jù)段。
當(dāng)寫訪問邏輯存取器對一個(gè)分區(qū)的一個(gè)或多個(gè)數(shù)據(jù)段進(jìn)行寫訪問時(shí),例如,如圖3所示的存取器“H1/L0”,控制器35為該寫訪問建立被標(biāo)識的分區(qū)的至少一個(gè)數(shù)據(jù)段,作為一次寫訪問的上下文??刂破鲗⒈粚懺L問的上下文鎖定給該寫訪問邏輯存取器。
術(shù)語“上下文”此處可以包含一個(gè)單個(gè)的數(shù)據(jù)段,或可以包含一組數(shù)據(jù)段。具體地說,如上所述,一旦在被重寫的數(shù)據(jù)集的任何地方進(jìn)行了寫操作,數(shù)據(jù)序列的剩余部分到發(fā)生寫訪問的地方很有可能被改變并且缺乏當(dāng)前的完整性。因此,在本發(fā)明的一個(gè)實(shí)施例中,一次寫訪問的上下文可以包含這樣的一些數(shù)據(jù)段,它們包含從當(dāng)前寫的地方到數(shù)據(jù)集的末尾的全部數(shù)據(jù)。
如上所述,關(guān)于圖5,本發(fā)明的“數(shù)據(jù)段”可以包含設(shè)備包170-176,磁帶邏輯塊185,子塊186,或設(shè)備塊150-151,其中的每一個(gè)都包含一個(gè)區(qū)域110-112的一部分。
控制器隨后操縱讀/寫訪問單元30來訪問寫訪問上下文,以便在可用的空間中寫數(shù)據(jù),例如,作為數(shù)據(jù)段170-176。
按照本發(fā)明,當(dāng)以一種不連續(xù)的方式進(jìn)行寫訪問,控制器提供并行的訪問,方法是并行地允許邏輯存取器對可移動(dòng)隨機(jī)存取數(shù)據(jù)存儲介質(zhì)上的數(shù)據(jù)進(jìn)行讀訪問,例如,圖3中的邏輯存取器“H2/L0”61和“HI/L2”64單元,“LUN 1”46和“LUN 2”47單元,除了圖3中的被鎖定的寫訪問邏輯存取器“H1/L0”60之外。
作為典型的隨機(jī)訪問介質(zhì),例如磁盤驅(qū)動(dòng)器,僅有一個(gè)磁頭,并行的存取是不能同時(shí)發(fā)生的。而是,在寫操作之間的等待期間,磁頭被放到讀訪問數(shù)據(jù)段,然后被放到非連續(xù)的寫過程的下一個(gè)位置。
因此,此處,術(shù)語“并行”和“并行地”被定義為包含一次存取操作的同時(shí)包含另一個(gè)存取操作,然而并非同時(shí)地發(fā)生。
控制器35另外阻止了任何邏輯存取器對寫訪問上下文進(jìn)行讀訪問,例如,圖3的存取器61-65,除了被鎖定的寫訪問邏輯存取器之外,例如“H1/L0”60;阻止除了被鎖定的寫訪問邏輯器“H1/L0”60之外的其他邏輯存取器對可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)的分區(qū)的任何數(shù)據(jù)進(jìn)行寫訪問。
如果在一個(gè)序列中存取從當(dāng)前的上下文繼續(xù)到另一個(gè)上下文,上下文被推進(jìn)(advanced),例如,到下一個(gè)數(shù)據(jù)段,并且被鎖定的部分也變成新的上下文。在本發(fā)明的一個(gè)實(shí)施例中,其中寫訪問上下文包含這樣的數(shù)據(jù)段,該數(shù)據(jù)段包含從當(dāng)前寫位置到數(shù)據(jù)集末尾的全部數(shù)據(jù),下一上下文可以包含一個(gè)分區(qū)中的下一個(gè)數(shù)據(jù)集。
當(dāng)寫訪問邏輯存取器完成了寫訪問時(shí),控制器將鎖定的上下文釋放給被分配的圖3中的寫訪問邏輯存取器“H1/L0”。
根據(jù)本發(fā)明的方法的實(shí)施例在圖7-9中被闡明。
參照圖3,4和7,在步驟450中,多個(gè)邏輯單元45-47被提供,每一個(gè)邏輯單元被安排與主機(jī)310,312通信。邏輯單元,或者用SCSI中的術(shù)語“LUNs”,可以在數(shù)據(jù)存儲驅(qū)動(dòng)器35的讀/寫控制器中的一個(gè)固定的基礎(chǔ)上形成,或者可以如希望的那樣通過讀/寫控制器35形成,或者做為庫控制器302發(fā)出的指令的結(jié)果。隨機(jī)訪問數(shù)據(jù)存儲驅(qū)動(dòng)器30被提供了幾個(gè)虛擬地址,至少為每個(gè)邏輯單元45-47提供一個(gè),并且為關(guān)于每臺主機(jī)的每個(gè)邏輯單元提供進(jìn)一步的虛擬地址,形成邏輯存取器60-65。庫控制器302可以改變邏輯單元45-47和邏輯存取器的虛擬地址,或者使用直接信號線328改變驅(qū)動(dòng)器的虛擬地址。
步驟453和455代表了為響應(yīng)一次訪問請求一個(gè)存取器的典型的動(dòng)態(tài)的分配,它可以包含從一臺主機(jī)發(fā)出的一個(gè)讀和/或?qū)懺L問請求。在步驟455中,一個(gè)存取器被分配給一個(gè)訪問請求。當(dāng)一個(gè)讀存取器當(dāng)前恰好位于將被鎖定的被提議的上下文時(shí),嘗試進(jìn)行寫訪問,或者如果另一個(gè)寫存取器當(dāng)時(shí)在同一位置擁有任何鎖,在這種情況下,對于主機(jī)來說,寫命令和嘗試的存取器分配都失敗。另外,如上文所討論的,分配可以是固定的或者可以在一個(gè)長期的基礎(chǔ)上做出。
當(dāng)一個(gè)主機(jī)使用數(shù)據(jù)工作時(shí),它很有可能依次提出一系列讀和/或?qū)懺L問。因此,一旦一個(gè)存取器被分配,通過被分配的存取器的訪問可以持續(xù)在主機(jī)處理,例如,一個(gè)分區(qū),的整個(gè)期間。
緊接著,在步驟460中,一個(gè)被選擇的隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)25,26通過自動(dòng)機(jī)354,356從存儲格342上,被提供給數(shù)據(jù)存儲驅(qū)動(dòng)器30,并且由加載/卸載裝置31加載。介質(zhì)26可以被一個(gè)主機(jī)選中,或者被庫控制器302選中,作為一個(gè)被主機(jī)選中的包含邏輯卷的物理卷。
參見圖5,如美國專利申請第09/970,881中所討論的那樣,在圖7的步驟465中,GDBM 125被檢測以標(biāo)識所需數(shù)據(jù)的分區(qū)。至少為每個(gè)分區(qū)和一個(gè)分區(qū)的區(qū)域提供一個(gè)GDE 130-133,該GDE包含分區(qū)內(nèi)的分區(qū)標(biāo)識符和區(qū)域序列號。另外參見圖6,換句話說,在圖7的步驟465中,通過讀/寫訪問單元32從介質(zhì)25上讀取索引410,并且索引通過數(shù)據(jù)存儲驅(qū)動(dòng)器30的讀/寫控制器35被存儲。
主機(jī)或庫控制器將對至少一個(gè)數(shù)據(jù)流的一段有被請求的讀和/或?qū)懺L問。如果請求是讀一個(gè)數(shù)據(jù)段或一個(gè)數(shù)據(jù)流,該數(shù)據(jù)作為一個(gè)分區(qū)被標(biāo)識。被寫入的一個(gè)數(shù)據(jù)流可以是對現(xiàn)有數(shù)據(jù)流的一個(gè)覆蓋,對現(xiàn)有數(shù)據(jù)流的一個(gè)添加,或者可以是一個(gè)新的數(shù)據(jù)流。如果數(shù)據(jù)流包括對一個(gè)現(xiàn)有數(shù)據(jù)流的一個(gè)覆蓋或者一個(gè)添加,該分區(qū)被標(biāo)識。如果數(shù)據(jù)流是新的,一個(gè)新的分區(qū)被創(chuàng)建。這樣,另外參見圖5,步驟465包括為至少一個(gè)公共數(shù)據(jù)流的數(shù)據(jù)段(例如,設(shè)備包170-176)標(biāo)識和產(chǎn)生分區(qū)。圖6的索引410或者圖5的格式也提供了每個(gè)段的物理位置423和段的序列號422。
參見圖3,4和8,假定被選定的隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)26已經(jīng)在數(shù)據(jù)存儲驅(qū)動(dòng)器30中被加載,一個(gè)主機(jī)310,312,或者庫控制器302,在步驟200中,使用邏輯存取器60-65的一個(gè)地址,對加載的介質(zhì)請求寫訪問。在步驟203中,因?yàn)樵谝粋€(gè)時(shí)刻只有一個(gè)邏輯存取器被允許對一個(gè)分區(qū)進(jìn)行寫訪問,步驟203決定了對于所需的邏輯存取器寫訪問是否是可用的。作為一個(gè)例子,不同于請求的邏輯存取器的另一個(gè)邏輯存取器可以被分配為對于同一分區(qū)的寫訪問。如果寫訪問不可用,在步驟205中發(fā)出一個(gè)關(guān)于寫訪問失敗的消息。請求的代理可以緊接著重復(fù)地對同一個(gè)或者不同的邏輯存取器發(fā)出請求,改變到一個(gè)不同的分區(qū)并重試,或者可以在重復(fù)請求之前訓(xùn)為關(guān)于邏輯存取器的狀態(tài)。
再次參見圖5和6,如果邏輯存取器已經(jīng)被準(zhǔn)許做為寫存取器,則在步驟207中,GDE 130-133或者索引410被數(shù)據(jù)存儲驅(qū)動(dòng)器30的讀/寫控制器35檢查,它在此處被臨時(shí)地或者不斷地存儲,如上文所討論的,來分配所需的空間。任何用于完成寫操作所需的額外的空間可以從GDE 130-133或索引410中被收回,或者一個(gè)新的GDE或者索引項(xiàng)可以被指定,作為為每個(gè)邏輯格式。
如果在一個(gè)分區(qū)中一個(gè)讀訪問正在被執(zhí)行,一個(gè)并行的寫訪問有這樣的潛力,它會(huì)使某些或者所有的位于正在被寫入的分區(qū)內(nèi)并與之連續(xù)的數(shù)據(jù)無效,致使讀無效。因此,步驟208決定了是否一個(gè)讀訪問在一個(gè)將被鎖定的分區(qū)內(nèi)被定位(隨意地,在分區(qū)的區(qū)域內(nèi))。如果是這樣,在步驟209中發(fā)出一個(gè)關(guān)于鎖沖突的消息。類似于步驟205,這個(gè)信息可以作為一個(gè)訪問失敗報(bào)告給主機(jī),主機(jī)可以做出同樣的選擇,如那時(shí)所討論的。
如果一個(gè)分區(qū)是可用的,該分區(qū)的上下文(從圖7的步驟465得出)在步驟210中被確定,使用圖5中GDE 130-133或者圖6中的索引410。例如,如果上下文包括該分區(qū)中的一個(gè)段,該段423的位置被標(biāo)識。如果上下文包括分區(qū)中的一組段,或者,如果如上文所討論的,一個(gè)上下文包括一個(gè)被寫入的段以及在數(shù)據(jù)集中與被寫入的數(shù)據(jù)段連續(xù)的所有的剩余段,該段的分區(qū)420被標(biāo)識,并且所有的該組的數(shù)據(jù)段或者該分區(qū)的數(shù)據(jù)集隨后被確定,連同這些段的序列號422。
在步驟220中,因?yàn)閷τ诿恳粋€(gè)分區(qū)在一個(gè)時(shí)刻只有一個(gè)上下文可能被鎖定,在圖7中的步驟453和455中,被準(zhǔn)許作為寫訪問的邏輯存取器應(yīng)該從一個(gè)寫訪問轉(zhuǎn)換為另一個(gè)寫訪問,控制器,例如,讀/寫控制器35,決定了新的被請求的分區(qū)是否存在一個(gè)現(xiàn)有的鎖的,這意味著另一個(gè)主機(jī),等等,當(dāng)時(shí)對那個(gè)上下文或者那個(gè)上下文的一部分有寫訪問。
另外,在同一時(shí)刻,該介質(zhì)只有一個(gè)上下文可以被鎖定,并且步驟220決定了對于該介質(zhì)的任何上下文是否存在任何現(xiàn)有的鎖。
在任一種情形中,如果是這樣,在步驟222中控制器35使寫訪問失敗,并且任何重試必須由主機(jī)管理。
如果在當(dāng)前的位置沒有其他的鎖,在步驟260中定義的關(guān)于分區(qū)420的上下文被鎖定到步驟225中分配的寫訪問邏輯存儲器上。另外參見圖3和5,作為一個(gè)例子,邏輯存取器60被分配為寫訪問,并被鎖定到數(shù)據(jù)段170-173的上下文。
根據(jù)本發(fā)明,控制器并行地允許其他的邏輯存取器對可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)進(jìn)行讀訪問,例如,“H2/L0”60和“H1/L2”64,并阻止這樣的讀訪問,該讀訪問是由任何不同于各自被鎖定的寫訪問邏輯存取器的其他存取器發(fā)起的,對于任何寫訪問上下文的讀訪問,例如,邏輯存取器“H1/L0”60,并且阻止這樣的寫訪問,該寫訪問是由不同于各自被鎖定的寫訪問邏輯存取器的其他存取器發(fā)起的,對于可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上的各自被鎖定分區(qū)的任何數(shù)據(jù)的寫訪問。
控制器隨后在步驟230中,操縱讀/寫訪問單元來訪問被鎖定的上下文的寫訪問數(shù)據(jù)段,為了將數(shù)據(jù)寫為數(shù)據(jù)段,例如,圖5中的數(shù)據(jù)段170-173,在隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上,使用任意附加點(diǎn)。正如本領(lǐng)域的技術(shù)人員所知,該附加點(diǎn)總是在數(shù)據(jù)的頭和格式的控制結(jié)構(gòu)中被標(biāo)識,即,圖5中的GDBM 128和GDB的130-133,或者圖6中的表410。
具體地說,控制器為被標(biāo)識的分區(qū)的下一個(gè)有序段標(biāo)識一個(gè)附加點(diǎn),在隨機(jī)訪問序列中寫入添加的數(shù)據(jù),作為被標(biāo)識的分區(qū)的數(shù)據(jù)段,并且標(biāo)識附加數(shù)據(jù),作為在被標(biāo)識的分區(qū)的附加點(diǎn)處接續(xù)數(shù)據(jù)段的序列。
或者當(dāng)上下文中數(shù)據(jù)被寫入時(shí),或者一旦上下文數(shù)據(jù)流中的所有的數(shù)據(jù)已經(jīng)被寫入,上下文的位置或者狀態(tài)在步驟233中被更新,用來標(biāo)識在更新的分區(qū)內(nèi)被寫入的段。
數(shù)據(jù)流可以通過讀/寫訪問單元32被寫入,以便模擬磁帶或者光盤的順序組織,方法是通過在緩沖器組織數(shù)據(jù)段關(guān)聯(lián)寫訪問邏輯存取器,例如,緩沖器70以及圖3的邏輯存取器60。在一個(gè)實(shí)施例中,數(shù)據(jù)以最有效的訪問次序被從緩沖器寫入到隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上,但是順序的組織采用美國專利申請第09/970,881號的映射表方法被模擬。在另一個(gè)實(shí)施例中,數(shù)據(jù)段從緩沖器被順序?qū)懭氲诫S機(jī)訪問數(shù)據(jù)存儲介質(zhì)25中。
被寫入的數(shù)據(jù)流可以代替或者被添加到現(xiàn)有的數(shù)據(jù)流中,并且,如果是添加,在先前寫入數(shù)據(jù)的末尾的附加點(diǎn)被寫入。附加點(diǎn)被映射,例如,到包含圖5的設(shè)備塊150,151的開始處。
步驟240決定到分區(qū)的寫訪問的寫入操作是否已經(jīng)完成并且索引已經(jīng)被更新。如果沒有,步驟241推進(jìn)寫操作到分區(qū)內(nèi)的下一個(gè)上下文,步驟225鎖定下一個(gè)上下文。在寫訪問邏輯存取器完成了寫訪問之后,控制器,在步驟245中,釋放鎖定的上下文,例如,圖5的段170-173,到被分配的寫訪問邏輯存取器,例如圖3的“H1/L0”60,并且在步驟247中繼續(xù)執(zhí)行下一條命令。
正如上文所討論的,根據(jù)本發(fā)明,控制器并行地允許通過邏輯存取器對隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)的數(shù)據(jù)進(jìn)行讀訪問,例如,邏輯存取器“H1/L0”60。另外,控制器并行地允許通過多個(gè)邏輯存取器對隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)的數(shù)據(jù)進(jìn)行寫訪問,通過每個(gè)上面的鎖方法。
一個(gè)讀訪問的實(shí)施例在圖9中被闡述,從步驟250開始,此處讀訪問在一個(gè)邏輯存取器處被請求,例如,圖3的邏輯存取器60-65。另外參見圖3-6,在步驟255中,GDBM 125或者索引410通過數(shù)據(jù)存儲驅(qū)動(dòng)器30的讀/寫控制器35被檢查,以便確定被請求的上下文是否在介質(zhì)中并且是有效的。該請求可以包含一個(gè)全部分區(qū)420,或者特定數(shù)據(jù)421,并且可以包含單獨(dú)的數(shù)據(jù)段或者一個(gè)完整的數(shù)據(jù)流。如果錯(cuò)誤的段,等等,被請求,或者如果被請求的數(shù)據(jù)不是有效的,在步驟258中發(fā)出一個(gè)沒有有效數(shù)據(jù)的消息。
如果數(shù)據(jù),位置,分區(qū)等等,是有效的,分區(qū)的上下文(從圖7中的步驟465)在步驟260中被確定,使用GDE 130-133或者索引410。例如,如果上下文包括分區(qū)里的一個(gè)數(shù)據(jù)段,該段423的位置為標(biāo)識。如果上下文包含一組數(shù)據(jù)段或者一個(gè)數(shù)據(jù)集,該段的分區(qū)420被標(biāo)識,并且該分區(qū)的這個(gè)組或者數(shù)據(jù)集的所有數(shù)據(jù)段隨后被標(biāo)識,連同這些段的序列號422。
在步驟263中,控制器,例如,讀/寫控制器35,決定該上下文是否存在一個(gè)現(xiàn)有的鎖,這意味著該邏輯存取器具有寫訪問能力,例如,為了對被請求的上下文或者該上下文的一部分進(jìn)行寫訪問,邏輯存取器60被鎖定。如果這樣,在步驟269中的控制器使讀訪問失敗,并且報(bào)告遇到了一個(gè)鎖。任何重試必須由主機(jī)管理。
在順序的格式實(shí)現(xiàn)中,不可能在一個(gè)當(dāng)前被鎖定的上下文中來回移動(dòng),或者在其中被邏輯定位,因?yàn)閷τ谥鳈C(jī)來說順序讀或者顯式的重定位是失敗的。因此,遇到一個(gè)鎖可以在步驟269中報(bào)告,作為一個(gè)特定的“數(shù)據(jù)響應(yīng)的結(jié)束”。
如果對于被請求的上下文在當(dāng)前位置沒有鎖,該分區(qū)在步驟275被讀/寫訪問單元32讀出。根據(jù)本發(fā)明,為了實(shí)現(xiàn)由主機(jī)的發(fā)起的順序訪問,通過將隨機(jī)訪問的數(shù)據(jù)組織成所需的序列,數(shù)據(jù)流的磁帶或者光盤的順序組織在步驟277中被模擬。在對一個(gè)被標(biāo)識的分區(qū)的數(shù)據(jù)段進(jìn)行讀訪問時(shí),控制器另外將任何寫附加的數(shù)據(jù)標(biāo)識為被標(biāo)識的分區(qū)。
因此,在步驟275中,上下文的數(shù)據(jù)段可以被讀出,(A),以對隨機(jī)訪問介質(zhì)進(jìn)行隨機(jī)訪問的最有效的次序,并且該數(shù)據(jù)集在一個(gè)緩沖器中被存儲,例如,緩沖器56,作為被訪問的數(shù)據(jù),并且隨后在步驟277中,在緩沖器中被排列成順序,例如,采用指針的方法。
在數(shù)據(jù)流中數(shù)據(jù)段的順序通過圖5中的GDE 130-133或者圖6中的索引410的序列號被確定。公共數(shù)據(jù)流的第一個(gè)數(shù)據(jù)段的位置,以及為每一個(gè)后續(xù)的附加點(diǎn)的位置由GDE提供,或者通過索引410的位置地址423提供。
在另一個(gè)實(shí)施例中,(B),在可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)25上,數(shù)據(jù)段在磁帶或者光盤序列中被訪問,例如,采用美國專利申請第09/970,881號的映射表的方法,在緩沖器56中被順序存儲。
一旦被組織,控制器為了在步驟280中主機(jī)系統(tǒng)310,312或者庫控制器302的請求,為讀訪問邏輯存取器提供讀訪問。步驟285確定是否該請求的整個(gè)數(shù)據(jù)流已經(jīng)被讀出。如果沒有,步驟286推進(jìn)讀操作到該分區(qū)內(nèi)的下一個(gè)上下文,步驟263確定下一個(gè)上下文是否被鎖定,步驟275,277和280繼續(xù)讀該分區(qū)的數(shù)據(jù)。在寫訪問邏輯存取器完成了寫訪問之后,控制器,在步驟287中,接收下一個(gè)命令,例如,來自主機(jī)的命令。
因此,本發(fā)明提供了并行的讀和寫訪問,來模擬存儲在隨機(jī)訪問介質(zhì)上的順序的數(shù)據(jù),鎖定一個(gè)或多個(gè)寫訪問上下文到一個(gè)寫訪問邏輯存取器,這些上下文由一個(gè)唯一的被標(biāo)識的分區(qū)的至少一個(gè)數(shù)據(jù)段組成,并且為了該被鎖定的訪問邏輯存取器,一個(gè)讀/寫訪問單元訪問該寫訪問上下文。
當(dāng)以不連續(xù)的方式進(jìn)行讀或?qū)懡橘|(zhì)訪問時(shí),通過多個(gè)不同于被鎖定的寫訪問邏輯存取器的邏輯存取器,并行的讀和寫訪問被提供給可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)的數(shù)據(jù),并阻止這樣的讀訪問,該讀訪問是由任何不同于各自被鎖定的寫訪問邏輯存取器的其他存取器發(fā)起的,對于任何寫訪問上下文的讀訪問;并且阻止對于任何在一個(gè)分區(qū)內(nèi)的數(shù)據(jù)的寫訪問,該分區(qū)擁有其他邏輯存取器的寫訪問上下文。
因此,本發(fā)明利用了在不連續(xù)的讀和寫操作期間的等待時(shí)間,利用了隨機(jī)訪問介質(zhì)的高速隨機(jī)訪問,來提供對不同數(shù)據(jù)集的并行的訪問,并通過至少一個(gè)主機(jī)提供對于可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)的模擬磁帶或光盤的順序訪問。
本領(lǐng)域的專業(yè)人員明白可以采用備選的對應(yīng)安排,并且關(guān)于LUN以及隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)也可以采用備選的安排。
權(quán)利要求
1.數(shù)據(jù)存儲驅(qū)動(dòng)器(30),用于通過至少一個(gè)主機(jī)(310,312)提供對可存儲在可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)(20,25)上的數(shù)據(jù)的并行讀和寫訪問;所述數(shù)據(jù)包括多個(gè)數(shù)據(jù)段(170-176,185,186,150,151,421),至少一些所述數(shù)據(jù)段包括至少一個(gè)分區(qū)(420);所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)可在所述數(shù)據(jù)存儲驅(qū)動(dòng)器進(jìn)行訪問,以及從所述數(shù)據(jù)存儲驅(qū)動(dòng)器移走;所述數(shù)據(jù)存儲驅(qū)動(dòng)器包括多個(gè)邏輯存取器(60-65),每個(gè)所述邏輯存取器被配置為與至少一個(gè)主機(jī)通信,以對所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)進(jìn)行讀和/或?qū)懺L問;讀/寫訪問單元(32),用于對所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)提供讀和寫訪問;以及讀/寫控制器(35),所述讀/寫控制器與所述多個(gè)邏輯存取器和所述讀/寫訪問單元相連,所述讀/寫控制器響應(yīng)一個(gè)所述邏輯存取器對一個(gè)所述分區(qū)的所述讀和/或?qū)懺L問,為所述訪問,將至少一個(gè)所述數(shù)據(jù)段標(biāo)識為包括所述分區(qū);當(dāng)一個(gè)所述邏輯存取器對于所述被標(biāo)識的分區(qū)的至少一個(gè)數(shù)據(jù)段進(jìn)行寫訪問時(shí),為所述寫訪問,將所述被標(biāo)識分區(qū)的所述至少一個(gè)數(shù)據(jù)段,建立為寫訪問上下文,為所述寫訪問,將所述寫訪問上下文鎖定到一個(gè)所述邏輯存取器;為所述邏輯存取器的所述被鎖定寫訪問的一個(gè),操作所述讀/寫訪問單元以訪問所述寫訪問上下文;并行操作所述讀/寫訪問單元,以由所述邏輯存取器的所述被鎖定寫訪問的一個(gè)之外的其他所述邏輯存取器提供對可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上的數(shù)據(jù)的讀和/或?qū)懺L問;避免由所述邏輯存取器的所述被鎖定寫訪問的一個(gè)之外的任何邏輯存取器對所述寫訪問上下文進(jìn)行讀訪問;并避免由所述邏輯存取器的所述被鎖定寫訪問的一個(gè)之外的所述邏輯存取器對所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)的所述被鎖定的寫訪問分區(qū)的任何數(shù)據(jù)進(jìn)行寫訪問;并且在所述邏輯存取器的所述被鎖定寫訪問的一個(gè)完成了所述寫訪問之后,將所述寫訪問上下文的所述鎖定釋放給所述邏輯存取器的所述被鎖定寫訪問的一個(gè)。
2.根據(jù)權(quán)利要求1的數(shù)據(jù)存儲驅(qū)動(dòng)器(30),其中,當(dāng)一個(gè)所述邏輯存取器(60-65)進(jìn)行讀訪問時(shí),所述讀/寫控制器(35)進(jìn)一步確定所述讀訪問是否是針對被避免訪問的所述數(shù)據(jù)之外的數(shù)據(jù)段(170-176,185,186,150,151,421)的讀訪問,并且,如果是這樣,為所述訪問,將一個(gè)被標(biāo)識的分區(qū)(420)的至少一個(gè)數(shù)據(jù)段,建立為一個(gè)讀上下文。
3.根據(jù)權(quán)利要求1的數(shù)據(jù)存儲驅(qū)動(dòng)器(30),其中所述讀/寫控制器(35),在標(biāo)識所述分區(qū)(420)時(shí),進(jìn)一步以順序的方式組織所述分區(qū)的所述數(shù)據(jù)段(170-176,185,186,150,151,421),以便由所述至少一個(gè)主機(jī)(310,312)進(jìn)行順序訪問;并且,在避免對所述寫訪問上下文進(jìn)行所述讀訪問時(shí),進(jìn)一步避免對所述順序中所述寫上下文后面的任何數(shù)據(jù)段進(jìn)行讀訪問。
4.根據(jù)權(quán)利要求1的數(shù)據(jù)存儲驅(qū)動(dòng)器(30),其中所述讀/寫控制單元,在對被標(biāo)識的分區(qū)(420)的所述數(shù)據(jù)段(170-176,185,186,150,151,421)進(jìn)行寫訪問時(shí),進(jìn)一步地為所述被標(biāo)識的分區(qū)的所述數(shù)據(jù)段的下一個(gè)順序段標(biāo)識一個(gè)附加點(diǎn);以隨機(jī)訪問的順序,將附加數(shù)據(jù)寫入到所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)(20,25)上,作為所述被標(biāo)識的分區(qū)的數(shù)據(jù)段;并且將所述附加數(shù)據(jù)標(biāo)識為在所述被標(biāo)識分區(qū)的所述附加點(diǎn)處接續(xù)所述數(shù)據(jù)段的所述序列。
5.根據(jù)權(quán)利要求1的數(shù)據(jù)存儲驅(qū)動(dòng)器(30),其中所述被標(biāo)識的分區(qū)(420)包括隨機(jī)訪問數(shù)據(jù)段(170-176,185,186,150,151,421)的一個(gè)順序的數(shù)據(jù)集,并且其中所述隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)(20,25)可以包括具有類似的和/或替換安排的數(shù)據(jù)集的其他的分區(qū)(420);并且其中所述讀/寫控制單元(35)還包括如上述那樣對所述順序地安排的分區(qū)進(jìn)行標(biāo)識的索引。
6.根據(jù)權(quán)利要求1的數(shù)據(jù)存儲驅(qū)動(dòng)器(30),其中所述數(shù)據(jù)存儲驅(qū)動(dòng)器與多個(gè)所述主機(jī)(310,312)相連,其中為了寫訪問,分離的主機(jī)與分離的所述邏輯存取器(60-65)相關(guān)聯(lián),并且其中所述讀/寫控制單元(35)進(jìn)一步將所述寫訪問分配到所述多個(gè)邏輯存取器中的一個(gè),所述分配基于與所述主機(jī)相關(guān)聯(lián)的一個(gè)所述邏輯存取器,所述主機(jī)包括所述寫訪問的數(shù)據(jù)源,只有當(dāng)所述被標(biāo)識的分區(qū)當(dāng)前沒有被另一個(gè)邏輯存取器訪問時(shí),才進(jìn)行所述分配。
7.一個(gè)用于存儲并檢索磁帶介質(zhì)(20)和可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)(25)的自動(dòng)數(shù)據(jù)存儲庫(300),至少一個(gè)所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)存儲包括多個(gè)數(shù)據(jù)段(170-176,185,186,150,151,421)的數(shù)據(jù),至少某些所述數(shù)據(jù)段包括至少一個(gè)分區(qū)(420);所述自動(dòng)數(shù)據(jù)存儲庫包括多個(gè)存儲格(342),用來存儲所述磁帶介質(zhì),并且用來存儲所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì);至少一個(gè)如權(quán)利要求1-6的任何一個(gè)中所述數(shù)據(jù)存儲驅(qū)動(dòng)器(30),用于通過至少一個(gè)主機(jī)(310,312)提供對數(shù)據(jù)的并行的讀和寫訪問,該數(shù)據(jù)存儲在所述至少一個(gè)可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上,所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)存儲由多個(gè)數(shù)據(jù)段構(gòu)成的數(shù)據(jù);至少一個(gè)自動(dòng)機(jī)(345,356),用來存儲并檢索所述磁帶介質(zhì),用來存儲并檢索在所述存儲格上所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì),并用來向所述數(shù)據(jù)存儲驅(qū)動(dòng)器上加載以及從所述數(shù)據(jù)存儲驅(qū)動(dòng)器移去所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì);一個(gè)庫控制器(302),所述庫控制器與所述自動(dòng)機(jī)和所述數(shù)據(jù)存儲驅(qū)動(dòng)器相連,用于操作所述自動(dòng)機(jī)以存儲并檢索在所述存儲格上的所述磁帶介質(zhì),存儲并檢索在所述存儲格上的所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì),并且向所述數(shù)據(jù)存儲驅(qū)動(dòng)器上加載以及從所述數(shù)據(jù)存儲驅(qū)動(dòng)器移去所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)。
8.通過至少一個(gè)主機(jī)(310,312)提供對存儲在可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)(20-25)上的數(shù)據(jù)的并行的讀和寫訪問的方法;所述數(shù)據(jù)包括多個(gè)數(shù)據(jù)段(170-176,185,186,150,151,421),至少某些所述數(shù)據(jù)段包括至少一個(gè)分區(qū)(420);所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)可在數(shù)據(jù)存儲驅(qū)動(dòng)器(30)上被訪問,并可以從數(shù)據(jù)存儲驅(qū)動(dòng)器(30)移去;所述方法包括下列步驟將所述數(shù)據(jù)存儲驅(qū)動(dòng)器安排(450)為多個(gè)邏輯存取器(60-65),每個(gè)所述邏輯存取器被配置為與所述至少一個(gè)主機(jī)通信,以便對所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)進(jìn)行讀和/或?qū)懺L問;響應(yīng)于一個(gè)所述邏輯存取器對一個(gè)所述分區(qū)進(jìn)行的讀和/或?qū)懺L問,為所述訪問,將至少一個(gè)所述數(shù)據(jù)段標(biāo)識為包含所述分區(qū);當(dāng)一個(gè)所述邏輯存取器對所述被標(biāo)識的分區(qū)的至少一個(gè)數(shù)據(jù)段進(jìn)行寫訪問時(shí),為所述寫訪問,將所述被標(biāo)識的分區(qū)的所述至少一個(gè)數(shù)據(jù)段建立(210)為一個(gè)寫訪問上下文,將所述寫訪問上下文鎖定(225)到一個(gè)所述邏輯存取器;為了所述邏輯存取器的所述被鎖定寫訪問的一個(gè),訪問(230)所述寫訪問上下文;并行地允許所述邏輯存取器的一個(gè)所述被鎖定的寫訪問之外的其他所述邏輯存取器對所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上的所述數(shù)據(jù)進(jìn)行讀和/或?qū)懺L問;避免(269)由所述邏輯存取器的所述被鎖定寫訪問的一個(gè)之外的任何邏輯存取器對所述寫訪問上下文進(jìn)行讀訪問;以及避免由所述邏輯存取器的所述被鎖定寫訪問的一個(gè)之外的所述邏輯存取器對所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上的所述被鎖定的寫訪問分區(qū)上的任何數(shù)據(jù)進(jìn)行寫訪問;并且在所述邏輯存取器的一個(gè)所述被鎖定的寫訪問完成了所述寫訪問之后,將所述寫訪問上下文的所述鎖定釋放(245)給所述邏輯存取器的一個(gè)所述被鎖定的寫訪問。
9.根據(jù)權(quán)利要求8的方法,其中所述并行地允許讀訪問的步驟,進(jìn)一步包括,當(dāng)通過一個(gè)所述邏輯存取器進(jìn)行讀訪問時(shí),確定(263)所述讀訪問是否是針對被避免訪問的所述數(shù)據(jù)之外的數(shù)據(jù)段,并且,如果是這樣,為所述訪問,將一個(gè)被標(biāo)識的分區(qū)(420)的至少一個(gè)數(shù)據(jù)段,建立(275)為一個(gè)讀上下文。
10.根據(jù)權(quán)利要求8的方法,其中標(biāo)識所述分區(qū)的所述步驟,進(jìn)一步包括以順序的方式組織所述分區(qū)的所述數(shù)據(jù)段,以便由所述至少一個(gè)主機(jī)進(jìn)行順序訪問,并且,在所述并行地允許讀訪問的步驟中,避免對所述寫訪問上下文進(jìn)行所述讀訪問時(shí),進(jìn)一步避免對所述順序中所述寫上下文后面的任何數(shù)據(jù)段進(jìn)行讀訪問。
11.根據(jù)權(quán)利要求8的方法,其中對一個(gè)被標(biāo)識的分區(qū)的所述數(shù)據(jù)段進(jìn)行寫訪問的所述步驟,進(jìn)一步包括下列步驟為所述被標(biāo)識分區(qū)的所述數(shù)據(jù)段的下一個(gè)順序段標(biāo)識一個(gè)附加點(diǎn);以隨機(jī)訪問的順序,將附加數(shù)據(jù)寫入(230)到所述可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)上,作為所述被標(biāo)識的分區(qū)的數(shù)據(jù)段;將所述附加數(shù)據(jù)標(biāo)識為在所述被標(biāo)識分區(qū)的所述附加點(diǎn)處接續(xù)所述數(shù)據(jù)段的所述序列。
12.根據(jù)權(quán)利要求8的方法,其中所述被標(biāo)識的分區(qū)包括隨機(jī)訪問數(shù)據(jù)段的順序的數(shù)據(jù)集,并且其中所述隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)可以包括具有類似的和/或替換安排的數(shù)據(jù)集的其他的分區(qū);所述方法還包括這樣的步驟,該步驟為每一個(gè)所述分區(qū)維護(hù)一個(gè)索引,所述索引如上述那樣標(biāo)識所述被順序安排的分區(qū)。
13.根據(jù)權(quán)利要求8的方法,其中所述數(shù)據(jù)存儲驅(qū)動(dòng)器與多個(gè)所述主機(jī)相連,其中為了寫訪問,分離的主機(jī)與分離的所述邏輯存取器相關(guān)聯(lián);并且其中所述方法還包括這樣的步驟,該步驟基于與所述主機(jī)相關(guān)聯(lián)的一個(gè)所述邏輯存取器給所述邏輯存取器分配寫訪問,所述主機(jī)包括所述寫訪問的數(shù)據(jù)源,只有當(dāng)所述被標(biāo)識的分區(qū)當(dāng)前沒有被另一個(gè)邏輯存取器訪問時(shí),才進(jìn)行所述分配。
全文摘要
公開的內(nèi)容為并行讀寫訪問可移動(dòng)隨機(jī)訪問數(shù)據(jù)存儲介質(zhì)的模擬連續(xù)數(shù)據(jù)。被設(shè)置成多個(gè)邏輯存取器的數(shù)據(jù)存儲驅(qū)動(dòng)器訪問存儲在可移動(dòng)隨機(jī)訪問介質(zhì)上的數(shù)據(jù)。當(dāng)一個(gè)邏輯存取器對一個(gè)數(shù)據(jù)段進(jìn)行寫操作時(shí),控制器將包含一個(gè)分區(qū)的至少一個(gè)數(shù)據(jù)段的上下文(context)鎖定到該邏輯存取器??刂破鞑⑿械卦试S對可移動(dòng)隨機(jī)訪問介質(zhì)上的被鎖定的上下文之外的數(shù)據(jù)進(jìn)行讀訪問,并允許其他邏輯存取器對鎖定分區(qū)之外的其他分區(qū)進(jìn)行寫訪問。
文檔編號G11B27/32GK1610876SQ02826473
公開日2005年4月27日 申請日期2002年12月2日 優(yōu)先權(quán)日2002年1月4日
發(fā)明者羅伯特·貝弗利·巴沙姆, 保羅·瑪利爾·格雷科 申請人:國際商業(yè)機(jī)器公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會(huì)獲得點(diǎn)贊!
1