i'm stuck at step for storage
Rich (BB code):
XXX@pvirtocbhpewd01:~# /usr/share/pve-manager/migrations/pve-cephx-rotate-service-keys --rotate-all-storage-keys --rotate-admin-key --apply
INFO: Recovery and confirmations may run before the remaining plan can be shown.
Apply this run, including recovery and any requested key confirmations? (y/N) y
INFO: Collecting cluster info.
WARN: the 'cephfs' mount on node 'XXX01' is timed out, left alone: the unmount failed. It remains queued and keeps its previous key until an ordinary unmount succeeds.
WARN: the 'cephfs' mount on node 'XXX02' is timed out, left alone: the unmount failed. It remains queued and keeps its previous key until an ordinary unmount succeeds.
WARN: the 'cephfs' mount on node 'XXX03' is timed out, left alone: the unmount failed. It remains queued and keeps its previous key until an ordinary unmount succeeds.
WARN: the 'cephfs' mount on node 'XXX04' is in use, left alone: /mnt/pve/cephfs: target is busy. It remains queued and keeps its previous key until an ordinary unmount succeeds.
Not touched by this run:
Additional actions not selected: cipher restriction.
Plan
Step 1: rotate 1 selected Ceph user key and rewrite every copy Proxmox VE keeps. Affected CephFS mounts are redone on every node unless something is using them.
Ceph user 'client.admin': staged next to the current key
For each staged Ceph user key, both the current and new keys authenticate until the new key is committed with '--confirm-clients-refreshed USER' or, once every open record is ready, '--confirm-all-clients-refreshed'.
Live sessions of the selected Ceph users:
'client.admin', 9 sessions: XXX01: 2, XXX02: 3, XXX03: 1, XXX04: 3
Possible consumers (host-wide hints, not session attribution):
Kernel hints mean sockets without an owning process.
XXX01: possible kernel client
XXX02: possible kernel client
XXX03: possible kernel client
XXX04: possible kernel client
For staged keys, refresh their consumers after applying: live-migrate every VM, remount every kernel CephFS or RBD mount, and restart other consumers; a dry run then reports who is left.
INFO: the new key of 'client.admin' was staged by an earlier run, rewriting its copies
PASS: a fresh 'client.admin' connection succeeds with the staged key
WARN: the 'cephfs' mount on node 'XXX01' is timed out, left alone: the unmount failed. It remains queued and keeps its previous key until an ordinary unmount succeeds.
WARN: the 'cephfs' mount on node 'XXX02' is timed out, left alone: the unmount failed. It remains queued and keeps its previous key until an ordinary unmount succeeds.
WARN: the 'cephfs' mount on node 'XXX03' is timed out, left alone: the unmount failed. It remains queued and keeps its previous key until an ordinary unmount succeeds.
WARN: the 'cephfs' mount on node 'XXX04' is in use, left alone: /mnt/pve/cephfs: target is busy. It remains queued and keeps its previous key until an ordinary unmount succeeds.
PASS: 'client.admin' has a new 'aes256k' key staged next to its current one; both authenticate until you commit the new one, once every consumer of it is refreshed.
What is left
No authentication check is an error: the service keys and the tickets they hand out are migrated.
Ceph still reports these authentication health checks:
AUTH_INSECURE_CLIENT_KEY_TYPE: 2 auth client entities with insecure key types
AUTH_INSECURE_KEYS_ALLOWED: Monitors are configured to allow auth using insecure key types
AUTH_INSECURE_KEYS_CREATABLE: Monitors are configured to allow creation of insecure key types
AUTH_INSECURE_ROTATING_SERVICE_KEY_TYPE: 4 rotating auth service keys using insecure key types
These recompute on the monitors' next tick; AUTH_INSECURE_ROTATING_SERVICE_KEY_TYPE clears on its own within a few hours.
'ceph health mute <check>' silences the warning about a client key you leave on the old cipher.
Client keys awaiting action:
'client.admin': the new key is staged. Both keys remain valid. CephFS refresh pending: 'cephfs'
on node 'XXX01', 'cephfs' on node 'XXX02', 'cephfs' on node
'XXX03', 'cephfs' on node 'XXX04'. Free busy mounts and resolve node or
mount errors, then rerun with '--apply'.
Left to whoever manages the client that reads them; 'man pveceph' covers what each needs:
client.k8s
WARN: Keep /etc/pve/priv/cephx-key-migration.json until migration completion and access verification. It contains secret keys needed to recover a daemon left behind ('ceph auth import'), so protect it like a keyring.
Done
Yet i put this host in maintenance , no vm , no container, try to umount -l /mnt/pve/cephfs , no luck, so will proceed with reboot i think for all nodes on cluster one by one after put them in maintenance and rerun rotate apply
for node 4 with in use , found why it was an iso file mounted on cdrom on one vm
i think i found possible issue
root@pvirtocbhpewd01:~# ceph fs get cephfs | grep -E 'session_timeout|session_autoclose'
session_timeout 60
session_autoclose 300
root@XXX01:~# dpkg -S /usr/share/pve-manager/migrations/pve-cephx-rotate-service-keys
pve-manager: /usr/share/pve-manager/migrations/pve-cephx-rotate-service-keys
root@XXX01:~# pveversion --verbose | grep -E 'pve-manager|pve-kernel|ceph'
pve-manager: 9.2.18 (running version: 9.2.18/614bede5d65599c6)
ceph: 20.2.4-pve4
ceph-fuse: 20.2.4-pve4
seems that script have 20second for timeout
PVE::Tools::run_command( ['umount', $path], timeout => 20, ...);
timeout hardcoded here
manual umount on my pve node
root@XXX01:~# time umount /mnt/pve/cephfs
echo "RC=$?"
real 1m2.806suser 0m0.000ssys 0m0.003s
RC=0
i didn't find why it take so long , but clearly it's > to hardcoded timeout on script, i modify timeout 20 to 65
PVE 9.2.18
Ceph 20.2.4-pve4
CephFS session_timeout = 60
helper pve-cephx-rotate-service-keys :
timeout => 20 (original)observations :
manual umount : max seen 62.806 s
helper with timeout
timeout 20 s : ko
timeout 60 s : ko
timeout 65 s : success for all 4 nodes
replace 20s with 65s
perl -0pi -e 's/(PVE::Tools::run_command\(\s*\[\x27umount\x27,\s*\$path\],\s*timeout\s*=>\s*)20/$1 65/' \
/usr/share/pve-manager/migrations/pve-cephx-rotate-service-keys