文章目录
一、GlusterFS 概述
1.1、GlusterFS 简介
开源的分布式文件系统
有存储服务器、客户端以及NFS/Samba 存储网关组成
无元数据服务器
1.2、GlusterFS 特点
扩展性和高性能
高可用性
全局统一命名空间
弹性卷管理
基于标准协议
1.3、常用术语
Brick:GFS中的存储单元,通过是一个受信存储池中的服务器的一个导出目录。可以通过主机名和目录名来标识,如’SERVER:EXPORT’
Volume:卷
FUSE:内核文件系统,Filesystem Userspace是一个可加载的内核模块,其支持非特权用户创建自己的文件系统而不需要修改内核代码。通过在用户空间运行文件系统的代码通过FUSE代码与内核进行桥接。
VFS:虚拟文件系统
Glusterd:Gluster management daemon,要在trusted storage pool中所有的服务器上运行。
1.4、GFS 的结构及弹性HASH算法
■ 模块化堆栈式架构
模块化、堆栈式的架构
通过对模块的组合,实现复杂的功能d
■弹性HASH算法
通过HASH算法得到一个32位的整数
划分为N个连续的子空间,每个空间对应一个Brick
弹性HASH算法的优点
保证数据平均分布在每一个Brick中
解决了对元数据服务器的依赖,进而解决了单点故障以及访问瓶颈
二、GlusterFS 工作原理
1、客户端或应用程序通过GlusterFS的挂载点访问数据
2、linux系统内核通过VFS API收到请求并处理
3、VFS将数据递交给FUSE内核文件系统,fuse文件系统则是将数据通过/dev/fuse设备文件递交给了GlusterFS client端
4、GlusterFS client收到数据后,client根据配置文件的配置对数据进行处理
5、通过网络将数据传递至远端的GlusterFS Server,并且将数据写入到服务器存储设备上
三、GlusterFS 的卷类型
分布式卷
条带卷
复制卷
分布式条带卷
分布式复制卷
条带复制卷
分布式条带复制卷
3.1、分布式卷
没有对文件进行分块处理
通过扩展文件属性保存HASH值
支持的底层文件系统有EXT3、EXT4、ZFS、XFS等
分布式卷的特点:
文件分布在不同的服务器,不具备冗余性
更容易和廉价地扩展卷的大小
单点故障会造成数据丢失
依赖底层的数据保护
创建分布式卷命令:
gluster volume create dis-volume server1:/dir1 server2:/dir2
3.2、条带卷
根据偏移量将文件分成N块(N个条带节点),轮询的存储在每个Brick Server节点
存储大文件时,性能尤为突出
不具备冗余性,类似Raid0
条带卷的特点:
数据被分割成更小块分布到块服务器群中的不同条带区
分布减少了负载且更小的文件加速了存取的速度
没有数据冗余
创建条带卷命令:
gluster volume create stripe-volume stripe 2 transport tcp server1:/dir1 server2:/dir2
3.3、复制卷
同一文件保存一份或多分副本
复制模式因为要保存副本,所以磁盘利用率较低
多个节点上的存储空间不一致,那么将按照木桶效应取最低节点的容量作为该卷的总容量
复制卷的特点:
卷中所有的服务器均保存一个完整的副本
卷的副本数量可由客户创建的时候决定
至少由两个块服务器或更多服务器
具备冗余性
创建复制卷命令:
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
3.4、分布式条带卷
兼顾分布式卷和条带卷的功能
主要用于大文件访问处理
至少最少需要4台服务器
创建分布式条带卷的命令:
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
3.5、分布式复制卷
兼顾分布式卷和复制卷的功能
用于需要冗余的情况下
创建分布式复制卷的命令:
gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2
3.6、命令补充
删除卷时,信任池中不能有主机处于宕机状态,否则删除不成功
gluster volume stop dis-vol
yes
gluster volume delete dis-vol
#######访问控制##########
//仅拒绝
gluster volume set dis-vol auth.reject 20.0.0.25
//仅允许
gluster volume set dis-vol auth.allow 20.0.0.25
四、GlusterFS 平台部署
4.1、实验环境
VMware软件
一台centos7.4虚拟机,IP地址为:20.0.0.21,主机名为:node1,添加4块磁盘,均为20G大小
一台centos7.4虚拟机,IP地址为:20.0.0.22,主机名为:node2,添加4块磁盘,均为20G大小
一台centos7.4虚拟机,IP地址为:20.0.0.23,主机名为:node3,添加4块磁盘,均为20G大小
一台centos7.4虚拟机,IP地址为:20.0.0.24,主机名为:node4,添加4块磁盘,均为20G大小
一台centos7.4虚拟机,IP地址为:20.0.0.25,主机名为:client,当做测试机使用
防火墙,内核防护关闭
4.2、开局配置
所有的节点node都操作下面这些步骤,这里以node1:20.0.0.21为列
[root@node1 ~]# vi /etc/hosts
20.0.0.21 node1
20.0.0.22 node2
20.0.0.23 node3
20.0.0.24 node4
更改主机名
hostnamectl set-hostname node1
hostnamectl set-hostname node2
hostnamectl set-hostname node3
hostnamectl set-hostname node4
创建自动格式化,自动永久挂载脚本