gfs分布式文件系统集群(实例!!!)(代码片段)

author author     2023-05-03     254

关键词:

GFS分布式文件系统集群项目

群集环境

技术图片

卷类型

卷名称 卷类型 空间大小 Brick
dis-volume 分布式卷 40G node1(/b1)、node2(/b1)
stripe-volume 条带卷 40G node1(/c1)、node2(/c1)
rep-volume 复制卷 20G node3(/b1)、node4(/b1)
dis-stripe 分布式条带卷 40G node1(/d1)、node2(/d1)、node3(/d1)、node4(/d1)
dis-rep 分布式复制卷 20G node1(/e1)、node2(/e1)、node3(/e1)、node4(/e1)

实验准备

1、为四台服务器服务器每台添加4个磁盘

技术图片

2、修改服务器的名称

分别修改为node1、node2、node3、node4

[root@localhost ~]#hostnamectl set-hostname node1
[root@localhost ~]# su

3、将四台服务器上的磁盘格式化,并挂载

在这里我们使用脚本执行挂载

#进入opt目录
[root@node1 ~]# cd /opt
#磁盘格式化、挂载脚本
[root@node1 opt]# vim a.sh
#! /bin/bash
echo "the disks exist list:"
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)
        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
" >> /etc/fstab
        mount -a &> /dev/null
        break ;;
    quit)
        break;;
    *)
        echo "wrong disk,please check again";;
    esac
done
#给于脚本执行权限
[root@node1 opt]# chmod +x a.sh

将脚本通过scp推送到其他三台服务器上

scp a.sh root@192.168.45.134:/opt
scp a.sh root@192.168.45.130:/opt
scp a.sh root@192.168.45.136:/opt
在四台服务器上执行脚本,并完成

这个只是样本

[root@node1 opt]# ./a.sh
the disks exist list:
==================================================
1) sdb
2) sdc
3) sdd
4) sde
5) quit
chose which disk you want to create:1      //选择要格式化的盘
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x37029e96.

Command (m for help): Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): Partition number (1-4, default 1): First sector (2048-41943039, default 2048): Using default value 2048
Last sector, +sectors or +sizeK,M,G (2048-41943039, default 41943039): Using default value 41943039
Partition 1 of type Linux and of size 20 GiB is set

Command (m for help): The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.
分别在四个服务器上查看挂载情况

技术图片

4、设置hosts文件

在第一台node1上修改

#在文件末尾添加
vim /etc/hosts
192.168.45.133 node1
192.168.45.130 node2
192.168.45.134 node3
192.168.45.136 node4

通过scp将hosts文件推送给其他服务器和客户端

#将/etc/hosts文件推送给其他主机
[root@node1 opt]# scp /etc/hosts root@192.168.45.130:/etc/hosts
root@192.168.45.130‘s password: 
hosts                                      100%  242    23.6KB/s   00:00    
[root@node1 opt]# scp /etc/hosts root@192.168.45.134:/etc/hosts
root@192.168.45.134‘s password: 
hosts                                      100%  242   146.0KB/s   00:00    
[root@node1 opt]# scp /etc/hosts root@192.168.45.136:/etc/hosts
root@192.168.45.136‘s password: 
hosts                                      100%  242   146.0KB/s   00:00

在其他服务器上查看推送情况
技术图片

关闭所有服务器和客户端的防火墙
[root@node1 ~]# systemctl stop firewalld.service 
[root@node1 ~]# setenforce 0

在客户端和服务器上搭建yum仓库

#进入yum文件路径
[root@node1 ~]# cd /etc/yum.repos.d/
#创建一个空文件夹
[root@node1 yum.repos.d]# mkdir abc
#将CentOS-文件全部移到到abc下
[root@node1 yum.repos.d]# mv CentOS-* abc
#创建私有yum源
[root@node1 yum.repos.d]# vim GLFS.repo
[demo]
name=demo
baseurl=http://123.56.134.27/demo
gpgcheck=0
enable=1

[gfsrepo]
name=gfsrepo
baseurl=http://123.56.134.27/gfsrepo
gpgcheck=0
enable=1

#重新加载yum源
[root@node1 yum.repos.d]# yum list

安装必要软件包

[root@node1 yum.repos.d]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

在其他三台上进行同样的操作

在四台服务器上启动glusterd,并设置为开机自启动
[root@node1 yum.repos.d]# systemctl start glusterd.service 
[root@node1 yum.repos.d]# systemctl enable glusterd.service

添加节点信息

[root@node1 yum.repos.d]# gluster peer probe node2
peer probe: success. 
[root@node1 yum.repos.d]# gluster peer probe node3
peer probe: success. 
[root@node1 yum.repos.d]# gluster peer probe node4
peer probe: success. 

在其他服务器上查看节点信息

[root@node1 yum.repos.d]# gluster peer status

技术图片

创建分布式卷

#创建分布式卷
[root@node1 yum.repos.d]# gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force
#检查信息
[root@node1 yum.repos.d]# gluster volume info dis-vol
#查看分布式现有卷
[root@node1 yum.repos.d]# gluster volume list
#启动卷
[root@node1 yum.repos.d]# gluster volume start dis-vol 

在客户端上挂载

#递归创建挂载点
[root@manager yum.repos.d]# mkdir -p /text/dis
#将刚才创建的卷挂载到刚才创建的挂载点下
[root@manager yum.repos.d]# mount.glusterfs node1:dis-vol /text/dis
```![在这里插入图片描述](https://img-blog.csdnimg.cn/20191218165913488.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L1BhcmhvaWE=,size_16,color_FFFFFF,t_70)
### 创建条带卷
```sql
#创建卷
[root@node1 yum.repos.d]# gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
#查看现有卷
[root@node1 yum.repos.d]# gluster volume list
dis-vol
stripe-vol
#启动条带卷
[root@node1 yum.repos.d]# gluster volume start stripe-vol 
volume start: stripe-vol: success
在客户端挂载
#创建挂载点
[root@manager yum.repos.d]# mkdir /text/strip
#挂载条带卷
[root@manager yum.repos.d]# mount.glusterfs node1:/stripe-vol /text/strip/

创建复制卷

#创建复制卷
[root@node1 yum.repos.d]# gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force
volume create: rep-vol: success: please start the volume to access data
#开启复制卷
[root@node1 yum.repos.d]# gluster volume start rep-vol 
volume start: rep-vol: success

在客户机挂碍复制卷

[root@manager yum.repos.d]# mkdir /text/rep
[root@manager yum.repos.d]# mount.glusterfs node3:rep-vol /text/rep

创建分布式条带

#创建分布式条带卷
[root@node1 yum.repos.d]# gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
volume create: dis-stripe: success: please start the volume to access data
#启动分布式条带卷
[root@node1 yum.repos.d]# gluster volume start dis-stripe 
volume start: dis-stripe: success

在客户机上挂载

[root@manager yum.repos.d]# mkdir /text/dis-strip
[root@manager yum.repos.d]# mount.glusterfs node4:dis-stripe /text/dis-strip/

创建分布式复制卷

#创建分布式复制卷
[root@node2 yum.repos.d]# gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
volume create: dis-rep: success: please start the volume to access data
#开启复制卷
[root@node2 yum.repos.d]# gluster volume start dis-rep 
volume start: dis-rep: success
# 查看现有卷
[root@node2 yum.repos.d]# gluster volume list
dis-rep
dis-stripe
dis-vol
rep-vol
stripe-vol

在客户端挂载

[root@manager yum.repos.d]# mkdir /text/dis-rep
[root@manager yum.repos.d]# mount.glusterfs node3:dis-rep /text/dis-rep/

------------------------上边我们完成了卷的创建和挂载,现在我们来进行卷的测试

首先在客户机上创建5个40M的文件

[root@manager yum.repos.d]# dd if=/dev/zero of=/demo1.log bs=1M count=40
40+0 records in
40+0 records out
41943040 bytes (42 MB) copied, 0.0175819 s, 2.4 GB/s
[root@manager yum.repos.d]# dd if=/dev/zero of=/demo2.log bs=1M count=40
40+0 records in
40+0 records out
41943040 bytes (42 MB) copied, 0.269746 s, 155 MB/s
[root@manager yum.repos.d]# dd if=/dev/zero of=/demo3.log bs=1M count=40
40+0 records in
40+0 records out
41943040 bytes (42 MB) copied, 0.34134 s, 123 MB/s
[root@manager yum.repos.d]# dd if=/dev/zero of=/demo4.log bs=1M count=40
40+0 records in
40+0 records out
41943040 bytes (42 MB) copied, 1.55335 s, 27.0 MB/s
[root@manager yum.repos.d]# dd if=/dev/zero of=/demo5.log bs=1M count=40
40+0 records in
40+0 records out
41943040 bytes (42 MB) copied, 1.47974 s, 28.3 MB/s

