什么是GlusterFS共享存储和卷类型
我们将学习Linux中的Gluster File System:
什么是GlusterFS?
GlusterFS支持的卷类型
使用RHEL/CentOS 8安装和配置GlusterFS分布式卷
使用RHEL/CentOS 8安装和配置GlusterFS复制卷
使用RHEL/CentOS 8安装和配置GlusterFS分布式复制卷
什么是GlusterFS
Gluster是一个分布式的横向扩展文件系统,可以根据存储消耗需求快速配置其他存储。
它结合了自动故障转移作为主要功能。所有这些都是在没有集中式元数据服务器的情况下完成的。
GlusterFS软件可以作为几个Linux发行版的预编译软件包提供,但是与大多数自由和开源软件(FOSS)项目一样,我们始终可以下载源代码,自行编译和构建它。
GlusterFS网络文件系统是"无元数据"分布式文件系统,这意味着它没有用于处理文件位置数据的专用元数据服务器。相反,它使用确定性哈希技术来发现文件位置
GlusterFS导出完全兼容POSIX的文件系统,这基本上意味着我们可以从Unix和类似Unix的操作系统(例如Linux)上装载,读取和写入GlusterFS。
我们可以使用传统的NFS,Windows客户端的SMB/CIFS或者本地GlusterFS客户端访问GlusterFS存储
GlusterFS是一个用户空间文件系统,这意味着它不是在Linux内核中运行,而是使用FUSE模块。
GlusterFS卷的类型
可以在GlusterFS中存储数据的几种方法。
这些概念与RAID中的概念相似。
根据配置选项的不同,文件可以存储在Gluster卷中,具有或者不具有冗余级别。
分布式卷
默认情况下,如果未指定分发类型,则GlusterFS将创建一个分布式卷。
其中文件分布在卷中的各个块之间。因此,文件可以无冗余地存储在卷中的任何块上。
这样的存储卷的目的是容易且廉价地缩放卷大小。
但是,这也意味着砖块故障将导致数据完全丢失,并且必须依靠基础硬件来进行数据丢失保护。
复制卷
在复制的卷设置中,文件跨卷中的所有砖块复制。因此,我们克服了分布式卷中面临的数据丢失问题
此处,数据的精确副本将保留在所有模块上。
卷中的副本数可以由客户端在创建卷时决定。
这至少需要两个砖块才能创建具有两个副本的卷,或者至少需要三个砖块才能创建具有三个副本的卷
这种卷的一个主要优点是,即使一个砖块发生故障,仍然可以从其复制的砖块访问数据。
分布式复制卷
此配置中的文件跨复制的砖集存储。
其中块数必须是副本数的倍数。
同样,我们指定砖的顺序也很重要,因为相邻的砖成为彼此的复制品。
这是用于高可用性文件存储的配置。
因此,如果有八个砖块且副本数为2,则前两个砖块成为彼此的副本,然后成为接下来的两个砖块,依此类推。该体积表示为4x2.
同样,如果有八个砖块且副本数为4,则四个砖块将成为彼此的副本,我们将此体积表示为2x4体积。
条带化卷和分布式条带化卷
从GlusterFS 6.0版开始,不建议使用条带功能。
条带化xlator,提供了跨块对数据进行条带化的功能。
此功能用于创建和支持大于单个砖块的文件,还可以通过将IO块分布在砖块和物理磁盘之间来提供更大的文件IO利用率。
碎片xlator现在提供了此功能
要启用剥离或者分片现有卷,我们可以启用features.shard,例如从我的CentOS 8节点启用对replicated_volume的剥离
以下是我的CentOS 8节点上的卷列表:
[root@glusterfs-1 ~]# gluster volume list dis_rep_vol replicated_volume
在复制的卷上启用剥离或者分片
[root@glusterfs-1 ~]# gluster volume set replicated_volume features.shard enable volume set: success
启动卷(如果尚未启动)
[root@glusterfs-1 ~]# gluster volume start replicated_volume
检查突出显示的音量信息
[root@glusterfs-1 ~]# gluster volume info replicated_volume Volume Name: replicated_volume Type: Replicate Volume ID: a9740dad-0102-4131-8a08-74f3b2ec6103 Status: Started Snapshot Count: 0 Number of Bricks: 1 x 3 = 3 Transport-type: tcp Bricks: Brick1: glusterfs-1:/bricks/brick1/rep_vol Brick2: glusterfs-2:/bricks/brick2/rep_vol Brick3: glusterfs-3:/bricks/brick3/rep_vol Options Reconfigured: features.shard: enable performance.client-io-threads: off nfs.disable: on storage.fips-mode-rchecksum: on transport.address-family: inet
Gluster文件系统术语
与DFS结合使用了几个概念和术语:
peer
可信池是在GlusterFS群集中运行的服务器网络。
每个服务器称为对等体。peer命令用于管理受信任的服务器池(TSP)。
Brick
Brick是GlusterFS的基本存储单位。
它被导出到受信任的池中的服务器。卷是砖的逻辑集合。
在DFS中,其本地存储资源对DFS的整体存储容量有贡献的物理服务器/系统通常被称为"砖"。
客户端或者主机访问集体存储在砖块上的文件系统资源,而无需知道他们正在访问一个或者多个砖块上的数据。
元数据
指数据(或者文件)的所有其他特征,但实际数据本身除外。
这可以包括文件大小,文件许可权,时间戳,文件名以及可用于描述文件的其他属性。
容错能力
这是DFS可能提供或者可能不提供的特征或者功能。
如果发生故障,它允许透明且持续地访问DFS的共享资源。
复写
复制是将一个文件系统的内容复制到另一位置的过程。
它用于确保一致性和容错性,并用于改善对数据的可访问性。
复制可以通过以下两种方式之一进行:同步或者异步。
同步复制会稍微放慢速度,因为它要求其中一台服务器上发生的某些文件操作(读取,写入等)需要在其他服务器上同时/完全执行才能被视为成功。
另一方面,异步复制更适合用于慢速连接,因为文件系统操作可以在服务器上发生,并被认为是成功的,而设置中的其他服务器稍后会追赶。
其中可以使用GlusterFS?
GlusterFS本质上是分布式的,并且有很大的不同。
我们可以其中使用GlusterFS解决方案的一些解决方案
Kubernetes容器化
Proxmox群集:对于具有冗余要求的预算较低的虚拟环境,Gluster可能是一个很好的选择。
在两节点Gluster设置中,两个节点彼此同步,当一个节点不可用时,另一节点将接管。
创建群集的Raspberry Pi,以创建高度可用的分布式文件系统。
我们还可以将GlusterFS用作hadoop的分布式文件系统