docker - 为什么我用Kubernetes在Ceph上收到 “Structure needs cleaning”消息?

标签 docker kubernetes ceph

抱歉,我是Kubernetes和Ceph的新手,对此一无所知。

我已经使用本教程设置了Kubernetes和Ceph(http://tutorial.kubernetes.noverit.com/content/ceph.html)

我已经像这样设置了集群:

1个Kube-Master和2个辅助节点(此行为充当带有2个OSD的ceph监视器)
我用来设置ceph集群的ceph部署在Kube-master中。

一切工作正常,我安装了具有5个副本的示例Web应用程序(部署),当其余API命中时,它将创建一个文件。该文件将被复制到每个节点。

但是10分钟后,我又使用API​​创建了一个文件,但是当我尝试列出(ls -l)时,出现以下错误:

对于节点1:

ls: cannot access 'previousFile.txt': Structure needs cleaning
previousFile.txt  newFile.txt

对于node2:
previousFile.txt  

对于node2,未创建新文件

可能是什么问题?我尝试了很多次仍然弹出相同的错误。

任何帮助表示赞赏。

最佳答案

这完全看起来像您的文件系统已损坏。检查事项:

  • $ kubectl logs <ceph-pod1>
  • $ kubectl logs <ceph-pod2>
  • $ kubectl describe deployment <ceph-deployment>#是否有任何 pod 重启?

  • 有关错误消息here的一些信息。

    根据您拥有的内容,可能需要从头开始。或者,您可以在Ceph中查看recovering data,但是如果您没有按时操作,则可能无法正常工作。

    在Kubernetes上运行Ceph可能非常棘手,因为在不同Kubernetes节点上启动的特定节点的任何启动/重新启动都可能会破坏数据,因此您需要确保该部分相当牢固,可能使用Node Affinity或在特定Kubernetes节点上运行Ceph Pod与labels

    关于docker - 为什么我用Kubernetes在Ceph上收到 “Structure needs cleaning”消息?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53638814/

    相关文章:

    macos - 无法在 Mac OS 上通过 HTTP 从容器外部连接到 Clickhouse

    javascript - 在 Docker 容器内运行时,NodeJS HTTPS 服务器通过 HTTP 而不是 HTTPS 提供服务

    docker - 如何使用 secret 中的 ssh key 将私有(private) git 存储库克隆到 kubernetes pod 中?

    azure - 使用Terraform在Aks Azure上设置Elasticsearch集群

    Ceph:每个 OSD PG 太多

    centos - ntp 运行时 Ceph 状态不响应

    mysql - 在 Docker 上连接到 MySql

    docker - 如何将 Kubernetes Volume secret 也作为 Env 变量注入(inject)到 Pod 中?

    kubernetes - 是什么导致系统日志记录许多 “Dial failed: dial tcp x.x.x.x:port: connection refused”消息?

    kubernetes - 在 kubernetes 集群中安装 rook-ceph 后显示 OSD 0