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卷
 
posted @ 2019-12-09 21:07  elin菻  阅读(910)  评论(0编辑  收藏  举报