[one-users] Set root disk size at runtime
Jaime Melis
jmelis at opennebula.org
Tue Sep 25 02:32:04 PDT 2012
Hi Ricardo,
in case you did want to resize the main OS disk, you need to do a tiny bit
of coding. Let me walk you through it.
You will need to edit the "clone" script located in
"/var/lib/one/remotes/tm/<your_tm>/clone" where <your_tm> will be either
"shared","ssh", or whatever TM_MAD you're using in your datastores.
In that file you will need to grab the SIZE attribute of the disk. You can
grab that bit of code from tm/lvm/clone [1]. Be careful because
DEFAULT_SIZE won't be declared, so you will need to hardcode it.
After this step you will need to resize the image to the specified SIZE:
"tm/ssh/clone" [2]:
Right after line 66 add something like:
ssh_exec_and_log "$DST_HOST" "qemu-img resize $DST_PATH $SIZE" "Error:
could not resize"
"tm/shared/clone" [3]:
Substitute line 67 with:
"cd $DST_DIR; cp -r $SRC_PATH $DST_PATH; qemu-img resize $DST_PATH
$SIZE" \
Once you have implemented this, you will be able to do in your VM/templates:
DISK = [ IMAGE_ID = <ID>, SIZE = <NEW_SIZE> ]
Keep the following things in mind though:
- There might be a errors, this has not been tested, written off the top
of my head
- Quotas and accounting won't be aware of the dynamic resizing
- You will need to use images understood by qemu-img. Of course you can
substitute that command for whatever you like.
[1] https://github.com/OpenNebula/one/blob/master/src/tm_mad/lvm/clone#52 lines
52-62
[2] https://github.com/OpenNebula/one/blob/one-3.6/src/tm_mad/ssh/clone#L66
[3]
https://github.com/OpenNebula/one/blob/one-3.6/src/tm_mad/shared/clone#L67
regards,
Jaime
On Mon, Sep 24, 2012 at 1:01 PM, Ricardo Duarte <rjtd21 at hotmail.com> wrote:
> Hi there,
>
> I had a look at cloud-init, and also other cloud softwares, and this is
> what they do:
>
> - The images themselves are very small in size
> - The size of the root disk is selected when launching a instance, and as
> so, it can be part of the service offering (ex.: small 8GB, medium 10GB,
> etc).
> - The virtual disk is grown to the size selected when launching the
> instance. Partition size inside is kept.
> - Cloud-init, inside the guest, resizes the partition on first boot, by
> using resize2fs. This is just a small command, so it could be done without
> cloud-init quite easily
>
> Is this currently possible to do with existing OpenNebula functionality?
>
> Thanks,
> Ricardo
>
> _______________________________________________
> Users mailing list
> Users at lists.opennebula.org
> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>
>
--
Jaime Melis
Project Engineer
OpenNebula - The Open Source Toolkit for Cloud Computing
www.OpenNebula.org | jmelis at opennebula.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.opennebula.org/pipermail/users-opennebula.org/attachments/20120925/848f2a10/attachment.htm>
More information about the Users
mailing list