您好,登錄后才能下訂單哦!
內容要點
一、GlusterFS 簡介:
二、GlusterFS 的卷類型:
三、GlusterFS 部署:
第一步:先將每臺虛擬機的各個磁盤掛載好,方便操作,可以使用以下腳本
第二步:在四臺 node 節點上的操作
第三步:時間同步
第五步:GlusterFS 卷的創建
第六步:客戶端配置
第七步:測試
一、GlusterFS 簡介:
GFS是一個可擴展的分布式文件系統,用于大型的、分布式的、對大量數據進行訪問的應用。它運行于廉價的普通硬件上,并提供容錯功能。它可以給大量的用戶提供總體性能較高的服務。
開源的分布式文件系統;
由存儲服務器、客戶端以及 NFS/Samba 存儲網關組成;
(1)GlusterFS 特點:
擴展性和高性能;
高可用性;
全局統一命名空間;
彈性卷管理;
基于標準協議
(2)模塊化堆棧架構:
1、模塊化,堆棧式結構;
2、通過對模塊的組合,實現復雜的功能;
3、GlusterFS 工作流程:
4、彈性 HASH 算法:
通過 HASH 算法得到一個32位的整數;
劃分為 N 個連接的子空間,每個空間對應一個 Brick;
彈性 HASH 算法的優點:
保證數據平均分布在每一個 Brick 中;
解決了對元數據服務器的依賴,進而解決了單點故障以及服訪問瓶頸。
二、GlusterFS 的卷類型:
(1)分布式卷:
沒有對文件進行分塊處理;
通過擴展文件屬性保存 HASH值;
支持的底層文件系統有 ext3 、ext4 、ZFS 、XFS等
特點:
文件分布在不同的服務器,不具備冗余性;
更容易和廉價地擴展卷的大小;
單點故障會造成數據丟失;
依賴底層的數據保護。
(2)條帶卷:
根據偏移量將文件分為 N 塊(N個條帶節點),輪詢的存儲在每個 Brick Server 節點;
存儲大文件時,性能尤為突出;
不具備冗余性,類似 raid0
特點:
數據被分割成更小塊分布到塊服務器群中的不同條帶區;
分布減少了負載且更小的文件加速了存取的速度;
沒有數據冗余
(3)復制卷:
同一個文件保存一份或多分副本;
復制模式因為要保存副本,所以磁盤利用率較低;
多個節點上的存儲空間不一致,那么將安裝木桶效應取最低節點的容量作為該卷的總容量
特點:
卷中所有的服務器均保存一個完整的副本;
卷的副本數量可由客戶創建的時候決定;
至少由兩個塊服務器或更多服務器;
具備容災性。
(4)分布式條帶卷:
兼顧分布式和條帶卷的功能;
主要用于大文件訪問處理;
至少最少需要 4 臺服務器。
(5)分布式復制卷:
兼顧分布式卷和復制卷的功能;
用于需要冗余的情況下
三、GlusterFS 部署:
環境準備:
五臺虛擬機,一臺作為客戶端,另外四臺作為節點,每個虛擬機新增4塊磁盤(每個20G大小就可以了)
角色 | 空間大小 |
node1(192.168.220.172) | 80G(20G×4) |
node2(192.168.220.131) | 80G(20G×4) |
node3(192.168.220.140) | 80G(20G×4) |
node4(192.168.220.136) | 80G(20G×4) |
客戶端(192.168.220.137) | 80G(20G×4) |
第一步:先將每臺虛擬機的各個磁盤掛載好,方便操作,可以使用以下腳本
vim?disk.sh?//掛載磁盤腳本,一鍵操作 #!?/bin/bash echo?"the?disks?exist?list:" fdisk?-l?|grep?'磁盤?/dev/sd[a-z]' echo?"==================================================" PS3="chose?which?disk?you?want?to?create:" select?VAR?in?`ls?/dev/sd*|grep?-o?'sd[b-z]'|uniq`?quit do ????case?$VAR?in ????sda) ????????fdisk?-l?/dev/sda ????????break?;; ????sd[b-z]) ????????#create?partitions ????????echo?"n ????????????????p ???????????????? ???????????????? ??????????? ????????????????w"??|?fdisk?/dev/$VAR ????????#make?filesystem ????????mkfs.xfs?-i?size=512?/dev/${VAR}"1"?&>?/dev/null #mount?the?system ????????mkdir?-p?/data/${VAR}"1"?&>?/dev/null ????????echo?-e?"/dev/${VAR}"1"?/data/${VAR}"1"?xfs?defaults?0?0\n"?>>?/etc/fstab ????????mount?-a?&>?/dev/null ????????break?;; ????quit) ????????break;; ????*) ????????echo?"wrong?disk,please?check?again";; ????esac done
第二步:在四臺 node 節點上的操作
(1)修改主機名(node1、node2、node3、node4),并關閉防火墻等。
hostnamectl?set-hostname?node1 hostnamectl?set-hostname?node2 hostnamectl?set-hostname?node3 hostnamectl?set-hostname?node4
(2)編輯 hosts 文件,添加主機名和 IP地址:
vim?/etc/hosts?#末行插入 192.168.220.172?node1 192.168.220.131?node2 192.168.220.140?node3 192.168.220.136?node4
(3)編寫 yum 源的庫,安裝 GlusterFS :
cd?/opt/ mkdir?/abc mount.cifs?//192.168.10.157/MHA?/abc???//遠程掛載到本地 cd?/etc/yum.repos.d/ mkdir?bak?? mv?Cent*?bak/???//將原來的源都移到新建的文件夾中 vim?GLFS.repo???//新建一個源 [GLFS] name=glfs baseurl=file:///abc/gfsrepo gpgcheck=0 enabled=1
(4)安裝軟件包:
yum?-y?install?glusterfs?glusterfs-server?glusterfs-fuse?glusterfs-rdma
(5)開啟服務:
systemctl?start?glusterd systemctl?status?glusterd
第三步:時間同步
ntpdate?ntp1.aliyun.com???//時間同步(每臺節點都需要操作)
添加存儲信任池,只要在一臺主機上添加其他三臺節點即可:
這是在 node1 節點上的操作:
gluster?peer?probe?node2 gluster?peer?probe?node3 gluster?peer?probe?node4 gluster?peer?status?//查看所有節點狀態
第五步:GlusterFS 卷的創建
(1)創建分布式卷:
gluster?volume?create?dis-vol?node1:/data/sdb1?node2:/data/sdb1?force ??//利用node1和node2上的兩塊磁盤創建;dis-vol為磁盤名;force表示強制 ????? gluster?volume?start?dis-vol????//啟動 gluster?volume?info?dis-vol?????//查看狀態
(2)創建條帶卷:
gluster?volume?create?stripe-vol?stripe?2?node1:/data/sdc1?node2:/data/sdc1?force gluster?volume?start?stripe-vol gluster?volume?info?stripe-vol
(3)創建復制卷:
gluster?volume?create?rep-vol?replica?2?node3:/data/sdb1?node4:/data/sdb1?force gluster?volume?start?rep-vol gluster?volume?info?rep-vol
(4)創建分布式條帶卷(至少4個節點):
gluster?volume?create?dis-stripe?stripe?2?node1:/data/sdd1?node2:/data/sdd1?node3:/data/sdd1?node4:/data/sdd1?force gluster?volume?start?dis-stripe gluster?volume?info?dis-stripe
(5)創建分布式復制卷(至少4個節點):
gluster?volume?create?dis-rep?replica?2?node1:/data/sde1?node2:/data/sde1?node3:/data/sde1?node4:/data/sde1?force gluster?volume?start?dis-rep gluster?volume?info?dis-rep
第六步:客戶端配置
(1)關閉防火墻
systemctl?stop?firewalld setenforce?0
(2)配置安裝 GFS 源:
cd?/opt/ mkdir?/abc mount.cifs?//192.168.10.157/MHA?/abc???//遠程掛載到本地 cd?/etc/yum.repos.d/ vim?GLFS.repo???//新建一個源 [GLFS] name=glfs baseurl=file:///abc/gfsrepo gpgcheck=0 enabled=1
yum?-y?install?glusterfs?glusterfs-fuse???//安裝軟件包
(3)修改 hosts文件:
vim?/etc/hosts 192.168.220.172?node1 192.168.220.131?node2 192.168.220.140?node3 192.168.220.136?node4
(4)創建臨時掛載點:
mkdir?-p?/text/dis???//遞歸創建一個掛載點 mount.glusterfs?node1:dis-vol?/text/dis/?????????//掛載分布式卷 mkdir?/text/strip mount.glusterfs?node1:stripe-vol?/text/strip/?????//掛載條帶卷 mkdir?/text/rep mount.glusterfs?node3:rep-vol?/text/rep/??????????//掛載復制卷 mkdir?/text/dis-str mount.glusterfs?node2:dis-stripe?/text/dis-str/????//掛載分布式條帶卷 mkdir?/text/dis-rep mount.glusterfs?node4:dis-rep?/text/dis-rep/????????//掛載分布式復制卷
df-hT:查看掛載信息:
第七步:測試
(1)創建 5 個40M 的文件:
dd?if=/dev/zero?of=/demo1.log?bs=1M?count=40 dd?if=/dev/zero?of=/demo2.log?bs=1M?count=40 dd?if=/dev/zero?of=/demo3.log?bs=1M?count=40 dd?if=/dev/zero?of=/demo4.log?bs=1M?count=40 dd?if=/dev/zero?of=/demo5.log?bs=1M?count=40
(2)把剛剛創建的 5 個文件分別復制到不同的卷上:
cp?/demo*?/text/dis cp?/demo*?/text/strip cp?/demo*?/text/rep/ cp?/demo*?/text/dis-str cp?/demo*?/text/dis-rep
(3)查看各個卷是如何分布的:ll -h /data/sdb1
1、分布式卷:
可以看出都是每個文件都是完整的。
2、條帶卷:
所有文件都被分成各一半進行分布存儲。
3、復制卷:
所有文件都被完整復制一遍,進行存儲。
4、分布式條帶卷:
5、分布式復制卷:
(4)故障破壞測試:
現在關閉第二臺節點服務器,模擬宕機;再在客戶機上查看各個卷的情況:
可以發現:
分布式卷所有文件都在;
復制卷所有文件都在;
掛載分布式條帶卷只有 demo5.log 一個文件了,丟失了4個;
掛載分布式復制卷所有文件都在;
條帶卷所有文件都丟失了。
(5)其他操作:
1、刪除卷(先停止,再刪除):
gluster?volume?stop?卷名 gluster?volume?delete?卷名
2、黑白名單設置:
gluster?volume?set?卷名?auth.reject?192.168.220.100?????//拒絕某臺主機掛載 gluster?volume?set?卷名?auth.allow?192.168.220.100??????//允許某臺主機掛載
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。