LVM Extend HOWTO

Just a quick ‘howto extend an existing logical volume’ on a Linux box.

You will of course start by adding a new disk to the server. If this can be done online, you will need to run scsiadd -s (or rescan-scsi-bus from the scsitools package) to scan for new devices. Verify that the new disk is seen by the system and write down the device name.

Partition the new disk (/dev/sdc in this example)

fdisk /dev/sdc

> o create a new empty DOS partition table

> n add a new partition

> p make it primary

> 1 first primary partition

> default use pre-selected value

> default use pre-selected value

> t change partition type

> 8e make it a LVM partition

> w write changes to disk

Initialize the filesystem for LVM

pvcreate /dev/sdc1

Extend existing volume group (named debian in this example)

We will add the device we just prepared to our existing volume group. You can use the vgdisplay command to display the volumegroups.

vgextend debian /dev/sdc1

Extend the logical volume (/dev/debian/root in this example) with 20G

Running vgdisplay will display allocated and free space of the volumegroup. We are going to use free space to grow the logical volume. To get a list of logical volumes run lvdisplay

lvextend -L+20G /dev/debian/root

Resize the filesystem

The last thing we need is to resize the filesystem. This will work with ext3/ext4/xfs and some other filesystems. You need to check this. Some support online resize, others must be unmounted. We will resize an ext3 filesystem, which can be done online… yearh!

resize2fs /dev/debian/root