Come Creare Arrays RAID con mdadm su Ubuntu 22.04

Introduzione

L’utilità mdadm può essere utilizzata per creare e gestire array di archiviazione utilizzando le capacità di RAID software di Linux. Gli amministratori hanno grande flessibilità nel coordinare i loro dispositivi di archiviazione individuali e creare dispositivi di archiviazione logica con migliori prestazioni o caratteristiche di ridondanza.

In questa guida, verranno eseguite diverse configurazioni RAID che possono essere impostate utilizzando un server Ubuntu 22.04.

Prerequisiti

Per seguire i passaggi di questa guida, avrai bisogno di:

  • A non-root user with sudo privileges on an Ubuntu 22.04 server. To learn how to set up an account with these privileges, follow our Ubuntu 22.04 initial server setup guide.
  • A basic understanding of RAID terminology and concepts. To learn more about RAID and what RAID level is right for you, read our introduction to RAID article.
  • Diversi dispositivi di archiviazione disponibili sul tuo server. Gli esempi in questo tutorial mostrano come configurare vari tipi di array sul server. Pertanto, avrai bisogno di alcuni dischi da configurare.
  • A seconda del tipo di array, avrai bisogno di da due a quattro dispositivi di archiviazione. Questi dischi non devono essere formattati prima di seguire questa guida.

Info: A causa dell’inefficienza delle configurazioni RAID su server virtuali privati, non consigliamo di implementare una configurazione RAID su droplets DigitalOcean. L’efficienza della replica del disco nel data center rende trascurabili i vantaggi di un RAID rispetto a una configurazione su hardware baremetal. Questo tutorial mira a essere un riferimento per una configurazione RAID convenzionale.

Ripristino dei Dispositivi RAID Esistenti (Opzionale)

È possibile saltare questa sezione se non si è ancora configurato alcun array. Questa guida presenterà diversi livelli di RAID. Se desideri seguirla e completare ogni livello di RAID per i tuoi dispositivi, probabilmente vorrai riutilizzare i tuoi dispositivi di archiviazione dopo ogni sezione. Questa specifica sezione Ripristino dei Dispositivi RAID Esistenti può essere consultata per reimpostare i tuoi dispositivi di archiviazione componenti prima di testare un nuovo livello di RAID.

Avviso: Questo processo distruggerà completamente l’array e tutti i dati in esso scritti. Assicurati di operare sull’array corretto e di aver copiato tutti i dati che desideri conservare prima di distruggere l’array.

