Comment ajouter de l’espace swap sur Ubuntu 20.04

Ce tutoriel se concentre sur la façon de créer de l’espace swap sur Ubuntu 20.04 en utilisant une partition swap ou un fichier swap.

Pour les administrateurs système, il est assez fréquent que les serveurs manquent de RAM.

Dans certains cas, vous pouvez avoir lancé trop de programmes ou certains des programmes utilisent déjà trop de ressources.

Dans ce cas, vous n’avez pas beaucoup d’options.

Vous pouvez soit arrêter certains processus afin de gagner un peu de RAM, mais il se peut que vous ne puissiez pas le faire.

Heureusement, vous avez une autre solution : ajouter un peu d’espace d’échange.

Dans ce tutoriel, vous apprendrez comment vous pouvez ajouter de l’espace d’échange sur Ubuntu 20.04 : via une partition swap ou un fichier swap.

Table des matières

Prérequis

Avant de commencer, assurez-vous que vous avez les privilèges sudo sur Ubuntu 20.04.

$ groups

Si vous voyez les groupes « sudo » dans la liste des groupes, vous devriez pouvoir créer une partition swap.

Vérifier les partitions swap existantes

Pour vérifier les partitions swap existantes sur votre système, vous devez utiliser la commande « swapon ».

$ sudo swapon --show

Par défaut, lors de votre installation Ubuntu, il est très courant qu’une partition swap soit déjà créée.

En conséquence, vous devriez voir la sortie suivante sur votre console.

Comme vous pouvez le voir, je possède une partition swap nommée « dm-1 » d’une taille de 980 Mb.

Cependant, ma RAM actuelle est suffisante pour mon serveur, elle n’est donc pas du tout utilisée.

Si aucun espace swap n’est configuré sur votre serveur, vous devriez voir la sortie suivante.

Ajouter de l’espace swap sur Ubuntu 20.04 en utilisant une partition swap

La première façon d’ajouter de l’espace swap sur Ubuntu est d’ajouter une partition swap.

Pour ajouter cette partition, nous allons utiliser :

  • la commande « lvcreate » si vous êtes sur un périphérique LVM (c’est-à-dire une partition de disque formatée en LVM)
  • la commande « fdisk » si vous êtes sur un disque « régulier ».

a – Créer une partition de swap sur un périphérique LVM

D’abord, vous devez inspecter les partitions existantes sur votre hôte.

$ sudo fdisk -l

Comme vous pouvez le voir ici, je possède déjà trois partitions :

  • /dev/sda1 : ma partition bootable car j’ai affaire ici à un disque MBR;
  • /dev/sda2 : une partition étendue de taille 14,5 Go;
  • /dev/sda5 : ma partition LVM primaire.

Sachant cela, vous pouvez soit créer une partition swap sur la partition étendue ou sur votre partition LVM primaire.

Dans ce cas, nous choisissons de créer cette partition sur celle LVM.

En conséquence, nous devrons vérifier que nous disposons d’un peu d’espace pour celle-ci.

Pour rappel, /dev/sda5 est une partition de disque, également appelée volume physique, liée à un groupe de volumes.

Pour vérifier si nous disposons d’un peu d’espace restant, nous devons utiliser la commande « vgs ».

Si vous n’êtes pas familier avec LVM, je vous recommande de lire en premier lieu notre article dédié à ce sujet.

$ sudo vgs

Dans ce cas, nous avons environ 980 Mo d’espace restant qui devrait être suffisant pour notre partition swap.

Afin de créer un nouveau volume logique sur ce groupe de volumes, nous allons utiliser la commande « lvcreate ».

$ sudo lvcreate -L 500M -n lvswap vgubuntu

Note : vous pouvez être invité à supprimer une signature swap sur un volume logique donné. Vous pouvez appuyer sur « y », cette information vous est demandée car il y avait une partition existante avec le même nom auparavant.

Vous pouvez vérifier que votre volume logique a été correctement créé en utilisant la commande « lvs ».

$ sudo lvs

b – Créer une partition swap sur une partition régulière

Vous pouvez sauter cette section et passer à la suivante si vous avez déjà créé votre partition sur un périphérique LVM.

Si vous avez affaire à une partition Linux « régulière », vous devrez utiliser la commande fdisk.

Dans notre cas, notre partition « régulière » (de type Linux) est nommée « /dev/sda2 ».

$ sudo fdisk /dev/sdaWelcome to fdisk (util-linux 2.34).Changes will remain in memory only, until you decide to write them.Be careful before using the write command.Command (m for help): n

Pour créer une nouvelle partition, vous devez utiliser l’option « n ».

Command (m for help): nPartition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions)Select (default p) :

Vous pouvez choisir de créer une partition « primaire ». Si vous avez plus de quatre partitions primaires, alors vous pouvez créer une partition logique.

Select (default p) : pPartition number (2-4, default 2):

Vous pouvez laisser les valeurs par défaut dans ce cas.

Sur l’invite suivante, on vous demande de spécifier le premier secteur, vous pouvez également laisser les valeurs par défaut.

All space for primary partitions is in useAdding logical partition 5First sector (48291898-65062911, default 48291840):

Enfin, on vous demande de spécifier la taille totale de la partition à créer. Dans notre cas, nous allons choisir un espace de swap de 1 Go (ou « +1G »).

Last sector, +/-sectors or +/-size{K,M,G,T,P} : +1GCreated a new partition 5 of type 'Linux' and of size 1 GiB.

