TW201506607A - 本地產生的簡單抹除碼 - Google Patents

本地產生的簡單抹除碼 Download PDF

Info

Publication number
TW201506607A
TW201506607A TW103118108A TW103118108A TW201506607A TW 201506607 A TW201506607 A TW 201506607A TW 103118108 A TW103118108 A TW 103118108A TW 103118108 A TW103118108 A TW 103118108A TW 201506607 A TW201506607 A TW 201506607A
Authority
TW
Taiwan
Prior art keywords
range
ranges
instance
code
computing device
Prior art date
Application number
TW103118108A
Other languages
English (en)
Inventor
John G Bennett
Bob Jenkins
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of TW201506607A publication Critical patent/TW201506607A/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1096Parity calculation or recalculation after configuration or reconfiguration of the system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2056Error 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 by mirroring
    • G06F11/2058Error 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 by mirroring using more than 2 mirrored copies
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error 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/2053Error 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/2094Redundant storage or storage space

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Retry When Errors Occur (AREA)

Abstract

一「抹除碼」係多個不同資料集之一編碼。冗餘的資料複本係維護於這樣的抹除碼中,進而只利用未編碼複本的儲存容量的一小部分。具有使用互斥或功能之處理資源之一最小值之抹除碼係被有效地產生。此外,抹除碼係產生自本地資料,進而避免網路資源之消耗。當剩下、冗餘的複本被編碼成抹除碼時,一資料集之至少一未編碼複本係被維護。資料請求係提供自該未編碼複本。一旦故障,可由可存取一抹除碼以及同樣壓縮至該抹除碼之其他資料之未編碼複本之另一計算裝置產生一個新的未編碼複本。經由編碼資料之一解碼之遞歸應用可救回多個故障。

Description

