GlusterFS集群環境部署


 GFS集群環境部署
集群環境:
表一:
------------------------------------------------------------------------------------------------------------------------------------------
        主機          主機名        掛載磁盤         掛載目錄
-------------------------------------------------------------------------------------------------------------------------------------------
                          /dev/sdb(3G)              /b3
192.168.200.66            node1                     /dev/sdb(4G)                 /c4
                         /dev/sdd(5G)                  /d5
                         /dev/sde(6G)                  /e6
--------------------------------------------------------------------------------------------------------------------------------------------
                         /dev/sdb(3G)             /b3
192.168.200.67            node2                      /dev/sdb(4G)                 /c4
                         /dev/sdd(5G)                 /d5
                         /dev/sde(6G)                 /e6
--------------------------------------------------------------------------------------------------------------------------------------------
                          /dev/sdb(3G)           /b3
192.168.200.68            node3                      /dev/sdb(4G)                 /c4
                          /dev/sdd(5G)                 /d5
--------------------------------------------------------------------------------------------------------------------------------------------
                          /dev/sdb(3G)           /b3
192.168.200.69            node4                      /dev/sdb(4G)                 /c4
                         /dev/sdd(5G)                 /d5
--------------------------------------------------------------------------------------------------------------------------------------------
192.168.200.70       Client                    
-------------------------------------------------------------------------------------------------------------------------------------------- 
開機前添加相應硬盤,在掛載在相應目錄  每台主機都要做主機映射.
表二:  (服務器的相關信息)
--------------------------------------------------------------------------------------------------------------------------------------------
卷名稱                     卷類型            空間大小/GB         Brick
--------------------------------------------------------------------------------------------------------------------------------------------
dis-volume       分布式卷                   12                node1(/e6)、node2(/e6) 
stripe-volume      條帶卷                    10                node1(/d5)、node2(/d5)
rep-volume       復制卷                     5                 node3(/d5)、node4(/d5)
dis-stripe                分布式條帶卷                12                node1(/b3)、node2(/b3)、 node3(/b3)、node4(/b3)
dis-rep                    分布式復制卷                 8                node1(/c4)、node2(/c4)、 node3(/c4)、node4(/c4)
--------------------------------------------------------------------------------------------------------------------------------------------
【1】准備環境
在所有節點執行以下操作    客戶端不做操作
開啟4台虛擬機,根據表一添加磁盤, 通過fdisk命令分區,mkfs命令格式化,創建相應的掛載目錄,並將格式化的磁盤掛載到相應的目錄中,最后修改/etc/fstab配置文件,使其永久生效。
注意:創建/gfs目錄,把(E:\軟件安裝\Linux 軟件\gfsrepo)這個目錄下所有的內容全部拷貝到/gfs目錄下
---------
所有主機mkdir  /gfs
----主機66操作----
cd /gfs
rz (上傳)
scp  -r * 192.168.200.67:/gfs
scp  -r * 192.168.200.68:/gfs
scp  -r * 192.168.200.69:/gfs
----------------------------------------------------------
【2】編寫 gfsconf.sh腳本
---------------主機66操作--------------------
vim  gfsconf.sh
#!/bin/bash
for i in $(fdisk -l | grep -wo "/dev/sd[b-z]" | sort)
do
dd if=/dev/zero of=$i bs=1024 count=1024
fdisk $i << EOF
n
p
 
w
EOF
partprobe $i
mkfs.ext4 ${i}1
done
mkdir /b3 /c4 /d5 /e6
fdisk -l | grep -w "/dev/sd[b-z]" | sed -r 's/.*(\/d.{8}).*/\1/g' | sed -r 's/(.*)(.):(.*)/mount \1\21 \/\2\3/' | bash
fdisk -l | grep -w "/dev/sd[b-z]" | sed -r 's/.*(\/d.{8}).*/\1/g' | sed -r 's/(.*)(.):(.*)/\1\21 \/\2\3 xfs default 0 0/' >> /etc/fstab
iptables -F
systemctl stop firewalld
setenforce 0
cat << EOF >> /etc/hosts
192.168.200.66 node1
192.168.200.67 node2
192.168.200.68 node3
192.168.200.69 node4
EOF
cat << EOF >> /etc/yum.repos.d/gfs.repo
[gfs]
name=CentOS-$releasever - Gluster 3.13 (Long Term Maintanance)
baseurl=https://buildlogs.centos.org/centos/6/storage/x86_64/gluster-3.13/
gpgcheck=0
enabled=1
EOF
yum clean all && yum makecache
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
systemctl start glusterd
systemctl enable glusterd
read -p "請輸入主機名: " hn
hostname $hn
bash
保存退出 #注意空行不能取消,腳本有IP需要修改對應主機
scp gfsconf.sh 192.168.200.67:/root/
scp gfsconf.sh 192.168.200.68:/root/
scp gfsconf.sh 192.168.200.69:/root/
------------在66、67、68、69主機依次執行----在依次輸入note1 note2 note3 note4
bash gfsconf.sh
--------------------------------------------------------------------------------------------------------
【3】client70主機操作
hostname client
bash
iptables -F
setenforce 0
systemctl stop firewalld
【4】 添加節點
在node1 66主機操作 ,添加node1~node2節點
gluster peer probe node1   #node1也可以不用執行
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
【5】查看集群狀態
通過以下命令在每個節點上查看集群狀態,正常情況下,每個節點的輸出結果為,State: Peer in Cluster(Connected)。如果現實Disconnected,請檢查hosts文件配置。
gluster peer status
【6】創建卷
   【6.1】創建分布式卷