然后复制5个文件到不同的卷上

[root@manager yum.repos.d]# cp /demo* /text/dis
[root@manager yum.repos.d]# cp /demo* /text/strip
[root@manager yum.repos.d]# cp /demo* /text/rep
[root@manager yum.repos.d]# cp /demo* /text/dis-strip
[root@manager yum.repos.d]# cp /demo* /text/dis-rep

查看卷的内容

查看分布式卷

技术图片
技术图片


查看条带卷

技术图片
技术图片


查看复制卷

技术图片
技术图片


查看分布式条带卷

技术图片
技术图片
技术图片
技术图片


查看分布式复制卷

技术图片
技术图片
技术图片
技术图片


故障测试

关闭node2服务器观察结果
[root@manager yum.repos.d]#  ls /text/
dis  dis-rep  dis-strip  rep  strip
[root@manager yum.repos.d]# ls /text/dis
demo1.log  demo2.log  demo3.log  demo4.log
[root@manager yum.repos.d]# ls /text/dis-rep
demo1.log  demo2.log  demo3.log  demo4.log  demo5.log
[root@manager yum.repos.d]# ls /text/dis-strip/
demo5.log
[root@manager yum.repos.d]# ls /text/rep/
demo1.log  demo2.log  demo3.log  demo4.log  demo5.log
[root@manager yum.repos.d]# ls /text/strip/
[root@manager yum.repos.d]# 

结论:

 - 分布卷缺少demo5.log文件
 - 条带卷无法访问
 - 复制卷正常访问
 - 分布式条带卷缺少文件
 - 分布式复制卷正常访问

删除卷

要删除卷需要先停止卷,在删除卷的时候,卷组必须处于开启状态

#停止卷
[root@manager yum.repos.d]# gluster volume delete dis-vol
#删除卷
[root@manager yum.repos.d]# gluster volume delete dis-vol

访问控制

#仅拒绝
[root@manager yum.repos.d]# gluster volume set dis-vol auth.reject 192.168.45.133
#仅允许
[root@manager yum.repos.d]# gluster volume set dis-vol auth.allow 192.168.45.133

谢谢阅读!!!

gfs分布式文件系统集群(理论篇)(代码片段)

GlusterFS概述GlusterFS简介开源的分布式文件系统由存储服务器,客户端以及NFS/Samba存储网关组成无元数据服务器GlusterFS的特点扩展性和高性能高可用性全局统一的命名空间弹性卷管理基于标准协议GlusterFS术语Brick:存储节点Volume:... 查看详情

gfs分布式文件系统(代码片段)

GFS分布式文件系统GFS简介GFS特点GFS术语模块化堆栈式架构GFS的工作流程弹性HASH算法GFS的卷类型分布式卷(默认)条带卷(默认)复制卷分布式条带卷分布式复制卷条带复制卷分布式条带复制卷GFS部署GFS简介GlusterFS... 查看详情

gfs分布式文件系统(代码片段)

GFS分布式文件系统GFS简介GFS特点GFS术语模块化堆栈式架构GFS的工作流程弹性HASH算法GFS的卷类型分布式卷(默认)条带卷(默认)复制卷分布式条带卷分布式复制卷条带复制卷分布式条带复制卷GFS部署GFS简介GlusterFS... 查看详情

linuxglusterfs文件系统|gfs分布式文件系统群集部署|超详细(代码片段)

linuxGlusterFS文件系统|GFS分布式文件系统群集部署|超详细GlusterFS简介GlusterFS特点GlusterFS术语GFS工作流程GFS支持的七种卷GFS服务端部署1.1集群环境1.2更改节点名称1.3节点进行磁盘挂载,安装本地源1.4Hosts文件创建映射关系1.5创建G... 查看详情

gfs文件系统(代码片段)

1.1分布式文件系统1.1.1什么是分布式文件系统  相对于本机端的文件系统而言,分布式文件系统(英语:Distributedfilesystem, DFS),或是网络文件系统(英语:NetworkFileSystem),是一种允许文件通过网络在多台主机上分享的文... 查看详情

gfs分布式文件系统(理论+实验+故障模拟)(代码片段)