Inizia trovando gli array attivi nel file /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdc[1] sdd[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

Quindi smonta l’array dal filesystem:

  1. sudo umount /dev/md0

Ora arresta e rimuovi l’array:

  1. sudo mdadm --stop /dev/md0

Trova i dispositivi utilizzati per creare l’array con il seguente comando:

Avviso: Ricorda che i nomi /dev/sd* possono cambiare ogni volta che riavvii. Verificali ogni volta per assicurarti di operare sui dispositivi corretti.

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G linux_raid_member disk sdb 100G linux_raid_member disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

Dopo aver scoperto i dispositivi utilizzati per creare un array, azzera il loro superblock che contiene i metadati per la configurazione RAID. Azzerare questo valore elimina i metadati del RAID e li ripristina alla normalità:

  1. sudo mdadm --zero-superblock /dev/sda
  2. sudo mdadm --zero-superblock /dev/sdb

È consigliato rimuovere anche eventuali riferimenti persistenti all’array. Modifica il file /etc/fstab e commenta o rimuovi il riferimento al tuo array. Puoi commentarlo inserendo un simbolo # all’inizio della riga, utilizzando nano o il tuo editor di testo preferito:

  1. sudo nano /etc/fstab
/etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

Commenta o rimuovi anche la definizione dell’array dal file /etc/mdadm/mdadm.conf:

  1. 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, aggiorna nuovamente l’initramfs in modo che durante l’avvio anticipato non tenti di portare online un array non disponibile:

  1. sudo update-initramfs -u

Da qui, dovresti essere pronto a riutilizzare i dispositivi di archiviazione individualmente o come componenti di un array diverso.

Creazione di un array RAID 0

L’array RAID 0 funziona suddividendo i dati in blocchi e distribuendoli sui dischi disponibili. Ciò significa che ciascun disco contiene una parte dei dati e che più dischi verranno referenziati durante il recupero delle informazioni.

  • Requisiti: Un minimo di 2 dispositivi di archiviazione.
  • Vantaggio principale: Prestazioni in termini di lettura/scrittura e capacità.
  • Cose da tenere presente: Assicurati di avere backup funzionali. La rottura di un singolo dispositivo distruggerà tutti i dati nell’array.

Identificazione dei Dispositivi Componenti

Per iniziare, trova gli identificatori dei dischi grezzi che utilizzerai:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

In questo esempio, hai due dischi senza file system, ognuno di 100G di dimensione. A questi dispositivi sono stati assegnati gli identificatori /dev/sda e /dev/sdb per questa sessione e saranno i componenti grezzi utilizzati per costruire l’array.

Creazione dell’Array

Per creare un array RAID 0 con questi componenti, passali al comando mdadm --create. Dovrai specificare il nome del dispositivo che desideri creare, il livello RAID e il numero di dispositivi. In questo esempio di comando, nominerai il dispositivo /dev/md0, e includi i due dischi che formeranno l’array:

  1. sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb

Conferma che il RAID sia stato creato con successo controllando il file /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid0 sdb[1] sda[0] 209584128 blocks super 1.2 512k chunks unused devices: <none>

Questo output rivela che il dispositivo /dev/md0 è stato creato nella configurazione RAID 0 utilizzando i dispositivi /dev/sda e /dev/sdb.

Creazione e Montaggio del Filesystem

Successivamente, crea un filesystem sull’array:

  1. sudo mkfs.ext4 -F /dev/md0

Quindi, crea un punto di mount per collegare il nuovo filesystem:

  1. sudo mkdir -p /mnt/md0

Puoi montare il filesystem con il seguente comando:

  1. sudo mount /dev/md0 /mnt/md0

Dopo, verifica se lo spazio nuovo è disponibile:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 196G 61M 186G 1% /mnt/md0

Il nuovo filesystem è ora montato e accessibile.

Salvataggio della Configurazione dell’Array

Per assicurarti che l’array venga riassimilato automaticamente all’avvio, dovrai modificare il file /etc/mdadm/mdadm.conf. Puoi eseguire la scansione automatica dell’array attivo e aggiungere il file con quanto segue:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

In seguito, puoi aggiornare l’initramfs, o sistema di file RAM iniziale, in modo che l’array sia disponibile durante la fase di avvio anticipata:

  1. sudo update-initramfs -u

Aggiungi le nuove opzioni di mount del filesystem al file /etc/fstab per il montaggio automatico all’avvio:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Il tuo array RAID 0 si assemblerà e si monterà automaticamente ad ogni avvio.

Ora hai finito con la configurazione del tuo set RAID. Se vuoi provare un RAID diverso, segui le istruzioni di ripristino all’inizio di questo tutorial per procedere con la creazione di un nuovo tipo di array RAID.

Creazione di un Array RAID 1

Il tipo di array RAID 1 viene implementato mediante la duplicazione dei dati su tutti i dischi disponibili. Ogni disco in un array RAID 1 ottiene una copia completa dei dati, garantendo la ridondanza in caso di guasto del dispositivo.

  • Requisiti: Minimo di 2 dispositivi di archiviazione.
  • Vantaggio principale: Ridondanza tra due dispositivi di archiviazione.
  • Cose da tenere presente: Poiché vengono mantenute due copie dei dati, sarà utilizzabile solo la metà dello spazio disco.

Identificazione dei Dispositivi Componenti

Per iniziare, trova gli identificatori dei dischi grezzi che utilizzerai:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

In questo esempio, hai due dischi senza un filesystem, ciascuno grande 100G. Questi dispositivi sono stati identificati come /dev/sda e /dev/sdb per questa sessione e saranno i componenti grezzi che utilizzerai per creare l’array.

Creazione dell’Array

Per creare un array RAID 1 con questi componenti, passali al comando mdadm --create. Dovrai specificare il nome del dispositivo che desideri creare, il livello RAID e il numero di dispositivi. In questo esempio di comando, chiamerai il dispositivo /dev/md0 e includi i dischi che formeranno l’array:

  1. sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb

Se i dispositivi componenti che stai utilizzando non sono partizioni con il flag boot abilitato, è probabile che riceverai il seguente avviso. È sicuro rispondere con y e 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.90 mdadm: size set to 104792064K Continue creating array? y

Lo strumento mdadm inizierà a specchiare i dischi. Questo può richiedere del tempo per completarsi, ma l’array può essere utilizzato durante questo tempo. Puoi monitorare il progresso della specchiatura controllando il file /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid1 sdb[1] sda[0] 104792064 blocks super 1.2 [2/2] [UU] [====>................] resync = 20.2% (21233216/104792064) finish=6.9min speed=199507K/sec unused devices: <none>

Nella prima riga evidenziata, il dispositivo /dev/md0 è stato creato nella configurazione RAID 1 utilizzando i dispositivi /dev/sda e /dev/sdb. La seconda riga evidenziata mostra il progresso della specchiatura. Puoi procedere al passaggio successivo mentre questo processo si completa.

Creazione e Montaggio del Filesystem

Successivamente, crea un filesystem sull’array:

  1. sudo mkfs.ext4 -F /dev/md0

Quindi, crea un punto di mount per collegare il nuovo filesystem:

  1. sudo mkdir -p /mnt/md0

Puoi montare il filesystem eseguendo il seguente comando:

  1. sudo mount /dev/md0 /mnt/md0

Verifica se lo spazio nuovo è disponibile:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 99G 60M 94G 1% /mnt/md0

Il nuovo filesystem è montato e accessibile.

Salvataggio della disposizione dell’array

Per assicurarti che l’array venga riasssemblato automaticamente all’avvio, devi regolare il file /etc/mdadm/mdadm.conf. Puoi eseguire la scansione automatica dell’array attivo e aggiungere il file con quanto segue:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

In seguito, puoi aggiornare l’initramfs, o file system RAM iniziale, in modo che l’array sia disponibile durante il processo di avvio precoce:

  1. sudo update-initramfs -u

Aggiungi le nuove opzioni di montaggio del filesystem al file /etc/fstab per il montaggio automatico all’avvio:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Ora il tuo array RAID 1 si assemblerà e si monterà automaticamente ad ogni avvio.

Ora hai finito con la configurazione del tuo RAID. Se desideri provare un RAID diverso, segui le istruzioni di ripristino all’inizio di questo tutorial per procedere con la creazione di un nuovo tipo di array RAID.

Creazione di un array RAID 5

Il tipo di array RAID 5 è implementato mediante lo striping dei dati sui dispositivi disponibili. Una componente di ogni striscia è un blocco di parità calcolato. Se un dispositivo fallisce, il blocco di parità e i blocchi rimanenti possono essere utilizzati per calcolare i dati mancanti. Il dispositivo che riceve il blocco di parità viene ruotato in modo che ciascun dispositivo abbia una quantità bilanciata di informazioni di parità.

  • Requisiti: Minimo di 3 dispositivi di archiviazione.
  • Vantaggio principale: Ridondanza con maggiore capacità utilizzabile.
  • Cose da tenere presente: Anche se le informazioni di parità sono distribuite, una capacità di un disco verrà utilizzata per la parità. RAID 5 può soffrire di prestazioni molto scadenti quando è in uno stato degradato.

Identificare i Dispositivi Componenti

Per iniziare, trova gli identificatori dei dischi grezzi che utilizzerai:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

Hai tre dischi senza un filesystem, ognuno di dimensioni 100G. Questi dispositivi sono stati identificati come /dev/sda, /dev/sdb e /dev/sdc per questa sessione e saranno i componenti grezzi che utilizzi per creare l’array.

Creazione dell’Array

Per creare un array RAID 5 con questi componenti, passali al comando mdadm --create. Dovrai specificare il nome del dispositivo che desideri creare, il livello RAID e il numero di dispositivi. In questo esempio di comando, chiamerai il dispositivo /dev/md0 e includerai i dischi che formeranno l’array:

  1. 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. Utilizza il processo di ripristino per costruire l’array per motivi di prestazioni. Questo processo può richiedere del tempo, ma l’array può essere utilizzato durante questo periodo. Puoi monitorare il progresso della duplicazione controllando il file /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209582080 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [UU_] [>....................] recovery = 0.9% (957244/104791040) finish=18.0min speed=95724K/sec unused devices: <none>

Nella prima riga evidenziata, il dispositivo /dev/md0 è stato creato nella configurazione RAID 5 utilizzando i dispositivi /dev/sda, /dev/sdb e /dev/sdc. La seconda riga evidenziata mostra il progresso della costruzione.

Avviso: A causa del modo in cui mdadm costruisce gli array RAID 5, mentre l’array è ancora in costruzione, il numero di spare nell’array verrà riportato in modo inaccurato. Ciò significa che è necessario attendere che l’array finisca di assemblarsi prima di aggiornare il file /etc/mdadm/mdadm.conf. Se si aggiorna il file di configurazione mentre l’array è ancora in costruzione, il sistema avrà informazioni errate sullo stato dell’array e non sarà in grado di assemblarlo automaticamente all’avvio con il nome corretto.

Puoi continuare la guida mentre questo processo si completa.

Creazione e Montaggio del File System

Successivamente, crea un file system sull’array:

  1. sudo mkfs.ext4 -F /dev/md0

Crea un punto di mount per collegare il nuovo file system:

  1. sudo mkdir -p /mnt/md0

Puoi montare il file system con il seguente comando:

  1. sudo mount /dev/md0 /mnt/md0

Verifica se lo spazio nuovo è disponibile:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

Il nuovo file system è montato ed accessibile.

Salvataggio della Configurazione dell’Array

Per assicurarti che l’array venga riunito automaticamente all’avvio, devi modificare il file /etc/mdadm/mdadm.conf.

Avviso: Come già accennato in precedenza, prima di apportare modifiche alla configurazione, verifica di nuovo che l’array sia stato completamente assemblato. Completare i seguenti passaggi prima che l’array sia stato costruito impedirà al sistema di assemblare correttamente l’array al riavvio.

Puoi monitorare il progresso della copia speculare controllando il file /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [raid1] [linear] [multipath] [raid0] [raid6] [raid5] [raid4] [raid10] md0 : active raid5 sdc[3] sdb[1] sda[0] 209584128 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU] unused devices: <none>

