this patch series attempts to reduce the downtime occuring during
live-migration of VMs to sane levels by
- conditionalizing potentially unneeded SSH connections
- replacing commands over SSH with new 'qm mtunnel' commands
- reducing the polling interval to notice a completed migration faster

attempts to monitor down time via ping produced rather unreliable results,
probably cause of ARP? but old to old is reliable slowest there too..

following are durations in 'paused' state, between 'paused inmigrate' and
'running', measured with qmp status with 0.1 sleep inbetween, tests repeated 5
times each on a network-rate-limited virtual cluster.

with old polling, 2G RAM (actual RAM transfer in <2s, so no auto-reduction of
polling interval happens):

old code: average 3.2s
new to old: average 1.6s (skips pvesr set-state)
new to new: average 1.2s

with old polling, 8G RAM (auto-reduction of polling interval kicks in, slightly 
better results):

old code: average 2.7s
new to old: 1s
new to new: 0.7s

with reduced polling interval (last patch applied), 2G and 8G RAM:
new to old: 0.4s
new to new: one single instance of logged paused state over 5 migrations!

with reduced polling interval, 8G RAM, old code but with last patch applied:
2s

so it seems like this is the right combination of changes to get downtime back
to acceptable levels without sacrificing consistency.

commands which might be integrated into mtunnel as well in the future:
-pvesr set-state
-qm nbdstop
-qm unlock

Fabian Grünbichler (10):
  migrate: switch back to qm mtunnel
  migrate: refactor mtunnel read/write
  qm mtunnel: add tunnel version
  migrate: read mtunnel version
  qm mtunnel: add write helper
  mtunnel: add and handle OK/ERR replies
  qm mtunnel/migrate: add resume VMID command
  migrate: finish tunnel in phase 3
  migrate: keep track of replication
  migrate: reduce polling intervals

 PVE/CLI/qm.pm      |  28 ++++++++++--
 PVE/QemuMigrate.pm | 126 ++++++++++++++++++++++++++++++++++++++---------------
 2 files changed, 116 insertions(+), 38 deletions(-)

-- 
2.11.0


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to