网站搜索

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


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

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

例如,文件/目录的权限可以像通常的系统权限模型一样设置,即所有者、组和其他。对文件系统的访问基本上取决于特定协议的设计方式。

什么是 GlusterFS?

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

看下图,它示意性地表示了 GlusterFS 在分层模型中的位置。默认情况下,GlusterFS 将使用 TCP 协议。

GlusterFS 的优点

  1. 创新 – 它消除了元数据,可以显着提高性能,这将帮助我们统一数据和对象。
  2. 弹性 – 适应数据大小的增长和减小。
  3. 线性扩展 – 它的可用性可达 PB 级甚至更高。
  4. 简单 – 在用户空间运行时易于管理且独立于内核。

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

  1. 可销售 – 没有元数据服务器可以提供更快的文件系统。
  2. 经济实惠 – 它部署在商用硬件上。
  3. 灵活 – 正如我之前所说,GlusterFS 是一个纯软件文件系统。这里的数据存储在 ext4、xfs 等本机文件系统上。
  4. 开源 – 目前,GlusterFS 由价值十亿美元的开源公司 Red Hat Inc 维护,作为 Red Hat Storage 的一部分。

GlusterFS 中的存储概念

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

还允许不同类型的体积的表示以及这些基本体积类型之间的组合,如下所示。

分布式复制卷

分布式复制卷的表示。

在 RHEL/CentOS 和 Fedora 中安装 GlusterFS

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

步骤:1 至少有两个节点

  1. 在两个节点上安装 CentOS 6.5(或任何其他操作系统)。
  2. 设置名为“server1”和“server2”的主机名。
  3. 有效的网络连接。
  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 卷

服务器1服务器2上。

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 命令。

以下屏幕截图显示了异地复制模块。

参考链接

GlusterFS 主页

现在就是这样!请在我即将发表的文章中了解有关自我修复和重新平衡、异地复制等功能的详细描述。