Dimensione: 5169
Commento:
|
Dimensione: 7006
Commento:
|
Le cancellazioni sono segnalate in questo modo. | Le aggiunte sono segnalate in questo modo. |
Linea 20: | Linea 20: |
* '''RAID 0''' | * '''RAID 0''' (esclusi gli array con metadati versione '''0.90''') |
Linea 31: | Linea 31: |
* Versione originale ('''0.90'''): supporta array composti da un massimo di 28 dispositivi. Per gli array di '''livello 1''' o superiore ha un limite di 2 TB per dispositivo. Il superblocco si trova alla fine del disco. Il modo in cui vengono memorizzati i metadati dipende 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. Il modo in cui vengono memorizzati i metadati è indipendente dal processore. Il superblocco può trovarsi in una delle seguenti posizioni:<<BR>> |
* Versione originale ('''0.90'''): supporta array composti da un massimo di 28 elementi con una dimensione massima di 2 TB per elemento. Non supporta il '''livello 0'''. Il superblocco si trova alla fine del disco. Il modo in cui vengono memorizzati i metadati dipende dal processore, pertanto gli array non possono essere facilmente spostati fra computer con processori diversi. * Nuova versione ('''1.x'''): supporta array composti da centinaia di elementi. Il modo in cui vengono memorizzati i metadati è indipendente dal processore. Il superblocco può trovarsi in una delle seguenti posizioni:<<BR>> |
Linea 36: | Linea 36: |
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.<<BR>> Gli array con metadati versione '''1.1''' e '''1.2''' invece possono contenere una o più partizioni che vengono indicate come '''p''N''''', dove '''''N''''' è un numero in base 1, ad esempio '''md0p1''', '''md0p2''', ecc...<<BR>> 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'''. |
== Peculiarità dei metadati versione 0.90 e 1.0 == I metadati versione '''0.90''' o '''1.0''' sono accomunati dal fatto che il superblocco si trova alla fine del disco. Da questa caratteristica derivano diverse peculiarità.<<BR>><<BR>> Se il primo elemento dell'array è una partizione, l'array sarà privo di tabella delle partizioni e avrà il medesimo file system della partizione che funge da primo elemento. Ad esempio, se l'array '''md0''' è composto dalle partizioni '''sda1''' ed '''sdb1''' e la partizione '''sda1''' ha file system '''fat32''', '''md0''' sarà un dispositivo virtuale privo di tabella delle partizioni con file system '''fat32'''.<<BR>><<BR>> Gli array di '''livello 1''' inoltre mantengono inalterato il file system e tutti i dati della prima partizione che li costituisce. Ad esempio, se l'array '''md0''' di '''livello 1''' è costituito dalle partizioni '''sda1''' ed '''sdb1''' (dove '''sda1''' è una partizione formattata e contiene dei dati), '''md0''' conterrà gli stessi dati inalterati di '''sda1'''. Trattandosi di un array di '''livello 1''', i dati verranno replicati perfettamente su '''sdb1'''. Di conseguenza l'eventuale file system e i dati di '''sdb1''' verranno distrutti.<<BR>><<BR>> Inoltre, sempre in riferimento agli array di '''livello 1''', quando l'array non è attivo le partizioni che lo compongono sono accessibili in lettura e scrittura singolarmente, in modo indipendente. Se viene modificato il contenuto della partizione che funge da primo elemento dell'array, quando l'array viene riassemblato queste modifiche vengono replicate sugli altri elementi dell'array. Al contrario se viene modificato il contenuto di un altro elemento dell'array, quando l'array viene riassemblato queste modifiche non vengono mantenute e viene ripristinata una perfetta replica del primo elemento dell'array. Ad esempio, se '''sda1''' e '''sdb1''' sono gli elementi costituenti di '''md0''', ed '''sda1''' è il primo elemento dell'array, quando '''md0''' non è attivo è possibile accedere in lettura e scrittura alle due partizioni in modo indipendente. Essendo '''sda1''' il primo elemento dell'array, qualsiasi modifica apportata al suo contenuto verrà poi replicata su '''sdb1''' quando '''md0''' verrà riassemblato. Al contrario le modifiche apportate a '''sdb1''' andranno perse, rimpiazzate da una perfetta replica di '''sda1'''. |
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 software 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 elementi che compongono un array possono essere interi dischi, ad esempio sda ed sdb, oppure singole partizioni, ad esempio sda1 ed sdb1. Ciò significa che sugli stessi dischi possono coesistere diversi livelli RAID. Ad esempio è possibile creare un RAID 1 usando le partizioni sda1 ed sdb1 e un RAID 0 con le partizioni sda2 ed sdb2.
Nomenclatura degli array
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...
Le partizioni all'interno di un array vengono indicate come pN, dove N è un numero in base 1, ad esempio md0p1, md0p2, ecc... Tuttavia in casi particolari il solo nome dell'array (mdN senza pN) può riferirsi all'unica partizione presente nell'array. Per maggiori dettagli consultare il paragrafo Metadati.
Livelli RAID supportati
Linear (o JBOD)
RAID 0 (esclusi gli array con metadati versione 0.90)
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 elementi con una dimensione massima di 2 TB per elemento. Non supporta il livello 0. Il superblocco si trova alla fine del disco. Il modo in cui vengono memorizzati i metadati dipende dal processore, pertanto gli array non possono essere facilmente spostati fra computer con processori diversi.
Nuova versione (1.x): supporta array composti da centinaia di elementi. Il modo in cui vengono memorizzati i metadati è 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.
Peculiarità dei metadati versione 0.90 e 1.0
I metadati versione 0.90 o 1.0 sono accomunati dal fatto che il superblocco si trova alla fine del disco. Da questa caratteristica derivano diverse peculiarità.
Se il primo elemento dell'array è una partizione, l'array sarà privo di tabella delle partizioni e avrà il medesimo file system della partizione che funge da primo elemento. Ad esempio, se l'array md0 è composto dalle partizioni sda1 ed sdb1 e la partizione sda1 ha file system fat32, md0 sarà un dispositivo virtuale privo di tabella delle partizioni con file system fat32.
Gli array di livello 1 inoltre mantengono inalterato il file system e tutti i dati della prima partizione che li costituisce. Ad esempio, se l'array md0 di livello 1 è costituito dalle partizioni sda1 ed sdb1 (dove sda1 è una partizione formattata e contiene dei dati), md0 conterrà gli stessi dati inalterati di sda1. Trattandosi di un array di livello 1, i dati verranno replicati perfettamente su sdb1. Di conseguenza l'eventuale file system e i dati di sdb1 verranno distrutti.
Inoltre, sempre in riferimento agli array di livello 1, quando l'array non è attivo le partizioni che lo compongono sono accessibili in lettura e scrittura singolarmente, in modo indipendente. Se viene modificato il contenuto della partizione che funge da primo elemento dell'array, quando l'array viene riassemblato queste modifiche vengono replicate sugli altri elementi dell'array. Al contrario se viene modificato il contenuto di un altro elemento dell'array, quando l'array viene riassemblato queste modifiche non vengono mantenute e viene ripristinata una perfetta replica del primo elemento dell'array. Ad esempio, se sda1 e sdb1 sono gli elementi costituenti di md0, ed sda1 è il primo elemento dell'array, quando md0 non è attivo è possibile accedere in lettura e scrittura alle due partizioni in modo indipendente. Essendo sda1 il primo elemento dell'array, qualsiasi modifica apportata al suo contenuto verrà poi replicata su sdb1 quando md0 verrà riassemblato. Al contrario le modifiche apportate a sdb1 andranno perse, rimpiazzate da una perfetta replica di sda1.
Eliminare un array
Nei passaggi seguenti sostituire /dev/mdN con l'array da eliminare, ad esempio /dev/md0, e /dev/sdX con i dispositivi o le partizioni che lo compongono, ad esempio /dev/sda o /dev/sda1.
Se montato, smontare l'array digitando il seguente comando nel terminale:
sudo umount /dev/mdN
Rimuovere da fstab tutti i riferimenti all'array o a sue partizioni, se presenti.
Disattivare l'array digitando il seguente comando nel terminale:
sudo mdadm --stop /dev/mdN
Rimuovere i metadati presenti sui dispositivi o partizioni che compongono l'array digitando per ciascuno di essi il seguente comando nel terminale:
sudo mdadm --zero-superblock /dev/sdX
Aprire con un editor di testo e con i privilegi di amministrazione il file /etc/mdadm/mdadm.conf.
Rimuovere o commentare la riga che fa riferimento all'array che si intende eliminare. La riga, se presente, avrà un formato di questo tipo:
ARRAY /dev/mdN metadata=N.N name=mdadmwrite:N UUID=XXXXXXXX:XXXXXXXX:XXXXXXXX:XXXXXXXX
- Salvare il file e chiudere l'editor di testo.
Aggiornare initramfs digitando il seguente comando nel terminale:
sudo update-initramfs -u