0

我们正在尝试在同一虚拟网络中的 AWS 上创建两个 mongooseim 实例的主-主集群。所有必要的端口都在 AWS 安全组中打开。

我怀疑 Ubuntu 14.04 LTS 上的 mongooseim 设置存在一些问题

在其中一个节点上运行 join_cluster 命令后,我们得到如下错误(参考截图) 错误:{error,{badmatch,{error,eacces}}}

附上带有详细信息的屏幕截图。除 vm args 外,服务器配置未更改,如所附屏幕截图所示。

这是您的二进制文件的问题吗?还是其他故障?

在此处输入图像描述在此处输入图像描述

4

1 回答 1

1

我自己遇到了这个问题。Mongoose 使用 erlangs 内部mnesia存储系统来存储包括集群拓扑在内的大量信息。mnesia 的默认存储路径是/var/lib/mongooseim. 当您执行 amongooseimctl join_cluster ...时,它需要擦除它的 mnesia 存储,并且基本上从它正在加入的集群中提取一个副本。出现问题是因为它还尝试删除/var/lib/mongooseim自身,但它没有权限这样做,因为正在运行的用户mongooseim没有父目录的权限,/var/lib. 也不应该。

我解决这个问题的方法是创建一个子目录,它可以安全地删除和重新创建它,并将其配置为使用它作为 mnesia 目录:

sudo mkdir /var/lib/mongooseim/mnesia
sudo chown mongooseim:mongooseim /var/lib/mongooseim/mnesia

mnesia 目录的配置默认存在于/etc/mongooseim/app.config. 在我的那里是第三行。最初看起来像这样:

{mnesia, [{dir, "/var/lib/mongooseim"}]},

我将路径更改为我创建的新目录

{mnesia, [{dir, "/var/lib/mongooseim/mnesia"}]},

之后,我停止并启动了mongoose,并成功加入了集群

mongooseimctl stop
mongooseimctl start && mongooseimctl started
mongooseimctl join_cluster mongooseim@other.node.name
于 2018-06-12T01:10:47.357 回答