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 )) 


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 
>>> 
>> 
>> 
>> 
> 
> 


Reply via email to