www.asplund.nu

...my place on the web

  • Increase font size
  • Default font size
  • Decrease font size

XEN extend DomU disk

Extend DomU's LVM/DRBD disk

I had a need to extend one disk in a DomU I use as a file share. This disk is configured for the DomU in addition to the root and swap. This disk is mounted in the DomU and used as the NFS and Samba root. Before I extended this disk I used a test DomU to perform the same operation, on that test DomU I extended the root partition to see if that would cause any problems.

I was successful in all my tests and the only downtime during this operation was a reboot of the DomU. So extending any partition matching the prerequisites below should work without problems.

Below I will described how I went along.

Prerequisites

You need to have a DomU installed as described in my XEN cluster HowTo. The DomU will have a separate DRBD device for each file system with the underlying device being a Logical Volume (LV). So for a system with a root and a swap partition, you would have two DRBD devices in the Dom0 each with an underlying LV. So no partitioning should be done in the DomU.

Procedure

We start by extending the underlying Logical Volume (LV) on both nodes. Run the following (on both nodes):

lvextend -v -L+100G /dev/vg/test-disk 

This will extend the LV called "test-disk" in the Volume Group "vg" with 100GB.

Next step is to extend the corresponding DRBD device so it knows about the increased size of the LV. This step is only required on one node.
Run the following only on the primary node:

root@ha1:/# drbdadm resize test-disk

This will resize the DRBD device called test-disk. Note that I use the same name for the LV as for the DRBD device.

Reboot DomU:

root@ha1:/# xm console test
test:/# reboot

After reboot we need to resize the file system. My device is called /dev/xvdc and it had an original size of 100GB, so I resized /dev/xvdc to 200GB. Login to the DomU again and perform the resize:

root@ha1:/# xm console test
test:/# resize2fs /dev/xvdc 200G

Done!
Or at least now you only have to wait for the resize to complete. Please be patient because it can take some time. My resize from 100GB to 200GB took around 10-15 minutes.

Below you fill find the output from "df -h" before and after the resize as well as the output of the resize2fs command:

 

Before RESIZE:

test:/# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda             9.9G  1.8G  7.6G  19% /
tmpfs                 193M     0  193M   0% /lib/init/rw
udev                  193M   44K  193M   1% /dev
tmpfs                 193M  4.0K  193M   1% /dev/shm
/dev/xvdc              99G   91G  3.1G  97% /data

Performing the RESIZE:

test:/# resize2fs /dev/xvdc 200G
resize2fs 1.40-WIP (14-Nov-2006)
Filesystem at /dev/xvdc is mounted on /data; on-line resizing required
old desc_blocks = 7, new_desc_blocks = 13
Performing an on-line resize of /dev/xvdc to 52428800 (4k) blocks.
The filesystem on /dev/xvdc is now 52428800 blocks long.

After RESIZE:

test:/# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/xvda             9.9G  1.8G  7.6G  19% /
tmpfs                 193M     0  193M   0% /lib/init/rw
udev                  193M   44K  193M   1% /dev
tmpfs                 193M  4.0K  193M   1% /dev/shm
/dev/xvdc             197G   91G   97G  49% /data
Last Updated on Saturday, 10 October 2009 14:22  
Comments (2)
Thank you
1 Thursday, 18 December 2008 17:19
Sadegh
Thank you
Just what I was looking for
2 Wednesday, 14 October 2009 08:54
Camille
Thank you for this tip, I was just searching that for my home Xenbox.