Ceph:通过 java 连接时 EAccess 被拒绝
Ceph: EAccess denied when connecting through java
我正在使用下面的代码与 Ceph 集群通信并获得
EAccess 拒绝异常,即使管理员用户拥有所有权限*。任何解决此问题的指示?我是 运行 docker 中的集群。
管理员权限:
client.admin
key: AQDVsTJdeF0KExAAd58npeDpnJsXQZwfUBAPMA==
auid: 0
caps: [mds] allow
caps: [mgr] allow *
caps: [mon] allow *
caps: [osd] allow *
异常:
Failed to connect to the Ceph cluster; EACCES: Permission denied
(-13): com.ceph.rados.exceptions.RadosException: Failed to connect to
the Ceph cluster; EACCES: Permission denied (-13)
com.ceph.rados.exceptions.RadosException: Failed to connect to the Ceph cluster; EACCES: Permission denied (-13)
at com.ceph.rados.RadosBase.throwException(RadosBase.java:94)
at com.ceph.rados.RadosBase.handleReturnCode(RadosBase.java:50)
at com.ceph.rados.Rados.connect(Rados.java:160)
at com.example.demo.CephClient.main(CephClient.java:20)
代码:
Rados cluster = new Rados("admin");
System.out.println("Created cluster handle.");
File f = new File("/etc/ceph/ceph.conf");
cluster.confReadFile(f);
System.out.println("Read the configuration file.");
cluster.connect();
System.out.println("Connected to the cluster.");
ceph.conf
mon initial members = VirtualBox
mon host = xxx.xxx.x.xxxx
public network = xxx.xxx.xxx.xxx/xx
cluster network = xxx.xxx.xxx.xxx/xx
osd journal size = 100
log file = /dev/null
keyring = /etc/ceph/ceph.client.admin.keyring
问题是 ceph.client.admin.keyring 文件权限与 ceph 用户有关。我是 运行 作为 root 的应用程序,这就是为什么出现权限被拒绝异常的原因。
将文件权限更改为 root 后。成功了。
sudo chown root:root filepath
我正在使用下面的代码与 Ceph 集群通信并获得 EAccess 拒绝异常,即使管理员用户拥有所有权限*。任何解决此问题的指示?我是 运行 docker 中的集群。
管理员权限:
client.admin
key: AQDVsTJdeF0KExAAd58npeDpnJsXQZwfUBAPMA==
auid: 0
caps: [mds] allow
caps: [mgr] allow *
caps: [mon] allow *
caps: [osd] allow *
异常:
Failed to connect to the Ceph cluster; EACCES: Permission denied (-13): com.ceph.rados.exceptions.RadosException: Failed to connect to the Ceph cluster; EACCES: Permission denied (-13) com.ceph.rados.exceptions.RadosException: Failed to connect to the Ceph cluster; EACCES: Permission denied (-13) at com.ceph.rados.RadosBase.throwException(RadosBase.java:94) at com.ceph.rados.RadosBase.handleReturnCode(RadosBase.java:50) at com.ceph.rados.Rados.connect(Rados.java:160) at com.example.demo.CephClient.main(CephClient.java:20)
代码:
Rados cluster = new Rados("admin");
System.out.println("Created cluster handle.");
File f = new File("/etc/ceph/ceph.conf");
cluster.confReadFile(f);
System.out.println("Read the configuration file.");
cluster.connect();
System.out.println("Connected to the cluster.");
ceph.conf
mon initial members = VirtualBox
mon host = xxx.xxx.x.xxxx
public network = xxx.xxx.xxx.xxx/xx
cluster network = xxx.xxx.xxx.xxx/xx
osd journal size = 100
log file = /dev/null
keyring = /etc/ceph/ceph.client.admin.keyring
问题是 ceph.client.admin.keyring 文件权限与 ceph 用户有关。我是 运行 作为 root 的应用程序,这就是为什么出现权限被拒绝异常的原因。
将文件权限更改为 root 后。成功了。
sudo chown root:root filepath