Comment créer des matrices RAID avec mdadm sur Ubuntu 18.04

introduction

L’utilitairemdadm peut être utilisé pour créer et gérer des baies de stockage à l’aide des capacités RAID logicielles de Linux. Les administrateurs disposent d'une grande flexibilité pour coordonner leurs périphériques de stockage individuels et créer des périphériques de stockage logiques offrant de meilleures performances ou caractéristiques de redondance.

Dans ce guide, nous allons passer en revue différentes configurations RAID pouvant être configurées à l'aide d'un serveur Ubuntu 18.04.

Conditions préalables

Afin de compléter les étapes de ce guide, vous devez avoir:

  • A non-root user with sudo privileges on an Ubuntu 16.04 server: les étapes de ce guide seront effectuées avec un utilisateursudo. Pour savoir comment créer un compte avec ces privilèges, suivez nosUbuntu 18.04 initial server setup guide.

  • A basic understanding of RAID terminology and concepts: Bien que ce guide aborde une partie de la terminologie RAID au passage, une compréhension plus complète est très utile. Pour en savoir plus sur le RAID et pour mieux comprendre quel niveau de RAID vous convient, lisez nosintroduction to RAID article.

  • Multiple raw storage devices available on your server: Nous allons montrer comment configurer différents types de tableaux sur le serveur. En tant que tel, vous aurez besoin de quelques lecteurs pour configurer. Si vous utilisez DigitalOcean, vous pouvez utiliserBlock Storage volumes pour remplir ce rôle. Selon le type de baie, vous aurez besoin d'au moins entretwo to four storage devices. Il n'est pas nécessaire de formater ces disques avant de suivre ce guide.

Réinitialisation des périphériques RAID existants

Tout au long de ce guide, nous allons présenter les étapes permettant de créer un certain nombre de niveaux RAID différents. Si vous souhaitez suivre, vous voudrez probablement réutiliser vos périphériques de stockage après chaque section. Cette section peut être référencée pour savoir comment réinitialiser rapidement vos périphériques de stockage composant avant de tester un nouveau niveau RAID. Ignorez cette section pour l'instant si vous n'avez pas encore configuré de tableaux.

[.warning] #Warning: Ce processus détruira complètement le tableau et toutes les données qui y sont écrites. Assurez-vous que vous utilisez la matrice appropriée et que vous avez copié toutes les données que vous devez conserver avant de détruire la matrice.
#

Recherchez les tableaux actifs dans le fichier/proc/mdstat en tapant:

cat /proc/mdstat
OutputPersonalities : [raid0] [linear] [multipath] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sdc[1] sdd[0]
      209584128 blocks super 1.2 512k chunks

            unused devices: 

Démontez le tableau du système de fichiers:

sudo umount /dev/md0

Ensuite, arrêtez et supprimez le tableau en tapant:

sudo mdadm --stop /dev/md0

Recherchez les périphériques utilisés pour construire le tableau à l'aide de la commande suivante:

[.warning] #Warning: Gardez à l'esprit que les noms de/dev/sd* peuvent changer à chaque redémarrage! Vérifiez-les à chaque fois pour vous assurer que vous utilisez les bons périphériques.
#

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

Après avoir découvert les périphériques utilisés pour créer une matrice, réinitialisez leur superbloc afin de supprimer les métadonnées RAID et de les réinitialiser à la normale:

sudo mdadm --zero-superblock /dev/sdc
sudo mdadm --zero-superblock /dev/sdd

Vous devez supprimer toutes les références persistantes au tableau. Modifiez le fichier/etc/fstab et commentez ou supprimez la référence à votre tableau:

sudo nano /etc/fstab

/etc/fstab

. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0

Mettez également en commentaire ou supprimez la définition de tableau du fichier/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

Enfin, mettez à nouveau à jour lesinitramfs afin que le processus de démarrage anticipé n'essaie pas de mettre en ligne une baie indisponible.

sudo update-initramfs -u

À ce stade, vous devez être prêt à réutiliser les périphériques de stockage individuellement ou en tant que composants d’une matrice différente.

Création d'une matrice RAID 0

