在CentOS 8上安装和设置GlusterFS存储集群

在本指南中,我们将学习如何在CentOS 8上安装和设置GlusterFS存储集群。 GlusterFS 是一个开源的分布式可伸缩网络文件系统,它将各种磁盘存储资源聚集到一个全局名称空间中。它适用于数据密集型任务,例如云存储和媒体流。 GlusterFS的一些常见功能包括:

  • 可以扩展到几个PB,从而可以处理数千个客户端。
  • 通过数据镜像提供高可用性。它还支持自我修复机制,该机制可以在恢复后将数据恢复到正确的状态而几乎没有开销。
  • 提供统一的全局名称空间,该名称空间将磁盘和内存资源聚集到一个池中,以确保负载平衡的I / O。
  • 使用弹性哈希算法在存储池中定位数据,从而实现线性性能扩展。
  • 提供弹性卷管理器,其中数据存储在逻辑卷中,这些逻辑卷从硬件中抽像出来,并在逻辑上彼此分区。这样可确保在数据继续在线且不会中断应用程序的情况下添加或删除存储。
  • Gluster完全兼容POSIX,不需要任何唯一的API即可进行数据访问。
  • 支持行业标准协议,例如NFS,SMB,CIFS,HTTP和FTP。

在CentOS 8上安装和设置GlusterFS存储集群

先决条件

确保至少有三个存储节点。检查下面的部署架构。

另外,请确保除了安装操作系统的根磁盘以外,还有一个提取虚拟磁盘。在上述情况下,我们有一个额外的磁盘, /dev/sdb

lsblk
NAME        MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda           8:0    0    8G  0 disk 
├─sda1        8:1    0    1G  0 part /boot
└─sda2        8:2    0    7G  0 part 
  ├─cl-root 253:0    0  6.2G  0 lvm  /
  └─cl-swap 253:1    0  820M  0 lvm  [SWAP]
sdb           8:16   0    2G  0 disk 
└─sdb1        8:17   0    2G  0 part 
sr0          11:0    1 1024M  0 rom

如果使用主机名,请确保它们是可解析的。

确保三个节点之间的时间紧密同步。如果您需要在CentOS 8系统上设置NTP服务器,只需点击下面的链接即可;

在CentOS 8上使用Chrony设置NTP服务器

分区和格式化GlusterFS存储驱动器

在每个GlusterFS节点上,在存储驱动器上格式化并创建文件系统。您可以使用任何分区方法。

格式化并在磁盘上创建主分区。

parted /dev/sdb mklabel msdos
parted -a opt /dev/sdb mkpart primary xfs 0% 100%

在磁盘上创建一个文件系统。这里使用XFS。

mkfs.xfs /dev/sdb1 -L gfsdisk

挂载GlusterFS存储驱动器(砖)

在每个节点上,为GlusterFS存储驱动器创建一个挂载点,这里称为砖。块是GlusterFS存储的基本单位。

mkdir -p /export/gfsbrick

将GlusterFS存储驱动器安装在上面创建的bricks目录上。

mount /dev/sdb1 /export/gfsbrick/

要在系统引导时自动挂载驱动器,只需按照以下步骤更新/ etc / fstab配置文件;

echo "/dev/sdb1 /export/gfsbrick/ xfs defaults 1 2" >> /etc/fstab

检查安装;

df -hTP /dev/sdb1
Filesystem     Type  Size  Used Avail Use% Mounted on
/dev/sdb1      xfs   2.0G   47M  2.0G   3% /export/gfsbrick

在CentOS 8上安装GlusterFS 7

安装GlusterFS Repo

现在,前提条件部分已经完成,继续在所有节点上安装GlusterFS。 GlusterFS在默认存储库上不可用。因此,请运行以下命令创建存储库。

wget -P /etc/yum.repos.d/ https://download.gluster.org/pub/gluster/glusterfs/7/LATEST/CentOS/glusterfs-rhel8.repo

启用PowerTools仓库,以便能够安装其他必需的GlusterFS依赖项。

dnf config-manager --set-enabled PowerTools

通过运行以下命令在CentOS 8上安装GlusterFS服务器软件包;

dnf install glusterfs-server

在CentOS 8上运行GlusterFS

通过执行以下命令,启动并启用GlusterFS守护程序以在系统启动时运行;

systemctl enable --now glusterd

