Hey everyone,

I've got a difficult problem with my CephFS that I haven't been able to make any headway with. Maybe you guys can help?


 The problem

I’m trying to provision a volume on a CephFS, using a Ceph cluster installed on Kubernetes (K3s) using Rook, but I’m running into the following error (from the Events in |kubectl describe|:

|Events: Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 4m24s default-scheduler Successfully assigned archie/ceph-loader-7989b64fb5-m8ph6 to archie Normal SuccessfulAttachVolume 4m24s attachdetach-controller AttachVolume.Attach succeeded for volume "pvc-95b6ca46-cf51-4e58-9bb5-114f00aa4267" Warning FailedMount 3m18s kubelet MountVolume.MountDevice failed for volume "pvc-95b6ca46-cf51-4e58-9bb5-114f00aa4267" : rpc error: code = Internal desc = an error (exit status 32) occurred while running mount args: [-t ceph csi-cephfs-nod...@039a3dba-d55c-476f-90f0-8783a18338aa.main-ceph-fs=/volumes/csi/csi-vol-25d616f5-918f-4e15-bfd6-55b866f9aa9f/4bda56a4-5088-451c-90c8-baa83317d5a5 /var/lib/kubelet/plugins/kubernetes.io/csi/rook-ceph.cephfs.csi.ceph.com/3e10b46e93bcc2c4d3d1b343af01ee628c736ffee7e562e99d478bc397dab10d/globalmount -o mon_addr=10.43.233.111:3300/10.43.237.205:3300/10.43.39.81:3300,secretfile=/tmp/csi/keys/keyfile-2996214224,_netdev] stderr: mount error: no mds (Metadata Server) is up. The cluster might be laggy, or you may not be authorized|

I’m kind of new to K8s, and /very/ new to Ceph, so I would love some advice on how to go about debugging this mess.


 General context

*Kubernetes distribution*: K3s

*Kubernetes version(s)*: v1.33.4+k3s1 (master), v1.32.7+k3s1 (workers)

*Ceph*: installed via Rook

*Nodes*: 3

*OS*: Linux (Arch on master, NixOS on workers)


 What I’ve checked/tried

*Note*: Since this is a Rook deployment of Ceph (on Kubernetes), all these checks are performed in the Rook Toolbox <https://rook.io/docs/rook/latest-release/Troubleshooting/ceph-toolbox/> container.


   MDS status / Ceph cluster health

Even I know this is the first go-to when your Ceph cluster is giving you issues. I have the Rook toolbox <https://rook.io/docs/rook/latest-release/Troubleshooting/ceph-toolbox/> running on my K8s cluster, so I went into the toolbox pod and ran:

|$ ceph status cluster: id: 039a3dba-d55c-476f-90f0-8783a18338aa health: HEALTH_OK|

services: mon: 3 daemons, quorum a,c,b (age 7d) mgr: b(active, since 7d), standbys: a mds: 1/1 daemons up, 1 hot standby osd: 3 osds: 3 up (since 7d), 3 in (since 2w)

data: volumes: 1/1 healthy pools: 4 pools, 81 pgs objects: 47 objects, 3.2 MiB usage: 139 MiB used, 502 GiB / 502 GiB avail pgs: 81 active+clean

io: client: 1.2 KiB/s rd, 2 op/s rd, 0 op/s wr

Since the error we started out with |mount error: no mds (Metadata Server) is up|, I checked the |ceph status| output above for the status of the metadata server. As you can see, all the MDS instances are running.


   CephFS Status

|$ ceph fs status main-ceph-fs - 0 clients ============ RANK STATE MDS ACTIVITY DNS INOS DIRS CAPS 0 active main-ceph-fs-a Reqs: 0 /s 143 38 37 0 0-s standby-replay main-ceph-fs-b Evts: 0 /s 159 30 29 0 POOL TYPE USED AVAIL main-ceph-fs-metadata metadata 4176k 158G main-ceph-fs-replicated data 0 158G main-ceph-fs-main-ceph-fs-replicated data 0 158G STANDBY MDS main-ceph-fs-d main-ceph-fs-c MDS version: ceph version 19.2.3 (c92aebb279828e9c3c1f5d24613efca272649e62) squid (stable)|


   Ceph authorizations for MDS

Since the other part of the error indicated that I might not be authorized, I wanted to check what the authorizations were:

|$ ceph auth ls mds.main-ceph-fs-a # main MDS for my CephFS instance key: <base64 key> caps: [mds] allow caps: [mon] allow profile mds caps: [osd] allow * mds.main-ceph-fs-b # standby MDS for my CephFS instance key: <different base64 key> caps: [mds] allow caps: [mon] allow profile mds caps: [osd] allow * ... client.csi-cephfs-node.1 # the client mentioned in the error message key: <another base64 key> caps: [mds] allow rw caps: [mgr] allow rw caps: [mon] allow r caps: [osd] allow rwx tag cephfs metadata=*, allow rw tag cephfs data=* ... # more after this|

Note: |main-ceph-fs| is the name I gave my CephFS file system.

It looks like this should be okay, but I’m not sure. Definitely open to some more insight here.


   PersistentVolumeClaim binding

I checked to make sure the PersistentVolume was provisioned successfully from the PersistentVolumeClaim, and that it bound appropriately:

|$ kubectl get pvc -n archie jellyfin-ceph-pvc NAME STATUS VOLUME CAPACITY jellyfin-ceph-pvc Bound pvc-95b6ca46-cf51-4e58-9bb5-114f00aa4267 180Gi |


   Changing the PVC size to something smaller

I tried changing the PVC’s size from 180GB to 1GB, since I thought it might be a free space issue,but the error persisted.


   Turning off firewalls

Turned off all firewall to see if it was that, and still no luck.


 I’m not quite sure where to go from here.

What am I missing? What context should I add? What should I try? What should I check?


Thank you so much in advance,

Martin
_______________________________________________
ceph-users mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to