如何解决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 用户拥有。在旧实例上重试(清除新实例中的文件后)仍然有效。
我尝试了很多很多东西,包括:
- 安装的不同位置
- 制作 beanstalkd 拥有的目录和父目录
- 使目录和父目录成为世界 rw
- 更改挂载目标的目录权限(挂载前)
- 使用不同的用户
唯一有效的方法是以 root 身份运行 beanstalkd。
据我所知,这两台机器之间没有重要区别,尽管很明显。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。