溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

GlusterFS 存儲結(jié)構(gòu)原理介紹

發(fā)布時間:2020-07-24 00:47:07 來源:網(wǎng)絡(luò) 閱讀:57553 作者:wzlinux 欄目:建站服務(wù)器

一、分布式文件系統(tǒng)

    分布式文件系統(tǒng)(Distributed File System)是指文件系統(tǒng)管理的物理存儲資源并不直接與本地節(jié)點相連,而是分布于計算網(wǎng)絡(luò)中的一個或者多個節(jié)點的計算機上。目前意義上的分布式文件系統(tǒng)大多都是由多個節(jié)點計算機構(gòu)成,結(jié)構(gòu)上是典型的客戶機/服務(wù)器模式。流行的模式是當(dāng)客戶機需要存儲數(shù)據(jù)時,服務(wù)器指引其將數(shù)據(jù)分散的存儲到多個存儲節(jié)點上,以提供更快的速度,更大的容量及更好的冗余特性。

    目前流行的分布式文件系統(tǒng)有許多,如MooseFS、OpenAFS、GoogleFS,具體實現(xiàn)原理我這里不再介紹。

二、GlusterFS概述

    GlusterFS系統(tǒng)是一個可擴展的網(wǎng)絡(luò)文件系統(tǒng),相比其他分布式文件系統(tǒng),GlusterFS具有高擴展性、高可用性、高性能、可橫向擴展等特點,并且其沒有元數(shù)據(jù)服務(wù)器的設(shè)計,讓整個服務(wù)沒有單點故障的隱患。

術(shù)語:

  • Brick:GFS中的存儲單元,通過是一個受信存儲池中的服務(wù)器的一個導(dǎo)出目錄??梢酝ㄟ^主機名和目錄名來標(biāo)識,如'SERVER:EXPORT'

  • Client:掛載了GFS卷的設(shè)備

  • Extended Attributes:xattr是一個文件系統(tǒng)的特性,其支持用戶或程序關(guān)聯(lián)文件/目錄和元數(shù)據(jù)。

  • FUSE:Filesystem Userspace是一個可加載的內(nèi)核模塊,其支持非特權(quán)用戶創(chuàng)建自己的文件系統(tǒng)而不需要修改內(nèi)核代碼。通過在用戶空間運行文件系統(tǒng)的代碼通過FUSE代碼與內(nèi)核進行橋接。

  • Geo-Replication

  • GFID:GFS卷中的每個文件或目錄都有一個唯一的128位的數(shù)據(jù)相關(guān)聯(lián),其用于模擬inode

  • Namespace:每個Gluster卷都導(dǎo)出單個ns作為POSIX的掛載點

  • Node:一個擁有若干brick的設(shè)備

  • RDMA:遠程直接內(nèi)存訪問,支持不通過雙方的OS進行直接內(nèi)存訪問。

  • RRDNS:round robin DNS是一種通過DNS輪轉(zhuǎn)返回不同的設(shè)備以進行負載均衡的方法

  • Self-heal:用于后臺運行檢測復(fù)本卷中文件和目錄的不一致性并解決這些不一致。

  • Split-brain:腦裂

  • Translator:

  • Volfile:glusterfs進程的配置文件,通常位于/var/lib/glusterd/vols/volname

  • Volume:一組bricks的邏輯集合

1、無元數(shù)據(jù)設(shè)計

    元數(shù)據(jù)是用來描述一個文件或給定區(qū)塊在分布式文件系統(tǒng)中所在的位置,簡而言之就是某個文件或某個區(qū)塊存儲的位置。傳統(tǒng)分布式文件系統(tǒng)大都會設(shè)置元數(shù)據(jù)服務(wù)器或者功能相近的管理服務(wù)器,主要作用就是用來管理文件與數(shù)據(jù)區(qū)塊之間的存儲位置關(guān)系。相較其他分布式文件系統(tǒng)而言,GlusterFS并沒有集中或者分布式的元數(shù)據(jù)的概念,取而代之的是彈性哈希算法。集群中的任何服務(wù)器和客戶端都可以利用哈希算法、路徑及文件名進行計算,就可以對數(shù)據(jù)進行定位,并執(zhí)行讀寫訪問操作。

    這種設(shè)計帶來的好處是極大的提高了擴展性,同時也提高了系統(tǒng)的性能和可靠性;另一顯著的特點是如果給定確定的文件名,查找文件位置會非???。但是如果要列出文件或者目錄,性能會大幅下降,因為列出文件或者目錄時,需要查詢所在節(jié)點并對各節(jié)點中的信息進行聚合。此時有元數(shù)據(jù)服務(wù)的分布式文件系統(tǒng)的查詢效率反而會提高許多。