...概述1.2GFS特点1.3GFS术语1.4GFS构成与架构二、GFS的卷类型2.1分布式卷2.2条带卷2.3复制卷2.4分布式条带卷2.5分布式复制卷三、GFS工作原理(工作流程)四、弹性HASH算法五、GFS群集部署5.1部署环境5.2脚本批量格式化创建(... 查看详情

gfs分布式文件系统(代码片段)

GFS分布式文件系统一、概述二、特点1.扩展性和高性能2.高可用性3.全局统一命名空间4.弹性卷管理5.基于标准协议三、GlusterFS术语四、GlusterFS的模块化堆栈式架构五、GlusterFS的工作流程六、后端存储定位文件的方法(HASH算法&#... 查看详情

gfs分布式文件系统(代码片段)

...GlusterFS介绍1.1GlusterFS概念1.2GlusterFS特点1.3GlusterFS术语前言分布式文件系统种类有:CEPH分布式文件系统(用的多)GFS(GlusterFS)分布式文件系统M 查看详情

gfs分布式文件系统(代码片段)

GFS概述组成接口:文件系统接口功能模块(管理、存储的工具):对对像管理的软件集合对象及属性:(使用此文件系统的消费者)作用 从系统角度来看,文件系统是对文件存储设备的空间进行组织和备份 负责文件... 查看详情

gfs分布式文件系统简述以及gfs的服务部署案例(代码片段)

GFS一、概述1.1简介1.2特点1.3术语1.4工作流程1.5七种卷分布式卷(默认)条带卷(默认)复制卷(Replicavolume)分布式条带卷(DistributeStripevolume)分布式复制卷(DistributeReplicavolume)条 查看详情

gfs分布式文件系统简述以及gfs的服务部署案例(代码片段)

GFS一、概述1.1简介1.2特点1.3术语1.4工作流程1.5七种卷分布式卷(默认)条带卷(默认)复制卷(Replicavolume)分布式条带卷(DistributeStripevolume)分布式复制卷(DistributeReplicavolume)条 查看详情

(❤❤❤)gfs分布式文件系统理论+部署(❤❤❤)(代码片段)

...一命名空间④弹性卷管理⑤基于标准协议1.3、MFS(传统的分布式文件系统)1.4、GFS二、GlusterFS术语介绍①Brick(存储块)②Volume(逻辑卷)③FUSE④VFS⑤Glusterd( 查看详情

(❤❤❤)gfs分布式文件系统理论+部署(❤❤❤)(代码片段)

...一命名空间④弹性卷管理⑤基于标准协议1.3、MFS(传统的分布式文件系统)1.4、GFS二、GlusterFS术语介绍①Brick(存储块)②Volume(逻辑卷)③FUSE④VFS⑤Glusterd( 查看详情

gfs分布式文件系统从入门到实践(代码片段)

GFS分布式文件系统一、GlusterFS概述1.1GlusterFS简介1.2GlusterFS的特点二、GlusterFS术语介绍2.1Brick(存储块)2.2Volume(逻辑卷)2.3FUSE2.4VFS2.5Glusterd(后台管理进程)三、理解GlusterFS工作流程四、理解弹性HASH算法4.1 查看详情

gfs分布式文件系统(代码片段)

目录一.GlusterFS概述1.GlusterFS简介2.GlusterFS特点3.GlusterFS术语4.模块化堆栈式架构5.GlusterFS的工作流程6.弹性HASH算法7.GlusterFs的卷类型二.部署GlusterFS群集1.准备环境(所有node节点上操作)①添加硬盘,关闭防火墙,修改所有node节... 查看详情

gfs磁盘分布文件系统(代码片段)

...任池上(在node1节点上操作即可)5.创建卷dis-volume分布式卷node1(/data/sdb1)、node2(/data/sdb1)stripe-volume条带卷node1(/data/sdc1)、node2(/data/sdc1)rep-volume复制 查看详情

gfs磁盘分布文件系统(代码片段)

...任池上(在node1节点上操作即可)5.创建卷dis-volume分布式卷node1(/data/sdb1)、node2(/data/sdb1)stripe-volume条带卷node1(/data/sdc1)、node2(/data/sdc1)rep-volume复制 查看详情

gfs分布式文件系统(理论+实验+故障模拟)(代码片段)

...概述1.2GFS特点1.3GFS术语1.4GFS构成与架构二、GFS的卷类型2.1分布式卷2.2条带卷2.3复制卷2.4分布式条带卷2.5分布式复制卷三、GFS工作原理(工作流程)四、弹性HASH算法五、GFS群集部署5.1部署环境5.2脚本批量格式化创建(... 查看详情