TWI521425B - 用於重複資料刪除之系統與方法 - Google Patents
用於重複資料刪除之系統與方法 Download PDFInfo
- Publication number
- TWI521425B TWI521425B TW103109141A TW103109141A TWI521425B TW I521425 B TWI521425 B TW I521425B TW 103109141 A TW103109141 A TW 103109141A TW 103109141 A TW103109141 A TW 103109141A TW I521425 B TWI521425 B TW I521425B
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- storage element
- storage
- module
- input
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
- G06F3/0641—De-duplication techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System (AREA)
- Storage Device Security (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Description
本專利申請案主張美國臨時專利申請案第61/782,122號(2013年3月14日申請)之優先權且因此主張自該美國臨時專利申請案第61/782,122號起之一較早申請日期之權益,該美國臨時專利申請案第61/782,122號之全部內容藉此以引用之方式併入。
本發明大體係關於一儲存元件之輸入/輸出(I/O)操作,且更具體而言係關於減少儲存元件中之重複資料。
重複資料刪除係比較傳入資料與已存在於一儲存元件上之資料以判定該傳入資料是否係一重複之一程序。若該傳入資料係唯一的,則將該傳入資料儲存於儲存元件上。若該傳入資料係重複的,則不儲存該傳入資料。而是,形成對已儲存資料之一參考。
本文提出之系統及方法提供重複資料刪除。在一項實施例中,一I/O模組可操作以產生一I/O操作來寫入資料。一儲存元件通信地耦合至該I/O模組且可操作以在該儲存元件之一邏輯位址處寫入該I/O操作之該資料,並基於該資料產生一簽章。該I/O模組進一步可操作以處理該簽章來判定該資料是否存在於另一邏輯位址處(舉例而言,在另一儲存元件或正在寫入至之該儲存元件上)。
本文揭示之各項實施例可根據設計選擇而以各種方式實施。舉例而言,該等系統及方法實施例於此可採取電腦硬體、軟體、韌體或其組合之形式。下文闡述其他例示性實施例。
100‧‧‧系統
101‧‧‧輸入/輸出模組
102‧‧‧儲存元件
103‧‧‧簽章產生器
105‧‧‧表
400‧‧‧固態磁碟機
401‧‧‧固態磁碟機控制器/選定固態磁碟機控制器/相關聯控制器/儲存控制器
411‧‧‧主機介面
413‧‧‧標籤追蹤模組
421‧‧‧資料處理模組
423‧‧‧處理引擎/引擎
431‧‧‧緩衝器
433‧‧‧直接記憶體存取(DMA)模組
435‧‧‧錯誤校正碼(ECC-X)模組
437‧‧‧記憶體
441‧‧‧映射模組/映射
443‧‧‧表
451‧‧‧回收器
461‧‧‧錯誤校正碼模組
471‧‧‧CPU
473‧‧‧命令管理
475‧‧‧緩衝器管理
477‧‧‧轉譯管理
479‧‧‧一致性管理
481‧‧‧元件管理
482‧‧‧身分識別管理
491‧‧‧元件介面邏輯/元件介面邏輯模組
492‧‧‧快閃元件
493‧‧‧排程模組
495‧‧‧儲存元件
502‧‧‧主機系統
503‧‧‧中間控制器
505‧‧‧作業系統
506‧‧‧連結
507‧‧‧磁碟機
509‧‧‧應用程式軟體
512‧‧‧記憶體
514‧‧‧管理軟體
516‧‧‧儲存模組
517‧‧‧輸入/輸出及儲存功能
518‧‧‧伺服器
519‧‧‧通信網路/網路
現將僅以實例方式且參照附圖闡述本發明之某些實施例。在所有圖式中,相同參考編號表示相同元件或相同類型之元件。
圖1係用於減少重複資料之一例示性系統之一方塊圖。
圖2係可用圖1之系統操作之一例示性程序之一流程圖。
圖3係可用圖1之系統操作之另一例示性程序之一流程圖。
圖4係一例示性SSD及其相關聯元件控制器與(若干)儲存元件之一方塊圖。
圖5係包括與一主機系統介接之SSD及其相關聯控制器/儲存元件之一I/O模組的一方塊圖。
諸圖及以下闡述圖解說明本發明之具體例示性實施例。因此,將瞭解熟習此項技術者將能夠設想各種配置,儘管本文中未明確闡述或展示該等配置,但其體現本發明之原理且包含於本發明之範疇內。此外,本文闡述之任何實例意欲幫助理解本發明之原理且認為不限於此等具體述及之實例及條件。因此,本發明不限於下文所闡述之具體實施例或實例。
圖1係用於減少重複資料之一例示性系統100之一方塊圖。系統100以其基本形式包括一I/O模組101,I/O模組101可操作以執行與一儲存元件102之I/O操作。在如此做時,I/O模組101執行一寫入I/O來寫入並儲存資料於儲存元件102上。儲存元件102包括一簽章產生器103,簽章產生器103可操作以基於寫入I/O之資料產生並傳回一簽章使得I/O模組101可處理該資料簽章並判定該資料是否位於別處。亦
即,I/O模組101可處理該資料簽章以判定寫入I/O之資料在相同或另一儲存元件之另一邏輯位址處是否係重複的。
I/O模組101可操作以執行與儲存元件102之I/O操作並處理來自儲存元件102之資料簽章之任何系統、元件、軟體或其組合。就此而言,I/O模組101可組態有任何計算系統(舉例而言,作為一主機系統之一主機介面)。在一第一實例中,I/O模組101係耦合至包含儲存元件102之一或多個儲存元件之一主機匯流排轉接器(HBA)或一RAID單晶片(ROC)控制器。在某些實施例中,使I/O模組101能夠管理一或多個儲存元件作為一獨立磁盤冗餘陣列(RAID)儲存系統。在一第二實例中,I/O模組101係(舉例而言,經由周邊組件互連高速連接)耦合至包含儲存元件102之一或多個儲存元件之一主機電腦。
儲存元件102係能夠儲存資料之任何元件(舉例而言,電腦磁碟機、非揮發性隨機存取記憶體(NVRAM)、固態磁碟機(SSD)等)。在某些實例中,儲存元件102係用於I/O模組101之一快取記憶體,該快取記憶體可操作以在I/O模組101之控制下快取I/O。
簽章產生器103可操作以自一寫入I/O操作擷取資料並基於I/O操作之資料產生一簽章之任何系統、元件、軟體或其組合。此等資料簽章之實例包含雜湊碼產生器、檢查和產生器及其類似者。因此,儲存元件102可具有某種處理能力,諸如一元件控制器特定於儲存元件102之處理能力。舉例而言,SSD通常組態有元件控制器,該等元件控制器可操作以執行特定於SSD之各種功能,包含處理I/O操作、緩衝資料、將資料映射至儲存元件中之邏輯位址等。就此而言,儲存元件102之元件控制器亦可用於產生資料簽章並將其傳回至I/O模組101用於藉由I/O模組101之後續處理。現將關於圖2及圖3闡述關於系統100之操作之額外細節。
圖2係可用圖1之系統100操作之一例示性程序200之一流程圖。
更具體而言,程序200揭示其中I/O模組101可執行一寫入I/O操作並處理來自儲存元件102之關於彼I/O操作之一資料簽章之一個例示性操作。在此實施例中,在程序元素201中,I/O模組101產生一I/O命令以將資料寫入至儲存元件102之一邏輯位址。在處理寫入I/O命令時,儲存元件102可基於含在寫入I/O命令內之資料產生一簽章並然後將彼資料簽章傳送至I/O模組101。
在程序元素202中,I/O模組101接收由儲存元件102根據在程序元素201中產生之寫入I/O命令之資料產生的資料簽章。儲存元件102亦可將一應答傳送至I/O模組101,該應答指示寫入操作之成功或其他狀態。就此而言,在程序元素203中,I/O模組101接收由儲存元件102對已將資料成功地寫入至儲存元件102之一應答。此後,在程序元素204中,I/O模組101處理資料簽章以判定該資料是否已經存在於另一儲存位置處(舉例而言,在儲存元件102或某一其他儲存模組之另一邏輯位址處)。因此,在已將資料寫入至儲存元件102之後執行資料重複判定。
若寫入I/O之資料不存在於另一儲存位置處(亦即,該資料係唯一的),則在程序元素206中,I/O模組101使寫入I/O之資料與剛寫入了該資料(假定成功地寫入了該資料)之儲存元件102之邏輯位址相關聯。然而,若該資料已存在於另一儲存位置處(亦即,該資料係重複的),則在程序元素205中,I/O模組101使剛寫入至儲存元件102之寫入資料之位置與已存在之資料相關聯。換言之,I/O模組101用先前寫入之資料之邏輯位址更新I/O模組101之表105中之資料之位置(舉例而言,一資料結構)。如此,則可解除分配或修整剛寫入了資料之儲存元件102之儲存空間以釋放彼資料使得該儲存空間可被覆寫。舉例而言,小電腦系統介面(SCSI)協定具有一UNMAP命令且串列AT附接(SATA)協定具有一類似之TRIM命令以解除分配不再需要之儲存空間。在任一情
形中,一旦已執行了資料重複判定,在程序元素207中,I/O模組101便等待直至(舉例而言,由一主機系統)請求下一個寫入I/O。在接收下一個I/O請求後,I/O模組101旋即返回至程序元素201以重複程序200。
在其他實施例中,當偵測到資料已存在於另一儲存位置處時,其他儲存位置係解除分配之位置,且其他資料之位置則與剛寫入至儲存元件102之寫入資料相關聯。
圖3係可用圖1之系統操作之另一例示性程序300之一流程圖。更具體而言,程序300揭示儲存元件102回應於來自I/O模組101之寫入I/O之一個例示性操作。在此實施例中,在程序元素301中,儲存元件102處理寫入I/O命令。舉例而言,儲存元件102可自寫入I/O命令擷取資料並判定在儲存元件102內資料將存儲至之一邏輯位址。
在自寫入I/O命令擷取到資料之情況下,在程序元素302中,儲存元件102可基於寫入I/O命令之該資料計算一簽章。舉例而言,寫入I/O命令之資料可具有一特定長度之經雙態切換位元,可針對該等經雙態切換位元而產生一雜湊碼或某一其他碼以唯一地表示該資料。在程序元素303處,儲存元件102然後將寫入I/O命令之資料儲存於在寫入I/O命令中識別之儲存元件102之邏輯位址處。在程序元素304中,儲存元件102然後將簽章傳輸至I/O模組101,使得I/O模組101可執行如上所闡述之重複之判定。
本發明可採取一完全硬體實施例、一完全軟體實施例或含有硬體元素及軟體元素兩者之一實施例之形式。圖4及圖5圖解說明可可操作以採用本文所闡述之系統及方法之硬體實施例及軟體實施例之一組合。更具體而言,圖4係一例示性SSD 400以及其相關聯元件控制器(SSD控制器401)及儲存元件495之一方塊圖。圖5係包括與一主機系統502介接之SSD 400及其相關聯控制器401/儲存元件495之一儲存模組
516的一方塊圖。
在圖4中,儲存控制器401包含一主機介面411,主機介面411可操作以與一主機系統介接以傳達主機系統之I/O操作。主機介面411可組態有一標籤追蹤模組413,標籤追蹤模組413可操作以追蹤個別I/O命令之進程(舉例而言,讀取命令並將該等命令寫入至儲存元件495中之特定位址)。標籤追蹤模組413可使自主機系統接收之一命令之一外部旗標與SSD控制器401在處理命令期間可存取以識別處理之狀態之一內部旗標相關聯。
SSD控制器401亦包含一資料處理模組421,資料處理模組421包括一簽章產生器422及一處理引擎423。一般而言,處理引擎423可操作以執行對自主機介面411接收或常駐在一緩衝器431內之資料之特定任務,諸如格式化該資料,轉碼該資料等。舉例而言,處理引擎423可可操作以處理來自產生I/O操作之主機系統之一I/O模組(舉例而言,I/O模組101)之該操作,使得可將I/O操作之資料寫入至儲存元件495之邏輯位址。亦即,引擎423可擷取寫入I/O命令之資料並使其準備儲存於儲存元件495中。就此而言,圖1之簽章產生器103可組態有資料處理模組421以基於寫入I/O命令之資料產生用於傳回至主機系統之簽章,使得主機系統可判定I/O操作之資料是否位於另一邏輯位址處(亦即,在別處係重複的)。
緩衝器431可操作以儲存傳送至主機系統及來自該主機系統之資料。緩衝器431亦可儲存系統資料,諸如由SSD控制器401用來管理個別快閃元件492中之一或多者(包含(舉例而言)記憶體437中之較高階RAID功能)之記憶體表。其他模組可包含:一錯誤校正碼(ECC-X)模組435以提供較高階錯誤校正及冗餘功能,以及一直接記憶體存取(DMA)模組433以控制資料至及自緩衝器431之移動。
SSD控制器401亦包含一錯誤校正碼模組461,錯誤校正碼模組
461可操作以使用各種錯誤校正碼技術中之任何者(舉例而言,循環冗餘檢查、漢明碼、博斯-查德胡裏-霍昆格母(BCH)碼、低密度奇偶檢查碼等)提供對緩衝器431中之資料之較低階錯誤校正及冗餘處理。
一元件介面邏輯模組491可操作以根據快閃元件492之協定將資料傳送至個別快閃元件492及傳送來自個別快閃元件492之資料。元件介面邏輯模組491包含一排程模組493,排程模組493可操作以將對快閃元件492之I/O操作進行排佇。
本文之SSD控制器401亦包含一映射模組441,映射模組441可操作以根據一表443執行資料定位址至儲存元件495中之位置。舉例而言,映射模組441可使用表443將來自主機系統之邏輯區塊位址(LBA)轉換成引導至個別快閃元件492中之一或多者之區塊/分頁位址。
一回收器451代表儲存控制器401執行廢棄項目收集。舉例而言,回收器451可藉由掃描映射模組441之表443來判定有效使用中之快閃元件492之部分。就此而言,回收器451可藉由抹除未使用部分來使快閃元件492之未使用或「解除分配」部分可用於寫入。回收器451亦可移動快閃元件492內之資料以產生可用於寫入之快閃元件492之更大連續部分。就此而言,一旦I/O模組101判定資料係重複的,則回收器451便可抹除或解除分配儲存元件495中之儲存空間。
SSD控制器401亦包含控制SSD控制器401之各種態樣之一CPU 471。舉例而言,CPU 471可處理指令或韌體以執行追蹤並控制自主機系統接收之命令的命令管理473。此韌體亦可執行控制緩衝器431之分配及使用之緩衝器管理475以及控制映射模組441之轉譯管理477。韌體亦可採用一致性管理479來控制資料定位址之一致性以避免衝突,諸如可在外部資料存取與回收資料存取之間發生的彼等衝突。韌體亦可提供元件管理481以控制元件介面邏輯491,以及身分識別管理482以控制SSD控制器401內之組件之身分識別資訊之修改及傳達。
在圖5中,主機系統502可操作以處理軟體指令並執行與儲存模組516之自SSD 400讀取及寫入至SSD 400之I/O操作。就此而言,主機系統502可包含為主機系統502提供計算環境之一作業系統505。一磁碟機507可操作以透過至儲存模組516之連結506進行通信以藉助與其組態之各種SSD 400來執行I/O操作。
與其他計算系統相同,作業系統505可經由管理軟體514(舉例而言,Bios軟體)而起始。主機系統502亦可包含應用程式軟體509以代表主機系統502執行各個計算程序(舉例而言,字處理應用程式、影像處理應用程式等)。主機系統502亦可包含I/O及儲存功能517,I/O及儲存功能517可操作以透過一通信網路519(舉例而言,網際網路、區域網路、廣域網路等)執行與一或多個伺服器518之I/O操作。就此而言,儲存模組516可充當主機系統502之I/O操作之一快取記憶體。
儲存模組516可組態有一中間控制器503,中間控制器503可操作以將主機系統502之各個I/O操作切換至SSD 400之LBA。就此而言,儲存模組516可包含儲存用於中間控制器503之映射資訊以執行對LBA之I/O操作之一記憶體512。
主機系統502之一使用者可經由應用程式軟體509對某些資料進行操作或產生該等資料。在由作業系統505提供之作業系統環境內操作之應用程式軟體509可需要透過一網路519(舉例而言,一資料網路,諸如網際網路、一區域網路、一廣域網路等)將資料傳送至伺服器518或以其他方式藉助伺服器518儲存該資料。因此,應用程式軟體509可引導I/O及儲存模組517產生至伺服器518之一邏輯位址之一寫入I/O命令。另一選擇係或另外地,應用程式軟體509可引導磁碟機507產生針對儲存模組516之一寫入I/O命令以將資料儲存於SSD 400之一者中。
中間控制器503將寫入I/O命令切換至儲存模組516之適當SSD 400,使得可將寫入I/O命令之資料寫入至適當SSD 400。一旦寫入I/O命令由適當SSD 400接收,SSD控制器401便擷取資料及儲存元件495中彼資料將儲存至之邏輯位址。
在擷取到該資料之情況下,選定SSD控制器401基於彼資料產生一簽章。為圖解說明,可用一SHA-512雜湊碼產生器編碼文字串「the quick brown fox jumped over the lazy dog's back」以產生「145edbabf68f32da04167e63f979b60f37d49a9182e5856404c77ed3c930d8805e42d0e462e19688834117bb14bd80ace55df52e44e2e8d48935c7877ea2d931」之唯一碼。選定SSD控制器401經由映射441將該資料映射至儲存元件495以在儲存元件495之所要邏輯位址處寫入該資料。SSD控制器401然後將唯一的雜湊碼傳回至主機系統502,使得主機系統502之管理軟體514可處理所傳回雜湊碼並判定彼碼是否儲存於別處(舉例而言,伺服器518處,以及另一SSD 400處,或某一其他儲存元件處)。
主機系統502可儲存表示儲存於各個儲存元件內之資料之雜湊碼(舉例而言,在一雜湊表中)。主機系統502可檢查此雜湊碼清單以判定所接收雜湊碼是否係與一先前雜湊碼相同。若相同,則主機系統502(舉例而言,經由I/O模組101)用先前所儲存資料之位址更新表105。主機系統502然後可引導SSD 400解除分配剛寫入了該資料之儲存元件495之邏輯位址處之儲存空間,使得可更動控制或修整該儲存空間。另外,SSD控制器401可傳回所寫入資料之一狀態訊息以使主機系統502確保已將資料成功地寫入至適當SSD 400/儲存元件495。此外,若主機系統502判定所接收碼確實係唯一的,則在該資料儲存於表105中之情況下,主機系統502(舉例而言,透過管理軟體514)然後使該資料之位置與儲存元件495之邏輯位址相關聯。
根據本文闡述之實施例,將簽章產生有利地向下推至可以一較並列及分佈式方式完成該簽章產生所處之較低階。投機性地寫入資料,使得該資料被快速承諾,而不慮及該資料之最終處置(舉例而言,SSD 400中之資料之後續覆寫)。此亦提供處理成本之一權衡比較(舉例而言,重複資料刪除成本對壓縮性),其中若資料係高度可壓縮的,則可忽略彼重複資料刪除。舉例而言,主機系統502可在報告簽章時及/或在判定寫入資料是否係唯一的時估計寫入資料之壓縮性。就此而言,儲存模組516可與寫入回應/簽章一起傳回所寫入資料之一壓縮比,使得主機系統502可判定所壓縮資料是否係足夠唯一的。換言之,本文之實施例為主機系統502提供當資料係高度壓縮的時忽略重複資料之能力以便有利地減小追蹤其大小已經減小之重複資料之處理成本。舉例而言,全零資料係常見的且在某些例項中,追蹤全零資料之重複由於依賴於壓縮且僅僅儲存全零資料而對處理能力而言並非有成本效益問題。
103‧‧‧簽章產生器
400‧‧‧固態磁碟機
401‧‧‧固態磁碟機控制器/選定固態磁碟機控制器/相關聯控制器/儲存控制器
411‧‧‧主機介面
413‧‧‧標籤追蹤模組
421‧‧‧資料處理模組
423‧‧‧處理引擎/引擎
431‧‧‧緩衝器
433‧‧‧直接記憶體存取(DMA)模組
435‧‧‧錯誤校正碼(ECC-X)模組
437‧‧‧記憶體
441‧‧‧映射模組/映射
443‧‧‧表
451‧‧‧回收器
461‧‧‧錯誤校正碼模組
471‧‧‧CPU
473‧‧‧命令管理
475‧‧‧緩衝器管理
477‧‧‧轉譯管理
479‧‧‧一致性管理
481‧‧‧元件管理
482‧‧‧身分識別管理
491‧‧‧元件介面邏輯/元件介面邏輯模組
492‧‧‧快閃元件
493‧‧‧排程模組
495‧‧‧儲存元件
Claims (10)
- 一種用於重複資料刪除(data de-duplication)之系統(100),該系統之特徵在於其包括:一輸入/輸出模組(101),其可操作以產生一輸入/輸出操作來寫入資料;及一儲存元件(102),其通信地耦合至該輸入/輸出模組且可操作以在該儲存元件之一邏輯位址處寫入該輸入/輸出操作之該資料,並基於該資料產生一簽章(signature)及一壓縮比,其中該輸入/輸出模組進一步可操作以處理該簽章以判定該資料是否存在於一其他邏輯位址處且基於該資料之該壓縮比來判定是否執行該重複資料刪除。
- 如請求項1之系統,其中:若該輸入/輸出模組判定執行該重複資料刪除,該輸入/輸出模組進一步可操作以在判定該資料存在於該其他邏輯位址處後旋即引導該儲存元件解除分配該儲存元件之該邏輯位址處之儲存空間。
- 如請求項1之系統,其中:該其他邏輯位址位於一其他儲存元件中。
- 如請求項1之系統,其中:該儲存元件進一步可操作以使用一雜湊碼產生該簽章。
- 如請求項1之系統,其中:該儲存元件進一步可操作以將該輸入/輸出操作之該資料寫入至該儲存元件之非揮發性記憶體,且將該輸入/輸出操作之狀態傳回至該輸入/輸出模組。
- 一種用於重複資料刪除之方法(200),該方法之特徵在於其包 括:產生一輸入/輸出操作以在一儲存元件之一邏輯位址處寫入資料(201);接收由該儲存元件根據該資料產生之一簽章(202)及一壓縮比;接收由該儲存元件對已寫入該輸入/輸出操作之該資料之一應答(203);及處理該簽章以判定該資料是否存在於一其他邏輯位址處(204)並基於該資料之該壓縮比來判定是否執行該重複資料刪除。
- 如請求項6之方法,其進一步包括:偵測一其他儲存元件中之該其他邏輯位址。
- 如請求項6之方法,其進一步包括:若判定執行該重複資料刪除,在判定該資料存在於該其他邏輯位址處後旋即引導該儲存元件解除分配該儲存元件之該邏輯位址處之該資料。
- 如請求項6之方法,其進一步包括:使用一雜湊碼產生該簽章。
- 如請求項6之方法,其進一步包括:將該輸入/輸出操作之該資料寫入至該儲存元件之非揮發性記憶體;及處理來自該儲存元件之寫入之狀態以判定該寫入是否係成功的。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201361782122P | 2013-03-14 | 2013-03-14 | |
US13/939,345 US20140281155A1 (en) | 2013-03-14 | 2013-07-11 | Storage device assisted data de-duplication |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201506769A TW201506769A (zh) | 2015-02-16 |
TWI521425B true TWI521425B (zh) | 2016-02-11 |
Family
ID=50486737
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW103109141A TWI521425B (zh) | 2013-03-14 | 2014-03-13 | 用於重複資料刪除之系統與方法 |
Country Status (6)
Country | Link |
---|---|
US (1) | US20140281155A1 (zh) |
EP (1) | EP2778890A3 (zh) |
JP (2) | JP2014179094A (zh) |
KR (1) | KR20140113565A (zh) |
CN (1) | CN104049911A (zh) |
TW (1) | TWI521425B (zh) |
Families Citing this family (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102140792B1 (ko) * | 2013-12-24 | 2020-08-03 | 삼성전자주식회사 | 데이터 중복 제거를 수행할 수 있는 데이터 저장 장치의 동작 방법들 |
TWI540582B (zh) * | 2014-07-10 | 2016-07-01 | 群聯電子股份有限公司 | 資料管理方法、記憶體控制電路單元以及記憶體儲存裝置 |
WO2016057670A1 (en) * | 2014-10-07 | 2016-04-14 | Google Inc. | Hardware-assisted memory compression management using page filter and system mmu |
CN104391915B (zh) * | 2014-11-19 | 2016-02-24 | 湖南国科微电子股份有限公司 | 一种数据重删方法 |
US10437784B2 (en) * | 2015-01-30 | 2019-10-08 | SK Hynix Inc. | Method and system for endurance enhancing, deferred deduplication with hardware-hash-enabled storage device |
WO2017068617A1 (ja) | 2015-10-19 | 2017-04-27 | 株式会社日立製作所 | ストレージシステム |
US9983821B2 (en) * | 2016-03-29 | 2018-05-29 | Samsung Electronics Co., Ltd. | Optimized hopscotch multiple hash tables for efficient memory in-line deduplication application |
US10409518B1 (en) | 2017-04-20 | 2019-09-10 | Seagate Technology Llc | Reordered local data deduplication in storage devices |
US11010233B1 (en) | 2018-01-18 | 2021-05-18 | Pure Storage, Inc | Hardware-based system monitoring |
US11687418B2 (en) | 2019-11-22 | 2023-06-27 | Pure Storage, Inc. | Automatic generation of recovery plans specific to individual storage elements |
US11615185B2 (en) | 2019-11-22 | 2023-03-28 | Pure Storage, Inc. | Multi-layer security threat detection for a storage system |
US11675898B2 (en) | 2019-11-22 | 2023-06-13 | Pure Storage, Inc. | Recovery dataset management for security threat monitoring |
US11657155B2 (en) | 2019-11-22 | 2023-05-23 | Pure Storage, Inc | Snapshot delta metric based determination of a possible ransomware attack against data maintained by a storage system |
US11645162B2 (en) | 2019-11-22 | 2023-05-09 | Pure Storage, Inc. | Recovery point determination for data restoration in a storage system |
US11720714B2 (en) * | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Inter-I/O relationship based detection of a security threat to a storage system |
US11720692B2 (en) | 2019-11-22 | 2023-08-08 | Pure Storage, Inc. | Hardware token based management of recovery datasets for a storage system |
US11520907B1 (en) | 2019-11-22 | 2022-12-06 | Pure Storage, Inc. | Storage system snapshot retention based on encrypted data |
US11651075B2 (en) | 2019-11-22 | 2023-05-16 | Pure Storage, Inc. | Extensible attack monitoring by a storage system |
US11625481B2 (en) * | 2019-11-22 | 2023-04-11 | Pure Storage, Inc. | Selective throttling of operations potentially related to a security threat to a storage system |
US11941116B2 (en) | 2019-11-22 | 2024-03-26 | Pure Storage, Inc. | Ransomware-based data protection parameter modification |
US11341236B2 (en) | 2019-11-22 | 2022-05-24 | Pure Storage, Inc. | Traffic-based detection of a security threat to a storage system |
US11755751B2 (en) | 2019-11-22 | 2023-09-12 | Pure Storage, Inc. | Modify access restrictions in response to a possible attack against data stored by a storage system |
US11500788B2 (en) * | 2019-11-22 | 2022-11-15 | Pure Storage, Inc. | Logical address based authorization of operations with respect to a storage system |
KR102267477B1 (ko) * | 2020-02-20 | 2021-06-22 | 삼성전자주식회사 | 스토리지 장치 및 이의 동작 방법 |
TWI758825B (zh) * | 2020-08-18 | 2022-03-21 | 鴻海精密工業股份有限公司 | 壓縮資料之方法及設備、解壓縮資料之方法及設備 |
CN114077569B (zh) | 2020-08-18 | 2023-07-18 | 富泰华工业(深圳)有限公司 | 压缩数据的方法及设备、解压缩数据的方法及设备 |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008009859A (ja) * | 2006-06-30 | 2008-01-17 | Canon Inc | 検索インデックス作成装置及び検索インデックス作成方法 |
US20110055471A1 (en) * | 2009-08-28 | 2011-03-03 | Jonathan Thatcher | Apparatus, system, and method for improved data deduplication |
EP2414926A1 (en) * | 2009-09-18 | 2012-02-08 | Hitachi, Ltd. | Storage system for eliminating duplicated data |
US8156306B1 (en) * | 2009-12-18 | 2012-04-10 | Emc Corporation | Systems and methods for using thin provisioning to reclaim space identified by data reduction processes |
US9223511B2 (en) * | 2011-04-08 | 2015-12-29 | Micron Technology, Inc. | Data deduplication |
-
2013
- 2013-07-11 US US13/939,345 patent/US20140281155A1/en not_active Abandoned
-
2014
- 2014-03-13 TW TW103109141A patent/TWI521425B/zh not_active IP Right Cessation
- 2014-03-13 JP JP2014050312A patent/JP2014179094A/ja active Pending
- 2014-03-14 KR KR1020140030596A patent/KR20140113565A/ko not_active Application Discontinuation
- 2014-03-14 EP EP14160056.9A patent/EP2778890A3/en not_active Withdrawn
- 2014-03-14 CN CN201410165333.XA patent/CN104049911A/zh active Pending
-
2016
- 2016-08-05 JP JP2016154509A patent/JP2016189225A/ja active Pending
Also Published As
Publication number | Publication date |
---|---|
CN104049911A (zh) | 2014-09-17 |
JP2014179094A (ja) | 2014-09-25 |
TW201506769A (zh) | 2015-02-16 |
EP2778890A2 (en) | 2014-09-17 |
KR20140113565A (ko) | 2014-09-24 |
JP2016189225A (ja) | 2016-11-04 |
US20140281155A1 (en) | 2014-09-18 |
EP2778890A3 (en) | 2017-05-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI521425B (zh) | 用於重複資料刪除之系統與方法 | |
CN111433732B (zh) | 存储设备以及由存储设备执行的计算机实现的方法 | |
US8850114B2 (en) | Storage array controller for flash-based storage devices | |
US9996435B2 (en) | Reliability scheme using hybrid SSD/HDD replication with log structured management | |
KR101769883B1 (ko) | 저장부 할당 장치, 시스템, 및 방법 | |
US9304685B2 (en) | Storage array system and non-transitory recording medium storing control program | |
US8683131B2 (en) | Direct memory address for solid-state drives | |
CN111164574A (zh) | 基于存储设备内部地址的冗余编码条带 | |
TW201314464A (zh) | 輸入/輸出裝置及計算主機相互運作 | |
KR20170125178A (ko) | Raid 스토리지 장치 및 그것의 관리 방법 | |
CN111007991B (zh) | 基于nvdimm分离读写请求的方法及其计算机 | |
US11157402B2 (en) | Apparatus and method for managing valid data in memory system | |
US10963160B2 (en) | Apparatus and method for checking valid data in block capable of storing large volume data in memory system | |
US10019315B2 (en) | Control device for a storage apparatus, system, and method of controlling a storage apparatus | |
US10459803B2 (en) | Method for management tables recovery | |
US10942848B2 (en) | Apparatus and method for checking valid data in memory system | |
US10031689B2 (en) | Stream management for storage devices | |
KR102094475B1 (ko) | 멀티-트랜잭션의 아토믹 라이트 방법 | |
US20190042379A1 (en) | Failure detection and data recovery in a storage system | |
KR20230147950A (ko) | 시스템 내 전원 손실 데이터 보호를 위한 장치 및 방법 | |
KR20220086934A (ko) | 비휘발성 메모리 시스템의 저널링 제어 장치 및 방법 | |
US11893269B2 (en) | Apparatus and method for improving read performance in a system | |
US9003261B2 (en) | Memory system | |
EP2924576A1 (en) | Storage control apparatus, control program, and control method | |
EP4246330A1 (en) | Storage device and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |