GlusterFS(文件系统)简介以及在 RHEL/CentOS 和 Fedora 上的安装
我们生活在一个数据以不可预测的方式增长的世界,我们需要以高效的方式存储这些数据,无论是结构化数据还是非结构化数据。分布式计算系统比集中式计算系统具有广泛的优势。在这里,数据以分布式方式存储,有多个节点作为服务器。
分布式文件系统不再需要元数据服务器的概念。在分布式文件系统中,它提供了分散在不同服务器之间的所有文件的通用视图。这些存储服务器上的文件/目录可以以正常方式访问。
例如,文件/目录的权限可以按照通常的系统权限模型进行设置,即所有者、组和其他。对文件系统的访问基本上取决于特定协议的设计方式。
什么是 GlusterFS?
GlusterFS是一个定义在用户空间使用的分布式文件系统,即用户空间文件系统(FUSE)。它是一种基于软件的文件系统,具有其自身的灵活性特征。
下图以示意图的形式表示了 GlusterFS 在分层模型中的位置。默认情况下,GlusterFS 将使用 TCP 协议。
GlusterFS 的优势
- 创新——它消除了元数据并可以显著提高性能,这将有助于我们统一数据和对象。
- 弹性——适应数据规模的增长和减少。
- 线性扩展– 可用性可达 PB 级甚至更高。
- 简单——在用户空间运行时易于管理且独立于内核。
什么使得 Gluster 在其他分布式文件系统中脱颖而出?
- 可销售– 没有元数据服务器,因此文件系统的速度更快。
- 经济实惠——它可部署在商品硬件上。
- 灵活– 正如我之前所说,GlusterFS 是一个纯软件文件系统。这里的数据存储在 ext4、xfs 等本机文件系统上。
- 开源- 目前 GlusterFS 由价值数十亿美元的开源公司 Red Hat Inc 维护,作为 Red Hat Storage 的一部分。
GlusterFS 中的存储概念
- Brick – Brick 基本上是任何旨在在受信任的存储池之间共享的目录。
- 可信存储池——是这些基于设计协议的共享文件/目录的集合。
- 块存储– 它们是以块的形式在系统之间移动数据的设备。
- 集群– 在 Red Hat Storage 中,集群和可信存储池都传达了基于定义的协议的存储服务器协作的相同含义。
- 分布式文件系统——一种文件系统,其中的数据分布在不同节点上,用户无需知道文件的实际位置即可访问文件。用户不会体验到远程访问的感觉。
- FUSE – 它是一个可加载的内核模块,允许用户在内核之上创建文件系统,而无需涉及任何内核代码。
- glusterd – glusterd 是 GlusterFS 管理守护进程,它是文件系统的骨干,只要服务器处于活动状态,它就会一直运行。
- POSIX – 可移植操作系统接口 (POSIX) 是 IEEE 定义的标准系列,作为以应用程序可编程接口 (API) 形式解决 Unix 变体之间兼容性的解决方案。
- RAID——独立磁盘冗余阵列 (RAID) 是一种通过冗余提高存储可靠性的技术。
- 子卷– 经过至少一个翻译器处理后的块。
- 转换器– 转换器是执行用户从挂载点发起的基本操作的一段代码。它连接一个或多个子卷。
- 卷– 卷是逻辑上的砖块集合。所有操作均基于用户创建的不同类型的卷。
不同类型的卷
还允许表示不同类型的卷以及这些基本卷类型之间的组合,如下所示。
分布式复制卷
分布式复制卷的表示。
在 RHEL/CentOS 和 Fedora 中安装 GlusterFS
在本文中,我们将首次安装和配置 GlusterFS,以实现存储的高可用性。为此,我们将使用两台服务器来创建卷并在它们之间复制数据。
步骤:1 至少有两个节点
- 在两个节点上安装CentOS 6.5(或任何其他操作系统)。
- 设置名为“ server1 ”和“ server2 ”的主机名。
- 有效的网络连接。
- 两个节点上的存储磁盘均名为“ /data/brick ”。
第 2 步:启用 EPEL 和 GlusterFS 存储库
在两台服务器上安装 GlusterFS 之前,我们需要启用EPEL和GlusterFS存储库以满足外部依赖关系。使用以下链接在两个系统下安装并启用 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 更改为“宽容”或“禁用”模式。保存并关闭文件。
# 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卷
在server1和server2上。
# 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 的功能
- 自我修复- 如果复制卷中的任何一个块发生故障,并且用户修改了另一个块内的文件,则自动自我修复守护进程将在该块下次启动时立即启动,并且故障期间发生的交易将进行相应的同步。
- 重新平衡- 如果我们向现有卷中添加新块,而该卷中之前驻留着大量数据,我们可以执行重新平衡操作,将数据分布在所有块(包括新添加的块)之间。
- 地理复制– 它为灾难恢复提供数据备份。这里引入了主卷和从卷的概念。这样,如果主卷发生故障,则可以通过从卷访问所有数据。此功能用于在地理上分离的服务器之间同步数据。初始化地理复制会话需要一系列 gluster 命令。
以下屏幕截图显示了地理复制模块。
参考链接
现在就是这样了!请继续关注我即将发布的文章中有关自我修复和重新平衡、地理复制等功能的详细描述。