Hi Jaime, Great suggestion. And if I use virt-resize, it should even be easier as it resizes both the vdisk and the partitions inside:
http://libguestfs.org/virt-resize.1.html Regards, Ricardo From: jme...@opennebula.org Date: Tue, 25 Sep 2012 11:32:04 +0200 Subject: Re: [one-users] Set root disk size at runtime To: rjt...@hotmail.com CC: users@lists.opennebula.org 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 <rjt...@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@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 | jme...@opennebula.org
_______________________________________________ Users mailing list Users@lists.opennebula.org http://lists.opennebula.org/listinfo.cgi/users-opennebula.org