Introduction
L’utilitaire mdadm
peut être utilisé pour créer et gérer des matrices de stockage en utilisant les capacités de RAID logiciel de Linux. Les administrateurs ont une grande flexibilité pour coordonner leurs dispositifs de stockage individuels et créer des dispositifs de stockage logiques qui offrent de meilleures performances ou des caractéristiques de redondance.
Dans ce guide, vous allez effectuer différentes configurations de RAID qui peuvent être mises en place à l’aide d’un serveur Ubuntu 22.04.
Prérequis
Pour suivre les étapes de ce guide, vous aurez besoin de :
- 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.
- Plusieurs dispositifs de stockage bruts disponibles sur votre serveur. Les exemples de ce tutoriel démontrent comment configurer différents types de matrices sur le serveur. Par conséquent, vous aurez besoin de quelques disques pour les configurer.
- En fonction du type de matrice, vous aurez besoin de deux à quatre dispositifs de stockage. Ces disques n’ont pas besoin d’être formatés avant de suivre ce guide.
Info : En raison de l’inefficacité des configurations RAID sur les serveurs privés virtuels, nous ne recommandons pas de déployer une configuration RAID sur les droplets DigitalOcean. L’efficacité de la réplication des disques dans les centres de données rend les avantages d’un RAID négligeables par rapport à une configuration sur du matériel baremetal. Ce tutoriel vise à être une référence pour une configuration RAID conventionnelle.
Réinitialisation des périphériques RAID existants (facultatif)
Vous pouvez ignorer cette section pour le moment si vous n’avez pas encore configuré de groupes. Ce guide présentera plusieurs niveaux de RAID différents. Si vous souhaitez suivre et terminer chaque niveau de RAID pour vos périphériques, vous voudrez probablement réutiliser vos périphériques de stockage après chaque section. Cette section spécifique Réinitialisation des périphériques RAID existants peut être consultée pour réinitialiser vos périphériques de stockage avant de tester un nouveau niveau de RAID.
Avertissement : Ce processus détruira complètement le groupe et toutes les données qui y sont écrites. Assurez-vous de travailler sur le bon groupe et d’avoir copié toutes les données dont vous avez besoin avant de le détruire.
Commencez par trouver les groupes actifs dans le fichier /proc/mdstat
:
- 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: <none>
Ensuite, démontez le groupe du système de fichiers :
- sudo umount /dev/md0
Maintenant, arrêtez et supprimez le groupe :
- sudo mdadm --stop /dev/md0
Trouvez les périphériques utilisés pour construire le groupe avec la commande suivante :
Avertissement : Gardez à l’esprit que les noms /dev/sd*
peuvent changer à chaque redémarrage. Vérifiez-les à chaque fois pour vous assurer de travailler sur les bons périphériques.
- lsblk -o NAME,SIZE,FSTYPE,TYPE,MOUNTPOINT
OutputNAME 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
Après avoir découvert les périphériques utilisés pour créer un groupe, mettez à zéro leur superblock qui contient les métadonnées de la configuration RAID. Mettre à zéro cela supprime les métadonnées RAID et les réinitialise à l’état normal :
- sudo mdadm --zero-superblock /dev/sda
- sudo mdadm --zero-superblock /dev/sdb
Il est recommandé de supprimer également toutes les références persistantes au tableau. Modifiez le fichier /etc/fstab
et commentez ou supprimez la référence à votre tableau. Vous pouvez le commenter en insérant un symbole dièse #
au début de la ligne, en utilisant nano
ou votre éditeur de texte préféré:
- sudo nano /etc/fstab
. . .
# /dev/md0 /mnt/md0 ext4 defaults,nofail,discard 0 0
Commentez également ou supprimez la définition du tableau du fichier /etc/mdadm/mdadm.conf
:
- sudo nano /etc/mdadm/mdadm.conf
. . .
# ARRAY /dev/md0 metadata=1.2 name=mdadmwrite:0 UUID=7261fb9c:976d0d97:30bc63ce:85e76e91
Enfin, mettez à jour à nouveau l’initramfs
afin que le processus de démarrage anticipé n’essaie pas de mettre en ligne un tableau indisponible:
- sudo update-initramfs -u
À partir de là, vous devriez être prêt à réutiliser les périphériques de stockage individuellement ou en tant que composants d’un autre tableau.
Création d’un tableau RAID 0
Le tableau RAID 0 fonctionne en divisant les données en morceaux 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 : Un minimum de 2 périphériques de stockage.
- Avantage principal : Performance en termes de lecture/écriture et de capacité.
- Points à garder à l’esprit : Assurez-vous d’avoir des sauvegardes fonctionnelles. Une défaillance d’un seul périphérique détruira toutes les données du tableau.
Identification des dispositifs composants
Pour commencer, trouvez 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
vdb 466K iso9660 disk
Dans cet exemple, vous avez deux disques sans système de fichiers, chacun d’une taille de 100 Go. Ces dispositifs ont été attribués les identifiants /dev/sda
et /dev/sdb
pour cette session et seront les composants bruts utilisés pour construire le ensemble de disques.
Création du ensemble de disques
Pour créer un ensemble de disques RAID 0 avec ces composants, passez-les en argument de la commande mdadm --create
. Vous devrez spécifier le nom du dispositif que vous souhaitez créer, le niveau RAID et le nombre de dispositifs. Dans cet exemple de commande, vous nommerez le dispositif /dev/md0
et inclurez les deux disques qui constitueront le ensemble de disques :
- sudo mdadm --create --verbose /dev/md0 --level=0 --raid-devices=2 /dev/sda /dev/sdb
Vérifiez 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: <none>
Cette sortie révèle que le dispositif /dev/md0
a été créé avec une configuration RAID 0 en utilisant les dispositifs /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
Ensuite, 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 avec la commande suivante:
- sudo mount /dev/md0 /mnt/md0
Ensuite, vérifiez si le nouvel espace est disponible:
- 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 maintenant monté et accessible.
Sauvegarde de la configuration du tableau
Pour vous assurer que le tableau est réassemblé automatiquement au démarrage, vous devrez ajuster le fichier /etc/mdadm/mdadm.conf
. Vous pouvez analyser automatiquement le tableau actif et ajouter les informations au fichier avec la commande suivante:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Ensuite, vous pouvez mettre à jour le initramfs
, ou système de fichiers RAM initial, afin que le tableau soit disponible lors du processus de démarrage précoce:
- 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 tableau RAID 0 sera désormais assemblé et monté automatiquement à chaque démarrage.
Vous avez maintenant terminé la configuration de votre ensemble RAID. Si vous souhaitez essayer un autre RAID, suivez les instructions de réinitialisation au début de ce tutoriel pour créer un nouveau type de tableau RAID.
Création d’un tableau RAID 1
Le type de tableau RAID 1 est mis en œuvre en dupliquant les données sur tous les disques disponibles. Chaque disque dans un tableau RAID 1 obtient une copie complète des données, offrant une redondance en cas de défaillance d’un périphérique.
- Exigences: Un minimum de 2 dispositifs de stockage.
- Avantage principal: Redondance entre deux dispositifs de stockage.
- Points à prendre en compte: Étant donné que deux copies des données sont maintenues, seule la moitié de l’espace disque sera utilisable.
Identification des dispositifs composants
Pour commencer, trouvez 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
vdb 466K iso9660 disk
Dans cet exemple, vous disposez de deux disques sans système de fichiers, chacun d’une taille de 100 Go. Ces dispositifs ont été identifiés comme /dev/sda
et /dev/sdb
pour cette session et seront les composants bruts que vous utiliserez pour construire le tableau.
Création du tableau
Pour créer un ensemble RAID 1 avec ces composants, transmettez-les à la commande mdadm --create
. Vous devrez spécifier le nom du périphérique que vous souhaitez créer, le niveau RAID et le nombre de périphériques. Dans cet exemple de commande, vous nommerez le périphérique /dev/md0
et inclurez les disques qui constitueront l’ensemble :
- sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sda /dev/sdb
Si les périphériques que vous utilisez ne sont pas des partitions avec le drapeau boot
activé, vous recevrez probablement l’avertissement suivant. Il est sûr de répondre par y
et de 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’outil mdadm
commencera à dupliquer les disques. Cela peut prendre un certain temps pour se terminer, mais l’ensemble peut être utilisé pendant ce temps. Vous pouvez surveiller la progression de la duplication 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: <none>
Dans la première ligne mise en évidence, le périphérique /dev/md0
a été créé en configuration RAID 1 en utilisant les périphériques /dev/sda
et /dev/sdb
. La deuxième ligne mise en évidence indique la progression de la duplication. Vous pouvez passer à l’étape suivante pendant que ce processus se termine.
Création et montage du système de fichiers
Ensuite, créez un système de fichiers sur l’ensemble :
- sudo mkfs.ext4 -F /dev/md0
Ensuite, 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 exécutant la commande suivante :
- sudo mount /dev/md0 /mnt/md0
Vérifiez si le nouvel espace est disponible :
- 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.
Sauvegarde de la configuration du tableau
Pour vous assurer que le tableau est automatiquement réassemblé au démarrage, vous devez ajuster le fichier /etc/mdadm/mdadm.conf
. Vous pouvez analyser automatiquement le tableau actif et ajouter les informations suivantes au fichier:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Ensuite, vous pouvez mettre à jour l’initramfs
(système de fichiers RAM initial) afin que le tableau soit disponible lors du processus de démarrage précoce:
- 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 tableau RAID 1 sera maintenant automatiquement assemblé et monté à chaque démarrage.
Vous avez maintenant terminé la configuration de votre ensemble RAID. Si vous souhaitez essayer un autre RAID, suivez les instructions de réinitialisation au début de ce tutoriel pour créer un nouveau type de tableau RAID.
Création d’un tableau RAID 5
Le type de tableau RAID 5 est mis en œuvre 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 échoue, 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 tourné de sorte que chaque périphérique ait une quantité équilibrée d’informations de parité.
- Exigences : Un minimum de 3 périphériques de stockage.
- Avantage principal : Redondance avec une capacité utilisable accrue.
- Points à garder à l’esprit : Bien que les informations de parité soient réparties, une capacité équivalente à celle d’un disque sera utilisée pour la parité. Le RAID 5 peut souffrir de très mauvaises performances lorsqu’il est en état dégradé.
Identification des périphériques composants
Pour commencer, trouvez 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
vdb 466K iso9660 disk
Vous disposez de trois disques sans système de fichiers, chacun d’une taille de 100 Go. Ces périphériques ont reçu les identifiants /dev/sda
, /dev/sdb
et /dev/sdc
pour cette session et seront les composants bruts que vous utiliserez pour créer le tableau.
Création du tableau
Pour créer un ensemble RAID 5 avec ces composants, passez-les en paramètre de la commande mdadm --create
. Vous devrez spécifier le nom du périphérique que vous souhaitez créer, le niveau RAID et le nombre de périphériques. Dans cet exemple de commande, vous nommerez le périphérique /dev/md0
et inclurez les disques qui constitueront l’ensemble :
- sudo mdadm --create --verbose /dev/md0 --level=5 --raid-devices=3 /dev/sda /dev/sdb /dev/sdc
L’outil mdadm
commencera à configurer l’ensemble. Il utilise le processus de récupération pour construire l’ensemble pour des raisons de performance. Cela peut prendre un certain temps, mais l’ensemble peut être utilisé pendant cette période. Vous pouvez surveiller l’avancement 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 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>
Dans la première ligne mise en évidence, le périphérique /dev/md0
a été créé avec la configuration RAID 5 en utilisant les périphériques /dev/sda
, /dev/sdb
et /dev/sdc
. La deuxième ligne mise en évidence montre l’avancement de la construction.
Avertissement : En raison de la manière dont mdadm
construit les ensembles RAID 5, pendant que l’ensemble est en cours de construction, le nombre de pièces de rechange dans l’ensemble sera rapporté de manière incorrecte. Cela signifie que vous devez attendre que l’ensemble soit entièrement assemblé avant de mettre à jour le fichier /etc/mdadm/mdadm.conf
. Si vous mettez à jour le fichier de configuration pendant que l’ensemble est encore en cours de construction, le système aura des informations incorrectes sur l’état de l’ensemble et ne pourra pas l’assembler automatiquement au démarrage avec le nom correct.
Vous pouvez continuer le guide pendant que ce processus se termine.
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 avec la commande suivante:
- sudo mount /dev/md0 /mnt/md0
Vérifiez si le nouvel espace est disponible:
- 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.
Sauvegarde de la configuration du tableau
Pour vous assurer que le tableau est automatiquement reconstitué au démarrage, vous devez ajuster le fichier /etc/mdadm/mdadm.conf
.
Avertissement: Comme mentionné précédemment, avant d’ajuster la configuration, vérifiez à nouveau que le tableau a fini de se reconstituer. Effectuer les étapes suivantes avant la construction du tableau empêchera le système de reconstituer correctement le tableau au redémarrage.
Vous pouvez surveiller l’avancement de la synchronisation 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/3] [UUU]
unused devices: <none>
Cette sortie indique que la reconstruction est terminée. Maintenant, vous pouvez analyser automatiquement le tableau actif et ajouter le fichier:
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Ensuite, vous pouvez mettre à jour le initramfs
, ou système de fichiers RAM initial, afin que le tableau soit disponible pendant la phase de démarrage précoce.
- 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 ensemble RAID 5 sera maintenant assemblé et monté automatiquement à chaque démarrage.
Vous avez terminé la configuration de votre ensemble RAID. Si vous souhaitez essayer un autre RAID, suivez les instructions de réinitialisation du début de ce tutoriel pour créer un nouveau type d’ensemble RAID.
Création d’un ensemble RAID 6
Le type d’ensemble RAID 6 est implémenté en répartissant les données sur les périphériques disponibles. Deux composants de chaque bande sont utilisés pour calculer les blocs de parité. 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 tournés de manière à ce que chaque périphérique contienne une quantité équilibrée d’informations de parité. Cela est similaire à un ensemble RAID 5, mais permet la défaillance de deux disques.
- Exigences : Un minimum de 4 périphériques de stockage.
- Avantage principal : Double redondance avec une capacité utilisable accrue.
- Points à prendre en compte : Bien que les informations de parité soient réparties, deux disques de capacité seront utilisés pour la parité. Le RAID 6 peut souffrir de très mauvaises performances en cas d’état dégradé.
Identification des appareils composants
Pour commencer, trouvez les identificateurs des disques bruts que vous allez utiliser :
- 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
vdb 466K iso9660 disk
Dans cet exemple, vous avez quatre disques sans système de fichiers, chacun d’une taille de 100 Go. Ces appareils ont été attribués les identificateurs /dev/sda
, /dev/sdb
, /dev/sdc
et /dev/sdd
pour cette session et seront les composants bruts utilisés pour construire le ensemble.
Création de l’ensemble
Pour créer un ensemble RAID 6 avec ces composants, passez-les à la commande mdadm --create
. Vous devez spécifier le nom de l’appareil que vous souhaitez créer, le niveau RAID et le nombre de dispositifs. Dans l’exemple de commande suivant, vous nommerez l’appareil /dev/md0
et inclurez les disques qui formeront l’ensemble :
- sudo mdadm --create --verbose /dev/md0 --level=6 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
L’outil mdadm
commencera à configurer l’ensemble. Il utilise le processus de récupération pour construire l’ensemble pour des raisons de performance. Cela peut prendre un certain temps, mais l’ensemble peut être utilisé pendant cette période. Vous pouvez suivre l’avancement 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 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>
Dans la première ligne surlignée, le périphérique /dev/md0
a été créé en configuration RAID 6 en utilisant les périphériques /dev/sda
, /dev/sdb
, /dev/sdc
et /dev/sdd
. La deuxième ligne surlignée montre l’avancement de la construction. Vous pouvez continuer le guide pendant que ce processus se termine.
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 avec la commande suivante:
- sudo mount /dev/md0 /mnt/md0
Vérifiez si l’espace est disponible:
- 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.
Sauvegarde de la configuration du tableau
Pour vous assurer que le tableau est réassemblé automatiquement au démarrage, vous devrez ajuster le fichier /etc/mdadm/mdadm.conf
. Vous pouvez numériser 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 le initramfs
, ou système de fichiers RAM initial, afin que le tableau soit disponible pendant le processus de démarrage précoce:
- 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 ensemble RAID 6 sera désormais assemblé et monté automatiquement à chaque démarrage.
Vous avez maintenant terminé la configuration de votre ensemble RAID. Si vous souhaitez essayer un autre type de RAID, suivez les instructions de réinitialisation au début de ce tutoriel pour créer un nouvel ensemble RAID.
Création d’un ensemble RAID 10 complexe
Le type d’ensemble RAID 10 est traditionnellement implémenté en créant un ensemble RAID 0 à bandes composé d’ensembles RAID 1. Ce type d’ensemble imbriqué offre à la fois une redondance et des performances élevées, au détriment de grandes quantités d’espace disque. L’utilitaire mdadm
dispose de son propre type de RAID 10 qui offre les mêmes avantages avec une flexibilité accrue. Il n’est pas créé en imbriquant des ensembles, mais possède de nombreuses caractéristiques et garanties similaires. Vous utiliserez ici le RAID 10 de mdadm
.
- Exigences : Un minimum de 3 périphériques de stockage.
- Avantage principal : Performances et redondance.
- Points à prendre en compte : La réduction de capacité de l’ensemble est définie par le nombre de copies de données que vous choisissez de conserver. Le nombre de copies stockées avec le RAID 10 de style
mdadm
est configurable.
Par défaut, deux copies de chaque bloc de données sont stockées dans ce que l’on appelle la disposition « proche » (near). Les différentes dispositions possibles qui dictent la façon dont chaque bloc de données est stocké sont les suivantes :
- proche : L’agencement par défaut. Les copies de chaque bloc sont écrites consécutivement lors du striping, ce qui signifie que les copies des blocs de données seront écrites autour de la même partie de plusieurs disques.
- éloigné : Les premières et les copies suivantes sont écrites sur des parties différentes des dispositifs de stockage dans l’ensemble. Par exemple, la première partie pourrait être écrite près du début d’un disque, tandis que la deuxième partie serait écrite à mi-chemin sur un autre disque. Cela peut donner des gains de performance en lecture pour les disques durs classiques au détriment des performances d’écriture.
- décalé : Chaque bande est copiée et décalée d’un disque. Cela signifie que les copies sont décalées les unes par rapport aux autres, mais restent proches l’une de l’autre sur le disque. Cela permet de réduire au minimum les déplacements excessifs lors de certaines charges de travail.
Vous pouvez en savoir plus sur ces dispositions en consultant la section RAID10
de cette page du manuel
:
- man 4 md
Vous pouvez également trouver cette page du manuel
en ligne.
Identification des dispositifs composants
Pour commencer, trouvez les identifiants des disques bruts que vous allez utiliser:
- 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
vdb 466K iso9660 disk
Dans cet exemple, vous disposez de quatre disques sans système de fichiers, chacun d’une taille de 100 Go. Ces périphériques ont été identifiés pour cette session en tant que /dev/sda
, /dev/sdb
, /dev/sdc
et /dev/sdd
et seront les composants bruts utilisés pour construire le tableau.
Création du tableau
Pour créer un tableau RAID 10 avec ces composants, passez-les en argument de la commande mdadm --create
. Vous devez spécifier le nom du périphérique que vous souhaitez créer, le niveau RAID et le nombre de périphériques. Dans l’exemple de commande suivant, vous allez nommer le périphérique /dev/md0
et inclure les disques qui constitueront le tableau :
Vous pouvez configurer deux copies en utilisant la disposition « near » en ne spécifiant pas de disposition et de nombre de copies:
- sudo mdadm --create --verbose /dev/md0 --level=10 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
Si vous souhaitez utiliser une disposition différente ou modifier le nombre de copies, vous devrez utiliser l’option --layout=
, qui prend une disposition et un identifiant de copie. Les dispositions possibles sont n
pour « near », f
pour « far » et o
pour « offset ». Le nombre de copies à stocker est ajouté par la suite.
Par exemple, pour créer un tableau comprenant trois copies avec la disposition « offset », la commande inclurait ce qui suit :
- sudo mdadm --create --verbose /dev/md0 --level=10 --layout=o3 --raid-devices=4 /dev/sda /dev/sdb /dev/sdc /dev/sdd
L’outil mdadm
commencera à configurer l’ensemble. Il utilise le processus de récupération pour construire l’ensemble pour des raisons de performances. Cela peut prendre du temps pour se terminer, mais l’ensemble peut être utilisé pendant ce temps. Vous pouvez suivre l’avancement 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: <none>
Dans la première ligne mise en évidence, le périphérique /dev/md0
a été créé dans la configuration RAID 10 en utilisant les périphériques /dev/sda
, /dev/sdb
, /dev/sdc
et /dev/sdd
. La deuxième zone mise en évidence montre la disposition qui a été utilisée pour cet exemple (deux copies dans la configuration proche). La troisième zone mise en évidence montre l’avancement de la construction. Vous pouvez continuer le guide pendant que ce processus se termine.
Création et montage du système de fichiers
Ensuite, créez un système de fichiers sur l’ensemble :
- 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 avec la commande suivante :
- sudo mount /dev/md0 /mnt/md0
Vérifiez si le nouvel espace est disponible :
- 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.
Sauvegarde de la configuration de l’ensemble
Pour vous assurer que le tableau est automatiquement reconstitué au démarrage, vous devrez ajuster le fichier /etc/mdadm/mdadm.conf
. Vous pouvez analyser automatiquement le tableau actif et ajouter les résultats au fichier en exécutant la commande suivante :
- sudo mdadm --detail --scan | sudo tee -a /etc/mdadm/mdadm.conf
Ensuite, vous pouvez mettre à jour le initramfs
, ou système de fichiers RAM initial, afin que le tableau soit disponible pendant la phase de démarrage précoce :
- 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 tableau RAID 10 sera maintenant automatiquement assemblé et monté à chaque démarrage.
Conclusion
Dans ce guide, vous avez appris comment créer différents types de tableaux en utilisant l’utilitaire de RAID logiciel mdadm
de Linux. Les tableaux RAID offrent une redondance et des améliorations de performances intéressantes par rapport à l’utilisation de plusieurs disques individuellement.
Une fois que vous avez déterminé le type de tableau nécessaire pour votre environnement et créé le périphérique, vous pouvez apprendre à gérer quotidiennement le tableau avec mdadm
. Notre guide sur comment gérer les tableaux RAID avec mdadm
sur Ubuntu peut vous aider à démarrer.