在linux操作系统下,可能因为一些很小的误操作,都会造成非常重要的文件的丢失,而文件的备份并不是每时每刻都会注意到,一般是等到文件丢失了才会去想办法,这里讲下ceph.mon.keyring丢失的解决办法
1、没有启用部署认证的
auth_cluster_required =none
在进行部署的时候 ceph-deploy new 以后会生成ceph.mon.keyring文件,内容如下
[mon.]
key = AQBnutdWAAAAABAAPmLaAd9CeKaCRj1CIrztyA==
caps mon = allow *
这个keyring在增加mon的时候,mon之间加密会用到的,如果在未开启认证的情况下,只需要在部署目录下面创建一个同名文件,里面填入一个格式相同的任意内容即可(需要有这个文件,不然无法部署新的mon),在没有开启认证的时候是没有生成这个文件的 /var/lib/ceph/mon/ceph-lab8106/keyring
一般是在系统盘损坏的时候容易丢失这个部署目录,并且没有做备份
2、启用了部署认证
auth_cluster_required =cephx
开启了以后,在进行mon的部署以后,是会生成/var/lib/ceph/mon/ceph-lab8106/keyring这个文件的,这个文件的内容跟部署的目录下面的keyring是一样的,所以丢失了部署目录以后,去mon的路径下面查看文件,然后写入一个同名文件里面即可
如下所示
[root@lab8106 ceph]# cat /var/lib/ceph/mon/ceph-lab8106/keyring
[mon.]
key = AQC4V9hWAAAAABAArPTf+Az43NWsoU88okI+Mg==
caps mon = "allow *"
[root@lab8106 ceph]# cat ceph.mon.keyring
[mon.]
key = AQC4V9hWAAAAABAArPTf+Az43NWsoU88okI+Mg==
caps mon = allow *
这个是个简单的操作即可避免无法新加mon的问题,当然做好预备工作是最好的,建议做好下面的两个工作:
- 1、直接备份部署目录里面的文件,最好备份到自己的电脑上
- 2、将这个keyring的信息备份到集群里面去,记录到认证信息中
[root@lab8106 ceph]# ceph auth import -i ceph.mon.keyring
imported keyring
[root@lab8106 ceph]# ceph auth get mon.
exported keyring for mon.
[mon.]
key = AQC4V9hWAAAAABAArPTf+Az43NWsoU88okI+Mg==
caps mon = "allow *"
[root@lab8106 ceph]# cat ceph.mon.keyring
[mon.]
key = AQC4V9hWAAAAABAArPTf+Az43NWsoU88okI+Mg==
caps mon = allow *