15/11/2024

Commandes et Système

Ajouter un nouveau volume sur une VM CentOS 7 sans redémarrage

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.

author avatar
Philippe PIERRE
A exercé de nombreuses années en tant qu'administrateur de base de données et comme administrateur Système Unix/Linux. Il a enseigné les réseaux au CNAM (Paris). Aujourd'hui, employé en tant qu'ingénieur infrastructure, au sein d'un laboratoire pharmaceutique et administrant un cluster de calculs HPC, il connaît parfaitement les environnements GNU/Linux dans le cadre d'une entreprise et des systèmes de haute disponibilité. Il aime partager son expérience.
Partagez cet article Partager sur Twitter Partager sur Facebook Partager sur Linkedin Envoyer par mail

3 commentaires sur “Ajouter un nouveau volume sur une VM CentOS 7 sans redémarrage

  • 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…

    Répondre
    • 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.

      Répondre
  • Et comment augmenter le disk sans creer de partition et sans reboot?

    Répondre

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.