runsisi AT hust
http://www.cppblog.com/runsisi
该错误在执行命令: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 工具所在节点)上原有的配置文件清理之后再进行部署。
/Files/runsisi/ceph_bootstrap_key_fail.pdf