1

我继承了一个涉及设置测试环境的项目(基于 amazon ec2 实例)。

这是架构:

  • 一个永远在线的实例包含一个文件夹 foo ,其中包含各种设置脚本;
  • 其他 N 个实例按需启动。N 可以是 10 到 1000 之间的任何值;
  • 这 N 个实例,在启动时,通过 sshfs 挂载“foo”;
  • 然后,他们运行各种设置 (bash) 脚本——其中一个写入通用 {{/etc/hosts}} 文件。

一个合乎逻辑的担忧是 N 个实例在同时写入同一个文件时可能会遇到某种竞争条件。所以我想做某种文件锁定。我发现lockfile但我对 sshfs 或文件锁定知之甚少。

所以:

  • lockfile在通过 sshfs 挂载的文件上使用是否有任何可能的陷阱?我没有在网上找到任何支持/反对这一点的文献。
  • 有什么建议可以完全避免这种情况吗?
4

1 回答 1

0

在 sshfs 上挂载一个目录并在其中锁定一个文件,然后在主机服务器上锁定同一个文件的简单测试表明,该 LOCK 未被识别。现在免责声明是我在两台机器上都使用 perl,并且我不能 100% 确定它作为 flock() 使用的内容,因为文档说它使用各种操作系统调用。但是,我使用的是相同的操作系统,ubuntu 20.04 和相同的 perl,5.30。

于 2020-06-02T01:00:29.627 回答