gluster volume create dis-volume node1:/e6 node2:/e6 force    //dis-volume表示卷名   force表示強制創建
gluster volume info dis-volume    //查看信息  看到distribute表示分布式  默認是創建分布式卷
gluster volume start dis-volume    //開啟
注意:沒有執行類型,默認創建的是分布式卷。
    【6.2】創建條帶卷
gluster volume create stripe-volume stripe 2 node1:/d5 node2:/d5 force
gluster volume info stripe-volume   //查看信息 會看到stripe
gluster volume start stripe-volume  //開啟
注意:指定類型為stripe,數值為2,而且后面跟了2個Brick Server,所以創建的是條帶卷。
     【6.3】創建復制卷
gluster volume create rep-volume replica 2 node3:/d5 node4:/d5 force
gluster volume info rep-volume
gluster volume start rep-volume
注意:指定類型為replica,數值為2,而且后面跟了2個Brick Server,所以創建的是復制卷。
     【6.4】創建分布式條帶卷
gluster volume create dis-stripe stripe 2 node1:/b3 node2:/b3 node3:/b3 node4:/b3 force
gluster volume info dis-stripe
gluster volume start dis-stripe
指定類型為Distributed-Stripe,數值為2,而且后面跟了4個Brick Server,是2的2倍,所以創建的是分布式條帶卷。
     【6.5】創建分布式復制卷
gluster volume create  dis-rep replica 2 node1:/c4 node2:/c4 node3:/c4 node4:/c4 force
gluster volume info dis-rep
gluster volume start dis-rep
指定類型為Distributed-Replicate,數值為2,而且后面跟了4個Brick Server,是2的2倍,所以創建的是分布式復制卷。
【7】部署客戶端 client 70
------------主機70操作-----------
【7.1】安裝客戶端軟件
vim gfsconf.sh
#!/bin/bash
iptables -F
systemctl stop firewalld
setenforce 0
cat << EOF >> /etc/hosts
192.168.200.66 node1
192.168.200.67 node2
192.168.200.68 node3
192.168.200.69 node4
EOF
cat << EOF >> /etc/yum.repos.d/gfs.repo
[gfs]
name=CentOS-$releasever - Gluster 3.13 (Long Term Maintanance)
baseurl=https://buildlogs.centos.org/centos/6/storage/x86_64/gluster-3.13/
gpgcheck=0
enabled=1
EOF
yum clean all && yum makecache
yum -y install glusterfs glusterfs-fuse    
 #若不能正常啟動安裝這些glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma
