Glusterfs的安裝、創建卷、配置和優化卷、掛載使用


一、網站推薦:

  1、https://gluster.readthedocs.io/en/latest/    這是官方的說明網站。這里面有安裝Glusterfs原理,安裝流程,各種卷的原理、創建方式、以及使用領域的說明。推薦直接訪問官方網站學習使用。

  2、https://download.gluster.org/pub/gluster/glusterfs   這是官方的資源網站。這里面有各種系統的Glusterfs資源下載路徑。

 

二、安裝流程(需要在每台服務器上操作

  假設我們有三台測試機分別是192.168.1.11 192.168.1.22 192.168.1.33,三台需要同時安裝服務端和客戶端。

  常用術語簡介(可去http://gluster.readthedocs.io/en/latest/Quick-Start-Guide/Terminologies/ 查看學習)

  Brick:    GFS中的存儲單元,通過是一個受信存儲池中的服務器的一個導出目錄。可以通過主機名和目錄名來標識,如'SERVER:EXPORT'
  Client:   掛載了GFS卷的設備
  Extended Attributes:   xattr是一個文件系統的特性,其支持用戶或程序關聯文件/目錄和元數據。
  FUSE:   Filesystem Userspace是一個可加載的內核模塊,其支持非特權用戶創建自己的文件系統而不需要修改內核代碼。通過在用戶空間運行文件系統的代碼通過FUSE代碼與內核進行橋接。
  Node:  一個擁有若干brick的設備
  Volume:   一組bricks的邏輯集合

 

  1、查看系統版本,根據版本選擇安裝方式(常用的有Ubuntu、Red Hat等)

    cat /proc/version;

    

    

  2、查看ip:   

  ifconfig | grep -v grep | grep inet | grep -v inet6 | grep -v "127.0.0.1" | awk '{print $2}'

  3、配置/etc/hosts:

  sudo echo "192.168.1.11    dn11" >> /etc/hosts; 
  sudo echo "192.168.1.22    dn22" >> /etc/hosts;
  sudo echo "192.168.1.33    dn33" >> /etc/hosts;
  cat /etc/hosts;

   

  4、更改主機名稱:

    1)臨時更改主機名:

    hostname;  #查看主機名,如果是localhost.localdomain就說明是默認的
    hostname 主機名;  #臨時設置主機名,立即生效

    2)永久改變主機名方法一:

    sudo vim /etc/sysconfig/network;   #通過配置文件更改主機名,重啟后生效

    3)永久改變主機名方法二:

    sudo hostnamectl --static set-hostname 主機名;  #通過命令更改主機名,立即生效

  5、安裝glusterfs部分包依賴的epel源:

  sudo yum -y install epel-release;

  6、安裝資源包:

  sudo yum install centos-release-gluster -y;

  7、查看可用的資源包:

  sudo yum list glusterfs --showduplicates | sort -r;

    

  8、添加下載配置源文件:

  sudo vim /etc/yum.repos.d/gluster-epel.repo;

  內容如下:

# CentOS-Gluster-6.repo
#
# Please see http://wiki.centos.org/SpecialInterestGroup/Storage for more
# information

[centos-gluster6]
name=CentOS-$releasever - Gluster 6
mirrorlist=http://mirrorlist.centos.org?arch=$basearch&release=$releasever&repo=storage-gluster-6
#baseurl=http://mirror.centos.org/$contentdir/$releasever/storage/$basearch/gluster-6/
gpgcheck=1
enabled=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage

[centos-gluster6-test]
name=CentOS-$releasever - Gluster 6 Testing
baseurl=http://buildlogs.centos.org/centos/$releasever/storage/$basearch/gluster-6/
gpgcheck=0
enabled=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-SIG-Storage

  9、安裝Glusterfs:

  sudo yum -y install glusterfs-server glusterfs-fuse;

  注意:上面5、6、7、8、9是在Red Hat上操作,Ubuntu上對應操作參考:https://launchpad.net/~gluster/+archive/ubuntu/glusterfs-6

  Ubuntu對應的命令如下:

  sudo add-apt-repository ppa:gluster/glusterfs-6
  sudo apt-get update

  10、開啟glusterd服務:

  sudo systemctl enable glusterd.service;
  sudo systemctl start glusterd.service; (或者service glusterd start)
  sudo systemctl status glusterd.service;

  11、開啟開機啟動:

  sudo chkconfig glusterd on;

  12、關閉selinux:

  sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/sysconfig/selinux /etc/selinux/config;

  13、防火牆設置:

  sudo firewall-cmd --zone=public --permanent --add-port=24007-24008/tcp --add-port=49152-49158/tcp --add-port=38465-38469/tcp --add-port=111/tcp --add-port=111/udp --add-port=2049/tcp;
  sudo firewall-cmd --reload;

  14、磁盤准備:

    每台服務器准備1-2T的磁盤用於文件系統數據存儲;

  15、磁盤掛載:

    1)查看磁盤信息:

    sudo fdisk -l;

    

    2)格式化磁盤:

    sudo mkfs.xfs  /dev/sda3;

    3)創建磁盤掛載路徑:

    sudo mkdir -p /data/brick1;

    4)磁盤開機自動掛載方式:

    sudo echo '/dev/sda3 /data/brick1 xfs defaults 1 2' >> /etc/fstab;
    sudo mount -a && mount;

    5)磁盤非開機自動掛載方式:     

    sudo mount /dev/sda3 /data/brick1;

   *說明:沒有磁盤也是可以的,創建卷的時候加上 force

 