2、服務(wù)器間的部署

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

3、客戶端訪問流程

GlusterFS 存儲結(jié)構(gòu)原理介紹

    當(dāng)客戶端訪問GlusterFS存儲時,首先程序通過訪問掛載點的形式讀寫數(shù)據(jù),對于用戶和程序而言,集群文件系統(tǒng)是透明的,用戶和程序根本感覺不到文件系統(tǒng)是本地還是在遠程服務(wù)器上。讀寫操作將會被交給VFS(Virtual File System)來處理,VFS會將請求交給FUSE內(nèi)核模塊,而FUSE又會通過設(shè)備/dev/fuse將數(shù)據(jù)交給GlusterFS Client。最后經(jīng)過GlusterFS Client的計算,并最終經(jīng)過網(wǎng)絡(luò)將請求或數(shù)據(jù)發(fā)送到GlusterFS Server上。

三、GlusterFS集群的模式

    GlusterFS 集群的模式只數(shù)據(jù)在集群中的存放結(jié)構(gòu),類似于磁盤陣列中的級別。

1、分布式卷(Distributed Volume)

    又稱哈希卷,近似于RAID0,文件沒有分片,文件根據(jù)hash算法寫入各個節(jié)點的硬盤上,優(yōu)點是容量大,缺點是沒冗余。

GlusterFS 存儲結(jié)構(gòu)原理介紹

    創(chuàng)建卷指令如下:

gluster volume create test-volume server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

2、復(fù)制卷(Replicated Volume)

    相當(dāng)于raid1,復(fù)制的份數(shù),決定集群的大小,通常與分布式卷或者條帶卷組合使用,解決前兩種存儲卷的冗余缺陷。缺點是磁盤利用率低。

    復(fù)本卷在創(chuàng)建時可指定復(fù)本的數(shù)量,通常為2或者3,復(fù)本在存儲時會在卷的不同brick上,因此有幾個復(fù)本就必須提供至少多個brick,當(dāng)其中一臺服務(wù)器失效后,可以從另一臺服務(wù)器讀取數(shù)據(jù),因此復(fù)制GlusterFS卷提高了數(shù)據(jù)可靠性的同事,還提供了數(shù)據(jù)冗余的功能。

GlusterFS 存儲結(jié)構(gòu)原理介紹

    創(chuàng)建卷指令如下:

gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2

3、分布式復(fù)制卷(Distributed Replicated Volume)

   分布式復(fù)制GlusterFS卷結(jié)合了分布式和復(fù)制Gluster卷的特點,看起來類似RAID10,但其實不同,RAID10其實質(zhì)是條帶化,但分布式復(fù)制GlusterFS卷則沒有。

GlusterFS 存儲結(jié)構(gòu)原理介紹

    創(chuàng)建卷指令如下:

gluster volume create test-volume replica 2 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4

4、條帶卷(Striped Volume)

    相當(dāng)于raid0,文件是分片均勻?qū)懺诟鱾€節(jié)點的硬盤上的,優(yōu)點是分布式讀寫,性能整體較好。缺點是沒冗余,分片隨機讀寫可能會導(dǎo)致硬盤IOPS飽和。

GlusterFS 存儲結(jié)構(gòu)原理介紹

    創(chuàng)建卷指令如下:

gluster volume create test-volume stripe 2 transport tcp server1:/exp1 server2:/exp2

5、分布式條帶卷(Distributed Striped Volume)

    當(dāng)單個文件的體型十分巨大,客戶端數(shù)量更多時,條帶卷已經(jīng)無法滿足需求,此時將分布式與條帶化結(jié)合起來是一個比較好的選擇。其性能與服務(wù)器數(shù)量有關(guān)。

GlusterFS 存儲結(jié)構(gòu)原理介紹

    創(chuàng)建卷指令如下:

gluster volume create test-volume stripe 4 transport tcp server1:/exp1 server2:/exp2 server3:/exp3 server4:/exp4 server5:/exp5 server6:/exp6 server7:/exp7 server8:/exp8

參考文檔:http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Architecture/


四、GlusterFS 的安裝與應(yīng)用,請點擊查看

http://wzlinux.blog.51cto.com/8021085/1949619


                               GlusterFS 存儲結(jié)構(gòu)原理介紹


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI