Sur des serveurs fonctionnant sous CentOS et Fedora, j’utilise Logical Volum Manager pour gérer certains systèmes de fichiers. Ces serveurs sont utilisés comme dépots de RPM (miroir d’un serveur public) ainsi que pour y stocker des VM (Virtual Machine) VMware, les utilisateurs pouvant ensuite télécharger les VM pour les utiliser sur leur poste.

Le système de fichier /montage/VMware étant occupé à 93%, j’ai du l’agrandir.
Dans cet article, les quelques notes prises lors du redimensionnent.

Avant toute opération sur les systèmes de fichiers, il est recomandé de réaliser une sauvegarde.
Une erreur de commande est vite arrivée et il est facile de perdre toutes ses données.

Le serveur fonctionne dans une version obsolète de Fedora puisqu’il s’agit de la version FC6 (noyau 2.6.18-1.2798.fc6), il n’est donc pas possible de redimensionner un Logical Volume (LV) à chaud (noyau 2.6.22 minimum), il faut le démonter.
Le LV utilisé sur ce serveur s’appelle /dev/vg01/VMware et il est monté sous /montage/VMware. Il a une taille initiale de 20Go.

Pour toutes les commandes citées, il y a des explications détaillées sur leurs fonctionnement avec la commande man <la-commande>.

Espace disponible

La première opération est de vérifier si l’on dispose d’espace disponible dans le Volum Group (VG).
Pour cela on utilise la commande vgdisplay :

    root@serveur[13:13:58]:~/temp$ vgdisplay
      --- Volume group ---
      VG Name               vg01
      System ID
      Format                lvm2
      Metadata Areas        1
      Metadata Sequence No  9
      VG Access             read/write
      VG Status             resizable
      MAX LV                0
      Cur LV                6
      Open LV               3
      Max PV                0
      Cur PV                1
      Act PV                1
      VG Size               232,88 GB
      PE Size               4,00 MB
      Total PE              59618
      Alloc PE / Size       38050 / 148,63 GB
      Free  PE / Size       21568 / 84,25 GB
      VG UUID               0y3xGo-Hb4A-1rtB-fHqj-n7NA-9H42-BQgeQM

Dans ce résultat, on voit que le VG a une taille de 232 Go (VG Size), que 148Go sont déja alloués (Alloc PE / Size) et qu’il y a 84Go de disponible (Free PE / Size). Il est donc possible de rajouter jusque 80Go à mon LV.
Pour rajouter plus de 80Go d’espace au LV, il faudrait agrandir le VG.

Agrandir le LV

Afin d’agrandir le LV, on commence par demonter le système de fichier :

    umount /montage/VMware

La deuxième étape consiste à vérifier que le système de fichier est sain :

    root@serveur[09:23:59]:~$ e2fsck -f /dev/vg01/VMware
    e2fsck 1.39 (29-May-2006)
    Pass 1: Checking inodes, blocks, and sizes
    Pass 2: Checking directory structure
    Pass 3: Checking directory connectivity
    Pass 4: Checking reference counts
    Pass 5: Checking group summary information
    /dev/vg01/VMware: 51/2562240 files (11.8% non-contiguous), 4502917/5120000 blocks

La troisième consiste à agrandir le LV :

    root@serveur[09:25:05]:~$ lvresize -L +20G /dev/vg01/VMware
      Extending logical volume VMware to 39,53 GB
      Logical volume VMware successfully resized

La commande lvresize -L +20G /dev/vg01/VMware permet de rajouter 20Go au LV existant.
Si le signe + (plus) avait été omis (lvresize -L 20G /dev/vg01/VMware), la taille finale du LV aurait été de 20Go.

Une fois le LV agrandit, il faut formatter le nouvel espace alloué. Comme le système de fichier est de type ext3, on utilise la commande resize2fs :

    root@serveur[09:32:46]:~$ resize2fs /dev/vg01/VMware
    resize2fs 1.39 (29-May-2006)
    Resizing the filesystem on /dev/vg01/VMware to 10362880 (4k) blocks.
    Le système de fichiers /dev/vg01/VMware a maintenant une taille de 10362880 blocs.

Enfin, il faut remonter le système de fichier et controler que l’on a rien perdu :

    mount /dev/vg01/VMware /montage/VMware

Le montage de ce système de fichier étant déclaré dans le fichier /etc/fstab, on peut également utiliser la commande mount -a qui refait tous les montages déclarés dans ce fichier.

Dans le dossier /montage/VMware, on controle que les dossiers et fichiers sont toujours présents et on vérifie que la taille du système de fichier a augmenté :

    root@serveur[10:03:27]:/montage/VMware$ df -h .
    Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
    /dev/mapper/vg01-VMware
     39G   17G   21G  46% /montage/VMware