Questo output rivela che la ricostruzione è completa. Ora puoi eseguire la scansione automatica dell’array attivo e aggiornare il file:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

In seguito, puoi aggiornare l’initramfs, o file system RAM iniziale, in modo che l’array sia disponibile durante la fase di avvio iniziale:

  1. sudo update-initramfs -u

Aggiungi le nuove opzioni di montaggio del filesystem al file /etc/fstab per il montaggio automatico all’avvio:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Il tuo array RAID 5 verrà ora assemblato e montato automaticamente ad ogni avvio.

Hai ora completato la configurazione del tuo set RAID. Se desideri provare un RAID diverso, segui le istruzioni di ripristino all’inizio di questo tutorial per procedere con la creazione di un nuovo tipo di array RAID.

Creazione di un array RAID 6

Il tipo di array RAID 6 viene implementato tramite la 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 utilizzati per calcolare i dati mancanti. I dispositivi che ricevono i blocchi di parità vengono ruotati in modo che ciascun dispositivo abbia una quantità equilibrata di informazioni di parità. Questo è simile a un array RAID 5, ma consente il fallimento di due unità.

  • Requisiti: Minimo di 4 dispositivi di archiviazione.
  • Vantaggio principale: Doppia ridondanza con maggiore capacità utilizzabile.
  • Cose da tenere a mente: Anche se le informazioni di parità sono distribuite, due dischi di capacità verranno utilizzati per la parità. Il RAID 6 può subire una prestazione molto scarsa quando è in uno stato degradato.

