Comment configurer RAID1 sur Linux
- 582
- 34
- Emilie Colin
RAID signifie une éventail redondant de disques bon marché; Selon le niveau RAID que nous configurons, nous pouvons obtenir une réplication de données et / ou une distribution de données. Une configuration RAID peut être réalisée via du matériel dédié ou via un logiciel. Dans ce tutoriel, nous voyons comment implémenter un RAID1 (Mirror) via un logiciel sur Linux, en utilisant
le mdadm utilitaire.
Dans ce tutoriel, vous apprendrez:
- Les particularités des niveaux de raid les plus utilisés
- Comment installer MDADM sur les principales distributions Linux
- Comment configurer un RAID1 avec deux disques
- Comment remplacer un disque dans le tableau RAID
Exigences et conventions logicielles utilisées
Catégorie | Exigences, conventions ou version logicielle utilisée |
---|---|
Système | Distribution indépendante |
Logiciel | mdadm |
Autre | Autorisation |
Conventions | # - nécessite que les commandes Linux sont exécutées avec des privilèges racine soit directement en tant qu'utilisateur racine, soit par l'utilisation de Sudo commande$ - Exige que les commandes Linux sont exécutées en tant qu'utilisateur non privilégié régulier |
Un bref aperçu des niveaux de raid les plus utilisés
Avant de commencer avec notre tutoriel et de voir comment implémenter une configuration logicielle RAID1 sur Linux en utilisant mdadm, C'est une bonne idée de faire un bref récapitulatif des niveaux de raid les plus utilisés et de voir quelles sont leurs particularités.
Raid0
Son objectif principal est d'améliorer les performances. Dans ce niveau ou raid, nous avons deux disques ou plus qui devraient être de taille égale. Les données sont distribuées alternativement sur les disques (rayures), et cela diminue les temps de lecture et d'écriture.
Diagramme RAID0
Raid1
RAID1 (miroir) est ce que nous allons mettre en œuvre dans ce tutoriel: dans ce niveau RAID, les données sont écrites simultanément, et ainsi reproduites sur les deux ou plusieurs disques qui font partie du tableau.
Diagramme RAID1
Raid5
Pour créer une configuration avec ce niveau RAID, un minimum de trois disques est requis et les disques N-1 peuvent contenir des données. Cette configuration peut gérer la défaillance d'un disque sans subir de perte de données. Tout comme RAID0, dans cette configuration, les données sont rayées, donc distribuées sur plusieurs disques. La principale différence est que aussi Informations sur la parité des données existe et est également rayé. Qu'est-ce que les informations de parité de données? Fondamentalement, tous les disques
Dans le tableau RAID, contiennent des informations sur l'état des données; Ces informations permettent de reconstruire les données si l'un des disques échoue.
Diagramme RAID5
Raid6
RAID6 fonctionne de manière similaire à RAID5; La principale différence est que cette configuration implique la présence de deux Disques de parité, donc avec ce niveau RAID, il est possible de gérer la défaillance de deux disques sans souffrir de perte de données. Un minimum de quatre disques sont nécessaires pour atteindre cette configuration.
Diagramme RAID6
Installation de MDADM
MDADM est l'utilitaire qui gère le raid logiciel sur Linux. Il est disponible dans toutes les principales distributions. Sur Debian et ses dérivés, il est possible de l'installer en utilisant la commande suivante:
$ sudo apt-get update && sudo apt-get install mdadm
Sur la famille de distributions Red Hat, nous pouvons utiliser le DNF
directeur chargé d'emballage:
$ sudo dnf installer mdadm
Sur archlinux, nous pouvons installer le package à l'aide du Pac-Man
directeur chargé d'emballage:
$ sudo Pacman -Sy Mdadm
Une fois le logiciel installé, nous pouvons continuer et créer notre configuration RAID1.
Créer le raid
Pour le bien de ce tutoriel, je travaillerai dans un environnement virtuel, en utilisant un système de Debian «Buster», et deux disques virtuels que j'ai précédemment créés, qui feront partie de la configuration RAID1. Ces disques sont reconnus comme vdb
et VDC
, comme vous pouvez le voir sur la sortie du lsblk
commande:
SR0 11: 0 1 1024M 0 ROM VDA 254: 0 0 7G 0 DISK ├fique-VDA1 254: 1 0 6G 0 PART / ├AVDA2 254: 2 0 1K 0 PARTIE └AVDA5 254: 5 0 1021M 0 PART [SWAP] VDB 254: 16 0 1G 0 DISK VDC 254: 32 0 1G 0 DISK
Partitionner les disques
Bien qu'il soit possible de créer le raid directement à l'aide de disques bruts, c'est toujours une bonne idée d'éviter cela et, à la place, de créer une partition sur chacun des deux disques. Pour effectuer une telle tâche, nous utiliserons séparé
. La première chose que nous voulons faire est de créer une table de partition. Pour le bien de cet exemple, nous utiliserons mbr
tables de partition, mais gp
Ceux sont requis dans les scénarios du monde réel si vous utilisez des disques de 2 To ou plus. Pour initialiser un disque, nous pouvons exécuter la commande suivante:
$ sudo séparé -s / dev / vdb mklabel msdos
Maintenant, nous pouvons créer une partition qui prend tout l'espace disponible:
$ sudo séparé -s / dev / vdb mkpart primaire 1mib 100%
Nous pouvons maintenant mettre le drapeau RAID sur la partition (cela définira le type de partition sur FD
- «Linux Raid AutoDetect»):
$ sudo a séparé -s / dev / vdb set 1 raid
Dans ce cas, nous avons travaillé sur le / dev / vdb
dispositif, nous devons évidemment répéter les mêmes opérations également sur le / dev / vdc
disque.
Configuration de Raid1
Une fois que nous avons initialisé et partitionné les disques que nous pouvons utiliser mdadm
Pour créer la configuration réelle. Tout ce que nous avons à faire est d'exécuter la commande suivante:
$ sudo mdadm \ --verbose \ --create / dev / md0 \ --level = 1 \ --raid-devices = 2 \ / dev / vdb1 / dev / vdc1
Analysons la commande ci-dessus. Tout d'abord, nous avons utilisé le --verbeux
Option afin de faire en sorte que la commande puisse la sortie plus d'informations sur les opérations qui sont effectuées.
Nous avons utilisé mdadm
En «mode création», c'est pourquoi --créer
Option, fournissant le nom de l'appareil qui doit être créé (/ dev / md0
dans ce cas). Nous avons précisé le niveau à utiliser pour le raid avec --niveau
, et le nombre d'appareils qui devraient en faire partie avec --dispositifs de raid
. Enfin, nous avons fourni le chemin des appareils qui doivent être utilisés.
Une fois que nous exécutons la commande, nous devons visualiser la sortie suivante:
MDADM: Remarque: Ce tableau a des métadonnées au début et peut ne pas convenir en tant que périphérique de démarrage. Si vous prévoyez de stocker «/ démarrer» sur cet appareil, veuillez vous assurer que votre chargeur de démarrage comprend MD / V1.x métadonnées, ou utilisation --metadata = 0.90 MDADM: Taille définie sur 1046528K Continuez à créer un tableau? y
Dans ce cas, nous pouvons répondre affirmativement à la question et continuer à créer le tableau:
MDADM: défaut de version 1.2 métadonnées MDADM: Array / Dev / MD0 démarré.
Pour visualiser les informations et l'état de la configuration du raid créé, nous pouvons exécuter mdadm
avec le --détail
Option, passer le nom de l'appareil que nous voulons vérifier. Dans ce cas, la sortie est la suivante:
$ sudo mdadm --detail / dev / md0 / dev / md0: version: 1.2 Temps de création: ven 23 avril 11:16:44 2021 RAID Niveau: RAID1 Taille du tableau: 1046528 (1022.00 MIB 1071.64 Mo) Taille de développement utilisé: 1046528 (1022.00 MIB 1071.64 MB) Dispositifs RAID: 2 Total Devices: 2 Persistance: SuperBlock est un temps de mise à jour persistant: Ven 23 avril 11:17:04 2021 État: Clean Active Devices: 2 Dispositifs de travail: 2 Dispositifs défaillants: 0 Dispositifs de rechange: 0 Politique de cohérence: Resync Nom: Debian: 0 (local pour héberger Debian) UUID: 4721F921: BB82187C: 487DEFB8: E960508A Événements: 17 Nombre majeur Minor RaidDevice State 0 254 17 0 Sync / Dev / Vdb1 1 254 33 1 Sync / Vdc1 actif / VDC1
Avec le --détail
Option Nous pouvons recueillir des informations sur le raid dans son ensemble. Si nous voulons des informations sur chaque disque unique qui est membre de la configuration, nous pouvons utiliser --examiner
Au lieu de cela, et passez les appareils comme argument. Dans ce cas, par exemple, nous courions:
$ sudo mdadm --examine / dev / vdb1 / dev / vdc1
La commande produirait une sortie similaire à ce qui suit:
/ dev / vdb1: magie: A92B4EFC Version: 1.2 Carte de fonction: 0x0 Array UUID: 4721F921: BB82187C: 487DEFB8: E960508A Nom: Debian: 0 (Local to Host Debian) Temps de création: Fri 23 avril 2093056 (1022.00 MIB 1071.64 Mo) Taille du tableau: 1046528 (1022.00 MIB 1071.64 MB) Données Offset: 2048 Secteurs Super Offset: 8 Secteurs Espace inutilisé: Avant = 1968 Secteurs, After = 0 Secteurs État: Clean Dispositif UUID: A9575594: 40C0784B: 394490E8: 6EB7E9A3 Temps de mise à jour: FRI 23 11:30:02 2021 Bad Block Journal: 512 Entrées disponibles au décalage 16 Secteurs Vérification: 51AFC54D - Événements corrects: 17 Rôle du périphérique: Appareil actif 0 État du tableau: aa ('A' == Active, '.'== Missing,' r '== Remplacement) / dev / vdc1: magie: A92B4EFC Version: 1.2 Carte de fonction: 0x0 Array UUID: 4721F921: BB82187C: 487DEFB8: E960508A Nom: Debian: 0 (Local to Host Debian) Temps de création: Fri 23 avril 2093056 (1022.00 MIB 1071.64 Mo) Taille du tableau: 1046528 (1022.00 MIB 1071.64 MB) Données Offset: 2048 Secteurs Super Offset: 8 Secteurs Espace inutilisé: Avant = 1968 Secteurs, After = 0 Secteurs État: Clean Device UUID: B0CF8735: 5FE765C0: 6C269C2F: 3777D11D Temps de mise à jour: FRI 23 11:30:02 2021 Bad Block Journal: 512 Entrées disponibles au décalage 16 Secteurs Vérification: 28C3066F - Événements corrects: 17 Rôle du périphérique: Appareil actif 1 État du tableau: AA ('A' == Active, '.'== manquant,' r '== Remplacement)
Utilisation du périphérique RAID
Dans la section précédente, nous avons créé une configuration RAID1 en utilisant deux disques (virtuels):/ dev / vdb
et / dev / vdc
. Le périphérique RAID que nous avons créé est appelé / dev / md0
. Pour pouvoir l'utiliser, nous devons créer un système de fichiers dessus. Pour utiliser le ext4
, Système de fichiers, par exemple, nous exécutrions:
$ sudo mkfs.ext4 / dev / md0
Une fois le système de fichiers créé, nous devons le monter quelque part, et que de procéder à l'utiliser comme un périphérique de blocage normal. Pour faire en sorte que le système monte automatiquement l'appareil au démarrage, nous devons créer une entrée pour lui dans le fichier / etc / fstab. Ce faisant, nous devons référencer le dispositif RAID par son Uuid, Puisque son chemin peut changer sur le redémarrage. Pour trouver l'UUID de l'appareil, nous pouvons utiliser le lsblk
commande:
$ lsblk -o uuid / dev / md0 uuid 58ff8624-e122-419e-8538-d948439a8c07
Remplacement d'un disque dans le tableau
Maintenant, imaginez que l'un des disques du tableau échoue. Comment devrions-nous procéder? Comme nous le verrons, nous pouvons le supprimer du tableau sans perdre de données. Supposons que le disque dur échoué est / dev / vdc
, Nous pouvons émettre la commande suivante pour le marquer comme tel:
$ sudo mdadm --manage / dev / md0 --fail / dev / vdc1
La sortie de la commande ci-dessus sera:
MDADM: SET / DEV / VDC1 défectueux dans / dev / md0
Nous pouvons vérifier l'état du raid pour confirmer que l'appareil a été marqué comme défectueux:
$ sudo mdadm --detail / dev / md0 / dev / md0: version: 1.2 Temps de création: ven 23 avril 11:16:44 2021 RAID Niveau: RAID1 Taille du tableau: 1046528 (1022.00 MIB 1071.64 Mo) Taille de développement utilisé: 1046528 (1022.00 MIB 1071.64 MB) Dispositifs RAID: 2 Total Devices: 2 Persistance: Superblock est un temps de mise à jour persistant: Ven 23 avril 15:01:36 2021 État: Clean, Dégusation active dégradée: 1 Dispositifs de travail: 1 Périphériques défaillants: 1 Dispositifs de rechange: 0 cohérence Politique: Resync Nom: Debian: 0 (local à hôte debian) UUID: 4721F921: BB82187C: 487DEFB8: E960508A Événements: 19 Numéro Minor Minor RaidDevice State 0 254 17 0 Synchronisation active / dev / vdb1 - 0 0 1 REMORD 1 254 33 - défectueux / dev / vdc1
Avez-vous vu qu'il n'y en a maintenant qu'un appareil actif, et / dev / vdc1
État
est: défectueux. Maintenant, pour retirer le disque du tableau, nous pouvons courir:
$ sudo mdadm --manage / dev / md0 --remove / dev / vdc1
En passant --gérer
Nous travaillons avec mdadm
en mode «gérer»; Dans ce mode, nous pouvons effectuer des actions comme supprimer les disques défectueux ou en ajouter de nouveaux. Si tout se passe comme prévu, l'appareil doit être «à chaud»:
MDADM: Hot supprimé / dev / vdc1 de / dev / md0
Nous devons maintenant formater le nouveau disque dur que nous utiliserons pour remplacer celui défectueux de la même manière que nous avons fait pour les deux autres, au début de ce tutoriel. Nous pourrions également utiliser un raccourci qui consiste dans l'utilisation du sfdisk
commande. Si nous exécutons cette commande avec le -d
Option (abréviation pour --décharge
), il videra des informations sur les partitions d'un appareil que nous passons comme argument. Ces informations peuvent être utilisées comme sauvegarde et reproduire la configuration. Nous pouvons rediriger la sortie vers un fichier ou l'utiliser directement dans un pipeline. Supposer que le nouveau disque est / dev / vdd
, Nous courions:
$ sudo sfdisk -d / dev / vdb | sudo sfdisk / dev / vdd
Une fois que le nouveau disque est partitionné et prêt, nous pouvons l'ajouter à notre tableau RAID1 avec la commande suivante:
$ sudo mdadm --manage / dev / md0 --add / dev / vdd1
Si nous vérifions maintenant l'état du périphérique RAID, nous pouvons voir qu'il «reconstruise» sur l'appareil de rechange que nous avons ajouté:
$ sudo mdadm --detail / dev / md0 / dev / md0: version: 1.2 Temps de création: ven 23 avril 11:16:44 2021 RAID Niveau: RAID1 Taille du tableau: 1046528 (1022.00 MIB 1071.64 Mo) Taille de développement utilisé: 1046528 (1022.00 MIB 1071.64 MB) Dispositifs RAID: 2 Total Devices: 2 Persistance: Superblock est un temps de mise à jour persistant: ven 23 avril 15:29:45 2021 État: propre, dégradé, récupération des appareils actifs: 1 Dispositifs de travail: 2 Périphériques défaillants: 0 Dispositifs de rechange: 1 Politique de cohérence: Resync Rebuild Statut: 19% Nom complet: Debian: 0 (local à hôte Debian) UUID: 4721F921: BB82187C: 487DEFB8: E960508A Événements: 26 Nombre majeur Minor Raiddevice State 0 254 17 0 SYNC / DEV / VDB1 2 254 49 1 Rebuilding de rechange / DEV / VDD1
D'après la sortie de la commande, nous pouvons voir que l'État est signalé comme «propre, dégradé, récupérant» et le / dev / vdd1
La partition est signalée comme une «reconstruction de rechange». Une fois le processus de reconstruction terminé, il se transformera en «synchronisation active».
Conclusions
Dans ce tutoriel, nous avons vu un bref aperçu des niveaux de raid les plus utilisés, comment créer un logiciel RAID1 avec deux disques en utilisant le mdadm
utilitaire, comment vérifier l'état du périphérique RAID et de chaque disque unique dans le tableau. Nous avons également vu comment retirer et remplacer un disque défectueux. N'oubliez pas que RAID1 parons à la redondance des données mais ne doit pas être considéré comme une sauvegarde!
Tutoriels Linux connexes:
- Miroirs Ubuntu
- Choses à installer sur Ubuntu 20.04
- Choses à faire après l'installation d'Ubuntu 20.04 Focal Fossa Linux
- Une introduction à l'automatisation Linux, des outils et des techniques
- Choses à faire après l'installation d'Ubuntu 22.04 Jammy Jellyfish…
- Boucles imbriquées dans les scripts bash
- Fichiers de configuration Linux: 30 premiers
- Téléchargement Linux
- Mint 20: Mieux que Ubuntu et Microsoft Windows?
- Linux peut-il obtenir des virus? Exploration de la vulnérabilité de Linux…
- « Comment générer et sauvegarder une clés GPG sur Linux
- Comment garder les fichiers et les répertoires synchronisés sur différents appareils à l'aide de Syncthing sur Linux »