1. 程式人生 > >雲宏超融合集群數據分布原理

雲宏超融合集群數據分布原理

超融合 集群數據分布 CRUSH算法 分布式存儲 虛擬化

超融合通過軟件定義基礎架構,整合計算、存儲、網絡和虛擬化資源以替代傳統SAN存儲的方式來建設數據中心,更註重基於低成本的x86服務器來達到數據的管理和控制。

雲宏超融合整合了自主研發的服務器虛擬化平臺CNware?和高性能分布式存儲系統WinStore。雲宏分布式存儲基於開源的Ceph做了深度的優化和功能開發。在2015年——超融合元年,雲宏便推出了Winhong HCI v1.0,雲宏分布式存儲WinStore以模塊化的方式運行在Hypervisor中而不是運行在虛擬機上,可以將多臺物理機上面的本地SSD和HDD組成一個虛擬的存儲池,利用多臺x86服務器分擔存儲負荷,利用位置服務器定位存儲信息,它不但提高了系統的可靠性、可用性和讀寫效率,還易於擴展,極為方便。

雲宏超融合集群數據分布,數據多副本分布,基於全分布式架構,通過CRUSH算法確保數據能夠盡可能地平均分布到各個節點上,數據的主副本會自動分布在不同的節點上。


要了解超融合集群數據分布,首先有幾個重要概念:

Object(對象)——文件切片後生產的邏輯對象,其最大size通常限定為2MB或4MB,以便實現底層存儲的組織管理。

PG(Placement Group,放置組)——對object的存儲進行組織和位置映射。具體而言,一個PG負責組織若幹個object(可以為數千個甚至更多),但一個object只能被映射到一個PG中,即 “一對多”映射關系。

OSD(Object StorageDevice,對象存儲設備)

——主要功能包括存儲數據、副本數據處理、數據恢復,、數據回補、平衡數據分布,將數據相關的一些監控信息提供給至少2個OSD,才能有效保存兩份數據。一個PG會被映射到n個OSD上,而每個OSD上都會承載大量的PG,即,PGOSD之間是“多對多”映射關系。在實踐當中,n至少為2,如果用於生產環境,則至少為3。一個OSD上的PG則可達到數百個。


超融合集群數據分布算法采用CRUSH算法。CRUSH算法是雲宏分布式存儲的基石,是一種可擴展的偽隨機數據分布算法,用於控制數據的分布,能夠高效穩定地將數據分布在普通的結構化集群中。


CRUSH算法特征

1.去中心化架構,無元數據服務器,讀寫性能不會因為集群的擴大而降低;

2.在相同的環境下,相似的輸入得到的結果之間沒有相關性,相同的輸入得到的結果是確定的;

3.確保數據盡可能平均分布在集群的各個節點的所有硬盤上;

4.在增刪節點導致存儲目標數量出現變化時,能夠最小化集群間的數據遷移量。


數據分布過程

明晰了概念和運用的算法,對數據分布過程的解析將更加直截了當。

在超融合集群數據分布中,虛擬化與分布式存儲融合部署,WinServer虛擬機的虛擬磁盤直接使用WinStore分布式存儲提供的rbd塊設備。在虛擬機上一個文件的寫入過程中,首先會將文件分片,分成多個object,每一個object都可能會寫入到不同的HDD(OSD)上,均衡分散到整個集群中。

技術分享圖片

具體操作流程

1.WinStore首先將文件分片(2M),分成多個object,產生object id;

2.根據虛擬磁盤所屬的存儲池Pool和object id,通過哈希算法和取模,得出所屬的PGID;PG 在Pool被創建後,就會根據CRUSH算法計算出來其應該所在的OSD位置,被創建出來。也就是說,在客戶端寫入對象的時候,PG就已經被創建好了,PG和OSD的映射關系也已經是確定了的;

3.將PG的值傳給CRUSH算法,由CRUSH算法得出對應的主從OSD;

4.數據寫入到與主從OSD所對應的SSD後,即給上層的業務系統返回寫入成功的信息;

5.最後WinStore會根據一定的規則,將SSD中的數據刷寫到持久化存儲HDD磁盤中。



其中PG映射到OSD中使用CRUSH算法,而不是其他哈希算法,原因之一正是CRUSH具有可配置特性,可以根據管理員的配置參數決定OSD的物理位置映射策略;另一方面是因為CRUSH具有特殊的“穩定性”,當系統中加入新的OSD導致系統規模增大時,大部分PG與OSD之間的映射關系不會發生改變,只有少部分PG的映射關系會發生變化並引發數據遷移。這種可配置性和穩定性都不是普通哈希算法所能提供的。因此,CRUSH算法的設計也是WinStore的核心內容之一。








雲宏超融合集群數據分布原理