How to resize your SR in Xen
November 3, 2007
Posted by Roel in : Technical , trackback
Since a while, i’m using OpenFiler 2.x and Xen 4.01 Enterprise.
I use the iSCSI capabilities of OpenFiler for my Storage Repositories (SR) in Xen.
Last week i had a space problem for one of my VMs in XEN: The (virtual) Harddrive was only 30GB and i wanted to add another drive of 60GB. However, my Storage Repository (SR) was only 30GB!
I logged in to my OpenFiler machine with Putty and resized the iSCSI Volume with “lvextend -L +60G /dev/<MyGroup>/<MyiSCSIVolume>“.
In Xen i still saw that the Storage Repository was only 30GB, after restarting the OpenFiler iSCSI Target Service (using the GUI) and rebooting the XEN Server, the SR was still 30GB.
I logged in to the Xen Console (using Putty, but you can also use the XenCenter) and did a “xe sr-scan <my-sr-uuid>” and it was still 30GB, even after removing the SR and re-adding it.
After one night reading forums and Google’ing around i found the pvresize command, i red a lot of threads were people say it doesn’t work, well, it does work but you need to do the following:
xe sr-list name-label=<your SR name you want to resize>
Note the uuid of the SR.
pvscan | grep “<the uuid you noted in the previous step>“
Note the device name (eg: PV /dev/sdj )
pvresize <device name> (eg: pvresize /dev/sdj )
xe sr-scan <the uuid you noted in the previous step>
Now you see (check it using the XenCenter ;) ) that the SR is resized ! You can do the above while the VM is running in VM.
Most problems occur when people do “pvresize /dev/sda” (like most examples are), but when you have several (iSCSI) Storage Repositories, it could be /dev/sdc of /dev/sdj or whatever.
I’d add my new (virtual) Harddive and i had plenty of space again!
Comments»
Hi Roel, Thanks for the help. I used the same commands for a shared Fibre Channel San Storage. Worked a treat. Just a quick note for anyone using the xe sr-scan command to make sure you add the uuid at the end as below.
xe sr-scan uuid=
Cheers
Ben
for some reason, it didnt do anything for me (ctaborda at lansyx.com) Let me know if you could give me some help.
I had a 250gb LUN, and expanded it to 750GB, I am now trying to expand my SR as well.
I did the following :
# xe sr-list name-label=XenContainer
uuid ( RO) : c12f813c-8e4c-b04f-4872-0930c8b84f51
name-label ( RW): XenContainer
name-description ( RW):
type ( RO): lvm
content-type ( RO): user
# pvscan | grep c12f813c-8e4c-b04f-4872-0930c8b84f51
PV /dev/dm-3 VG VG_XenStorage-c12f813c-8e4c-b04f-4872-0930c8b84f51 lvm2 [249.99 GB / 79.99 GB free]
# pvresize /dev/dm-3
Physical volume “/dev/dm-3″ changed
1 physical volume(s) resized / 0 physical volume(s) not resized
# xe sr-scan uuid=c12f813c-8e4c-b04f-4872-0930c8b84f51
#
After this, I check within XenCenter and I still see my SR as 250g! I would love some help. Also, am I safe from loosing data by doingthis?
Thanks,
I had to reboot my Xen server before running pvresize. Otherwise, it didn’t recognize the increased disk space. Likely because Open-iSCSI needs to reconnect to see the larger LUN.
For resizing without reboot, first run the command:
iscsiadm -m node -R
This will rescan the iSCSI devices and detect the new sizes.
After this, you continue with pvresize & sr-scan.
copy & past template for the job, jut set your SR name
# resize the lun on the iscsi server
# replace in the next line
SR2GROW=`xe sr-list params=uuid name-label= | awk ‘{ print $NF }’`
# find devices to resize
DEV2GROW=`pvscan | grep $SR2GROW | awk ‘{ print $2 }’`
# scan for resized devices
iscsiadm -m node -R
# do the resize
for dev in $DEV2GROW ; do
pvresize $dev
done
# tell xenapi to look for the new LVM size
xe sr-scan uuid=${SR2GROW}