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? 

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