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
(2)创建条带卷
指定类型为stripe,数值为2,且后面跟了2个Brick Server, 所以创建的是条带卷。
gluster volume create stripe-volume stripe 2 node01:/data/sdc1 node02:/data/sdc1 force gluster volume start stripe-volume gluster volume info stripe-volume
(3) 创建复制卷
指定类型为replica, 数值为2,且后面跟了2个Brick Server, 所以创建的是复制卷。
gluster volume create rep-volume replica 2 node03:/data/sdb1 node04:/data/sdb1 force gluster volume start rep-volume gluster volume info rep-volume
(4)创建分布式条带卷
指定类型为stripe, 数值为2,而且后面跟了4个Brick Server,是2的两倍,所以创建的是分布式条带卷。
gluster volume create dis-stripe stripe 2 node01:/data/sdd1 node02:/data/sdd1 node03: /data/sdd1 node04:/data/sdd1 force gluster volume start dis-stripel gluster volume info dis-stripe
(5)创建分布式复制卷
指定类型为replica, 数值为2,而且后面跟了4个Brick Server, 是2的两倍,所以创建的是分布式复制卷。
gluster volume create dis-rep replica 2 node01:/data/sde1 node02:/data/sde1 node03:/data/sde1 node04:/data/sde1 force gluster volume start dis-rep gluster volume info dis-rep gluster volume list
5.Gluster客户端
(1)安装客户端软件
cd /etc/yum.repos.d/ mkdir repo.bak mv *.repo repo.bak vim glfs.repo [glfs] name=glfs baseurl=file:/L Lopt /gfsrepe : gpgcheck=0 enabled=1 yum clean all && yum makecache yum -y install glusterfs-fuse glusterfs
(2)创建挂载目录
mkdir -p /test/{dis,stripe,rep,dis_stripe,dis_rep} ls /test
(3)配置/etc/hosts 文件
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
(4)挂载Gluster 文件系统
1)临时挂载
mount.glusterfs node01:dis-volume /test/dis mount.glusterfs node01:stripe-volume /test/stripe mount.glusterfs node01:rep-volume /test/rep mount.glusterfs node01:dis-stripe /test/dis_stripe mount.glusterfs node01:dis-rep /test/dis_rep df -Th
2)永久挂载
vim /etc/ fstab node01:dis-volume /test/dis glusterfs defaults,_netdev 0 0 node01:stripe-volume /test/stripe glusterfs defaults,_netdev 0 0 node01:rep-volune /test/rep glusterfs defaults,_netdev 0 0 node01:dis-stripe /test/dis_stripe glusterfs defaults,_netdev 0 0 node01:dis-rep /test/dis_rep glusterfs defaults,_netdev 0 0
6.测试Gluster 文件系统
(1)卷中写入文件,客户端操作
cd /opt dd if=/dev/zero of=/opt/demo1.log bs=1M count=20 dd if=/dev/zero of=/opt/demo2.log bs=1M count=20 dd if=/dev/zero of=/opt/demo3.log bs=1M count=20 dd if=/dev/zero of=/opt/demo4.log bs=1M count=20 dd if=/dev/zero of=/opt/demo5.log bs=1M count=20 ls -1h /opt
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
0 0
### ![](https://i-blog.csdnimg.cn/blog_migrate/0b855a2929ca8433ce05fc8e0af0fb47.png) ### 6.测试Gluster 文件系统 #### (1)卷中写入文件,客户端操作
cd /opt
dd if=/dev/zero of=/opt/demo1.log bs=1M count=20
dd if=/dev/zero of=/opt/demo2.log bs=1M count=20
dd if=/dev/zero of=/opt/demo3.log bs=1M count=20
dd if=/dev/zero of=/opt/demo4.log bs=1M count=20
dd if=/dev/zero of=/opt/demo5.log bs=1M count=20ls -1h /opt
[外链图片转存中…(img-rUFd0BzQ-1714818761593)]
[外链图片转存中…(img-qWl2jidr-1714818761593)]
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!