GlusterFS 集群搭建


一、部署流程

1. 环境部署

节点 ip 磁盘 挂载点
node1 192.168.8.13 sdb1、sdc1、sdd1、sde1 /data
node2 192.168.8.14 sdb1、sdc1、sdd1、sde1 /data
node3 192.168.8.15 sdb1、sdc1、sdd1、sde1 /data
node4 192.168.8.16 sdb1、sdc1、sdd1、sde1 /data
client 192.168.8.17 \ \
  • 四台节点均需要添加四块磁盘,不需要太大(需关机状态下添加)
    在这里插入图片描述
#四台服务器操作
hostname node1															#临时修改主机名
bash
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
ntpdate ntp1.aliyun.com													#时间同步

在这里插入图片描述

2. 硬盘分区挂载

vim /opt/fdisk.sh
	#!/bin/bash
	echo "the disks exist list:"
	##grep出系统所带磁盘
	fdisk -l |grep '磁盘 /dev/sd[a-z]'    
	echo "=================================================="
	PS3="chose which disk you want to create:"
	 ##选择需要创建的磁盘编号
	select VAR in `ls /dev/sd*|grep -o 'sd[b-z]'|uniq` quit   
	do
   	 case $VAR in
   	 sda)
	 ##本地磁盘就退出case语句
     	   fdisk -l /dev/sda   
     	   break ;;
  	  sd[b-z])
    	    #create partitions
       	 echo "n    ##创建磁盘
          	      p
        	        
                
           
           	     w"  | fdisk /dev/$VAR
 
        	#make filesystem
	##格式化
      	  mkfs.xfs -i size=512 /dev/${
    
    VAR}"1" &> /dev/null    
		#mount the system
      	  mkdir -p /data/${
    
    VAR}"1" &> /dev/null
	###永久挂载
        	echo -e "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0\n" >> /etc/fstab
	###使得挂载生效
     	   mount -a &> /dev/null
      	  break ;;
    	quit)
     	   break;;
  	  *)
       	 echo "wrong disk,please check again";;
   	 esac
	done
chmod +x /opt/fdisk.sh
cd /opt/
sh -x fdisk.sh

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

3. 配置/etc/hosts文件(所有节点上操作)

echo "192.168.8.13 node1" >> /etc/hosts
echo "192.168.8.14 node2" >> /etc/hosts
echo "192.168.8.15 node3" >> /etc/hosts
echo "192.168.8.16 node4" >> /etc/hosts
cat /etc/hosts

在这里插入图片描述

4. 安装、启动GFS

四个节点配置相同

  • 把 gfsrepo 压缩包上传至 opt 目录下
unzip gfsrepo.zip

在这里插入图片描述

  • 配置 yum 本地源
cd /etc/yum.repos.d/
mkdir repo.bak
mv CentOS-* repo.bak

vim glfs.repo 					
[glfs]
name=glfs
baseurl=file:///opt/gfsrepo
gpgcheck=0
enabled=1

yum clean all && yum makecache
yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma		   #安装gluster
systemctl start glusterd.service		 									   #开启gluster服务
systemctl enable glusterd.service
systemctl status glusterd.service

netstat -antp | grep glusterd

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5. 添加节点并创建集群

添加节点到存储信任池中,只需在 node1 节点上操作

添加节点到存储信任池中(在node1节点上操作)
gluster peer probe node1
gluster peer probe node2
gluster peer probe node3
gluster peer probe node4
gluster peer status		  				#在每个节点上查看群集状态

在这里插入图片描述

6. 根据规划创建卷

卷名 卷类型 Brick
dis-volume 分布式卷 node1(/data/sdb1)、node2(/data/sdb1)
stripe-volume 条带卷 node1(/data/sdc1)、node2(/data/sdc1)
rep-volume 复制卷 node3(/data/sdb1)、node4(/data/sdb1)
dis-stripe 分布式条带卷 node1(/data/sdd1)、node2(/data/sdd1)、node3(/data/sdd1)、node4(/data/sdd1)
dis-rep 分布式复制卷 node1(/data/sde1)、node2(/data/sde1)、node3(/data/sde1)、node4(/data/sde1)

6.1 创建分布式卷

gluster volume create dis-volume node1:/data/sdb1 node2:/data/sdb1 force
#创建分布式卷,没有指定类型,默认创建的是分布式卷

gluster volume list
#查看类型

gluster volume start dis-volume
#开启

gluster volume info dis-volume
#查看卷信息

在这里插入图片描述

6.2 创建条带卷

gluster volume create stripe-volume stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
#指定类型为 stripe,数值为2,且后面跟了2个 Brick Server,所以创建的是条带卷

gluster volume start stripe-volume
gluster volume info stripe-volume

在这里插入图片描述

6.3 创建复制卷

gluster volume create rep-volume replica 2 node3:/data/sdb1 node4:/data/sdb1 force#指定类型为replica,数值为2,且后面跟了2个Brick Server,所以创建的是复制卷gluster volume start rep-volumegluster volume info rep-volume

