Wido,
Thanks, i will give it a try when I have a moment. Andrei ----- Original Message ----- From: "Wido den Hollander" <w...@widodh.nl> To: dev@cloudstack.apache.org Sent: Monday, 24 March, 2014 3:38:57 PM Subject: Re: ACS and KVM uses /tmp for volumes migration and templates On 03/24/2014 03:22 PM, Andrei Mikhailovsky wrote: > > Do you think I can apply the patch manually to the 4.3 branch? I would love > to try it with 4.3, but not too adventitious to upgrade my setup to 4.4 yet > )) > Yes! I just pushed a commit to the master branch: https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=commit;h=9763faf85e3f54ac84d5ca1d5ad6e89c7fcc87ee To build 4.3 $ git checkout 4.3 $ git cherry-pick 9763faf85e3f54ac84d5ca1d5ad6e89c7fcc87ee $ dpkg-buildpackage Now you only have to update the cloudstack-agent package on the hypervisors. Wido > > Andrei > ----- Original Message ----- > > From: "Wido den Hollander" <w...@widodh.nl> > To: dev@cloudstack.apache.org > Sent: Monday, 24 March, 2014 12:29:36 PM > Subject: Re: ACS and KVM uses /tmp for volumes migration and templates > > On 03/23/2014 08:01 PM, Andrei Mikhailovsky wrote: >> Wido, >> >> Could you please let me know when you've done this so I could try it out. >> Would it be a part of the 4.3 branch or 4.4? >> > > I'll do that. It will go into master which is 4.4 and I'm not sure if > this will be backported to 4.3.1 > > Wido > >> Thanks >> ----- Original Message ----- >> >> From: "Wido den Hollander" <w...@widodh.nl> >> To: dev@cloudstack.apache.org >> Sent: Sunday, 23 March, 2014 3:56:44 PM >> Subject: Re: ACS and KVM uses /tmp for volumes migration and templates >> >> >> >> On 03/21/2014 02:23 PM, Andrei Mikhailovsky wrote: >>> >>> Wido, >>> >>> >>> i would be happy to try the custom ACS build unless 4.3 comes out soon. It >>> has been overdue for sometime now )). Has this feature been addressed in >>> the 4.3 release? >>> >> >> No, it hasn't been fixed yet. I have to admit, I forgot about this until >> you sent this e-mail to the list. >> >> I'll fix this in master later this week. >> >>> >>> I can leave with this feature for the time being, but i do see a longer >>> term issue when my volumes become large as i've only got about 100gb free >>> space on my host servers. >>> >>> >> >> I fully agree. While writing this code I was aware of this. See my >> comments in the code: >> https://git-wip-us.apache.org/repos/asf?p=cloudstack.git;a=blob;f=plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/LibvirtStorageAdaptor.java;h=5de8bd26ae201187f5db5fd16b7e3ca157cab53a;hb=master#l1087 >> >> >>> From what i can tell by looking at the rbd ls -l info all of my volumes are >>> done in Format 2 >>> >> >> Correct, because I by-pass libvirt and Qemu at some places right now. >> >>> >>> Cheers, >>> >>> >>> Andrei >>> >>> >>> >>> >>> ----- Original Message ----- >>> >>> From: "Wido den Hollander" <w...@widodh.nl> >>> To: dev@cloudstack.apache.org >>> Sent: Thursday, 20 March, 2014 9:40:29 AM >>> Subject: Re: ACS and KVM uses /tmp for volumes migration and templates >>> >>> On 03/20/2014 12:59 AM, Andrei Mikhailovsky wrote: >>>> Hi guys, >>>> >>>> I was wondering if this is a bug? >>>> >>> >>> No, it's a "feature". >>> >>>> I've noticed that during volume migration from NFS to RBD primary storage >>>> the volume image is first copied to /tmp and only then to the RBD storage. >>>> This seems silly to me as one would expect a typical volume to be larger >>>> than the host's hard disk. Also, it is a common practice to use tmpfs as >>>> /tmp for performance reasons. Thus, a typical host server will have far >>>> smaller /tmp folder than the size of an average volume. As a result, >>>> volume migration would break after filling the /tmp and could probably >>>> cause a bunch of issue for the KVM host itself as well as any vms running >>>> on the server. >>>> >>> >>> Correct. The problem was that RBD images know two formats. Format 1 >>> (old/legacy) and format 2. >>> >>> In order to perform cloning images should be in RBD format 2. >>> >>> When running qemu-img convert with a RBD image as a destination qemu-img >>> will create a RBD image in format 1. >>> >>> That's due to this piece of code in block/rbd.c in Qemu: >>> >>> ret = rbd_create(io_ctx, name, bytes, &obj_order); >>> >>> rbd_create() creates images in format 1. To use format 2 you should use >>> rbd_create2() or rbd_create3(). >>> >>> With RBD format 1 we can't do snapshotting or cloning, which we require >>> in ACS. >>> >>> So I had to do a intermediate step where I first wrote the RAW image >>> somewhere and afterwards write it to RBD. >>> >>> After some discussion a config option has been added to Ceph: >>> >>> OPTION(rbd_default_format, OPT_INT, 1) >>> >>> This allows me to do this: >>> >>> qemu-img convert .. -O raw .. rbd:rbd/myimage:rbd_default_format=2 >>> >>> This causes librbd/RBD to create a format 2 image and we can skip the >>> convert step to /tmp. >>> >>> This option is available since Ceph Dumpling 0.67.5 and was not >>> available when ACS 4.2 was written. >>> >>> I'm going to make changes in master which skip the step with /tmp. >>> >>> Technically this can be backported to 4.2, but then you would have to >>> run your own homebrew version of 4.2 >>> >>>> It also seems that the /tmp is temporarily used during a template creation >>>> . >>>> >>> >>> Same story as above. >>> >>>> My setup: >>>> >>>> ACS 4.2.1 >>>> Ubuntu 12.04 with KVM >>>> RBD + NFS for Primary storage >>>> NFS for Staging and Secondary storage >>>> >>>> >>>> Thanks >>>> >>>> Andrei >>>> >>> >>> >>> >> >> > > >