專利名稱:選擇用于數(shù)據(jù)存儲(chǔ)庫(kù)的重復(fù)刪除協(xié)議的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及選擇用于數(shù)據(jù)存儲(chǔ)庫(kù)的重復(fù)刪除(deduplication)協(xié)議的裝置和方法。
背景技術(shù):
計(jì)算系統(tǒng)生成信息。使用多個(gè)數(shù)據(jù)存儲(chǔ)介質(zhì)來存儲(chǔ)這種信息在本領(lǐng)域內(nèi)是已知的。在獨(dú)立磁盤冗余陣列(“RAID”)配置中,信息被存儲(chǔ)在數(shù)據(jù)存儲(chǔ)介質(zhì)的陣列中,以提供容錯(cuò)和改進(jìn)的數(shù)據(jù)訪問性能。RAID通過使用專用硬件或者軟件將物理存儲(chǔ)介質(zhì)組合到單個(gè)邏輯單元中。在RAID3、4、5和6陣列配置中,稱為“數(shù)據(jù)條帶化(datastriping) ”的過程與奇偶校驗(yàn)數(shù)據(jù)(也即,編碼的冗余信息)結(jié)合使用。在RAID6中,使用行條帶和對(duì)角線條帶二者,并且一組奇偶校驗(yàn)與每個(gè)行條帶相關(guān)聯(lián),而另一組奇偶校驗(yàn)與每個(gè)對(duì)角線條帶相關(guān)聯(lián),以用于雙冗余。在RAID6中,行奇偶校驗(yàn)可以集中在單個(gè)行奇偶校驗(yàn)存儲(chǔ)介質(zhì)中,而對(duì)角線奇偶校驗(yàn)可以集中在不同的單個(gè)對(duì)角線奇偶校驗(yàn)存儲(chǔ)介質(zhì)中,或者行和對(duì)角線奇偶校驗(yàn)可以跨陣列中的所有數(shù)據(jù)存儲(chǔ)介質(zhì)而分布。每個(gè)RAID條帶包括預(yù)定數(shù)目的順序邏輯塊陣列。通過對(duì)數(shù)據(jù)進(jìn)行條帶化以及跨陣列中的所有驅(qū)動(dòng)器來分布奇偶校驗(yàn),優(yōu)化的性能通過最小化對(duì)單個(gè)驅(qū)動(dòng)器的恒定訪問得以實(shí)現(xiàn)。如果RAID6配置中的驅(qū)動(dòng)器發(fā)生故障失效,則可以使用其余驅(qū)動(dòng)器上的奇偶校驗(yàn)數(shù)據(jù)來重建寫入故障驅(qū)動(dòng)器的數(shù)據(jù)。如果陣列配置有在線備用驅(qū)動(dòng)器,則當(dāng)檢測(cè)到故障驅(qū)動(dòng)器時(shí),RAID重建自動(dòng)開始。如果陣列未配置有備用驅(qū)動(dòng)器,則RAID重建在故障驅(qū)動(dòng)器被替換后開始。為了重建丟失的數(shù)據(jù),從陣列中的其余驅(qū)動(dòng)器讀取每個(gè)丟失的條帶。使用由RAID控制器異或(“X0R”)引擎執(zhí)行的XOR操作來恢復(fù)丟失的條帶。在XOR引擎恢復(fù)丟失的條帶之后,向替換驅(qū)動(dòng)器或者在線備用驅(qū)動(dòng)器寫入該恢復(fù)的條帶。對(duì)于RAID3、4和5而言,重建過程涉及從陣列中可操作驅(qū)動(dòng)器的N-I次讀取,以及向替換驅(qū)動(dòng)器或在線備用驅(qū)動(dòng)器的單次寫入。當(dāng)條帶完全恢復(fù)時(shí),重建過程繼續(xù)恢復(fù)下一丟失的條帶。對(duì)于RAID級(jí)別6下的雙故障,使用行條帶和對(duì)角線條帶二者來構(gòu)造驅(qū)動(dòng)器數(shù)據(jù),該數(shù)據(jù)正被重建到兩個(gè)備用驅(qū)動(dòng)器中。在重建過程期間,陣列保持對(duì)于用戶是可訪問的。RAID控制器必須分配系統(tǒng)資源以處理主機(jī)I/O請(qǐng)求以及處理RAID重建二者。
發(fā)明內(nèi)容
本發(fā)明包括一種選擇用于數(shù)據(jù)存儲(chǔ)庫(kù)的重復(fù)刪除協(xié)議的方法,該數(shù)據(jù)存儲(chǔ)庫(kù)包括配置為RAID陣列的多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備。該方法建立常規(guī)重復(fù)刪除協(xié)議、RAID故障重復(fù)刪除協(xié)議、以及多存儲(chǔ)設(shè)備故障重復(fù)刪除協(xié)議。該方法接收包括多個(gè)交織數(shù)據(jù)塊的主機(jī)數(shù)據(jù)。如果系統(tǒng)在沒有任何存儲(chǔ)設(shè)備故障的情況下運(yùn)行,則該方法使用常規(guī)重復(fù)刪除協(xié)議來處理主機(jī)數(shù)據(jù)。如果系統(tǒng)在具有一個(gè)存儲(chǔ)設(shè)備故障的情況下運(yùn)行,則該方法使用RAID故障重復(fù)刪除協(xié)議來處理主機(jī)數(shù)據(jù)。如果系統(tǒng)在具有多個(gè)存儲(chǔ)設(shè)備故障的情況下運(yùn)行,則該方法使用多存儲(chǔ)設(shè)備故障重復(fù)刪除協(xié)議來處理主機(jī)數(shù)據(jù)。
在某些實(shí)施方式中,該方法動(dòng)態(tài)地設(shè)置重復(fù)刪除協(xié)議。在這些實(shí)施方式中,重復(fù)刪除協(xié)議是故障數(shù)據(jù)存儲(chǔ)設(shè)備的數(shù)目、實(shí)際RAID重建速率、最小RAID重建閾值以及最大RAID 重建閾值的函數(shù)。
現(xiàn)在,將僅僅通過示例的方式參考附圖來描述本發(fā)明的實(shí)施方式,其中
圖I是示出按照本發(fā)明一個(gè)實(shí)施方式的數(shù)據(jù)存儲(chǔ)系統(tǒng)的一個(gè)實(shí)施方式的框圖。
圖2A是示出使用光纖信道仲裁回路與多個(gè)數(shù)據(jù)存儲(chǔ)介質(zhì)通信的一個(gè)RAID控制器的框圖。
圖2B是示出使用雙光纖信道仲裁回路與多個(gè)數(shù)據(jù)存儲(chǔ)介質(zhì)通信的兩個(gè)RAID控制器的框圖。
圖3是概括出按照本發(fā)明第一實(shí)施方式的方法中的某些步驟的流程圖。
圖4是概括出按照本發(fā)明第二實(shí)施方式的方法中的某些步驟的流程圖。
圖5是概括出第二實(shí)施方式的某些附加步驟的流程圖。
具體實(shí)施方式
在下文描述中,將參考附圖通過優(yōu)選實(shí)施方式來描述本發(fā)明,附圖中的相似數(shù)字表示相同或相似的元素。在整個(gè)說明書中,提及“一個(gè)實(shí)施方式”、“實(shí)施方式”或類似的語言表示結(jié)合該實(shí)施方式描述的特定特征、結(jié)構(gòu)或者特性包括在本發(fā)明的至少一個(gè)實(shí)施方式中。由此,在本發(fā)明中出現(xiàn)的短語“在一個(gè)實(shí)施方式中”、“在實(shí)施方式中”以及類似語言可以但并非一定都表不相同的實(shí)施方式。
所描述的本發(fā)明的特征、結(jié)構(gòu)或者特性可以通過任何適當(dāng)?shù)姆绞浇Y(jié)合在一個(gè)或多個(gè)實(shí)施方式中。在下文描述中,記載了多個(gè)特定的細(xì)節(jié),以便提供對(duì)本發(fā)明實(shí)施方式的透徹理解。然而,相關(guān)領(lǐng)域的技術(shù)人員將會(huì)認(rèn)識(shí)到,可以在無需一個(gè)或多個(gè)特定細(xì)節(jié)的情況下實(shí)踐本發(fā)明,或者可以利用其他方法、組件、材料等來實(shí)踐本發(fā)明。在其他情況下,沒有示出或詳細(xì)描述公知的結(jié)構(gòu)、材料或者操作,
以便混淆本發(fā)明的方面。
在圖I示出的實(shí)施方式中,數(shù)據(jù)處理系統(tǒng)100包括RAID控制器120以及數(shù)據(jù)存儲(chǔ)介質(zhì)130、140、150和160。在圖I示出的實(shí)施方式中,RAID控制器120分別經(jīng)由I/O協(xié)議 132、142、152 和 162 來與數(shù)據(jù)存儲(chǔ)介質(zhì) 130、140、150 和 160 通信。I/O 協(xié)議 132、142、152 和162可以包括任何類型的I/O協(xié)議,包括但不限于光纖信道回路、SCSI (小型計(jì)算機(jī)系統(tǒng)接口)、iSCSI (因特網(wǎng)SCSI)、SAS (串行附接SCSI)、光纖信道、光纖信道上的SCSI、以太網(wǎng)、以太網(wǎng)上的光纖信道、無限頻帶以及SATA (串行ATA)。
“數(shù)據(jù)存儲(chǔ)介質(zhì)”表示信息存儲(chǔ)介質(zhì),其結(jié)合有向該信息存儲(chǔ)介質(zhì)寫入信息以及從其讀取信息所需的硬件、固件和/或軟件。在某些實(shí)施方式中,信息存儲(chǔ)介質(zhì)包括磁性信息5存儲(chǔ)介質(zhì),諸如但不限于磁盤、磁帶等。在某些實(shí)施方式中,信息存儲(chǔ)介質(zhì)包括光學(xué)信息存儲(chǔ)介質(zhì),諸如但不限于CD、DVD (數(shù)字通用盤)、HD-DVD (高清DVD)、BD (藍(lán)光盤)等。在某些實(shí)施方式中,信息存儲(chǔ)介質(zhì)包括電子信息存儲(chǔ)介質(zhì),諸如PROM、EPROM、EEPROM、閃速PROM、壓縮閃存、智能介質(zhì)等。在某些實(shí)施方式中,信息存儲(chǔ)介質(zhì)包括全息信息存儲(chǔ)介質(zhì)。在圖I示出的實(shí)施方式中,RAID控制器120與主機(jī)計(jì)算機(jī)102、104和106通信。一般而言,主機(jī)計(jì)算機(jī)102、104和106每個(gè)都包括計(jì)算系統(tǒng),諸如大型機(jī)、個(gè)人計(jì)算機(jī)、工作站及其組合,其包括操作系統(tǒng),諸如WindowS、AIX、Unix、MVS、LINUX等(Windows是微軟公司的注冊(cè)商標(biāo);AIX是IBM公司的注冊(cè)商標(biāo),MVS是IBM公司的商標(biāo);UNIX是美國(guó)和其他國(guó)家中的注冊(cè)商標(biāo),通過OpenGroup獨(dú)占許可;并且LINUX是Linux Torvald的注冊(cè)商標(biāo))。在某些實(shí)施方式中,一個(gè)或多個(gè)主機(jī)計(jì)算機(jī)102、104和/或106還包括存儲(chǔ)管理程序。在某些實(shí)施方式中,該存儲(chǔ)管理程序可以包括本領(lǐng)域中已知的存儲(chǔ)管理類程序的功能,其管理去往和來自數(shù)據(jù)存儲(chǔ)和檢索系統(tǒng)(例如但不限于在IBM MVS操作系統(tǒng)中實(shí)現(xiàn)的IBM DFSMS)的數(shù)據(jù)傳送。在圖I示出的實(shí)施方式中,本發(fā)明的RAID控制器120包括處理器128、XOR引擎129、計(jì)算機(jī)可讀介質(zhì)121、寫入到計(jì)算機(jī)可讀介質(zhì)121的微碼122,以及寫入到計(jì)算機(jī)可讀介質(zhì)121的指令124。處理器128使用微碼122來操作RAID控制器120。在圖I示出的實(shí)施方式中,RAID控制器120還包括重建位圖126,其中重建位圖包括N個(gè)指示符,并且其中每個(gè)指示符與不同的數(shù)據(jù)條帶相關(guān)聯(lián)。如果第i個(gè)指示符被設(shè)為第一值,則相關(guān)聯(lián)的數(shù)據(jù)條帶尚未重建,并且其中如果第i個(gè)指示符被設(shè)為第二值,則相關(guān)聯(lián)的數(shù)據(jù)條帶已經(jīng)重建,其中i小于或等于1,并且大于或等于N。除了處理與接收自一個(gè)或多個(gè)主機(jī)計(jì)算機(jī)的數(shù)據(jù)相關(guān)的輸出/輸出(“I/O”)操作(例如但不限于,數(shù)據(jù)重復(fù)刪除)之外,處理器128還執(zhí)行某些后臺(tái)操作,例如但不限于檢查和驗(yàn)證奇偶校驗(yàn),RAID重建,以及其他“內(nèi)務(wù)(housekeeping)”雜務(wù)。在某些實(shí)施方式中,處理器必須分配系統(tǒng)資源,例如但不限于,在數(shù)據(jù)重復(fù)刪除與RAID重建之間分配處理器資源。在圖I示出的實(shí)施方式中,主機(jī)計(jì)算機(jī)102、104和106分別使用I/O協(xié)議103、105和107連接至架構(gòu)110。I/O協(xié)議103、105和107可以是任意類型的I/O協(xié)議;例如,光纖信道(“FC”)回路,與架構(gòu)110的直接附接,或者由主機(jī)計(jì)算機(jī)102、104和106用來傳送去往以及來自架構(gòu)110的信息的一個(gè)或多個(gè)信號(hào)線。在某些實(shí)施方式中,架構(gòu)110例如包括一個(gè)或多個(gè)FC交換機(jī)115。在某些實(shí)施方式中,這一個(gè)或多個(gè)交換機(jī)115包括一個(gè)或多個(gè)傳統(tǒng)路由器交換機(jī)。在圖I示出的實(shí)施方式中,一個(gè)或多個(gè)交換機(jī)115經(jīng)由I/O協(xié)議117將主機(jī)計(jì)算機(jī)102、104和106與RAID控制器120互聯(lián)。I/O協(xié)議117可以包括任意類型的I/O接口,例如,光纖信道、無限頻帶、千兆以太網(wǎng)、以太網(wǎng)、TCP/IP、iSCSI、SCSI I/O接口或者由FC交換機(jī)115用來傳送去往和來自RAID控制器以及隨后的數(shù)據(jù)存儲(chǔ)介質(zhì)30、140、150和160的信息的一個(gè)或多個(gè)信號(hào)線。在其他實(shí)施方式中,一個(gè)或多個(gè)主機(jī)計(jì)算機(jī)(例如但不限于,主機(jī)計(jì)算機(jī)102、104和106)分別使用I/O協(xié)議103、105和107與RAID控制器120直接通信。在圖2A示出的實(shí)施方式中,本發(fā)明的RAID控制器120使用交換機(jī)的光纖信道仲裁(“FC-AL”)回路與數(shù)據(jù)存儲(chǔ)介質(zhì)130、140、150和160通信,其中控制器120以及介質(zhì)130、140、150和160不是在信息存儲(chǔ)和檢索系統(tǒng)200中。本領(lǐng)域的技術(shù)人員將會(huì)理解,信息存儲(chǔ)和檢索系統(tǒng)200還包括附加元件,例如但不限于一個(gè)或多個(gè)主機(jī)適配器、一個(gè)或多個(gè)設(shè)備適配器、數(shù)據(jù)高速緩存、非易失性存儲(chǔ)等。圖2A示出的實(shí)施方式不應(yīng)被認(rèn)為將本發(fā)明限制于使用光纖信道網(wǎng)絡(luò)或者設(shè)備。在其他實(shí)施方式中,使用其他網(wǎng)絡(luò)拓?fù)浜驮O(shè)備,包括但不限于SAS設(shè)備和/或SATA設(shè)備。
在圖2B示出的實(shí)施方式中,本發(fā)明的信息存儲(chǔ)和檢索系統(tǒng)202包括交換機(jī)的雙 FC-AL回路,其中RAID控制器120A和RAID控制器120B與兩個(gè)FC-AL回路互聯(lián)。每個(gè)FC-AL 回路包含一個(gè)或多個(gè)本地控制器,諸如本地控制器210、220、230、240、250和260。本領(lǐng)域的技術(shù)人員將會(huì)理解,信息存儲(chǔ)和檢索系統(tǒng)200還包括附加元件,例如但不限于一個(gè)或多個(gè)主機(jī)適配器、一個(gè)或多個(gè)設(shè)備適配器、數(shù)據(jù)高速緩存、非易失性存儲(chǔ)等。在圖2B示出的實(shí)施方式中,每個(gè)RAID控制器與第一多個(gè)數(shù)據(jù)存儲(chǔ)介質(zhì)270、第二多個(gè)數(shù)據(jù)存儲(chǔ)介質(zhì)280和第三多個(gè)數(shù)據(jù)存儲(chǔ)介質(zhì)290通信。
圖2B示出的實(shí)施方式不應(yīng)認(rèn)為將本發(fā)明限于使用光纖信道網(wǎng)絡(luò)或設(shè)備。在圖2B 示出的實(shí)施方式中,兩個(gè)FC-AL回路的記載包括本發(fā)明裝置的一個(gè)實(shí)施方式。在其他實(shí)施方式中,使用其他網(wǎng)絡(luò)拓?fù)浜驮O(shè)備,包括但不限于SAS設(shè)備和/或SATA設(shè)備。
本領(lǐng)域的技術(shù)人員將會(huì)理解,數(shù)據(jù)重復(fù)刪除包括消除冗余數(shù)據(jù)的過程。在重復(fù)刪除過程中,刪除重復(fù)數(shù)據(jù),保留待存儲(chǔ)數(shù)據(jù)的僅一個(gè)拷貝。在某些實(shí)施方式中,仍然保持所有數(shù)據(jù)的索引,如果該數(shù)據(jù)曾經(jīng)需要的話。因?yàn)橹淮鎯?chǔ)了唯一的數(shù)據(jù),所以重復(fù)刪除能夠提高RAID陣列的存儲(chǔ)容量。
一般地,數(shù)據(jù)的重復(fù)刪除可以在文件級(jí)別或者數(shù)據(jù)塊級(jí)別操作。文件級(jí)別重復(fù)刪除消除了重復(fù)文件,但這并不是非常有效的重復(fù)刪除手段。塊重復(fù)刪除在文件內(nèi)進(jìn)行,并且保存每個(gè)塊或比特的唯一迭代。使用諸如MD5或者SHA-I的散列算法對(duì)每個(gè)數(shù)據(jù)區(qū)塊進(jìn)行處理。該過程生成針對(duì)每個(gè)片的唯一編號(hào),該編號(hào)繼而被存儲(chǔ)在索引中。
如果文件被更新,則僅保存改變的數(shù)據(jù)。也即,如果只改變了文檔或者表示的幾個(gè)字節(jié),則只保存改變的塊或字節(jié),改變不會(huì)構(gòu)造全新的文件。因此,塊重復(fù)刪除比文件重復(fù)刪除節(jié)省更多的存儲(chǔ)空間。然而,塊重復(fù)刪除需要較多的處理器資源。
在RAID重建期間,本發(fā)明的RAID控制器在RAID重建與數(shù)據(jù)重復(fù)刪除之間分配處理資源。圖3概括出了本發(fā)明的用于在同時(shí)執(zhí)行RAID重建時(shí)選擇數(shù)據(jù)重復(fù)刪除協(xié)議的方法?,F(xiàn)在參考圖3,在步驟310中,該方法提供包括RAID控制器和RAID陣列的數(shù)據(jù)存儲(chǔ)系統(tǒng)。
在步驟315中,該方法建立常規(guī)重復(fù)刪除協(xié)議。在某些實(shí)施方式中,步驟315的常規(guī)重復(fù)刪除協(xié)議對(duì)接收自一個(gè)或多個(gè)主機(jī)計(jì)算機(jī)的信息中安置的約90%到100%的重復(fù)數(shù)據(jù)塊進(jìn)行重復(fù)刪除。在某些實(shí)施方式中,步驟315的常規(guī)重復(fù)刪除協(xié)議對(duì)接收自一個(gè)或多個(gè)主機(jī)計(jì)算機(jī)的信息中安置的100%的重復(fù)數(shù)據(jù)塊進(jìn)行重復(fù)刪除。
在某些實(shí)施方式中,步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)的制造商執(zhí)行步驟315。在某些實(shí)施方式中,步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)的所有者和/或操作者執(zhí)行步驟315。在某些實(shí)施方式中,與步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)互聯(lián)的主機(jī)計(jì)算機(jī)執(zhí)行步驟315。
在步驟320,該方法建立RAID故障重復(fù)刪除協(xié)議。“RAID故障”表示RAID陣列中配置的一個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備的故障。在某些實(shí)施方式中,步驟320的RAID故障重復(fù)刪除協(xié)議7對(duì)接收自一個(gè)或多個(gè)主機(jī)計(jì)算機(jī)的信息中安置的約40%到60%的重復(fù)數(shù)據(jù)塊進(jìn)行重復(fù)刪除。在某些實(shí)施方式中,步驟320的RAID故障重復(fù)刪除協(xié)議對(duì)接收自一個(gè)或多個(gè)主機(jī)計(jì)算機(jī)的信息中安置的約50%的重復(fù)數(shù)據(jù)塊進(jìn)行重復(fù)刪除。在某些實(shí)施方式中,步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)的制造商執(zhí)行步驟320。在某些實(shí)施方式中,步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)的所有者和/或操作者執(zhí)行步驟320。在某些實(shí)施方式中,與步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)互聯(lián)的主機(jī)計(jì)算機(jī)執(zhí)行步驟320。在步驟325,該方法建立多存儲(chǔ)設(shè)備故障重復(fù)刪除協(xié)議。在某些實(shí)施方式中,步驟320的RAID多存儲(chǔ)設(shè)備故障重復(fù)刪除協(xié)議對(duì)接收自一個(gè)或多個(gè)主機(jī)計(jì)算機(jī)的信息中安置的約15%到35%的重復(fù)數(shù)據(jù)塊進(jìn)行重復(fù)刪除。在某些實(shí)施方式中,步驟325的多個(gè)存儲(chǔ)設(shè)備故障重復(fù)刪除協(xié)議對(duì)接收自一個(gè)或多個(gè)主機(jī)計(jì)算機(jī)的信息中安置的約25%的重復(fù)數(shù)據(jù)塊進(jìn)行重復(fù)刪除。在某些實(shí)施方式中,步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)的制造商執(zhí)行步驟325。在某些實(shí)施方式中,步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)的所有者和/或操作者執(zhí)行步驟325。在某些實(shí)施方式中,與步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)互聯(lián)的主機(jī)計(jì)算機(jī)執(zhí)行步驟325。在步驟330中,該方法提供包括多個(gè)交織數(shù)據(jù)塊的主機(jī)數(shù)據(jù)。在某些實(shí)施方式中,步驟330的數(shù)據(jù)由RAID控制器接收。在某些實(shí)施方式中,步驟330由主機(jī)計(jì)算機(jī)執(zhí)行。在步驟335中,該方法確定步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)是否在具有RAID故障的情況下運(yùn)行,也即,是否已經(jīng)檢測(cè)到數(shù)據(jù)存儲(chǔ)設(shè)備故障。在某些實(shí)施方式中,步驟335由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟335由主機(jī)計(jì)算機(jī)執(zhí)行。如果該方法在步驟335中確定步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)不是在具有RAID故障的情況下運(yùn)行,則該方法從步驟335轉(zhuǎn)到步驟345,其中該方法使用步驟315的常規(guī)重復(fù)刪除協(xié)議來處理步驟330的主機(jī)數(shù)據(jù)。在某些實(shí)施方式中,步驟345由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟345由主機(jī)計(jì)算機(jī)執(zhí)行。在步驟355中,該方法確定是否接收到附加主機(jī)數(shù)據(jù)。在某些實(shí)施方式中,步驟355由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟355由主機(jī)計(jì)算機(jī)執(zhí)行。如果該方法在步驟355中確定沒有接收到附加主機(jī)數(shù)據(jù),則該方法從步驟355轉(zhuǎn)到步驟370,并且結(jié)束。備選地,如果該方法在步驟355中確定已經(jīng)接收到附加主機(jī)數(shù)據(jù),則該方法從步驟355轉(zhuǎn)到步驟335,并且如在此描述地繼續(xù)。如果該方法在步驟335中確定步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)在具有RAID故障的情況下運(yùn)行,則該方法從步驟335轉(zhuǎn)到步驟340,其中該方法確定步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)是否在具有多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備故障的情況下運(yùn)行。在某些實(shí)施方式中,步驟340由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟340由主機(jī)計(jì)算機(jī)執(zhí)行。如果該方法在步驟340中確定步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)未在具有多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備故障的情況下運(yùn)行,則該方法從步驟340轉(zhuǎn)到步驟350,其中該方法使用步驟320的RAID故障重復(fù)刪除協(xié)議來處理步驟330的主機(jī)數(shù)據(jù)。在某些實(shí)施方式中,步驟350由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟350由主機(jī)計(jì)算機(jī)執(zhí)行。該方法從步驟350轉(zhuǎn)到步驟355,并且如在此描述的那樣繼續(xù)進(jìn)行。如果該方法在步驟340中確定步驟310的數(shù)據(jù)存儲(chǔ)系統(tǒng)在具有多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備故障的情況下運(yùn)行,則該方法從步驟340轉(zhuǎn)到步驟360,其中該方法使用步驟325的多設(shè)備故障重復(fù)刪除協(xié)議來處理步驟330的主機(jī)數(shù)據(jù)。在某些實(shí)施方式中,步驟360由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟360由主機(jī)計(jì)算機(jī)執(zhí)行。該方法從步驟360轉(zhuǎn)到步驟 355,并且如在此描述的那樣繼續(xù)進(jìn)行。
在某些實(shí)施方式中,圖4概括出了本發(fā)明人的用于動(dòng)態(tài)設(shè)置重復(fù)刪除協(xié)議的方法步驟。現(xiàn)在轉(zhuǎn)到圖4,在步驟410中,該方法提供包括RAID控制器和RAID陣列的數(shù)據(jù)存儲(chǔ)系統(tǒng)。
在步驟420中,該方法提供包括多個(gè)交織數(shù)據(jù)塊的主機(jī)數(shù)據(jù)。在某些實(shí)施方式中, 步驟420的數(shù)據(jù)有RAID控制器接收。在某些實(shí)施方式中,步驟420由主機(jī)計(jì)算機(jī)執(zhí)行。
在步驟430中,該方法確定RAID陣列中配置的故障數(shù)據(jù)存儲(chǔ)設(shè)備的數(shù)目M。在某些實(shí)施方式中,步驟430由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟430由主機(jī)計(jì)算機(jī)執(zhí)行。
在步驟440中,該方法建立偏移因子O的值。在某些實(shí)施方式中,O大于或等于O 并且小于或等于2。在某些實(shí)施方式中,O大于或等于O并且小于或等于3。在某些實(shí)施方式中,O大于或等于O并且小于或等于4。在某些實(shí)施方式中,步驟440由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟440由主機(jī)計(jì)算機(jī)執(zhí)行。
在步驟450中,該方法使用公式⑴來計(jì)算N的值。
N = M+1+M0(i)
在某些實(shí)施方式中,步驟450由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟450 由主機(jī)計(jì)算機(jī)執(zhí)行。
在步驟460中,該方法對(duì)步驟420中的主機(jī)數(shù)據(jù)中標(biāo)識(shí)的每第N個(gè)重復(fù)數(shù)據(jù)塊進(jìn)行重復(fù)刪除。在某些實(shí)施方式中,步驟460由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟 460由主機(jī)計(jì)算機(jī)執(zhí)行。
為了向本領(lǐng)域技術(shù)人員說明如何實(shí)現(xiàn)和使用圖4的方法,給出下面的示例。然而, 這些示例并非意在限制本發(fā)明的范圍。
示例 I
如果步驟410的數(shù)據(jù)存儲(chǔ)系統(tǒng)在沒有任何數(shù)據(jù)存儲(chǔ)設(shè)備故障的情況下運(yùn)行,則使用公式(i)計(jì)算出N為I。在此示例中,該方法對(duì)步驟420的主機(jī)數(shù)據(jù)中標(biāo)識(shí)的每個(gè)重復(fù)數(shù)據(jù)塊進(jìn)行重復(fù)刪除。
示例II
如果步驟410的數(shù)據(jù)存儲(chǔ)系統(tǒng)在具有I個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備故障的情況下運(yùn)行,并且O 設(shè)為0,則使用公式(i)計(jì)算出N為2。在此示例中,該方法對(duì)步驟420的主機(jī)數(shù)據(jù)中標(biāo)識(shí)的50%的重復(fù)數(shù)據(jù)塊進(jìn)行重復(fù)刪除。
示例III
如果步驟410的數(shù)據(jù)存儲(chǔ)系統(tǒng)在具有I個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備故障的情況下運(yùn)行,并且O 被設(shè)為1,則使用公式(i)計(jì)算出N為3。在此示例中,該方法對(duì)步驟420的主機(jī)數(shù)據(jù)中標(biāo)識(shí)的33. 3%的重復(fù)數(shù)據(jù)塊進(jìn)行重復(fù)刪除。
在某些實(shí)施方式中,圖4中記載的步驟440包括圖5中記載的步驟?,F(xiàn)在參考圖 5,在步驟510中,該方法建立最小RAID重建閾值。例如但非限制,在某些實(shí)施方式中,該方法在步驟510中設(shè)置約為每小時(shí)100GB的最小RAID重建速率。在某些實(shí)施方式中,步驟410的數(shù)據(jù)存儲(chǔ)系統(tǒng)的制造商執(zhí)行步驟510。在某些實(shí)施方式中,步驟410的數(shù)據(jù)存儲(chǔ)系統(tǒng)的所有者和/或操作者執(zhí)行步驟510。在某些實(shí)施方式中,與步驟410的數(shù)據(jù)存儲(chǔ)系統(tǒng)互聯(lián)的主機(jī)計(jì)算機(jī)執(zhí)行步驟510。
在步驟520中,該方法建立最大RAID重建閾值。例如但非限制,在某些實(shí)施方式中,該方法在步驟520中設(shè)置約為每小時(shí)200GB的最大RAID重建速率。在某些實(shí)施方式中,步驟410的數(shù)據(jù)存儲(chǔ)系統(tǒng)的制造商執(zhí)行步驟520。在某些實(shí)施方式中,步驟410的數(shù)據(jù)存儲(chǔ)系統(tǒng)的所有者和/或操作者執(zhí)行步驟520。在某些實(shí)施方式中,與步驟410的數(shù)據(jù)存儲(chǔ)系統(tǒng)互聯(lián)的主機(jī)計(jì)算機(jī)執(zhí)行步驟520。
在步驟530中,該方法確定實(shí)際RAID重建速率。在某些實(shí)施方式中,步驟530由 RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟530由主機(jī)計(jì)算機(jī)執(zhí)行。
在步驟540中,該方法確定步驟530的實(shí)際RAID速率是否小于步驟510的最小 RAID重建速率閾值。在某些實(shí)施方式中,步驟540由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟540由主機(jī)計(jì)算機(jī)執(zhí)行。
如果該方法在步驟540中確定步驟530的實(shí)際RAID重建速率小于步驟510的最小RAID重建速率閾值,則該方法從步驟540轉(zhuǎn)到步驟550,其中該方法將偏移因子O設(shè)為 2。在某些實(shí)施方式中,步驟550由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟550由主機(jī)計(jì)算機(jī)執(zhí)行。該方法從步驟550轉(zhuǎn)到步驟450,并如在此描述的那樣繼續(xù)進(jìn)行。
如果該方法在步驟540中確定步驟530的實(shí)際RAID重建速率未小于步驟510的最小RAID重建速率閾值,則該方法從步驟540轉(zhuǎn)到步驟560,其中該方法確定步驟530的實(shí)際RAID重建速率是否小于步驟520的最大RAID重建速率閾值。在某些實(shí)施方式中,步驟 560由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟560由主機(jī)計(jì)算機(jī)執(zhí)行。
如果該方法在步驟560中確定步驟530的實(shí)際RAID重建速率小于步驟520的最大RAID重建速率閾值,則該方法從步驟560轉(zhuǎn)到步驟570,其中該方法將偏移因子O設(shè)為I。在某些實(shí)施方式中,步驟570由RAID控制器執(zhí)行。在某些實(shí)施方式中,步驟570由主機(jī)計(jì)算機(jī)執(zhí)行。該方法從步驟570轉(zhuǎn)到步驟450,并如在此描述的那樣繼續(xù)進(jìn)行。
備選地,如果該方法在步驟560中確定步驟530的實(shí)際RAID重建速率未小于步驟 520的最大RAID重建速率閾值,則該方法從步驟560轉(zhuǎn)到步驟580,其中該方法將偏移因子 O設(shè)為O。該方法從步驟580轉(zhuǎn)到步驟450,并如在此描述地繼續(xù)。
在某些實(shí)施方式中,圖3、圖4和圖5中記載的各步驟可以合并、消除或者重新排序。
在某些實(shí)施方式中,本發(fā)明包括諸如指令124(圖I)的指令,其駐留在例如計(jì)算機(jī)可讀介質(zhì)121(圖I)的計(jì)算機(jī)可讀介質(zhì)中,其中這些指令由諸如處理器128(圖I)的處理器執(zhí)行,以執(zhí)行圖3中記載的一個(gè)或多個(gè)步驟315、320、325、330、335、340、345、350、355、360 和/或370,圖4中記載的一個(gè)或多個(gè)步驟420、430、440、450和/或460,和/或圖5中記載的一個(gè)或多個(gè)步驟 510、520、530、540、550、560、570 和 / 或 580。
在其他實(shí)施方式中,本發(fā)明包括駐留在任何其他計(jì)算機(jī)程序產(chǎn)品中的指令,其中這些指令由數(shù)據(jù)存儲(chǔ)系統(tǒng)100 (圖I)或200 (圖2A)或202(圖2B)外部或內(nèi)部的計(jì)算機(jī)執(zhí)行,以執(zhí)行圖3中記載的一個(gè)或多個(gè)步驟315、320、325、330、335、340、345、350、355、360和/ 或370,圖4中記載的一個(gè)或多個(gè)步驟420、430、440、450和/或460,和/或圖5中記載的一個(gè)或多個(gè)步驟510、520、530、540、550、560、570和/或580。在任一情況下,指令可以編碼在計(jì)算機(jī)可讀介質(zhì)中,包括但不限于磁性信息存儲(chǔ)介質(zhì)、光學(xué)信息存儲(chǔ)介質(zhì)、電子信息存儲(chǔ)介質(zhì)等?!半娮哟鎯?chǔ)介質(zhì)”表示例如但不限于一個(gè)或多個(gè)設(shè)備,諸如但不限于PROM、EPROM、EEPROM、閃速PROM、壓縮閃存、智能介質(zhì)等。盡管已經(jīng)詳細(xì)說明了本發(fā)明的優(yōu)選實(shí)施方式,對(duì)于本領(lǐng)域技術(shù)人員應(yīng)當(dāng)易見的是,在不脫離所附權(quán)利要求書中記載的本發(fā)明范圍的情況下,可以對(duì)這些實(shí)施方式進(jìn)行修改和調(diào)整。
權(quán)利要求
1.一種用于建立在數(shù)據(jù)存儲(chǔ)庫(kù)中使用的數(shù)據(jù)重復(fù)刪除協(xié)議的方法,所述數(shù)據(jù)存儲(chǔ)庫(kù)包括配置為RAID陣列的多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備,所述方法包括步驟 接收交織信息的多個(gè)塊; 確定故障數(shù)據(jù)存儲(chǔ)設(shè)備的數(shù)目M ; 建立偏移因子O的值; 計(jì)算N的值,其中N = M+1+MO ; 對(duì)每第N個(gè)數(shù)據(jù)塊進(jìn)行重復(fù)刪除。
2.如權(quán)利要求I所述的方法,還包括步驟當(dāng)M等于O時(shí),設(shè)置O等于O。
3.如權(quán)利要求I所述的方法,還包括步驟當(dāng)M等于I時(shí),設(shè)置O等于I。
4.如權(quán)利要求I所述的方法,還包括步驟當(dāng)M等于2時(shí),設(shè)置O等于2。
5.如權(quán)利要求I所述的方法,還包括步驟 建立最小RAID重建速率閾值; 建立最大RAID重建閾值; 確定實(shí)際RAID重建速率; 確定所述實(shí)際RAID重建速率是否小于所述最小RAID重建速率閾值; 當(dāng)所述實(shí)際RAID重建速率小于所述最小RAID重建速率閾值時(shí),設(shè)置O等于2。
6.如權(quán)利要求5所述的方法,還包括步驟 當(dāng)所述實(shí)際RAID重建速率未小于所述最小RAID重建速率閾值時(shí),確定所述實(shí)際RAID重建速率是否小于所述最大RAID重建速率; 當(dāng)所述實(shí)際RAID重建速率未小于所述最小RAID重建速率閾值時(shí)并且小于所述最大RAID重建速率時(shí),設(shè)置O等于I。
7.如權(quán)利要求6所述的方法,還包括步驟如果所述實(shí)際RAID重建速率未小于所述最大RAID重建速率,則設(shè)置O等于O。
8.一種用于建立在數(shù)據(jù)存儲(chǔ)庫(kù)中使用的數(shù)據(jù)重復(fù)刪除協(xié)議的系統(tǒng),所述數(shù)據(jù)存儲(chǔ)庫(kù)包括配置為RAID陣列的多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備,所述系統(tǒng)包括 用于接收交織信息的多個(gè)塊的裝置; 用于確定故障數(shù)據(jù)存儲(chǔ)設(shè)備的數(shù)目M的裝置; 用于建立偏移因子O的值的裝置; 用于計(jì)算N的值的裝置,其中N = M+1+MO ; 用于對(duì)每第N個(gè)數(shù)據(jù)塊進(jìn)行重復(fù)刪除的裝置。
9.如權(quán)利要求8所述的系統(tǒng),還包括用于當(dāng)M等于O時(shí),設(shè)置O等于O的裝置。
10.如權(quán)利要求8所述的系統(tǒng),還包括用于當(dāng)M等于I時(shí),設(shè)置O等于I的裝置。
11.如權(quán)利要求8所述的系統(tǒng),還包括用于當(dāng)M等于2時(shí),設(shè)置O等于2的裝置。
12.如權(quán)利要求8所述的系統(tǒng),還包括 用于建立最小RAID重建速率閾值的裝置; 用于建立最大RAID重建閾值的裝置; 用于確定實(shí)際RAID重建速率的裝置; 用于確定所述實(shí)際RAID重建速率是否小于所述最小RAID重建速率閾值的裝置; 用于當(dāng)所述實(shí)際RAID重建速率小于所述最小RAID重建速率閾值時(shí),設(shè)置O等于2的>J-U ρ α裝直。
13.如權(quán)利要求12所述的系統(tǒng),還包括 用于當(dāng)所述實(shí)際RAID重建速率未小于所述最小RAID重建速率閾值時(shí),確定所述實(shí)際RAID重建速率是否小于所述最大RAID重建速率的裝置; 用于當(dāng)所述實(shí)際RAID重建速率未小于所述最小RAID重建速率閾值時(shí)并且小于所述最大RAID重建速率時(shí),設(shè)置O等于I的裝置。
14.如權(quán)利要求13所述的系統(tǒng),還包括用于如果所述實(shí)際RAID重建速率未小于所述最大RAID重建速率,則設(shè)置O等于O的裝置。
全文摘要
一種選擇用于數(shù)據(jù)存儲(chǔ)庫(kù)的重復(fù)刪除協(xié)議的方法,該數(shù)據(jù)存儲(chǔ)庫(kù)包括配置為RAID陣列的多個(gè)數(shù)據(jù)存儲(chǔ)設(shè)備,該方法建立常規(guī)重復(fù)刪除協(xié)議、RAID故障重復(fù)刪除協(xié)議、以及多存儲(chǔ)設(shè)備故障重復(fù)刪除協(xié)議。該方法接收包括多個(gè)交織數(shù)據(jù)塊的主機(jī)數(shù)據(jù)。如果系統(tǒng)在沒有任何存儲(chǔ)設(shè)備故障的情況下運(yùn)行,則該方法使用常規(guī)重復(fù)刪除協(xié)議來處理主機(jī)數(shù)據(jù)。如果系統(tǒng)在具有一個(gè)存儲(chǔ)設(shè)備故障的情況下運(yùn)行,則該方法使用RAID故障重復(fù)刪除協(xié)議來處理主機(jī)數(shù)據(jù)。如果系統(tǒng)在具有多個(gè)存儲(chǔ)設(shè)備故障的情況下運(yùn)行,則該方法使用多存儲(chǔ)設(shè)備故障重復(fù)刪除協(xié)議來處理主機(jī)數(shù)據(jù)。
文檔編號(hào)G06F11/10GK102981922SQ20121043608
公開日2013年3月20日 申請(qǐng)日期2009年2月18日 優(yōu)先權(quán)日2008年3月11日
發(fā)明者N·豪斯泰恩, D·J·維納爾斯基, U·特羅普恩斯, C·A·克萊恩, A·K·貝特斯 申請(qǐng)人:國(guó)際商業(yè)機(jī)器公司