Guida verificata con Ubuntu: 20.04
Introduzione
Per Linux Software RAID si intende una particolare tipologia di RAID il cui funzionamento dipende da un driver e non richiede hardware dedicato. Per contro, i sistemi fake RAID possono essere realizzati solo in presenza di una scheda madre compatibile, e gli hardware RAID richiedono specifici controller dedicati.
Il tool software che consente la creazione e la gestione degli array Linux Software RAID è mdadm, la cui installazione comprende il driver md.
Gli array software vengono visti dal sistema come dispositivi virtuali detti multi-disk (md) e assumono una nomenclatura del tipo mdN, dove N è un numero in base zero, ad esempio md0, md1, ecc... Nel paragrafo Metadati viene spiegato come vengono indicate le partizioni all'interno di un array, se supportate.
Livelli RAID supportati
Linear (o JBOD)
RAID 0
RAID 1
RAID 4
RAID 5
RAID 6
RAID 10
Oltre a quasti livelli RAID sono supportate ulteriori modalità, come Container, Faulty e Multipath. Per maggiori informazioni consultare il manuale di md.
Metadati
I metadati sono una piccola quantità di dati memorizzata nel superblocco. Il loro scopo è conservare informazioni sulla struttura e sullo stato dell'array. Le versioni di metadati supportate sono le seguenti:
Versione originale (0.90): supporta array composti da un massimo di 28 dispositivi e ha un limite di 2 TB per gli array di livello 1 o superiore. Il superblocco si trova alla fine del disco. I metadati vengono memorizzati in un modo dipendente dal processore, pertanto gli array non possono essere facilmente spostati su computer con processori diversi.
Nuova versione (1.x): supporta array composti da centinaia di dispositivi. I metadati vengono memorizzati in un formato indipendente dal processore. Il superblocco può trovarsi in una delle seguenti posizioni:
1.0: Alla fine del disco.
1.1: All'inizio del disco.
1.2: A 4 KiB dall'inizio del disco.
Gli array con metadati versione 0.90 e 1.0 non possono essere suddivisi in partizioni, pertanto il nome dell'array, ad esempio md0, corrisponde al nome dell'unica partizione che ne fa parte.
Gli array con metadati versione 1.1 e 1.2 invece possono contenere una o più partizioni che vengono indicate come pN, dove N è un numero in base 1, ad esempio md0p1, md0p2, ecc...
Gli unici array utilizzabili come partizione di avvio (ad esempio ESP o /boot) sono gli array RAID 1 con metadati 0.90 o 1.0.