Skip to main content
RunBook Academy

CephXXXIX · RBD TroubleshootingRBD Troubleshooting

Diagnosing RBD authentication failures

Intermediate⏱ ~16 mincephrbd

What you'll learn

  • Recognise the error forms an auth failure takes
  • Verify a credential end to end
  • Diagnose keyring path and permission problems
  • Handle clock skew and capability mismatches

Prerequisites

None — start here.

Verified against Ceph Tentacle 20.2.x · Ceph Squid 19.2.x (supported previous) · cephadm matches the verified Ceph release · podman 4.x · csi-rbd and csi-cephfs current · RBD / CephFS / RGW current (matches Ceph release) · Linux kernel 5.15+ (5.10 minimum) · Ubuntu 24.04 LTS (Ceph host baseline) · Debian 12 (Bookworm) (Ceph host baseline) · Rocky Linux / RHEL / AlmaLinux 9.x (Ceph host baseline) · Proxmox VE 9.x (cross-course integration) · Kubernetes 1.31+ (cross-course integration) · 2026-08-18

Not yet marked complete on this device.

Why this matters in production

Authentication failures produce error messages that describe the symptom rather than the cause — “No such file or directory” for a credential problem is genuinely misleading. A short systematic check runs faster than trying to interpret the message.

The symptom forms

MessageUsual cause
monclient: authenticate NOTE: no keyring foundkeyring file missing from every searched path
authentication error (1) Operation not permittedkey mismatch, or entity does not exist
error opening image: (2) No such file or directorycredential lacks capability on the pool
error connecting to the cluster: (110) Connection timed outnetwork, or wrong monitor addresses
Works, then stops after hoursclock skew

The third is the misleading one: a capability gap on the pool makes the image look absent rather than inaccessible.

The systematic check

# 1. does the entity exist and what can it do?
ceph auth get client.myapp

# 2. does the keyring on the client match?
cat /etc/ceph/ceph.client.myapp.keyring
ceph auth print-key client.myapp     # compare

# 3. can the credential reach the cluster at all?
ceph -n client.myapp --keyring /etc/ceph/ceph.client.myapp.keyring -s

# 4. can it see the pool?
rados -n client.myapp --keyring /etc/ceph/ceph.client.myapp.keyring \
      -p rbd-vms ls | head

# 5. can it open the image?
rbd -n client.myapp --keyring /etc/ceph/ceph.client.myapp.keyring \
    info rbd-vms/vm-disk-01

Each step narrows the problem. A failure at step 3 with success at step 1 means the client-side keyring or configuration is wrong; a failure at step 4 with success at step 3 means the capability is missing.

Common specific causes

Keyring not at a searched path. Ceph looks at /etc/ceph/$cluster.$name.keyring and a few others. A keyring elsewhere needs an explicit --keyring or a keyring = setting.

Permissions. A keyring readable only by root fails for a service running as another user:

ls -l /etc/ceph/ceph.client.myapp.keyring
chown ceph:ceph /etc/ceph/ceph.client.myapp.keyring
chmod 600 /etc/ceph/ceph.client.myapp.keyring

Missing data-pool capability. An image with --data-pool needs capabilities on both pools. Granting only the metadata pool produces an image that opens and then fails to read.

Clock skew. Tickets are time-limited.

ceph -s | grep -i clock
chronyc tracking

Quiz

Knowledge check · 4 questions

  1. Q1. A client reports `error opening image: (2) No such file or directory` but the image is visible with client.admin. What is the likely cause?

  2. Q2. An RBD image using --data-pool requires the client credential to have capabilities on both the metadata pool and the data pool.

  3. Q3. Diagnose a client that has stopped authenticating.

    A Kubernetes node's CSI driver has begun failing to attach RBD volumes with authentication errors. The same credential works from other nodes. The node was rebuilt yesterday from an automated image.

  4. Q4. Why does a systematic check from cluster access down to image access diagnose faster than reading the error message?

Passing score: 75%. Answers are checked in this browser.

Production discipline

Run the layered check — cluster, pool, image — rather than interpreting the error text for authentication problems; the messages are symptom-shaped and one of them actively misleads. Verify keyring ownership against the account that actually runs the client, since a file readable only by root is a common and silent cause.

Cross-course references

  • Kubernetes: distinguishing RBAC denial from a missing resource has the same misleading-message property
  • Linux: permission errors reported as “not found” appear throughout Unix tooling