GFS企业分布式存储

目录

一、部署流程

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 \ \
  • 四台节点均需要添加四块磁盘,不需要太大(需关机状态下添加)
    GFS企业分布式存储
#四台服务器操作
hostname node1															#临时修改主机名
bash
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
ntpdate ntp1.aliyun.com													#时间同步
1234567

GFS企业分布式存储

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
12345678910111213141516171819202122232425262728293031323334353637383940414243

GFS企业分布式存储

GFS企业分布式存储

GFS企业分布式存储

GFS企业分布式存储

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
12345

GFS企业分布式存储

4. 安装、启动GFS

四个节点配置相同

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

GFS企业分布式存储

  • 配置 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
123456789101112131415161718

GFS企业分布式存储
GFS企业分布式存储
GFS企业分布式存储

5. 添加节点并创建集群

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

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

GFS企业分布式存储

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
#查看卷信息
1234567891011

GFS企业分布式存储

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
12345

GFS企业分布式存储

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
1

GFS企业分布式存储

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
1

GFS企业分布式存储

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
1

GFS企业分布式存储

二、Client 客户端部署与测试

1. 部署 Gluster 客户端

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

  • 环境部署
systemctl stop firewalldsystemctl disable firewalldsetenforce 0ntpdate ntp1.aliyun.com#将软件包 gfsrepo.zip 传至 opt 目录下cd /optunzip gfsrepo.zip
1
  • 配置本地 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
1

GFS企业分布式存储

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

GFS企业分布式存储

  • 配置 /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
1

GFS企业分布式存储

  • 挂载 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
1

GFS企业分布式存储

  • 卷中写入文件
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/的文件夹/文件的目录树
1

GFS企业分布式存储
GFS企业分布式存储
GFS企业分布式存储

2. 验证 gluster 文件系统

gluster 服务器上查看文件分布

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

GFS企业分布式存储
GFS企业分布式存储

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

GFS企业分布式存储
GFS企业分布式存储

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

GFS企业分布式存储
GFS企业分布式存储

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

GFS企业分布式存储
GFS企业分布式存储

GFS企业分布式存储
GFS企业分布式存储

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

GFS企业分布式存储
GFS企业分布式存储

GFS企业分布式存储
GFS企业分布式存储

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		 						#测试分布复制带是否正常
1

GFS企业分布式存储

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

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

gluster volume list													#查看GlusterFS卷gluster volume info		
上一篇:在java中使用MongoTemplate聚合操作MongoDB


下一篇:Docker进阶之数据卷与端口映射