Comment augmenter la taille de mon volume EBS si une erreur s’affiche, indiquant qu'il ne reste plus d'espace sur mon système de fichiers ?

Date de la dernière mise à jour : 07/05/2020

Une erreur s’est affichée, indiquant qu'il ne restait plus d'espace sur mon système de fichiers lorsque j'ai essayé d'augmenter la taille de mon volume Amazon Elastic Block Store (Amazon EBS). Comment résoudre ce problème ?

Brève description

Pour éviter les erreurs de type Espace insuffisant sur l'appareil au moment où vous développez l'extension de la partition racine ou du système de fichiers racine sur votre volume EBS, utilisez le système de fichiers temporaire tmpfs qui réside en mémoire. Montez le système de fichiers tmpfs sous le point de montage /tmp, puis développez votre partition racine ou votre système de fichiers racine.

Exemple

L'exemple suivant montre que le périphérique de stockage en mode bloc du volume EBS racine (/dev/nvme0n1) fait 9 Gio et que la partition racine (partition 1) fait déjà 8 Gio.

$ lsblk
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0   9G  0 disk
├─nvme0n1p1   259:1    0   8G  0 part /
└─nvme0n1p128 259:2    0   1M  0 part

Si vous tentez d'augmenter la taille de la partition racine (partition 1), l'une des erreurs suivantes s’affiche :  

$ sudo growpart /dev/nvme0n1 1
/bin/growpart: line 248: /tmp/growpart.fklt5u/dump.out: No space left on device
FAILED: failed to dump sfdisk info for /dev/nvme0n1

-ou-

$ sudo growpart /dev/nvme0n1 1
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335
FAILED: failed: sfdisk --list /dev/nvme0n1

Remarque : une bonne pratique consiste à créer une sauvegarde Amazon Machine Image (AMI) de l'instance ou un instantané du volume EBS racine attaché à votre instance avant de tenter les étapes de résolution. Une sauvegarde vous permet de récupérer vos données en cas de problèmes imprévus.

Solution

1.    Connectez-vous à votre instance Linux Amazon Elastic Compute Cloud (Amazon EC2) à l'aide de SSH.

2.    Utilisez la commande df -h pour vérifier que la partition racine montée sous « / » est pleine (100 %). Dans l'exemple suivant, /dev/nvme0n1p1 utilise 100 % de son espace.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        460M     0  475M   0% /dev
tmpfs           478M     0  492M   0% /dev/shm
tmpfs           478M  432K  492M   1% /run
tmpfs           478M     0  492M   0% /sys/fs/cgroup
/dev/nvme0n1p1  8.0G  8.0G  664K 100% /
tmpfs            96M     0   99M   0% /run/user/1000

3.    Exécutez les commandes suivantes pour rassembler des informations sur vos périphériques de stockage en mode bloc attachés et sur le point de montage racine « / ».

$ lsblk
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0   9G  0 disk
├─nvme0n1p1   259:1    0   8G  0 part /
└─nvme0n1p128 259:2    0   1M  0 part
$ lsblk -f
NAME          FSTYPE LABEL           UUID                                 MOUNTPOINT
nvme0n1
├─nvme0n1p1   xfs    /               afcf1342-1d40-41bd-bde9-e4ea5d87e3b6 /
└─nvme0n1p128

Dans l'exemple de sortie précédent, le volume EBS racine dispose de 9 Gio d'espace total, mais la partition racine (/dev/nvme0n1p1) ou la partition 1 ne fait que 8 Gio. Le type de système de fichiers est XFS.

4.    Pour éviter les erreurs de type Espace insuffisant sur le périphérique de stockage en mode bloc, montez le système de fichiers temporaire tmpfs sur le point de montage /tmp . Un tmpfs de 10 M est ainsi créé et monté sur /tmp.

$ sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp

5.    Exécutez la commande growpart pour augmenter la taille de la partition racine ou de la partition 1. Remplacez /dev/nvme0n1 par votre partition racine.

$ sudo growpart /dev/nvme0n1 1 
CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335

Exécutez la commande lsblk pour vérifier que la taille de la partition 1 est augmentée à 9 Gio.

$ lsblk
NAME          MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
nvme0n1       259:0    0   9G  0 disk
├─nvme0n1p1   259:1    0   9G  0 part /
└─nvme0n1p128 259:2    0   1M  0 part

6.    Développez le système de fichiers. Reportez-vous à l'étape 3 pour vérifier le système de fichiers de votre partition racine « / ».

Dans l'exemple suivant, un système de fichiers de type XFS est développé.

$ sudo xfs_growfs -d /
data blocks changed from 2096635 to 2358779
         =                       sectsz=512   sunit=0 blks, lazy-count=1
log      =internal               bsize=4096   blocks=2560, version=2
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
         =                       sunit=0      swidth=0 blks
data     =                       bsize=4096   blocks=2096635, imaxpct=25
         =                       crc=1        finobt=1 spinodes=0
         =                       sectsz=512   attr=2, projid32bit=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
meta-data=/dev/nvme0n1p1         isize=512    agcount=4, agsize=524159 blks

Dans l'exemple suivant, un système de fichiers EXT2/EXT3/EXT4 sur la partition 1 est développé :

$ sudo resize2fs /dev/nvme0n1p1

7.    Après avoir développé le système de fichiers, utilisez la commande df -h pour vérifier que le système d'exploitation détecte bien l'espace supplémentaire.

$ df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        960M     0  960M   0% /dev
tmpfs           978M     0  978M   0% /dev/shm
tmpfs           978M  392K  978M   1% /run
tmpfs           978M     0  978M   0% /sys/fs/cgroup
/dev/nvme0n1p1  9.0G  8.0G 1022M  89% /
tmpfs           196M     0  196M   0% /run/user/1000
tmpfs            10M     0   10M   0% /tmp

8.    Exécutez la commande unmount pour démonter le système de fichiers tmpfs.

$ sudo umount /tmp

Cet article vous a-t-il été utile ?

Cette page peut-elle être améliorée ?


Vous avez besoin d’aide ?