User Tools

Site Tools


strutture:lnf:dr:calcolo:sistemi:ceph:osd_replacement

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
strutture:lnf:dr:calcolo:sistemi:ceph:osd_replacement [2024/09/19 12:58] rorru@infn.itstrutture:lnf:dr:calcolo:sistemi:ceph:osd_replacement [2025/04/23 09:41] (current) rorru@infn.it
Line 1: Line 1:
 +====== 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.<ID>
 +
 +3. Monitorare le operazioni di backfill scatenate:
 +  
 +  ceph -w | grep backfill
 +  
 +4. Fermare il servizio OSD corrispondente:
 +  
 +  ceph orch daemon stop osd.<ID>
 +  
 +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 .[<ID>]
 +  
 +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 <ID> 
 +  
 +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 <service_file> 
 +  
 +9. Verificare che il campo PLACEMENT del servizio sia valorizzato a ''<unmanaged>'':
 +  
 +  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 <ID>  --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 <DB/WAL_device> 
 +  [ceph: root@ceph-data-node /]# ceph-volume lvm list <BLOCK_device>
 +
 +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 <service_file> 
 +  
 +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
 +  
 +15. Se il recovery dovesse impiegare molto tempo per terminare e/o la mole di dati interessati è consistente, è possibile velocizzare la procedura di recovery con il seguente comando: 
 +  ceph config set osd osd_mclock_profile high_recovery_ops 
 +Attenzione: in questo modo il cluster prediligerà le operazioni di recovery potenzailmente a discapito del traffico verso i client, quindi utilizzare solo in casi appropriati.
 +Una volta terminate le operazioni di recovery, ripristinare il normale funzionamento con: 
 +  ceph config set osd osd_mclock_profile balanced

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki