ping ?
On 2016/9/1 11:24, zhanghailiang wrote:
This is the 19th version of COLO frame series.
According to the suggestion of Juan and Amit,
I dropped parts of the optimization patches to make it easier for review.
Besides, I discarded the network related patches since the development of
COLO proxy goes well, It is very likely to be merged in QEMU 2.8,
Please see [PATCH V12 02/10] colo-compare: introduce colo compare initialization
for more information. The original network related patches in this series are
to buffer the network packets till a checkpointing be successfully achieved,
just like Remus does in XEN, but these patches will be reverted in COLO compare
series. So here, it is unnecessary to add them.
You can still test this series like before. Or refer to docs/COLO-FT.txt.
It is based on 'Block replication' series which has been merged in Stefan's
branch https://github.com/stefanha/qemu/commits/block-next.
The complete codes can be found from the link:
https://github.com/coloft/qemu/commits/colo-v4.1-periodic-mode
Please review. Thanks ;)
TODO:
1. Checkpoint based on proxy in qemu
2. The capability of continuous FT
3. Optimize the VM's downtime during checkpoint
v19:
- Add documentation about COLO (patch 21)
- Dropped network related patches
- Fix parts of patches' title and comments
zhanghailiang (22):
migration: Introduce capability 'x-colo' to migration
COLO: migrate COLO related info to secondary node
migration: Enter into COLO mode after migration if COLO is enabled
migration: Switch to COLO process after finishing loadvm
COLO: Establish a new communicating path for COLO
COLO: Introduce checkpointing protocol
COLO: Add a new RunState RUN_STATE_COLO
COLO: Send PVM state to secondary side when do checkpoint
COLO: Load VMState into QIOChannelBuffer before restore it
COLO: Add checkpoint-delay parameter for migrate-set-parameters
COLO: Synchronize PVM's state to SVM periodically
COLO: Add 'x-colo-lost-heartbeat' command to trigger failover
COLO: Introduce state to record failover process
COLO: Implement the process of failover for primary VM
COLO: Implement failover work for secondary VM
COLO: Shutdown related socket fd while do failover
COLO: Don't do failover while loading VM's state
COLO: Handle shutdown command for VM in COLO state
COLO: Update the global runstate after going into colo state
COLO: Add block replication into colo process
docs: Add documentation for COLO feature
configure: Support enable/disable COLO feature
configure | 11 +
docs/COLO-FT.txt | 190 ++++++++++++
hmp-commands.hx | 15 +
hmp.c | 15 +
hmp.h | 1 +
include/migration/colo.h | 40 +++
include/migration/failover.h | 33 ++
include/migration/migration.h | 11 +
include/sysemu/sysemu.h | 3 +
migration/Makefile.objs | 2 +
migration/colo-comm.c | 72 +++++
migration/colo-failover.c | 84 +++++
migration/colo.c | 694 ++++++++++++++++++++++++++++++++++++++++++
migration/migration.c | 86 +++++-
migration/ram.c | 37 ++-
migration/trace-events | 6 +
qapi-schema.json | 88 +++++-
qmp-commands.hx | 24 +-
stubs/Makefile.objs | 1 +
stubs/migration-colo.c | 51 ++++
vl.c | 30 +-
21 files changed, 1468 insertions(+), 26 deletions(-)
create mode 100644 docs/COLO-FT.txt
create mode 100644 include/migration/colo.h
create mode 100644 include/migration/failover.h
create mode 100644 migration/colo-comm.c
create mode 100644 migration/colo-failover.c
create mode 100644 migration/colo.c
create mode 100644 stubs/migration-colo.c