通過加密在數(shù)據(jù)去重復(fù)系統(tǒng)中保留冗余性的制作方法
【專利摘要】本發(fā)明提供了用于在計算環(huán)境中的數(shù)據(jù)去重復(fù)系統(tǒng)中保留數(shù)據(jù)冗余性的各種實施例。在一個實施例中,公開了一種用于這樣的保留的方法。對將通過數(shù)據(jù)去重復(fù)系統(tǒng)寫入的選擇的數(shù)據(jù)段加密,從而使得選擇的數(shù)據(jù)段不經(jīng)受去重復(fù)操作。其它系統(tǒng)和計算機(jī)產(chǎn)品實施例被公開并且提供有關(guān)優(yōu)點。
【專利說明】通過加密在數(shù)據(jù)去重復(fù)系統(tǒng)中保留冗余性
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明總體上涉及計算機(jī),并且更特別地涉及一種用于在數(shù)據(jù)去重復(fù)系統(tǒng)被結(jié)合 在其中的計算環(huán)境中保留冗余性和其它數(shù)據(jù)安全特性的方法、系統(tǒng)和計算機(jī)程序產(chǎn)品。
【背景技術(shù)】
[0002] 在如今的社會中的多種設(shè)置中發(fā)現(xiàn)計算機(jī)和計算機(jī)系統(tǒng)。可以在家里、在工作地、 在學(xué)校、在政府中和在其它設(shè)置中發(fā)現(xiàn)計算環(huán)境和網(wǎng)絡(luò)。計算環(huán)境越來越多地在許多情況 下在與向用戶呈現(xiàn)的本地界面遠(yuǎn)離的一個或者多個存儲環(huán)境中存儲數(shù)據(jù)。
[0003] 這些計算存儲環(huán)境可以使用經(jīng)常協(xié)調(diào)工作的許多存儲設(shè)備(比如盤驅(qū)動)以存 儲、取回和更新然后可以向請求或者發(fā)送數(shù)據(jù)的主機(jī)計算機(jī)提供的大數(shù)據(jù)體。在一些情況 下,多個數(shù)據(jù)存儲子系統(tǒng)作為單個數(shù)據(jù)存儲系統(tǒng)被共同地管理。這些子系統(tǒng)可以由組合若 干處理單元或者處理單元群集的主機(jī)"sysplex"(系統(tǒng)聯(lián)合體)配置管理。以這一方式,經(jīng) 常包括各種類型的存儲設(shè)備的多層/多系統(tǒng)計算環(huán)境可以用來組織和處理大量數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0004] 許多多層/多系統(tǒng)計算環(huán)境實施數(shù)據(jù)去重復(fù)計數(shù)以通過減少跨越存儲設(shè)備的重 復(fù)存儲數(shù)量來改進(jìn)存儲性能。越來越多地利用數(shù)據(jù)去重復(fù)系統(tǒng),因為它們幫助減少為了存 儲數(shù)據(jù)而需要的物理存儲裝置總數(shù)量。通過保證不多次存儲重復(fù)數(shù)據(jù)來實現(xiàn)這一減少。取 而代之,例如,如果數(shù)據(jù)組塊與已經(jīng)存儲的數(shù)據(jù)組塊匹配,則在虛擬存儲映射中存儲指向原 有數(shù)據(jù)的指針而不是分配用于新數(shù)據(jù)組塊的新物理存儲空間。
[0005] 然而,在某些情形中,去重復(fù)行為可能違反例如托管的應(yīng)用的冗余性要求或者存 儲策略或者其它要求。存在對于如下機(jī)制的需要,其中通過允許對于無冗余性要求的其余 數(shù)據(jù)出現(xiàn)去重復(fù)來保證具有這樣的要求的數(shù)據(jù)安全而未削弱去重復(fù)系統(tǒng)的益處。
[0006] 鑒于前文,公開了用于在數(shù)據(jù)去重復(fù)系統(tǒng)中保留數(shù)據(jù)冗余性的各種實施例。在一 個實施例中,僅舉例而言,公開了一種用于這樣的保留的方法。將通過數(shù)據(jù)去重復(fù)系統(tǒng)寫入 的選擇的數(shù)據(jù)段被加密,從而使得選擇的數(shù)據(jù)段不經(jīng)受去重復(fù)操作。
[0007] 除了前述示例性實施例之外,各種系統(tǒng)和計算機(jī)程序?qū)嵤├惶峁┎⑶夜?yīng)有關(guān) 優(yōu)點。
【專利附圖】
【附圖說明】
[0008] 為了將容易理解本發(fā)明的優(yōu)點,將通過參照在附圖中圖示的具體實施例來表現(xiàn)對 以上簡要地描述的本發(fā)明的更特別描述。應(yīng)理解這些附圖僅描繪本發(fā)明的典型實施例并且 因此不會被視為限制它的范圍,將通過使用附圖用附加特點和細(xì)節(jié)描述和說明本發(fā)明,在 附圖中:
[0009] 圖1是圖示了可以實施本發(fā)明的方面的示例性計算環(huán)境的框圖;
[0010] 圖2是示出了數(shù)據(jù)存儲系統(tǒng)的硬件結(jié)構(gòu)的框圖,同樣可以在該數(shù)據(jù)存儲系統(tǒng)中實 施本發(fā)明的方面;
[0011] 圖3是可以在其中實施本發(fā)明的方面的示例性數(shù)據(jù)段的框圖;
[0012] 圖4A是通過加密模塊寫入數(shù)據(jù)以獲得加密的寫入數(shù)據(jù)的示例性過程的框圖;
[0013] 圖4B是通過數(shù)據(jù)去重復(fù)引擎和高速緩存向物理存儲裝置寫入加密的寫入數(shù)據(jù)的 示例性過程的有關(guān)框圖;
[0014] 圖5是根據(jù)本發(fā)明的用于在數(shù)據(jù)去重復(fù)系統(tǒng)中保證冗余性的示例性方法;
[0015] 圖6是可以在其中實施本發(fā)明的方面的用于處理數(shù)據(jù)的示例性方法;并且
[0016] 圖7是同樣可以在其中實施本發(fā)明的方面的用于處理數(shù)據(jù)的附加示例性方法。
【具體實施方式】
[0017] 在存儲控制器中的數(shù)據(jù)去重復(fù)通常在應(yīng)用的"場景后面"工作,并且有時可能在違 背應(yīng)用的需要來執(zhí)行去重復(fù)操作時與應(yīng)用的利益相反地操作。如果應(yīng)用寫入相同數(shù)據(jù)的多 個副本并且旨在于保持多個物理副本而去重復(fù)子系統(tǒng)(去重復(fù)引擎)發(fā)現(xiàn)這些匹配副本并 且以在存儲數(shù)據(jù)之時對副本去重復(fù)作為結(jié)束,則這一情形可能出現(xiàn)。這可能對應(yīng)用有害,該 應(yīng)用預(yù)計在各種位置發(fā)現(xiàn)多個副本,并且被存儲子系統(tǒng)造成認(rèn)為它已經(jīng)這樣做,但是實際 上僅已經(jīng)寫入了數(shù)據(jù)的單個副本。
[0018] 考慮以下示例。文件系統(tǒng)通常偏好于在虛擬盤上寫入"超塊"或者描述在基于塊 的存儲設(shè)備上的文件系統(tǒng)的元數(shù)據(jù)段(或者其它元數(shù)據(jù)信息)的多個物理副本以保證冗余 性。由于超塊的內(nèi)容相同,所以數(shù)據(jù)去重復(fù)將造成保持超塊的單個物理副本并且使多個虛 擬地址指向相同物理塊。這一情形高度地不可取,因為丟失在超塊的物理副本上的單個塊 可能致使文件系統(tǒng)全部不可用,因為沒有超塊的冗余副本。常規(guī)地,沒有直接地解決數(shù)據(jù)去 重復(fù)系統(tǒng)中的這一問題的現(xiàn)有方法。
[0019] 可以運用各種間接方法以嘗試解決這一問題。在一個示例中,數(shù)據(jù)去重復(fù)子系統(tǒng) 從其切分(carve out)物理存儲的存儲池可以被鏡像(即,包含相同數(shù)據(jù)的2個或者3個 副本)。因此,盡管有去重復(fù)也可以創(chuàng)建多個冗余副本。然而,這由于以下原因而是對于應(yīng) 用的不充分保護(hù)。首先,應(yīng)用可能希望保持相同數(shù)據(jù)的例如十個(10個)副本。然而,如果 存儲池被雙向鏡像,則它可能僅保持最多兩個(2個)副本。第二,由于數(shù)據(jù)去重復(fù)切分跨 度跨越大量存儲裝置和多個文件系統(tǒng)的物理存儲池,所以很可能的是多個應(yīng)用和文件系統(tǒng) 共享相同物理存儲池。因此有可能的是數(shù)據(jù)(比如超塊)的一些關(guān)鍵副本變成被物理地放 置于相同盤上。由于去重復(fù)將防止向多個物理位置寫入相同數(shù)據(jù)的多個副本,所以關(guān)鍵數(shù) 據(jù)的副本數(shù)目減少,并且它們可能變成被放置于用于多個文件系統(tǒng)的相同物理盤上。這增 加單獨故障變嚴(yán)重的風(fēng)險。
[0020] 例示的實施例提供用于解決先前討論的問題的多個機(jī)制。這些機(jī)制的一個目的是 保證在存儲控制器中的去重復(fù)子系統(tǒng)(或者無論它位于何處)平衡減少數(shù)據(jù)副本數(shù)目的益 處與對于物理分配關(guān)鍵數(shù)據(jù)的多個副本的應(yīng)用要求。在以下例示的實施例中描述的方法中 的每種方法可以在各種境況中被使用并且可以具有那些境況特有的附帶益處。
[0021] 在一個這樣的實施例中,選擇的數(shù)據(jù)段(比如塊)可以由所屬應(yīng)用(owning application)加密,由此"蒙騙"數(shù)據(jù)去重復(fù)系統(tǒng)認(rèn)為選擇的數(shù)據(jù)是新的不重復(fù)的數(shù)據(jù)并且 必須被分配到新存儲空間。例如,對于數(shù)據(jù)塊,其中所屬應(yīng)用必須存儲相同數(shù)據(jù)的多個物理 副本,應(yīng)用可以用數(shù)據(jù)塊的開始邏輯塊地址(LBA)(或者備選地是用于數(shù)據(jù)塊的某個其它 熟知的密鑰,該密鑰將無需附加元數(shù)據(jù)存儲空間(比如副本編號)(例如,用密鑰1對第一 副本進(jìn)行加密、用密鑰2對第二副本進(jìn)行加密等))對數(shù)據(jù)加密。用不同密鑰對相同副本進(jìn) 行加密將致使副本在檢查去重復(fù)引擎看來"不同",因此保證結(jié)合去重復(fù)引擎的存儲控制器 或者其它存儲管理設(shè)備不會對塊去重復(fù)。
[0022] 以上提到的加密技術(shù)具有的優(yōu)點在于存儲控制器(或者同樣是任何存儲管理設(shè) 備)無需改變?nèi)魏畏矫嬉詫嵤┫M奶匦?。所屬?yīng)用同樣通過使用簡單技術(shù)來"蒙騙"或 者"欺騙"存儲控制器并且這樣做而未引起額外開銷或者顯著處理或者資源分配(例如,附 加元數(shù)據(jù)存儲開銷,但是如本領(lǐng)域普通技術(shù)人員將領(lǐng)會到的那樣保留附加資源)。
[0023] 鑒于描述的實施例,通過允許應(yīng)用規(guī)定是否必須對寫入加密(并且由此判決哪個 數(shù)據(jù)放棄去重復(fù)),向應(yīng)用允許用于實施與它生成的數(shù)據(jù)關(guān)聯(lián)的存儲策略的靈活性。這樣, 應(yīng)用處于比去重復(fù)系統(tǒng)更好的情形以確定選擇的數(shù)據(jù)塊是否即使相同仍然必須位于分離 的物理位置。此外,存儲控制器(或者其它存儲管理設(shè)備)繼續(xù)通過去重復(fù)和同時向應(yīng)用 允許足夠控制以在需要時取消去重復(fù)來執(zhí)行它的數(shù)據(jù)減少作用。
[0024] 通過將選擇的數(shù)據(jù)組塊指明為加密的,由此向應(yīng)用提供了很細(xì)粒度的控制,從而 允許在實現(xiàn)方式中的靈活性而仍然保持去重復(fù)功能的優(yōu)點并且保持用于關(guān)鍵數(shù)據(jù)的冗余 性。
[0025] 在以下描述中,參照附圖,這些附圖形成該描述的部分并且例示本發(fā)明的若干實 施例。將理解,可以利用其它實施例并且可以進(jìn)行結(jié)構(gòu)和操作改變而未脫離本發(fā)明的范圍。
[0026] 轉(zhuǎn)向圖1,描繪了可以在其中實現(xiàn)本發(fā)明的方面的示例計算機(jī)系統(tǒng)10。計算機(jī)系 統(tǒng)10包括連接到海量存儲設(shè)備14和存儲器設(shè)備16的中央處理單元(CPU) 12。海量存儲設(shè) 備可以包括可以在獨立盤冗余陣列(RAID)中配置的硬盤驅(qū)動(HDD)設(shè)備??梢栽谖挥谙?統(tǒng)10中或者別處的設(shè)備14上執(zhí)行在其中可以如進(jìn)一步描述的那樣實施本發(fā)明的方面的數(shù) 據(jù)管理操作。存儲器設(shè)備16可以包括比如電可擦除可編程只讀存儲器(EEPR0M)或者許多 有關(guān)設(shè)備這樣的存儲器。
[0027] 存儲器16被示出為包括應(yīng)用程序15和應(yīng)用程序17的,在該應(yīng)用程序中,文件系 統(tǒng)19以及加密模塊21可操作。應(yīng)用15和應(yīng)用17可以創(chuàng)建、刪除或者以別的方式管理在 設(shè)備(比如海量存儲設(shè)備14)中物理地存儲的數(shù)據(jù)段(比如數(shù)據(jù)組塊或者數(shù)據(jù)塊)。文件 系統(tǒng)19提供用于通過提供用于存儲、取回和更新數(shù)據(jù)以及管理在包含它的設(shè)備上的可用 空間的過程來組織預(yù)計在應(yīng)用程序17終止之后保持的數(shù)據(jù)的手段。文件系統(tǒng)19以高效方 式組織數(shù)據(jù)并且按照設(shè)備(比如計算機(jī)10和/或存儲器16)的具體特性被調(diào)節(jié)。在一個 實施例中,應(yīng)用17可以是操作系統(tǒng)(0S) 17,并且文件系統(tǒng)19保持在0S 17與文件系統(tǒng)19 之間的緊密耦合。如本領(lǐng)域普通技術(shù)人員將領(lǐng)會到的那樣,文件系統(tǒng)19可以提供用于控制 對數(shù)據(jù)和元數(shù)據(jù)的訪問的機(jī)制并且可以包含用于保證數(shù)據(jù)可靠性的機(jī)制(比如本發(fā)明的 更多某些方面所必需的機(jī)制)。文件系統(tǒng)19可以提供用于多個應(yīng)用程序15、17接近同時更 新在相同文件中的數(shù)據(jù)的手段。
[0028] 加密模塊21可以與應(yīng)用15、應(yīng)用17、文件系統(tǒng)19或者其它計算硬件或者軟件部 件結(jié)合用來實現(xiàn)本發(fā)明的目的。在一個實施例中,例如,加密模塊21處理被指明為放棄去 重復(fù)的選擇的數(shù)據(jù)組塊以用弱安全密鑰對數(shù)據(jù)組塊的至少一部分加密(以同樣避免引起 顯著處理和/或資源分配開銷)。加密機(jī)制的實現(xiàn)方式可以如本領(lǐng)域普通技術(shù)人員將領(lǐng)會 到的那樣變化,并且加密機(jī)制本身可以根據(jù)特定實現(xiàn)方式而變化。在一個實施例中,加密機(jī) 制的目標(biāo)是"改變"數(shù)據(jù)的特性僅足以去重復(fù)引擎認(rèn)為數(shù)據(jù)是"新"數(shù)據(jù)而需要盡可能最少 量的資源和開銷分配。
[0029] 在例示實施例中,存儲器設(shè)備16和海量存儲設(shè)備14經(jīng)由信號承載介質(zhì)連接到CPU 12。此外,CPU 12通過通信端口 18連接到具有附著的多個附加計算機(jī)系統(tǒng)22和24的通 信網(wǎng)絡(luò)20。計算機(jī)系統(tǒng)10可以包括用于計算機(jī)系統(tǒng)10的每個個別部件的一個或者多個處 理器設(shè)備(例如,CPU 12)和附加存儲器設(shè)備16以執(zhí)行和實現(xiàn)這里描述的每個操作以實現(xiàn) 本發(fā)明的目的。
[0030] 圖2是示出了根據(jù)本發(fā)明的計算機(jī)系統(tǒng)中的數(shù)據(jù)存儲系統(tǒng)的硬件結(jié)構(gòu)的示例性 框圖200。示出了主機(jī)計算機(jī)210、220、225,每個主機(jī)計算機(jī)充當(dāng)用于執(zhí)行數(shù)據(jù)處理作為數(shù) 據(jù)存儲系統(tǒng)200的部分的中央處理單元。主機(jī)(物理或者虛擬設(shè)備)210、220和225可以是 用于在數(shù)據(jù)存儲系統(tǒng)200中實現(xiàn)本發(fā)明的目的的一個或者多個新物理設(shè)備或者邏輯設(shè)備。 在一個實施例中,僅舉例而言,數(shù)據(jù)存儲系統(tǒng)200可以被實施為IBM? System Storage? DS8000?。網(wǎng)絡(luò)連接260可以是光纖信道結(jié)構(gòu)、光纖信道點到點鏈路、在以太網(wǎng)結(jié)構(gòu)之上的 光纖信道光纖或者點到點鏈路、FICON或者ESC0N I/O接口、任何其它I/O接口類型、無線網(wǎng) 絡(luò)、有線網(wǎng)絡(luò)、LAN、WAN、異構(gòu)、同構(gòu)、公用(即因特網(wǎng))、專用或者其任何組合。主機(jī)210、220 和225可以是本地或者分布于一個或者多個位置之中并且可以被配備有存儲控制器240的 任何類型的結(jié)構(gòu)(或者結(jié)構(gòu)信道)(在圖2中未示出)或者網(wǎng)絡(luò)適配器260,比如光纖信道、 FIC0N、ESC0N、以太網(wǎng)、光纖、無線或者同軸適配器。數(shù)據(jù)存儲系統(tǒng)200相應(yīng)地被配備有用于 通信的適當(dāng)結(jié)構(gòu)(在圖2中未示出)或者網(wǎng)絡(luò)適配器260。在圖2中描繪包括存儲控制器 240和存儲裝置230的數(shù)據(jù)存儲系統(tǒng)200。
[0031] 為了有助于對這里描述的方法的更清楚理解,存儲控制器240在圖2中被示 出為如以下將更具體描述的包括微處理器242、系統(tǒng)存儲器243和非易失性存儲裝置 ("NVS")216的單個處理單元。注意,在一些實施例中,存儲控制器240由多個處理單元組 成,這些處理單元各自具有它們自己的處理器聯(lián)合體和系統(tǒng)存儲器,并且由在數(shù)據(jù)存儲系 統(tǒng)200內(nèi)的專用網(wǎng)絡(luò)互連。存儲裝置230可以由被存儲網(wǎng)絡(luò)連接到存儲控制器240的一個 或者多個存儲設(shè)備(比如存儲陣列)組成。
[0032] 在一些實施例中,可以在回路架構(gòu)中連接在存儲裝置230中包括的設(shè)備。存儲控 制器240管理存儲裝置230并且有助于處理以存儲裝置230為目的的寫入和讀取請求。存 儲控制器240的系統(tǒng)存儲器243存儲處理器242可以訪問的用于執(zhí)行與管理存儲裝置230 關(guān)聯(lián)的功能的程序指令和數(shù)據(jù)。在一個實施例中,系統(tǒng)存儲器243包括操作軟件250、與操 作軟件250關(guān)聯(lián)或者通信并且被部分地配置用于實現(xiàn)本發(fā)明的功能。如圖2中所示,系統(tǒng) 存儲器243也可以包括用于存儲裝置230的高速緩存245或者與該高速緩存245通信,該 高速緩存245也被稱為"高速緩存存儲器",該高速緩存245用于緩沖分別是指寫入/讀取 請求及其關(guān)聯(lián)的數(shù)據(jù)的"寫入數(shù)據(jù)"和"讀取數(shù)據(jù)"。在一個實施例中,高速緩存245在系統(tǒng) 存儲器243外部的設(shè)備中被分配,而仍然保持可由微處理器242訪問并且可以服務(wù)于除了 實現(xiàn)如這里描述的操作之外還提供防范數(shù)據(jù)丟失的附加安全性。
[0033] 在一些實施例中,高速緩存245用易失性存儲器和非易失性存儲器來實施并且經(jīng) 由本地總線(在圖2中未示出)耦合到微處理器242以用于數(shù)據(jù)存儲系統(tǒng)200的增強(qiáng)的性 能。在數(shù)據(jù)存儲控制器中包括的NVS 216可由微處理器242訪問并且服務(wù)于提供用于本發(fā) 明的如在其它圖中描述的操作和執(zhí)行的附加支持。NVS 216也可以被稱為"持續(xù)"高速緩 存或者"高速緩存存儲器"并且用非易失性存儲器來實施,該非易失性存儲器可以利用或者 可以不利用外部功率以保持在其中存儲的數(shù)據(jù)。NVS可以在高速緩存245中和與高速緩存 245 -起被存儲以用于與實現(xiàn)本發(fā)明的目的相適的任何目的。在一些實施例中,備份功率源 (在圖2中未示出)(比如電池)在供給數(shù)據(jù)存儲系統(tǒng)200的功率失去的情況下向NVS 216 供應(yīng)充分功率以保持在其中存儲的數(shù)據(jù)。在某些實施例中,NVS 216的容量小于或者等于 高速緩存245的總?cè)萘俊?br>
[0034] 存儲裝置230可以物理地由一個或者多個存儲設(shè)備(比如存儲陣列)組成。存儲 陣列是個別存儲設(shè)備(比如硬盤)的邏輯分組。在某些實施例中,存儲裝置230由JB0D (簡 單盤簇)陣列或者RAID (獨立盤冗余陣列)陣列組成。物理存儲陣列的匯集可以被進(jìn)一步 組合以形成將物理存儲從邏輯配置去關(guān)聯(lián)的等級(rank)。在等級中的存儲空間可以被分配 成邏輯卷,這些邏輯卷定義在讀取/寫入請求中指定的存儲位置。
[0035] 在一個實施例中,僅舉例而言,如圖2中所示的存儲系統(tǒng)可以包括邏輯卷或者簡 稱為"卷",可以具有不同種類的分配。存儲裝置230a、230b和230η被示出為在數(shù)據(jù)存儲系 統(tǒng)200中的等級并且在這里被稱為等級230a、230b和230η。等級可以在數(shù)據(jù)存儲系統(tǒng)200 本地,或者可以位于物理地遠(yuǎn)離的位置。換言之,本地存儲控制器可以與遠(yuǎn)程存儲控制器連 接并且管理在遠(yuǎn)程位置的存儲。等級230a被示出為被配置有兩個全部卷234和236以及 一個部分卷232a。等級230b被示出為具有另一部分卷232b。因此跨越等級230a和230b 分配卷232。等級230η被示出為被完全地分配給卷238-也就是說,等級230η是指用于 卷238的整個物理存儲。根據(jù)以上示例,將領(lǐng)會到等級可以被配置為包括一個或者多個部 分和/或全部卷。卷和等級還可以被劃分成所謂的"軌道",這些軌道代表固定存儲塊。軌 道因此與給定的卷關(guān)聯(lián)并且可以被給予給定的等級。
[0036] 存儲控制器240包括用于控制通向主機(jī)計算機(jī)210、220、225的光纖信道協(xié)議的控 制交換機(jī)241、用于控制全部存儲控制器240的微處理器242、用于存儲用于控制存儲控制 器240的操作的微程序(操作軟件)250的、用于控制的數(shù)據(jù)和隨后描述的每個表的非易失 性控制器存儲器243、用于暫時地存儲(緩沖)數(shù)據(jù)的高速緩存245以及用于輔助高速緩存 245讀取和寫入數(shù)據(jù)的緩沖器244、用于控制協(xié)議(該協(xié)議用于控制向或者從存儲設(shè)備230 的數(shù)據(jù)傳送)的控制交換機(jī)241以及壓縮操作模塊255和可以在其中設(shè)置信息的壓縮操作 列表模塊257。可以與本發(fā)明一起實施多個緩沖器244以輔助如這里描述的操作。
[0037] 在一個實施例中,通過作為接口的網(wǎng)絡(luò)適配器(這可以是光纖信道)260 ( S卩,經(jīng) 由被稱為"結(jié)構(gòu)"的至少一個交換機(jī))連接主機(jī)計算機(jī)或者一個或者多個物理或者虛擬設(shè) 備210、220、225和存儲控制器240。在一個實施例中,將描述在圖2中所示的系統(tǒng)的操作。 微處理器242可以控制存儲器243以存儲來自主機(jī)設(shè)備(物理或者虛擬)210的命令信息 和用于標(biāo)識主機(jī)設(shè)備(物理或者虛擬)210的信息??刂平粨Q機(jī)241、緩沖器244、高速緩存 245、操作軟件250、微處理器242、存儲器243、NVS 216、壓縮操作模塊255和壓縮操作列表 模塊257相互通信并且可以是分離的部件或者一個個別部件。另外,可以與存儲器243 - 起包括如果不是所有部件則若干部件,比如操作軟件250。在所示設(shè)備內(nèi)的部件中的每個部 件可以被鏈接在一起并且可以相互通信以用于與本發(fā)明相適的目的。
[0038] 存儲控制器240被示出為包括數(shù)據(jù)去重復(fù)引擎255,在該數(shù)據(jù)去重復(fù)引擎255中處 理多個寫入數(shù)據(jù)259。數(shù)據(jù)去重復(fù)引擎255可以在結(jié)構(gòu)上是一個完整模塊或者可以與其它 個別模塊關(guān)聯(lián)和/或被結(jié)合在其它個別模塊內(nèi)。數(shù)據(jù)去重復(fù)引擎255被配置用于與存儲控 制器240的其它部件(比如微處理器242)結(jié)合對通過存儲控制器240向存儲裝置230傳 遞的寫入數(shù)據(jù)259執(zhí)行數(shù)據(jù)去重復(fù)操作。
[0039] 如先前指示的那樣,存儲控制器240包括高速緩存245 (或者可以被統(tǒng)稱為高速緩 存系統(tǒng)),該高速緩存245從主機(jī)210、220和225或者相似設(shè)備接受然后被放置于高速緩 存存儲器245中的寫入數(shù)據(jù)。數(shù)據(jù)去重復(fù)引擎255然后針對重復(fù)來測試在高速緩存存儲器 245中的寫入數(shù)據(jù)。用如所示的加密密鑰257 (加密的數(shù)據(jù)257)對應(yīng)用17 (圖1)希望保護(hù) 的免于去重復(fù)操作的寫入數(shù)據(jù)259加密。寫入數(shù)據(jù)259中的具有通過數(shù)據(jù)去重復(fù)引擎255 傳遞的加密密鑰257的寫入數(shù)據(jù)259向數(shù)據(jù)去重復(fù)引擎255指明它們是"新"數(shù)據(jù),并且由 此不經(jīng)受去重復(fù)操作(例如,用指向已經(jīng)被放置于存儲裝置230中的現(xiàn)有數(shù)據(jù)的指針來替 換)。
[0040] 在一個實施例中,應(yīng)用17/文件系統(tǒng)19首先確定給定的數(shù)據(jù)塊是否必須多次存 儲于物理存儲裝置上。這可以例如是與文件系統(tǒng)19本身關(guān)聯(lián)的超塊元數(shù)據(jù)或者其它相關(guān) 文件系統(tǒng)信息。應(yīng)用17然后在發(fā)布寫入之前利用用于該虛擬設(shè)備的唯一密鑰對那些數(shù)據(jù) 塊加密。作為后繼步驟,應(yīng)用可以與加密的數(shù)據(jù)257 -起向下層盤(設(shè)備)驅(qū)動發(fā)起寫入 請求,從而在效果上指明這一數(shù)據(jù)塊是"新的"并且決不被去重復(fù),即使未加密的塊與先前 寫入的數(shù)據(jù)塊相同。所屬應(yīng)用可以使用該塊的LBA作為弱加密密鑰在每盤塊基礎(chǔ)上執(zhí)行加 Γ t I ο
[0041] 這里同樣,選擇的加密方法(包括加密密鑰)被選擇使得密鑰在它以后從下層存 儲控制器或者存儲管理設(shè)備被讀取回時易于推斷。加密密鑰的示例可以包括以下各項:(1) 選擇的數(shù)據(jù)塊的開始LBA ; (2)數(shù)據(jù)塊在文件內(nèi)的偏移;以及本領(lǐng)域普通技術(shù)人員將熟悉的 其它相似加密機(jī)制。加密密鑰應(yīng)當(dāng)為弱和可預(yù)測(即,所屬應(yīng)用將知道用于具體元塊的加 密密鑰將是什么而別處不存儲密鑰)。
[0042] 在后繼步驟中,盤驅(qū)動轉(zhuǎn)而預(yù)備寫入命令,比如發(fā)給存儲控制器240的小型計算 機(jī)系統(tǒng)接口(SCSI)命令。在接收指明的加密的數(shù)據(jù)塊時,存儲控制器240經(jīng)由數(shù)據(jù)去重復(fù) 引擎255略去如本領(lǐng)域普通技術(shù)人員將領(lǐng)會到的指紋生成、匹配等去重復(fù)步驟,并且向新 物理盤位置上直接地寫入選擇的數(shù)據(jù)塊,即使可能已經(jīng)有相同數(shù)據(jù)的在存儲控制器240上 存儲的更早實例。隨后,在后續(xù)讀取這些數(shù)據(jù)塊(為應(yīng)用所熟知)時,應(yīng)用使用熟知和簡單 的密鑰(例如,弱密鑰/加密機(jī)制)對數(shù)據(jù)解密。由于這里使用的加密技術(shù)不是數(shù)據(jù)安全 性所必需的,所以可以盡可能高效地最小化用于執(zhí)行此類技術(shù)的任何開銷。
[0043] 在一個優(yōu)選實施例中,應(yīng)當(dāng)選擇加密或者數(shù)據(jù)變換函數(shù),從而使得所得數(shù)據(jù)的大 小保持不變。例如,在將變換512字節(jié)的數(shù)據(jù)的情形中,產(chǎn)生512字節(jié)的所得加密的數(shù)據(jù)。
[0044] 在一個實施例中,所屬應(yīng)用可以選擇對作為單位而寫入的多個數(shù)據(jù)塊加密。數(shù)據(jù) 變換函數(shù)(加密函數(shù))應(yīng)當(dāng)使得對每個個別塊解密返回用于這一個塊的原有數(shù)據(jù)。備選地, 應(yīng)用應(yīng)當(dāng)讀取這些多塊單位作為數(shù)據(jù)組塊并且作為單位對它們解密。
[0045] 現(xiàn)在轉(zhuǎn)向圖3,圖示了可以在其中結(jié)合所示實施例的各種方面的示例性數(shù)據(jù)段 259 ( S卩,塊)的框圖300。數(shù)據(jù)段259包括如所示向塊A的一部分追加的弱加密密鑰302 (比 如當(dāng)前副本1、2、3等)。
[0046] 圖4A圖示了如被描繪為示例性流程的本發(fā)明的各種功能方面的框圖400。具體而 言,在向存儲控制器發(fā)布寫入命令之前首先通過加密模塊21 (圖1)傳遞尚未用任何去重復(fù) 操作處理的將通過數(shù)據(jù)去重復(fù)引擎寫入402的數(shù)據(jù),其中如所示向選擇的數(shù)據(jù)應(yīng)用弱加密 并且生成加密的寫入數(shù)據(jù)404。
[0047] 繼續(xù)圖4B,框圖406圖示了本發(fā)明的同樣如被描繪為示例性流程的附加各種功能 方面。具體而言,向存儲控制器傳遞加密的寫入數(shù)據(jù)408以向存儲裝置230寫入(同樣為 圖2)。如所示通過數(shù)據(jù)去重復(fù)引擎255傳遞加密的寫入數(shù)據(jù),其中加密的數(shù)據(jù)259與現(xiàn)有 的潛在重復(fù)數(shù)據(jù)相比被視為新數(shù)據(jù)。這樣,數(shù)據(jù)去重復(fù)引擎與寫入請求410結(jié)合向存儲控 制器的其它部分(比如高速緩存系統(tǒng)245)傳遞加密的數(shù)據(jù),并且在存儲裝置230中的新空 間被分配用于加密的數(shù)據(jù),它最終被寫入在該新空間中。
[0048] 鑒于前文,以下圖5是可以在其中實施所示實施例的方面的用于在具有數(shù)據(jù)去重 復(fù)系統(tǒng)的存儲子系統(tǒng)中保證數(shù)據(jù)冗余性的示例性方法500。方法500始于(步驟502)對將 通過數(shù)據(jù)去重復(fù)系統(tǒng)寫入的選擇的數(shù)據(jù)段加密,從而使得選擇的數(shù)據(jù)段不經(jīng)受去重復(fù)操作 (步驟504)。方法500然后結(jié)束(步驟506)。
[0049] 在以下圖6中,圖示了這里同樣可以在其中實施本發(fā)明的各種方面的用于數(shù)據(jù)處 理的示例性方法600。方法600始于(步驟602)所屬應(yīng)用選擇唯一加密密鑰以與由所屬應(yīng) 用選擇為放棄去重復(fù)的數(shù)據(jù)段關(guān)聯(lián)(步驟604)。所屬應(yīng)用和/或文件系統(tǒng)然后用唯一加密 密鑰對選擇的數(shù)據(jù)段加密(步驟606)。
[0050] 作為后繼步驟,與加密的選擇的數(shù)據(jù)段一起向存儲控制器提供寫入請求(步驟 608)。然后通過去重復(fù)引擎處理加密的數(shù)據(jù)段,其中阻止對加密的數(shù)據(jù)執(zhí)行去重復(fù)操作,因 為選擇的數(shù)據(jù)段被去重復(fù)引擎識別/視為"新"數(shù)據(jù)(步驟610)。
[0051] 在步驟612中,在新分配的物理存儲位置中寫入加密的數(shù)據(jù)段。在加密的數(shù)據(jù)的 以后后續(xù)讀取中,然后向所屬應(yīng)用和/或文件系統(tǒng)返回加密的數(shù)據(jù)(步驟614)。然后,應(yīng)用 和/或文件系統(tǒng)使用附屬的加密算法對加密的數(shù)據(jù)段解密(步驟616),該加密算法同樣如 本領(lǐng)域普通技術(shù)人員將領(lǐng)會到的那樣可以根據(jù)特定應(yīng)用而變化、但是可以被選擇為最小化 開銷和帶寬。方法600然后結(jié)束(步驟618)。
[0052] 以下圖7是這里同樣結(jié)合本發(fā)明的各種方面的用于處理數(shù)據(jù)的有關(guān)示例性方法 700。方法700始于(步驟702)存儲控制器/數(shù)據(jù)去重復(fù)引擎接收寫入請求以用于與將寫 入的附帶數(shù)據(jù)一起處理(步驟704)。
[0053] 在步驟706中,方法700查詢附帶數(shù)據(jù)是否被加密(步驟706)。如果是,則去重復(fù) 引擎/存儲控制器放棄執(zhí)行數(shù)據(jù)去重復(fù)操作(步驟708),并且在新分配的物理存儲位置中 寫入加密的數(shù)據(jù)(步驟710)。注意,出于例示的目的,"方法"700被視為查詢數(shù)據(jù)是否被 加密。然而,在現(xiàn)實中,數(shù)據(jù)去重復(fù)系統(tǒng)不理解并且不查詢數(shù)據(jù)是否被加密。如先前說明的 那樣,借助加密,數(shù)據(jù)塊將不會與所屬應(yīng)用先前寫入的它的重復(fù)副本匹配。因此,去重復(fù)系 統(tǒng)將視這為"新"數(shù)據(jù)塊并且將向物理存儲寫入塊。返回到步驟706,如果附帶數(shù)據(jù)未被加 密,則去重復(fù)引擎/存儲控制器對數(shù)據(jù)執(zhí)行各種去重復(fù)操作(步驟712)。方法700然后結(jié) 束(步驟714)。
[0054] 所屬【技術(shù)領(lǐng)域】的技術(shù)人員知道,本發(fā)明可以實現(xiàn)為系統(tǒng)、方法或計算機(jī)程序產(chǎn)品。 因此,本發(fā)明的各個方面可以具體實現(xiàn)為以下形式,即:完全的硬件實施方式、完全的軟件 實施方式(包括固件、駐留軟件、微代碼等),或硬件和軟件方面結(jié)合的實施方式,這里可以 統(tǒng)稱為"電路"、"模塊"或"系統(tǒng)"。此外,在一些實施例中,本發(fā)明的各個方面還可以實現(xiàn)為 在任何一個或多個計算機(jī)可讀介質(zhì)中的計算機(jī)程序產(chǎn)品的形式,該計算機(jī)可讀介質(zhì)中包含 計算機(jī)可用的程序代碼。
[0055] 可以采用一個或多個計算機(jī)可讀介質(zhì)的任意組合。計算機(jī)可讀介質(zhì)可以是計算 機(jī)可讀信號介質(zhì)或者計算機(jī)可讀存儲介質(zhì)。計算機(jī)可讀存儲介質(zhì)例如可以是--但不限 于--電、磁、光、電磁、紅外線、或半導(dǎo)體的系統(tǒng)、裝置、器件或者任意以上的組合。計算機(jī) 可讀存儲介質(zhì)的更具體的示例(非窮舉的列表)包括:具有一個或多個導(dǎo)線的電連接、便 攜式計算機(jī)盤、硬盤、隨機(jī)存取存儲器(RAM)、只讀存儲器(ROM)、可擦式可編程只讀存儲器 (EPROM或閃存)、光纖、便攜式緊湊盤只讀存儲器(CD-ROM)、光存儲器件、磁存儲器件、或者 上述的任意合適的組合。在本文件中,計算機(jī)可讀存儲介質(zhì)可以是任何包含或存儲程序的 有形介質(zhì),該程序可以被指令執(zhí)行系統(tǒng)、裝置或者器件使用或者與其結(jié)合使用。
[0056] 可以以一種或多種程序設(shè)計語言的任意組合來編寫用于執(zhí)行本發(fā)明操作的計算 機(jī)程序代碼,所述程序設(shè)計語言包括面向?qū)ο蟮某绦蛟O(shè)計語言一諸如Java、Smalltalk、C++ 等,還包括常規(guī)的過程式程序設(shè)計語言一諸如"C"語言或類似的程序設(shè)計語言。程序代碼可 以完全地在用戶計算機(jī)上執(zhí)行、部分地在用戶計算機(jī)上執(zhí)行、作為一個獨立的軟件包執(zhí)行、 部分在用戶計算機(jī)上部分在遠(yuǎn)程計算機(jī)上執(zhí)行、或者完全在遠(yuǎn)程計算機(jī)或服務(wù)器上執(zhí)行。 在涉及遠(yuǎn)程計算機(jī)的情形中,遠(yuǎn)程計算機(jī)可以通過任意種類的網(wǎng)絡(luò)--包括局域網(wǎng)(LAN) 或廣域網(wǎng)(WAN)-連接到用戶計算機(jī),或者,可以連接到外部計算機(jī)(例如利用因特網(wǎng)服務(wù) 提供商來通過因特網(wǎng)連接)。
[0057] 下面將參照根據(jù)本發(fā)明示例實施例的方法、裝置(系統(tǒng))和計算機(jī)程序產(chǎn)品的流 程圖和/或框圖描述本發(fā)明。應(yīng)當(dāng)理解,流程圖和/或框圖的每個方框以及流程圖和/或 框圖中各方框的組合,都可以由計算機(jī)程序指令實現(xiàn)。這些計算機(jī)程序指令可以提供給通 用計算機(jī)、專用計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器,從而生產(chǎn)出一種機(jī)器,使得這 些計算機(jī)程序指令在通過計算機(jī)或其它可編程數(shù)據(jù)處理裝置的處理器執(zhí)行時,產(chǎn)生了實現(xiàn) 流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的裝置。
[0058] 也可以把這些計算機(jī)程序指令存儲在計算機(jī)可讀介質(zhì)中,這些指令使得計算機(jī)、 其它可編程數(shù)據(jù)處理裝置、或其他設(shè)備以特定方式工作,從而,存儲在計算機(jī)可讀介質(zhì)中的 指令就產(chǎn)生出包括實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的指令 的制造品(article of manufacture)。也可以把計算機(jī)程序指令加載到計算機(jī)、其它可編 程數(shù)據(jù)處理裝置、或其它設(shè)備上,使得在計算機(jī)、其它可編程數(shù)據(jù)處理裝置或其它設(shè)備上執(zhí) 行一系列操作步驟,以產(chǎn)生計算機(jī)實現(xiàn)的過程,從而使得在計算機(jī)或其它可編程裝置上執(zhí) 行的指令提供實現(xiàn)流程圖和/或框圖中的一個或多個方框中規(guī)定的功能/動作的過程。
[0059] 附圖中的流程圖和框圖顯示了根據(jù)本發(fā)明的多個實施例的系統(tǒng)、方法和計算機(jī)程 序產(chǎn)品的可能實現(xiàn)的體系架構(gòu)、功能和操作。在這點上,流程圖或框圖中的每個方框可以 代表一個模塊、程序段或代碼的一部分,所述模塊、程序段或代碼的一部分包含一個或多個 用于實現(xiàn)規(guī)定的邏輯功能的可執(zhí)行指令。也應(yīng)當(dāng)注意,在有些作為替換的實現(xiàn)中,方框中所 標(biāo)注的功能也可以以不同于附圖中所標(biāo)注的順序發(fā)生。例如,兩個連續(xù)的方框?qū)嶋H上可以 基本并行地執(zhí)行,它們有時也可以按相反的順序執(zhí)行,這依所涉及的功能而定。也要注意的 是,框圖和/或流程圖中的每個方框、以及框圖和/或流程圖中的方框的組合,可以用執(zhí)行 規(guī)定的功能或動作的專用的基于硬件的系統(tǒng)來實現(xiàn),或者可以用專用硬件與計算機(jī)指令的 組合來實現(xiàn)。
[0060] 盡管已經(jīng)具體例示了本發(fā)明的一個或者多個實施例,但是本領(lǐng)域普通技術(shù)人員將 領(lǐng)會到可以進(jìn)行對那些實施例的修改和適配而未脫離本發(fā)明的如在所附權(quán)利要求中闡述 的范圍。
【權(quán)利要求】
1. 一種用于由處理器在計算環(huán)境中的數(shù)據(jù)去重復(fù)系統(tǒng)中保留數(shù)據(jù)冗余性的方法,包 括: 對將通過所述數(shù)據(jù)去重復(fù)系統(tǒng)而寫入的選擇的數(shù)據(jù)段加密,從而使得所述選擇的數(shù)據(jù) 段不經(jīng)受去重復(fù)操作。
2. 根據(jù)權(quán)利要求1所述的方法,還包括通過所述計算環(huán)境處理加密的所述選擇的數(shù)據(jù) 段,從而使得阻止對所述選擇的數(shù)據(jù)段執(zhí)行所述去重復(fù)操作。
3. 根據(jù)權(quán)利要求2所述的方法,其中對所述選擇的數(shù)據(jù)段加密還包括在向下層存儲控 制器設(shè)備發(fā)布寫入請求之前利用用于關(guān)聯(lián)的虛擬設(shè)備的唯一加密密鑰對所述選擇的數(shù)據(jù) 段加密。
4. 根據(jù)權(quán)利要求3所述的方法,其中用所述唯一密鑰對所述選擇的數(shù)據(jù)段加密還包括 選擇將與用于所述選擇的數(shù)據(jù)段的邏輯塊地址(LBA)的開始和所述選擇的數(shù)據(jù)段在文件 內(nèi)的偏移之一關(guān)聯(lián)的所述加密密鑰,其中選擇加密函數(shù)以保持通過所述加密函數(shù)處理的加 密的數(shù)據(jù)的大小。
5. 根據(jù)權(quán)利要求4所述的方法,其中對所述選擇的數(shù)據(jù)段加密包括選擇作為單位而 寫入的多個選擇的數(shù)據(jù)段,從而使得對所述多個選擇的數(shù)據(jù)段中的每個數(shù)據(jù)段解密之一返 回用于每個段的原有數(shù)據(jù),并且所述多個選擇的數(shù)據(jù)段中的每個數(shù)據(jù)段被作為所述單位解 Γ t I ο
6. 根據(jù)權(quán)利要求2所述的方法,其中處理加密的所述選擇的數(shù)據(jù)段包括通過在所述計 算環(huán)境的存儲控制器中的去重復(fù)引擎發(fā)布對于加密的所述選擇的數(shù)據(jù)段的寫入請求。
7. 根據(jù)權(quán)利要求6所述的方法,其中在執(zhí)行對于加密的所述選擇的數(shù)據(jù)段的所述寫入 請求期間,所述數(shù)據(jù)去重復(fù)引擎將加密的所述選擇的數(shù)據(jù)段識別為新數(shù)據(jù)段并且阻止執(zhí)行 所述去重復(fù)操作。
8. 根據(jù)權(quán)利要求1所述的方法,還包括在對所述選擇的數(shù)據(jù)段的后續(xù)讀取操作時對所 述選擇的數(shù)據(jù)段解密。
9. 根據(jù)權(quán)利要求8所述的方法,其中對所述選擇的數(shù)據(jù)段解密包括用弱、唯一和可預(yù) 測的加密密鑰對所述選擇的數(shù)據(jù)段解密。
10. -種用于在計算環(huán)境中的數(shù)據(jù)去重復(fù)系統(tǒng)中保留數(shù)據(jù)冗余性的系統(tǒng),包括: 文件系統(tǒng)模塊;以及 與所述文件系統(tǒng)模塊可操作地通信的存儲控制器,其中: 所述文件系統(tǒng)模塊被配置用于對將通過所述數(shù)據(jù)去重復(fù)系統(tǒng)而寫入的選擇的數(shù)據(jù)段 加密,從而使得所述選擇的數(shù)據(jù)段不經(jīng)受去重復(fù)操作。
11. 根據(jù)權(quán)利要求10所述的系統(tǒng),其中所述存儲控制器被配置用于通過所述計算環(huán)境 處理加密的所述選擇的數(shù)據(jù)段,從而使得阻止對所述選擇的數(shù)據(jù)段執(zhí)行所述去重復(fù)操作。
12. 根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述文件系統(tǒng)模塊還被配置用于在向所述存儲 控制器發(fā)布寫入請求之前利用用于關(guān)聯(lián)的虛擬設(shè)備的唯一密鑰對所述選擇的數(shù)據(jù)段加密。
13. 根據(jù)權(quán)利要求12所述的系統(tǒng),其中所述加密密鑰被選擇為與用于所述選擇的數(shù)據(jù) 段的邏輯塊地址(LBA)的開始和所述選擇的數(shù)據(jù)段在文件內(nèi)的偏移之一關(guān)聯(lián),其中加密函 數(shù)被選擇為保持通過所述加密函數(shù)處理的加密的數(shù)據(jù)的大小。
14. 根據(jù)權(quán)利要求13所述的系統(tǒng),其中所述文件系統(tǒng)模塊還被配置用于選擇作為單位 而寫入的多個選擇的數(shù)據(jù)段,從而使得對所述多個選擇的數(shù)據(jù)段中的每個數(shù)據(jù)段解密之一 返回用于每個段的原有數(shù)據(jù),并且所述多個選擇的數(shù)據(jù)段中的每個數(shù)據(jù)段被作為所述單位 解密。
15. 根據(jù)權(quán)利要求11所述的系統(tǒng),還包括: 與所述存儲控制器關(guān)聯(lián)的數(shù)據(jù)去重復(fù)引擎; 其中所述文件系統(tǒng)模塊還被配置用于通過所述數(shù)據(jù)去重復(fù)引擎發(fā)布對于加密的所述 選擇的數(shù)據(jù)段的寫入請求。
16. 根據(jù)權(quán)利要求15所述的系統(tǒng),其中在執(zhí)行對于加密的所述選擇的數(shù)據(jù)段的所述寫 入請求期間,所述數(shù)據(jù)去重復(fù)引擎將加密的所述選擇的數(shù)據(jù)段識別為新數(shù)據(jù)段并且阻止執(zhí) 行所述去重復(fù)操作。
17. 根據(jù)權(quán)利要求11所述的系統(tǒng),其中所述文件系統(tǒng)模塊還被配置用于在對所述選擇 的數(shù)據(jù)段的后續(xù)讀取操作時對所述選擇的數(shù)據(jù)段解密。
18. 根據(jù)權(quán)利要求17所述的系統(tǒng),其中用弱、唯一和可預(yù)測的加密密鑰對所述選擇的 數(shù)據(jù)段解密。
19. 一種用于由處理器在計算環(huán)境中的數(shù)據(jù)去重復(fù)系統(tǒng)中保留數(shù)據(jù)冗余性的計算機(jī)程 序產(chǎn)品,所述計算機(jī)程序產(chǎn)品包括計算機(jī)可讀存儲介質(zhì),所述計算機(jī)可讀存儲介質(zhì)具有在 其中存儲的計算機(jī)可讀程序代碼部分,所述計算機(jī)可讀程序代碼部分包括: 第一可執(zhí)行部分,用于對將通過所述數(shù)據(jù)去重復(fù)系統(tǒng)而寫入的選擇的數(shù)據(jù)段加密,從 而使得所述選擇的數(shù)據(jù)段不經(jīng)受去重復(fù)操作。
20. 根據(jù)權(quán)利要求19所述的計算機(jī)程序產(chǎn)品,還包括:第二可執(zhí)行部分,用于通過所述 計算環(huán)境處理加密的所述選擇的數(shù)據(jù)段,從而使得阻止對所述選擇的數(shù)據(jù)段執(zhí)行所述去重 復(fù)操作。
21. 根據(jù)權(quán)利要求20所述的計算機(jī)程序產(chǎn)品,還包括:第三可執(zhí)行部分,用于按照對所 述選擇的數(shù)據(jù)段加密在向下層存儲控制器設(shè)備發(fā)布寫入請求之前利用用于關(guān)聯(lián)的虛擬設(shè) 備的唯一加密密鑰對所述選擇的數(shù)據(jù)段加密。
22. 根據(jù)權(quán)利要求21所述的計算機(jī)程序產(chǎn)品,還包括:第四可執(zhí)行部分,用于按照用所 述唯一加密密鑰對所述選擇的數(shù)據(jù)段加密來選擇將與用于所述選擇的數(shù)據(jù)段的邏輯塊地 址(LBA)的開始和所述選擇的數(shù)據(jù)段在文件內(nèi)的偏移之一關(guān)聯(lián)的所述加密密鑰,其中選擇 加密函數(shù)以保持通過所述加密函數(shù)處理的加密的數(shù)據(jù)的大小。
23. 根據(jù)權(quán)利要求22所述的計算機(jī)程序產(chǎn)品,還包括:第五可執(zhí)行部分,用于按照對所 述選擇的數(shù)據(jù)段加密來選擇作為單位而寫入的多個選擇的數(shù)據(jù)段,從而使得對所述多個選 擇的數(shù)據(jù)段中的每個數(shù)據(jù)段解密之一返回用于每個段的原有數(shù)據(jù),并且所述多個選擇的數(shù) 據(jù)段中的每個數(shù)據(jù)段被作為所述單位解密。
24. 根據(jù)權(quán)利要求20所述的計算機(jī)程序產(chǎn)品,還包括:第三可執(zhí)行部分,用于按照處理 加密的所述選擇的數(shù)據(jù)段來通過在所述計算環(huán)境的存儲控制器中的去重復(fù)引擎發(fā)布對于 加密的所述選擇的數(shù)據(jù)段的寫入請求。
25. 根據(jù)權(quán)利要求24所述的計算機(jī)程序產(chǎn)品,其中在執(zhí)行對于加密的所述選擇的數(shù)據(jù) 段的所述寫入請求期間,所述數(shù)據(jù)去重復(fù)引擎將加密的所述選擇的數(shù)據(jù)段識別為新數(shù)據(jù)段 并且阻止執(zhí)行所述去重復(fù)操作。
26. 根據(jù)權(quán)利要求20所述的計算機(jī)程序產(chǎn)品,還包括:第三可執(zhí)行部分,用于在對所述 選擇的數(shù)據(jù)段的后續(xù)讀取操作時對所述選擇的數(shù)據(jù)段
27. 根據(jù)權(quán)利要求26所述的計算機(jī)程序產(chǎn)品,還包括:第四可執(zhí)行部分,用于按照對所 述選擇的數(shù)據(jù)段解密來用弱、唯一和可預(yù)測的加密密鑰對所述選擇的數(shù)據(jù)段解密。
【文檔編號】G06F17/30GK104272300SQ201380021100
【公開日】2015年1月7日 申請日期:2013年1月14日 優(yōu)先權(quán)日:2012年4月23日
【發(fā)明者】R·M·菲斯克, C·E·瓊斯, S·羅伊 申請人:國際商業(yè)機(jī)器公司