GlusterFS部署

轉載:https://www.cnblogs.com/fansik/p/9868831.html

注意區分複製卷和分佈式複製卷的區別?

答:純複製卷brick=replica,分佈式複製卷中brick數是replica倍數!

 

一、GlusterFS簡介

    PB級容量、高可用、讀寫性能、基於文件系統級別共享、分佈式、無metadata(元數據)的存儲方式。

   GlusterFS(GNU ClusterFile System)是一種全對稱的開源分佈式文件系統,所謂全對稱是指GlusterFS採用彈性哈希算法,沒有中心節點,所有節點全部平等。GlusterFS配置方便,穩定性好,可輕鬆達到PB級容量,數千個節點。

   2011年被紅帽收購,之後推出了基於GlusterFS的Red Hat Storage Server,增加了針對KVM的許多特性,可用作爲KVM存儲image存儲集羣,也可以爲LB或HA提供存儲。

二、GlusterFS重要特性

    全對稱架構、支持多種卷類型(類似RAID0/1/5/10/01)、支持卷級別的壓縮、支持FUSE、支持NFS、支持SMB、支持Hadoop、支持OpenStack、與oVirt深度整合(對應RHEL紅帽企業級虛擬化)

三、GlusterFS重要概念

birck:GlusterFS的基本元素,以節點服務器目錄形式展現;

volume:多個brick的邏輯集合;

metadata:元數據,用於描述文件、目錄等的信息;

self-heal:用於後臺運行檢測副本卷中文件和目錄的不一致性並解決這些不一致;

FUSE:Filesystem Userspace是一個可加載的內核模塊,其支持非特權用戶創建自己的文件系統而不需要修改內核代碼通過在用戶空間運行文件系統的代碼通過FUSE代碼與內核進行橋接;

Gluster Server:數據存儲服務器,即組成GlusterFS存儲集羣的節點;

Gluster Client:使用GlusterFS存儲服務的服務器,如KVM、OpenStack、LB RealServer、HA node。

四、GlusterFS內部架構

GlusterFS是模塊化堆棧式的架構設計,如上圖所示。模塊稱爲Translator是GlusterFS提供的一種強大機制,藉助這種良好定義的接口可以高效簡便地擴展文件系統的功能。

   1、服務端與客戶端模塊接口是兼容的,同一個translator可同時在兩邊加載。

   2、GlusterFS中所有的功能都是通過translator實現,如Cluster, Storage,Performance, Protocol, Features等。

   3、重點是GlusterFSClient端。

五、GlusterFS部署

1、環境準備

操作系統:CentOS Linux release 7.4.1708 (Core)

內核版本:3.10.0-693.el7.x86_64

能互相解析,並且添加互信機制,防火牆的24007端口,selinux關閉

192.168.1.191 node1

192.168.1.192 node2

192.168.1.193 node3

192.168.1.194 node4

192.168.1.195 node5

...

2、軟件包準備

yum -y install centos-release-gluster

yum -y install glusterfs glusterfs-server glusterfs-fuse

客戶端只需要

glusterfs

glusterfs-fuse

3、創建集羣

分別啓動glusterd服務(並添加開機自啓動):

systemctl start glusterd

systemctl enable glusterd

創建集羣(任意節點上執行一下操作,向集羣中添加節點):

gluster peer probe node2

gluster peer probe node5

從集羣中去除節點(該節點中不能存在卷中正在使用的brick)

gluster peer detach node5

不需要添加自己,只需要添加其他節點即可

查看集羣狀態:

gluster peer status

4、分佈卷

分佈式卷也成爲哈希卷,多個文件以文件爲單位在多個brick上,使用哈希算法隨機存儲。

應用場景:大量小文件

優點:讀/寫性能好

缺點:如果存儲或服務器故障,該brick上的數據將丟失

不指定卷類型,默認是分佈式卷

brick數量沒有限制

創建分佈式卷:

gluster volume create volume_name node1:/data/br1 node2:/data/br1

volumn_name:卷名

node1:節點名

/data/br1:可以理解爲節點上的目錄,這個目錄最好是一個單獨的分區(分區類型最好爲邏輯卷的方式,這樣易於操作系統級別的存儲空間擴展)

啓動這個卷:

gluster volume start volume_name

查看這個卷的信息:

gluster volume info volume_name

5、複製卷

 

多個文件在多個brick上覆制多份,brick的數目要與需要複製的份數相等,建議brick分佈在不同的服務器上。

應用場景:對可靠性高和讀寫性能要求高的場景

優點:讀寫性能好

缺點:寫性能差

replica = brick

創建複製卷:

gluster volume create volume_name replica 2 node1:/data/br1 node2:/data/br1

replica:文件保存的份數

啓動這個卷:

gluster volume start volume_name

查看這個卷的信息:

gluster volume info volume_name

6、條帶卷

 

將文件分成條帶,存放在多個brick上,默認條帶大小128k

應用場景:大文件

優點:適用於大文件存儲

缺點:可靠性低,brick故障會導致數據全部丟失

stripe = birck

創建條帶卷:

gluster volume create volume_name stripe 2 node1:/data/br1 node2:/data/br1

stripe:條帶個數

啓動這個卷:

gluster volume start volume_name

查看這個卷的信息:

gluster volume info volume_name

7、分佈式條帶卷

 

