Finalmente sono riuscito a ravvivare il mio server con a bordo il RAID 5. In questo articolo ti racconto cosa ho fatto e cosa farò per allungarne la vita.

La rinascita di un RAID

24-07-2025

Finalmente ti racconto l’epilogo di questa avventura iniziata qualche mese fa.

Se ti sei perso gli articoli precedenti ti rimando a:

  1. Configurare un RAID software con mdadm su Linux
  2. Uno dei dischi del RAID si è già rotto
  3. Perchè i dischi di un RAID devono essere della stessa marca e modello?

Per risolvere il problema ho optato per la scelta più costosa ma più sicura: comprare un disco di taglia superiore, questa volta ho preso un WD Gold da 12 TB.

WD Gold 12 TB
WD Gold 12 TB (click per ingrandire)

Aggiungo manualmente il disco al RAID

Dopo averlo collegato non sapevo bene cosa aspettarmi. Speravo di non dover toccare nulla e che tutto avrebbe iniziato automagicamente a funzionare.

Così non è stato ma almeno il disco sembra funzionare correttamente perchè il sistema operativo lo vede come /dev/sdb.

Decido quindi di aggiungere manualmente sdb al RAID.

progressify@progressify-server:~$ sudo mdadm --add /dev/md0 /dev/sdb
mdadm: added /dev/sdb

L’output del comando parla da solo, sta funzionando!

Emozionato come un bambino, lancio subito il comando detail per capire cosa stesse succedendo:

progressify@progressify-server:~$ sudo mdadm --detail /dev/md0
/dev/md0:
           Version : 1.2
     Creation Time : Sat Sep 14 13:47:54 2024
        Raid Level : raid5
        Array Size : 29325628416 (27.31 TiB 30.03 TB)
     Used Dev Size : 9775209472 (9.10 TiB 10.01 TB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Mon Jun 30 13:20:34 2025
             State : clean, degraded, recovering 
    Active Devices : 3
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 1

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

    Rebuild Status : 0% complete

              Name : progressify-server:0  (local to host progressify-server)
              UUID : a7a90558:afa35433:81a887fd:7f897739
            Events : 615203

    Number   Major   Minor   RaidDevice State
       0       8       49        0      active sync   /dev/sdd1
       1       8       33        1      active sync   /dev/sdc1
       2       8        1        2      active sync   /dev/sda1
       4       8       16        3      spare rebuilding   /dev/sdb

Il RAID si sta ricostruendo… bene! Ora c’è da attendere qualche ora.

Ho atteso con ansia il completamento con il terrore che qualcosa potesse andare storto anche questa volta. Ho monitorato periodicamente l’avanzamento del processo, ti lascio un po' di output.

All’inizio del processo:

progressify@progressify-server:~$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] 
md0 : active raid5 sdb[4] sdd1[0] sdc1[1] sda1[2]
      29325628416 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
      [>....................]  recovery =  0.5% (52326792/9775209472) finish=801.5min speed=202169K/sec
      bitmap: 9/73 pages [36KB], 65536KB chunk

unused devices: <none>

Dopo circa un paio di ore:

progressify@progressify-server:~$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] 
md0 : active raid5 sdb[4] sdd1[0] sdc1[1] sda1[2]
      29325628416 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
      [===>.................]  recovery = 15.2% (1489642628/9775209472) finish=673.3min speed=205080K/sec
      bitmap: 8/73 pages [32KB], 65536KB chunk

unused devices: <none>

E dopo quasi 5 o 6 ore:

progressify@progressify-server:~$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] 
md0 : active raid5 sdb[4] sdd1[0] sdc1[1] sda1[2]
      29325628416 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/3] [UUU_]
      [=============>.......]  recovery = 66.3% (6485585196/9775209472) finish=425.9min speed=128699K/sec
      bitmap: 5/73 pages [20KB], 65536KB chunk

unused devices: <none>

Poi sono andato a dormire. Il giorno successivo ricontrollo e l’output è il seguente:

progressify@progressify-server:~$ cat /proc/mdstat
Personalities : [raid6] [raid5] [raid4] [raid0] [raid1] [raid10] 
md0 : active raid5 sdb[4] sdd1[0] sdc1[1] sda1[2]
      29325628416 blocks super 1.2 level 5, 512k chunk, algorithm 2 [4/4] [UUUU]
      bitmap: 3/73 pages [12KB], 65536KB chunk

unused devices: <none>

Tutti i dischi sono up: [4/4] [UUUU]

Sembrava che tutto stesse funzionando bene. Ma per essere sicuro ho riavviato il sistema e controllato che non ci fossero problemi.

progressify@progressify-server:~$ sudo mdadm --detail /dev/md0
[sudo] password di progressify: 
/dev/md0:
           Version : 1.2
     Creation Time : Sat Sep 14 13:47:54 2024
        Raid Level : raid5
        Array Size : 29325628416 (27.31 TiB 30.03 TB)
     Used Dev Size : 9775209472 (9.10 TiB 10.01 TB)
      Raid Devices : 4
     Total Devices : 4
       Persistence : Superblock is persistent

     Intent Bitmap : Internal

       Update Time : Tue Jul  1 09:32:06 2025
             State : active 
    Active Devices : 4
   Working Devices : 4
    Failed Devices : 0
     Spare Devices : 0

            Layout : left-symmetric
        Chunk Size : 512K

Consistency Policy : bitmap

              Name : progressify-server:0  (local to host progressify-server)
              UUID : a7a90558:afa35433:81a887fd:7f897739
            Events : 644002

    Number   Major   Minor   RaidDevice State
       0       8       49        0      active sync   /dev/sdd1
       1       8       33        1      active sync   /dev/sdc1
       2       8        1        2      active sync   /dev/sda1
       4       8       16        3      active sync   /dev/sdb

Il RAID si è ricostruito correttamente, tutto funziona come previsto.

Ero super emozionato. Quasi piangevo.

Prossimi step che attuerò per preservare il RAID

In questo periodo mi sono informato e ho letto che esistono software per monitorare lo stato di salute dei dischi. Non si possono prevenire eventi di rottura straordinaria, ma sicuramente posso monitorare meglio i dischi per capire se e quando qualcosa non sta funzionando come dovrebbe.

Vorrei organizzare una strategia di backup, almeno per i dati importanti, così da avere accesso almeno a quelli indispensabili in caso di rotture o periodi di offline.

Infine, dato che all’inizio dell’estate si sono verificati sbalzi di corrente e addirittura periodi di blackout per diverse ore, vorrei prevenire danni installando un UPS.

Continuerò a documentare le mie esperienze

Sto riscuotendo ottimi feedback da questi articoli e ne sono contento! Più di una persona mi ha scritto per chiedermi consigli e aggiornamenti, quindi anche tu continua a seguirmi e ti ricordo che puoi contattarmi nel canale Telegram e nei commenti.

Immagine di copertina generata con Microsoft Designer.

AP

 

Antonio Porcelli @progressify

Antonio Porcelli

@progressify

Commenta l'articolo