Identificazione dei Dispositivi Componenti

Per iniziare, individua gli identificatori dei dischi grezzi che userai:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

In questo esempio, hai quattro dischi senza un filesystem, ognuno della dimensione di 100G. A questi dispositivi sono stati assegnati gli identificatori /dev/sda, /dev/sdb, /dev/sdc e /dev/sdd per questa sessione e saranno i componenti grezzi utilizzati per costruire l’array.

Creazione dell’Array

Per creare un array RAID 6 con questi componenti, passali al comando mdadm --create. Devi specificare il nome del dispositivo che desideri creare, il livello RAID e il numero di dispositivi. In questo esempio di comando seguente, nominerai il dispositivo /dev/md0 e includerai i dischi che formeranno l’array :

  1. 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. Utilizza il processo di ripristino per costruire l’array per motivi di prestazioni. Questo può richiedere del tempo per completarsi, ma l’array può essere utilizzato durante questo tempo. Puoi monitorare il progresso della duplicazione controllando il file /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10] md0 : active raid6 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 level 6, 512k chunk, algorithm 2 [4/4] [UUUU] [>....................] resync = 0.6% (668572/104792064) finish=10.3min speed=167143K/sec unused devices: <none>

Nella prima riga evidenziata, il dispositivo /dev/md0 è stato creato nella configurazione RAID 6 utilizzando i dispositivi /dev/sda, /dev/sdb, /dev/sdc e /dev/sdd. La seconda riga evidenziata mostra il progresso della creazione. Puoi continuare la guida mentre questo processo si completa.

