On Mar 16, 2012, at 7:57 PM, Justin Shepherd wrote:

> 
> 
> Sent from my iPad
> 
> On Mar 16, 2012, at 12:26, "Pádraig Brady" <p...@draigbrady.com> wrote:
> 
>> On 03/16/2012 04:11 PM, Jay Pipes wrote:
>>> Hi Stackers,
>>> 
>>> So, in diagnosing a few things on TryStack yesterday, I ran into an 
>>> interesting problem with snapshotting that I'm hoping to get some advice on.
>>> 
>>> == The Problem ==
>>> 
>> 
>>> QEMU was unhelpfully returning a vague error message of "error while 
>>> writing".
>> 

We ran into this problem in our Diablo deployment as well. It definitely needs 
a more informative error message.

>> 
>>> == Possible Solutions ==
>>> 
>>> So, there are a number of solutions that we can work on here, and I'm 
>>> wondering what the preference would be. Here are the solutions I have come 
>>> up with, along with a no-brainer improvement to Nova that would help in 
>>> diagnosing this problem:
>>> 
>>> The no-brainer: Detect before attempting a snapshot that there is enough 
>>> space on a device to perform the operation, and if not, throw a useful 
>>> error message up the stack
>> 
>> The space can change while writing, so you could still get the same error 
>> above.
>> 
>>> 
>>> Solutions to the disk space problem:
>>> 
>>> (1) Silly Jay, change the damn size of the root partition in your PXE base 
>>> OS install!
>>> 
>>> Now, I'm no expert in creating customized base disk images, but from 
>>> looking at the build_pxe_env.sh script in devstack [1], it seems pretty 
>>> trivial to change the ramdisk_size parameter in the startup options to 
>>> something larger than 2109600. We could do this and reimage the compute 
>>> nodes one by one.
>>> 
>>> (2) Make the location in which the snapshot is made configurable.
>>> 
>>> Right now, as mentioned above, tempfile.mkdtemp() is used, which creates a 
>>> directory in the user's TMPDIR (typically /tmp, which is usually on the 
>>> root partition).
>>> 
>>> We could add an option (--libvirt-snapshot-dir?) that would allow 
>>> nova-compute to override where that snapshot is built.
>>> 
>>> (3) Change the user (running nova-compute) TMPDIR setting to something 
>>> different than /tmp on the root partition).
>> 
>> I'd lean towards (3).
>> That's something that depends on the environment (as you've nicely 
>> demonstrated),
>> and also for security reasons the admin should be able to set TMPDIR.
>> That's the standard way to do it, and it works already (hopefully).
> 
> Actually I would argue that the best way to accomplish this would be option 
> #2. That way an admin/operator has control over the location. Not 
> manipulating this by messing around with a users environment variable.
> 



I agree with Pádraig that option #2 is a better way to go. I'd also recommend 
that it default to something under /var/lib/nova/instances, since that 
directory should generally be mounted a large partition by default.


Take care,

Lorin
--
Lorin Hochstein
Lead Architect - Cloud Services
Nimbis Services, Inc.
www.nimbisservices.com

_______________________________________________
Mailing list: https://launchpad.net/~openstack
Post to     : openstack@lists.launchpad.net
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to