專利名稱:用于分配虛擬導(dǎo)入/導(dǎo)出元件地址的系統(tǒng)和方法
技術(shù)領(lǐng)域:
本發(fā)明總體上涉及數(shù)據(jù)管理系統(tǒng)的領(lǐng)域。具體來講,本發(fā)明包括用于依照使共享的元件地址(element address)的可用性最大化的方式來分配虛擬元件地址的方法。
背景技術(shù):
自動的數(shù)據(jù)存儲庫用于提供對大量數(shù)據(jù)的成本有效的存儲與取出(retrieval)。在自動的數(shù)據(jù)存儲庫中,把數(shù)據(jù)存儲在數(shù)據(jù)存儲介質(zhì)上,并且隨后依照使所述介質(zhì)及其駐留數(shù)據(jù)可以存取以便物理取出的方式、把所述數(shù)據(jù)存儲介質(zhì)存放在所述庫內(nèi)部的存儲架等上。通常把這種介質(zhì)稱為“可移除介質(zhì)”。數(shù)據(jù)存儲介質(zhì)可以包括其上存儲有數(shù)據(jù)并且可以充當(dāng)可移除介質(zhì)的任何類型的介質(zhì),其中包括但不局限于磁性介質(zhì)(諸如磁帶或者磁盤)、光學(xué)介質(zhì)(諸如光帶或者光盤)、電子介質(zhì)(諸如PROM、EEPROM、快閃PROM、Compactflash TM、Smartmedia TM記憶棒TM等)、或者其它適當(dāng)?shù)慕橘|(zhì)。
通常,存儲在自動數(shù)據(jù)存儲庫中的數(shù)據(jù)駐留在容納在盤盒內(nèi)并且被稱為數(shù)據(jù)存儲介質(zhì)盒(cartridge)的數(shù)據(jù)存儲介質(zhì)上。在用于海量數(shù)據(jù)存儲的自動數(shù)據(jù)存儲庫中廣泛應(yīng)用的數(shù)據(jù)存儲介質(zhì)盒的例子是磁帶盒。
除數(shù)據(jù)存儲介質(zhì)以外,自動數(shù)據(jù)存儲庫通常包含數(shù)據(jù)存儲驅(qū)動器,其用于向數(shù)據(jù)存儲介質(zhì)中存儲數(shù)據(jù)和/或從其中取出數(shù)據(jù)。數(shù)據(jù)存儲介質(zhì)在數(shù)據(jù)存儲架和數(shù)據(jù)存儲驅(qū)動器之間的傳送通常是通過一個或多個機器人存取器(robot accessor)(以下稱為“存取器(accessor)”)來實現(xiàn)的。這種存取器具有機械爪(gripper),其用于從自動數(shù)據(jù)存儲庫內(nèi)的存儲架中物理地取出所選數(shù)據(jù)存儲介質(zhì),并且通過沿X和Y方向上移動來把這種介質(zhì)傳送到數(shù)據(jù)存儲驅(qū)動器。
庫通常使用內(nèi)部編址來標識所述庫內(nèi)的盤盒槽位置(cartridgeslot location)。把庫的內(nèi)部編址稱為庫地址或者物理地址。庫一般通過通常被稱為元件地址(element address)的地址來向主機應(yīng)用程序提供盤盒槽位置。把主機的關(guān)于庫的報告地址的視圖(view)稱為主機地址或者邏輯地址。在某些設(shè)計中,任何特殊盤盒位置的庫地址和主機地址可以是相同的。例如,可以向庫中的所有物理存儲架分配物理地址,其中所述物理地址從起始地址開始并且對于庫中的每個連續(xù)槽加1。此地址信息由庫提供給主機應(yīng)用程序,所述主機應(yīng)用程序用于向庫發(fā)送命令以便基于此物理地址信息來移動盤盒。
然而,在某些設(shè)計中,特殊盤盒位置的庫地址和主機地址可以是不同的。例如,可以把所述庫劃分為多個邏輯庫。可以向每個邏輯庫分配不同的主機計算機,從而使得與一個邏輯庫相關(guān)聯(lián)的主機不知道任何其它邏輯庫和相關(guān)聯(lián)的盤盒。在此例子中,即便所述庫為每個盤盒維護唯一的物理地址,那么從其主機應(yīng)用程序來看與一個邏輯庫相關(guān)聯(lián)的盤盒可以具有與從其主機應(yīng)用程序來看和另一邏輯庫相關(guān)聯(lián)的盤盒相同的邏輯地址。
庫中的存儲槽的虛擬化是為什么庫地址和主機地址未必相同的另一個例子。當(dāng)執(zhí)行移動操作并且當(dāng)向主機應(yīng)用程序報告盤盒位置時,所述庫維護主機(邏輯)存儲地址到實際庫(物理)地址的映射。邏輯地址到實際物理地址的映射必須由所述庫依照一致的方式來維護,以便確保預(yù)期盤盒的正確移動。通過使用虛擬化,所述庫可以任意地選擇任何槽來存放介質(zhì),即,與特殊主機所使用的地址范圍相關(guān)聯(lián)的存儲槽需要是接近和/或連續(xù)的。地址的映射包括在有或者沒有介質(zhì)的情況下的存儲槽的映射。
主機應(yīng)用程序使用“位置-中心(location-centric)”命令來管理庫中的數(shù)據(jù),并且可以利用諸如小型計算機系統(tǒng)接口(SCSI)之類的介質(zhì)變換器協(xié)議。所述主機應(yīng)用程序通過在系統(tǒng)中指定源和目的地位置來管理盤盒移動。這些源和目的地位置是由所述庫報告作為主機元件地址的元件地址。
主機元件地址可以包括主機導(dǎo)入/導(dǎo)出元件地址(import/exportelement address,IEEA),對于主機而言,其看起來是輸入/輸出槽的地址。另外,所述主機元件地址包括主機存儲元件地址,對于主機而言,其看起來是存儲槽位置。由主機應(yīng)用程序發(fā)布的、包括這些主機元件地址的位置-中心命令,由所述庫映射到實際介質(zhì)存儲槽的物理元件地址或者映射到實際介質(zhì)輸入/輸出槽。
主機計算機維護這些主機元件地址的主機目錄,以便利用庫數(shù)據(jù)存儲介質(zhì)盒交叉引用主機元件地址。每一數(shù)據(jù)存儲介質(zhì)盒可以由卷序列號(VOLSER)來標識。把主機元件地址映射至物理元件地址是由所述庫管理的。
在示例性的自動數(shù)據(jù)存儲庫中,對于通過自動設(shè)備或者由操作者放入庫的輸入/輸出站(station)中的數(shù)據(jù)存儲介質(zhì)盒,基于輸入/輸出站的物理位置或者所述盤盒隨后被放入其中的存儲槽的物理位置,向其發(fā)布元件地址。在輸入/輸出站和/或存儲單元被分隔為單元的庫中,5槽的單元站(5-slot cell station)可以包括具有元件地址的第一個槽,并且每一后續(xù)槽的地址將是起始槽地址的遞增。依照此方式,放置在第二個槽中的盤盒往往被給予一個比起始元件地址大1的物理元件地址。
然而,導(dǎo)入/導(dǎo)出元件(IEE)的元件地址可以被虛擬化,由此導(dǎo)致使用虛擬導(dǎo)入/導(dǎo)出元件地址(VIEEA)。依照此方式,多個主機可以共享單個物理庫,并且可以利用其邏輯庫范圍內(nèi)的盤盒的VIEE地址的不同范圍。例如,第一主機可以被配置為存取10個導(dǎo)入/導(dǎo)出元件地址(IEEA),而第二主機可以被配置為存取20個IEEA。然而,可以向每一主機報告每個盤盒的物理元件地址,作為不同的VIEEA。通過利用IEEA的虛擬化,放置在5槽的單元站的第二個槽中的盤盒可以具有101的物理元件地址,但是該地址將作為VIEEA 106報告給第一主機。通過將每一盤盒的物理元件地址映射到VIEEA,所述主機可以繼續(xù)將一個特殊的數(shù)據(jù)存儲介質(zhì)表示為單個主機元件地址,即使數(shù)據(jù)存儲盤盒被移到另一物理元件地址、諸如存儲單元209也一樣。
隨著VIEEA的出現(xiàn),元件地址的分配成為庫固件的基于算法的功能,而不是每一物理位置到特定元件地址的簡單映射。當(dāng)把盤盒放入I/O槽中時,首先要檢查盤盒的卷序列號,以便查看它是否在特殊主機的盤盒分配策略(CAP)的范圍內(nèi)。CAP是當(dāng)檢測到盤盒進入所述庫時、所選邏輯庫所具有的由用戶定義的盤盒卷序列號的范圍。如果盤盒位于庫的CAP中,那么它將被分配有只對應(yīng)于該主機的VIEEA,并且它對于其它主機而言是不可見的。公共VIEEA是庫的導(dǎo)入/導(dǎo)出地址的范圍內(nèi)的、對于附連于所述庫的所有主機而言可用的虛擬導(dǎo)入/導(dǎo)出元件地址,即,它還沒有被分配給單個主機和變?yōu)榉枪驳腣IEEA。非公共的VIEEA是庫的導(dǎo)入/導(dǎo)出地址的庫范圍內(nèi)的、已經(jīng)分配給單個主機并且因此無法成為所有主機可以利用的公共VIEEA的候選者的虛擬導(dǎo)入/導(dǎo)出元件地址。如果盤盒的卷序列號不在任何主機的CAP之內(nèi),那么它將被分配一個公共VIEEA,其對于多個主機而言是可見的。
然而,當(dāng)在I/O站上掃描盤盒時,如果(a)盤盒的卷序列號屬于主機的CAP、并且主機沒有可用的IEEA,或者(b)盤盒的卷序列號不是任何CAP的組成部分、而且沒有公共VIEEA可用,那么可以不發(fā)布VIEEA。在這種情況下,盤盒被移動到臨時物理存儲槽中,并且等待VIEEA變?yōu)榭捎玫?。如果沒有正確地維護VIEEA,那么此問題會變得更加普遍。例如,如果具有屬于主機的CAP的卷序列號的盤盒被分配有一個公共VIEEA,那么對于不屬于任何CAP的隨后裝載的盤盒而言,所述公共VIEEA將是不可用的。因為目前沒有VIEEA可用,所以當(dāng)?shù)却峙涔不蛘叻枪驳腣IEEA時,正在排隊或已經(jīng)排隊的盤盒處于數(shù)據(jù)盤盒的臨時狀態(tài)。因此,合乎需要的是,具有一種用于向?qū)儆谥鳈C的CAP的盤盒分配VIEEA的方法,其可以使得公共VIEEA的利用最大化,并且減少了未被編址的數(shù)據(jù)存儲介質(zhì)的臨時排隊。
發(fā)明內(nèi)容
此處公開的發(fā)明使用算法來對向數(shù)據(jù)存儲介質(zhì)發(fā)布VIEEA進行管理。把對于多個主機而言非公共的VIEEA標識為非公共的VIEEA。如果非公共的VIEEA可用的話,那么向具有屬于特殊主機的CAP的卷序列號的數(shù)據(jù)存儲介質(zhì)分配非公共的VIEEA。如果沒有非公共的VIEEA可供盤盒利用,那么把公共VIEEA分配給所述盤盒。依照這種在分配公共VIEEA之前首先嘗試分配非公共的VIEEA的方式,不必把公共VIEEA從公共主機可用性中移除。也就是說,這些VIEEA將仍然處于可用的公共VIEEA的列表中。
根據(jù)隨后說明書中對本發(fā)明的描述,并且根據(jù)在所附權(quán)利要求書中特別指明的新穎性特征,本發(fā)明的各種其它目的和優(yōu)點將變得更加清楚。因此,為了實現(xiàn)如上所述的目標,本發(fā)明包括以下在附圖中舉例說明的、在優(yōu)選實施例的詳細說明中完整描述的、以及權(quán)利要求書中特別指明的特征。然而,這種附圖和描述只公開了可以實施本發(fā)明的各種方式中的幾種方式。
圖1是舉例說明包括多個主機計算機、結(jié)構(gòu)交換機、多個介質(zhì)存儲設(shè)備和庫控制器的存儲區(qū)域網(wǎng)絡(luò)的框圖。
圖2是舉例說明包括處理器、非易失性存儲器和隨機存取存儲器的庫控制器的主要組件的框圖。
圖3舉例說明了具有左手裝配間(service bay)、一個或多個存儲框架(storage frame)以及右手裝配間的自動數(shù)據(jù)存儲庫。
圖4示出了圖3的存儲框架的例子。
圖5舉例說明了圖3和4的自動數(shù)據(jù)存儲庫的內(nèi)部組件。
圖6A示出了圖5中介紹的驅(qū)動器的前部的視圖。
圖6B示出了圖6A的驅(qū)動器的后部的視圖。
圖7示出了示例性的可移除介質(zhì)盒。
圖8以框圖的形式舉例說明了依照本發(fā)明的某些實現(xiàn)方式的計算環(huán)境。
圖9是舉例說明了圖8中介紹的存取器控制卡的主要組件的框圖。
圖10是依照本發(fā)明舉例說明了分配的導(dǎo)入/導(dǎo)出元件地址的表的框圖。
圖11是依照本發(fā)明舉例說明了分配虛擬導(dǎo)入/導(dǎo)出元件地址的算法的決策樹。
具體實施例方式
本發(fā)明基于使用算法來管理虛擬導(dǎo)入/導(dǎo)出元件地址(VIEEA)的發(fā)布的思想??梢酝ㄟ^使用標準的編程或工程設(shè)計技術(shù)生成軟件、固件、硬件或者其任意組合,來將此處公開的發(fā)明實現(xiàn)為方法、設(shè)備或者制造物品來。此處使用的術(shù)語“制造物品”指的是依照硬件或者計算機可讀介質(zhì)實現(xiàn)的代碼或邏輯,其中計算機可讀介質(zhì)諸如為光學(xué)存儲設(shè)備和易失性或非易失性存儲器設(shè)備。這種硬件可以包括但不局限于現(xiàn)場可編程門陣列(“FPGA”)、專用集成電路(“ASIC”)、復(fù)雜可編程邏輯器件(“CPLD”)、可編程序邏輯陣列(“PLA”)、微處理器或者其它類似的處理設(shè)備。
參照附圖,其中相似的部分利用相同的參考標記和符號來表示,圖1是依照本發(fā)明一個實施例舉例說明了示例性的存儲區(qū)域網(wǎng)絡(luò)(“SAN”)99的各個方面的框圖。所述SAN 99被設(shè)計為交換訪問的網(wǎng)絡(luò)(switched-access-network),其中交換機67用來創(chuàng)建交換結(jié)構(gòu)(switching fabric)66。在本發(fā)明的這個實施例中,所述SAN 99是使用在光纖通道(“FC”)物理層上運行的小型計算機系統(tǒng)接口(SCSI)協(xié)議來實現(xiàn)的。然而,所述SAN 99也可以利用其它協(xié)議、諸如Infiniband、FICON、TCP/IP、以太網(wǎng)、千兆比特以太網(wǎng)或者iSCSI來實現(xiàn)。交換機67具有主機61、62、63、64、65和存儲部件90、92、94、96的地址。
主機計算機61、62、63、64、65分別利用與結(jié)構(gòu)66的I/O接口71、72、73、74、75與結(jié)構(gòu)66相連。I/O接口71-75可以是任何類型的I/O接口,例如,F(xiàn)C回路、到結(jié)構(gòu)66的直接附連、或者由主機計算機61-65使用的一條或多條信號線,以便向/從結(jié)構(gòu)66傳輸信息。結(jié)構(gòu)66包括例如用于連接兩個或更多計算機網(wǎng)絡(luò)的一個或多個FC交換機67。在一個實施例中,F(xiàn)C交換機67是常規(guī)的路由器交換機。
交換機67使主機計算機61-65與存儲設(shè)備90、92、94和96跨越相應(yīng)I/O接口76-79互連。I/O接口76-79可以是任何類型的I/O接口,例如,光纖通道、Infiniband、千兆比特以太網(wǎng)、以太網(wǎng)、TCP/IP、iSCSI、SCSI I/O接口或者由FC交換機67使用的一條或多條信號線,以便向/從存儲設(shè)備90、92、94和96傳輸信息。在圖1所示出的例子中,存儲設(shè)備90、92和94被存放在自動存儲器庫98之內(nèi),并且存儲設(shè)備96是網(wǎng)絡(luò)附連存儲設(shè)備(“NAS”)。
自動數(shù)據(jù)存儲庫通常包括一個或多個控制器,用于指導(dǎo)所述庫的操作。所述控制器可以采用許多不同的形式,并且可以包括嵌入式系統(tǒng)、分布式控制系統(tǒng)、個人計算機、工作站等。圖2示出了典型的、具有處理器102、隨機存取存儲器(“RAM”)103、非易失性存儲器104、設(shè)備專用電路101和I/O接口105的庫控制器100。
作為選擇,所述RAM 103和/或非易失性存儲器104以及設(shè)備專用電路101和I/O接口105可以被包含在處理器102中。處理器102可以包括現(xiàn)成的微處理器、定制的處理器、FPGA、ASIC或者其它形式的獨立邏輯。RAM 103通常用于保存可變數(shù)據(jù)、堆棧數(shù)據(jù)、可執(zhí)行指令等。所述非易失性存儲器104可以包括任何類型的非易失性存儲器,諸如電可擦可編程只讀存儲器(“EEPROM”)、快閃可編程只讀存儲器(“PROM”)、電池備援RAM、硬盤驅(qū)動器或者其它類似設(shè)備。
所述非易失性存儲器104通常用于保存可執(zhí)行固件和任何非易失性數(shù)據(jù)。I/O接口105包括用于允許處理器102與控制器外部的設(shè)備進行通信的通信接口。I/O接口105的例子包括諸如RS-232或者USB(通用串行總線)的串行接口、SCSI(小型計算機系統(tǒng)接口)、光纖通道等。另外,I/O接口105可以包括諸如射頻(“RF”)或者紅外的無線接口。所述設(shè)備專用電路101提供了附加硬件,以便允許控制器100執(zhí)行獨特的功能,諸如對盤盒機械爪的電動機控制等。
設(shè)備專用電路101可以包括用于提供脈沖寬度調(diào)制(PWM)控制、模數(shù)轉(zhuǎn)換(ADC)、數(shù)模轉(zhuǎn)換(DAC)等的電子電路。另外,所有或者部分的設(shè)備專用電路101可以駐留在控制器100的外部。
圖3舉例說明了具有左手裝配間13、一個或多個存儲框架11以及右手裝配間14的自動數(shù)據(jù)存儲庫10。框架可以包括庫的擴展組件。框架可以被添加或移除以便擴展或者減少庫的大小和/或功能??蚣苓€可以包括存儲架、驅(qū)動器、導(dǎo)入/導(dǎo)出站、存取器、操作員面板等。
圖4示出了圖3中的存儲框架11、庫10的配置的例子。在此配置中,所述庫被設(shè)置為響應(yīng)于來自至少一個外部主機系統(tǒng)(未示出)的命令而訪問數(shù)據(jù)存儲介質(zhì)(未示出),并且包括在前壁17和后壁19上的多個存儲架16,用于存放容納有數(shù)據(jù)存儲介質(zhì)的數(shù)據(jù)存儲盤盒;至少一個數(shù)據(jù)存儲驅(qū)動器15,用于對于數(shù)據(jù)存儲介質(zhì)讀取和/或?qū)懭霐?shù)據(jù);以及第一存取器18,用于在多個存儲架16和數(shù)據(jù)存儲驅(qū)動器15之間傳送數(shù)據(jù)存儲介質(zhì)??蛇x地,存儲框架11可以包括操作員面板23或者其它用戶接口,諸如基于web的接口,其允許用戶與所述庫進行交互。
存儲框架11還可以包括上部I/O站24或者下部I/O站25,其允許在不干擾庫操作的情況下把數(shù)據(jù)存儲介質(zhì)插入庫中和/或從庫中移除。另外,庫10可以包含一個或多個存儲框架11,其每一個均具有可由第一存取器18存取的存儲架16。如上所述,所述存儲框架11可以利用不同組件來配置,這取決于所期望的功能。
存儲框架11的一種配置可以包括存儲架16、數(shù)據(jù)存儲驅(qū)動器15以及其它可選組件,以便存儲數(shù)據(jù)和從數(shù)據(jù)存儲盤盒中取出數(shù)據(jù)。第一存取器18包括用于抓取一個或多個數(shù)據(jù)存儲介質(zhì)的機械爪組合件20,并且還可以包括安裝在機械爪20上的條形碼掃描器22,或者諸如智能卡讀取器的讀取系統(tǒng)或者類似系統(tǒng),以便讀取關(guān)于數(shù)據(jù)存儲介質(zhì)的標識信息或者向盒式存儲器中寫入所述信息。
圖5舉例說明了圖3和4中的、采用了具有多個處理器節(jié)點的模塊的分布式系統(tǒng)的自動數(shù)據(jù)存儲庫10的內(nèi)部組件??梢詫崿F(xiàn)本發(fā)明的自動數(shù)據(jù)存儲庫的一個例子是IBM 3584 UltraScalable Tap Library(磁帶庫)。雖然已經(jīng)把庫10描述為分布式控制系統(tǒng),但是本發(fā)明同樣可應(yīng)用于采用其它控制配置、諸如一個或多個非分布式的庫控制器的庫。圖5中的庫包括一個或多個存儲框架11、左手裝配間13和右手裝配間14。
左手裝配間13是利用第一存取器18示出的。如上所述,第一存取器18包括機械爪組合件20,并且可以包括讀取系統(tǒng)22,以便讀取關(guān)于數(shù)據(jù)存儲介質(zhì)的標識信息或者向盒式存儲器寫入所述信息。右手裝配間14是利用第二存取器28示出的。第二存取器28包括機械爪組合件30,并且可以包括讀取系統(tǒng)32,以便讀取關(guān)于數(shù)據(jù)存儲介質(zhì)的標識信息或者向例如盒式存儲器寫入所述信息。如果第一存取器18或者其機械爪20等發(fā)生故障或者出現(xiàn)其它不能利用的情況,那么第二存取器28可以執(zhí)行第一存取器18的所有功能。兩個存取器18、28可以共用一條或多條機械通路,或者它們可以包括完全獨立的機械通路。在一個例子中,所述存取器18、28可以具備帶有獨立垂直導(dǎo)軌(rail)的公共水平導(dǎo)軌。將第一存取器18和第二存取器28描述為第一和第二,僅僅是為了描述的目的,并且此描述不意味著限制任一存取器與左手裝配間13或者右手裝配間14相關(guān)聯(lián)。另外,本發(fā)明可以利用少于或多于兩個的存取器來操作。
在示例性的庫中,第一存取器18和第二存取器28至少沿兩個方向(稱為水平“X”方向和垂直“Y”方向)來移動它們的機械爪,以便在存儲架16處取出并且抓取或者遞送和釋放所述數(shù)據(jù)存儲介質(zhì),并且在數(shù)據(jù)存儲驅(qū)動器15上加載和卸載所述數(shù)據(jù)存儲介質(zhì)。示例性的庫10接收來自一個或多個主機系統(tǒng)40、41、42或者例如圖1中示出的主機61-65的命令。諸如主機服務(wù)器之類的主機系統(tǒng)例如經(jīng)由一個或多個控制端口(未示出)在通路80上直接與所述庫進行通信,或者經(jīng)由一個或多個數(shù)據(jù)存儲驅(qū)動器15在通路81、82上與所述庫進行通信,由此來提供命令,以便例如在存儲架16(圖4)和數(shù)據(jù)存儲驅(qū)動器15之間存取特殊數(shù)據(jù)存儲介質(zhì)并且移動所述介質(zhì)。所述命令通常是用于標識介質(zhì)的邏輯指令和/或用于存取所述介質(zhì)的邏輯位置。
所述示例性的庫由分布式控制系統(tǒng)來控制,其中所述分布式控制系統(tǒng)用于接收來自主機的邏輯命令,確定所要求的動作,并且把所述動作轉(zhuǎn)換為第一存取器18和/或第二存取器28的物理移動。
在示例性的庫中,所述分布式控制系統(tǒng)包括多個處理器節(jié)點50,每個節(jié)點均具有一個或多個處理器。在分布式控制系統(tǒng)的一個例子中,通信處理器節(jié)點50可以位于存儲框架11中。通信處理器節(jié)點提供用于直接接收、或者經(jīng)由例如耦合至線路80的至少一個外部接口通過驅(qū)動器15來接收主機命令的通信鏈路。
所述通信處理器節(jié)點50另外還可以提供通信鏈路70以便與數(shù)據(jù)存儲驅(qū)動器15進行通信。所述通信處理器節(jié)點50可以位于框架11中,且靠近數(shù)據(jù)存儲驅(qū)動器15。另外,在分布式處理器系統(tǒng)的例子中,提供了一個或多個附加的工作處理器節(jié)點,其可以包括例如位于第一存取器18處并且經(jīng)由網(wǎng)絡(luò)60、157耦合至通信處理器節(jié)點50的工作處理器節(jié)點52。還可以提供位于第二存取器28處并且經(jīng)由網(wǎng)絡(luò)60、200耦合至通信處理器節(jié)點50的第二工作處理器節(jié)點252。每一工作處理器節(jié)點可以對所接收到的、從任何通信處理器節(jié)點廣播至工作處理器節(jié)點的命令作出響應(yīng),并且所述工作處理器節(jié)點還可以指導(dǎo)第一存取器18的操作,以提供移動命令??梢蕴峁Y處理器節(jié)點55,并且可以使其位于第一存取器18的XY系統(tǒng)中。XY處理器節(jié)點55耦合至網(wǎng)絡(luò)60、157,并且對所述移動命令作出響應(yīng),操作XY系統(tǒng)以定位機械爪20。同樣地,可以提供XY處理器節(jié)點255,并且可以使其位于第二存取器28的XY系統(tǒng)中。所述XY處理器節(jié)點255耦合至網(wǎng)絡(luò)60。
此外,可以在可選的操作員面板23處提供操作員面板處理器節(jié)點59,以便提供用于在操作員面板和通信處理器節(jié)點50、工作處理器節(jié)點52和XY處理器節(jié)點55之間進行通信的接口。
提供了具有公共總線60的網(wǎng)絡(luò),其用于耦合各個處理器節(jié)點。所述網(wǎng)絡(luò)可以包括魯棒的布線網(wǎng)絡(luò),諸如市場上可以購買到的控制器區(qū)域網(wǎng)絡(luò)(Controller Area Network,“CAN”)總線系統(tǒng),其是多點網(wǎng)絡(luò),具有例如由自動關(guān)聯(lián)(Automation Association,“CiA”)中的CAN所定義的標準存取協(xié)議和布線標準。正如本領(lǐng)域中普通技術(shù)人員所公知的那樣,在所述庫中可以應(yīng)用諸如以太網(wǎng)的其它網(wǎng)絡(luò)、或者諸如RF或者紅外的無線網(wǎng)絡(luò)系統(tǒng)。另外,還可以使用多個獨立的網(wǎng)絡(luò)來耦合各個處理器節(jié)點。
把通信處理器節(jié)點50經(jīng)由線路70耦合至存儲框架11的每個數(shù)據(jù)存儲驅(qū)動器15,以便與驅(qū)動器并且與主機系統(tǒng)40、41和42進行通信。作為選擇,所述主機系統(tǒng)可以在例如輸入端80上直接耦合至通信處理器節(jié)點50,或者可以耦合至控制端口設(shè)備(未示出),其中該控制端口設(shè)備利用類似于驅(qū)動器/庫接口的庫接口來把所述庫與主機系統(tǒng)相連。正如本領(lǐng)域中普通技術(shù)人員所公知的那樣,可以采用各種通信方案來與主機并且與數(shù)據(jù)存儲驅(qū)動器相通信。在圖5的示例中,主機連接80和81是SCSI總線。總線82包括光纖通道-判優(yōu)回路的例子,其為高速串行數(shù)據(jù)接口,以允許在比SCSI總線系統(tǒng)大得多的距離之上進行傳輸。
數(shù)據(jù)存儲驅(qū)動器15可以非常接近于通信處理器節(jié)點50,并且可以采用諸如SCSI的短距離通信方案,或者諸如光纖通道或者RS-422的串行連接。數(shù)據(jù)存儲驅(qū)動器15由此借助于線路70逐一地耦合至通信處理器節(jié)點50。作為選擇,數(shù)據(jù)存儲驅(qū)動器15可以經(jīng)由諸如公共總線網(wǎng)絡(luò)的一個或多個網(wǎng)絡(luò)耦合至通信處理器節(jié)點50。
在圖5中,網(wǎng)格總線通信704經(jīng)由網(wǎng)絡(luò)60與通信處理器節(jié)點50相連。經(jīng)由通信處理器節(jié)點50,主機40-42可以與網(wǎng)格總線通信704進行通信。參照圖5和圖7,主機40-42和/或通信處理器節(jié)點50可以無線地查詢存儲槽16中的可移除存儲介質(zhì)700的盒式存儲器703。這些查詢可以涉及核查存儲槽中的存儲介質(zhì),以便確保存儲介質(zhì)在存儲槽中的位置映射是正確的。存儲介質(zhì)的這種位置映射是十分重要的,以便存取器18和28可以直接進入所期望的存儲槽。該查詢還可以包括核查存儲槽16中的清潔(cleaner)盤盒的狀態(tài)。
可以提供附加的存儲框架11,并且每一個附加的存儲框架均耦合至相鄰的存儲框架。任何一個存儲框架11都可以包括通信處理器節(jié)點50、存儲架16、數(shù)據(jù)存儲驅(qū)動器15和網(wǎng)絡(luò)60。
在圖5和隨后的描述中,把第一和第二存取器分別與左手裝配間13和右手裝配間14相關(guān)聯(lián)。這僅僅是為了舉例說明的目的,并且未必是真實的關(guān)聯(lián)。另外,網(wǎng)絡(luò)157未必與左手裝配間13相關(guān)聯(lián),網(wǎng)絡(luò)200未必與右手裝配間14相關(guān)聯(lián)。取決于所述庫的設(shè)計,左手裝配間13和/或右手裝配間14未必是必需的。
圖6A和圖6B示出了驅(qū)動器15的前部501和后部502的視圖。在此例子中,驅(qū)動器15是安裝在驅(qū)動器箱體(canister)上的可移除介質(zhì)LTO(Linear Tape Open)磁帶驅(qū)動器。所述驅(qū)動器箱體可以包括用于容納驅(qū)動器15的殼體,用于使驅(qū)動器15附連于驅(qū)動器箱體、電子組件、接口電纜、接口連接器等的安裝裝置。本發(fā)明中的數(shù)據(jù)存儲驅(qū)動器可以包括任何可移除介質(zhì)驅(qū)動器,諸如磁帶或者光帶驅(qū)動器、磁盤或者光盤驅(qū)動器、電子介質(zhì)驅(qū)動器或者本領(lǐng)域已知的任何其它可移除介質(zhì)驅(qū)動器。
圖7示出了作為磁帶盒700的示例性可移除介質(zhì)盒。磁帶盒700包括上部盤盒外殼701、下部盤盒外殼702和滑動門706。當(dāng)把磁帶盒700插入驅(qū)動器15中時,滑動門706被滑動打開。當(dāng)磁帶盒700沒有使用時,滑動門706通常是關(guān)閉的,以便使碎屑和污染物不會隨意地進入磁帶盒700,并且不會使磁帶盒700之內(nèi)的磁帶受到損害。把磁帶盒700滑入驅(qū)動器15中的方向顯示為方向707。磁帶盒700還容納有盒式存儲器703,其位于印刷電路板705上。盒式存儲器703最好是與盤盒的側(cè)面以及盤盒的底部成45度角,以便允許驅(qū)動器15、存取器18和28以及網(wǎng)格總線通信704無線地存取盒式存儲器703中的內(nèi)容。作為替代的可移除介質(zhì)盒是光盤盒,其中所述光學(xué)介質(zhì)可以是諸如DVD-RAM(數(shù)字通用盤-隨機存取存儲器)或者DVD-RW(DVD讀寫)或者DVD-R(DVD寫入一次,DVD Write-Once)的相變介質(zhì)、磁光盤介質(zhì)、諸如CD-ROM(緊致盤-只讀存儲器)或者DVD-ROM的壓制(stamped)介質(zhì)。作為替代的可移除介質(zhì)盒容納有閃存或者硬盤驅(qū)動器。容納有硬盤驅(qū)動器的示例性的可移除介質(zhì)盒可參見第6,545,865號美國專利,該篇專利文件在此引入作為參考。
圖8以框圖的形式舉例說明了依照本發(fā)明的某些實現(xiàn)方式的計算環(huán)境。把自動數(shù)據(jù)存儲庫1000耦合至主機1002。在主機1002上運行有一個或多個應(yīng)用程序1004。主機1002向庫1000發(fā)送請求從盤盒中取出數(shù)據(jù)的請求。接口1026允許主機1002與操作員交換信息,并且其可以包括控制面板、視頻監(jiān)視器、計算機鍵盤/鼠標或者其它適當(dāng)?shù)娜?機接口。
主機1002使用位置-中心命令來管理庫1000中的數(shù)據(jù)。所述主機通過在系統(tǒng)中指定源和目的地位置來管理盤盒移動。源和目的地位置是元件地址(例如,用于主機介質(zhì)傳送元件、主機存儲元件、主機導(dǎo)入導(dǎo)出元件或者主機數(shù)據(jù)傳輸元件)。
主機元件地址包括“主機導(dǎo)入導(dǎo)出元件地址”(主機感知其為I/O槽)和“主機存儲元件地址”(主機感知其為存儲槽)。舉例來說,所述主機元件地址可以在利用主機1002配置庫1000時確定,并且通常往往不會改變。存在不同的基礎(chǔ)映射層,其把主機元件地址與實際的存儲槽相關(guān),該實際的存儲槽被稱為“物理元件地址”,并且可以表示存儲槽或者I/O槽。對于庫1000而言,此配置帶來了許多益處。
為了支持其依照主機元件地址對數(shù)據(jù)存儲庫1000進行的管理,主機1002維護主機目錄1024。所述主機目錄1024依照主機的視圖(view),利用存儲其中的任何盤盒來交叉引用每一個主機元件地址。所述主機目錄1024維護主機元件地址,并且相對于庫1000中的由主機元件地址表示的感知位置來交叉引用這些地址。在主機1002的操作期間,包括主機元件地址是表示“導(dǎo)入導(dǎo)出元件”還是“存儲元件”的這個信息可以是固定的。作為選擇,在主機目錄1024之內(nèi)可以有多個表。例如,對于每個感知到的元件類型,可以有一個表。
另外,主機目錄1024跟蹤所述主機元件地址是否包含盤盒,并且還跟蹤存儲在主機元件地址處的盤盒(如果存在的話)的標識。此信息可以包括盤盒的卷序列號。
數(shù)據(jù)存儲庫1000包括一個或多個驅(qū)動器1006,用于利用庫1000中的盤盒進行讀/寫操作。盤盒通過存取器1010向/從驅(qū)動器1006進行移動。
當(dāng)盤盒未被使用時,存儲槽1014用于收納盤盒。存儲槽1014包括架子或者其它數(shù)據(jù)存儲庫隔層(compartment)。每一存儲槽1014均具有物理元件地址,其由庫使用以便存取所述存儲槽。所述物理元件地址可以包括可由所述庫使用的任何編址方案。例如,物理位置的框架/列/行指定、空間座標、任意編號等。另外,被視作主機導(dǎo)入導(dǎo)出元件或者主機存儲元件的每一個存儲槽1014均可以具有主機元件地址,其由應(yīng)用程序使用以便存取該元件。
可以提供一個或多個I/O槽1012來把盤盒轉(zhuǎn)移至庫1000或者從中進行轉(zhuǎn)移。所述I/O槽1012包括為操作者標記、獲知、保留、定位或者指定的任何槽,以便把盤盒插入到庫1000中以及從中移除盤盒。通過使用I/O槽1012,操作者可以把盤盒引入庫1000中(“插入”操作),或者所述庫1000可以排出盤盒(“彈出”操作)。所述I/O槽1012可以在不干擾存取器1010或者驅(qū)動器1006操作的情況下(諸如經(jīng)由外部門)由操作者存取,不過這不是必需的。I/O槽1012的某些例子包括“通過”槽、運輸器、傳送器、被指定為I/O槽的正常存儲類型的槽等。
為了在驅(qū)動器1006、I/O槽1012和存儲槽1014之間移動盤盒,庫100包括諸如存取器1010的機器人。存取器1010可以由任何適當(dāng)?shù)谋P盒移動機構(gòu)、諸如機器人臂、集成的盤盒裝載設(shè)備、傳送器、可沿X-Y坐標系移動的機械爪等來實現(xiàn)。
所述庫1000在控制器1008的監(jiān)管下操作,其中控制器1008用于接收來自主機1002的命令。這些命令可以請求控制器1008把盤盒從一個主機元件地址移動到另一個主機元件地址。控制器1008通過諸如電線/電纜、一條或多條總線、光纖線路、無線傳輸、智能通信信道等的接口來與主機1002進行通信。除了這種構(gòu)成“控制”通路的主機-控制器接口以外,庫1000還包括用于在主機1002和驅(qū)動器1006之間運送數(shù)據(jù)的數(shù)據(jù)通路。所述控制通路和數(shù)據(jù)通路可以共用相同的接口,或者可以包括不同的接口。
控制器1008可以包括存取器控制卡1040,如圖9中所示的那樣。存取器控制卡可以包括數(shù)字數(shù)據(jù)處理機、邏輯電路、分立電路組件構(gòu)造或者其它自動機構(gòu),并且依照適當(dāng)?shù)木幊?、物理配置等來操作。為了提供特定的例子,控制?008可以包括IBM PowerPC處理器。在本發(fā)明的此實施例中,存取器控制卡1040包括處理器1042(例如,微處理器)、存儲器1044(例如,易失性存儲器設(shè)備)、網(wǎng)卡1048以及存儲設(shè)備1050(例如,非易失性存儲區(qū)域,諸如磁盤驅(qū)動器、光盤驅(qū)動器、磁帶驅(qū)動器、非易失性RAM等)。操作系統(tǒng)1045可以在存儲器1044中執(zhí)行。存儲設(shè)備1050可以包括內(nèi)部存儲設(shè)備或者附屬的或可網(wǎng)絡(luò)訪問的存儲設(shè)備。另外,存儲設(shè)備1050可以與諸如軟盤1052的制造物品進行接口,其中該制造物品包含諸如計算機程序1046的算法。依照本技術(shù)領(lǐng)域中已知的方式,把這些計算機程序1046從存儲設(shè)備1050載入存儲器1044,并且由處理器1042來執(zhí)行。
存取器控制卡1040可以包括所屬技術(shù)領(lǐng)域中已知的任何計算設(shè)備,諸如大型機、服務(wù)器、個人計算機、工作站、膝上型計算機、手持式計算機、電話設(shè)備、網(wǎng)絡(luò)設(shè)備、虛擬化設(shè)備、存儲控制器等??梢允褂盟鶎偌夹g(shù)領(lǐng)域中已知的任何處理器1042和操作系統(tǒng)1045。
返回參考圖8,表1016、1018和1020由控制器1008維護。所述表包括庫映射1016、庫狀態(tài)表1018、卷序列號表1020和分配的IEEA表1022。庫映射1016是用于把應(yīng)用程序的元件地址的視圖映射至庫的物理元件的視圖的表。所述庫映射1016包括邏輯庫編號、主機元件地址(即,由應(yīng)用程序使用的)、位置的感知類型(即,存儲元件或者導(dǎo)入導(dǎo)出元件)以及物理元件地址(即,由庫使用的)各列。主機元件地址由應(yīng)用程序使用,并且可以涉及主機存儲元件或者主機導(dǎo)入導(dǎo)出元件。
對于每個主機元件地址來說,如果已經(jīng)把物理元件地址與主機元件地址相關(guān)聯(lián),那么所述庫映射1016標識相應(yīng)的物理元件地址。庫狀態(tài)表1018具有物理元件地址、滿或空狀態(tài)、位置類型以及卷/序列號(即,卷序列號)各列。如上所述,物理元件地址是由所述庫內(nèi)部地使用的。卷序列號表1020具有卷/序列號、物理元件地址、邏輯庫編號和主機元件地址各列。在2003年8月22日由Frank David Gallo等人提出的公開號為20050043852、標題為“Method,system,andprogram for virtualization of data storage library addresses”的美國專利申請中,描述了對導(dǎo)入/導(dǎo)出元件地址進行虛擬化的技術(shù),該篇申請引入于此以供參考。
圖10中舉例說明了分配的IEEA表1022。此處,VIEEA的第一范圍1100對應(yīng)于如圖5中所示的第一主機系統(tǒng)40。第一范圍1100包括從1450開始并且以1452結(jié)束的連續(xù)的示例性VIEE地址。VIEEA的第二范圍1102是為第二主機系統(tǒng)41(其也在圖5中示出了)維護的。此第二范圍1102包括從1450開始并且以1454結(jié)束的示例性VIEE地址。因為VIEE地址1450-1452是第一范圍1100和第二范圍所公用的,所以把它們稱為公共VIEEA。因為只有第二范圍1102包括VIEE地址1453-1454,所以把這些地址稱為非公共的VIEEA。
在本發(fā)明的此實施例中,如圖11中的算法所示,每當(dāng)把盤盒放入I/O槽1012(圖8)時,在步驟1200,由控制器1008檢查其卷序列號,以便確定它是否屬于第一或者第二主機40、41的CAP。倘若如此,那么控制器1008檢查對應(yīng)于進行請求的主機的VIEEA的范圍,以便在步驟1202中確定是否有任何非公共的VIEEA可用。如果非公共的VIEEA可用,那么在步驟1204,把這些地址之一分配給數(shù)據(jù)存儲介質(zhì)。如果沒有非公共的VIEEA可用,或者如果卷序列號不屬于CAP,那么控制器1008在步驟1206中進行檢查以便確定公共VIEEA是否可用。如果公共VIEEA可用,那么在步驟1208,把這些地址之一分配給數(shù)據(jù)存儲介質(zhì)。否則,在步驟1210,對數(shù)據(jù)存儲介質(zhì)進行排隊,直到適當(dāng)?shù)腣IEEA變?yōu)榭捎脼橹埂?br>
數(shù)據(jù)管理系統(tǒng)領(lǐng)域的技術(shù)人員可以開發(fā)本發(fā)明的其它實施例。然而,使用先前說明書中已經(jīng)采用的術(shù)語和表達,是為了描述而非限制的目的,并且這不意味著使用這種術(shù)語和表達就是排除所示出的以及所描述的特征的等效物或其一部分,而且應(yīng)該意識到的是,本發(fā)明的范圍僅僅由隨后的權(quán)利要求書定義和限定。
權(quán)利要求
1.一種虛擬導(dǎo)入/導(dǎo)出元件編址系統(tǒng),包括包括處理器和存儲器設(shè)備的庫控制器,所述存儲器設(shè)備適于存儲對應(yīng)于多個主機設(shè)備分配的導(dǎo)入/導(dǎo)出元件地址的表,其中,如果非公共的虛擬導(dǎo)入/導(dǎo)出元件地址是可用的,那么所述處理器適于向?qū)儆诙鄠€主機設(shè)備的盤盒分配策略之一的數(shù)據(jù)存儲設(shè)備分配非公共的虛擬導(dǎo)入/導(dǎo)出元件地址。
2.如權(quán)利要求1所述的虛擬導(dǎo)入/導(dǎo)出元件編址系統(tǒng),其中,如果非公共的虛擬導(dǎo)入/導(dǎo)出元件地址是不可用的,而公共虛擬導(dǎo)入/導(dǎo)出元件地址是可用的,那么所述處理器還適于向所述數(shù)據(jù)存儲設(shè)備分配公共虛擬導(dǎo)入/導(dǎo)出元件地址。
3.如權(quán)利要求2所述的虛擬導(dǎo)入/導(dǎo)出元件編址系統(tǒng),其中,如果非公共的虛擬導(dǎo)入/導(dǎo)出元件地址是不可用的,并且公共虛擬導(dǎo)入/導(dǎo)出元件地址是不可用的,那么所述處理器還適于對數(shù)據(jù)存儲設(shè)備的虛擬元件地址分配進行排隊。
4.如權(quán)利要求1所述的虛擬導(dǎo)入/導(dǎo)出元件編址系統(tǒng),其中,所述數(shù)據(jù)存儲設(shè)備是磁帶盒。
5.一種自動數(shù)據(jù)存儲系統(tǒng),包括多個數(shù)據(jù)存儲設(shè)備;通信網(wǎng)絡(luò),適于把數(shù)據(jù)存儲設(shè)備連接至多個主機計算機;以及包括處理器和存儲器設(shè)備的庫控制器,所述存儲器設(shè)備適于存儲對應(yīng)于多個主機計算機分配的導(dǎo)入/導(dǎo)出元件地址的表,其中,如果非公共的虛擬導(dǎo)入/導(dǎo)出元件地址是可用的,那么所述處理器適于向?qū)儆诙鄠€主機計算機的盤盒分配策略之一的數(shù)據(jù)存儲設(shè)備分配非公共的虛擬導(dǎo)入/導(dǎo)出元件地址。
6.如權(quán)利要求5所述的自動數(shù)據(jù)存儲系統(tǒng),其中,如果非公共的虛擬導(dǎo)入/導(dǎo)出元件地址是不可用的,而公共虛擬導(dǎo)入/導(dǎo)出元件地址是可用的,那么所述處理器還適于向所述數(shù)據(jù)存儲設(shè)備分配公共虛擬導(dǎo)入/導(dǎo)出元件地址。
7.如權(quán)利要求6所述的自動數(shù)據(jù)存儲系統(tǒng),其中,如果非公共的虛擬導(dǎo)入/導(dǎo)出元件地址是不可用的,并且公共虛擬導(dǎo)入/導(dǎo)出元件地址是不可用的,那么所述處理器還適于對數(shù)據(jù)存儲設(shè)備的虛擬元件地址分配進行排隊。
8.如權(quán)利要求5所述的自動數(shù)據(jù)存儲系統(tǒng),其中,所述數(shù)據(jù)存儲設(shè)備是磁帶盒。
9.一種向數(shù)據(jù)存儲設(shè)備分配虛擬導(dǎo)入/導(dǎo)出元件地址的方法,包括如下步驟把數(shù)據(jù)存儲設(shè)備標識為屬于主機設(shè)備的盤盒分配策略;并且如果非公共的虛擬導(dǎo)入/導(dǎo)出元件地址是可用的,那么向所述數(shù)據(jù)存儲設(shè)備分配非公共的虛擬導(dǎo)入/導(dǎo)出元件地址。
10.如權(quán)利要求9所述的方法,還包括如下步驟如果非公共的虛擬導(dǎo)入/導(dǎo)出元件地址是不可用的,那么向所述數(shù)據(jù)存儲設(shè)備分配公共虛擬導(dǎo)入/導(dǎo)出元件地址。
11.如權(quán)利要求10所述的方法,還包括如下步驟如果非公共的虛擬導(dǎo)入/導(dǎo)出元件地址是不可用的,并且公共虛擬導(dǎo)入/導(dǎo)出元件地址是不可用的,那么對數(shù)據(jù)存儲設(shè)備的虛擬元件地址分配進行排隊。
12.如權(quán)利要求9所述的方法,其中,所述數(shù)據(jù)存儲設(shè)備是磁帶盒。
13.一種包括數(shù)據(jù)存儲介質(zhì)的制造物品,所述數(shù)據(jù)存儲介質(zhì)包括一組機器可讀指令,所述機器可讀指令可由處理設(shè)備來執(zhí)行以便實現(xiàn)一算法,所述算法包括如先前方法權(quán)利要求所述的任一方法的步驟。
全文摘要
一種用于在自動數(shù)據(jù)存儲庫中分配元件地址的方法,包括確定諸如磁帶盒的數(shù)據(jù)存儲設(shè)備是否屬于特殊主機的盤盒分配策略。如果是的話,則向數(shù)據(jù)存儲設(shè)備發(fā)布從一組非公共的虛擬導(dǎo)入/導(dǎo)出元件地址(如果此地址可用的話)中取出的虛擬導(dǎo)入/導(dǎo)出元件地址。如果沒有非公共地址可用,那么把公共虛擬導(dǎo)入/導(dǎo)出元件地址分配給所述數(shù)據(jù)存儲設(shè)備。如果公共或者非公共的地址都不可用,那么對數(shù)據(jù)存儲設(shè)備進行排隊,直到地址變?yōu)榭捎脼橹埂?br>
文檔編號G06F3/06GK1900902SQ20061010574
公開日2007年1月24日 申請日期2006年7月21日 優(yōu)先權(quán)日2005年7月22日
發(fā)明者弗蘭克·D·加羅奇-簡, 塞雷薩·M·洛佩斯, 史蒂文·N·皮爾斯, 蒂莫西·K·皮爾斯 申請人:國際商業(yè)機器公司