Centos strema 9 环境部署Glusterfs9

本文档只是创建复制卷,分布式卷,分布式复制卷,纠删卷

操作系统

内核

角色

Ip地址

说明

CentOS Stream 9 x86_64

5.14.0-427.el9.x86_64

客户端 client

192.168.80.119

挂载存储业务机器

CentOS Stream 9 x86_64

5.14.0-427.el9.x86_64

客户端 client

192.168.80.93

brick端(manager/node)

CentOS Stream 9 x86_64

5.14.0-427.el9.x86_64

存储节点

192.168.80.183

brick端(manager/node)

CentOS Stream 9 x86_64

5.14.0-427.el9.x86_64

存储节点

192.168.80.158

brick端(manager/node)

CentOS Stream 9 x86_64

5.14.0-427.el9.x86_64

存储节点

192.168.80.159

brick端(manager/node)

CentOS Stream 9 x86_64

5.14.0-427.el9.x86_64

存储节点

192.168.80.160

brick端(manager/node)

环境准备

存储节点全部创建新的目录

mkdir -pv  /gfs/vdb1/gv0

将新的虚拟机磁盘(20G)全部划分为一个区,如果磁盘较大的话,也是分为一个区,给它20G的大小,保证挂载磁盘内存的一致性。

mkfs.ext4 /dev/vdb1

磁盘挂载完成之后需要查看磁盘的uuid,能够确保永久挂载。

blkid

如图,可以看到分区的uuid

在/etc/fstab文件中添加一行

UUID=9e4c220f-4825-4896-9eb4-573f8f045d49  /gfs/vdb1/gv0  ext4    defaults   0 0

UUID                                                                      挂载的目录  磁盘的文件系统

修改主机名称

hostnamectl set-hostname --static gfs-client119

hostnamectl set-hostname --static gfs-client93

hostnamectl set-hostname --static gfs-node183

hostnamectl set-hostname --static gfs-node158

hostnamectl set-hostname --static gfs-node159

hostnamectl set-hostname --static gfs-node160

修改hosts文件

cat >>/etc/hosts<<ldp

192.168.80.93  clant-93

192.168.80.119 clant-119

192.168.80.158 gfs-node158

192.168.80.159 gfs-node159

192.168.80.160 gfs-node160

192.168.80.183 gfs-node183

ldp

所有服务器配置时间

yum -y install chrony

cat /etc/chrony.conf

pool ntp1.aliyun.com iburst

pool ntp2.aliyun.com iburst

sourcedir /run/chrony-dhcp

driftfile /var/lib/chrony/drift

makestep 1.0 3

rtcsync

keyfile /etc/chrony.keys

ntsdumpdir /var/lib/chrony

leapsectz right/UTC

logdir /var/log/chrony

所有服务器下载源

[root@gfs-manager183 gv0]# yum list 'centos-release-gluster*'

Repository centos-gluster9 is listed more than once in the configuration

上次元数据过期检查:0:04:10 前,执行于 2024年03月06日 星期三 14时32分03秒。

已安装的软件包

centos-release-gluster9.noarch                     1.0-2.el9s                    @extras-common

可安装的软件包

centos-release-gluster10.noarch                    1.0-2.el9s                    extras-common

centos-release-gluster11.noarch                    1.0-1.el9s                    extras-common

下载源

yum -y install centos-release-gluster9.noarch

集群节点安装glusterfs-server9

yum clean all

yum makecache

所有节点安装

yum -y install centos-release-gluster9.noarch

183 158 159 160主机安装

yum -y install  glusterfs-server

删除

yum remove glusterfs-server

设置开启自启和启动

systemctl enable glusterd

systemctl start glusterd

出现的问题

启动失败

删除/var/lib/glusterd/里面的所有文件

再次启动

systemctl start glusterd

将node节点加入集群

在任意一台机器上输入

gluster peer probe gfs-node158

gluster peer probe gfs-node159

gluster peer probe gfs-node160 

gluster peer probe gfs-node183

这里使用ip,主机名,主机名别名都可以

出现的错误

这里提示的错误,可以查看当前主机的的hosts文件,里面的ip地址对应的别名或者主机名称是否和当前输入的gluster peer probe gfs-manager183  里面的 gfs-manager183是否一致。如果不一致,则修改。

查看集群节点状态

gluster peer status

这里只显示本机以外的节点信息

然后在所有存储上都可以使用该命令来验证检查

158主机

159主机

160主机

183主机

可以看到所有的集群节点都可以看到其他节点的信息。

查看所有节点的信息

在这里为了较少篇幅,不显示所有节点的显示的信息

gluster pool list

158主机

删除节点(按需删除)

gluster peer detach 节点名称

设置GlusterFS卷

在所有服务器上执行以下命令创建一个GlusterFS卷:

mkdir -pv /data/brick1/gv0

