====== OSD disk replacement ====== 1. Identificare l'OSD in fault: ceph osd tree | grep down 2. Se necessario marcare l'OSD come ''out'' (per default viene marcato automaticamente dopo 600 secondi): ceph osd out osd. 3. Monitorare le operazioni di backfill scatenate: ceph -w | grep backfill 4. Fermare il servizio OSD corrispondente: ceph orch daemon stop osd. 5. Raccogliere e salvare le informazioni riguardo gli OSD (Porre attenzione al campo ''device_paths''): ceph osd metadata -f plain > metadata.json # filtrare per ID con ceph osd metadata -f plain | jq .[] 6. Dal nodo ospitante l'OSD raccogliere informazioni sui device LVM coinvolti (DB/WAL/BLOCK): [root@ceph-data-node ~]# cephadm shell [ceph: root@ceph-data-node /]# ceph-volume lvm list 7. Disabilitare temporaneamente la gestione e il deploy automatico degli OSD aggiungendo la voce ''unmanaged: true'' nel service file degli OSD, ad esempio: ... service_type: osd service_id: non-colocated unmanaged: true ... 8. Applicare le modifiche al servizio: ceph orch apply -i 9. Verificare che il campo PLACEMENT del servizio sia valorizzato a '''': ceph orch ls 10. rimuovere l'OSD dal cluster (''--replace'' permette di "riciclare" l'ID per poterlo riassegnare al disco nuovo in modo da evitare modifiche alla CRUSH map): ceph orch osd rm --zap --replace 11. Verificare nuovamente sul nodo ospitante se l'OSD risulta deconfigurato sui device interessati: [root@ceph-data-node ~]# cephadm shell [ceph: root@ceph-data-node /]# ceph-volume lvm list [ceph: root@ceph-data-node /]# ceph-volume lvm list 12. Sostituire il disco o i dischi in fault. 13. Se il nome dei device sostituiti non รจ cambiato, applicare la configurazione precedente per il deploy degli OSD, altrimenti modificare opportunamente il service file e applicare la configurazione (aggiungere ''--dry-run'' per ottenere una preview delle modifiche): ceph orch apply -i 14. Verificare che il nuovo OSD sia disponibile e che abbia "ereditato" il precedente ID: ceph -s ceph orch ps ceph osd tree ceph osd df