亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

GlusterFS分布式文件系統群集理論知識詳解

發布時間:2020-06-06 20:37:53 來源:網絡 閱讀:780 作者:筱振 欄目:系統運維

在企業中,一些重要的數據一般都會存儲在硬盤中,雖然硬盤本身的性能也在不斷提高,但是無論硬盤的存取速度有多快,企業所追尋的首先是可靠性,然后才是效率。如果數據面臨丟失的風險,再好的硬件也無法玩會企業的損失,加之近幾年云計算的出現,對存儲提出了更高的要求。而分布式存儲逐漸被人們所接受,它具有更好的性能、高擴展以及可靠性。大部分分布式解決方案都是通過元服務器存放目錄結構等元數據,元數據服務器提供了整個分布式存儲的索引工作。但是一旦元數據服務器損壞,整個分布式存儲都將無法進行工作。下面我們將介紹一種無元服務器的分布式存儲解決方案——GlusterFS

一、初步認識GlusterFS

1.GlusterFS簡介

GlusterFS是一個開源的分布式文件系統,同時也是Scale-Out存儲解決方案GlusterFS的核心。在存儲數據方面具有很強大的擴展能力,通過擴展不同的節點可以支持PB級別的存儲容量。GlusterFS借助TCP/IP或InfiniBand RDMA網絡將分散的存儲資源匯聚在一起,同一提供存儲服務,并使用單一全局命令空間來管理數據。GlusterFS基于可堆疊的用戶空間以及無元的設計,可為各種不同的數據負載提供優異的性能。

GlusterFS主要由存儲服務器、客戶端及NFS/Samba存儲網關(可選,根據需要選擇使用)組成。如圖:

GlusterFS分布式文件系統群集理論知識詳解
GlusterFS架構中最大的設計特點就是沒有元數據服務器組件,這有助于提升整個系統的性能、可靠性和穩定性。傳統的分布式文件系統大多通過元服務器來存儲元數據,元數據包含存儲節點上的目錄信息、目錄結構等,這樣的設計在瀏覽目錄時效率非常高,但是也存在一些缺陷,如單點故障,一旦元數據服務器出現故障,即使節點具備再高的冗余性,整個存儲系統也將崩潰,而GlusterFS分布式文件系統是基于無元服務器的設計,數據橫向擴展能力強,具備較高的可靠性及存儲效率。 GlusterFS支持TCP/IP和InfiniBand RDMA高速網絡互聯,客戶端可通過原聲GlusterFS協議訪問數據,其他沒有運行GlusterFS客戶端的終端可通過NFS/CIFS標準協議通過存儲網關訪問數據。

2.GlusterFS的特點

  • 擴展性和高性能。GlusterFS利用雙重特性來提供高容量存儲解決方案。
    (1)Scale-Out架構通過增加存儲節點的方式來提高存儲容量和性能(磁盤、計算機和I/O資源都可以獨立增加),支持10GBE和InfiniBand等高速網絡互聯;
    (2)Gluster彈性哈希解決了GlusterFS對元數據服務器的依賴,GlusterFS采用彈性算法在存儲池中定位數據,放棄了傳統的通過元數據服務器定位數據,GlusterFS中可以智能的定位任意數據分片(將數據分片存儲在不同節點上),不需要查看索引或者想元數據服務器查詢。這種設計機制實現了存儲的橫向擴展,改善了單點故障及性能瓶頸,真正實現了并行化數據訪問。
  • 高可用性。GlusterFS通過配置某些類型的存儲卷,可以對文件進行自動復制(類似于RAID1),即使某個節點出現故障,也不影響數據的訪問。當數據出現不一致時,自動修復功能能夠把數據恢復到正確的狀態,數據的修復是以增量的方式在后臺執行,不會占用太多系統資源。GlusterFS可以支持所有的存儲,以內它沒有設計自己的私有數據文件格式,而是采用操作系統中標準的磁盤文件系統(如EXT3、XFS等)來存儲文件,數據可以使用傳統的訪問磁盤的方式被訪問;
  • 全局統一命名空間。全局統一命名空間將所有的存儲資源聚集成一個單一的虛擬存儲池,對用戶和應用屏蔽了物理存儲信息。存儲資源(類似于LVM)可以根據生產環境中的需要進行彈性擴展或收縮。在多節點場景中,全局統一命名空間還可以基于不同節點做負載均衡,大大提高了存取效率;
  • 彈性卷管理。GlusterFS通過將數據儲存在邏輯卷中,邏輯卷從邏輯存儲池進行獨立邏輯劃分。邏輯存儲池可以在線進行增加和移除,不會導致業務中斷。邏輯卷可以根據需求在線增長或增減,并可以在多個節點中負載均衡。文件系統配置更改也可以實時在線進行并應用,從而可以適應工作負載條件變化或在線性能調優;
  • 基于標準協議。Gluster存儲服務支持NFS、CIFS、HTTP、FTP、FTP、SMB及Gluster原生協議,完全與POSIX標準兼容。現有應用程序不需要做任何修改就可以對Gluster中的數據進行訪問,也可以使用專用API進行訪問(效率更高),這在公有云環境中部署Gluster時非常有用,Gluster對云服務提供商專用APl進行抽象,然后提供標準POSIX借口;

3.GlusterFS術語

  • Brick(存儲塊):指可信主機池中由主機提供的用于物理存儲的專用分區,是GlusterFS中的基本存儲單元,同時也是可信存儲池中服務器上對外提供的存儲目錄,存儲目錄的格式由服務器和目錄的絕對路徑構成,表示方法為SERVER:EXPORT ,比如:192.168.1.4/date/mydir/;
  • Volume(邏輯卷):一個邏輯卷是一組Brick的集合。卷是數據存儲的邏輯設備,類似于LVM中的邏輯卷。大部分Gluster管理操作是在卷上進行的;
  • FUSE:是一個內核模塊,允許用戶創建自己的文件系統,無須修改內核代碼;
  • VFS:內核空間對用戶空間提供吧的訪問磁盤的接口;
  • Glusterd(后臺管理進程):在存儲群集中的每個節點上都要運行;

4.模塊化堆棧式架構

如圖:
GlusterFS分布式文件系統群集理論知識詳解
GlusterFS采用模塊化、堆棧式的結構,可以根據需求配置定制化的應用環境,如大文件存儲、海量小文件存儲、云存儲、多傳輸協議應用等。通過對模塊進行各種組合,接口實現復雜的功能。例如:Replicate模塊可實現RAID1,Stripe模塊可實現RAID0,通過兩者的組合可實現RAID10和RAID01,同時獲得更高的性能和可靠性。

GlusterFS是模塊化堆棧式的架構設計。模塊成為Translator,是GlusterFS提供的一種強大的機制,借助這種良好定義的接口可以高效簡便地擴展文件系統的功能。
(1)服務器與客戶端的設計高度模塊化的同事模塊接口是兼容的,同一個transtator可同事在客戶端和服務器加載;
(2)GlusterFS中所有的功能都是通過transtator實現的,其中客戶端要比服務器更復雜。所以功能的重點主要集中在客戶端上;

二、GlusterFS的工作原理

1.GlusterFS的工作流程

GlusterFS數據訪問流程如圖:
GlusterFS分布式文件系統群集理論知識詳解

圖中所示只是GlusterFS數據訪問的一個概要圖,大致過程:
(1)客戶端或應用程序通過GlusterFS的掛在點訪問數據;
(2)Linux系統內核通過VFS API收到請求并處理;
(3)VFS將數據遞交給FUSE內核文件系統,并向系統注冊了一個實際的文件系統FUSE,而FUSE文件系統則是將數據通過/dev/fuse設備文件遞交給GlusterFS client端。可以將FUSE文件系統理解為一個代理;
(4)GlusterFS client收到數據后。client根據配置文件對數據進行處理;
(5)經過GlusterFS client處理后,通過網絡將數據傳遞至遠端的GlusterFS Server,并且將數據寫入服務器存儲設備。

2.彈性HASH算法

彈性HASH算法使用Davies-Meyer算法,通過HASH算法得到一個32位的整數范圍,假設邏輯卷中有N個存儲單位Brick,則32位的整數范圍被劃分為N個連續的子空間,每個空間對應一個Brick。當用戶或應用程序訪問某一個命名空間時,通過對該命名空間計算HASH值,根據該HASH值對應的32位整數空間定位數據所在的Brick。

彈性HASH算法的優點表現如下:

  • 保證數據平均分布在每個Brick中;
  • 解決了對元數據服務器的依賴,進而解決了單點故障及訪問瓶頸;

現在我們假設創建一個包含四個Brick節點的GlusterFS卷,在服務端的Brick掛載目錄會給四個Brick平均分配2^32的區間的范圍空間。GlusterFS hash分布區間是保存在目錄上而不是根據機器去分布區間。如圖:
GlusterFS分布式文件系統群集理論知識詳解
Brick*表示一個目錄,分布區間保存在每個Brick掛載點目錄的擴展屬性上。

