Ajouter un nouveau volume sur une VM CentOS 7 sans redémarrage
Sommaire
I. Présentation
Avec l'utilisation intensive de la virtualisation, il arrive bien souvent que l’on soit amené à agrandir une partition sur une machine virtuelle sous CentOS7. Mais, ni le script mentionné précédemment, ni les commandes à destination des fichiers du pseudo-file système /sys/block/sdx/device ne fonctionnent.
Bien évidemment, me direz-vous, on peut arrêter et redémarrer la VM pour prendre en compte le nouveau disque logique accroché à la VM. Mais, dans certains cas, il est souhaitable de ne pas rebooter la machine. Je vous propose alors, dans ce tutoriel de voir comment procéder pour éviter le redémarrage de la VM et ajouter un nouveau volume sous LVM.
II. Découverte du nouveau disque
On part du principe que l’on a ajouté le nouveau volume directement dans VMware, depuis l’interface graphique du client VMware client :
Dès lors, on peut alors se connecter à une console de la machine virtuelle et exécuter la commande ci-dessous, permettant de découvrir le nouveau volume comme étant susceptible d’être utilisé pour générer de nouvelles partitions :
# ls /sys/class/scsi_host/ | while read host ; do echo "- - -" > /sys/class/scsi_host/$host/scan ; done
REMARQUE : on suppose aussi, que le principal disque système est place sur /dev/sda, lui-même découpé en volumes logiques. On souhaite configurer un nouveau volume /backup pour déposer des fichiers de backup.
III. Vérification du nouveau disque
Il est alors possible de vérifier que le nouveau volume est bien découvert, en exécutant l’instruction suivante :
# fdisk –l Disque /dev/sdb : 375.8 Go, 375809638400 octets, 734003200 secteurs Unites = secteur de 1 a 512 = 512 octets Taille de secteur (logique / physique) : 512 octets / 512 octets taille d'E/S (minimale / optimale) : 512 octets / 512 octets
IV. Création de la partition
On peut alors créer la nouvelle partition sur ce nouveau volume, en exécutant la commande ci-dessous. Il suffira de créer la partition comme le montre la capture suivante :
# fdisk /dev/sdb1 Le peripherique ne contient pas de table de partitions reconnue Construction d'une nouvelle etiquette pour disque de type DOS avec identifiant de disque 0xa8d2a705. Commande (m pour l'aide) : n Type de partition : p primaire (0 primaire(s), 0 etendue(s), 4 libre(s)) e etendue Selection (p par defaut) : p Numero de partition (1-4, 1 par defaut) : Premier secteur (2048-734003199, 2048 par defaut) : Utilisation de la valeur 2048 par defaut Dernier secteur, +secteur ou +taille{K,M,G} (2048-734003199, 734003199 par defaut) : Utilisation de la valeur 734003199 par defaut La partition 1 de type Linux et de taille 350 GiB est configuree Commande (m pour l'aide) : w La table de partitions a ete alteree. Appel d'ioctl() pour relire la table de partitions. Synchronisation des disques.
V. Intégration dans LVM
Maintenant, on peut procéder à la création du volume physique, puis d’un nouveau groupe de volume et d’un volume logique via les commandes suivantes :
# pvcreate /dev/sdb1 # vgcreate vg01 /dev/sdb1 # lvcreate -n lv_backup -l 100%FREE vg01
Il est relativement simple de s’assurer que tout a bien été configure en effectuant les vérifications d’usage concernant la création cohérente de ce groupe de volume:
# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg00 lvm2 a-- 119,75g 0 /dev/sdb1 lvm2 --- 350,00g 350,00g # vgs VG #PV #LV #SN Attr VSize VFree vg00 1 6 0 wz--n- 119,75g 0 vg01 1 0 0 wz--n- 350,00g 350,00g # lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Con vert home vg00 -wi-ao---- 30,00g root vg00 -wi-ao---- 10,00g swap vg00 -wi-ao---- 4,00g tmp vg00 -wi-ao---- 20,00g usr vg00 -wi-ao---- 25,75g var vg00 -wi-ao---- 30,00g backup vg01 -wi-a----- 350,00g
VI. Création et montage du système de fichiers
On peut dès lors créer le système de fichiers :
# mkfs -t xfs /dev/vg01/backup# mkdir /backup
Pour finir, on doit également modifier le fichier des partitions /etc/fstab :
… /dev/vg01/backup /backup xfs defaults 0 0
On peut alors procéder au montage du nouveau système de fichiers (sans redémarrage aucun de la vm), en exécutant la commande suivante:
# mount /backup
VII. Conclusion
Cette petite procédure est très pratique, car elle permet d’intégrer rapidement de nouveaux volumes au sein du LVM favorisant ainsi les snapshots et la sécurisation de la donnée. De plus, on évite ainsi le redémarrage de la VM pour intégrer de nouveaux disques : ce qui n’est pas négligeable.
Ne serait il pas préférable de typer la partition en type lvm plutôt que en type linux lors du fdisk ?
Ainsi lors d’un prochain demarage elle sera automatiquement reconnue…
Bonsoir,
Bien sûr, lors de l’opération fdisk vous pouvez en plus labeliser la partition en LVM. Mais, de toute manière cela sera fait automatiquement lorsque la partition aura été intégrée au LVM (PV/VG/LV).
Mais, il est vrai que pour être plus cohérent, il faudrait mettre le type LVM.
Bonne soirée.
Et comment augmenter le disk sans creer de partition et sans reboot?