Since I had to add new disk for the guest to add swap space, Xen allows you to hot add (and remove) disks to a guest domU while the system is running.
Lets take a look at how to add disks to the guests :
I would share image based disk from the Xen Dom0 which would be available to the guest, so later it could be formated, mounted and do anything just like a block device. xm-attach would be used to make this online.
I just created a image file for 4GB to add swap partition for guest server
xendom0#dd if=/dev/zero of=testvm-swapdisk.img bs=1M count=4k
xm block-attach <Domain> <BackDev> <FrontDev> <Mode> [BackDomain]
Domain - Guest domain which needs to attach disk
BackDev - Location of the block device
FrontDev - The device name to assign the new device in the domU
Mode - read/write mode
xendom0# xm block-attach testvm testvm-swapdisk.img /dev/xvdd w
On Guest :
testvm ~]# lsblk -i | tail -1
xvdd 202:48 0 4G 0 disk
testvm ~]#fdisk /dev/xvdd
testvm ~]#mkswap /dev/xvdd1
testvm ~]#swapon /dev/xvdd1
testvm ~]# swapon -s
Filename Type Size Used Priority
/dev/dm-1 partition 819196 0 -1
/dev/xvdd1 partition 4192928 0 -2
remove disk from guest:
If you need to remove disks which are no longer needed for the guests, you need to unmount, delete the partitions. from the xen Dom0 domains you can detach the disk.
xendom0#xm block-detach testvm /dev/xvdd
Make sure, you need to edit the xen config file for permanent changes so that it would be available for next reboot.