TW202137027A - Data storage system and global deduplication method thereof - Google Patents
Data storage system and global deduplication method thereof Download PDFInfo
- Publication number
- TW202137027A TW202137027A TW110105608A TW110105608A TW202137027A TW 202137027 A TW202137027 A TW 202137027A TW 110105608 A TW110105608 A TW 110105608A TW 110105608 A TW110105608 A TW 110105608A TW 202137027 A TW202137027 A TW 202137027A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- representative value
- erasure
- data block
- value
- Prior art date
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
本發明是有關於一種資料儲存技術,且特別是有關於一種資料儲存系統及其全域去重複方法。The present invention relates to a data storage technology, and particularly relates to a data storage system and its global deduplication method.
分散式儲存系統(資料儲存系統)包括多個物件儲存裝置(object storage device)。這些物件儲存裝置可以經由通訊網路而彼此連接,其中所述通訊網路包括區域網路以及(或是)網際網路。多個使用者裝置可以通過網路而將資料儲存於分散式儲存系統。無論如何,儲存於分散式儲存系統中的資料可能有重複。為了將大量資料更有效地存儲在分散式儲存系統中,需要一種資料縮減技術,例如去重複(deduplication)技術。去重複技術可以消除重複資料的副本,以降低儲存資料量。The distributed storage system (data storage system) includes multiple object storage devices. These object storage devices can be connected to each other via a communication network, where the communication network includes a local area network and/or the Internet. Multiple user devices can store data in a distributed storage system via the network. In any case, the data stored in the distributed storage system may be duplicated. In order to store a large amount of data more effectively in a distributed storage system, a data reduction technology, such as deduplication, is needed. Deduplication technology can eliminate duplicates of duplicate data to reduce the amount of stored data.
分散式儲存系統的一個範例是Ceph。公知的Ceph是一種開源軟體儲存平台(open-source software storage platform),其將物件儲存實施在單個分散式計算機群(distributed computer cluster)。由於分散式儲存系統的資料處理過程和附加的元資料(metadata)管理,分散式儲存系統很難進行全域去重複。例如,Ceph沒有支持全域去重複。An example of a distributed storage system is Ceph. The well-known Ceph is an open-source software storage platform that implements storage of objects in a single distributed computer cluster. Due to the data processing process and additional metadata management of the distributed storage system, it is difficult for the distributed storage system to perform global deduplication. For example, Ceph does not support global deduplication.
須注意的是,「先前技術」段落的內容是用來幫助了解本發明。在「先前技術」段落所揭露的部份內容(或全部內容)可能不是所屬技術領域中具有通常知識者所知道的習知技術。在「先前技術」段落所揭露的內容,不代表該內容在本發明申請前已被所屬技術領域中具有通常知識者所知悉。It should be noted that the content of the "prior art" paragraph is used to help understand the present invention. Part of the content (or all of the content) disclosed in the "Prior Art" paragraph may not be the conventional technology known to those with ordinary knowledge in the technical field. The content disclosed in the "prior art" paragraph does not mean that the content has been known to those with ordinary knowledge in the technical field before the application of the present invention.
本發明提供一種資料儲存系統及其全域去重複方法,其可以在分散式儲存環境中有效去重複。The present invention provides a data storage system and a global deduplication method thereof, which can effectively deduplication in a distributed storage environment.
在本發明的一實施例中,上述的資料儲存系統包括多個儲存裝置以及一個分派裝置。這些儲存裝置適於耦接至通訊網路。分派裝置適於接收資料寫請求。分派裝置被配置為將資料寫請求所對應的原資料切割為至少一個資料塊。分派裝置對在所述至少一個資料塊中的一個目前資料塊進行摘要計算,以產生目前資料塊所對應的代表值。分派裝置對代表值進行第一分佈計算,以決定代表值所對應的目的位置。分派裝置依照目的位置而通過通訊網路將目前資料塊與代表值傳輸至這些儲存裝置中的至少一個目的儲存裝置。所述至少一個目的儲存裝置檢查代表值,以決定是否將目前資料塊存入所述至少一個目的儲存裝置的儲存空間中。In an embodiment of the present invention, the aforementioned data storage system includes a plurality of storage devices and a dispatch device. These storage devices are suitable for coupling to a communication network. The dispatching device is adapted to receive data write requests. The dispatching device is configured to cut the original data corresponding to the data write request into at least one data block. The allocating device performs summary calculation on a current data block in the at least one data block to generate a representative value corresponding to the current data block. The allocating device performs a first distribution calculation on the representative value to determine the destination location corresponding to the representative value. The dispatching device transmits the current data block and the representative value to at least one of the storage devices through the communication network according to the destination location. The at least one destination storage device checks the representative value to determine whether to store the current data block in the storage space of the at least one destination storage device.
在本發明的一實施例中,上述的一種全域去重複方法包括:由分派裝置接收資料寫請求;由分派裝置將資料寫請求所對應的原資料切割為至少一個資料塊;由分派裝置對在所述至少一個資料塊中的一個目前資料塊進行摘要計算,以產生目前資料塊所對應的代表值;由分派裝置對代表值進行第一分佈計算,以決定代表值所對應的目的位置;由分派裝置依照目的位置而通過通訊網路將目前資料塊與代表值傳輸至多個儲存裝置中的至少一個目的儲存裝置;以及由所述至少一個目的儲存裝置檢查代表值,以決定是否將目前資料塊存入所述至少一個目的儲存裝置的儲存空間中。In an embodiment of the present invention, the aforementioned global deduplication method includes: receiving a data write request by a dispatching device; cutting the original data corresponding to the data writing request into at least one data block by the dispatching device; A current data block in the at least one data block performs summary calculation to generate a representative value corresponding to the current data block; the dispatching device performs a first distribution calculation on the representative value to determine the destination location corresponding to the representative value; The dispatching device transmits the current data block and the representative value to at least one destination storage device among the plurality of storage devices through the communication network according to the destination location; and the at least one destination storage device checks the representative value to determine whether to store the current data block Into the storage space of the at least one destination storage device.
基於上述,本發明諸實施例所述資料儲存系統及其全域去重複方法可以被應用於分散式儲存系統。分派裝置可以產生目前資料塊所對應的代表值,以及依據代表值決定目的位置。依照所述目的位置,分派裝置可以通過通訊網路(例如區域網路或是其他網路)將目前資料塊與代表值傳輸至多個儲存裝置中的至少一個目的儲存裝置。也就是說,相同的資料塊會被傳送至相同的儲存裝置。所述目的儲存裝置可以檢查代表值,以決定是否將目前資料塊存入其本地的儲存空間中。因此,所述資料儲存系統可以在分散式儲存環境中有效去重複。Based on the above, the data storage system and its global deduplication method described in the embodiments of the present invention can be applied to a distributed storage system. The dispatch device can generate the representative value corresponding to the current data block, and determine the destination location based on the representative value. According to the destination location, the allocating device can transmit the current data block and representative value to at least one destination storage device among the multiple storage devices through a communication network (such as a local area network or other network). In other words, the same data block will be sent to the same storage device. The destination storage device can check the representative value to determine whether to store the current data block in its local storage space. Therefore, the data storage system can effectively de-duplicate in a distributed storage environment.
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。In order to make the above-mentioned features and advantages of the present invention more comprehensible, the following specific embodiments are described in detail in conjunction with the accompanying drawings.
在本案說明書全文(包括申請專利範圍)中所使用的「耦接(或連接)」一詞可指任何直接或間接的連接手段。舉例而言,若文中描述第一裝置耦接(或連接)於第二裝置,則應該被解釋成該第一裝置可以直接連接於該第二裝置,或者該第一裝置可以透過其他裝置或某種連接手段而間接地連接至該第二裝置。本案說明書全文(包括申請專利範圍)中提及的「第一」、「第二」等用語是用以命名元件(element)的名稱,或區別不同實施例或範圍,而並非用來限制元件數量的上限或下限,亦非用來限制元件的次序。另外,凡可能之處,在圖式及實施方式中使用相同標號的元件/構件/步驟代表相同或類似部分。不同實施例中使用相同標號或使用相同用語的元件/構件/步驟可以相互參照相關說明。The term "coupling (or connection)" used in the full text of the description of this case (including the scope of the patent application) can refer to any direct or indirect connection means. For example, if it is described in the text that the first device is coupled (or connected) to the second device, it should be interpreted as that the first device can be directly connected to the second device, or the first device can be connected through other devices or some This kind of connection means is indirectly connected to the second device. The terms "first" and "second" mentioned in the full text of the description of this case (including the scope of the patent application) are used to name the element (element), or to distinguish different embodiments or ranges, and are not used to limit the number of elements The upper or lower limit of is not used to limit the order of components. In addition, wherever possible, elements/components/steps with the same reference numbers in the drawings and embodiments represent the same or similar parts. Elements/components/steps that use the same reference numerals or use the same terms in different embodiments may refer to related descriptions.
圖1是依照本發明的一實施例的一種資料儲存系統100的電路方塊(circuit block)示意圖。使用者裝置10可以通過通訊網路20發出資料寫請求、資料讀請求以及(或是)其他請求至資料儲存系統100。資料儲存系統100可以通過通訊網路20提供雲端儲存服務給一個或多個使用者裝置10。所述使用者裝置10可以是手機、平板電腦、筆記型電腦、個人電腦以及(或是)其他電子裝置。所述通訊網路20可以包含區域網路、網際網路以及(或是)其他通訊網路。FIG. 1 is a schematic diagram of a circuit block of a
在圖1所示實施例中,資料儲存系統100包括分派裝置110、儲存裝置120_1、儲存裝置120_2、儲存裝置120_3、儲存裝置120_4、儲存裝置120_5、…、儲存裝置120_n。分派裝置110與儲存裝置120_1~120_n適於耦接至通訊網路20。儲存裝置120_1~120_n的數量n可以依照設計需求來決定。舉例來說,在某一個實施例中,所述數量n可以為2。In the embodiment shown in FIG. 1, the
儲存裝置120_1~120_n可以是互為獨立的多個電子設備。依照設計需求,這些儲存裝置120_1~120_n的任何一個可以是個人電腦、工作站、伺服器、網路附加儲存(network attached storage,NAS)設備以及(或是)其他電子設備。依照設計需求,在一些實施例中,分派裝置110可以是獨立於儲存裝置120_1~120_n的另一個電子設備,而分派裝置110可以是個人電腦、工作站、伺服器、NAS設備以及(或是)其他電子設備。在另一些實施例中,這些儲存裝置120_1~120_n中的至少一個可以被選用做為分派裝置110。The storage devices 120_1 to 120_n may be multiple electronic devices independent of each other. According to design requirements, any of these storage devices 120_1 to 120_n can be a personal computer, a workstation, a server, a network attached storage (NAS) device, and/or other electronic devices. According to design requirements, in some embodiments, the
依照不同的設計需求,上述分派裝置110以及(或是)儲存裝置120_1~120_n的方塊的實現方式可以是硬體(hardware)、韌體(firmware)、軟體(software,即程式)或是前述三者中的多者的組合形式。以硬體形式而言,上述分派裝置110以及(或是)儲存裝置120_1~120_n的方塊的相關功能可以被實現於一或多個控制器、微控制器、微處理器、特殊應用積體電路(Application-specific integrated circuit, ASIC)、數位訊號處理器(digital signal processor, DSP)、場可程式邏輯閘陣列(Field Programmable Gate Array, FPGA)及/或其他處理單元中的各種邏輯區塊、模組和電路。According to different design requirements, the implementation of the blocks of the
以軟體形式及/或韌體形式而言,上述分派裝置110以及(或是)儲存裝置120_1~120_n的相關功能可以被實現為編程碼(programming codes)。例如,利用一般的編程語言(programming languages,例如C、C++或組合語言)或其他合適的編程語言來實現上述分派裝置110以及(或是)儲存裝置120_1~120_n。所述編程碼可以被記錄/存放在記錄媒體中。在一些實施例中,所述記錄媒體例如包括唯讀記憶體(Read Only Memory,ROM)、存儲裝置以及(或是)隨機存取記憶體(Random Access Memory,RAM)。在另一些實施例中,所述記錄媒體可以包括「非臨時的電腦可讀取媒體(non-transitory computer readable medium)」。舉例來說,帶(tape)、碟(disk)、卡(card)、半導體記憶體、可程式設計的邏輯電路等可以被使用來實現所述非臨時的電腦可讀取媒體。電腦、中央處理器(Central Processing Unit,CPU)、控制器、微控制器或微處理器可以從所述記錄媒體中讀取並執行所述編程碼,從而實現上述分派裝置110以及(或是)儲存裝置120_1~120_n的相關功能。而且,所述編程碼也可經由任意傳輸媒體(通信網路或廣播電波等)而提供給所述電腦(或CPU)。所述通信網路例如是網際網路(Internet)、有線通信(wired communication)、無線通信(wireless communication)或其它通信介質。In terms of software form and/or firmware form, the related functions of the
圖2是依照本發明的另一實施例的一種資料儲存系統200的電路方塊示意圖。使用者裝置10可以通過通訊網路30發出資料寫請求、資料讀請求以及(或是)其他請求至資料儲存系統200。資料儲存系統200可以通過通訊網路30提供雲端儲存服務給一個或多個使用者裝置10。所述通訊網路30可以包含區域網路、網際網路以及(或是)其他通訊網路。圖2所示使用者裝置10可以參照圖1所示使用者裝置10的相關說明,故不再贅述。FIG. 2 is a schematic block diagram of a circuit of a
在圖2所示實施例中,資料儲存系統200包括分派裝置110以及儲存裝置120_1~120_n。分派裝置110與儲存裝置120_1~120_n適於耦接至通訊網路20。圖2所示通訊網路20、分派裝置110以及儲存裝置120_1~120_n可以參照圖1所示通訊網路20、分派裝置110以及儲存裝置120_1~120_n的相關說明,故不再贅述。In the embodiment shown in FIG. 2, the
圖3是依照本發明的一實施例的一種全域去重複方法的流程示意圖。圖3所示全域去重複方法可以適用於圖1所示資料儲存系統100以及(或是)圖2所示資料儲存系統200。依照設計需求,讀者可以參照圖1與圖3來理解下述說明內容,或是參照圖2與圖3來理解下述說明內容。Fig. 3 is a schematic flowchart of a global de-duplication method according to an embodiment of the present invention. The global deduplication method shown in FIG. 3 can be applied to the
在步驟S310中,分派裝置110可以接收使用者裝置10的資料寫請求。所述資料寫請求可以包括原鍵值OID與原資料D。亦即,使用者裝置10請求將一筆原資料D寫入資料儲存系統。In step S310, the
在步驟S320中,分派裝置110可以將所述資料寫請求所對應的原資料D切割為一個(或多個)資料塊(data chunk)。在步驟S330中,分派裝置110可以對在這個(或這些)資料塊中的一個目前資料塊進行摘要計算,以產生目前資料塊所對應的代表值。依照設計需求,在一些實施例中,所述摘要計算可以包括哈希演算法(Hash algorithm)以及(或是)其他演算法,而所述代表值可以包括所述目前資料塊的哈希值。舉例來說,分派裝置110可以將所述原資料D切割為資料塊ChunkA與資料塊ChunkB,分派裝置110可以對資料塊ChunkA進行哈希計算而產生代表值HIDa,以及分派裝置110可以對資料塊ChunkB進行哈希計算而產生代表值HIDb。分派裝置110可以將所述原鍵值OID、代表值HIDa與代表值HIDb的映射關係記錄至分派裝置110的查找表中。In step S320, the
在步驟S340中,分派裝置110可以對所述代表值進行分佈計算,以決定代表值所對應的目的位置。在步驟S350中,分派裝置110可以依照所述目的位置而通過通訊網路20將目前資料塊與代表值傳輸至這些儲存裝置120_1~120_n中的至少一個目的儲存裝置。依照設計需求,在一些實施例中,所述分佈計算可以包括Ceph CRUSH演算法以及(或是)其他演算法。所述Ceph CRUSH演算法為習知技術,故在此不予贅述。舉例來說,分派裝置110可以對資料塊ChunkA的代表值HIDa進行CRUSH計算,並依照計算結果(假設)將資料塊ChunkA傳輸至儲存裝置120_1(目的儲存裝置)。同理,分派裝置110可以對資料塊ChunkB的代表值HIDb進行CRUSH計算,並依照計算結果(假設)將資料塊ChunkB傳輸至儲存裝置120_4(目的儲存裝置)。In step S340, the allocating
在步驟S360中,所述目的儲存裝置可以檢查所述代表值,以決定是否將所述目前資料塊存入所述目的儲存裝置的儲存空間中。依照設計需求,所述儲存空間可以是所述目的儲存裝置的硬碟(hard disk drive,HDD)、固態硬碟(solid state drive,SSD)以及(或是)其他儲存介質。舉例來說,在分派裝置110將資料塊ChunkA與代表值HIDa傳輸至儲存裝置120_1(目的儲存裝置)後,儲存裝置120_1可以檢查代表值HIDa,以決定是否將資料塊ChunkA存入儲存裝置120_1的儲存空間中。同理,在分派裝置110將資料塊ChunkB與代表值HIDb傳輸至儲存裝置120_4(目的儲存裝置)後,儲存裝置120_4可以檢查代表值HIDb,以決定是否將資料塊ChunkB存入儲存裝置120_1的儲存空間中。In step S360, the destination storage device may check the representative value to determine whether to store the current data block in the storage space of the destination storage device. According to design requirements, the storage space may be a hard disk drive (HDD), a solid state drive (SSD), and/or other storage media of the destination storage device. For example, after the
圖4是依照本發明的一實施例的一種儲存裝置的操作流程示意圖。圖3所示步驟S360可以參照圖4的相關說明。在圖4所示實施例中,儲存裝置120_1~120_n的每一個各自具有查找表(或是一鍊結表)。在步驟S410中,所述目的儲存裝置可以接收分派裝置110所提供的目前資料塊與代表值。在步驟S420中,所述目的儲存裝置可以檢查查找表有無所述代表值。舉例來說,在分派裝置110將資料塊ChunkA與代表值HIDa傳輸至儲存裝置120_1(目的儲存裝置)後,儲存裝置120_1可以檢查儲存裝置120_1的查找表有無所述代表值HIDa。FIG. 4 is a schematic diagram of the operation flow of a storage device according to an embodiment of the present invention. For step S360 shown in FIG. 3, reference may be made to the related description of FIG. 4. In the embodiment shown in FIG. 4, each of the storage devices 120_1 to 120_n has a look-up table (or a link table). In step S410, the destination storage device may receive the current data block and representative value provided by the
當查找表有所述代表值時(亦即步驟S430的判斷結果為「是」),所述目的儲存裝置可以進行步驟S440、S450與S460。在步驟S440中,所述目的儲存裝置會放棄將分派裝置110所提供的所述目前資料塊存入儲存空間中,亦即丟棄分派裝置110所提供的所述目前資料塊。在步驟S450中,所述目的儲存裝置可以調增代表值所對應的參照次數值。在步驟S460中,所述目的儲存裝置可以將所述參照次數值更新至所述查找表。舉例來說,在儲存裝置120_1(目的儲存裝置)的查找表有所述代表值HIDa的情況下,儲存裝置120_1可以丟棄分派裝置110所提供的所述目前資料塊ChunkA,將代表值HIDa所對應的參照次數值RefCnt累進加1,以及將參照次數值RefCnt更新至儲存裝置120_1的所述查找表。When the look-up table has the representative value (that is, the judgment result of step S430 is "Yes"), the destination storage device may perform steps S440, S450, and S460. In step S440, the destination storage device will give up storing the current data block provided by the
當查找表沒有所述代表值時(亦即步驟S430的判斷結果為「否」),所述目的儲存裝置可以進行步驟S470、S480與S490。在步驟S470中,所述目的儲存裝置可以將分派裝置110所提供的所述目前資料塊存於儲存空間的物理位址。在步驟S480中,所述目的儲存裝置可以將所述代表值所對應的參照次數值設為初始值(例如0)。在步驟S490中,所述目的儲存裝置可以將代表值、物理位址與參照次數值記錄於查找表。舉例來說,假設目前資料塊ChunkA的長度為L。在儲存裝置120_1(目的儲存裝置)的查找表沒有所述代表值HIDa的情況下,儲存裝置120_1可以將分派裝置110所提供的目前資料塊ChunkA存於儲存裝置120_1的儲存空間的某個物理位址FADD,將代表值HIDa所對應的參照次數值RefCnt重置為0,以及將代表值HIDa、物理位址FADD、長度L與參照次數值RefCnt記錄於儲存裝置120_1的查找表。When the look-up table does not have the representative value (that is, the judgment result of step S430 is “No”), the destination storage device may perform steps S470, S480, and S490. In step S470, the destination storage device may store the current data block provided by the
圖5是依照本發明的一實施例說明圖1或圖2所示分派裝置110的電路方塊示意圖。依照設計需求,圖5所述實施例可以參用圖3與(或)圖4的相關說明。在圖5所述實施例中,分派裝置110包括主分派裝置111以及備援分派裝置112。主分派裝置111與備援分派裝置112適於耦接至通訊網路20。主分派裝置111與備援分派裝置112是互為獨立的兩個電子設備。依照設計需求,主分派裝置111與備援分派裝置112的任何一個可以是個人電腦、工作站、伺服器、NAS設備以及(或是)其他電子設備。依照設計需求,在一些實施例中,主分派裝置111(或備援分派裝置112)可以是獨立於儲存裝置120_1~120_n的另一個電子設備。在另一些實施例中,這些儲存裝置120_1~120_n中的至少一個可以被選用做為主分派裝置111(或備援分派裝置112)。FIG. 5 is a circuit block diagram illustrating the
依照不同的設計需求,上述主分派裝置111以及(或是)備援分派裝置112的方塊的實現方式可以是硬體、韌體、軟體(即程式)或是前述三者中的多者的組合形式。以軟體形式及/或韌體形式而言,上述主分派裝置111以及(或是)備援分派裝置112的相關功能可以被實現為編程碼。例如,利用一般的編程語言(例如C、C++或組合語言)或其他合適的編程語言來實現上述主分派裝置111以及(或是)備援分派裝置112。所述編程碼可以被記錄/存放在記錄媒體中。電腦、CPU、控制器、微控制器或微處理器可以從所述記錄媒體中讀取並執行所述編程碼,從而實現上述主分派裝置111以及(或是)備援分派裝置112的相關功能。而且,所述編程碼也可經由任意傳輸媒體(通信網路或廣播電波等)而提供給所述電腦(或CPU)。According to different design requirements, the implementation of the blocks of the
圖6是依照本發明的一實施例說明圖5所示主分派裝置111的寫操作流程示意圖。圖5所示備援分派裝置112的功能可以參照主分派裝置111的相關說明來類推。請參照圖5與圖6。在步驟S610中,主分派裝置111可以接收使用者裝置10的資料寫請求。所述資料寫請求可以包括原鍵值OID與原資料D。FIG. 6 is a schematic diagram illustrating a write operation flow of the
在步驟S620中,主分派裝置111可以將所述資料寫請求所對應的原資料D切割為一個(或多個)資料塊(data chunk)。在步驟S630中,主分派裝置111可以對在這個(或這些)資料塊中的一個目前資料塊進行摘要計算,以產生目前資料塊所對應的代表值。在步驟S640中,主分派裝置111可以將原鍵值與代表值的映射關係記錄至主分派裝置111的查找表中。舉例來說,主分派裝置111可以將所述原資料D切割為資料塊ChunkA與資料塊ChunkB,主分派裝置111可以對資料塊ChunkA進行哈希計算而產生代表值HIDa,以及主分派裝置111可以對資料塊ChunkB進行哈希計算而產生代表值HIDb。主分派裝置111可以將原鍵值OID、代表值HIDa與代表值HIDb的映射關係記錄至主分派裝置111的查找表中。In step S620, the
在步驟S650中,主分派裝置111可以對所述代表值進行分佈計算,以決定代表值所對應的目的位置。在步驟S660中,主分派裝置111可以依照所述目的位置而通過通訊網路20將目前資料塊與代表值傳輸至這些儲存裝置120_1~120_n中的多個目的儲存裝置。舉例來說,主分派裝置111可以對資料塊ChunkA的代表值HIDa進行CRUSH計算,並依照計算結果(假設)將代表值HIDa與資料塊ChunkA傳輸至儲存裝置120_1與120_2(目的儲存裝置)。相同的資料塊ChunkA被傳輸至儲存裝置120_1與120_2,以實現複製(replica)功能。同理,主分派裝置111可以對資料塊ChunkB的代表值HIDb進行CRUSH計算,並依照計算結果(假設)將代表值HIDb與資料塊ChunkB傳輸至儲存裝置120_4與120_5(目的儲存裝置)。In step S650, the
在這些目的儲存裝置回答(表示成功儲存)後,主分派裝置111可以將所述查找表提供給備援分派裝置112(步驟S670)。在步驟S680中,主分派裝置111可以回答使用者裝置10,以表示成功儲存。備援分派裝置112的查找表的內容與主分派裝置111的查找表的內容一致。因此,在主分派裝置111的查找表被毀損的情況下,或是在主分派裝置111無法正常操作的情況下,備援分派裝置112可以代替主分派裝置111去進行圖6所示寫操作流程以及(或是)圖7所示讀操作流程。After the destination storage device answers (indicating successful storage), the
圖7是依照本發明的一實施例說明圖5所示主分派裝置111的讀操作流程示意圖。圖5所示備援分派裝置112的功能可以參照主分派裝置111的相關說明來類推。請參照圖5與圖7。在步驟S710中,主分派裝置111可以接收使用者裝置10的資料讀請求。所述資料讀請求可以包括原鍵值OID。在步驟S720中,主分派裝置111可以在主分派裝置111的查找表中搜尋資料讀請求所對應的原鍵值OID,以便從所述查找表取出原鍵值OID所對應的代表值。在步驟S730中,主分派裝置111可以對所述代表值進行分佈計算,以決定代表值所對應的目的位置。在步驟S740中,主分派裝置111可以依照所述目的位置而通過通訊網路20將讀請求與代表值傳輸至這些儲存裝置120_1~120_n中的一個(或多個)目的儲存裝置。FIG. 7 is a schematic diagram illustrating a read operation flow of the
舉例來說,主分派裝置111可以在主分派裝置111的查找表中搜尋原鍵值OID,以便從所述查找表取出原鍵值OID所對應的代表值HIDa與HIDb。主分派裝置111可以對代表值HIDa進行CRUSH計算,並依照計算結果(假設)將讀請求與代表值HIDa傳輸至儲存裝置120_1(目的儲存裝置)。在儲存裝置120_2作為儲存裝置120_1的備援裝置的情況下,當儲存裝置120_1的資料失效時,主分派裝置111可以將讀請求與代表值HIDa傳輸至儲存裝置120_2(目的儲存裝置)。同理,主分派裝置111可以對代表值HIDb進行CRUSH計算,並依照計算結果(假設)將讀請求與代表值HIDb傳輸至儲存裝置120_4(目的儲存裝置)。在儲存裝置120_5作為儲存裝置120_4的備援裝置的情況下,當儲存裝置120_4的資料失效時,主分派裝置111可以將讀請求與代表值HIDa傳輸至儲存裝置120_5(目的儲存裝置)。For example, the
所述目的儲存裝置可以依照主分派裝置111所提供的代表值而在其本地的儲存空間中讀取出對應的資料塊,然後依照讀請求將所述資料塊回傳給主分派裝置111。在主分派裝置111接收這些目的儲存裝置所回傳的資料塊(步驟S750)後,主分派裝置111可以彙整這些回傳的資料塊作為原資料D,以及將原資料D回傳給使用者裝置10(步驟S760)。舉例來說,儲存裝置120_1(目的儲存裝置)可以依照主分派裝置111所提供的代表值HIDa而在其本地的儲存空間中讀取出對應的資料塊ChunkA,然後依照讀請求將所述資料塊ChunkA回傳給主分派裝置111。同理,儲存裝置120_4(目的儲存裝置)可以依照主分派裝置111所提供的代表值HIDb而在其本地的儲存空間中讀取出對應的資料塊ChunkB,然後依照讀請求將所述資料塊ChunkB回傳給主分派裝置111。在主分派裝置111接收這些目的儲存裝置120_1與120_4所回傳的資料塊ChunkA與ChunkB後,主分派裝置111可以彙整這些資料塊ChunkA與ChunkB作為原資料D,以及將原鍵值OID與原資料D回傳給使用者裝置10。The destination storage device can read the corresponding data block in its local storage space according to the representative value provided by the
圖8是依照本發明的另一實施例說明圖1或圖2所示分派裝置110的電路方塊示意圖。依照設計需求,圖8所述實施例可以參用圖3與(或)圖4的相關說明。在圖8所述實施例中,分派裝置110包括一個糾刪編碼(Erasure coding)裝置113以及一個(或多個)資料分派裝置114。糾刪編碼裝置113與資料分派裝置114適於耦接至通訊網路20。糾刪編碼裝置113與資料分派裝置114是互為獨立的兩個電子設備。依照設計需求,糾刪編碼裝置113與資料分派裝置114的任何一個可以是個人電腦、工作站、伺服器、NAS設備以及(或是)其他電子設備。依照設計需求,在一些實施例中,糾刪編碼裝置113(或資料分派裝置114)可以是獨立於儲存裝置120_1~120_n的另一個電子設備。在另一些實施例中,這些儲存裝置120_1~120_n中的至少一個可以被選用做為糾刪編碼裝置113(或資料分派裝置114)。FIG. 8 is a circuit block diagram illustrating the
依照不同的設計需求,上述糾刪編碼裝置113以及(或是)資料分派裝置114的方塊的實現方式可以是硬體、韌體、軟體(即程式)或是前述三者中的多者的組合形式。以軟體形式及/或韌體形式而言,上述糾刪編碼裝置113以及(或是)資料分派裝置114的相關功能可以被實現為編程碼。例如,利用一般的編程語言(例如C、C++或組合語言)或其他合適的編程語言來實現上述糾刪編碼裝置113以及(或是)資料分派裝置114。所述編程碼可以被記錄/存放在記錄媒體中。電腦、CPU、控制器、微控制器或微處理器可以從所述記錄媒體中讀取並執行所述編程碼,從而實現上述糾刪編碼裝置113以及(或是)資料分派裝置114的相關功能。而且,所述編程碼也可經由任意傳輸媒體(通信網路或廣播電波等)而提供給所述電腦(或CPU)。According to different design requirements, the implementation of the blocks of the
圖9是依照本發明的一實施例說明圖8所示糾刪編碼裝置113與資料分派裝置114的寫操作流程示意圖。圖8所示資料分派裝置114的功能可以參照糾刪編碼裝置113的相關說明來類推。請參照圖8與圖9。在步驟S900中,糾刪編碼裝置113可以接收使用者裝置10的資料寫請求。所述資料寫請求可以包括原鍵值OID與原資料D。FIG. 9 is a schematic diagram illustrating the writing operation flow of the erasure
在步驟S905中,糾刪編碼裝置113可以對原資料D進行糾刪編碼計算,以產生多個糾刪資料以及這些糾刪資料所對應的多個鍵值。在步驟S910中,糾刪編碼裝置113可以對這些鍵值的每一個進行分佈計算,以產生這些鍵值所對應的多個裝置位置。在步驟S915中,糾刪編碼裝置113可以依照所述裝置位置而通過通訊網路20將這些糾刪資料與這些鍵值傳輸至多個資料分派裝置114。舉例來說,糾刪編碼裝置113可以對原資料D進行糾刪編碼計算,以產生多個糾刪資料Shard1、Shard2、Shard3、Shard4與Shard5。糾刪編碼裝置113還可以依據原鍵值OID產生這些糾刪資料Shard1~Shard5所對應的鍵值為OID1、OID2、OID3、OID4與OID5。糾刪編碼裝置113可以對鍵值OID1進行分佈計算,以通過通訊網路20將糾刪資料Shard1與鍵值OID1傳輸至這些資料分派裝置114中的第一個資料分派裝置。同理,糾刪編碼裝置113可以通過通訊網路20將糾刪資料Shard2與鍵值OID2傳輸至這些資料分派裝置114中的第二個資料分派裝置,將糾刪資料Shard3與鍵值OID3傳輸至這些資料分派裝置114中的第三個資料分派裝置,將糾刪資料Shard4與鍵值OID4傳輸至這些資料分派裝置114中的第四個資料分派裝置,以及將糾刪資料Shard5與鍵值OID5傳輸至這些資料分派裝置114中的第五個資料分派裝置。In step S905, the erasure
在步驟S950中,這些資料分派裝置114可以將所述糾刪資料切割為一個(或多個)資料塊(data chunk)。在步驟S955中,這些資料分派裝置114可以對在這個(或這些)資料塊中的一個目前資料塊進行摘要計算,以產生目前資料塊所對應的代表值。在步驟S960中,這些資料分派裝置114可以將原鍵值與代表值的映射關係記錄至資料分派裝置114的查找表中。舉例來說,這些資料分派裝置114中的第一個資料分派裝置可以將所述糾刪資料Shard1切割為資料塊Chunk1A(或更多個資料塊),所述第一個資料分派裝置可以對資料塊Chunk1A進行哈希計算而產生代表值HID1a,以及所述第一個資料分派裝置可以將鍵值OID1與代表值HID1a的映射關係記錄至所述第一個資料分派裝置的查找表中。同理,這些資料分派裝置114中的第二個至第五個資料分派裝置的操作可以參照這些資料分派裝置114中的所述第一個資料分派裝置的相關說明來類推,故不再贅述。In step S950, these
在步驟S965中,這些資料分派裝置114可以對所述代表值進行分佈計算,以決定代表值所對應的目的位置。在步驟S970中,這些資料分派裝置114可以依照所述目的位置而通過通訊網路20將目前資料塊與代表值傳輸至這些儲存裝置120_1~120_n中的一個(或多個)目的儲存裝置。舉例來說,這些資料分派裝置114中的第一個資料分派裝置可以對資料塊Chunk1A的代表值HID1a進行CRUSH計算,並依照計算結果(假設)將代表值HID1a與資料塊Chunk1A傳輸至儲存裝置120_1(目的儲存裝置)。In step S965, these
在這些目的儲存裝置回答(表示成功儲存)後,這些資料分派裝置114可以回答糾刪編碼裝置113(步驟S975)。在這些資料分派裝置114回答(表示成功儲存)後,糾刪編碼裝置113可以回答(表示成功儲存)使用者裝置10。After the destination storage device answers (indicating successful storage), the
圖10是依照本發明的一實施例說明圖8所示糾刪編碼裝置113與資料分派裝置114的讀操作流程示意圖。請參照圖8與圖10。在步驟S1000中,糾刪編碼裝置113可以接收使用者裝置10的資料讀請求。所述資料讀請求可以包括原鍵值OID。在步驟S1005中,糾刪編碼裝置113可以對原鍵值OID進行糾刪編碼計算,以產生多個鍵值。在步驟S1010中,糾刪編碼裝置113可以對這些鍵值的每一個進行分佈計算,以產生這些鍵值所對應的多個裝置位置。在步驟S1015中,糾刪編碼裝置113可以依照所述裝置位置而通過通訊網路20將讀請求與這些鍵值傳輸至多個資料分派裝置114。FIG. 10 is a schematic diagram illustrating the read operation flow of the erasure
舉例來說,糾刪編碼裝置113可以對原鍵值OID進行糾刪編碼計算,以產生多個鍵值OID1、OID2、OID3、OID4與OID5。糾刪編碼裝置113可以對鍵值OID1進行分佈計算,以通過通訊網路20將讀請求與與鍵值OID1傳輸至這些資料分派裝置114中的第一個資料分派裝置。同理,糾刪編碼裝置113可以通過通訊網路20將讀請求與鍵值OID2傳輸至這些資料分派裝置114中的第二個資料分派裝置,將讀請求與鍵值OID3傳輸至這些資料分派裝置114中的第三個資料分派裝置,將讀請求與鍵值OID4傳輸至這些資料分派裝置114中的第四個資料分派裝置,以及將讀請求與鍵值OID5傳輸至這些資料分派裝置114中的第五個資料分派裝置。For example, the
在步驟S1050中,資料分派裝置114可以在資料分派裝置114的查找表中搜尋讀請求所對應的鍵值,以便從所述查找表取出所述鍵值所對應的代表值。在步驟S1055中,資料分派裝置114可以對所述代表值進行分佈計算,以決定代表值所對應的目的位置。在步驟S1060中,資料分派裝置114可以依照所述目的位置而通過通訊網路20將讀請求與代表值傳輸至這些儲存裝置120_1~120_n中的一個(或多個)目的儲存裝置。In step S1050, the
舉例來說,這些資料分派裝置114中的第一個資料分派裝置可以在所述第一個資料分派裝置的查找表中搜尋鍵值OID1,以便從所述查找表取出鍵值OID1所對應的代表值HID1a。所述第一個資料分派裝置可以對代表值HID1a進行CRUSH計算,並依照計算結果(假設)將讀請求與代表值HID1a傳輸至儲存裝置120_1(目的儲存裝置)。同理,這些資料分派裝置114中的第二個至第五個資料分派裝置的操作可以參照這些資料分派裝置114中的所述第一個資料分派裝置的相關說明來類推,故不再贅述。For example, the first data allocating device among the
這些目的儲存裝置可以依照這些資料分派裝置114所提供的代表值而在其本地的儲存空間中讀取出對應的資料塊,然後依照讀請求將所述資料塊回傳給這些資料分派裝置114。這些資料分派裝置114接收這些目的儲存裝置所回傳的資料塊(步驟S1065)後,這些資料分派裝置114可以彙整這些回傳的資料塊作為糾刪資料,以及將糾刪資料回傳給糾刪編碼裝置113(步驟S1070)。糾刪編碼裝置113接收這些資料分派裝置114所回傳的糾刪資料後,糾刪編碼裝置113可以彙整這些回傳的糾刪資料作為原資料D,以及將原鍵值OID與原資料D回傳給使用者裝置10(步驟S1020)。These destination storage devices can read corresponding data blocks in their local storage space according to the representative values provided by the
舉例來說,儲存裝置120_1(目的儲存裝置)可以依照這些資料分派裝置114中的所述第一個資料分派裝置所提供的代表值HID1a而在其本地的儲存空間中讀取出對應的資料塊Chunk1A,然後依照讀請求將所述資料塊Chunk1A回傳給所述第一個資料分派裝置。在所述第一個資料分派裝置接收目的儲存裝置120_1所回傳的資料塊Chunk1A後,所述第一個資料分派裝置可以彙整這資料塊ChunkA作為糾刪資料Shard1,以及將鍵值OID1與糾刪資料Shard1回傳給糾刪編碼裝置113。同理,這些資料分派裝置114中的第二個至第五個資料分派裝置的操作可以參照這些資料分派裝置114中的所述第一個資料分派裝置的相關說明來類推,故不再贅述。在糾刪編碼裝置113接收這些資料分派裝置114所回傳的糾刪資料Shard1~Shard5後,糾刪編碼裝置113可以彙整這些糾刪資料Shard1~Shard5作為原資料D,以及將原鍵值OID與原資料D回傳給使用者裝置10。For example, the storage device 120_1 (destination storage device) can read the corresponding data block in its local storage space according to the representative value HID1a provided by the first data distribution device among these
圖11是依照本發明的又一實施例說明圖1或圖2所示分派裝置110的電路方塊示意圖。依照設計需求,圖11所述實施例可以參用圖3與(或)圖4的相關說明。在圖11所述實施例中,分派裝置110包括糾刪編碼裝置115以及備援糾刪編碼裝置116。糾刪編碼裝置115與備援糾刪編碼裝置116適於耦接至通訊網路20。糾刪編碼裝置115與備援糾刪編碼裝置116是互為獨立的兩個電子設備。依照設計需求,糾刪編碼裝置115與備援糾刪編碼裝置116的任何一個可以是個人電腦、工作站、伺服器、NAS設備以及(或是)其他電子設備。依照設計需求,在一些實施例中,糾刪編碼裝置115(或備援糾刪編碼裝置116)可以是獨立於儲存裝置120_1~120_n的另一個電子設備。在另一些實施例中,這些儲存裝置120_1~120_n中的至少一個可以被選用做為糾刪編碼裝置115(或備援糾刪編碼裝置116)。FIG. 11 is a circuit block diagram illustrating the
依照不同的設計需求,上述糾刪編碼裝置115以及(或是)備援糾刪編碼裝置116的方塊的實現方式可以是硬體、韌體、軟體(即程式)或是前述三者中的多者的組合形式。以軟體形式及/或韌體形式而言,上述糾刪編碼裝置115以及(或是)備援糾刪編碼裝置116的相關功能可以被實現為編程碼。例如,利用一般的編程語言(例如C、C++或組合語言)或其他合適的編程語言來實現上述糾刪編碼裝置115以及(或是)備援糾刪編碼裝置116。所述編程碼可以被記錄/存放在記錄媒體中。電腦、CPU、控制器、微控制器或微處理器可以從所述記錄媒體中讀取並執行所述編程碼,從而實現上述糾刪編碼裝置115以及(或是)備援糾刪編碼裝置116的相關功能。而且,所述編程碼也可經由任意傳輸媒體(通信網路或廣播電波等)而提供給所述電腦(或CPU)。According to different design requirements, the implementation of the blocks of the
圖12是依照本發明的一實施例說明圖11所示糾刪編碼裝置115的寫操作流程示意圖。圖11所示備援糾刪編碼裝置116的功能可以參照糾刪編碼裝置115的相關說明來類推。請參照圖11與圖12。在步驟S1210中,糾刪編碼裝置115可以接收使用者裝置10的資料寫請求。所述資料寫請求可以包括原鍵值OID與原資料D。FIG. 12 is a schematic diagram illustrating the writing operation flow of the erasure
在步驟S1220中,糾刪編碼裝置115可以對原資料D進行糾刪編碼計算,以產生多個糾刪資料以及這些糾刪資料所對應的多個鍵值。舉例來說,糾刪編碼裝置115可以對原資料D進行糾刪編碼計算,以產生多個糾刪資料Shard1、Shard2、Shard3、Shard4與Shard5。糾刪編碼裝置115還可以依據原鍵值OID產生這些糾刪資料Shard1~Shard5所對應的鍵值為OID1、OID2、OID3、OID4與OID5。In step S1220, the erasure
在步驟S1230中,糾刪編碼裝置115可以將這些糾刪資料的每一個切割為一個(或多個)資料塊(data chunk)。在步驟S1240中,糾刪編碼裝置115可以對在這個(或這些)資料塊中的一個目前資料塊進行摘要計算,以產生目前資料塊所對應的代表值。在步驟S1250中,糾刪編碼裝置115可以將鍵值與代表值的映射關係記錄至糾刪編碼裝置115的查找表中。舉例來說,糾刪編碼裝置115可以將糾刪資料Shard1切割為資料塊Chunk1A(或更多資料塊)。同理,糾刪編碼裝置115可以將糾刪資料Shard2切割為資料塊Chunk2A,將糾刪資料Shard3切割為資料塊Chunk3A,將糾刪資料Shard4切割為資料塊Chunk4A,以及將糾刪資料Shard5切割為資料塊Chunk5A。糾刪編碼裝置115可以對資料塊Chunk1A進行哈希計算而產生代表值HID1a,對資料塊Chunk2A進行哈希計算而產生代表值HID2a,對資料塊Chunk3A進行哈希計算而產生代表值HID3a,對資料塊Chunk4A進行哈希計算而產生代表值HID4a,以及對資料塊Chunk5A進行哈希計算而產生代表值HID5a。糾刪編碼裝置115可以將鍵值OID1~OID5與代表值HID1a~HID5a的映射關係記錄至糾刪編碼裝置115的查找表中。In step S1230, the erasure
在步驟S1260中,糾刪編碼裝置115可以對所述代表值進行分佈計算,以決定所述代表值所對應的目的位置。在步驟S1270中,糾刪編碼裝置115可以依照所述目的位置而通過通訊網路20將目前資料塊與代表值傳輸至這些儲存裝置120_1~120_n中的目的儲存裝置。舉例來說,糾刪編碼裝置115可以對資料塊Chunk1A的代表值HID1a進行CRUSH計算,並依照計算結果(假設)將代表值HID1a與資料塊Chunk1A傳輸至儲存裝置120_1(目的儲存裝置)。同理,糾刪編碼裝置115可以對資料塊Chunk2A~Chunk5A的代表值HID2a~HID5a進行CRUSH計算,並依照計算結果(假設)將代表值HID2a~HID5a與資料塊Chunk2A~Chunk5A分別傳輸至儲存裝置120_2~120_5(目的儲存裝置)。In step S1260, the erasure
在這些目的儲存裝置回答(表示成功儲存)後,糾刪編碼裝置115可以將所述查找表提供給備援糾刪編碼裝置116(步驟S1280)。在步驟S1290中,糾刪編碼裝置115可以回答使用者裝置10,以表示成功儲存。備援糾刪編碼裝置116的查找表的內容與糾刪編碼裝置115的查找表的內容一致。因此,在糾刪編碼裝置115的查找表被毀損的情況下,或是在糾刪編碼裝置115無法正常操作的情況下,備援糾刪編碼裝置116可以代替糾刪編碼裝置115去進行圖12所示寫操作流程以及(或是)圖13所示讀操作流程。After the destination storage device answers (indicating successful storage), the erasure
圖13是依照本發明的一實施例說明圖11所示糾刪編碼裝置115的讀操作流程示意圖。圖11所示備援糾刪編碼裝置116的功能可以參照糾刪編碼裝置115的相關說明來類推。請參照圖11與圖13。在步驟S1310中,糾刪編碼裝置115可以接收使用者裝置10的資料讀請求。所述資料讀請求可以包括原鍵值OID。在步驟S1320中,糾刪編碼裝置115可以對所述資料讀請求所對應的原鍵值OID進行糾刪編碼計算,以產生多個鍵值。在步驟S1330中,糾刪編碼裝置115可以在糾刪編碼裝置115的查找表中搜尋這些鍵值,以便從所述查找表取出這些鍵值所對應的代表值。在步驟S1340中,糾刪編碼裝置115可以對所述代表值進行分佈計算,以決定這些代表值所對應的目的位置。在步驟S1350中,糾刪編碼裝置115可以依照所述目的位置而通過通訊網路20將讀請求與這些代表值傳輸至這些儲存裝置120_1~120_n中的一個(或多個)目的儲存裝置。FIG. 13 is a schematic diagram illustrating the read operation flow of the erasure
舉例來說,糾刪編碼裝置115可以對原鍵值OID進行糾刪編碼計算,以產生多個鍵值OID1、OID2、OID3、OID4與OID5。糾刪編碼裝置115可以在糾刪編碼裝置115的查找表中搜尋鍵值OID1,以便從所述查找表取出鍵值OID1所對應的代表值HID1a。同理,糾刪編碼裝置115可以在查找表中搜尋鍵值OID2~OID5,以便從所述查找表取出鍵值OID2~OID5所對應的代表值HID2a~HID5a。糾刪編碼裝置115可以對代表值HID1a~HID5a進行CRUSH計算,並依照計算結果(假設)將讀請求與代表值HID1a~HID5a分別傳輸至儲存裝置120_1~120_5(目的儲存裝置)。For example, the
所述目的儲存裝置可以依照糾刪編碼裝置115所提供的代表值而在其本地的儲存空間中讀取出對應的資料塊,然後依照讀請求將所述資料塊回傳給糾刪編碼裝置115。在糾刪編碼裝置115接收這些目的儲存裝置所回傳的資料塊(步驟S1360)後,糾刪編碼裝置115可以彙整這些回傳的資料塊作為糾刪資料(步驟S1370)。糾刪編碼裝置115可以彙整這些糾刪資料作為原資料D,以及將原鍵值OID與原資料D回傳給使用者裝置10(步驟S1380)。The destination storage device can read the corresponding data block in its local storage space according to the representative value provided by the
舉例來說,儲存裝置120_1~120_5(目的儲存裝置)可以依照糾刪編碼裝置115所提供的代表值HID1a~HID5a而在其本地的儲存空間中讀取出對應的資料塊Chunk1A~Chunk5A,然後依照讀請求將這些資料塊Chunk1A~Chunk5A回傳給糾刪編碼裝置115。在糾刪編碼裝置115接收這些目的儲存裝置120_1~120_5所回傳的資料塊Chunk1A~Chunk5A後,糾刪編碼裝置115可以彙整這些資料塊Chunk1A~Chunk5A作為糾刪資料Shard1~Shard5。糾刪編碼裝置115可以彙整這些糾刪資料Shard1~Shard5作為原資料D,以及將原鍵值OID與原資料D回傳給使用者裝置10。For example, the storage devices 120_1 to 120_5 (destination storage devices) can read the corresponding data blocks Chunk1A to Chunk5A in their local storage space according to the representative values HID1a to HID5a provided by the
綜上所述,上述諸實施例所述資料儲存系統及其全域去重複方法可以被應用於分散式儲存系統。分派裝置110可以產生目前資料塊所對應的代表值HID,以及依據代表值HID決定目的位置。依照所述目的位置,分派裝置110可以通過通訊網路20將目前資料塊與代表值HID傳輸至多個儲存裝置中的至少一個目的儲存裝置。也就是說,相同的資料塊會被傳送至相同的儲存裝置。所述目的儲存裝置可以檢查代表值HID,以決定是否將目前資料塊存入其本地的儲存空間中。因此,所述資料儲存系統可以在分散式儲存環境中有效去重複。In summary, the data storage system and its global deduplication method described in the foregoing embodiments can be applied to a distributed storage system. The allocating
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。Although the present invention has been disclosed in the above embodiments, it is not intended to limit the present invention. Anyone with ordinary knowledge in the relevant technical field can make some changes and modifications without departing from the spirit and scope of the present invention. The protection scope of the present invention shall be subject to those defined by the attached patent application scope.
10:使用者裝置
20、30:通訊網路
100、200:資料儲存系統
110:分派裝置
111:主分派裝置
112:備援分派裝置
113、115:糾刪編碼裝置
114:資料分派裝置
116:備援糾刪編碼裝置
120_1、120_2、120_3、120_4、120_5、120_n:儲存裝置
S310~S360、S410~S490、S610~S680、S710~S760、S900~S975、S1000~S1070、S1210~S1290、S1310~S1380:步驟10:
圖1是依照本發明的一實施例的一種資料儲存系統的電路方塊(circuit block)示意圖。 圖2是依照本發明的另一實施例的一種資料儲存系統的電路方塊示意圖。 圖3是依照本發明的一實施例的一種全域去重複方法的流程示意圖。 圖4是依照本發明的一實施例的一種儲存裝置的操作流程示意圖。 圖5是依照本發明的一實施例說明圖1或圖2所示分派裝置的電路方塊示意圖。 圖6是依照本發明的一實施例說明圖5所示主分派裝置的寫操作流程示意圖。 圖7是依照本發明的一實施例說明圖5所示主分派裝置的讀操作流程示意圖。 圖8是依照本發明的另一實施例說明圖1或圖2所示分派裝置的電路方塊示意圖。 圖9是依照本發明的一實施例說明圖8所示糾刪編碼裝置與資料分派裝置的寫操作流程示意圖。 圖10是依照本發明的一實施例說明圖8所示糾刪編碼裝置與資料分派裝置的讀操作流程示意圖。 圖11是依照本發明的又一實施例說明圖1或圖2所示分派裝置的電路方塊示意圖。 圖12是依照本發明的一實施例說明圖11所示糾刪編碼裝置的寫操作流程示意圖。 圖13是依照本發明的一實施例說明圖11所示糾刪編碼裝置的讀操作流程示意圖。FIG. 1 is a schematic diagram of a circuit block of a data storage system according to an embodiment of the present invention. FIG. 2 is a schematic block diagram of a circuit of a data storage system according to another embodiment of the present invention. Fig. 3 is a schematic flowchart of a global de-duplication method according to an embodiment of the present invention. FIG. 4 is a schematic diagram of the operation flow of a storage device according to an embodiment of the present invention. FIG. 5 is a circuit block diagram illustrating the dispatching device shown in FIG. 1 or FIG. 2 according to an embodiment of the present invention. FIG. 6 is a schematic diagram illustrating a write operation flow of the master dispatching device shown in FIG. 5 according to an embodiment of the present invention. FIG. 7 is a schematic diagram illustrating a read operation flow of the master dispatching device shown in FIG. 5 according to an embodiment of the present invention. FIG. 8 is a circuit block diagram illustrating the dispatching device shown in FIG. 1 or FIG. 2 according to another embodiment of the present invention. 9 is a schematic diagram illustrating the writing operation flow of the erasure correction coding device and the data dispatching device shown in FIG. 8 according to an embodiment of the present invention. FIG. 10 is a schematic diagram illustrating the read operation flow of the erasure correction coding device and the data dispatching device shown in FIG. 8 according to an embodiment of the present invention. FIG. 11 is a circuit block diagram illustrating the dispatching device shown in FIG. 1 or FIG. 2 according to another embodiment of the present invention. FIG. 12 is a schematic diagram illustrating a write operation flow of the erasure correction coding apparatus shown in FIG. 11 according to an embodiment of the present invention. FIG. 13 is a schematic diagram illustrating a read operation flow of the erasure correction coding apparatus shown in FIG. 11 according to an embodiment of the present invention.
S310~S360:步驟 S310~S360: steps
Claims (26)
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/195,551 US11709609B2 (en) | 2020-03-27 | 2021-03-08 | Data storage system and global deduplication method thereof |
CN202110270233.3A CN112835538A (en) | 2020-03-27 | 2021-03-12 | Data storage system and global deduplication method thereof |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US202063000508P | 2020-03-27 | 2020-03-27 | |
US63/000,508 | 2020-03-27 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202137027A true TW202137027A (en) | 2021-10-01 |
TWI815086B TWI815086B (en) | 2023-09-11 |
Family
ID=79601314
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW110105608A TWI815086B (en) | 2020-03-27 | 2021-02-19 | Data storage system and global deduplication method thereof |
Country Status (1)
Country | Link |
---|---|
TW (1) | TWI815086B (en) |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI420333B (en) * | 2011-08-10 | 2013-12-21 | Inventec Corp | A distributed de-duplication system and the method therefore |
CN103873504A (en) * | 2012-12-12 | 2014-06-18 | 鸿富锦精密工业(深圳)有限公司 | System enabling data blocks to be stored in distributed server and method thereof |
TWI663515B (en) * | 2017-07-18 | 2019-06-21 | 先智雲端數據股份有限公司 | Storage system of distributed deduplication for internet of things backup in data center and method for achieving the same |
-
2021
- 2021-02-19 TW TW110105608A patent/TWI815086B/en active
Also Published As
Publication number | Publication date |
---|---|
TWI815086B (en) | 2023-09-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10977123B2 (en) | Coordination protocol between dispersed storage processing units and rebuild modules | |
US9740403B2 (en) | Methods for managing storage in a data storage cluster with distributed zones based on parity values and devices thereof | |
US10126974B2 (en) | Redistributing encoded data slices in a dispersed storage network | |
US20170192698A1 (en) | Determining byte-hours usage of a vault or by users | |
US11954373B2 (en) | Data structure storage and data management | |
US9043616B2 (en) | Efficient storage of encrypted data in a dispersed storage network | |
US20170054806A1 (en) | Adaptive resource utilization with request cancellation | |
US20200117362A1 (en) | Erasure coding content driven distribution of data blocks | |
US20140325305A1 (en) | Cache for file-based dispersed storage | |
JP2009129441A (en) | Method and apparatus for deduplication in storage system | |
US20170075762A1 (en) | Online disk replacement/removal | |
US10067831B2 (en) | Slice migration in a dispersed storage network | |
US10268374B2 (en) | Redundant array of independent discs and dispersed storage network system re-director | |
CN108431815B (en) | Deduplication of distributed data in a processor grid | |
US10592335B2 (en) | Using data object copies to improve the performance of a distributed storage network | |
US20210334241A1 (en) | Non-disrputive transitioning between replication schemes | |
US20190004727A1 (en) | Using a namespace to augment de-duplication | |
US10681138B2 (en) | Storing and retrieving multi-format content in a distributed storage network | |
CN112835538A (en) | Data storage system and global deduplication method thereof | |
TWI815086B (en) | Data storage system and global deduplication method thereof | |
US20220394091A1 (en) | Storing a Data Object as Data Regions in a Storage Network | |
WO2017004157A1 (en) | Method and system for processing data access requests during data transfers | |
US20220261167A1 (en) | Storage Pool Tiering in a Storage Network | |
US10057351B2 (en) | Modifying information dispersal algorithm configurations in a dispersed storage network | |
US20210367932A1 (en) | Efficient storage of data in a dispersed storage network |