GlusterFS 儲存結構原理介紹

2021-09-05 08:48:07 字數 3513 閱讀 3086

一、分布式檔案系統

分布式檔案系統(distributed file system)是指檔案系統管理的物理儲存資源並不直接與本地節點相連,而是分布於計算網路中的乙個或者多個節點的計算機上。目前意義上的分布式檔案系統大多都是由多個節點計算機構成,結構上是典型的客戶機/伺服器模式。流行的模式是當客戶機需要儲存資料時,伺服器指引其將資料分散的儲存到多個儲存節點上,以提供更快的速度,更大的容量及更好的冗餘特性。

目前流行的分布式檔案系統有許多,如moosefs、openafs、googlefs,具體實現原理我這裡不再介紹。

二、glusterfs概述

glusterfs系統是乙個可擴充套件的網路檔案系統,相比其他分布式檔案系統,glusterfs具有高擴充套件性、高可用性、高效能、可橫向擴充套件等特點,並且其沒有元資料伺服器的設計,讓整個服務沒有單點故障的隱患。

術語:

1、無元資料設計

元資料是用來描述乙個檔案或給定區塊在分布式檔案系統中所在的位置,簡而言之就是某個檔案或某個區塊儲存的位置。傳統分布式檔案系統大都會設定元資料伺服器或者功能相近的管理伺服器,主要作用就是用來管理檔案與資料區塊之間的儲存位置關係。相較其他分布式檔案系統而言,glusterfs並沒有集中或者分布式的元資料的概念,取而代之的是彈性雜湊演算法。集群中的任何伺服器和客戶端都可以利用雜湊演算法、路徑及檔名進行計算,就可以對資料進行定位,並執行讀寫訪問操作。

這種設計帶來的好處是極大的提高了擴充套件性,同時也提高了系統的效能和可靠性;另一顯著的特點是如果給定確定的檔名,查詢檔案位置會非常快。但是如果要列出檔案或者目錄,效能會大幅下降,因為列出檔案或者目錄時,需要查詢所在節點並對各節點中的資訊進行聚合。此時有元資料服務的分布式檔案系統的查詢效率反而會提高許多。

2、伺服器間的部署

在之前的版本中伺服器間的關係是對等的,也就是說每個節點伺服器都掌握了集群的配置資訊,這樣做的好處是每個節點度擁有節點的配置資訊,高度自治,所有資訊都可以在本地查詢。每個節點的資訊更新都會向其他節點通告,保證節點間資訊的一致性。但如果集群規模較大,節點眾多時,資訊同步的效率就會下降,節點資訊的非一致性概率就會大大提高。因此glusterfs未來的版本有向集中式管理變化的趨勢。

3、客戶端訪問流程

當客戶端訪問glusterfs儲存時,首先程式通過訪問掛載點的形式讀寫資料,對於使用者和程式而言,集群檔案系統是透明的,使用者和程式根本感覺不到檔案系統是本地還是在遠端伺服器上。讀寫操作將會被交給vfs(virtual file system)來處理,vfs會將請求交給fuse核心模組,而fuse又會通過裝置/dev/fuse將資料交給glusterfs client。最後經過glusterfs client的計算,並最終經過網路將請求或資料傳送到glusterfs server上。

三、glusterfs集群的模式

glusterfs 集群的模式只資料在集群中的存放結構,類似於磁碟陣列中的級別。

1、分布式卷(distributed volume)

又稱雜湊卷,近似於raid0,檔案沒有分片,檔案根據hash演算法寫入各個節點的硬碟上,優點是容量大,缺點是沒冗餘。

建立卷指令如下:

gluster volume create test-volume server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
2、複製卷(replicated volume)相當於raid1,複製的份數,決定集群的大小,通常與分布式卷或者條帶卷組合使用,解決前兩種儲存卷的冗餘缺陷。缺點是磁碟利用率低。

複本卷在建立時可指定複本的數量,通常為2或者3,複本在儲存時會在卷的不同brick上,因此有幾個複本就必須提供至少多個brick,當其中一台伺服器失效後,可以從另一台伺服器讀取資料,因此複製glusterfs卷提高了資料可靠性的同事,還提供了資料冗餘的功能。

建立卷指令如下:

gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2
3、分布式複製卷(distributedreplicatedvolume)

分布式複製glusterfs卷結合了分布式和複製gluster卷的特點,看起來類似raid10,但其實不同,raid10其實質是條帶化,但分布式複製glusterfs捲則沒有。

建立卷指令如下:

gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4
4、條帶卷(striped volume)相當於raid0,檔案是分片均勻寫在各個節點的硬碟上的,優點是分布式讀寫,效能整體較好。缺點是沒冗餘,分片隨機讀寫可能會導致硬碟iops飽和。

建立卷指令如下:

gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2
5、分布式條帶卷(distributedstripedvolume)

當單個檔案的體型十分巨大,客戶端數量更多時,條帶卷已經無法滿足需求,此時將分布式與條帶化結合起來是乙個比較好的選擇。其效能與伺服器數量有關。

建立卷指令如下:

glusterfs架構和原理

分布式儲存已經研究很多年,但直到近年來,伴隨著谷歌 亞馬遜和阿里等網際網路公司雲計算和大資料應用的興起,它才大規模應用到工程實踐中。如谷歌的分布式檔案系統gfs 分布式 系統google bigtable,亞馬遜的物件儲存aws,阿里的tfs等都是很好的代表,同時也催生了一大批優秀的開源分布式儲存系...

物件儲存glusterfs使用

新增三颱centos7機器,最小化安裝 ip分配是 服務端192.168.1.7 192.168.1.8 客戶端192.168.1.9 主機名分別為 gluster01 gluster02 client01 hostnamectl set hostname gluster01 hostnamectl...

glusterFS儲存平台部署

replica 2 雙副本機制,後面跟每個節點的brick gluster volume create myvolume replica 2 transport tcp 10.32.1.130 glusterfs data 10.32.1.131 glusterfs data cd var lib ...