[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH COLO-Frame v10 09/38] COLO: Implement colo check
From: |
Eric Blake |
Subject: |
Re: [Qemu-devel] [PATCH COLO-Frame v10 09/38] COLO: Implement colo checkpoint protocol |
Date: |
Fri, 13 Nov 2015 09:46:00 -0700 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0 |
On 11/03/2015 04:56 AM, zhanghailiang wrote:
> We need communications protocol of user-defined to control the checkpoint
> process.
>
> The new checkpoint request is started by Primary VM, and the interactive
> process
> like below:
> Checkpoint synchronizing points,
>
> Primary Secondary
> 'checkpoint-request' @ ----------------------------->
> Suspend (In hybrid
> mode)
> 'checkpoint-reply' <------------------------------ @
> Suspend&Save state
> 'vmstate-send' @ ----------------------------->
> Send state Receive state
> 'vmstate-received' <------------------------------ @
> Release packets Load state
> 'vmstate-load' <------------------------------ @
> Resume Resume (In hybrid mode)
>
> Start Comparing (In hybrid mode)
> NOTE:
> 1) '@' who sends the message
> 2) Every sync-point is synchronized by two sides with only
> one handshake(single direction) for low-latency.
> If more strict synchronization is required, a opposite direction
> sync-point should be added.
> 3) Since sync-points are single direction, the remote side may
> go forward a lot when this side just receives the sync-point.
> 4) For now, we only support 'periodic' checkpoint, for which
> the Secondary VM is not running, later we will support 'hybrid' mode.
>
> Signed-off-by: zhanghailiang <address@hidden>
> Signed-off-by: Li Zhijian <address@hidden>
> Signed-off-by: Gonglei <address@hidden>
> Cc: Eric Blake <address@hidden>
> ---
> v10:
> - Rename enum COLOCmd to COLOCommand (Eric's suggestion).
> - Remove unused 'ram-steal'
Interface review only:
> +++ b/qapi-schema.json
> @@ -702,6 +702,33 @@
> '*tls-port': 'int', '*cert-subject': 'str' } }
>
> ##
> +# @COLOCommand
> +#
> +# The colo command
Still might be nice to spell out what COLO means here, but it's fairly
obvious this will be related to anything else COLO, so I'm not too worried.
> +#
> +# @invalid: unknown command
> +#
> +# @checkpoint-ready: SVM is ready for checkpointing
> +#
> +# @checkpoint-request: PVM tells SVM to prepare for new checkpointing
> +#
> +# @checkpoint-reply: SVM gets PVM's checkpoint request
> +#
> +# @vmstate-send: VM's state will be sent by PVM.
> +#
> +# @vmstate-size: The total size of VMstate.
> +#
> +# @vmstate-received: VM's state has been received by SVM
> +#
> +# @vmstate-loaded: VM's state has been loaded by SVM
> +#
> +# Since: 2.5
Will need a tweak to say 2.6. Otherwise looks okay.
> +##
> +{ 'enum': 'COLOCommand',
> + 'data': [ 'invalid', 'checkpoint-ready', 'checkpoint-request',
> + 'checkpoint-reply', 'vmstate-send', 'vmstate-size',
> + 'vmstate-received', 'vmstate-loaded' ] }
> +
--
Eric Blake eblake redhat com +1-919-301-3266
Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
- Re: [Qemu-devel] [PATCH COLO-Frame v10 17/38] COLO: synchronize PVM's state to SVM periodically, (continued)
[Qemu-devel] [PATCH COLO-Frame v10 01/38] configure: Add parameter for configure to enable/disable COLO support, zhanghailiang, 2015/11/03
[Qemu-devel] [PATCH COLO-Frame v10 04/38] migration: Add state records for migration incoming, zhanghailiang, 2015/11/03
[Qemu-devel] [PATCH COLO-Frame v10 09/38] COLO: Implement colo checkpoint protocol, zhanghailiang, 2015/11/03
Re: [Qemu-devel] [PATCH COLO-Frame v10 09/38] COLO: Implement colo checkpoint protocol,
Eric Blake <=
[Qemu-devel] [PATCH COLO-Frame v10 10/38] COLO: Add a new RunState RUN_STATE_COLO, zhanghailiang, 2015/11/03
[Qemu-devel] [PATCH COLO-Frame v10 12/38] COLO: Save PVM state to secondary side when do checkpoint, zhanghailiang, 2015/11/03