[libvirt] [Patch v2 0/2] Add new feature into live migration

Wen Congyang wency at cn.fujitsu.com
Wed Dec 15 02:34:20 UTC 2010


If the memory of guest OS is changed constantly, the live migration
can not be ended ever for ever.

We can use the command 'virsh migrate-setmaxdowntime' to control the
live migration. But the value of maxdowntime is diffcult to calculate
because it depends on the transfer speed of network and constantly 
changing memroy size. We need a easy way to control the live migration.

This patch set add the support of auto cold migration fallback on
timeout. With this patch set, when we migrate the guest OS, we can
specify a timeout. If the live migration timeouts, the migration will
fallback to cold migration.

Test of this patchset on Linux:
  Env:
    a. The size of guest OS's memory: 1GB
    b. The transfer speed of network: about 100Mb/s
    c. The size of constantly changing memory: more than 900MB

  1. migrate without timeout
  # virsh migrate --live RHEL6RC qemu+ssh://<dest IP>/system tcp://<dest IP>:49152
  The migration does not end after 12 hours.

  2. migrate with timeout(30 minutes):
  # date
  Wed Dec 15 09:39:23 CST 2010
  # virsh migrate --live --timeout 1800 RHEL6RC qemu+ssh://<dest IP>/system tcp:<dest IP>:49152
  # date
  Wed Dec 15 10:09:52 CST 2010

This patchset is not tested on Windows(I have no such environment).

v2:
- implemente timer for Windows
- implemente dynamic timers

Wen Congyang (2):
  timer impl
  auto cold migration fallback at timeout

 configure.ac             |    4 +
 src/Makefile.am          |    6 +-
 src/libvirt.c            |    2 +
 src/libvirt_private.syms |    6 ++
 src/util/timer.c         |  166 ++++++++++++++++++++++++++++++++++++++++++++++
 src/util/timer.h         |   37 ++++++++++
 src/util/timer_linux.c   |  130 ++++++++++++++++++++++++++++++++++++
 src/util/timer_win32.c   |  128 +++++++++++++++++++++++++++++++++++
 tools/virsh.c            |   53 +++++++++++++++
 9 files changed, 530 insertions(+), 2 deletions(-)
 create mode 100644 src/util/timer.c
 create mode 100644 src/util/timer.h
 create mode 100644 src/util/timer_linux.c
 create mode 100644 src/util/timer_win32.c




More information about the libvir-list mailing list