在CentOS 8上设置GlusterFS分布式复制卷
在本教程中,我们将学习如何在CentOS 8上设置glusterfs分布式复制卷。 糊状 是一个免费的开源可扩展网络文件系统,使您可以创建大型的分布式存储解决方案,以用于媒体流,数据分析以及其他数据和带宽密集型任务。
在CentOS 8上设置GlusterFS分布式复制卷
先决条件
在继续之前,请确保满足以下条件;
- GlusterFS集群有6个节点。 在这种类型的体积中必须使用偶数块砖。
- 附加一个提取盘(不同于/分区),以用于提供Gluster存储单元(
brick
) - 使用LVM对磁盘进行分区,并使用XFS文件系统对磁盘/砖进行格式化。
- 确保时间在集群笔记之间同步
- 在所有群集节点上的防火墙上打开所需的Gluster端口/服务。
在之前的教程中,我们介绍了如何在CentOS 8上安装和设置GlusterFS存储集群以及所有上述要求。请点击以下链接进行检查。
在CentOS 8上安装和设置GlusterFS存储群集
胶合剂卷的类型
GlusterFS支持提供各种功能的不同类型的卷。这些包括;
Distributed
:文件分布在卷中的各个块中。Replicated
:文件在卷中的各个块之间复制。它确保了高存储可用性和可靠性。Distributed Replicated
:文件分布在卷中的所有复制砖中。确保高可靠性,可扩展性和改进的读取性能。Arbitrated Replicated
:文件在副本集中的两个块之间复制,并且仅元数据被复制到第三个块。确保数据一致性。Dispersed
:文件分散在该卷的各个块中。Distributed Dispersed
:数据分布在分散的子卷中。
在之前的文章中,我们介绍了如何设置复制的glusterfs存储卷。
如何在CentOS 8上设置复制的Gluster卷
安装程序GlusterFS分布式复制卷
在glusterfs分布式复制设置中,砖的数量必须是副本计数的倍数。同样,从相邻砖成为彼此副本的意义上来说,指定砖的顺序至关重要。
集群节点
以下是我们的分布式复制Gluster卷节点的详细信息
# | 主机名 | IP地址 |
1个 | gfs01.kifarunix-demo.com | 192.168.56.111 |
2 | gfs02.kifarunix-demo.com | 192.168.56.112 |
3 | gfs03.kifarunix-demo.com | 192.168.57.114 |
4 | gfs04.kifarunix-demo.com | 192.168.57.113 |
5 | gfs05.kifarunix-demo.com | 192.168.57.117 |
6 | gfs06.kifarunix-demo.com | 192.168.57.118 |
在CentOS 8上安装GlusterFS服务器
按照下面的链接在CentOS 8节点上安装GlusterFS服务器软件包;
如何在CentOS 8上安装GlusterFS服务器软件包
检查GlusterFS服务器的状态;
systemctl status glusterd
● glusterd.service - GlusterFS, a clustered file-system server
Loaded: loaded (/usr/lib/systemd/system/glusterd.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2020-06-15 21:56:23 EAT; 11s ago
Docs: man:glusterd(8)
Main PID: 2368 (glusterd)
Tasks: 9 (limit: 5027)
Memory: 3.9M
CGroup: /system.slice/glusterd.service
└─2368 /usr/sbin/glusterd -p /var/run/glusterd.pid --log-level INFO
Jun 15 21:56:22 gfs01.kifarunix-demo.com systemd[1]: Starting GlusterFS, a clustered file-system server...
Jun 15 21:56:23 gfs01.kifarunix-demo.com systemd[1]: Started GlusterFS, a clustered file-system server.
您可以在其他节点上执行相同的操作。
在防火墙上打开/允许GlusterFS服务/端口
在防火墙上打开GlusterFS端口或服务以使节点进行通信。
- 的
24007-24008/TCP
用于节点之间的通信; 24009-24108/TCP
与客户沟通是必需的。
您可以简单地使用该服务, glusterfs
而不是港口;
firewall-cmd --add-service=glusterfs --permanent;firewall-cmd --reload
验证GlusterFS存储群集磁盘
我们在节点上使用每个4GB的LVM磁盘。
lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root cl -wi-ao---- <6.20g swap cl -wi-ao---- 820.00m gfs drgfs -wi-ao---- <4.00g
磁盘有 XFS
文件系统并挂载在 /data/glusterfs/
。
df -hT
Filesystem Type Size Used Avail Use% Mounted on ... /dev/mapper/cl-root xfs 6.2G 1.7G 4.6G 27% / /dev/sda1 ext4 976M 260M 650M 29% /boot tmpfs tmpfs 82M 0 82M 0% /run/user/0 /dev/mapper/drgfs-gfs xfs 4.0G 61M 4.0G 2% /data/glusterfs/
要在系统启动时自动安装驱动器,请在 /etc/fstab
配置文件;
echo "/dev/mapper/drgfs-gfs /data/glusterfs xfs defaults 1 2" >> /etc/fstab
创建Gluster TSP
创建一个gluster trusted storage pool (TSP)
用一个 gluster peer probe
命令。从一个节点中探测所有其他集群节点就足够了;
for i in gfs{02..06}; do gluster peer probe $i; done
您应该按照探测的顺序为每个节点获得成功;
peer probe: success. peer probe: success. peer probe: success. peer probe: success. peer probe: success.
检查Gluster对等方的状态
在任何节点上,您都可以运行gluster peer status命令来显示对等体的状态。
gluster peer status
Number of Peers: 5 Hostname: gfs02 Uuid: 148dcf14-76c9-412c-9911-aac17cc5801f State: Peer in Cluster (Connected) Hostname: gfs03 Uuid: 22d2a6ea-e3a4-49fc-8df6-bd70a9545b30 State: Peer in Cluster (Connected) Hostname: gfs04 Uuid: 89ddf393-8144-4529-81f6-98128a5f1b71 State: Peer in Cluster (Connected) Hostname: gfs05 Uuid: 53b7b05a-28ac-4dfc-8598-651dee9d2431 State: Peer in Cluster (Connected) Hostname: gfs06 Uuid: 29d2d128-5e59-4123-b265-d27ef08f024b State: Peer in Cluster (Connected)
您可以从其他节点验证对等状态。
配置分布式复制存储卷
gluster volume create
命令可用于创建Gluster分布式复制卷。 complete命令的语法为;
gluster volume create NEW-VOLNAME [replica COUNT] [transport [tcp | rdma | tcp,rdma]] NEW-BRICK...
注意:
- 创建分布式复制卷时,必须使用偶数个砖(我们有6个)。这意味着,块数必须是副本数的倍数。
- 指定块的顺序决定了如何相互复制。例如,如果您指定两个副本,那么这意味着指定的前两个相邻砖块成为彼此的副本(镜像),而序列中的下两个砖块则相互复制。
- 不建议使用双向分布式复制卷 脑裂 问题(数据或元数据不一致(权限,uid / gid,扩展属性等)))因此,使用三向分布式复制卷。
- 如果群集节点上有多个砖块,请确保以相同顺序列出每个服务器上的第一个砖块,然后以相同的顺序列出每个服务器上的第二个砖块,以免将副本集成员放在同一节点上。
创建三向分布式复制卷
为了创建三向分布式复制卷,我们在演示中使用六个节点,每个副本具有3个副本。这意味着,前三个相邻的Brick形成一个副本,与下三个副本相同。
在我们的设置中,我们将Brick数据目录命名为 gfsbrick
。如果该数据目录不存在,则将创建它。 相应地替换名称 在以下命令中。
gluster volume create dist-repl-gfs replica 3 transport tcp gfs01:/data/glusterfs/brick01 gfs02:/data/glusterfs/brick02 gfs03:/data/glusterfs/brick03 gfs04:/data/glusterfs/brick04 gfs05:/data/glusterfs/brick05 gfs06:/data/glusterfs/brick06
如果一切顺利,则应该显示一条消息,说明卷创建成功。
volume create: dist-repl-gfs: success: please start the volume to access data
启动分布式复制GlusterFS卷
您可以使用gluster volume start命令启动卷。更换 dist-repl-gfs
与您的卷的名称。
gluster volume start dist-repl-gfs
然后你走了 volume start: dist-repl-gfs: success
。您的音量调高了。
验证GlusterFS卷
您可以使用以下命令验证GlusterFS卷 gluster volume info
命令。
gluster volume info all
Volume Name: dist-repl-gfs
Type: Distributed-Replicate
Volume ID: 45f4416d-9842-4352-8802-b280a243036b
Status: Started
Snapshot Count: 0
Number of Bricks: 2 x 3 = 6
Transport-type: tcp
Bricks:
Brick1: gfs01:/data/glusterfs/brick01
Brick2: gfs02:/data/glusterfs/brick02
Brick3: gfs03:/data/glusterfs/brick03
Brick4: gfs04:/data/glusterfs/brick04
Brick5: gfs05:/data/glusterfs/brick05
Brick6: gfs06:/data/glusterfs/brick06
Options Reconfigured:
transport.address-family: inet
storage.fips-mode-rchecksum: on
nfs.disable: on
performance.client-io-threads: off
获取卷的状态;
gluster volume status dist-repl-gfs
Status of volume: dist-repl-gfs
Gluster process TCP Port RDMA Port Online Pid
------------------------------------------------------------------------------
Brick gfs01:/data/glusterfs/brick01 49152 0 Y 4510
Brick gfs02:/data/glusterfs/brick02 49152 0 Y 4194
Brick gfs03:/data/glusterfs/brick03 49152 0 Y 4078
Brick gfs04:/data/glusterfs/brick04 49152 0 Y 4080
Brick gfs05:/data/glusterfs/brick05 49152 0 Y 5330
Brick gfs06:/data/glusterfs/brick06 49152 0 Y 4077
Self-heal Daemon on localhost N/A N/A Y 4532
Self-heal Daemon on gfs03 N/A N/A Y 4099
Self-heal Daemon on gfs02 N/A N/A Y 4215
Self-heal Daemon on gfs04 N/A N/A Y 4101
Self-heal Daemon on gfs05 N/A N/A Y 5359
Self-heal Daemon on gfs06 N/A N/A Y 4098
Task Status of Volume dist-repl-gfs
------------------------------------------------------------------------------
There are no active volume tasks
列出有关积木的其他信息;
gluster volume status dist-repl-gfs detail
Status of volume: dist-repl-gfs
------------------------------------------------------------------------------
Brick : Brick gfs01:/data/glusterfs/brick01
TCP Port : 49152
RDMA Port : 0
Online : Y
Pid : 4510
File System : xfs
Device : /dev/mapper/drgfs-gfs
Mount Options : rw,seclabel,relatime,attr2,inode64,noquota
Inode Size : 512
Disk Space Free : 3.9GB
Total Disk Space : 4.0GB
Inode Count : 2095104
Free Inodes : 2095086
------------------------------------------------------------------------------
Brick : Brick gfs02:/data/glusterfs/brick02
TCP Port : 49152
...
在客户端上挂载GlusterFS存储卷
一旦设置了分布式复制卷,就可以将它们安装在客户端上并开始将数据写入其中。
为了演示如何挂载glusterfs卷,我们将使用CentOS 8客户端。
有多种方法可以访问Gluster存储卷。这些包括使用;
- 本机GlusterFS客户端
- 网络文件系统(NFS)v3
- 服务器消息块(SMB)
在这种情况下,我们将使用Native GlusterFS客户端方法。
在CentOS 8上安装GlusterFS本机客户端
dnf install glusterfs glusterfs-fuse
安装完成后,创建一个Gluster Storage卷安装点。我们用, /mnt/glusterfs
作为安装点。
mkdir /mnt/glusterfs
在继续安装Gluster卷之前,请确保可从客户端访问所有节点。
可以使用 mount
命令并指定文件系统类型为 glusterfs
以及卷的节点和名称。
mount -t glusterfs gfs01:/dist-repl-gfs /mnt/glusterfs
要在引导过程中自动挂载,请在/ etc / fstab上输入以下行,替换特定的glusterfs存储卷和挂载点。
gfs01:/dist-repl-gfs /mnt/glusterfs/ glusterfs defaults,_netdev 0 0
注意 您可以使用以下命令在客户端中配置备份卷文件服务器 backup-volfile-servers
挂载选项。
backup-volfile-servers=
: :...: - 如果如上所示在安装保险丝客户端时指定了此选项,则当第一台volfile服务器发生故障时,将在
backup-volfile-servers
选项用作卷文件服务器来挂载客户端,直到挂载成功为止。
mount -t glusterfs -o backup-volfile-servers=server2:server3:.... ..:serverN server1:/VOLUME-NAME MOUNT-POINT
这可能看起来像;
mount -t glusterfs -o backup-volfile-servers=gfs02:gfs03 gfs01:/dist-repl-gfs /mnt/glusterfs
确认安装;
df -hT -P /mnt/glusterfs/
测试已安装的卷
为了测试在客户端上安装的分布式复制gluster存储卷上的数据分布和复制,我们将创建一些伪造的文件;
cd /mnt/glusterfs/
创建文件;
for i in {1..10};do echo hello > "File${i}.txt"; done
验证存储在每个节点的模块上的文件。
前三个积木的数据(复制)相同;
[[email protected] ~]# ls /data/glusterfs/brick01/ File1.txt File3.txt File5.txt File6.txt File8.txt
[[email protected] ~]# ls /data/glusterfs/brick02/ File1.txt File3.txt File5.txt File6.txt File8.txt
[[email protected] ~]# ls /data/glusterfs/brick03/ File1.txt File3.txt File5.txt File6.txt File8.txt
接下来的三个砖块上的数据相同(重复);
[[email protected] ~]# ls /data/glusterfs/brick04/ File10.txt File2.txt File4.txt File7.txt File9.txt
[[email protected] ~]# ls /data/glusterfs/brick05/ File10.txt File2.txt File4.txt File7.txt File9.txt
[[email protected] ~]# ls /data/glusterfs/brick06/ File10.txt File2.txt File4.txt File7.txt File9.txt
这就是在glusterfs分布式复制存储卷上分配和复制数据的方式。
这标志着我们指南的结尾,该指南关于如何在CentOS 8上设置glusterfs分布式复制卷。
参考
。