====== 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.