多個文件在多個節點哈希存儲,每個文件再多分條帶在多個brick上存儲

應用場景:讀/寫性能高的大量大文件場景

優點:高併發支持

缺點:沒有冗餘,可靠性差

brick數是stripe的倍數

創建分佈式條帶卷:

gluster volume create volume_name stripe 2 node1:/data/br1 node2:/data/br1 node3:/data/br1 node4:/data/br1

啓動這個卷:

gluster volume start volume_name

查看這個卷的信息:

gluster volume info volume_name

創建時沒有具體的選項,來指定卷的類型,只根據stripe和brick數量分配

8、分佈式複製卷

多個文件在多個節點上哈希存儲,在多個brick複製多份存儲。

應用場景:大量文件讀和可靠性要求高的場景

優點:高可靠,讀性能高

缺點:犧牲存儲空間,寫性能差

brick數量是replica的倍數

gluster volume create volume_name replica 2 node1:/data/br1 node2:/data/br1 node3:/data/br1 node4:/data/br1

啓動這個卷:

gluster volume start volume_name

查看這個卷的信息:

gluster volume info volume_name

創建時沒有具體的選項,來指定卷的類型,只根據replica和brick數量分配

9、條帶式複製卷

 

一個大文件存儲的時候劃分條帶,並且保存多份

應用場景:超大文件,並且對可靠性要求高

優點:大文件存儲,可靠性高

缺點:犧牲空間寫性能差

brick數量是stripe、replica的乘積

gluster volume create volume_name stripe 2 replica 2 node1:/data/br1 node2:/data/br1 node3:/data/br1 node4:/data/br1

啓動這個卷:

gluster volume start volume_name

查看這個卷的信息:

gluster volume info volume_name

10、分佈式條帶複製卷

多個大文件在多個節點哈希存儲,存儲是分成條帶,並且保存多份

應用場景:大量大文件並且對可靠性要求高的場景

優點:讀/寫/可靠性比較均勻

缺點:犧牲存儲空間,寫性能相對差

brick的數量是stripe、replica的乘積的倍數

gluster volume create volume_name stripe 2 replica 2 node1:/data/br1 node2:/data/br1 node3:/data/br1 node4:/data/br1 node5:/data/br1 node6:/data/br1 node7:/data/br1 node8:/data/br1

11、配置客戶端使用卷

將卷掛載到本地的mysql目錄:

mount –t glusterfs node1:/volume_name /mysql

設置開機自動掛載

vim /etc/fstab加入:

node1:/volume_name  /mysql  glusterfs  defaults,_netdev 0 0

使用mount -a檢測並掛載測試

其他掛在方式(NFS、Samba)參考:

http://www.mamicode.com/info-detail-1925105.html

六、卷管理

1、擴容卷(Expanding Volumes)

您可以根據需要擴展卷,而集羣是聯機和可用的。例如,你可能想添加一個磚的分佈量,從而增加了分配和增加的GlusterFS卷的容量。

同樣,你可能想添加一組磚分佈式複製量,增加的GlusterFS卷的容量。

注意:

在擴展分佈式複製和分佈式分散卷時,需要添加多個副本或離散計數的磚塊。例如,要使用複製計數爲2擴展分佈式複製卷,需要在2的倍數(例如4, 6, 8)中添加磚塊。

(1)、將節點添加到集羣中

gluster peer probe node3

gluster peer probe node4

(2)、擴展volume

gluster volume add-brick volume_name node3:/data/br1 node4:/data/br1

(3)、檢查添加信息

gluster volume info volume_name

(4)、Rebalance(不要在業務繁忙的情況下進行)

gluster volume rebalance volume_name start

(5)、查看rebalance的狀態

gluster volume rebalance volume_name status

2、縮減卷(Shrinking Volumes)

您可以根據需要縮小卷,而集羣是聯機和可用的。例如,您可能需要刪除由於硬件或網絡故障而在分佈式卷中無法訪問的磚塊。

注意:

只有配置信息被刪除——您可以繼續從磚塊直接訪問數據。

當收縮分佈式複製和分佈式離散卷時,需要刪除多個副本或條形數的多個磚塊。例如,如果以複製計數2縮小分佈式複製卷,則需要以2的倍數刪除磚塊(例如4, 6, 8)。另外,您要移除的磚塊必須來自相同的子卷(相同的副本或分散集)。

使用“開始選項”運行“移除磚塊”將自動觸發重新平衡操作,將數據從已移除的磚塊遷移到卷的其餘部分。

(1)、移除brick

gluster volume remove-brick volume_name node3:/data/br1 node4:/data/br1 start

(2)、查看移除狀態

gluster volume remove-brick volume_name node3:/data/br1 node4:/data/br1 status

(3)、提交

gluster volume remove-brick volume_name node3:/data/br1 node4:/data/br1 commit

(4)、查看brick是否被移除

gluster volume info volume_name

(5)、Reblance(不要在業務繁忙的情況下進行)

gluster volume rebalance volume_name start

3、Replace brick

(1)、將節點添加到集羣中

gluster peer probe node3

(2)、替換brick

gluster volume replace-brick volume_name node1:/data/br1 node5:/data/br1 commit force

(3)、查看卷的狀態

gluster volume info volume_name

發佈了142 篇原創文章 · 獲贊 337 · 訪問量 224萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章