天天看點

GFS分布式檔案系統部署

這裡寫目錄标題

    • 一、GlusterFS簡介
      • 1.1 GlusterFS工作流程
      • 1.2 彈性HASH算法
    • 二、環境部署
      • 2.1 磁盤部署
      • 2.2 位址映射
      • 2.3 時間同步
      • 2.4 ssh免密登入
    • 三、安裝軟體
      • 3.1 yum源配置
      • 3.2 yum安裝
    • 四、建立卷
      • 4.1 建立分布式卷
      • 4.2 建立條帶卷
      • 4.3 建立複制卷
      • 4.4 建立分布式條帶卷
      • 4.5 建立分布式複制卷
      • 4.6 檢視建立的卷清單
    • 五、客戶機測試
      • 5.1 客戶機挂載
      • 5.2 測試
      • 5.3 檢視各個節點
      • 5.4 故障測試

一、GlusterFS簡介

開源的分布式檔案系統

由存儲伺服器,用戶端(預設GFS挂載服務,RDMA協定)以及NFS/Samba(使用前需開啟對應協定)存儲網關組成

無中繼資料伺服器(無資料元屬性資訊)

1.1 GlusterFS工作流程

1.用戶端或應用程式通過GlusterFS的挂載點(VFS)通路資料

2.linux系統核心通過VFS API收到請求并處理

3.VFS将資料遞交給FUSE核心檔案系統,fuse檔案系統則是将資料通過/dev/fuse裝置檔案遞交給了GlusterFS client(客戶機)

4.GlusterFS client收到資料後,client根據配置檔案的配置對資料進行處理

5.通過網絡将資料傳遞至遠端的GlusterFS server(伺服器),并且将資料寫入到伺服器的儲存設備上。

1.2 彈性HASH算法

1.通過HASH算法得到一個32位的整數

2.劃分為N個連續的子空間,每個空間對應一個Brick

3.彈性HASH算法的優點:

保證資料平均分布在每一個Brick中

解決了對中繼資料伺服器的依賴,進而解決了單點故障以及通路瓶頸

四個Brick節點的GlusterFS卷,平均配置設定2的32次方的區間的範圍空間

通路檔案時,通過計算該檔案的HASH值(key值),進而對應到Brick存儲空間

二、環境部署

裝置對應的IP位址

裝置 IP位址
node1 20.0.0.31
node2 20.0.0.32
node3 20.0.0.33
node4 20.0.0.34
client 20.0.0.35

2.1 磁盤部署

格式化磁盤,并将磁盤挂載到本地(所有node節點都需要操作)

mkfs.ext4 /dev/sdx      格式化
mkdir {/b,/c,/d,/e}    建立目錄
mount /dev/sdx /x       挂載
           
GFS分布式檔案系統部署

2.2 位址映射

通過編輯hosts檔案實作主機和IP位址綁定(所有節點包括客戶機都需要操作)

vi /etc/hots
           
GFS分布式檔案系統部署

2.3 時間同步

首先要確定所有節點都可以通過域名通路公網(所有節點都需要操作)

與阿裡雲時間伺服器同步

ntpdate ntp1.aliyun.com
           

建立任務計劃(可選項)

crontab -e
           

每30分鐘和阿裡雲時間同步伺服器進行時間同步

*/30 * * * * /usr/sbin/ntpdate ntp1.ailyun.com
           

2.4 ssh免密登入

node1可以免密登入到其它節點

ssh-keygen -t rsa     建立密鑰
ssh-copy-id 20.0.0.32    
ssh-copy-id 20.0.0.33
ssh-copy-id 20.0.0.34
ssh-copy-id 20.0.0.14
           

三、安裝軟體

(4個節點都需要安裝)

3.1 yum源配置

1.建立yum倉庫,準備gfs的rpm軟體包,上傳并解壓

unzip gfsrepo.zip
           
GFS分布式檔案系統部署

2.在“

/etc/yum.repos.d

”目錄下建立一個“

.repo

” 結尾的檔案

/etc/yum.repos.d/gfs.repo
           
[gfs]
name=gfs
baseurl=file:///gfsrepo
gpgcheck=0
enabled=1
           

3.建立緩存

yum clean all
yum makecache
           
GFS分布式檔案系統部署

3.2 yum安裝

yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
           

glusterfs :軟體

glusterfs-server: 服務

glusterfs-fuse :檔案系統

glusterfs-rdma :rdma協定

GFS分布式檔案系統部署

啟動服務

systemctl start glusterd.service    啟動服務
systemctl enable glusterd.service   設定服務開機自啟
systemctl status glusterd.service   服務狀态
           
GFS分布式檔案系統部署

四、建立卷

常用指令(在node1節點上)

gluster volume info 卷名

檢視卷的詳細資訊

gluster volume start 卷名

啟動開啟卷

gluster volume status 卷名

檢視卷狀态

4.1 建立分布式卷

gluster volume create dis-vol node1:/b node2:/b force
           
GFS分布式檔案系統部署

4.2 建立條帶卷

