runsisi's

technical notes

ceph bootstrap key fail

2018-12-23 runsisi#ceph

使用ceph-deploy工具部署时出现错误:

Unable to find /var/lib/ceph/bootstrap-osd/ceph.keyring

该错误在执行命令: ceph-deploy mon create-initial 时出现,说明该 monitor 节点曾经部署过 ceph 环境,该问题的解决方法很简单, 在执行该命令之前删除该 monitor 节点 /etc/ceph/ 下的 {cluster}.client.admin.keyring 文件( cluster 名默认配置情况下是 ceph)。

该错误的具体原因待会解释,先简单介绍一下该命令执行过程中发生的事情:

  1. 启动 monitor 节点的 ceph monitor 守护进程;
  2. monitor 节点执行 ceph-create-keys 命令;
  3. ceph-create-keys 创建 {cluster}.client.admin.keyring;
  4. ceph-create-keys 创建 bootstrap-{osd, mds}/{cluster}.keyring;
  5. ceph-deploy 所在运行节点从 monitor 节点取 {cluster}.client.admin.keyring, {cluster}.mon.keyring, bootstrap-{osd, mds}/{cluster}.keyring 到当前路径;
  6. 以上任何一步如果文件已存在, 则不会新建(或去 monitor 节点取) 文件。

回到我们遇到的错误, 由于 monitor 节点之前可能使用 ceph-deploy 工具进行过部署, 再次部署时没有将 {cluster}.client.admin.keyring 原有的配置文件进行清理, 因此第 3 步不会创建新的 keyring 文件, 仍然使用上次部署使用的 keyring, 从而导致第 4 步操作会失败, 最终出错。

从上面的介绍, 可以知道, 如果要使用 ceph-deploy 工具再次对 ceph 集群进行部署, 最好将各节点(包括 ceph-deploy 工具所在节点) 上原有的配置文件清理之后再进行部署。