On 06/01/2011 04:12 PM, Luiz Capitulino wrote:
Hi there,
There are people who want to use QMP for thin provisioning. That's, the VM is
started with a small storage and when a no space error is triggered, more space
is allocated and the VM is put to run again.
QMP has two limitations that prevent people from doing this today:
1. The BLOCK_IO_ERROR doesn't contain error information
2. Considering we solve item 1, we still have to provide a way for clients
to query why a VM stopped. This is needed because clients may miss the
BLOCK_IO_ERROR event or may connect to the VM while it's already stopped
A proposal to solve both problems follow.
A. BLOCK_IO_ERROR information
-----------------------------
We already have discussed this a lot, but didn't reach a consensus. My solution
is quite simple: to add a stringfied errno name to the BLOCK_IO_ERROR event,
for example (see the "reason" key):
{ "event": "BLOCK_IO_ERROR",
"data": { "device": "ide0-hd1",
"operation": "write",
"action": "stop",
"reason": "enospc", }
you can call the reason whatever you want, but don't call it stringfied
errno name :-)
In fact, just make reason "no space".