Le RAID 1 (Redundant Array of Inexpensive Disks) est normalement réservé aux serveurs, mais j’aime également l’utiliser sur les stations de travail. Pour le prix d’un disque dur, on accroît considérablement la sécurité des données. Et précisons-le tout de suite, l’utilisation du RAID ne vous dispense pas d’un serveur de sauvegardes dans le réseau.
La procédure décrite dans cet article est basée sur une installation OpenSUSE Leap 15.0. Les principes restent les mêmes pour les versions subséquentes, à quelques menus détails près.
- Choix des disques
- Réinitialiser les disques
- Le schéma de partitionnement
- Mise en place du RAID 1 dans l’installateur
- Redémarrage initial
Choix des disques
En matière de disques durs, j’ai une prédilection pour les disques Western Digital Red, et dans la mesure du possible, j’essaie d’éviter les capacités supérieures à 1 To pour éviter qu’ils chauffent trop. Les disques de qualité Red sont conçus pour être plus durables, vous les payez donc un peu plus cher. N’oubliez pas que sur une station de travail, ce sont avant tout vos données qui ont de la valeur. Notez aussi qu’en règle générale, les disques durs sont plus fragiles que ce que vous imaginez. La question n’est pas s’ils vont lâcher un jour, mais plutôt quand est-ce qu’ils vont le faire. D’où l’intérêt d’utiliser le RAID 1.
Réinitialiser les disques
Avant d’installer quoi que ce soit, j’ai pris l’habitude de réinitialiser les disques durs pour partir sur des bases saines. Pour ce faire, j’utilise le support d’installation d’OpenSUSE, qui fait également office de système de secours.
Je démarre sur la clé USB, j’appuie sur F2 pour sélectionner la langue française, puis je sélectionne Plus > Système de secours dans le menu principal.
Ma machine est dotée de deux disques durs avec des assemblages RAID.
0:rescue:~ # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 65M 1 loop /parts/mp_0000 loop1 7:1 0 12.9M 1 loop /parts/mp_0001 loop2 7:2 0 49.6M 1 loop /mounts/mp_0000 loop3 7:3 0 44.1M 1 loop /mounts/mp_0001 loop4 7:4 0 4.1M 1 loop /mounts/mp_0002 sda 8:0 0 40G 0 disk ├─sda1 8:1 0 8M 0 part ├─sda2 8:2 0 500M 0 part │ └─md127 9:127 0 500M 0 raid1 ├─sda3 8:3 0 37.5G 0 part │ └─md126 9:126 0 37.5G 0 raid1 └─sda4 8:4 0 2G 0 part └─md125 9:125 0 2G 0 raid1 sdb 8:16 0 40G 0 disk ├─sdb1 8:17 0 8M 0 part ├─sdb2 8:18 0 500M 0 part │ └─md127 9:127 0 500M 0 raid1 ├─sdb3 8:19 0 37.5G 0 part │ └─md126 9:126 0 37.5G 0 raid1 └─sdb4 8:20 0 2G 0 part └─md125 9:125 0 2G 0 raid1 sr0 11:0 1 3.7G 0 rom
Dans un premier temps, je vais supprimer les assemblages RAID.
0:rescue:~ # mdadm --stop --scan 0:rescue:~ # mdadm --zero-superblock /dev/sda2 0:rescue:~ # mdadm --zero-superblock /dev/sda3 0:rescue:~ # mdadm --zero-superblock /dev/sda4 0:rescue:~ # mdadm --zero-superblock /dev/sdb2 0:rescue:~ # mdadm --zero-superblock /dev/sdb3 0:rescue:~ # mdadm --zero-superblock /dev/sdb4
Les assemblages RAID ont bien été nettoyés, et il ne reste plus que les partitions des disques.
0:rescue:~ # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 65M 1 loop /parts/mp_0000 loop1 7:1 0 12.9M 1 loop /parts/mp_0001 loop2 7:2 0 49.6M 1 loop /mounts/mp_0000 loop3 7:3 0 44.1M 1 loop /mounts/mp_0001 loop4 7:4 0 4.1M 1 loop /mounts/mp_0002 sda 8:0 0 40G 0 disk ├─sda1 8:1 0 8M 0 part ├─sda2 8:2 0 500M 0 part ├─sda3 8:3 0 37.5G 0 part └─sda4 8:4 0 2G 0 part sdb 8:16 0 40G 0 disk ├─sdb1 8:17 0 8M 0 part ├─sdb2 8:18 0 500M 0 part ├─sdb3 8:19 0 37.5G 0 part └─sdb4 8:20 0 2G 0 part sr0 11:0 1 3.7G 0 rom
Je vais me servir de l’outil de partitionnement gdisk
pour remettre à zéro mes tables de partitions. Plus exactement, c’est la fonctionnalité avancée zap/destroy
qui me permettra de réinitialiser les disques.
0:rescue:~ # gdisk /dev/sda GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): x Expert command (? for help): z About to wipe out GPT on /dev/sda. Proceed? (Y/N): y GPT data structures destroyed! You may now partition the disk using fdisk or other utilities. Blank out MBR? (Y/N): y 0:rescue:~ # gdisk /dev/sdb GPT fdisk (gdisk) version 1.0.1 Partition table scan: MBR: protective BSD: not present APM: not present GPT: present Found valid GPT with protective MBR; using GPT. Command (? for help): x Expert command (? for help): z About to wipe out GPT on /dev/sdb. Proceed? (Y/N): y GPT data structures destroyed! You may now partition the disk using fdisk or other utilities. Blank out MBR? (Y/N): y
Et voilà une paire de disques durs tout propres.
0:rescue:~ # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT loop0 7:0 0 65M 1 loop /parts/mp_0000 loop1 7:1 0 12.9M 1 loop /parts/mp_0001 loop2 7:2 0 49.6M 1 loop /mounts/mp_0000 loop3 7:3 0 44.1M 1 loop /mounts/mp_0001 loop4 7:4 0 4.1M 1 loop /mounts/mp_0002 sda 8:0 0 40G 0 disk sdb 8:16 0 40G 0 disk sr0 11:0 1 3.7G 0 rom
Le schéma de partitionnement
Je vais reproduire le schéma de partitionnement que j’utilise normalement pour l’installation sur un seul disque dur, mais en mettant les deux disques en miroir. Concrètement, chaque disque devra arborer les partitions suivantes.
- une partition
BIOS boot
d’une taille de 8 Mo - une partition
Linux RAID
d’une taille de 500 Mo pour l’assemblage/dev/md/boot
- une partition
Linux RAID
occupant le maximum d’espace disponible pour l’assemblage/dev/md/root
- une partition
Linux RAID
dont la taille est égale à la quantité de RAM de la machine pour l’assemblage/dev/md/swap
En termes de systèmes de fichiers, nous utiliserons ext2
pour /dev/md/boot
et ext4
pour /dev/md/root
.
Mise en place du RAID 1 dans l’installateur
L’écran Partitionnement proposé de l’installateur suggère un schéma de partitionnement automatique réparti sur les deux disques durs. Je vais faire fi de cette proposition et opter pour le Partitionnement expert > Démarrer avec des partitions existantes.
Je pars de deux disques sda
et sdb
dépourvus de table de partitions.
Dans un premier temps, je vais créer quatre partitions sur le disque sda
.
- Partition
BIOS boot
: Ajouter > Taille personnalisée : 8 MiB > Rôle : Raw Volume (unformatted) > Partition ID : Partition de démarrage du BIOS. - Partition
Linux RAID
: Ajouter > Taille personnalisée : 500 MiB > Rôle : Raw Volume (unformatted) > Partition ID : Linux RAID - Partition
Linux RAID
: Ajouter > Taille personnalisée : soustraire la quantité de swap que l’on veut laisser (par exemple, passer de 39.50 GiB à 37.50 GiB si l’on veut garder 2 GiB pour la partition d’échange) > Rôle : Raw Volume (unformatted) > Partition ID : Linux RAID - Partition
Linux RAID
: Ajouter > Taille maximale : vérifier si le compte est bon > Rôle : Raw Volume (unformatted) > Partition ID : Linux RAID
Si tout s’est bien passé, voici à quoi ressemble mon premier disque dur à peu de détails près.
À présent, nous devons répéter cette opération sur le disque sdb
, en créant quatre partitions identiques à celles du disque sda
. Au total, les deux disques devront ressembler à quelque chose comme ceci.
Dans la fenêtre de gauche du module de partitionnement, l’entrée RAID nous permet d’assembler les grappes RAID. Cliquez sur Ajouter RAID.
Pour créer l’assemblage /dev/md/boot
, définissez le Type de RAID 1 (mise en miroir), choisissez le Nom du RAID boot
, mettez en surbrillance les deux partitions /dev/sda2
et /dev/sdb2
dans la colonne de gauche en utilisant la touche Ctrl pour une sélection multiple, puis cliquez sur Ajouter pour les faire glisser dans la colonne de droite.
Cliquez sur Suivant, acceptez la taille des blocs proposée par défaut (4 KiB), sélectionnez le Rôle Operating System, optez pour le Système de fichiers ext2
et définissez le Point de montage /boot
.
Nous allons créer l’assemblage /dev/md/root
de manière similaire. Cliquez sur Ajouter RAID, définissez le Type de RAID 1 (mise en miroir), choisissez le Nom du RAID root
, mettez en surbrillance les deux partitions /dev/sda3
et /dev/sdb3
dans la colonne de gauche, puis cliquez sur Ajouter pour les faire glisser dans la colonne de droite.
Cliquez sur Suivant, acceptez la taille des blocs proposée par défaut (4 KiB), sélectionnez le Rôle Operating System, optez pour le Système de fichiers ext4
et gardez le Point de montage /
proposé par défaut.
Il ne nous reste plus qu’à créer l’assemblage /dev/md/swap
. Cliquez sur Ajouter RAID, définissez le Type de RAID 1 (mise en miroir), choisissez le Nom du RAID swap
, mettez en surbrillance les deux partitions restantes /dev/sda4
et /dev/sdb4
dans la colonne de gauche, puis cliquez sur Ajouter pour les faire glisser dans la colonne de droite.
Cliquez sur Suivant, acceptez la taille des blocs proposée par défaut (4 KiB), sélectionnez le Rôle swap
et terminez en confirmant les paramètres proposés par défaut.
Si tout s’est bien passé, le récapitulatif de nos assemblages RAID doit nous afficher quelque chose qui ressemble à ceci.
Le récapitulatif nous permet de vérifier une dernière fois si les choses se passent comme prévu.
À partir de là, l’installation se déroule normalement comme pour une configuration avec un disque simple.
Redémarrage initial
Au terme de l’installation, vérifions la santé de notre grappe RAID.
linux-zpm4:~ # cat /proc/mdstat Personalities : [raid1] md125 : active raid1 sdb2[1] sda2[0] 511936 blocks super 1.0 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md126 : active raid1 sdb4[1] sda4[0] 2100160 blocks super 1.0 [2/2] [UU] bitmap: 0/1 pages [0KB], 65536KB chunk md127 : active raid1 sda3[0] sdb3[1] 39321472 blocks super 1.0 [2/2] [UU] bitmap: 1/1 pages [4KB], 65536KB chunk unused devices:
La rédaction de cette documentation demande du temps et des quantités significatives de café espresso. Vous appréciez ce blog ? Offrez un café au rédacteur en cliquant sur la tasse.