Utiliser LVM pour la swap

Utiliser LVM pour la swap

Dans de nombreuses documentations, des lignes sont saisies pour que vous créiez une partition primaire à utiliser pour la swap. Récemment, en construisant mes machines de mon homelab, j'ai effectué la même chose. Suite à discussion sur des réseaux sociaux, une idée est apparue : utiliser un volume logique dans LVM pour y placer la swap.

Pré-requis

Avant de modifier la swap, assurez-vous qu'elle n'est plus utilisée :

$ swapon --show
$ free -h
$ file /chemin/vers/swap

Si la swap est vide, désactivez-la avec $ swapoff /chemin/vers/swap. Dans mon cas, ma swap était sur /dev/nvme0n1p3. J'ai utilisé $ cfdisk /dev/nvme0n1 pour supprimer la partition nvme0n1p3 et agrandir l'espace physique du bloc LVM via cfdisk.

Aparté sur le calcul de la swap

Parfois utile, souvent incomprise, l'espace "swap" peut être un allié de taille. Vous m'avez sans doute déjà entendu ou lu, criant que "aujourd'hui avoir de la swap ça ne sert à rien"… Sort of. Je campe sur mes positions, je pense toujours que la swap n'a plus d'intérêt aujourd'hui, compte tenu des performances et des capacités des disques et de la RAM aujourd'hui. Prenez ces considérations pour calculer la taille de swap nécessaire :

    • Quantité de RAM : Avec des systèmes modernes équipés de grandes quantités de RAM (8 Go et plus), l'espace de swap peut être moins important, voire facultatif pour certaines charges de travail.
    • Utilisation spécifique : Si vous utilisez des applications intensives en mémoire ou si vous exécutez des charges de travail particulières nécessitant de l'espace de swap, vous pourriez avoir besoin d'une taille plus importante.
    • Hibernation : Si vous prévoyez d'utiliser la fonction d'hibernation sur votre système, l'espace de swap doit être au moins égal à la quantité de RAM pour stocker l'état de la mémoire lors de la mise en veille prolongée.

Modifications LVM

Gardez à l'esprit les commandes pvs, vgs et lvs pour récupérer les noms de vos volumes dans LVM.

  1. Créez un volume logique (LV)
    Utilisez la commande lvcreate pour créer un LV de la taille souhaitée dans votre groupe de volumes existant. Remplacez "nom-vg" par le nom de votre VG et "swap" par le nom que vous souhaitez donner au LV : lvcreate -L 8G -n swap nom-vg
  2. Formatez le LV pour le swap
    Utilisez la commande mkswap pour formater le LV nouvellement créé pour qu'il fonctionne comme un espace de swap : $ mkswap /dev/nom-vg/swap.

Activation de l'espace de swap

  1. Utilisez swapon pour activer le LV en tant qu'espace de swap : $ swapon /dev/nom-vg/swap
  2. Vérifiez si l'espace de swap est actif : utilisez la commande free ou swapon pour vérifier que l'espace de swap est activé et est utilisé : $ free -h ; $ swapon --summary.

Configuration permanente

  1. Mettez à jour le fichier /etc/fstab pour que le LV soit monté comme espace de swap au démarrage. Grâce à la commande blkid, récupérez l'UUID de la partition précédemment créée et ajoutez ou modifiez l'entrée dans le fstab : UUID=change-me none swap sw 0 0
  2. Vérifiez la configuration : redémarrez votre système et utilisez à nouveau $ free -h pour vous assurer que l'espace de swap est monté automatiquement.

Désormais, vous avez une swap dans une partition LVM, permettant d'être modifiée en termes de taille beaucoup plus aisément qu'en partition primaire. Encore merci Olivier pour l'astuce ;).