【问题标题】:Ceph configuration file and ceph-deployCeph 配置文件和 ceph-deploy
【发布时间】:2017-11-04 21:00:42
【问题描述】:

我搭建了一个测试集群,关注documentation

我使用命令ceph-deploy new node1 创建了集群。之后,ceph 配置文件出现在当前目录下,其中包含主机名为node1 的节点上的监视器信息。然后我在集群中添加了两个 OSD。

所以现在我有一个带有 1 个监视器和 2 个 OSD 的集群。 ceph status 命令表示状态为HEALTH_OK

按照所有相同的文档,我转到“扩展集群”部分,并使用命令 ceph-deploy mon add node2ceph-deploy mon add node3 添加了两个新监视器。现在我的集群中有三个监视器,仲裁和状态为HEALTH_OK,但对我来说有一点差异。 ceph.conf 还是一样的。它仅包含有关一台显示器的旧信息。为什么ceph-deploy mon add {node-name} 命令没有更新配置文件?主要问题是为什么ceph status 使用 3 个监视器显示有关新集群状态的正确信息,而ceph.conf 不包含此信息。真正的配置文件在哪里,为什么ceph-deploy 知道但我不知道?

即使在重新启动后也能正常工作。所有 ceph 守护进程都启动,读取不正确的 ceph.conf(我用 strace 检查过),忽略这一点,在新配置下工作正常。

最后一个问题。为什么ceph-deploy osd activate {ceph-node}:/path/to/directory 命令也没有更新配置文件?毕竟,如果我们现在有这么聪明的ceph-deploy,为什么还需要ceph.conf 文件呢?

【问题讨论】:

    标签: ceph


    【解决方案1】:

    您在这里有多个问题。

    1) ceph.conf 不需要完全相同,所有节点都可以运行。例如。 OSD 只需要他们关心的 osd 配置,MON 只需要配置 mon 关心(除非你在同一个节点上运行所有东西,也不推荐)所以也许你的 MON1 有 MON1 MON2 有 MON2 MON3 有 MON3

    2) 当 MON 被创建然后添加时,MON 映射正在更新,因此 MON 本身已经知道其他 MON 需要具有仲裁。所以 MON 不依赖 ceph.conf 来获取仲裁信息,而是更改运行时配置。

    3) ceph-deploy 只是一个 python 脚本来为你准备和运行 ceph 命令。如果您阅读详细信息 ceph-deploy ,请使用例如ceph-disk zap 准备激活。 一旦你准备好 osd 并激活,一旦它被格式化为 ceph 分区,udev 就知道要挂载到哪里。然后 systemd ceph-osd.server 将在启动时激活 ceph-osd。这就是为什么它根本不需要 ceph.conf 中的 OSD 信息

    【讨论】:

      猜你喜欢
      • 2018-05-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 2020-09-21
      • 1970-01-01
      相关资源
      最近更新 更多