LVM

De SLM - MediaWiki
Révision datée du 1 avril 2020 à 07:57 par Admin (discussion | contributions)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)

Retour

La gestion par volumes logiques (en anglais, LVM) est une méthode et un logiciel de gestion de l'utilisation des espaces de stockage, l'avantage de LVM est qu'il permet de sécuriser et optimiser les espaces de stockage avec souplesse, LVM facilite la modification de la taille des volumes logiques (augmentation ou diminution) sans perte de données.

L'outil graphique "system-config-lvm" peut être utilisé pour redimensionner (réduire ou étendre) des partitions LVM.

Si l'outil graphique plante au démarrage, "éjecter" le disque, ouvrir de nouveau l'outil et ré-insérer le disque (dans le cas d'une utilisation avec une VM), aller dans le menu de "system-config-lvm" et cliquer sur rafraichir.

LVM est très souple en ce qui concerne l'agrandissement des partitions, de façon générale, pour étendre n'importe quel partition, il faut créer une nouvelle partition de la taille souhaité et disposant du même système de fichier que la partition cible, créer ensuite un volume physique contenant cette partition au sein de LVM et étendre le groupe de volume contenant la partition cible à la nouvelle partition, étendre le volume logique et en dernier étendre le système de fichiers.


Agrandissement d'une partition à la taille maximale

Partition LVM de l'exemple : /dev/sda2

Nom du groupe de volumes LVM : issabel_issabel

Nom du volume logique : root

Système de fichier : EXT4

fdisk -l 
  Check if a LVM partition exist (Linux LVM), note the partition (/dev/sda2)
file -s /dev/issabel_issabel/root
 Check and note the filesystem used by our source partition. Note: the filesystem of the partition we wish to extend SHOULD be the same than the new partition
 
fdisk /dev/sda
   Note: Inputs to fdisk: n, p, 3, \n, \n, t, 3, 8e, w
 
partprobe
   Note: To avoid reboot so that the new partition table is taken into account, partprobe can be used.

fdisk -l
   Check if a new LVM partition was created (Linux LVM), note the device id (/dev/sda3)
mkfs.ext4 /dev/sda3
   Make it a EXT4 filesystem

pvcreate /dev/sda3
   Note: Create the LVM physical volume
vgextend issabel_issabel /dev/sda3
   Note: Extend the group which contain already our target partition (here "issabel_issabel", check volume groups with "vgs") to our newly created physical volume
lvextend -l +100%FREE /dev/issabel_issabel/root
   Note: Extend the LVM logical volume to take all spaces

resize2fs /dev/issabel_issabel/root
   Note: Extend the filesystem

Exemple d'agrandissement d'une partition à la taille maximale avec filesystem XFS

fdisk /dev/sda
   Note: Inputs to fdisk: n, p, 3, \n, \n, t, 3, 8e, w
   Note: This create a new LVM partition (n) which is of type primary (p) with assignated partition number (3) which use all remaining storage space of the device by following default fdisk options (\n, \n) then change system type (t) by selecting the partition number (3) to the LVM type (8e) and then write the edited partition table (w)
 
partprobe
   Note: To avoid reboot so that the new partition table is taken into account, partprobe can be used.
mkfs.xfs /dev/sda3
   Note: Make it a XFS filesystem
pvcreate /dev/sda3
   Note: Create the LVM physical volume
 
vgextend centos /dev/sda3
   Note: Extend the group which contain already our target partition (here "centos", check volume groups with "vgs") to our newly created physical volume
 
lvextend -l +100%FREE /dev/centos/root
   Note: Extend the LVM logical volume to take all spaces
 
xfs_growfs /dev/centos/root
   Note: Extend the XFS filesystem

Connaître le système de fichier utilisé par un volume logique LVM

file -s /dev/VolGroup00/LogVol01

Supprimer un volume logique

lvremove /dev/VolGroup00/LogVol01

Réduire un volume physique (PV)

pvresize --setphysicalvolumesize 4G /dev/sda1

Déplacement automatique d'un volume logique (utile lors d'une réduction)

pvs -v --segments /dev/sdc2
   note : Informations à propos des segments et leurs positions
pvmove --alloc anywhere /dev/sdc2:14776-14900
   note : replace the last range numbers (segments) by numbers gathered from pvs command

Redimensionner une partition pour qu'elle prenne tout l'espace libre

fonctionne dans certain cas, voir l'exemple avec XFS en haut pour une méthode plus générique)

pvresize /dev/sdc2
   Note : Redimensionne la taille du volume automatiquement (on peut aussi spécifier la taille souhaité via --setphysicalvolumesize 16G)
 
lvextend -l 100%FREE /dev/VolGroup00/LogVol00
   Note : Redimensionne le volume logique automatiquement
 
resize2fs /dev/VolGroup00/LogVol00
   Note : Redimensionne le système de fichiers automatiquement

Informations LVM

pvdisplay
  Note : Informations concernant les volumes physique

vgdisplay
  Note : Informations concernant les groupes

lvdisplay
  Note : Informations concernant les volumes logiques

Vérifications

pvck -v /dev/sdc2
   Note : Vérifie les volumes physique
 
e2fsck -f /dev/VolGroup00/LogVol00
   Note : Vérifie le système de fichiers

Nettoyer les erreurs de lectures

désactive/réactive les partitions et groupes, exemple avec deux volumes logique

 vgscan
 lvchange -an VolGroup00/LogVol00
 lvchange -an VolGroup00/LogVol01
 vgchange -an VolGroup00
 vgscan
 vgchange -ay VolGroup00
 lvscan
 lvchange -ay VolGroup00/LogVol00
 lvchange -ay VolGroup00/LogVol01

Si une procédure échoue, essayer de démonter /dev/VolGroup00/LogVol00 et autres