Je souhaite augmenter la taille de mon volume Amazon Elastic Block Store (Amazon EBS). Cependant, j'ai reçu un message d'erreur indiquant que l'espace est insuffisant sur mon système de fichiers.
Brève description
Lorsque vous essayez d'étendre la partition racine ou le système de fichiers racine de votre volume EBS, le message d'erreur Espace insuffisant sur le périphérique pourrait s'afficher. Pour éviter cette erreur, utilisez le système de fichiers temporaire (tmpfs) qui se trouve dans votre mémoire virtuelle. Montez le système de fichiers tmpfs sous le point de montage /tmp, puis étendez votre partition racine ou votre système de fichiers racine.
L'exemple suivant montre que le périphérique de stockage en mode bloc du volume EBS racine (/dev/nvme0n1) est de 9 Gio et que la partition racine (partition 1) est déjà de 8 Gio :
$ lsblkNAME 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 essayez d'augmenter la partition racine (partition 1), vous recevrez l'un des messages d'erreur suivants :
$ 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 1CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335
FAILED: failed: sfdisk --list /dev/nvme0n1
Remarque : Avant de continuer, il est recommandé de créer une sauvegarde Amazon Machine Image (AMI) de l'instance. Vous pouvez également créer un instantané du volume EBS racine associé à votre instance. Une sauvegarde vous permet de récupérer vos données en cas de problèmes imprévus.
Résolution
-
Connectez-vous à votre instance Linux Amazon Elastic Compute Cloud (Amazon EC2) via SSH.
-
Utilisez la commande df -h pour vérifier que la partition racine montée sous / est pleine (100 %). Dans l'exemple suivant, la partition racine /dev/nvme0n1p1 utilise 100 % de son espace :
$ df -hFilesystem 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
Pour recueillir des informations sur vos périphériques de stockage associés en mode bloc et sur le point de montage / racine, exécutez les commandes suivantes :
$ lsblkNAME 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 -fNAME FSTYPE LABEL UUID MOUNTPOINT
nvme0n1
├─nvme0n1p1 xfs / afcf1342-1d40-41bd-bde9-e4ea5d87e3b6 /
└─nvme0n1p128
Dans cet exemple de résultat, le volume EBS racine dispose de 9 Gio d'espace total. Cependant, la partition racine (/dev/nvme0n1p1) ou la partition 1 ne fait que 8 Gio. Le type de système de fichiers est XFS.
-
Pour éviter l'erreur 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. Cela crée un tmpfs de 10M monté sur /tmp :
$ sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp
-
Pour augmenter la taille de la partition racine ou de la partition 1, exécutez la commande growpart. 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
-
Pour vérifier que vous avez étendu la partition 1 à 9 Gio, exécutez la commande lsblk :
$ lsblkNAME 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
-
Étendez le système de fichiers. Référez-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 étendu :
$ 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 étendu :
$ sudo resize2fs /dev/nvme0n1p1
-
Après avoir étendu le système de fichiers, utilisez la commande df -h pour vérifier que le système d'exploitation peut voir l'espace supplémentaire :
$ df -hFilesystem 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
-
Pour démonter le système de fichiers tmpfs, exécutez la commande unmount (démonter) :
$ sudo umount /tmp