GlusterFS卷類型及數據分佈分析

    Glusterfs支持七種Volume,即Distribute卷、Stripe卷、Replica卷、Distribute stripe卷和Distribute replica卷,Distribute Stripe, Replica Volume卷這七種卷可以滿足不同應用對高性能、高可用的需求。

基本卷:

(1)  distribute volume:分佈式卷

(2)  stripe volume:條帶卷

(3)  replica volume:複製卷

複合卷:

(4)  distribute stripe volume:分佈式條帶卷

(5)  distribute replica volume:分佈式複製卷

(6) stripe replica volume:條帶複製卷

(7) distribute stripe replicavolume:分佈式條帶複製卷

數據分佈:

1、Distributed volume

2、Stripe volume

3、Replicated volume

4、distribute stripe volume

5、distribute replica volume

6、stripe replica volume

7、distribute stripe replica volume


基本卷:

(1)  distribute volume:分佈式卷

文件通過hash算法分佈到所有brick server上,這種卷是glusterfs的基礎和最大特點;實只是擴大的磁盤空間,如果有一個磁盤壞了,對應的數據也丟失,文件級RAID 0,不具有容錯能力。

(2)  stripe volume:條帶卷

類似RAID0,文件分成數據塊以Round Robin方式分佈到brick server上,併發粒度是數據塊,支持超大文件,大文件性能高

(3)  replica volume:複製卷

文件同步複製到多個brick上,文件級RAID 1,具有容錯能力,寫性能下降,讀性能提升。

複合卷:

(4)  distribute stripe volume:分佈式條帶卷

brickserver數量是條帶數的倍數,兼具distribute和stripe卷的特點;

(5)  distribute replica volume:分佈式複製卷

brickserver數量是鏡像數的倍數,兼具distribute和replica卷的特點,可以在2個或多個節點之間複製數據。

(6) stripe replica volume:條帶複製卷

類似RAID 10

同時具有條帶卷和複製卷的特點

(7) distribute stripe replicavolume:分佈式條帶複製卷

三種基本卷的複合卷

通常用於類Map Reduce應用

1、Distributed volume

在該模式下,並沒有對文件進行分塊處理,文件直接存儲在某個server節點上。“沒有重新發明輪子”,這句話很好的概括了這種GlusterFS的設計思路。因爲使用了已有的本地文件系統進行存儲文件,所以通用的很多linux命令和工具可以繼續正常使用。這使得GlusterFS可以在一個比較穩定的基礎上發展起來,也更容易爲人們所接受。因爲需要使用到擴展文件屬性,所以其目前支持的底層文件系統有:ext3、ext4、ZFS、XFS等。

由於使用本地文件系統,一方面,存取效率並沒有什麼沒有提高,反而會因爲網絡通信的原因而有所降低;另一方面,支持超大型文件會有一定的難度。雖然ext4已經可以支持最大16T的單個文件,但是本地存儲設備的容量實在有限。所以如果有大量的大文件存儲需求,可以考慮使用Stripe模式來實現,如考慮新建專門存儲超大型文件的stripe卷。

wKioL1eEY-zQ8gnyAACEmdL2VbQ263.jpg

功能:

將文件存放在服務器裏,如上圖,File1和File2存放在server1,而File3存放在server2,文件都是隨機存儲

2、Stripe volume

其實Stripe模式相當於raid0,在該模式下,系統只是簡單地根據偏移量將文件分成N塊(N個stripe節點時),然後發送到每個server節點。server節點把每一塊都作爲普通文件存入本地文件系統中,並用擴展屬性記錄了總的塊數(stripe-count)和每一塊的序號(stripe-index)。stripe數必須等於volume中brick所包含的存儲服務器數,文件被分成數據塊,以Round Robin的方式存儲在bricks中,併發粒度是數據塊,大文件性能好

wKiom1eEZDzhRy3ZAACCRPdnnyA765.jpg

功能:

將文件存放在不同服務器裏,如上圖,File被分割爲6段,1、3、5放在server1,2、4、6放在server2

3、Replicated volume