systemctl start glusterd
systemctl enable glusterd
read -p "請輸入主機名: " hn
hostname $hn
bash
保存退出
bash gfsconf.sh       //注意腳本中的ip地址
【7.2】創建掛載目錄
mkdir -p /test/{dis,stripe,rep,dis_and_stripe,dis_and_rep}
ls /test/
【7.3】修改hosts文件
tail -4 /etc/hosts
192.168.200.66 node1
192.168.200.67 node2
192.168.200.68 node3
192.168.200.69 node4
【7.4】掛載gluster文件系統
mount -t glusterfs node1:dis-volume /test/dis
mount -t glusterfs node1:stripe-volume /test/stripe
mount -t glusterfs node1:rep-volume /test/rep
mount -t glusterfs node1:dis-stripe  /test/dis_and_stripe/
mount -t glusterfs node1:dis-rep /test/dis_and_rep
【7.5】修改fstab配置文件
vim /etc/fstab
node1:dis-volume  /test/dis   glusterfs defaults,_netdev 0 0
node1:stripe-volume  /test/stripe  glusterfs defaults,_netdev 0 0
node1:rep-volume  /test/rep   glusterfs defaults,_netdev 0 0
node1:dis-stripe  /test/dis_and_stripe  glusterfs defaults,_netdev 0 0
node1:dis-rep  /test/dis_and_rep  glusterfs defaults,_netdev 0 0
保存退出
【7.6】測試Gluster文件系統
for i in {1..5};do dd if=/dev/zero of=/root/demon$i.log bs=1M count=43;done    //依次創建5個文件,每個文件43M
ls -lg /root/demon*
ls -lh /root/demon*
測試:
cp demon* /test/dis
cp demon* /test/stripe/
cp demon* /test/rep
cp demon* /test/dis_and_stripe
cp demon* /test/dis_and_rep
【8】查看文件分布
查看分布式卷文件分布
------------在66主機操作---------------
ll -h /e6/       //沒有分片,原始大小43M
------------在67主機操作---------------
ll -h /e6/      //沒有分片,原始大小43M
-------------------
查看條帶卷文件分布
------------在66主機操作---------------
ll -h /d5      //大小被分片成22M
------------在67主機操作---------------
ll -h /d5       //大小被分片成22M
-----------------------------------
查看復制卷文件分布
------------在68主機操作---------------
ll -h /d5        //沒有分片,原始大小43M
------------在69主機操作---------------
ll -h /d5        //沒有分片,原始大小43M
--------------------------------------
查看分布式條帶卷文件分布
--------------在66主機操作-------------
ll -h /b3         //大小被分成22M
--------------在67主機操作-------------
ll -h /b3         //大小被分成22M
--------------在68主機操作-------------
ll -h /b3         //大小被分成22M
--------------在69主機操作-------------
ll -h /b3         //大小被分成22M
----------------------------------------------
查看分布式復制卷文件分布
---------------在66主機操作------------
ll -h /c4          //沒有分片,原始大小43M
---------------在67主機操作------------
ll -h /c4          //沒有分片,原始大小43M
---------------在68主機操作------------
ll -h /c4          //沒有分片,原始大小43M
---------------在69主機操作------------
ll -h /c4          //沒有分片,原始大小43M
【9】破壞性測試
掛起node2主機67 ,(將67虛擬機掛起)在客戶端測試文件是否可以正常使用
【9.1】測試分布式數據是否可以正常訪問
------------在70主機操作----------------
head -1 /test/dis/demon1.log
head -1 /test/dis/demon2.log     //顯示無法打開文件讀取數據,沒有哪個文件或目錄
head -1 /test/dis/demon3.log
head -1 /test/dis/demon4.log
head -1 /test/dis/demon5.log      //顯示無法打開文件讀取數據,沒有哪個文件或目錄
分布在node2節點上的demon2.log和demon5.log無法訪問,分布式卷不具備冗余
【9.2】測試條帶卷數據是否可以正常訪問
------------在70主機操作----------------
head -1 /test/stripe/demon1.log
head -1 /test/stripe/demon2.log
head -1 /test/stripe/demon3.log
head -1 /test/stripe/demon4.log
head -1 /test/stripe/demon5.log
//會發現以上5個文件都無法讀取,沒有哪個文件或目錄.   node2節點掛起后,所有數據全部丟失
【9.3】測試分布式條帶數據是否可以訪問
------------在70主機操作----------------
head -1 /test/dis_and_stripe/demon1.log        //顯示無法打開文件讀取數據,沒有哪個文件或目錄
head -1 /test/dis_and_stripe/demon2.log
head -1 /test/dis_and_stripe/demon3.log        //顯示無法打開文件讀取數據,沒有哪個文件或目錄
head -1 /test/dis_and_stripe/demon4.log        //顯示無法打開文件讀取數據,沒有哪個文件或目錄
head -1 /test/dis_and_stripe/demon5.log
#node2節點掛起后,分布在node1和node2節點的數據丟失,而分布在node3和node4節點數據不丟失
【9.4】測試分布式復制卷數據是否可以訪問
------------在70主機操作----------------
head -1 /test/dis_and_rep/demon1.log
head -1 /test/dis_and_rep/demon2.log
head -1 /test/dis_and_rep/demon3.log
head -1 /test/dis_and_rep/demon4.log
head -1 /test/dis_and_rep/demon5.log
///會發現node2節點掛起后,數據不丟失
【9.5】繼續掛起node4節點,在客戶端上測試文件是否可以正常使用。
     測試復制卷數據是否可以訪問
------------在70主機操作----------------
head -1 /test/rep/demon1.log
head -1 /test/rep/demon2.log
head -1 /test/rep/demon3.log
head -1 /test/rep/demon4.log
head -1 /test/rep/demon5.log
node2和node4節點掛起后,數據不丟失
【9.6】測試分布式條帶卷數據是否可以訪問
------------在70主機操作----------------
head -1 /test/dis_and_stripe/demon1.log    //丟失
head -1 /test/dis_and_stripe/demon2.log    //丟失
head -1 /test/dis_and_stripe/demon3.log    //丟失
head -1 /test/dis_and_stripe/demon4.log    //丟失
head -1 /test/dis_and_stripe/demon5.log    //丟失
///node2和node4節點掛起后,數據全部都丟失
【9.7】測試分布式復制卷數據是否可以訪問
------------在70主機操作----------------
tail -1 /test/dis_and_rep/demon1.log
tail -1 /test/dis_and_rep/demon2.log
tail -1 /test/dis_and_rep/demon3.log
tail -1 /test/dis_and_rep/demon4.log
tail -1 /test/dis_and_rep/demon5.log
////node2和node4節點掛起后,數據不丟失
【10】其他的維護命令
------------在66主機操作-----------------
gluster volume info     //查看所有卷的信息
gluster volume info 卷名    //查看某個卷的信息
gluster volume status   //查看卷的狀態
gluster volume stop dis-stripe     //停止卷
gluster volume delete dis-stripe    //刪除卷
gluster volume set dis-rep auth.allow 192.168.200.*,10.1.1.*    //設置倦怠訪問控制,只允許192.168.200.0和10.1.1.0網段的客戶端訪問dis-rep卷
 


免責聲明!

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



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