Vai al contenuto

Estendere i volumi

Un volume può essere esteso conservando i dati esistenti, purché il file system supporti il ridimensionamento (Ext4 e XFS lo supportano entrambi). I volumi non possono essere ridotti, possono solo essere aumentati.

Il processo prevede due passaggi:

  1. Estendere il volume (lato OpenStack)
  2. Ridimensionare il file system (all'interno della VM)

Estendere il volume

Horizon

  1. Passi a Volumes > Volumes.
  2. Trovi il volume e apra il menu delle azioni.
  3. Selezioni Extend Volume.
  4. Inserisca la nuova dimensione (deve essere maggiore della dimensione attuale).
  5. Clicchi su Extend Volume.

CLI

openstack volume set --size <NEW-SIZE-GB> <VOLUME-NAME>

Esempio: estendere data-vol-01 da 100 GB a 150 GB:

openstack volume set --size 150 data-vol-01

Verifichi la nuova dimensione:

openstack volume show data-vol-01 -c size -c status

Ridimensionare il file system

Dopo aver esteso il volume, deve ridimensionare il file system all'interno della VM affinché il sistema operativo possa utilizzare il nuovo spazio.

Ext4

sudo resize2fs /dev/sdb1

Se il file system non è montato, lo monti prima:

sudo mount /dev/sdb1 /mnt/data
sudo resize2fs /dev/sdb1

XFS

Per XFS, il file system deve essere montato prima del ridimensionamento:

sudo mount /dev/sdb1 /mnt/data
sudo xfs_growfs /mnt/data

Verifica

df -h /mnt/data

Note

Se la VM non rileva la nuova dimensione, potrebbe essere necessario arrestare e avviare l'istanza (non riavviare: utilizzi stop e poi start):

openstack server stop <INSTANCE-NAME>
openstack server start <INSTANCE-NAME>

Errori comuni

Il volume è in uso

Failed to set volume size: Volume is in in-use state,
it must be available before size can be extended

Il volume è collegato a una VM. Ha due opzioni:

Opzione 1: utilizzare il client Cinder (senza scollegamento):

Il client openstack non può ridimensionare i volumi in uso, ma il client cinder può farlo. Noti che cinder richiede l'ID del volume, non il nome.

sudo apt install python3-cinderclient
cinder --os-volume-api-version 3.42 extend <VOLUME-ID> 150

Dopo l'estensione, arresti e avvii la VM affinché la nuova dimensione venga riconosciuta:

openstack server stop <INSTANCE-NAME>
openstack server start <INSTANCE-NAME>

Opzione 2: scollegare, estendere, ricollegare:

sudo umount /mnt/data
openstack server remove volume <INSTANCE-NAME> <VOLUME-NAME>
openstack volume set --size 150 <VOLUME-NAME>
openstack server add volume <INSTANCE-NAME> <VOLUME-NAME>

Quota superata

VolumeSizeExceedsAvailableQuota: Requested volume or snapshot
exceeds allowed Gigabytes quota. (HTTP 413)

Lo spazio di archiviazione totale dei volumi del Suo progetto supera la quota. Richieda un aumento della quota tramite il Cloud Services Portal sotto Quota Management.

Limite di volumi superato

VolumeLimitExceeded: Maximum number of volumes allowed (N) exceeded

Ha superato il numero di volumi consentiti nel Suo progetto. Richieda un aumento del limite tramite il Cloud Services Portal sotto Quota Management.

Impossibile ridurre un volume

I volumi possono solo essere estesi, non ridotti. Se ha bisogno di un volume più piccolo, crei un nuovo volume più piccolo, copi i dati e poi elimini quello vecchio.