J’aimerai remplacer 2 disques 1TO par 2 disques 2TO dans un RAID 0 soft (mdadm). Le but est d’augmenter la capacité de stockage.
C’est juste de le faire de la manière suivante ?
1 -Remplacer un premier disque de 1TO par un disque 2 TO et le laisser se reconstruire.
(avec les options -f et -r de mdadm, puis mdadm --add /dev/md0 /dev/sda).
2 - IDEM : Remplacer le second disque de 1TO par un disque 2 TO et le laisser se reconstruire.
3 - Faire augmenter la capacité du RAID (mdadm --grow /dev/md0 --size=max).
Pardon, je n’ai pas cherché des explications sur le net, c’est quoi (write-intent bitmap) ou quelle précaution faut-il prendre à son sujet ?
3 - Faire un fsck par precaution puis Etendre le fs (resize2fs /dev/md0). (remarque: Ce n’est pas un LVM).
Le RAID 0 ne fournit pas de redondance. On ne peut pas remplacer un disque et le reconstruire puisque ses données ne sont pas répliquées. Le plus simple est probablement de créer un nouvel ensemble RAID et d’y transférer les données.
Dans ce cas si possible le plus sûr serait d’ajouter les deux nouveaux disques et de les synchroniser avant de retirer les deux anciens, ainsi la redondance serait préservée à tout moment.
ajouter les deux nouveaux disques en spare
augmenter le nombre de membres actifs à 4 avec --grow
attendre la synchronisation
retirer les deux anciens disques
réduire le nombre de disques actifs à 2 avec --grow
augmenter la taille de l’ensemble RAID
augmenter la taille du système de fichiers (pas besoin de fsck en général ou si monté, sinon resize2fs l’indique)
D’apres ce que j’ai lu sur le net, il est conseillé de désactiver le bitmap avant d’augmenter la taille du RAID, puis le réactiver ensuite.
Le bitmap serait une sorte de cartographie de l’espace de stockage RAID qu’il faut refaire apres avoir augmenté la taille du RAID. Le bitmap enregitrerait les adresses physiques ou sont modifiés les données sur l’espace RAID. (C’est pour des raisons de performance de synchro ou autres, mais c’est un autre sujet).
Du coup, si je garde l’ancien bitmap, il sera possible que la capacité de stockage redevienne à 1TO au prochain redemarrage du service ou de la machine, puisque l’ancien bitmap a la cartographie du RAID 1TO.
Je mets tout au conditionnel, car c’est ce que j’ai compris seulement.
Bien evidemment, n’hesitez pas à corriger ou à fournir des explications plus claires.
D’après la page de manuel de mdadm, c’est même obligatoire :
Also the size of an array cannot be changed while it has an active bitmap. If an array has a bitmap, it must be removed before the size can be changed. Once the change is complete a new bitmap can be created.
Oui, j’ai fini par retrouver les infos. Le manuel est clair. J’ai donc mis « mdadm --grow /dev/md0 --bitmap none » avant de faire un grow.
Le dernier tuto que j’ai lu mettais juste « …it is strongly recommended that you remove the bitmap before increasing the size of the array… » dans d’autres endroits, ils disent seulement que c’est « conseillé »…
Je remarque qu’un des membres de l’ensemble RAID est un disque entier (sdb) et l’autre une partition (sdc1). Techniquement ce n’est pas une erreur mais c’est le genre de chose qui peut créer de la confusion a posteriori. Assure-toi notamment que sdb n’a pas de table de partition qui entrerait en conflit avec le superbloc RAID.
Personnellement je crée toujours une partition de type RAID même si elle occupe tout l’espace du disque, car je trouve que c’est plus clair.
root@srv-deb:~# mdadm --detail /dev/md0
mdadm: cannot open /dev/md0: No such file or directory
root@srv-deb:~#
root@srv-deb:~# systemctl status mdadm
● mdadm.service
Loaded: masked (Reason: Unit mdadm.service is masked.)
Active: inactive (dead)
root@srv-deb:~#
J’ai encore un disque de 1TO qui contient toujours les données. ce disque était membre du RAID avant le début des manips.
Comment procéder ? Faut-il redémarrer le serveur en branchant ce disque de 1TO avec 1 nouveau disque pour revenir à une config fonctionnelle. Puis procéder à l’upgrade 1To–> 2TO ?
Bonjour,
La recontruction est terminée. L’espace RAID est de 2TO mais le fs est de 1TO
lorsque je lance resize2fs /dev/md127, il me répond par « resize2fs: Périphérique ou ressource occupé while trying to open /dev/md127 » . Les disques sont cryptés.
Voici quelques retours de commandes :
root@srv-deb:~# resize2fs /dev/md127
resize2fs 1.44.5 (15-Dec-2018)
resize2fs: Périphérique ou ressource occupé while trying to open /dev/md127
root@srv-deb:~#
Qu’est-ce qui est chiffré ? Le contenu de l’ensemble RAID ? Dans ce cas il doit y avoir un volume chiffré /dev/mapper/xxx dont le nom xxx est défini dans /etc/crypttab pour ouverture automatique au démarrage. C’est dans ce volume chiffré qu’il faut agrandir le système de fichiers. Le volume chiffré lui-même s’adapte à la taille du conteneur chiffré lors de son ouverture, donc pas besoin de l’agrandir explicitement.
Ok, si je comprend bien, j’ai répondu un peu trop vite
Il faut que je relise la documentation perso pour retrouver comment j’ai fait ce RAID.
Chose est sûre, les données sont encore là lorsque je monte /dev/md127 dans un repertoire.
Si non peut-on partir de l’état actuel des choses pour voir comment étendre le fs ?
Ça m’étonnerait. D’après blkid, /dev/md127 est un conteneur chiffré LUKS. Ce n’est pas un système de fichiers, ça ne se monte pas. Par contre /dev/mapper/md127 contient un système de fichiers ext4. Je suppose que c’est le volume chiffré ouvert à partir de /dev/md127. A mon avis le nom « md127 » est très mal choisi car il prête à confusion entre le conteneur et le contenant qui ont le même nom. Même remarque pour /dev/sda3 et /dev/mapper/sda3.
Alors comment sont ouverts les deux volumes chiffrés /dev/mapper/sda3 qui est monté sur /home et /dev/mapper/md127 ? Manuellement ? Avec des unités systemd ?