Par défaut, votre partition sera créée avec un type « Linux » par défaut.

Vous voulez changer cela pour un type de partition swap.

Pour cela, tapez « t » pour « type » et changez-le en « 82 » (pour swap)

Command (m for help): tPartition number (1,2,5, default 5): 1Hex code (type L to list all codes): 82

Cliquez sur Entrée, et assurez-vous que votre type de partition a été correctement modifié.

Changed type of partition 'Linux' to 'Linux swap / Solaris'

N’oubliez pas d’écrire vos changements sur le disque en utilisant la commande « w ».

Command (m for help): wThe partition table has been alteredSyncing disks.

c – Activation de votre partition swap

D’abord, assurez-vous d’exécuter le mkswap afin que les en-têtes swap soient correctement définis pour la partition.

# For a regular partition$ sudo mkswap /dev/sda5# For a LVM partition$ sudo mkswap /dev/vgubuntu/lvswap

Maintenant que les en-têtes sont définis, il est aussi simple d’activer votre espace swap en utilisant « swapon ».

# For a regular partition$ sudo swapon /dev/sda5# For a LVM partition$ sudo swapon /dev/vgubuntu/lvswap

Maintenant que votre swap est activé, assurez-vous de lister à nouveau vos partitions swap avec l’option « -show ».

$ sudo swapon --show

Awesome, vous avez réussi à créer une partition swap sur Linux !

d – Rendez votre espace swap permanent

Comme toutes les autres partitions, vous devez rendre vos partitions permanentes.

Si vous deviez redémarrer votre serveur à l’instant, les changements ne seraient pas persistés.

D’abord, vous devez obtenir votre UUID pour la partition nouvellement créée.

$ sudo blkid | grep "swap"

Copiez la valeur de l’UUID et éditez le fichier fstab pour ajouter les changements suivants.

$ sudo nano /etc/fstabUUID=<copied value> none swap defaults 0 0

Sauvegardez votre fichier, et redémarrez votre système pour vous assurer que vos changements sont permanents.

$ sudo reboot$ sudo swapon --show

Awesome, vos changements sont maintenant permanents !

Ajouter de l’espace de swap sur Ubuntu 20.04 en utilisant un fichier de swap

Une autre façon courante d’ajouter de l’espace est de créer un fichier qui lui est dédié.

De nombreux tutoriels ne précisent pas ce détail, mais les fichiers de swap ne peuvent pas du tout contenir de trous.

Cela signifie que vous ne devez pas utiliser la commande cp sur votre hôte pour créer un fichier swap.

Pour cela, vous allez utiliser la commande « dd » qui s’assure que vous n’avez pas de trous dans votre fichier.

a – Créer un fichier d’échange en utilisant dd

Pour ajouter un espace d’échange, exécutez la commande suivante

$ sudo dd if=/dev/zero of=swapfile bs=1MB count=$((1*2014))

Dans ce cas, vous allez créer un espace d’échange de 2 Go.

Vérifiez que votre fichier d’échange a été créé en lançant la commande suivante.

$ ls -l swapfile

b – Sécurisez votre fichier d’échange avec des permissions

Les fichiers d’échange sont destinés à être utilisés à des fins d’optimisation de la mémoire.

En conséquence, ils ne doivent pas être édités ou modifiés de quelque manière que ce soit.

En conséquence, nous allons changer ses permissions.

$ sudo chmod 600 swapfile

Dans ce cas, le fichier est en lecture-écriture uniquement pour le compte root.

c – Activez votre fichier d’échange

Pour activer votre fichier d’échange, vous pouvez utiliser la commande « mkswap » suivie de celle de « swapon ».

$ sudo mkswap swapfile$ sudo swapon swapfile

Awesome, vous avez réussi à créer votre fichier d’échange !

La dernière chose que vous devez faire est de le rendre permanent en utilisant fstab.

d – Rendez votre fichier d’échange permanent

Pour rendre votre espace d’échange permanent, éditez le fichier /etc/fstab et collez les changements suivants.

$ sudo nano fstab<path_to_file>/swapfile none swap defaults 0 0

Sauvegardez votre fichier et redémarrez pour vous assurer que l’espace d’échange est toujours monté.

$ sudo reboot$ sudo swapon --show

Vous avez réussi à ajouter de l’espace d’échange sur votre Ubuntu 20.04 !

Dépannage

Lorsque vous ajoutez de l’espace d’échange sur Ubuntu 20.04, vous pouvez rencontrer l’erreur suivante.

  • swapon : /swapfile : read swap header failed.

Cette erreur se produit lorsque vous n’exécutez pas la commande mkswap avant d’exécuter la commande swapon.

Pour rappel, mkswap définit l’en-tête du fichier ou de la partition à utiliser comme espace de swap.

Si vous oubliez d’exécuter la commande mkswap, Linux ne pourra pas l’affecter comme espace de swap sur votre hôte.

  • Échec de la recherche du volume logique « vg/lv »

Cette erreur se produit lorsque vous avez supprimé un volume logique qui a été défini pour être chargé dans votre configuration initramfs.

Pour corriger cela, vous avez deux choix :

  • Exécutez « update-initramfs -u »
  • Vérifiez qu’aucun volume logique n’était mentionné à l’origine dans le fichier « resume » de votre initramfs.

Icônes réalisées par Freepik à partir de FlatIcon.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.