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:
- Estendere il volume (lato OpenStack)
- Ridimensionare il file system (all'interno della VM)
Estendere il volume
Horizon
- Passi a Volumes > Volumes.
- Trovi il volume e apra il menu delle azioni.
- Selezioni Extend Volume.
- Inserisca la nuova dimensione (deve essere maggiore della dimensione attuale).
- 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.