Hi, Daniel and Dan
Thank you for various comments.
Exactly. Libvirt is just a library and it is better to not keep states there.
The management states would be kept at end point server(eg. XenD, or QEMUD) or
an application. So I would like to think again.
On Thu, 19 Apr 2007 16:18:28 +0100 "Daniel P. Berrange" wrote:
If we ignore case B, I think we still have lots of interesting
combos to think about:
1. Static - change persistent config
2. Dynamic - change live VM config
3. Static and Dynamic - change persistent config, and live VM
4. Static or Dynamic - if domain is inactive, change persistent
config, if it is active, change live VM
With the virDomainSetMem/MaxMem/VCPUs we in fact implement 3/4 depending
on the backend, because until we switch to XenAPI, that's basically the
only option that is actually possible when talking to XenD.
So if you want to only change the persistent config, then you need to
redefine the entire domain XML file, using virDomainDefineXML() pasing
in the updated XML doc for the new inactive config. This lets you
indirectly do option 1.
Yes, that's a good idea. But I'm not sure how to change the presistent config
without that libvirt maintain persiste state. Could you tell me your thinking ?
Who has the XML file ?
If we did the API change described above, we could easily provide
the
--dynamic or --static flags, eg
virsh setmem foo 500 -> VIR_DOMAIN_SCOPE_CURRENT
virsh --static setmem foo 500 -> VIR_DOMAIN_SCOPE_STATIC
virsh --dynamic setmem foo 500 -> VIR_DOMAIN_SCOPE_DYNAMIC
virsh --static --dynamic setmem foo 500 -> VIR_DOMAIN_SCOPE_BOTH
That's a nice way.
There's some interesting questions / problems around error
handling when
ysing the 'BOTH' option - if changing static config succeeds, but
changing dynamic config fails, should the API completely fail or should
it succeed ? If it suceeds is there any way/need to inform caller that it
was unable to change the live config ?
Well, in that case, I think we should tell caller a warning.
And we should implement the command to confirm the next start information.
It may not even be possible to implement some of these different
SCOPE
flags depending on the backend being used. Could make it tricky for
apps using these APIs, but maybe that's OK as long as we get the error
reporting right ?
Yeah, I appreciate your suggestion.
Thanks,
Saori.