2017-04-03 4 views
0

J'essaie de me connecter à mon cluster Ceph en utilisant librbd et Python. Si j'essaie this exemple à partir de la documentation Ceph, j'obtiens une erreur disant "erreur de connexion au cluster: code d'erreur 95". Voir l'exemple de code ci-dessous.Comment se connecter au cluster Ceph en utilisant librbd (Python)

Python 2.7.12 (default, Nov 19 2016, 06:48:10) 
[GCC 5.4.0 20160609] on linux2 
Type "help", "copyright", "credits" or "license" for more information.  
>>> import rados 
>>> cluster = rados.Rados(conffile='/etc/ceph/ceph.conf') 
>>> cluster.connect() 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "rados.pyx", line 785, in rados.Rados.connect (/build/ceph-10.2.6/src/build/rados.c:10073) 
rados.Error: error connecting to the cluster: error code 95 

Le cluster Ceph est en hausse et en bonne santé (HEALTH_OK). Que signifie ce code d'erreur et que puis-je faire pour le résoudre?

Répondre

0

Ok, j'ai trouvé une solution. Le problème était que la clé du client ceph ceph.client.admin.keyring dans /etc/ceph/ pouvait seulement être lue par les utilisateurs de sudo. Selon votre situation, vous pouvez:

  • mise à jour les autorisations de fichier

  • exécuter le processus comme sudo

  • ou ajoutez l'utilisateur en cours à sudoers

Je l'ai résolu en mettant à jour les autorisations de fichiers. Cela permet à tous les utilisateurs du noeud client d'exécuter des commandes ceph:

$ sudo chmod 644 /etc/ceph/ceph.client.admin.keyring