Failure adding namespace 'Operation not permitted'
- Dominant language
- Python
- Stars
- 132
- Forks
- 69
- Avg merge
- 1d 7h
- Merged PRs (30d)
- 47
Description
I am going through my first ceph nvmeof testing and am running into an issue where I cannot create namespaces. It seems like the RBD image i created is not able to be seen by the nvmeof container given the errors but i'm not sure why. Any guidance would be much appreciated!
I have created an RBD image manually using
`rbd create --size 2048 rbd/disk01`
I can view this RBD to verify it exists:
```
[root@nor1devlcph01 ceph-nvmeof]# rbd info rbd/disk01
rbd image 'disk01':
size 2 GiB in 512 objects
order 22 (4 MiB objects)
snapshot_count: 0
id: 2a61b0187d9333
block_name_prefix: rbd_data.2a61b0187d9333
format: 2
features: layering, exclusive-lock, object-map, fast-diff, deep-flatten
op_features:
flags:
create_timestamp: Fri Feb 23 11:00:10 2024
access_timestamp: Fri Feb 23 11:00:10 2024
modify_timestamp: Fri Feb 23 11:00:10 2024
```
When I try to create a namespace using: `cephnvmf namespace add --subsystem nqn.2016-06.io.spdk:nor1devlcph01 --rbd-pool rbd --rbd-image disk01 `
I get this error on my CLI:
```
[root@nor1devlcph01 ceph-nvmeof]# cephnvmf namespace add --subsystem nqn.2016-06.io.spdk:nor1devlcph01 --rbd-pool rbd --rbd-image disk01
podman-compose version: 1.0.6
['podman', '--version', '']
using podman version: 4.6.1
['podman', 'network', 'exists', 'ceph-nvmeof_default']
podman run --name=ceph-nvmeof_nvmeof-cli_tmp44046 --rm -i --label io.podman.compose.config-hash=b67723df334cc193e5d32c14d7c9efb9b5625df1b9fb8705f72317519ea1cd9e --label io.podman.compose.project=ceph-nvmeof --label io.podman.compose.version=1.0.6 --label PODMAN_SYSTEMD_UNIT=podman-compose@ceph-nvmeof.service --label com.docker.compose.project=ceph-nvmeof --label com.docker.compose.project.working_dir=/root/git/ceph-nvmeof --label com.docker.compose.project.config_files=docker-compose.yaml --label com.docker.compose.container-number=1 --label com.docker.compose.service=nvmeof-cli --net ceph-nvmeof_default --network-alias nvmeof-cli --tty quay.io/ceph/nvmeof-cli:1.0.0 --server-address 192.168.13.3 --server-port 5500 namespace add --subsystem nqn.2016-06.io.spdk:nor1devlcph01 --rbd-pool rbd --rbd-image disk01
Failure adding namespace to nqn.2016-06.io.spdk:nor1devlcph01: Failure creating bdev bdev_c7a8957c-4d4c-4ef2-99ea-5392c76c8870: Operation not permitted
exit code: 1
```
And I get this in the nvmeof container:
```
INFO:nvmeof:Received request to add a namespace to nqn.2016-06.io.spdk:nor1devlcph01, context:
INFO:nvmeof:Received request to create bdev bdev_60ae41b4-85b3-43b6-9991-df30ad9366f5 from rbd/disk01 (size 0 MiB) with block size 512, will not create image if doesn't exist
[2024-02-23 16:57:03.185249] bdev_rbd.c: 299:bdev_rbd_init_context: *ERROR*: Failed to open specified rbd device
[2024-02-23 16:57:03.185665] bdev_rbd.c: 335:bdev_rbd_init: *ERROR*: Cannot init rbd context for rbd=0x1f1ad20
[2024-02-23 16:57:03.185708] bdev_rbd.c:1170:bdev_rbd_create: *ERROR*: Failed to init rbd device
ERROR:nvmeof:bdev_rbd_create bdev_60ae41b4-85b3-43b6-9991-df30ad9366f5 failed with:
request:
{
"pool_name": "rbd",
"rbd_name": "disk01",
"block_size": 512,
"name": "bdev_60ae41b4-85b3-43b6-9991-df30ad9366f5",
"cluster_name": "cluster_context_0",
"uuid": "60ae41b4-85b3-43b6-9991-df30ad9366f5",
"method": "bdev_rbd_create",
"req_id": 18
}
Got JSON-RPC error response
response:
{
"code": -1,
"message": "Operation not permitted"
}
ERROR:nvmeof:Failure adding namespace to nqn.2016-06.io.spdk:nor1devlcph01: Failure creating bdev bdev_60ae41b4-85b3-43b6-9991-df30ad9366f5: Operation not permitted
[2024-02-23 16:57:03.189787] bdev.c:7158:spdk_bdev_open_ext: *NOTICE*: Currently unable to find bdev with name: bdev_60ae41b4-85b3-43b6-9991-df30ad9366f5
[2024-02-23 16:57:03.189825] bdev_rpc.c: 866:rpc_bdev_get_bdevs: *ERROR*: bdev 'bdev_60ae41b4-85b3-43b6-9991-df30ad9366f5' does not exist
ERROR:nvmeof:Got exception while getting bdev bdev_60ae41b4-85b3-43b6-9991-df30ad9366f5 info
Traceback (most recent call last):
File "/src/control/grpc.py", line 892, in get_bdev_info
bdevs = rpc_bdev.bdev_get_bdevs(self.spdk_rpc_client, name=bdev_name)
File "/usr/lib/python3.9/site-packages/spdk/rpc/bdev.py", line 1553, in bdev_get_bdevs
return client.call('bdev_get_bdevs', params)
File "/usr/lib/python3.9/site-packages/spdk/rpc/client.py", line 203, in call
raise JSONRPCException(msg)
spdk.rpc.client.JSONRPCException: request:
{
"name": "bdev_60ae41b4-85b3-43b6-9991-df30ad9366f5",
"method": "bdev_get_bdevs",
"req_id": 19
}
Got JSON-RPC error response
response:
{
"code": -19,
"message": "No such device"
}
```
Contributor guide
Assessment
This issue has not been assessed yet.