Project

General

Profile

Actions

Bug #40362

open

amending caps with "ceph auth caps" vs using an existing client

Added by Ilya Dryomov almost 5 years ago. Updated over 4 years ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
rbd
Target version:
-
% Done:

0%

Source:
Tags:
Backport:
Regression:
No
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Crash signature (v1):
Crash signature (v2):

Description

$ ceph osd pool create pool1 4
pool 'pool1' created
$ ceph osd pool create pool2 4
pool 'pool2' created
$ ceph auth add client.foo mon 'allow r' osd 'allow rwx pool=pool1'
added key for client.foo
$ ceph auth get-or-create client.foo >keyring
$ rbd create --id foo --keyring keyring --size 1 pool1/img
$ sudo rbd map --id foo --keyring keyring pool1/img
/dev/rbd0

$ ceph auth caps client.foo mon 'allow r' osd 'allow rwx pool=pool1,allow rwx pool=pool2'
updated caps for client.foo
$ rbd create --id foo --keyring keyring --size 1 pool2/img
$ sudo rbd map --id foo --keyring keyring pool2/img
rbd: sysfs write failed
In some cases useful info is found in syslog - try "dmesg | tail".
rbd: map failed: (1) Operation not permitted

This is because the existing libceph instance (created for /dev/rbd0) has tickets that it considers valid and, more importantly, has open connections to some or all OSDs. Invalidating tickets when using an existing libceph instance won't help unless we also force reset all OSD connections, which is probably not a good idea.

Actions

Also available in: Atom PDF