Introduzione

L’utilità mdadmpuò 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 utente sudo. 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.

Attenzione

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
Output
Personalities : 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:

Nota

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
Output
NAME 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
/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
/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
Output
NAME 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
Output
Personalities : 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
Output
Filesystem 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
Output
NAME 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:

Output
mdadm: 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
Output
Personalities : 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
Output
Filesystem 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
Output
NAME 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
Output
Personalities : 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
Output
Filesystem 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
Output
Personalities : 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
Output
NAME 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
Output
Personalities : 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
Output
Filesystem 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
Output
NAME 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
Output
Personalities : 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
Output
Filesystem 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.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.