Replicated模式,也稱作AFR(AutoFile Replication),相當於raid1,即同一文件在多個鏡像存儲節點上保存多份,每個replicated子節點有着相同的目錄結構和文件。replicated模式一般不會單獨使用,經常是以“Distribute+ Replicated”或“Stripe+ Replicated”的形式出現的。如果兩臺機的存儲容量不同,那麼就如木桶效應,系統的存儲容量由容量小的機器決定。replica數必須等於volume中brick所包含的存儲服務器數,可用性高。創建一個兩兩互爲備份的卷,存儲池中一塊硬盤損壞,不會影響到數據的使用,最少需要兩臺服務器才能創建分佈鏡像卷。

Replicated模式是在文件的級別上進行的(相比較於HDFS),而且在創建卷volume時就確定每個server節點的職責,而且只能人工的進行調整。這樣的話就相對的不靈活,如果一個節點A出了問題,就一定要用新的節點去替代A,否則就會出現一些問題隱患。

在Replicated模式下,每個文件會有如下幾個擴展屬性:

讀寫數據時,具體的情況如下:

讀數據時:系統會將請求均衡負載到所有的鏡像存儲節點上,在文件被訪問時同時就會觸發self-heal機制,這時系統會檢測副本的一致性(包括目錄、文件內容、文件屬性等)。若不一致則會通過changelog找到正確版本,進而修復文件或目錄屬性,以保證一致性。

寫數據時:以第一臺服務器作爲鎖服務器,先鎖定目錄或文件,寫changelog記錄該事件,再在每個鏡像節點上寫入數據,確保一致性後,擦除changelog記錄,解開鎖。

如果互爲鏡像的多個節點中有一個鏡像節點出現了問題,用戶的讀/寫請求都可以正常的進行,並不會受到影響。而問題節點被替換後,系統會自動在後臺進行同步數據來保證副本的一致性。但是系統並不會自動地需找另一個節點來替代它,而是需要通過人工新增節點來進行,所以管理員必須及時地去發現這些問題,不然可靠性就很難保證。

wKioL1eEZF7iQ6m6AACBoE8TzkY456.jpg


功能:

將文件存放在服務器裏,如上圖,File1同時存在server1和server2,File2也是如此,相當於server2中的文件是server1中文件的副本。

4、distribute stripe volume

分佈式的條帶卷,volume中brick所包含的存儲服務器數必須是stripe的倍數(>=2倍),兼顧分佈式和條帶式的功能。每個文件分佈在四臺共享服務器上,通常用於大文件訪問處理,最少需要 4 臺服務器才能創建分佈條帶卷。

wKioL1eEZHmxC5PXAACeLmavQGg882.jpg

功能:

將文件存到不同服務器裏,如上圖,File被分割成4段,1、3在server1(exp1)中,2、4在server1(exp2)中。server2(exp3)1、3存放server1(exp1)中的備份文件,server2(exp4)2、4存放server1(exp2)中的備份文件。

5、distribute replica volume

分佈式的複製卷,volume中brick所包含的存儲服務器數必須是 replica 的倍數(>=2倍),兼顧分佈式和複製式的功能。

wKiom1eEZJaDHHmmAACc4gnOt1E058.jpg

功能:

將文件備份隨機存放在服務器裏,如上圖,server1(exp1)存放File1文件,Server1(exp2)存放File2文件。server2(exp3)存放File1的備份文件,server2(exp4)存放File2的備份文件。

6、stripe replica volume

wKioL1eEZMTAwtzeAADsU0C0Ra8004.png


功能:

將文件分割並備份隨機存放在不同的服務器裏,如上圖,File被分割4段,1、3存放在server1(exp1)上,2、4存放在server2(exp4),server1上的(exp3)存放server2(exp4)的備份文件,server2上的(exp2)存放server1(exp1)的備份文件。

7、distribute stripe replica volume

分佈式條帶複製卷分佈條帶數據在複製卷集羣。爲了獲得最佳效果,你應該使用分佈在高併發的條帶複製卷環境下並行訪問非常大的文件和性能是至關重要的。

wKiom1eEZOHwyXzWAAEMBq77dL0530.png

功能:

將文件分割並備份隨機存放在不同服務器裏,如上圖,File被分割成4段,1、3存放在server1(exp1)中,2、4存放在server2(exp3)中。server1(exp2)存放server1(exp1)的備份文件,server2(exp4)存放server2(exp3)的備份文件。


參考資料:

http://www.gluster.com/products/gluster-file-system-architecture-white-paper/

http://www.gluster.com/products/performance-in-a-gluster-system-white-paper/

http://gluster.com/community/documentation/index.php/Main_Page

http://blog.csdn.net/liuaigui/


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章