国产精品1024永久观看,大尺度欧美暖暖视频在线观看,亚洲宅男精品一区在线观看,欧美日韩一区二区三区视频,2021中文字幕在线观看

  • <option id="fbvk0"></option>
    1. <rt id="fbvk0"><tr id="fbvk0"></tr></rt>
      <center id="fbvk0"><optgroup id="fbvk0"></optgroup></center>
      <center id="fbvk0"></center>

      <li id="fbvk0"><abbr id="fbvk0"><dl id="fbvk0"></dl></abbr></li>

      一種基于文件級(jí)粒度的閃存安全刪除方法及系統(tǒng)與流程

      文檔序號(hào):11582086閱讀:317來(lái)源:國(guó)知局
      一種基于文件級(jí)粒度的閃存安全刪除方法及系統(tǒng)與流程

      本發(fā)明屬于計(jì)算機(jī)存儲(chǔ)領(lǐng)域,更具體地,涉及一種基于文件級(jí)粒度的閃存安全刪除方法及系統(tǒng)。



      背景技術(shù):

      隨著數(shù)據(jù)恢復(fù)技術(shù)的發(fā)展,當(dāng)前計(jì)算機(jī)系統(tǒng)已經(jīng)很難徹底刪除文件,通過(guò)恢復(fù)處理存儲(chǔ)介質(zhì)上殘留的數(shù)據(jù),攻擊者可以竊取已刪除的機(jī)密信息,這已經(jīng)成為威脅存儲(chǔ)系統(tǒng)信息安全的重要隱患。2016年的一次調(diào)查報(bào)告中發(fā)現(xiàn),從200多塊二手硬盤中(93%是機(jī)械硬盤,剩余是ssd),發(fā)現(xiàn)超過(guò)78%的二手硬盤里存在剩余數(shù)據(jù),其中67%的硬盤能恢復(fù)出個(gè)人機(jī)密信息,11%的硬盤包含公司敏感數(shù)據(jù)。另外調(diào)查顯示,36%的硬盤包含殘留數(shù)據(jù),即用戶進(jìn)行了刪除操作后仍有數(shù)據(jù)殘留;40%的硬盤進(jìn)行過(guò)格式化,但仍然有數(shù)據(jù)殘留在硬盤中;僅僅只有10%的硬盤采取過(guò)安全擦除手段來(lái)清除數(shù)據(jù)。這充分說(shuō)明普通的刪除和格式化操作并不能真正的刪除數(shù)據(jù),用戶需要采取安全刪除手段來(lái)防止數(shù)據(jù)泄露。

      安全刪除是指通過(guò)各種技術(shù)手段,使存儲(chǔ)載體中的數(shù)據(jù)被刪除后不可恢復(fù),且設(shè)備可二次利用。目前已經(jīng)針對(duì)磁介質(zhì)提出多種基于覆寫的安全刪除方法,其主要思想是,刪除文件時(shí),重寫該文件對(duì)應(yīng)的lba(邏輯區(qū)塊地址)空間,覆蓋寫存有文件原始數(shù)據(jù)的物理介質(zhì),以此來(lái)安全刪除文件。但由于閃存異地更新的特點(diǎn),當(dāng)重寫該文件對(duì)應(yīng)的lba空間時(shí),存有文件原始數(shù)據(jù)的物理頁(yè)將變?yōu)闊o(wú)效,覆蓋寫的數(shù)據(jù)被寫入到新的物理頁(yè),無(wú)法達(dá)到覆蓋寫文件原始數(shù)據(jù)的效果。同時(shí),在經(jīng)過(guò)大量讀寫后,文件的每個(gè)數(shù)據(jù)頁(yè)都有可能存在若干個(gè)副本,這些數(shù)據(jù)頁(yè)副本在存儲(chǔ)介質(zhì)里保存的時(shí)間是不可預(yù)測(cè)的,只能在垃圾回收時(shí)回收一部分,占用了固態(tài)盤空間的同時(shí),泄露了已刪除文件中的信息。因此,針對(duì)基于閃存的固態(tài)盤,需要引進(jìn)一種新的安全刪除技術(shù)以改變這種困境。

      現(xiàn)有安全刪除方法的粒度大致包括四類:頁(yè)級(jí)安全刪除、塊級(jí)安全刪除、文件級(jí)安全刪除以及全盤安全刪除。頁(yè)級(jí)的安全刪除方法以單個(gè)物理頁(yè)為單位,實(shí)時(shí)地安全刪除因?qū)懜庐a(chǎn)生的無(wú)效頁(yè),在文件的編輯和修改過(guò)程中,寫更新操作非常頻繁,頁(yè)級(jí)的安全刪除方法會(huì)嚴(yán)重影響固態(tài)盤對(duì)正常的讀寫請(qǐng)求的響應(yīng);塊級(jí)安全刪除方法以物理塊為單位,采用塊擦除手段來(lái)安全刪除物理塊,當(dāng)塊中存在有效頁(yè)時(shí),需要遷移有效頁(yè)會(huì)帶來(lái)開(kāi)銷,且塊粒度實(shí)用性差;而文件級(jí)的安全刪除以文件為單位,通常文件的刪除操作不頻繁,只有在用戶刪除某個(gè)文件時(shí),才會(huì)觸發(fā)安全刪除操作,對(duì)固態(tài)盤的讀寫性能影響??;全盤安全刪除適用范圍窄,對(duì)于多用戶共享存儲(chǔ)資源的常見(jiàn)應(yīng)用場(chǎng)景,對(duì)整個(gè)物理盤進(jìn)行安全刪除是無(wú)法實(shí)現(xiàn)的,即使是對(duì)整個(gè)虛擬盤進(jìn)行安全刪除也意味著某個(gè)文件的安全刪除。

      對(duì)于基于閃存的固態(tài)盤,盡管不能采用覆寫文件的lba空間的方式來(lái)安全刪除文件,但可以直接對(duì)物理介質(zhì)進(jìn)行覆寫。對(duì)于slc閃存,有人通過(guò)實(shí)驗(yàn)證實(shí)對(duì)slc閃存的物理頁(yè)進(jìn)行二次寫入是可行的,即可以通過(guò)普通的物理頁(yè)寫入命令,對(duì)存儲(chǔ)敏感數(shù)據(jù)的物理頁(yè)進(jìn)行覆蓋寫入,從而實(shí)現(xiàn)對(duì)slc閃存的安全刪除。但額外的物理頁(yè)覆寫操作會(huì)影響閃存對(duì)正常讀寫請(qǐng)求的響應(yīng),實(shí)時(shí)地安全刪除無(wú)效頁(yè)將嚴(yán)重影響固態(tài)盤的性能;且它提出的文件粒度的安全刪除方法需要遍歷整個(gè)固態(tài)盤的所有物理頁(yè)來(lái)確定文件對(duì)應(yīng)的無(wú)效頁(yè)副本,延時(shí)非常大。

      如圖1所示:對(duì)于mlc閃存,支持4種電壓級(jí)別,每個(gè)單元可存儲(chǔ)2bits,狀態(tài)變化嚴(yán)格遵循閾值電壓升高的規(guī)則,在擦除之前不能反向改變狀態(tài),即mlc閃存內(nèi)部的寫入操作必須按照一定的順序進(jìn)行;

      當(dāng)對(duì)基于mlc閃存的固態(tài)盤進(jìn)行安全刪除時(shí),有兩個(gè)限制:

      (1)受編程串?dāng)_影響,當(dāng)mlc閃存的低頁(yè)和高頁(yè)都有效時(shí),不能單獨(dú)覆寫低頁(yè)或者高頁(yè),否則會(huì)破壞高頁(yè)或者低頁(yè)中的數(shù)據(jù);

      (2)mlc閃存的每個(gè)物理塊的錯(cuò)誤率隨被覆寫的物理頁(yè)數(shù)量增加而上升,即每個(gè)物理塊只能承受部分物理頁(yè)被覆寫。

      由于這些限制,傳統(tǒng)的解決方法有兩種:一種是將mlc閃存當(dāng)做slc閃存使用,先只使用成對(duì)頁(yè)(pairedpage)中的低頁(yè),只有當(dāng)?shù)晚?yè)無(wú)效并進(jìn)行了覆寫后,才能使用該低頁(yè)對(duì)應(yīng)的高頁(yè),嚴(yán)重的浪費(fèi)了mlc閃存的容量;另一種是,當(dāng)需要覆寫mlc閃存成對(duì)頁(yè)中的某個(gè)頁(yè)時(shí),要先將成對(duì)頁(yè)中的另一個(gè)頁(yè)中的數(shù)據(jù)進(jìn)行遷移,再覆寫此成對(duì)頁(yè),浪費(fèi)了mlc閃存容量的同時(shí),安全刪除效率低下;因此,簡(jiǎn)單的物理頁(yè)覆寫方法并不適合mlc閃存。



      技術(shù)實(shí)現(xiàn)要素:

      針對(duì)現(xiàn)有技術(shù)的以上缺陷或改進(jìn)需求,本發(fā)明提供了一種基于文件級(jí)粒度的閃存安全刪除方法及系統(tǒng),其目的在于通過(guò)在文件系統(tǒng)層為每個(gè)文件分配一個(gè)guid號(hào)碼,向底層傳遞文件信息,使設(shè)備可以掌握文件數(shù)據(jù)塊的存儲(chǔ)位置、實(shí)時(shí)記錄每個(gè)文件產(chǎn)生的無(wú)效物理頁(yè);當(dāng)用戶刪除某個(gè)文件時(shí),設(shè)備可以通過(guò)刪除命令找到文件對(duì)應(yīng)的所有無(wú)效物理頁(yè)和所有有效物理頁(yè),然后使用物理頁(yè)覆寫方法對(duì)文件所有的物理頁(yè)進(jìn)行覆寫來(lái)達(dá)到安全刪除文件的目的,由此解決現(xiàn)有閃存安全刪除技術(shù)效率低、延時(shí)大的技術(shù)問(wèn)題。

      為實(shí)現(xiàn)上述目的,按照本發(fā)明的一個(gè)方面,提供了一種基于文件級(jí)粒度的閃存安全刪除方法,該方法包括:

      (1)guid分配和封裝:為每個(gè)文件分配一個(gè)全局唯一標(biāo)識(shí)符guid,并將文件的guid封裝到文件的寫和刪除請(qǐng)求中;若是寫請(qǐng)求,則進(jìn)入步驟(2);若是刪除請(qǐng)求則進(jìn)入步驟(5);

      (2)寫入介質(zhì)判斷:若存儲(chǔ)介質(zhì)為mlc閃存,則進(jìn)入步驟(3);否則進(jìn)入步驟(4);

      (3)分配mlc閃存成對(duì)頁(yè):根據(jù)寫請(qǐng)求的guid號(hào)找到該文件上一次寫入的物理頁(yè)位置,若是低頁(yè),則分配該低頁(yè)對(duì)應(yīng)的高頁(yè)給寫請(qǐng)求,使文件的數(shù)據(jù)塊分布在mlc成對(duì)的物理頁(yè)中;若是高頁(yè),則分配空閑低頁(yè)給寫請(qǐng)求;若沒(méi)有空閑低頁(yè),則啟動(dòng)垃圾回收后分配空閑低頁(yè)給寫請(qǐng)求;

      (4)記錄文件的無(wú)效頁(yè):使用guid-page表實(shí)時(shí)地記錄每個(gè)文件產(chǎn)生的無(wú)效物理頁(yè);

      (5)刪除介質(zhì)判斷:若存儲(chǔ)介質(zhì)為mlc閃存,則進(jìn)入步驟(6);若存儲(chǔ)介質(zhì)為slc閃存,則進(jìn)入步驟(7);

      (6)基于mlc閃存的安全刪除:根據(jù)guid-page表和刪除請(qǐng)求找到要?jiǎng)h除文件對(duì)應(yīng)的所有物理頁(yè),物理頁(yè)所在物理塊的覆寫次數(shù)沒(méi)超上限的采用覆寫技術(shù)進(jìn)行安全刪除,覆寫次數(shù)超上限的遷移物理塊中的有效頁(yè)后將物理塊擦除來(lái)達(dá)到安全刪除;

      (7)基于slc閃存的安全刪除:根據(jù)guid-page表和刪除請(qǐng)求找到要?jiǎng)h除的文件對(duì)應(yīng)的所有物理頁(yè),再使用物理頁(yè)覆寫技術(shù)對(duì)這些物理頁(yè)中數(shù)據(jù)進(jìn)行安全刪除;

      (8)元數(shù)據(jù)的安全刪除:根據(jù)文件刪除操作產(chǎn)生的元數(shù)據(jù)修改請(qǐng)求和映射關(guān)系的修改,找到元數(shù)據(jù)所在的物理頁(yè),對(duì)元數(shù)據(jù)所在物理頁(yè)進(jìn)行安全刪除。

      進(jìn)一步地,所述步驟(3)具體包括:

      (31)物理頁(yè)查詢:根據(jù)寫請(qǐng)求的guid查找guid-page表,找到對(duì)應(yīng)guid-page表中頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào);

      (32)對(duì)頁(yè)判斷:判斷所述物理頁(yè)號(hào)是低頁(yè)、高頁(yè)還是物理頁(yè)號(hào)初始值,若是低頁(yè),分配所述低頁(yè)對(duì)應(yīng)的高頁(yè)給寫請(qǐng)求,進(jìn)入步驟(35);若是高頁(yè)或者物理頁(yè)號(hào)初始值,則判斷固態(tài)盤中是否有空閑低頁(yè),若有,則分配空閑低頁(yè)給寫請(qǐng)求,進(jìn)入步驟(34);否則進(jìn)入步驟(33);

      (33)垃圾回收:先遷移要回收的目標(biāo)塊中的有效頁(yè),同時(shí)根據(jù)有效頁(yè)對(duì)應(yīng)的guid查找對(duì)應(yīng)guid-page表中頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào),若頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)和有效頁(yè)的物理頁(yè)號(hào)相同,則將頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)改為有效頁(yè)遷移后的物理頁(yè)號(hào);否則不做處理;之后根據(jù)目標(biāo)塊中無(wú)效頁(yè)對(duì)應(yīng)的guid查找對(duì)應(yīng)guid-page表,刪除guid-page表中頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)等于無(wú)效頁(yè)物理頁(yè)號(hào)的頁(yè)結(jié)點(diǎn);擦除目標(biāo)塊,之后分配空閑低頁(yè)給寫請(qǐng)求;

      (34)更新物理頁(yè)號(hào):將寫請(qǐng)求的guid-page表中頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)更新為新分配物理頁(yè)的物理頁(yè)號(hào)。

      進(jìn)一步地,所述步驟(4)具體包括:

      (41)寫命中判斷:根據(jù)寫請(qǐng)求的邏輯地址查找地址映射表,若命中,則進(jìn)入步驟(42);否則進(jìn)入步驟(43);

      (42)記錄無(wú)效物理頁(yè):將舊物理頁(yè)的狀態(tài)置為無(wú)效,分配新的guid-page表的頁(yè)結(jié)點(diǎn),頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)為該舊物理頁(yè)號(hào),新的頁(yè)結(jié)點(diǎn)鏈接在寫請(qǐng)求的guid對(duì)應(yīng)的guid-page表尾部;

      (43)更新地址映射表:更新地址映射表。

      進(jìn)一步地,所述步驟(6)具體包括:

      (61)查找無(wú)效物理頁(yè):根據(jù)刪除請(qǐng)求的guid,查找對(duì)應(yīng)guid-page表中的頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn),該頁(yè)結(jié)點(diǎn)后鏈接的所有頁(yè)結(jié)點(diǎn)均為無(wú)效物理頁(yè)結(jié)點(diǎn);

      (62)重置guid-page表:根據(jù)刪除請(qǐng)求的guid,刪除對(duì)應(yīng)guid-page表中所有頁(yè)結(jié)點(diǎn),并將頭結(jié)點(diǎn)重新初始化;

      (63)查找有效物理頁(yè):將刪除請(qǐng)求的邏輯地址和大小解析為多個(gè)邏輯頁(yè)號(hào),根據(jù)邏輯頁(yè)號(hào)查找地址映射表,找到對(duì)應(yīng)的有效物理頁(yè)號(hào),將找到的有效物理頁(yè)的狀態(tài)置為無(wú)效;

      (64)覆寫次數(shù)判斷:對(duì)于所有找到的物理頁(yè),判斷物理頁(yè)所在物理塊的覆寫計(jì)數(shù)是否超過(guò)該物理塊的覆寫次數(shù)上限;若沒(méi)有超過(guò),則進(jìn)入步驟(65);否則進(jìn)入步驟(66);

      (65)覆寫刪除:采用物理頁(yè)覆寫技術(shù)安全刪除物理頁(yè)中數(shù)據(jù);該物理頁(yè)所在物理塊的覆寫計(jì)數(shù)加1;

      (66)物理塊擦除:遷移該物理頁(yè)所在的物理塊中的所有有效物理頁(yè),同時(shí)更新相應(yīng)地址映射表和guid-page表,之后擦除該物理塊實(shí)現(xiàn)安全刪除。

      進(jìn)一步地,所述步驟(7)具體包括:

      (71)安全刪除無(wú)效物理頁(yè):根據(jù)刪除請(qǐng)求的guid,查找對(duì)應(yīng)guid-page表中的頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn),該頁(yè)結(jié)點(diǎn)后鏈接的所有頁(yè)結(jié)點(diǎn)均為無(wú)效物理頁(yè)結(jié)點(diǎn),采用物理頁(yè)覆寫技術(shù)安全刪除無(wú)效物理頁(yè)中數(shù)據(jù);

      (72)刪除頁(yè)結(jié)點(diǎn):根據(jù)刪除請(qǐng)求的guid,刪除對(duì)應(yīng)guid-page表中所有頁(yè)結(jié)點(diǎn),并將頭結(jié)點(diǎn)重新初始化;

      (73)安全刪除有效物理頁(yè):將刪除請(qǐng)求的邏輯地址和大小解析為多個(gè)邏輯頁(yè)號(hào),根據(jù)邏輯頁(yè)號(hào)查找地址映射表,找到對(duì)應(yīng)的有效的物理頁(yè)號(hào),采用物理頁(yè)覆寫技術(shù)安全刪除有效物理頁(yè)中數(shù)據(jù);

      (74)更新地址映射表:將找到的有效的物理頁(yè)置為無(wú)效物理頁(yè),更新地址映射表。

      按照本發(fā)明的另一方面,提供了一種基于文件級(jí)粒度的閃存安全刪除系統(tǒng),該系統(tǒng)包括:

      guid分配和封裝模塊,用于為每個(gè)文件分配一個(gè)全局唯一標(biāo)識(shí)符guid,并將文件的guid封裝到文件的寫和刪除請(qǐng)求中;若是寫請(qǐng)求,則進(jìn)入寫入介質(zhì)判斷模塊;若是刪除請(qǐng)求則進(jìn)入刪除介質(zhì)判斷模塊;

      寫入介質(zhì)判斷模塊,用于判斷若存儲(chǔ)介質(zhì)為mlc閃存,則進(jìn)入mlc閃存成對(duì)頁(yè)分配模塊;否則進(jìn)入文件無(wú)效頁(yè)記錄模塊;

      mlc閃存成對(duì)頁(yè)分配模塊,用于根據(jù)寫請(qǐng)求的guid號(hào)找到該文件上一次寫入的物理頁(yè)位置,若是低頁(yè),則分配該低頁(yè)對(duì)應(yīng)的高頁(yè)給寫請(qǐng)求,使文件的數(shù)據(jù)塊分布在mlc成對(duì)的物理頁(yè)中;若是高頁(yè),則分配空閑低頁(yè)給寫請(qǐng)求;若沒(méi)有空閑空間,則啟動(dòng)垃圾回收后分配空閑低頁(yè)給寫請(qǐng)求;

      文件無(wú)效頁(yè)記錄模塊,用于使用guid-page表實(shí)時(shí)地記錄每個(gè)文件產(chǎn)生的無(wú)效物理頁(yè);

      刪除介質(zhì)判斷模塊,用于判斷若存儲(chǔ)介質(zhì)為mlc閃存,則進(jìn)入基于mlc閃存的安全刪除模塊;若存儲(chǔ)介質(zhì)為slc閃存,則進(jìn)入基于slc閃存的安全刪除模塊;

      基于mlc閃存的安全刪除模塊,用于根據(jù)guid-page表和刪除請(qǐng)求找到要?jiǎng)h除文件對(duì)應(yīng)的所有物理頁(yè),物理頁(yè)所在物理塊的覆寫次數(shù)沒(méi)超上限的采用覆寫技術(shù)進(jìn)行安全刪除,覆寫次數(shù)超上限的遷移物理塊中的有效頁(yè)后將物理塊擦除來(lái)達(dá)到安全刪除;

      基于slc閃存的安全刪除模塊,用于根據(jù)guid-page表和刪除請(qǐng)求找到要?jiǎng)h除的文件對(duì)應(yīng)的所有物理頁(yè),再使用物理頁(yè)覆寫技術(shù)對(duì)這些物理頁(yè)中數(shù)據(jù)進(jìn)行安全刪除;

      元數(shù)據(jù)的安全刪除模塊,用于根據(jù)文件刪除操作產(chǎn)生的元數(shù)據(jù)修改請(qǐng)求和映射關(guān)系的修改,找到元數(shù)據(jù)所在的物理頁(yè),對(duì)元數(shù)據(jù)所在物理頁(yè)進(jìn)行安全刪除。

      進(jìn)一步地,所述mlc閃存成對(duì)頁(yè)分配模塊具體包括:

      物理頁(yè)查詢單元,用于根據(jù)寫請(qǐng)求的guid查找guid-page表,找到對(duì)應(yīng)guid-page表中頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào);

      對(duì)頁(yè)判斷單元,用于判斷所述物理頁(yè)號(hào)是低頁(yè)、高頁(yè)還是物理頁(yè)號(hào)初始值,若是低頁(yè),分配所述低頁(yè)對(duì)應(yīng)的高頁(yè)給寫請(qǐng)求,進(jìn)入更新物理頁(yè)號(hào)單元;若是高頁(yè)或者物理頁(yè)號(hào)初始值,則判斷固態(tài)盤中是否有空閑低頁(yè),若有,則分配空閑低頁(yè)給寫請(qǐng)求,進(jìn)入更新物理頁(yè)號(hào)單元;否則進(jìn)入垃圾回收單元;

      垃圾回收單元:用于先遷移要回收的目標(biāo)塊中的有效頁(yè),同時(shí)根據(jù)中有效頁(yè)對(duì)應(yīng)的guid查找對(duì)應(yīng)guid-page表中頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào),若頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)和有效頁(yè)的物理頁(yè)號(hào)相同,則將頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)改為有效頁(yè)遷移后的物理頁(yè)號(hào);否則不做處理;之后根據(jù)目標(biāo)塊中無(wú)效頁(yè)對(duì)應(yīng)的guid查找對(duì)應(yīng)guid-page表,刪除guid-page表中頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)等于無(wú)效頁(yè)物理頁(yè)號(hào)的頁(yè)結(jié)點(diǎn);擦除目標(biāo)塊,之后分配空閑低頁(yè)給寫請(qǐng)求;

      更新物理頁(yè)號(hào)單元,用于將寫請(qǐng)求的guid-page表中頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)更新為新分配物理頁(yè)的物理頁(yè)號(hào)。

      進(jìn)一步地,所述文件無(wú)效頁(yè)記錄模塊具體包括:

      寫命中判斷單元,用于根據(jù)寫請(qǐng)求的邏輯地址查找地址映射表,若命中,則進(jìn)入記錄無(wú)效物理頁(yè)單元;否則進(jìn)入更新地址映射表單元;

      記錄無(wú)效物理頁(yè)單元,用于將舊物理頁(yè)的狀態(tài)置為無(wú)效,分配新的guid-page表的頁(yè)結(jié)點(diǎn),頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)為該舊物理頁(yè)號(hào),新的頁(yè)結(jié)點(diǎn)鏈接在寫請(qǐng)求的guid對(duì)應(yīng)的guid-page表尾部;

      更新地址映射表單元,用于更新地址映射表。

      進(jìn)一步地,所述基于mlc閃存的安全刪除模塊具體包括:

      查找無(wú)效物理頁(yè)單元,用于根據(jù)刪除請(qǐng)求的guid,查找對(duì)應(yīng)guid-page表中的頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn),該頁(yè)結(jié)點(diǎn)后鏈接的所有頁(yè)結(jié)點(diǎn)均為無(wú)效物理頁(yè)結(jié)點(diǎn);

      重置guid-page表單元,用于根據(jù)刪除請(qǐng)求的guid,刪除對(duì)應(yīng)guid-page表中所有頁(yè)結(jié)點(diǎn),并將頭結(jié)點(diǎn)重新初始化;

      查找有效物理頁(yè)單元,用于將刪除請(qǐng)求的邏輯地址和大小解析為多個(gè)邏輯頁(yè)號(hào),根據(jù)邏輯頁(yè)號(hào)查找地址映射表,找到對(duì)應(yīng)的有效物理頁(yè)號(hào),將找到的有效物理頁(yè)的狀態(tài)置為無(wú)效;

      覆寫次數(shù)判斷單元,用于對(duì)于所有找到的物理頁(yè),判斷物理頁(yè)所在物理塊的覆寫計(jì)數(shù)是否超過(guò)該物理塊的覆寫次數(shù)上限;若沒(méi)有超過(guò),則進(jìn)入覆寫刪除單元;否則進(jìn)入物理塊擦除單元;

      覆寫刪除單元,用于采用物理頁(yè)覆寫技術(shù)安全刪除物理頁(yè)中數(shù)據(jù);該物理頁(yè)所在物理塊的覆寫計(jì)數(shù)加1;

      物理塊擦除單元,用于遷移該物理頁(yè)所在的物理塊中的所有有效物理頁(yè),同時(shí)更新相應(yīng)地址映射表和guid-page表,之后擦除該物理塊實(shí)現(xiàn)安全刪除。

      進(jìn)一步地,所述基于slc閃存的安全刪除模塊具體包括:

      安全刪除無(wú)效物理頁(yè)單元,用于根據(jù)刪除請(qǐng)求的guid,查找對(duì)應(yīng)guid-page表中的頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn),該頁(yè)結(jié)點(diǎn)后鏈接的所有頁(yè)結(jié)點(diǎn)均為無(wú)效物理頁(yè)結(jié)點(diǎn),采用物理頁(yè)覆寫技術(shù)安全刪除無(wú)效物理頁(yè)中數(shù)據(jù);

      刪除頁(yè)結(jié)點(diǎn)單元,用于根據(jù)刪除請(qǐng)求的guid,刪除對(duì)應(yīng)guid-page表中所有頁(yè)結(jié)點(diǎn),并將頭結(jié)點(diǎn)重新初始化;

      安全刪除有效物理頁(yè)單元,用于將刪除請(qǐng)求的邏輯地址和大小解析為多個(gè)邏輯頁(yè)號(hào),根據(jù)邏輯頁(yè)號(hào)查找地址映射表,找到對(duì)應(yīng)的有效的物理頁(yè)號(hào),采用物理頁(yè)覆寫技術(shù)安全刪除有效物理頁(yè)中數(shù)據(jù);

      更新地址映射表單元,用于將找到的有效的物理頁(yè)置為無(wú)效物理頁(yè),更新地址映射表。

      總體而言,通過(guò)本發(fā)明所構(gòu)思的以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)特征及有益效果:

      (1)相比較塊級(jí)粒度的安全刪除,本發(fā)明能減少安全刪除對(duì)固態(tài)盤讀寫性能的影響,不需要實(shí)時(shí)安全刪除每個(gè)文件因修改產(chǎn)生的無(wú)效頁(yè),只有在用戶刪除文件時(shí)才需要執(zhí)行安全刪除;

      (2)相比較現(xiàn)有基于mlc的安全刪除方法,本發(fā)明對(duì)mlc閃存的安全刪除更高效,解決了安全刪除mlc時(shí)編程串?dāng)_的問(wèn)題,在安全刪除mlc的基礎(chǔ)上,減少了對(duì)mlc物理容量的浪費(fèi);

      附圖說(shuō)明

      圖1是mlc閃存單元寫入順序示意圖;

      圖2是本發(fā)明方法的實(shí)施流程圖;

      圖3是guid_page表的結(jié)構(gòu)示意圖;

      圖4是guid分配與封裝的流程圖;

      圖5是分配mlc閃存成對(duì)頁(yè)的流程圖;

      圖6是記錄文件的無(wú)效頁(yè)的流程圖;

      圖7是slc閃存的安全刪除的流程圖;

      圖8是mlc閃存的安全刪除的流程圖;

      圖9是元數(shù)據(jù)安全刪除的流程圖。

      具體實(shí)施方式

      為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點(diǎn)更加清楚明白,以下結(jié)合附圖及實(shí)施例,對(duì)本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說(shuō)明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。此外,下面所描述的本發(fā)明各個(gè)實(shí)施方式中所涉及到的技術(shù)特征只要彼此之間未構(gòu)成沖突就可以相互組合。

      如圖2所示,本發(fā)明方法包括以下步驟:

      (1)guid分配和封裝:為每個(gè)文件分配一個(gè)全局唯一標(biāo)識(shí)符guid,并將文件的guid封裝到文件的寫和刪除請(qǐng)求中;若是寫請(qǐng)求,則進(jìn)入步驟(2);若是刪除請(qǐng)求則進(jìn)入步驟(5);

      (2)寫入介質(zhì)判斷:若存儲(chǔ)介質(zhì)為mlc閃存,則進(jìn)入步驟(3);否則進(jìn)入步驟(4);

      (3)分配mlc閃存成對(duì)頁(yè):根據(jù)寫請(qǐng)求的guid號(hào)找到該文件上一次寫入的物理頁(yè)位置,若是低頁(yè),則分配該低頁(yè)對(duì)應(yīng)的高頁(yè)給寫請(qǐng)求,使文件的數(shù)據(jù)塊分布在mlc成對(duì)的物理頁(yè)中;若是高頁(yè),則分配空閑低頁(yè)給寫請(qǐng)求;若沒(méi)有空閑空間,則啟動(dòng)垃圾回收后分配空閑低頁(yè)給寫請(qǐng)求;

      (4)記錄文件的無(wú)效頁(yè):使用guid-page表實(shí)時(shí)地記錄每個(gè)文件產(chǎn)生的無(wú)效物理頁(yè);

      (5)刪除介質(zhì)判斷:若存儲(chǔ)介質(zhì)為mlc閃存,則進(jìn)入步驟(6);若存儲(chǔ)介質(zhì)為slc閃存,則進(jìn)入步驟(7);

      (6)基于mlc閃存的安全刪除:根據(jù)guid-page表和刪除請(qǐng)求找到要?jiǎng)h除文件對(duì)應(yīng)的所有物理頁(yè),物理頁(yè)所在物理塊的覆寫次數(shù)沒(méi)超上限的采用覆寫技術(shù)進(jìn)行安全刪除,覆寫次數(shù)超上限的遷移物理塊中的有效頁(yè)后將物理塊擦除來(lái)達(dá)到安全刪除;

      (7)基于slc閃存的安全刪除:根據(jù)guid-page表和刪除請(qǐng)求找到要?jiǎng)h除的文件對(duì)應(yīng)的所有物理頁(yè),再使用物理頁(yè)覆寫技術(shù)對(duì)這些物理頁(yè)中數(shù)據(jù)進(jìn)行安全刪除;

      (8)元數(shù)據(jù)的安全刪除:根據(jù)文件刪除操作產(chǎn)生的元數(shù)據(jù)修改請(qǐng)求和映射關(guān)系的修改,找到元數(shù)據(jù)所在的物理頁(yè),對(duì)元數(shù)據(jù)所在物理頁(yè)進(jìn)行安全刪除。

      如圖3所示,本技術(shù)方案所述guid-page表結(jié)構(gòu)為:

      每個(gè)guid-page表的頭結(jié)點(diǎn)包括guid號(hào)和一個(gè)指向頁(yè)結(jié)點(diǎn)的指針,每個(gè)頁(yè)結(jié)點(diǎn)包括物理頁(yè)號(hào)和指向下一個(gè)頁(yè)結(jié)點(diǎn)的指針;mlc閃存的guid-page表除了頭結(jié)點(diǎn)指向的第一個(gè)頁(yè)結(jié)點(diǎn)為有效頁(yè)結(jié)點(diǎn),除此之外其他頁(yè)結(jié)點(diǎn)均為無(wú)效頁(yè)結(jié)點(diǎn);slc閃存的guid-page表中的頁(yè)結(jié)點(diǎn)均為無(wú)效頁(yè)結(jié)點(diǎn)。

      如圖4所示為guid的分配和封裝流程,由于固態(tài)盤的異地更新特性,每個(gè)文件的數(shù)據(jù)塊可能在固態(tài)盤里存在很多無(wú)效頁(yè)副本,現(xiàn)有的文件系統(tǒng)不知道文件的無(wú)效頁(yè)副本在硬件中的存儲(chǔ)位置,因此本技術(shù)方案在文件系統(tǒng)層增添guid的分配與封裝過(guò)程,給每個(gè)文件分配一個(gè)guid來(lái)唯一標(biāo)識(shí)每個(gè)文件,并將該文件的guid封裝到該文件的寫請(qǐng)求或刪除請(qǐng)求中,將包含guid的寫請(qǐng)求或刪除請(qǐng)求傳遞給通用塊層,再傳遞到驅(qū)動(dòng)層,再傳遞到設(shè)備層,使設(shè)備可以通過(guò)guid掌握文件數(shù)據(jù)塊的存儲(chǔ)位置。

      在現(xiàn)有的系統(tǒng)中,文件系統(tǒng)在刪除文件的時(shí)候,只刪除了文件的元數(shù)據(jù),并沒(méi)有刪除文件的數(shù)據(jù)塊。為實(shí)現(xiàn)單個(gè)文件的安全刪除,需要開(kāi)啟trim功能。即所述刪除請(qǐng)求為trim命令,當(dāng)用戶刪除文件時(shí),操作系統(tǒng)將發(fā)送trim指令,文件系統(tǒng)接收到trim指令后,將要?jiǎng)h除的文件的guid包裝入trim請(qǐng)求中,傳送到通用塊層,再傳送到驅(qū)動(dòng)層,再傳送到設(shè)備層,通知控制器哪些物理頁(yè)可以置為無(wú)效了。

      本技術(shù)方案實(shí)施例中操作系統(tǒng)、文件系統(tǒng)、驅(qū)動(dòng)層均支持trim指令的發(fā)送和傳輸,設(shè)備層也支持trim命令的處理。

      當(dāng)刪除某文件時(shí),可以通過(guò)刪除請(qǐng)求的guid查找該文件對(duì)應(yīng)的無(wú)效頁(yè)副本,并通過(guò)刪除請(qǐng)求的數(shù)據(jù)段查找該文件對(duì)應(yīng)的有效頁(yè);具體實(shí)施例流程如下:

      (11)將要執(zhí)行寫或者刪除的文件的索引節(jié)點(diǎn)inode號(hào)記錄為文件的guid;

      (12)將文件的guid封裝到文件的寫和刪除請(qǐng)求中。

      如圖5所示為分配mlc閃存成對(duì)頁(yè)流程,由于mlc閃存芯片對(duì)寫入順序有嚴(yán)格要求,必須先寫成對(duì)頁(yè)中的低頁(yè),再寫成對(duì)頁(yè)中的高頁(yè),否則會(huì)造成數(shù)據(jù)錯(cuò)誤;且成對(duì)頁(yè)之間存在編程串?dāng)_,覆寫成對(duì)頁(yè)中的某個(gè)頁(yè)時(shí),將導(dǎo)致成對(duì)頁(yè)中的另一個(gè)頁(yè)的數(shù)據(jù)發(fā)生錯(cuò)誤,因此基于mlc閃存的安全刪除很難實(shí)現(xiàn),本技術(shù)方案采用一種全新的物理頁(yè)分配方式即成對(duì)分配方式,具體流程如下:

      (31)物理頁(yè)查詢:根據(jù)寫請(qǐng)求的guid查找guid-page表,找到對(duì)應(yīng)guid-page表中頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào);

      (32)對(duì)頁(yè)判斷:判斷所述物理頁(yè)號(hào)是低頁(yè)、高頁(yè)還是物理頁(yè)號(hào)初始值,若是低頁(yè),分配所述低頁(yè)對(duì)應(yīng)的高頁(yè)給寫請(qǐng)求,進(jìn)入步驟(35);若是高頁(yè)或者物理頁(yè)號(hào)初始值,則判斷固態(tài)盤中是否有空閑低頁(yè),若有,則分配空閑低頁(yè)給寫請(qǐng)求,進(jìn)入步驟(34);否則進(jìn)入步驟(33);

      (33)垃圾回收:先遷移要回收的目標(biāo)塊中的有效頁(yè),同時(shí)根據(jù)有效頁(yè)對(duì)應(yīng)的guid查找對(duì)應(yīng)guid-page表中頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào),若頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)和有效頁(yè)的物理頁(yè)號(hào)相同,則將頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)改為有效頁(yè)遷移后的物理頁(yè)號(hào);否則不做處理;之后根據(jù)目標(biāo)塊中無(wú)效頁(yè)對(duì)應(yīng)的guid查找對(duì)應(yīng)guid-page表,刪除guid-page表中頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)等于無(wú)效頁(yè)物理頁(yè)號(hào)的頁(yè)結(jié)點(diǎn);擦除目標(biāo)塊,之后分配空閑低頁(yè)給寫請(qǐng)求;

      (34)更新物理頁(yè)號(hào):將寫請(qǐng)求的guid-page表中頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)更新為新分配物理頁(yè)的物理頁(yè)號(hào)。

      這樣做的好處是,對(duì)文件進(jìn)行安全刪除時(shí),可以將文件對(duì)應(yīng)的高、低頁(yè)一起覆寫,避免了覆寫mlc時(shí)成對(duì)頁(yè)之間的編程串?dāng)_帶來(lái)的數(shù)據(jù)錯(cuò)誤問(wèn)題。

      如圖6所示為記錄文件的無(wú)效頁(yè)流程,為了實(shí)現(xiàn)閃存文件級(jí)的安全刪除,不僅需要安全刪除文件在固態(tài)盤中的對(duì)應(yīng)的有效頁(yè),還需要安全刪除文件因修改產(chǎn)生的無(wú)效頁(yè)副本;因此,需要實(shí)時(shí)地記錄每個(gè)文件產(chǎn)生的無(wú)效物理頁(yè)和有效物理頁(yè);其中文件對(duì)應(yīng)的有效物理頁(yè)可以通過(guò)刪除命令找到,即在用戶刪除文件時(shí),設(shè)備層將接收到的刪除命令的數(shù)據(jù)段解析成多個(gè)邏輯頁(yè)號(hào),通過(guò)查找地址映射表得到文件對(duì)應(yīng)的有效物理頁(yè)號(hào);但由于映射表的一一對(duì)應(yīng)關(guān)系,不能通過(guò)邏輯頁(yè)號(hào)找到文件對(duì)應(yīng)的無(wú)效物理頁(yè);因此需要一種方案來(lái)記錄文件對(duì)應(yīng)的無(wú)效物理頁(yè);具體流程如下:

      (41)寫命中判斷:根據(jù)寫請(qǐng)求的邏輯地址查找地址映射表,若命中,則進(jìn)入步驟(42);否則進(jìn)入步驟(43);

      (42)記錄無(wú)效物理頁(yè):將舊物理頁(yè)的狀態(tài)置為無(wú)效,分配新的guid-page表的頁(yè)結(jié)點(diǎn),頁(yè)結(jié)點(diǎn)的物理頁(yè)號(hào)為該舊物理頁(yè)號(hào),新的頁(yè)結(jié)點(diǎn)鏈接在寫請(qǐng)求的guid對(duì)應(yīng)的guid-page表尾部;

      (43)更新地址映射表:更新地址映射表。

      如圖7所示為slc閃存的安全刪除的流程,目前市面上的slc閃存都基本支持覆蓋寫入(只能將“1”改為“0”),即可在擦除前對(duì)物理頁(yè)進(jìn)行覆寫(即第二次寫操作),而對(duì)閃存的錯(cuò)誤率并不產(chǎn)生明顯的影響;因此,對(duì)于slc閃存,本技術(shù)方案實(shí)時(shí)記錄每個(gè)文件在編輯和修改過(guò)程中產(chǎn)生的無(wú)效物理頁(yè),刪除文件時(shí),通過(guò)刪除命令的guid和數(shù)據(jù)段找到該文件對(duì)應(yīng)的所有有效物理頁(yè)和無(wú)效物理頁(yè),再使用物理頁(yè)覆寫方法對(duì)這些物理頁(yè)進(jìn)行覆寫,從而實(shí)現(xiàn)slc閃存的文件級(jí)安全刪除;具體流程如下:

      (71)安全刪除無(wú)效物理頁(yè):根據(jù)刪除請(qǐng)求的guid,查找對(duì)應(yīng)guid-page表中的頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn),該頁(yè)結(jié)點(diǎn)后鏈接的所有頁(yè)結(jié)點(diǎn)均為無(wú)效物理頁(yè)結(jié)點(diǎn),采用物理頁(yè)覆寫技術(shù)安全刪除無(wú)效物理頁(yè)中數(shù)據(jù);

      (72)刪除頁(yè)結(jié)點(diǎn):根據(jù)刪除請(qǐng)求的guid,刪除對(duì)應(yīng)guid-page表中所有頁(yè)結(jié)點(diǎn),并將頭結(jié)點(diǎn)重新初始化;

      (73)安全刪除有效物理頁(yè):將刪除請(qǐng)求的邏輯地址和大小解析為多個(gè)邏輯頁(yè)號(hào),根據(jù)邏輯頁(yè)號(hào)查找地址映射表,找到對(duì)應(yīng)的有效的物理頁(yè)號(hào),采用物理頁(yè)覆寫技術(shù)安全刪除有效物理頁(yè)中數(shù)據(jù);

      (74)更新地址映射表:將找到的有效的物理頁(yè)置為無(wú)效物理頁(yè),更新地址映射表。

      如圖8是mlc閃存的安全刪除的流程,本技術(shù)方案進(jìn)行基于mlc刪除的安全刪除時(shí),通過(guò)、刪除命令的guid和數(shù)據(jù)段找到該文件對(duì)應(yīng)的所有有效物理頁(yè)和無(wú)效物理頁(yè),同時(shí)安全刪除文件在mlc閃存中對(duì)應(yīng)的高頁(yè)和低頁(yè),避免編程串?dāng)_的影響;通過(guò)測(cè)試mlc閃存的每個(gè)塊能承受的覆寫頁(yè)數(shù),設(shè)置覆寫閾值,當(dāng)mlc閃存中某個(gè)塊被覆寫的頁(yè)數(shù)超過(guò)了覆寫閾值時(shí),不再使用物理頁(yè)覆寫方法進(jìn)行安全刪除,而是遷移該塊中的有效頁(yè),將該塊擦除來(lái)達(dá)到安全刪除的目的;具體流程如下:

      (61)查找無(wú)效物理頁(yè):根據(jù)刪除請(qǐng)求的guid,查找對(duì)應(yīng)guid-page表中的頭結(jié)點(diǎn)指針指向的頁(yè)結(jié)點(diǎn),該頁(yè)結(jié)點(diǎn)后鏈接的所有頁(yè)結(jié)點(diǎn)均為無(wú)效物理頁(yè)結(jié)點(diǎn);

      (62)重置guid-page表:根據(jù)刪除請(qǐng)求的guid,刪除對(duì)應(yīng)guid-page表中所有頁(yè)結(jié)點(diǎn),并將頭結(jié)點(diǎn)重新初始化;

      (63)查找有效物理頁(yè):將刪除請(qǐng)求的邏輯地址和大小解析為多個(gè)邏輯頁(yè)號(hào),根據(jù)邏輯頁(yè)號(hào)查找地址映射表,找到對(duì)應(yīng)的有效物理頁(yè)號(hào),將找到的有效物理頁(yè)的狀態(tài)置為無(wú)效;

      (64)覆寫次數(shù)判斷:對(duì)于所有找到的物理頁(yè),判斷物理頁(yè)所在物理塊的覆寫計(jì)數(shù)是否超過(guò)該物理塊的覆寫次數(shù)上限;若沒(méi)有超過(guò),則進(jìn)入步驟(65);否則進(jìn)入步驟(66);

      (65)覆寫刪除:采用物理頁(yè)覆寫技術(shù)安全刪除物理頁(yè)中數(shù)據(jù);該物理頁(yè)所在物理塊的覆寫計(jì)數(shù)加1;

      (66)物理塊擦除:遷移該物理頁(yè)所在的物理塊中的所有有效物理頁(yè),同時(shí)更新相應(yīng)地址映射表和guid-page表,之后擦除該物理塊實(shí)現(xiàn)安全刪除。

      如圖9是元數(shù)據(jù)安全刪除的流程,當(dāng)文件的數(shù)據(jù)塊安全刪除后,文件的元數(shù)據(jù)信息如文件的名稱、inode結(jié)點(diǎn)、映射信息等元數(shù)據(jù)仍該殘留在閃存中,會(huì)泄露文件信息。因此,需要進(jìn)一步對(duì)該文件相關(guān)的元數(shù)據(jù)進(jìn)行安全刪除,來(lái)徹底消除痕跡;具體流程如下:

      (81)根據(jù)文件刪除操作產(chǎn)生的元數(shù)據(jù)修改請(qǐng)求和映射關(guān)系的修改,找到元數(shù)據(jù)所在的物理頁(yè);

      (82)判斷該物理頁(yè)是否已經(jīng)被安全刪除過(guò),若是,則結(jié)束刪除;否則對(duì)元數(shù)據(jù)所在物理頁(yè)進(jìn)行安全刪除,即采用物理頁(yè)覆寫技術(shù)覆寫這些物理頁(yè)中的數(shù)據(jù),并標(biāo)志該頁(yè)已經(jīng)被安全刪除。

      本領(lǐng)域的技術(shù)人員容易理解,以上所述僅為本發(fā)明的較佳實(shí)施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi)所作的任何修改、等同替換和改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。

      當(dāng)前第1頁(yè)1 2 
      網(wǎng)友詢問(wèn)留言 已有0條留言
      • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
      1