mdadm a remplacé tous les outils précédents pour gérer les tableaux de raid.
Installez le paquet mdadm ou dans un terminal :
...@...:~ $ sudo apt install mdadm
mdadm a sept modes :
Cette commande s'exécute en arrière-plan au démarrage et assemble et exécute tous vos tableaux :
...@...:~$ sudo mdadm --assemble --scan
...@...:~$ sudo mdadm --create /dev/md/name /dev/sda1 /dev/sdb1 --level=1 --raid-devices=2
Cela copie le contenu de sda1 dans sdb1 et donne un tableau propre. Vous pouvez utiliser le tableau pendant sa resynchronisation.
...@...:~$ sudo mdadm --create /dev/md/name /dev/sda1 /dev/sdb1 /dev/sdc1 --level=5 --raid-devices=3 --bitmap=internal
Ceci crée un tableau RAID 5. Donnez le nombre exact de périphériques attendus, ici 3. Deux disques seront assemblés dans un module RAID dégradé, et le troisième disque sera resynchronisé. Si vous voulez ajouter un quatrième lecteur comme disque de secours, cela se fera plus tard. Si, pour une raison quelconque, un lecteur est cassé, il peut être rajouté sans avoir besoin d'une resynchronisation totale.
...@...:~$ sudo mdadm [--grow] /dev/md/mirror --add /dev/sdc1 [--raid-devices=3]
On convertit le RAID1 à deux disques en un RAID5 dégradé à deux disques, puis on ajoute le troisième disque pour obtenir une matrice raid5 entièrement fonctionnelle :
...@...:~$ sudo mdadm --grow /dev/md/mirror --level=5 ...@...:~$ sudo mdadm --grow /dev/md/mirror --add /dev/sdc1 --raid-devices=3
On convertit le RAID 1 de la première section en un RAID 1 à trois disques dégradé, puis en un miroir à deux disques sain :
...@...:~$ sudo mdadm /dev/md/mirror --fail /dev/sdc1 --remove /dev/sdc1 ...@...:~$ sudo mdadm --grow /dev/md/mirror --raid-devices=2
Si vous avez déjà supprimé un disque d'un RAID 1 à trois disques poue en faire un RAID 1 à deux disques, utilisez uniquement la deuxième ligne pour corriger le mode dégradé. Cela peut être vérifié :
...@...:~$ sudo mdadm --detail /dev/mdxxx
Supposons que vous manquez de ports SATA pour ajouter d'autres unités de disque, mais que vous voulez augmenter l'espace de votre matrice.
Avec un RAID 1 à trois disques, vous pouvez simplement mettre en fail un lecteur et le remplacer par un lecteur plus grand, et répéter cela jusqu'à ce que tous vos lecteurs aient été remplacés par des lecteurs plus grands.
Si vous avez un raid autre que RAID 1, par exemple un RAID 5 ou 6, utilisez un port SATA libre pour effectuer un –replace.
Une fois augmentée la taille de tous les périphériques, augmentez la taille de la matrice puis celle du système de fichiers ou des partitions de la matrice.
L'ajout d'un nouveau périphérique à un RAID 1 ne changera pas la taille du tableau - le nouveau périphérique stockera une copie supplémentaire des données et il n'y aura pas d'espace supplémentaire. Mais l'ajout d'un périphérique à un autre type de RAID augmente l'espace disponible. Par exemple, un raid-5 de 3 fois 4 To, donne une matrice de 8 To. L'ajout d'un quatrième disque de 4 To nous donnera une matrice de 12 To.
En supposant que cela soit possible, l'ajout d'un disque de 3 To ne nous donnerait qu'un 1 To supplémentaire, car la formule pour le raid-5 est de la taille du plus petit appareil. Pour ce faire, vous devrez probablement réduire la taille de la matrice à 6 To (–size=3TB) avant d'ajouter le nouveau disque (ce qui augmentera la capacité à 9 To).
L'ajout de ce quatrième lecteur a augmenté la taille du tableau, ce dont nous pouvons tirer parti en redimensionnant le système de fichiers. Mais que se passe-t-il si nous avons ajouté un disque de 5 To à nos trois disques de 4 To ? Malheureusement, ce 1 To supplémentaire est gaspillé car ce lecteur est plus grand. Supposons donc qu'au lieu d'ajouter un quatrième disque - 5 To -, nous avons en fait remplacé tous les disques 4 To pour nous donner un disque 3 x 5 To. Malheureusement, nous n'avons toujours qu'une matrice de 8 To. Nous devons informer mdadm de l'espace supplémentaire disponible avec
...@...:~$ sudo mdadm --grow /dev/mdN --size=max
L'option –size indique à la matrice la quantité de chaque disque à utiliser. Lorsqu'un tableau est créé, il a par défaut la taille du plus petit disque, mais lorsque, comme ici, nous avons remplacé tous les disques par des disques plus grands, nous devons informer explicitement mdadm de l'espace. L'argument max indique de choisir par défaut la taille du plus petit lecteur actuellement dans la matrice.
Si la matrice a été partitionnée à l'origine, le nouvel espace sera désormais disponible pour redimensionner les partitions existantes ou en ajouter de nouvelles. Si la matrice contenait un système de fichiers, il peut maintenant être étendu :
...@...:~$ sudo resize2fs /dev/mdN
...@...:~$ sudo mdadm --monitor --daemonise --mail=votre_adresse@mail.tld --delay=1800 /dev/md0
Pour récupérer les informations d'un volume (si vous avez perdu le fichier /etc/mdadm/mdadm.conf) :
...@...:~$ sudo mdadm --examine /dev/sda1 /dev/sda1: Magic : a92b4efc Version : 1.2 Feature Map : 0x1 Array UUID : f88601ca:d0e78820:c242a066:82223b32 Name : framboise4:0 (local to host framboise4) Creation Time : Thu Oct 15 09:17:35 2020 Raid Level : raid1 Raid Devices : 2 Avail Dev Size : 234306480 (111.73 GiB 119.96 GB) Array Size : 117153216 (111.73 GiB 119.96 GB) Used Dev Size : 234306432 (111.73 GiB 119.96 GB) Data Offset : 133120 sectors Super Offset : 8 sectors Unused Space : before=133040 sectors, after=48 sectors State : clean Device UUID : 6e555965:f886e6a5:a1903853:70a869ac Internal Bitmap : 8 sectors from superblock Update Time : Mon Oct 19 11:01:26 2020 Bad Block Log : 512 entries available at offset 16 sectors Checksum : 238720ee - correct Events : 1266 Device Role : Active device 0 Array State : AA ('A' == active, '.' == missing, 'R' == replacing)
...@...:~ $ sudo mdadm --stop /dev/md0
...@...:~ $ sudo mdadm --manage /dev/md0 --fail /dev/sdb1
...@...:~ $ sudo mdadm --manage /dev/md0 --remove /dev/sdb1
...@...:~ $ sudo mdadm --zero-superblock /dev/sdb1
...@...:~ $ sudo mdadm --detail /dev/md0