Beanstalkd 与 NFS 存储

问题描述

我正在运行 beanstalkd,并将其存储设置为 NFS 共享:

sudo -u beanstalkd /usr/bin/beanstalkd -l 0.0.0.0 -p 11301 -b /mnt/efs -s 10485760

此共享使用以下选项安装:

mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,noresvport [AWS_EFS_DOMAIN]:/beanstalkd /mnt/efs

这很好用,没有性能损失,这很好:)

我试图在另一个实例上复制设置;相同的操作系统,相同版本的 NFS 二进制文件和库,相同版本的 beanstalkd。我已经清除了 /mnt/efs 的存储空间,并尝试以同样的方式启动 benastalkd。只有在这台机器上,我得到:

/usr/bin/beanstalkd: file.c:454 in filewopen: falloc /mnt/efs/binlog.1: UnkNown error -1
/usr/bin/beanstalkd: walg.c:492 in walinit: makenextfile

特别奇怪的是文件 /mnt/efs/lock 确实 被写入,并且由 beanstalkd 用户拥有。在旧实例上重试(清除新实例中的文件后)仍然有效。

我尝试了很多很多东西,包括

  1. 安装的不同位置
  2. 制作 beanstalkd 拥有的目录和父目录
  3. 使目录和父目录成为世界 rw
  4. 更改挂载目标的目录权限(挂载前)
  5. 使用不同的用户

唯一有效的方法是以 root 身份运行 beanstalkd。

据我所知,这两台机器之间没有重要区别,尽管很明显。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)