【问题标题】:docker mount nfs with local_lock=alldocker mount nfs with local_lock=all
【发布时间】:2017-07-05 01:52:45
【问题描述】:

我有 docker-compose.yml 文件

volumes:
  nfs:
      driver: local
      driver_opts:
        type: nfs
        o: addr=192.168.100.1,rw
        device: ":/mnt/storage"

我的容器安装了带有选项的卷:

type nfs (rw,relatime,vers=3,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,mountaddr=192.168.100.1,mountvers=3,mountproto=tcp,local_lock=none,addr=192.168.100.1)

使用 local_lock=none,我无法将此选项更改为 local_lock=all 我试过了:

volumes:
  nfs:
      driver: local
      driver_opts:
        type: nfs
        o: addr=192.168.100.1,rw,local_lock=all
        device: ":/mnt/storage"

volumes:
  nfs:
      driver: local
      driver_opts:
        type: nfs
        o: addr=192.168.100.1,rw
        device: ":/mnt/storage"
        local_lock: all

但没有任何改变

【问题讨论】:

  • 如果是任何语法,它将是第一个带有o: addr=192.168.100.1,rw,local_lock=all 的语法。您是否删除并重新创建了配置了该设置的卷?
  • @BMitch 我意识到这个问题可能来自 Linux/Ubuntu/NFS 而不是 Docker 本身。如果我尝试使用 mount -o nfsvers=4,nolock ... 在 Ubuntu 中手动挂载我的卷,我仍然会在 mount 输出中看到 local_lock=none。是 Ubuntu 的问题吗?还是 NFS 4?
  • @alexpirine docker 只是将该选项传递给操作系统和 NFS 驱动程序,因此很有可能。
  • @BMitch 是的(见编辑评论)。问题是在 docker 实例中,我有“没有可用的锁”错误消息。一切都直接在主机上按预期工作。因此,由于某种原因,NFS 锁在 Docker 容器中不起作用……而且由于 local_lock=all 选项被忽略,因此无法忽略它们。
  • @alexpirine local_lock 在我的手册页中被列为仅 nfs 2 或 3 选项。因此,如果您使用的 nfs4 可能无法正常工作。

标签: docker docker-compose mount nfs


【解决方案1】:

你想要的语法是第一个选项:

volumes:
  nfs:
      driver: local
      driver_opts:
        type: nfs
        o: addr=192.168.100.1,rw,local_lock=all
        device: ":/mnt/storage"

这只是对操作系统的传递。您可能看不到与该卷装载有任何区别的原因是 local_lock 被列为 NFS 2 或 NFS 3 唯一选项,因此如果您使用 NFS 4,该选项可能会被忽略。

【讨论】:

  • 嗯,这是正确的答案,但不能解决问题,不幸的是……有什么方法可以在 NFS 4 中使用本地锁?
  • 我不认为这是 nfs4 中支持的功能。如果您需要此选项,则需要降级。
【解决方案2】:

无法回答问题的解决方法是直接在主机上创建 NFS 挂载,然后将挂载的文件夹导出到 docker 卷。这样,Docker 容器就不再需要 NFS 锁了。

对于 Docker Swarm 来说不是一个理想的解决方案,因为它需要在 swarm 的每个节点上维护 NFS 挂载。

【讨论】:

  • 固定数量的虚拟机的clusterssh可以帮助或设置虚拟机
猜你喜欢
  • 2013-08-02
  • 2018-08-12
  • 1970-01-01
  • 2018-06-18
  • 2018-09-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-30
相关资源
最近更新 更多