Tu sei qui

Aruba Cloud Smart VPS - Allargare disco, istruzioni

Ultimo aggiornamento: 8 Marzo 2018

Sebbene Aruba Cloud, nel pannello di amministrazione dei Cloud Server Smart, permetta di fare un upgrade del server, passando ad esempio da Aruba Cloud Server Smart SMALL (20GB) ad Aruba Cloud Server Smart MEDIUM (40GB) o tagli più grandi come LARGE (80GB) o EXTRA LARGE (160GB), non fornisce però le istruzioni per ridimensionare il disco in modo sicuro.

Nel caso in cui sul VPS sia installata una distruzione Linux, riporto qui di seguito i passaggi necessari per ridimensionare il disco dopo un upgrade da Aruba Cloud Server Smart SMALL (20GB) ad Aruba Cloud Server Smart MEDIUM (40GB).

Nello specifico, ho eseguito i passaggi seguenti con Ubuntu Linux 14.04, ad ogni modo presumo che i passaggi siano gli stessi anche per le altre distribuzioni GNU/Linux.

1. Login tramite SSH

ssh root@nomedominio

2. Controllo dello spazio disponibile

df -h

Prima e dopo l'upgrade del VPS, non dovrebbero risultare variazioni di spazio disponibile su /dev/dm-1, che corrisponde alla partizione montata come directory radice

Nel mio caso, ad es., dopo l'upgrade di 20GB, /dev/dm-1 risulta ancora occupata al 99%:

Filesystem      Size  Used Avail Use% Mounted on
udev            990M  4.0K  990M   1% /dev
tmpfs           201M  540K  200M   1% /run
/dev/dm-1        19G   18G  304M  99% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none           1002M     0 1002M   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sda1       236M   40M  185M  18% /boot

3. Do uno sguardo alle partizioni del disco SSD attaccato al VPS:

ls -al /dev/sda*
brw-rw---- 1 root disk 8, 0 Mar  8 12:26 /dev/sda
brw-rw---- 1 root disk 8, 1 Mar  8 12:26 /dev/sda1
brw-rw---- 1 root disk 8, 2 Mar  8 12:26 /dev/sda2
brw-rw---- 1 root disk 8, 3 Mar  8 12:26 /dev/sda3
brw-rw---- 1 root disk 8, 5 Mar  8 12:26 /dev/sda5

Ho quindi tre partizioni primarie e una logica. Ne segue che almeno una delle partizioni primarie è una partizione estesa. C'è quindi posto per un'altra partizione primaria (ricordo che ogni disco può avere fino a quattro partizioni primarie, numerate da 1 a 4, di cui una può essere una partizione estesa contenente partizioni logiche, che a loro volta sono numerate da 5 in poi).

Sicuramente c'è posto anche un'altra partizione logica, però non posso crearla senza prima estendere la partizione estesa, cosa impossibile perché tutte le partizioni sono montate (e ovviamente non posso smontarle perché l'unica possibilità di accesso al VPS è tramite SSH). Riferimenti per quanto ho appena scritto: https://askubuntu.com/questions/591213/how-to-expand-resize-extended-partition

Da queste poche informazioni, ne segue che tutto quello che posso fare da remoto, senza smontare nessuna delle partizioni presenti, è aggiungere una partizione primaria /dev/sda4

4. Creazione di /dev/sda4

cfdisk

Tramite cfdisk, che è un semplice tool grafico di partizionamento, mi posiziono nello spazio libero e credo la partizione primaria /dev/sda4. Da notare che devo manualmente specificare il tipo di file system diverso da quello di default: devo scegliere "Linux LVM".
L'uso di cfdisk è abbastanza intuitivo, se così non fosse rimando alle guide presenti in rete.
Alla fine, salvo il nuovo partizionamento (nel quale non ho toccato minimamente le partizioni preesistenti), e riavvio tramite:

reboot

6. Attendo un minuto, per dare tempo al VPS di riavviarsi, ed eseguo nuovamente il login tramite ssh

7. Inizializzo la nuova partizione per l'uso con LVM

pvcreate /dev/sda4

Il messaggio che ottengo è:

Physical volume "/dev/sda4" successfully created

Nel caso in cui invece si verificasse un messaggio di errore in questo passaggio, rimando a quanto scritto in questa guida:
http://www.joomlaworks.net/blog/item/168-resizing-the-disk-space-on-ubuntu-server-vms-running-on-vmware-esxi-5

8. Controllo qual è il nome del "volume group"

vgdisplay

  --- Volume group ---
  VG Name               vg
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  9
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.76 GiB
  PE Size               4.00 MiB
  Total PE              5058
  Alloc PE / Size       5058 / 19.76 GiB
  Free  PE / Size       0 / 0   
  VG UUID               yMofmX-iYvO-cOtK-nTf5-cD7d-oc7o-GECO0q

Il "VG Name" è "vg".
   
9. Aggiungo la partizione precedentemente creata al volume group

vgextend vg /dev/sda4

Volume group "vg" successfully extended

10. Controllo qual è il path del logical volume:

lvdisplay

  --- Logical volume ---
  LV Path                /dev/vg/lv_swap
  LV Name                lv_swap
  VG Name                vg
  LV UUID                CohmrO-3wcX-zLMV-exxT-gUDu-dAxo-vJhfD4
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2014-07-18 10:33:32 +0200
  LV Status              available
  # open                 2
  LV Size                952.00 MiB
  Current LE             238
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:0
   
  --- Logical volume ---
  LV Path                /dev/vg/lv_root
  LV Name                lv_root
  VG Name                vg
  LV UUID                VxYaWt-nPDZ-zTos-Bhbk-0dyz-vlX4-5P06Qc
  LV Write Access        read/write
  LV Creation host, time ubuntu, 2014-07-18 10:33:44 +0200
  LV Status              available
  # open                 1
  LV Size                18.83 GiB
  Current LE             4820
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           252:1

In questo caso, l'informazione che mi serve per lo step successivo è: /dev/vg/lv_root
   
11. Estendo la dimensione del volume logico

lvextend /dev/vg/lv_root /dev/sda4

  Extending logical volume lv_root to 38.82 GiB
  Logical volume lv_root successfully resized

12. Step finale

resize2fs /dev/vg/lv_root

resize2fs 1.42.9 (4-Feb-2014)
Filesystem at /dev/vg/lv_root is mounted on /; on-line resizing required
old_desc_blocks = 2, new_desc_blocks = 3
The filesystem on /dev/vg/lv_root is now 10177536 blocks long.

13. Ho finito: controllo la nuova dimensione del disco e noto che lo spazio occupato non è più 99% (come nello step 2) ma 48%, perché ci sono 20GB in più:

df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            990M  4.0K  990M   1% /dev
tmpfs           201M  544K  200M   1% /run
/dev/dm-1        39G   18G   20G  48% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            5.0M     0  5.0M   0% /run/lock
none           1002M     0 1002M   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sda1       236M   40M  185M  18% /boot

Concludo il tutto con un:

reboot

Note finali:
Poiché a questo punto le partizioni primarie sono finite, un eventuale ulteriore incremento dello spazio su disco ripetendo questi passaggi non sarà possibile. Una soluzione potrebbe essere quella di trasferire tutti i dati su un nuovo VPS che ha il disco già formattato con la dimensione voluta (con però tutti gli inevitabili svantaggi di dover ricaricare e riconfigurare tutto il software e di cambiare l'indirizzo IP), oppure chiedere l'intervento di un tecnico di Aruba che possa smontare le partizioni per ridimensionarle (non so però se Aruba offre questo servizio sui server "non managed", ovvero non amministrati dai tecnici di Aruba). Se qualcuno dei miei lettori ha ulteriori informazioni al riguardo, mi passi il link che lo aggiungo alla guida.

Una soluzione migliore di tutti questi passaggi, secondo la mia modesta opinione, è lasciar perdere Aruba e passare a Linode, che offre VPS di tutte le taglie, dai più economici ai più costosi, con ampie possibilità di personalizzazione. Linode, diversamente da Aruba, permette di cambiare le caratteristiche del proprio VPS sia aumentadole sia diminuendole (quindi passando da piani meno costosi a più costosi e viceversa), con la possibilità di aumentare o diminuire "automaticamente" lo spazio su disco, senza tutti i passaggi complicati (e potenzialmente rischiosi) sopra riportati:
https://linode.com/docs/platform/disk-images/resizing-a-linode/

Happy GNU/Linux a tutti,
Francesco Galgani,
8 marzo 2018

Classificazione: