Come posso aumentare le dimensioni del volume EBS se ricevo un errore che indica che lo spazio nel file system è esaurito?

4 minuti di lettura
0

Desidero aumentare o diminuire le dimensioni del volume di Amazon Elastic Block Store (Amazon EBS). Tuttavia, ho ricevuto un messaggio di errore che indica che lo spazio nel file system è esaurito.

Breve descrizione

Quando si tenta di espandere la partizione root o il file system root sul volume EBS, è possibile che venga visualizzato l'errore No space left on device. Per evitare questo errore, utilizza il file system temporaneo (tmpfs) presente nella memoria virtuale. Monta il file system tmpfs sotto il punto di montaggio /tmp, quindi espandi la partizione o il file system root.

L'esempio seguente mostra che il dispositivo a blocchi del volume EBS root (/dev/nvme0n1) è di 9 GiB, mentre la partizione root (partizione 1) è già di 8 GiB:

$ 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

Se si tenta di aumentare la partizione root (partizione 1) verrà visualizzato uno dei seguenti messaggi di errore:

$ 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

-oppure-

$ 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

Nota: prima di procedere, è consigliabile creare un backup Amazon Machine Image (AMI) dell'istanza. Oppure crea uno snapshot del volume EBS root collegato all'istanza. Un backup ti consentirà di recuperare i dati in caso di problemi imprevisti.

Risoluzione

  1. Connettiti alla tua istanza Linux Amazon Elastic Compute Cloud (Amazon EC2) con SSH.

  2. Usa il comando df -h per verificare che la partizione root montata in / sia piena (100%). Nell'esempio seguente, /dev/nvme0n1p1 utilizza il 100% del suo spazio:

    $ 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

    Per raccogliere dettagli sui dispositivi a blocchi collegati e sul punto di montaggio root /, esegui i comandi seguenti:

    $ 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

    In questo output di esempio, il volume EBS root ha 9 GiB di spazio totale. Tuttavia, la partizione root (/dev/nvme0n1p1) o la partizione 1 è di soli 8 GiB. Il tipo di file system è XFS.

  3. Per evitare l'errore No space left on the block device, monta il file system temporaneo tmpfs sul punto di montaggio /tmp. In questo modo verrà creato un file tmpfs da 10 M su /tmp:

    $ sudo mount -o size=10M,rw,nodev,nosuid -t tmpfs tmpfs /tmp
  4. Per aumentare le dimensioni della partizione root o della partizione 1, esegui il comando growpart. Sostituisci /dev/nvme0n1 con la tua partizione root:

    $ sudo growpart /dev/nvme0n1 1 CHANGED: partition=1 start=4096 old: size=16773087 end=16777183 new: size=18870239 end=18874335
  5. Per verificare di aver espanso la partizione da 1 Gib a 9 GiB, esegui il comando 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
  6. Espandi il file system. Fai riferimento al passaggio 3 per verificare il file system della partizione root /. Nell'esempio seguente viene espanso un file system di tipo XFS:

    $ 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

    Nell'esempio seguente viene espanso un file system EXT2/EXT3/EXT4 sulla partizione 1:

    $ sudo resize2fs /dev/nvme0n1p1
  7. Dopo aver espanso il file system, utilizza il comando df -h per verificare che il sistema operativo possa vedere lo spazio aggiuntivo:

    $ 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
  8. Per smontare il file system tmpfs, esegui il comando unmount:

    $ sudo umount /tmp
AWS UFFICIALE
AWS UFFICIALEAggiornata 8 mesi fa