如何使用librbd(Python)连接到Ceph集群

时间:2017-04-03 14:25:19

标签: python ceph

我正在尝试使用librbd和Python连接到我的Ceph集群。如果我在Ceph文档中尝试this示例,则会收到错误消息“连接到群集时出错:错误代码95”。请参阅下面的代码示例。

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

Ceph集群正常运行(HEALTH_OK)。这个错误代码意味着什么,我该怎么做才能解决它?

1 个答案:

答案 0 :(得分:1)

好的,我找到了解决方案。问题是ceph.client.admin.keyring中的ceph客户端密钥/etc/ceph/只能由sudo用户读取。根据您的具体情况,您可以:

  • 更新文件权限

  • 以sudo

  • 运行该过程
  • 或将当前用户添加到sudoers

我通过更新文件权限解决了这个问题。这允许客户机节点上的所有用户运行ceph命令:

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