三、創建卷以及相關命令介紹(任意一台服務器上操作即可

  1、添加授信池:

  sudo gluster peer probe dn11;
  sudo gluster peer probe dn22;
  sudo gluster peer probe dn33;

  注意:這里的節點可以替換成對應的ip如:

  sudo gluster peer probe 192.168.1.11

  2、查看集群節點狀態:

  sudo gluster peer status; 

  

   Connected說明鏈接正常,如果是DisConnected則說明那個節點連接出現問題,這時需要查看日志再進行相應處理。

  3、在集群中刪除某個節點,如刪除dn11,慎操作

  sudo gluster peer detach dn11;

  4、卷操作(官網鏈接:https://gluster.readthedocs.io/en/latest/ )

    1)創建一個復制卷(可以在任意一台服務器上執行,本例在dn11上執行)

    sudo gluster volume create Distributed-Replicate-volume replica 2 transport tcp dn11:/fleetDatas dn22:/fleetDatas force;

    2)啟動卷:

    sudo gluster volume start Distributed-Replicate-volume;

    3)查看卷信息

    sudo gluster volume info Distributed-Replicate-volume;

    4)停止、刪除卷(慎操作

    sudo gluster volume stop Distributed-Replicate-volume; #停止卷
    sudo gluster volume delete Distributed-Replicate-volume; #刪除卷

 

四、配置(任意一台操作即可

  1、設置允許掛載范圍,注意默認是允許所有客戶端,哪怕不在授信池內的客戶端

  sudo gluster volume set Distributed-Replicate-volume auth.allow dn11,dn22,dn33;

  2、開啟ACL支持

  sudo gluster volume set Distributed-Replicate-volume acl on;

  3、設置磁盤剩余空間最小閾值,達到這個值就不能再繼續寫入數據了

  sudo gluster volume set Distributed-Replicate-volume cluster.min-free-disk 15;

  4、設置請求等待超時時間,默認1800秒,設置范圍0-1800秒,讀寫的數據超過1800秒未返回結果就認為超時

  sudo gluster volume set Distributed-Replicate-volume network.frame-timeout 1500;

  5、設置客戶端檢測服務器可用超時時間,默認42秒,范圍為0-42秒

  sudo gluster volume set Distributed-Replicate-volume network.ping-timeout 20;

  6、關閉NFS服務,默認為開啟

  sudo gluster volume set Distributed-Replicate-volume nfs.disable off;

  7、設置IO線程數,默認為16,范圍為0-65

  sudo gluster volume set Distributed-Replicate-volume performance.io-thread-count 32;

  8、設置緩存數據校驗周期,默認為1秒,默認為0-61秒,如果同時有多個用戶在讀寫一個文件,一個用戶更新了數據,另一個用戶在Cache刷新周期到來前可能讀到非最新的數據,即無法保證數據的強一致性。因此實際應用時需要在性>能和數據一致性之間進行折中,如果需要更高的數據一致性,就得調小緩存刷新周期,甚至禁用讀緩存;反之,是可以把緩存周期調大一點,以提升讀性能 

  sudo gluster volume set Distributed-Replicate-volume performance.cache-refresh-timeout 2;

  9、設置讀緩存大小,單位為字節,默認大小為32M

  sudo gluster volume set Distributed-Replicate-volume performance.cache-size 128MB;

  10、啟用對小文件的優化性能,默認即為打開

  sudo gluster volume set Distributed-Replicate-volume performance.quick-read on;

  11、設置文件預讀,用預讀的方式提高讀取的性能,讀取操作前就預先抓取數據,這個有利於應用頻繁持續性的訪問文件,當應用完成當前數據塊讀取的時候,下一個數據塊就已經准備好了,預讀處理有page-size和page-count來定義,page-size定義了,一次預讀取的數據塊大小,page-count定義的是被預讀取的塊的數量,不過官方網站上說這個中繼在以太網上沒有必要,一般都能跑滿帶寬。主要是在IB-verbs或10G的以太網上用。

  sudo gluster volume set Distributed-Replicate-volume performance.read-ahead on;

  12、設置在寫數據的時候先寫入到緩存再寫入到磁盤,以提高寫入性能,默認為開啟

  sudo gluster volume set Distributed-Replicate-volume performance.nfs.write-behind on;

  13、緩存已經讀過的數據,默認即開啟,結合上面的performance.quick-read和performance.read-ahead使用

  sudo gluster volume set Distributed-Replicate-volume performance.io-cache on;

  14、開啟磁盤修復功能(只適用於復制卷或分布式復制卷)

  sudo gluster volume heal Distributed-Replicate-volume full;

  15、查看磁盤狀況

  sudo gluster volume heal Distributed-Replicate-volume info;

  16、查看卷信息

  sudo gluster volume info Distributed-Replicate-volume;

   

  17、清空一個選項的參數,如清空acl的配置

  sudo gluster volume reset Distributed-Replicate-volume acl force;

  18、查看一個選項的參數,如查看acl的配置  

  sudo gluster volume  get Distributed-Replicate-volume acl;

 

五、掛載使用(在auth.allow配置下的任意客戶端都可以執行)

  1、創建一個掛載路徑:

  sudo mkdir -p /home/Distributed-Replicate-volume-test;

  2、 文件系統開機自動掛載方式:

  sudo echo "192.168.1.11:/Distributed-Replicate-volume /home/Distributed-Replicate-volume-test glusterfs defaults,_netdev,acl 0 0" >> /etc/fstab; 
  sudo mount -a && mount

  3、文件系統非開機自動掛載方式:

  sudo mount -t glusterfs -o acl dn11:/Distributed-Replicate-volume /home/Distributed-Replicate-volume-test;

  說明:上訴兩種掛載方式是在開啟了acl配置的前提下,如果沒有開啟acl配置,去掉acl的參數即可。

  4、卸載文件系統掛載:

  sudo umount /home/Distributed-Replicate-volume-test;

 

六、結束感言:

  創作不易,如果對你有幫助,請幫忙點贊、收藏,謝謝!

=========================結束!=========================

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM