GlusterFS(文件系统)简介及在RHEL/CentOS和Fedora上的安装

我们生活在一个数据增长不可预测的世界,我们需要以高效的方式存储这些数据,无论它是结构化的还是非结构化的。分布式计算系统相对于集中式计算系统具有各种优势。在这里,数据以分布式方式存储,使用多个节点作为服务器。

GlusterFS Storage

在分布式文件系统中,元数据服务器的概念不再需要。在分布式文件系统中,它提供了在不同服务器之间分隔的所有文件的共同视图点。这些存储服务器上的文件/目录可以以正常方式访问。

例如,文件/目录的权限可以设置为通常的系统权限模型,即所有者、组和其他人。对文件系统的访问基本上取决于特定协议如何设计以在其中工作。

什么是GlusterFS?

GlusterFS是一个分布式文件系统,定义为在用户空间中使用,即用户空间文件系统(FUSE)。它是一个基于软件的文件系统,具有自己的灵活性特点。

查看以下图表,它以分层模型形式示意了GlusterFS的位置。GlusterFS默认使用TCP协议。

GlusterFS Design

GlusterFS的优点

  1. 创新 – 它消除了元数据并可以显著提高性能,这将帮助我们统一数据和对象。
  2. 弹性 – 适应数据大小的增长和减小。
  3. 线性扩展 – 它能够提供PB级别的存储容量,甚至更多。
  4. 简单性 – 它易于管理,在用户空间运行时与内核无关。

是什么使Gluster在分布式文件系统中脱颖而出?

  1. 可扩展性 – 没有元数据服务器使得文件系统运行更快。
  2. 成本效益 – 它可以在普通硬件上部署。
  3. 灵活性 – 如我之前所说,GlusterFS是一个纯软件的文件系统。数据存储在ext4,xfs等本地文件系统上。
  4. 开源 – 目前GlusterFS由Red Hat Inc维护,这是一家价值十亿美元的开源公司,作为Red Hat Storage的一部分。

GlusterFS中的存储概念

  1. 磁砖 – 磁砖基本上是任何打算在可信存储池中共享的目录。
  2. 可信存储池 – 是一组基于设计协议共享的文件/目录。
  3. 块存储 – 它们是通过块形式在系统之间传输数据的设备。
  4. 集群 – 在Red Hat Storage中,集群和可信存储池都指的是基于定义协议的存储服务器协作。
  5. 分布式文件系统 – 数据分布在不同的节点上,用户可以访问文件而不必知道文件的实际位置。用户不会感受到远程访问的感觉。
  6. FUSE – 它是一个可加载的内核模块,允许用户在不涉及任何内核代码的情况下在内核之上创建文件系统。
  7. glusterd – glusterd 是 GlusterFS 管理守护进程,是文件系统的核心,只要服务器处于活动状态,它就会一直运行。
  8. POSIX – 可移植操作系统接口(POSIX)是由 IEEE 定义的一组标准,作为一种应用程序编程接口(API)的解决方案,以实现 Unix 变体的兼容性。
  9. RAID – 独立磁盘冗余阵列(RAID)是一种通过冗余提高存储可靠性的技术。
  10. 子卷 – 经过至少一个翻译器处理后的砖块。
  11. 翻译器 – 翻译器是执行用户从挂载点发起的基本操作的那段代码。它连接一个或多个子卷。
  12. – 卷是砖块的逻辑集合。所有操作都是基于用户创建的不同类型的卷。
不同类型的卷

下面展示了不同类型卷的表示及其基本卷类型的组合。

Distributed Volume
Replicated Volume
Striped Volume
分布式复制卷

分布式复制卷的表示。

Distributed Replicated Volume

在RHEL/CentOS和Fedora上安装GlusterFS

在这篇文章中,我们将首次安装和配置GlusterFS以实现存储的高可用性。为此,我们使用两台服务器来创建卷并在它们之间复制数据。

步骤:1. 至少需要两个节点

  1. 在两个节点上安装CentOS 6.5(或其他任何操作系统)。
  2. 设置主机名分别为“server1”和“server2“。
  3. A working network connection.
  4. 两节点上的存储磁盘均命名为“/data/brick“。

步骤2:启用EPEL和GlusterFS仓库

在两台服务器上安装GlusterFS之前,我们需要启用EPELGlusterFS仓库以满足外部依赖。请使用以下链接在两台系统上安装并启用epel仓库。

  1. 如何在RHEL/CentOS上启用EPEL仓库

接下来,我们需要在两台服务器上启用GlusterFs仓库。

# wget -P /etc/yum.repos.d http://download.gluster.org/pub/gluster/glusterfs/LATEST/EPEL.repo/glusterfs-epel.repo

步骤3:安装GlusterFS

在两台服务器上安装软件。

# yum install glusterfs-server

启动GlusterFS管理守护进程。

# service glusterd start

现在检查守护进程的状态。

# service glusterd status
示例输出
service glusterd start
  service glusterd status
  glusterd.service - LSB: glusterfs server
   	  Loaded: loaded (/etc/rc.d/init.d/glusterd)
  	  Active: active (running) since Mon, 13 Aug 2012 13:02:11 -0700; 2s ago
  	 Process: 19254 ExecStart=/etc/rc.d/init.d/glusterd start (code=exited, status=0/SUCCESS)
  	  CGroup: name=systemd:/system/glusterd.service
  		  ├ 19260 /usr/sbin/glusterd -p /run/glusterd.pid
  		  ├ 19304 /usr/sbin/glusterfsd --xlator-option georep-server.listen-port=24009 -s localhost...
  		  └ 19309 /usr/sbin/glusterfs -f /var/lib/glusterd/nfs/nfs-server.vol -p /var/lib/glusterd/...

步骤4:配置SELinux和iptables

打开’/etc/sysconfig/selinux‘并在两台服务器上将SELinux更改为“permissive”或“disabled”模式。保存并关闭文件。

# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted

接下来,在两个节点中刷新iptables或需要通过iptables允许对另一个节点的访问。

# iptables -F

步骤5:配置受信任的池

在’Server1‘上运行以下命令。

gluster peer probe server2

在’Server2‘上运行以下命令。

gluster peer probe server1

注意:一旦连接了该池,只有受信任的用户才能将新服务器引入该池。

步骤6:设置GlusterFS卷

server1server2上。

# mkdir /data/brick/gv0

在任一台服务器上创建卷并启动卷。这里,我选择了’Server1‘。

# gluster volume create gv0 replica 2 server1:/data/brick1/gv0 server2:/data/brick1/gv0
# gluster volume start gv0

接下来,确认卷的状态。

# gluster volume info

注意:如果卷未启动,则错误消息将记录在一台或两台服务器的’/var/log/glusterfs‘下。

步骤7:验证GlusterFS卷

将卷挂载到“/mnt”目录下。

# mount -t glusterfs server1:/gv0 /mnt

现在您可以在挂载点上创建、编辑文件,作为文件系统的单一视图。

GlusterFS的特性

  1. 自愈 – 如果复制卷中的任何砖块出现故障,并且用户修改了其他砖块中的文件,则自动自愈守护程序将在下次砖块恢复正常时立即启动,并同步在故障期间发生的事务。
  2. 重新平衡 – 如果我们向现有卷添加新的砖块,之前存储大量数据的地方,我们可以执行重新平衡操作,将数据分布在所有砖块中,包括新添加的砖块。
  3. 地理复制 – 它为灾难恢复提供数据备份。这里涉及主卷和从卷的概念。因此,如果主卷出现故障,整个数据可以通过从卷访问。此功能用于在地理上分隔的服务器之间同步数据。初始化地理复制会话需要一系列的 Gluster 命令。

这里是显示地理复制模块的屏幕截图。

Geo Replication

参考链接

GlusterFS 主页

目前就这些!敬请关注我的即将发布的文章,详细介绍自愈和重新平衡、地理复制等功能。

Source:
https://www.tecmint.com/introduction-to-glusterfs-file-system-and-installation-on-rhelcentos-and-fedora/