【问题标题】:Kubernetes cluster has oplock (samba) on file in Azure storage accountKubernetes 集群在 Azure 存储帐户中的文件上有 oplock (samba)
【发布时间】:2017-04-24 22:38:12
【问题描述】:

我正在使用 Azure 容器服务中的 kubernetes 运行 bradbeck/nexus-https 容器,并将 /nexus-data 卷挂载到 Azure 存储帐户文件共享。在 k8s-agents 上我安装了cifs-utils 来访问文件共享。

当 pod 退出时,可能不是正常退出(?),samba 客户端将 pending delete 标志放在 /nexus-data/cache/cache.lock 上并且没有释放它。

当我尝试启动安装相同文件共享的新 pod 时,失败并显示:

文件不存在:/nexus-data/cache/cache.lock

当我尝试通过 Azure 门户删除它时,它失败了:

无法删除文件“nexus-data/cache/cache.lock”。错误:指定的资源被 SMB 客户端标记为删除。

那是409 error

我如何打破这个锁/摆脱这个文件?


编辑: 我尝试重新启动 k8s-agents,但即使这样也没有用!幸运的是,我可以删除整个文件共享,然后重新创建它。将来可能不会有这样的选择:az storage share delete --name nexus-data

【问题讨论】:

  • 我目前唯一的解决方案是删除部署并等待锁定到期。我不确定这需要多长时间?
  • 好像锁不会总是过期

标签: azure samba cifs


【解决方案1】:

据我所知,这与 Nexus 本身无关。我在 TeamCity 服务器上也经历过同样的事情。

发生的情况是,当容器死亡时,主机上的 samba 文件共享不会被卸载。我还没有弄清楚如何计算出/etc/mtab中的哪个条目属于死容器的数据量。现在我正在重新启动主机,这会卸载文件系统并允许删除指令完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-06-02
    • 1970-01-01
    • 1970-01-01
    • 2016-05-24
    • 1970-01-01
    • 2021-11-08
    • 2021-06-13
    • 2018-11-09
    相关资源
    最近更新 更多