Ceci est une ancienne révision du document !
~~CLOSETOC~~
Gérer la partition swap
Procédure
La partition swap sert de fichier d'échange sous Linux. Celle-ci se rempli donc pour soulager la RAM quand elle sature. Cependant, il arrive qu'elle ne se vide pas correctement quand la RAM est de nouveau libre.
Pour vider cette partition sans risquer de perdre des processus et donc des données :
- On commence par vérifier l'espace disponible en RAM :
free -h
- Dans cet exemple, on voit que l'espace occupé sur la
swap(en rouge) est inférieur à l'espace disponible en RAM (en vert). On peut donc sans problème faire le transfert :
swapoff -a && swapon -a
Augmenter la partition
<note important>Cette procédure ne fonctionne qu'avec des partitions gérées par LVM (Logical Volume Manager).</note>
<note warning>Cette procédure nécessite des droits administrateur root. Faîtes donc très attention à ce que vous faîtes.</note>
Si de manière récurrente, la partition swap se remplie, sans que vous puissiez arrêter des processus inutiles, alors votre swap est probablement sous dimensionner. Pour étendre la partition :
- On vérifie les disques déjà existants :
lsblkRetour console :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 20G 0 disk ├─sda1 8:1 0 243M 0 part /boot ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 19,8G 0 part ├─test--1--vg-root 254:0 0 17,8G 0 lvm / └─test--1--vg-swap_1 254:1 0 2G 0 lvm [SWAP] sr0 11:0 1 3,7G 0 rom
- On ajoute un disque à notre VM (ou un disque physique à notre serveur, auquel cas, il ne faudra pas oublier de redémarrer ce dernier).
- On scanne les périphériques à la recherche du nouveau disque. Dans la séquence, ci-dessous on remplacera
host0parhost1puishost2, etc, jusqu'à ce que le système indique une erreur :
echo " - - - " > /sys/class/scsi_host/host0/scan
- On revérifie les disques existant et on note le nom du nouveau disque (
sdbdans notre cas) :
lsblkRetour console :
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT fd0 2:0 1 4K 0 disk sda 8:0 0 20G 0 disk ├─sda1 8:1 0 243M 0 part /boot ├─sda2 8:2 0 1K 0 part └─sda5 8:5 0 19,8G 0 part ├─test--1--vg-root 254:0 0 17,8G 0 lvm / └─test--1--vg-swap_1 254:1 0 2G 0 lvm [SWAP] sdb 8:16 0 8G 0 disk sr0 11:0 1 3,7G 0 rom
- On récupère le chemin de la partition
swap:
lvdisplay
Retour console :
--- Logical volume --- LV Path /dev/test-1-vg/swap_1 LV Name swap_1 VG Name test-1-vg LV UUID 8IAOTo-LzMy-9Q8s-Nipm-tQLU-UH0H-emgQ9T LV Write Access read/write LV Creation host, time test-1, 2018-01-05 14:39:45 +0100 LV Status available # open 2 LV Size 2,00 GiB Current LE 512 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1
- On vérifie que la
swappeut être vidée (voir plus haut) et, si c'est possible, on la désactive en indiquant le chemin de la partition :
swapoff -v /dev/test-1-vg/swap_1
- On intègre le nouveau disque à LVM :
pvcreate /dev/sdb
- Une fois la
swaptotalement désactivée, on peut étendre le volume en y ajoutant le nouveau disque :
vgextend /dev/test-1-vg /dev/sdb
- On étend la partition :
lvextend -l +100%FREE /dev/test-1-vg/swap_1
- On redimensionne la partition :
lvresize -l +100%FREE /dev/test-1-vg/swap_1
- On recrée la
swap:
mkswap /dev/test-1-vg/swap_1
- Finalement, on peut réactiver la
swap:
swapon -va
- On vérifie :
lvdisplayRetour console :
--- Logical volume --- LV Path /dev/onl-infra-intrus-1-vg/swap_1 LV Name swap_1 VG Name onl-infra-intrus-1-vg LV UUID 8IAOTo-LzMy-9Q8s-Nipm-tQLU-UH0H-emgQ9T LV Write Access read/write LV Creation host, time onl-infra-intrus-1, 2018-01-05 14:39:45 +0100 LV Status available # open 0 LV Size <10,00 GiB Current LE 2559 Segments 2 Allocation inherit Read ahead sectors auto - currently set to 256 Block device 254:1Autre vérification :
free -hRetour console :
total used free shared buff/cache available Mem: 7,8Gi 6,6Gi 209Mi 80Mi 1,0Gi 858Mi Swap: 9Gi 0B 9Gi
— Nicolas THOREZ 2020/03/12 15:01
Discussion