Bonjour,
Pour ceux qui ne le savent pas, une partition de type « MBR« , utilisée classiquement partout, ne permet pas l’exploitation de partitions de plus de 2To. Pour utiliser des partitions de cette volumétrie, sous Linux ou Windows, il faut utiliser des partitions de type « GPT« .
GPT offre de nombreux autres avantages, comme avoir plus de 4 partitions principales, etc..
Sous CentOS 5 ou RHEL 5, le grub ne gère pas le boot sur des partitions GPT, il faut utiliser une version de l’OS 6, ou patcher son grub 0.97.
Dans mon cas, voici les manipulations que j’ai effectuées pour migrer un RAID5 de 3x1To vers 4x1To : de MBR vers GPT, tout en redimensionnant le LVM et le système de fichiers (sans perte de données).
Attention : ne partez jamais dans ce genre d’aventure sans avoir sauvegardé vos données !!
Première étape : les disques
Pour ma part, pour migrer mon RAID, il suffit d’utiliser le système fourni par votre constructeur de carte. Ils proposent tous des assistants de migration de grappe, pour ajouter des disques ou même modifier le type RAID d’une grappe. Dans mon cas, la reconstruction de la parité pour passer de 3 à 4 disques sur un RAID5 a pris 28h. Soyez patients ^^
Il faut ensuite ajouter l’espace gagné au volume logique créé sur la grappe (en général, qui fait la taille complète de la grappe).
Deuxième étape : MBR/GPT
Puisque 3x1To en RAID5 donne 1,8To d’espace, MBR suffit. En rajoutant un disque, on passe à 2,7To, et là ça ne passe plus.
Il faut savoir que le GPT ajoute en fin de disques des données pour le partitionnement, vous ne devez donc surtout pas migrer la partition avant d’avoir ajouté l’espace disque sinon vous risquez de perdre la dernière partition et vos données !
Installez sur votre système le package « gdisk » avec le dépôt EPEL.
Pour migrer en GPT, il suffit simplement de lancer l’appli en pointant sur le disque et écrire la configuration. Par exemple, pour /dev/sda :
gdisk /dev/sda
Si pas de warning ou d’erreurs, à la commande de gdisk, entrez « w » et validez.
La partition est maintenant au format GPT.
Si votre grub est installé sur ce disque, vous devez le réinstaller :
grub-install /dev/sda
Si erreur, ajoutez –recheck à la fin de la commande.
Troisième étape : le partitionnement
Pour exploiter l’espace, il faut maintenant repartitionner. Si vous utilisez LVM, une solution « sale » serait de créer un nouveau volume physique sur l’espace libre, et d’ajouter cet espace sur un volume logique existant. Je ne suis pas fan de cette méthode qui éparpille vos données n’importe où.
La solution est simple, bootez sur un autre système via un live cd par exemple. Il devra contenir Gdisk.
S’ils sont montés, démontez les volumes LVM qui sont contenus sur le disque à redimensionner, via umount ou swapoff s’il existe des partitions swap.
Désactivez ensuite le volume physique via : vgchange -a n nom_group_volume
Lancez le partitionnement : gdisk /dev/sda
Commande « p » pour afficher les partitions existantes.
Commande « d » pour choisir une partition à agrandir, et indiquez son numéro montré sur la commande précédente.
Commande « n » pour l’agrandir, indiquez à nouveau le numéro de partition si demandé, puis validez les valeurs par défaut qui vont prendre le cylindre du début et le cylindre de fin de disque. Le type de partition vous sera redemandé, vous devez donner le même qu’au départ, appuyez sur « L » pour afficher les codes et entrez-le (attention ils sont différents de fdisk).
Vous pouvez vérifier les changements en lançant « p » à nouveau. Vous devriez voir le cylindre de fin changer par un plus grand.
Confirmez via « w » pour écrire.
La partition est maintenant agrandie.
Pour dire au système que des changements ont été appliqués : partprobe
Agrandissons le volume physique :
pvresize nom_volume_physique
Réactivons les volumes :
vgchange -a y nom_group_volume
Vous pouvez ensuite agrandir le volume logique. Via vgdisplay nom_volume_group, vous allez voir la capacité libre. Si vous voulez ajouter 100Go par exemple au volume logique « toto », voici la commande : lvextend -L +100G toto
Et voilà