微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Beanstalkd 与 NFS 存储

如何解决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 举报,一经查实,本站将立刻删除。