GFS分布式文件系统

介绍

GlusterFS简介

开源的分布式文件系统
由存储服务器、客户端以及NFS/Samba 存储网关组成
无元数据服务器

GlusterFS特点

扩展性和高性能
高可用性
全局统一命名空间
弹性卷管理
基于标准协议

GlusterFS术语

Brick
Volume
FUSE
VFS
Glusterd

GlusterFS架构

模块化、堆栈式的架构
通过对模块的组合,实现复杂的功能

GlusterFS工作原理

GlusterFS工作流程

客户端或应用程序通过GlusterFS的挂载点访问数据
linux系统内核通过VFS API收到请求并处理
VFS将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端
GlusterFS client收到数据后,client根据配置文件的配置对数据进行处理
通过网络将数据传递至远端的GlusterFS Server,并且将数据写入到服务器存储设备上

弹性HASH算法

通过HASH算法得到一个32位的整数
划分为N个连续的子空间,每个空间对应一个Brick(存储块)
弹性HASH算法的优点
保证数据平均分布在每一个Brick中
解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈

GlusterFS的卷类型

■ 分布式卷
■ 条带卷
■ 复制卷
■ 分布式条带卷
■ 分布式复制卷
■ 条带复制卷
■ 分布式条带复制卷

分布式卷

没有对文件进行分块处理
通过扩展文件属性保存HASH值
支持的底层文件系统有EXT3、EXT4、ZFS、XFS等
在这里插入图片描述
分布式卷的特点:
文件分布在不同的服务器,不具备冗余性
更容易和廉价地扩展卷的大小
单点故障会造成数据丢失
依赖底层的数据保护

条带卷

根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点
存储大文件时,性能尤为突出
不具备冗余性,类似Raid0
在这里插入图片描述
条带卷特点:
数据被分割成更小块分布到块服务器群中的不同条带区
分布减少了负载且更小的文件加速了存取的速度
没有数据冗余

复制卷

同一文件保存一份或多分副本
因为要保存副本,所以磁盘利用率较低
若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为该卷的总容量
在这里插入图片描述

分布式条带卷

兼顾分布式卷和条带卷的功能
主要用于大文件访问处理
至少最少需要4台服务器
在这里插入图片描述

分布式复制卷

兼顾分布式卷和复制卷的功能
用于需要冗余的情况
在这里插入图片描述

GlusterFS部署

这边用到四台centos7.4版本机器,每台机器原本一块硬盘(装机的时候都装的),另外每台机器再加四块硬盘。
IP地址分别为:20.0.0.10
20.0.0.20
20.0.0.30
20.0.0.40
我们要在每台节点都设置主机名,方便管理,并设置好映射关系(4个节点都做)
下面只做一台的演示:

[root@localhost ~]# hostnamectl set-hostname node1
[root@localhost ~]# su
[root@node1 ~]# vim /etc/hosts  ##做映射
20.0.0.10 node1
20.0.0.20 node2
20.0.0.30 node3
20.0.0.40 node4

配置yum源,用线网源也行,我这边用的是本地有的源放在/abc目录下

[root@node1 ~]# cd /etc/yum.repos.d/
[root@node1 yum.repos.d]# mv C* backup/
[root@node1 yum.repos.d]# vim GLFS.repo
[GLFS]
name=glfs
baseurl=file:///abc/glfs
gpgcheck=0
enabled=1

然后去做磁盘分割,一台一台搞的话太麻烦了,我这边用的shell脚本。每台机器刷一下就行了。

#!/bin/bash
for k in $(ls /dev/sd[b-z])
do
  echo -e "n\np\n\n\n\nw\n" |fdisk $V
  mkfs.xfs -i size=512 ${k}1 &>/dev/null
  sleep 1
  M=$(echo "$V" |awk -F "/" '{print $3}')
  mkdir -p /data/${M}1 &>/dev/null
  echo -e "${k}1 /data/${M}1 xfs defaults 0 0\n" >>/etc/fstab
  mount -a &>/dev/null
done

安装gluster服务器,并设时间同步(4个节点都做)

[root@node1 ~]# yum -y install glusterfs glusterfs-server glusterfs-fuse glusterfs-rdma

[root@node1 ~]# systemctl enable glusterd
[root@node1 ~]# systemctl start glusterd
[root@node1 ~]# ntpdate ntp1.aliyun.com

添加另外三台到存储池(只需要在其中一个节点做即可,另外三个自动匹配)

[root@node1 ~]# gluster peer probe node2   
peer probe: success. 
[root@node1 ~]# gluster peer probe node3
peer probe: success. 
[root@node1 ~]# gluster peer probe node4
peer probe: success. 
[root@node1 ~]# gluster peer status       ##查看分布式存储邻居状态,会显示其他三个节点
Number of Peers: 3      ##成员为3

创建卷

创建分布式卷

创建一个名为dis-vol的分布式卷,文件将根据HASH分布在node1:/data/sdb1和node2:/data/sdb1中

[root@node1 ~]# gluster volume create dis-vol node1:/data/sdb1 node2:/data/sdb1 force
[root@node1 ~]# gluster volume start dis-vol

创建条带卷

创建一个名为Stripe-vol的条带卷,文件将被分块轮询的存储在node1:/data/sdc1和node1:/data/sdc2两个Brick中

[root@node1 ~]# gluster volume create stripe-vol stripe 2 node1:/data/sdc1 node2:/data/sdc1 force
[root@node1 ~]# gluster volume start stripe-vol

创建复制卷

创建名为rep-vol的复制卷,文件将同时存储两个副本,分别在node3:/data/sdb1 node4:/data/sdb1两个Brick中

[root@node1 ~]# gluster volume create rep-vol replica 2 node3:/data/sdb1 node4:/data/sdb1 force
[root@node1 ~]# gluster volume start rep-vol

创建分布式条带卷

创建名为dis-stripe的分布式条带卷,配置分布式的条带卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)

[root@node1 ~]# gluster volume create dis-stripe stripe 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force
[root@node1 ~]# gluster volume start dis-stripe

创建分布式复制卷

创建名为dis-rep的分布式复制卷,配置分布式复制卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)

[root@node1 ~]# gluster volume create dis-rep replica 2 node1:/data/sde1 node2:/data/sde1 node3:/data/sde1 node4:/data/sde1 force
[root@node1 ~]# gluster volume start dis-rep

删除卷

要先停止才能删除

[root@node1 ~]# gluster volume stop 卷名
[root@node1 ~]# gluster volume delete 卷名
CCF大数据与计算智能大赛-面向电信行业存量用户的智能套餐个性化匹配模型联通赛-复赛第二名-【多分类,embedding】.zip项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值