Resizing the disk space on Ubuntu Server VMs running on VMware ESXi 5

We generally do both dedicated and VPS hosting for our websites, apps and some premium projects we run for others.

When we choose to have VPS servers (aka virtual machines or VMs for short) instead of dedicated servers, we usually opt for VMware's free ESXi 5 and install Ubuntu Server as the OS for the VPSs we create on top of ESXi 5. It may not be as friendly as some VPS providers like Amazon, Rackspace etc. but you got more control and it's on YOUR hardware (pretty important actually!)...

Now, when you build a VPS on VMware, you start with say 40GBs of hard disk space. You install the OS, setup the server, move the sites on this new server and you're on. But what happens when there's no more room on the server for your site or sites and you need to add more disk space?

The process is quite simple:

a) Connect to the VMware ESXi 5 server using the vShpere Client. Edit the VM's properties to increase the hard disk size (VM has to be off) - I won't get into details on that, if you have the experience on managing ESXi you know what to do... I'm assuming the process is the same for ESXi 4. Now restart the VM.

b) Login via SSH to the VM and follow this process.

- First list all partitions:$ ls -al /dev/sda*

- Create new partition using fdisk:$ fdisk /dev/sdaThen: type p - to list all your partitions type n - to create a new partition type l - for "logical" then give it a number (e.g. if you got 2 partitions listed as /dev/sda1 & /dev/sda2, for the new partition simply type "3" to create /dev/sda3) type t - to change the partition type to "Linux LVM" provide the partition number you previously created type 8e - for the "Linux LVM" type type p - to list the new partition table type w - to write changes and exit

- Reboot server:$ reboot

- Assuming you created partition /dev/sda3, let's now create the physical volume in that partition:$ pvcreate /dev/sda3

- Now let's extend the server's Volume Group to that physical volume.$ vgdisplayThis will give you the info on your current Volume Group. Note down the entry next to "VG Name". That's your Volume Group name.

$ vgextend EnterVolumeGroupNameHere /dev/sda3

=== IMPORTANT NOTE [start] ===If you get a message saying /dev/sda3 could not be added to your Volume Group, you need to remove the physical volume and recreate it. Metadata might have gotten corrupt and thus the volume cannot be added to your Volume Group. So just do:$ pvremove /dev/sda3And then again:$ pvcreate /dev/sda3=== IMPORTANT NOTE [end] ===

- Since we're (essentially) extending the main logical volume, let's get the name of that:$ lvdisplayand note down the entry next to "LV Name". This is your logical volume's name (e.g. /dev/srv/root), which you'll now extend to the newly added partition/physical volume.