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

存儲(chǔ)介質(zhì)庫(kù)中存儲(chǔ)介質(zhì)的高效分布和選擇的方法和裝置制造方法

文檔序號(hào):6520063閱讀:235來(lái)源:國(guó)知局
存儲(chǔ)介質(zhì)庫(kù)中存儲(chǔ)介質(zhì)的高效分布和選擇的方法和裝置制造方法
【專利摘要】一種裝置,包括:網(wǎng)絡(luò)接口、存儲(chǔ)器、以及處理器。所述處理器與所述網(wǎng)絡(luò)接口和所述存儲(chǔ)器耦合。所述處理器被配置為:確定存儲(chǔ)介質(zhì)庫(kù)的狀態(tài)、以及至少部分基于存儲(chǔ)介質(zhì)庫(kù)的狀態(tài)確定存儲(chǔ)介質(zhì)庫(kù)內(nèi)多個(gè)可分布組件的分布。所述處理器還被配置為響應(yīng)于所述確定存儲(chǔ)介質(zhì)庫(kù)內(nèi)多個(gè)可分布組件的分布,發(fā)出根據(jù)所述分布而分布所述存儲(chǔ)介質(zhì)庫(kù)中所述多個(gè)可分布組件的命令。
【專利說(shuō)明】存儲(chǔ)介質(zhì)庫(kù)中存儲(chǔ)介質(zhì)的高效分布和選擇的方法和裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明主題的實(shí)施例一般地涉及大容量存儲(chǔ)系統(tǒng)的領(lǐng)域,并且更具體地涉及存儲(chǔ)介質(zhì)庫(kù)中存儲(chǔ)介質(zhì)的高效移動(dòng)。
【背景技術(shù)】
[0002]在諸如數(shù)據(jù)中心的處理大量數(shù)據(jù)的場(chǎng)景中使用大容量存儲(chǔ)系統(tǒng)。盡管這些大容量存儲(chǔ)系統(tǒng)中的許多使用大量單獨(dú)的存儲(chǔ)介質(zhì),并且被設(shè)計(jì)為在較少人力介入的情況下運(yùn)行,但是這些系統(tǒng)內(nèi)存儲(chǔ)介質(zhì)的移動(dòng)可能是緩慢并低效的。減少移動(dòng)存儲(chǔ)介質(zhì)所花費(fèi)的時(shí)間量可以減少特定軟件程序空閑等待移動(dòng)完成的時(shí)間量,并且減少移動(dòng)量可以對(duì)電力成本有積極影響。

【發(fā)明內(nèi)容】

[0003]本發(fā)明主題的實(shí)施例包括一種方法,其中確定存儲(chǔ)介質(zhì)庫(kù)內(nèi)多個(gè)可分布組件的分布。所述方法還根據(jù)所述分布,確定所述多個(gè)可分布組件當(dāng)前沒(méi)有遍布存儲(chǔ)介質(zhì)庫(kù)而分布。響應(yīng)于前述確定,發(fā)出一個(gè)或多個(gè)命令的集合,以根據(jù)所述分布將所述多個(gè)可分布組件的一個(gè)或多個(gè)移動(dòng)到存儲(chǔ)介質(zhì)庫(kù)的不同位置。
[0004]本發(fā)明主題的實(shí)施例包括一種方法,其中確定存儲(chǔ)介質(zhì)庫(kù)中驅(qū)動(dòng)的位置。響應(yīng)于所述確定,確定可用于被進(jìn)行讀或?qū)懙拇鎯?chǔ)介質(zhì)是否位于距所述驅(qū)動(dòng)的第一距離內(nèi)。如果確定所述存儲(chǔ)介質(zhì)不位于距所述驅(qū)動(dòng)的第一距離內(nèi),則確定第一存儲(chǔ)介質(zhì)是否位于距第一驅(qū)動(dòng)的第二距離內(nèi)。所述第二距離遠(yuǎn)于所述第一距離。如果確定所述存儲(chǔ)介質(zhì)位于距所述驅(qū)動(dòng)的第一距離內(nèi)或第二距離內(nèi),則使得所述存儲(chǔ)介質(zhì)可用于由第一驅(qū)動(dòng)讀或?qū)憽?br> [0005]本發(fā)明主題的實(shí)施例包括一種裝置。所述裝置包括:網(wǎng)絡(luò)接口 ;存儲(chǔ)器;以及處理器,與所述網(wǎng)絡(luò)接口和所述存儲(chǔ)器耦合。所述處理器被配置為確定存儲(chǔ)介質(zhì)庫(kù)的狀態(tài);以及確定存儲(chǔ)介質(zhì)庫(kù)內(nèi)多個(gè)可分布組件的分布。所述分布的確定至少部分基于存儲(chǔ)介質(zhì)庫(kù)的狀態(tài)。所述處理器還被配置為響應(yīng)于確定所述多個(gè)可分布組件的分布,發(fā)出根據(jù)所述分布而分布存儲(chǔ)介質(zhì)庫(kù)內(nèi)所述多個(gè)可分布組件的命令。
【專利附圖】

