TW201411401A - 可擴充的儲存保護 - Google Patents
可擴充的儲存保護 Download PDFInfo
- Publication number
- TW201411401A TW201411401A TW102129106A TW102129106A TW201411401A TW 201411401 A TW201411401 A TW 201411401A TW 102129106 A TW102129106 A TW 102129106A TW 102129106 A TW102129106 A TW 102129106A TW 201411401 A TW201411401 A TW 201411401A
- Authority
- TW
- Taiwan
- Prior art keywords
- data
- global
- redundancy
- node
- discs
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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
-
- 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
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0806—Multiuser, multiprocessor or multiprocessing cache systems
- G06F12/0842—Multiuser, multiprocessor or multiprocessing cache systems for multiprocessing or multitasking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
-
- 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/0604—Improving or facilitating administration, e.g. storage management
- G06F3/0607—Improving or facilitating administration, e.g. storage management by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device
-
- 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/061—Improving I/O performance
- G06F3/0613—Improving I/O performance in relation to throughput
-
- 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/0629—Configuration or reconfiguration of 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/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; 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/067—Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
-
- 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/0685—Hybrid storage combining heterogeneous device types, e.g. hierarchical storage, hybrid arrays
-
- 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/0689—Disk arrays, e.g. RAID, JBOD
-
- G—PHYSICS
- G11—INFORMATION STORAGE
- G11B—INFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
- G11B20/00—Signal processing not specific to the method of recording or reproducing; Circuits therefor
- G11B20/10—Digital recording or reproducing
- G11B20/18—Error detection or correction; Testing, e.g. of drop-outs
- G11B20/1803—Error detection or correction; Testing, e.g. of drop-outs by redundancy in data representation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR 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; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1028—Distributed, i.e. distributed RAID systems with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/62—Details of cache specific to multiprocessor cache arrangements
Abstract
本揭示內容和保護可擴充的儲存系統的資料有關。一種可擴充的儲存系統包含複數個節點,該等節點中的每一者皆具有直接附接儲存體(Directly-Attached Storage,DAS),例如,一或更多個硬碟機及/或固態硬碟機。該等節點會透過一節點間通訊網路來耦合,而且該DAS中實質上全部可讓該等節點中的每一者全域性存取。該DAS會運用節點內保護來保護,以便在失效出現於該等節點中的其中一者裡面時保持被儲存在該DAS中的資料為可靠並且可全域性存取。該DAS還會運用節點間保護來進一步保護,以便假如該等節點中的至少其中一者失效的話,保持被儲存在該DAS中的資料為可靠並且可全域性存取。
Description
本發明係關於可擴充的儲存保護。
具有直接附接碟片之可擴充的儲存系統需要冗餘機制來進行資料保護。在單一節點裡面,例如,單一伺服器,會使用各種技術來保護直接附接儲存體(Directly-Attached Storage,DAS),例如,RAID-5、RAID-6、其它RAID層級、或是它們的變化型式。在分散式系統中或是在大型儲存系統中,例如,龐大的JBOD綜合系統,會使用抺除編碼(erasure-coding)技術用以藉由分散錯誤校正編碼於較大數量的碟片中來提供保護。然而,抺除編碼需要運送(也就是,發送與接收)大量的資料。於某些實施例中,資料必須在r個分開的碟片處被更新,用以操縱n個驅動機失效中的r個驅動機失效。當結合節點失效回復時,前面的系統在大量的冗餘性中及/或在必須於節點之間被運送的大量資料中要進行更新或是進行恢復的成本會非常昂貴。
本發明的一實施例關於一種儲存系統,其包含彼此通訊的複數個處理節點。每一個處理節點皆包含會和至少一主機通訊的複數個碟片。該主機會被配置成用以將資料寫至該等複數個碟片中的一選定碟片。
一局部性冗餘計算單元被配置成用以運用由該主機寫至該選定碟片的資料來決定局部性冗餘資料。該局部性冗餘計算單元會進一步被配置成用以將局部性冗餘資料儲存在該等複數個碟片中的至少一碟片中。一差量(delta)計算單元會被配置成用以運用由該主機寫至該選定碟片的資料來決定差量資料。該差量計算單元會進一步被配置成用以將差量資料發送給至少一其它處理節點。一全域性冗餘計算單元會被配置成用以從至少一其它處理節點處接收差量資料。該全域性冗餘計算單元會進一步被配置成用以運用接收自該其它處理節點處的差量資料來決定全域性冗餘資料並且將全域性冗餘資料儲存在該等複數個碟片中的至少一碟片中。
應該瞭解的係,前面的一般性說明以及後面的詳細說明並未必然限制本揭示內容。本說明書中所併入並且構成本說明書一部分的隨附圖式則圖解本揭示內容的實施例。
100‧‧‧儲存系統
102A‧‧‧處理節點
102B‧‧‧處理節點
102M‧‧‧處理節點
104A‧‧‧局部性主機
104B‧‧‧局部性主機
104M‧‧‧局部性主機
106A‧‧‧局部性直接附接儲存體(DAS)
106B‧‧‧局部性直接附接儲存體(DAS)
106C‧‧‧局部性直接附接儲存體(DAS)
106D‧‧‧局部性直接附接儲存體(DAS)
106E‧‧‧局部性直接附接儲存體(DAS)
106F‧‧‧局部性直接附接儲存體(DAS)
106X‧‧‧局部性直接附接儲存體(DAS)
106Y‧‧‧局部性直接附接儲存體(DAS)
106Z‧‧‧局部性直接附接儲存體(DAS)
108A‧‧‧局部性I/O控制器
108B‧‧‧局部性I/O控制器
108M‧‧‧局部性I/O控制器
110A‧‧‧局部性冗餘計算單元
110B‧‧‧局部性冗餘計算單元
110M‧‧‧局部性冗餘計算單元
112A‧‧‧差量計算單元
112B‧‧‧差量計算單元
112M‧‧‧差量計算單元
114A‧‧‧全域性冗餘計算單元
114B‧‧‧全域性冗餘計算單元
114M‧‧‧全域性冗餘計算單元
116‧‧‧節點間通訊網路
熟習本技術的人士參考隨附的圖式可以更瞭解本揭示內容的實施例,其中:圖1所示的係根據本揭示內容的一實施例之可擴充的儲存系統的方塊圖;圖2所示的係根據本揭示內容的一實施例之處理主機資料寫入的方法的流程圖;以及圖3所示的係根據本揭示內容的一實施例之處理差量資料的方法的流程圖。
現在將詳細參考本發明所揭的實施例,該等實施例圖解在隨附的圖式中。
圖1至3大體上圖解用於保護至少一可擴充的儲存系統的系統與方法的實施例。可擴充的儲存系統中的一些挑戰包含提供全域性存取所有的資料及碟片失效回復之組合作用以及提供用於操縱一或更多個處理節點之失效的機制。至少某些前述挑戰可藉由平衡節點內(intra-node)層級冗餘以保護防止節點間失效(例如,硬碟機(Hard Disk Drive,HDD)失效)來達成;節點間(inter-node)層級冗餘則保護防止一或更多個節點的失效,例如,節點間保護的失效。於某些實施例中,以分散的方式在該等節點處進行快取會進一步改良該等節點中每一者的局部性效能,並且藉由致能用於資料保護的寫入早期確認,而改良該可擴充的儲存系統的系統層級效能。
圖1所示的係儲存系統100的實施例,例如,但是並不受限於可擴充之直接附接儲存體(DAS)系統。系統100包含複數個處理節點102,例如,伺服器。該等處理節點102中的每一者包含個別的(也就是,局部性)主機104(例如,一或更多個處理器或CPU)以及個別的(也就是,局部性)DAS 106(例如,複數台碟片驅動機106)。於各個實施例中,該等局部性DAS 106會透過一或更多個個別的(也就是,局部性)I/O控制器108被通訊耦合至局部性主機104。所有該等處理節點102可全域性看見實質上全部的(例如,所有的)儲存體106A至106Z。一特殊處理節點102A的DAS 106A至106C會被稱為該特殊處理節點102A的個別「局部性儲存體」。其它處理節點102B至102M的DAS 106D至106Z則被稱為該特殊處理節點102A的個別「外部儲存體(foreign storage)」。該等處理節點102會透過節點間通訊網路116(例
如,但是並不受限於,串聯附接小型電腦系統介面(SAS)切換式互連)彼此通訊。該等處理節點102會經由該節點間通訊網路116存取實質上全部的儲存體106A至106Z。然而,於某些實施例中,存取一特殊處理節點102A的個別局部性儲存體106A至106C會比存取個別的外部儲存體106D至106Z更快及/或頻寬更高。於某些實施例中,該節點間通訊網路116包含,但是並不受限於,至少一SAS架構、乙太網路、無線頻寬(InfiniBand)網路、高速週邊器件互連(Peripheral Component Interconnect express,PCIe)互連網路、區域網路(Local Area Network,LAN)、廣域網路(Wide Area Network,WAN)、私有網路、或是前面的任何組合。
於某些實施例中,系統100進一步包含用以促成儲存體106之分享的鎖定及/或同調機制。舉例來說,一基於目錄的快取機制會致能追蹤擁有權及/或資料的修正。於某些實施例中,該等處理節點102中的每一者皆包含一用以儲存經常被存取之資料的快取(例如,一碟片快取)。根據各個實施例,該經常被存取之資料的一部分為該處理節點的局部性資料及/或該經常被存取之資料的一部分為外部資料。於某些實施例中,該碟片快取包含,但是並不受限於,固態硬碟機(solid-state disk drive,SSD)。
在多節點儲存系統100中所關心的一些失效場景包含:˙一或更多個輸入/輸出(Input/Output,I/O)裝置失效,例如,處理節點102的HDD或SSD 106;˙通往該等處理節點102中其中一者裡面的該等I/O裝置106中一或更多者的路線失效;˙一處理節點102的一部分或全部失效,例如,主機104
或是節點內通訊基礎結構;以及˙用於耦合該等處理節點102的較高層級通訊基礎結構失效,例如,節點間通訊網路116。
此等失效分類成節點內失效或節點間失效。節點內失效係使得一處理節點102的至少一部分無法使用但卻不會阻止該處理節點102繼續操作(其包含全域性存取該處理節點102的局部性資料)的失效。節點間失效係會使得一處理節點102或是該處理節點102之局部性資料的至少一部分無法使用的失效。某些節點內失效可以在該受影響的處理節點102的層級處修復,而且其它處理節點102無法全域性地看見(可能的效能衝擊除外)。
失效還會以硬性(舉例來說,連續的、可重複的)或是軟性(舉例來說,一次性、暫態的、開機循環之後便會消失的)為特徵。許多節點失效為軟性的,例如,軟體當機,且因此係暫態的或者時間持續長度很短。碟片失效同樣為軟性(舉例來說,可藉由寫入新資料而恢復的暫態、無法修正的錯誤)或硬性(舉例來說,因為磁頭撞毀所導致的碟片失效)。失效時間持續長度和以考量多少個同時發生之各種類型錯誤為基礎來計算失效機率有關(因此,硬性與軟性失效分類結果亦與其有關)。於某些實施例中,假如大部分處理節點失效為軟性失效的話同時有多個處理節點失效的機率會小於假如大部分處理節點失效為硬性失效的話同時有多個處理節點失效的機率。
系統層級失效係多節點儲存系統100的一種失效,例如,儲存在該等處理節點102中任何處理節點102中的主機寫入資料中任何資料的無法恢復性遺失(也就是,沒有冗餘性)或是遺失該等處理節點102中超過指
定數量的處理節點102。於某些實施例中,系統100會被設計成,至少部分被設計成,用以將系統層級失效的機率降低至小於指定的數值。
簡單的抺除編碼解決方案傾向於需要大量的冗餘及/或資料運送。舉例來說,探討m個節點102,每一個皆包含n個碟片106(例如,HDD或SSD),因此,總共有m*n個碟片106。為保護防止任何3個碟片106失效,該等碟片106中至少三個必須包含冗餘資料。任何其它(m*n-3)資料(也就是,非冗餘資料)碟片106的任何寫入皆需要更新該等3個冗餘碟片106。當一主機104(例如,處理器)實施小額、隨機寫入(舉例來說,4KB或8KB寫入)至該等資料碟片106中其中一者時,總共必須進行四個雷同大小的寫入,而且該等四個寫入中的其中三個涉及多個計算(也就是,以主機寫入之前的舊資料以及主機寫入的新資料為基礎來更新該冗餘資料)。再者,假如抺除編碼要操縱一或更多個節點失效的話,該等三個冗餘碟片106較佳的係被放置在不同的節點102處。據此,主機寫入需要進行:從包含選定資料碟片106A的節點102A的該選定資料碟片106A處讀取舊資料;藉由寫入新資料至該選定資料碟片106A而利用主機104所提供的新資料來取代舊資料;計算舊資料與新資料之間的函數,例如,差量(delta);運送該差量至該等三個冗餘碟片106,該等三個冗餘碟片106可能位於不同的節點102;讀取包含該等冗餘碟片106中其中一者的每一個節點102中的冗餘資料的舊版本;運用該差量來決定該冗餘資料的更新值;以及寫回該冗餘資料的新版本。運送該差量至多個節點102會消耗等待時間和電力。於某些實施例中,因為在主機寫入資料為「安全」之前主機寫入並無法被確認,而且主機寫入資料在冗餘資料寫入完成之前並不安全,所以,會發生進一步的延遲。
妥適運用於一節點102裡面之失效的單一保護解決方案(例如,RAID)可能不足以運用在複數個節點102中。前面範例中所解釋的全域性解決方案(例如,抺除編碼)在節點102之間被運送的資料數量方面的成本則可能太過昂貴。再者,各種失效場景有不同的可能性。一般來說,降低系統失效之機率的重要性大於分開降低碟片失效之機率或是節點失效之機率。於某些實施例中,系統100會被配置成用以達成下面之中的一或更多者:較少的資料在節點之間運送;較高的效能;較低的成本(舉例來說,降低一給定系統層級失效機率所需要的冗餘的數量);較低的電力;較低的等待時間;以及其它電力、成本、以及效能指標。舉例來說,個別硬碟機106的失效會非常有可能。所以,於某些實施例中,藉由提供較多冗餘來保護防止硬碟機失效而提供較少冗餘用於節點失效會降低系統失效的機率,從而可降低系統失效的機率,卻不會過度損及效能或者需要高資料運送或冗餘成本。
於一實施例中(參見圖1),系統100包含:第一類型保護(也就是,「內部」、「局部性」、或是「節點內」保護),用以保護被儲存在一節點102裡面的I/O裝置106中的資料;第二類型保護(也就是,「外部」、「全域性」、或是「節點間」保護),用以保護防止一或更多個節點102的失效。前面的可擴充的儲存保護技術會減少為進行保護及進行恢復而必須在節點102之間被運送的資料數量。再者,差量快取機制則縮減用以確認主機寫入被安全儲存所需要的時間。
於某些實施例中,系統100包含分離的機制110、114,用以保護防止局部性(也就是,節點內)失效和全域性(也就是,節點間)失效。於
進一步的實施例中,該等局部性保護機制110和全域性保護機制114會各自被選擇用以降低個別的失效機率,從而將總系統層級失效機率降低至指定的位準。於各個實施例中,該等局部性保護機制110和全域性保護機制114會各自被選擇用以降低為進行冗餘資料儲存,並且從失效中恢復而在節點102之間被運送的資料的數量。
於某些實施例中,有可擴充儲存保護的系統100會提供成本優點。舉例來說,探討前面所述之用於m個節點102的簡單的抺除編碼,每一個節點102皆具有n個碟片106而且必須保護防止3個碟片失效,並且假設該等冗餘碟片106全部在不同的節點102中。該簡單的抺除編碼方式會運送寫入資料三倍的資料給其它節點102,以達冗餘之目的。由有可擴充儲存保護的系統100所提供的多層保護容許彈性平衡。舉例來說,於某些實施例中,系統100係以各種失效機率(舉例來說,硬性失效和軟性失效)或費用因素(舉例來說,運送資料的費用)為基礎來設計。
於有可擴充儲存保護的系統100的一示範性實施例中,並不使用上面所述之簡單的抺除編碼方式;取而代之的係,該等節點102之每一者處的n個碟片106中的其中兩者包含該節點102的冗餘局部性資料,而該等m個節點102(也就是,冗餘節點)中的一或更多者則包含全域性冗餘資料。於具有一冗餘節點102的實施例中,當一主機104實施小額、隨機寫入(舉例來說,4KB或8KB寫入)至該等資料碟片106中其中一者時,總共必須進行四個雷同大小的寫入;但是,該等雷同大小寫入中的其中三個為局部性(也就是,主機寫入資料以及兩個局部性冗餘資料寫入)。該等雷同大小的寫入中僅有其中一者必須被運送至冗餘節點102。相較於簡單的抺除編碼範
例,要被運送的資料的數量減少(舉例來說,多達2/3)。在前面的範例中,有可擴充儲存保護的系統100能夠操縱至少三個碟片失效。於某些實施例中,該系統100能夠操縱每個節點102的兩個碟片失效。
在前面的範例中,一節點102中的三個碟片失效實質上等同或是雷同於一節點102的失效,因為每一個節點102的兩個冗餘碟片106僅能夠修正該節點102處之n個碟片106中其中兩者的失效。於某些實施例中,節點內保護失效的機率會包含在該節點102失效的機率中並且被用來,至少部分被用來,決定節點間保護的必要程度。該簡單的抺除編碼方式能夠操縱高達三個節點失效;但是,結果係,會使用該等節點102中較高的百分比來處理全域性冗餘資料。假如節點失效機率小於碟片失效機率的話,該可擴充的儲存保護替代例會在I/O運送以及冗餘至少其中一者中以較低的成本提供等同或更佳的保護。
前面的範例解釋有可擴充儲存保護的系統100優於受到簡單抺除編碼保護之系統的至少部分優點。然而,該等範例並沒有限制本揭示內容的任何用意。根據不同的實施例,系統100包含用以施行本文中大體上說明之可擴充的儲存保護技術的選定參數和配置的任何組合。於一實施例中,系統100包含m個節點102,每一者皆有n個碟片106。該系統100被配置成用以讓k個節點失效(舉例來說,k=2)仍能運作。每一群g個碟片皆包含至少h個冗餘碟片106,以便足以操縱碟片層級失效(舉例來說,g=10個碟片106中的冗餘碟片為h=3)。
於某些實施例中,藉由h的近似擴充g=n。據此,系統100總共包含m*n個碟片106,而該等碟片106中的h*m個會儲存冗餘資料。
為在m個節點失效中讓其中k個仍能運作,位於一碼字(舉例來說,一保護群)中的冗餘碟片106會位於至少k個不同的節點102中。該等m個節點102中沒有任何一者能夠讓該等冗餘碟片106中有大於h*m/k個受到相同碼字的保護。否則,k個節點失效便可能無法繼續運作。所以,於一實施例中,n大於h*m/k,或者,冗餘資料必須存在於該等節點102中k個以上的節點102中。舉例來說,假如n=10、m=8、h=3、以及k=2;那麼,80個碟片之中需要有24個冗餘碟片106。然而,因為每一個節點102僅有10個碟片106,所以,即使k僅為2,該等冗餘碟片仍必須分散在至少三個節點中。
抺除編碼雖然可能符合可靠度需求;然而,它卻有包含下面的數項缺點。g個之中取h個的抺除碼在計算成本上相當昂貴。假如h大於k的話,那麼,任一個節點102都必須處理多次抺除碼更新(從而導致不平衡的計算工作量);或者,必要的I/O運送會和h成正比,而不是和k成正比。假如n小於h*m/k的話,那麼,I/O運送會大於和k成正比。即使從單一碟片失效中恢復通常仍需要I/O運送。再者,系統層級效能通常很差,因為至少一已失效的碟片106係共用的而且通常需要I/O運送以進行恢復。
有可擴充儲存保護的系統100包含一使用局部性冗餘來保護防止節點內失效(例如,碟片失效)的節點內保護機制110以及一使用全域性冗餘來保護防止節點間失效(例如,節點失效)的節點間保護機制114。根據不同的實施例,系統100提供包含下面之中一或更多者的數項優點:I/O運送以選定數量之可繼續運作的節點失效為基礎並且正交於碟片失效之操縱;硬碟失效可局部性恢復無須進行I/O運送,高達一指定的可靠度位準可以節點內保護來恢復;使用更短、更簡單的編碼類型來達成指定位準的系
統失效機率,從而容許更有效的硬體;以及其它效能、效率、及/或可擴充能力的優點。
節點內保護機制110包含一或更多種編碼類型,例如,下面之中的一或更多者:RAID-1;RAID-2;RAID-3;RAID-4;RAID-5;RAID-6;任何其它RAID層級;抺除碼,例如,里德索羅門碼(Reed-Solomon code)、噴泉碼(fountain code)、猛禽碼(Raptor code)、無率式抺除碼(rate-less erasure code)、或是線上碼(Online code);以及前面的任何組合。節點間保護機制114包含一或更多種編碼類型,例如,下面之中的一或更多者:RAID-1;RAID-2;RAID-3;RAID-4;RAID-5;RAID-6;任何其它RAID層級;抺除碼,例如,里德索羅門碼、噴泉碼、猛禽碼、或是線上碼;以及前面的任何組合。
被儲存在受到該節點內保護機制110或是該節點間保護機制114的其中一種實例保護的複數個碟片106中的資料稱為碼字。舉例來說,被儲存在五個碟片(如同在RAID-5中,其中一者為冗餘)中的資料代表一用於該資料之每一個可分開讀取和修正集的碼字。RAID-5可操作在位元組層級,而許多碟片卻僅能讀取512個位元組區段的資料,所以,於此情況中,每一個碼字會是512個位元組區段,一區段係來自該等五個碟片中的每一者。
於某些實施例中,節點內保護機制110和節點間保護機制114兩者被配置成用於同一個編碼類型。舉例來說,於不同的實施例中,節點內保護機制110和節點間保護機制114兩者皆使用雙抺除校正碼,例如在RAID-6中;或者,兩者皆可能使用單抺除校正碼,例如在RAID-5中。於其它實施例中,節點內保護機制110和節點間保護機制114則使用不同的編
碼類型。舉例來說,於某些使用場景中,節點內保護機制110使用雙抺除校正碼;而節點間保護機制114使用單抺除校正碼,例如在RAID-5中。
節點內保護機制110和節點間保護機制114的計算係根據個別的編碼類型。舉例來說,單抺除校正碼的RAID-5編碼類型需要用到XOR計算;而RAID-6編碼類型則需要用到根據雙抺除校正碼的計算,例如,里德索羅門碼。
系統的該等複數個處理節點102中的每一者皆包含至少一主機104(例如,處理器),用以和每一個節點102的複數個碟片106進行通訊。於某些實施例中,主機104包含,但是並不受限於,至少一單核心或多核心CPU。於某些實施例中,一I/O控制器108會被配置成用以將該等碟片106耦合至該主機104。每一個節點102還進一步包含局部性記憶體,例如,快取記憶體及/或DRAM記憶體。每一個節點102還進一步包含一由一或更多個碟片106(例如,硬碟機及/或固態碟片)所組成的個別集。每一個節點102還進一步包含一節點間通訊機制,用以透過節點間通訊網路116(例如,存在於本技術中已知的網路連接處理系統中的網路介面卡或任何其它器件)來通訊耦合該等節點。
於某些實施例中,主機104包含一或更多個多核心的x86架構CPU晶片。於某些實施例中,該I/O控制器108包含一或更多個晶片上Raid(Raid-On-Chip,ROC)控制器,而該主機104會透過一PCIe互連線被耦合至該I/O控制器108。於某些實施例中,該等一或更多個碟片驅動機106包含一或更多個固態硬碟機。於某些實施例中,該節點間通訊機制會被整合至該I/O控制器108之中。舉例來說,一ROC提供SAS及/或SATA連接
能力給兩個局部性碟片106,並且透過SAS架構提供給其它處理節點102的碟片106。
每一個處理節點102進一步包含一個別的節點內冗餘計算單元110,被配置成用以決定用於保護被儲存在該節點102的碟片106中之資料的冗餘資料。每一個處理節點102進一步包含一個別的差量冗餘計算單元112,被配置成用以決定差量資料,其係由該節點內冗餘計算單元110來局部性使用及/或響應於被儲存在該節點102之該等碟片106中的資料的寫入而被發送至其它節點102。每一個處理節點102進一步包含一節點間冗餘計算單元114,被配置成用以決定用於保護被儲存在其它節點102之碟片106中之資料的冗餘資料。
於某些實施例中,該等冗餘計算單元110、112、以及114中的一或更多者會被結合成單一機制及/或分享一或更多個器件。舉例來說,根據不同的實施例,該等冗餘計算單元110、112、以及114係被具現在分離或組合的硬體模組、軟體模組、及/或韌體模組中,例如,一或更多個電子電路或是由至少一處理器從載體媒體中執行的程式指令。於某些實施例中,控制器108包含該等冗餘計算單元110、112、以及114中的一或更多者及/或會被配置成用以實施該等冗餘計算單元110、112、以及114的一或更多項功能。
於某些實施例中,一第一節點內保護機制(舉例來說,RAID-5)會保護一第一處理節點102A的該等碟片106的一第一子集,而一第二節點內保護機制(舉例來說,RAID-6)會保護該第一處理節點102A的該等碟片106的一第二子集。於進一步實施例中,該等碟片106的第一子集和該等碟片
106的第二子集為不同的類型。舉例來說,該等碟片106的第一子集可能包含一或更多個HDD,而該等碟片106的第二子集可能包含一或更多個SSD。於某些實施例中,一第一節點間保護機制會為該等碟片106的第一子集中的碟片106提供節點間保護,以及一第二節點間保護機制(不同於該第一節點間保護機制)會為該等碟片106的第二子集中的碟片106提供節點間保護。
於某些實施例及/或使用場景中,該等處理節點102中其中一者的二或更多個碟片106會受到一節點間保護機制114的同一個字碼保護。於其它實施例及/或使用場景中,該等處理節點102中任何一者的該等碟片106中僅有其中一者係在一節點間保護機制114的同一個字碼中。
於某些實施例中,由一第一處理節點102A的主機104A將資料寫入至該第一處理節點102A的該等碟片106中其中一者會導致被儲存在該第一處理節點102A的其它碟片106中的第一局部性(也就是,節點內)冗餘資料的更新。該主機資料寫入還會導致被儲存在一第二處理節點102B的碟片106中至少部分碟片106中的全域性(也就是,節點間)冗餘資料的更新。於某些實施例中,全域性冗餘資料的更新會導致被儲存在該第二處理節點102B的其它碟片中的第二局部性冗餘資料的更新。於某些實施例中,該主機資料寫入會在全域性冗餘資料的更新抵達安全點之後被確認,例如,當即使該第一處理節點102A失效該主機資料寫入仍可恢復時。
圖2與3分別圖解用於處理資料寫入的方法200以及用於處理差量資料的方法300,以便提供可擴充的儲存保護。系統100為方法200與300的表現形式,而且針對系統100或是方法200或300所述的所有步驟或特點皆可套用至系統100以及方法200與300。然而,應該注意的係,在
本文中,方法200或300中的一或更多道步驟亦可透過本技術中已知的其它構件來執行。本文中所述之系統100的實施例不應該被詮釋為以任何方式來限制方法200或300。
在步驟202處,資料會由第一處理節點102A的主機104A寫入至一選定的邏輯區塊位址(Logical Block Address,LBA)。在步驟204處會決定該第一處理節點102A中儲存該選定LBA之資料的至少一目的地碟片106以及該第一處理節點102A中儲存用於該目的地碟片106之節點內保護資料的一或更多個冗餘碟片106。於某些實施例中,該等目的地碟片106和節點內冗餘碟片106係由該第一處理節點102A的主機104A以及控制器108A中至少其中一者來決定。舉例來說,在第一處理節點102A的主機104A上執行的驅動器軟體會決定該目的地碟片106,而控制器108則決定該等和冗餘碟片106。在步驟206處會由該第一處理節點102A的主機104A以及控制器108A中至少其中一者來決定儲存用於該目的地碟片106之節點間保護資料的一或更多個冗餘處理節點102。
在步驟208處,舊資料會於該選定的LBA處從該目的地碟片106中被讀取。在步驟212處,該主機資料寫入的新資料會於該選定的LBA處被寫至該目的地碟片106。在步驟210處,該第一處理節點102A的差量計算單元112A會運用該新資料與該舊資料來決定差量資料。在步驟214處,該第一處理節點102A的節點內冗餘計算單元110A會根據該差量資料來更新被儲存在該第一處理節點102A的該等冗餘碟片106中的該第一冗餘資料。
在步驟216處,該第一處理節點102A會發送該差量資料給
至少一冗餘處理節點102,例如,不同於該第一處理節點102A的第二處理節點102B。參考圖3,第二處理節點102B會在步驟302處接收該差量資料並且在步驟304處將該差量資料儲存在該第二處理節點102B的碟片快取中。一但該差量資料被儲存在該碟片快取中之後,在步驟306處,該第二處理節點102B會被配置成用以確認該差量資料寫入至該第一處理節點102A完成。於此時點,假如該第一處理節點102A失效的話,第二處理節點能夠參與由該第一處理節點102A之主機104寫入至該選定LBA的資料的恢復。在步驟218處會判斷所有該等冗餘節點102是否已確認該差量資料寫入完成。在步驟220處會向該第一處理節點102A的主機104確認該主機資料寫入完成。
在步驟308處,在將該差量資料儲存在該第二處理節點102B的碟片快取中之後,差量資料會選擇性地從該碟片快取處被沖刷掉。於某些實施例中,例如,相較於使用近期最少使用(least-recently used)之類的演算法來決定何時進行沖刷之較大碟片快取的其它實施例,當該碟片快取很小時,步驟308會相對快速地被實施。在步驟310處,響應於從該碟片快取處沖刷該差量資料或決定從該碟片快取處沖刷該差量資料,該第二處理節點102B的主機104B與控制器108B中至少其中一者會決定儲存對應於該差量資料之節點間保護資料的第二處理節點102B的一或更多個節點間冗餘碟片106以及儲存用於該等節點間冗餘碟片106之節點內保護資料的第二處理節點102B的一或更多個冗餘碟片106。
在步驟312處,第二處理節點102B的節點間冗餘計算單元114B會根據該差量資料來更新被儲存在該第二處理節點102B的該等節點
間冗餘碟片106中的全域性冗餘資料。在步驟314處,第二處理節點102B的節點內冗餘計算單元110B會根據該等節點間冗餘碟片106的更新來更新被儲存在該第二處理節點102B的冗餘碟片106中的第二局部性冗餘資料。在步驟316處,該差量會從第二處理節點102B的碟片快取處被移除。於某些實施例中,例如,當該碟片快取為揮發性時,步驟306會延遲至步驟312及/或步驟314中一或更多者確定該差量資料以非揮發性被儲存之後。
於某些實施例中,在節點102之間被運送用於計算全域性冗餘資料的差量資料為舊資料(主機104寫入資料之前)以及主機104所寫入之新資料的函數。於某些實施例中,差量資料係運用舊資料以及主機104所寫入之新資料的XOR函數或XNOR函數來決定。於其它實施例中,差量資料包含該舊資料與該新資料以及在節點102之間被運送的舊資料與新資料。於某些實施例中,差量資料進一步包含下面至少其中一者:哪一個節點產生該差量資料的指示資料;一寫入的節點內保護碼字裡面導致該差量資料被產生的位置;以及和該差量資料的出處及/或位置相關聯的其它資訊。
於某些實施例中,節點間冗餘計算會在儲存一部分全域性冗餘資料的一或更多個節點102中的每一者之中獨立地被實施。舉例來說,在使用雙抺除校正里德索羅門碼的RAID-6編碼類型中,差量資料會被發送至儲存一部分全域性冗餘資料的兩個處理節點102中的每一者,而該等兩個處理節點102中的每一者則獨立地更新一部分的全域性冗餘資料。在雙抺除校正里德索羅門碼中,該里德索羅門碼的碼字裡面的差量資料的位置會連同該差量資料被發送,而且該等兩個處理節點102中的每一者會被配置成藉由決定當該碼字裡面的差量資料的位置中的資料除以該里德索羅門
碼之生成多項式(generator polynominal)時所獲得之餘式的一部分的對應更新值來獨立計算一部分全域性冗餘資料的更新值。
於某些實施例中,差量資料會在運送至其它節點用以計算全域性冗餘資料之前先進行縮減及/或局部性結合。於一第一範例中,該等處理節點中的第一處理節點的主機的第一次資料寫入和該第一處理節點的主機的第二次資料寫入係寫入至同一個LBA,而且單一差量資料會對應於第一次寫入與第二次寫入兩者被運送。舉例來說,當該函數為XOR時,該差量資料係對應於和第二次寫入之第二(最終)資料進行XOR之後的舊資料(在第一次寫入之前)。於一第二範例中,一節點間保護機制的碼字涵蓋被儲存在該等處理節點中的第一處理節點中的二或更多個碟片,而寫入該等二或更多個碟片中的其中一者以上則會導致對應於該要進行之寫入的單一差量資料。端視該節點間保護機制的編碼類型和指定的可靠度而定,該差量資料的大小會等於該等二或更多個碟片中其中一者之寫入的大小。
於某些實施例中,第一處理節點102A的主機資料寫入會產生複數個不同的差量資料,每一者將被發送至一儲存一部分全域性冗餘資料的對應處理節點102。於其它實施例中,第一處理節點102A的主機資料寫入會產生單一差量資料,其會被發送至儲存一部分全域性冗餘資料的一或更多個處理節點102。
於某些實施例中,第一處理節點102A的主機資料寫入係寫入至不同於該第一處理節點102A的第二處理節點102B的碟片106中的其中一個碟片(也就是,「外部」資料寫入)。就系統100的碟片106來說,該外部寫入係以和局部性寫入雷同的方式來實施。然而,外部寫入的資料係
被運送至第二處理節點102B,而並非留在第一處理節點102A本地。於某些實施例中,另一種差異係,外部寫入完成的確認會在第二處理節點102B判斷因為該外部寫入所造成之任何節點間冗餘寫入完成之後由該第二處理節點102B被送回該第一處理節點102A。
於某些實施例中,至少某些該等處理節點102包含一碟片快取,例如,被當作快取的固態硬碟。該碟片快取會儲存下面之中的一或更多者:讓該處理節點102的主機104存取的資料(舉例來說,儲存體);讓另一處理節點102的主機104存取的資料;該處理節點102的局部性冗餘資料;儲存在該處理節點102的碟片106中的全域性冗餘資料;由該處理節點102所算出及/或接收自另一處理節點102的差量資料;以及其它類型的資料。於某些實施例中,將接收自其它處理節點102的差量資料儲存在該碟片快取中會在更新全域性冗資料及/或用於保護該全域性冗資料的第二局部性冗餘資料之前致能確認該差量資料的安全性並且因而確認對應的主機資料寫入的安全性。
於某些實施例中,一處理節點102的碟片快取係由下面之中的一或更多者來管理:該處理節點102的主機104;該處理節點的一I/O控制器108,例如,ROC;一專屬的管理處理器;以及前面的任何組合。
於某些實施例中,碟片快取會以和其它類型資料不同的方式來標記差量資料。於某些實施例中,差量資料會同時被標記為不良(dirty)和差量的格式,和能夠直接儲存為非差量的不良資料不同。為從一第一處理節點102A的碟片快取處沖刷掉該差量資料,該第一處理節點102A的節點間冗餘計算單元114A會被配置成用以在該差量資料從該碟片快取處被刪除
或移除之前根據該差量資料來更新該第一處理節點102A的碟片106中的全域性冗餘資料。於某些實施例中,更新被儲存在該第一處理節點102A的碟片106中的全域性冗餘資料包含更新用以保護該全域性冗餘資料的節點內冗餘資料。被儲存在該第一處理節點102A的其它碟片中的節點內冗餘資料係透過該第一處理節點102A的節點內冗餘計算單元110A來更新。
於差量資料被儲存在一處理節點102的碟片快取中的某些實施例中,該接收差量資料的處理節點102會在將該差量資料儲存於該碟片快取中之前先對該差量資料實施至少一部分的節點間冗餘計算並且將該差量資料的已轉換型式儲存在該碟片快取中。舉例來說,對多抺除校正碼來說,該已接收的差量資料的形式並非直接能夠被結合至儲存在該處理節點102中的全域性冗餘資料之中。藉由使用節點間冗餘計算單元114來轉換該已接收的差量資料,該已轉換的差量資料便能夠於稍後透過比較簡單的方式(例如,XOR函數)來和全域性冗餘資料結合。於某些實施例中,將該差量資料的已轉換型式儲存在該碟片快取中會進一步致能結合後續收到的差量資料至該差量資料的已轉換型式之中,有利地節省該碟片快取中的空間。舉例來說,利用里德索羅門碼作為節點間保護編碼類型,該差量資料會根據該里德索羅門碼的生成多項式被轉換成儲存為該全域性冗餘資料的碼字餘式的一部分的更新值(透過XOR)。
於某些實施例中,已快取的差量資料會在該碟片快取中被更新或結合。舉例來說,對應於由一第一處理節點102A的主機104在一選定的邏輯區塊位址(LBA)處所進行之第一次寫入的第一差量資料係被儲存在一第二處理節點102B的碟片快取中,而對應於該選定的LBA處之第二次
寫入的第二差量資料則會被該第二處理節點102B接收。該第二處理節點102B的碟片快取會被配置成用以根據該第二差量資料來更新該第一差量資料,俾使得在該第一次寫入和該第二次寫入兩者中僅需要被儲存在該第二處理節點102B的碟片106中的全域性冗餘資料的單一更新。舉例來說,假如該差量資料在該第一處理節點102A處運用XOR函數被算出的話,該第一差量資料便會藉由與該第二差量資料進行XOR運算而被更新。
於某些實施例中,對應於由該第一處理節點102A的主機104對受到一節點間保護碼字保護的資料所進行之第一次寫入的第一差量資料係被儲存在一第二處理節點102B的碟片快取中,而對應於對受到該節點間保護碼字保護的資料所進行之第二次寫入的第二差量資料則會被該第二處理節點102B接收。該第二處理節點102B的碟片快取會被配置成用以根據該第二差量資料來更新該第一差量資料,俾使得在該第一次寫入和該第二次寫入兩者中僅需要被儲存在該第二處理節點102B的碟片106中的全域性冗餘資料的單一更新。
於某些實施例中,局部性冗餘資料會以既定的方式被分散在一處理節點102的碟片106中,例如,藉由CRUSH(可擴充雜湊下的受控複製,Controlled Replication Under Scalable Hashing)演算法或是另一種資料分散演算法。於某些實施例中,全域性冗餘資料會以既定的方式被分散在該等處理節點102的二或更多者的碟片106中,例如,藉由CRUSH演算法或是另一種資料分散演算法。舉例來說,一第一節點間保護碼字橫跨該等處理節點102的一第一子集中的碟片106,而一第二節點間保護碼字則橫跨該等處理節點102中不同於該第一子集的一第二子集中的碟片106。於某些實施
例中,該第一子集與該第二子集會重疊(也就是,共同包含至少其中一個處理節點102)。
於某些實施例中,節點內冗餘計算單元110係該等碟片106中的一或更多者的一部分及/或會被整合至該等碟片106中的一或更多者之中。舉例來說,某些SSD會施行類RAID-5或類RAID-6的冗餘機制以保護被儲存在該SSD之非揮發性記憶體晶片中的資料。該SSD的冗餘機制能夠充當被儲存在該SSD中的資料的節點內冗餘計算單元110。
於某些實施例中,該等處理節點102的配置實質上相等或雷同。於其它實施例中,該等處理節點102並沒有在下面任一者中全部對稱:主機104的數量及/或配置;局部記憶體的數額;碟片的數量、配置、類型、及/或容量;或者任何其它(多個)參數、(多個)器件、或是(多個)配置。
於某些實施例中,至少某些該等處理節點102具有有限的處理能力,甚至沒有任何處理能力,而且實際上「僅有碟片(disk-only)」。該等僅有碟片的處理節點102會參與全域性冗餘計算,例如,藉由儲存該全域性冗餘的一部分。於某些實施例中,該等處理節點102的其中一者會因為個別主機104當機的關係而變成僅有碟片,前提係該僅有碟片處理節點102的至少部分儲存體仍可全域性存取。據此,從其它處理節點102處對該僅有碟片的處理節點102所進行的外部寫入仍能夠導致差量資料被產生與傳送,例如,由該僅有碟片的處理節點102的控制器108(舉例來說,ROC)來進行。
於某些實施例中,複數個節點內保護機制110及/或節點間保護機制114會根據下面之中的一或更多者被使用:受保護的碟片106的類
型及/或可靠度;儲存在受保護的碟片106中的資料的類型;一選定節點間保護機制114所涵蓋之節點102的失效機率;以及其它因素。
應該瞭解的係,於某些實施例中,整篇本揭示內容中所述的各種步驟可由單一計算系統或多重計算系統來實行。一計算系統可能包含,但是並不受限於:個人計算系統、大型電腦計算系統、工作站、影像電腦、平行處理器、或是本技術中已知的任何其它裝置。一般來說,「計算系統」一詞會被廣義定義為涵蓋具有執行來自一記憶體媒體之指令的一或更多個處理器的任何裝置。
施行諸如本文中所述實施例表現之方法的程式指令可以在載體媒體上傳送或是被儲存在載體媒體中。該載體媒體可能係一傳送媒體,例如,但是並不受限於:電線、纜線、或是無線傳送鏈路。該載體媒體可能還包含一儲存媒體,例如,但是並不受限於:唯讀記憶體、隨機存取記憶體、磁碟或光碟、或是磁帶。
表現本文中所述方法的實施例可能包含將結果儲存在一儲存媒體中。在該等結果已經被儲存之後,該等結果可讓本文中所述的任何方法或系統實施例在該儲存媒體中存取並且使用,格式化用以顯示給使用者觀看,讓另一軟體模組、方法、或系統使用,…等。再者,該等結果可以「永久」被儲存、「半永久」被儲存、「暫時」被儲存、或是在特定的時間週期中被儲存。舉例來說,該儲存媒體可能係隨機存取記憶體(Random Access Memory,RAM),而該等結果可能不需要無限期存留在該儲存媒體中。
本發明進一步涵蓋,在上面表現為一系統或一方法的本揭示內容的任何實施例可能包含本文中所述任何其它實施例的至少一部分。熟
習本技術的人士便會明白有各種能夠藉以達成本文中所述系統與方法的實施例,而且施行方式將隨著部署本揭示內容之實施例的背景而改變。
再者,應該瞭解的係,本發明係定義在隨附的申請專利範圍中。本文雖然已經解釋過本發明的實施例;不過,非常明白的係,熟習本技術的人士可以在沒有脫離本揭示內容的範疇與精神之下進行各種修正。
100‧‧‧儲存系統
102A‧‧‧處理節點
102B‧‧‧處理節點
102M‧‧‧處理節點
104A‧‧‧局部性主機
104B‧‧‧局部性主機
104M‧‧‧局部性主機
106A‧‧‧局部性直接附接儲存體(DAS)
106B‧‧‧局部性直接附接儲存體(DAS)
106C‧‧‧局部性直接附接儲存體(DAS)
106D‧‧‧局部性直接附接儲存體(DAS)
106E‧‧‧局部性直接附接儲存體(DAS)
106F‧‧‧局部性直接附接儲存體(DAS)
106X‧‧‧局部性直接附接儲存體(DAS)
106Y‧‧‧局部性直接附接儲存體(DAS)
106Z‧‧‧局部性直接附接儲存體(DAS)
108A‧‧‧局部性I/O控制器
108B‧‧‧局部性I/O控制器
108M‧‧‧局部性I/O控制器
110A‧‧‧局部性冗餘計算單元
110B‧‧‧局部性冗餘計算單元
110M‧‧‧局部性冗餘計算單元
112A‧‧‧差量計算單元
112B‧‧‧差量計算單元
112M‧‧‧差量計算單元
114A‧‧‧全域性冗餘計算單元
114B‧‧‧全域性冗餘計算單元
114M‧‧‧全域性冗餘計算單元
116‧‧‧節點間通訊網路
Claims (20)
- 一種儲存系統,其包括彼此通訊的複數個處理節點,每一個處理節點包含:複數個碟片;至少一主機,該至少一主機會被配置成用以將資料寫至該等複數個碟片中的一選定碟片;一局部性冗餘計算單元,被配置成用以運用由該至少一主機寫至該選定碟片的資料來決定局部性冗餘資料,該局部性冗餘計算單元進一步被配置成用以將該局部性冗餘資料儲存在該等複數個碟片中的至少一碟片中;一差量計算單元,被配置成用以運用由該至少一主機寫至該選定碟片的資料來決定差量資料,該差量計算單元進一步被配置成用以將該已決定的差量資料發送給至少一其它處理節點;以及一全域性冗餘計算單元,被配置成用以從該等處理節點中的至少一其它處理節點處接收差量資料,該全域性冗餘計算單元進一步被配置成用以運用該已接收的差量資料來決定全域性冗餘資料,該全域性冗餘計算單元進一步被配置成用以將該全域性冗餘資料儲存在該等複數個碟片中的至少一碟片中。
- 根據申請專利範圍第1項的系統,其中,該局部性冗餘計算單元進一步被配置成用以當該選定碟片失效時運用該局部性冗餘資料來恢復被寫至該選定碟片的資料。
- 根據申請專利範圍第1項的系統,其中,該全域性冗餘計算單元進一步被配置成用以當該至少一其它處理節點失效時運用該全域性冗餘資料來 恢復該至少一其它處理節點的資料。
- 根據申請專利範圍第1項的系統,其中,該局部性冗餘資料係第一局部性冗餘資料,其中,該局部性冗餘計算單元進一步被配置成用以運用該全域性冗餘資料來決定第二局部性冗餘資料,以及其中,該局部性冗餘計算單元進一步被配置成用以將該第二局部性冗餘資料儲存在該等複數個碟片中的至少一碟片中。
- 根據申請專利範圍第4項的系統,其中,該局部性冗餘計算單元進一步被配置成用以當該選定碟片失效時運用該局部性冗餘資料來恢復被寫至該選定碟片的資料,其中,該全域性冗餘計算單元進一步被配置成用以當該至少一其它處理節點失效時運用該全域性冗餘資料來恢復該至少一其它處理節點的資料,以及其中,該局部性冗餘計算單元進一步被配置成用以當儲存該全域性冗餘資料的該至少一碟片失效時運用該第二局部性冗餘資料來恢復該全域性冗餘資料。
- 根據申請專利範圍第1項的系統,其中,該等複數個處理節點包含透過一第一全域性編碼類型來保護的處理節點中的複數個碟片中的第一組碟片以及透過一第二全域性編碼類型來保護的處理節點中的複數個碟片中的第二組碟片,其中,該第一全域性編碼類型不同於該第二全域性編碼類型。
- 根據申請專利範圍第6項的系統,其中,該第一組碟片包含該等複數個處理節點中的一第一處理節點的至少一碟片以及該等複數個處理節點中 的一第二處理節點的至少一碟片。
- 根據申請專利範圍第1項的系統,其中,該局部性冗餘計算單元進一步被配置成用以運用一第一抺除校正碼類型來處理資料,其中,該全域性冗餘計算單元會進一步被配置成用以運用一第二抺除校正碼類型來處理資料,且其中,該第一抺除校正碼類型不同於該第二抺除校正碼類型。
- 一種儲存系統,其包括彼此通訊的複數個處理節點,每一個處理節點包含:複數個碟片;至少一主機,該至少一主機被配置成用以將資料寫至該等複數個碟片中的一選定碟片;以及一和該等複數個碟片通訊的控制器,該控制器被配置成用以:運用被寫至該選定碟片的資料來決定局部性冗餘資料;將該局部性冗餘資料儲存在該等複數個碟片中的至少一碟片中;運用被寫至該選定碟片的資料來決定差量資料;將該已決定的差量資料發送給至少一其它處理節點;從至少一其它處理節點處接收差量資料;運用該已接收的差量資料來決定全域性冗餘資料;以及將該全域性冗餘資料儲存在該等複數個碟片中的至少一碟片中。
- 根據申請專利範圍第9項的系統,其中,該控制器進一步被配置成用以:當該選定碟片失效時運用該局部性冗餘資料來恢復被寫至該選定碟片的資料;以及 當該至少一其它處理節點失效時運用該全域性冗餘資料來恢復該至少一其它處理節點的資料。
- 根據申請專利範圍第10項的系統,其中,該局部性冗餘資料係第一局部性冗餘資料,以及其中,該控制器進一步被配置成用以:運用該全域性冗餘資料來決定第二局部性冗餘資料;將該第二局部性冗餘資料儲存在該等複數個碟片中的至少一碟片中;以及當儲存該全域性冗餘資料的該至少一碟片失效時運用該第二局部性冗餘資料來恢復該全域性冗餘資料。
- 根據申請專利範圍第9項的系統,其中,該等複數個處理節點包含透過一第一全域性編碼類型來保護的處理節點中的複數個碟片中的第一組碟片以及透過一第二全域性編碼類型來保護的處理節點中的複數個碟片中的第二組碟片,其中,該第一全域性編碼類型不同於該第二全域性編碼類型。
- 根據申請專利範圍第12項的系統,其中,該第一組碟片包含該等複數個處理節點中的一第一處理節點的至少一碟片以及該等複數個處理節點中的一第二處理節點的至少一碟片。
- 根據申請專利範圍第9項的系統,其中,該控制器進一步被配置成用以:運用一第一抺除校正碼類型來決定該局部性冗餘資料;以及運用一第二抺除校正碼類型來決定該全域性冗餘資料,其中,該第一 抺除校正碼類型不同於該第二抺除校正碼類型。
- 一種儲存保護的方法,其包括:將資料寫至複數個處理節點中的一第一處理節點的複數個碟片中的一選定碟片,該等複數個處理節點係彼此通訊;運用被寫至該選定碟片的資料來決定局部性冗餘資料;將該局部性冗餘資料儲存在該等複數個碟片中的至少一碟片中;運用被寫至該選定碟片的資料來決定第一差量資料;將該第一差量資料發送給至少一其它處理節點;從至少一其它處理節點處接收第二差量資料;運用該第二差量資料來決定全域性冗餘資料;以及將該全域性冗餘資料儲存在該等複數個碟片中的至少一碟片中。
- 根據申請專利範圍第15項的方法,其中,該方法進一步包含:當該選定碟片失效時運用該局部性冗餘資料來恢復被寫至該選定碟片的資料;以及當該至少一其它處理節點失效時運用該全域性冗餘資料來恢復該至少一其它處理節點的資料。
- 根據申請專利範圍第16項的方法,其中,該局部性冗餘資料係第一局部性冗餘資料,以及其中,該方法進一步包含:運用該全域性冗餘資料來決定第二局部性冗餘資料;將該第二局部性冗餘資料儲存在該等複數個碟片中的至少一碟片中;以及 當儲存該全域性冗餘資料的該至少一碟片失效時運用該第二局部性冗餘資料來恢復該全域性冗餘資料。
- 根據申請專利範圍第15項的方法,其中,該方法進一步包含:運用一第一全域性編碼類型來保護該等處理節點中的第一組碟片;以及運用一第二全域性編碼類型來保護該等處理節點中的第二組碟片,其中,該第一全域性編碼類型不同於該第二全域性編碼類型。
- 根據申請專利範圍第18項的方法,其中,該第一組碟片包含該第一處理節點的至少一碟片以及該等複數個處理節點中的一第二處理節點的至少一碟片。
- 根據申請專利範圍第15項的方法,其中,該方法進一步包含:運用一第一抺除校正碼類型來決定該局部性冗餘資料;以及運用一第二抺除校正碼類型來決定該全域性冗餘資料,其中,該第一抺除校正碼類型不同於該第二抺除校正碼類型。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201261696720P | 2012-09-04 | 2012-09-04 | |
US13/688,654 US9613656B2 (en) | 2012-09-04 | 2012-11-29 | Scalable storage protection |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201411401A true TW201411401A (zh) | 2014-03-16 |
TWI591512B TWI591512B (zh) | 2017-07-11 |
Family
ID=49000324
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102129106A TWI591512B (zh) | 2012-09-04 | 2013-08-14 | 儲存系統及儲存保護之方法 |
Country Status (6)
Country | Link |
---|---|
US (2) | US9613656B2 (zh) |
EP (1) | EP2703991B1 (zh) |
JP (1) | JP6162547B2 (zh) |
KR (1) | KR102102728B1 (zh) |
CN (1) | CN103793182B (zh) |
TW (1) | TWI591512B (zh) |
Families Citing this family (196)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11614893B2 (en) | 2010-09-15 | 2023-03-28 | Pure Storage, Inc. | Optimizing storage device access based on latency |
US8589640B2 (en) | 2011-10-14 | 2013-11-19 | Pure Storage, Inc. | Method for maintaining multiple fingerprint tables in a deduplicating storage system |
US9613656B2 (en) * | 2012-09-04 | 2017-04-04 | Seagate Technology Llc | Scalable storage protection |
US9218244B1 (en) | 2014-06-04 | 2015-12-22 | Pure Storage, Inc. | Rebuilding data across storage nodes |
US8850108B1 (en) | 2014-06-04 | 2014-09-30 | Pure Storage, Inc. | Storage cluster |
US9213485B1 (en) | 2014-06-04 | 2015-12-15 | Pure Storage, Inc. | Storage system architecture |
US11399063B2 (en) | 2014-06-04 | 2022-07-26 | Pure Storage, Inc. | Network authentication for a storage system |
US9003144B1 (en) | 2014-06-04 | 2015-04-07 | Pure Storage, Inc. | Mechanism for persisting messages in a storage system |
US9367243B1 (en) | 2014-06-04 | 2016-06-14 | Pure Storage, Inc. | Scalable non-uniform storage sizes |
US9612952B2 (en) * | 2014-06-04 | 2017-04-04 | Pure Storage, Inc. | Automatically reconfiguring a storage memory topology |
US11652884B2 (en) | 2014-06-04 | 2023-05-16 | Pure Storage, Inc. | Customized hash algorithms |
US10574754B1 (en) | 2014-06-04 | 2020-02-25 | Pure Storage, Inc. | Multi-chassis array with multi-level load balancing |
US11068363B1 (en) | 2014-06-04 | 2021-07-20 | Pure Storage, Inc. | Proactively rebuilding data in a storage cluster |
US9836234B2 (en) | 2014-06-04 | 2017-12-05 | Pure Storage, Inc. | Storage cluster |
WO2015188014A1 (en) * | 2014-06-04 | 2015-12-10 | Pure Storage, Inc. | Automatically reconfiguring a storage memory topology |
US11886308B2 (en) | 2014-07-02 | 2024-01-30 | Pure Storage, Inc. | Dual class of service for unified file and object messaging |
US9836245B2 (en) | 2014-07-02 | 2017-12-05 | Pure Storage, Inc. | Non-volatile RAM and flash memory in a non-volatile solid-state storage |
US10114757B2 (en) | 2014-07-02 | 2018-10-30 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US11604598B2 (en) | 2014-07-02 | 2023-03-14 | Pure Storage, Inc. | Storage cluster with zoned drives |
US8868825B1 (en) | 2014-07-02 | 2014-10-21 | Pure Storage, Inc. | Nonrepeating identifiers in an address space of a non-volatile solid-state storage |
US9021297B1 (en) | 2014-07-02 | 2015-04-28 | Pure Storage, Inc. | Redundant, fault-tolerant, distributed remote procedure call cache in a storage system |
US8874836B1 (en) | 2014-07-03 | 2014-10-28 | Pure Storage, Inc. | Scheduling policy for queues in a non-volatile solid-state storage |
US10853311B1 (en) | 2014-07-03 | 2020-12-01 | Pure Storage, Inc. | Administration through files in a storage system |
US9811677B2 (en) | 2014-07-03 | 2017-11-07 | Pure Storage, Inc. | Secure data replication in a storage grid |
US9747229B1 (en) | 2014-07-03 | 2017-08-29 | Pure Storage, Inc. | Self-describing data format for DMA in a non-volatile solid-state storage |
US9766972B2 (en) | 2014-08-07 | 2017-09-19 | Pure Storage, Inc. | Masking defective bits in a storage array |
US9082512B1 (en) | 2014-08-07 | 2015-07-14 | Pure Storage, Inc. | Die-level monitoring in a storage cluster |
US9495255B2 (en) * | 2014-08-07 | 2016-11-15 | Pure Storage, Inc. | Error recovery in a storage cluster |
US9483346B2 (en) | 2014-08-07 | 2016-11-01 | Pure Storage, Inc. | Data rebuild on feedback from a queue in a non-volatile solid-state storage |
US9558069B2 (en) | 2014-08-07 | 2017-01-31 | Pure Storage, Inc. | Failure mapping in a storage array |
US10983859B2 (en) | 2014-08-07 | 2021-04-20 | Pure Storage, Inc. | Adjustable error correction based on memory health in a storage unit |
US10079711B1 (en) | 2014-08-20 | 2018-09-18 | Pure Storage, Inc. | Virtual file server with preserved MAC address |
WO2016051512A1 (ja) | 2014-09-30 | 2016-04-07 | 株式会社日立製作所 | 分散型ストレージシステム |
WO2016058262A1 (zh) * | 2014-12-16 | 2016-04-21 | 深圳赛思鹏科技发展有限公司 | 一种基于二进制域里德所罗门码的数据编解码方法 |
US9948615B1 (en) | 2015-03-16 | 2018-04-17 | Pure Storage, Inc. | Increased storage unit encryption based on loss of trust |
US11294893B2 (en) | 2015-03-20 | 2022-04-05 | Pure Storage, Inc. | Aggregation of queries |
US9940234B2 (en) | 2015-03-26 | 2018-04-10 | Pure Storage, Inc. | Aggressive data deduplication using lazy garbage collection |
US10082985B2 (en) | 2015-03-27 | 2018-09-25 | Pure Storage, Inc. | Data striping across storage nodes that are assigned to multiple logical arrays |
US10178169B2 (en) | 2015-04-09 | 2019-01-08 | Pure Storage, Inc. | Point to point based backend communication layer for storage processing |
US9672125B2 (en) | 2015-04-10 | 2017-06-06 | Pure Storage, Inc. | Ability to partition an array into two or more logical arrays with independently running software |
US10140149B1 (en) | 2015-05-19 | 2018-11-27 | Pure Storage, Inc. | Transactional commits with hardware assists in remote memory |
US9817576B2 (en) | 2015-05-27 | 2017-11-14 | Pure Storage, Inc. | Parallel update to NVRAM |
US10187083B2 (en) | 2015-06-26 | 2019-01-22 | Microsoft Technology Licensing, Llc | Flexible erasure coding with enhanced local protection group structures |
US10846275B2 (en) | 2015-06-26 | 2020-11-24 | Pure Storage, Inc. | Key management in a storage device |
US10055420B1 (en) * | 2015-06-30 | 2018-08-21 | EMC IP Holding Company LLC | Method to optimize random IOS of a storage device for multiple versions of backups using incremental metadata |
US9996426B1 (en) | 2015-06-30 | 2018-06-12 | EMC IP Holding Company LLC | Sparse segment trees for high metadata churn workloads |
US10983732B2 (en) | 2015-07-13 | 2021-04-20 | Pure Storage, Inc. | Method and system for accessing a file |
US11232079B2 (en) | 2015-07-16 | 2022-01-25 | Pure Storage, Inc. | Efficient distribution of large directories |
US10108355B2 (en) | 2015-09-01 | 2018-10-23 | Pure Storage, Inc. | Erase block state detection |
US11341136B2 (en) | 2015-09-04 | 2022-05-24 | Pure Storage, Inc. | Dynamically resizable structures for approximate membership queries |
US10853266B2 (en) | 2015-09-30 | 2020-12-01 | Pure Storage, Inc. | Hardware assisted data lookup methods |
US9768953B2 (en) | 2015-09-30 | 2017-09-19 | Pure Storage, Inc. | Resharing of a split secret |
US10762069B2 (en) | 2015-09-30 | 2020-09-01 | Pure Storage, Inc. | Mechanism for a system where data and metadata are located closely together |
US9843453B2 (en) | 2015-10-23 | 2017-12-12 | Pure Storage, Inc. | Authorizing I/O commands with I/O tokens |
CN105357294B (zh) * | 2015-10-31 | 2018-10-02 | 成都华为技术有限公司 | 一种存储数据的方法及集群管理节点 |
CN105607872A (zh) * | 2015-12-17 | 2016-05-25 | 山东海量信息技术研究院 | 一种存储装置 |
US10007457B2 (en) | 2015-12-22 | 2018-06-26 | Pure Storage, Inc. | Distributed transactions with token-associated execution |
US10372334B2 (en) | 2016-02-11 | 2019-08-06 | International Business Machines Corporation | Reclaiming free space in a storage system |
US10146652B2 (en) * | 2016-02-11 | 2018-12-04 | International Business Machines Corporation | Resilient distributed storage system |
US10261690B1 (en) | 2016-05-03 | 2019-04-16 | Pure Storage, Inc. | Systems and methods for operating a storage system |
US11861188B2 (en) | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US9672905B1 (en) | 2016-07-22 | 2017-06-06 | Pure Storage, Inc. | Optimize data protection layouts based on distributed flash wear leveling |
US11449232B1 (en) | 2016-07-22 | 2022-09-20 | Pure Storage, Inc. | Optimal scheduling of flash operations |
US10768819B2 (en) | 2016-07-22 | 2020-09-08 | Pure Storage, Inc. | Hardware support for non-disruptive upgrades |
US11080155B2 (en) | 2016-07-24 | 2021-08-03 | Pure Storage, Inc. | Identifying error types among flash memory |
US11604690B2 (en) | 2016-07-24 | 2023-03-14 | Pure Storage, Inc. | Online failure span determination |
US10216420B1 (en) | 2016-07-24 | 2019-02-26 | Pure Storage, Inc. | Calibration of flash channels in SSD |
US10203903B2 (en) | 2016-07-26 | 2019-02-12 | Pure Storage, Inc. | Geometry based, space aware shelf/writegroup evacuation |
US10366004B2 (en) | 2016-07-26 | 2019-07-30 | Pure Storage, Inc. | Storage system with elective garbage collection to reduce flash contention |
US11886334B2 (en) | 2016-07-26 | 2024-01-30 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11734169B2 (en) | 2016-07-26 | 2023-08-22 | Pure Storage, Inc. | Optimizing spool and memory space management |
US11797212B2 (en) | 2016-07-26 | 2023-10-24 | Pure Storage, Inc. | Data migration for zoned drives |
US11422719B2 (en) | 2016-09-15 | 2022-08-23 | Pure Storage, Inc. | Distributed file deletion and truncation |
US9747039B1 (en) | 2016-10-04 | 2017-08-29 | Pure Storage, Inc. | Reservations over multiple paths on NVMe over fabrics |
US10756816B1 (en) | 2016-10-04 | 2020-08-25 | Pure Storage, Inc. | Optimized fibre channel and non-volatile memory express access |
US11550481B2 (en) | 2016-12-19 | 2023-01-10 | Pure Storage, Inc. | Efficiently writing data in a zoned drive storage system |
US11307998B2 (en) | 2017-01-09 | 2022-04-19 | Pure Storage, Inc. | Storage efficiency of encrypted host system data |
US11955187B2 (en) | 2017-01-13 | 2024-04-09 | Pure Storage, Inc. | Refresh of differing capacity NAND |
US9747158B1 (en) | 2017-01-13 | 2017-08-29 | Pure Storage, Inc. | Intelligent refresh of 3D NAND |
US10979223B2 (en) | 2017-01-31 | 2021-04-13 | Pure Storage, Inc. | Separate encryption for a solid-state drive |
US10528488B1 (en) | 2017-03-30 | 2020-01-07 | Pure Storage, Inc. | Efficient name coding |
US11016667B1 (en) | 2017-04-05 | 2021-05-25 | Pure Storage, Inc. | Efficient mapping for LUNs in storage memory with holes in address space |
US10944671B2 (en) | 2017-04-27 | 2021-03-09 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US10141050B1 (en) | 2017-04-27 | 2018-11-27 | Pure Storage, Inc. | Page writes for triple level cell flash memory |
US10516645B1 (en) | 2017-04-27 | 2019-12-24 | Pure Storage, Inc. | Address resolution broadcasting in a networked device |
US10374637B1 (en) * | 2017-04-28 | 2019-08-06 | EMC IP Holding Company LLC | System and method for unbalanced load handling with distributed erasure coding |
US11467913B1 (en) | 2017-06-07 | 2022-10-11 | Pure Storage, Inc. | Snapshots with crash consistency in a storage system |
US11947814B2 (en) | 2017-06-11 | 2024-04-02 | Pure Storage, Inc. | Optimizing resiliency group formation stability |
US11138103B1 (en) | 2017-06-11 | 2021-10-05 | Pure Storage, Inc. | Resiliency groups |
US11782625B2 (en) | 2017-06-11 | 2023-10-10 | Pure Storage, Inc. | Heterogeneity supportive resiliency groups |
US10425473B1 (en) | 2017-07-03 | 2019-09-24 | Pure Storage, Inc. | Stateful connection reset in a storage cluster with a stateless load balancer |
US10761743B1 (en) | 2017-07-17 | 2020-09-01 | EMC IP Holding Company LLC | Establishing data reliability groups within a geographically distributed data storage environment |
US10817388B1 (en) | 2017-07-21 | 2020-10-27 | EMC IP Holding Company LLC | Recovery of tree data in a geographically distributed environment |
US10684780B1 (en) | 2017-07-27 | 2020-06-16 | EMC IP Holding Company LLC | Time sensitive data convolution and de-convolution |
US10402266B1 (en) | 2017-07-31 | 2019-09-03 | Pure Storage, Inc. | Redundant array of independent disks in a direct-mapped flash storage system |
US10210926B1 (en) | 2017-09-15 | 2019-02-19 | Pure Storage, Inc. | Tracking of optimum read voltage thresholds in nand flash devices |
US10877827B2 (en) | 2017-09-15 | 2020-12-29 | Pure Storage, Inc. | Read voltage optimization |
US10880040B1 (en) | 2017-10-23 | 2020-12-29 | EMC IP Holding Company LLC | Scale-out distributed erasure coding |
US11024390B1 (en) | 2017-10-31 | 2021-06-01 | Pure Storage, Inc. | Overlapping RAID groups |
US10884919B2 (en) | 2017-10-31 | 2021-01-05 | Pure Storage, Inc. | Memory management in a storage system |
US10496330B1 (en) | 2017-10-31 | 2019-12-03 | Pure Storage, Inc. | Using flash storage devices with different sized erase blocks |
US10545687B1 (en) | 2017-10-31 | 2020-01-28 | Pure Storage, Inc. | Data rebuild when changing erase block sizes during drive replacement |
US10515701B1 (en) | 2017-10-31 | 2019-12-24 | Pure Storage, Inc. | Overlapping raid groups |
US10860475B1 (en) | 2017-11-17 | 2020-12-08 | Pure Storage, Inc. | Hybrid flash translation layer |
US10990566B1 (en) | 2017-11-20 | 2021-04-27 | Pure Storage, Inc. | Persistent file locks in a storage system |
US10719265B1 (en) | 2017-12-08 | 2020-07-21 | Pure Storage, Inc. | Centralized, quorum-aware handling of device reservation requests in a storage system |
US10929053B2 (en) | 2017-12-08 | 2021-02-23 | Pure Storage, Inc. | Safe destructive actions on drives |
US10929031B2 (en) | 2017-12-21 | 2021-02-23 | Pure Storage, Inc. | Maximizing data reduction in a partially encrypted volume |
US10545839B2 (en) | 2017-12-22 | 2020-01-28 | International Business Machines Corporation | Checkpointing using compute node health information |
US10382554B1 (en) | 2018-01-04 | 2019-08-13 | Emc Corporation | Handling deletes with distributed erasure coding |
US10976948B1 (en) | 2018-01-31 | 2021-04-13 | Pure Storage, Inc. | Cluster expansion mechanism |
US10733053B1 (en) | 2018-01-31 | 2020-08-04 | Pure Storage, Inc. | Disaster recovery for high-bandwidth distributed archives |
US10467527B1 (en) | 2018-01-31 | 2019-11-05 | Pure Storage, Inc. | Method and apparatus for artificial intelligence acceleration |
US11036596B1 (en) | 2018-02-18 | 2021-06-15 | Pure Storage, Inc. | System for delaying acknowledgements on open NAND locations until durability has been confirmed |
US11494109B1 (en) | 2018-02-22 | 2022-11-08 | Pure Storage, Inc. | Erase block trimming for heterogenous flash memory storage devices |
US10817374B2 (en) | 2018-04-12 | 2020-10-27 | EMC IP Holding Company LLC | Meta chunks |
US10931450B1 (en) | 2018-04-27 | 2021-02-23 | Pure Storage, Inc. | Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers |
US10853146B1 (en) | 2018-04-27 | 2020-12-01 | Pure Storage, Inc. | Efficient data forwarding in a networked device |
US11385792B2 (en) | 2018-04-27 | 2022-07-12 | Pure Storage, Inc. | High availability controller pair transitioning |
US10579297B2 (en) | 2018-04-27 | 2020-03-03 | EMC IP Holding Company LLC | Scaling-in for geographically diverse storage |
US11436023B2 (en) | 2018-05-31 | 2022-09-06 | Pure Storage, Inc. | Mechanism for updating host file system and flash translation layer based on underlying NAND technology |
US11023130B2 (en) | 2018-06-15 | 2021-06-01 | EMC IP Holding Company LLC | Deleting data in a geographically diverse storage construct |
US10936196B2 (en) | 2018-06-15 | 2021-03-02 | EMC IP Holding Company LLC | Data convolution for geographically diverse storage |
US11436113B2 (en) * | 2018-06-28 | 2022-09-06 | Twitter, Inc. | Method and system for maintaining storage device failure tolerance in a composable infrastructure |
US10719250B2 (en) | 2018-06-29 | 2020-07-21 | EMC IP Holding Company LLC | System and method for combining erasure-coded protection sets |
US11438279B2 (en) | 2018-07-23 | 2022-09-06 | Pure Storage, Inc. | Non-disruptive conversion of a clustered service from single-chassis to multi-chassis |
US11500570B2 (en) | 2018-09-06 | 2022-11-15 | Pure Storage, Inc. | Efficient relocation of data utilizing different programming modes |
US11354058B2 (en) | 2018-09-06 | 2022-06-07 | Pure Storage, Inc. | Local relocation of data stored at a storage device of a storage system |
US11520514B2 (en) | 2018-09-06 | 2022-12-06 | Pure Storage, Inc. | Optimized relocation of data based on data characteristics |
US11868309B2 (en) | 2018-09-06 | 2024-01-09 | Pure Storage, Inc. | Queue management for data relocation |
US11556326B2 (en) * | 2018-09-06 | 2023-01-17 | Arm Limited | Methods for performing a rollback-capable software update at a device |
US10454498B1 (en) | 2018-10-18 | 2019-10-22 | Pure Storage, Inc. | Fully pipelined hardware engine design for fast and efficient inline lossless data compression |
US10976947B2 (en) | 2018-10-26 | 2021-04-13 | Pure Storage, Inc. | Dynamically selecting segment heights in a heterogeneous RAID group |
US11436203B2 (en) | 2018-11-02 | 2022-09-06 | EMC IP Holding Company LLC | Scaling out geographically diverse storage |
US10901635B2 (en) | 2018-12-04 | 2021-01-26 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes for data storage with high performance using logical columns of the nodes with different widths and different positioning patterns |
US10931777B2 (en) | 2018-12-20 | 2021-02-23 | EMC IP Holding Company LLC | Network efficient geographically diverse data storage system employing degraded chunks |
US11119683B2 (en) | 2018-12-20 | 2021-09-14 | EMC IP Holding Company LLC | Logical compaction of a degraded chunk in a geographically diverse data storage system |
US10892782B2 (en) | 2018-12-21 | 2021-01-12 | EMC IP Holding Company LLC | Flexible system and method for combining erasure-coded protection sets |
US10768840B2 (en) | 2019-01-04 | 2020-09-08 | EMC IP Holding Company LLC | Updating protection sets in a geographically distributed storage environment |
US11023331B2 (en) | 2019-01-04 | 2021-06-01 | EMC IP Holding Company LLC | Fast recovery of data in a geographically distributed storage environment |
US10942827B2 (en) | 2019-01-22 | 2021-03-09 | EMC IP Holding Company LLC | Replication of data in a geographically distributed storage environment |
US10942825B2 (en) | 2019-01-29 | 2021-03-09 | EMC IP Holding Company LLC | Mitigating real node failure in a mapped redundant array of independent nodes |
US10936239B2 (en) | 2019-01-29 | 2021-03-02 | EMC IP Holding Company LLC | Cluster contraction of a mapped redundant array of independent nodes |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US10846003B2 (en) | 2019-01-29 | 2020-11-24 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage |
US11334254B2 (en) | 2019-03-29 | 2022-05-17 | Pure Storage, Inc. | Reliability based flash page sizing |
US11775189B2 (en) | 2019-04-03 | 2023-10-03 | Pure Storage, Inc. | Segment level heterogeneity |
US11029865B2 (en) | 2019-04-03 | 2021-06-08 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a mapped redundant array of independent nodes |
US10944826B2 (en) | 2019-04-03 | 2021-03-09 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a mapped redundant array of independent nodes |
US11099986B2 (en) | 2019-04-12 | 2021-08-24 | Pure Storage, Inc. | Efficient transfer of memory contents |
US10809940B1 (en) * | 2019-04-19 | 2020-10-20 | Microsoft Technology Licensing, Llc | Multilevel resiliency |
US11121727B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Adaptive data storing for data storage systems employing erasure coding |
US11113146B2 (en) | 2019-04-30 | 2021-09-07 | EMC IP Holding Company LLC | Chunk segment recovery via hierarchical erasure coding in a geographically diverse data storage system |
US11119686B2 (en) | 2019-04-30 | 2021-09-14 | EMC IP Holding Company LLC | Preservation of data during scaling of a geographically diverse data storage system |
US11748004B2 (en) | 2019-05-03 | 2023-09-05 | EMC IP Holding Company LLC | Data replication using active and passive data storage modes |
US11714572B2 (en) | 2019-06-19 | 2023-08-01 | Pure Storage, Inc. | Optimized data resiliency in a modular storage system |
US11281394B2 (en) | 2019-06-24 | 2022-03-22 | Pure Storage, Inc. | Replication across partitioning schemes in a distributed storage system |
US11209996B2 (en) | 2019-07-15 | 2021-12-28 | EMC IP Holding Company LLC | Mapped cluster stretching for increasing workload in a data storage system |
US11442809B1 (en) * | 2019-07-17 | 2022-09-13 | Marvell Asia Pte, Ltd. | Double-parity raid enabling recovery of two failed data units |
US11449399B2 (en) | 2019-07-30 | 2022-09-20 | EMC IP Holding Company LLC | Mitigating real node failure of a doubly mapped redundant array of independent nodes |
US11023145B2 (en) | 2019-07-30 | 2021-06-01 | EMC IP Holding Company LLC | Hybrid mapped clusters for data storage |
US11228322B2 (en) * | 2019-09-13 | 2022-01-18 | EMC IP Holding Company LLC | Rebalancing in a geographically diverse storage system employing erasure coding |
US11449248B2 (en) | 2019-09-26 | 2022-09-20 | EMC IP Holding Company LLC | Mapped redundant array of independent data storage regions |
US11893126B2 (en) | 2019-10-14 | 2024-02-06 | Pure Storage, Inc. | Data deletion for a multi-tenant environment |
US11288139B2 (en) | 2019-10-31 | 2022-03-29 | EMC IP Holding Company LLC | Two-step recovery employing erasure coding in a geographically diverse data storage system |
US11119690B2 (en) | 2019-10-31 | 2021-09-14 | EMC IP Holding Company LLC | Consolidation of protection sets in a geographically diverse data storage environment |
US11435910B2 (en) | 2019-10-31 | 2022-09-06 | EMC IP Holding Company LLC | Heterogeneous mapped redundant array of independent nodes for data storage |
US11435957B2 (en) | 2019-11-27 | 2022-09-06 | EMC IP Holding Company LLC | Selective instantiation of a storage service for a doubly mapped redundant array of independent nodes |
US11847331B2 (en) | 2019-12-12 | 2023-12-19 | Pure Storage, Inc. | Budgeting open blocks of a storage unit based on power loss prevention |
US11704192B2 (en) | 2019-12-12 | 2023-07-18 | Pure Storage, Inc. | Budgeting open blocks based on power loss protection |
US11416144B2 (en) | 2019-12-12 | 2022-08-16 | Pure Storage, Inc. | Dynamic use of segment or zone power loss protection in a flash device |
US11144220B2 (en) | 2019-12-24 | 2021-10-12 | EMC IP Holding Company LLC | Affinity sensitive storage of data corresponding to a doubly mapped redundant array of independent nodes |
US11231860B2 (en) | 2020-01-17 | 2022-01-25 | EMC IP Holding Company LLC | Doubly mapped redundant array of independent nodes for data storage with high performance |
US11188432B2 (en) | 2020-02-28 | 2021-11-30 | Pure Storage, Inc. | Data resiliency by partially deallocating data blocks of a storage device |
JP7316242B2 (ja) * | 2020-03-18 | 2023-07-27 | 株式会社日立製作所 | ストレージシステムおよびデータ転送方法 |
US11507308B2 (en) | 2020-03-30 | 2022-11-22 | EMC IP Holding Company LLC | Disk access event control for mapped nodes supported by a real cluster storage system |
US11507297B2 (en) | 2020-04-15 | 2022-11-22 | Pure Storage, Inc. | Efficient management of optimal read levels for flash storage systems |
US11256587B2 (en) | 2020-04-17 | 2022-02-22 | Pure Storage, Inc. | Intelligent access to a storage device |
US11416338B2 (en) | 2020-04-24 | 2022-08-16 | Pure Storage, Inc. | Resiliency scheme to enhance storage performance |
US11474986B2 (en) | 2020-04-24 | 2022-10-18 | Pure Storage, Inc. | Utilizing machine learning to streamline telemetry processing of storage media |
US11947827B2 (en) * | 2020-05-15 | 2024-04-02 | Vmware, Inc. | Synchronizing a stale component of a distributed object using a delta component during maintenance |
US11288229B2 (en) | 2020-05-29 | 2022-03-29 | EMC IP Holding Company LLC | Verifiable intra-cluster migration for a chunk storage system |
US11768763B2 (en) | 2020-07-08 | 2023-09-26 | Pure Storage, Inc. | Flash secure erase |
US11513974B2 (en) | 2020-09-08 | 2022-11-29 | Pure Storage, Inc. | Using nonce to control erasure of data blocks of a multi-controller storage system |
US11681448B2 (en) | 2020-09-08 | 2023-06-20 | Pure Storage, Inc. | Multiple device IDs in a multi-fabric module storage system |
US11693983B2 (en) | 2020-10-28 | 2023-07-04 | EMC IP Holding Company LLC | Data protection via commutative erasure coding in a geographically diverse data storage system |
US11487455B2 (en) | 2020-12-17 | 2022-11-01 | Pure Storage, Inc. | Dynamic block allocation to optimize storage system performance |
US11614880B2 (en) | 2020-12-31 | 2023-03-28 | Pure Storage, Inc. | Storage system with selectable write paths |
US11847324B2 (en) | 2020-12-31 | 2023-12-19 | Pure Storage, Inc. | Optimizing resiliency groups for data regions of a storage system |
US11847141B2 (en) | 2021-01-19 | 2023-12-19 | EMC IP Holding Company LLC | Mapped redundant array of independent nodes employing mapped reliability groups for data storage |
US11625174B2 (en) | 2021-01-20 | 2023-04-11 | EMC IP Holding Company LLC | Parity allocation for a virtual redundant array of independent disks |
US11630593B2 (en) | 2021-03-12 | 2023-04-18 | Pure Storage, Inc. | Inline flash memory qualification in a storage system |
US11507597B2 (en) | 2021-03-31 | 2022-11-22 | Pure Storage, Inc. | Data replication to meet a recovery point objective |
US11354191B1 (en) | 2021-05-28 | 2022-06-07 | EMC IP Holding Company LLC | Erasure coding in a large geographically diverse data storage system |
US11449234B1 (en) | 2021-05-28 | 2022-09-20 | EMC IP Holding Company LLC | Efficient data access operations via a mapping layer instance for a doubly mapped redundant array of independent nodes |
US11832410B2 (en) | 2021-09-14 | 2023-11-28 | Pure Storage, Inc. | Mechanical energy absorbing bracket apparatus |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3181466B2 (ja) * | 1994-03-31 | 2001-07-03 | 株式会社東芝 | 情報記憶システム |
US6826711B2 (en) | 2000-02-18 | 2004-11-30 | Avamar Technologies, Inc. | System and method for data protection with multidimensional parity |
US6985995B2 (en) * | 2002-03-29 | 2006-01-10 | Panasas, Inc. | Data file migration from a mirrored RAID to a non-mirrored XOR-based RAID without rewriting the data |
US7149859B2 (en) * | 2004-03-01 | 2006-12-12 | Hitachi, Ltd. | Method and apparatus for data migration with the efficient use of old assets |
CN1873622A (zh) | 2006-04-20 | 2006-12-06 | 北京艾德斯科技有限公司 | San环境下数据备份、复制和恢复的方法及其装置 |
US7660236B2 (en) * | 2006-04-27 | 2010-02-09 | Alcatel Lucent | System and method of multi-nodal APS control protocol signaling |
WO2009070235A2 (en) | 2007-11-21 | 2009-06-04 | Marvell World Trade Ltd. | Parallel reed-solomon raid (rs-raid) architecture, device, and method |
US8171379B2 (en) | 2008-02-18 | 2012-05-01 | Dell Products L.P. | Methods, systems and media for data recovery using global parity for multiple independent RAID levels |
JP2010181917A (ja) * | 2009-02-03 | 2010-08-19 | Nec Corp | 情報ストレージ装置 |
CN101650677A (zh) | 2009-07-27 | 2010-02-17 | 浪潮电子信息产业股份有限公司 | 一种基于Delta增量的文件数据备份方法 |
US8850113B2 (en) | 2010-02-27 | 2014-09-30 | Cleversafe, Inc. | Data migration between a raid memory and a dispersed storage network memory |
US8639907B2 (en) * | 2010-07-22 | 2014-01-28 | Netgear, Inc. | Method and apparatus for dynamically adjusting memory capacity in accordance with data storage |
US8782339B2 (en) | 2010-10-11 | 2014-07-15 | Open Invention Network, Llc | Storage system having cross node data redundancy and method and computer readable medium for same |
US8832035B2 (en) * | 2011-08-30 | 2014-09-09 | Netapp, Inc. | System and method for retaining deduplication in a storage object after a clone split operation |
CN102609479B (zh) | 2012-01-20 | 2015-11-25 | 北京思特奇信息技术股份有限公司 | 一种内存数据库节点复制方法 |
US9213486B2 (en) * | 2012-02-22 | 2015-12-15 | International Business Machines Corporation | Writing new data of a first block size to a second block size using a write-write mode |
US8595586B2 (en) * | 2012-04-25 | 2013-11-26 | Facebook, Inc. | Distributed system for fault-tolerant data storage |
US9613656B2 (en) * | 2012-09-04 | 2017-04-04 | Seagate Technology Llc | Scalable storage protection |
-
2012
- 2012-11-29 US US13/688,654 patent/US9613656B2/en active Active
-
2013
- 2013-08-14 TW TW102129106A patent/TWI591512B/zh not_active IP Right Cessation
- 2013-08-15 EP EP13180528.5A patent/EP2703991B1/en active Active
- 2013-08-23 KR KR1020130100271A patent/KR102102728B1/ko active IP Right Grant
- 2013-08-30 CN CN201310388747.4A patent/CN103793182B/zh active Active
- 2013-09-04 JP JP2013182906A patent/JP6162547B2/ja not_active Expired - Fee Related
-
2017
- 2017-02-22 US US15/439,459 patent/US10191676B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN103793182A (zh) | 2014-05-14 |
US9613656B2 (en) | 2017-04-04 |
CN103793182B (zh) | 2017-09-22 |
KR20140031112A (ko) | 2014-03-12 |
EP2703991A2 (en) | 2014-03-05 |
US20170160967A1 (en) | 2017-06-08 |
JP2014053005A (ja) | 2014-03-20 |
JP6162547B2 (ja) | 2017-07-12 |
EP2703991B1 (en) | 2020-06-10 |
US10191676B2 (en) | 2019-01-29 |
TWI591512B (zh) | 2017-07-11 |
KR102102728B1 (ko) | 2020-04-21 |
EP2703991A3 (en) | 2016-12-21 |
US20140064048A1 (en) | 2014-03-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI591512B (zh) | 儲存系統及儲存保護之方法 | |
US11281601B2 (en) | Multi-device storage system with hosted services on peer storage devices | |
US9811285B1 (en) | Dynamic restriping in nonvolatile memory systems | |
US8560772B1 (en) | System and method for data migration between high-performance computing architectures and data storage devices | |
US7617361B2 (en) | Configureable redundant array of independent disks | |
JP6039699B2 (ja) | ストレージシステム及びデータ管理方法 | |
US8583984B2 (en) | Method and apparatus for increasing data reliability for raid operations | |
TWI451257B (zh) | 保護在直接附加儲存(das)系統中快取資料的完整性之裝置及方法 | |
US20150222705A1 (en) | Large-scale data storage and delivery system | |
US20050144382A1 (en) | Method, system, and program for managing data organization | |
US20110029728A1 (en) | Methods and apparatus for reducing input/output operations in a raid storage system | |
US8484506B2 (en) | Redundant array of independent disks level 5 (RAID 5) with a mirroring functionality | |
TWI791880B (zh) | 電腦系統 | |
KR20180106867A (ko) | 키 밸류 솔리드 스테이트 드라이브 | |
US11436086B2 (en) | Raid storage-device-assisted deferred parity data update system | |
EP4145265A2 (en) | Storage system | |
US20180307427A1 (en) | Storage control apparatus and storage control method |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |