Live migration compression ?

RolandK

Renowned Member
Mar 5, 2019
962
191
88
51
Can someone give some insight if proxmox is using any type of compression for live migration?

at least for the ram transfer, i know qemu has this feature - but it does not seem to be used (see info migrate_capabilities below)

https://git.lierfang.com/proxmox/mirror_qemu/-/blob/v9.0.0/docs/multi-thread-compression.txt

Use multiple thread (de)compression in live migration
Introduction
============
Instead of sending the guest memory directly, this solution will
compress the RAM page before sending; after receiving, the data will
be decompressed. Using compression in live migration can help
to reduce the data transferred about 60%, this is very useful when the
bandwidth is limited, and the total migration time can also be reduced
about 70% in a typical case. In addition to this, the VM downtime can be
reduced about 50%. The benefit depends on data's compressibility in VM.



# info migrate_capabilities
xbzrle: off
rdma-pin-all: off
auto-converge: off
zero-blocks: off
compress: off
events: off
postcopy-ram: off
x-colo: off
release-ram: off
block: off
return-path: off
pause-before-switchover: off
multifd: off
dirty-bitmaps: off
postcopy-blocktime: off
late-block-activate: off
x-ignore-shared: off
validate-uuid: off
background-snapshot: off
zero-copy-send: off
postcopy-preempt: off
switchover-ack: off
dirty-limit: off




regarding disk transfer i don't know if there is some feature in qemu, but at least i know it could dramatically speed up disk transfer across the network, i had opened a bugzilla for that longer time ago

https://bugzilla.proxmox.com/show_bug.cgi?id=4377
 
  • Like
Reactions: esi_y
This is desirable. Many of our base disks are 120GB images, but the OS is using 50, and when compressed on ZFS, 14 GB - so transfer compression for both Disks and/or Memory could be a considerable boost. Thanks for posting those links. I'll keep an eye on those.
 
Can someone give some insight if proxmox is using any type of compression for live migration?
The "old" method via SSH can use compression, yet this is the SSH compression that needs to be activated manually (via ssh_config), because it may slow down things in some setups and is therefore not activated. You can also play around with different hashing and encryption schemes to speed up migration speed, yet I haven't done that for years. A decade ago, the SSH transfer was limited by the CPU, so I needed to tweak SSH to archieve better live migration speed. That was all for memory only, because I used a "proper" shared storage. This was also limited to a single thread of our cpu, so you were CPU bound even more.

I don't know if the new QEMU / internal based setup is already live, yet it will be much faster.
 
  • Like
Reactions: Johannes S

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!