本發(fā)明大體上涉及數(shù)據(jù)存儲(chǔ)領(lǐng)域,并且更具體地,涉及控制磁帶存儲(chǔ)的方法和裝置,所述磁帶存儲(chǔ)具有存儲(chǔ)在由多個(gè)卷帶(wrap)組成的磁帶上的多個(gè)數(shù)據(jù)段。
背景技術(shù):
1、通常,諸如硬盤、筆式驅(qū)動(dòng)器、存儲(chǔ)卡等的各種存儲(chǔ)設(shè)備都用于存儲(chǔ)數(shù)字?jǐn)?shù)據(jù)。此外,對(duì)存儲(chǔ)數(shù)字?jǐn)?shù)據(jù)的需求正在增加,使得磁帶技術(shù)由于相對(duì)便宜的價(jià)格和長(zhǎng)保留時(shí)間被用于實(shí)現(xiàn)輔助(較慢)數(shù)據(jù)存儲(chǔ)。然而,由于從傳統(tǒng)磁帶讀取數(shù)據(jù)的尋道時(shí)間相對(duì)長(zhǎng),因此除了內(nèi)置壓縮之外,磁帶在沒有任何優(yōu)化的情況下被使用。
2、傳統(tǒng)上,為了解決使用磁帶時(shí)尋道時(shí)間長(zhǎng)的問題,已經(jīng)進(jìn)行了某些嘗試,例如通過將數(shù)據(jù)以其原始(即不進(jìn)行重復(fù)數(shù)據(jù)刪除)的形式寫入磁帶上。用于解決在磁帶上存儲(chǔ)進(jìn)行了重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)時(shí)尋道時(shí)間過長(zhǎng)問題的另一種現(xiàn)有方法包括使用封閉數(shù)據(jù)組。在這種情況下,創(chuàng)建數(shù)據(jù)組(例如,包括完全備份和一系列增量備份),并將該數(shù)據(jù)發(fā)送到僅在組內(nèi)(即與該組的其他部分一起構(gòu)成的封閉單元,例如相似性局部性(similarity?locality,silo))進(jìn)行重復(fù)數(shù)據(jù)刪除的磁帶,從而可以從磁帶整體讀取該數(shù)據(jù)組。在某些場(chǎng)景中,為了緩解尋道時(shí)間長(zhǎng)的問題,也可以通過將進(jìn)行了重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)以特殊方式存儲(chǔ)在磁帶上以縮短恢復(fù)時(shí)間,例如通過將公共數(shù)據(jù)寫入兩個(gè)文件中,使得能夠從磁帶中順序讀取公共數(shù)據(jù)。然而,這種嘗試需要對(duì)公共數(shù)據(jù)進(jìn)行大量的預(yù)處理,并且大幅降低了重復(fù)數(shù)據(jù)刪除率。因此,存在這樣的技術(shù)問題,即如何以更短的尋道時(shí)間(檢索存儲(chǔ)在數(shù)據(jù)段中的數(shù)據(jù)所需的時(shí)間)從磁帶讀取數(shù)據(jù)(數(shù)據(jù)段分散在磁帶存儲(chǔ)上),同時(shí)允許重復(fù)數(shù)據(jù)刪除以優(yōu)化未來的讀取并提高恢復(fù)性能。
3、因此,根據(jù)前面的討論,需要克服與將數(shù)據(jù)寫入存儲(chǔ)進(jìn)行了重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)的磁帶和/或從該磁帶讀取數(shù)據(jù)的傳統(tǒng)技術(shù)相關(guān)聯(lián)的上述缺點(diǎn)。
技術(shù)實(shí)現(xiàn)思路
1、本發(fā)明提供了一種控制磁帶存儲(chǔ)的方法和裝置,所述磁帶存儲(chǔ)具有存儲(chǔ)在由多個(gè)卷帶組成的磁帶上的多個(gè)數(shù)據(jù)段。本發(fā)明提供了一種現(xiàn)有問題的解決方案,即如何實(shí)現(xiàn)對(duì)磁帶上的數(shù)據(jù)進(jìn)行重復(fù)數(shù)據(jù)刪除,同時(shí)在讀取數(shù)據(jù)時(shí)縮短尋道時(shí)間,即如何提高進(jìn)行了重復(fù)數(shù)據(jù)刪除的數(shù)據(jù)讀取效率。本發(fā)明的目的是提供一種解決方案,其至少部分地克服了現(xiàn)有技術(shù)中遇到的問題,并提供了一種控制磁帶存儲(chǔ)(該磁帶存儲(chǔ)具有存儲(chǔ)在由多個(gè)卷帶組成的磁帶上的多個(gè)數(shù)據(jù)段)的改進(jìn)方法,例如用于以更短的尋道時(shí)間從存檔恢復(fù)數(shù)據(jù)。
2、本發(fā)明的一個(gè)或多個(gè)目的通過所附獨(dú)立權(quán)利要求中提供的解決方案來實(shí)現(xiàn)。在從屬權(quán)利要求中進(jìn)一步限定本發(fā)明的有利實(shí)現(xiàn)方式。
3、在一個(gè)方面,本發(fā)明提供了一種控制磁帶存儲(chǔ)的方法,該磁帶存儲(chǔ)具有存儲(chǔ)在由多個(gè)卷帶組成的磁帶上的多個(gè)數(shù)據(jù)段。所述方法包括創(chuàng)建數(shù)據(jù)段表,所述數(shù)據(jù)段表在每個(gè)條目中包括存儲(chǔ)在所述磁帶上的數(shù)據(jù)段的標(biāo)識(shí)符(identifier,id)。每個(gè)條目與唯一的數(shù)據(jù)段元數(shù)據(jù)相關(guān),所述數(shù)據(jù)段元數(shù)據(jù)包括所述數(shù)據(jù)段的指紋、所述數(shù)據(jù)段的大小和存儲(chǔ)有所述數(shù)據(jù)段或所述數(shù)據(jù)段的副本的所述磁帶上的一個(gè)或多個(gè)位置偏移。所述方法還包括接收標(biāo)識(shí)要從所述磁帶存儲(chǔ)恢復(fù)的用戶數(shù)據(jù)對(duì)象的恢復(fù)請(qǐng)求,確定在用戶數(shù)據(jù)對(duì)象恢復(fù)內(nèi)要從所述磁帶讀取的相關(guān)數(shù)據(jù)段。所述方法還包括創(chuàng)建讀取選項(xiàng)列表集以從所述磁帶讀取所有所述相關(guān)數(shù)據(jù)段?;谒鰯?shù)據(jù)段表,每個(gè)讀取選項(xiàng)列表包括所述相關(guān)數(shù)據(jù)段中的不同相關(guān)數(shù)據(jù)段的位置偏移,所述不同相關(guān)數(shù)據(jù)段的位置偏移由所述相關(guān)數(shù)據(jù)段的所有副本的位置偏移補(bǔ)充,以及通過從每個(gè)讀取選項(xiàng)列表選擇一個(gè)位置偏移并確定以最小讀取時(shí)間從所選擇的位置偏移讀取數(shù)據(jù)的順序,來生成讀取序列以從所述磁帶讀取所述相關(guān)數(shù)據(jù)段和/或所述相關(guān)數(shù)據(jù)段的副本。
4、所述方法用于有效地控制所述磁帶存儲(chǔ),并且縮短從所述磁帶恢復(fù)數(shù)據(jù)對(duì)象的尋道時(shí)間。所述方法用于提高所述磁帶的讀取性能,例如通過處理所述磁帶中的所述數(shù)據(jù)段的所述重復(fù)位置,并生成所述讀取序列以提供讀取數(shù)據(jù)段/數(shù)據(jù)段的副本的最佳順序,從而更有效地讀取所述相關(guān)數(shù)據(jù)。所述方法用于從磁帶存儲(chǔ)讀取數(shù)據(jù),降低了復(fù)雜性并提高了性能。
5、在一種實(shí)現(xiàn)方式中,所述方法還包括將由單個(gè)位置偏移組成的一個(gè)或多個(gè)讀取選項(xiàng)列表設(shè)置為錨點(diǎn)。此外,生成所述讀取序列以從所述磁帶讀取所述相關(guān)數(shù)據(jù)段和/或所述相關(guān)數(shù)據(jù)段的副本包括:從所述讀取選項(xiàng)列表選擇所述錨點(diǎn)和鄰近所述錨點(diǎn)的所述數(shù)據(jù)段的位置偏移,并確定讀取順序以在所述讀取序列內(nèi)形成一個(gè)或多個(gè)連續(xù)讀取子序列。
6、在這種實(shí)現(xiàn)方式中,設(shè)置在任何情況下都必須從單個(gè)位置讀取的錨點(diǎn)以及選擇鄰近所述錨點(diǎn)的位置偏移大幅降低了確定用于恢復(fù)所述相關(guān)數(shù)據(jù)的最佳讀取序列的復(fù)雜性。此外,確定所述讀取序列中的一個(gè)或多個(gè)連續(xù)讀取子序列用于減少從所述磁帶讀取所述相關(guān)數(shù)據(jù)所需的所述尋道時(shí)間,并縮短總處理時(shí)間。
7、在另一種實(shí)現(xiàn)方式中,確定要從所述磁帶讀取的所述相關(guān)數(shù)據(jù)段是基于數(shù)據(jù)對(duì)象表的,所述數(shù)據(jù)對(duì)象表標(biāo)識(shí)一個(gè)或多個(gè)磁帶,所述一個(gè)或多個(gè)磁帶包括存儲(chǔ)在所述磁帶存儲(chǔ)中的每個(gè)用戶數(shù)據(jù)對(duì)象的數(shù)據(jù)段以及所述一個(gè)或多個(gè)磁帶上的所述數(shù)據(jù)段的id和/或位置偏移。
8、在這種實(shí)現(xiàn)方式中,使用數(shù)據(jù)對(duì)象表來確定要讀取的相關(guān)數(shù)據(jù)段使得能夠從一個(gè)或多個(gè)磁帶優(yōu)化地讀取相關(guān)數(shù)據(jù)。
9、在另一種實(shí)現(xiàn)方式中,選擇所述讀取序列中的一個(gè)讀取序列以從所述磁帶讀取所述相關(guān)數(shù)據(jù)段和/或所述相關(guān)數(shù)據(jù)段的副本包括:考慮構(gòu)成所述讀取序列的位置偏移和磁帶位置的當(dāng)前磁頭,選擇具有最小讀取時(shí)間的讀取序列。
10、在該實(shí)現(xiàn)方式中,基于最小讀取時(shí)間選擇讀取序列用于提高讀取性能并縮短從磁帶讀取相關(guān)數(shù)據(jù)段所需的總處理時(shí)間。
11、在另一個(gè)方面,本發(fā)明提供了一種用于磁帶存儲(chǔ)的控制器,所述磁帶存儲(chǔ)具有存儲(chǔ)在由多個(gè)卷帶組成的磁帶上的多個(gè)數(shù)據(jù)段。所述控制器用于創(chuàng)建數(shù)據(jù)段表,所述數(shù)據(jù)段表在每個(gè)條目中包括存儲(chǔ)在所述磁帶上的數(shù)據(jù)段的標(biāo)識(shí)符id。每個(gè)條目與唯一的數(shù)據(jù)段元數(shù)據(jù)相關(guān),所述數(shù)據(jù)段元數(shù)據(jù)包括所述數(shù)據(jù)段的指紋、所述數(shù)據(jù)段的大小和存儲(chǔ)有所述數(shù)據(jù)段或所述數(shù)據(jù)段的副本的所述磁帶上的一個(gè)或多個(gè)位置偏移。所述控制器還用于接收標(biāo)識(shí)要從所述磁帶存儲(chǔ)恢復(fù)的用戶數(shù)據(jù)對(duì)象的恢復(fù)請(qǐng)求,確定在所述用戶數(shù)據(jù)對(duì)象恢復(fù)內(nèi)要從所述磁帶讀取的相關(guān)數(shù)據(jù)段。所述控制器還用于創(chuàng)建讀取選項(xiàng)列表集,以從所述磁帶讀取所有所述相關(guān)數(shù)據(jù)段?;谒鰯?shù)據(jù)段表,每個(gè)讀取選項(xiàng)列表包括所述相關(guān)數(shù)據(jù)段中的不同相關(guān)數(shù)據(jù)段的位置偏移,所述不同相關(guān)數(shù)據(jù)段的位置偏移由所述相關(guān)數(shù)據(jù)段的所有副本的位置偏移補(bǔ)充,通過從每個(gè)讀取選項(xiàng)列表選擇一個(gè)位置偏移并確定以最小讀取時(shí)間從所選擇的位置偏移讀取數(shù)據(jù)的順序,來生成讀取序列以從所述磁帶讀取所述相關(guān)數(shù)據(jù)段和/或所述相關(guān)數(shù)據(jù)段的副本。
12、所述控制器用于有效地控制所述磁帶存儲(chǔ),并且縮短從所述磁帶恢復(fù)數(shù)據(jù)對(duì)象的尋道時(shí)間。所述控制器用于提高所述磁帶的讀取性能,例如通過處理所述磁帶中的所述數(shù)據(jù)段的所述重復(fù)位置,并生成所述讀取序列以提供讀取數(shù)據(jù)段/數(shù)據(jù)段的副本的最佳順序,從而更有效地讀取所述相關(guān)數(shù)據(jù)。所述控制器用于從磁帶存儲(chǔ)讀取數(shù)據(jù),降低了復(fù)雜性并提高了性能。
13、在一種實(shí)現(xiàn)方式中,所述控制器用于將由單個(gè)位置偏移組成的一個(gè)或多個(gè)讀取選項(xiàng)列表設(shè)置為錨點(diǎn)。此外,生成所述讀取序列以從所述磁帶讀取所述相關(guān)數(shù)據(jù)段和/或所述相關(guān)數(shù)據(jù)段的副本包括:從所述讀取選項(xiàng)列表選擇所述錨點(diǎn)和鄰近所述錨點(diǎn)的所述數(shù)據(jù)段的位置偏移,并確定讀取順序以在所述讀取序列內(nèi)形成一個(gè)或多個(gè)連續(xù)讀取子序列。
14、在這種實(shí)現(xiàn)方式中,設(shè)置在任何情況下都必須從單個(gè)位置讀取的錨點(diǎn)以及選擇鄰近所述錨點(diǎn)的位置偏移大幅降低了確定用于恢復(fù)所述相關(guān)數(shù)據(jù)的最佳讀取序列的復(fù)雜性。此外,確定所述讀取序列中的一個(gè)或多個(gè)連續(xù)讀取子序列用于減少從所述磁帶讀取所述相關(guān)數(shù)據(jù)所需的所述尋道時(shí)間,并縮短總處理時(shí)間。
15、在另一種實(shí)現(xiàn)方式中,確定要從所述磁帶讀取的所述相關(guān)數(shù)據(jù)段是基于數(shù)據(jù)對(duì)象表的,所述數(shù)據(jù)對(duì)象表標(biāo)識(shí)一個(gè)或多個(gè)磁帶,所述一個(gè)或多個(gè)磁帶包括存儲(chǔ)在所述磁帶存儲(chǔ)中的每個(gè)用戶數(shù)據(jù)對(duì)象的數(shù)據(jù)段以及所述一個(gè)或多個(gè)磁帶上的所述數(shù)據(jù)段的id和/或位置偏移。
16、在這種實(shí)現(xiàn)方式中,使用數(shù)據(jù)對(duì)象表來確定要讀取的相關(guān)數(shù)據(jù)段使得能夠從一個(gè)或多個(gè)磁帶優(yōu)化地讀取相關(guān)數(shù)據(jù)。
17、在另一種實(shí)現(xiàn)方式中,選擇所述讀取序列中的一個(gè)讀取序列以從所述磁帶讀取所述相關(guān)數(shù)據(jù)段和/或所述相關(guān)數(shù)據(jù)段的副本包括:考慮構(gòu)成所述讀取序列的位置偏移和磁帶位置的當(dāng)前磁頭,選擇具有最小讀取時(shí)間的讀取序列。
18、在該實(shí)現(xiàn)方式中,基于最小讀取時(shí)間選擇讀取序列用于提高讀取性能并縮短從磁帶讀取相關(guān)數(shù)據(jù)段所需的總處理時(shí)間。
19、應(yīng)當(dāng)理解,所有上述實(shí)現(xiàn)方式都可以組合。需要說明的是,本技術(shù)中描述的所有設(shè)備、元件、電路系統(tǒng)、單元和模塊可以以軟件或硬件元件或其任何類型的組合實(shí)現(xiàn)。由本技術(shù)中描述的各種實(shí)體所執(zhí)行的所有步驟以及所描述的各種實(shí)體要執(zhí)行的功能均意在指各個(gè)實(shí)體適于或用于執(zhí)行相應(yīng)的步驟和功能。雖然在以下具體實(shí)施例的描述中,外部實(shí)體要執(zhí)行的具體功能或步驟沒有在執(zhí)行具體步驟或功能的實(shí)體的具體詳述元件的描述中反映,但是技術(shù)人員應(yīng)清楚,這些方法和功能可以以相應(yīng)的軟件或硬件元件或其任何類型的組合實(shí)現(xiàn)。應(yīng)當(dāng)理解,本發(fā)明的特征易于以各種組合進(jìn)行組合,而不偏離由所附權(quán)利要求書限定的本發(fā)明的范圍。
20、本發(fā)明的其他方面、優(yōu)點(diǎn)、特征和目的將從附圖和結(jié)合以下所附權(quán)利要求書解釋的說明性實(shí)現(xiàn)方式的詳細(xì)描述中變得明顯。