使用node1節點的c和node2節點的c建立條帶卷

gluster volume create stripe-vol stripe 2 node1:/c node2:/c force
           
GFS分布式檔案系統部署

4.3 建立複制卷

gluster volume create rep-vol replica 2 node3:/b node4:/b force
           
GFS分布式檔案系統部署

4.4 建立分布式條帶卷

gluster volume create dis-stripe stripe 2 node1:/d node2:/d node3:/d node4:/d force
           
GFS分布式檔案系統部署

4.5 建立分布式複制卷

gluster volume create dis-replica replica 2 node1:/e node2:/e node3:/e node4:/e force
           
GFS分布式檔案系統部署

4.6 檢視建立的卷清單

gluster volume list
           
GFS分布式檔案系統部署

五、客戶機測試

5.1 客戶機挂載

yum安裝 gfs指令程式 檔案系統

yum -y install glusterfs glusterfs-fuse
           

建立挂載點

mkdir {/dis,/stripe,/replica,/dis-stripe,/dis-replica}
           

進行挂載

mount.glusterfs node1:dis-vol /dis
mount.glusterfs node1:rep-vol /replica
mount.glusterfs node1:stripe-vol /stripe
mount.glusterfs node1:dis-stripe /dis-stripe
mount.glusterfs node1:dis-replica /dis-replica
           

檢視挂載情況

GFS分布式檔案系統部署

5.2 測試

在客戶機上建立5個檔案進行測試

dd if=/dev/zero of=/test1.log bs=40M count=1
dd if=/dev/zero of=/test2.log bs=40M count=1
dd if=/dev/zero of=/test3.log bs=40M count=1
dd if=/dev/zero of=/test4.log bs=40M count=1
dd if=/dev/zero of=/test5.log bs=40M count=1
           

檔案複制到之前挂載的幾個目錄

[[email protected] /]# cp test* /dis
[[email protected] /]# cp test* /dis-replica/
[[email protected] /]# cp test* /dis-stripe/
[[email protected] /]# cp test* /stripe/
[[email protected] /]# cp test* /replica/
           
GFS分布式檔案系統部署

5.3 檢視各個節點

群集環境(每個節點有4個磁盤,每個磁盤20G,例如:node1(/b)容量大小為20G)

卷名稱 卷類型 空間大小 Brick(括号内為挂載點)
dis-volume 分布式卷 40G node1(/b)、node2(/b)
stripe-volume 條帶卷 40G node1(/c)、node2(/c)
rep-volume 複制卷 20G node3(/b)、node4(/b)
dis-stripe 分布式條帶卷 80G

node1(/d)、node2(/d)

node3(/d)、node4(/d)

dis-rep 分布式複制卷 40G

node1(/e)、node2(/e)

node3(/e)、node4(/e)

GFS分布式檔案系統部署
GFS分布式檔案系統部署
GFS分布式檔案系統部署
GFS分布式檔案系統部署

5.4 故障測試

1.分布式卷故障測試

當分布式卷的其中一個節點(node2)故障時,檔案會丢失(隻能顯示部分檔案)

GFS分布式檔案系統部署

2.條帶卷故障測試

當分布式卷的其中一個節點(node2)故障時,檔案會丢失(所有檔案都顯示不出來)

GFS分布式檔案系統部署

3.複制卷故障測試

當複制卷的其中一個節點(node3)故障時,檔案不會丢失

GFS分布式檔案系統部署

4.分布式條帶卷故障測試

當分布式條帶卷的其中一個節點(node2)故障時,檔案會丢失(僅可以顯示部分檔案)

解析:node1和node2節點 存儲5個檔案中的其中3個,node1和node2節點又分别存儲3個檔案的一部分

GFS分布式檔案系統部署

5.分布式複制卷故障測試

①壞其中的任意一塊硬碟

當分布式條帶卷的其中一個節點(node2)故障時,檔案不會丢失(可以顯示全部檔案)

解析:node1和node2節點 存儲5個檔案中的其中3個,node1和node2節點都會存儲這3個檔案

GFS分布式檔案系統部署

②壞特定的兩塊硬碟

當分布式條帶卷的其中兩個節點(node2、node3)故障時,檔案依然不會丢失(可以顯示全部檔案)

GFS分布式檔案系統部署

總結:

卷類型 空間大小 故障類型 結果
分布式卷 容量與實體容量一樣 當兩個節點其中一個節點當機 丢失部分檔案
條帶卷 容量與實體容量一樣 當兩個節點其中一個節點當機 會丢失全部檔案
複制卷 容量隻有實體容量的一半 當兩個節點其中一個節點當機 檔案不會丢失
分布式條帶卷 容量與實體機容量一樣 當四個節點中的其中一個節點當機 檔案全部丢失
分布式複制卷 容量隻有實體容量的一半 當四個節點中的其中一個節點當機 檔案不會丢失
分布式複制卷 容量隻有實體容量的一半 當四個節點中的特定兩個節點當機 檔案不會丢失

繼續閱讀