Table des matières
LVM
Logical Volume Manager
Créer un nouveau volume
Récupérer le nom du volume groupe auquel ajouter le nouveau volume logique :
vgdisplay | grep "VG Name" VG Name tl-debian8-vg
Créer une nouvelle partition physique avec l'espace ajouté précédemment :
pvcreate /dev/sda4
Agrandir le groupe de volume avec l’espace ajouté précédemment :
vgextend debian8-vg /dev/sda4
Créer le nouveau volume logique : ( ici on ajoute le nouveau volume logique nommé “home” au volume groupe nommé tl-debian8-vg, en utilisant 100% de son espace libre )
lvcreate -l 100%FREE -n home debian8-vg
Enfin, redimensionner le système de fichiers :
- Pour “ext” :
mkfs -t ext4 /dev/mapper/debian8--vg-home
- Pour “xfs” :
mkfs -t xfs /dev/mapper/debian8--vg-home
Pour monter le volume à la main (pour copier des données par exemple) :
mount /dev/mapper/debian8--vg-home /home
Pour l'ajouter au démarrage, éditer fstab :
vim /etc/fstab
Et ajouter une ligne de la forme suivante, par exemple :
/dev/mapper/debian8--vg-home /home ext4 errors=remount-ro 0 1
Pour finir, redémarrer la machine :
reboot
Supprimer un volume
Les manipulations doivent être effectuées sur une partition démontée :
umount /opt/mapartitiondetest
Personnellement, si ce n'est pas un montage distant que je maitrise, je préfère effectuer cette intervention à froid.
Booter sur un liveCD, ouvrir un terminal et monter toutes les partitions LVM disponibles :
vgchange -a y
Supprimer la partition :
lvremove /dev/mapper/metamorph--vg-mapartitiondetest
Étendre un volume à froid
À revoir
Après avoir agrandit la taille de la partition, de la “coquille”, d'un serveur virtuelle par exemple via gparted-live.
Ajouter l'espace disque supplémentaire au groupe logique :
lvresize -l +100%FREE /dev/osname/part
Enfin, redimensionner le système de fichiers :
- Pour “ext” :
resize2fs /dev/mapper/debian--vg-root
- Pour “xfs” :
xfs_growfs /dev/mapper/debian--vg-root
Étendre un volume à chaud
Ajouter l'espace disque au groupe logique
En ligne de commande sur le serveur, vérifier qu'il y a bien l'espace disponible, non prit en charge pour l'instant avec la commande fdisk :
fdisk -l Disque /dev/sda : 200 GiB, 214748364800 octets, 419430400 secteurs [...] Device Boot Start End Sectors Size Id Type /dev/sda1 * 2048 499711 497664 243M 83 Linux /dev/sda2 501758 20969471 20467714 9,8G 5 Extended /dev/sda5 501760 20969471 20467712 9,8G 8e Linux LVM [...]
On voit ici qu'il y a 200Go de disponible mais qu'il n'y qu'une partition sda5 qui ne fait que 9,8Go. Les 200Go sont sur la partition sda, on édite alors cette partition avec fdisk :
fdisk /dev/sda
Notez ici qu'il n'y a pas de numéro après sda !
Le “help” peut être appelé avec la lettre “m”.
Créer une nouvelle partition avec la lettre “n”, puis sélectionner “primary partition” avec la lettre “p”, enfin, choisir le numéro de la partition, généralement la suite logique ( ici sda3 ) mais il arrive qu'une partition de 1Mo existe, créer alors sda4 à la suite, de la même façon afin de prendre en charge les 190Go souhaités ( ici dans l'exemple ), et ignorer l'étape d'après pour sda3 :
NB : Laisser par défaut aux question de début et fin de bloc.
Command (m for help): n
Command action
l logical (5 or over)
p primary partition (1-4)
p
Partition number (1-4): 3
First cylinder (499712-501756, default 499712): "enter"
Using default value 499712
Last cylinder, +cylinders or +size{K,M,G} (499713-501757, default 501757): "enter"
Using default value 501757
Modifier la partition nouvellement créée avec la lettre “t”, afin de la déclarer comme partition LVM avec le numéro de code “8e” :
Command (m for help): t Partition number (1-5): 3 Hex code (type L to list codes): 8e Changed system type of partition 3 to 8e (Linux LVM)
Pour écrire les modifications, entrer la lettre “w” :
Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. WARNING: Re-reading the partition table failed with error 16: Device or resource busy. The kernel still uses the old table. The new table will be used at the next reboot or after you run partprobe(8) or kpartx(8) Syncing disks.
Pour éviter de redémarre la machine, entrer la commande suivante :
partprobe
Pour RedHat 6.5 et dérivées :
partx -v -a /dev/sda
Agrandir le volume logique
Créer un volume physique LVM avec la nouvelle partition :
pvcreate /dev/sda3 Physical volume "/dev/sda3" successfully created
Récupérer le nom du volume logique que l'on souhaite agrandir :
vgdisplay | grep "VG Name" VG Name debian
Étendre ce volume groupe au nouveau volume physique :
vgextend debian-vg /dev/sda3 Volume group "debian8-vg" successfully extended
Étendre le volume logique :
lvextend /dev/debian-vg/root /dev/sda3 Extending logical volume root to 50 GiB Logical volume root successfully resized
Enfin, redimensionner le système de fichiers :
- Pour “ext” :
resize2fs /dev/mapper/debian--vg-root
- Pour “xfs” :
xfs_growfs /dev/mapper/debian--vg-root
Réduire un volume
Exemple, retirer 10Go à la partition /home :
df -h | head -1 && df -h | grep home Sys. de fichiers Taille Utilisé Dispo Uti% Monté sur /dev/mapper/metamorph--vg-home 197G 74M 187G 1% /home
Les manipulations doivent être effectuées sur une partition démontée :
umount /opt/mapartitiondetest
Personnellement, si ce n'est pas un montage que je maitrise, je préfère effectuer cette intervention à froid.
Booter sur un liveCD, ouvrir un terminal et monter toutes les partitions LVM disponibles :
vgscan -c --mknodes vgchange -a y
Vérifier la partition qui va être manipulée, par exemple pour extX :
e2fsck /dev/mapper/metamorph--vg-home
Ou directement corriger les éventuelles erreurs sans poser de questions :
fsck -y /dev/mapper/metamorph--vg-home
Puis réduire la partition de “-10Go” (le moins est important!) par exemple :
lvreduce -rL -10G /dev/mapper/metamorph--vg-home
Les options utilisées :
-L, --size [-]LogicalVolumeSize[bBsSkKmMgGtTpPeE]
Reduce or set the logical volume size in units of megabytes. A size suffix of k for
kilobyte, m for megabyte, g for gigabytes, t for terabytes, p for petabytes or e for
exabytes is optional. With the - sign the value will be subtracted from the logical
volume's actual size and without it it will be taken as an absolute size.
-r, --resizefs
Resize underlying filesystem together with the logical volume using fsadm(8).
fsadm utility checks or resizes the filesystem on a device. It tries to use the same API for ext2, ext3, ext4, ReiserFS and XFS filesystem.
