
2024年最新GFS分布式文件系统_mount glusterfs,2024年最新十年开发经验大数据开发架构师
1)开源的分布式文件系统2)由存储服务器、客户端以及NFS/Samba存储网关组成3)无元数据服务器GlusterFs(分布式文件系统)FS:文件系统文件系统组成:1)文件系统接口2)对对像管理的软件集合3)对象及属性文件系统作用从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
2.安装、启动GlusterFS。(所有node节点上操作)
一、GlusterFS
1.GlusterFS简介
1)开源的分布式文件系统
2)由存储服务器、客户端以及NFS/Samba存储网关组成
3)无元数据服务器GlusterFs(分布式文件系统)
FS:文件系统文件系统组成:
1)文件系统接口
2)对对像管理的软件集合
3)对象及属性文件系统作用
从系统角度来看,文件系统是对文件存储设备的空间进行组织和分配,负责文件存储并对存入的文件进行保护和检索的系统。
负责为用户建立文件,存入、读出、修改、转储文件,控制文件的存取文件系统的挂载使用。
除根文件系统以外的文件系统创建后要使用需要先挂载至挂载点后才可以被访问,挂载点即分区设备文件关联的某个目录文件,类比: NES。元数据服务器的作用:存储元数据,帮用户定位文件的位置、索引等信息
2.GlusterFS特点
1)扩展性和高性能
2)高可用性
3)全局统一命名空间
4)弹性卷管理
5)基于标准协议3.GlusterFS术语
1)Brick:存储服务器:实际存储用户数据的服务器
2)Volume: 本地文件系统的“分区”
3)FUSE:用户空间的文件系统(类比EXT4),“这是一个伪文件系统”,FUSE (用户空间的文件系统)伪文件系统用户端的交互模块。
4)VFS
5)GlusterdVES (虚拟端口) :内核态的虚拟文件系统,用户是先提交请求交给VES然后VFS交给FUSE再交给GFS客户端,最后由客户端交给远端的存储。
以本地文件系统为例,用户想要读写一个文件,会借助于EXT4文件系统,然后把数据写在磁盘上,而如果是远端的GFS,客户端的请求则应该交给FUSE(为文件系统),就可以实现跨界点存储在GFS上。
使用GFS会使用到以上的虚拟文件系统
glusterd (服务)是运行在存储节点的进程
客户端运行的是gluster client
整个GFS之间的交互是由Gluster client和glusterd完成的 (GFS使用过程)。4.模块化堆栈式架构
1)模块化、堆栈式的架构
2)通过对模块的组合,实现复杂的功能GFS的架构
存储服务器,存储节点信息GFS 提供了一个全局统一命名空间
此命名空间提供了一个API,此API 是用户访问GFS服务器中数据的唯一入口。
弹性卷管理: RAIN (基于容错、读写性能等技术)可以在分布式文件系统之上可以使用RAID卷的集中管理。
基于标准协议:客户端和存储服务器交互需要借助网络,而相关的网络协议包括TCP/IP协议。模块化:
类似linux编译安装
很多功能都可以做定制的,通常都是通过软件开发的方式封装为模块,按需使用/不适用GlusterFs
把功能封装为一个个模块,通过加载/调用/启用的方式就可以对应的功能。
堆栈式架构设计:
通过对模块不同功能的组合米实现复杂功能VES:虚拟的内核文件系统,通过VES的API接受请求、处理请求(根据请求,加载模块)
I/O cache:I/O缓存
read ahead :内核文件预读
distribute/stripe: 分布式、条带卷通过加载模块,然后联合多个client端,组成所需要的分布式卷、条带卷等
gige: 千兆网/千兆接口
TCP/IP :网络协议InfiniBand
网络协议,与TCP/IP相比,TCP/IP具有转发丢失数据包的特性,基于此通讯协议可能导致通讯变慢,而IB使用基于信任的、流控制的机制来确保连接完整性,数据包丢失几率小。
RDMA:负责数据传输,有一种数据传输协议,功能:为了解决传输中客户端与服务器端数据处理的延迟。
POSIX:可移植操作系统接口,主要解决不同操作系统间的移植性,然后再转换为逻辑存储(EXT4 +BRICK)。
可以提高GFS的工作效率
Application:客户端或应用程序通过GlusterFSync的挂载点访问数据。
VES: linux 系统内核通过VFS API收到请求并处理
FUSE : VES 将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端。
GlusterFS Client :通过网络将数据传递至远端的GlusterFS Server,并且写入到服务器存储设备上。
read ahead :内核文件预读
工作流程:
客户端在本地发出读写请求,然后交由VES的API接受请求,接受请求后会交给FUSE (内核伪文件系统)FUSE可以模拟操作系统,所以可以对文件系统进行转存,转存的设备位置为: /dev/fuse (用于传输的设备-虚拟设备文件)交给GFS客户端,client 会根据配置文件对数据进行处理,然后再通过TCP网络发送到GFS服务端,并且将数据写到服务器存储设备上。5.GlusterFS的卷类型
1)分布式卷
2)条带卷
3)复制卷
4)分布式条带卷
5)分布式复制卷
6)条带复制卷
7)分布式条带复制卷(1)分布式卷
1)没有对文件进行分块处理
2)通过扩展文件属性保存HASH值
3)支持的底层文件系统有EXT3、EXT4、ZFS、 XFS等
4)没有分块处理,文件只能存在一个server中,效率不提升分布式卷的特点
1)文件分布在不同的服务器,不具备冗余性
2)更容易和廉价地扩展卷的大小
3)单点故障会造成数据丢失
4)依赖底层的数据保护(2)条带卷
1)根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点
2)存储大文件时,性能尤为突出
3)不具备冗余性,类似Raid0
4)从多个server中同时读取文件,效率提升特点
1)数据被分割成更小块分布到块服务器群中的不同条带区
2)分布减少了负载且更小的文件加速了存取的速度
3)没有数据冗余创建条带卷
创建了一个名为Stripe-volume的条带卷,文件将被分块轮询的存储在Server1:/dir1和Server2:/dir2两个Brick中。
(3)复制卷
1)同一文件保存一份或多份副本
2)因为要保存副本,所以磁盘利用率较低
3)若多个节点上的存储空间不一致,将按照木桶效应取最低节点的容量作为该卷的总容量特点
1)卷中所有的服务器均保存一个完整的副本
2)卷的副本数量可由客户创建的时候决定
3)至少有两个块服务器或更多服务器
4)具备冗余性创建复制卷
创建名为rep-volume的复制卷,文件将同时存储两个副本,分别在Server1 :/dir1和Server2:/dir2两个Brick中
(4)分布式条带卷
1)兼顾分布式卷和条带卷的功能
2)主要用于大文件访问处理
3)至少最少需要4台服务器(5)分布式复制卷
1)兼顾分布式卷和复制卷的功能
2)用于需要冗余的情况
3)创建分布式复制卷
4)创建名为dis-rep的分布式条带卷,配置分布式复制卷时,卷中Brick所包含的存储服务器数必须是条带数的倍数(>=2倍)条带卷(默认):类似RAID0,文件被分成数据块并以轮询的方式分布到多个BrickServier上,文件存储以数据块为单位,支持大文件存储,文件越大,读取效率越高。
复制卷(Replica volume) :将文件同步到多个Brick上,使其具备多个文件副本, 属于文件级RAID
具有容错能力。因为数据分散在多个Brick 中,所以读性能得到很大提升,但写性能下降。分布式条带卷(Distribute Stripe volume) : Brick Server 数量是条带数(数据块分布的Brick
数量)的倍数,兼具分布式卷和条带卷的特点。分布式复制卷(Distribute Replica volume) : Brick Server数量是镜像数(数据副本
数量)的倍数,兼具分布式卷和复制卷的特点。条带复制卷(stripe Replica volume) :类似RAID 10,同时具有条带卷和复制卷的特点。
分布式条带复制卷(Distribute Stripe Replicavolume) :三种基本卷的复合卷,通常用于类Map Reduce 应用。
二、GlusterFS 集群
Node1节点: node1/192.168.22.126
磁盘 挂载点 /dev/sdb1 /data/sdb1 /dev/sdc1 /data/sdc1 /dev/sdd1 /data/sdd1 /dev/sde1 /data/sde1
Node2节点: node2/192.168.22.168
磁盘 挂载点 /dev/sdb1 /data/sdb1 /dev/sdc1 /data/sdc1 /dev/sdd1 /data/sdd1 /dev/sde1 /data/sde1
Node3节点: node1/192.168.22.196
磁盘 挂载点 /dev/sdb1 /data/sdb1 /dev/sdc1 /data/sdc1 /dev/sdd1 /data/sdd1 /dev/sde1 /data/sde1
Node4节点: node1/192.168.22.206
磁盘 挂载点 /dev/sdb1 /data/sdb1 /dev/sdc1 /data/sdc1 /dev/sdd1 /data/sdd1 /dev/sde1 /data/sde1
客户端节点: 192.168.22.186
1.准备环境(所有node节点上操作)
(1)关闭防火墙
systemctl stop firewalld systemctl disable firewalld setenforce 0
(2)磁盘分区,并挂载
vim /opt/fdisk.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]) 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/ ./fdisk.sh 使用df-hT确认是否全部分区挂载完成
(3)配置/etc/hosts文件
以Node1节点为例:
echo "192.168.22.126 node01" >> /etc/hosts echo "192.168.22.168 node02" >> /etc/hosts echo "192.168.22.196 node03" >> /etc/hosts echo "192.168.22.206 node04" >> /etc/hosts
![]()
2.安装、启动GlusterFS。(所有node节点上操作)
cd /etc/yum.repos.d/ mkdir repo.bak mv *.repo repo.bak unzip gfsrepo.gzip vim glfs.repo [glfs] name=glfs baseurl=file:///opt/gfsrepeo gpgcheck=0 enabled=1 yum clean all && yum makecache yum -y install centos-release-gluster 如采用官方yum 源安装,可以直接指向互联网仓库 yum -y install glusterfs-server glusterfs-rdma glusterfs glusterfs-fuse systemctl start glusterd.service systemctl enable glusterd.service systemctl status glusterd.service
安装时出现以下错误,现在装的rpm版本比repo源里的版本高。先查询后,找到名字在卸载
先安装glusterfs-server glusterfs-rdma
![]()
![]()
添加DNS,进行时间同步
ntpdate ntp1.aliyun.com
3.添加节点到存储信任池中(在node1 节点上操作)
只要在一台Node节点上添加其它节点即可
gluster peer probe node01 gluster peer probe node02 gluster peer probe node03 gluster peer probe node04
在每个Node节点上查看群集状态
gluster peer status
4.创建卷
根据规划创建
卷名称 卷类型 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) (1)创建分布式卷
1)创建分布式卷,没有指定类型,默认创建的是分布式卷
gluster volume create dis-volume node1: /data/sdb1 node2:/data/sdb1 force
2)查看卷列表
gluster volume list
3)启动新建分布式卷
gluster volume start dis-volume
4)查看创建分布式卷信息
gluster volume info dis-volume
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
| 分布式复制卷 | node1 (/data/sde1)、node2 (/data/sde1)、node3(/data/sde1)、 node4 (/data/sde1) |
(1)创建分布式卷
1)创建分布式卷,没有指定类型,默认创建的是分布式卷
gluster volume create dis-volume node1: /data/sdb1 node2:/data/sdb1 force
2)查看卷列表
gluster volume list
3)启动新建分布式卷
gluster volume start dis-volume
4)查看创建分布式卷信息
gluster volume info dis-volume
[外链图片转存中…(img-TgvJY17K-1715297123388)]
[外链图片转存中…(img-J3Ld1W6c-1715297123388)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
更多推荐
所有评论(0)