-
Préambule
Nous montrerons donc 4 cas d'augmentation de swap :
-Un agrandissement de swap sur le rootvg
-Un ajout de partition/lv de swap
-Un agrandissement de swap sur un autre vg ( augmentation suite au 2ème cas )
-Une création de fichier pour un ajout de swap (dans le cas où il n'y a pas de place dans les VG, à n'utiliser que temporairement dans le cas d'un incident)
-
Instructions Techniques
- Dans un 1er temps, on vérifie l'état de la swap (Volumétrie, lieu de stockage...) :
[root@serveur ~] # free -m total used free shared buffers cached Mem: 3832 3624 208 0 286 1075 -/+ buffers /cache : 2263 1569 Swap: 1055 160 895 [root@serveur ~] # swapon -s Filename Type Size Used Priority /dev/dm-0 1081336 164136 -1 |
On voit ici avec un "swapon -s" que l'espace de swap est situé sur le device /dev/dm-0, on va donc chercher à quoi correspond le dm-0 (dm = device mapper, le device mapper est un framework de gestion des devices de stockage ) :
[root@serveur~] # cat /sys/devices/virtual/block/dm-0/dm/name root_vg-lv_swap |
pour confirmation, on voit bien des liens symboliques :
[root@serveur ~] # lvs |grep swap lv_swap root_vg -wi-ao 1.03g [root@serveur ~] # ls -al /dev/root_vg/lv_swap lrwxrwxrwx 1 root root 7 Mar 13 2014 /dev/root_vg/lv_swap -> .. /dm-0 |
Selon la configuration du serveur, on pourra avoir plusieurs ligne lors du swapon -s, il faudra donc checker pour les autres dm-x.
-
Agrandissement de swap sur le rootvg
Ce cas est étudié pour une augmentation à 2G (assurez vous avant tout d'avoir déjà assez de mémoire, ou prévoyez une swap de temporaire en backup.) :
-On vérifie la taille de la swap avant :
[root@serveur ~] # free -m total used free shared buffers cached Mem: 3832 3624 208 0 286 1075 -/+ buffers /cache : 2263 1569 Swap: 1000 160 895 |
-On libère le LV de swap :
[root@serveur ~] # swapoff /dev/root_vg/lv_swap |
-On étend le LV.
[root@serveur ~] # lvextend -L 2G /dev/root_vg/lv_swap Extending logical volume lv_swap to 2.00 GB Logical volume lv_swap successfully resized |
-On formate le Lv en format swap pour prendre en compte la nouvelle volumétrie.
[root@serveur ~] # mkswap /dev/root_vg/lv_swap Setting up swapspace version 1, size = 2147479 kB |
-On réaffecte le LV à la swap.
[root@serveur ~] # swapon /dev/root_vg/lv_swap |
-On vérifie la taille de la swap au final :
[root@serveur ~] # free -m total used free shared buffers cached Mem: 3832 3624 208 0 286 1075 -/+ buffers /cache : 2263 1569 Swap: 2000 160 895 |
-
Ajout de volume logique (LV) de swap
Attention, ce cas n'est pas abordé dans les docs officielles
Il consiste à créer un 2nd lv de swap de 1Go sur un VG autre que le root_vg où il y a de la place, par exemple sur notre serveur, cela donnerait ceci :
Attention, dans le cadre d'un incident on utilisera un nom de LV comme celui ci lv_swap_Incident ce qui nous permet d'identifier si c'est un LV temporaire ou pas.
Vérification de volumétrie de libre :
[root@serveur ~] # vgs VG #PV #LV #SN Attr VSize VFree data_vg 1 7 0 wz--n- 80.00g 17.10g root_vg 1 6 0 wz--n- 13.88g 1.03g Création de LV à la taille voulue : |
[root@serveur~] # lvcreate -n lv_swap_Incident -L 1G data_vg |
Formatage du LV de swap :
[root@serveur ~] # mkswap /dev/data_vg/lv_swap_Incident Setting up swapspace version 1, size = 2147479 kB |
Prise en compte dans la swap actuelle :
[root@serveur ~] # swapon /dev/data_vg/lv_swap_Incident |
Ajout dans la ligne suivante à la fin du fichier /etc/fstab pour prise en compte lors du reboot (ne pas faire dans le cadre d'un incident) :
/dev/data_vg/lv_swap_Incident swap swap defaults 0 0 |
-
Agrandissement de swap après ajout de de 2nd partition
-Ce cas est étudié dans le cadre d'une augmentation sur le root_vg, il faut donc l'adapter sur le VG comportant le LV de swap comme ceci pour une augmentation à 2G:
-L'identification du LV à agrandir se fera grâce au swapon -s indiqué plus haut et la même analyse des dm-x pour trouver les LV hors root_vg.
En se basant sur la précédente action, on sait donc que c'est le /dev/data_vg/lv_swap_2.
-On vérifie la taille de la swap avant :
[root@serveur ~] # free -m total used free shared buffers cached Mem: 3832 3624 208 0 286 1075 -/+ buffers /cache : 2263 1569 Swap: 2000 160 895 |
-On libère le LV de swap :
[root@serveur ~] # swapoff /dev/data_vg/lv_swap_2 |
-On étend le LV.
[root@serveur ~] # lvextend -L 2G /dev/data_vg/lv_swap_2 Extending logical volume lv_swap to 2.00 GB Logical volume lv_swap successfully resized |
-On formate le LV en format swap pour prendre en compte la nouvelle volumétrie.
[root@serveur ~] # mkswap /dev/root_vg/lv_swap Setting up swapspace version 1, size = 2147479 kB |
-On réaffecte le LV à la swap.
[root@serveur ~] # swapon /dev/root_vg/lv_swap |
-On vérifie la taille de la swap au final :
[root@serveur ~] # free -m total used free shared buffers cached Mem: 3832 3624 208 0 286 1075 -/+ buffers /cache : 2263 1569 Swap: 3000 160 895 |
-
Création de fichier pour un ajout de swap
-Pour cela, il nous faut un LV ou il y a assez d’espace (ne pas oublier de laisser de l'espace pour éviter toute saturation).
-Création du fichier d’1 Giga, ou $DIR correspond à un répertoire dans un LV défini selon le critère cité ci-dessus
[serveur] /root #dd if=/dev/zero of=/$DIR/swaptemp bs=1M count=1000 1000+0 records in 1000+0 records out 1048576000 bytes (1.0 GB) copied, 1.9817 seconds, 529 MB /s [serveur] /root #mkswap /$DIR/swaptemp Setting up swapspace version 1, size = 1048571 kB [serveur] /root #swapon /$DIR/swaptemp |