Creazione e Montaggio del Filesystem

Successivamente, crea un filesystem sull’array:

  1. sudo mkfs.ext4 -F /dev/md0

Crea un punto di montaggio per collegare il nuovo filesystem:

  1. sudo mkdir -p /mnt/md0

Puoi montare il filesystem con il seguente comando:

  1. sudo mount /dev/md0 /mnt/md0

Verifica se lo spazio nuovo è disponibile:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

Il nuovo filesystem è montato ed accessibile.

Salvataggio della Configurazione dell’Array

Per assicurarti che l’array venga ri-assemblato automaticamente all’avvio, dovrai modificare il file /etc/mdadm/mdadm.conf. Puoi eseguire la scansione automatica dell’array attivo e aggiungere le informazioni al file digitando:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

In seguito, puoi aggiornare l’initramfs, o file system RAM iniziale, in modo che l’array sia disponibile durante la fase di avvio precoce.

  1. sudo update-initramfs -u

Aggiungi le nuove opzioni di montaggio del filesystem al file /etc/fstab per il montaggio automatico all’avvio:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Il tuo array RAID 6 verrà ora automaticamente assemblato e montato ad ogni avvio.

Ora hai finito con la configurazione del tuo RAID. Se vuoi provare un RAID diverso, segui le istruzioni di ripristino all’inizio di questo tutorial per procedere con la creazione di un nuovo tipo di array RAID.

Creazione di un Array RAID 10 Complesso

Il tipo di array RAID 10 è tradizionalmente implementato creando un array RAID 0 a strisce composto da set di array RAID 1. Questo tipo di array nidificato offre sia la ridondanza che alte prestazioni, a spese di grandi quantità di spazio su disco. L’utilità mdadm ha il proprio tipo di RAID 10 che fornisce lo stesso tipo di vantaggi con maggiore flessibilità. Non viene creato nidificando array, ma ha molte delle stesse caratteristiche e garanzie. Qui verrà utilizzato il RAID 10 di mdadm.

  • Requisiti: Minimo di 3 dispositivi di archiviazione.
  • Vantaggio principale: Prestazioni e ridondanza.
  • Cose da tenere presente: La riduzione della capacità per l’array è definita dal numero di copie dei dati che scegli di mantenere. Il numero di copie memorizzate con il RAID 10 di stile mdadm è configurabile.

Per impostazione predefinita, due copie di ogni blocco di dati saranno memorizzate in quello che viene chiamato layout vicino. I possibili layout che dettano come ogni blocco di dati viene archiviato sono i seguenti:

  • vicino: L’organizzazione predefinita. Le copie di ogni pezzo vengono scritte consecutivamente durante l’alternanza, il che significa che le copie dei blocchi di dati saranno scritte attorno alla stessa parte di dischi multipli.
  • lontano: La prima e le copie successive vengono scritte in parti diverse dei dispositivi di archiviazione nell’array. Ad esempio, il primo pezzo potrebbe essere scritto vicino all’inizio di un disco, mentre il secondo pezzo sarebbe scritto a metà strada su un disco diverso. Ciò può fornire alcuni guadagni di prestazioni di lettura per i dischi tradizionali in rotazione a scapito delle prestazioni di scrittura.
  • offset: Ogni striscia viene copiata e spostata di un’unità. Ciò significa che le copie sono sfalsate l’una rispetto all’altra, ma comunque vicine tra loro sul disco. Questo aiuta a minimizzare la ricerca eccessiva durante alcuni carichi di lavoro.

Puoi scoprire di più su questi layout consultando la sezione RAID10 di questa pagina del manuale:

  1. man 4 md

Puoi anche trovare questa pagina del manuale online.

Identificare i dispositivi componenti

Per iniziare, trova gli identificatori per i dischi grezzi che utilizzerai:

  1. lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
Output
NAME SIZE FSTYPE TYPE MOUNTPOINT sda 100G disk sdb 100G disk sdc 100G disk sdd 100G disk vda 25G disk ├─vda1 24.9G ext4 part / ├─vda14 4M part └─vda15 106M vfat part /boot/efi vdb 466K iso9660 disk

