Redimensionner des volumes logiques LVM2

Le gros avantage du système LVM2 (Logical Volumes Management, deuxième génération) est de pouvoir redimensionner ses partitions à chaud (c'est-à-dire sans redémarrage). En particuliers, quand on utilise un système de fichiers redimensionnable aussi, sous entendu sans démontage de l'arborescence. Pour cela j'utilise le système de fichier ReiserFS qui est extensible à chaud, mais par réductible cependant.

Dans le cas qui m'intéresse il s'agit de réduire une partition, en l'occurrence /opt qui fait 15Go pour augmenter deux autres partition, /var (actuellement 5Go) et /home (65Go).

Ces actions impliquent que les outils de manipulation des volumes logiques et des partitions ReiserFS sont installés. Etant donné les risques lors de manipulation de partition et notamment la réduction, sauvegarder vos données !!!

Toutes ces manipulations nécessitent les droit d'administrateur.

Réduire un Volume Logique

Dans mon exemple, je veux reduire /opt de 15Go à 5Go qui n'est plus occupé que par 441 Mo de données. Bien entendu, ce ne serais pas possible avec plus de 5Go d'espace occupé.

Le volume logique contenant /opt est /dev/vg/opt du groupe de volume vg. Le périphérique associé est /dev/mapper/vg-opt en se qui concerne le système de fichier.
Le principe: réduire d'abord le contenu (système de fichier), puis le contenant (volume logique).

On commence donc par redimensionner le système de fichier:

# umount /opt

En cas de problème, on peux consulter la liste des fichiers ouverts de /opt, grâce à lsof (LiSt Open Files):

# lsof | grep "/opt"

Ensuite, on redimensionne le système de fichiers:

# resize_reiserfs -s -10G /dev/mapper/vg-opt
resize_reiserfs 3.6.19 (2003 www.namesys.com)
 
You are running BETA version of reiserfs shrinker.
This version is only for testing or VERY CAREFUL use.
Backup of you data is recommended.
 
Do you want to continue? [y/N]:y
Processing the tree: 0%....20%....40%....60%....80%....100%                       left 0, 10458 /sec
 
nodes processed (moved):
int        5 (3),
leaves     576 (217),
unfm       104004 (48304),
total      104585 (48524).
 
check for used blocks in truncated region
 
ReiserFS report:
blocksize             4096
block count           1310720 (3932160)
free blocks           1197885 (3819245)
bitmap block count    40 (120)
 
Syncing..done
 
resize_reiserfs: Resizing finished successfully.

Enfin, on peux réduire la taille du volume logique (répondre "y" à l'avertissement) :

# lvreduce -L -10G /dev/vg/opt
  WARNING: Reducing active and open logical volume to 15,00 GB
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce opt? [y/n]: y
  Reducing logical volume opt to 5,00 GB
  Logical volume opt successfully resized

Et on oublie pas de remonter la partition à sa place:

# mount /opt

La commande vgdisplay (Volumes Groups DISPLAY: affichage des groupe de volumes) devrait confirmer le nouvel espace libre dans le groupe de volumes:

# vgdisplay
--- Volume group ---
VG Name               vg
System ID
Format                lvm2
Metadata Areas        1
Metadata Sequence No  43
VG Access             read/write
VG Status             resizable
MAX LV                0
Cur LV                7
Open LV               7
Max PV                0
Cur PV                1
Act PV                1
VG Size               137,58 GB
PE Size               4,00 MB
Total PE              35220
Alloc PE / Size       30720 / 120,00 GB
<strong>  Free  PE / Size       4500 / 17,58 GB</strong>
VG UUID               EDFJB6-sx7P-SyWj-g4VZ-8oay-q1xZ-Q7J27L

A noter qu'il me restait encore 7.58Go de libre dans ce groupe de volumes.

Etendre un Volume Logique

C'est plus simple, du fait qu'il n'y a pas besoin de démonter la partition à étendre.

Le principe:étendre le contenant (volume logique), avant le contenu (système de fichier).

Ici, je vais augmenter de 5Go la partition /var :

# lvextend -L +5G /dev/vg/var
Extending logical volume var to 10,00 GB
Logical volume var successfully resized

Suivi du système de fichier:

# resize_reiserfs -s +5G /dev/mapper/vg-var
resize_reiserfs 3.6.19 (2003 www.namesys.com)
 
resize_reiserfs: On-line resizing finished successfully.

Il reste à faire de même avec la partition /home:

# lvextend -L +10G /dev/vg/home
Extending logical volume home to 75,00 GB
Logical volume home successfully resized
# resize_reiserfs -s +10G /dev/mapper/vg-home
resize_reiserfs 3.6.19 (2003 www.namesys.com)
 
resize_reiserfs: On-line resizing finished successfully.

La commande df -h confirme que c'est tout bon:

# df -h
Sys. de fich.         Tail. Occ. Disp. %Occ. Monté sur
/dev/md2              4,6G  465M  4,0G  11% /
udev                   10M  156K  9,9M   2% /dev
<strong>/dev/mapper/vg-home    75G   38G   38G  51% /home</strong>
/dev/mapper/vg-tmp    5,0G  232M  4,8G   5% /tmp
/dev/mapper/vg-usr     20G  3,7G   17G  19% /usr
<strong>/dev/mapper/vg-var     10G  3,6G  6,5G  36% /var</strong>
/dev/mapper/vg-var--tmp--portage
10G  665M  9,4G   7% /var/tmp/portage
/dev/mapper/vg-devel  9,9G  151M  9,2G   2% /mnt/devel
shm                  1001M     0 1001M   0% /dev/shm
/dev/sdg1              28G   19G  9,5G  67% /media/sdg1
<strong>/dev/mapper/vg-opt    5,0G  441M  4,6G   9% /opt</strong>

no comments yet.

Leave a comment

Names and email addresses are required (email addresses aren't displayed), url's are optional.

Comments may contain the following xhtml tags:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>