數據存儲系統(tǒng)的加密數據的遷移的制作方法
【技術領域】
[0001]本公開涉及計算機系統(tǒng)的數據存儲系統(tǒng)。更具體地,本公開涉及存儲系統(tǒng)的加密數據的迀移。
【背景技術】
[0002]現代計算機系統(tǒng)不斷要求數據存儲系統(tǒng)容量、可靠性和性能的增大。在1981年,用于個人計算機的典型硬盤驅動器具有大約10兆字節(jié)(MB)的容量。如今,以太字節(jié)(TB)測量硬盤驅動器的容量。使用疊瓦式磁記錄以便增大磁存儲設備的容量。另外,現代磁盤驅動器通常包括固態(tài)存儲器以便增大性能。期望提供用于增大數據存儲系統(tǒng)的容量、可靠性和性能的機制和體系架構。
【附圖說明】
[0003]現在將參考如下附圖描述實施本發(fā)明的各種特征的系統(tǒng)和方法,在附圖中:
[0004]圖1根據本發(fā)明的一些實施例示出主機系統(tǒng)和數據存儲系統(tǒng)的組合。
[0005]圖2根據本發(fā)明的一些實施例示出由數據存儲系統(tǒng)使用的壓縮和格式化。
[0006]圖3根據本發(fā)明的一些實施例示出由數據存儲系統(tǒng)使用的壓縮和格式化數據流。
[0007]圖4根據本發(fā)明的一些實施例示出壓縮和加密數據的迀移。
[0008]圖5根據本發(fā)明的一些實施例示出迀移加密數據的過程500的流程圖。
【具體實施方式】
[0009]雖然描述了某些實施例,但這些實施例僅通過示例的方式呈現,并且不旨在限制保護范圍。事實上,可以以多種其他形式實施本文所描述的新穎方法和系統(tǒng)。此外,可在不脫離保護范圍的情況下,對本文所描述的方法和系統(tǒng)的形式做出各種省略、替換和改變。
[0010]皿
[0011]數據存儲系統(tǒng)能夠使用壓縮技術以便滿足增大的容量、可靠性和性能的需求。在數據存儲系統(tǒng)中存儲主機系統(tǒng)數據之前壓縮主機系統(tǒng)數據通常使壓縮數據具有比由主機系統(tǒng)提供的原始、非壓縮數據小的大小。因此,由主機系統(tǒng)提供的固定大小的主機數據單元在壓縮之后變?yōu)榭勺兇笮〉臄祿卧?。許多挑戰(zhàn)性與存儲、移動和檢索該類可變大小數據共存。例如,在數據存儲系統(tǒng)媒介中存儲可變大小數據可迫使對數據存儲系統(tǒng)存儲數據以及跟蹤所存儲的數據的方式作出相當大的改變。作為另一個示例,由于主機系統(tǒng)通常預期在數據檢索期間返回固定大小數據,因此還可迫使對數據檢索機制作出相當大的改變。
[0012]在一些實施例中,提供了用于壓縮、格式化和迀移存儲在數據存儲系統(tǒng)中的主機數據(或用戶數據)的機制。數據存儲系統(tǒng)能夠在將固定大小數據存儲在媒介上之前加密和壓縮固定大小數據,并格式化所獲得的可變大小壓縮數據用于在媒介上存儲,所述媒介通常具有固定大小存儲粒度,諸如磁媒介的扇區(qū)以及非易失性固態(tài)存儲器的頁面。一個或多個模塊能夠壓縮進來的主機數據并產生固定大小“虛擬”存儲單元(或存儲單元)的輸出流,其包含一個或多個壓縮主機數據單元、誤差校正和檢測碼(H)C)信息,以及用于解碼存儲單元的邏輯內容的元數據。虛擬存儲單元用作壓縮主機數據的固定大小容器。
[0013]在一些實施例中,在將數據寫入數據存儲系統(tǒng)期間,未壓縮的固定大小主機數據單元由鄰近邏輯地址分組、剝離EDC數據并且被加密和壓縮成一個或多個可變大小壓縮數據單元。為了維持數據保護和誤差檢測和恢復,壓縮數據單元的未壓縮數據用于確定被附加到壓縮數據單元的新的H)C。壓縮邏輯還創(chuàng)建壓縮數據單元元數據,其可包括壓縮數據的主機邏輯地址和長度。壓縮凈負荷(payload)能夠包括元數據、確定的EDC和壓縮主機數據。元數據可以是未壓縮和未加密的,以用于隨后的再打包和迀移。能夠包括一個或多個完全或部分凈負荷的一個或多個壓縮凈負荷能夠被附加用于創(chuàng)建固定大小虛擬存儲單元。虛擬存儲單元還能夠包括元數據,其可以是未壓縮的和未加密的,以用于解碼虛擬存儲單元的邏輯內容。例如,虛擬存儲單元元數據能夠包括第一壓縮映射單元的偏移、虛擬數據單元塊地址字段以及序列號。附加EDC數據能夠附加到虛擬存儲單元。虛擬存儲單元能夠從易失性存儲器緩沖器移動到非易失性媒介。
[0014]在一些實施例,一個或多個虛擬存儲單元能夠在數據存儲系統(tǒng)中的不同類型媒介之間移動或迀移。存儲數據的迀移能夠包括使用元數據以再打包和/或再格式化壓縮(和可選地加密)(一個或多個)數據單元,以用于存儲在不同類型的媒介上。元數據能夠是未壓縮的和未加密的,使得在不解密或解壓縮數據的情況下有利地執(zhí)行迀移。
[0015]系統(tǒng)概覽
[0016]圖1根據本發(fā)明的一些實施例示出主機系統(tǒng)和數據存儲系統(tǒng)的組合100。如所示出,數據存儲系統(tǒng)120 (例如,混合硬盤驅動器)包括控制器130和存儲媒介140。媒介140包括非易失性固態(tài)存儲器陣列150。固態(tài)存儲器陣列150可包括閃存集成電路、硫族化物RAM (C-RAM)、相變存儲器(PC-RAM或PRAM)、可編程金屬化單元RAM (PMC-RAM或PMCm)、雙向通用存儲器(Ovonic Unified Memory, OUM)、電阻RAM(RRAM)、NAND存儲器(例如,單級單元(SLC)存儲器、多級單元(MLC)存儲器或其任何組合)、N0R存儲器、EEPR0M、鐵電存儲器(FeRAM)、磁阻RAM(MRAM)、其他分立NVM(非易失存儲器)芯片或其任何組合。媒介140還包括磁存儲設備160,其包括磁記錄媒介164。在一個實施例中,磁存儲設備160使用疊瓦式磁記錄。存儲媒介140能夠進一步包括其他類型的存儲設備。在一些實施例中,存儲媒介140能夠包括固態(tài)存儲器陣列150或磁存儲設備160中的僅一個。
[0017]控制器130能夠經配置從主機系統(tǒng)110的存儲接口模塊112(例如,設備驅動器)接收數據和/或存儲存取命令。由存儲接口模塊112傳送的存儲存取命令能夠包括由主機系統(tǒng)110發(fā)出的寫數據命令和讀數據命令。讀命令和寫命令能夠指定邏輯地址(例如,邏輯塊地址或LBA),其用于存取數據存儲系統(tǒng)120??刂破?30能夠執(zhí)行媒介140中接收的命令。
[0018]數據存儲系統(tǒng)120能夠存儲主機系統(tǒng)110傳送的數據。換句話說,數據存儲系統(tǒng)120能夠充當主機系統(tǒng)110的存儲器存儲設備。為了促進該功能,控制器130能夠實施邏輯接口。邏輯接口能夠作為其中能夠存儲用戶數據的一組邏輯地址(例如,連續(xù)地址)呈現給主機系統(tǒng)I1數據存儲系統(tǒng)的存儲器。固有地,控制器130能夠將邏輯地址映射到媒介140中的各種物理位置或地址??刂破?30包括緩沖器132,其能夠包括易失性存儲器,諸如隨機存取存儲器(RAM)(例如,DRAM、SRAM、SDRAM、DDR等等)。在一個實施例中,緩沖器132在控制器130外部??刂破?30還包括壓縮、格式化和數據迀移模塊134,其經配置對存儲在媒介140中的主機數據壓縮、可選地加密和格式化、再打包及迀移壓縮和加密數據,以及于對提供到主機系統(tǒng)110的存儲數據解壓縮、解密和格式化。壓縮、格式化和數據迀移模塊134能夠使用緩沖器132,以用于存儲和檢索數據的同時執(zhí)行壓縮、可選解密、迀移、再打包和/或格式化任務。在一個實施例中,在諸如片上系統(tǒng)(SoC)硬件模塊的硬件中實施壓縮、格式化和數據迀移模塊134。能夠使用專用集成電路(ASIC)、現場可編程門陣列(FPGA)或其組合實現硬件實施方式。在另一個實施例中,能夠在固件或作為硬件和固件的組合實施壓縮、格式化和數據迀移模塊134。
[0019]在一些實施例中,主機系統(tǒng)110將被格式化為一個或多個邏輯主機數據單元的數據存儲在數據存儲系統(tǒng)120中并且數據存儲系統(tǒng)將其返回到主機系統(tǒng)。邏輯主機數據單元能夠跨越邏輯地址的范圍,其中每個邏輯地址對應于媒介140中的物理位置。主機數據單元能夠為具有任何合適大小的固定大小數據單元,諸如512字節(jié)、1024字節(jié)(IKB) ,2048字節(jié)(2KB)、4096字節(jié)(4KB)等等。在一個實施例中,由主機系統(tǒng)110使用512字節(jié)數據單元或扇區(qū)。在一些實施例中,媒介140被劃分為具有合適大小的固定大小物理媒介存儲單元(或物理存儲單元或存儲器數據單元或存儲器數據單元容器),諸如512字節(jié)、1024字節(jié)(IKB)、2048字節(jié)(2KB)、4096字節(jié)(4KB)等等。物理媒介存儲單元能夠對應于存儲器的最小可編程和可讀部分,并且能夠跨越各個存儲器位置的物理地址。在一些實施例中,不同的媒介類型包括具有不同大小的媒介存儲單元。例如,固態(tài)存儲器陣列150能夠被劃分為晶片、塊和頁面,諸如2KB頁面,并且磁記錄媒介164能夠被劃分為磁道、集群和扇區(qū),諸如512字節(jié)扇區(qū)。在某些實施例中,特定的媒介類型使用具有不同大小的一個或多個媒介存儲單元。例如,由于誤差檢測和校正數據(例如,ECC)的可變大小,因此固態(tài)存儲器陣列150能夠使用具有各種大小的媒介存儲單元。例如,物理頁面具有固定的2KB大小,但由于ECC數據根據所需誤差檢測和校正強度大小