本地產生的簡單抹除碼
本發明係關於本地產生的簡單抹除碼。
現代伺服器計算裝置實際上係常以一方式配置以提升例如一框架之一密閉空間中之多個如此的伺服器計算裝置之安裝和維護。伺服器計算裝置的多個框架可以接著被容納於一專用設備中,一般稱作一「資料中心」。藉由將計算資源聚集在一起,資料中心可於同時提供增加的計算能力和可用度時,同時提供規模效率。舉例來說,資料中心可以包括數千個計算裝置,比起這樣的實體是購買計算裝置本身來說,其綜合處理能力可以無數的方式被劃分和共享,進而以更低的成本,使實體能存取更大量的處理能力。作為另一範例,資料中心可以實施冗餘機制,其個別是很昂貴的,但當他們的成本分散至一資料中心的所有使用者時,可以提供低廉的風險降低。這樣的冗餘機制可以包括在該資料中心裡,將計算裝置劃分成可包括實際上不同位置、獨立的網路連接及動力源的故障域,以及其他類似的屬性,如此大半潛在的故障應該只能影響單一故障域。
經常,為了維持可靠性,在一個資料中心之中、或橫跨多個實際上不同的資料中心的多個如此的故障域處維護冗餘的資料複本。然而,這樣的資料集可以是足夠大的,以致橫跨網路的這樣的資料集的資料通信可以是費時且昂貴的。所以冗餘經常消耗網路資源,因此使性能下降。另外,冗餘機制常需要對資料進行數學運算的性能,而這很貴。所以除了增加網路資源消耗,冗餘亦可以增加處理能力利用率。由於網路資源和處理能力皆可由昂貴的計算硬體來支援,而其他像資本投資及其有效利用率,係可於維護冗餘時被期待。
在一實施例中,冗餘的資料複本係可於一編碼狀態下被維護,其僅使用未編碼之如此資料複本儲存所需的儲存容量的一部分。為了減少處理資源的消耗,資料可使用互斥或功能編碼,其可藉由現代處理硬體有效執行。
在另一實施例中,冗餘可由維護於一編碼狀態下之冗餘資料複本所提供,其可為僅從本地的資料複本產生,進而避免網路資源消耗。
在再一實施例中,至少一未編碼的資料複本可以被維護,而如此資料之請求可由如此之一未編碼複本提供。萬一如此一未編碼複本遇到故障,包括破壞性故障和不可利用性故障,一個新的未編碼複本可產生自一替代的計算裝置,該計算裝置可存取其他資料之一編碼複本和未編碼複本,而這樣的請求資料係利用該新的未編碼複本被編碼。
在又一實施例中,多個故障可經由編碼資料之解碼之遞歸應用被救回。
本發明內容係用於以簡化形式簡介一系列概念,該等概念在下文實施方式中進一步描述。本發明內容不旨在識別所主張標的之主要特徵或基本特徵,亦不意欲用以限定所主張標的之範圍。
由下面的詳細說明和參考附圖,額外特徵及優點將是顯而易見的。
100‧‧‧系統
101‧‧‧網路
110‧‧‧客戶端計算裝置
120‧‧‧資料中心
130‧‧‧名稱伺服器計算裝置
140‧‧‧故障域
141‧‧‧計算裝置
142‧‧‧計算裝置
143‧‧‧計算裝置
150‧‧‧故障域
151‧‧‧計算裝置
152‧‧‧計算裝置
153‧‧‧計算裝置
160‧‧‧故障域
161‧‧‧計算裝置
162‧‧‧計算裝置
163‧‧‧計算裝置
170‧‧‧故障域
171‧‧‧計算裝置
172‧‧‧計算裝置
173‧‧‧計算裝置
180‧‧‧資料
181‧‧‧通信
191‧‧‧通信
192‧‧‧通信
193‧‧‧通信
196‧‧‧資料
197‧‧‧資料
198‧‧‧資料
200‧‧‧系統
211‧‧‧範圍
212‧‧‧範圍
213‧‧‧範圍
214‧‧‧範圍
215‧‧‧抹除碼
220‧‧‧計算
230‧‧‧廢除動作
241‧‧‧狀態
242‧‧‧狀態
243‧‧‧狀態
300‧‧‧系統
311‧‧‧範圍
312‧‧‧範圍
313‧‧‧範圍
314‧‧‧範圍
315‧‧‧抹除碼
320‧‧‧故障域
321‧‧‧計算裝置
330‧‧‧故障域
331‧‧‧計算裝置
340‧‧‧故障域
341‧‧‧請求
342‧‧‧通信
351‧‧‧範圍
400‧‧‧系統
411‧‧‧範圍
412‧‧‧範圍
413‧‧‧範圍
414‧‧‧範圍
420‧‧‧計算
421‧‧‧通信
422‧‧‧通信
432‧‧‧通信
433‧‧‧通信
434‧‧‧通信
500‧‧‧系統
513‧‧‧範圍
521‧‧‧計算
522‧‧‧計算
523‧‧‧範圍
531‧‧‧通信
532‧‧‧通信
533‧‧‧範圍
540‧‧‧故障域
541‧‧‧計算裝置
551‧‧‧範圍
552‧‧‧範圍
553‧‧‧範圍
555‧‧‧抹除碼
562‧‧‧範圍
563‧‧‧範圍
570‧‧‧故障域
571‧‧‧計算裝置
580‧‧‧故障域
581‧‧‧伺服器計算裝置
600‧‧‧流程圖
610‧‧‧步驟
620‧‧‧步驟
630‧‧‧步驟
640‧‧‧步驟
650‧‧‧步驟
660‧‧‧步驟
700‧‧‧流程圖
710‧‧‧步驟
720‧‧‧步驟
730‧‧‧步驟
740‧‧‧步驟
750‧‧‧步驟
760‧‧‧步驟
800‧‧‧計算裝置
820‧‧‧中央處理單元
821‧‧‧系統匯排流
830‧‧‧系統記憶體
831‧‧‧唯讀記憶體
833‧‧‧基本輸入輸出系統
834‧‧‧操作系統
835‧‧‧程式模組
836‧‧‧程式資料
840‧‧‧界面
841‧‧‧硬碟
844‧‧‧操作系統
845‧‧‧程式模組
846‧‧‧程式資料
870‧‧‧網路界面
871‧‧‧一般網路連線
當結合附圖,下面的詳細說明可以被最佳理解,其中:圖1係說明可實施本地產生之簡單抹除碼之一範例情況之方塊圖。
圖2係說明一簡單抹除碼之範例性本地產生之方塊圖。
圖3係說明實施本地產生之簡單抹除碼機制之一範例系統之運作之一情況之一方塊圖。
圖4係說明於實施本地產生之簡單抹除碼機制之一系統中之一範例性錯誤回復之一方塊圖。
圖5係說明於實施本地產生之簡單抹除碼機制之一系統中之另一範例性錯誤回復之一方塊圖。
圖6係說明一簡單抹除碼之一範例性本地產生之一流程圖。
圖7係說明用以提供冗餘資料之一簡單抹除碼之一 範例性使用之一流程圖。
圖8係一範例性計算裝置之一方塊圖。
以下說明係關於實施本地產生之簡單抹除碼之機制。一抹除碼可以為多個不同資料集之一編碼。以這樣的抹除碼,冗餘之資料複本可於一編碼狀態下被維護,其僅使用儲存如此資料之未編碼複本所需儲存容量的一部分。為了降低處理資源之消耗、以及使得能夠更有效、更快速地產生抹除碼,所描述的機制可使用與一「異或」(或即,互斥或)一樣簡單的抹除碼。此外,抹除碼可被產生自本地一計算裝置上所儲存之一資料,該計算裝置係產生這樣一個抹除碼,進而避免網路資源耗損。當這樣的資料其剩下的冗餘複本可用其他的正交資料而被編碼成一或多個抹除碼時,一資料集之至少一未編碼複本應被維護。資料請求可以由這樣的一未編碼複本提供。萬一一未編碼複本遇到故障,其係包括破壞性故障及不可利用性故障,一個新的未編碼複本可產生自另一可操作可使用的計算裝置,該計算裝置可存取一抹除碼、還有同樣壓縮至該抹除碼之其他資料之未編碼複本。經由編碼資料的這樣一解碼的遞歸應用可救回多個故障。
為了說明的目的,於此說明的技術係呈現於資料中心的典型基本設施的情境中。特別是,於此所說明的技術係參考多個計算裝置、多個故障域、以及其間之網路通信。然而,這樣的環境和實施例之參考及說明係嚴格地示範,並不意欲将所說明的機制限制於所提供之具體實施例。的確,說明的 技術係同樣適用於儲存冗餘資料複本之任何計算環境,例如在多個獨立的儲存媒體、或在多個獨立計算裝置上,不論這樣的儲存媒體或計算裝置之物質表現。
此外,雖然不是必須,下面的說明係於電腦可執行指令之一般情況中,例如程式模組,其係由一或多個計算裝置所執行。更具體地,說明將參考由一或多個計算裝置或週邊所執行之操作之行為與符號表示,除非另有註明。因此,可知有時被稱作由計算機執行的這樣的動作和操作,包括由電子信號之一處理單元於一結構化形式表示資料之操作。該操作係轉換資料、或維持資料在記憶體中的位置,在某種程度上由本技術領域人員在充分了解後重新配置、或以其他方式改變計算裝置或週邊之操作。資料被維護之資料結構係實際位置,其具有由資料格式所定義之特殊屬性。
一般地,程式模組包括子程式、程式、物件、組件、資料結構等,可執行特定任務或實施特定抽象資料型別。此外,本技術領域人員將了解計算裝置不需限定於一般的個人電腦,並包括其他計算組態,其係包括手持裝置、多處理器系統、以微處理器為基礎的或可程式化的消費性電子產品、網路電腦、迷你電腦、主機電腦等等。同樣地,計算裝置不需限定於一單機計算裝置,因为機制亦可實施於經由一通信網路鏈結之分散式計算環境中。在一分散式計算環境中,程式模組可位於本地和遠端的記憶體儲存裝置中。
參考圖1,其係說明一範例系統100,其係對以下描述提供情況。範例系統100可為一資料中心的情況,例如範 例資料中心120,其係於例如網路101之一網路上,提供資料中心性能和功能。該資料中心120的客戶可以使用一客戶端計算裝置(例如,客戶端計算裝置110)來利用於網路101上提供之資料中心的性能與功能。舉例來說,為了說明於此描述的冗餘機制之操作,範例的客戶端計算裝置110可以於網路101上發送資料180至資料中心120,客戶端計算裝置110尋求的資料180已由資料中心120儲存和保留。這樣的資料準備係由圖1中所示之通信181說明。
在一實施例中,在資料180的接收之後,經由通信181,資料中心120可以識別於其上儲存這樣的資料180的一或多個計算裝置。更具體地,名稱伺服器計算裝置,例如範例的名稱伺服器計算裝置130,係可維護有關儲存於資料中心120之計算裝置上之資料之元資料,其例如範例之計算裝置141、142、143、151、152、153、161、162、163、171、172及173。所以,在這樣一實施例中,名稱伺服器計算裝置,例如範例之名稱伺服器130,可以知道資料中心120的計算裝置中,哪一個計算裝置已於其之本地儲存媒體上儲存任何給定之資料集。名稱伺服器計算裝置亦可維護其他元資料,例如關於資料中心120之伺服器計算裝置之性能之資訊,以儲存附加資料。例如什麼樣的資料儲存在哪個裝置中的位置圖等之元資料的維護,係可由利用異動及冗餘技術之名稱伺服器計算裝置確實維護,其可於必要時提供這樣確實可用的名稱伺服器計算裝置,在有關於此處所說明之機制之範圍內。
在圖1所說明的範例中,名稱伺服器計算裝置130 可識別計算裝置143、162及171為資料中心120之計算裝置,該等計算裝置係於其間維護由通信181接收之資料180之三個冗餘複本。名稱伺服器計算裝置130可適當地命令計算裝置143、162及171,並且,至少一個這樣的計算裝置可以接受由客戶端計算裝置110發送的資料180。舉例來說,如圖1所描述,通信181及191,資料180最初可被指向伺服器計算裝置162,可於其中儲存為資料196。雖然資料180係可與資料196相同,但是圖1中係使用不同的標號以代表資料196係資料180之一個別、單獨的複本。同樣,在本發明及相關圖示中,不同標號係用來指相同資料之不同複本。
當接收資料180並將其本地儲存為資料196之後,在一實施例中,伺服器計算裝置162可以重新傳遞資料196至其他的計算裝置,即,在本範例中,伺服器計算裝置143及171。通信192及193,顯示於圖1之系統100中,描述這樣一個重新傳遞,資料196自伺服器計算裝置162分別重新傳遞至伺服器計算裝置143和171,其中這樣的資料可以被分別儲存為資料198及197。在其他實施例中,資料196、197及198之複本,可由資料中心120之計算裝置中替代的通信產生。在有關於此處所說明之機制之範圍內,資料複本係散佈於資料中心120之計算裝置中之情況可以是不相關的。同樣地,當此處所描述的機制係範例地說明為利用三個冗餘資料複本,例如資料196、197及198之複本,它們可與導致儲存於資料中心120的計算裝置中總共兩個或更多個資料複本之任何資料儲存冗餘被利用。舉例來說,於此所說明的機制同 樣適用於一資料中心環境,其中只有二資料複本用以提供冗餘,例如各複本可以被視為以一高度可靠的方法儲存。作為另一範例,描述於此的機制係同樣適用於資料中心環境,其中四資料複本用以提供冗餘,例如利用地理隔離,其中複數個地點中之每一個包括複數個複本。
雖然,為了說明所設想的機制的運作,在圖1之系統100中所說明的狀態下,資料中心120可以維護資料180的三個獨立複本,即資料196、197及198之複本。本領域技術人員將可了解這樣三個複本可提供資料180之冗餘儲存,由於,若那些複本中的任何二個或者更少經過例如一硬體故障或一軟體錯誤而變成無法利用的,至少一適當且可用的複本將保持以提供存取這樣的資料,例如至客戶端計算裝置110。
在圖1所說明之特例中,資料196、197、198之三個單獨的複本不只可分別於單獨的計算裝置上被維護,例如伺服器計算裝置162、171及143,亦可於個別的故障域中被維護。更具體地,如圖1中所說明,各伺服器計算裝置143、162及171可為單獨且獨立的故障域(即,故障域140、160及170)的一部分。這樣的故障域可以代表可提供故障獨立性之實際結構與環境。舉例來說,故障域140之計算裝置141、142與143所消耗的功率與故障域150之計算裝置151、152與153所消耗的功率可以是不同且獨立的。所以,若對故障域140的電力供給終止,這樣一個電力故障將不影響故障域150之計算裝置。作為另一範例,故障域140的計 算裝置可以在,與故障域150之計算裝置獨立之建築或其他類似結構中被維護。所以,若一結構故障發生於包含故障域150之計算裝置之建築中,這樣一個故障將不影響故障域140的計算裝置。因此,維護例如資料196、197及198之冗餘複本等之冗餘資料複本可以是有益的,不只分別在例如伺服器計算裝置162、171與143等之單獨的計算裝置上,也橫跨例如故障域140、160和170等之單獨的故障域。
如本文中所使用的,當一資料中心的情況包括上述範例時,術語「故障域」並不限於此。替代地,如本文中所使用的,術語「故障域」意指任何硬體元件或組件集,其故障係至少部分獨立於另一硬體組件或組件集。所以,各個別的硬碟、或固態儲存裝置,在這樣的裝置的一陣列中,係為一故障域。同樣地,各個別的計算裝置,例如在一小型商業或家用網路上,亦為一「故障域」。例如從這些範例可以看出,於此所說明的機制並不限定於在資料中心中之資料冗餘應用,但亦可用以於多個計算裝置或甚至通信上耦合至一單一儲存裝置之多個儲存裝置上實施資料冗餘。在後者的情況下,當例如自我加密儲存裝置等之儲存裝置本身的處理能力足以實施抹除碼產生以及下述解碼機制時,單一儲存裝置可以執行電腦可執行指令,其係執行下述名稱伺服器計算裝置之功能。
回到圖1之該示範性系統100,本領域技術者亦將可知,以資料196、197與198之複本的形式維護資料180的三個單獨複本,係可消耗在維護資本180之一單一複本三倍 之儲存容量。所以,實行用以連續維護資料冗餘之機制而於儲存容量上沒有相對應的負面影響是可行的,例如圖1的系統100所說明。
談到圖2,這樣一個示範性機制係參考其中所示之系統200作說明。如圖2之系統200所說明,一或多個具有一冗餘資料複本之計算裝置,例如前述圖1中所示之資料196、197和198之冗餘複本,可以產生代表一資料複本之一編碼版本之一抹除碼。舉例來說,圖1之系統100在故障域140中的計算裝置143,係說明於圖2的系統200中,包括四個不同的資料集,為了參考的清楚,於此將其稱作「範圍」。如此處所利用,術語「範圍」意指資料之一區塊或集合,其包括一單一資料片、一較大資料片的一部分、或合併計算的多個較小資料片。本領域技術人員將了解,範圍通常用以均化被管理的不連續的資料片的大小、通常在代表一或多個客戶的這樣的資料的伺服器計算環境的情況中、以及為了一或多個客戶的利用率。作為一範例,圖2中所示的範圍211可以包括資料180的冗餘複本,即儲存於計算裝置143上、在故障域140中之資料複本198,其係說明於圖1中並描述於前。範圍211可以包括進一步的資料,除了資料198之外,或,替代地,範圍211可以只包括資料198的一部份。然而,因為資料複本198可以容易地從範圍211獲得,為便於下面說明中的參考,範圍211的提供將等同於資料複本198的提供。
如圖2的範例系統200所描述,計算裝置143可包 括另外的範圍,例如範圍212、213、214,其可包括另外的資料,其係包括與範圍211的資料不相關的資料、或正交的資料。在一實施例中,計算裝置143,在獲得一合適的範圍集合(例如,四個範圍211、212、213與214之範例集合)之後,可以自這樣的範圍產生一抹除碼。如前面所指出的,於此所說明的機制係可於維護資料冗餘時,使簡單抹除碼的利用率能提供降低的儲存資源消耗。說明的機制所提供之一個非常簡單的抹除碼,可以為「異或」(或即,互斥或)運算。舉例來說,如計算220所說明,在一實施例中,計算裝置143可以只是互斥或範圍211、212、213與214以產生一抹除碼215。這樣一個互斥或運算可以是按位元、按字元、或可以利用任何二進位資料的其他合適大小的劃界。
互斥或功能的利用可以使計算220非常快地執行,因為如本領域技術人員可知,一互斥或運算可被大部分以電晶體為基礎的處理硬體以本機執行。此外,如本領域技術人員可了解,範圍211、212、213與214、以及由互斥或這些範圍而產生之抹除碼215之間的關係可以是這樣,範圍211、212、213與214、和抹除碼215中之任一可產生自其他四個的任何集合。這樣一個關係可以基於這樣的事實,若A互斥或B等於C,則A互斥或C等於B,且B互斥或C等於A。A、B和C中之任二之所有使第三個經由互斥或運算之使用而產生。當然,所有的抹除碼共享類似的功能以由抹除碼與其他未遺漏的資料集之任何組合恢復一遺漏的資料集。所以,當以下說明係範例地描述利用互斥或功能時,於此所述之機 制係同樣與任何抹除碼方案相容。互斥或功能的利用僅僅為了說明所述機制不限於為了於維護資料冗餘時提供降低儲存容量消耗的計算昂貴的抹除碼方案。
所以,在狀態241中,計算裝置143可以儲存在其儲存媒體範圍上,例如範圍211、212、213與214,且可以包括額外的儲存容量以能夠產生抹除碼215,並將其本地儲存於計算裝置143上。接著,在計算220的完成之後,計算裝置143可以在狀態242下,其已被儲存於其儲存媒體範圍211、212、213與214還有抹除碼215上。當計算裝置143完成其抹除碼215之產生,如圖2中狀態242所說明,在一實施例中,計算裝置143可以廢除用以產生持除碼215的每一範圍。因此,如廢除動作230所述,在這樣一實施例中,計算裝置143可以廢除範圍211、212、213與214之其複本。因此計算裝置143可以終止於狀態243,其只被儲存於其儲存媒體抹除碼215上。
藉由廢除儲存於計算裝置143之儲存媒體上之範圍211、212、213與214,並只保留抹除碼215,計算裝置143可以降低其消耗之儲存容量。更具體地,且本領域技術者將了解的,由於互斥或運算之性質,抹除碼215可以為與範圍211、212、213與214中最大的一個大約相同大小。若範圍211、212、213與214係由計算裝置143選擇為大約相同大小,則抹除碼215可以消耗像範圍211、212、213與214所消耗的儲存容量的四分之一一樣小的儲存容量。
短暫地回到圖1,其中所示之系統100說明了將資 料180的三個複本(即,資料196、197與198之複本)由資料中心120保留。前述抹除碼產生機制可以可由伺服器計算裝置143進行,造成資料複本198僅提供於伺服器計算裝置143上的這樣一編碼形式中。在一實施例中,伺服器計算裝置171可對其資料複本197進行類似操作。所以,在這樣一實施例中,資料冗餘可於消耗像資料196、197、198之三個複本所消耗儲存容量之一半一樣小的儲存容量時被提供。更具體地,如上文所示,目前描述的抹除碼可以消耗像未編碼資料之儲存容量之四分之一一樣小的儲存容量。因此,若複本197和198皆已編碼至抹除碼,例如在描述的情況下,則消耗的儲存容量可為未編碼資料的總量,加上二編碼至抹除碼之資料之複本各四分之一總量,進而導致資料180之總量之一又二分之一倍之一總儲存容量消耗。由於資料196、197與198之三個複本的冗餘儲存消耗資料180總量的三倍,僅資料180之一又二分之一倍總量之這樣的一消耗可以代表像三個未編碼的資料複本所消耗的二分之一儲存容量一樣小之一消耗。
談到圖3,圖1之系統100中所描述的一些計算裝置和故障域係以簡化形式顯示於圖3的系統300中。舉例來說,系統300係被顯示為包括具有計算裝置143的故障域140、具有計算裝置151的故障域150、具有計算裝置162的故障域160、以及具有計算裝置171的故障域170,其中每個本來係呈現與圖1中所示之系統100連接。在圖3的範例系統300中,計算裝置143係說明為包括抹除碼215,其之產生係說明於圖2中,並詳細描述於上。在一類似情況中,計算 裝置171亦可自包括顯示於圖1、與尚未說明之其他範圍編碼之資料197其複本之一範圍產生一抹除碼315。舉例來說,已儲存於計算裝置171上之範圍之一可為範圍351之複本,計算裝置171可以選擇抹除碼之產生,顯示於圖3之系統300中之範圍351係被儲存於故障域340中之計算裝置341之儲存裝置上。
如圖2之範例系統200所說明,由計算裝置143所產生之抹除碼215可由圖2中所示之範圍211、212、213與214產生。一個這樣的範圍,即範圍211,可以是儲存於伺服器計算裝置143上之範圍311之複本。儲存於故障域160之計算裝置162之儲存裝置上之未編碼範圍311係說明於圖3之範例系統300中。為了便於參考,範圍的複本在本文中將被稱作範圍的「實例」。因此,範圍311係圖2中所示之範圍211之一實例。同樣地,範圍212之一未編碼實例,以範圍312的形式,係說明為儲存於故障域330之計算裝置331上。亦顯示於圖2中、且藉由計算裝置143亦被使用於抹除碼215之產生之範圍213和214之未編碼實例,於圖3之範例系統300中係說明為,儲存於故障域150之計算裝置151之未編碼範圍313、以及於故障域320之計算裝置321之未編碼範圍314。
在一實施例中,當請求一特定資料集時,例如,舉例來說,若客戶端計算裝置110為了其先前所提供的資料發送一請求341,經由請求341,未具體說明於圖3的系統300中的名稱伺服器計算裝置可以確定計算裝置162包括一範圍 311,其係為未編碼的、且包括客戶端計算裝置110所請求之資料。的確,名稱伺服器計算裝置可以追蹤圖3之系統300中所示之各範圍之一位置和狀態,例如各範圍之各實例是在一編碼形式還是未編碼形式。所以,這樣的名稱伺服器計算裝置可以路由請求341至計算裝置162,其可接著回應未編碼範圍311或其相關部分,如由圖3之系統300之通信342所說明。在一實施例中,名稱伺服器計算裝置功能可以由圖3中所示之任何一或多個計算裝置提供。舉例來說,客戶端計算裝置110可以執行電腦可執行指令,其係提供名稱伺服器功能。在這樣一實施例中,本身擔任一名稱伺服器之客戶端計算裝置110可以決定請求341被指向計算裝置162。在另一實施例中,如所示,藉由其他名稱伺服器計算裝置,可以明確客戶端計算裝置110可以明確地被下令以將請求341指向伺服器計算裝置162。經由通信342至客戶計算裝置110之範圍311之回應提供係假設計算裝置162是可操作的、至客戶端計算裝置110通信上可用的,且範圍311係妥善且正確儲存於計算裝置162上。
談到圖4,其中所示之系統400說明導致計算裝置162之一故障之一操作。這樣一故障可以包括計算裝置162本身、或其之任一部件之一硬體故障、例如電力輸送等之一相關支援機制之一故障、計算裝置162之一不可用性,例如由於一再啟動或一當機等之暫時狀況、或在計算裝置162之一或多個儲存裝置上之範圍311之不妥善或不正確儲存之形式之一故障。不論計算裝置162不能提供範圍311的原因為 何,客戶端計算裝置110仍可具有對包含於範圍311中之資料的一請求421。如前面所指出的,在上述之範例方案中,計算裝置143可包括範圍311之一實例,即顯示於圖2中之範圍211,且這樣一實例可以被編碼為抹除碼215。所以,在一實施例中,來自客戶端計算裝置110的請求可以例如藉由上述名稱伺服器計算裝置指向計算裝置143。這樣一個請求,自客戶端計算裝置110至伺服器計算裝置143,係於圖4之系統400中說明為請求421。
回應請求421,計算裝置143可以具有先儲存於這樣一個計算裝置上之範圍211之一未編碼版本。在一實施例中,藉由互斥或抹除碼215與除了範圍211之外、原本為了在第一個地方產生抹除碼215而互斥或的其他範圍,計算裝置143可以得到範圍211的這樣一個未編碼版本。在另一實施例中,範圍211之一未編碼版本可獲得自抹除碼215以及編碼至這樣的抹除碼215的其他範圍212、213與214,其係使用無論機制係由抹除碼產生機制適當給予用以於第一個地方產生抹除碼215之抹除碼產生機制。為了執行範圍211自抹除碼215之這樣一個解碼,計算裝置143可以自其他計算裝置請求抹除碼215自其而產生之範圍212、213與214之實例,例如圖2所示。舉例來說,計算裝置143可以與名稱伺服器計算裝置通信,其可反過來識別可以未編碼形式儲存於其上之一或多個計算裝置伺服器計算裝置通信,其可反過來識別可以未編碼形式儲存於其上之一或多個計算裝置,圖2中所示之範圍212、213與214之實例,抹除碼215係自其而 產生。在圖4所說明之範例系統400中,一計算裝置331可包括一未編碼範圍312,其可為圖2中所示之範圍212之一實例,且其係用以生成抹除碼215。同樣地,在圖4所說明之範例系統400中,計算裝置151和311可分別包括未編碼範圍313與314,其分別可為圖2中所示之範圍213與214之實例,且其亦用以生成抹除碼215。
為使計算裝置143能再產生未編碼範圍211,顯示於圖2,計算裝置331可以提供未編碼範圍312之一實例至計算裝置143,如由通信432說明於圖4中。如計算裝置143上之接收和儲存,圖4中範圍312的實例係寫有序號412,以說明相對於計算裝置331,儲存於計算裝置143上是不同的複本。此外,為了本範例之目的,圖4中所示之範圍412與312、以及圖2中所示之範圍212,可全部為同一範圍之實例。同樣地,為使計算裝置143能重新產生未編碼範圍211,計算裝置311可以提供未編碼範圍314之一實例,如通信434所說明,且計算裝置151可以提供未編碼範圍313之一實例,如通信433所說明。如儲存於計算裝置143上,圖4中範圍314之實例係寫有序號414,範圍313之的實例係寫有序號413以表示其為單獨的複本。
一旦計算裝置143已得到範圍412、414與413,其,如指出,可以分別為圖2中所示之範圍212、214與213之實例,且用以產生抹除碼215,則在一實施例中,計算裝置143可以互斥或範圍412、414、413及抹除碼215,其由計算420所說明,以獲得一範圍411,其可為原來用以產生抹除碼215 之範圍211之複本。在其他實施例中,如描述,計算420可以獲得使用無論機制係由抹除碼產生機制適當給予用以於第一個地方產生抹除碼215之抹除編碼之範圍411。伺服器計算裝置143可以接著於通信422中提供未編碼範圍411或其相關部分至客戶端計算裝置110,回應通信421。
如可見的,伺服器計算裝置143可以提供以未編碼範圍411之形式之範圍311之一冗餘複本,其不再是可存取的,由於伺服器計算裝置163的故障。伺服器計算裝置143係可於僅保留單一抹除碼215時提供這樣一個冗餘複本,如所示,其可如四個一起壓縮以產生這樣一個單一抹除碼215之範圍所消耗之儲存容量之四分之一一樣小的儲存容量。此外,如圖2所示並詳細說明於前,抹除碼215可以由本地儲存於計算裝置143中之資料產生,進而避免為於第一個地方產生抹除碼215為目的之網路傳輸。當網路傳輸時,例如圖4所說明中並詳細描述於前之通信432、433與434係可為必要的,以自一抹除碼至這樣被壓縮之一範圍產生一未編碼範圍,這樣的網路傳輸可為與一故障之事件中之冗餘機制所通常需要之網路傳輸之相似量。所以,當仍提供一相同冗餘量時,前述機制係可導致在網路傳輸量上之一有意義的減少。
此外,亦可以看到,描述的機制可提供非常簡單的抹除碼方案之利用,包括,但非限定,簡單數學互斥或運算之利用。這樣產生的抹除碼可以於一故障事件中用以提供請求資料,同時消耗由未編碼資料所消耗之儲存容量之一部分。所以,上述機制可於最佳使用儲存和處理能力時提供冗 餘。
在一實施例中,於此描述之機制係實施於一遞歸方式中以救回多個故障。舉例來說,在一實施例中,參考圖5之範例系統500,計算裝置143仍可產生範圍411,例如以類似於前詳細描述、參考圖4中之範例系統400之一方法,即使伺服器計算裝置162已故障,且若包括由計算裝置143所請求之一未編碼範圍之計算裝置之一(例如,伺服器計算裝置151)亦故障。更具體地,且由圖5之範例系統500所描述,計算裝置143仍可請求用以產生抹除碼215之未編碼範圍,其他,當然,範圍211係為未編碼。然而,在圖5之範例系統500中,當伺服器計算裝置143可以分別經由通信432與434、分別自計算裝置331和321接收範圍312與314,並分別將其儲存為範圍412與414時,伺服器計算裝置143在自計算裝置151上獲得任何範圍可能失敗,因為這樣一個計算裝置亦可故障。
在這樣一個情形下,在一實施例中,可以遞歸應用前述機制。更具體地,伺服器計算裝置143可以如一客戶動作並可請求範圍213之一未編碼實例,其係用以產生抹除碼215。回應以及如前述細節所說明,名稱伺服器可識別一或多個包括產生自範圍213之一實例之抹除碼之計算裝置。舉例來說,名稱伺服器可以自故障域580識別包括產生自包括範圍213之一實施之範圍之一抹除碼555之計算裝置581。這樣一個識別的計算裝置581可以接著執行上述步驟以解碼範圍213之一實例。舉例來說,伺服器計算裝置581可以自其他計 算裝置得到用以產生抹除碼555之其他範圍之未編碼版本。所以,如圖5之範例系統500所說明,計算裝置341可經由通信531提供範圍351。作為儲存於計算裝置581上,提供的範圍351之實例在圖5中寫有序號551,以說明這是範圍351之一不同複本。同樣地,來自故障域540之計算裝置541可以經由通信533提供未編碼範圍553。同樣地,來自故障域570之計算裝置571可以經由通信532提供未編碼範圍552。當儲存於計算裝置581上時,提供的範圍553之實例在圖5中寫有序號563,以說明這是範圍553之一不同複本。同樣地,範圍552之實例寫有序號562。
以範圍511、563、562,以及關於原本有的抹除碼555,計算裝置581可以執行計算522以產生未編碼範圍513。舉例來說,描述於具體實施例中,未編碼範圍可以由互斥或範圍551、563與562、以及抹除碼555產生,如計算522之說明。在其他實施例中,如說明,可以使用適合用以於第一個地方產生抹除碼555之抹除碼機制之解碼機制。在這樣一方法下,計算裝置581可以獲得範圍513。範圍513可以為範圍313之一實例,由於計算裝置151之故障,其不再可存取。所以,一旦例如藉由計算裝置581而得到範圍513,其可被提供至計算裝置143,如通信535所說明。在收到範圍513之後,計算裝置143可將其儲存為範圍523,計算裝置143例如以詳細說明於前的方法可以繼續進行計算521,除了以相等的範圍523取代前述獲得自計算裝置151之範圍313之外,範圍523係以此方法產生以回應計算裝置151之故障。計 算521之執行可以導致範圍411,如前面所指出的。所以,可以看出,經由前述機制之迭代應用,多個故障可以被容忍。
為了說明,前述機制已說明於一冗餘之上下文,其中係儲存三個資料複本。前述機制使得這些複本裡的二個能被降低至一抹除碼,進而於維護冗餘時減少儲存容量之利用率。然而,這樣的說明係僅為範例,且描述的機制係同樣適用於其他任何冗餘量。舉例來說,二資料複本可以被儲存,其一可以用以產生一抹除碼集。作為另一範例,四個資料複本可以被儲存,其二可以用以產生抹除碼集,而另二個可以保留於未編碼形式。其他變更是同樣可能的,本領域技術者將可了解。
在其他變更中,不同數量的故障域可以被使用且不同的儲存容量節約可被實現。舉例來說,若四個冗餘資料複本由一資料中心維護,且三個這樣的複本被壓縮至抹除碼,例如以前面詳細說明之方法,則七個故障域可以提供比三個完整、未編碼的冗餘複本所能完成的更高的可靠性。然而,這樣一個系統可以只使用三分之一由最初四個冗餘資料複本所使用之儲存容量。特別是,資料之一未編碼複本可被維護,而抹除碼可分別消耗六分之一、九分之一及十八分之一之一未編碼複本所消耗之儲存空間量,如本領域技術者將了解。
談到圖6,流程圖600於其中顯示範例性的一系列步驟,藉此可產生一抹除碼,例如藉由包括兩個或更多個範圍之一伺服器計算裝置,其旨在壓縮為一抹除碼。於此使用的動詞「壓縮」意指自兩個或更多個範圍創造一抹除碼。最初, 在步驟610,如說明,兩個或更多個範圍可以被接收以儲存於執行流程圖600之步驟之一計算裝置之一本地儲存媒體上。接著,在步驟620,可做出範圍是否保留於一未修改且未編碼的形式之決定。如前所述,得到範圍之冗餘複本之特定的一些計算裝置可以未編碼形式保留這樣的範圍,並可避免將這樣的範圍壓縮為抹除碼。在一實施例中,哪一計算裝置係以未編碼形式維護範圍之一決定可由名稱伺服器執行。在一替代的實施例中,可由個別的計算裝置做一最初的決定,接著其可以尋求例如一名稱伺服器之中央權限批准。在步驟620,不論做決定之方式,若在步驟620決定一範圍保留為一未修改形式,則相關處理可以結束於步驟660。
反之,若在步驟620決定範圍都壓縮為抹除碼,處理可以繼續進行步驟630,其中兩個或更多個範圍可以被選擇以壓縮為抹除碼。如前述,在一實施例中,四個範圍可以壓縮為一單一抹除碼。然而,如本領域技術者可知,任何大於一之數量之範圍可以使用前述機制以及前述說明壓縮為抹除碼,其中機制係提供於四個範圍壓縮為一單一抹除碼的情況中,其係僅範例且提供用於清楚說明,不應被理解為限制於上述抹除碼產生自僅四個範圍之實施例。
在一實施例中,在步驟630,範圍的選擇需要選擇具有大約相等大小之兩個或更多個範圍,由於,如所示,一產生的抹除碼的大小可以與壓縮為這樣一個抹除碼之最大範圍的大小相等。所以,若大約相同大小的抹除碼被選擇,則儲存容量節約可以被最大化。此外,在一實施例中,在步驟 630,範圍的選擇需要選擇兩個或更多個範圍,其內容可為可相容的。可相容性可需要具有大約類似的使用期限、類似被請求或存取的可能性、類似的來源、或其他類似的相似處之內容。
例如在步驟630,範圍的選擇可以由名稱伺服器計算裝置通知,或可以考慮被分配以用一未編碼形式儲存選擇範圍之複本之計算裝置。更具體地,在步驟630,兩個或更多個範圍之選擇可以避免選擇兩個或更多個範圍被壓縮為一單一抹除碼,其中這樣的選擇範圍皆儲存於一未編碼形式,在相同故障域中。本領域技術人員將了解,在這樣一實例中,萬一一故障發生影響這樣一個故障域,二個範圍將同時變為不可存取的,使得來自一抹除碼的這樣的範圍的重建實質上更難。
一旦兩個或更多個範圍已被選擇,在步驟630,處理可以進行至步驟640,其中一抹除碼可以自所選擇之範圍產生。如前面詳細說明,由說明的機制支援之一簡單抹除碼方案係為互斥或運算。因此,在步驟630,在這樣一個範例實施例中,抹除碼可以藉由互斥或那些範圍自選擇的範圍產生。亦如前所指出,互斥或運算可以按位元、按字元、或任何二進位資料的其他合適大小的劃界執行。接著,在步驟640,一旦抹除碼已產生,則於步驟630所選擇之範圍於步驟640已壓縮為抹除碼,該等範圍在步驟650可以被刪除。相關的處理可以接著於步驟660結束。
談到圖7,顯示於此的流程圖700說明步驟之一範 例系列,藉此,一範圍可為未編碼的由一抹除碼至這樣一個被壓縮的範圍。最初,在步驟710,一請求可以為一範圍而被接收、或接收自來自一範圍之資料,其已被壓縮為一抹除碼。在一實施例中,未具體說明於圖7中,在一相對應抹除碼的產生之後,範圍的刪除可以為了許多原因延後。所以,在這樣一個實施例中,在步驟710,在接收請求之後,可以做一核對,以判定是否請求範圍尚未被刪除。若請求範圍尚未被刪除,則這樣一範圍可以簡單地返回,回應於步驟710接收之請求,相關處理可以結束於步驟760。
然而,若請求範圍已刪除,只有一抹除碼保留,其中這樣一範圍已被壓縮為該抹除碼,處理可進行至步驟720,其中壓縮為相同抹除碼之其他範圍之識別可以被執行。在一實施例中,步驟720可由各計算裝置執行,其可以保留,帶有抹除碼、包括哪一個範圍係壓縮為這樣一抹除碼之一指令之元資料。在一替代實施例中,步驟720可以由外部計算裝置執行,例如名稱伺服器計算裝置,其可為了步驟720中判定的識別而被查詢。接著,在步驟730,識別範圍可以由計算裝置請求,其係已於其儲存媒體上以一未編碼形式儲存這樣的範圍。在步驟730,計算裝置對其用以指示請求之一識別可以接收自名稱伺服器計算裝置,或者,替代地,可以被知道本地至執行流程圖700之計算裝置。
在步驟730,若一或多個計算裝置,至其之請求係以一未編碼形式被指示不包括範圍,則那些計算裝置可以,反過來,執行圖7之範例流程圖700之步驟。接收於步驟730 被請求之範圍之後,處理可以進行至步驟740,其中接收的範圍和本地存在之抹除碼可用以產生請求的遺漏範圍。在一範例實施例中,為了處理效率,可以利用例如簡單的互斥或抹除碼等之簡單抹除碼方案。在這樣一範例實施例中,如前詳細說明,遺漏的範圍可以藉由簡單的互斥或本地存取抹除碼和在步驟730中被請求且在步驟740之運算前接收之範圍,在步驟740中產生。如前,在步驟740,互斥或可以按位元、按字元、或任何二進位資料的其他合適大小的劃界執行。在步驟750,產生於步驟740中之範圍可以接著被提供回應接收於步驟710之請求。相關處理可以接著結束於步驟760。
在一實施例中,雖然未說明於圖式中,但是一範圍自一抹除碼之解碼可以由來自範圍之實體請求資料執行。這樣一實施例可以提供網路傳輸最佳化,由於產生的未編碼範圍之傳輸之作廢。
談到圖8,其係說明一範例計算裝置800部分包括可用以執行和實施上述機制之硬體元件。範例計算裝置800可以包括,但不限定,一或多個中央處理單元(CPU)820、一系統記憶體830以及耦接包括系統記憶體之各種系統元件至處理單元820之一系統匯排流821。系統匯排流821可為數種匯排流結構之任一,包括一記憶體匯排流或記憶體控制器、一週邊匯排流、以及使用任何一種匯排流結構之一本地匯排流。依據具體實際實施,一或多個中央處理單元820、系統記憶體830及計算裝置800的其他元件實際上可位於同處,例如於一單一晶片上。在這樣一例子,一些或全部的系統匯排 流821只是在一單一晶片結構上的矽途徑,圖8中之其說明只是為了說明的目的標記方便。
計算裝置800通常亦包括電腦可讀取媒體,其可包括任何可由計算裝置800存取之可用媒體。藉由範例,並非限定,電腦可讀取媒體可包括電腦儲存媒體及通信媒體。電腦儲存媒體包括為了資訊的儲存,實施於任何方法或技術下的媒體,例如電腦可讀取指令、資料結構、程式模組或其他資料。電腦儲存媒體包括,但不限定,隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子抹除式可複寫唯讀記憶體(EEPROM)、快閃記憶體或其他記憶體技術、唯讀記憶光碟(CD-ROM)、數位光碟(DVD)或其他光磁碟儲存器、磁性卡帶、磁帶、磁性儲存器或其他磁性儲存裝置、或任何其他媒體,其可用以儲存所需資訊且可由計算裝置800所存取。然而,電腦儲存媒體不包括通信媒體。通信媒體通常包含電腦可讀取指令、資料結構、程式模組或例如一載波或其他傳輸機制等之一調變資料信號中之其他資料並包括任何資訊傳遞媒體。舉例而言,但不限定,通信媒體包括例如一有線網路或直接有線連接等之有線媒體、以及例如聲學、RF、紅外線及其他無線媒體等之無線媒體。任何前述之組合應亦可包括於電腦可讀取媒體之範圍中。
當使用通信媒體時,計算裝置800可經由至一或多個遠端電腦的一邏輯連接而操作於一網路環境中。描述於圖8中之邏輯連接係一至前述的網路101的一般網路連線871。網路101,範例計算裝置800至其係通信連接,可為一區域網路 (LAN)、例如網際網路之一廣域網路(WAN)、或其他網路。計算裝置800係經由一網路界面或連接器870連接至一般網路連線871,其係又連接至系統匯排流821。在一網路環境中,所述的程式模組相對於計算裝置800,或部分或其週邊,可儲存於與計算裝置800經由一般網路連線871通信連接之一或多個其他計算裝置之記憶體中。可理解的是,所示的網路連接係範例,可使用其他於計算裝置之間建立一通信鏈結之方法。
電腦儲存媒體中,該系統記憶體830包括揮發性及/或非揮發性記憶體形式之電腦儲存媒體,其中非揮發性記憶體包括唯讀記憶體(ROM)831及隨機存取記憶體(RAM)832。一基本輸入輸出系統(BIOS)833,除了其他方面,還包含用以啟動計算裝置800之編碼,其通常係儲存於唯讀記憶體(ROM)831中。隨機存取記憶體(RAM)832通常包含資料及/或程式模組,其係為立即可存取及/或目前正被操作,藉由處理單元820。經由範例,且不限定,圖8說明操作系統834、其他程式模組835、以及程式資料836。
計算裝置800亦可包括其他可移除的/不可移除的、揮發性的/非揮發性的電腦儲存媒體。僅經由範例,圖8說明一硬碟841,其讀取自或寫入至不可移除的、非揮發性的媒體。其他可移除的/不可移除的、揮發性的/非揮發性的電腦儲存媒體,其可被用於範例計算裝置包括,但非限定於,磁帶卡匣、快閃記憶卡、數位光碟、數位錄影帶、固態隨機存取記憶體、固態唯讀記憶體等等。硬碟841通常經由例如界面 840之一不可移除的記憶體界面,連接至系統匯排流821。
上面討論並說明於圖8中之磁碟機和他們相關的電腦儲存媒體提供電腦可讀取指令、資料結構、程式模組及計算裝置800之其他資料之儲存。舉例來說,在圖8中,硬碟841係說明作為儲存操作系統844、其他程式模組845、以及程式資料846。這些元件可以與操作系統834、其他程式模組835和程式資料836相同或不同。操作系統844、其他程式模組845和程式資料846於此係給予不同數字以說明,至少,他們是不同的複本。
由上述說明可看出,為了資料冗餘提供、經由本地產生、以互斥或為基礎之抹除碼的使用的機制已被提出。鑑於說明於此的標的物之許多可能的變化,我們主張本發明的所有這樣的實施例係落在以下的申請專利範圍及其等效物之範圍內。
110‧‧‧客戶端計算裝置
140‧‧‧故障域
143‧‧‧計算裝置
150‧‧‧故障域
151‧‧‧計算裝置
160‧‧‧故障域
215‧‧‧抹除碼
312‧‧‧範圍
313‧‧‧範圍
314‧‧‧範圍
320‧‧‧故障域
321‧‧‧計算裝置
330‧‧‧故障域
331‧‧‧計算裝置
400‧‧‧系統
411‧‧‧範圍
412‧‧‧範圍
413‧‧‧範圍
414‧‧‧範圍
420‧‧‧計算
421‧‧‧通信
422‧‧‧通信
432‧‧‧通信
433‧‧‧通信
434‧‧‧通信

