FreeBSD 11.1 上的 GlusterFS / 挂载问题

FreeBSD 11.1 上的 GlusterFS / 挂载问题

我想在 FreeBSD 11.1 上使用 GlusterFS 作为分布式文件存储。文档很差,所以我在网上遵循了一些操作指南。我可以创建 glusterfs 卷,但无法将其安装到其他客户端机器上。以下是我到目前为止所做的:

我有三台主机,都在同一个子网中。

10.0.0.21 Webserver
10.0.0.31 gluster1
10.0.0.32 gluster2

我在所有三个主机的 /etc/hosts 文件中添加了上述条目。

我使用以下命令修改了 gluster1 和 gluster2 上的 /etc/rc.conf:

glusterd_enable="YES"

在 gluster1 上我做了:

gluster peer probe gluster2

(成功)

gluster1 和 gluster2 均有以下硬盘:/dev/da1

它们被分区(BSD 标签)并作为 /datastore 安装在 gluster1 和 gluster2 上

“cat /etc/fstab” 在 gluster1 和 gluster2 上均给出:

# Device        Mountpoint      FStype  Options Dump    Pass#
/dev/da0a       /               ufs     rw      1       1
/dev/da1a       /datastore      ufs     rw      2       2

我创建了 gluster 卷 1:

gluster volume create volume1 replica 2 transport tcp gluster1:/datastore gluster2:/datastore force

(我知道裂脑风险,这是一个简单的测试场景)

我使用以下命令启动了volume1:

gluster volume start volume1

检查卷 1:

gluster volume info

返回:

Type: Replicate
Volume ID: a760c545-1cc9-47a4-bc9e-51f6180e4d7a
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gluster1:/datastore
Brick2: gluster2:/datastore
Options Reconfigured:
transport.address-family: inet
nfs.disable: on

到目前为止,一切进展顺利,并且一切顺利。

现在我的麻烦开始在客户端/消费者机器(Web服务器)上安装和使用它

我在几个地方看到 glusterfs volume1 应该可以使用以下命令安装:

mount -t glusterfs gluster1:/volume1 /mnt

这让我简单地返回以下错误:

mount: gluster1:/volume1: Operation not supported by device

在我问“愚蠢”的问题之前,我通常会这样做,为此我搜索了很多次。尝试在客户端上安装 glusterfs(pkg install glusterfs),在客户端 /etc/rc.conf 中启用它,为 FUSE 添加内容,但我无法让它工作。我感到很恼火,因为我知道我在这里遗漏的一定是很小的事情!?

有人能解释一下我的问题吗?

编辑:我发现 NFS 似乎无法正常工作:volume1 的状态显示没有监听 TCP 端口

gluster volume status volume1

显示:

Status of volume: volume1
Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick gluster1:/datastore                   N/A       N/A        N       N/A
Brick gluster2:/datastore                   N/A       N/A        N       N/A
Self-heal Daemon on localhost               N/A       N/A        N       55181
Self-heal Daemon on gluster2                N/A       N/A        N       30318

Task Status of Volume volume1
------------------------------------------------------------------------------
There are no active volume tasks

因此,我使用以下命令启用了 NFS:

gluster volume set volume1 nfs.disable off

有警告说不再使用 GlusterFS NFS,而是使用 NFS-Ganesha。我在这次测试中忽略了这个警告。

现在我重新启动了音量:

gluster volume stop volume1 
gluster volume start volume1 

为了检查我做了什么:

gluster volume info

现在向我展示了:

Volume Name: volume1
Type: Replicate
Volume ID: a760c545-1cc9-47a4-bc9e-51f6180e4d7a
Status: Started
Snapshot Count: 0
Number of Bricks: 1 x 2 = 2
Transport-type: tcp
Bricks:
Brick1: gluster1:/datastore
Brick2: gluster2:/datastore
Options Reconfigured:
nfs.disable: off
transport.address-family: inet

因此,nfs.disable 已设置为关闭。NFS 现在应该处于打开状态,对吗?

gluster volume status volume1

仍然显示没有 NFS 正在运行:

Gluster process                             TCP Port  RDMA Port  Online  Pid
------------------------------------------------------------------------------
Brick gluster1:/datastore                   N/A       N/A        N       N/A
Brick gluster2:/datastore                   N/A       N/A        N       N/A
NFS Server on localhost                     N/A       N/A        N       N/A
Self-heal Daemon on localhost               N/A       N/A        N       99115
NFS Server on gluster2                      N/A       N/A        N       N/A
Self-heal Daemon on gluster2                N/A       N/A        N       37075

Task Status of Volume volume1
------------------------------------------------------------------------------
There are no active volume tasks

令人不安的是(除了 NFS 在线之外还有 N),两块砖似乎也不在线(在线表示为 N)?!??

所以我真的陷入困境,需要一些帮助。

答案1

最后它开始工作了:

/usr/local/sbin/mount_glusterfs gluster1:/volume1 /mnt

成功了……

客户端还需要安装net/glusterfs包,并在/boot/loader.conf中添加以下语句:

fuse_load="YES"

干杯

答案2

两年后,我终于弄清楚了如何使用 FSTAB 在 Freebsd 上自动挂载 glusterfs 卷:

gluster1:/volume1 /mnt/glusterfs fusefs rw,acl,传输=tcp,_netdev,mountprog=/usr/local/sbin/mount_glusterfs,late 0 0

相关内容