天天看點

分布式檔案系統---GlusterFS

1.1 分布式檔案系統

1.1.1 什麼是分布式檔案系統

  相對于本機端的檔案系統而言,分布式檔案系統(英語:Distributed file system, DFS),或是網絡檔案系統(英語:Network File System),是一種允許檔案通過網絡在多台主機上分享的檔案系統,可讓多機器上的多使用者分享檔案和存儲空間。

  在這樣的檔案系統中,用戶端并非直接通路底層的資料存儲區塊,而是通過網絡,以特定的通信協定和伺服器溝通。借由通信協定的設計,可以讓用戶端和伺服器端都能根據通路控制清單或是授權,來限制對于檔案系統的通路。

1.1.2 glusterfs是什麼

  Gluster是一個分布式檔案系統。它是各種不同的存儲伺服器之上的組合,這些伺服器由以太網或無限帶寬技術Infiniband以及遠端直接記憶體通路RDMA互相融彙,最終所形成的一個大的并行檔案系統網絡。

分布式檔案系統---GlusterFS

  它有包括雲計算在内的多重應用,諸如:生物醫藥科學,文檔存儲。Gluster是由GNU托管的自由軟體,證書是AGPL。Gluster公司是Gluster的首要商業贊助商,且提供商業産品以及基于Gluster的解決方案。

1.2 快速部署GlusterFS

1.2.1 環境說明

注意:最少需要擁有兩塊硬碟

分布式檔案系統---GlusterFS

   系統環境說明

glusterfs01資訊

[root@glusterfs01 ~]# hostname
glusterfs01
[root@glusterfs01 ~]# uname -r
3.10.0-693.el7.x86_64
[root@glusterfs01 ~]# sestatus 
SELinux status:                 disabled
[root@glusterfs01 ~]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@glusterfs01 ~]# hostname -I
10.0.0.120 172.16.1.120      

glusterfs02資訊

[root@glusterfs02 ~]# uname -r
3.10.0-693.el7.x86_64
[root@glusterfs02 ~]# sestatus 
SELinux status:                 disabled
[root@glusterfs02 ~]# systemctl status firewalld.service 
● firewalld.service - firewalld - dynamic firewall daemon
   Loaded: loaded (/usr/lib/systemd/system/firewalld.service; disabled; vendor preset: enabled)
   Active: inactive (dead)
     Docs: man:firewalld(1)
[root@glusterfs02 ~]# hostname -I
10.0.0.121 172.16.1.121      

   注意配置好hosts解析

1.2.2 前期準備

gluster01主機挂載磁盤

[root@glusterfs01 ~]# mkfs.xfs /dev/sdb
[root@glusterfs01 ~]# mkdir -p /data/brick1
[root@glusterfs01 ~]# echo '/dev/sdb /data/brick1 xfs defaults 0 0' >> /etc/fstab
[root@glusterfs01 ~]# mount -a && mount      

gluster02主機挂載磁盤

[root@glusterfs02 ~]# mkfs.xfs /dev/sdb
[root@glusterfs02 ~]# mkdir -p /data/brick1
[root@glusterfs02 ~]# echo '/dev/sdb /data/brick1 xfs defaults 0 0' >> /etc/fstab
[root@glusterfs02 ~]# mount -a && mount      

1.3 部署GlusterFS

1.3.1 安裝軟體

在兩個節點上操作

yum install centos-release-gluster -y
# 修改鏡像源加速
sed -i 's#http://mirror.centos.org#https://mirrors.shuosc.org#g' /etc/yum.repos.d/CentOS-Gluster-3.12.repo
yum install -y glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma      

軟體版本

[root@glusterfs01 ~]#  rpm  -qa glusterfs
glusterfs-3.12.5-2.el7.x86_64      

1.3.2 啟動GlusterFS

在兩個節點上都進行操作

[root@glusterfs01 ~]# systemctl start glusterd.service 
[root@glusterfs01 ~]# systemctl status glusterd.service 
● glusterd.service - GlusterFS, a clustered file-system server
   Loaded: loaded (/usr/lib/systemd/system/glusterd.service; disabled; vendor preset: disabled)
   Active: active (running) since 三 2018-02-07 21:02:44 CST; 2s ago
  Process: 1923 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 1924 (glusterd)
   CGroup: /system.slice/glusterd.service
           └─1924 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO

2月 07 21:02:44 glusterfs01 systemd[1]: Starting GlusterFS, a clustered file-system server...
2月 07 21:02:44 glusterfs01 systemd[1]: Started GlusterFS, a clustered file-system server.
Hint: Some lines were ellipsized, use -l to show in full.      

1.3.3 配置互信(可信池)

在glusterfs01上操作

[root@glusterfs01 ~]# gluster peer probe glusterfs02
peer probe: success.      

在glusterfs02上操作

[root@glusterfs02 ~]# gluster peer probe glusterfs01
peer probe: success.      

   注意:一旦建立了這個池,隻有受信任的成員可能會将新的伺服器探測到池中。新伺服器無法探測池,必須從池中探測。

1.3.4 檢查對等狀态

[root@glusterfs01 ~]#  gluster peer status 
Number of Peers: 1

Hostname: 10.0.0.121
Uuid: 61d043b0-5582-4354-b475-2626c88bc576
State: Peer in Cluster (Connected)
Other names:
glusterfs02      

   注意:看到的UUID應不相同。

[root@glusterfs02 ~]#  gluster peer status 
Number of Peers: 1

Hostname: glusterfs01
Uuid: e2a9367c-fe96-446d-a631-194970c18750
State: Peer in Cluster (Connected)      

1.3.5 建立一個GlusterFS卷

mkdir -p /data/brick1/gv0      

   在任意一個節點上執行

[root@glusterfs01 ~]# gluster volume create gv0 replica 2 glusterfs01:/data/brick1/gv0 glusterfs02:/data/brick1/gv0
Replica 2 volumes are prone to split-brain. Use Arbiter or Replica 3 to avoid this. See: http://docs.gluster.org/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/.
Do you still want to continue?
 (y/n) y
volume create: gv0: success: please start the volume to access data      

   啟用存儲卷

[root@glusterfs01 ~]# gluster volume start gv0
volume start: gv0: success      

檢視資訊

[root@glusterfs01 ~]# gluster volume info 
 
Volume Name: gv0
Type: Replicate
Volume ID: 865899b9-1e5a-416a-8374-63f7df93e4f5
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: glusterfs01:/data/brick1/gv0
Brick2: glusterfs02:/data/brick1/gv0
Options Reconfigured:
transport.address-family: inet
nfs.disable: on
performance.client-io-threads: off      

至此,服務端配置結束

1.4 用戶端測試

1.4.1 安裝用戶端工具

挂載測試

[root@clsn6 ~]# yum install centos-release-gluster -y
[root@clsn6 ~]# yum install -y glusterfs glusterfs-fuse      

   注意:要配置好hosts檔案,否則連接配接會出錯

[root@clsn6 ~]# mount.glusterfs  glusterfs01:/gv0 /mnt 
[root@clsn6 ~]# df -h 
Filesystem        Size  Used Avail Use% Mounted on
/dev/sda3          19G  2.2G   16G  13% /
tmpfs             238M     0  238M   0% /dev/shm
/dev/sda1         190M   40M  141M  22% /boot
glusterfs01:/gv0  100G   33M  100G   1% /mnt      

1.4.2 複制檔案測試

[root@clsn6 ~]# for i in `seq -w 1 100`; do cp -rp /var/log/messages /mnt/copy-test-$i; done      

用戶端檢查檔案

[root@clsn6 ~]#  ls -lA /mnt/copy* | wc -l
10      

服務節點檢查檔案

[root@glusterfs01 ~]#   ls -lA /data/brick1/gv0/copy* |wc -l
100      
[root@glusterfs02 ~]#   ls -lA /data/brick1/gv0/copy* |wc -l
100      

   至此Glusterfs簡單配置完成

1.5 參考文獻

[1]   http://docs.gluster.org/en/latest/Quick-Start-Guide/Quickstart/ [2]   https://www.cnblogs.com/jicki/p/5801712.html [3]   https://mirrors.shuosc.org/centos/7/

作者:

慘綠少年

出處:

https://www.nmtui.com

本文版權歸作者所有,歡迎轉載,但未經作者同意必須保留此段聲明,且在文章頁面明顯位置給出原文連接配接,否則保留追究法律責任的權利。

繼續閱讀