In questa guida ti mostreremo come controllare lo stato del RAID, come verificare il File System ZFS e come riparare i danni a livello di pool in uno storage ZFS su un cluster Proxmox.

I 4 passi per controllare lo stato del RAID, verificare il File System ZFS e sostituire un disco

1. Come controllare lo stato del RAID
2. Come mettere offline il disco che presenta problemi
3. Come verificare il File System ZFS
4. Come riparare i danni a livello di pool in uno storage ZFS

Software utilizzato: Proxmox VE 6 (replicabile su 5 e )

Hardware utilizzato: 3 Appliance A3 Server Aluminum ogniuno equipaggiato con 2 dischi SSD da 512GB e 64GB di RAM.

Tipo Raid: Raid 1
Dischi: sda, sdb
Disco Guasto: sdb
Nome volume: rpool

I nodi li abbiamo chiamati PVE5, PVE6, PVE7.

Prima di cominciare abbiamo creato un cluster Proxmox VE di 3 nodi.

Lancia i seguenti comandi per aggiornarlo, e installa alcuni pacchetti base Debian, utili per eventuali troubleshooting:

Copy
Copy
Copy

1. Come controllare lo stato del RAID

Copy

Lo stato del volume è identificabile chiaramente come online oppure degraded.

Proxmox ZFS, Raid, Sostituzione Disco, Zpool Satus - Degraded

2. Come mettere offline il disco che presenta problemi

Copy

Dopo l’operazione sopra riportata, il volume si presenta così:

Proxmox ZFS, Raid, Sostituzione Disco, Zpool Satus - Offline

A questo punto possiamo fisicamente sostituire il disco “rotto” con un disco nuovo.

Nelle nostre prove, dopo qualche fallimento, rispettando le regole di seguito elencate, non abbiamo più avuto problemi:

Il disco deve essere “nuovo”. Il disco “nuovo” deve essere uguale, come dimensione, al quello che bisogna sostituire. Il disco “nuovo” deve essere vuoto e completamente privo di qualsiasi altro tipo di partizione.

Quelli descritti di seguito sono i passi necessari per l’operazione di “replace”.

Per prima cosa copiamo da un disco funzionante, ed online, la tabella delle partizioni:

Copy

Generiamo un GUID casuale:

Copy

Installiamo il boot loader nel nuovo disco:

Copy

A questo punto posso lanciare l’operazione di replace (nel nostro caso sarà):

Copy

Più in generale il comando da dare è:

Copy

[nome Vecchio device [nome Nuovo device

Altro esempio in una situazione cole la seguente

Proxmox ZFS, Raid, Sostituzione Disco, Zpool Satus - Invalida

Il comando sarà:

Copy

L’operazione di resilvering ricreerà il volume.

Proxmox ZFS, Raid, Sostituzione Disco, Zpool Satus - Resilvering

Attenzione a non riavviare il server durante questa fase, perché c’è il rischio che non esegua più il boot correttamente.

Ad operazione finita il volume si presenterà come segue:

Proxmox ZFS, Raid, Sostituzione Disco, Zpool Satus - Resilvered

Il feedback sull’operazione appena eseguita è visibile a video: 0 errors.

Di seguito mostriamo un esempio di un disco che, prima o poi, andrà sostituito perché inizia a riportare degli errori.

Proxmox ZFS, Raid, Sostituzione Disco, Zpool Satus - Errori

3. Come verificare il Filesystem ZFS

Il filesystem zfs fornisce un comando per eseguire il controllo di routine di tutte le incongruenze.

Questo comando, che si chiama scrub , viene comunemente utilizzato come metodo per rilevare e prevenire errori prima che si traducano in errori hardware o software.

Lo scrub di zfs viene eseguito su Proxmox VE in modo regolare e programmato sul pool, e le informazioni che lo riguardano si possono reperire con il solito comando:

Copy

Proxmox ZFS, Raid, Sostituzione Disco, Zpool Satus - scrub

Qualora si abbia la sensazione che persistano degli errori hardware sul volume zfs , possiamo eseguire una verifica manuale lanciando il comando sul volume specifico:

Copy

Questo comando ha un basso impatto sulle prestazioni del server e, normalmente, non impedisce alle vm di girare correttamente.

Puoi controllare lo stato di esecuzione dello scrub con il comando:

Copy

Il comando mi permette di vedere ciò che sta succedendo sul volume.

Proxmox ZFS, Raid, Sostituzione Disco, Zpool Satus - volume

È possibile interrompere l’operazione di scrub, in ogni momento e in base alle specifiche esigenze, tramite il comando seguente:

Copy

Qualora l’operazione non riuscisse a riparare il volume, il risultato sarà il seguente:

Proxmox ZFS, Raid, Sostituzione Disco, Zpool Satus - corrupted

Il disco guasto sarà messo come “UNAVAIL” e sarà, dunque, necessario procedere alla sostituzione del disco.

Prima di riavviare il server, metti sempre “OFFLINE” il disco da sostituire in modo che venga ignorato durante il boot o si corre il rischio che il server possa bloccarsi in fase di avvio.

Il comando nel nostro caso sarà il seguente:

Copy

Un altro comando che potrebbe essere utile per individuare errori, se avete un controller raid è:

Copy

*X= lettera dell’unità

Riteniamo utile riportare alcune mini-guide, trovate in rete (troverete link alle pagine ufficiali), che spiegano come risolvere alcuni danni al pool zfs.

3. Come riparare i danni a livello di pool in uno storage ZFS

Se esiste un danno ed è nei metadati del pool, e tale danno impedisce l’apertura o l’importazione del pool, sono disponibili due comandi.

Tentare di ripristinare il pool utilizzando uno dei seguenti comandi:

Copy
Copy

Questi comandi tentano di ripristinare le ultime transazioni del pool in uno stato operativo.

È possibile utilizzare il comando di stato (seguente) per vedere un pool danneggiato e i passaggi di ripristino consigliati. Per esempio:

Copy

Il processo di recupero come descritto sopra, è quello che usa il comando:

Copy

Se si tenta di importare un lotto di memoria danneggiato, verranno visualizzati messaggi simili ai seguenti:

Il processo di recupero, come descritto sopra, utilizza il seguente comando:

Copy

Se il pool danneggiato si trova nel file zpool.cache, il problema viene rilevato all’avvio del sistema e il pool danneggiato viene segnalato nel comando:

Copy

Se il pool non si trova nel file zpool.cache, non verrà importato o aperto correttamente, e verranno visualizzati i messaggi del pool danneggiato quando si tenta di importarlo.

Se il pool non può essere ripristinato tramite il metodo di recupero descritto sopra, è necessario ripristinarlo, con tutti i relativi dati, da una copia di backup.

Il processo varia a seconda della configurazione del pool e della strategia di backup.

Innanzitutto, salvare la configurazione visualizzata dal comando di zpool status  in modo da poterla ricreare dopo che il pool è stato distrutto.

Usare questo comando per distruggere il pool:

Copy

Consigliamo, inoltre, di mantenere un file che descriva il layout dei set di dati e le varie proprietà localmente impostate in un luogo sicuro, poiché queste informazioni diventeranno inaccessibili in caso di problemi.

Con la configurazione del pool e il layout del set di dati, è possibile ricostruire la configurazione completa dopo aver distrutto il pool.

I dati possono quindi essere popolati utilizzando qualsiasi strategia di backup o ripristino che si utilizza.

Tale informazioni sopra riportate derivano interamente dall’Oracle Solaris ZFS Administration Guide.

Hai trovato utile questo articolo? Invialo a un amico o condividilo sui social!


Articoli correlati