一種橫向擴展存儲系統的構建方法
2023-07-14 17:41:01 1
一種橫向擴展存儲系統的構建方法
【專利摘要】本發明涉及一種橫向擴展存儲系統的構建方法,適用於大數據分布式存儲,屬於大數據云存儲【技術領域】。包括以下步驟:按節點對存儲系統中所有的塊設備進行劃分,使每個塊設備歸入一個節點;將所有節點的塊設備按照一定大小進行條帶切分,並把他們按照一定的算法整合為一個統一的存儲池;將存儲池映射給存儲系統的客戶端;客戶端向存儲池寫入和從存儲池讀出數據。傳統的存儲系統只能配置固定的容量,固定的前後端接口,而基於橫向擴展架構的存儲系統可以很輕鬆的擴展和管理PB級的數據,也可以提供更多的CPU、內存,前後端接口,更大的容量,不存在單點性能瓶頸。
【專利說明】一種橫向擴展存儲系統的構建方法
【技術領域】
[0001]本發明涉及一種橫向擴展存儲系統的構建方法,適用於大數據存儲,屬於大數據云存儲【技術領域】。
【背景技術】
[0002]在現代存儲領域,為了提高存儲數據的可靠性和改善存儲系統的輸入、輸出性能,人們設計了多種數據存儲方案,這些數據存儲方案通常是各種類型的獨立磁碟冗餘陣列
八!'1^78 0? 111(161)611(16111: 018^8, 1^10) 0 通過使用特定的硬體或軟體,狀 10 把多個物理存儲設備如磁碟,聯合起來,形成一個統一的邏輯存儲設備。但傳統的數據存儲系統,均是基於單節點,通過增加0^能力和磁碟個數進行縱向擴展。當擴展到一定程度後,系統的性能達到峰值,再擴展則會導致性能下降。
[0003]下面對狀10中常用的技術術語進行解釋:
[0004]條帶:又稱為3廿如一;是磁碟陣列的不同磁碟上的位置相關的分塊的集合,是組織不同磁碟上條塊的單位。
[0005]條帶化:又稱為;是指把一段連續數據分割成相同大小的數據塊,把每段數據分別寫入到磁碟陣列的不同磁碟上的方法。
[0006]磁碟鏡像是指複製源數據到一個或更多的磁碟上,
[0007]節點:傳統概念中的一個存儲系統,為本文中提到的一個節點。
[0008]分布式存儲:將原來統一存放在某一個節點上的數據,分散到不同的節點上,在增加容量的同時,也增加了計算資源,不存在理論上的計算瓶頸。
[0009]父01?運算:異或運算。
[0010]比較常用的狀10有狀100、狀101、狀105、狀106、狀1010、狀1050和狀1060等。其中狀100不具有冗餘能力,狀101隻是對磁碟做了鏡像。其它5種陣列分別有多個磁碟組成,它們以條帶的方式向陣列中的磁碟寫數據,奇偶校驗數據存放在陣列中的各個磁碟上。傳統的陣列在數據量較小的情況得到了廣泛應用。
[0011]縱向擴展:傳統存儲通過對單系統節點內進行處理器性能增強、內存空間增大、磁碟容量空間增加進行存儲系統擴展。
[0012]橫向擴展:通過增加節點來達到增強處理器性能、內存空間和磁碟容量達到存儲系統擴展的目的。
[0013]然而,在數據量大增的今天,傳統的陣列出現了幾種情況下無法滿足當前雲存儲對存儲系統容量和吞吐效率的需求:
[0014]1、大容量的集中存儲對傳統存儲系統帶來了挑戰;
[0015]2、大量的上百⑶的大文件同時往一個傳統存儲系統中寫入,此時的傳統存儲的前端接口已經無法滿足這樣的需求;
[0016]3、在通常的分布式或者集群文件系統中,主要是基於在節點中的本地文件系統之上進行了分布式或者集群式的處理,基於文件級的鎖機制,這種機制在機架或者機房掉電時,帶來的是數據丟失的災難。而當前基於節點上使用本地文件系統來構建的分布式存儲系統無法解決此問題,在數據恢復時,會帶來大量的網絡、處理器和內存資源的消耗,且有可能導致業務停止運行。
【發明內容】
[0017]本發明的目的是為解決傳統縱向擴展的存儲系統因為只能配置固定的⑶匕內存、磁碟容量和固定的前後端接口帶來的帶寬和10?3存在擴展極限的問題,提出一種基於橫向擴展存儲系統的構建方法。
[0018]本發明的思想是拋棄傳統的縱向擴展,改為以橫向擴展的方式來增加存儲空間和計算資源,從而進行存儲系統構建。
[0019]本發明的目的是通過以下技術方案實現的:
[0020]一種基於橫向擴展存儲系統的構建方法,包括以下步驟:
[0021]步驟一:按節點對存儲系統中所有的磁碟,即塊設備進行劃分,使每個塊設備歸入一個節點;
[0022]磁碟包括了本地硬碟和網絡映射的磁碟,本地磁碟如1101),8^8 或者330,本地軟、硬狀10和邏輯卷等;網絡映射的磁碟如通過協議、%協議或者13現協議等映射的磁碟陣列的;
[0023]步驟二:將步驟一中所有節點的塊設備按照一定大小進行條帶切分,並把他們按照一定的算法整合為一個統一的存儲池;
[0024]所述算法可以採用網絡狀10算法,如狀100,狀101,狀105或者狀106等,也可以採用糾刪碼技術,靈活對磁碟空間的利用率進行控制,^份數據,I份冗餘數據;
[0025]步驟三:將步驟二中的存儲池映射給存儲系統的客戶端;
[0026]通過存儲網絡協議將存儲池映射給客戶端進行使用,存儲協議如1%31、和13現等;也可以將存儲池格式化為文件系統再通過嫩3相關協議,如和即3等進行導出;也可通過仙I對存儲池進行管理和讀寫,方便第三方應用直接寫入,避免協議的轉換,提升與入效率;
[0027]步驟四:客戶端向存儲池寫入和從存儲池讀出數據;
[0028]數據從存儲系統的客戶端寫入時,將數據對象化,一個大文件被分割為~個對象,前^-1個大小一致,第~個大小可能小於等於前~ 一 1個,根據設定的副本數,節點在機架上的分布,以及節點內磁碟的數量,通過一致性哈希算法選擇數據分布,將~ 一 1個對象數據將按條帶並發寫入到不同機架的不同節點上的不同磁碟的一個或多個條帶塊上,當第~個對象不滿足一個條帶大小均分時,補零滿條帶進行寫入;數據從存儲系統的客戶端讀取時,可通過服務端的負載和網絡請求的數量來進行加權計算,從而將客戶端請求實際交給系統負載和網絡負載較輕的設備來進行處理,如多個副本都滿足請求,進行多副本並發讀操作;在同一個副本中,同樣會按照設定的對象大小,將~個對象並發從不同機架的不同節點上的不同磁碟的一個或多個條帶塊上讀出。
[0029]作為優選,數據寫入時可以採用強一致性或弱一致性兩種策略:
[0030]強一致性策略,客戶端同時寫入全部鏡像,均寫入成功後返回客戶端;
[0031]弱一致性策略,將鏡像分為主從鏡像,客戶端寫入到主鏡像,主鏡像寫入成功後返回客戶端,由主鏡像發起向從鏡像的寫入操作,從鏡像寫入成功後只向主鏡像返回。
[0032]作為優選,在存儲系統中的各節點上,可支持動態添加緩存330,不停止應用,可設置其策略為回寫、通寫和預熱讀。採用回寫的方式時,將數據先寫入330,定期或達到閾值警戒同步緩存數據到機械盤中;通寫時,繞過緩存,直接寫入機械盤;預熱讀,最近訪問次數越多的條帶,將會迀移到330中以提高訪問命中率。
[0033]有益效果
[0034]對比現有技術,本發明方法具有以下特點:
[0035]1、系統性能線性擴展功能:根據本發明方法可以通過增加節點對系統容量、數據吞吐能力進行線性擴展;
[0036]2、管理簡單:可以對多節點資源進行統一管理和配置;
[0037]3、根據本發明方法構建的系統擴展簡單,輕鬆的擴展和管理?8級的數據;
[0038]4、不存在單點性能瓶頸。
【專利附圖】
【附圖說明】
[0039]圖1為系統整體架構示意圖;
[0040]圖2為本發明節點中的裸設備分塊示意圖;
[0041]圖3為本發明中鏡像強弱一致性寫入方式的寫入流程示意圖;
[0042]圖4為本發明中的節點緩存讀寫流程示意圖。
【具體實施方式】
[0043]下面結合附圖和具體實施例對本發明方法進行詳細說明。
[0044]本實施例基於本發明提供的一種基於橫向擴展存儲系統的構建方法構建的存儲系統,包括以下步驟:
[0045]本實施例中,節點數量理論上可以無限擴展,客戶端數量也可以無限擴展,在實現上並未限制,基於橫向擴展存儲系統的整體架構如圖1所示。限於實際環境,本實施例只搭建了 4個節點,8個客戶端,數據為雙副本模式,使用節點上本地16片「從盤進行測試。
[0046]步驟一,按節點對存儲系統中所有的磁碟,即塊設備進行劃分,使每個塊設備歸入一個節點;
[0047]本實施例中由於只使用了本地硬碟,故無13(^1、%或者其他網絡磁碟;在有本地硬碟和網絡磁碟的情況下,為便於存儲池整合,比較好的方式是將存儲空間相同、類型相似的塊設備歸入同一節點。
[0048]步驟二,將步驟一中所有節點的塊設備按照一定大小進行條帶切分,並把他們按照一定的算法整合為一個統一的存儲池;
[0049]對同一節點上的每個盤按照一定大小(一般支持641^1281(84121(8和118,可修改)進行條帶切分。以5121(為例,某個條帶在節點1上的數據排布對應16個盤分別為
00(811)?00 (811+512)、01 (如)?01 (8=+512)、一直到 015 (如)?015 (8=+512)。節點 2 至節點4與節點1的條帶劃分一致。如圖2所示為數據塊0至數據塊!!!在一個節點個磁碟的條帶切分示意圖。數據向不同機架的不同節點並發存儲時,對象數據塊按條帶內的磁碟數量計算後得到的數據塊,按順序從數據塊0到數據塊III填充,對每個數據塊,儘量一次10請求完成填充,直到數據佔滿所有的塊設備。
[0050]條帶切分後可以採用網絡狀10算法或糾刪碼技術對所有節點的塊設備進行整合,本實施例中採用狀101算法,將節點2和節點4分別作為節點1和節點3的鏡像,因此所有節點上的所有盤的條帶塊大小一樣,若節點1的數據分布在00(811)?00 (811+512^01(811)?01(811+512^ —直到015(811)?015(811+512),則鏡像數據分布在節點2的00(811) -00(811+512),01(811)?01 (811+512^—直到 015 (如)?015(8=+512);
[0051]步驟三,使用存儲網絡協議如13(^1、13現、?或者嫩3導出方式,將整個系統的存儲池映射給客戶端使用,本例中直接採用了嫩3協議中的即3協議導出方式;
[0052]步驟四,客戶端寫入和讀出數據;
[0053]如果按照客戶端1(?文件寫入,數據為雙副本,按照1618的大小對1(?文件對象化,則有共計1(^8/1618 = 64個1618的對象數據塊,由於本實施例採用狀101將4個節點的塊設備進行整合,因此每個節點將存儲32個對象數據塊,節點2為節點1的鏡像,節點4為節點3的鏡像。如果條帶大小為512X8,則一個節點16塊盤,一個1618的對象數據塊分布到節點上的每個盤的數據塊大小為1618/16 = 118,使用每個盤上的條帶數為118/512X8=2個,此2個條帶對磁碟提交1次10請求,為順序寫入,直接發揮磁碟的帶寬能力。1個對象數據塊在數據節點上的16個磁碟上的分布為第III和第111+1個條帶,表示如下:00 (111),01 (111),……015 (111)和00 (0+1),01 (111+1),……,015 (0+1),在鏡像節點上的磁碟上的鏡像數據為 00 (111),0(111),......015(111) ^00(111+1),01(111+1),......,015(111+1)0 如圖 3 所示,可將各數據塊按照鏡像強一致性或者弱一致性方式寫入到磁碟。讀數據時,先從客戶端的緩存中查找是否有數據,如果緩存未命中,則發送命令向節點進行數據讀取請求,同時可向數據節點和鏡像節點請求讀數據,如按照168文件讀取,同樣先計算讀取文件的對象數據大小,為64個1618的對象數據塊,對對象數據塊進行異步讀取,此時的數據源可以是數據節點的數據盤,也可以是鏡像節點的數據盤,完全發揮所有磁碟的並發性能。對象數據塊一次並發讀取所有數據盤上的2個5121(8的條帶,00?15化)和00?15 (111+1),當所有的對象數據塊讀取完成後,進行對象合併為文件。在實際部署中,如圖4所示,可增加330或者?(:1-6的
卡,用作其緩存,提高小數據塊的10?3能力。
[0054]本實施例的在大文件大10的情況下,可以完全發揮出千兆和萬兆接口帶寬的能力,單口千兆下讀帶寬為11018/8,寫入帶寬在鏡像強一致性時為5518/8,為接口帶寬的一半,在異步鏡像寫入時為8618/8。即最大能夠滿足344路216/8的高清視頻流的同時寫入,440路該類視頻流的同時讀出。
[0055]以上所述僅是本發明的優選實施方式,應當指出,對於本【技術領域】的普通技術人員來說,在不脫離本發明原理的前提下,還可以做出若干改進,或者對其中部分技術特徵進行等同替換,這些改進和替換也應視為本發明的保護範圍。
【權利要求】
1.一種橫向擴展存儲系統的構建方法,其特徵在於: 步驟一:存儲系統中所有節點掃描所有的磁碟,即塊設備,使每個塊設備歸入一個節佔.V, 步驟二:將步驟一中所有節點的塊設備按照一定大小進行條帶切分,並把他們按照一定的算法整合為一個統一的存儲池; 步驟三:將步驟二中的存儲池映射給存儲系統的客戶端; 步驟四:客戶端向存儲池寫入和從存儲池讀出數據。
2.如權利要求1所述的一種橫向擴展存儲系統的構建方法,其特徵還在於:所述磁碟包括了本地硬碟和網絡映射的磁碟,本地磁碟如SATA HDD、SAS HDD或者SSD,本地軟、硬RAID和邏輯卷;網絡映射的磁碟如通過iSCSI協議、FC協議或者iSER協議等映射的磁碟陣列的LUN。
3.如權利要求1所述的一種橫向擴展存儲系統的構建方法,其特徵還在於:步驟二所述算法可以採用網絡RAID算法,如RAIDO,RAID1, RAID5或者RAID6,也可以採用糾刪碼技術。
4.如權利要求1所述的一種橫向擴展存儲系統的構建方法,其特徵還在於:所述步驟三可以採用如下三種方式進行映射: (1)通過存儲網絡協議將存儲池映射給客戶端進行使用,存儲協議如iSCS1、FC和iSER ; (2)通過將存儲池格式化為文件系統再通過NAS相關協議進行導出,NAS相關協議如CIFS和NFS協議; (3)通過專有API對存儲池進行管理和讀寫,方便第三方應用直接寫入,避免協議的轉換,提升與入效率。
5.如權利要求1所述的一種橫向擴展存儲系統的構建方法,其特徵還在於:所述步驟四向存儲池寫入數據時可以採用如下強一致性或弱一致性兩種策略: 強一致性策略,客戶端同時寫入全部鏡像,均寫入成功後返回客戶端; 弱一致性策略,將鏡像分為主從鏡像,客戶端寫入到主鏡像,主鏡像寫入成功後返回客戶端,由主鏡像發起向從鏡像的寫入操作,從鏡像寫入成功後只向主鏡像返回。
6.如權利要求1所述的一種橫向擴展存儲系統的構建方法,其特徵還在於:在所述存儲系統中的各節點上,可支持動態添加緩存SSD,不停止應用,可設置其策略為回寫、通寫和預熱讀: 採用回寫的方式時,將數據先寫入SSD,定期或達到閾值警戒同步緩存數據到機械盤中; 採用通寫的方式時,繞過緩存,直接寫入數據到機械盤中; 採用預熱讀的方式時,最近訪問次數越多的條帶,將會迀移到SSD中以提高訪問命中
7.如權利要求1所述的一種橫向擴展存儲系統的構建方法,其特徵還在於:所述步驟一使每個塊設備歸入一個節點時應將存儲空間相同、類型相似的塊設備歸入同一節點。
【文檔編號】G06F3/06GK104484130SQ201410734938
【公開日】2015年4月1日 申請日期:2014年12月4日 優先權日:2014年12月4日
【發明者】王道邦, 王清翰, 羅華, 周澤湘, 方侖, 錢文, 潘興旺, 李豔國 申請人:北京同有飛驥科技股份有限公司