创建卷显示错误

如图所示

[root@gfs-node158 ~]# gluster volume create gfsfbs  gfs-node158:/dev/vdb1  gfs-node159:/dev/sdb1 force

volume create: gfsfbs: failed: The provided path /dev/vdb1 which is already present, is not a directory

这里就是,本人使用的是gluster volume create gfsfbs  gfs-node158:/dev/vdb1  gfs-node159:/dev/sdb1 force该命令,直接指向的主机的磁盘分区名称,但是在此之前本人将该分区进行了挂载,导致此情况的发生。

解决:将该分区和挂载的目录umount(取消挂载)

创建分布式卷

没有对文件进行分块处理;

通过扩展文件属性保存 HASH值;

支持的底层文件系统有 ext3 、ext4 、ZFS 、XFS等

特点:

文件分布在不同的服务器,不具备冗余性;

更容易和廉价地扩展卷的大小;

单点故障会造成数据丢失;

依赖底层的数据保护。

然后在任意一台服务器 上执行创建卷命令:

 gluster volume create gfsfbs  gfs-node158:/gfs/vdb1/gv0 gfs-node159:/gfs/vdb1/gv0

出现

volume create: gfsfbs: failed: The brick gfs-node158:/gfs/vdb1/gv0 is a mount point. Please create a sub-directory under the mount point and use that as the brick directory. Or use 'force' at the end of the command if you want to override this behavior.

这个错误提示表示:创建卷失败,因为brick gfs-node158:/gfs/vdb1/gv0是一个挂载点。请在挂载点下创建一个子目录,并将其用作brick目录。或者,如果您想覆盖此行为,请在命令末尾使用'force'。

我们输入强制:

gluster volume create gfsfbs  gfs-node158:/gfs/vdb1/gv0  gfs-node159:/gfs/vdb1/gv0 force

显示创建成功

启动

gluster volume start gfsfbs

gfsfbs为创建卷的名称

查看状态

gluster volume info  gfsfbs

使用客户端进行挂载

mount.glusterfs gfs-node158:/gfs/vdb1/gv0 /data/gv0

显示挂载失败

出现的错误就是,挂载的是该主机的目录,但是本次我们是创建的分布式卷,所以需要输入分布式卷名称,而不是单独的主机名和目录名称

mount -t glusterfs gfs-node158:gfsfbs /data/gv0

如果显示

这个错误提示是因为在创建 GlusterFS 卷时,brick 被创建在了系统的根分区。建议不要使用系统的根分区作为存储后端。如果你想覆盖这个行为,可以在命令末尾添加 'force'。

93主机上创建10个文件

for i in `seq 10`; do dd if=/dev/zero of=$i.txt bs=1M count=10;done

158主机显示

159主机显示

创建复制卷

gluster volume create gv0 replica 3 \

   gfs-node160:/gfs/vdb1/gv0/

   gfs-node183:/gfs/vdb1/gv0/

创建详细过程

[root@gfs-node160 ~]# gluster volume create gv0 replica 2 \

gfs-node160:/gfs/vdb1/gv0/ \

gfs-node183:/gfs/vdb1/gv0/

Replica 2 volumes are prone to split-brain. Use Arbiter or Replica 3 to avoid this. See: http://docs.gluster.org/en/latest/Administrator%20Guide/Split%20brain%20and%20ways%20to%20deal%20with%20it/.

Do you still want to continue?

 (y/n) y

volume create: gv0: failed: The brick gfs-node160:/gfs/vdb1/gv0 is a mount point. Please create a sub-directory under the mount point and use that as the brick directory. Or use 'force' at the end of the command if you want to override this behavior.

[root@gfs-node160 ~]# echo $?

1

[root@gfs-node160 ~]# gluster volume create gv0 replica 2    gfs-node160:/gfs/vdb1/gv0/    gfs-node183:/gfs/vdb1/gv0/ force

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

gluster volume create rep-volume replica 2 transport tcp server1:/dir1 server2:/dir2

gluster volume create gv0 replica 2    gfs-node160:/gfs/vdb1/gv0/    gfs-node183:/gfs/vdb1/gv0/ force

查看卷状态

gluster volume info gv0

[root@gfs-node160 ~]# gluster volume info gv0

Volume Name: gv0

Type: Replicate

Volume ID: 203fe180-91f6-44f1-afb7-b5a6d8bcfa11

Status: Created

Snapshot Count: 0

Number of Bricks: 1 x 2 = 2

Transport-type: tcp

Bricks:

Brick1: gfs-node160:/gfs/vdb1/gv0

Brick2: gfs-node183:/gfs/vdb1/gv0

Options Reconfigured:

cluster.granular-entry-heal: on

storage.fips-mode-rchecksum: on

transport.address-family: inet

nfs.disable: on