In questo esempio, hai quattro dischi senza un filesystem, ognuno di dimensioni 100G. Questi dispositivi sono stati identificati con gli identificatori /dev/sda, /dev/sdb, /dev/sdc e /dev/sdd per questa sessione e saranno i componenti grezzi utilizzati per creare l’array.

Creazione dell’Array

Per creare un array RAID 10 con questi componenti, passali al comando mdadm --create. Devi specificare il nome del dispositivo che desideri creare, il livello RAID e il numero di dispositivi. In questo esempio di comando seguente, nominerai il dispositivo /dev/md0 e includerai i dischi che formeranno l’array:

Puoi configurare due copie usando il layout “near” non specificando un layout e il numero di copie:

  1. sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd

Se desideri utilizzare un layout diverso o cambiare il numero di copie, dovrai utilizzare l’opzione --layout=, che richiede un identificatore di layout e copia. I layout sono n per “near”, f per “far” e o per “offset”. Il numero di copie da memorizzare viene aggiunto in seguito.

Ad esempio, per creare un array che abbia tre copie nel layout “offset”, il comando includerebbe quanto segue:

  1. 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. Utilizza il processo di ripristino per costruire l’array per motivi di prestazioni. Questo può richiedere del tempo per completarsi, ma l’array può essere utilizzato durante questo periodo. Puoi monitorare il progresso del mirroring controllando il file /proc/mdstat:

  1. cat /proc/mdstat
Output
Personalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [raid10] md0 : active raid10 sdd[3] sdc[2] sdb[1] sda[0] 209584128 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] [===>.................] resync = 18.1% (37959424/209584128) finish=13.8min speed=206120K/sec unused devices: <none>

Nella prima riga evidenziata, il dispositivo /dev/md0 è stato creato nella configurazione RAID 10 utilizzando i dispositivi /dev/sda, /dev/sdb, /dev/sdc e /dev/sdd. La seconda area evidenziata mostra il layout utilizzato per questo esempio (due copie nella configurazione vicina). La terza area evidenziata mostra il progresso della costruzione. Puoi continuare la guida mentre questo processo si completa.

Creazione e Montaggio del Filesystem

Successivamente, crea un filesystem sull’array:

  1. sudo mkfs.ext4 -F /dev/md0

Crea un punto di mount per attaccare il nuovo filesystem:

  1. sudo mkdir -p /mnt/md0

Puoi montare il filesystem con il seguente comando:

  1. sudo mount /dev/md0 /mnt/md0

Verifica se lo spazio nuovo è disponibile:

  1. df -h -x devtmpfs -x tmpfs
Output
Filesystem Size Used Avail Use% Mounted on /dev/vda1 25G 1.4G 23G 6% / /dev/vda15 105M 3.4M 102M 4% /boot/efi /dev/md0 197G 60M 187G 1% /mnt/md0

Il nuovo filesystem è montato ed accessibile.

Salvataggio del Layout dell’Array

Per assicurarti che l’array venga riassiemato automaticamente all’avvio, dovrai modificare il file /etc/mdadm/mdadm.conf. Puoi eseguire la scansione automatica dell’array attivo e aggiungere il file eseguendo il seguente:

  1. sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf

Successivamente, puoi aggiornare l’initramfs, o file system RAM iniziale, in modo che l’array sia disponibile durante il processo di avvio anticipato:

  1. sudo update-initramfs -u

Aggiungi le nuove opzioni di montaggio del filesystem al file /etc/fstab per il montaggio automatico all’avvio:

  1. echo '/dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0' | sudo tee -a /etc/fstab

Il tuo array RAID 10 verrà ora assemblato e montato automaticamente ad ogni avvio.

Conclusione

In questa guida, hai imparato come creare vari tipi di array utilizzando l’utilità RAID software mdadm di Linux. Gli array RAID offrono alcune interessanti ridondanze e miglioramenti delle prestazioni rispetto all’utilizzo di dischi multipli individualmente.

Una volta che hai deciso il tipo di array necessario per il tuo ambiente e creato il dispositivo, puoi imparare come gestire le attività quotidiane con mdadm. La nostra guida su come gestire gli array RAID con mdadm su Ubuntu può aiutarti ad iniziare.

Source:
https://www.digitalocean.com/community/tutorials/how-to-create-raid-arrays-with-mdadm-on-ubuntu-22-04