Skip to content
Luca Dell'Oca Principal Cloud Architect @Veeam
Virtual To The Core Virtual To The Core

Virtualization blog, the italian way.

  • Media
  • About me
Virtual To The Core
Virtual To The Core

Virtualization blog, the italian way.

Allargare il boot disc di un’instanza EBS su Amazon

Luca Dell'Oca, February 26, 2010December 4, 2016

Abbiamo già parlato in altre occasioni dell’utilità di utilizzare le istanze EBS su Amazon Web Services.

Che fare però se stiamo finendo lo spazio disco e rischiamo di bloccare il server ospitato? Se potete permettervi un piccolo tempo di down della virtual machine (pochi minuti), ecco come fare.

Prendiamo ad esempio un’istanza Ubuntu 9.10 Karmic EBS boot instance (ami-6743ae0e). Se controlliamo lo spazio disco otterremo:

$ df -h /
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              15G  675M   14G   5% /

Eseguiremo tutti questi comandi su una seconda macchina, uguale a quella produttiva, che accenderemo appositamente. Scegliamo innanzitutto una nuova dimensione del disco:

instanceid=<YOURINSTANCEID>
size=20

Otteniamo anche informazioni circa l’id del root EBS volume e della availability zone:

oldvolumeid=$(ec2-describe-instances $instanceid |
egrep “^BLOCKDEVICE./dev/sda1” | cut -f3)
zone=$(ec2-describe-instances $instanceid | egrep ^INSTANCE | cut -f12)
echo “instance $instanceid in $zone with original volume $oldvolumeid”

Arrestate (non terminate!) l’istanza:

ec2-stop-instances $instanceid

Staccate il volume originario dall’istanza:

while ! ec2-detach-volume $oldvolumeid; do sleep 1; done

Create una snapshot del volume originario:

snapshotid=$(ec2-create-snapshot $oldvolumeid | cut -f2)
while ec2-describe-snapshots $snapshotid | grep -q pending; do sleep 1; done
echo “snapshot: $snapshotid”

Create un nuovo volume a partire dalla snapshot, specificando in questo punto la nuova dimensione, ovviamente maggiore dell’originale:

newvolumeid=$(ec2-create-volume \
–availability-zone $zone     \
–size $size                  \
–snapshot $snapshotid |
cut -f2)
echo “new volume: $newvolumeid”

Attaccate il nuovo volume all’istanza:

ec2-attach-volume        \
–instance $instanceid \
–device /dev/sda1     \
$newvolumeid
while ! ec2-describe-volumes $volumeid | grep -q attached; do sleep 1; done

Avviate l’istanza e scoprite qual’è il suo nuovo IP pubblico o l’hostname. Se state utilizzando elastic IP, assegnatelo a questa nuova istanza:

ec2-start-instances $instanceid
while ! ec2-describe-instances $instanceid | grep -q running; do sleep 1; done
ec2-describe-instances $instanceid

Collegatevi all’istanza via ssh e ridimensionate il file system di root per utilizzare il nuovo spazio messo a disposizione:

# ext3 root file system (è il più comune che troverete nelle varie immagini disponibili)
sudo resize2fs /dev/sda1

# XFS root file system:
sudo apt-get update && sudo apt-get install -y xfsprogs
sudo xfs_growfs /

Verificate che dopo tutto questo lavoraccio la partizione sia veramente diventata da 20 GB:

$ df -h /
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda1              20G  679M   19G   4% /

Cancellate a questo punto il vecchio volume EBS e la snapshot se non vi servono più. Magari tenetevi per qualche tempo almeno la snapshot, non si sa mai:

ec2-delete-volume $oldvolumeid
ec2-delete-snapshot $snapshotid

Dal momento che avete connesso a mano questo volume all’istanza, non verrà cancellato automaticamente in fase di cancellazione dell’istanza stessa, a meno che non modifichiate questo comportamento.

Share this:

  • Click to share on X (Opens in new window) X
  • Click to share on Facebook (Opens in new window) Facebook
  • Click to share on LinkedIn (Opens in new window) LinkedIn
  • Click to email a link to a friend (Opens in new window) Email
  • Click to share on Tumblr (Opens in new window) Tumblr
  • Click to share on Pinterest (Opens in new window) Pinterest
  • Click to share on Reddit (Opens in new window) Reddit
  • Click to share on WhatsApp (Opens in new window) WhatsApp
  • Click to share on Pocket (Opens in new window) Pocket
Notizie allargareamazonawsboot discebsec2

Post navigation

Previous post
Next post

Search

Sponsors

Latest Posts

  • Migrate WSL (Windows Subsystem for Linux) to a new computer
  • Pass keystrokes to a pfSense virtual machine to install it automatically
  • Automatically deploy pfSense with Terraform and Ansible
  • My Automated Lab project: #6 Create a S3 Bucket with Terraform
  • My Automated Lab project: #5 Deploy a Linux vSphere VM with Terraform and custom disks
©2025 Virtual To The Core | WordPress Theme by SuperbThemes
We use cookies to ensure that we give you the best experience on our website, and to collect anonymous data regarding navigations stats using 3rd party plugins; they all adhere to the EU Privacy Laws. If you continue to use this site we will assume that you are ok with it.OkNoPrivacy Policy