performance.client-io-threads: off

启动

[root@gfs-node160 ~]# gluster volume start gv0

volume start: gv0: success

再次查看状态

[root@gfs-node160 ~]# gluster volume info  gv0

Volume Name: gv0

Type: Replicate

Volume ID: 203fe180-91f6-44f1-afb7-b5a6d8bcfa11

Status: Started

Snapshot Count: 0

Number of Bricks: 1 x 2 = 2

Transport-type: tcp

Bricks:

Brick1: gfs-node160:/gfs/vdb1/gv0

Brick2: gfs-node183:/gfs/vdb1/gv0

Options Reconfigured:

cluster.granular-entry-heal: on

storage.fips-mode-rchecksum: on

transport.address-family: inet

nfs.disable: on

performance.client-io-threads: off

查看创建的卷

gluster volume  list

出现的问题

mount 挂载失败

提示信息如下

[root@gfs-node93 ~]# mount -t glusterfs gv0:/gfs/vdb1/gv0  /data/gv0

Mounting glusterfs on /data/gv0 failed.

[root@gfs-node93 ~]# mount -t glusterfs gfs-node160:/gfs/vdb1/gv0  /data/gv0

Mounting glusterfs on /data/gv0 failed.

排查思路

排查思路:首先查看gfs服务端日志详细信息,日志默认在/var/log/glusterfs下面。查看glusterd.log日志详细信息

[2024-03-11 01:56:30.028377 +0000] I [MSGID: 106496] [glusterd-handshake.c:968:__server_getspec] 0-management: Received mount request for volume /gfs

[2024-03-11 01:56:30.028462 +0000] E [MSGID: 106048] [glusterd-handshake.c:475:build_volfile_path] 0-management: Failed to get volinfo []

[2024-03-11 01:56:30.028490 +0000] E [MSGID: 106128] [glusterd-handshake.c:1101:__server_getspec] 0-management: Failed to find peer info []

[2024-03-11 01:56:30.028497 +0000] E [MSGID: 106176] [glusterd-handshake.c:1137:__server_getspec] 0-management: Failed to mount the volume

[2024-03-11 02:04:26.355896 +0000] I [MSGID: 106496] [glusterd-handshake.c:968:__server_getspec] 0-management: Received mount request for volume gv0                                

查看日志之后发现服务端没有找到gv0,第二次是找不到卷。之后想了以下gfs-node160:/gfs/vdb1/gv0  gfs-node160主机和183主机创建的是gv0的卷

之后输入以下的命令

mount  -t  glusterfs gfs-node160:gv0   /data/gv0

命令说明:

-t  glusterfs :指定挂载的文件系统类型

gfs-node160:gv0:指定挂载的主机的node节点和卷名称,二者使用冒号分隔

/data/gv0:指定本机的挂载目录

测试

在客户端创建完成20个100MB的文件,创建完成之后。客户端发起同步数据,到两个node节点,到同步完成之后,基本达到了实时传输数据的效果。

结合以下的三个

磁盘IO

网络IO

硬件上的软件工作

创建分布式复制卷

命令

gluster volume create dis-rep replica 4  transport tcp  gfs-node183:/gfs/vdb1/gv0 \

gfs-node158:/gfs/vdb1/gv0 \

gfs-node159:/gfs/vdb1/gv0 \

gfs-node160:/gfs/vdb1/gv0  force

出现的问题

[root@gfs-node158 ~]# gluster volume create dis-rep replica 4  transport tcp  gfs-node183:/gfs/vdb1/gv0 \

gfs-node158:/gfs/vdb1/gv0 \

gfs-node159:/gfs/vdb1/gv0 \

gfs-node160:/gfs/vdb1/gv0

volume create: dis-rep: failed: The brick gfs-node158:/gfs/vdb1/gv0 is a mount point. Please create a sub-directory under the mount point and use that as the brick directory. Or use 'force' at the end of the command if you want to override this behavior.

创建卷失败:dis-rep错误:brick gfs-node158:/gfs/vdb1/gv0 是一个挂载点。请在挂载点下创建一个子目录,并将其用作brick目录。或者,如果你想覆盖这种行为,可以在命令末尾使用 'force'。

查看状态

启动卷组

gluster volume start dis-rep

查看卷组的状态信息

[root@gfs-node158 ~]# gluster volume info

Volume Name: dis-rep

Type: Replicate

Volume ID: 5c75db30-e5a2-4b7f-9364-afc5e036307c

Status: Started

Snapshot Count: 0

Number of Bricks: 1 x 4 = 4

Transport-type: tcp

Bricks:

Brick1: gfs-node183:/gfs/vdb1/gv0

Brick2: gfs-node158:/gfs/vdb1/gv0

Brick3: gfs-node159:/gfs/vdb1/gv0

Brick4: gfs-node160:/gfs/vdb1/gv0

