專利名稱:用于粉碎數(shù)據(jù)的方法和存儲控制器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明一般涉及數(shù)據(jù)毀滅(粉碎(shredding)),特別涉及提供靈活的、基于存儲控制器的粉碎策略。
背景技術(shù):
由于商業(yè)、安全、規(guī)章或政府的要求,被存儲但是過時或不再需要的客戶數(shù)據(jù)可能需要以不可恢復(fù)的方式安全地被擦除或刪除(被稱為數(shù)據(jù)粉碎)。粉碎涉及覆寫存儲了客戶數(shù)據(jù)的物理介質(zhì)的區(qū)域。覆寫典型地用諸如全部0、全部1的各種位模式之一替換數(shù)據(jù)。然而,因為在覆寫操作期間可能發(fā)生錯誤,所以某些安全協(xié)議要求多遍覆寫,以便確保沒有遺留原始數(shù)據(jù)的殘余。這樣,一種政府的粉碎策略要求寫入指定模式七次。另一種更嚴格的策略要求用數(shù)據(jù)的補碼對其進行覆寫,然后用全部1覆寫,然后用全部0覆寫,最后用指定模式覆寫七次。其它粉碎策略也在使用中,并且可以根據(jù)應(yīng)用和主管機構(gòu)(regulating authority)而變化。
過去,磁帶驅(qū)動器和光驅(qū)動器實現(xiàn)了以固定模式對整個卷執(zhí)行覆寫或擦除的固定命令。諸如IBMData Retention 450的較新數(shù)據(jù)保持產(chǎn)品基于磁盤驅(qū)動器,并且包括服務(wù)器(或主機)和外部盤控制器。圖1是示例性數(shù)據(jù)保持設(shè)備100的方框圖,其包括主機110、存儲控制器120和附連的盤驅(qū)動器(其可以包括RAID陣列)130。主機120內(nèi)的軟件122跟蹤要粉碎邏輯卷的哪些扇區(qū),并且引導(dǎo)執(zhí)行粉碎操作。
過去用來從磁帶和光驅(qū)動器破壞數(shù)據(jù)的固定擦除命令不夠靈活以滿足較新且變化的規(guī)章粉碎要求。此外,為了覆寫數(shù)據(jù)扇區(qū),主機必須將覆寫模式如同實際數(shù)據(jù)一樣發(fā)送到存儲控制器。在網(wǎng)絡(luò)環(huán)境中,該數(shù)據(jù)的傳送使用了昂貴的帶寬。
另外,在存儲陣列130中,邏輯卷的扇區(qū)典型地分散在陣列130的多個物理驅(qū)動器上。這些驅(qū)動器中的一個可能離線或處于降級狀態(tài),該情形已為控制器120所知,但主機110不知。在這樣的情況下,雖然主機110認為粉碎操作成功,但是離線或降級的驅(qū)動器上的數(shù)據(jù)仍未被粉碎。
因此,需要一種靈活的粉碎系統(tǒng),其適應(yīng)各種粉碎要求,降低帶寬要求,并且考慮到離線或降級的驅(qū)動器。
發(fā)明內(nèi)容
本發(fā)明提供了用于在存儲控制器中執(zhí)行基于策略的數(shù)據(jù)粉碎的方法、系統(tǒng)、計算機程序產(chǎn)品以及用于部署計算基礎(chǔ)結(jié)構(gòu)的方法。針對存儲在存儲設(shè)備的存儲介質(zhì)上的位置中的卷,創(chuàng)建粉碎策略。將策略存儲到控制器中,當接收到粉碎卷的命令時,控制器根據(jù)策略執(zhí)行命令。策略包括要在介質(zhì)位置上執(zhí)行的寫入遍數(shù)和要在介質(zhì)位置上寫入的模式。策略還可以表明是在多遍寫入的每一遍的期間還是僅僅在第一遍更新奇偶校驗區(qū)域。卷可以與任何數(shù)目的可能粉碎策略相關(guān)聯(lián);來自主機的粉碎命令表明要執(zhí)行哪一種策略。
在一個實施例中,例如通過使用write_verify(寫入核實)命令的控制字節(jié)內(nèi)的廠商專用位,將粉碎命令嵌入到SCSI write_verify命令中。所使用的位數(shù)代表卷可用的可能策略的數(shù)目。
在控制器中存儲并執(zhí)行策略比執(zhí)行基于主機的粉碎更有效,并且需要使用更少的主機和控制器之間的寶貴帶寬。另外,控制器知道存儲陣列中的每個驅(qū)動器的故障、降級和離線狀態(tài),從而能夠在必要時終止或修改粉碎操作。
圖1是示例性數(shù)據(jù)保持設(shè)備的方框圖;圖2是可以實現(xiàn)本發(fā)明的粉碎管理的存儲控制器的方框圖;圖3是示例性邏輯卷的圖示;圖4示出了可以用作粉碎命令的SCSI write_verify命令的位;圖5是基于粉碎命令的位值而選擇的可能粉碎策略的表;圖6是基于粉碎命令的位值而選擇的可能粉碎策略的可替換表。
具體實施例方式
圖2是可以實現(xiàn)本發(fā)明的粉碎管理的存儲控制器200的方框圖??刂破?00直接地或通過網(wǎng)絡(luò)260,經(jīng)由主機接口202附連到主機250??刂破鬟€通過一個或多個設(shè)備接口204附連到盤驅(qū)動器或RAID陣列270。數(shù)據(jù)可以被存儲在單個驅(qū)動器內(nèi)的代表邏輯卷的物理扇區(qū)中。在陣列270中,邏輯卷300的數(shù)據(jù)被存儲在分散于各個驅(qū)動器上的扇區(qū)中。在兩種配置中,都由控制器200維護物理存儲到邏輯卷的映射。圖3是示例性邏輯卷300的圖示,其具有數(shù)據(jù)區(qū)域302和奇偶校驗區(qū)域304。控制器200還包括存儲了軟件指令的存儲器210、以及可操作以執(zhí)行指令的處理器206。在存儲器210中所存儲的軟件指令當中有粉碎管理模塊212。
粉碎管理模塊212包括針對存儲在驅(qū)動器270中的每個邏輯卷的策略。策略包括代表在粉碎卷時要被執(zhí)行的覆寫遍數(shù)的參數(shù)、以及代表用來覆寫原始客戶數(shù)據(jù)的模式的參數(shù)。一些模式例子包括(但不限于)用于政府應(yīng)用的安全標準指定模式;全部0;全部1;原始客戶數(shù)據(jù)的補碼,隨后是另一模式;原始客戶數(shù)據(jù)的邏輯或或者異或,隨后是另一模式;或某種其它任意模式。
策略還可以包括表明要對奇偶校驗區(qū)域304做什么的參數(shù)。例如,如果要在每一遍覆寫期間更新奇偶校驗區(qū)域,則可以將標志或其它指示符設(shè)成第一狀態(tài),而如果僅僅在第一遍覆寫期間更新奇偶校驗區(qū)域,則可以將標志或其它指示符設(shè)成第二狀態(tài)。
可以為策略分配允許高效標識多個策略的號碼或描述名(以下被稱為“策略句柄”)。在一個實施例中,每個邏輯卷可以具有由它們各自的句柄標識的幾種可能粉碎策略。在操作中,從主機250到控制器200的用于粉碎卷的命令可以因此而包括要由控制器200執(zhí)行的粉碎策略的句柄。兩位粉碎命令將標識四種可能粉碎策略中的一種。在一個實施例中,例如其中主機250通過SCSI命令接口附連到控制器200,可以將粉碎命令嵌入到現(xiàn)有的write_verify命令400的兩個廠商專用位(如位6和7)402和404。如圖5的表所示,兩個位的不同組合代表可供在卷上使用的四種可能粉碎策略??梢允褂貌煌谋韥碇付總€邏輯卷可用的可能粉碎策略。表可以引用預(yù)定義的策略(圖5)或者可以通過條目定義策略(圖6),其中條目設(shè)定了要被執(zhí)行的寫入遍數(shù)、要覆寫原始數(shù)據(jù)的模式、以及(如果需要的話)是執(zhí)行奇偶校驗的一次覆寫還是執(zhí)行多次覆寫。應(yīng)當理解,可以使用不同的位數(shù)來提供更多或更少的可能粉碎策略,并且write_verify的其它位和其它命令可以用來從主機250向控制器200傳達策略選擇。此外,粉碎管理模塊212可以提供接口,以允許系統(tǒng)管理員定義和存儲附加的粉碎策略。
在現(xiàn)有技術(shù)中,粉碎卷要求主機110(圖1)將用來覆寫原始客戶數(shù)據(jù)的模式傳送到控制器120。事實上,模式采取實際數(shù)據(jù)的形式,并具有與實際數(shù)據(jù)相同的尺寸,因此需要相同的傳送帶寬。此外,如果要多次寫入該模式,則可能必須使用更多的帶寬將其傳送多次。然而,相反地,在本發(fā)明中,因為策略被存儲在控制器200中,并且由控制器200執(zhí)行,所以除了傳送單個粉碎命令本身之外,不需要使用主機250和控制器200之間的寶貴帶寬。
有時,盤驅(qū)動器或陣列270的驅(qū)動器中的一個可能出故障、可能處于降級狀態(tài)、或者離線,這是主機250不知而為控制器200所知的情形。如果從主機250執(zhí)行粉碎管理,則在事實上粉碎操作完全或部分地失敗時,可能認為它成功。在控制器200中實現(xiàn)的本發(fā)明的粉碎管理給控制器200提供了確認這種情形的能力。例如,如果要被粉碎的數(shù)據(jù)所在的驅(qū)動器或多個驅(qū)動器之一270被降級或離線,則缺省地,控制器200可以終止粉碎操作,并且向主機250通知失敗??商鎿Q地,控制器200缺省地可以粉碎任何可得數(shù)據(jù),并且通知主機250。作為另一可替換方案,粉碎命令可以表明如果驅(qū)動器或多個驅(qū)動器之一270被降級或離線,則要執(zhí)行兩個(或其它)操作中的哪一個。
值得注意的是,雖然本發(fā)明是在全功能數(shù)據(jù)處理系統(tǒng)的上下文中描述的,但是本領(lǐng)域的普通技術(shù)人員應(yīng)當理解,本發(fā)明的處理能夠以包含指令的計算機可讀介質(zhì)的形式和各種形式發(fā)行,并且本發(fā)明都同樣適用,而與實際用來執(zhí)行發(fā)行的信號承載介質(zhì)的特定類型無關(guān)。計算機可讀介質(zhì)的例子包括諸如軟盤、硬盤驅(qū)動器、RAM和CD-ROM的可記錄型介質(zhì),以及諸如數(shù)字和模擬通信鏈路的傳輸型介質(zhì)。
對本發(fā)明的描述是為了示例說明的目的而提供的,而不旨在是徹底無遺漏的,或者局限于所公開的形式。很多修改和變更對于本領(lǐng)域的普通技術(shù)人員將是明顯的。選擇和描述該實施例是為了最佳地說明本發(fā)明的原理及其實際應(yīng)用,并且使得本領(lǐng)域的其他普通技術(shù)人員能夠理解本發(fā)明,以便實現(xiàn)具有適于特定預(yù)期用途的各種修改的各種實施例。此外,雖然上面是關(guān)于設(shè)備來描述的,但是通過管理粉碎操作的方法、包含用于管理粉碎操作的指令的計算機程序產(chǎn)品、或者包括將計算機可讀代碼集成到用于管理粉碎操作的計算系統(tǒng)中以部署計算基礎(chǔ)結(jié)構(gòu)的方法,也可以滿足本技術(shù)領(lǐng)域內(nèi)的需要。
權(quán)利要求
1.一種用于粉碎存儲在存儲介質(zhì)上的數(shù)據(jù)的方法,包括針對存儲在存儲設(shè)備的存儲介質(zhì)上的位置中的卷,創(chuàng)建粉碎策略;將粉碎策略存儲到存儲控制器中;在存儲控制器中從主機設(shè)備接收粉碎卷的命令;以及在存儲控制器中根據(jù)針對卷的策略執(zhí)行粉碎卷的命令。
2.如權(quán)利要求1所述的方法,其中創(chuàng)建粉碎策略包括設(shè)定要在存儲卷的介質(zhì)位置上執(zhí)行的寫入遍數(shù);以及設(shè)定要在介質(zhì)位置上寫入的模式。
3.如權(quán)利要求2所述的方法,其中創(chuàng)建粉碎策略還包括如果要在多遍寫入的每一遍期間更新卷的奇偶校驗區(qū)域,則將標志設(shè)成第一狀態(tài);以及如果僅僅要在多遍寫入的第一遍期間更新卷的奇偶校驗區(qū)域,則將標志設(shè)成第二狀態(tài)。
4.如權(quán)利要求1所述的方法,其中創(chuàng)建粉碎策略包括為卷設(shè)定多種可能的粉碎策略;接收粉碎命令包括接收要執(zhí)行該多種粉碎策略中的哪一種的指示;以及執(zhí)行粉碎命令包括根據(jù)在粉碎命令中表明的策略來粉碎卷。
5.如權(quán)利要求4所述的方法,其中接收粉碎命令包括通過SCSI命令接口接收粉碎命令。
6.如權(quán)利要求5所述的方法,其中粉碎命令包括write_verify命令的N個位。
7.如權(quán)利要求6所述的方法,其中N等于二,從而多種可能的粉碎策略為四種。
8.如權(quán)利要求6所述的方法,其中N個位包括write_verify命令的控制字節(jié)內(nèi)的N個廠商專用位。
9.如權(quán)利要求4所述的方法,其中設(shè)定多種可能的粉碎策略包括針對卷創(chuàng)建表;并且創(chuàng)建表包括,針對每種可能的粉碎策略設(shè)定表明要在存儲卷的介質(zhì)位置上執(zhí)行的寫入遍數(shù)的第一條目;以及設(shè)定表明要在介質(zhì)位置上寫入的模式的第二條目。
10.如權(quán)利要求9所述的方法,其中創(chuàng)建表還包括,針對每種可能的粉碎策略,設(shè)定第三條目如果要在多遍寫入的每一遍期間更新卷的奇偶校驗區(qū)域,則設(shè)成第一狀態(tài);以及如果僅僅要在多遍寫入的第一遍期間更新卷的奇偶校驗區(qū)域,則設(shè)成第二狀態(tài)。
11.如權(quán)利要求1所述的方法,還包括如果存儲設(shè)備處于降級狀態(tài),則終止粉碎命令的執(zhí)行。
12.如權(quán)利要求1所述的方法,還包括如果存儲設(shè)備處于降級狀態(tài),則粉碎卷的一部分。
13.一種存儲控制器,包括主機接口,通過其附連主機設(shè)備;存儲接口,通過其附連存儲設(shè)備;處理器;針對存儲在存儲設(shè)備的存儲介質(zhì)上的位置中的卷的粉碎策略;以及粉碎管理軟件,當由處理器執(zhí)行時,其可操作以便從主機設(shè)備接收粉碎卷的命令;以及根據(jù)所存儲的粉碎策略引導(dǎo)粉碎卷。
14.如權(quán)利要求13所述的存儲控制器,其中粉碎策略包括要在存儲卷的介質(zhì)位置上執(zhí)行的寫入遍數(shù);以及要在介質(zhì)位置上寫入的模式的標識。
15.如權(quán)利要求14所述的存儲控制器,其中粉碎策略還包括標志如果要在多遍寫入的每一遍期間更新卷的奇偶校驗區(qū)域,則設(shè)成第一狀態(tài);以及如果僅僅要在多遍寫入的第一遍期間更新卷的奇偶校驗區(qū)域,則設(shè)成第二狀態(tài)。
16.如權(quán)利要求13所述的存儲控制器,其中粉碎策略包括針對卷的多種可能粉碎策略,從而所接收命令包括要執(zhí)行多種可能粉碎策略中的哪一種的標識。
17.如權(quán)利要求16所述的存儲控制器,其中主機接口包括SCSI命令接口。
18.如權(quán)利要求17所述的存儲控制器,其中粉碎命令包括write_verify命令的N個位。
19.如權(quán)利要求18所述的存儲控制器,其中N等于二,從而多種可能的粉碎策略是四種。
20.如權(quán)利要求18所述的存儲控制器,其中N個位包括write_verify命令的控制字節(jié)內(nèi)的N個廠商專用位。
21.如權(quán)利要求16所述的存儲控制器,還包括用于存儲多種粉碎策略的表,針對每一種可能的粉碎策略,其包括表明要在存儲卷的介質(zhì)位置上執(zhí)行的寫入遍數(shù)的第一條目;以及表明要在介質(zhì)位置上寫入的模式的第二條目。
22.如權(quán)利要求21所述的存儲控制器,其中針對每一種可能的粉碎策略,該表還包括第三條目如果要在多遍寫入的每一遍期間更新卷的奇偶校驗區(qū)域,則設(shè)成第一狀態(tài);以及如果僅僅要在多遍寫入的第一遍期間更新卷的奇偶校驗區(qū)域,則設(shè)成第二狀態(tài)。
23.如權(quán)利要求13所述的存儲控制器,還包括如果存儲設(shè)備處于降級狀態(tài),則終止粉碎命令的執(zhí)行。
24.如權(quán)利要求13所述的存儲控制器,還包括如果存儲設(shè)備處于降級狀態(tài),則粉碎卷的一部分。
25.一種可與可編程計算機一起使用的計算機可讀介質(zhì)的計算機程序產(chǎn)品,該計算機程序產(chǎn)品中包含有計算機可讀代碼,用于粉碎存儲在存儲介質(zhì)上的數(shù)據(jù),該計算機可讀代碼包括用于實施如前述方法權(quán)利要求中的任一方法的指令。
26.一種用于部署計算基礎(chǔ)結(jié)構(gòu)的方法,包括將計算機可讀代碼集成到計算系統(tǒng)中,其中該代碼在與計算系統(tǒng)相組合時,能夠執(zhí)行以下操作針對存儲在存儲設(shè)備的存儲介質(zhì)上的位置中的卷,創(chuàng)建多種可能的粉碎策略;將可能的粉碎策略存儲到存儲控制器中;在存儲控制器中從主機設(shè)備接收粉碎卷的命令,粉碎命令包括要執(zhí)行該多種粉碎策略中的哪一種的指示;以及在存儲控制器中根據(jù)粉碎命令中表明的策略,執(zhí)行粉碎卷的命令。
27.如權(quán)利要求26所述的方法,其中創(chuàng)建多種可能的粉碎策略中的每一種包括設(shè)定表明要在存儲卷的介質(zhì)位置上執(zhí)行的寫入遍數(shù)的第一參數(shù);以及設(shè)定表明要在介質(zhì)位置上寫入的模式的參數(shù)條目;設(shè)定第三參數(shù)如果要在多遍寫入的每一遍期間更新卷的奇偶校驗區(qū)域,則設(shè)成第一狀態(tài);以及如果僅僅要在多遍寫入的第一遍期間更新卷的奇偶校驗區(qū)域,則設(shè)成第二狀態(tài)。
28.如權(quán)利要求26所述的方法,還包括如果存儲設(shè)備處于降級狀態(tài),從包括終止粉碎命令的執(zhí)行和粉碎卷的一部分的組中選擇一個操作。
29.如權(quán)利要求26所述的方法,其中粉碎命令包括write_verify命令的N個位。
全文摘要
提供了要在存儲控制器中執(zhí)行的基于策略的數(shù)據(jù)粉碎。存儲在諸如磁盤驅(qū)動器的介質(zhì)上的邏輯卷可以被分配一個或多個可能的粉碎策略。在控制器中存儲并執(zhí)行策略比執(zhí)行基于主機的粉碎更有效,并且需要使用更少的主機和控制器之間的寶貴帶寬。另外,控制器知道陣列中的每個驅(qū)動器的故障、降級和離線狀態(tài),從而能夠在必要時終止或修改粉碎操作。每一種策略包括要在存儲卷的介質(zhì)位置上執(zhí)行的寫入遍數(shù)和要在介質(zhì)位置上寫入的模式。策略還可以表明是在多遍寫入的每一遍的期間還是僅僅在第一遍更新奇偶校驗區(qū)域。
文檔編號G06F3/06GK1825268SQ20061000926
公開日2006年8月30日 申請日期2006年2月15日 優(yōu)先權(quán)日2005年2月23日
發(fā)明者道格拉斯.W.杜威 申請人:國際商業(yè)機器公司