Claims (20)

  1. 一種電腦可讀取媒體,其係包括用以產生一抹除碼之電腦可執行指令,該等電腦可執行指令之指向步驟係包括:選擇兩個或更多個範圍之本地儲存實例,如此該等選擇範圍中之每一個之至少一其他實例係儲存為一未編碼形式於一相異的故障域上;自該兩個或更多個範圍之該等選擇的本地儲存實例中產生該抹除碼;以及在該抹除碼產生之後,刪除該兩個或更多個範圍之該等選擇的本地儲存實例。
  2. 如請求項1所述之電腦可讀取媒體,其中用以自該兩個或更多個範圍之該等選擇的本地儲存實例中產生該抹除碼之該等電腦可執行指令係包括,用以互斥或該兩個或更多個範圍之該等選擇的本地儲存實例之電腦可執行指令。
  3. 如請求項1所述之電腦可讀取媒體,其中用以自該兩個或更多個範圍之該等選擇的本地儲存實例中產生該抹除碼之該等電腦可執行指令係包括,用以選擇該兩個或更多個範圍之該等本地儲存實例之電腦可執行指令,其使得該等選擇範圍亦為相同大小。
  4. 如請求項1所述之電腦可讀取媒體,其中用以自該兩個或更多個範圍之該等選擇的本地儲存實例中產生該抹除碼之 該等電腦可執行指令係包括,用以選擇該兩個或更多個範圍之該等本地儲存實例之電腦可執行指令,其使得該等選擇範圍其中之一的一內容所具有的一使用期限大約等於其他的該等選擇範圍的每一個的一內容。
  5. 如請求項1所述之電腦可讀取媒體,其中該二相異的故障域包括一冗餘儲存系統之二相異儲存媒體。
  6. 如請求項1所述之電腦可讀取媒體,更包括用以自該抹除碼產生一請求範圍之一實例之電腦可執行指令,該請求範圍係該等選擇範圍其中之一,進一步的該等電腦可執行指令之指向步驟係包括:該抹除碼產生後之刪除後,識別所有除了該請求範圍外之該等選擇範圍,其中該請求範圍其本地儲存實例亦係壓縮為該抹除碼;從已識別之其他該等範圍之實例以一未編碼形式儲存之位置,請求已識別之其他該等範圍;接收已識別之其他該等範圍之該未編碼形式之實例以回應該請求;以及自該抹除碼與該等其他範圍之已接收之該未編碼形式之該等實例,產生該請求範圍。
  7. 如請求項6所述之電腦可讀取媒體,更包括電腦可執行指令,用以:自一或多個名稱伺服器請求已識別之其他該等 範圍之實例以一未編碼形式儲存之位置。
  8. 如請求項6所述之電腦可讀取媒體,更包括電腦可執行指令,用以:自該範圍接收一請求;判斷該抹除碼產生後之該刪除是否已執行;以及若該抹除碼產生後之該刪除已被執行,僅執行該識別、該請求、該接收、以及該範圍之產生。
  9. 一種於電腦可讀取儲存媒體上冗餘地儲存電腦可讀取資料之方法,該方法包括步驟:接收儲存資料;產生一第一範圍,該第一範圍包括至少部分該資料;於相異故障域上儲存所產生之該第一範圍之兩個或更多個實例中的每一個;在該等相異故障域中之一第一故障域,選擇該第一範圍之一實例、以及至少一其他範圍之一實例,已選擇之該至少一其他範圍具有其另一實例,其係儲存於與該二相異故障域皆不同之一第三故障域中;在該等相異故障域中的該第一故障域中,由該第一範圍之該實例、以及該至少一其他範圍之該實例產生該抹除碼;在該抹除碼產生後,自該二相異故障域之該第一個故障域中刪除該第一範圍之該實例以及該至少一其他範圍之該實例。
  10. 如請求項9所述之方法,其中自該第一範圍之該實例與該至少一其他範圍之該實例產生該抹除碼之步驟包括以下步驟:在該二相異故障域之該第一故障域藉由互斥或該第一範圍之該實例與該至少一其他範圍之該實例產生該抹除碼。
  11. 如請求項9所述之方法,更包括步驟:自該第一範圍接收一請求;該抹除碼產生後之刪除後,識別所有壓縮為該抹除碼之該至少一其他範圍;從已識別之該等範圍之實例以一未編碼形式儲存之位置,請求已識別之該等範圍;接收已識別之該等範圍之該未編碼形式之實例以回應請請求;以及自該抹除碼與已識別之該等範圍之已接收之該未編碼形式之該等實例,產生該第一範圍之一實例。
  12. 一冗餘資料儲存系統,包括:一第一故障域,包括一第一範圍之一第一實例、以及一第二範圍之一第一實例;一第二故障域,其與該第一故障域不同,該第二故障域包括該第一範圍之一第二實例;一第三故障域,其與該第一故障域與該第二故障域皆不同,該第三故障域包括該第二範圍之一第二實例;以及 執行電腦可執行指令之一或多個處理單元之一第一集合,產生該一或多處理單元之該第一集合之該等電腦可執行指令之該執行用以執行步驟,包括:自包括該第一範圍之該第一實例、與該第二範圍之該第一實例之範圍,於該第一故障域產生一第一抹除碼;以及在該第一抹除碼產生後,自該第一故障域刪除該第一範圍之該第一實例、以及該第二範圍之該第一實例。
  13. 如請求項12所述之冗餘資料儲存系統,更包括:一第四故障域,與該第一、第二、第三故障域的每一個都不同,該第四故障域包括:該第一範圍之一第三實例以及該第二範圍之一第三實例;以及執行電腦可執行指令之一或多個處理單元之一第二集合,產生該一或多處理單元之該第二集合之該等電腦可執行指令之該執行用以執行步驟,包括:自包括該第一範圍之該第三實例、與該第二範圍之該第三實例,於該第四故障域產生一第二抹除碼;以及在該抹除碼產生後,自該第四故障域刪除該第一範圍之該第三實例、以及該第二範圍之該第三實例。
  14. 如請求項12所述之冗餘資料儲存系統,其中該第一與該第二範圍係為相同大小。
  15. 如請求項12所述之冗餘資料儲存系統,其中該第一範圍之一內容具有一使用期限,其係大約與該第二範圍之一內容相等。
  16. 如請求項12所述之冗餘資料儲存系統,其中該第一、第二與第三故障域各包括一單一資料中心之相異部分,其係最小化任何一般基本設施之一共享。
  17. 如請求項12所述之冗餘資料儲存系統,其中該第一、第二與第三故障域各包括相異的儲存媒體。
  18. 如請求項12所述之冗餘資料儲存系統,其中一或多個處理單元之該第一集合執行進一步電腦可執行指令,該等進一步電腦可執行指令之執行使該一或多個處理單元之該第一集合執行步驟,包括:該抹除碼產生後之刪除後,接收該第一範圍之一請求;自該第三故障域請求該第二範圍之一第三實例;從該第一抹除碼與該第二範圍之該第三實例產生該第一範圍之一第三實例。
  19. 如請求項18所述之冗餘資料儲存系統,更包括:一第四故障域,與該第一、第二和第三故障域的每個都不同,該第四故障域包括:產生自該第二範圍與一第三範圍之一第二抹除碼,其中該第三範圍係與該第一範圍和該第二 範圍不同;以及執行電腦可執行指令之一或多個處理單元之一第二集合,產生該一或多處理單元之該第二集合之該等電腦可執行指令之該執行用以執行步驟,包括:自該第三範圍之一實例以一未編碼形式儲存之一位置,請求該第三範圍;自該第二抹除碼與其他該等範圍之已接收實例,以該未編碼形式產生該第二範圍之一第三複本。
  20. 如請求項12所述之冗餘資料儲存系統,更包括一或多個名稱伺服器,其係維護該第一抹除碼之一位置、以及該第一範圍與該第二範圍之各個該等實例。
