Logo du site

La logique dans les volumes (LVM)

Publier le 22 mai 2021 17:30

Il n'y a pas que dans le code que la logique est utilisée. Voyons cela dans le système de partition !

Wouhou LVM !

Eh bien bonjour à tous et à toute, j'espère que vous allez bien. Moi ça va, j'ai la pêche, mandarine, poire, je m'arrête là et on enchaîne !

Dans ce billet, je vais vous parler d'un sujet dans lequel je n'ai pas mis les pieds et dont les administrateurs système connaissent au moins de nom : LVM.

Woho calme-toi, ça fait plus d'un mois tu nous boudes et tu nous balances un truc de ton chapeau.

Hum... oui pardon vous avez raison. Je vais vous laisser le temps de vous installer. Allez prendre un verre, une pinte, une tasse, prenez un transat (ou celui de votre voisin) et revenons plus calmement au sujet qui va nous préoccuper aujourd'hui.

Recoupons le disque dur

Reprenons depuis le début. Dans mon dernier post, je vous ai parlé de mon aventure sur Gentoo dans laquelle une petite erreur d'inattention s'était glissée dans le fichier fstab. Ça tombe bien, on y reviendra dans la dernière étape de cette article.

Si je vous parle une nouvelle fois de Gentoo, c'est tout simplement parce que je l'ai adopté comme système d'exploitation à temps plein et c'est sur les bases de l'article précédent qu'il faudra faire le lien dans ce qui se dit ici.

Pour rappel, dans ma Gentoo précédente j'avais coupé mon disque dur /dev/sda en 3 parties distinctes :

  • /dev/sda1 : pour la partition /boot.

  • /dev/sda2 : pour la partition / (racine).

  • /dev/sda3 : pour une partition swap.

Chaque partition avait donc un type qui lui était attribué, notamment le fat qui m'avait fait défaut dans mon fstab pour ceux qui s'en souviennent.

Pour LVM, c'est la même chose - nous aurons un type de partition Linux LVM qui prendra en charge des volumes logiques qui auront eux-mêmes des types de partitions.

Je vous sens un peu perdu alors voici le schéma :

  • /dev/sda1 : pour la partition /boot/efi - type Efi

  • /dev/sda2 : pour la partition LVM - type Linux LVM

C'est tout ? Et tes volumes logiques là, ils sont où ?

Je vais y venir. Ce que je viens de vous présenter actuellement ce sont nos partitions "physiques". On leur a attribué une certaine taille (128M pour /dev/sda1 et le reste pour /dev/sda2 par exemple) dont on ne peut s'en défaire.

Si vous décidez de modifier la taille de la partition /dev/sda2 par exemple, vous risquer de perdre des données ou pire de corrompt votre partition.

Avec les partitions "logiques" nous pouvons nous en défaire. En redimensionnant vos partitions logiques, vos données ne risquent pas d'être perdues. C'est l'un des avantages de LVM.

Un peu de logique nom de Dieu !

Reprenons où nous en étions. Pour pouvoir placer nos partitions logiques dans notre partition Linux LVM, il faut attribuer à cette partition un groupe de volume. Ce groupe de volume pourra ensuite accueillir nos partitions logiques.

Voici donc les commandes à exécuter :

vgcreate grouplvm /dev/sda2 # on affecte à notre partition physique un groupe logique
lvcreate -n swap -L 8G grouplvm # on affecte à notre groupe une partition logique swap
lvcreate -n root -L $("le reste - 8G")G grouplvm # même chose pour notre partition racine

OK et maintenant... comment leur attribue-t-on leur type de système de fichier ?

Eh bien c'est la même chose qu'avec les partitions physiques. On utilise la commande "mkfs". Les partitions logiques sont placées dans le dossier /dev/mapper/. Voici ce que l'on a :

mkfs.ext4 /dev/mapper/grouplvm-root
mkswap /dev/mapper/grouplvm-swap
swapon /dev/mapper/grouplvm-swap

Rien de plus simple finalement ! On pensera à mettre à jour notre fichier /etc/fstab en conséquence et le tour est joué !

Je vous glisse également les commandes que j'ai effectuées pour construire ma Gentoo LVM. Pour les plus attentifs, vous aurez noté que j'ai également changé ma partition /dev/sda1 de /boot à /boot/efi : les étapes sont décrites dans ce petit mémo.

Mais du coup... quels sont les avantages de LVM dans tout ça ?

Je reconnais qu'avec mon exemple l'avantage n'est pas flagrant. Je ne modifie pas à tout bout de champ la dimension de mes partitions et je n'ai ici qu'un seul disque dur physique. Cependant, imaginons que nous avons deux disques : /dev/sda et /dev/sdb. Vous pourriez très bien étendre votre groupe logique sur ces deux partitions et là l'avantage serait un peu plus intéressant !

Avec du "physique", vous auriez dû créer une partition sur votre deuxième disque et vous l'aurez affecté à une autre partie du système (par exemple /home). Vous auriez le schéma suivant :

  • /dev/sda1 pour /boot

  • /dev/sda2 pour /

  • /dev/sda3 pour swap

  • /dev/sdb1 pour /home

Avec LVM, vous pourriez très bien fusionner les trois dernières partitions en les affectant dans un groupe logique qui prendra en charge nos trois partitions cette fois "logiques". Voire mieux, vous pourriez vous passer de la partition /home et avoir seulement deux partitions logiques / et swap dans votre groupe LVM. La taille du deuxième disque ajoutera considérablement de la place pour vos partitions logiques. C'est à mon sens l'avantage principal de LVM et c'est pour cette raison que je vous conseille de vous y essayer !

Voilà tout ce dont je sais de LVM. N'hésitez pas à croiser les sources à ce sujet ! Je vais vous laisser quitter la salle et je vous dis à une prochaine.