在卷中創建四個文件。訪問文件時,通過快速Hash函數計算出對應的HASH值,然后根據計算出來的HASH值對應的子空間散列到服務器的Brick上,如圖:
GlusterFS分布式文件系統群集理論知識詳解

三、GLusterFS的卷類型

GlusterFS支持七種卷,這七種卷可以滿足不同應用對高性能、高可用的需求。這七種卷分別是:

  • (1)分布式卷(Distribute volume):文件通過HASH算法分布到所有Brick Server上,這種卷是Glusterf的基礎;以文件為單位根據HASH算法散列到不同的Brick,其實只是擴大了磁盤空間,如果有一個磁盤損壞,數據也將丟失,屬于文件級的RAID0,不具備容錯能力;
  • (2)條帶卷(Stripe volume):類似于RAID0,文件被分為數據塊并以輪詢的方式分布到多個Brick Server上,文件存儲以數據塊為單位,支持大文件存儲,文件越大,讀取效率越高;
  • (3)復制卷(Replica volume):將文件同步到多個Brick上,使其具備多個文件副本,屬于文件級RAID1,具有容錯能力。因為數據分散到多個Brick中,所以讀性能得到了很大提升,但寫性能下降;
  • (4)分布式條帶卷(Distribute Stripe volume):Brick Server數量是條帶數(數據塊分布的Brick數量)的倍數,兼備分布式卷和條帶卷的特點;
  • (5)分布式復制卷(Distribute Replica volume):Brick Server數量是鏡像數(數據副本數量)的倍數,具有分布式卷和復制卷的特點;
  • (6)條帶復制卷(Stripe Replica volume):類似于RAID10,同時具有條帶卷和復制卷的特點;
  • (7)分布式條帶復制卷(Distribute Stripe Replica volume):三種基本卷的復合卷,通常用于類Map Reduce應用;

下面詳細介紹幾種重要的卷類型:

1.分布式卷

分布式卷是GlusterFS的默認卷,在創建卷時,默認選項就是創建分布式卷。在該模式下,并沒有對文件進行分塊處理,文件直接存儲在某個Server節點上,直接使用本地文件系統進行文件存儲,大部分Linux命令和工具可以繼續正常使用。需要通過擴展文件屬性保存HASH值,目前支持的底層文件系統有ext3、ext4、ZFS、XFS等。

由于使用本地文件系統,所以存取效率并沒有提高,反而會因為網絡通信的原因而有所降低;另外支持超大型文件也會有一定的難度,因為分布式卷不會對文件進行分塊處理。雖然ext4已經可以支持最大16TB的單個文件,但是本地存儲設備的容量實在有限。

如圖:
GlusterFS分布式文件系統群集理論知識詳解
如圖所示:File1和File2存放在Server1,而File3存放在Server2,文件都是隨機存儲,一個文件要么在Server1上,要么在Server2上,不能分塊同時存放在Server1和Server2上。

分布式卷具有如下特點:

  • 文件分布在不同的服務器,布局別冗余性;
  • 更容易廉價地擴展卷的大小;
  • 單點故障會造成數據丟失;
  • 依賴于底層的數據保護;

創建分布式卷的命令:

[root@localhost ~]# gluster volume create dis-volume server1:/dir1 server2:/dir2
//創建一個名為dis-volume的分布卷,文件將根據HASH分布在server1:/dir1、server2:/dir2中
Creation of dis-volume has been successful
Please start the volume to access data
2.條帶卷

Stripe模式相當于RAID0,在該模式下,根據偏移量將文件分成N塊(N個條帶節點),輪詢地存儲在每個Brick Server節點。節點把每個數據塊都作為普通文件存入本地文件系統中,通過擴展屬性記錄總塊數和每塊的序號。在配置時指定的條帶數必須等于卷中Brick所包含的存儲服務器數,在存儲大文件時,性能尤為突出,但是不具備冗余性。

如圖:

GlusterFS分布式文件系統群集理論知識詳解
File被分割為6段,1、3、5放在Server1, 2、4、6放在Server2中!

條帶卷具有如下特點:

  • 數據被分割成更小塊分布到塊服務器群中的不同條帶區;
  • 分布減少了負載且更小的文件加速了存取的速度;
  • 沒有數據冗余;

創建條帶卷的命令:

