用于跨存儲設備寫入數(shù)據(jù)的方法和系統(tǒng)的制作方法
【技術領域】
[0001]本發(fā)明涉及計算機科學領域,并且更具體地涉及一種用于在糾刪碼系統(tǒng)中跨存儲設備寫入數(shù)據(jù)的計算機實現(xiàn)的方法和系統(tǒng)程序。
【背景技術】
[0002]現(xiàn)今,使用RAID (獨立磁盤冗余陣列)的數(shù)據(jù)存儲系統(tǒng)采用硬件RAID控制器,該硬件RAID控制器計算一組用戶數(shù)據(jù)塊的奇偶校驗、并跨越給定的一組存儲設備存儲所述奇偶校驗。
[0003]研究團體已經(jīng)提出若干種存儲系統(tǒng),例如在以下專利或專利申請中提出:US2012/0266011A1、 US2012/0311255A1、 US2012/0030425A1、 US8166370B1、US2012/0278689AU US2013/0007572AU US7346831B1 ;并且還在以下文章中提出:
[0004]-Bin Fan Wittawat Tantisiriroj Lin Xiao Garth Gibson.DISKREDUCE:REPLICAT1N AS A PRELUDE TO ERASURE CODING IN DATAINTENSIVE SCALABLECOMPUTING ;
[0005]-Vladimir Sapunenk0.DATA PROTECT1N TECHNOLOGIES:WHAT COMES AFTERRAID ? 2012 年春季 HEPiX 研討會,23-27,2012 年 4 月;
[0006]-Ping-Hsun Hsieh Ing-Yi Chen ;Yu_Ting Lin ;Sy-Yen Ku0.AN XOR BASEDREED-S0L0M0N ALGORITHM FOR ADVANCED RAID SYSTEMS.發(fā)表于 Defect and FaultTolerance in VLSI Systems, 10-13,2004 年 10 月,p.165-172。
[0007]隨著系統(tǒng)向外擴展,許多RAID控制器被使用,其中每個RAID控制器被指派給給定的一組存儲設備。通過設計,這樣的系統(tǒng)具有數(shù)據(jù)和奇偶校驗的成簇布置。
[0008]使用RAID的系統(tǒng)是使用糾刪碼的更大一類系統(tǒng)的一部分。對于糾刪碼系統(tǒng),近來的研究已經(jīng)表明:當糾刪碼中的奇偶校驗的數(shù)量大于一(例如,RAID-6、三路復制)時,除了成簇以外的布置方案(例如,分簇)在可靠性方面具有顯著優(yōu)勢。諸如分簇布置之類的布置方案已經(jīng)在用于各種糾刪碼的軟件中被實現(xiàn)。然而,當系統(tǒng)尺寸擴展或當工作負荷增加時,這樣的軟件實現(xiàn)可能遭受嚴重的性能退化。
[0009]在此背景下,仍然需要用于在糾刪碼系統(tǒng)中跨存儲設備處理數(shù)據(jù)的改進的解決方案。
【發(fā)明內容】
[0010]根據(jù)一個方面,本發(fā)明被實現(xiàn)為一種用于在糾刪碼系統(tǒng)中跨存儲設備寫入數(shù)據(jù)的方法。該方法包括:從第一數(shù)據(jù)計算第一數(shù)據(jù)塊和第一奇偶校驗塊,所述第一數(shù)據(jù)將被存儲在系統(tǒng)中,其中所述計算由一個或多個控制器執(zhí)行,所述控制器中的每一個是獨立磁盤冗余陣列控制器;以及通過使用一個或多個布置節(jié)點來提供計算出的第一數(shù)據(jù)塊和第一奇偶校驗塊在存儲設備中的位置,所述布置節(jié)點被配置成管理數(shù)據(jù)塊和奇偶校驗塊在所述存儲設備上的布置方案。
[0011]在示例中,該方法可以包括下述中的一個或多個:
[0012]-根據(jù)由一個或多個控制器使用的糾刪碼,選擇由一個或多個布置節(jié)點管理的布置方案;
[0013]-提供計算出的第一數(shù)據(jù)塊和第一奇偶校驗塊的位置還包括將由一個或多個布置節(jié)點提供的位置存儲在布置元數(shù)據(jù)中,該布置元數(shù)據(jù)對于每個數(shù)據(jù)塊和每個奇偶校驗塊包括系統(tǒng)中的塊的邏輯地址空間與存儲設備中的塊的物理地址空間之間的映射。
[0014]-將第一數(shù)據(jù)塊和第一奇偶校驗塊發(fā)送到一個或多個布置節(jié)點,并將所發(fā)送的第一數(shù)據(jù)塊和第一奇偶校驗塊存儲在識別出的位置上;
[0015]-將被存儲的第二數(shù)據(jù)是已經(jīng)存儲的第一數(shù)據(jù)的更新,還包括:由一個或多個控制器向一個或多個布置節(jié)點請求將被更新的第一數(shù)據(jù)塊和第一奇偶校驗塊,向一個或多個控制器提供所請求的將被更新的第一數(shù)據(jù)塊和第一奇偶校驗塊,并且通過根據(jù)將被更新的第二數(shù)據(jù)修改所提供的第一數(shù)據(jù)塊和第一奇偶校驗塊,來計算第二數(shù)據(jù)塊和第二奇偶校驗塊;
[0016]-將計算出的第二數(shù)據(jù)塊和第二奇偶校驗塊發(fā)送到一個或多個布置節(jié)點,并將第二數(shù)據(jù)塊和第二奇偶校驗塊存儲在識別出的位置上;
[0017]-在發(fā)送計算出的第二數(shù)據(jù)塊和第二奇偶校驗塊之前:
[0018]由一個或多個布置節(jié)點識別計算出的第二數(shù)據(jù)塊和第二奇偶校驗塊在存儲系統(tǒng)中的位置;
[0019]-檢測一個或多個存儲設備發(fā)生故障;由一個或多個布置節(jié)點啟動存儲在發(fā)生故障的一個或多個存儲設備上的數(shù)據(jù)塊和奇偶校驗塊的重建;
[0020]-啟動數(shù)據(jù)塊和奇偶校驗塊的重建包括:由一個或多個布置節(jié)點識別幸存的數(shù)據(jù)塊和奇偶校驗塊的位置;由一個或多個布置節(jié)點取回存儲在識別出的位置處的幸存的數(shù)據(jù)塊和奇偶校驗塊;將取回的幸存的數(shù)據(jù)塊和奇偶校驗塊發(fā)送到一個或多個控制器;從取回的幸存的數(shù)據(jù)塊和奇偶校驗塊重建丟失的數(shù)據(jù)塊和丟失的奇偶校驗塊;
[0021]根據(jù)另一方面,本發(fā)明被實現(xiàn)為用于跨存儲設備寫入數(shù)據(jù)的糾刪碼系統(tǒng),該系統(tǒng)包括一個或多個獨立磁盤冗余陣列控制器和一個或多個布置節(jié)點,所述布置節(jié)點被配置成管理數(shù)據(jù)塊和奇偶校驗塊在所述存儲設備上的布置方案,所述系統(tǒng)適于執(zhí)行上述方法。
[0022]在示例中,該系統(tǒng)可以包括下述中的一個或多個:
[0023]-一個或多個布置節(jié)點管理分簇布置方案;
[0024]-該系統(tǒng)包括實現(xiàn)不同的糾刪碼的至少兩個控制器;
[0025]-該系統(tǒng)運行包括用于實現(xiàn)一個或多個布置節(jié)點的代碼模塊的計算機程序。
【附圖說明】
[0026]現(xiàn)在將要通過非限制性示例并且參考附圖描述體現(xiàn)本發(fā)明的系統(tǒng)和過程,在附圖中:
[0027]圖1示出代表該方法的流程圖;
[0028]圖2和3示出代表該系統(tǒng)的示例的流程圖;
[0029]圖4圖解成簇和分簇布置的示例;
[0030]圖5圖解執(zhí)行該方法的系統(tǒng)的示例;并且
[0031]圖6示出計算機系統(tǒng)的示例。
【具體實施方式】
[0032]參考圖1的流程圖,其示出一種用于在糾刪碼系統(tǒng)中跨存儲設備寫入數(shù)據(jù)的方法。該方法包括:從第一數(shù)據(jù)計算第一數(shù)據(jù)塊和第一奇偶校驗塊,所述第一數(shù)據(jù)將被存儲在系統(tǒng)中,其中所述計算由一個或多個控制器執(zhí)行,所述控制器中的每一個是獨立磁盤冗余陣列(RAID)控制器。該方法還包括:通過使用一個或多個布置節(jié)點來提供所計算的第一數(shù)據(jù)塊和第一奇偶校驗塊在存儲設備中的位置,所述布置節(jié)點被配置成管理數(shù)據(jù)塊和奇偶校驗塊在所述存儲設備上的布置方案。布置方案可以是分簇布置方案。
[0033]這樣的方法改進糾刪碼系統(tǒng)中的數(shù)據(jù)處理的性能而無需高開發(fā)成本。值得注意的是,所提出的方法結合軟件和硬件實現(xiàn)的優(yōu)點、并避免兩者面對的缺點。的確,本發(fā)明使用RAID控制器用于從數(shù)據(jù)計算數(shù)據(jù)塊和奇偶校驗塊(即,實現(xiàn)糾刪碼),并且使用一個或多個布置節(jié)點來根據(jù)給定布置方案將RAID控制器的輸出路由至系統(tǒng)中的不同存儲設備。通過這種方式,糾刪碼系統(tǒng)中的數(shù)據(jù)的寫入不限于在硬件中實現(xiàn)的給定糾刪碼或布置方案,因為一旦硬件被實現(xiàn),那么改變糾刪碼或布置方案是不可行的。以其他方式表述,使用硬件RAID控制器確保在對存儲系統(tǒng)寫入和更新期間極其快速的奇偶校驗計算,并且通過使用布置節(jié)點來路由RAID控制器的輸出,可以在軟件中進行數(shù)據(jù)和奇偶校驗塊的布置。這有利地允許優(yōu)化數(shù)據(jù)和奇偶校驗塊跨越系統(tǒng)中所有存儲設備的布置以平衡成本、性能和可靠性。
[0034]在步驟SlO處,由計算機客戶端發(fā)送用于在糾刪碼系統(tǒng)中存儲數(shù)據(jù)的寫入請求。由至少一個RAID控制器接收該寫入請求。術語RAID控制器意指管理物理存儲設備(例如,磁盤驅動器)并將它們作為邏輯