Options Reconfigured:

cluster.granular-entry-heal: on

storage.fips-mode-rchecksum: on

transport.address-family: inet

nfs.disable: on

performance.client-io-threads: off

客户端进行挂载

mount -t glusterfs gfs-node159:dis-rep /mnt

基本性能测试

for i in `seq 300`; do dd if=/dev/zero of=$i-$RANDOM.txt bs=1M count=100;done

创建纠删卷

创建命令

gluster volume create disperse-volume disperse 4 transport tcp \

gfs-node158:/gfs/vdb1/gv0 \

gfs-node159:/gfs/vdb1/gv0 \

gfs-node160:/gfs/vdb1/gv0 \

gfs-node183:/gfs/vdb1/gv0

disperse-volume为卷名称

出现问题

[root@gfs-node158 gv0]# gluster volume create disperse-volume disperse 4 transport tcp gfs-node158:/gfs/vdb1/gv0 gfs-node159:/gfs/vdb1/gv0 gfs-node160:/gfs/vdb1/gv0 gfs-node183:/gfs/vdb1/gv0

There isn't an optimal redundancy value for this configuration. Do you want to create the volume with redundancy 1 ? (y/n) y

volume create: disperse-volume: failed: The brick gfs-node158:/gfs/vdb1/gv0 is a mount point. Please create a sub-directory under the mount point and use that as the brick directory. Or use 'force' at the end of the command if you want to override this behavior.

创建卷失败:分散卷错误:brick gfs-node158:/gfs/vdb1/gv0 是一个挂载点。请在挂载点下创建一个子目录,并将其用作brick目录。或者,如果你想覆盖这种行为,可以在命令末尾使用 'force'。

修改创建命令

gluster volume create disperse-volume disperse 4 transport tcp \

gfs-node158:/gfs/vdb1/gv0 \

gfs-node159:/gfs/vdb1/gv0 \

gfs-node160:/gfs/vdb1/gv0 \

gfs-node183:/gfs/vdb1/gv0  force

查看状态

启动disperse-volume卷

[root@gfs-node158 gv0]# gluster volume start disperse-volume

volume start: disperse-volume: success

查看状态

[root@gfs-node158 gv0]# gluster volume info

Volume Name: disperse-volume

Type: Disperse

Volume ID: 404b9906-21cf-4d2c-aa99-f8bb8b24b4c4

Status: Started

Snapshot Count: 0

Number of Bricks: 1 x (3 + 1) = 4

Transport-type: tcp

Bricks:

Brick1: gfs-node158:/gfs/vdb1/gv0

Brick2: gfs-node159:/gfs/vdb1/gv0

Brick3: gfs-node160:/gfs/vdb1/gv0

Brick4: gfs-node183:/gfs/vdb1/gv0

Options Reconfigured:

storage.fips-mode-rchecksum: on

transport.address-family: inet

nfs.disable: on

在客户端进行挂载

mount -t glusterfs gfs-node159:disperse-volume /mnt

删除文件之后,df -h 查看磁盘占用未释放

  • 12
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CentOS Stream是CentOS Linux的一个新发行版,它是Red Hat企业发行版(RHEL)的上游变体,意味着它与RHEL的开发版本更加接近。CentOS Stream旨在为用户提供更多与RHEL的兼容性和先进特性,同时也充当了RHEL的实时开发平台。 以下是CentOS 9 Stream的部署手册: 1. 下载CentOS 9 Stream镜像:访问CentOS官方网站,下载最新版本的CentOS 9 Stream镜像文件。 2. 创建安装媒介:将下载的镜像文件写入USB驱动器或DVD。 3. 启动计算机:将创建的安装媒介插入计算机并重启。确保计算机从安装媒介启动。 4. 选择安装:在启动时,选择“Install CentOS Stream”。 5. 选择语言:选择适合您的语言偏好的语言进行安装。 6. 网络配置:为您的系统配置网络设置,包括IP地址、子网掩码、网关和DNS服务器等。 7. 磁盘分区:根据您的需求对磁盘进行分区。您可以选择使用默认分区方案或手动设置分区。 8. 软件包选择:选择要安装的软件包。您可以选择服务器或自定义安装。 9. 账户设置:设置root用户的密码和其他用户的信息。 10. 等待安装完成:等待安装过程完成。这可能需要一些时间,具体取决于您的系统配置和网络速度。 11. 重启系统:安装完成后,系统将提示您重新启动系统。重新启动以完成安装过程。 12. 登录系统:输入您设置的用户名和密码登录到CentOS 9 Stream。 请注意,以上步骤仅涵盖了基本的CentOS 9 Stream部署过程。具体操作步骤可能会因系统配置和用户需求而有所不同。因此,在部署之前,建议查阅官方文档以获取更详细和准确的信息。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值