Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

4.11. Come ripristinare un file system

Se si verifica il fallimento dei nodi ed il file system è stato montato, il journaling del file system permette un processo di ripristino molto rapido. Tuttavia, se un dispositivo di storage perde alimentazione o è fisicamente scollegato, in questi casi si potrebbe verificare una corruzione del file system. (Il Journaling non può essere usato per eseguire il ripristino da errori che riguardano il sottosistema di storage.) Se si verifica questo tipo di corruzione è possibile ripristinare il normale funzionamento del GFS2 utilizzando il comando fsck.gfs2.

Importante

Il comando fsck.gfs2 deve essere eseguito solo su di un file system non montato da tutti i nodi.

Importante

Non eseguire il controllo del file system GFS2 al momento dell'avvio utilizzando il comando fsck.gfs2. Il comando fsck.gfs2 non è in grado di determinare durante questo processo se il file system sia stato montato da un altro nodo presente nel cluster. Eseguire il comando fsck.gfs2 manualmente dopo il riavvio del sistema.
Per essere sicuri che il comando fsck.gfs2 non venga eseguito su un file system GFS2 al momento dell'avvio, modificare /etc/fstab in modo tale che le ultime due colonne per il mount point del file system GFS2 riportino "0 0" e non "1 1" (o qualsiasi altro numero), come riportato nel seguente esempio:
/dev/VG12/lv_svr_home   /svr_home       gfs2     defaults,noatime,nodiratime,noquota     0 0

Nota

Se avete precedentemente utilizzato il comando gfs_fsck sui file system GFS, vi informiamo che il comando fsck.gfs2 differisce da alcune versioni precedenti di gfs_fsck nel modo di seguito riportato:
  • La selezione di Ctrl+C durante l'esecuzione di fsck.gfs2 interrompe e mostra un prompt il quale richiederà all'utente se abortire il comando, saltare il resto della fase corrente o continuare la processazione.
  • È possibile aumentare il livello di verbosità utilizando il flag -v. Aggiungendo un secondo flag -v aumenterete ulteriormente tale livello.
  • È possibile diminuire il livello di verbosità utilizando il flag -q. Aggiungendo un secondo flag -q diminuirete ulteriormente tale livello.
  • L'opzione -n apre un file system in modalità di sola lettura, e risponderà automaticamente no ad ogni richiesta. L'opzione fornisce un modo attraverso il quale si cercherà di utilizzare il comando per rilevare la presenza di errori, senza però permettere al comando fsck.gfs2 di essere implementato.
Consultate la pagina man di fsck.gfs2 per informazioni aggiuntive su altre opzioni del comando.
L'esecuzione del comando fsck.gfs2 necessita di una memoria del sistema superiore alla memoria usata per il sistema operativo e dal kernel. Ogni blocco della memoria nel file system GFS2 ha bisogno di circa cinque bit di memoria aggiuntiva o 5/8 di byte. Per questo motivo per una stima di byte della memoria necessari per eseguire il comando fsck.gfs2 sul file system, determinare il numero di blocchi contenuti dal file system e moltiplicare quel numero per 5/8.
Per esempio, per determinare approssimativamente la quantità di memoria necessaria per eseguire il comando fsck.gfs2 su di un file system GFS2 di 16TB con una dimensione del blocco di 4K, determinare prima il numero di blocchi di memoria contenuti nel file system, e dividere successivamente 16Tb con 4K.
 17592186044416 / 4096 = 4294967296
Poichè questo file system contiene 4294967296 blocchi, moltiplicare quel numero con 5/8 in modo da determinare il numero di byte della memoria necessari:
4294967296 * 5/8 = 2684354560
Questo file system ha bisogno di 2.6GB circa di memoria libera per eseguire il comando fsck.gfs2. Se la dimensione del blocco era 1K, l'esecuzione del comando fsck.gfs2 avrà bosogno di quattro volte la memoria, o approsimativamente di 11GB.

Utilizzo

fsck.gfs2 -y BlockDevice
-y
Con il flag -y tutte le domande verranno risposte con un yes. Con -y, il comando fsck.gfs2 non vi richiederà alcuna risposta prima di eseguire le modifiche.
BlockDevice
Specifica il dispositivo a blocchi dove risiede il file system GFS2.

Esempio

In questo esempio il file system GFS2 che risiede sul dispositivo a blocchi /dev/testvol/testlv viene riparato. Tutte le richieste di riparazione fatte vengono risposte automaticamente con yes.
[root@dash-01 ~]# fsck.gfs2 -y /dev/testvg/testlv
Initializing fsck
Validating Resource Group index.
Level 1 RG check.
(level 1 passed)
Clearing journals (this may take a while)...
Journals cleared.
Starting pass1
Pass1 complete
Starting pass1b
Pass1b complete
Starting pass1c
Pass1c complete
Starting pass2
Pass2 complete
Starting pass3
Pass3 complete
Starting pass4
Pass4 complete
Starting pass5
Pass5 complete
Writing changes to disk
fsck.gfs2 complete