GlusterFS分布式文件系统群集

论坛 期权论坛 脚本     
匿名技术用户   2021-1-7 01:29   1587   0

GlusterFS介绍

GlusterFS是一个开源的分布式文件系统,同时也是Scale-Out存储解决方案Gluster的核心,在存储方面具有横向扩展能力,通过扩展不同的节点可以支持数PB级别的存储容量。

GlusterFS借助TCP/IP或lnfiniBand RDMA网络将分散的存储资源汇聚在一起,统一提供存储服务,并使用单一全局命名空间来管理数据。

GlusterFS基于可堆叠的用户空间以及无元的设计,可为各种不同的数据负载提供优异的性能。

GlusterFS服务群集的组成:

主要由存储服务器(Brick Server)、客户端(NFS/Samba存储网关)。GlusterFS架构中最大的特点是没有元数据服务器组件,这有助于提升整个系统的性能、可靠性和稳定性。传统的分布式文件系统大多通过元服务器来存储元数据,元数据包含存储节点上的目录信息,目录结构等。这样的设计在浏览目录时效率非常高,但是也存在风险和缺陷,如单点故障,一旦元数据服务器出现故障,即使节点具备再高的沉余性,整个存储系统也将崩溃,而GlusterFS分布式文件系统是基于无元服务器的设计,数据横向扩展能力强,具备较高的可靠性以及存储效率。

GlusterFS的设计结构:

GlusterFS的特点:

扩展性和高性能:GlusterFS利用双重特点来提高容量存储解决方案。

Scale-Out架构通过增加存储节点的方式来提供高存储容量和性能(磁盘、计算和I/O资源都可以独立增加)支持10GbE和InfinitiBand等高速网络互连。

Gluster弹性哈希(Elastic Hash)解决了GlusterFS对元数据服务器的依赖,GlusterFS采用弹性哈希算法在存储池中定位数据,放弃了传统的通过数据服务器定位数据。

高可用性:GlusterFS通过配置某些类型的存储卷,可以对文件进行自动复制,即使某个节点出现故障,也不影响数据的访问。当数据出现不一致时,自动修复功能能够把数据恢复到正确的状态。

全局统一命名空间:全局统一命名空间将所有的存储资源聚合成一个单一的虚拟存储池,对用户和应用屏蔽了物理存储信息。

弹性卷管理:GlusterFS通过将数据存储在逻辑卷中,逻辑卷从逻辑存储池进行独立逻辑划分,逻辑存储池可以在线进行增加和移除,不会导致业务中断。

基于标准协议:Gluster存储服务支持NFS、CIFS、HTTP、FTP、SMB及Gluster原生协议,完全与POSIX标准兼容。现有应用程序不需要做任何修改就可以对Gluster中的数据进行访问,也可以使用专用API进行访问(效率更高),这在公有云环境中部署Gluster时非常有用。

GlusterFS术语:

Brick(存储块)指可信主机池由主机提供的用于物理存储的专用分区,是Gluster中的基本卷。

Volume(逻辑卷)一个逻辑卷是一组Brick的集合。卷是数据存储的逻辑设备,类似于LVM中的逻辑卷。

FUSE(Filesystem inUserspace)是一个内核模块,允许用户创建自己的文件系统,无须修改内核代码。

VFS:内核空间对用户空间提供的访问磁盘的接口。

Glusterd在存储群集中的每个节点上都需要运行。

GlusterFS的工作原理:

  1. 客户端或应用程序通过GlusterFS的挂点访问数据。
  2. Linux系统内核通过VFS API收到请求处理。
  3. VFS将数据传递交给FUSE内核文件系统,并向系统注册一个实际的文件系统FUSE,而FUSE文件系统则是将数据通过/dev/Fuse设备文件传递交给了GlusterFS client端。可以将FUSE文件系统理解为一个代理。
  4. GlusterFS Clinet收到数据后,Client根据配置文件对数据处理进行处理。
  5. 经过GlusterFS Client处理后,通过网络将数据传递至远端的ClusterFS Server并且将数据写入服务器存储设备。

HASH分布图:

通过HASH定位文件:

GlusterFS的卷类型:

分布式卷(Distribute Volume)文件通过HASH算法分布到所有Brick Server上,这种卷是Glusterf的基础;以文件单位根据HASH算法散列到所有Brick Server上,这种卷是Glusterf的基础;以文件单位根据HASH算法散列到不同的Brick,其实只是扩大了磁盘空间,如果有一块磁盘损坏,数据也将丢失,属于文件及的RAID 0,不具有容错能力。

条带卷(Stripe volume)类似RAID0,文件被分为数据块并以轮询的方式分布到多个Brick Server上,文件存储以数据块为单位,支持大文件存储,文件越大,读取效率越高。

复制卷(Replica volume)将文件同步到多个Brick上,使其具备多个文件副本,属于文件级RAID1,具有容错能力,因为数据分散在多个Brick中,所以读性能得到很大提升,但写性能下降。

分布式条带卷(Distribute Stripe volume)Brick Server数量是条带数(数据块分布的Brick数量)的倍数。兼具分布式卷和条带卷的特点。

分布式复制卷(Distribute Replica volume)Brick Server数量是镜像数(数据副本数量)的倍数,兼具分布式卷和复制卷的特点。

条带复制卷(Stripe Replica volume):类似RAID 10,同时具有条带卷和复制卷的特点。

分布式条带服务制卷(Distribute Stripe Replicavolume)三种基本卷的复合卷,通常用于类MapReduce应用。

案列实施:

准备环境:

操作系统为CentOS7

搭建一个GlusterFS群集环境,需要至少四台服务器。并且每台服务器至少四块磁盘。

所有的服务器需要关闭Selinux和防火墙。

配置hosts文件:

在所有节点上修改hosts文件,以便于四个节点的解析。(这里以node1为列)

创建分区并挂载到相应的文件路径下:

这里创建的文件名称是为了便于记忆新添加的磁盘空间大小。

创建分区并格式化创建好的分区:

设置为永久性挂载:

其他的节点以上配置均为相同。

在各节点上安装软件:

  1. 添加节点

在node1上面执行操作,添加node1~node4

添加完毕之后检查一下:

每个节点输出的结果为:“State:Peer in Cluster(Connected)”则表示正常

创建卷:

创建分布式卷:

将node1和node2节点上的e6文件目录挂载的分区创建为分布式分区。

查看创建的结果:

启动分布式分区:

创建条带卷:

将node1和node2上d5分区创建成条带卷。

使用命令查看一下:

指定类型为stripe,数值为2,而且后面跟了2个Brick Server。所以创建的是条带卷

创建复制卷:

启动复制卷:

创建分布式复制卷:

查看创建的分布式复制卷:

启动分布式复制卷:

创建分布式条带卷:

查看分布式条带卷:

启动分布式条带卷:

部署Gluster客户端:

准备环境:需要关闭Selinux和防火墙

安装软件包:

创建挂载目录:

为了便于记忆,我在这里创建的目录也和卷组同名。

(DS代表分布式条带卷;DR代表分布式复制卷)

修改hosts文件:

挂载Gluster文件系统:

………省略部分内容

GlusterFS一些维护命令:

查看卷的名称:

查看所有的卷的信息

查看卷的状态:

停止一个卷

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:7942463
帖子:1588486
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP