TW201805800A - 資料儲存系統 - Google Patents

資料儲存系統 Download PDF

Info

Publication number
TW201805800A
TW201805800A TW105125288A TW105125288A TW201805800A TW 201805800 A TW201805800 A TW 201805800A TW 105125288 A TW105125288 A TW 105125288A TW 105125288 A TW105125288 A TW 105125288A TW 201805800 A TW201805800 A TW 201805800A
Authority
TW
Taiwan
Prior art keywords
data
processing unit
address
logical
file
Prior art date
Application number
TW105125288A
Other languages
English (en)
Other versions
TWI610219B (zh
Inventor
曹世強
簡廷芳
張安男
Original Assignee
捷鼎國際股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 捷鼎國際股份有限公司 filed Critical 捷鼎國際股份有限公司
Priority to TW105125288A priority Critical patent/TWI610219B/zh
Application granted granted Critical
Publication of TWI610219B publication Critical patent/TWI610219B/zh
Publication of TW201805800A publication Critical patent/TW201805800A/zh

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本發明提出一種資料儲存系統,資料儲存系統包含記憶體、硬碟及處理單元。記憶體之第一邏輯區塊中之第一邏輯位址及第二邏輯位址對應於一重複資料,且重複資料係儲存於硬碟中之兩實體頁面。於執行去重複命令時,處理單元將重複資料搬移至映射於記憶體之第二邏輯區塊中之第三邏輯位址之一實體頁面,此實體頁面具有第三實體位址,且更新第一映射關係使其提供第一邏輯位址與第三邏輯位址之間的映射關係以及第二邏輯位址與第三邏輯位址之間的映射關係,且處理單元將第三邏輯位址與第三實體位址之映射關係儲存於記憶體。

Description

資料儲存系統
本發明是關於一種資料儲存系統,且特別是具有將重複資料刪除功能之資料儲存系統。
重複資料刪除(data de-duplication)技術是一種數據縮減技術,經常被使用在硬碟中,例如,相同文件之兩或更多相同的複本可能會出現在硬碟中。重複資料刪除的目的是在於將硬碟中之冗餘資料刪除,以釋放儲存空間給其他資料使用。
在習知的重複資料刪除技術中,一般都必須先在記憶體中建立鍵值(key value)之樣本資料庫,並於每筆資料欲寫入硬碟時以中央處理單元(CPU)計算每筆資料之鍵值,且中央處理單元比對鍵值與樣本資料庫中之鍵值樣本,若比對結果為相同就執行去重複程序,若比對結果為不相同則將前述鍵值加入樣本資料庫。故鍵值之樣本資料庫的容量與判斷是否為重複資料之準確度有關。於是,為了提高準確度,增加樣本資料庫之容量來保留所有樣本鍵值將會導致過於耗費記憶體空間,且在較大之樣本資料庫亦造成鍵值樣本之搜尋時間冗長;再者,若使用容量較小的記憶體,當鍵值樣本之數量已達樣本資料庫之上限時,部分之鍵值必定會被捨棄,此時將導致前述之準確度降低。因此,如何在有限的記憶體空間中維持判斷重複資料之準確度實屬當前重要研發課題之一。
再者,習知的重複資料刪除技術經常是在收到來自輸出入裝置之寫入要求時即時地將重複資料刪除,並建立重複資料之位置關係表且將其儲存於揮發性記憶體中,若揮發性記憶體遭遇斷電將導致重複資料關係表遺失而無法重建,若為預防斷電則必須使用非揮發性記憶體,當重複資料的數量眾多時將導致龐大之位置關係表耗費記憶體中大部分的可儲存空間;並且,在每一次發現重複資料之後就必須更新位置關係表亦相當耗費CPU資源。
有鑑於此,本發明提出一種資料儲存系統。
在一些實施例中,資料儲存系統包含記憶體、硬碟及處理單元。記憶體包含第一邏輯區塊及第二邏輯區塊。第一邏輯區塊包含多個邏輯頁面,其中之兩邏輯頁面具有第一邏輯位址及第二邏輯位址,第一邏輯區塊用以儲存第一映射關係,此第一映射關係提供前述第一邏輯位址與第一實體位址之間的映射關係,且第一映射關係提供前述第二邏輯位址與第二實體位址之間的映射關係;第二邏輯區塊包含多個邏輯頁面,其中之一邏輯頁面具有一第三邏輯位址。硬碟包含多個實體頁面,其中之第一實體頁面、第二實體頁面及第三實體頁面分別具有第一實體位址、第二實體位址及第三實體位址,第一實體頁面及第二實體頁面儲存有相同之一重複資料,前述之二重複資料分別對應於第一邏輯位址及第二邏輯位址;處理單元用以執行去重複命令,於執行去重複命令時,處理單元配置第三邏輯位址映射於第三實體位址,處理單元將重複資料儲存於第三實體頁面;並且,處理單元更新第一映射關係,使第一邏輯位址及第二邏輯位址同時映射於第三邏輯位址,且處理單元更將第二映射關係儲存於第二邏輯區塊,第二映射關係提供第三邏輯位址與第三實體位址之間的映射關係。
在一些實施例中,前述之記憶體更包含一鍵值表,處理單元更用以執行一寫入命令及一讀取命令,寫入命令包含一寫入資料,於執行寫入命令時,處理單元不將寫入資料之鍵值加入鍵值表,處理單元判斷寫入資料之鍵值是否存在於鍵值表中;於執行讀取命令時,處理單元不判斷讀取資料之鍵值是否存在於鍵值表中,處理單元將來自硬碟之一讀取資料之鍵值加入鍵值表。
在一些實施例中,前述之硬碟更包含一作業系統,且硬碟具有相容於作業系統之一檔案系統,檔案系統將來自一輸出入裝置之各寫入資料區分為多個檔案屬性及檔案內容,各檔案內容儲存於實體頁面,其中處理單元執行作業系統以比對多個寫入資料中之至少兩者之每一個檔案屬性是否相同以選擇性執行去重複命令。
在一些實施例中,前述之檔案系統提供一檔案指標,檔案指標提供各寫入資料之檔案屬性與檔案內容之間的位置對應關係,若來自輸出入裝置之寫入資料中之至少兩寫入資料之每一檔案屬性均相同時,處理單元根據檔案指標讀取前述至少兩寫入資料之檔案內容,處理單元根據前述至少兩寫入資料之檔案內容計算並比對兩寫入資料的鍵值,以選擇性執行去重複命令。
在一些實施例中,若前述之寫入資料中之至少兩寫入資料之每一檔案屬性均相同時,作業系統產生表示去重複命令之一處理程序識別碼,使處理單元執行去重複命令。
在一些實施例中,前述之作業系統更產生表示資料壓縮程序之另一處理程序識別碼,使處理單元更根據另一處理程序識別碼對各寫入資料進行資料壓縮。
在一些實施例中,於前述之處理單元執行去重複命令之後,處理單元更用以執行一垃圾收集命令,於執行垃圾收集命令時,處理單元將寫入資料儲存於實體頁面中之一第四實體頁面,第四實體頁面具有第四實體位址,且處理單元更新第二映射關係,使第二映射關係提供第三邏輯位址與第四實體位址之間的映射關係。
在一些實施例中,於前述之處理單元接收來自一輸出入裝置於不同時間點發出之多個寫入命令之後,處理單元始執行去重複命令。
在一些實施例中,前述之第一邏輯區塊中之位址可提供使用者進行存取,而前述之第二邏輯區塊不提供使用者進行存取,第二邏輯區塊僅提供系統進行重複資料刪除程序時使用,換言之,對使用者來說,第一邏輯區塊係為可讀寫,而第二邏輯區塊係為唯讀。
在一些實施例中,前述之處理單元將重複資料分別寫入第一實體頁面及第二實體頁面,且記憶體為揮發性記憶體,於一電源供電中斷又恢復供電之後,硬碟中儲存有重複資料與第一邏輯位址及第二邏輯位址之間的對應關係,處理單元根據此對應關係及儲存有重複資料之第一實體位址以及第二實體位址重新建立第一邏輯位址與第一實體位址以及第二邏輯位址與第二實體位址之間的映射關係。
綜上所述,根據本發明之資料儲存系統之一實施例,處理單元係以離線之方式執行去重複化指令,且建立重複資料與實體位址之間的雙層映射關係,可減少邏輯位址與實體位址之映射關係之更新次數而大幅的簡化硬體及軟體在設計上的複雜度,並保持硬碟寫入之順序性,還可在遭遇斷電後將重複資料之位置關係恢復;再者,在檔案層進行重複資料判斷程序可減少硬碟的讀取次數;進一步,於執行寫入命令時有意義的猜測資料重複的可能,可以小容量之資料庫儲存鍵值樣本進而減少比對時間並維持判斷重複資料之準確度。
圖1為根據本發明之資料儲存系統一實施例之方塊示意圖。圖2為圖1之資料儲存系統進行重複資料刪除程序之一實施例之示意圖。請同時參照圖1及圖2,資料儲存系統包含硬碟1、處理單元2及記憶體3。處理單元2耦接記憶體3及硬碟1,以控制硬碟1及記憶體3之操作。資料儲存系統可進行一重複資料判斷程序及一重複資料刪除程序。在一些實施態樣中,記憶體3可為非揮發性(non-volatile)記憶體或揮發性(volatile)記憶體;硬碟1可為固態硬碟(Solid-State Disk;SSD);處理單元2可為中央處理單元、微處理機、微控制器或具有運算與控制功能之特殊應用IC(Application-Specific IC;ASIC)。
硬碟1用以儲存資料,硬碟1包含多個實體頁面,各實體頁面具有實體位址。如圖1所示,圖1示例出多個實體頁面中的七個實體頁面11-17,實體頁面11-17之實體位址分別為「10000」、「10008」、「10016」、「10024」、「10064」、「10160」及「10164」。
記憶體3包含第一邏輯區塊31及第二邏輯區塊32,第一邏輯區塊31及第二邏輯區塊32分別涵蓋記憶體3中不同的位址空間,且包含多個邏輯頁面。舉例來說,以圖1為例,第一邏輯區塊31所涵蓋之位址空間的起始(base)位址係為「100」,而位址之偏移量(offset)為「100」;第二邏輯區塊32所涵蓋之位址空間的起始位址係為「80000」,而位址之偏移量為「100」。於此,圖1示例出第一邏輯區塊31中之四邏輯頁面的邏輯位址分別為「100」、「200」、「300」、「400」,第二邏輯區塊32中之三邏輯頁面的邏輯位址分別為「80000」、「80100」及「80200」。在一些實施態樣中,第一邏輯區塊31及第二邏輯區塊32所分別涵蓋的位址空間係為可變的,可藉由靜態分配或是由處理單元2根據當時記憶體空間分配狀況來進行動態分配,以決定第一邏輯區塊31及第二邏輯區塊32之位址空間。並且,第一邏輯區塊31及第二邏輯區塊32中之邏輯位址可為邏輯頁碼(logical page number),而硬碟1之實體位址可為實體頁碼(physical page number)。
第一邏輯區塊31用以儲存一映射關係(為方便描述,以下稱為第一映射關係)。第一映射關係提供第一邏輯區塊31中的邏輯位址與硬碟1之實體位址之間之映射。如圖1所示,第一映射關係可使邏輯位址「100」、「200」、「300」、「400」分別映射至實體位址「10000」、「10008」、「10016」、「10024」。圖1中亦以表格T1呈現第一映射關係。在一些實施態樣中,以前述之邏輯位址及實體位址分別為邏輯頁碼及實體頁碼為例,實體頁碼可儲存於邏輯頁面中使邏輯頁碼可映射至實體頁碼。
其中,值得注意的是,第一邏輯區塊31中之位址可提供使用者進行存取,第二邏輯區塊32則僅提供系統進行重複資料刪除程序時使用而不提供使用者進行存取。基此,當使用者操作輸出入(I/O)裝置而產生寫入需求時,處理單元2執行來自輸出入裝置之多個寫入命令,各寫入命令包含寫入資料及對應寫入資料之邏輯位址。舉例來說,寫入資料可為「A」、「B」、「C」、「A」且分別對應於第一邏輯區塊31中之邏輯位址「100」、「200」、「300」、「400」。其中,雖然寫入資料「A」係為重複資料,但處理單元2並不立即執行去重複命令,處理單元2依據第一映射關係將寫入資料「A」、「B」、「C」、「A」分別寫入實體頁面11、 12、13、14。在將四個寫入資料寫入硬碟1之後,處理單元2執行來自輸出入裝置之其他寫入命令,處理單元2亦依據第一映射關係將其他寫入資料寫入硬碟1中的其他實體頁面。由圖1中亦可得知,重複資料「A」對應於兩邏輯位址「200」、「400」(以下分別稱為第一邏輯位址及第二邏輯位址)。
待處理單元2執行去重複命令時,根據硬碟1中重複資料的數量,處理單元2配置第二邏輯區塊32中相應數量之邏輯位址,且配置前述邏輯位址一對一映射於硬碟1中之實體位址。舉例來說,若處理單元2欲對硬碟1中之四個重複資料進行去重複,則處理單元2可配置第二邏輯區塊32中之四個邏輯位址,且四個邏輯位址分別一對一映射於一實體位址。以一個重複資料為寫入資料「A」為例,在重複資料刪除程序中,處理單元2可配置第二邏輯區塊32之一邏輯位址(以下稱為第三邏輯位址)例如「80100」映射於實體位址「10064」。接著,如圖2所示,處理單元2將重複資料之寫入資料「A」寫入實體位址為「10064」之實體頁面15。此時,寫入資料A於硬碟1中的儲存位置已改變。於是,如圖2所示,處理單元2更新第一映射關係,使第一映射關係中之第一邏輯位址「200」映射至第三邏輯位址「80100」,且使第二邏輯位址「400」映射至第三邏輯位址「80100」(圖2中之表格T1呈現更新後之第一映射關係);並且,處理單元2將可表示第三邏輯位址「80100」映射於實體位址「10064」之一映射關係(以下稱為第二映射關係)儲存於第二邏輯區塊32(圖2中亦以表格T2呈現第二映射關係)。於此,在處理單元2執行去重複命令之後,第一邏輯位址及第二邏輯位址不再直接映射至實體位址,第一邏輯位址及第二邏輯位址係經由第一映射關係先映射至第二邏輯區塊32再藉由第三邏輯位址與實體位址之直接映射關係而間接映射至實體位址。
同理,倘若硬碟1中另一些實體頁面中亦儲存有另一重複資料,且此另一重複資料對應於第一邏輯區塊31中之多個邏輯位址,例如三個邏輯位址(以下稱為第四邏輯位址、第五邏輯位址及第六邏輯位址),則處理單元2配置第二邏輯區塊32中之另一邏輯位址(以下稱為第七邏輯位址)一對一映射於硬碟1之一實體位址,例如「10164」,並將前述之另一重複資料儲存於實體位址為「10164」之實體頁面17,並更新第一映射關係且將第七邏輯位址與實體位址「10164」之間之一對一映射關係加入第二映射關係,使第四邏輯位址、第五邏輯位址及第六邏輯位址可藉由第二邏輯區塊32中之第七邏輯位址映射至實體位址「10164」。於此,處理單元2可重複上述步驟對硬碟1中之所有重複資料進行搬移。
在處理單元2執行寫入命令之後,由於處理單元2係將兩重複資料「A」分別寫入實體頁面12、14,因此,在一些實施態樣中,若記憶體3為揮發性記憶體,假設電源供電中斷,導致記憶體3中的資料消失而失去第一邏輯區塊31中所儲存的第一映射關係,在電源恢復供電使資料儲存系統復電之後,原第一映射關係可藉由各個寫入資料於硬碟1中的儲存位置以及各個寫入資料與邏輯位址之間的對應關係而被重新建立。舉例來說,硬碟1中儲存有寫入資料「B」、「A」、「C」、「A」與邏輯位址「100」、「200」、「300」、「400」之對應關係,故邏輯位址「100」與實體位址「10000」之映射關係可根據寫入資料「B」儲存於實體頁面11而被重新建立;邏輯位址「200」與實體位址「10008」之映射關係可根據寫入資料「A」儲存於實體頁面12而被重新建立;邏輯位址「300」與實體位址「10016」之映射關係可根據寫入資料「C」儲存於實體頁面13而被重新建立;邏輯位址「400」與實體位址「10024」之映射關係可根據寫入資料「A」儲存於實體頁面14而被重新建立。於是,相較於先前技術,若在寫入資料儲存於實體頁面之後即遭遇斷電,則對應於重複資料之邏輯位址與實體位址之間的映射關係亦可在復電之後被重新建立。
在一些實施態樣中,在執行來自輸出入單元之不同時間點之多個寫入命令之後(即,處理單元2係以後置處理(post-processing)之方式執行去重複命令),處理單元2始進行重複資料判斷並將重複資料進行搬移。並且,在重複資料所對應之邏輯位址與實體位址之間之映射關係儲存於記憶體3之後,處理單元2始將實體頁面12、14中之寫入資料「A」刪除而保留實體頁面16中之寫入資料「A」。若為預防刪除重複資料後可能遭遇斷電之狀況,在本實施態樣中,記憶體3可為非揮發性記憶體以記憶重複資料所對應之邏輯位址與實體位址之間之映射關係。
圖3為圖1之資料儲存系統進行垃圾收集(garbage collection)程序之一實施例之示意圖。在一些實施態樣中,資料儲存系統亦可執行垃圾收集程序。於處理單元2執行完去重複命令之後,若硬碟1的可儲存空間低於臨界值(或達成自設定之執行垃圾收集的條件)時,例如硬碟1之可儲存空間剩餘20%,此時處理單元2可執行垃圾收集命令。以處理單元2欲對寫入資料「A」進行垃圾收集為例,請參照圖3,處理單元2可將寫入資料「A」搬移至其他實體頁面中,例如,實體頁面16。於是,由於寫入資料A的儲存位置已改變,處理單元2更新第二映射關係,使第二映射關係中之第一邏輯位址「80100」映射至實體位址「10160」。處理單元2可對其他寫入資料進行搬移動作並更新第二映射關係以完成垃圾收集。
圖4為圖1之處理單元2於執行讀取命令之一實施例之示意圖。圖5為圖1之處理單元2於執行讀取命令之一實施例之示意圖。在一些實施態樣中,資料儲存系統在進行重複資料刪除程序前先進行重複資料判斷程序,處理單元2將資料之鍵值(或稱為指紋)與鍵值之樣本值進行比對以判斷出重複資料。於此,請同時參照圖4及圖5,資料儲存系統更可包含一記憶體6,且記憶體6中儲存有一鍵值表61,如圖4及圖5所示,鍵值表61包含多個樣本值,例如16進制表示法中之9a4d、 1d4e及2be5,處理單元2可將鍵值加入鍵值表61中以作為樣本值。再者,根據使用者對硬碟1的存取動作,重複資料經常是發生於硬碟1進行資料複製時,而資料複製包含硬碟1之讀取動作及晚於讀取動作之寫入動作。倘若於前一時間點自硬碟1中所讀取出的讀取資料與後一時間點欲寫入硬碟1之寫入資料相同,則表示於寫入動作發生之前,欲寫入硬碟1之寫入資料已存在於硬碟1中,故伴隨寫入動作之寫入資料即為重複資料。因此,鍵值表61中僅需涵蓋複製動作中被讀取之讀取資料之鍵值而不需要涵蓋硬碟1中所有已存資料的鍵值,記憶體6可為較小容量之記憶體。在一些實施態樣中,記憶體6可為快取(cache)記憶體。
如圖4所示,於執行讀取命令時,處理單元2可計算來自硬碟1之讀取資料R1之鍵值K1,並將鍵值K1加入鍵值表61中,此時處理單元2並不判斷鍵值K1是否存在於鍵值表61中。如圖5所示,在執行寫入命令時,處理單元2計算寫入資料W1之鍵值,此時處理單元2不將寫入資料W1之鍵值加入鍵值表61而是讀取鍵值表61比對鍵值之樣本值K2與寫入資料W1之鍵值是否相同以判斷寫入資料W1之鍵值是否存在於鍵值表61中。於寫入資料W1與讀取資料R1相同的情況中(即,寫入資料W1為重複資料),在寫入動作發生時,處理單元2比對寫入資料W1的鍵值與樣本值會發現寫入資料W1的鍵值與樣本值相同,即表示寫入資料W1與讀取資料R1相同而為重複資料。相較於先前技術,由於資料複製動作中之讀取動作與寫入動作的時間點接近,在樣本值被丟棄之前,處理單元2就會進行重複資料之判斷(即,比對樣本值與寫入資料W1之鍵值)。因此,即便可儲存樣本值之記憶體空間較小,處理單元2仍可進行重複資料之判斷而可節省記憶體空間,且在較小之記憶體空間中搜尋樣本值可節省樣本值之搜尋時間。在一些實施態樣中,可以訊息摘要演算法(Message-Digest algorithm 5;MD5)或安全散列演算法(Secure Hash Algorithm;SHA)計算寫入資料及讀取資料之雜湊值來作為鍵值。
圖6為圖1之資料儲存系統之另一實施態樣之示意圖。在一些實施態樣中,請參照圖6,硬碟1中可儲存有作業系統19,作業系統19可為Windows、Unix或Linux系統,且硬碟1具有相容於作業系統19之一檔案系統(file system)18,例如前述之Windows系統常用的檔案配置表(File Allocation Table;FAT)新型技術檔案系統(New Technology File System;NTFS),或是Unix及Linux系統常用的擴充套件檔案系統(Extended file system;EXT) 2/3/4。檔案系統18將來自輸出入裝置之每一寫入資料區分為兩部分,一部分為寫入資料的檔案屬性,例如,寫入資料的存取時間、檔名、檔案大小及檔案型態,另一部分為寫入資料的檔案內容,例如表示前述之英文字母「A」、「B」、「C」之檔案內容。並且,檔案系統18將硬碟1的儲存空間規劃為兩區(以下稱為第一區及第二區),第一區即為實體頁面11-17所涵蓋的位址空間,第一區係用以儲存寫入資料的檔案內容,而第二區主要是用來儲存寫入資料的檔案屬性。於此,如圖6所示,作業系統19及檔案系統18屬於檔案層(file-layer)4,而處理單元2、兩記憶體3、6則屬於區塊層(block-layer)5,處理單元2可執行作業系統19以比對寫入資料的檔案屬性,並藉由判斷寫入資料的檔案屬性是否相同來判斷寫入資料中是否包含重複資料,以選擇性執行去重複命令。
舉例來說,若兩寫入資料的檔案屬性不相同,表示兩寫入資料並非重複資料,則處理單元2不執行去重複命令;反之,若兩寫入資料的檔名、檔案大小及建立時間均一致,則表示兩寫入資料中有很高的機率包含重複資料,此時,處理單元2可進一步比對兩寫入資料之鍵值而毋須將兩寫入資料之鍵值與全部之樣本值進行比對。倘若比對結果係表示兩寫入資料之鍵值相同,則處理單元2執行去重複命令。
進一步,硬碟1中之第一區更可儲存有一檔案指標,檔案指標提供每一檔案屬性與每一檔案內容之間的位置對應關係。當兩寫入資料的檔案屬性相同時,處理單元2根據檔案指標至實體頁面分別讀取具有相同檔案屬性之兩寫入資料的檔案內容,以進一步藉由兩檔案內容來確認兩寫入資料的鍵值是否相同,以選擇性執行去重複命令。
在另一些實施態樣中,當兩寫入資料之檔案屬性相同時,作業系統19可發出表示去重複命令之處理程序識別碼(Process Identifier;PID),使處理單元2根據處理程序識別碼來執行去重複命令。在另一些實施例中,處理程序識別碼亦可應用於資料壓縮技術,也就是說,當進行資料壓縮之條件達成時,作業系統19可發出表示資料壓縮程序之處理程序識別碼,使處理單元2可根據處理程序識別碼來對硬碟1中的寫入資料進行資料壓縮。
在一些實施態樣中,處理單元2自硬碟1讀取出兩寫入資料的檔案內容之後,處理單元2將兩檔案內容分別進行切割。如圖7所示,兩檔案內容分別為檔案內容A及檔案內容B,而檔案內容A、B分別被切割為5個部分,處理單元2計算檔案內容A之各部分的鍵值以產生「key1」、「key2」、「key3」、「key4」及「key 5」,且處理單元2計算檔案內容B之各部分的鍵值以產生「key6」、「key7」、「key8」、「key9」及「key10」,且處理單元2將「key1」與「key6」進行比對,將「key2」與「key7」進行比對,將「key3」與「key8」進行比對,將「key4」與「key9」進行比對,並將「key5」與「key10」進行比對;若任一比對結果為不相同即表示前述之兩寫入資料並非重複資料。若每一比對結果為相同即表示兩寫入資料中包含重複資料。
綜上所述,根據本發明之資料儲存系統之一實施例,處理單元係以離線之方式執行去重複化指令,且建立重複資料與實體位址之間的雙層映射關係,可減少邏輯位址與實體位址之映射關係之更新次數而大幅的簡化硬體及軟體在設計上的複雜度,並保持硬碟寫入之順序性,還可在遭遇斷電後將重複資料之位置關係恢復;再者,在檔案層進行重複資料判斷程序可減少硬碟的讀取次數;進一步,於執行寫入命令時有意義的猜測資料重複的可能,可以小容量之資料庫儲存鍵值樣本進而減少比對時間並維持判斷重複資料之準確度。
雖然本發明已以實施例揭露如上然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,故本發明之保護範圍當視後附之專利申請範圍所界定者為準。
1‧‧‧硬碟
11-17‧‧‧實體頁面
19‧‧‧作業系統
18‧‧‧檔案系統
2‧‧‧處理單元
3‧‧‧記憶體
31‧‧‧第一邏輯區塊
32‧‧‧第二邏輯區塊
4‧‧‧檔案層
5‧‧‧區塊層
6‧‧‧記憶體
61‧‧‧鍵值表
T1、T2‧‧‧表格
A、B‧‧‧檔案內容
W1‧‧‧寫入資料
R1‧‧‧讀取資料
K1、K2‧‧‧鍵值
[圖1] 為根據本發明之資料儲存系統一實施例之方塊示意圖。 [圖2] 為圖1之資料儲存系統進行重複資料刪除程序之一實施例之示意圖。 [圖3] 為圖1之資料儲存系統進行垃圾收集程序之一實施例之示意圖。 [圖4] 為圖1之處理單元於執行讀取命令之一實施例之示意圖。 [圖5] 為圖1之處理單元於執行寫入命令之一實施例之示意圖。 [圖6] 為圖1之資料儲存系統之另一實施態樣之示意圖。 [圖7] 為圖1之處理單元所比對之兩檔案內容之一實施態樣之示意圖。
1‧‧‧硬碟
11-17‧‧‧實體頁面
2‧‧‧處理單元
3‧‧‧記憶體
31‧‧‧第一邏輯區塊
32‧‧‧第二邏輯區塊
T1‧‧‧表格

Claims (10)

  1. 一種資料儲存系統,包含: 一記憶體,包含: 一第一邏輯區塊,包含多個邏輯頁面,該些邏輯頁面中之兩邏輯頁面具有一第一邏輯位址及一第二邏輯位址,該第一邏輯區塊用以儲存一第一映射關係,該第一映射關係提供該第一邏輯位址與一第一實體位址之間的映射關係,且該第一映射關係提供該第二邏輯位址與一第二實體位址之間的映射關係;及 一第二邏輯區塊,包含多個邏輯頁面,該些邏輯頁面中之一邏輯頁面具有一第三邏輯位址; 一硬碟,包含多個實體頁面,該些實體頁面中之一第一實體頁面、一第二實體頁面及一第三實體頁面分別具有該第一實體位址、該第二實體位址及一第三實體位址,該第一實體頁面及該第二實體頁面儲存有相同之一重複資料,該二重複資料分別對應於該第一邏輯位址及該第二邏輯位址;及 一處理單元,用以執行一去重複命令,於執行該去重複命令時,該處理單元配置該第三邏輯位址映射於該第三實體位址,該處理單元將該重複資料儲存於該第三實體頁面;並且,該處理單元更新該第一映射關係,使該第一邏輯位址及該第二邏輯位址同時映射於該第三邏輯位址,且該處理單元更將一第二映射關係儲存於該第二邏輯區塊,該第二映射關係提供該第三邏輯位址與該第三實體位址之間的映射關係。
  2. 如請求項1所述之資料儲存系統,更包含另一記憶體,用以儲存一鍵值表,該處理單元更用以執行一寫入命令及一讀取命令,該寫入命令包含一寫入資料,於執行該寫入命令時,該處理單元不將該寫入資料之鍵值加入該鍵值表,該處理單元判斷該寫入資料之鍵值是否存在於該鍵值表中;於執行該讀取命令時,該處理單元不判斷該讀取資料之鍵值是否存在於該鍵值表中,該處理單元將來自該硬碟之一讀取資料之鍵值加入該鍵值表。
  3. 如請求項1所述之資料儲存系統,其中該硬碟更包含一作業系統,且該硬碟具有相容於該作業系統之一檔案系統,該檔案系統將來自一輸出入裝置之各寫入資料區分為多個檔案屬性及一檔案內容,各該檔案內容儲存於該些實體頁面,其中該處理單元執行該作業系統以比對該些寫入資料中之至少兩寫入資料之每一該檔案屬性是否相同以選擇性執行該去重複命令。
  4. 如請求項3所述之資料儲存系統,其中該檔案系統提供一檔案指標,該檔案指標提供各該寫入資料之每一該檔案屬性與該檔案內容之間的位置對應關係,若來自該輸出入裝置之該些寫入資料中之至少兩寫入資料之每一該檔案屬性均相同時,該處理單元根據該檔案指標讀取該至少兩寫入資料之檔案內容,該處理單元根據該至少兩寫入資料之檔案內容計算並比對該至少兩寫入資料的鍵值,以選擇性執行該去重複命令。
  5. 如請求項3所述之資料儲存系統,其中,若該些寫入資料中之至少兩寫入資料之每一該檔案屬性均相同時,該作業系統產生表示該去重複命令之一處理程序識別碼,使該處理單元執行該去重複命令。
  6. 如請求項5所述之資料儲存系統,其中該作業系統更產生表示資料壓縮程序之另一處理程序識別碼,使該處理單元更根據該另一處理程序識別碼對各該寫入資料進行資料壓縮。
  7. 如請求項1所述之資料儲存系統,其中於該處理單元執行該去重複命令之後,該處理單元更用以執行一垃圾收集命令,於執行該垃圾收集命令時,該處理單元將該寫入資料儲存於該些實體頁面中之一第四實體頁面,該第四實體頁面具有一第四實體位址,且該處理單元更新該第二映射關係,使該第二映射關係提供該第三邏輯位址與該第四實體位址之間的映射關係。
  8. 如請求項1所述之資料儲存系統,其中,於該處理單元接收來自一輸出入裝置於不同時間點發出之多個寫入命令之後,該處理單元始執行該去重複命令。
  9. 如請求項1所述之資料儲存系統,其中該第一邏輯區塊係為可讀寫,該第二邏輯區塊係為唯讀。
  10. 如請求項1所述之資料儲存系統,其中該處理單元將該重複資料分別寫入該第一實體頁面及該第二實體頁面,該記憶體為揮發性記憶體,於一電源供電中斷又恢復供電之後,該硬碟中儲存有該重複資料與該第一邏輯位址及該第二邏輯位址之間的一對應關係,該處理單元根據該對應關係及分別儲存該重複資料之該第一實體位址以及該第二實體位址重新建立該第一邏輯位址與該第一實體位址以及該第二邏輯位址與該第二實體位址之間的映射關係。
TW105125288A 2016-08-09 2016-08-09 資料儲存系統 TWI610219B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
TW105125288A TWI610219B (zh) 2016-08-09 2016-08-09 資料儲存系統

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105125288A TWI610219B (zh) 2016-08-09 2016-08-09 資料儲存系統

Publications (2)

Publication Number Publication Date
TWI610219B TWI610219B (zh) 2018-01-01
TW201805800A true TW201805800A (zh) 2018-02-16

Family

ID=61728464

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105125288A TWI610219B (zh) 2016-08-09 2016-08-09 資料儲存系統

Country Status (1)

Country Link
TW (1) TWI610219B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI721660B (zh) * 2019-11-22 2021-03-11 財團法人工業技術研究院 控制資料讀寫裝置與方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007081598A2 (en) * 2005-10-27 2007-07-19 Sandisk Corporation Adaptive handling data writes in non-volatile memories
TWI417722B (zh) * 2007-01-26 2013-12-01 Hicamp Systems Inc 階層式不可改變的內容可定址的記憶體處理器
US9183133B2 (en) * 2007-11-28 2015-11-10 Seagate Technology Llc System, method, and computer program product for increasing spare space in memory to extend a lifetime of the memory
US8862876B2 (en) * 2010-11-09 2014-10-14 International Business Machines Corporation Method and system for deleting data
US9223511B2 (en) * 2011-04-08 2015-12-29 Micron Technology, Inc. Data deduplication
US9229853B2 (en) * 2011-12-20 2016-01-05 Intel Corporation Method and system for data de-duplication
US20150032982A1 (en) * 2013-07-26 2015-01-29 Fusion-Io, Inc. Systems and methods for storage consistency

Also Published As

Publication number Publication date
TWI610219B (zh) 2018-01-01

Similar Documents

Publication Publication Date Title
US20210157523A1 (en) Storage system
US10430286B2 (en) Storage control device and storage system
US9910620B1 (en) Method and system for leveraging secondary storage for primary storage snapshots
US10055420B1 (en) Method to optimize random IOS of a storage device for multiple versions of backups using incremental metadata
US10108356B1 (en) Determining data to store in retention storage
US9141621B2 (en) Copying a differential data store into temporary storage media in response to a request
US20240248651A1 (en) Data structure storage and data management
US9606729B2 (en) Apparatus and method for insertion and deletion in multi-dimensional to linear address space translation
US9514138B1 (en) Using read signature command in file system to backup data
US8539148B1 (en) Deduplication efficiency
US10565125B2 (en) Virtual block addresses
US9740422B1 (en) Version-based deduplication of incremental forever type backup
CN107704466B (zh) 数据储存系统
US10437682B1 (en) Efficient resource utilization for cross-site deduplication
US20220004461A1 (en) Efficient export of snapshot changes in a storage system
US10409520B1 (en) Replication of content-based storage using address space slices
US10776321B1 (en) Scalable de-duplication (dedupe) file system
JP6094267B2 (ja) ストレージシステム
US9996426B1 (en) Sparse segment trees for high metadata churn workloads
US11841826B2 (en) Embedded reference counts for file clones
US10503697B1 (en) Small file storage system
US11144202B2 (en) Volume management apparatus, volume management method, and volume management program
CN115004147A (zh) 利用去重的主存储
CN111007990B (zh) 一种对快照系统中数据块引用进行快速定位的定位方法
CN113535670A (zh) 一种虚拟化资源镜像存储系统及其实现方法