检查GlusterFS守护程序的状态;

systemctl status glusterd
● glusterd.service - GlusterFS, a clustered file-system server
   Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: disabled)
   Active: active (running) since Fri 2020-03-20 19:51:37 EAT; 12s ago
     Docs: man:glusterd(8)
  Process: 2739 ExecStart=/usr/sbin/glusterd -p /var/run/glusterd.pid --log-level $LOG_LEVEL $GLUSTERD_OPTIONS (code=exited, status=0/SUCCESS)
 Main PID: 2740 (glusterd)
    Tasks: 9 (limit: 5047)
   Memory: 3.9M
   CGroup: /system.slice/glusterd.service
           └─2740 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO

Mar 20 19:51:37 gfs01.kifarunix-demo.com systemd[1]: Starting GlusterFS, a clustered file-system server...
Mar 20 19:51:37 gfs01.kifarunix-demo.com systemd[1]: Started GlusterFS, a clustered file-system server.

在防火墙上允许GlusterFS

为了使GlusterFS节点能够通信,您需要在防火墙上打开某些GlusterFS端口或服务。的 24007-24008/TCP 用于节点之间的通信,而 24009-24108/TCP 与客户沟通是必需的。为简化此操作,只需使用该服务, glusterfs

firewall-cmd --add-service=glusterfs --permanent
firewall-cmd --reload

配置GlusterFS可信存储池

要配置GlusterFS存储集群,您首先需要创建一个 trusted storage pool (TSP) 这基本上是一个存储服务器网络。可以通过使用以下命令将存储节点添加到TSP来创建TSP: gluster peer probe 命令如下所示。

探测其他节点,例如gfs02和gfs03 来自gfs01 在我们的情况下,请运行以下命令。相应地替换节点的名称。 您可以从任何节点探查其他节点

gluster peer probe gfs02
gluster peer probe gfs03

要验证群集对等状态,请在任何节点上运行以下命令。例如,来自节点1的gfs01;

gluster peer status
Number of Peers: 2

Hostname: gfs01.kifarunix-demo.com
Uuid: b2003be4-4bc9-4125-a2a1-0d46e4b2476f
State: Peer in Cluster (Connected)

Hostname: gfs02
Uuid: 6bc3b730-b7bb-4d24-865a-c33a3db4489d
State: Peer in Cluster (Connected)

要列出TSP中的所有节点,例如,来自GlusterFS节点02,gfs01;

gluster pool list
UUID					Hostname 	State
6bc3b730-b7bb-4d24-865a-c33a3db4489d	gfs02    	Connected 
26cdb6a4-ad15-41e7-bb72-2da0a9906fa6	gfs03    	Connected 
b2003be4-4bc9-4125-a2a1-0d46e4b2476f	localhost	Connected

您可以添加更多服务或从GlusterFS存储池中删除服务器。

例如,要添加新服务器,您需要从池中已经存在的节点中对其进行探测。更换 服务器名称 相应地。

gluster peer probe server-name

从池中分离服务器;

gluster peer detach server-name

设置GlusterFS存储卷

可以从上面创建的砖块创建GlusterFS存储卷。在这种情况下,我们创建了安装在 /export/gfsbrick 在每个节点上。

GlusterFS存储卷类型

根据各种操作需求,在创建GlusterFS存储卷时需要考虑不同的配置设置。

  • Distributed:文件分布在卷中的各个块中。
  • Replicated:文件在卷中的各个块之间复制。它确保了高存储可用性和可靠性。
  • Distributed Replicated:文件分布在卷中的所有复制砖中。确保高可靠性,可扩展性和改进的读取性能。
  • Arbitrated Replicated:文件在副本集中的两个块之间复制,并且只有元数据被复制到第三个块。确保数据一致性。
  • Dispersed:文件分散在卷中的各个块中。
  • Distributed Dispersed:数据分布在分散的子卷中。

可以使用以下命令创建GlusterFS卷;

gluster volume  create  [stripe ] [[replica  [arbiter ]]|[replica 2 thin-arbiter 1]] [disperse []] [redundancy ] [transport ]  ...

请教 man gluster 更多细节。

设置复制的GlusterFS存储卷

在本演示中,我们将学习如何设置复制的glusterfs存储卷。

为砖上的体积创建安装点 在每个群集节点上。 在我们的案例中,我们的砖块安装在 /export/gfsbrick

