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