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 l'installazione del driver md.
Gli array software vengono visti dal sistema come dispositivi virtuali detti multi-disk 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 memorizzati nel superblocco che servono per 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: 4 KiB dall'inizio del disco.
Gli array con metadati versione 0.90 o 1.0 non possono essere suddivisi in partizioni, pertanto il nome dell'array, ad esempio md0 è anche il nome dell'unica partizione che contiene. Gli array di livello 1 con metadati versione 0.90 o 1.0 possono essere usati come partizioni di avvio, ad esempio ESP e /boot. Gli array con metadati versione 1.1 o 1.2 invece possono essere suddivisi in partizioni che vengono indicate come pN, dove N è un numero in base 1, ad esempio md0p1, md0p2, ecc...