Travailler avec LVM
LVM est un système de gestion de l'espace disque avec un degré d'abstraction supplémentaire par rapport à la couche physique. Il permet une gestion souple et efficace de l'espace disque, une tolérance aux pannes de données, et aide également à résoudre diverses tâches liées à la sauvegarde des données, au déploiement de systèmes de stockage pour les environnements de virtualisation, etc.
Dans cet article, nous verrons comment installer et utiliser LVM sous Linux.
Installation de LVM
LVM est généralement installé avec votre système d'exploitation Linux, mais si ce n'est pas le cas, vous pouvez l'installer à l'aide du gestionnaire de paquets de votre distribution Linux. Pour la plupart des distributions, la commande d'installation de LVM se présente comme suit :
Pour Debian ou Ubuntu :
sudo apt-get install lvm2
Pour CentOS, Fedora et RHEL :
sudo yum install lvm2
Création de volumes physiques
Avant de créer des volumes logiques, vous devez créer des volumes physiques (pv). Un volume physique est un périphérique virtuel, tel qu'un disque dur ou une partition de disque, que LVM utilise pour créer des volumes logiques.
Remarque : il est recommandé de créer des volumes physiques au-dessus du disque dur sans utiliser de partitionnement, car sinon le processus de redimensionnement dynamique de LVM devient plus compliqué à long terme.
Pour créer un volume physique, procédez comme suit :
Utilisez la commande pvcreate pour créer un volume physique :
sudo pvcreate /dev/sdb
Où /dev/sdb est le chemin d'accès au périphérique physique.
2. Vérifiez le volume physique créé à l'aide de la commande pvdisplay:
sudo pvdisplay
Dans la sortie, vous verrez des informations sur le volume physique créé.
Création d'un groupe de volumes physiques
Un groupe de volumes physiques (vg) est un conteneur logique qui peut combiner plusieurs volumes physiques en un groupe commun. Cependant, rien n'empêche de l'utiliser au sein d'un seul volume physique. Pour créer un groupe de volumes physiques, procédez comme suit
1. utilisez la commande vgcreate pour créer un groupe de volumes physiques :
sudo vgcreate vg0 /dev/sdb # либо для нескольких pv sudo vgcreate vg0 /dev/sdb /dev/sdc
Création d'un volume logique
Vous pouvez maintenant créer des volumes logiques, qui peuvent être représentés de manière conventionnelle comme des partitions sur un disque dur.
1. Créez un volume logique dans le groupe de volumes physiques à l'aide de la commande lvcreate :
sudo lvcreate -n lv0 -L 10G vg0 # Создание логического тома lv0 размером 10 ГБ в группе физических томов vg0
Où -n est le nom du volume logique, -L est la taille du volume logique.
2. Vérifiez le volume logique créé à l'aide de la commande lvdisplay:
sudo lvdisplay
Vous obtiendrez des informations sur le volume logique créé.
3. Créez un système de fichiers sur le volume logique à l'aide de la commande mkfs:
sudo mkfs.ext4 /dev/vg0/lv0
4. créer un point de montage pour le nouveau système de fichiers à l'aide de la commande mkdir:
sudo mkdir /mnt/lv0
5. monter le nouveau système de fichiers sur le point de montage à l'aide de la commande mount :
sudo mount /dev/vg0/lv0 /mnt/lv0
Vous pouvez maintenant utiliser le nouveau système de fichiers situé sur le volume logique.
Utilisation de LVM
LVM propose de nombreuses commandes pour gérer les volumes physiques, les groupes de volumes physiques et les volumes logiques. Certaines des commandes les plus couramment utilisées sont énumérées ci-dessous :
- pvcreate: Crée un nouveau volume physique.
- pvdisplay: Affiche des informations sur les volumes physiques.
- vgcreate: Crée un nouveau groupe de volumes physiques.
- vgextend: Ajouteun volume physique à un groupe de volumes physiques : Ajoute un volume physique à un groupe de volumes physiques.
- vgdisplay: Affiche des informations sur les groupes de volumes physiques.
- lvcreate: Crée un nouveau volume logique.
- lvextend: Augmente la taille d'un volume logique.
- lvdisplay: Affiche des informations sur les volumes logiques.
LVM vous permet également d'augmenter la taille des volumes physiques, des groupes de volumes physiques et des volumes logiques pendant que le système fonctionne. Il existe des commandes correspondantes à cet effet :
- pvresize: Redimensionne un volume physique.
- vgresize: Redimensionne un groupe de volumes physiques.
- lvresize: Modifie la taille d'un volume logique.
En exécutant l'une des commandes ci-dessus avec le paramètre --help, vous pourrez vous familiariser avec les paramètres supplémentaires des arguments de la commande.
Contrôler la taille d'un volume logique :
Par exemple, pour augmenter de 5 Go la taille du volume logique lv0 dans le groupe de volumes physiques vg0, utilisez la commande :
sudo lvresize -L +5G /dev/vg0/lv0
ou tout l'espace libre restant sur le volume physique :
sudo lvresize -l +100%FREE /dev/vg0/lv0
Vous pouvez ensuite redimensionner le système de fichiers à la volée à l'aide de la commande resize2fs:
sudo resize2fs /dev/vg0/lv0
Instantanés LVM
LVM sous Linux prend en charge un mécanisme d'instantanés qui permet de créer des copies exactes de volumes logiques à un moment précis. Il s'agit d'une fonctionnalité utile qui permet de sauvegarder l'état des données à un moment donné et de restaurer cet état si nécessaire.
La technologie des instantanés LVM fonctionne de la manière suivante : un instantané est créé en sauvegardant l'état d'un volume logique au moment de la création de l'instantané. Une fois l'instantané créé, toutes les modifications apportées au volume logique d'origine sont stockées dans un espace disque différentiel supplémentaire. Cela peut aider à sauvegarder et à restaurer des données au moment de la création de l'instantané.
Voyons maintenant comment créer et utiliser le mécanisme d'instantané LVM.
Création d'un instantané LVM
La création d'un instantané LVM s'effectue à l'aide de la commande lvcreate. Par exemple, pour créer un instantané du volume logique myvolume dans le groupe de volumes myvg, utilisez la commande suivante :
sudo lvcreate --snapshot --name myvolume_snap --size 1G /dev/myvg/myvolume
Cette commande créera un instantané du volume logique myvolume nommé myvolume_snap d'une taille de 1 Go.
Notez que vous devez spécifier la taille de l'instantané pour créer un instantané.
Utilisation d'un instantané LVM
Après avoir créé un instantané, vous pouvez l'utiliser pour effectuer diverses tâches. Par exemple, vous pouvez utiliser l'instantané pour restaurer des données ou pour créer une sauvegarde. Utilisez la commande suivante pour monter l'instantané sur le système de fichiers :
sudo mount /dev/myvg/myvolume_snap /mnt/snapshot
Ici, /mnt/snapshot est le point de montage où l'instantané sera monté. Une fois l'instantané monté, vous pouvez copier des données à partir de celui-ci ou l'utiliser pour récupérer des données.
Suppression d'un instantané LVM
Une fois qu'un instantané a été utilisé, il peut être supprimé. Pour supprimer un instantané, utilisez la commande lvremove. Par exemple, pour supprimer l'instantané myvolume_snapshot dans le groupe de volumes myvg, utilisez la commande suivante :
sudo lvremove /dev/myvg/myvolume_snap
Notez que si vous supprimez un instantané, toutes les données qui ont été modifiées après la création de l'instantané seront perdues.
Pools restreints
Le Thin pool est un mécanisme LVM qui permet de créer un volume logique qui n'utilise que la partie des unités de disque physique qui contient réellement des données. Cela permet de réduire la consommation d'espace disque et de gérer l'espace disque plus efficacement. Cette fonctionnalité de LVM est devenue très courante dans les systèmes de virtualisation en tant que solution pratique et économique pour allouer de l'espace disque aux machines virtuelles et aux conteneurs. Voyons maintenant comment créer un thin pool dans LVM.
Création d'un thin pool LVM
Le thin pool est créé à l'aide de la commande lvcreate. Par exemple, pour créer un thin pool mythinpool dans le groupe de volumes myvg sur les volumes physiques /dev/sdb et /dev/sdc, utilisez la commande suivante :
sudo lvcreate -L 50G -T myvg/mythinpool /dev/sdb /dev/sdc
Ici, -L spécifie la taille du thin pool en gigaoctets et -T indique que nous créons un thin pool. Cette commande créera un thin pool mythinpool de 50 Go.
Création d'un thin volume LVM
Un thin volume est un volume logique créé à l'intérieur d'un thin pool. Les thin volumes peuvent être créés à l'aide de la commande lvcreate. Par exemple, pour créer un thin volume mythinvolume de 10 Go dans le thin pool mythinpool du groupe de volumes myvg, utilisez la commande suivante :
sudo lvcreate -V 10G -T myvg/mythinpool -n mythinvolume
Ici, -V spécifie la taille du volume léger en gigaoctets et -n spécifie le nom du volume léger. Cette commande créera un thin volume mythinvolume de 10 Go dans le thin pool mythinpool.
Utilisation du thin volume LVM
Un volume fin peut être utilisé comme un volume logique normal. Par exemple, pour créer un système de fichiers ext4 sur un thin volume mythinvolume, utilisez la commande suivante :
sudo mkfs.ext4 /dev/myvg/mythinvolume
Une fois le système de fichiers du volume fin créé, il peut être monté et utilisé comme un volume logique normal.
Le thin pool permet de créer des configurations de stockage plus souples et plus efficaces sous Linux. Le thin pool est utilisé en combinaison avec le thin volume pour une utilisation optimale de l'espace disque.