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.
Compromis : mets la en LVM.
— Olivier Bonvalet 🖖 (@BoolKiRool) December 17, 2023
Ça reste souple.
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.
- Créez un volume logique (LV)
Utilisez la commandelvcreate
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
- Formatez le LV pour le swap
Utilisez la commandemkswap
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
- Utilisez
swapon
pour activer le LV en tant qu'espace de swap :$ swapon /dev/nom-vg/swap
- Vérifiez si l'espace de swap est actif : utilisez la commande
free
ouswapon
pour vérifier que l'espace de swap est activé et est utilisé :$ free -h
;$ swapon --summary
.
Configuration permanente
- Mettez à jour le fichier
/etc/fstab
pour que le LV soit monté comme espace de swap au démarrage. Grâce à la commandeblkid
, 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
- 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 ;).