Introduzione
L’utilità mdadm
può essere usata per creare e gestire array di archiviazione usando le capacità RAID software di Linux. Gli amministratori hanno una grande flessibilità nel coordinare i loro dispositivi di archiviazione individuale e creare dispositivi di archiviazione logici che hanno maggiori prestazioni o caratteristiche di ridondanza.
In questa guida, andremo oltre una serie di diverse configurazioni RAID che possono essere impostate utilizzando un server Ubuntu 16..04.
Prequisiti
Per completare i passi di questa guida, dovreste avere:
- Un utente non root con
sudo
privilegi su un server Ubuntu 16.04: I passi di questa guida saranno completati con un utentesudo
. Per imparare come impostare un account con questi privilegi, seguite la nostra guida alla configurazione iniziale del server Ubuntu 16.04. - Una comprensione di base della terminologia e dei concetti RAID: Mentre questa guida toccherà un po’ di terminologia RAID di sfuggita, una comprensione più completa è molto utile. Per saperne di più sul RAID e per capire meglio quale livello RAID è giusto per te, leggi il nostro articolo di introduzione al RAID.
- Più dispositivi di archiviazione grezzi disponibili sul tuo server: Dimostreremo come configurare vari tipi di array sul server. Come tale, avrete bisogno di alcune unità da configurare. Se state usando DigitalOcean, potete usare i volumi Block Storage per riempire questo ruolo. A seconda del tipo di array, avrete bisogno da un minimo di due a quattro dispositivi di archiviazione.
Resettare i dispositivi RAID esistenti
In questa guida, introdurremo i passi per creare una serie di diversi livelli RAID. Se volete seguire, probabilmente vorrete riutilizzare i vostri dispositivi di archiviazione dopo ogni sezione. Questa sezione può essere consultata per imparare come resettare rapidamente i dispositivi di archiviazione componenti prima di testare un nuovo livello RAID. Salta questa sezione per ora se non hai ancora impostato alcun array.
Questo processo distruggerà completamente l’array e qualsiasi dato scritto su di esso. Assicuratevi di operare sull’array corretto e di aver copiato tutti i dati che dovete conservare prima di distruggere l’array.
Trova gli array attivi nel file /proc/mdstat
digitando:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid0 sdc sdd 209584128 blocks super 1.2 512k chunks unused devices: <none>
Smonta l’array dal filesystem:
- sudo umount /dev/md0
Poi, ferma e rimuovi l’array digitando:
- sudo mdadm --stop /dev/md0
- sudo mdadm --remove /dev/md0
Trova i dispositivi che sono stati usati per costruire l’array con il seguente comando:
Tieni presente che i nomi/dev/sd*
possono cambiare ogni volta che riavvii! Controllali ogni volta per assicurarti che stai operando sui dispositivi corretti.
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disk sdb 100G disk sdc 100G linux_raid_member disk sdd 100G linux_raid_member disk vda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Dopo aver scoperto i dispositivi usati per creare un array, azzera il loro superblocco per riportarli alla normalità:
- sudo mdadm --zero-superblock /dev/sdc
- sudo mdadm --zero-superblock /dev/sdd
Dovresti rimuovere qualsiasi riferimento persistente all’array. Modifica il file /etc/fstab
e commenta o rimuovi il riferimento al tuo array:
- sudo nano /etc/fstab
. . .# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0
Inoltre, commenta o rimuovi la definizione di array dal file /etc/mdadm/mdadm.conf
:
- sudo nano /etc/mdadm/mdadm.conf
. . .# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91
Infine, aggiornate di nuovo il initramfs
:
- sudo update-initramfs -u
A questo punto, dovreste essere pronti a riutilizzare i dispositivi di archiviazione individualmente, o come componenti di un diverso array.
Creazione di un array RAID 0
L’array RAID 0 funziona suddividendo i dati in blocchi e facendone lo striping tra i dischi disponibili. Questo significa che ogni disco contiene una parte dei dati e che più dischi saranno referenziati quando si recuperano informazioni.
- Requisiti: minimo 2 dispositivi di archiviazione
- Beneficio primario: prestazioni
- Cose da tenere a mente: Assicuratevi di avere dei backup funzionali. Un singolo guasto del dispositivo distruggerà tutti i dati nell’array.
Identificare i dispositivi componenti
Per iniziare, trovate gli identificatori per i dischi grezzi che userete:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Come potete vedere sopra, abbiamo due dischi senza un filesystem, ognuno di 100G di dimensione. In questo esempio, a questi dispositivi sono stati dati gli identificatori /dev/sda
e /dev/sdb
per questa sessione. Questi saranno i componenti grezzi che useremo per costruire l’array.
Create the Array
Per creare un array RAID 0 con questi componenti, passateli al comando mdadm --create
. Dovrai specificare il nome del dispositivo che vuoi creare (/dev/md0
nel nostro caso), il livello RAID e il numero di dispositivi:
- sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb
Puoi assicurarti che il RAID sia stato creato con successo controllando il file /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid0 sdb sda 209584128 blocks super 1.2 512k chunks unused devices: <none>
Come puoi vedere nella linea evidenziata, il dispositivo /dev/md0
è stato creato nella configurazione RAID 0 usando i dispositivi /dev/sda
e /dev/sdb
.
Crea e monta il filesystem
Poi, crea un filesystem sull’array:
- sudo mkfs.ext4 -F /dev/md0
Crea un punto di mount per collegare il nuovo filesystem:
- sudo mkdir -p /mnt/md0
Puoi montare il filesystem digitando:
- sudo mount /dev/md0 /mnt/md0
Controlla se il nuovo spazio è disponibile digitando:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Il nuovo filesystem è montato e accessibile.
Salvare il layout dell’array
Per essere sicuri che l’array sia riassemblato automaticamente all’avvio, dovremo modificare il file /etc/mdadm/mdadm.conf
. Puoi scansionare automaticamente l’array attivo e aggiungere il file digitando:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Poi, puoi aggiornare l’initramfs, o il file system iniziale della RAM, in modo che l’array sia disponibile durante il processo di avvio iniziale:
- sudo update-initramfs -u
Aggiungi le nuove opzioni di montaggio del filesystem al file /etc/fstab
per il montaggio automatico all’avvio:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Il tuo array RAID 0 dovrebbe ora essere assemblato e montato automaticamente ad ogni avvio.
Creazione di un array RAID 1
Il tipo di array RAID 1 è implementato dal mirroring dei dati su tutti i dischi disponibili. Ogni disco in un array RAID 1 ottiene una copia completa dei dati, fornendo ridondanza in caso di guasto di un dispositivo.
- Requisiti: minimo 2 dispositivi di archiviazione
- Beneficio primario: Ridondanza
- Cose da tenere a mente: Poiché vengono mantenute due copie dei dati, solo metà dello spazio su disco sarà utilizzabile
Identificare i dispositivi componenti
Per iniziare, trovate gli identificatori per i dischi grezzi che userete:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Come potete vedere sopra, abbiamo due dischi senza filesystem, ognuno di 100G di dimensione. In questo esempio, a questi dispositivi sono stati dati gli identificatori /dev/sda
e /dev/sdb
per questa sessione. Questi saranno i componenti grezzi che useremo per costruire l’array.
Create the Array
Per creare un array RAID 1 con questi componenti, passateli al comando mdadm --create
. Dovrete specificare il nome del dispositivo che desiderate creare (/dev/md0
nel nostro caso), il livello RAID e il numero di dispositivi:
- sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
Se i dispositivi componenti che state usando non sono partizioni con il flag boot
abilitato, probabilmente riceverete il seguente avviso. È sicuro digitare y per continuare:
Outputmdadm: Note: this array has metadata at the start and may not be suitable as a boot device. If you plan to store '/boot' on this device please ensure that your boot-loader understands md/v1.x metadata, or use --metadata=0.90mdadm: size set to 104792064KContinue creating array? y
Lo strumento mdadm
inizierà a fare il mirroring delle unità. Questo può richiedere del tempo per essere completato, ma l’array può essere usato durante questo tempo. Puoi monitorare il progresso del mirroring controllando il file /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid1 sdb sda 104792064 blocks super 1.2 resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/secunused devices: <none>
Come puoi vedere nella prima linea evidenziata, il dispositivo /dev/md0
è stato creato nella configurazione RAID 1 usando i dispositivi /dev/sda
e /dev/sdb
. La seconda linea evidenziata mostra il progresso del mirroring. Puoi continuare la guida mentre questo processo si completa.
Crea e monta il filesystem
Poi, crea un filesystem sull’array:
- sudo mkfs.ext4 -F /dev/md0
Crea un punto di montaggio per collegare il nuovo filesystem:
- sudo mkdir -p /mnt/md0
Puoi montare il filesystem digitando:
- sudo mount /dev/md0 /mnt/md0
Controlla se il nuovo spazio è disponibile digitando:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 99G 60M 94G 1% /mnt/md0
Il nuovo filesystem è montato e accessibile.
Salvare il layout dell’array
Per essere sicuri che l’array venga riassemblato automaticamente all’avvio, dovremo modificare il file /etc/mdadm/mdadm.conf
. Puoi scansionare automaticamente l’array attivo e aggiungere il file digitando:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Poi, puoi aggiornare l’initramfs, o il file system iniziale della RAM, in modo che l’array sia disponibile durante il processo di avvio iniziale:
- sudo update-initramfs -u
Aggiungi le nuove opzioni di montaggio del filesystem al file /etc/fstab
per il montaggio automatico all’avvio:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Il tuo array RAID 1 dovrebbe ora essere assemblato e montato automaticamente ad ogni avvio.
Creazione di un array RAID 5
Il tipo di array RAID 5 è implementato dallo striping dei dati sui dispositivi disponibili. Un componente di ogni striscia è un blocco di parità calcolato. Se un dispositivo si guasta, il blocco di parità e i blocchi rimanenti possono essere usati per calcolare i dati mancanti. Il dispositivo che riceve il blocco di parità viene ruotato in modo che ogni dispositivo abbia una quantità bilanciata di informazioni di parità.
- Requisiti: minimo 3 dispositivi di archiviazione
- Beneficio primario: Ridondanza con più capacità utilizzabile.
- Cose da tenere a mente: Mentre le informazioni di parità sono distribuite, la capacità di un disco sarà usata per la parità. RAID 5 può soffrire di prestazioni molto scarse quando è in uno stato degradato.
Identificare i dispositivi componenti
Per iniziare, trovate gli identificatori per i dischi grezzi che userete:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Come potete vedere sopra, abbiamo tre dischi senza un filesystem, ognuno di 100G di dimensione. In questo esempio, a questi dispositivi sono stati dati gli identificatori /dev/sda
, /dev/sdb
e /dev/sdc
per questa sessione. Questi saranno i componenti grezzi che useremo per costruire l’array.
Creare l’array
Per creare un array RAID 5 con questi componenti, passali al comando mdadm --create
. Dovrete specificare il nome del dispositivo che desiderate creare (/dev/md0
nel nostro caso), il livello RAID e il numero di dispositivi:
- sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
Lo strumento mdadm
inizierà a configurare l’array (in realtà utilizza il processo di ripristino per costruire l’array per motivi di prestazioni). Questo può richiedere del tempo per essere completato, ma l’array può essere usato durante questo tempo. Puoi monitorare il progresso del mirroring controllando il file /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid5 sdc sdb sda 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 recovery = 15.6% (16362536/104792064) finish=7.3min speed=200808K/secunused devices: <none>
Come puoi vedere nella prima linea evidenziata, il dispositivo /dev/md0
è stato creato nella configurazione RAID 5 usando i dispositivi /dev/sda
, /dev/sdb
e /dev/sdc
. La seconda linea evidenziata mostra il progresso della creazione. Puoi continuare la guida mentre questo processo si completa.
Crea e monta il filesystem
Poi, crea un filesystem sull’array:
- sudo mkfs.ext4 -F /dev/md0
Crea un punto di montaggio per collegare il nuovo filesystem:
- sudo mkdir -p /mnt/md0
Puoi montare il filesystem digitando:
- sudo mount /dev/md0 /mnt/md0
Controlla se il nuovo spazio è disponibile digitando:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Il nuovo filesystem è montato e accessibile.
Salvare il layout dell’array
Per essere sicuri che l’array venga riassemblato automaticamente all’avvio, dovremo regolare il file /etc/mdadm/mdadm.conf
.
Prima di regolare la configurazione, controllate di nuovo per assicurarvi che l’array abbia finito di assemblarsi. A causa del modo in cui mdadm
costruisce gli array RAID 5, se l’array è ancora in costruzione, il numero di parti di ricambio nell’array sarà riportato in modo impreciso:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid5 sdc sdb sda 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 unused devices: <none>
L’output sopra mostra che la ricostruzione è completa. Ora, possiamo scansionare automaticamente l’array attivo e aggiungere il file digitando:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Poi, potete aggiornare l’initramfs, o il file system iniziale della RAM, in modo che l’array sia disponibile durante il processo di avvio iniziale:
- sudo update-initramfs -u
Aggiungi le nuove opzioni di montaggio del filesystem al file /etc/fstab
per il montaggio automatico al boot:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Il vostro array RAID 5 dovrebbe ora essere assemblato e montato automaticamente ad ogni avvio.
Creazione di un array RAID 6
Il tipo di array RAID 6 è implementato dallo striping dei dati sui dispositivi disponibili. Due componenti di ogni striscia sono blocchi di parità calcolati. Se uno o due dispositivi falliscono, i blocchi di parità e i blocchi rimanenti possono essere usati per calcolare i dati mancanti. I dispositivi che ricevono i blocchi di parità sono ruotati in modo che ogni dispositivo abbia una quantità bilanciata di informazioni di parità. Questo è simile a un array RAID 5, ma permette il fallimento di due unità.
- Requisiti: minimo 4 dispositivi di archiviazione
- Beneficio primario: doppia ridondanza con più capacità utilizzabile.
- Cose da tenere a mente: Mentre le informazioni di parità sono distribuite, due dischi di capacità saranno usati per la parità. RAID 6 può soffrire di prestazioni molto scarse quando è in uno stato degradato.
Identificare i dispositivi componenti
Per iniziare, trovate gli identificatori per i dischi grezzi che userete:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G disksdd 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Come potete vedere sopra, abbiamo quattro dischi senza un filesystem, ognuno di 100G di dimensione. In questo esempio, a questi dispositivi sono stati dati gli identificatori /dev/sda
, /dev/sdb
, /dev/sdc
e /dev/sdd
per questa sessione. Questi saranno i componenti grezzi che useremo per costruire l’array.
Create the Array
Per creare un array RAID 6 con questi componenti, passateli al comando mdadm --create
. Dovrete specificare il nome del dispositivo che desiderate creare (/dev/md0
nel nostro caso), il livello RAID e il numero di dispositivi:
- sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Lo strumento mdadm
inizierà a configurare l’array (in realtà utilizza il processo di ripristino per costruire l’array per motivi di prestazioni). Questo può richiedere del tempo per essere completato, ma l’array può essere usato durante questo tempo. Puoi monitorare il progresso del mirroring controllando il file /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid6 sdd sdc sdb sda 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/secunused devices: <none>
Come puoi vedere nella prima linea evidenziata, il dispositivo /dev/md0
è stato creato nella configurazione RAID 6 usando i dispositivi /dev/sda
, /dev/sdb
, /dev/sdc
e /dev/sdd
. La seconda linea evidenziata mostra il progresso della costruzione. Puoi continuare la guida mentre questo processo si completa.
Crea e monta il filesystem
Poi, crea un filesystem sull’array:
- sudo mkfs.ext4 -F /dev/md0
Crea un punto di montaggio per collegare il nuovo filesystem:
- sudo mkdir -p /mnt/md0
Puoi montare il filesystem digitando:
- sudo mount /dev/md0 /mnt/md0
Controlla se il nuovo spazio è disponibile digitando:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Il nuovo filesystem è montato e accessibile.
Salvare il layout dell’array
Per essere sicuri che l’array venga riassemblato automaticamente all’avvio, dovremo modificare il file /etc/mdadm/mdadm.conf
. Possiamo scansionare automaticamente l’array attivo e aggiungere il file digitando:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Poi, potete aggiornare l’initramfs, o file system iniziale della RAM, in modo che l’array sia disponibile durante il processo di avvio iniziale:
- sudo update-initramfs -u
Aggiungi le nuove opzioni di montaggio del filesystem al file /etc/fstab
per il montaggio automatico all’avvio:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Il vostro array RAID 6 dovrebbe ora essere assemblato e montato automaticamente ad ogni avvio.
Creazione di un array RAID 10 complesso
Il tipo di array RAID 10 è tradizionalmente implementato creando un array RAID 0 a strisce composto da serie di array RAID 1. Questo tipo di array annidato offre sia ridondanza che alte prestazioni, a spese di grandi quantità di spazio su disco. L’utilità mdadm
ha un proprio tipo di RAID 10 che fornisce lo stesso tipo di benefici con una maggiore flessibilità. Non è creato da array nidificati, ma ha molte delle stesse caratteristiche e garanzie. Useremo qui il mdadm
RAID 10.
- Requisiti: minimo 3 dispositivi di archiviazione
- Beneficio primario: prestazioni e ridondanza
- Cose da tenere a mente: La quantità di riduzione della capacità dell’array è definita dal numero di copie di dati che si sceglie di conservare. Il numero di copie memorizzate con RAID 10 stile
mdadm
è configurabile.
Per impostazione predefinita, due copie di ogni blocco di dati saranno memorizzate in quello che viene chiamato il layout “vicino”. I possibili layout che dettano come ogni blocco di dati viene memorizzato sono:
- vicino: La disposizione predefinita. Le copie di ogni chunk sono scritte consecutivamente durante lo striping, il che significa che le copie dei blocchi di dati saranno scritte intorno alla stessa parte di più dischi.
- lontano: La prima copia e le successive sono scritte in parti diverse dei dispositivi di memorizzazione nell’array. Per esempio, il primo chunk potrebbe essere scritto vicino all’inizio di un disco, mentre il secondo chunk verrebbe scritto a metà strada su un disco diverso. Questo può dare alcuni guadagni in termini di prestazioni di lettura per i tradizionali dischi rotanti a spese delle prestazioni di scrittura.
- offset: Ogni striscia viene copiata con un offset di un disco. Questo significa che le copie sono sfalsate l’una dall’altra, ma ancora vicine sul disco. Questo aiuta a minimizzare la ricerca eccessiva durante alcuni carichi di lavoro.
Puoi scoprire di più su questi layout controllando la sezione “RAID10” di questa pagina man
:
- man 4 md
Puoi anche trovare questa pagina man
online qui.
Identificare i dispositivi componenti
Per iniziare, trovate gli identificatori per i dischi grezzi che userete:
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME SIZE FSTYPE TYPE MOUNTPOINTsda 100G disksdb 100G disksdc 100G disksdd 100G diskvda 20G disk ├─vda1 20G ext4 part /└─vda15 1M part
Come potete vedere sopra, abbiamo quattro dischi senza filesystem, ognuno di 100G di dimensione. In questo esempio, a questi dispositivi sono stati dati gli identificatori /dev/sda
, /dev/sdb
, /dev/sdc
e /dev/sdd
per questa sessione. Questi saranno i componenti grezzi che useremo per costruire l’array.
Create the Array
Per creare un array RAID 10 con questi componenti, passateli al comando mdadm --create
. Dovrai specificare il nome del dispositivo che vuoi creare (/dev/md0
nel nostro caso), il livello RAID e il numero di dispositivi.
Puoi impostare due copie usando il layout vicino senza specificare un layout e un numero di copie:
- sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Se vuoi usare un layout diverso, o cambiare il numero di copie, dovrai usare l’opzione --layout=
, che prende un layout e un identificatore di copia. I layout sono n per near, f per far, e o per offset. Il numero di copie da memorizzare viene aggiunto dopo.
Per esempio, per creare un array che ha 3 copie nel layout di offset, il comando sarebbe come questo:
- sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Lo strumento mdadm
inizierà a configurare l’array (in realtà usa il processo di recupero per costruire l’array per ragioni di performance). Questo può richiedere del tempo per essere completato, ma l’array può essere usato durante questo tempo. Puoi monitorare il progresso del mirroring controllando il file /proc/mdstat
:
- cat /proc/mdstat
OutputPersonalities : md0 : active raid10 sdd sdc sdb sda 209584128 blocks super 1.2 512K chunks 2 near-copies resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/secunused devices: <none>
Come puoi vedere nella prima linea evidenziata, il dispositivo /dev/md0
è stato creato nella configurazione RAID 10 usando i dispositivi /dev/sda
, /dev/sdb
, /dev/sdc
e /dev/sdd
. La seconda area evidenziata mostra il layout che è stato usato per questo esempio (2 copie nella configurazione vicina). La terza area evidenziata mostra il progresso della costruzione. Puoi continuare la guida mentre questo processo si completa.
Crea e monta il filesystem
Poi, crea un filesystem sull’array:
- sudo mkfs.ext4 -F /dev/md0
Crea un punto di montaggio per collegare il nuovo filesystem:
- sudo mkdir -p /mnt/md0
Puoi montare il filesystem digitando:
- sudo mount /dev/md0 /mnt/md0
Controlla se il nuovo spazio è disponibile digitando:
- df -h -x devtmpfs -x tmpfs
OutputFilesystem Size Used Avail Use% Mounted on/dev/vda1 20G 1.1G 18G 6% //dev/md0 197G 60M 187G 1% /mnt/md0
Il nuovo filesystem è montato e accessibile.
Salvare il layout dell’array
Per essere sicuri che l’array venga riassemblato automaticamente all’avvio, dovremo modificare il file /etc/mdadm/mdadm.conf
. Possiamo scansionare automaticamente l’array attivo e aggiungere il file digitando:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Poi, potete aggiornare l’initramfs, o file system iniziale della RAM, in modo che l’array sia disponibile durante il processo di avvio iniziale:
- sudo update-initramfs -u
Aggiungi le nuove opzioni di montaggio del filesystem al file /etc/fstab
per il montaggio automatico all’avvio:
- echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab
Il vostro array RAID 10 dovrebbe ora essere assemblato e montato automaticamente ad ogni avvio.
Conclusione
In questa guida abbiamo dimostrato come creare vari tipi di array usando l’utilità software RAID di Linux mdadm
. Gli array RAID offrono alcuni interessanti miglioramenti in termini di ridondanza e prestazioni rispetto all’utilizzo di più dischi singolarmente.
Una volta scelto il tipo di array necessario per il proprio ambiente e creato il dispositivo, è necessario imparare come eseguire la gestione quotidiana con mdadm
. La nostra guida su come gestire gli array RAID con mdadm
su Ubuntu 16.04 può aiutarvi ad iniziare.