[root@localhost ~]# gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
//創建一個名為Stripe-volume的條帶卷,文件將分塊輪詢地存儲在server1:/dir1 、server2:/dir2兩個Brick中
Creation of rep-volume has been successful
Please start the volume to access data
3.復制卷

復制模式,也稱為AFR,相當于RAID1。即同一文件保存一份或多份副本,每個節點保存相同的內容和目錄結構。復制模式因為要保存副本,所以磁盤利用率較低。如果多個節點上的存儲空間不一致,那么將按照木桶效應取最低節點的容量作為該卷的總容量。在配置復制卷時,復制數必須等于卷中Brick所包含的存儲服務器數,復制卷具備冗余性,即使一個節點損壞,也不影響數據的正常使用。

如圖:
GlusterFS分布式文件系統群集理論知識詳解
File1和File2同時存放在Server1和Server2上,相當于Server2中的文件是Server1中文件的副本!

復制卷具有以下特點:

  • 卷中所有的服務器均保存一個完整的副本;
  • 卷的副本數量可由客戶創建的時候決定;
  • 至少有兩個塊服務器或者更多的服務器;
  • 具有冗余性;

創建復制卷的命令:

[root@localhost ~]# gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
//創建名為rep-volume的復制卷,文件將同時存儲兩個副本,分別在Server1:/dir1和Server2:/dir2兩個Brick中
Creation of rep-volume has been successful
Please start the volume to access data
4.分布式條帶卷

分布式條帶卷兼顧分布式和條帶卷的功能,主要用于大文件訪問處理,創建一個分布式條帶卷最少需要4臺服務器。

如圖:
GlusterFS分布式文件系統群集理論知識詳解
如圖所示:File1和File2通過分布式卷的功能分別定位到Server1和Server2。在Server1中,File1被分割成4段,其中1、3在Server1中exp1目錄中;2、4在Server1中的exp2目錄中。在Server2中,File2也被分割成4段,與File1一樣!

創建分布式條帶卷的命令:

[root@localhost ~]# gluster volume create dis-stripe stripe 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
//創建了一個名為dis-stripe的分布式條帶卷,配置分布式的條帶卷時,卷中Brick所包含的存儲服務器數必須是條帶數的倍數(>=2倍)
Creation of rep-volume has been successful
Please start the volume to access data

注意:創建卷時,存儲服務器的數量如果等于條帶或復制數,那么創建的是條帶卷或復制卷;如果存儲服務器的數量是條帶卷或復制卷的2倍甚至更多,那么將創建分布式條帶卷或分布式復制卷。

5.分布式復制卷

分布式復制卷兼顧分布式卷和復制卷的功能,主要用于需要冗余的情況下,如圖:
GlusterFS分布式文件系統群集理論知識詳解
如圖所示:File1和File2通過分布式jaunty的功能分別定位到Server1和Server2。在存放File1時,File1根據復制卷的特性,將存在兩個相同的副本,分別是Server1中的exp1目錄和Server2中的exp2目錄,在存放File2時,File2根據復制卷的特性,也將存在兩個相同的副本,分別是Server3中的exp3目錄和Server4中的exp4目錄。

創建分布式復制卷的命令:

[root@localhost ~]# gluster volume create dis-rep replica 2 transport tcp server1:/dir1 server2:/dir2 server3:/dir3 server4:/dir4
//創建了一個名為dis-rep的分布式條帶卷,配置分布式的復制卷時,卷中Brick所包含的存儲服務器數必須是條帶數的倍數(>=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作為一個復制。

關于這些理論概念并不是很難,基本看一遍就能明白其中的意思,那這里也就不多說了!

這篇博文主要介紹理論,關于實戰可以參考博文:部署GlusterFS分布式文件系統,實戰!!!

———————— 本文至此結束,感謝閱讀 ————————

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

天柱县| 宣威市| 青浦区| 田东县| 息烽县| 新邵县| 大兴区| 元江| 原阳县| 盱眙县| 县级市| 西林县| 奎屯市| 庄河市| 灯塔市| 鄂尔多斯市| 岚皋县| 太保市| 铁岭县| 建德市| 连江县| 伊金霍洛旗| 西峡县| 循化| 积石山| 新巴尔虎左旗| 舞钢市| 逊克县| 白水县| 宜春市| 乐亭县| 三门峡市| 遂昌县| 托克逊县| 桂阳县| 葵青区| 福建省| 昆明市| 家居| 长寿区| 大荔县|