【附圖說(shuō)明】
[0006]通過(guò)參照附圖,本實(shí)施例可以得到更好地理解,并且各種目的、特征和優(yōu)點(diǎn)對(duì)于本領(lǐng)域技術(shù)人員而言將變得明顯。
[0007]圖1示出庫(kù)管理器與用于在帶庫(kù)內(nèi)分布臨時(shí)數(shù)據(jù)盤(pán)(scratch cartridge)的綜合穿梭裝置(shuttle complex)之間的交互。
[0008]圖2示出庫(kù)管理器可以執(zhí)行的用于將臨時(shí)數(shù)據(jù)盤(pán)分布到帶庫(kù)中的互連的庫(kù)串(library string)集合的示例操作的第一流程圖。
[0009]圖3示出庫(kù)管理器可以執(zhí)行的用于將臨時(shí)數(shù)據(jù)盤(pán)分布到帶庫(kù)中的互連的庫(kù)串集合的示例操作的第二流程圖。[0010]圖4示出被設(shè)計(jì)來(lái)高效地發(fā)現(xiàn)可用帶驅(qū)動(dòng)和臨時(shí)數(shù)據(jù)盤(pán)、最小化臨時(shí)數(shù)據(jù)盤(pán)行進(jìn)的距離的帶庫(kù)系統(tǒng)。
[0011]圖5示出庫(kù)管理器可執(zhí)行來(lái)找到可用帶驅(qū)動(dòng)和臨時(shí)數(shù)據(jù)盤(pán)的示例操作的流程圖。
[0012]圖6示出被設(shè)計(jì)來(lái)與其他請(qǐng)求的服務(wù)結(jié)合分布臨時(shí)數(shù)據(jù)盤(pán)的帶庫(kù)系統(tǒng)。
[0013]圖7示出庫(kù)管理器在服務(wù)其他請(qǐng)求時(shí)可以執(zhí)行來(lái)分布臨時(shí)數(shù)據(jù)盤(pán)的示例操作的流程圖。
[0014]圖8示出具有庫(kù)管理器的示例計(jì)算系統(tǒng)。
【具體實(shí)施方式】
[0015]下面的描述包括包含本發(fā)明主題的技術(shù)的示例性系統(tǒng)、方法、技術(shù)、指令序列和計(jì)算機(jī)程序產(chǎn)品。然而,要理解,所述實(shí)施例可以沒(méi)有這些特定細(xì)節(jié)而實(shí)踐。例如,盡管示例參考帶庫(kù),但是發(fā)明主題不限于此,并且還可以應(yīng)用于其他大容量存儲(chǔ)系統(tǒng)。在其他示例中,沒(méi)有詳細(xì)示出公知的指令實(shí)例、協(xié)議、結(jié)構(gòu)和技術(shù),以便不模糊描述。
[0016]大容量存儲(chǔ)系統(tǒng)可以采取許多形式。一個(gè)常見(jiàn)的形式是硬驅(qū)動(dòng)陣列。這在一次訪問(wèn)所有信息是有利的時(shí)候特別有用。另一種類型稱為存儲(chǔ)庫(kù)或存儲(chǔ)介質(zhì)庫(kù),其包含大量可移除存儲(chǔ)介質(zhì)以及多個(gè)可以對(duì)此可移除介質(zhì)進(jìn)行讀寫(xiě)的驅(qū)動(dòng)。當(dāng)需要存儲(chǔ)大量數(shù)據(jù)但是不經(jīng)常訪問(wèn)時(shí),存儲(chǔ)介質(zhì)庫(kù)特別有用。帶庫(kù)和帶盤(pán)分別是存儲(chǔ)介質(zhì)庫(kù)和存儲(chǔ)介質(zhì)的示例。因?yàn)槿绻谔囟愋偷拇鎯?chǔ)介質(zhì)庫(kù)的上下文中討論發(fā)明主題中包含的概念將更易于理解,所以以下將使用帶庫(kù)和帶盤(pán)。發(fā)明主題并不限于此,并且可以應(yīng)用于任何存儲(chǔ)介質(zhì)庫(kù)。
[0017]已經(jīng)開(kāi)發(fā)了允許易于擴(kuò)展和自動(dòng)化的功能性的帶庫(kù)技術(shù)。例如,各個(gè)帶庫(kù)系統(tǒng)被稱為庫(kù)框架(frame)。這些系統(tǒng)是包含一個(gè)或多個(gè)帶驅(qū)動(dòng)、帶盤(pán)、用于帶盤(pán)的存儲(chǔ)(以下稱為盤(pán))和能夠從其存儲(chǔ)位置移動(dòng)盤(pán)并將起插入未使用的帶驅(qū)動(dòng)(反之亦然)的機(jī)械臂或其他機(jī)構(gòu)的大的單一的系統(tǒng)。庫(kù)框架可以包含不同數(shù)量的帶驅(qū)動(dòng)和盤(pán)。例如,一個(gè)庫(kù)框架可包含五個(gè)帶驅(qū)動(dòng)和五十個(gè)盤(pán)。這是可能的,因?yàn)椴皇撬斜P(pán)都在一次使用,而是花費(fèi)大多數(shù)時(shí)間存儲(chǔ)。很可能的是,在同一時(shí)間僅小部分盤(pán)在使用中。
[0018]庫(kù)框架可以并排連接以形成庫(kù)串。帶框架在每側(cè)具有門(mén)或開(kāi)放空間,允許艙室(car )在各個(gè)庫(kù)框架之間移動(dòng)。因此,如果五個(gè)庫(kù)框架被安排在庫(kù)串中,則第一庫(kù)框架可以使用其機(jī)械臂來(lái)將帶放入艙室內(nèi)。艙室然后可以行進(jìn)到第五庫(kù)串,所述第五庫(kù)串然后可以使用其機(jī)械臂以移除盤(pán)并將其插入帶驅(qū)動(dòng)或存儲(chǔ)位置。庫(kù)串還可以通過(guò)穿梭連接(shuttleconnection)而連接以形成綜合穿梭裝置。穿梭連接連接至以行布置的至少兩個(gè)庫(kù)串,并允許艙室在庫(kù)串之間行進(jìn),類似于艙室在庫(kù)框架之間行進(jìn)一樣。以下將使用術(shù)語(yǔ)“帶庫(kù)”來(lái)指代綜合穿梭裝置,除非進(jìn)行特定的區(qū)分。
[0019]盤(pán)可以存在于至少兩種狀態(tài)下。第一狀態(tài)是可用于被任何請(qǐng)求的軟件程序?qū)懭氲谋P(pán)。這些可用盤(pán)(以下稱為“臨時(shí)數(shù)據(jù)盤(pán)”)可以是自從被添加到帶庫(kù)還沒(méi)有被寫(xiě)入的新盤(pán)或者是之前被軟件程序?qū)懭氲辉傩枰谋P(pán)。第二種是被分配給特定軟件程序的盤(pán)。這些盤(pán)(以下稱為“已分配盤(pán)”)已經(jīng)被特定軟件程序?qū)懭?,并且可以從未?lái)的某個(gè)點(diǎn)讀取。已分配盤(pán)被限制于由其被分配到的軟件程序使用。
[0020]帶庫(kù)可以由設(shè)計(jì)為從對(duì)盤(pán)進(jìn)行讀寫(xiě)的軟件提取帶庫(kù)操作的軟件進(jìn)行管理。管理帶庫(kù)的軟件或系統(tǒng)稱為“庫(kù)管理器”。庫(kù)管理器可以作為帶庫(kù)的組件而存在,或者可以在帶庫(kù)之外而存在,但是可以以允許在帶庫(kù)和庫(kù)管理器之間通信的方式連接。當(dāng)以下使用術(shù)語(yǔ)“帶庫(kù)”時(shí),其包括庫(kù)管理器。當(dāng)引用與帶庫(kù)通信的庫(kù)管理器時(shí),庫(kù)管理器正與帶庫(kù)內(nèi)的其他組件通信,并且不描述為分開(kāi)的實(shí)體。
[0021 ] 庫(kù)管理器可以提供用于其他軟件的接口,其使得使用帶庫(kù)比如果將軟件直接與帶庫(kù)接口連接時(shí)的情況更容易。例如,替代搜索所有單獨(dú)的盤(pán)和驅(qū)動(dòng)來(lái)找到可用者,軟件從庫(kù)管理器請(qǐng)求文件處理。庫(kù)管理器然后找到適當(dāng)?shù)谋P(pán)和驅(qū)動(dòng),指示帶庫(kù)將盤(pán)安裝到驅(qū)動(dòng)中,并且提供文件處理,所述文件處理當(dāng)寫(xiě)入時(shí)將數(shù)據(jù)寫(xiě)入適當(dāng)驅(qū)動(dòng)。
[0022]將盤(pán)從庫(kù)串內(nèi)的源位置移動(dòng)到目標(biāo)位置所需的平均時(shí)間可以小于十秒。將盤(pán)從一個(gè)庫(kù)串內(nèi)的源位置移動(dòng)到相鄰庫(kù)串內(nèi)的目標(biāo)位置所需的時(shí)間可以是接近四十秒。平均時(shí)間隨著進(jìn)一步的擴(kuò)展而增加。因此,如果盤(pán)位于一個(gè)遠(yuǎn)離可用驅(qū)動(dòng)的庫(kù)串中,則請(qǐng)求盤(pán)的使用的程序可能等待接近四十秒。
[0023]等待將盤(pán)安裝到帶驅(qū)動(dòng)所花費(fèi)的時(shí)間是不能花費(fèi)來(lái)處理數(shù)據(jù)或?qū)崿F(xiàn)任務(wù)的時(shí)間。帶庫(kù)在來(lái)回移動(dòng)盤(pán)時(shí)不能完成其他請(qǐng)求,使得問(wèn)題進(jìn)一步復(fù)雜。此外,電力構(gòu)成大數(shù)據(jù)中心的最大成本之一,因此,通過(guò)降低用電量而優(yōu)化現(xiàn)有解決方案可能對(duì)電力成本有影響。運(yùn)營(yíng)帶庫(kù)中所涉及的移動(dòng)越多,使用的電力越多。因此,降低等待請(qǐng)求花費(fèi)的時(shí)間量和用電量可以是對(duì)于利用帶庫(kù)的設(shè)施的重要目標(biāo)。
[0024]可以使用各種度量來(lái)測(cè)量帶庫(kù)的性能。例如,如上所述,可以使用軟件程序等待帶庫(kù)服務(wù)請(qǐng)求的時(shí)間量。這可以與數(shù)據(jù)吞吐率和其他方面結(jié)合以確定服務(wù)請(qǐng)求所需的總時(shí)間長(zhǎng)度。此外,如上所述,電力使用量和成本可以是有用的度量。也可以使用這些的間接度量。例如,跟蹤服務(wù)請(qǐng)求時(shí)盤(pán)行進(jìn)的距離可以用于測(cè)量帶庫(kù)的效率,因?yàn)橥ǔP羞M(jìn)的距離越長(zhǎng),花費(fèi)的時(shí)間越長(zhǎng)。類似的,通常,需要的移動(dòng)越多,需要的電力越多。因此,總移動(dòng)的降低可以帶來(lái)更快更高效的操作以及更低的開(kāi)銷。
[0025]此外,帶庫(kù)的目標(biāo)可以是當(dāng)沒(méi)有請(qǐng)求未決時(shí)來(lái)回移動(dòng)各種組件。例如,如果軟件程序?qū)ΡP(pán)進(jìn)行請(qǐng)求,則在使得其可用之前移動(dòng)此盤(pán)所花費(fèi)的任何時(shí)間是軟件程序正等待的時(shí)間。如果沒(méi)有請(qǐng)求未決,則帶庫(kù)可以將此盤(pán)移動(dòng)得更接近可用帶驅(qū)動(dòng),減少響應(yīng)于請(qǐng)求的行進(jìn)量,因此減少軟件程序等待的時(shí)間量。換言之,如果帶庫(kù)可以在實(shí)際請(qǐng)求之前預(yù)期盤(pán)的移動(dòng),則帶庫(kù)可以通過(guò)在沒(méi)有請(qǐng)求未決時(shí)移動(dòng)盤(pán)而減少軟件程序等待的時(shí)間量。
[0026]帶庫(kù)可以被設(shè)計(jì)為提高定位和移動(dòng)臨時(shí)數(shù)據(jù)盤(pán)到已經(jīng)被選擇用于使用的驅(qū)動(dòng)的效率。通過(guò)根據(jù)特定分布而分布臨時(shí)數(shù)據(jù)盤(pán),帶庫(kù)減少當(dāng)被軟件程序請(qǐng)求時(shí)臨時(shí)數(shù)據(jù)盤(pán)行進(jìn)至到達(dá)可用驅(qū)動(dòng)的距離。減少臨時(shí)數(shù)據(jù)盤(pán)行進(jìn)以服務(wù)軟件程序請(qǐng)求的距離減少了軟件程序等待的時(shí)間量。
[0027]圖1示出庫(kù)管理器和用于在帶庫(kù)內(nèi)分布臨時(shí)數(shù)據(jù)盤(pán)的綜合穿梭裝置之間的交互。圖1包括帶庫(kù)系統(tǒng)100,包括庫(kù)管理器102和綜合穿梭裝置110。綜合穿梭裝置110包括三個(gè)庫(kù)串:庫(kù)串A、庫(kù)串B和庫(kù)串C。每個(gè)庫(kù)串的表示被分為三個(gè)部分,一個(gè)用于臨時(shí)數(shù)據(jù)盤(pán)112的集合,一個(gè)用于已分配盤(pán)114的集合,并且一個(gè)用于帶驅(qū)動(dòng)116的集合。所有集合112、114和116可以是空的。每個(gè)庫(kù)串以一種方式連接,其允許諸如通過(guò)穿梭連接(未示出)將盤(pán)從任何庫(kù)串移動(dòng)到任何另外的庫(kù)串。
[0028]階段A表示帶庫(kù)的開(kāi)始狀態(tài)。庫(kù)串A中存在十一個(gè)臨時(shí)數(shù)據(jù)盤(pán),并且?guī)齑瓸或庫(kù)串C中沒(méi)有臨時(shí)數(shù)據(jù)盤(pán)。庫(kù)串A中有八個(gè)已分配盤(pán),庫(kù)串B中有五個(gè)已分配盤(pán),并且?guī)齑瓹中有七個(gè)已分配盤(pán)。庫(kù)串A中有兩個(gè)帶驅(qū)動(dòng),在庫(kù)串B中有一個(gè)帶驅(qū)動(dòng),并且?guī)齑瓹中有兩個(gè)帶驅(qū)動(dòng)。
[0029]在諸如階段A中在一個(gè)庫(kù)串中有非常大數(shù)量的臨時(shí)數(shù)據(jù)盤(pán)的場(chǎng)景是不常見(jiàn)的。庫(kù)串的常見(jiàn)配置包括一個(gè)具有輸入輸出插槽的庫(kù)框架,所述輸入輸出插槽用于將盤(pán)插入帶庫(kù)和從帶庫(kù)移除盤(pán)。當(dāng)擴(kuò)展帶庫(kù)以包括多個(gè)庫(kù)串時(shí),額外的庫(kù)串可能沒(méi)有具有輸入輸出插槽的庫(kù)框架,因?yàn)楸P(pán)可以從具有輸入輸出插槽的庫(kù)串移動(dòng)到其他庫(kù)串。因此,當(dāng)管理員插入盤(pán)時(shí),他們將全部以具有輸入輸出插槽的庫(kù)串開(kāi)始,潛在地產(chǎn)生了所有臨時(shí)數(shù)據(jù)盤(pán)在單個(gè)庫(kù)串中的場(chǎng)景。
[0030]在階段B,庫(kù)管理器102確定綜合穿梭裝置110的當(dāng)前狀態(tài)。庫(kù)管理器102可以以各種方式實(shí)現(xiàn),并因此庫(kù)管理器102如何確定綜合穿梭裝置110的當(dāng)前狀態(tài)可以類似地變化。例如,庫(kù)管理器102可以維持表示綜合穿梭裝置110的狀態(tài)的數(shù)據(jù)。因?yàn)檐浖c庫(kù)管理器102而不是綜合穿梭裝置110通信,所以庫(kù)管理器102可以響應(yīng)于軟件請(qǐng)求更新表示綜合穿梭裝置110的狀 態(tài)的數(shù)據(jù)。在這些實(shí)現(xiàn)中,庫(kù)管理器102被通知綜合穿梭裝置110并非響應(yīng)于來(lái)自庫(kù)管理器102的請(qǐng)求而進(jìn)行的任何行動(dòng)。在其他實(shí)現(xiàn)方式中,庫(kù)管理器102可以以規(guī)則的間隔輪詢綜合穿梭裝置110,以得到綜合穿梭裝置110的當(dāng)前狀態(tài)。這可以涉及輪詢綜合穿梭裝置110或輪詢每個(gè)單獨(dú)的庫(kù)串。此外,庫(kù)管理器102可以確定在請(qǐng)求時(shí)綜合穿梭裝置110的狀態(tài)。
[0031]在階段C,庫(kù)管理器102確定是否應(yīng)當(dāng)將任何臨時(shí)數(shù)據(jù)盤(pán)分布到其他庫(kù)串。例如,庫(kù)管理器102可以確定因?yàn)閹?kù)串B和庫(kù)串C在階段A沒(méi)有任何臨時(shí)數(shù)據(jù)盤(pán),所以至少一個(gè)臨時(shí)數(shù)據(jù)盤(pán)可以從庫(kù)串A移動(dòng)到庫(kù)串B和庫(kù)串C。庫(kù)管理器102然后發(fā)送一系列指令到綜合穿梭裝置110或綜合穿梭裝置110的各個(gè)組件以便重分布臨時(shí)數(shù)據(jù)盤(pán)112。
[0032]階段D示出在庫(kù)管理器102已經(jīng)發(fā)出一系列指令到綜合穿梭裝置110以將一個(gè)臨時(shí)數(shù)據(jù)盤(pán)從庫(kù)串A分布到庫(kù)串B和庫(kù)串C之后的綜合穿梭裝置110。特定系列指令將根據(jù)實(shí)施方式而變化。例如,在實(shí)現(xiàn)小計(jì)算機(jī)系統(tǒng)接口(Small Computer System Interface,SCSI)的帶庫(kù)中,庫(kù)管理器102可以發(fā)出兩個(gè)“移動(dòng)介質(zhì)”命令,指定要移動(dòng)的介質(zhì)(指定臨時(shí)數(shù)據(jù)盤(pán))和目標(biāo)庫(kù)串(庫(kù)串B和庫(kù)串C)。
[0033]此實(shí)施例提供了滿足盡可能多的庫(kù)串具有至少一個(gè)臨時(shí)數(shù)據(jù)盤(pán)的基本條件的技術(shù)。如果臨時(shí)數(shù)據(jù)盤(pán)112的數(shù)量小于庫(kù)串的數(shù)量,則至少一個(gè)庫(kù)串將沒(méi)有臨時(shí)數(shù)據(jù)盤(pán),但是這對(duì)于任何實(shí)施例都是成立的。此外,在庫(kù)串中僅有一個(gè)臨時(shí)數(shù)據(jù)盤(pán)意味著如果此庫(kù)串中的帶驅(qū)動(dòng)可用并且此庫(kù)串中的臨時(shí)數(shù)據(jù)盤(pán)用于滿足請(qǐng)求,則庫(kù)串沒(méi)有更多臨時(shí)數(shù)據(jù)盤(pán)。庫(kù)管理器102然后將另一臨時(shí)數(shù)據(jù)盤(pán)分布到可用的庫(kù)串。在短時(shí)間段內(nèi)有許多對(duì)于臨時(shí)數(shù)據(jù)盤(pán)的請(qǐng)求的場(chǎng)景中,庫(kù)管理器102仍然可以結(jié)束從其他庫(kù)串傳送臨時(shí)數(shù)據(jù)盤(pán)。
[0034]階段E示出了在庫(kù)管理器102已經(jīng)發(fā)出了一系列指令至綜合穿梭裝置110以盡可能均勻地分布臨時(shí)數(shù)據(jù)盤(pán)112之后的綜合穿梭裝置110。庫(kù)管理器102試圖分布臨時(shí)數(shù)據(jù)盤(pán)112,使得每個(gè)庫(kù)串具有同等數(shù)量的臨時(shí)數(shù)據(jù)盤(pán)。因此,庫(kù)管理器102將臨時(shí)數(shù)據(jù)盤(pán)112的總數(shù)除以庫(kù)串的數(shù)量。如果庫(kù)串的數(shù)量能夠整除臨時(shí)數(shù)據(jù)盤(pán)112的總數(shù),則每個(gè)庫(kù)串中臨時(shí)數(shù)據(jù)盤(pán)112的數(shù)量將是相等的。如果庫(kù)串的數(shù)量不能整除臨時(shí)數(shù)據(jù)盤(pán)112的數(shù)量,如在此示例中,則至少一個(gè)庫(kù)串將比其他庫(kù)串具有更少的臨時(shí)數(shù)據(jù)盤(pán)112。在此示例中,有十一個(gè)臨時(shí)數(shù)據(jù)盤(pán)112和3個(gè)庫(kù)串。因此,兩個(gè)庫(kù)串將具有四個(gè)臨時(shí)數(shù)據(jù)盤(pán),并且一個(gè)庫(kù)串將具有三個(gè)臨時(shí)數(shù)據(jù)盤(pán)。
[0035]假設(shè)臨時(shí)數(shù)據(jù)盤(pán)的數(shù)量不小于庫(kù)串的數(shù)量,則此實(shí)施例對(duì)每個(gè)庫(kù)串提供了至少一個(gè)臨時(shí)數(shù)據(jù)盤(pán),并且可以對(duì)每個(gè)庫(kù)串提供多個(gè)臨時(shí)數(shù)據(jù)盤(pán)。因此,在使用庫(kù)串中的帶驅(qū)動(dòng)滿足單個(gè)請(qǐng)求之后庫(kù)串將沒(méi)有臨時(shí)數(shù)據(jù)盤(pán)的可能性較小。此技術(shù)導(dǎo)致與僅確保每個(gè)庫(kù)串有一個(gè)臨時(shí)數(shù)據(jù)盤(pán)的效率相等或更高。例如,假設(shè)庫(kù)串C中的兩個(gè)帶驅(qū)動(dòng)是唯一可用的帶驅(qū)動(dòng)116,并且?guī)旃芾砥?02接收兩個(gè)對(duì)于臨時(shí)數(shù)據(jù)盤(pán)112的請(qǐng)求。如階段D所示出的綜合穿梭裝置110將能夠滿足一個(gè)請(qǐng)求,然后將從另一庫(kù)串移動(dòng)一個(gè)臨時(shí)數(shù)據(jù)盤(pán)。因此,庫(kù)串C在滿足兩個(gè)請(qǐng)求之后將沒(méi)有臨時(shí)數(shù)據(jù)盤(pán)。另一方面,如階段E所示的綜合穿梭裝置110將能夠滿足兩個(gè)請(qǐng)求,而不用從另一庫(kù)串移動(dòng)臨時(shí)數(shù)據(jù)盤(pán),導(dǎo)致更高效的操作。此外,庫(kù)串C在滿足兩個(gè)請(qǐng)求之后將仍然具有兩個(gè)臨時(shí)數(shù)據(jù)盤(pán)。
[0036]然而,此實(shí)施例仍然可能在某些場(chǎng)景下導(dǎo)致低效操作。例如,假設(shè)帶庫(kù)具有兩個(gè)庫(kù)串,并且第一庫(kù)串具有十個(gè)帶驅(qū)動(dòng),第二庫(kù)串具有一個(gè)帶驅(qū)動(dòng)。具有空閑(free)帶驅(qū)動(dòng)的第一庫(kù)串的概率大于第二庫(kù)串。因此,如果均勻分布臨時(shí)數(shù)據(jù)盤(pán),則第一庫(kù)串將可能在第二庫(kù)串使用所有其臨時(shí)數(shù)據(jù)盤(pán)之前使用其所有臨時(shí)數(shù)據(jù)盤(pán)。因此,庫(kù)管理器然后將從第二庫(kù)串向第一庫(kù)串重分布臨時(shí)數(shù)據(jù)盤(pán)。此問(wèn)題通過(guò)與每個(gè)庫(kù)串中帶驅(qū)動(dòng)的數(shù)量成比例地分布臨時(shí)數(shù)據(jù)盤(pán)而解決。
[0037]階段F示出了在庫(kù)管理器102已經(jīng)發(fā)出一系列指令到綜合穿梭裝置110以與每個(gè)庫(kù)串中帶驅(qū)動(dòng)的數(shù)量成比例地分布臨時(shí)數(shù)據(jù)盤(pán)112之后的綜合穿梭裝置110。庫(kù)管理器102可以通過(guò)首先將帶庫(kù)中臨時(shí)數(shù)據(jù)盤(pán)的總數(shù)除以帶庫(kù)中帶驅(qū)動(dòng)的總數(shù)并取結(jié)果的底值(floor)而確定到達(dá)每個(gè)庫(kù)串的臨時(shí)數(shù)據(jù)盤(pán)的數(shù)量。庫(kù)管理器102然后取結(jié)果,并乘以每個(gè)庫(kù)串中帶驅(qū)動(dòng)的數(shù)量以得到各個(gè)庫(kù)串中臨時(shí)數(shù)據(jù)盤(pán)的數(shù)量。如果第一步驟中的數(shù)量導(dǎo)致分?jǐn)?shù)值,則將還剩下臨時(shí)數(shù)據(jù)盤(pán)。庫(kù)管理器102可以以各種方式分布這些,并且可以基于剩下多少臨時(shí)數(shù)據(jù)盤(pán)而改變方法。例如,庫(kù)管理器102可以從具有最大數(shù)量的帶驅(qū)動(dòng)的庫(kù)串開(kāi)始并且以降序進(jìn)行逐一分布剩余的臨時(shí)數(shù)據(jù)盤(pán)。如果臨時(shí)數(shù)據(jù)盤(pán)剩余的數(shù)量小,則庫(kù)管理器102可以將臨時(shí)數(shù)據(jù)盤(pán)留在其源庫(kù)串中,以避免花費(fèi)電力和從對(duì)于綜合穿梭裝置110的使用的未來(lái)請(qǐng)求潛在地分走時(shí)間。
[0038]在對(duì)應(yīng)于階段F的綜合穿梭裝置110的表示中,庫(kù)管理器102移動(dòng)兩個(gè)臨時(shí)數(shù)據(jù)盤(pán)到串B,并且移動(dòng)四個(gè)臨時(shí)數(shù)據(jù)盤(pán)到串C,在庫(kù)串A中剩下五個(gè)臨時(shí)數(shù)據(jù)盤(pán)。為了確定這些數(shù)量,庫(kù)管理器102首先將臨時(shí)數(shù)據(jù)盤(pán)的總數(shù)(11)除以帶驅(qū)動(dòng)的總數(shù)(5)。在取商的底數(shù)之后,這導(dǎo)致值“2”。庫(kù)管理器102然后將此值乘以每個(gè)庫(kù)串中帶驅(qū)動(dòng)的數(shù)量。因此,庫(kù)管理器確定四個(gè)臨時(shí)數(shù)據(jù)盤(pán)應(yīng)該進(jìn)入庫(kù)串A和庫(kù)串C中(2乘以2),并且兩個(gè)臨時(shí)數(shù)據(jù)盤(pán)應(yīng)該進(jìn)入庫(kù)串B中(2乘以I)。還剩余一個(gè)臨時(shí)數(shù)據(jù)盤(pán),其留在源庫(kù)串A中。盡管結(jié)果看起來(lái)與階段E中的結(jié)果非常接近,但是對(duì)于大量臨時(shí)數(shù)據(jù)盤(pán),結(jié)果在相似度上繼續(xù)分化。例如,如果存在22個(gè)臨時(shí)數(shù)據(jù)盤(pán),則階段E中使用的實(shí)施例將導(dǎo)致兩個(gè)庫(kù)串中7個(gè)臨時(shí)數(shù)據(jù)盤(pán)、一個(gè)庫(kù)串中8個(gè)臨時(shí)數(shù)據(jù)盤(pán)。階段F中使用的實(shí)施例將導(dǎo)致兩個(gè)庫(kù)串中8個(gè)臨時(shí)數(shù)據(jù)盤(pán)、一個(gè)庫(kù)串中4個(gè)臨時(shí)數(shù)據(jù)盤(pán)、兩個(gè)臨時(shí)數(shù)據(jù)盤(pán)待分布,如由庫(kù)管理器102所確定的。
[0039]由于帶庫(kù)使用的潛在隨機(jī)性質(zhì),沒(méi)有集合分布可以是最高效的。因此,庫(kù)管理器102可以跟蹤綜合穿梭裝置110的模式,并且在一些實(shí)施例中,庫(kù)管理器102可以使用使用模式來(lái)確定如何分布臨時(shí)數(shù)據(jù)盤(pán)。例如,庫(kù)管理器102可以確定第一庫(kù)串使用第二庫(kù)串兩倍的臨時(shí)數(shù)據(jù)盤(pán),盡管其具有相同數(shù)量的帶驅(qū)動(dòng)。庫(kù)管理器102然后可以基于使用模式,將其分布到第二庫(kù)串的帶驅(qū)動(dòng)兩倍多的帶驅(qū)動(dòng)分布到第一庫(kù)串。
[0040]此外,庫(kù)管理器102可以包括所有討論的實(shí)施例和技術(shù),并且在它們之間動(dòng)態(tài)選擇。例如,庫(kù)管理器102可以確定在某些使用下由庫(kù)串與每個(gè)庫(kù)串包含的帶驅(qū)動(dòng)成比例地使用臨時(shí)數(shù)據(jù)盤(pán)。因此,庫(kù)管理器102可以預(yù)期這些使用相應(yīng)分布盤(pán)。庫(kù)管理器102還可以確定在其他時(shí)間使用模式隨機(jī)出現(xiàn),并因此可以在這些庫(kù)串之間均勻分布臨時(shí)數(shù)據(jù)盤(pán)。
[0041]盡管上述示例涉及所有臨時(shí)數(shù)據(jù)盤(pán)在一個(gè)庫(kù)串中開(kāi)始的庫(kù)串的集合,但是發(fā)明主題不限于此。例如,三個(gè)庫(kù)串中的兩個(gè)可包含多個(gè)臨時(shí)數(shù)據(jù)盤(pán),而第三庫(kù)串一個(gè)也不包含。庫(kù)管理器102然后可以將臨時(shí)數(shù)據(jù)盤(pán)從兩個(gè)具有多個(gè)臨時(shí)數(shù)據(jù)盤(pán)的庫(kù)串分布到第三庫(kù)串。換言之,所移動(dòng)的特定臨時(shí)數(shù)據(jù)盤(pán)可以在任何庫(kù)串中開(kāi)始,并且被分布到任何其他庫(kù)串。
[0042]在庫(kù)串內(nèi)也可以應(yīng)用類似技術(shù)。例如,庫(kù)管理器102可以確保遍布庫(kù)串均勻分布臨時(shí)數(shù)據(jù)盤(pán),最大化臨時(shí)數(shù)據(jù)盤(pán)將位于具有可用帶驅(qū)動(dòng)的庫(kù)框架內(nèi)的概率。如果特定庫(kù)串具有五個(gè)庫(kù)框架和十個(gè)臨時(shí)數(shù)據(jù)盤(pán),則庫(kù)管理器102可以將兩個(gè)臨時(shí)數(shù)據(jù)盤(pán)分布到每個(gè)庫(kù)框架。還可以使用其他分布,諸如按驅(qū)動(dòng)數(shù)量和基于使用模式分布臨時(shí)數(shù)據(jù)盤(pán)。對(duì)于具有比庫(kù)框架少的臨時(shí)數(shù)據(jù)盤(pán)的庫(kù)串,可以以一種方式分布臨時(shí)數(shù)據(jù)盤(pán),使得最小化行進(jìn)到可用驅(qū)動(dòng)的距離,如上所述。
[0043]發(fā)明主題不限于臨時(shí)數(shù)據(jù)盤(pán)。類似的技術(shù)還可以應(yīng)用到分布已分配盤(pán)。一個(gè)庫(kù)串或庫(kù)框架中已分配盤(pán)的數(shù)量可以大于其他庫(kù)串或庫(kù)框架中已分配盤(pán)的數(shù)量。因此,可以使用與上述類似的技術(shù)分布這些已分配盤(pán)。
[0044]當(dāng)帶庫(kù)具有多個(gè)穿梭連接時(shí),可以使用類似技術(shù)。例如,假設(shè)綜合穿梭裝置110具有三個(gè)連接庫(kù)串A、庫(kù)串B和庫(kù)串C的穿梭連接。可以具有與位于一個(gè)庫(kù)串中的三個(gè)穿梭連接關(guān)聯(lián)的三個(gè)艙室。如果全部三個(gè)艙室位于庫(kù)串A中,并且臨時(shí)數(shù)據(jù)盤(pán)要從庫(kù)串C移動(dòng)到庫(kù)串A,則艙室之一一路行進(jìn)至庫(kù)串C以取回臨時(shí)數(shù)據(jù)盤(pán)。庫(kù)管理器102可以分布艙室,使得艙室和任一庫(kù)串之間的距離最小化,或更高效地執(zhí)行移動(dòng)。例如,如果有三個(gè)庫(kù)串和三個(gè)穿梭連接,則庫(kù)管理器102可以在每個(gè)庫(kù)串保持一個(gè)艙室。如果對(duì)于三個(gè)庫(kù)串僅有一個(gè)穿梭連接,則庫(kù)管理器102可以在庫(kù)串B中保持單個(gè)艙室,使得一個(gè)庫(kù)串初始移動(dòng)行進(jìn)的距離最大化。庫(kù)管理器102還可以使用使用模式來(lái)確定艙室的高效位置。例如,在具有三個(gè)穿梭連接和三個(gè)庫(kù)串的帶庫(kù)中,庫(kù)管理器102可以確定帶庫(kù)系統(tǒng)100從一個(gè)庫(kù)串取出臨時(shí)數(shù)據(jù)盤(pán)比從其他庫(kù)串取出臨時(shí)數(shù)據(jù)盤(pán)更頻繁。因此,庫(kù)管理器可以決定在保持較大量臨時(shí)數(shù)據(jù)盤(pán)的庫(kù)串中保持兩個(gè)艙室。
[0045]圖2和圖3示出庫(kù)管理器可以執(zhí)行來(lái)將臨時(shí)數(shù)據(jù)盤(pán)分布到帶庫(kù)中互連的庫(kù)串集合的示例連接的流程圖。
[0046]在塊200,庫(kù)管理器檢索帶庫(kù)狀態(tài)信息。帶庫(kù)狀態(tài)信息(狀態(tài)信息)可以提供關(guān)于帶庫(kù)配置的細(xì)節(jié),如在帶庫(kù)中存在多少庫(kù)串,在每個(gè)庫(kù)串中存在多少庫(kù)框架,每個(gè)組件如何互連等等。狀態(tài)信息還可以提供所有可移動(dòng)組件的當(dāng)前位置和任何未決或進(jìn)展中的操作。庫(kù)管理器可以檢索其需要的信息的子集,通過(guò)遍及處理在需要時(shí)檢索更多信息而補(bǔ)充信息。庫(kù)管理器可以通過(guò)從綜合穿梭裝置請(qǐng)求信息、通過(guò)將對(duì)于各塊信息的請(qǐng)求(單獨(dú)的或組合成一個(gè))發(fā)送到綜合穿梭裝置或通過(guò)將其維持在存儲(chǔ)器中而編譯所述信息,從而檢索狀態(tài)信息。在庫(kù)管理器檢索狀態(tài)信息之后,控制然后進(jìn)行到塊202。[0047]在塊202,庫(kù)管理器確定每個(gè)庫(kù)串應(yīng)當(dāng)具有的臨時(shí)數(shù)據(jù)盤(pán)的數(shù)量,其將基于所使用的分布而變化。例如,在上述第一分布中,庫(kù)管理器試圖在每個(gè)庫(kù)串中具有至少一個(gè)臨時(shí)數(shù)據(jù)盤(pán)。因此,對(duì)于每個(gè)庫(kù)串的臨時(shí)數(shù)據(jù)盤(pán)的總數(shù)是I。以下,將通過(guò)“#G0AL_SC”來(lái)標(biāo)識(shí)臨時(shí)數(shù)據(jù)盤(pán)的總數(shù)。對(duì)于此分布,唯一的目的是每個(gè)庫(kù)串具有一個(gè)臨時(shí)數(shù)據(jù)盤(pán)。因此,任何具有多于一個(gè)臨時(shí)數(shù)據(jù)盤(pán)的庫(kù)串將具有“剩余”臨時(shí)數(shù)據(jù)盤(pán)。對(duì)于此特定分布,可以忽略剩余的臨時(shí)數(shù)據(jù)盤(pán)。
[0048]在上述第二分布中,庫(kù)管理器試圖在庫(kù)串之間均勻分布臨時(shí)數(shù)據(jù)盤(pán)。因此,庫(kù)管理器通過(guò)將帶庫(kù)中的臨時(shí)數(shù)據(jù)盤(pán)的總數(shù)除以庫(kù)串的總數(shù)而確定#G0AL_SC。剩余的臨時(shí)數(shù)據(jù)盤(pán)的數(shù)量將是從確定#G0AL_SC而得的任何余數(shù)。因?yàn)槭S嗟呐R時(shí)數(shù)據(jù)盤(pán)的數(shù)量將小于庫(kù)串的數(shù)量,所以庫(kù)管理器可以選擇不分布剩余的臨時(shí)數(shù)據(jù)盤(pán)。在庫(kù)串的數(shù)量大并且很少庫(kù)串具有大部分臨時(shí)數(shù)據(jù)盤(pán)的實(shí)施方式中,庫(kù)管理器可以選擇將一個(gè)剩余的臨時(shí)數(shù)據(jù)盤(pán)分布到盡可能多的庫(kù)串。
[0049]在上述第三分布中,庫(kù)管理器試圖與每個(gè)庫(kù)串中帶驅(qū)動(dòng)的數(shù)量成比例地分布臨時(shí)數(shù)據(jù)盤(pán)。確定此的一種方式是將帶庫(kù)中臨時(shí)數(shù)據(jù)盤(pán)的總數(shù)除以帶庫(kù)中庫(kù)串的總數(shù),然后取結(jié)果的底值。此恒定值然后乘以每個(gè)庫(kù)串中帶驅(qū)動(dòng)的數(shù)量,以得到對(duì)于每個(gè)各自的庫(kù)串的#G0AL_SC。這與之前兩個(gè)分布不同在于每個(gè)庫(kù)串具有不同#G0AL_SC,而在之前的分布中,每個(gè)庫(kù)串具有相剩余臨時(shí)數(shù)據(jù)盤(pán)的數(shù)量將小于帶庫(kù)中帶驅(qū)動(dòng)的數(shù)量。庫(kù)管理器可以選擇不分布剩余臨時(shí)數(shù)據(jù)盤(pán),或可以選擇以各種方式分布它fl]。例如,庫(kù)管理器可以將剩余盤(pán)盡可能均勻地分布到每個(gè)庫(kù)串,或可以將它們分布到具有最大數(shù)量的帶驅(qū)動(dòng)的庫(kù)串中。
[0050]在上述第四分布中,庫(kù)管理器基于帶庫(kù)的使用模式確定分布。使用使用模式,庫(kù)管理器可以對(duì)每個(gè)庫(kù)串確定單獨(dú)的#G0AL_SC。例如,如果庫(kù)串確定第一庫(kù)串使用第二庫(kù)串的臨時(shí)數(shù)據(jù)盤(pán)兩倍多的臨時(shí)數(shù)據(jù)盤(pán),則庫(kù)管理器可以對(duì)第一庫(kù)串分配第二庫(kù)串兩倍多的臨時(shí)數(shù)據(jù)盤(pán)。這可以與庫(kù)串中帶驅(qū)動(dòng)的數(shù)量無(wú)關(guān)地發(fā)生。剩余的臨時(shí)數(shù)據(jù)盤(pán)的數(shù)量將基于使用模式而變化。由于通過(guò)基于使用歷史而確定分布所承受的增加的復(fù)雜度,庫(kù)管理器可以考慮臨時(shí)數(shù)據(jù)盤(pán)的總數(shù),因此一起消除剩余的臨時(shí)數(shù)據(jù)盤(pán)。在庫(kù)管理器已經(jīng)對(duì)每個(gè)庫(kù)串確定#G0AL_SC之后,控制然后進(jìn)行到塊204。
[0051]在塊204,庫(kù)管理器開(kāi)始第一循環(huán),其中其確定庫(kù)串具有大于其各自#G0AL_SC的數(shù)量的臨時(shí)數(shù)據(jù)盤(pán)。循環(huán)通過(guò)生成如果沒(méi)有已經(jīng)可用的所有庫(kù)串的列表而開(kāi)始。使得列表中的第一庫(kù)串是當(dāng)前庫(kù)串??刂迫缓筮M(jìn)行到塊206。
[0052]在塊206,庫(kù)管理器確定當(dāng)前庫(kù)串是否具有比當(dāng)前庫(kù)的#G0AL_SC更多的臨時(shí)數(shù)據(jù)盤(pán)。如果當(dāng)前庫(kù)串具有比當(dāng)前庫(kù)串的#G0AL_SC更多的臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊210。如果當(dāng)前庫(kù)串具有比此庫(kù)串的#G0AL_SC更少的臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊208。
[0053]在塊208,庫(kù)管理器將當(dāng)前庫(kù)串的指示(如標(biāo)識(shí)符)記錄到新列表(以下稱為M0VE_TO列表)。庫(kù)管理器還可以記錄位于當(dāng)前庫(kù)串中的臨時(shí)數(shù)據(jù)盤(pán)的當(dāng)前數(shù)量減去當(dāng)前庫(kù)串的#G0AL_SC。此值表示臨時(shí)數(shù)據(jù)盤(pán)的當(dāng)前數(shù)量與當(dāng)前庫(kù)串的盤(pán)的總數(shù)之間的差。以下此值將稱為特定庫(kù)串M0VE_T0列表上的所有庫(kù)串都將具有&#DIFF_SC??刂迫缓筮M(jìn)行到塊212。
[0054]如果在塊206庫(kù)管理器確定當(dāng)前庫(kù)串具有大于#G0AL_SC的數(shù)量的臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊210。在塊210,庫(kù)管理器將當(dāng)前庫(kù)串的指示(如標(biāo)識(shí)符)和當(dāng)前庫(kù)串的#DIFF_SC記錄到新列表,以下稱為MOVE_FROM列表。MOVE_FROM列表上的所有庫(kù)串將具有正#DIFF_SC??刂迫缓筮M(jìn)行到塊212。
[0055]控制從塊208和塊210進(jìn)行到塊212。在塊212,庫(kù)管理器確定在所有庫(kù)串的列表中是否存在更多庫(kù)串。如果在所有庫(kù)串的列表中存在更多庫(kù)串,則控制回到塊204。如果所有庫(kù)串已經(jīng)迭代過(guò),則控制進(jìn)行到塊214。
[0056]在塊214,第一循環(huán)結(jié)束。庫(kù)管理器將已經(jīng)迭代了每個(gè)庫(kù)串。庫(kù)管理器將具有兩個(gè)列表,M0VE_T0列表和M0VE_FR0M列表,每個(gè)指不庫(kù)串的不相交集(disjoint set)和各個(gè)#DIFF_SC值。已經(jīng)具有與其#G0AL_SC相等的數(shù)量的臨時(shí)數(shù)據(jù)盤(pán)的庫(kù)串將不出現(xiàn)在任一列表上??刂迫缓筮M(jìn)行到圖3中的塊316。
[0057]在塊316,庫(kù)管理器開(kāi)始第二循環(huán),其中,庫(kù)管理器將臨時(shí)數(shù)據(jù)盤(pán)從具有正#DIFF_SC的庫(kù)串分布到具有負(fù)#DIFF_SC臨時(shí)數(shù)據(jù)盤(pán)的那些庫(kù)串。所述循環(huán)通過(guò)選擇M0VE_T0列表的第一庫(kù)串作為當(dāng)前目標(biāo)庫(kù)串而開(kāi)始。M0VE_FR0M列表的第一庫(kù)串被選擇為當(dāng)前源庫(kù)串。在每個(gè)接下來(lái)通過(guò)的循環(huán)中,庫(kù)管理器選擇M0VE_T0列表中的下一庫(kù)串。控制然后進(jìn)行到塊 318。[0058]在塊318,庫(kù)管理器生成并發(fā)出移動(dòng)命令,指定臨時(shí)數(shù)據(jù)盤(pán)應(yīng)該從源庫(kù)移動(dòng)到目標(biāo)庫(kù)。有些實(shí)施方式可以生成命令,保存命令,然后最后發(fā)出所有移動(dòng)命令。如果庫(kù)管理器確定目標(biāo)庫(kù)串具有負(fù)#DIFF_SC值,則控制也回到塊318,創(chuàng)建對(duì)于當(dāng)前目標(biāo)庫(kù)串特定的分布循環(huán)??刂迫缓蠡氐綁K320。
[0059]在塊320,庫(kù)管理器遞減當(dāng)前源庫(kù)#0正?_5(:值并遞增當(dāng)前目標(biāo)庫(kù)#DIFF_SC值。遞減并遞增各個(gè)#DIFF_SC值反映了在發(fā)出移動(dòng)命令的情況下帶庫(kù)的當(dāng)前狀態(tài)。如果沒(méi)有發(fā)出移動(dòng)命令,則其反應(yīng)在移動(dòng)命令之后其將處于的帶庫(kù)的狀態(tài)??刂迫缓蠡氐綁K322。
[0060]在塊322,庫(kù)管理器確定對(duì)于當(dāng)前源庫(kù)串的#DIFF_SC值是否大于零。如果當(dāng)前源庫(kù)串具有大于零的#DIFF_SC值,則控制進(jìn)行到塊325。如果當(dāng)前源庫(kù)沒(méi)有大于零的#DIFF_SC值,則控制進(jìn)行到塊324。
[0061]在塊324,庫(kù)管理器將指示M0VE_FR0M列表中的當(dāng)前源庫(kù)串的指針移動(dòng)到M0VE_FROM列表中的下一庫(kù)串。因?yàn)楫?dāng)前源庫(kù)串不再具有多余臨時(shí)數(shù)據(jù)盤(pán),所以M0VE_FR0M列表中的下一庫(kù)串變?yōu)樾碌脑???刂迫缓筮M(jìn)行到塊325。
[0062]如果在塊322庫(kù)管理器確定當(dāng)前源庫(kù)串仍具有多余臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊325??刂埔矎膲K324進(jìn)行到塊325。在塊325,庫(kù)管理器確定當(dāng)前目標(biāo)串的#DIFF_SC值是否小于零。&#DIFF_SC值指示當(dāng)前目標(biāo)串具有比臨時(shí)數(shù)據(jù)盤(pán)的總數(shù)更少的臨時(shí)數(shù)據(jù)盤(pán)。如果庫(kù)管理器確定當(dāng)前目標(biāo)庫(kù)串具有負(fù)#DIFF_SC,則控制回到塊318。如果庫(kù)管理器確定當(dāng)前目標(biāo)庫(kù)串沒(méi)有負(fù)#DIFF_SC,則控制進(jìn)行到塊326。
[0063]在塊326,庫(kù)管理器將指示M0VE_T0列表中當(dāng)前目標(biāo)庫(kù)串的指針移動(dòng)到M0VE_T0列表中的下一庫(kù)串。因?yàn)楫?dāng)前目標(biāo)庫(kù)串不再具有比所述總數(shù)更少的臨時(shí)數(shù)據(jù)盤(pán),所以M0VE_T0列表中的下一庫(kù)串變?yōu)樾履繕?biāo)??刂迫缓筮M(jìn)行到塊327。
[0064]在塊327,庫(kù)管理器確定M0VE_T0列表中是否存在更多庫(kù)串。這可通過(guò)檢驗(yàn)M0VE_TO指針是否正指向列表中的最后的庫(kù)串而確定。如果庫(kù)管理器確定在M0VE_T0列表中有更多庫(kù)串,則控制回到塊316。如果庫(kù)管理器確定M0VE_T0列表中沒(méi)有更多庫(kù)串,則控制進(jìn)行到塊328。
[0065]在塊328,庫(kù)串結(jié)束臨時(shí)數(shù)據(jù)盤(pán)分布循環(huán)。臨時(shí)數(shù)據(jù)盤(pán)根據(jù)庫(kù)管理器使用的特定分布而在庫(kù)串之間分布,除了任何剩下的臨時(shí)數(shù)據(jù)盤(pán)外。庫(kù)管理器可以選擇如上所述分布剩余的臨時(shí)數(shù)據(jù)盤(pán)或按原樣留下它們。
[0066]當(dāng)程序請(qǐng)求使用臨時(shí)數(shù)據(jù)盤(pán)時(shí),庫(kù)管理器首先搜索臨時(shí)數(shù)據(jù)盤(pán)。在找到臨時(shí)數(shù)據(jù)盤(pán)之后,庫(kù)管理器然后搜索可用帶驅(qū)動(dòng)。如果在三個(gè)庫(kù)串的第一個(gè)中找到臨時(shí)數(shù)據(jù)盤(pán),并且唯一可用帶驅(qū)動(dòng)在第三個(gè)中,則庫(kù)管理器將臨時(shí)數(shù)據(jù)盤(pán)從第一庫(kù)串移動(dòng)到第三庫(kù)串。如果第三庫(kù)串具有臨時(shí)數(shù)據(jù)盤(pán),則此移動(dòng)不必要并且是低效的。
[0067]此外,如上所述,即使臨時(shí)數(shù)據(jù)盤(pán)的高效分布也不會(huì)使得帶庫(kù)使用更可預(yù)測(cè)。盡管一些程序?qū)⒁砸?guī)律間隔運(yùn)行,并且可以以可預(yù)測(cè)間隔請(qǐng)求帶庫(kù)的使用,但是許多程序不是這樣。因此,可能存在突發(fā)的、未預(yù)期的對(duì)于使用帶庫(kù)的請(qǐng)求的增長(zhǎng),使得庫(kù)管理器不能做好準(zhǔn)備。此外,即使當(dāng)程序以規(guī)律間隔運(yùn)行時(shí),程序讀或?qū)懙臄?shù)據(jù)量可能是不同的,導(dǎo)致不可預(yù)測(cè)的帶驅(qū)動(dòng)可用性。例如,在特定服務(wù)器上備份數(shù)據(jù)的備份程序可以每天相同時(shí)間運(yùn)行。但是許多備份程序進(jìn)行增量備份,僅備份從最近備份起改變的數(shù)據(jù)。因此,如果非常少的數(shù)據(jù)改變,則庫(kù)管理器選擇的特定帶驅(qū)動(dòng)可能被使用非常短的時(shí)間段。如果大部分?jǐn)?shù)據(jù)改變,則庫(kù)管理器選擇的特定帶驅(qū)動(dòng)可能被使用長(zhǎng)時(shí)間段。這種不可預(yù)測(cè)性可能導(dǎo)致庫(kù)管理器搜索包含不可用帶驅(qū)動(dòng)的庫(kù)串以外的臨時(shí)數(shù)據(jù)盤(pán)的場(chǎng)景。
[0068]圖4示出了被設(shè)計(jì)來(lái)高效找到可用帶驅(qū)動(dòng)和臨時(shí)數(shù)據(jù)盤(pán)、最小化臨時(shí)數(shù)據(jù)盤(pán)行進(jìn)的距離的帶庫(kù)系統(tǒng)。
[0069]圖4示出帶庫(kù)400,包括庫(kù)管理器402和三個(gè)庫(kù)串A、B和C。每個(gè)庫(kù)串的表示被分為三個(gè)部分,一個(gè)用于臨時(shí)數(shù)據(jù)盤(pán)412的集合,一個(gè)用于臨時(shí)數(shù)據(jù)盤(pán)414的集合,并且一個(gè)用于帶驅(qū)動(dòng)416的集合。集合412、414和416的任一可以是空的。每個(gè)庫(kù)串以一種方式連接,其允許諸如通過(guò)穿梭連接(未示出)將盤(pán)從任何庫(kù)串移動(dòng)到任何另外的庫(kù)串。
[0070]在階段A,庫(kù)管理器402選擇最近最少使用的帶驅(qū)動(dòng)。庫(kù)管理器402可以保持跟蹤各個(gè)帶驅(qū)動(dòng)和其使用,或可以查詢每個(gè)帶驅(qū)動(dòng)以發(fā)現(xiàn)每個(gè)帶驅(qū)動(dòng)最近是何時(shí)被使用的。在此示例中,庫(kù)串B中的帶驅(qū)動(dòng)是最近最少使用的帶驅(qū)動(dòng),因此被庫(kù)管理器402選擇。庫(kù)管理器402然后確定在與所選擇的帶驅(qū)動(dòng)相同的庫(kù)串中是否存在臨時(shí)數(shù)據(jù)盤(pán)。如果是,則庫(kù)管理器402使用來(lái)自與所選擇的帶驅(qū)動(dòng)相同的庫(kù)串的臨時(shí)數(shù)據(jù)盤(pán)。如果不是,則庫(kù)管理器402選擇下一最近最少使用的帶驅(qū)動(dòng)。
[0071]在階段B,庫(kù)管理器402選擇下一最近最少使用的帶驅(qū)動(dòng),位于庫(kù)串C中。庫(kù)管理器402再次確定與所選擇的帶驅(qū)動(dòng)相同的庫(kù)串中是否存在任何臨時(shí)數(shù)據(jù)盤(pán)。如果是,則庫(kù)管理器402使用來(lái)自與所選擇的帶驅(qū)動(dòng)相同的庫(kù)串的臨時(shí)數(shù)據(jù)盤(pán)。如果不是,則庫(kù)管理器402按照從最近最少使用到最近最常使用的順序繼續(xù)選擇可用帶驅(qū)動(dòng),并且確定相同庫(kù)串中是否存在臨時(shí)數(shù)據(jù)盤(pán)。如果它們位于與之前選擇的帶驅(qū)動(dòng)相同的庫(kù)串中,則庫(kù)管理器402可以跳過(guò)可用帶驅(qū)動(dòng),因?yàn)樗呀?jīng)確定在此庫(kù)串中沒(méi)有臨時(shí)數(shù)據(jù)盤(pán)。
[0072]在階段C,庫(kù)管理器402已經(jīng)選擇每個(gè)可用帶驅(qū)動(dòng)并確定在與可用帶驅(qū)動(dòng)相同的庫(kù)串中沒(méi)有臨時(shí)數(shù)據(jù)盤(pán)。庫(kù)管理器402再次選擇最近最少使用的帶驅(qū)動(dòng),位于庫(kù)串B中。庫(kù)管理器402然后確定任何相鄰庫(kù)串中是否存在臨時(shí)數(shù)據(jù)盤(pán)。如果相鄰庫(kù)串中存在臨時(shí)數(shù)據(jù)盤(pán),則庫(kù)管理器402選擇臨時(shí)數(shù)據(jù)盤(pán)。在此示例中,庫(kù)管理器找到庫(kù)串A中的臨時(shí)數(shù)據(jù)盤(pán)。[0073]在階段D,庫(kù)管理器402發(fā)出移動(dòng)命令,指示帶庫(kù)400將在階段C從庫(kù)串A找到的臨時(shí)數(shù)據(jù)盤(pán)移動(dòng)到庫(kù)串B。庫(kù)管理器402還發(fā)出安裝命令,指示帶庫(kù)400安裝在階段C找到的臨時(shí)數(shù)據(jù)盤(pán)。為了安裝臨時(shí)數(shù)據(jù)盤(pán),將臨時(shí)數(shù)據(jù)盤(pán)插入可用帶驅(qū)動(dòng)中。
[0074]在一些實(shí)施例中,如果在任一具有可用帶驅(qū)動(dòng)的庫(kù)串中沒(méi)有可用臨時(shí)數(shù)據(jù)盤(pán),則庫(kù)管理器402將如上所述選擇最近最少使用的帶驅(qū)動(dòng)。但是如果在相鄰庫(kù)串中沒(méi)有找到臨時(shí)數(shù)據(jù)盤(pán),則庫(kù)管理器402將不搜索距離較遠(yuǎn)的庫(kù)串。而是,庫(kù)管理器402將搜索可用驅(qū)動(dòng)的列表,直到找到另一庫(kù)串中的可用帶驅(qū)動(dòng)。庫(kù)管理器402然后將搜索與具有第二選擇的帶驅(qū)動(dòng)的庫(kù)串相鄰的庫(kù)串。同樣,如果在相鄰庫(kù)串中沒(méi)有找到臨時(shí)數(shù)據(jù)盤(pán),則庫(kù)管理器402將繼續(xù)搜索列表,直到其找到第三庫(kù)串中的第三可用帶驅(qū)動(dòng)。重復(fù)此過(guò)程,直到窮盡列表或在與可用驅(qū)動(dòng)相鄰的庫(kù)串中找到臨時(shí)數(shù)據(jù)盤(pán)。如果沒(méi)有找到臨時(shí)數(shù)據(jù)盤(pán),則重復(fù)過(guò)程,但是庫(kù)管理器402搜索距離兩個(gè)庫(kù)串遠(yuǎn)的庫(kù)串。此遞增的搜索半徑繼續(xù),直到找到臨時(shí)數(shù)據(jù)盤(pán)。
[0075]圖5示出庫(kù)管理器可以執(zhí)行來(lái)找到可用帶驅(qū)動(dòng)和臨時(shí)數(shù)據(jù)盤(pán)的示例操作的流程圖。
[0076]在塊500,庫(kù)管理器生成所有可用帶驅(qū)動(dòng)的列表。列表將用于以最近最少使用的順序找到可用帶驅(qū)動(dòng),因此可以從最近最少使用的帶驅(qū)動(dòng)到最近最常使用的帶驅(qū)動(dòng)進(jìn)行排序。庫(kù)管理器可以不要列表就完成此處理,輪詢每個(gè)帶驅(qū)動(dòng)以查看其是否可用以及其最近什么時(shí)候使用。在生成所有可用帶驅(qū)動(dòng)的列表之后,控制進(jìn)行到塊502。
[0077]在塊502,庫(kù)管理器開(kāi)始初始搜索循環(huán),其嘗試找到與可用帶驅(qū)動(dòng)相同的帶庫(kù)中的臨時(shí)數(shù)據(jù)盤(pán)。庫(kù)管理器初始化循環(huán),從塊500中生成的列表選擇最近最少使用的帶驅(qū)動(dòng)作為當(dāng)前臨時(shí)數(shù)據(jù)盤(pán)。如果沒(méi)有生成列表,則庫(kù)管理器直接搜索最近最少使用的帶驅(qū)動(dòng)的帶庫(kù)。在每個(gè)另外的通過(guò)循環(huán)中,庫(kù)管理器選擇位于還沒(méi)有檢查的庫(kù)串中的下一最近最少使用的可用帶驅(qū)動(dòng)??刂迫缓筮M(jìn)行到塊504。
[0078]在塊504,庫(kù)管理器確定在與當(dāng)前帶驅(qū)動(dòng)相同的庫(kù)串中是否存在臨時(shí)數(shù)據(jù)盤(pán)。庫(kù)管理器可以通過(guò)參考其保持跟蹤的帶庫(kù)狀態(tài)信息、輪詢庫(kù)串、或基于特定實(shí)現(xiàn)采取其他行動(dòng),而確定在與當(dāng)前帶驅(qū)動(dòng)相同的庫(kù)串中是否存在臨時(shí)數(shù)據(jù)盤(pán)。如果庫(kù)管理器確定在與當(dāng)前帶驅(qū)動(dòng)相同的庫(kù)串中存在臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊522。如果庫(kù)管理器確定在與當(dāng)前帶驅(qū)動(dòng)相同的庫(kù)串中不存在臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊506。
[0079]在塊506,庫(kù)管理器確定是否存在更多未檢驗(yàn)的可用帶驅(qū)動(dòng)。庫(kù)管理器將依賴于在塊500進(jìn)行的特定行動(dòng)進(jìn)行確定。為了更高效地搜索庫(kù)串,庫(kù)管理器將忽略在已經(jīng)在之前的迭代中檢驗(yàn)的庫(kù)串中的帶驅(qū)動(dòng)。如果庫(kù)管理器確定存在更多未檢驗(yàn)的可用帶驅(qū)動(dòng),則控制回到塊502。如果庫(kù)管理器確定沒(méi)有更多未檢驗(yàn)的可用帶驅(qū)動(dòng),則控制進(jìn)行到塊508。
[0080]在塊508,庫(kù)管理器結(jié)束第一臨時(shí)數(shù)據(jù)盤(pán)搜索循環(huán)。在過(guò)程中的此時(shí),庫(kù)管理器已經(jīng)搜索所有具有可用帶驅(qū)動(dòng)的庫(kù)串,并且發(fā)現(xiàn)沒(méi)有庫(kù)串有臨時(shí)數(shù)據(jù)盤(pán)。控制然后進(jìn)行到塊510。
[0081]在塊510,庫(kù)管理器開(kāi)始第二搜索循環(huán),其中搜索與最近最少使用的帶驅(qū)動(dòng)最接近的臨時(shí)數(shù)據(jù)盤(pán)。庫(kù)管理器通過(guò)選擇最近最少使用的帶驅(qū)動(dòng)并將變量N初始化為I而開(kāi)始循環(huán)。變量N表示與要搜索的包含最近最少使用的帶驅(qū)動(dòng)的庫(kù)串遠(yuǎn)離的庫(kù)串的數(shù)量。在每個(gè)另外的迭代,庫(kù)管理器遞增N??刂迫缓筮M(jìn)行到塊512。
[0082]在塊512,庫(kù)管理器確定是否存在與所選擇的帶驅(qū)動(dòng)距離N個(gè)庫(kù)串的臨時(shí)數(shù)據(jù)盤(pán)。在塊510開(kāi)始的第一通過(guò)循環(huán),N將是1,并因此庫(kù)管理器將對(duì)于臨時(shí)數(shù)據(jù)盤(pán)搜索相鄰庫(kù)串。在塊510開(kāi)始的第二通過(guò)循環(huán),N將是2,并因此庫(kù)管理器將搜索兩個(gè)庫(kù)串遠(yuǎn)的庫(kù)串。如果庫(kù)管理器確定存在與選擇的帶驅(qū)動(dòng)距離N個(gè)庫(kù)串的臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊520。如果庫(kù)管理器確定沒(méi)有與所選擇的帶驅(qū)動(dòng)N個(gè)庫(kù)串遠(yuǎn)的臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊514。
[0083]在塊514,庫(kù)管理器確定是否存在更多未檢驗(yàn)的庫(kù)串。庫(kù)管理器可以通過(guò)計(jì)算帶驅(qū)動(dòng)和邊緣庫(kù)串之間的庫(kù)串的數(shù)量而確定這一點(diǎn)。庫(kù)管理器然后選擇與最遠(yuǎn)邊緣庫(kù)串的距離,并將此距離與N進(jìn)行比較。如果N等于距最遠(yuǎn)邊緣庫(kù)串的距離,則已經(jīng)檢驗(yàn)所有庫(kù)串。如果庫(kù)管理器確定存在更多未檢驗(yàn)的庫(kù)串,則控制回到塊510。如果庫(kù)管理器確定沒(méi)有更多未檢驗(yàn)的庫(kù)串,則控制進(jìn)打到塊516。
[0084]在塊516,庫(kù)管理器完成第二搜索循環(huán)。庫(kù)管理器已經(jīng)找不到可用臨時(shí)數(shù)據(jù)盤(pán),因此所有盤(pán)都在使用中。控制然后進(jìn)行到塊518。
[0085]在塊518,庫(kù)管理器或者對(duì)請(qǐng)求使用臨時(shí)數(shù)據(jù)盤(pán)的程序發(fā)出報(bào)錯(cuò),或者延遲處理請(qǐng)求,直到臨時(shí)數(shù)據(jù)盤(pán)變?yōu)榭捎???梢宰龀鰣?bào)錯(cuò)或其他通知以警告操作員所有臨時(shí)數(shù)據(jù)盤(pán)都正在被使用。
[0086]如果庫(kù)管理器在塊512發(fā)現(xiàn)臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊520。在塊520,庫(kù)管理器發(fā)出移動(dòng)命令,將臨時(shí)數(shù)據(jù)盤(pán)從源庫(kù)串移動(dòng)到目標(biāo)庫(kù)串。目標(biāo)庫(kù)串是具有最近最少使用的帶驅(qū)動(dòng)的庫(kù)串??刂迫缓筮M(jìn)行到塊522。
[0087]如果庫(kù)管理器在塊504發(fā)現(xiàn)臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊522??刂七€從塊520進(jìn)行到塊522。在塊522,庫(kù)管理器發(fā)出安裝命令,指定可用帶驅(qū)動(dòng)和位于具有可用帶驅(qū)動(dòng)的庫(kù)串中的臨時(shí)數(shù)據(jù)盤(pán)。帶庫(kù)因此將臨時(shí)數(shù)據(jù)盤(pán)安裝到可用帶驅(qū)動(dòng)中,使得其可用于請(qǐng)求的程序。
[0088]優(yōu)化帶庫(kù)的臨時(shí)數(shù)據(jù)盤(pán)和其他組件的分布與優(yōu)化可用帶驅(qū)動(dòng)和臨時(shí)數(shù)據(jù)盤(pán)的選擇一起,可以提高帶庫(kù)的效率。但是通過(guò)利用各種組件的移動(dòng)以實(shí)現(xiàn)同時(shí)多任務(wù)可以獲得額外的效率。例如,如果臨時(shí)數(shù)據(jù)盤(pán)不均勻分布,則庫(kù)管理器可能希望以有效方式重分布它們,如上所述。但是如果庫(kù)管理器正在一次服務(wù)很大數(shù)量的請(qǐng)求,則庫(kù)管理器可能不能停止服務(wù)那些請(qǐng)求以重分布臨時(shí)數(shù)據(jù)盤(pán)。
[0089]當(dāng)帶庫(kù)服務(wù)請(qǐng)求時(shí),存在傳送盤(pán)的各種機(jī)構(gòu)在空的時(shí)候從一個(gè)位置移動(dòng)到另一個(gè)位置的情況。這可能是浪費(fèi)的移動(dòng)。例如,假設(shè)帶庫(kù)具有三個(gè)庫(kù)串。第一庫(kù)串包含十個(gè)臨時(shí)數(shù)據(jù)盤(pán)和用于單個(gè)穿梭連接的艙室。第三庫(kù)串不包含臨時(shí)數(shù)據(jù)盤(pán)。如果帶庫(kù)接收請(qǐng)求以從第三帶庫(kù)取到盤(pán)并將其移動(dòng)到另一個(gè),則艙室在從第一帶庫(kù)行進(jìn)到第三帶庫(kù)時(shí)將典型地是空的。但是,可以設(shè)計(jì)帶庫(kù),使得艙室將十個(gè)臨時(shí)數(shù)據(jù)盤(pán)之一從第一帶庫(kù)移動(dòng)到第三帶庫(kù),一次實(shí)現(xiàn)兩個(gè)目標(biāo)。
[0090]圖6示出了被設(shè)計(jì)來(lái)與其他請(qǐng)求的服務(wù)結(jié)合分布臨時(shí)數(shù)據(jù)盤(pán)的帶庫(kù)系統(tǒng)。圖6示出了帶庫(kù)600,包括庫(kù)管理器602和三個(gè)庫(kù)串A、B和C。每個(gè)庫(kù)串的表示被分為三個(gè)部分,一個(gè)用于臨時(shí)數(shù)據(jù)盤(pán)612的集合,一個(gè)用于已分配盤(pán)614的集合,并且一個(gè)用于帶驅(qū)動(dòng)616的集合。集合612、614和616的任一可以是空的。每個(gè)庫(kù)串以一種方式連接,其允許諸如通過(guò)穿梭連接(未示出)將盤(pán)從任何庫(kù)串移動(dòng)到任何另外的庫(kù)串。還示出了軟件程序604。
[0091]在階段A,軟件程序604從庫(kù)管理器602請(qǐng)求使用盤(pán)。此場(chǎng)景可以在軟件程序604之前請(qǐng)求臨時(shí)數(shù)據(jù)盤(pán)以向其寫(xiě)數(shù)據(jù)的時(shí)候發(fā)生。在軟件程序604完成寫(xiě)數(shù)據(jù)之后,庫(kù)管理器602將盤(pán)分配到軟件程序604。在一段時(shí)間之后,軟件程序604再次請(qǐng)求使用盤(pán)以讀取之前寫(xiě)入的數(shù)據(jù)或?qū)懭敫鄶?shù)據(jù)。庫(kù)管理器602在從軟件程序604接收到使用盤(pán)的請(qǐng)求之后,確定所請(qǐng)求的盤(pán)在庫(kù)串C中,并且可用帶驅(qū)動(dòng)在庫(kù)串B中。庫(kù)管理器602還確定穿梭連接艙室的位直。在此不例中,假設(shè)艙室在庫(kù)串A中。
[0092]在階段B,庫(kù)管理器602確定庫(kù)串C沒(méi)有臨時(shí)數(shù)據(jù)盤(pán)。庫(kù)管理器602可通過(guò)輪詢庫(kù)串、查找?guī)旃芾砥?02跟蹤的狀態(tài)數(shù)據(jù)中臨時(shí)數(shù)據(jù)盤(pán)的數(shù)量、或?qū)τ谔囟▽?shí)現(xiàn)所特定的其他方式,查詢特定庫(kù)串中臨時(shí)數(shù)據(jù)盤(pán)的數(shù)量。
[0093]在階段C,庫(kù)管理器602確定在庫(kù)串A (艙室的起始位置)中存在臨時(shí)數(shù)據(jù)盤(pán)。庫(kù)管理器602還確定將臨時(shí)數(shù)據(jù)盤(pán)移動(dòng)到庫(kù)串C可能對(duì)效率有有益的影響。例如,如果庫(kù)管理器602被配置為均勻分布臨時(shí)數(shù)據(jù)盤(pán),如上所述,則庫(kù)管理器602可以確定通過(guò)將臨時(shí)數(shù)據(jù)盤(pán)從庫(kù)串A移動(dòng)到庫(kù)串C,分布變得更接近均勻分布。因此,庫(kù)管理器602發(fā)出命令,將臨時(shí)數(shù)據(jù)盤(pán)從庫(kù)串A移動(dòng)到庫(kù)串C。
[0094]在階段D,帶庫(kù)600將臨時(shí)數(shù)據(jù)盤(pán)從庫(kù)串A移動(dòng)到庫(kù)串C。帶庫(kù)600首先將臨時(shí)數(shù)據(jù)盤(pán)加載到用于穿梭連接的空艙室中。帶庫(kù)600然后使得艙室沿著從庫(kù)串A到庫(kù)串C的穿梭連接移動(dòng)。帶庫(kù)600然后將臨時(shí)數(shù)據(jù)盤(pán)部署到庫(kù)串C中。
[0095]在階段E,庫(kù)管理器602發(fā)出命令,將所請(qǐng)求的盤(pán)從源庫(kù)串(庫(kù)串C)移動(dòng)到目標(biāo)庫(kù)串(庫(kù)串B)。因?yàn)檐浖绦?04請(qǐng)求盤(pán)的使用,所以盤(pán)安裝到帶驅(qū)動(dòng)中。在階段A,庫(kù)管理器602確定唯一可用的帶驅(qū)動(dòng)在庫(kù)串B中。因此,為了將盤(pán)安裝到可用帶驅(qū)動(dòng)中,庫(kù)管理器602發(fā)出命令,將所請(qǐng)求的盤(pán)從庫(kù)串C移動(dòng)到庫(kù)串B。
[0096]在階段F,帶庫(kù)600將所請(qǐng)求的盤(pán)從庫(kù)串C移動(dòng)到庫(kù)串B。類似于階段D,庫(kù)串600首先將所請(qǐng)求的盤(pán)移動(dòng)到用于穿梭連接的空艙室中。帶庫(kù)600然后使得艙室沿著從庫(kù)串C到庫(kù)串B的穿梭連接移動(dòng)。帶庫(kù)600然后使得所請(qǐng)求的盤(pán)部署到庫(kù)串B中。
[0097]在階段G,庫(kù)管理器602發(fā)出命令,以將所請(qǐng)求的盤(pán)安裝到可用帶驅(qū)動(dòng)中。
[0098]在階段H,帶庫(kù)600將盤(pán)安裝到可用驅(qū)動(dòng)中。帶庫(kù)600將盤(pán)從穿梭連接將其部署到的地方移動(dòng)到可用帶驅(qū)動(dòng)所處的庫(kù)框架中。帶庫(kù)600然后使得庫(kù)框架機(jī)械臂將盤(pán)插入帶驅(qū)動(dòng)中。
[0099]艙室空的穿梭連接的任何移動(dòng)潛在地是低效的。如果庫(kù)管理器602僅發(fā)出命令將所請(qǐng)求的盤(pán)從庫(kù)串C移動(dòng)到庫(kù)串B,則艙室將在空的時(shí)候從庫(kù)串A移動(dòng)到庫(kù)串C。上述帶庫(kù)600通過(guò)使用通常將部分浪費(fèi)運(yùn)動(dòng)的組件的移動(dòng)遞增改進(jìn)帶庫(kù)600的狀態(tài),而提高效率。
[0100]在一些實(shí)施例中,庫(kù)管理器不限于在服務(wù)請(qǐng)求時(shí)重分布臨時(shí)數(shù)據(jù)盤(pán)。如果庫(kù)管理器接收多個(gè)請(qǐng)求,則那些請(qǐng)求可以重新排序或組合以提高效率。例如,假設(shè)具有三個(gè)庫(kù)串的帶庫(kù)和具有位于第一庫(kù)串的艙室的一個(gè)穿梭連接。庫(kù)管理器可以得到兩個(gè)請(qǐng)求,第一請(qǐng)求請(qǐng)求從第三庫(kù)串移動(dòng)盤(pán)到第二庫(kù)串,第二請(qǐng)求請(qǐng)求從第一庫(kù)串移動(dòng)盤(pán)到第三庫(kù)串。如果庫(kù)管理器以此順序完成請(qǐng)求,則艙室行進(jìn)總共六個(gè)庫(kù)串。庫(kù)管理器可以重排序請(qǐng)求,或者組合請(qǐng)求以將所行進(jìn)的庫(kù)串的數(shù)量降低為三。替代首先完成第一個(gè)請(qǐng)求,庫(kù)管理器將第二請(qǐng)求的盤(pán)從艙室起始的第一庫(kù)串移動(dòng)到第三庫(kù)串。庫(kù)管理器然后將第一請(qǐng)求的盤(pán)加載到艙室中,并將其移動(dòng)到第二庫(kù)串。
[0101]圖7示出庫(kù)管理器可以執(zhí)行來(lái)在服務(wù)其他請(qǐng)求時(shí)分布臨時(shí)數(shù)據(jù)盤(pán)的示例操作的流程圖。[0102]在塊700,庫(kù)管理器接收安裝盤(pán)的請(qǐng)求。如上所述,這可以在軟件程序之前已經(jīng)寫(xiě)到特定盤(pán)并且希望從同一盤(pán)讀取或向其寫(xiě)入時(shí)發(fā)生??刂迫缓筮M(jìn)行到塊702。
[0103]在塊702,庫(kù)管理器確定所請(qǐng)求的盤(pán)是否要移動(dòng)到另一庫(kù)串。此場(chǎng)景在唯一可用的帶驅(qū)動(dòng)位于與具有請(qǐng)求的盤(pán)的庫(kù)串不同的庫(kù)串中時(shí)出現(xiàn)。如果所請(qǐng)求的盤(pán)在與可用帶驅(qū)動(dòng)相同的庫(kù)串中,則不進(jìn)行庫(kù)串之間的移動(dòng)。如果庫(kù)管理器確定所請(qǐng)求的盤(pán)要移動(dòng)到另一庫(kù)串,則控制進(jìn)行到塊704。如果庫(kù)管理器確定所請(qǐng)求的盤(pán)不移動(dòng)到另一庫(kù)串,則控制進(jìn)行到塊 718。
[0104]在塊704,庫(kù)管理器確定用于穿梭連接的艙室是否位于與所請(qǐng)求的盤(pán)相同的庫(kù)串中。如果庫(kù)管理器確定艙室位于與所請(qǐng)求的盤(pán)相同的庫(kù)串中,則控制進(jìn)行到塊714。如果庫(kù)管理器確定艙室不位于與所請(qǐng)求的盤(pán)相同的庫(kù)串中,則控制進(jìn)行到塊706。
[0105]在塊706,庫(kù)管理器確定具有所請(qǐng)求的盤(pán)的庫(kù)串是否缺少臨時(shí)數(shù)據(jù)盤(pán)。目標(biāo)值可以以任何數(shù)量的方式來(lái)確定,包括作為分布算法的一部分或由管理員手工設(shè)置。例如,在上述示例分布中,每個(gè)特定分布具有在每個(gè)庫(kù)串中的臨時(shí)數(shù)據(jù)盤(pán)的數(shù)量的目標(biāo)。如果庫(kù)管理器被配置為均勻分布臨時(shí)數(shù)據(jù)盤(pán),則存在三個(gè)庫(kù)串,并且存在九個(gè)臨時(shí)數(shù)據(jù)盤(pán),因此目標(biāo)將是每個(gè)庫(kù)串中有三個(gè)臨時(shí)數(shù)據(jù)盤(pán)。因此,庫(kù)管理器將具有少于三個(gè)臨時(shí)數(shù)據(jù)盤(pán)的庫(kù)串認(rèn)為是缺少臨時(shí)數(shù)據(jù)盤(pán)。如果庫(kù)管理器確定在具有所請(qǐng)求的盤(pán)的庫(kù)串中缺少臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊708。如果庫(kù)管理器確定在具有所請(qǐng)求的盤(pán)的庫(kù)串中不缺少臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊716。
[0106]在塊708,庫(kù)管理器確定具有可用艙室的任何庫(kù)串是否具有過(guò)量臨時(shí)數(shù)據(jù)盤(pán)。如上塊706所述,每個(gè)庫(kù)串可具有庫(kù)串應(yīng)具有的臨時(shí)數(shù)據(jù)盤(pán)的數(shù)量的目標(biāo)值。如果特定庫(kù)串具有比庫(kù)串的目標(biāo)值高的數(shù)量的臨時(shí)數(shù)據(jù)盤(pán),則其具有過(guò)量臨時(shí)數(shù)據(jù)盤(pán)。如果庫(kù)串具有過(guò)量臨時(shí)數(shù)據(jù)盤(pán)但沒(méi)有可用艙室,則通過(guò)將艙室移動(dòng)到具有過(guò)量臨時(shí)數(shù)據(jù)盤(pán)的庫(kù)串將損失一些效率。如果庫(kù)管理器確定庫(kù)串具有過(guò)量臨時(shí)數(shù)據(jù)盤(pán)和可用艙室,則控制進(jìn)行到塊710。如果庫(kù)管理器確定沒(méi)有庫(kù)串有過(guò)量臨時(shí)數(shù)據(jù)盤(pán)和可用艙室,則控制進(jìn)行到塊716。
[0107]在塊710,將臨時(shí)數(shù)據(jù)盤(pán)加載到位于具有過(guò)量臨時(shí)數(shù)據(jù)盤(pán)的庫(kù)串中的可用艙室。還將臨時(shí)數(shù)據(jù)盤(pán)經(jīng)由艙室移動(dòng)到包含所請(qǐng)求的盤(pán)的庫(kù)串中。控制然后進(jìn)行到塊712。
[0108]在塊712,將臨時(shí)數(shù)據(jù)盤(pán)部署到包含所請(qǐng)求的盤(pán)的庫(kù)串中。所請(qǐng)求的盤(pán)然后加載到帶有臨時(shí)數(shù)據(jù)盤(pán)的艙室中。所請(qǐng)求的盤(pán)然后經(jīng)由艙室移動(dòng)到具有可用帶驅(qū)動(dòng)的庫(kù)串中??刂迫缓筮M(jìn)行到塊718。
[0109]如果庫(kù)串確定艙室加載到與在塊704所請(qǐng)求的盤(pán)相同的庫(kù)串中,則控制進(jìn)行到塊714。在塊714,所請(qǐng)求的盤(pán)使用位于包含所請(qǐng)求的盤(pán)的庫(kù)串中的艙室,移動(dòng)到具有帶驅(qū)動(dòng)的庫(kù)串中。因?yàn)榕撌椅挥谂c所請(qǐng)求的盤(pán)相同的庫(kù)串中,所以通過(guò)等待另一艙室移動(dòng)到相同庫(kù)串,沒(méi)有獲得效率??刂迫缓筮M(jìn)行到塊718。
[0110]如果在塊706庫(kù)管理器確定包含所請(qǐng)求的盤(pán)的庫(kù)串沒(méi)有過(guò)量臨時(shí)數(shù)據(jù)盤(pán),則控制進(jìn)行到塊716。如果庫(kù)管理器確定沒(méi)有庫(kù)串包含過(guò)量臨時(shí)數(shù)據(jù)盤(pán)和包含可用艙室,則控制也進(jìn)行到塊716。在塊716,將可用艙室移動(dòng)到包含所請(qǐng)求的盤(pán)的庫(kù)串中。所請(qǐng)求的盤(pán)加載到艙室中,并且艙室將所請(qǐng)求的盤(pán)運(yùn)送到具有可用帶驅(qū)動(dòng)的庫(kù)串中??刂迫缓筮M(jìn)行到塊718。
[0111]如果在塊702庫(kù)管理器確定所請(qǐng)求的盤(pán)位于與可用帶驅(qū)動(dòng)相同的庫(kù)串中,則控制進(jìn)行到塊718??刂七€從塊712、塊714和塊716進(jìn)行到塊718。在塊718,所請(qǐng)求的盤(pán)安裝到可用帶驅(qū)動(dòng)中。所請(qǐng)求的盤(pán)可以從包含穿梭連接的庫(kù)框架移動(dòng)到包含可用帶驅(qū)動(dòng)的庫(kù)框架(如果兩者不同)。庫(kù)框架機(jī)械臂然后將所請(qǐng)求的盤(pán)插入可用帶驅(qū)動(dòng)。處理結(jié)束。
[0112]發(fā)明主題不限于在庫(kù)串之間移動(dòng)盤(pán),并且也可用于提高各個(gè)庫(kù)串內(nèi)的移動(dòng)的效率。換言之,相同庫(kù)串內(nèi)的庫(kù)框架之間的盤(pán)的移動(dòng)可類似于庫(kù)串之間盤(pán)的移動(dòng)而優(yōu)化。此夕卜,多數(shù)示例討論帶庫(kù)僅具有一個(gè)穿梭連接。發(fā)明主題不限于此,并且可應(yīng)用于具有任何數(shù)量的庫(kù)框架、庫(kù)串和穿梭連接的帶庫(kù)。此外,參考利用最近最少使用的算法來(lái)從組件集合選擇特定組件。發(fā)明主題不限于使用最近最少使用的算法,并且可使用其他算法,包括最近最常使用的算法、基于組件利用的算法、隨機(jī)選擇算法等。
[0113]作為示例流程圖,流程圖以實(shí)施例可以違背的示例順序示出了本操作(例如,操作可以以與圖示不同的順序和/或并行執(zhí)行)。許多特定操作將依賴于實(shí)際實(shí)現(xiàn)。例如,如果庫(kù)管理器不是與帶庫(kù)組件通信的唯一接口,則需要額外操作。此外,如所述,如果庫(kù)管理器或其他相關(guān)軟件保持關(guān)于帶庫(kù)的更新的狀態(tài)信息,則在任何流程圖中不進(jìn)行信息的收集。一些優(yōu)化操作沒(méi)有包括在所述流程圖中,因?yàn)樗鼈儗?duì)于本領(lǐng)域技術(shù)人員是明顯的。例如,如果帶庫(kù)的當(dāng)前狀態(tài)是使得需要較少操作來(lái)實(shí)現(xiàn)盤(pán)的期望分布,則庫(kù)管理器可以領(lǐng)先盤(pán)的任何分布。換言之,如果帶庫(kù)的當(dāng)前狀態(tài)足夠接近目標(biāo)狀態(tài),則通過(guò)進(jìn)一步分布盤(pán)獲得的效率可能小于分布盤(pán)的成本。
[0114]盡管庫(kù)框架討論為并排連接,但是它們可以以允許盤(pán)從一個(gè)傳送到另一個(gè)的任何方式連接。此外,將庫(kù)管理器描述為進(jìn)行許多操作。發(fā)明主題不限于此。在一些實(shí)現(xiàn)中,所討論的與庫(kù)管理器交互的軟件程序可以直接與帶庫(kù)交互,并且可以實(shí)現(xiàn)所有討論的技術(shù)。庫(kù)管理器可以是帶庫(kù)一部分或與帶庫(kù)分開(kāi),如被包含作為耦合到帶庫(kù)的分開(kāi)的服務(wù)器。所述功能性除了可以以軟件實(shí)現(xiàn)外,還可以以硬件或固件或所有這三者的組合實(shí)現(xiàn)。此外,庫(kù)管理器可以是不同軟件應(yīng)用的集合,其交互以執(zhí)行這里所述的操作。例如,與帶庫(kù)的實(shí)際接口可以包含在位于服務(wù)器上的SCSI卡中。庫(kù)管理器將與SCSI卡接口連接,并且SCSI卡將通過(guò)發(fā)出實(shí)際命令并從帶庫(kù)接收響應(yīng)或其他消息而與帶庫(kù)接口連接。
[0115]遍及全文討論效率的概念。效率可以以多種方式定義,包括沒(méi)有具體討論的方式。例如,常常將效率討論為與組件行進(jìn)的距離、組件在位置之間行進(jìn)所花費(fèi)的時(shí)間、或使用的電力的成本或量相聯(lián)系。但是效率還可以應(yīng)用于諸如降低系統(tǒng)的磨損量或類似地延長(zhǎng)特定組件的壽命的方式。這樣,當(dāng)討論效率時(shí),發(fā)明主題不限于所引用的特定類型的效率。
[0116]所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明主題的各個(gè)方面可以實(shí)現(xiàn)為系統(tǒng)、方法或計(jì)算機(jī)程序產(chǎn)品。因此,本發(fā)明主題的各個(gè)方面可以具體實(shí)現(xiàn)為以下形式,即:完全的硬件實(shí)施方式、完全的軟件實(shí)施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實(shí)施方式,這里可以統(tǒng)稱為“電路”、“模塊”或“系統(tǒng)”。此外,本發(fā)明主題的各個(gè)方面還可以實(shí)現(xiàn)為在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中的計(jì)算機(jī)程序產(chǎn)品的形式,該計(jì)算機(jī)可讀介質(zhì)中包含計(jì)算機(jī)可讀的程序代碼。
[0117]可以采用一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)的任意組合。計(jì)算機(jī)可讀介質(zhì)可以是計(jì)算機(jī)可讀信號(hào)介質(zhì)或者計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)例如可以是一但不限于——電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置或器件,或者任意以上的組合。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的更具體的例子(非窮舉的列表)包括:具有一個(gè)或多個(gè)導(dǎo)線的電連接、便攜式計(jì)算機(jī)盤(pán)、硬盤(pán)、隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM)、可擦式可編程只讀存儲(chǔ)器(EPROM或閃存)、光纖、便攜式緊湊盤(pán)只讀存儲(chǔ)器(CD-ROM)、光存儲(chǔ)器件、磁存儲(chǔ)器件、或者上述的任意合適的組合。在本文件中,計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以是任何包含或存儲(chǔ)程序的有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0118]計(jì)算機(jī)可讀的信號(hào)介質(zhì)可以包括在基帶中或者作為載波一部分傳播的數(shù)據(jù)信號(hào),其中承載了計(jì)算機(jī)可讀的程序代碼。這種傳播的數(shù)據(jù)信號(hào)可以采用多種形式,包括——但不限于——電磁信號(hào)、光信號(hào)或上述的任意合適的組合。計(jì)算機(jī)可讀的信號(hào)介質(zhì)還可以是計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)以外的任何計(jì)算機(jī)可讀介質(zhì),該計(jì)算機(jī)可讀介質(zhì)可以發(fā)送、傳播或者傳輸用于由指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用的程序。
[0119]計(jì)算機(jī)可讀介質(zhì)上包含的程序代碼可以用任何適當(dāng)?shù)慕橘|(zhì)傳輸,包括一但不限于一無(wú)線、有線、光纜、RF等等,或者上述的任意合適的組合。
[0120]可以以一種或多種程序設(shè)計(jì)語(yǔ)言的任意組合來(lái)編寫(xiě)用于執(zhí)行本發(fā)明主題各方面的操作的計(jì)算機(jī)程序代碼,所述程序設(shè)計(jì)語(yǔ)言包括面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言一諸如Java、Smalltalk、C++等,還包括常規(guī)的過(guò)程式程序設(shè)計(jì)語(yǔ)言一諸如“C”語(yǔ)言或類似的程序設(shè)計(jì)語(yǔ)言。程序代碼可以完全地在用戶計(jì)算機(jī)上執(zhí)行、部分地在用戶計(jì)算機(jī)上執(zhí)行、作為一個(gè)獨(dú)立的軟件包執(zhí)行、部分在用戶計(jì)算機(jī)上部分在遠(yuǎn)程計(jì)算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計(jì)算機(jī)或服務(wù)器上執(zhí)行。在涉及遠(yuǎn)程計(jì)算機(jī)的情形中,遠(yuǎn)程計(jì)算機(jī)可以通過(guò)任意種類的網(wǎng)絡(luò)一包括局域網(wǎng)(LAN)或廣域網(wǎng)(WAN)—連接到用戶計(jì)算機(jī),或者,可以連接到外部計(jì)算機(jī)(例如利用因特網(wǎng)服務(wù)提供商來(lái)通過(guò)因特網(wǎng)連接)。
[0121]參照根據(jù)本發(fā)明主題實(shí)施例的方法、裝置(系統(tǒng))和計(jì)算機(jī)程序產(chǎn)品的流程圖和/或框圖描述本發(fā)明主題的各方面。應(yīng)當(dāng)理解,流程圖和/或框圖的每個(gè)方框以及流程圖和/或框圖中各方框的組合,都可以由計(jì)算機(jī)程序指令實(shí)現(xiàn)。這些計(jì)算機(jī)程序指令可以提供給通用計(jì)算機(jī)、專用計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這些計(jì)算機(jī)程序指令在通過(guò)計(jì)算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時(shí),產(chǎn)生了實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的裝置。
[0122]也可以把這些計(jì)算機(jī)程序指令存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中,這些指令使得計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)中的指令就產(chǎn)生出包括實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的指令的制造品(article of manufacture)0
[0123]計(jì)算機(jī)程序指令還可以加載到計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備,以使得在計(jì)算機(jī)、其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備上執(zhí)行一系列操作步驟,以產(chǎn)生計(jì)算機(jī)實(shí)現(xiàn)的處理,使得在計(jì)算機(jī)或其他可編程裝置上執(zhí)行的指令提供用于實(shí)現(xiàn)流程圖和/或框圖中的一個(gè)或多個(gè)方框中規(guī)定的功能/動(dòng)作的處理。
[0124]圖8示出具有庫(kù)管理器的示例計(jì)算系統(tǒng)。計(jì)算系統(tǒng)包括處理器單元801 (可能包括多處理器、多核、多節(jié)點(diǎn)和/或?qū)崿F(xiàn)多線程等)。計(jì)算系統(tǒng)包括存儲(chǔ)器803。存儲(chǔ)器包括具有策略分布和盤(pán)選擇(庫(kù)管理器)805的庫(kù)管理器。存儲(chǔ)器803可以是系統(tǒng)存儲(chǔ)器(例如,高速緩存、SRAM、DRAM、零電容器 RAM、雙晶體管 RAM、eDRAM、EDO RAM、DDR RAM、EEPROM、NRAM、RRAM、S0N0S、PRAM等的一個(gè)或多個(gè))或上述可能的機(jī)器可讀介質(zhì)實(shí)現(xiàn)的任何一個(gè)或多個(gè)。計(jì)算系統(tǒng)還包括總線 811 (例如,PC1、ISA、PCI 直連,HyperTransport?總線,InfiniBand?,總線,NuBus總線等)、1/0設(shè)備809 (例如,鍵盤(pán)、鼠標(biāo)、監(jiān)視器、麥克風(fēng)、揚(yáng)聲器等)、網(wǎng)絡(luò)接口 807 (例如,ATM接口、以太網(wǎng)接口、幀中繼接口、SONET接口、無(wú)線接口等)、高速緩存817(例如,直接映射高速緩存、雙向集合結(jié)合高速緩存、全面結(jié)合高速緩存等)和存儲(chǔ)設(shè)備813(例如,光存儲(chǔ)、磁存儲(chǔ)等)。高速緩存817可以是低級(jí)高速緩存(例如,處理器中包含的LI高速緩存)或高級(jí)高速緩存(例如,L2高速緩存、L3高速緩存等)。庫(kù)管理器805包含實(shí)現(xiàn)上述實(shí)施例的功能性。庫(kù)管理器805如上所述運(yùn)行,在帶庫(kù)的各個(gè)部分之間分布臨時(shí)數(shù)據(jù)盤(pán)和其他組件。庫(kù)管理器805還響應(yīng)于請(qǐng)求選擇可用帶驅(qū)動(dòng)的臨時(shí)數(shù)據(jù)盤(pán)。此外,庫(kù)管理器805可以以一種方式管理請(qǐng)求,使得同時(shí)完成多個(gè)目標(biāo),如在服務(wù)請(qǐng)求的同時(shí)分布盤(pán)或重排序和組合請(qǐng)求以提高效率。盡管庫(kù)管理器803描述為駐留在存儲(chǔ)器803中,但是這些功能性的任一可以部分(或完全)以硬件實(shí)現(xiàn)和/或在處理單元801上實(shí)現(xiàn)。例如,功能性可以用專用集成電路、在處理單元801中實(shí)現(xiàn)的邏輯、在外圍設(shè)備或卡上的協(xié)處理器等實(shí)現(xiàn)。此夕卜,功能性可以包含在其他組件中,如與作為網(wǎng)絡(luò)接口 807的一部分的帶庫(kù)的接口。此外,實(shí)現(xiàn)可包括圖8中沒(méi)有示出的更少的或更多的組件(例如,視頻卡、音頻卡、額外網(wǎng)絡(luò)接口、外圍組件等)。處理單元801、存儲(chǔ)設(shè)備813、網(wǎng)絡(luò)接口 807、高速緩存817和I/O設(shè)備809耦合到總線8111。盡管示出為耦合到總線811,但是存儲(chǔ)器803可以耦合到處理單元801。
[0125]盡管參照各個(gè)實(shí)現(xiàn)和開(kāi)發(fā)而描述了實(shí)施例,但是將理解,這些實(shí)施例是說(shuō)明性的,并且發(fā)明主題的范圍不限于此??偟膩?lái)說(shuō),如這里所述的大容量存儲(chǔ)系統(tǒng)的技術(shù)可以以與任何硬件系統(tǒng)或軟件系統(tǒng)一致的設(shè)施實(shí)現(xiàn)。許多變化、修改、添加和改進(jìn)是可能的。
[0126]對(duì)于這里描述為單個(gè)實(shí)例的組件、操作或結(jié)構(gòu)提供了多個(gè)實(shí)例。最后,各個(gè)組件、操作和數(shù)據(jù)存儲(chǔ)之間的界限某種程度上是任意的,并且特定操作是在特定說(shuō)明的配置的上下文中說(shuō)明的??深A(yù)期功能性的其他分配并且其可以落入發(fā)明主題的范圍內(nèi)??偟膩?lái)說(shuō),在示例性配置中呈現(xiàn)為分開(kāi)的組件的結(jié)構(gòu)和功能性可以實(shí)現(xiàn)為組合的結(jié)構(gòu)或組件。類似的,呈現(xiàn)為單個(gè)組件的結(jié)構(gòu)和功能性可以實(shí)現(xiàn)為分開(kāi)的組件。這些和其他變化、修改、添加和改進(jìn)可落入發(fā)明主題的范圍內(nèi)。
【權(quán)利要求】
1.一種方法,包括: 確定存儲(chǔ)介質(zhì)庫(kù)內(nèi)多個(gè)可分布組件的分布; 根據(jù)所述分布,確定所述多個(gè)可分布組件當(dāng)前沒(méi)有遍布存儲(chǔ)介質(zhì)庫(kù)而分布;以及 響應(yīng)于所述確定所述多個(gè)可分布組件的分布、以及所述根據(jù)所述分布確定所述多個(gè)可分布組件當(dāng)前沒(méi)有遍布存儲(chǔ)介質(zhì)庫(kù)而分布,發(fā)出一個(gè)或多個(gè)命令的集合,以根據(jù)所述分布將所述多個(gè)可分布組件的一個(gè)或多個(gè)移動(dòng)到存儲(chǔ)介質(zhì)庫(kù)的不同位置。
2.如權(quán)利要求1所述的方法,其中所述多個(gè)可分布組件包括存儲(chǔ)介質(zhì)和存儲(chǔ)介質(zhì)艙室之一,其中所述存儲(chǔ)介質(zhì)艙室運(yùn)送存儲(chǔ)介質(zhì)。
3.如權(quán)利要求1所述的方法,其中所述分布是以下分布之一:所述多個(gè)可分布組件的至少一個(gè)可分布組件位于相同類型的每個(gè)庫(kù)單元內(nèi)的分布、多個(gè)可分布組件以相等數(shù)目分布于相同類型的庫(kù)單元之間的分布、所述多個(gè)可分布組件與每個(gè)庫(kù)單元內(nèi)的特定組件的計(jì)數(shù)成比例地在相同類型的庫(kù)單元之間分布的分布、以及至少部分基于存儲(chǔ)介質(zhì)庫(kù)的使用模式的分布。
4.如權(quán)利要求1所述的方法,其中發(fā)出一個(gè)或多個(gè)命令的集合,以根據(jù)所述分布將所述多個(gè)可分布組件的一個(gè)或多個(gè)移動(dòng)到所述存儲(chǔ)介質(zhì)庫(kù)的不同位置: 對(duì)多個(gè)庫(kù)單元中的每個(gè)庫(kù)單元確定目標(biāo)值,其中所述目標(biāo)值能夠?qū)τ谒龆鄠€(gè)庫(kù)單元中的每個(gè)庫(kù)單元而單獨(dú)確定或者能夠被確定為單個(gè)目標(biāo)值并應(yīng)用到所述多個(gè)庫(kù)單元中的每個(gè)庫(kù)單元; 從所述多個(gè)庫(kù)單元確定第一庫(kù)單元,所述多個(gè)可分布組件中位于所述第一庫(kù)單元中的可分布組件的計(jì)數(shù)小于所述第一庫(kù)單元目標(biāo)值; 從所述多個(gè)庫(kù)單元確定第二庫(kù)單元,所述多個(gè)可分布組件中位于所述第二庫(kù)單元中的可分布組件的計(jì)數(shù)大于所述第二庫(kù)單元目標(biāo)值;以及 響應(yīng)于所述從所述多個(gè)庫(kù)單元確定第一庫(kù)單元,所述多個(gè)可分布組件中位于所述第一庫(kù)單元中的可分布組件的計(jì)數(shù)小于所述第一庫(kù)單元目標(biāo)值、以及所述從所述多個(gè)庫(kù)單元確定第二庫(kù)單元,所述多個(gè)可分布組件中位于所述第二庫(kù)單元中的可分布組件的計(jì)數(shù)大于所述第二庫(kù)單元目標(biāo)值,發(fā)出一個(gè)或多個(gè)命令的集合,以將所述多個(gè)可分布組件的一個(gè)或多個(gè)從所述第二庫(kù)單元移動(dòng)到所述第一庫(kù)單元。
5.如權(quán)利要求4所述的方法,其中對(duì)于所述多個(gè)庫(kù)單元中的每個(gè)庫(kù)單元的目標(biāo)值至少部分基于以下項(xiàng)之一:恒定值、所述多個(gè)可分布組件中可分布組件的計(jì)數(shù)、所述多個(gè)庫(kù)單元中庫(kù)單元的計(jì)數(shù)、每個(gè)各自的庫(kù)單元中組件的類型的計(jì)數(shù)、以及存儲(chǔ)介質(zhì)庫(kù)的使用模式。
6.如權(quán)利要求1所述的方法,其中所述確定存儲(chǔ)介質(zhì)庫(kù)內(nèi)所述多個(gè)可分布組件的分布至少部分基于以下之一: 至少部分表示存儲(chǔ)介質(zhì)庫(kù)的狀態(tài)的數(shù)據(jù);以及 與存儲(chǔ)介質(zhì)庫(kù)用于至少部分確定存儲(chǔ)介質(zhì)庫(kù)的狀態(tài)的通信。
7.如權(quán)利要求1所述的方法,其中所述多個(gè)可分布組件包括帶盤(pán),所述存儲(chǔ)介質(zhì)庫(kù)包括帶庫(kù),并且?guī)靻卧菐?kù)框架和庫(kù)串之一。
8.一種方法,包括: 確定存儲(chǔ)介質(zhì)庫(kù)中第一驅(qū)動(dòng)的位置; 響應(yīng)于所述確 定存儲(chǔ)介質(zhì)庫(kù)中第一驅(qū)動(dòng)的位置,確定第一存儲(chǔ)介質(zhì)是否位于距第一驅(qū)動(dòng)的第一距離內(nèi),其中所述第一存儲(chǔ)介質(zhì)可用于被進(jìn)行讀或?qū)懀? 響應(yīng)于確定第一存儲(chǔ)介質(zhì)不位于距第一驅(qū)動(dòng)的第一距離內(nèi),確定第一存儲(chǔ)介質(zhì)是否位于距所述第一驅(qū)動(dòng)的第二距離內(nèi),其中所述第二距離遠(yuǎn)于所述第一距離;以及 響應(yīng)于確定第一存儲(chǔ)介質(zhì)位于距第一驅(qū)動(dòng)的第一距離內(nèi)或第二距離內(nèi),使得第一存儲(chǔ)介質(zhì)可用于由第一驅(qū)動(dòng)讀或?qū)憽?br> 9.如權(quán)利要求8所述的方法,還包括: 響應(yīng)于確定第一存儲(chǔ)介質(zhì)不位于距第一驅(qū)動(dòng)的第一距離內(nèi),確定存儲(chǔ)介質(zhì)庫(kù)中第二驅(qū)動(dòng)的位置,其中所述第二驅(qū)動(dòng)位于與所述第一驅(qū)動(dòng)不同的庫(kù)單元中; 響應(yīng)于確定存儲(chǔ)介質(zhì)庫(kù)中第二驅(qū)動(dòng)的位置,確定第一存儲(chǔ)介質(zhì)是否位于距第二驅(qū)動(dòng)的第一距離內(nèi);以及 響應(yīng)于確定第一存儲(chǔ)介質(zhì)位于距第二驅(qū)動(dòng)的第一距離內(nèi),使得第一存儲(chǔ)介質(zhì)可用于由第二驅(qū)動(dòng)讀或?qū)憽?br> 10.如權(quán)利要求8所述的方法,其中所述可分布組件包括帶盤(pán),所述存儲(chǔ)介質(zhì)庫(kù)包括帶庫(kù),并且?guī)靻卧菐?kù)框架和庫(kù)串之一。
11.一種裝置,包括: 網(wǎng)絡(luò)接口 ; 存儲(chǔ)器;以及 處理器,與所述網(wǎng)絡(luò)接口和所述存儲(chǔ)器耦合,被配置為: 確定存儲(chǔ)介質(zhì)庫(kù)的狀態(tài); 至少部分基于存儲(chǔ)介質(zhì)庫(kù)的狀態(tài),確定存儲(chǔ)介質(zhì)庫(kù)內(nèi)多個(gè)可分布組件的分布;以及響應(yīng)于確定存儲(chǔ)介質(zhì)庫(kù)內(nèi)所述多個(gè)可分布組件的分布,發(fā)出根據(jù)所述分布而分布存儲(chǔ)介質(zhì)庫(kù)內(nèi)所述多個(gè)可分布組件的命令。
12.如權(quán)利要求11所述的裝置,其中存儲(chǔ)介質(zhì)庫(kù)包括所述裝置。
13.如權(quán)利要求11所述的裝置,其中所述多個(gè)可分布組件包括多個(gè)存儲(chǔ)介質(zhì)和多個(gè)存儲(chǔ)介質(zhì)艙室之一,其中所述存儲(chǔ)介質(zhì)艙室運(yùn)送存儲(chǔ)介質(zhì)。
14.如權(quán)利要求13所述的裝置,其中所述多個(gè)存儲(chǔ)介質(zhì)包括帶盤(pán),并且所述存儲(chǔ)介質(zhì)庫(kù)包括帶庫(kù)。
15.如權(quán)利要求11所述的裝置,其中存儲(chǔ)介質(zhì)庫(kù)內(nèi)所述多個(gè)可分布組件的分布至少部分基于存儲(chǔ)介質(zhì)庫(kù)的操作中預(yù)期的效率提高而確定。
16.如權(quán)利要求11所述的裝置,其中所述網(wǎng)絡(luò)接口與存儲(chǔ)介質(zhì)庫(kù)耦合。
17.如權(quán)利要求12所述的裝置,其中所述存儲(chǔ)介質(zhì)庫(kù)還包括多個(gè)存儲(chǔ)介質(zhì)驅(qū)動(dòng),其中所述多個(gè)存儲(chǔ)介質(zhì)驅(qū)動(dòng)的每個(gè)被配置為讀存儲(chǔ)介質(zhì)和寫(xiě)存儲(chǔ)介質(zhì)。
18.如權(quán)利要求17所述的裝置,其中所述處理器還被配置為: 接收安裝存儲(chǔ)介質(zhì)的請(qǐng)求; 確定一個(gè)或多個(gè)存儲(chǔ)介質(zhì)驅(qū)動(dòng)的集合,其中所述存儲(chǔ)介質(zhì)驅(qū)動(dòng)可用于主控存儲(chǔ)介質(zhì); 確定一個(gè)或多個(gè)可分布組件的集合,其中所述可分布組件可用于被安裝; 響應(yīng)于確定一個(gè)或多個(gè)存儲(chǔ)介質(zhì)驅(qū)動(dòng)的集合和確定一個(gè)或多個(gè)可分布組件的集合,選擇一個(gè)或多個(gè)存儲(chǔ)介質(zhì)驅(qū)動(dòng)的集合之一、以及一個(gè)或多個(gè)可分布組件的集合之一,其中所述存儲(chǔ)介質(zhì)驅(qū)動(dòng)和存儲(chǔ)介質(zhì)至少部分基于所述存儲(chǔ)介質(zhì)驅(qū)動(dòng)與所述存儲(chǔ)介質(zhì)之間的距離而選擇;以及發(fā)出至少一個(gè)命令以將所選擇的存儲(chǔ)介質(zhì)安裝到所選擇的存儲(chǔ)介質(zhì)驅(qū)動(dòng)中。
【文檔編號(hào)】G06F3/06GK103838519SQ201310591445
【公開(kāi)日】2014年6月4日 申請(qǐng)日期:2013年11月21日 優(yōu)先權(quán)日:2012年11月21日
【發(fā)明者】長(zhǎng)谷川徹, 平田崇將, 今井直樹(shù), 神谷昌范, 大石豐 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1