TW103118108A 2013-06-25 2014-05-23 本地產生的簡單抹除碼 TW201506607A (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/927,061 US9354991B2 (en) 2013-06-25 2013-06-25 Locally generated simple erasure codes

Publications (1)

Publication Number Publication Date
TW201506607A true TW201506607A (zh) 2015-02-16

Family

ID=51257570

Family Applications (1)

Application Number Title Priority Date Filing Date
TW103118108A TW201506607A (zh) 2013-06-25 2014-05-23 本地產生的簡單抹除碼

Country Status (6)

Country Link
US (1) US9354991B2 (zh)
EP (1) EP3014451B1 (zh)
CN (1) CN105378676B (zh)
BR (1) BR112015031633B1 (zh)
TW (1) TW201506607A (zh)
WO (1) WO2014209823A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI764973B (zh) * 2017-01-20 2022-05-21 南韓商三星電子股份有限公司 儲存系統及其操作方法

Families Citing this family (55)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9595979B2 (en) * 2015-01-20 2017-03-14 International Business Machines Corporation Multiple erasure codes for distributed storage
WO2016126888A1 (en) * 2015-02-03 2016-08-11 Sobhani Shahraun Scott Space-based electronic data storage and transfer network system
US9983959B2 (en) 2015-06-29 2018-05-29 Microsoft Technology Licensing, Llc Erasure coding of data within a group of storage units based on connection characteristics
US9830221B2 (en) * 2016-04-05 2017-11-28 Netapp, Inc. Restoration of erasure-coded data via data shuttle in distributed storage system
US20180241503A1 (en) * 2017-02-17 2018-08-23 SEAKR Engineering, Inc. Systems and methods for space-based and hybrid distributed data storage
US10761743B1 (en) 2017-07-17 2020-09-01 EMC IP Holding Company LLC Establishing data reliability groups within a geographically distributed data storage environment
US10284234B1 (en) 2017-07-19 2019-05-07 EMC IP Holding Company LLC Facilitation of data deletion for distributed erasure coding
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
US10880040B1 (en) 2017-10-23 2020-12-29 EMC IP Holding Company LLC Scale-out distributed erasure coding
US10382554B1 (en) 2018-01-04 2019-08-13 Emc Corporation Handling deletes with distributed erasure coding
US10817374B2 (en) 2018-04-12 2020-10-27 EMC IP Holding Company LLC Meta chunks
US10579297B2 (en) 2018-04-27 2020-03-03 EMC IP Holding Company LLC Scaling-in for geographically diverse storage
CN110196682B (zh) * 2018-06-15 2022-03-18 腾讯科技(深圳)有限公司 数据管理方法、装置、计算设备及存储介质
US10936196B2 (en) * 2018-06-15 2021-03-02 EMC IP Holding Company LLC Data convolution for geographically diverse storage
US11023130B2 (en) 2018-06-15 2021-06-01 EMC IP Holding Company LLC Deleting data in a geographically diverse storage construct
US10719250B2 (en) 2018-06-29 2020-07-21 EMC IP Holding Company LLC System and method for combining erasure-coded protection sets
US20190042365A1 (en) * 2018-09-26 2019-02-07 Intel Corporation Read-optimized lazy erasure coding
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
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
US10931777B2 (en) 2018-12-20 2021-02-23 EMC IP Holding Company LLC Network efficient geographically diverse data storage system employing degraded chunks
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
US10936239B2 (en) 2019-01-29 2021-03-02 EMC IP Holding Company LLC Cluster contraction of a mapped redundant array of independent nodes
US10846003B2 (en) 2019-01-29 2020-11-24 EMC IP Holding Company LLC Doubly mapped redundant array of independent nodes for data storage
US10866766B2 (en) 2019-01-29 2020-12-15 EMC IP Holding Company LLC Affinity sensitive data convolution for data storage systems
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
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
US11121727B2 (en) 2019-04-30 2021-09-14 EMC IP Holding Company LLC Adaptive data storing for data storage systems employing erasure coding
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
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
US11748004B2 (en) 2019-05-03 2023-09-05 EMC IP Holding Company LLC Data replication using active and passive data storage modes
CN111949628B (zh) * 2019-05-16 2024-05-17 北京京东尚科信息技术有限公司 数据操作方法、装置和分布式存储系统
US11209996B2 (en) 2019-07-15 2021-12-28 EMC IP Holding Company LLC Mapped cluster stretching for increasing workload in a data storage system
US11023145B2 (en) 2019-07-30 2021-06-01 EMC IP Holding Company LLC Hybrid mapped clusters for data storage
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
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
US11119690B2 (en) 2019-10-31 2021-09-14 EMC IP Holding Company LLC Consolidation of protection sets in a geographically diverse data storage 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
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
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
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
US11288229B2 (en) 2020-05-29 2022-03-29 EMC IP Holding Company LLC Verifiable intra-cluster migration for a chunk 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
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
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
US11354191B1 (en) 2021-05-28 2022-06-07 EMC IP Holding Company LLC Erasure coding in a large geographically diverse data storage system

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7191357B2 (en) * 2002-03-29 2007-03-13 Panasas, Inc. Hybrid quorum/primary-backup fault-tolerance model
US7581156B2 (en) 2002-12-16 2009-08-25 Microsoft Corporation Systems and methods for providing improved encoding and reconstruction of data
US20040254964A1 (en) * 2003-06-12 2004-12-16 Shoji Kodama Data replication with rollback
US7546342B2 (en) 2004-05-14 2009-06-09 Microsoft Corporation Distributed hosting of web content using partial replication
US7596673B2 (en) 2005-12-08 2009-09-29 Sony Corporation Failure tolerant data storage
US20080183963A1 (en) 2007-01-31 2008-07-31 International Business Machines Corporation System, Method, And Service For Providing A Generic RAID Engine And Optimizer
US7930611B2 (en) * 2007-03-09 2011-04-19 Microsoft Corporation Erasure-resilient codes having multiple protection groups
US7904782B2 (en) * 2007-03-09 2011-03-08 Microsoft Corporation Multiple protection group codes having maximally recoverable property
US8051362B2 (en) * 2007-06-15 2011-11-01 Microsoft Corporation Distributed data storage using erasure resilient coding
CN101868785B (zh) * 2007-09-21 2014-09-24 惠普开发有限公司 生成数据存储系统的并行恢复策略
EP2342661A4 (en) 2008-09-16 2013-02-20 File System Labs Llc METHODS AND DEVICES FOR CORRECTING ERRORS AND ERASER CODE BASED ON MATRIX AND APPLICATIONS THEREOF
EP2187397A1 (en) 2008-11-05 2010-05-19 Thomson Licensing Method and apparatus for erasure decoding an ECC coded bitstream
US8296515B1 (en) 2009-05-22 2012-10-23 Nvidia Corporation RAID-6 computation system and method
US8458287B2 (en) 2009-07-31 2013-06-04 Microsoft Corporation Erasure coded storage aggregation in data centers
US10216647B2 (en) * 2010-02-27 2019-02-26 International Business Machines Corporation Compacting dispersed storage space
US8473778B2 (en) * 2010-09-08 2013-06-25 Microsoft Corporation Erasure coding immutable data
US8683153B1 (en) * 2010-09-29 2014-03-25 Emc Corporation Iterating for deduplication
EP2659369B1 (en) * 2010-12-27 2014-10-15 Amplidata NV A distributed object storage system comprising performance optimizations
US8621330B2 (en) 2011-03-21 2013-12-31 Microsoft Corporation High rate locally decodable codes
CN102270161B (zh) * 2011-06-09 2013-03-20 华中科技大学 一种基于纠删码的多等级容错数据存储、读取和恢复方法
US9141679B2 (en) 2011-08-31 2015-09-22 Microsoft Technology Licensing, Llc Cloud data storage using redundant encoding
US8799746B2 (en) * 2012-06-13 2014-08-05 Caringo, Inc. Erasure coding and replication in storage clusters

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI764973B (zh) * 2017-01-20 2022-05-21 南韓商三星電子股份有限公司 儲存系統及其操作方法
US11429487B2 (en) 2017-01-20 2022-08-30 Samsung Electronics Co., Ltd. Control plane method and apparatus for providing erasure code protection across multiple storage devices

Also Published As

Publication number Publication date
EP3014451B1 (en) 2017-12-20
US9354991B2 (en) 2016-05-31
BR112015031633B1 (pt) 2022-05-31
US20140380088A1 (en) 2014-12-25
EP3014451A1 (en) 2016-05-04
BR112015031633A2 (pt) 2017-07-25
BR112015031633A8 (pt) 2021-05-25
WO2014209823A1 (en) 2014-12-31
CN105378676B (zh) 2019-06-21
CN105378676A (zh) 2016-03-02

Similar Documents

Publication Publication Date Title
TW201506607A (zh) 本地產生的簡單抹除碼
US11954002B1 (en) Automatically provisioning mediation services for a storage system
CN113302584B (zh) 基于云的存储系统的存储管理
CN111868676B (zh) 在基于云的存储系统中服务i/o操作
US12069167B2 (en) Unlocking data stored in a group of storage systems
US11960777B2 (en) Utilizing multiple redundancy schemes within a unified storage element
US10789020B2 (en) Recovering data within a unified storage element
US11467755B2 (en) Method and system for enabling agentless backup and restore operations on a container orchestration platform
JP6522008B2 (ja) 散在ストレージ・ネットワークにおける多世代記憶されたデータの読取り
US9098447B1 (en) Recovery of corrupted erasure-coded data files
US11119841B2 (en) Checking data integrity of data storage systems
US20160217040A1 (en) Raid parity stripe reconstruction
US10931450B1 (en) Distributed, lock-free 2-phase commit of secret shares using multiple stateless controllers
CN111984465A (zh) 数据库远程备份方法、装置、介质和电子设备
US20210232323A1 (en) Managing voltage threshold shifts
US10042709B2 (en) Rebuild prioritization during a plurality of concurrent data object write operations
CN107852349B (zh) 用于多节点集群的事务管理的系统、方法及存储介质
US20210255927A1 (en) Granular Voltage Tuning
US10564883B2 (en) Efficient migration to distributed storage
US9098446B1 (en) Recovery of corrupted erasure-coded data files
US20150378836A1 (en) Data Backup Recovery
US11847071B2 (en) Enabling communication between a single-port device and multiple storage system controllers
CN111104252B (zh) 用于混合磁盘环境中的数据备份的系统和方法
Knight et al. {SMB/NFS/NMLOP}{BoF}
US20240103973A1 (en) Leveraging file-system metadata for direct to cloud object storage optimization