Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用librbd(Python)连接到Ceph集群_Python_Ceph - Fatal编程技术网

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

如何使用librbd(Python)连接到Ceph集群,python,ceph,Python,Ceph,我正在尝试使用librbd和Python连接到我的Ceph集群。如果我尝试Ceph文档中的示例,我会得到一个错误,上面写着“连接到集群时出错:错误代码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. >&g

我正在尝试使用librbd和Python连接到我的Ceph集群。如果我尝试Ceph文档中的示例,我会得到一个错误,上面写着“连接到集群时出错:错误代码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
Python 2.7.12(默认,2016年11月19日06:48:10)
[GCC 5.4.0 20160609]关于linux2
有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。
>>>进口雷达
>>>cluster=rados.rados(conffile='/etc/ceph/ceph.conf')
>>>cluster.connect()
回溯(最近一次呼叫最后一次):
文件“”,第1行,在
文件“rados.pyx”,第785行,位于rados.rados.connect(/build/ceph-10.2.6/src/build/rados.c:10073)中
rados.Error:连接群集时出错:错误代码95

Ceph集群运行正常(正常)。这个错误代码是什么意思?我能做些什么来解决它?

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

  • 更新文件权限

  • 以sudo的方式运行进程

  • 或者将当前用户添加到sudoers

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

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