La matrice RAID 0 fonctionne en divisant les données en fragments et en les répartissant sur les disques disponibles. Cela signifie que chaque disque contient une partie des données et que plusieurs disques seront référencés lors de la récupération des informations.

  • Exigences: minimum de2 storage devices

  • Principal avantage: performance

  • Points importants à prendre en compte: Assurez-vous de disposer de sauvegardes fonctionnelles. Une seule panne de périphérique détruira toutes les données du tableau.

Identifier les composants

Pour commencer, recherchez les identifiants des disques bruts que vous utiliserez:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

Comme vous pouvez le voir ci-dessus, nous avons deux disques sans système de fichiers, chacun d’une taille de 100G. Dans cet exemple, ces périphériques ont reçu les identificateurs/dev/sda et/dev/sdb pour cette session. Ce seront les composants bruts que nous utiliserons pour construire le tableau.

Créer le tableau

Pour créer une matrice RAID 0 avec ces composants, transmettez-les à la commandemdadm --create. Vous devrez spécifier le nom du périphérique que vous souhaitez créer (/dev/md0 dans notre cas), le niveau de RAID et le nombre de périphériques:

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

Vous pouvez vous assurer que le RAID a été créé avec succès en vérifiant le fichier/proc/mdstat:

cat /proc/mdstat
OutputPersonalities : [linear] [multipath] [raid0] [raid1] [raid6] [raid5] [raid4] [raid10]
md0 : active raid0 sdb[1] sda[0]
      209584128 blocks super 1.2 512k chunks

            unused devices: 

Comme vous pouvez le voir sur la ligne en surbrillance, le périphérique/dev/md0 a été créé dans la configuration RAID 0 en utilisant les périphériques/dev/sda et/dev/sdb.

Création et montage du système de fichiers

Ensuite, créez un système de fichiers sur le tableau:

sudo mkfs.ext4 -F /dev/md0

Créez un point de montage pour attacher le nouveau système de fichiers:

sudo mkdir -p /mnt/md0

Vous pouvez monter le système de fichiers en tapant:

sudo mount /dev/md0 /mnt/md0

Vérifiez si le nouvel espace est disponible en tapant:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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

Le nouveau système de fichiers est monté et accessible.

Enregistrement de la disposition du tableau

Pour nous assurer que le tableau est réassemblé automatiquement au démarrage, nous devrons ajuster le fichier/etc/mdadm/mdadm.conf. Vous pouvez analyser automatiquement le tableau actif et ajouter le fichier en tapant:

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

Ensuite, vous pouvez mettre à jour initramfs, ou le système de fichiers RAM initial, afin que le tableau soit disponible au cours du processus de démarrage précédent:

sudo update-initramfs -u

Ajoutez les nouvelles options de montage du système de fichiers au fichier/etc/fstab pour un montage automatique au démarrage:

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

Votre matrice RAID 0 devrait maintenant être automatiquement assemblée et montée à chaque démarrage.

Création d'une matrice RAID 1

Le type de matrice RAID 1 est implémenté par la mise en miroir des données sur tous les disques disponibles. Chaque disque d’une matrice RAID 1 reçoit une copie complète des données, ce qui permet une redondance en cas de défaillance d’un périphérique.

  • Exigences: minimum de2 storage devices

  • Principal avantage: la redondance

  • Points importants à prendre en compte: deux copies des données étant conservées, seule la moitié de l’espace disque sera utilisable.

Identifier les composants

Pour commencer, recherchez les identifiants des disques bruts que vous utiliserez:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

Comme vous pouvez le voir ci-dessus, nous avons deux disques sans système de fichiers, chacun d’une taille de 100G. Dans cet exemple, ces périphériques ont reçu les identificateurs/dev/sda et/dev/sdb pour cette session. Ce seront les composants bruts que nous utiliserons pour construire le tableau.

Créer le tableau

Pour créer une matrice RAID 1 avec ces composants, transmettez-les à la commandemdadm --create. Vous devrez spécifier le nom du périphérique que vous souhaitez créer (/dev/md0 dans notre cas), le niveau de RAID et le nombre de périphériques:

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

