TWI855220B - 儲存資料的方法、儲存裝置及資料儲存系統 - Google Patents
儲存資料的方法、儲存裝置及資料儲存系統 Download PDFInfo
- Publication number
- TWI855220B TWI855220B TW110103180A TW110103180A TWI855220B TW I855220 B TWI855220 B TW I855220B TW 110103180 A TW110103180 A TW 110103180A TW 110103180 A TW110103180 A TW 110103180A TW I855220 B TWI855220 B TW I855220B
- Authority
- TW
- Taiwan
- Prior art keywords
- blocks
- storage device
- data
- storage
- storage devices
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
- G06F11/108—Parity data distribution in semiconductor storages, e.g. in SSD
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/14—Error detection or correction of the data by redundancy in operations
- G06F11/1446—Point-in-time backing up or restoration of persistent data
- G06F11/1448—Management of the data involved in backup or backup restore
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2089—Redundant storage control functionality
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/16—Error detection or correction of the data by redundancy in hardware
- G06F11/20—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
- G06F11/2053—Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
- G06F11/2094—Redundant storage or storage space
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0604—Improving or facilitating administration, e.g. storage management
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/065—Replication mechanisms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0653—Monitoring storage devices or systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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/0689—Disk arrays, e.g. RAID, JBOD
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Computer Security & Cryptography (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Signal Processing For Digital Recording And Reproducing (AREA)
Abstract
一種儲存資料的方法可包括:在一組儲存裝置處接收使用者資料,其中儲存裝置是互連的;在所述一組儲存裝置處將使用者資料抹除編碼成冗餘區塊;以及將冗餘區塊儲存於儲存裝置中的至少二者上。可在儲存裝置中的至少二者之間分佈抹除編碼。冗餘區塊可被排列於可靠性組中。可由儲存裝置獨立於使用者對使用者資料的分割而對冗餘區塊進行分組。所述方法可更包括:基於冗餘區塊恢復資料。一種儲存裝置可包括:儲存媒體;網路介面,被配置成與一或多個其他儲存裝置進行通訊;以及儲存處理單元,被配置成與所述一或多個其他儲存裝置協同地將使用者資料抹除編碼成冗餘區塊。
Description
本揭露大體而言是有關於在資料儲存系統中進行抹除編碼,且更具體而言是有關於用於被卸載裝置驅動抹除編碼的方法及裝置。
抹除編碼(erasure coding,EC)可指可用於在具有多個儲存裝置(例如硬碟驅動機(hard disc drive,HDD)或固態驅動機(solid state drive,SSD))的資料儲存系統中改善可靠性且克服資料丟失的技術。在具有抹除編碼的儲存系統中,檔案或其他資料單元可被劃分成多個固定大小的資料區塊。可使用編碼演算法(例如裡德-所羅門(Reed-Solomon))來基於資料區塊計算一或多個奇偶性資料區塊。接著可將資料區塊及奇偶性區塊儲存於單獨的儲存裝置上。若儲存裝置中的一者發生故障,則可使用其餘的資料區塊及一或多個奇偶性區塊來對故障裝置上的資料區塊進行重建。可調整編碼演算法的參數(例如奇偶性區塊對資料區塊的比率),以在儲存效率與資料可靠性之間進行折衷。
一種儲存資料的方法可包括:在一組儲存裝置處接收使用者資料,其中所述儲存裝置是互連的;在所述一組儲存裝置處將所述使用者資料抹除編碼成冗餘區塊;以及將所述冗餘區塊儲存於所述儲存裝置中的至少二者上。可在所述儲存裝置中的至少二者之間分佈所述抹除編碼。所述冗餘區塊可被排列於可靠性組中。所述儲存裝置中的每一者可維護關於其冗餘區塊的所述可靠性組的元資料。可自使用者接收所述使用者資料,且可由所述使用者在所述儲存裝置之間分割所述使用者資料。可由所述儲存裝置獨立於所述使用者對所述使用者資料的所述分割而對所述冗餘區塊進行分組。
所述儲存裝置中的至少一者可能夠進行計算儲存,且所述使用者可基於欲對所述使用者資料實行的計算而在所述儲存裝置之間分割所述使用者資料。所述使用者資料可被排列於邏輯區塊中,且冗餘區塊可包括多個邏輯區塊。所述儲存裝置中的至少一者可因應於接收到所述使用者資料而發送寫入確認。所述儲存裝置中的至少一者可基於所述使用者資料的所述抹除編碼而發送可靠寫入確認。所述方法可更包括:基於冗餘區塊恢復資料。基於冗餘區塊恢復資料可包括根據活的冗餘區塊恢復資料。基於冗餘區塊恢復資料可包括僅根據活的冗餘區塊恢復資料。所述冗餘區塊可為自描述性的以利於恢復資料。
每一儲存裝置可向在可靠性組中具有冗餘區塊的每個其他儲存裝置告知所述可靠性組中可被抹除的冗餘區塊,且因應於自在所述可靠性組中具有冗餘區塊的每個其他儲存裝置接收到進行訊號而抹除所述冗餘區塊。所述一組儲存裝置中的第一儲存裝置可向所述一組儲存裝置中的第二儲存裝置告知可被抹除的冗餘區塊。所述第一儲存裝置可因應於自所述第二儲存裝置接收到進行訊號而抹除所述冗餘區塊。所述一組儲存裝置中的第一儲存裝置可被所述一組儲存裝置中的第二儲存裝置告知:可靠性組中的冗餘區塊將被所述第二儲存裝置抹除,且可檢查所述可靠性組中的所述第一儲存裝置自己的冗餘區塊。所述第一儲存裝置可向所述第二儲存裝置發送進行訊號。所述第一儲存裝置可向在所述可靠性組中具有冗餘區塊的所述其他儲存裝置發送欲將所述可靠性組中的所述第一儲存裝置自己的冗餘區塊加至新的可靠性組的請求。所述一組儲存裝置可基於可靠性組中的冗餘區塊的抹除而重新計算所述可靠性組的奇偶性。
一種儲存裝置可包括:儲存媒體;網路介面,被配置成與一或多個其他儲存裝置進行通訊;以及儲存處理單元,被配置成與所述一或多個其他儲存裝置協同地將使用者資料抹除編碼成冗餘區塊。所述儲存處理單元可被配置成基於所述冗餘區塊中的一或多者來恢復資料。所述儲存處理單元可被配置成因應於對所述冗餘區塊中的一或多者的垃圾收集操作而開始奇偶性重新計算。所述冗餘區塊可被排列於可靠性組中。所述儲存處理單元可被配置成:向在可靠性組中具有冗餘區塊的一或多個其他儲存裝置告知所述可靠性組中欲被抹除的冗餘區塊;以及因應於自在所述可靠性組中具有冗餘區塊的所述一或多個其他儲存裝置接收到進行訊號而抹除所述冗餘區塊。
一種資料儲存系統可包括:第一儲存裝置,可具有架構能力;以及第二儲存裝置,可具有架構能力且經由網路架構連接至所述第一儲存裝置,其中所述第一儲存裝置及所述第二儲存裝置可被配置成:自使用者接收使用者資料;以及協同地將所述使用者資料抹除編碼成冗餘區塊。可由使用者在所述儲存裝置之間分割所述使用者資料,且所述第一儲存裝置及所述第二儲存裝置可被配置成將所述使用者資料獨立於所述使用者對所述使用者資料的所述分割而分組成冗餘區塊。所述冗餘區塊可被排列於可靠性組中。所述第一儲存裝置及所述第二儲存裝置可被配置成基於所述冗餘區塊中的一或多者來恢復資料。
抹除編碼(EC)可指可以系統級實施的儲存系統,其中集中式過程可將使用者資料分割成固定大小的資料塊(data chunk)且基於資料塊計算奇偶性塊。接著可跨越多個儲存裝置分佈資料塊及奇偶性塊,所述儲存裝置可為可不必追蹤哪些塊是資料塊以及哪些塊是奇偶性塊的被動參與者。亦可在使用者及/或應用不必追蹤資料塊及/或奇偶性塊的大小、邊界及/或儲存位置的情況下實施系統級EC。
圖1示出根據本揭露的用於在具有多個儲存裝置的儲存系統中實施抹除編碼的技術。三個不同檔案或其他使用者資料單元被表示為使用者資料1、使用者資料2及使用者資料3。此使用者資料可被提供至使用者、應用、檔案系統及/或分佈式系統100及/或由使用者、應用、檔案系統及/或分佈式系統100產生。(為方便起見,使用者及/或應用及/或檔案系統及/或分佈式系統100可被稱為使用者或使用者/應用。)抹除編碼層102可將使用者資料分割或割分成固定大小的資料塊DC、使用任何合適的EC演算法根據資料塊計算奇偶性塊PC且跨越多個儲存裝置Dev 1至Dev 6分佈資料塊及奇偶性塊。在圖1中所示的系統中,抹除編碼層102可一次性處理四個資料塊且針對每一批四個資料塊計算兩個奇偶性塊。所述四個資料塊及兩個相關聯的奇偶性塊可被稱為可靠性組RG,可靠性組RG跨越Dev 1至Dev 6分佈。舉例而言,在圖1中,示出抹除編碼層102處理來自使用者資料1的四個資料塊且產生兩個奇偶性塊,所述四個資料塊與所述兩個奇偶性塊可形成跨越Dev 1至Dev 6儲存的第一可靠性組RG1。同樣,抹除編碼層102可一起處理來自使用者資料1的兩個其餘資料塊與來自使用者資料2的兩個資料塊,以產生可被儲存為可靠性組RG2的兩個奇偶性塊。相似地,可一起處理來自使用者資料2的一個其餘資料塊與來自使用者資料3的三個資料塊,以產生可被儲存為可靠性組RG3的另外兩個奇偶性塊。
儘管在圖1的頂部處示出使用者資料1、使用者資料2及使用者資料3被劃分成相等大小的塊,然而由於使用者資料的分割可由抹除編碼層102實行,因此提供資料的使用者及/或應用及/或系統可能不知曉塊的數目及/或大小及/或排列形式。因此,使用者資料中的劃分線可被示出為可視化輔助,以理解在EC過程之後原始使用者資料可在儲存裝置Dev 1至Dev 6中的分佈位置。使用者資料1、使用者資料2及使用者資料3以不同類型的陰影示出,以幫助辨識其各自的資料塊的位置。
在圖1中所示的技術中,資料塊及/或奇偶性塊可在邏輯區塊位址(logical block addresse,LBA)上對準。此種資料塊可被稱為邏輯區塊位址單元(LBA單元)或被簡稱為「LBA」。亦即,LBA可指邏輯區塊位址或者在邏輯區塊位址上對準的資料單元。
依據實施細節而定,上述集中式EC技術可能會呈現各種問題及挑戰。舉例而言,寫入資料的集中式編碼(及讀取資料的解碼)可能會導致系統級的處理瓶頸。若不同的儲存裝置具有不相似的類型及/或不同的資料源,則可能會出現此種情況,此在具有多個儲存裝置的系統中可為常見事件。舉例而言,在系統級集中式EC技術中,來自多個分佈式節點的資料可能必須以人工方式流經中央節點,在中央節點中EC的計算在流回至分佈式儲存裝置之前實行。因此,除處理瓶頸之外,在中央處理位置可能存在資料流瓶頸。
集中式EC技術的附加潛在問題在於,更新一個儲存裝置上的資料塊可能需要自其他儲存裝置讀取可靠性組中的一或多個對應的資料塊、為可靠性組重新計算一或多個奇偶性塊且將重新計算的所述一或多個奇偶性塊寫回至其他儲存裝置。該些更新驅動奇偶性重寫可能導致寫入放大,此可能會降低儲存裝置的通量及/或壽命。
集中式EC技術的另一潛在問題在於,集中式EC技術可能通常基於LBA,且因此可對整個故障驅動機進行重建,而並非僅對被寫入至驅動機的實際使用者資料進行重建。此可能會導致儲存裝置的恢復過程長。另外,隨著儲存裝置的大小及/或密度的增大,此可能會出現越來越多的問題。
集中式EC技術的又一潛在問題在於,集中式EC技術可能會導致計算儲存裝置的使用效率低下。計算儲存裝置可在裝置處包括計算資源,使得可在資料所儲存的位置對資料實行計算。此可減少儲存裝置上的輸入/輸出(input/output,I/O)流量以及其他計算、記憶體、儲存器及/或輸入/輸出資源的負擔。然而,若將EC技術應用於計算儲存裝置,則跨越儲存裝置的使用者資料的分割及分佈可由系統級抹除編碼層來控制,系統級抹除編碼層可能不知曉使用者及/或應用的計算策略。因此,儲存裝置中的計算資源可能僅在由EC演算法確定的資料分割上運作,且對於計算而言可能不理想或不高效。在一些情形中,此可能會導致操作效率低下及/或計算儲存裝置的利用率不足。
圖2示出根據本揭露的資料儲存系統的實施例。圖2中所示的系統可包括一組一或多個具有架構能力的儲存裝置110,儲存裝置110中的每一者可包括被配置成將儲存裝置110耦合至網路架構116的網路介面112。每一儲存裝置110亦可包括抹除編碼(EC)邏輯114,抹除編碼邏輯114可被配置成與其他儲存裝置110協同地對經由網路架構116而自使用者、應用、檔案系統或其他資料源120接收的使用者資料118實行抹除編碼。使用者、應用、檔案系統或其他資料源120可被簡單地稱為使用者或使用者/應用。
在圖2中所示的系統中,用於分佈至不同儲存裝置110的使用者資料118的分割可與EC過程中的資料分割去耦合。另外,EC計算可被卸載至儲存裝置110。舉例而言,使用者120可保持對儲存於不同儲存裝置110上的資料塊的大小及邊界位置的控制,而儲存裝置110中的EC邏輯114可開始運行並以與使用者實施的分割不同的力度對資料進行抹除編碼。若儲存裝置110中的任意者具有計算儲存能力,則此可使使用者能夠以適合於使用者的儲存內計算需求的方式及/或改善或最佳化儲存裝置110中的任何計算儲存資源的效率及/或利用率的方式來對使用者資料進行分割,且在儲存裝置110之間分佈使用者資料。此種排列形式亦可使儲存裝置110中的每一者中的EC邏輯114能夠與其他儲存裝置中的EC邏輯進行通訊,以開始EC且自主地將資料排列成任意大小、數目及/或排列形式的冗餘區塊,計算任意大小、數目及/或排列形式的奇偶性區塊且以協同方式將冗餘區塊及奇偶性區塊排列成任意大小、數目及/或排列形式的可靠性組。能夠經由網路架構進行通訊亦可使儲存裝置110能夠實施陳舊資料、無效資料或死的資料的延遲抹除以及如下所述的其他特徵。
可使用任何合適的聯網協定及/或媒體(例如乙太網路(Ethernet)、光纖通道、無線頻寬(InfiniBand)等)以及可使儲存裝置之間能夠達成通訊的任何其他通訊或互連協定(例如快速周邊組件互連(peripheral component interconnect express,PCIe)、串列進階技術附接(advanced technology attachment,ATA)(serial ATA,SATA)、串列附接小型電腦系統介面(small computer system interface,SCSI)(serial attached SCSI,SAS)、OCuLink等)來實施網路架構116,無論是直接亦或經由中間裝備(例如亦可為網路結構116的部件的交換機、集線器等)。
圖3示出根據本揭露的儲存裝置的示例性實施例。圖3中所示的儲存裝置122可包括網路介面124、儲存處理單元(storage processing unit,SPU)126、儲存媒體128、記憶體130及儲存介面132。在此示例性實施例中,網路介面124可包括二或更多個埠134及136且可使用任何合適的聯網協定及/或媒體(例如可用於實施如以上針對圖2所論述的網路架構116的那些網路協定及/或媒體)來實施,無論是直接亦或經由中間裝置(例如交換機、集線器等)。在其他實施例中,可包括多個及/或多種類型的埠及/或介面。在示例性實施例中,可使用乙太網路實施網路介面124。
可使用包括以下的任何合適的處理裝備來實施SPU 126:被實施為系統晶片(system-on-chip,SOC)、現場可程式化閘陣列(field programmable gate array,FPGA)、標準積體電路(integrated circuits,IC)及/或客製積體電路的組合、特殊應用積體電路(application specific integrated circuit,ASIC)及類似積體電路或其任意組合的微處理器、微控制器等。
根據本揭露,SPU 126可包括或實施可用於實施任何抹除編碼功能的EC邏輯。根據本揭露,SPU 126亦可包括或實施可為計算儲存提供處理功能的計算儲存邏輯。根據本揭露,SPU 126亦可包括或實施任何其他功能,例如寫入確認、確定是抹除(垃圾收集)資料或是請求新的EC可靠性組等,如下所述。
可使用固態儲存器(例如圖3中所示的快閃記憶體)以及磁性媒體、光學媒體等、或任何其他合適的儲存媒體或其任意組合來實施儲存媒體128。可使用例如以下任何類型的隨機存取記憶體(random access memory,RAM)來實施記憶體130:圖3中所示的靜態隨機存取記憶體(static RAM,SRAM)及/或動態隨機存取記憶體(dynamic RAM,DRAM)以及持續記憶體(persistent memory,PMEM)、非揮發性隨機存取記憶體(non-volatile RAM,NVRAM)或任何其他類型的記憶體及/或其組合。
可使用圖3中所示的快速非揮發性記憶體(non-volatile memory express,NVMe)以及SATA、SAS或任何其他儲存介面來實施儲存介面132。若至少部分地使用乙太網路或其他網路協定來實施網路介面124,則將NVMe用於儲存介面132可提供架構上NVMe(NVMe over fabric,NVMe-oF)功能。
圖3中所示的儲存裝置122的示例性實施例可例如用於實施以上圖2以及以下圖4中所示的任何或所有儲存裝置110及/或本文中論述或揭露的任何其他儲存裝置。一些其他實施例可並非包括圖3中所示的所有元件,且在一些實施例中,可單獨地、整體地或以元件的任意組合來實施任何或所有組件。
圖4示出根據本揭露的資料儲存系統的另一實施例。圖4中所示的系統可相似於圖2中所示的系統,但可例如包括排列成圓形或環形拓撲或可能夠達成鄰近儲存裝置110之間的高效通訊的任何拓撲的儲存裝置110(例如圖3中所示的那些),以實施根據本揭露的裝置驅動EC。在一些實施例中,網路拓撲可使得能夠在例如不具有使用者或主機的介入的情況下在具有架構能力的儲存裝置之間達成同級間通訊。
圖5示出根據本揭露的用於實施抹除編碼(EC)的技術的示例性實施例。在圖5所示實施例中,出於例示目的,EC技術可自使用者資料(例如使用者資料1、使用者資料2及使用者資料3)開始,所述使用者資料可與圖1中所示的開始使用者資料實質上相同。在圖5中使用不同類型的陰影示出使用者資料,以幫助辨識所述使用者資料各自的資料塊的位置且理解是如何處理所述使用者資料的。
在圖5中所示的實施例中,使用者可將使用者資料分割成不同大小的塊,此可改善或最佳化其中儲存各別塊的儲存裝置中所包括的計算儲存資源(若存在)的效率及/或利用率。舉例而言,使用者可將使用者資料1分割成不同大小的資料塊DC1、DC2、DC3、DC4及DC5,此乃因資料塊DC1、DC2、DC3、DC4及DC5可各自包括一定數量及/或類型的資料,所述資料可以使得可對每一塊高效或最佳化地實行計算的方式相關。使用者可分別在儲存裝置Dev 1、Dev 2及Dev 3上儲存資料塊DC1、DC2及DC3。資料塊DC4及DC5可儲存於儲存裝置Dev 4上。
同樣,使用者可將使用者資料2分割成分別儲存於Dev 1及Dev 3上的資料塊DC6及DC7,且使用者可將使用者資料3分割成分別儲存於Dev 2、Dev 3及Dev 4上的資料塊DC8、DC9及DC10。
另外,使用者可在多於一個儲存裝置上儲存相同資料的多個副本。舉例而言,若相同的資料可與其他儲存裝置上的其他資料一起用於計算,則此可為有益的。圖6至圖8示出根據本揭露的此種資料集及計算的實例。圖6是圖形計算的視覺表示,其中中心值Y可與徑向向外位於Y周圍的其他值一起包括於計算中。若整個圖形需要在兩個儲存裝置之間割分,則如圖7中所示僅在所述裝置中的一者上儲存Y可能需要在儲存裝置之間進行更多的同步及資料傳輸(如由跨所述兩個儲存裝置之間的實線所示)來完成計算。然而,若如圖8中所示Y的副本儲存於兩個儲存裝置上(如由連接Y的兩個副本的虛線所示),則可在儲存裝置之間使用較少的同步以及不使用或使用較少的資料傳輸來完成計算。
使用者資料可以LBA及/或鍵值(key-value,KV)集的形式儲存於儲存裝置中。然而,儲存裝置可將LBA及/或KV分組成冗餘區塊且為儲存於儲存裝置中的使用者資料分派冗餘區塊位址(redundancy block address,RBA)。因此,儲存裝置可實行LBA/KV管理及RBA管理二者。儲存裝置可將LBA/KV使用者資料分組成RBA,在一些實施例中,RBA可最有可能是可能被一起抹除的連續新寫入資料的區塊。可以任何合適的大小實施RBA。在圖5中所示的實例中,每一RBA可包括兩個或三個LBA。RBA可指冗餘區塊位址以及儲存於RBA邊界上的資料區塊。
再次參照圖5,儲存裝置可彼此進行通訊,以對一個裝置中新寫入的使用者資料與另一裝置中新寫入的資料進行分組。在將使用者資料分組成RBA之後,儲存裝置中的每一者中的EC邏輯可開始及/或參與EC奇偶性計算,以計算一或多個奇偶性RBA,所述一或多個奇偶性RBA可與資料RBA一起最終被分組成一或多個可靠性組。作為另外一種選擇或另外地,EC邏輯亦可對資料RBA實行本地計算(例如壓縮、加密及/或類似本地計算)以對欲被發送至一或多個其他裝置的資料進行轉換。儲存裝置中的每一者可決定及/或與其他裝置協商RBA的大小以及何時為資料RBA開始抹除編碼。在該些協商之後,可由儲存裝置協同地決定可靠性組的大小及排列形式、參與的鄰近裝置等。
根據本揭露的原理,RBA的抹除編碼的定時可基於各種考量因素。舉例而言,一組RBA的抹除編碼可被延遲,直至RBA中的一或多者已被填充至使用者資料的百分比的特定絕對量為止。作為另一實例,一組RBA的抹除編碼可被延遲,直至已經過某個時間臨限為止。在另一實例中,一組RBA的抹除編碼的定時可基於用於供應、過度供應等的足夠RBA的可用性來確定。另外,可使用該些考量因素及/或其他考量因素的任意組合確定抹除編碼的定時。
再次參照圖5,基於儲存於Dev 1至Dev 4上的冗餘區塊中的使用者資料,儲存裝置中的EC邏輯可計算分別儲存於儲存裝置Dev 5及Dev 6上的奇偶性塊PC1及PC2的值。
因此,使用者可能已將使用者資料1至使用者資料3分割成資料塊DC1至DC10且可以最適合其計算儲存需求的方式將資料塊寫入至儲存裝置Dev 1至Dev 4中。單獨地,儲存裝置可能已獨立地及/或自主地將資料塊分組成冗餘區塊RB1至RB4且在冗餘區塊RB5及RB6中計算奇偶性資料。冗餘區塊RB1至RB6可作為可靠性組被共同處置。
因此,在圖5中所示的實施例中,與抹除編碼相關的讀取及寫入可為基於RBA的,而使用者資料的讀取及寫入可為基於LBA/KV的。另外,儘管儲存裝置可具有下伏的LBA結構,然而EC邏輯可將LBA重新排列成對EC可更高效的RBA結構。另外,EC邏輯可能不會割分已由使用者分組的任何使用者資料。
在圖5中所示的實施例中,冗餘區塊可與儲存驅動機上的資料條帶(例如,資料條帶1至資料條帶4)及奇偶性條帶(例如,奇偶性條帶1及奇偶性條帶2)對準,但可使用任何其他合適的對準。
圖9是示出根據本揭露的寫入及編碼操作的實施例的序列圖。所述操作可在事件E01處開始,其中使用者/應用142將寫入資料傳送至具有架構能力且能夠進行EC的儲存裝置的組144(例如,儲存裝置144A至儲存裝置144n)中的第一儲存裝置144A。在事件E02處,第一儲存裝置144A可將第一寫入確認傳送回使用者/應用142。第一寫入確認可指示第一儲存裝置144A接收到寫入資料,但可不指示第一儲存裝置144A已被抹除編碼。在事件E03處,第一儲存裝置144A可與所述組中的其他儲存裝置中的一或多者進行通訊,以開始寫入資料的抹除編碼。可在可具有新的資料及/或經更新的資料以抹除編碼的任意數目的儲存裝置之間以及在任何時間基於由各種儲存裝置接收的資料量、RBA的可用性、任何時間臨限等協作地實行抹除編碼操作(例如,裝置驅動抹除編碼)146。抹除編碼操作146可相似於例如以上針對圖5示出的實施例。在事件E04處,可完成對來自使用者/應用142的寫入資料的抹除編碼。在事件E05處,第一儲存裝置144A可向使用者/應用142發送第二寫入確認。第二確認可為指示寫入資料已被儲存及抹除編碼的可靠確認(例如,可靠寫入確認)。
圖9中所示的寫入及編碼操作可為其他此類操作(例如,相同的使用者/應用142及/或其他使用者/應用開始將資料傳輸至組144中的相同儲存裝置或其他儲存裝置)的一部分或者與其他此類操作並行發生。因此,抹除編碼操作146可跨越多個儲存裝置對來自多個源的寫入資料進行編碼。
一些儲存裝置可能具有重寫限制,此可能會限制裝置寫入至特定儲存位置的能力。舉例而言,具有反及(not-AND,NAND)快閃儲存媒體的儲存裝置可僅能夠抹除整個抹除區塊中的資料。為更新任何給定抹除區塊中的資料的一部分,可將經更新的資料與抹除區塊中可能不需要更新的其他資料一起寫入至新的區塊。此更新可能會觸發使用系統級抹除編碼的儲存系統中奇偶性資料的重新計算及重寫。可對舊的資料進行標記,以便稍後在垃圾收集過程中抹除。因此,使用者資料的先前版本可在利用垃圾收集過程的儲存裝置中存在相當長的時間。
如上所述,由資料更新觸發的奇偶性資料的重新計算及重寫可能會導致寫入放大,此可能會降低儲存裝置的效能及壽命。在根據本揭露的具有被卸載抹除編碼的系統中,利用垃圾收集過程的儲存裝置可能夠利用資料的先前版本來以如下方式實施抹除編碼:可減少由更新觸發的奇偶性重新計算引起的讀取放大及寫入放大。另外,在一些實施例中,根據本揭露的裝置驅動抹除編碼亦可利用垃圾收集之前的舊的資料,以利於對先前的其他冗餘區塊的恢復及/或修復。
圖10示出根據本揭露的裝置驅動EC過程可如何與利用垃圾收集的儲存裝置中的抹除操作交作的實例。儲存裝置Dev 1、Dev 2及Dev 3可各自包括排列成列的多個LBA,所述多個LBA可形成例如用於反及快閃儲存器的抹除區塊。在此實例中,EC過程可將使用者資料劃分成RBA,所述RBA各自包括三個LBA。舉例而言,Dev 1中的RBAx、Dev 2中的RBAy及Dev 3中的RBAz可形成可靠性組(或抹除組),其中RBAz可包括所述組的奇偶性資料。
若LBA 1中的資料需要更新,則可使用經更新的資料將LBA 1中的資料與頂部列中形成抹除區塊的所有其他LBA一起重新寫入於如圖10中所示的下一列中。在具有系統級EC的系統中,當LBA 1被更新時,LBA 1可觸發抹除區塊(即,頂部列)中的每個LBA的立即更新。
然而,在根據本揭露的具有裝置驅動EC的系統中,由於例如一或多個LBA可位於與發生改變的資料不同的RBA中,因此可能不需要為抹除區塊中的每個LBA更新奇偶性資料。在圖10中所示的實例中,RBAx中的資料可能並未因更新至LBA1而發生改變,且在整個頂部列(抹除區塊)被垃圾收集之前可能不會發生改變。因此,RBAx的奇偶性重新計算及重寫可能會延遲,直至發生垃圾收集為止,此可減少讀取放大及寫入放大。因此,在根據本揭露的儲存裝置中,抹除編碼的一些計算可綁定至垃圾收集而非資料更新。
圖11是示出根據本揭露的用於協調抹除編碼與垃圾收集的過程的示例性實施例的序列圖。在所述過程開始時,例如由於垃圾收集可能即將到來,因此具有構造能力且能夠進行EC的儲存裝置的組150(例如,儲存裝置150A至儲存裝置150n)中的第一儲存裝置150A可確定欲被抹除的RBA。此RBA可為可靠性組X的一部分。所述過程可在事件E01處開始,此時第一儲存裝置150A可向在可靠性組X中可具有RBA的所有其他儲存裝置告知第一儲存裝置150A中的RBA即將被抹除。在可靠性組X中具有RBA的所有其他儲存裝置可進行決策過程152,其中每一儲存裝置可檢查可靠性組X中的其自己的RBA且判斷是否應將可靠性組X中的其RBA標記為進行垃圾收集,或者請求將可靠性組X中的其RBA加至新的可靠性組(抹除組)。在將可靠性組X中的每一其他儲存裝置的RBA標記為垃圾收集或者請求(且驗證完成)將可靠性組X中的每一其他儲存裝置的RBA加至新的可靠性組之後,每一其他儲存裝置可在事件E02處向第一儲存裝置150A發送進行訊號。因此,若LBA區塊被確定為死的,則包含該LBA的RBA可在對RBA進行垃圾收集之前在可跨越可能仍然潛在地需要該RBA進行恢復的每個其他儲存裝置進行檢查。
在自在可靠性組X中具有RBA的每個其他儲存裝置接收到進行訊號之後,第一儲存裝置150A可在事件E03處向在可靠性組X中具有RBA的每個其他儲存裝置告知開始垃圾收集過程。在可靠性組X中具有RBA的每一其他儲存裝置完成對可靠性組X中的其RBA的垃圾收集過程之後,所述每一其他儲存裝置可在事件E04處向第一儲存裝置150A發送垃圾收集完成訊號。接著第一儲存裝置150A可在事件E05處向先前在可靠性組X中具有RBA的每個其他儲存裝置告知開始可靠性組X的抹除過程。在可靠性組X中具有RBA的每一其他儲存裝置完成對可靠性組X的抹除過程之後,所述每一其他儲存裝置可在事件E06處向第一儲存裝置150A發送抹除完成訊號。
除非偵測到錯誤,否則根據本揭露的具有EC的系統或裝置中的讀取操作可與系統中的讀取操作相同地進行,在此種情況中,儲存裝置可開始錯誤恢復過程。
圖12是示出根據本揭露的一些資料讀取操作以及修復及/或重建過程的實施例的序列圖。使用者/應用154可在事件E01處藉由向具有架構能力且能夠進行EC的儲存裝置的組156(例如,儲存裝置156A至儲存裝置156n)中的第一儲存裝置156A發送讀取請求來開始資料讀取。在此讀取中可能尚未偵測到錯誤,因此第一儲存裝置156A可在事件E02處將讀取資料返回。使用者/應用154可在事件E03處開始第二次資料讀取。在此讀取操作期間可能已偵測到錯誤,因此第一儲存裝置156A可在事件E04處開始修復及重建操作158。
在修復及/或重建操作158期間,儲存裝置的組156中的一或多者可利用其能力來對包含使用者資料的一或多個RBA的全部或部分進行重建。此可藉由例如儲存裝置的組156中的一或多者維護關於與它們的RBA相關聯的可靠性組的元資料來促成。資料可例如作為LBA及/或KV儲存於RBA中,且因此儲存裝置中的一或多者可維護LBA及/或KV映射表。儲存裝置中的一或多者亦可實施可為自描述性的及/或包含關於哪些LBA及/或KV包括於RBA中的資訊的RBA。RBA亦可包括時間戳記及/或序列號資訊,以利於資料恢復。
因此,若儲存裝置發生故障,則儲存裝置可使用上述元資料、映射表、時間戳記、序列號及/或任何其他資訊中的任何一個或全部來藉由將LBA及/或KV儲存至新的RBA及/或為新的RBA重建映射表來重建新的RBA。由於儲存裝置中的一或多者可已存取上述的任何或所有資訊,因此儲存裝置中的所述一或多者可能夠僅對活的RBA而非整個儲存裝置中所有可能的RBA進行重建。舉例而言,藉由網路構造進行互連的鄰近的儲存裝置可知曉哪些活的RBA需要修復。因此,僅可對冗餘區塊而非整個儲存裝置進行恢復。
在事件E05處完成修復及/或重建操作158之後,可在事件E06處使恢復的讀取資料返回至使用者/應用154。
在一些實施例中,使用者可能已分割用於進行計算儲存的使用者資料可在LBA邊界上對準。在此種實施例中,LBA對準的塊可儲存於定向區塊裝置及/或鍵值裝置中,在此種情形中,該些使用者資料塊的儲存及/或管理可為明確的。在其中使用者資料可能不與LBA邊界對準的實施方案中,使用者資料可儲存於KV裝置中,在此種情形中,裝置本身可處置可相對簡單且高效的資料結構的大小管理。作為另外一種選擇,在其中使用者資料可能不與LBA邊界對準的實施方案中,可基於資料塊及/或LBA大小來建立上限,且使用者資料可儲存於上限所容許的盡可能多的LBA中。在此種實施方案中,空間效率及管理開銷可與其他儲存系統相當。作為另一替代方案,在其中使用者資料可能不與LBA邊界對準的實施方案中,來自不同使用者塊的資料可被分封至單個LBA中,所述單個LBA具有足以辨識不同塊的精細度的索引資訊。此種實施例可高效利用空間且採用附加的資源來管理與分封及解封使用者資料相關聯的開銷。
本文中揭露的實施例可已在各種實施細節的上下文中進行闡述,但本揭露的原理並非僅限於該些或任何其他具體細節。舉例而言,一些功能可能已被闡述為由某些組件實施,但在其他實施例中,所述功能可分佈於位於不同位置且具有各種使用者介面的不同系統及組件之間。某些實施例已被闡述為具有特定的過程、步驟等,但該些用語亦囊括其中特定過程、步驟等可使用多個過程、步驟等實施的實施例或者其中多個過程、步驟等可被整合至單個過程、步驟等中的實施例。當提及組件或元件時可僅指組件或元件的一部分。除非上下文另外明確指示,否則在本揭露及申請專利範圍中使用例如「第一(first)」及「第二(second)」等用語可僅是出於區分所述用語所修飾的事物的目的且可能並不指示任何空間次序或時間次序。提及第一事物可能並不表示存在第二事物。
根據本專利揭露的發明原理,可對上述各種細節及實施例進行組合以生成附加的實施例。由於可在不背離本發明概念的條件下對本專利揭露的發明原理進行排列形式及細節上的潤飾,因此此種變更及潤飾被認為落於以下申請專利範圍的範圍內。
100:分佈式系統
102:抹除編碼層
110、122:儲存裝置
112、124:網路介面
114:抹除編碼(EC)邏輯
116:網路架構
118:使用者資料
120:使用者、應用、檔案系統或其他資料源/使用者
126:儲存處理單元(SPU)
128:儲存媒體
130:記憶體
132:儲存介面
134、136:埠
142、154:使用者/應用
144、150、156:組
144A、150A、156A:第一儲存裝置/儲存裝置
144n、150n、156n:儲存裝置
146:抹除編碼操作
152:決策過程
158:修復操作及重建操作
DC、DC1、DC2、DC3、DC4、DC5、DC6、DC7、DC8、DC9、DC10:資料塊
Dev 1、Dev 2、Dev 3、Dev 4、Dev 5、Dev 6:儲存裝置
E01、E02、E03、E04、E05、E06:事件
PC、PC1、PC2:奇偶性塊
RB1、RB2、RB3、RB4、RB5、RB6:冗餘區塊
RG、RG2、RG3:可靠性組
RG1:第一可靠性組
Y:中心值
各圖未必按比例繪製,且出於例示目的,在所有圖中具有相似的結構或功能的元件一般由相同的參考編號表示。各圖僅旨在利於達成對本文中闡述的各種實施例的說明。各圖並未闡述本文中所揭露的教示的每個態樣,且不對申請專利範圍的範圍進行限制。為防止圖式變得模糊,可能並未示出所有的組件、連接等,且並非所有的組件皆可具有參考編號。然而,組件配置的圖案在圖式中可容易地顯而易見。附圖與說明書一同例示出本揭露的示例性實施例,且與說明一同用於闡釋本揭露的原理。
圖1示出根據本揭露的用於在具有多個儲存裝置的儲存系統中實施抹除編碼的技術。
圖2示出根據本揭露的資料儲存系統的實施例。
圖3示出根據本揭露的儲存裝置的示例性實施例。
圖4示出根據本揭露的資料儲存系統的另一實施例。
圖5示出根據本揭露的用於實施抹除編碼的技術的示例性實施例。
圖6是根據本揭露的圖形計算的視覺表示。
圖7示出根據本揭露的可對在多個儲存裝置之間割分的資料進行操作的圖形計算。
圖8示出根據本揭露的用於在多個儲存裝置之間割分圖形計算的技術的示例性實施例。
圖9是示出根據本揭露的寫入及編碼操作的實施例的序列圖。
圖10示出根據本揭露的裝置驅動抹除編碼過程可如何與根據本揭露的利用垃圾收集的儲存裝置中的抹除操作交作的實例。
圖11是示出根據本揭露的用於協調抹除編碼與垃圾收集的過程的示例性實施例的序列圖。
圖12是示出根據本揭露的資料讀取操作以及修復及/或重建過程的實施例的序列圖。
110:儲存裝置
112:網路介面
114:抹除編碼(EC)邏輯
116:網路架構
118:使用者資料
120:使用者、應用、檔案系統或其他資料源/使用者
Claims (20)
- 一種儲存資料的方法,包括:在經由網路架構連接的二或多個儲存裝置處接收使用者資料;在所述二或多個儲存裝置處將所述使用者資料劃分成具有被抹除編碼資料的區塊;以及將所述區塊儲存於所述儲存裝置中的至少二者上;其中由所述儲存裝置對所述區塊進行分組。
- 如請求項1所述的方法,其中:所述區塊被排列於可靠性組中;且所述儲存裝置中的一或多者維護關於其區塊的所述可靠性組的元資料。
- 如請求項1所述的方法,其中:所述儲存裝置中的至少一者能夠進行計算儲存;且使用者基於欲對所述使用者資料實行的計算而在所述儲存裝置之間分割所述使用者資料。
- 如請求項1所述的方法,其中所述儲存裝置中的至少一者基於對所述被抹除編碼資料發送可靠寫入確認。
- 如請求項1所述的方法,更包括:基於活的區塊來恢復資料。
- 如請求項1所述的方法,其中所述區塊中的一或多者是自描述性的以利於恢復資料。
- 如請求項1所述的方法,其中: 所述區塊被排列於可靠性組中;所述儲存裝置中的一或多者向在可靠性組中具有區塊的至少一個其他儲存裝置告知所述可靠性組中欲被抹除的區塊;且所述儲存裝置中的一者基於自在所述可靠性組中具有所述區塊的另一儲存裝置接收到進行訊號而抹除所述區塊。
- 如請求項1所述的方法,其中所述二或多個儲存裝置中的第一儲存裝置向所述二或多個儲存裝置中的第二儲存裝置告知欲被抹除的冗餘區塊。
- 如請求項8所述的方法,其中所述第一儲存裝置基於自所述第二儲存裝置接收到進行訊號而抹除所述區塊。
- 如請求項1所述的方法,其中:所述區塊被排列於可靠性組中;所述二或多個儲存裝置中的第一儲存裝置:被所述二或多個儲存裝置中的第二儲存裝置告知:可靠性組中的區塊將被所述第二儲存裝置抹除;以及檢查所述可靠性組中的所述第一儲存裝置自己的區塊。
- 如請求項10所述的方法,其中所述第一儲存裝置向所述第二儲存裝置發送進行訊號。
- 如請求項10所述的方法,其中所述第一儲存裝置向在所述可靠性組中具有區塊的一或多個其他儲存裝置發送欲將所述可靠性組中的所述第一儲存裝置自己的區塊加至新的可靠性組的請求。
- 如請求項1所述的方法,其中:所述區塊被排列於可靠性組中;且所述二或多個儲存裝置基於可靠性組中的區塊的抹除而重新計算所述可靠性組的奇偶性。
- 一種儲存裝置,包括:儲存媒體;網路介面,被配置成經由網路架構而與一或多個其他儲存裝置進行通訊;以及儲存處理單元,被配置成與所述一或多個其他儲存裝置協同地將使用者資料劃分成具有被抹除編碼資料的區塊。
- 如請求項14所述的儲存裝置,其中所述儲存處理單元被配置成基於所述區塊中的一或多者來恢復資料。
- 如請求項14所述的儲存裝置,其中所述儲存處理單元被配置成基於對所述區塊中的一或多者的垃圾收集操作而開始奇偶性重新計算。
- 如請求項14所述的儲存裝置,其中:所述區塊被排列於可靠性組中;且所述儲存處理單元被配置成:向在可靠性組中具有區塊的一或多個其他儲存裝置告知所述可靠性組中欲被抹除的區塊;以及基於自在所述可靠性組中具有所述區塊的所述一或多個其他儲存裝置接收到進行訊號而抹除所述區塊。
- 一種資料儲存系統,包括:第一儲存裝置,具有架構能力;以及第二儲存裝置,具有架構能力且經由網路架構連接至所述第一儲存裝置;其中所述第一儲存裝置及所述第二儲存裝置被配置成:自使用者接收使用者資料;以及協同地將所述使用者資料劃分成具有被抹除編碼資料的區塊。
- 如請求項18所述的資料儲存系統,其中:由使用者在所述第一儲存裝置與所述第二儲存裝置之間分割所述使用者資料;且所述第一儲存裝置及所述第二儲存裝置被配置成將所述使用者資料獨立於所述使用者對所述使用者資料的分割而排列成區塊。
- 如請求項18所述的資料儲存系統,其中所述第一儲存裝置及所述第二儲存裝置被配置成基於所述區塊中的一或多者來恢復資料。
Applications Claiming Priority (4)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US202062967573P | 2020-01-29 | 2020-01-29 | |
| US62/967,573 | 2020-01-29 | ||
| US15/930,422 | 2020-05-12 | ||
| US15/930,422 US11210002B2 (en) | 2020-01-29 | 2020-05-12 | Offloaded device-driven erasure coding |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202129500A TW202129500A (zh) | 2021-08-01 |
| TWI855220B true TWI855220B (zh) | 2024-09-11 |
Family
ID=74186596
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW110103180A TWI855220B (zh) | 2020-01-29 | 2021-01-28 | 儲存資料的方法、儲存裝置及資料儲存系統 |
Country Status (5)
| Country | Link |
|---|---|
| US (4) | US11210002B2 (zh) |
| EP (1) | EP3859527B1 (zh) |
| KR (1) | KR102688568B1 (zh) |
| CN (1) | CN113268374A (zh) |
| TW (1) | TWI855220B (zh) |
Families Citing this family (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12498869B2 (en) | 2021-08-10 | 2025-12-16 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for hierarchical aggregation for computational storage |
| US12074962B2 (en) | 2021-08-10 | 2024-08-27 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for dividing and encrypting data |
| US12413243B2 (en) | 2021-08-10 | 2025-09-09 | Samsung Electronics Co., Ltd. | Systems, methods, and apparatus for dividing and compressing data |
| US12481429B2 (en) | 2022-03-23 | 2025-11-25 | Samsung Electronics Co., Ltd. | Client and network based erasure code recovery |
| CN114895856B (zh) * | 2022-07-12 | 2022-09-16 | 创云融达信息技术(天津)股份有限公司 | 一种基于高密度存储硬件的分布式存储系统 |
Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9465692B2 (en) * | 2014-06-25 | 2016-10-11 | Quantum Corporation | High reliability erasure code distribution |
| US20160334996A1 (en) * | 2015-05-15 | 2016-11-17 | ScaleFlux | In-flash immutable object processing |
| US20160371145A1 (en) * | 2014-09-30 | 2016-12-22 | Hitachi, Ltd. | Distributed storage system |
| TW201729068A (zh) * | 2015-11-13 | 2017-08-16 | 三星電子股份有限公司 | 分佈式儲存系統、分佈式儲存方法及分佈式設施 |
| US20190114114A1 (en) * | 2018-12-05 | 2019-04-18 | Intel Corporation | Storage compute offloads on sharded and erasure-coded data |
| US10402266B1 (en) * | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
Family Cites Families (35)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9047306B1 (en) * | 2005-10-17 | 2015-06-02 | Hewlett-Packard Development Company, L.P. | Method of writing data |
| EP2158542B1 (en) | 2006-04-04 | 2019-06-05 | Red Hat, Inc. | Storage assignment and erasure coding technique for scalable and fault tolerant storage system |
| JP2010512584A (ja) | 2006-12-06 | 2010-04-22 | フュージョン マルチシステムズ,インク.(ディービイエイ フュージョン−アイオー) | 空データトークン指令を有する要求デバイスからのデータを管理する装置、システムおよび方法 |
| US7827439B2 (en) * | 2007-09-28 | 2010-11-02 | Symantec Corporation | System and method of redundantly storing and retrieving data with cooperating storage devices |
| US9098519B2 (en) | 2008-09-16 | 2015-08-04 | File System Labs Llc | Methods and apparatus for distributed data storage |
| US8458287B2 (en) * | 2009-07-31 | 2013-06-04 | Microsoft Corporation | Erasure coded storage aggregation in data centers |
| KR20110119408A (ko) * | 2010-04-27 | 2011-11-02 | 삼성전자주식회사 | 데이터 저장 장치 및 그것의 동작 방법 |
| US8713405B2 (en) * | 2011-11-22 | 2014-04-29 | Simplivity Corporation | Method and apparatus for allocating erasure coded data to disk storage |
| US8683296B2 (en) | 2011-12-30 | 2014-03-25 | Streamscale, Inc. | Accelerated erasure coding system and method |
| US8799746B2 (en) | 2012-06-13 | 2014-08-05 | Caringo, Inc. | Erasure coding and replication in storage clusters |
| US8862818B1 (en) * | 2012-09-27 | 2014-10-14 | Emc Corporation | Handling partial stripe writes in log-structured storage |
| US9244761B2 (en) | 2013-06-25 | 2016-01-26 | Microsoft Technology Licensing, Llc | Erasure coding across multiple zones and sub-zones |
| SG11201601215QA (en) * | 2013-08-27 | 2016-03-30 | Agency Science Tech & Res | Raid parity stripe reconstruction |
| US10289547B2 (en) | 2014-02-14 | 2019-05-14 | Western Digital Technologies, Inc. | Method and apparatus for a network connected storage system |
| US9286209B2 (en) * | 2014-04-21 | 2016-03-15 | Avago Technologies General Ip (Singapore) Pte. Ltd. | System, method and computer-readable medium using map tables in a cache to manage write requests to a raid storage array |
| WO2015188008A1 (en) * | 2014-06-04 | 2015-12-10 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
| US9817750B2 (en) * | 2014-07-03 | 2017-11-14 | Pure Storage, Inc. | Profile-dependent write placement of data into a non-volatile solid-state storage |
| US10983859B2 (en) * | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
| US20160219120A1 (en) * | 2015-01-23 | 2016-07-28 | Netapp, Inc. | Methods for providing a staging area for objects prior to erasure coding and devices thereof |
| US10552058B1 (en) * | 2015-07-17 | 2020-02-04 | Radian Memory Systems, Inc. | Techniques for delegating data processing to a cooperative memory controller |
| WO2017161050A2 (en) | 2016-03-15 | 2017-09-21 | Cloud Crowding Corp. | Distributed storage system data management and security |
| JP6696280B2 (ja) * | 2016-04-13 | 2020-05-20 | 富士通株式会社 | 情報処理装置、raid制御方法、およびraid制御プログラム |
| US10254969B2 (en) * | 2016-05-13 | 2019-04-09 | Seagate Technology Llc | Data refresh in flash memory |
| US10740294B2 (en) * | 2017-01-12 | 2020-08-11 | Pure Storage, Inc. | Garbage collection of data blocks in a storage system with direct-mapped storage devices |
| US10079612B1 (en) | 2017-03-15 | 2018-09-18 | Alibaba Group Holding Limited | Distributed erasure coding pool deployed in hyperscale infrastructure |
| US10275180B2 (en) * | 2017-05-08 | 2019-04-30 | Samsung Electronics Co., Ltd. | Ethernet SSD system including storage offload engine (SoE) controller and ethernet switch |
| US20180357017A1 (en) * | 2017-06-12 | 2018-12-13 | Pure Storage, Inc. | Accessible fast durable storage integrated into a bulk storage device |
| US11221958B2 (en) * | 2017-08-29 | 2022-01-11 | Samsung Electronics Co., Ltd. | System and method for LBA-based RAID |
| US10379948B2 (en) * | 2017-10-02 | 2019-08-13 | Western Digital Technologies, Inc. | Redundancy coding stripe based on internal addresses of storage devices |
| US10817392B1 (en) * | 2017-11-01 | 2020-10-27 | Pure Storage, Inc. | Ensuring resiliency to storage device failures in a storage system that includes a plurality of storage devices |
| US10901848B2 (en) * | 2018-08-03 | 2021-01-26 | Western Digital Technologies, Inc. | Storage systems with peer data recovery |
| US11662933B2 (en) * | 2018-10-24 | 2023-05-30 | Kyndryl, Inc. | Datacenter relocation utilizing storage carriers and erasure coding |
| US10673463B2 (en) * | 2018-10-25 | 2020-06-02 | Hewlett Packard Enterprise Development Lp | Combined blocks of parts of erasure coded data portions |
| US11074129B2 (en) | 2019-10-31 | 2021-07-27 | Western Digital Technologies, Inc. | Erasure coded data shards containing multiple data objects |
| US12112055B2 (en) * | 2020-05-04 | 2024-10-08 | Intel Corporation | Erasure coding write hole closure for solid-state drive (SSD) erasure coding |
-
2020
- 2020-05-12 US US15/930,422 patent/US11210002B2/en active Active
- 2020-12-08 KR KR1020200170404A patent/KR102688568B1/ko active Active
-
2021
- 2021-01-18 EP EP21152021.8A patent/EP3859527B1/en active Active
- 2021-01-28 TW TW110103180A patent/TWI855220B/zh active
- 2021-01-29 CN CN202110127952.XA patent/CN113268374A/zh active Pending
- 2021-12-27 US US17/563,019 patent/US12321625B2/en active Active
-
2022
- 2022-06-27 US US17/850,984 patent/US12299302B2/en active Active
-
2025
- 2025-05-30 US US19/224,715 patent/US20250390241A1/en active Pending
Patent Citations (6)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US9465692B2 (en) * | 2014-06-25 | 2016-10-11 | Quantum Corporation | High reliability erasure code distribution |
| US20160371145A1 (en) * | 2014-09-30 | 2016-12-22 | Hitachi, Ltd. | Distributed storage system |
| US20160334996A1 (en) * | 2015-05-15 | 2016-11-17 | ScaleFlux | In-flash immutable object processing |
| TW201729068A (zh) * | 2015-11-13 | 2017-08-16 | 三星電子股份有限公司 | 分佈式儲存系統、分佈式儲存方法及分佈式設施 |
| US10402266B1 (en) * | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
| US20190114114A1 (en) * | 2018-12-05 | 2019-04-18 | Intel Corporation | Storage compute offloads on sharded and erasure-coded data |
Also Published As
| Publication number | Publication date |
|---|---|
| US11210002B2 (en) | 2021-12-28 |
| US12299302B2 (en) | 2025-05-13 |
| US20220326852A1 (en) | 2022-10-13 |
| US20250390241A1 (en) | 2025-12-25 |
| KR20210097014A (ko) | 2021-08-06 |
| US20210232310A1 (en) | 2021-07-29 |
| EP3859527B1 (en) | 2024-05-01 |
| EP3859527A3 (en) | 2021-11-24 |
| KR102688568B1 (ko) | 2024-07-25 |
| CN113268374A (zh) | 2021-08-17 |
| US20220121363A1 (en) | 2022-04-21 |
| EP3859527A2 (en) | 2021-08-04 |
| TW202129500A (zh) | 2021-08-01 |
| US12321625B2 (en) | 2025-06-03 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI855220B (zh) | 儲存資料的方法、儲存裝置及資料儲存系統 | |
| CN101996233B (zh) | 用于对经重复删除的数据进行复制的方法和系统 | |
| CN107844268B (zh) | 一种数据分发方法、数据存储方法、相关装置以及系统 | |
| CN1965298B (zh) | 用于管理奇偶raid数据重建的方法、系统和设备 | |
| KR101758544B1 (ko) | 비휘발성 메모리 시스템에서의 동기 미러링 | |
| US11150846B2 (en) | Storage system, computer-readable recording medium, and control method for system that reconstructs and distributes data | |
| US12079505B2 (en) | Calculating storage utilization for distinct types of data | |
| CN110720088A (zh) | 集成到大容量存储设备的可访问快速耐久存储 | |
| JP2018508073A (ja) | データ除去、割り当て、及び再構築 | |
| US20180004676A1 (en) | Storage system and storage control method | |
| CN115657960B (zh) | 一种磁盘阵列初始化方法、装置、设备及可读存储介质 | |
| KR20190128443A (ko) | 분산 파일 시스템 복구 장치 및 방법 | |
| US9547616B2 (en) | High bandwidth symmetrical storage controller | |
| CN113342258B (zh) | 用以进行全快闪存储器阵列伺服器的数据存取管理的方法与设备 | |
| US12045133B2 (en) | Storage system | |
| TW202511928A (zh) | 用於使用卸載主機任務的非揮發性儲存裝置進行資料處理的方法、系統及非暫態性處理器可讀取媒體 | |
| JP6807457B2 (ja) | ストレージシステム及びストレージシステムの制御方法 | |
| TWI607303B (zh) | 具有虛擬區塊及磁碟陣列架構之資料儲存系統及其管理方法 | |
| CN110659152B (zh) | 一种数据处理方法及设备 | |
| CN110865901A (zh) | 组建ec条带的方法和装置 | |
| CN117616378A (zh) | 在分区式驱动器存储系统中高效地写入数据 | |
| JP2022101208A (ja) | 分散型ストレージシステム、データ復旧方法、及びデータ処理プログラム |