GFS分布式文件系统

GFS分布式文件系统

gfs glusterFS 开源的分布式的文件系统

存储服务器 客户端 以及网络(NFS/samba)网关

传统式(老的)分布式元服务系统,元服务器保存存储节点的目录树信息

一旦元服务器故障,所有的存储节点全部失效。

现在gfs取消了元服务器机制 ,数据横向扩展能力更强。可靠性更强。存储效率更高。

工作性质: raid作区分。磁盘几余整列,本机的磁盘几余

GFS:是把多个不同服务器上的不同硬盘组合起来,形成一个卷(基于网络的虚拟磁盘),实现文件系统冗余(核心)

GFS特点:

1、扩展性更强,高性能

2、高可用,可以自动对文件进行复制。确保数据总是可以访问。硬件故障也可以正常访问。

3、全局统一的命名空间,所有的节点都在一个分支的管理之下。客户端访问节点即可。

4、弹性卷,类似于LVM,不同硬盘上的的不同分区,组成一个逻辑上的硬盘。

不同的服务器上的不同硬盘分区,组成一个卷。可以动态扩容。

5、基于标准协议,GFS存储服务支持:NFS,FTP HTTP 以及GFS协议。应用程序可以直接使用数据,不而要任何修改。

GFS组件和术语

|----------------------|---------------------------------------------------------------|
| BRICK(存储块) | 存储服务器提供的用于物理存储的专用分区,GFS的基本储存单元,也是对外提供的一个存储目录。 是由服务器和目录的绝对路径组成 |
| volume逻辑卷 | 一个逻辑卷就是一组brick的集合。类似于LVM,我们管理GFS就是管理这些卷。 |
| FUSE:GFS 的内核模块 | 允许用户创建自己的文件系统。 |
| VFS接口 | 内核空间对用户提供的访问磁盘的接口。虚拟端口。 |
| 服务端glusterd(在后台管理进程) | 服务端在每个节点上都要运行。glusterd(在后台管理进程) |

工作流程:


客户端--写入-->VFS---->FUSE--/dev/fuse-->GFS的客户端---->GFS的服务端---->VFS(2)---->xfs、ext

复制代码
/dev/fuse 
FUSE判断数据是在GFS的挂载目录写入的,通过/dev/fuse转给GFS客户端来处理

GFS的客户端
根据用户配置,把数据条带化/镜像化处理再通过网络转发GFS服务端

GFS的服务端
接收到数据之后,通过VFS写入到文件系统之中

VFS(2)
和不同服务器上的不同节点通信,实现数据传输

xfs、ext
不同服务器上的不同硬盘分区

分布式卷的特点: 文件数据通过HASH算法分布到设置的所有BRICK SERVER上,GFS的默认卷。属于raid0,没有容错机制。

GFS的卷类型:

分布式卷---raid0
条带卷(没了)
复制卷(镜像化)---raid1
分布式复制卷(工作中用)---raid10

分布式卷的特点

文件数据通过HASH的算法分布式布到设置的所有BRICK SERVER上。GFS的默认卷。属于

在分布式卷模式下,没有对文件进行分块,直接存储在某个server的节点上。存取效率也没有提高。直接使用本地文件系统进行存储

分布式卷的特点: 文件数据通过HASH算法分布到设置的所有BRICK SERVER上,GFS的默认卷。属于raid0,没有容错机制。

复制卷

类似于raid 1,文件会同步在多个brick server上。读性能上升,写性能稍差。

坏一个节点不影响数据,但要保存副本,磁盘利用率50%

分布式复制卷

两两复制,文件会在组内同步。不同的组之间数据未必同步

实验

声明

node1 node1:192.168.10.10
node2 node2:192.168.10.50
node3 node3:192.168.10.100
node4 node4:192.168.10.101
客户端: 任选 192.168.10.80

/dev/sdb1 /data/sbd1

/dev/sdc1 /data/sdc1

/dev/sdd1 /data/sdd1

每台node服务器

############################################################

复制代码
systemctl stop firewalld
setenforce 0
脚本分区
*********************************************

#!/bin/bash
NEWDEV=`ls /dev/sd* | grep -o 'sd[b-z]' | uniq`
for VAR in $NEWDEV
do
   echo -e "n\np\n\n\n\nw\n" | fdisk /dev/$VAR &> /dev/null
   mkfs.xfs /dev/${VAR}"1" &> /dev/null
   mkdir -p /data/${VAR}"1" &> /dev/null
   echo "/dev/${VAR}"1" /data/${VAR}"1" xfs defaults 0 0" >> /etc/fstab
done
mount -a &> /dev/null

*********************************************

出现加载分区
alias scan='echo "- - -" > /sys/class/scsi_host/host0/scan;echo "- - -" > /sys/class/scsi_host/host1/scan;echo "- - -" > /sys/class/scsi_host/host2/scan'
修改主机名 node(1-4)
复制代码
hostnamectl set-hostname node1、2、3、4
做映射(在所有的主机)
复制代码
vim /etc/hosts
******************************

192.168.10.50 node1
192.168.10.100 node2
192.168.10.101 node3
192.168.10.102 node4

******************************

yum -y install centos-release-gluster
yum -y install glusterfs glusterfs-server glusterfs-fuse

出现操作以下命令

在cd /etc/yum.repos.d/下创建backup

将所有的文件迁移到backup下,除CentOS-Gluster-9.repo外

复制代码
yum clean all & yum makecache

############################################################

在客户端安装组件
复制代码
systemctl stop firewalld
setenforce 0

yum -y install glusterfs glusterfs-fuse

在hosts做映射
挂载 mount.glusterfs nodel:fenbushi /test/fenbushi
创建分布卷(服务端node1)
复制代码
gluster volume create 节点名 node1:/data/sdb1 node2:/data/sdb1 force
    gluster volume create 创建新卷,默认就是分布式卷
    fenbushi 卷名,唯一不可重复
    node1:/data/sdb1 node2:/data/sdb1 挂载节点
    force 强制挂载
创建复制卷(服务端node1)
复制代码
创建复制卷
gluster volume create fuzhijuan replica 2 node2:/data/sdcl node3:/data/sdcl

replica 2    设置复制策略,2是两两复制,要小于等于存储节点,不能比存储节点多,否则,创建失败。
创建分布复制卷(服务端node1)
复制代码
gluster volume create fenbufuzhishi replica 2 node1:/data/sdd1 node2:/data/sdd1 node3:/data/sdd1 node4:/data/sdd1 force

replica 2 指定2个,给四个是分布式复制

添加节点    gluster peer probe node(1-4)

查看状态    gluster peer status

打开分布式  gluster volume start fenbushi 

停止分布式  gluster volume stop fenbushi

删除分布式  gluster volume stop fenbushi

停节点      gluster peer detach nodel 

指定主机访问控制

复制代码
GFS分布式存储系统
1、分布式卷
2、分布式复制卷 (重点)
工作性质: raid作区分。磁盘几余整列,本机的磁盘几余
GFS:是把多个不同服务器上的不同硬盘组合起来,形成一个卷(基于网络的虚拟磁盘),实现文件系统冗余

拒绝:gluster volume set fenbushi auth.reject 192.168.10.10
允许:gluster volume set fenbushi auth.allow  192.168.10.10
     gluster volume set fenbushi auth.allow 192.168.10.10
#允许所有网段可以访问这个卷
相关推荐
姜太小白6 小时前
【MySQL】 索引优化实战:解决 WHERE 等值 + IS NULL 查询,TEXT 字段报错 1167 的完整指南
数据库·mysql
窝子面6 小时前
手搓最简前后端协作-node
javascript·数据库
吳所畏惧7 小时前
宝塔面板Redis密码修改指南:SSH命令修改 vs 面板UI界面修改,哪个更靠谱?
运维·服务器·数据库·redis·缓存·ssh
DFT计算杂谈7 小时前
无 Root 权限在 Tesla K80 零门槛部署 DeepSeek 大模型
linux·服务器·网络·数据库·机器学习
HPFBoy7 小时前
log4net 数据库存日志正确配置
数据库
爱刷碗的苏泓舒7 小时前
PPP-AR 中的参考星选取:数学原理、评价指标与切换处理
算法·gnss·模糊度固定·ppp-ar·星间单差·参考星·卫星端偏差
liuxiaowei37 小时前
【绝版教程】新版MySQL DBA高级实战进阶班 MySQL8.0 姜承尧-腾讯数据库总监
数据库·mysql·dba
维天说8 小时前
CLI-Switch 2026年3月版历史设计:Hook、TTY 隔离与 JSON 状态
java·服务器·json
破碎的南瓜8 小时前
sqli--sql注入过关笔记(1,2,3,4,5,9)
数据库·笔记·sql