博文目錄
一、GlusterFS概述
1、GlusterFS的特點
2、GlusterFS術(shù)語
3、模塊化堆棧式架構(gòu)
二、GlusterFS的工作原理
1、GlusterFS的工作流程
2、彈性HASH算法
三、GlusterFS的卷類型
1、分布式卷
2、條帶卷
3、復制卷
4、分布式條帶卷
5、分布式復制卷成都創(chuàng)新互聯(lián)公司提供高防服務器、云服務器、香港服務器、成都服務器托管等
GlusterFS是一個開源的分布式文件系統(tǒng),同時也是Scale-Out存儲解決方案Gluster的核心,在存儲數(shù)據(jù)方面有強大的橫向擴展能力,通過擴展不同的節(jié)點可以支持PB級別的存儲容量。GlusterFS借助TCP/IP或InfiniBand RDMA網(wǎng)絡將分散的存儲資源匯聚在一起,同一提供存儲服務,并使用單一全局命令空間來管理數(shù)據(jù)。GlusterFS基于可堆疊的用戶空間以及無元的設計,可為各種不同的數(shù)據(jù)負載提供優(yōu)異的性能。
GlusterFS主要由存儲服務器、客戶端及NFS/Samba存儲網(wǎng)關(guān)(可選,根據(jù)需要選擇使用)組成。GlusterFS架構(gòu)中最大的設計特點就是沒有元數(shù)據(jù)服務器組件,這有助于提升整個系統(tǒng)的性能、可靠性和穩(wěn)定性。傳統(tǒng)的分布式文件系統(tǒng)大多通過元服務器來存儲元數(shù)據(jù),元數(shù)據(jù)包含存儲節(jié)點上的目錄信息、目錄結(jié)構(gòu)等,這樣的設計在瀏覽目錄時效率非常高,但是也存在一些缺陷,如單點故障,一旦元數(shù)據(jù)服務器出現(xiàn)故障,即使節(jié)點具備再高的冗余性,整個存儲系統(tǒng)也將崩潰,而GlusterFS分布式文件系統(tǒng)是基于無元服務器的設計,數(shù)據(jù)橫向擴展能力強,具備較高的可靠性及存儲效率。 GlusterFS支持TCP/IP和InfiniBand RDMA高速網(wǎng)絡互聯(lián),客戶端可通過原聲GlusterFS協(xié)議訪問數(shù)據(jù),其他沒有運行GlusterFS客戶端的終端可通過NFS/CIFS標準協(xié)議通過存儲網(wǎng)關(guān)訪問數(shù)據(jù)。如下圖:
擴展性和高性能;
高可用性;
全局統(tǒng)一命名空間;
基于標準協(xié)議;
- 彈性卷管理;
Brick(存儲塊):指可信主機池中由主機提供的用于物理存儲的專用分區(qū),是GlusterFS中的基本存儲單元,同時也是可信存儲池中服務器上對外提供的存儲目錄,存儲目錄的格式由服務器和目錄的絕對路徑構(gòu)成,表示方法為SERVER:EXPORT ,比如:192.168.1.4/date/mydir/;
Volume(邏輯卷):一個邏輯卷是一組Brick的集合。卷是數(shù)據(jù)存儲的邏輯設備,類似于LVM中的邏輯卷。大部分Gluster管理操作是在卷上進行的;
FUSE:是一個內(nèi)核模塊,允許用戶創(chuàng)建自己的文件系統(tǒng),無須修改內(nèi)核代碼;
VFS:內(nèi)核空間對用戶空間提供吧的訪問磁盤的接口;
- Glusterd(后臺管理進程):在存儲群集中的每個節(jié)點上都要運行;
如下圖所示,GlusterFS采用模塊化、堆棧式的架構(gòu),可以根據(jù)需求配置定制化的應用環(huán)境,如大文件存儲、海量小文件存儲、云存儲、多傳輸協(xié)議應用等。通過對模塊進行各種組合,即可實現(xiàn)復雜的功能。例如,Replicate模塊可實現(xiàn)RAID1,Stripe模塊可實現(xiàn)RAID0,通過兩者的組合可實現(xiàn)RAID10和RAID01,同時獲得更高的性能及可靠性。
GlusterFS是模塊化堆棧式的架構(gòu)設計。模塊成為Translator,是GlusterFS提供的一種強大的機制,借助這種良好定義的接口可以高效簡便地擴展文件系統(tǒng)的功能。
1)服務器與客戶端的設計高度模塊化的同事模塊接口是兼容的,同一個transtator可同事在客戶端和服務器加載;
2)GlusterFS中所有的功能都是通過transtator實現(xiàn)的,其中客戶端要比服務器更復雜。所以功能的重點主要集中在客戶端上;
圖中所示只是GlusterFS數(shù)據(jù)訪問的一個概要圖。
1)客戶端或應用程序通過GlusterFS的掛在點訪問數(shù)據(jù);
2)Linux系統(tǒng)內(nèi)核通過VFS API收到請求并處理;
3)VFS將數(shù)據(jù)遞交給FUSE內(nèi)核文件系統(tǒng),并向系統(tǒng)注冊了一個實際的文件系統(tǒng)FUSE,而FUSE文件系統(tǒng)則是將數(shù)據(jù)過/dev/fuse設備文件遞交給GlusterFS client端??梢詫USE文件系統(tǒng)理解為一個代理;
4)GlusterFS client收到數(shù)據(jù)后。client根據(jù)配置文件對數(shù)據(jù)進行處理;
5)經(jīng)過GlusterFS client處理后,通過網(wǎng)絡將數(shù)據(jù)傳遞至遠端的GlusterFS Server,并且將數(shù)據(jù)寫入服務器存儲設備;
彈性HASH算法使用Davies-Meyer算法,通過HASH算法得到一個32位的整數(shù)范圍,假設邏輯卷中有N個存儲單位Brick,則32位的整數(shù)范圍被劃分為N個連續(xù)的子空間,每個空間對應一個Brick。當用戶或應用程序訪問某一個命名空間時,通過對該命名空間計算HASH值,根據(jù)該HASH值對應的32位整數(shù)空間定位數(shù)據(jù)所在的Brick。優(yōu)點如下:
保證數(shù)據(jù)平均分布在每個Brick中;
- 解決了對元數(shù)據(jù)服務器的依賴,進而解決了單點故障及訪問瓶頸;
GlusterFS支持七種卷,即分布式卷、條帶卷、復制卷、分布式條帶卷、分布式復制卷、條帶復制卷和分布式條帶復制卷,這七種卷可以滿足不同應用對高性能、高可用的需求。
分布式卷(Distribute volume):文件通過HASH算法分布到所有Brick Server上,這種卷是Glusterf的基礎;以文件為單位根據(jù)HASH算法散列到不同的Brick,其實只是擴大了磁盤空間,如果有一個磁盤損壞,數(shù)據(jù)也將丟失,屬于文件級的RAID0,不具備容錯能力;
條帶卷(Stripe volume):類似于RAID0,文件被分為數(shù)據(jù)塊并以輪詢的方式分布到多個Brick Server上,文件存儲以數(shù)據(jù)塊為單位,支持大文件存儲,文件越大,讀取效率越高;
復制卷(Replica volume):將文件同步到多個Brick上,使其具備多個文件副本,屬于文件級RAID1,具有容錯能力。因為數(shù)據(jù)分散到多個Brick中,所以讀性能得到了很大提升,但寫性能下降;
分布式條帶卷(Distribute Stripe volume):Brick Server數(shù)量是條帶數(shù)(數(shù)據(jù)塊分布的Brick數(shù)量)的倍數(shù),兼?zhèn)浞植际骄砗蜅l帶卷的特點;
分布式復制卷(Distribute Replica volume):Brick Server數(shù)量是鏡像數(shù)(數(shù)據(jù)副本數(shù)量)的倍數(shù),具有分布式卷和復制卷的特點;
條帶復制卷(Stripe Replica volume):類似于RAID10,同時具有條帶卷和復制卷的特點;
- 分布式條帶復制卷(Distribute Stripe Replica volume):三種基本卷的復合卷,通常用于類Map Reduce應用;
分布式卷是GlusterFS的默認卷,在創(chuàng)建卷時,默認選項就是創(chuàng)建分布式卷。在該模式下,并沒有對文件進行分塊處理,文件直接存儲在某個Server節(jié)點上。直接使用本地文件系統(tǒng)進行文件存儲,大部分Linux命令和工具可以繼續(xù)正常使用。需要通過擴展文件屬性保存HASH值,目前支持的底層文件系統(tǒng)有ext3、ext4、ZFS、XFS等。
由于使用本地文件系統(tǒng),所以存取效率并沒有提高,反而會因為網(wǎng)絡通信的原因而有所降低;另外支持超大型文件也會有一定的難度,因為分布式卷不會對文件進行分塊處理。雖然ext4已經(jīng)可以支持最大16TB的單個文件,但是本地存儲設備的容量實在有限。
如圖所示,F(xiàn)ile1和File2存放在Server1,而File3存放在Server2,文件都是隨機存儲,一個文件要么在Server1上,要么在Server2上,不能分塊同時存放在Server1和Server2上。
分布式卷具有如下特點:
文件分布在不同的服務器,布局別冗余性;
更容易廉價地擴展卷的大??;
單點故障會造成數(shù)據(jù)丟失;
- 依賴于底層的數(shù)據(jù)保護;
創(chuàng)建分布式卷:
[root@cecentos01 ~]# gluster volume create dis-volume server1:/dir1 server2:/dir2
<!--創(chuàng)建一個名為dis-volume的分布卷,文件將根據(jù)HASH分布在
server1:/dir1、server2:/dir2中-->
Creation of dis-volume has been successful
Please start the volume to access data
Stripe模式相當于RAID0,在該模式下,根據(jù)偏移量將文件分成N塊(N個條帶節(jié)點),輪詢地存儲在每個Brick Server節(jié)點。節(jié)點把每個數(shù)據(jù)塊都作為普通文件存入本地文件系統(tǒng)中,通過擴展屬性記錄總塊數(shù)和每塊的序號。在配置時指定的條帶數(shù)必須等于卷中Brick所包含的存儲服務器數(shù),在存儲大文件時,性能尤為突出,但是不具備冗余性。
如下圖所示,將文件存放在不同服務器里,F(xiàn)ile被分割為6段,1、3、5放在server1,2、4、6放在server2。
條帶卷具有如下特點:
數(shù)據(jù)被分割成更小塊分布到塊服務器群中的不同條帶區(qū);
分布減少了負載且更小的文件加速了存取的速度;
- 沒有數(shù)據(jù)冗余;
創(chuàng)建條帶卷:
[root@centos01 ~]# gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
<!--創(chuàng)建一個名為Stripe-volume的條帶卷,文件將分塊輪詢地存儲在
server1:/dir1 、server2:/dir2兩個Brick中-->
Creation of rep-volume has been successful
Please start the volume to access data
復制模式,也稱為AFR,相當于RAID1。即同一文件保存一份或多份副本,每個節(jié)點保存相同的內(nèi)容和目錄結(jié)構(gòu)。復制模式因為要保存副本,所以磁盤利用率較低。如果多個節(jié)點上的存儲空間不一致,那么將按照木桶效應取最低節(jié)點的容量作為該卷的總?cè)萘?。在配置復制卷時,復制數(shù)必須等于卷中Brick所包含的存儲服務器數(shù),復制卷具備冗余性,即使一個節(jié)點損壞,也不影響數(shù)據(jù)的正常使用。
如下圖所示,將文件存放在服務器里,F(xiàn)ile1和File2同時存放在Server1和Server2上,相當于Server2中的文件是Server1中文件的副本。
復制卷具有以下特點:
卷中所有的服務器均保存一個完整的副本;
卷的副本數(shù)量可由客戶創(chuàng)建的時候決定;
至少有兩個塊服務器或者更多的服務器;
- 具有冗余性;
創(chuàng)建復制卷:
[root@centos01 ~]# gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
<!--創(chuàng)建名為rep-volume的復制卷,文件將同時存儲兩個副本,
分別在Server1:/dir1和Server2:/dir2兩個Brick中-->
Creation of rep-volume has been successful
Please start the volume to access data
分布式條帶卷兼顧分布式和條帶卷的功能,主要用于大文件訪問處理,創(chuàng)建一個分布式條帶卷最少需要4臺服務器。
如下圖所示,F(xiàn)ile1和File2通過分布式卷的功能分別定位到Server1和Server2。在Server1中,F(xiàn)ile1被分割成4段,其中1、3在Server1中exp1目錄中;2、4在Server1中的exp2目錄中。在Server2中,F(xiàn)ile2也被分割成4段,其中1、3在Server2中的exp3目錄中,2、4在Server2中的exp4目錄中。
創(chuàng)建分布式條帶卷:
[root@centos01 ~]# gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
<!--創(chuàng)建了一個名為dis-stripe的分布式條帶卷,配置分布式的條帶卷時,
卷中Brick所包含的存儲服務器數(shù)必須是條帶數(shù)的倍數(shù)(>=2倍)-->
Creation of rep-volume has been successful
Please start the volume to access data
創(chuàng)建卷時,存儲服務器的數(shù)量如果等于條帶或復制數(shù),那么創(chuàng)建的是條帶卷或復制卷;如果存儲服務器的數(shù)量是條帶卷或復制卷的2倍甚至更多,那么將創(chuàng)建分布式條帶卷或分布式復制卷。
分布式復制卷兼顧分布式卷和復制卷的功能,主要用于需要冗余的情況下。
如下圖所示,F(xiàn)ile1和File2通過分布式卷的功能分別定位到Server1和Server2。在存放File1時,F(xiàn)ile1根據(jù)復制卷的特性,將存在兩個相同的副本,分別是Server1中的exp1目錄和Server2中的exp2目錄,在存放File2時,F(xiàn)ile2根據(jù)復制卷的特性,也將存在兩個相同的副本,分別是Server3中的exp3目錄和Server4中的exp4目錄。
創(chuàng)建分布式復制卷:
[root@centos01 ~]# gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
<!--創(chuàng)建了一個名為dis-rep的分布式條帶卷,配置分布式的復制卷時,
卷中Brick所包含的存儲服務器數(shù)必須是條帶數(shù)的倍數(shù)(>=2倍)-->
Creation of rep-volume has been successful
Please start the volume to access data
假如存在8臺服務器,當復制副本為2時,按照服務器列表的順序,服務器1和2作為一個復制,服務器3和4作為一個復制,服務器5和6作為一個復制,服務器7和8作為一個復制;當復制副本為4時,按照服務器列表的順序,服務器1/2/3./4作為一個復制,服務器5/6/7/8作為一個復制。
關(guān)于搭建GlusterFS分布式文件系統(tǒng)群集將在下一篇博文詳細配置?。?!
———————— 本文至此結(jié)束,感謝閱讀 ————————
分享文章:GlusterFS分布式文件系統(tǒng)概述
網(wǎng)頁路徑:http://jinyejixie.com/article46/psepeg.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供靜態(tài)網(wǎng)站、App設計、網(wǎng)站導航、、網(wǎng)站維護、電子商務
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)