mkdir /export/gfsbrick/gfsvol01

接下来,创建一个复制的存储卷。例如,创建具有三个名为的节点的复制的GlusterFS存储卷 gfsvol01;

gluster volume create gfsvol01 replica 3 transport tcp gfs01:/export/gfsbrick/gfsvol01 gfs02:/export/gfsbrick/gfsvol01 gfs03:/export/gfsbrick/gfsvol01

您可以从任何节点运行该命令,从而相应地替换其他对等方的名称和关联的模块。

如果一切顺利,您应该得到如下输出:

volume create: gfsvol01: success: please start the volume to access data

之后,启动GlusterFS卷。更换 gfsvol01 与您的卷的名称。

gluster volume start gfsvol01

验证GlusterFS卷

一旦创建并启动了卷,就可以通过在集群中的任何节点上运行以下命令来进行验证。

gluster volume info all
Volume Name: gfsvol01
Type: Replicate
Volume ID: 9361067e-da82-411c-9c83-2ab1c2b888aa
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 3 = 3
Transport-type: tcp
Bricks:
Brick1: gfs01:/export/gfsbrick/gfsvol01
Brick2: gfs02:/export/gfsbrick/gfsvol01
Brick3: gfs03:/export/gfsbrick/gfsvol01
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
performance.client-io-threads: off

你去。您已成功安装并设置了复制的GlusterFS存储群集。

是否要设置其他类型的GlusterFS卷? 有关设置卷类型的信息,请查阅GlusterFS文档

如果有的话,您可以随时检查日志文件, /var/log/glusterfs/glusterd.log 对于任何问题。

在CentOS 8上安装和设置GlusterFS客户端

现在您已经运行了一个GlusterFS存储集群,您可以设置一个客户端以使用该存储。可以使用Gluster Native Client或通过NFS v3访问Gluster卷。

在这个演示中,我们将学习如何在CentOS 8上使用本地GlusterFS客户端。

因此,在CentOS 8上创建GlusterFS存储库。

wget -P /etc/yum.repos.d/ https://download.gluster.org/pub/gluster/glusterfs/7/LATEST/CentOS/glusterfs-rhel8.repo

运行系统更新;

dnf update

在CentOS 8上安装Gluster Native Client

dnf install glusterfs glusterfs-fuse

在客户端上挂载Gluster存储卷

要在客户端上手动安装Gluster存储卷,请使用以下命令:

mount -t glusterfs HOSTNAME-OR-IPADDRESS:/VOLNAME MOUNTDIR

哪里:

  • t glusterfs 指定GlusterFS文件系统。
  • HOSTNAME-OR-IPADDRESS 是任何gluster节点,例如gfs01,gf02或gfs03。确保主机名是可解析的。
  • /VOLNAME 是GlusterFS存储卷的名称,例如 gfsvol01 在这个演示中。
  • MOUNTDIR 是客户端上的挂载点。

因此,要从glusterfs节点01装载Gluster存储卷, gfs01,我们的挂载命令就像;

mkdir /media/gfs
mount -t glusterfs gfs01:/gfsvol01 /media/gfs/

确认安装;

df -hT
Filesystem          Type            Size  Used Avail Use% Mounted on
devtmpfs            devtmpfs        1.4G     0  1.4G   0% /dev
tmpfs               tmpfs           1.4G     0  1.4G   0% /dev/shm
tmpfs               tmpfs           1.4G  9.9M  1.4G   1% /run
tmpfs               tmpfs           1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/mapper/cl-root xfs             8.0G  5.7G  2.4G  71% /
/dev/sda1           ext4            976M  244M  666M  27% /boot
...
gfs01:/gfsvol01     fuse.glusterfs  2.0G   67M  2.0G   4% /media/gfs

要自动挂载GlusterFS存储卷,您可以更新 /etc/fstab 与线;

gfs01:/gfsvol01 /media/gfs/ glusterfs defaults,_netdev 0 0

哪里 _netdev 确保在启用并运行网络之前不挂载文件系统。

在我们的下一个指南中,我们将讨论如何使用NFS在客户端上安装GlusterFS存储卷。

这标志着我们有关如何在CentOS 8上安装和设置GlusterFS存储集群的指南的结尾。

参考

GlusterFS快速入门指南

Sidebar