Si les périphériques de composant que vous utilisez ne sont pas des partitions avec l'indicateurboot activé, vous verrez probablement l'avertissement suivant. Il est prudent de tapery pour continuer:

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.90
mdadm: size set to 104792064K
Continue creating array? y

L'outilmdadm commencera à mettre en miroir les lecteurs. Cela peut prendre un certain temps, mais le tableau peut être utilisé pendant cette période. Vous pouvez surveiller la progression de la mise en miroir en vérifiant le fichier/proc/mdstat:

cat /proc/mdstat
OutputPersonalities : [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: 

Comme vous pouvez le voir sur la première ligne en surbrillance, le périphérique/dev/md0 a été créé dans la configuration RAID 1 en utilisant les périphériques/dev/sda et/dev/sdb. La deuxième ligne en surbrillance montre la progression de la mise en miroir. Vous pouvez continuer le guide pendant que ce processus est terminé.

Création et montage du système de fichiers

Ensuite, créez un système de fichiers sur le tableau:

sudo mkfs.ext4 -F /dev/md0

Créez un point de montage pour attacher le nouveau système de fichiers:

sudo mkdir -p /mnt/md0

Vous pouvez monter le système de fichiers en tapant:

sudo mount /dev/md0 /mnt/md0

Vérifiez si le nouvel espace est disponible en tapant:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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

Le nouveau système de fichiers est monté et accessible.

Enregistrement de la disposition du tableau

Pour nous assurer que le tableau est réassemblé automatiquement au démarrage, nous devrons ajuster le fichier/etc/mdadm/mdadm.conf. Vous pouvez analyser automatiquement le tableau actif et ajouter le fichier en tapant:

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

Ensuite, vous pouvez mettre à jour initramfs, ou le système de fichiers RAM initial, afin que le tableau soit disponible au cours du processus de démarrage précédent:

sudo update-initramfs -u

Ajoutez les nouvelles options de montage du système de fichiers au fichier/etc/fstab pour un montage automatique au démarrage:

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

Votre matrice RAID 1 devrait maintenant être automatiquement assemblée et montée à chaque démarrage.

Création d'une matrice RAID 5

Le type de matrice RAID 5 est implémenté en répartissant les données sur les périphériques disponibles. Un composant de chaque bande est un bloc de parité calculé. Si un périphérique tombe en panne, le bloc de parité et les blocs restants peuvent être utilisés pour calculer les données manquantes. Le périphérique qui reçoit le bloc de parité est pivoté afin que chaque périphérique dispose d'une quantité équilibrée d'informations de parité.

  • Exigences: minimum de3 storage devices

  • Principal avantage: redondance avec plus de capacité utilisable.

  • Points importants à prendre en compte: lorsque les informations de parité sont distribuées, la capacité d’un disque est utilisée pour la parité. RAID 5 peut souffrir de très mauvaises performances lorsqu'il est dans un état dégradé.

Identifier les composants

Pour commencer, recherchez les identifiants des disques bruts que vous utiliserez:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

Comme vous pouvez le voir ci-dessus, nous avons trois disques sans système de fichiers, d’une taille de 100G chacun. Dans cet exemple, ces périphériques ont reçu les identifiants/dev/sda,/dev/sdb et/dev/sdc pour cette session. Ce seront les composants bruts que nous utiliserons pour construire le tableau.

Créer le tableau

Pour créer une matrice RAID 5 avec ces composants, transmettez-les à la commandemdadm --create. Vous devrez spécifier le nom du périphérique que vous souhaitez créer (/dev/md0 dans notre cas), le niveau de RAID et le nombre de périphériques:

sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc

L'outilmdadm commencera à configurer la baie (il utilise en fait le processus de récupération pour créer la baie pour des raisons de performances). Cela peut prendre un certain temps, mais le tableau peut être utilisé pendant cette période. Vous pouvez surveiller la progression de la mise en miroir en vérifiant le fichier/proc/mdstat:

cat /proc/mdstat
OutputPersonalities : [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/2] [UU_]
      [===>.................]  recovery = 15.6% (16362536/104792064) finish=7.3min speed=200808K/sec

unused devices: 

Comme vous pouvez le voir sur la première ligne en surbrillance, le périphérique/dev/md0 a été créé dans la configuration RAID 5 en utilisant les périphériques/dev/sda,/dev/sdb et/dev/sdc. La deuxième ligne en surbrillance montre la progression de la construction.

[.warning] #Warning: En raison de la façon dontmdadm construit les matrices RAID 5, alors que la matrice est encore en cours de construction, le nombre de réserves dans la matrice sera indiqué de manière inexacte. Cela signifie que vous devez attendre la fin de l'assemblage du tableau avant de mettre à jour le fichier/etc/mdadm/mdadm.conf. Si vous mettez à jour le fichier de configuration pendant que la baie est en cours de construction, le système aura des informations incorrectes sur l'état de la baie et ne pourra pas l'assembler automatiquement au démarrage avec le nom correct.
#

Vous pouvez continuer le guide pendant que ce processus est terminé.

Création et montage du système de fichiers

Ensuite, créez un système de fichiers sur le tableau:

sudo mkfs.ext4 -F /dev/md0

Créez un point de montage pour attacher le nouveau système de fichiers:

sudo mkdir -p /mnt/md0

Vous pouvez monter le système de fichiers en tapant:

sudo mount /dev/md0 /mnt/md0

Vérifiez si le nouvel espace est disponible en tapant:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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

Le nouveau système de fichiers est monté et accessible.

Enregistrement de la disposition du tableau

Pour nous assurer que le tableau est réassemblé automatiquement au démarrage, nous devrons ajuster le fichier/etc/mdadm/mdadm.conf.

As mentioned above, before you adjust the configuration, check again to make sure the array has finished assembling. L'achèvement de cette étape avant la création de la baie empêchera le système d'assembler correctement la baie au redémarrage:

cat /proc/mdstat
OutputPersonalities : [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: 

La sortie ci-dessus montre que la reconstruction est terminée. Maintenant, nous pouvons analyser automatiquement le tableau actif et ajouter le fichier en tapant:

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

Ensuite, vous pouvez mettre à jour initramfs, ou le système de fichiers RAM initial, afin que le tableau soit disponible au cours du processus de démarrage précédent:

sudo update-initramfs -u

Ajoutez les nouvelles options de montage du système de fichiers au fichier/etc/fstab pour un montage automatique au démarrage:

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

Votre matrice RAID 5 doit maintenant être automatiquement assemblée et montée à chaque démarrage.

Création d'une matrice RAID 6

Le type de matrice RAID 6 est implémenté en répartissant les données sur les périphériques disponibles. Deux composantes de chaque bande sont des blocs de parité calculés. Si un ou deux périphériques échouent, les blocs de parité et les blocs restants peuvent être utilisés pour calculer les données manquantes. Les périphériques qui reçoivent les blocs de parité sont pivotés afin que chaque périphérique dispose d'une quantité équilibrée d'informations de parité. Ceci est similaire à une matrice RAID 5, mais permet la défaillance de deux lecteurs.

  • Exigences: minimum de4 storage devices

  • Principal avantage: double redondance avec plus de capacité utilisable.

  • Points importants à prendre en compte: Bien que les informations de parité soient distribuées, la capacité de deux disques sera utilisée pour la parité. RAID 6 peut avoir de très mauvaises performances lorsqu'il est dans un état dégradé.

Identifier les composants

Pour commencer, recherchez les identifiants des disques bruts que vous utiliserez:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

Comme vous pouvez le voir ci-dessus, nous avons quatre disques sans système de fichiers, d’une taille de 100G chacun. Dans cet exemple, ces périphériques ont reçu les identifiants/dev/sda,/dev/sdb,/dev/sdc et/dev/sdd pour cette session. Ce seront les composants bruts que nous utiliserons pour construire le tableau.

Créer le tableau

Pour créer une matrice RAID 6 avec ces composants, transmettez-les à la commandemdadm --create. Vous devrez spécifier le nom du périphérique que vous souhaitez créer (/dev/md0 dans notre cas), le niveau de RAID et le nombre de périphériques:

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

L'outilmdadm commencera à configurer la baie (il utilise en fait le processus de récupération pour créer la baie pour des raisons de performances). Cela peut prendre un certain temps, mais le tableau peut être utilisé pendant cette période. Vous pouvez surveiller la progression de la mise en miroir en vérifiant le fichier/proc/mdstat:

cat /proc/mdstat
OutputPersonalities : [raid6] [raid5] [raid4] [linear] [multipath] [raid0] [raid1] [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: 

Comme vous pouvez le voir sur la première ligne en surbrillance, le périphérique/dev/md0 a été créé dans la configuration RAID 6 en utilisant les/dev/sda,/dev/sdb,/dev/sdc et/dev/sdd dispositifs. La deuxième ligne en surbrillance montre la progression de la construction. Vous pouvez continuer le guide pendant que ce processus est terminé.

Création et montage du système de fichiers

Ensuite, créez un système de fichiers sur le tableau:

sudo mkfs.ext4 -F /dev/md0

Créez un point de montage pour attacher le nouveau système de fichiers:

sudo mkdir -p /mnt/md0

Vous pouvez monter le système de fichiers en tapant:

sudo mount /dev/md0 /mnt/md0

Vérifiez si le nouvel espace est disponible en tapant:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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

Le nouveau système de fichiers est monté et accessible.

Enregistrer la disposition du tableau

Pour nous assurer que le tableau est réassemblé automatiquement au démarrage, nous devrons ajuster le fichier/etc/mdadm/mdadm.conf. Nous pouvons analyser automatiquement le tableau actif et ajouter le fichier en tapant:

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

Ensuite, vous pouvez mettre à jour initramfs, ou le système de fichiers RAM initial, afin que le tableau soit disponible au cours du processus de démarrage précédent:

sudo update-initramfs -u

Ajoutez les nouvelles options de montage du système de fichiers au fichier/etc/fstab pour un montage automatique au démarrage:

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

Votre matrice RAID 6 devrait maintenant être automatiquement assemblée et montée à chaque démarrage.

Création d'une matrice RAID 10 complexe

Le type de matrice RAID 10 est traditionnellement implémenté en créant une matrice RAID 0 à bandes composée d'ensembles de matrices RAID 1. Ce type de matrice imbriquée offre à la fois redondance et hautes performances, au détriment de grandes quantités d’espace disque. L'utilitairemdadm possède son propre type RAID 10 qui offre le même type d'avantages avec une flexibilité accrue. Il s'agit denot créés en imbriquant des tableaux, mais il a plusieurs des mêmes caractéristiques et garanties. Nous utiliserons ici le RAID 10 demdadm.

  • Exigences: minimum de3 storage devices

  • Principal avantage: performances et redondance

  • Points importants à prendre en compte: La réduction de la capacité de la baie de disques est définie par le nombre de copies de données que vous choisissez de conserver. Le nombre de copies stockées avecmdadm style RAID 10 est configurable.

Par défaut, deux copies de chaque bloc de données seront stockées dans ce que l’on appelle la disposition «proche». Les dispositions possibles qui dictent la manière dont chaque bloc de données est stocké sont les suivantes:

  • near: la disposition par défaut. Les copies de chaque bloc sont écrites consécutivement lors de la répartition, ce qui signifie que les copies des blocs de données seront écrites autour de la même partie de plusieurs disques.

  • far: la première copie et les copies suivantes sont écrites dans différentes parties des périphériques de stockage de la baie. Par exemple, le premier morceau pourrait être écrit vers le début d'un disque, tandis que le second morceau serait écrit à mi-chemin sur un disque différent. Cela peut entraîner des gains de performances de lecture pour les disques en rotation traditionnels, au détriment des performances en écriture.

  • offset: chaque bande est copiée, décalée d'un lecteur. Cela signifie que les copies sont décalées les unes des autres, mais toujours proches les unes des autres sur le disque. Cela aide à minimiser la recherche excessive pendant certaines charges de travail.

Vous pouvez en savoir plus sur ces dispositions en consultant la section «RAID10» de cette pageman:

man 4 md

Vous pouvez également trouver cette pageman en lignehere.

Identifier les composants

Pour commencer, recherchez les identifiants des disques bruts que vous utiliserez:

lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME     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

Comme vous pouvez le voir ci-dessus, nous avons quatre disques sans système de fichiers, d’une taille de 100G chacun. Dans cet exemple, ces périphériques ont reçu les identifiants/dev/sda,/dev/sdb,/dev/sdc et/dev/sdd pour cette session. Ce seront les composants bruts que nous utiliserons pour construire le tableau.

Créer le tableau

Pour créer une matrice RAID 10 avec ces composants, transmettez-les à la commandemdadm --create. Vous devrez spécifier le nom du périphérique que vous souhaitez créer (/dev/md0 dans notre cas), le niveau de RAID et le nombre de périphériques.

Vous pouvez configurer deux copies à l'aide de la disposition proche en ne spécifiant pas de disposition et de numéro de copie:

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

Si vous souhaitez utiliser une mise en page différente, ou modifier le nombre de copies, vous devrez utiliser l'option--layout=, qui prend un identifiant de mise en page et de copie. Les dispositions sontn pour près,f pour loin eto pour offset. Le nombre de copies à stocker est ajouté par la suite.

Par exemple, pour créer un tableau comportant 3 copies dans la présentation offset, la commande ressemblerait à ceci:

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

L'outilmdadm commencera à configurer la baie (il utilise en fait le processus de récupération pour créer la baie pour des raisons de performances). Cela peut prendre un certain temps, mais le tableau peut être utilisé pendant cette période. Vous pouvez surveiller la progression de la mise en miroir en vérifiant le fichier/proc/mdstat:

cat /proc/mdstat
OutputPersonalities : [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: 

Comme vous pouvez le voir sur la première ligne en surbrillance, le périphérique/dev/md0 a été créé dans la configuration RAID 10 en utilisant les/dev/sda,/dev/sdb,/dev/sdc et/dev/sdd dispositifs. La deuxième zone en surbrillance montre la mise en page utilisée pour cet exemple (2 copies dans la configuration proche). La troisième zone en surbrillance montre la progression de la construction. Vous pouvez continuer le guide pendant que ce processus est terminé.

Création et montage du système de fichiers

Ensuite, créez un système de fichiers sur le tableau:

sudo mkfs.ext4 -F /dev/md0

Créez un point de montage pour attacher le nouveau système de fichiers:

sudo mkdir -p /mnt/md0

Vous pouvez monter le système de fichiers en tapant:

sudo mount /dev/md0 /mnt/md0

Vérifiez si le nouvel espace est disponible en tapant:

df -h -x devtmpfs -x tmpfs
OutputFilesystem      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

Le nouveau système de fichiers est monté et accessible.

Enregistrement de la disposition du tableau

Pour nous assurer que le tableau est réassemblé automatiquement au démarrage, nous devrons ajuster le fichier/etc/mdadm/mdadm.conf. Nous pouvons analyser automatiquement le tableau actif et ajouter le fichier en tapant:

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

Ensuite, vous pouvez mettre à jour initramfs, ou le système de fichiers RAM initial, afin que le tableau soit disponible au cours du processus de démarrage précédent:

sudo update-initramfs -u

Ajoutez les nouvelles options de montage du système de fichiers au fichier/etc/fstab pour un montage automatique au démarrage:

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

Votre matrice RAID 10 doit maintenant être automatiquement assemblée et montée à chaque démarrage.

Conclusion

Dans ce guide, nous avons montré comment créer différents types de baies à l’aide de l’utilitaire RAID logicielmdadmde Linux. Les matrices RAID offrent des améliorations de performances et de redondance intéressantes par rapport à l'utilisation de plusieurs disques individuellement.

Une fois que vous avez choisi le type de baie nécessaire pour votre environnement et créé le périphérique, vous devrez apprendre à effectuer la gestion quotidienne avecmdadm. Notre guide surhow to manage RAID arrays with mdadm on Ubuntu 16.04 peut vous aider à démarrer.