[Libvir] [RFC] Life-cycle Management of the domain
Saori Fukuta
fukuta.saori at jp.fujitsu.com
Tue Apr 17 05:38:26 UTC 2007
Hi,
What the following things boil down to is that
I hold file that formed in SXP for Life-cycle Management.
What do you think of my idea?
Thanks
Saori Fukuta
On Fri, 13 Apr 2007 16:26:37 +0900 Saori Fukuta wrote:
> Hi all,
>
> I've been thinking about a way to change the hardware allocation on the
> Life-cycle. And I have some idea. Can I hear your comments about this?
>
> 1. Necessity of function
> These are conceivable cases of changing hardware allocation.
>
> CASE A: Dynamic change
> change the allocation dynamically
> -> change the hardware allocation for now,
> and next time, start by the allocation before it changes.
> (example of use)
> At night, change the hardware allocation.
> Next morning rebooting, return it.
>
> CASE B: Static change
> change the allocation statically
> -> do not change the hardware allocation for now,
> but set the allocation for starting next.
> (example of use)
> Next time, want to start by the value that set before.
>
> CASE C: Permanent change
> change the allocation permanently
> -> change the hardware allocation,
> and start next time with the same setting.
> (example of use)
> want to start by same value permanently.
>
> The current situation of virsh command with Xen.
> CASE A / CASE B / CASE C
> virsh setmem x x o
> virsh setmaxmem x x o
> virsh setvcpus o x x
> virsh vcpupin o x x
>
> And I find that the value on Xenstore is used for starting the domain
> next time.
>
>
> 2. Change of command
> We need to add 3 options to the virsh command of changing allocation
> for CASE A, B, and C. So I propose the following options.
>
> option name
> --dynamic ... dynamic change option (default) for CASE A
> --static ... static change option for CASE B
> --perm ... permanent change option for CASE C
>
> If no option is specified, the Default option("--dynamic") will be chosen.
>
> (example)
> Example of changing the memory allocation 256MB to 512MB.
> # virsh dominfo Domain-A | grep "Used memory"
> Used memory: 256000 kB
>
> CASE A: Dynamic change
> # virsh setmem Domain-A 512000
> or
> # virsh setmem Domain-A 512000 --dynamic
>
> # virsh dominfo Domain-A | grep "Used memory"
> Used memory: 512000 kB
>
> CASE B: Static change
> # virsh setmem Domain-A 512000 --static
>
> # virsh dominfo Domain-A | grep "Used memory"
> Used memory: 256000 kB
>
> CASE C: Permanent change
> # virsh setmem Domain-A 512000 --perm
>
> # virsh dominfo Domain-A | grep "Used memory"
> Used memory: 512000 kB
>
> 3. Summary of the ways
> Xen does not provide these cases. So I propose that we start the domain
> by a file for libvirt.
>
> 3.1 When starting the domain first time,
> copy a file from config.sxp(/etc/xen config file) to virt.sxp(libvirt).
>
> (image)
> +--- Xend ---+ +-- libvirt --+
> +--------+ l config.sxp -------> virt.sxp l +--------+
> lDomain-Al +------------+ copy +-------------+ lDomain-Al
> lmem=256 l lmem=256 l
> +--------+ ----------------------------------> +--------+
> "virsh start Domain-A"
>
> 3.2 When starting the domain,
> if they have virt.sxp(libvirt) define that file.
>
> (image)
> Step.1 value of the domain before start.
>
> +--- Xend --------------------+
> l +-Xenstore-+ +-config.sxp-+ l
> before l l mem=256 l l mem=256 l l
> +--------+ l +----------+ +------------+ l
> lDomain-Al +-----------------------------+
> lmem=256 l
> +--------+ ---------------------------------> continue Step.2
>
> Step.2 define the value of virt.sxp.
>
> +--- Xend ---------------------+
> l +-Xenstore-+ +-config.sxp-+ l
> +----> mem=512 l -> mem=512 l l
> define l l +----------+ +------------+ l
> l +------------------------------+
> l
> +--- l --------+
> l +- l --------+
> before l l mem=512 l l
> +--------+ l +-virt.sxp-+ l
> lDomain-Al +--- libvirt --+
> lmem=256 l
> +--------+ ---------------------------------> continue Step.3
>
> Step.3 start the domain and copy a file from config.sxp to virt.sxp.
>
> +--- Xend ---------------------+
> l +-Xenstore-+ +-config.sxp-+ l
> l l mem=512 l l mem=512 l l
> l +--- l ----+ +----- l ----+ l
> +----- l ------------- l ------+
> l l +--- libvirt --+
> l l copy l +-virt.sxp-+ l
> l +-------------> mem=256 l l
> before l l +----------+ l
> +--------+ l start +--------+ +--------------+
> lDomain-Al +------------>lDomain-Al
> lmem=256 l lmem=512 l
> +--------+ -------------------> +--------+
> "virsh start Domain-A"
>
> 3.3 When changing the allocation statically or permanently,
> write the change into virt.sxp.
> (When changing the allocation dynamically, do nothing)
>
> CASE A: Dynamic change
> (image)
> +--- Xend --------------------+ ll next start
> l +-Xenstore-+ +-config.sxp-+ l ll
> l l mem=512 l l mem=512 l l ll
> l +----------+ +------------+ l ll
> +-----------------------------+ ll
> +--- libvirt --+ ll
> l +-virt.sxp-+ l ll
> before l l mem=256 l l after ll
> +--------+ l +----------+ l +--------+ ll +--------+
> lDomain-Al +--------------+ lDomain-Al ll lDomain-Al
> lmem=256 l lmem=512 l ll lmem=256 l
> +--------+ -------------------------------> +--------+ ll +--------+
> "virsh setmem Domain-A 512000" ll
>
> (state transition matrix)
> +-------------------------------------------------------------+
> operational procedure Xend libvirt
> Xenstore config.sxp virt.sxp
> +-------------------------------------------------------------+
> 1.start the domain mem=X, mem=X --->mem=X(create file)
> 2.change the allocation mem=Y, mem=Y mem=X(no change)
> mem X to Y dynamically
> 3.stop the domain mem=Y, mem=Y mem=X
> 4.start the domain <------- <-----------define value
> mem=X, mem=X --->mem=X(create file)
> 5.delete the domain del del delete file
> +-------------------------------------------------------------+
>
> CASE B: Static change
> (image)
> +--- Xend --------------------+ ll next start
> l +-Xenstore-+ +-config.sxp-+ l ll
> l l mem=256 l l mem=256 l l ll
> l +----------+ +------------+ l ll
> +-----------------------------+ ll
> +--- libvirt --+ ll
> l +-virt.sxp-+ l ll
> before l l mem=512 l l after ll
> +--------+ l +----------+ l +--------+ ll +--------+
> lDomain-Al +--------------+ lDomain-Al ll lDomain-Al
> lmem=256 l lmem=256 l ll lmem=512 l
> +--------+ -------------------------------> +--------+ ll +--------+
> "virsh setmem Domain-A 512000 --static" ll
>
> (state transition matrix)
> +-------------------------------------------------------------+
> operational procedure Xend libvirt
> Xenstore config.sxp virt.sxp
> +-------------------------------------------------------------+
> 1.start the domain mem=X, mem=X --->mem=X(create file)
> 2.change the allocation mem=X, mem=Y mem=Y(change to Y)
> mem X to Y statically
> 3.stop the domain mem=X, mem=X mem=Y
> 4.start the domain <------- <-----------define value
> mem=Y, mem=Y --->mem=Y(create file)
> 5.delete the domain del del delete file
> +-------------------------------------------------------------+
>
> CASE C: Permanent change
> (image)
> +--- Xend --------------------+ ll next start
> l +-Xenstore-+ +-config.sxp-+ l ll
> l l mem=512 l l mem=512 l l ll
> l +----------+ +------------+ l ll
> +-----------------------------+ ll
> +--- libvirt --+ ll
> l +-virt.sxp-+ l ll
> before l l mem=512 l l after ll
> +--------+ l +----------+ l +--------+ ll +--------+
> lDomain-Al +--------------+ lDomain-Al ll lDomain-Al
> lmem=256 l lmem=512 l ll lmem=512 l
> +--------+ -------------------------------> +--------+ ll +--------+
> "virsh setmem Domain-A 512000 --perm" ll
>
> (state transition matrix)
> +-------------------------------------------------------------+
> operational procedure Xend libvirt
> Xenstore config.sxp virt.sxp
> +-------------------------------------------------------------+
> 1.start the domain mem=X, mem=X --->mem=X(create file)
> 2.change the allocation mem=Y, mem=Y mem=Y(change to Y)
> mem X to Y permanently
> 3.stop the domain mem=Y, mem=Y mem=Y
> 4.start the domain <------- <-----------define value
> mem=Y, mem=Y --->mem=Y(create file)
> 5.delete the domain del del delete file
> +-------------------------------------------------------------+
>
> Thanks,
> Saori Fukuta
>
>
> --
> Libvir-list mailing list
> Libvir-list at redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list
More information about the libvir-list
mailing list