在这里插入图片描述

6.4 创建分布式条带卷

gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force#指定类型为stripe,数值为2,而且后面跟了4个Brick Server,是2的两倍,所以创建的是分布式条带卷gluster volume start dis-stripegluster volume info dis-stripe

在这里插入图片描述

6.5 创建分布式复制卷

gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force#指定类型为 replica,数值为 2,而且后面跟了 4 个 Brick Server,是 2 的两倍,所以创建的是分布式复制卷gluster volume start dis-repgluster volume info dis-repgluster volume list

在这里插入图片描述

二、Client 客户端部署与测试

1. 部署 Gluster 客户端

在 node1上创建五个卷后,在客户端上把卷挂载在指定的五个目录内,在目录内写入了五个文件,五个文件分别保存在五个目录里面

  • 环境部署
systemctl stop firewalldsystemctl disable firewalldsetenforce 0ntpdate ntp1.aliyun.com#将软件包 gfsrepo.zip 传至 opt 目录下cd /optunzip gfsrepo.zip
  • 配置本地 yum 源仓库
cd /etc/yum.repos.d/mkdir repos.bakmv CentOS-* repos.bak/vim glfs.repo[glfs]name=glfsbaseurl=file:///opt/gfsrepogpgcheck=0enabled=1yum clean all && yum makecacheyum install -y glusterfs glusterfs-fuse

在这里插入图片描述

  • 创建挂载目录
mkdir -p /test/{
    
    dis,stripe,rep,dis_stripe,dis_rep}ls /test

在这里插入图片描述

  • 配置 /etc/hosts 文件
echo "192.168.8.13 node1" >> /etc/hostsecho "192.168.8.14 node2" >> /etc/hostsecho "192.168.8.15 node3" >> /etc/hostsecho "192.168.8.16 node4" >> /etc/hosts

在这里插入图片描述

  • 挂载 Gluster 文件系统
mount.glusterfs node1:dis-volume /test/dismount.glusterfs node1:stripe-volume /test/stripemount.glusterfs node1:rep-volume /test/repmount.glusterfs node1:dis-stripe /test/dis_stripemount.glusterfs node1:dis-rep /test/dis_repdf -Th

在这里插入图片描述

  • 卷中写入文件
cd /optdd if=/dev/zero of=/opt/demo1.log bs=1M count=40dd if=/dev/zero of=/opt/demo2.log bs=1M count=40dd if=/dev/zero of=/opt/demo3.log bs=1M count=40dd if=/dev/zero of=/opt/demo4.log bs=1M count=40dd if=/dev/zero of=/opt/demo5.log bs=1M count=40#生成一个特定大小的文件给与/opt/demo*.log下,大小为1M,共处理40次ls -lh /optcp demo* /test/discp demo* /test/stripe/cp demo* /test/rep/cp demo* /test/dis_stripe/cp demo* /test/dis_rep/tree /test/											#查看/test/的文件夹/文件的目录树

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 验证 gluster 文件系统

gluster 服务器上查看文件分布

  • ① 查看分布式文件分布
ls -lh /data/sdb1		 			 #没有被分片,文件分开节点存放

在这里插入图片描述
在这里插入图片描述

  • ② 查看条带卷文件分布
ls -lh /data/sdc1		 				#查询数据被分片50% 没副本 没冗余

在这里插入图片描述
在这里插入图片描述

  • ③ 查看复制卷分布
#复制卷放在了 node3、node4ll -h /data/sdb1	 								#没有被分片,有副本,有冗余  

在这里插入图片描述
在这里插入图片描述

  • ④ 查看分布式条带卷分布
ll -h /data/sdd1		 				#文件被分片50%,没副本,没冗余

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

  • ⑤ 查看分布式复制卷分布
ll -h /data/sde1		 					#数据没有被分片 有副本 有冗余

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3. 破坏性测试分布式文件系统

#关闭 glusterd 服务 node2 节点来模拟故障[root@node2]#systemctl stop glusterd	 					ls		           								#在客户端上查看文件是否正常#查看卷数据是否正常ls /test/dis		 							#测试分布式是否正常ls /test/rep		 							#测试复制带是否正常ls /test/stripe		 							#测试条带是否正常ll /test/dis_stripe	 							#测试分布式条带是否正常ls /test/dis_rep		 						#测试分布复制带是否正常

在这里插入图片描述

小结:有复制数据功能的卷数据比较安全

三、GFS 文件系统的维护命令

gluster volume list													#查看GlusterFS卷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.126.100				#设置卷的访问控制#仅拒绝,设置为IP地址为192.168.8.12的主机禁止访问dis-rep(分布式复制卷)gluster volume set dis-rep auth.allow 192.168.8.*#仅允许,设置为192.168.8.0网段的所有IP地址都能访问dis-rep(分布式复制卷)

Guess you like

Origin blog.csdn.net/shenyuanhaojie/article/details/121370461