Proxmox VE 6.1でVMのマイグレーションを試す

Proxmox VE 6.1でVMのマイグレーションを試した記録

最初に

Proxmoxはライブマイグレーションも無料で利用可能ということで
ベンチ用VMが残っている間に動作を確認したいと思います
ESXiではライセンスが必要になる機能なのですごくありがたい仕様です

簡単に言えばVMを起動したままProxmoxクラスタ間でノード移動させる機能で
ダウンタイムなしで移動可能なのでDBやメールサーバなど
ダウンさせたくないVMが動作しているノードをメンテナンスする際に
便利な機能となります

ちなみにダウンタイムなしとは表記しているものの厳密に言えば
ESXiと同様に切り替え時にミリ秒単位でダウンタイム発生はしています
とはいえ処理が途中で切れたり、セッションが切れたりはしないので
ほとんどのソフトではダウンタイムなしと表記されます

Proxmoxでマイグレーションを利用する為には
両ノードが同一クラスタで構成されているのと
ノード間で共有しているストレージが必要になりますが
今回は速度計測記事の環境が残っているのでCeph/RBDを利用しました
他にもiscsi・nfs・cifsなどが対応しています

速度計測の環境と同じなのでクラスタネットワークはGbEです

CentOS7のVMを別ノードに移動させる

まずはCentOS7のVMをpve01からpve02へ移動させることにします

ライブマイグレーション前の状態

pve01
メモリ消費は2.33GiB

pve02
メモリ消費は1.93GiB

pve01上のCentOS7-VM
メモリは2GB割り当て

CentOS7-VMはメモリ2GBで設定されていますが
VM画面の通りまだ300MB程度しか使っていないので
pve01全体のメモリ消費でも300MB程度しか消費されていません

VMを起動しているだけだと移行できているか確認できないので
コマンドを入力最中の状態でマイグレーションしてみました
(test cmdと入力している途中の状態です)

ライブマイグレーション開始

VM画面の右上にある「マイグレート」ボタンを選択します
あとはどのノードに移動させるかを選択してから
「マイグレート」ボタンを選択すると即実行されます

マイグレーション作業の様子がこちら
TASK OKと最後に出ていればOK

2020-02-15 03:20:07 starting migration of VM 100 to node 'pve02' (192.168.0.12)
2020-02-15 03:20:07 starting VM 100 on remote node 'pve02'
2020-02-15 03:20:08 start remote tunnel
2020-02-15 03:20:09 ssh tunnel ver 1
2020-02-15 03:20:09 starting online/live migration on unix:/run/qemu-server/100.migrate
2020-02-15 03:20:09 migrate_set_speed: 8589934592
2020-02-15 03:20:09 migrate_set_downtime: 0.1
2020-02-15 03:20:09 set migration_caps
2020-02-15 03:20:09 set cachesize: 268435456
2020-02-15 03:20:09 start migrate command to unix:/run/qemu-server/100.migrate
2020-02-15 03:20:10 migration status: active (transferred 117908781, remaining 230031360), total 2165121024)
2020-02-15 03:20:10 migration xbzrle cachesize: 268435456 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:20:11 migration status: active (transferred 235648391, remaining 99565568), total 2165121024)
2020-02-15 03:20:11 migration xbzrle cachesize: 268435456 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:20:12 migration speed: 682.67 MB/s - downtime 35 ms
2020-02-15 03:20:12 migration status: completed
2020-02-15 03:20:14 migration finished successfully (duration 00:00:07)
TASK OK

ログの中身を見ればわかる通りメモリ内容をクラスタネットワークで転送しているだけです
今回の所要時間は7秒でダウンタイムは35ms

ライブマイグレーション後の状態

左メニューでpve02ノードで移動しているのがわかると思います
コンソール上では入力途中だったtest cmdがそのまま残っています

pve01
メモリ消費は1.96GiB

pve02
メモリ消費は2.31GiB

pve02上のCentOS7-VM

このように簡単な手順でマイグレーション可能
処理内容としては主にメモリ内容を転送してVM登録・削除をしているだけなので
CPU負荷も気にしなくても大丈夫です

サーバ側で消費されていたVM分のメモリも移動させるとちゃんと解放されていますし
VM画面のIPsで確認できる通りVMに割り当てられているIPも維持されています

Windows10のVMを別ノードに移動させる

次はWindows10のVMをpve02からpve01へ移動させることにします

ライブマイグレーション前の状態

pve01
メモリ消費は2.48GiB

pve02
メモリ消費は10.54GiB

pve02上のWindows10-VM
メモリは8GB割り当て

今回の検証用に画面の状態はCrystalDiskMarkとメモ帳を起動して
メモ帳には保存していない文字列test textと入力した状態で検証します

ライブマイグレーション開始

手順はCentOS7-VMと同じでVM画面の右上にある「マイグレート」ボタンを選択

マイグレーション作業の様子がこちら
TASK OKと最後に出ていればOK

2020-02-15 03:30:01 starting migration of VM 101 to node 'pve01' (192.168.0.11)
2020-02-15 03:30:01 starting VM 101 on remote node 'pve01'
2020-02-15 03:30:02 start remote tunnel
2020-02-15 03:30:03 ssh tunnel ver 1
2020-02-15 03:30:03 starting online/live migration on unix:/run/qemu-server/101.migrate
2020-02-15 03:30:03 migrate_set_speed: 8589934592
2020-02-15 03:30:03 migrate_set_downtime: 0.1
2020-02-15 03:30:03 set migration_caps
2020-02-15 03:30:03 set cachesize: 1073741824
2020-02-15 03:30:03 start migrate command to unix:/run/qemu-server/101.migrate
2020-02-15 03:30:04 migration status: active (transferred 94301520, remaining 5360279552), total 8607588352)
2020-02-15 03:30:04 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:05 migration status: active (transferred 211978426, remaining 5200580608), total 8607588352)
2020-02-15 03:30:05 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:06 migration status: active (transferred 329685843, remaining 5056811008), total 8607588352)
2020-02-15 03:30:06 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:07 migration status: active (transferred 447424427, remaining 4917493760), total 8607588352)
2020-02-15 03:30:07 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:08 migration status: active (transferred 565159158, remaining 4768751616), total 8607588352)
2020-02-15 03:30:08 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:09 migration status: active (transferred 682897094, remaining 4620410880), total 8607588352)
2020-02-15 03:30:09 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:10 migration status: active (transferred 800640852, remaining 4420968448), total 8607588352)
2020-02-15 03:30:10 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:11 migration status: active (transferred 918028490, remaining 4240093184), total 8607588352)
2020-02-15 03:30:11 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:12 migration status: active (transferred 1035689665, remaining 3986911232), total 8607588352)
2020-02-15 03:30:12 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:13 migration status: active (transferred 1153582041, remaining 3768283136), total 8607588352)
2020-02-15 03:30:13 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:14 migration status: active (transferred 1271433278, remaining 3585150976), total 8607588352)
2020-02-15 03:30:14 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:15 migration status: active (transferred 1389103011, remaining 3389579264), total 8607588352)
2020-02-15 03:30:15 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:16 migration status: active (transferred 1506930740, remaining 3228327936), total 8607588352)
2020-02-15 03:30:16 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:17 migration status: active (transferred 1624580539, remaining 3079098368), total 8607588352)
2020-02-15 03:30:17 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:18 migration status: active (transferred 1742337761, remaining 2871664640), total 8607588352)
2020-02-15 03:30:18 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:19 migration status: active (transferred 1859847664, remaining 2711556096), total 8607588352)
2020-02-15 03:30:19 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:20 migration status: active (transferred 1977518001, remaining 2534342656), total 8607588352)
2020-02-15 03:30:20 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:21 migration status: active (transferred 2095398964, remaining 2369368064), total 8607588352)
2020-02-15 03:30:21 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:22 migration status: active (transferred 2213000406, remaining 2212327424), total 8607588352)
2020-02-15 03:30:22 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:23 migration status: active (transferred 2330846117, remaining 2050347008), total 8607588352)
2020-02-15 03:30:23 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:24 migration status: active (transferred 2441359024, remaining 872042496), total 8607588352)
2020-02-15 03:30:24 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:25 migration status: active (transferred 2555627865, remaining 49344512), total 8607588352)
2020-02-15 03:30:25 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:25 migration status: active (transferred 2567586937, remaining 37408768), total 8607588352)
2020-02-15 03:30:25 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:25 migration status: active (transferred 2579546009, remaining 25473024), total 8607588352)
2020-02-15 03:30:25 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 03:30:25 migration status: active (transferred 2591326877, remaining 143491072), total 8607588352)
2020-02-15 03:30:25 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 72 overflow 0
2020-02-15 03:30:25 migration status: active (transferred 2603312265, remaining 130760704), total 8607588352)
2020-02-15 03:30:25 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 2992 overflow 0
2020-02-15 03:30:25 migration status: active (transferred 2615252195, remaining 118214656), total 8607588352)
2020-02-15 03:30:25 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 5901 overflow 0
2020-02-15 03:30:25 migration status: active (transferred 2627159085, remaining 105799680), total 8607588352)
2020-02-15 03:30:25 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 8802 overflow 0
2020-02-15 03:30:25 migration status: active (transferred 2639050747, remaining 92860416), total 8607588352)
2020-02-15 03:30:25 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 11699 overflow 0
2020-02-15 03:30:25 migration status: active (transferred 2650857350, remaining 79495168), total 8607588352)
2020-02-15 03:30:25 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 14575 overflow 0
2020-02-15 03:30:25 migration status: active (transferred 2662813993, remaining 66793472), total 8607588352)
2020-02-15 03:30:25 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 17488 overflow 0
2020-02-15 03:30:26 migration status: active (transferred 2674914193, remaining 54001664), total 8607588352)
2020-02-15 03:30:26 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 20436 overflow 0
2020-02-15 03:30:26 migration status: active (transferred 2686838489, remaining 41119744), total 8607588352)
2020-02-15 03:30:26 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 23341 overflow 0
2020-02-15 03:30:26 migration status: active (transferred 2698752840, remaining 29036544), total 8607588352)
2020-02-15 03:30:26 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 26244 overflow 0
2020-02-15 03:30:26 migration status: active (transferred 2710683184, remaining 17129472), total 8607588352)
2020-02-15 03:30:26 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 29151 overflow 0
2020-02-15 03:30:26 migration status: active (transferred 2722609424, remaining 65122304), total 8607588352)
2020-02-15 03:30:26 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 32057 overflow 0
2020-02-15 03:30:26 migration status: active (transferred 2734628108, remaining 49229824), total 8607588352)
2020-02-15 03:30:26 migration xbzrle cachesize: 1073741824 transferred 46736 pages 513 cachemiss 34974 overflow 0
2020-02-15 03:30:26 migration status: active (transferred 2746566036, remaining 34299904), total 8607588352)
2020-02-15 03:30:26 migration xbzrle cachesize: 1073741824 transferred 66254 pages 825 cachemiss 37878 overflow 0
2020-02-15 03:30:26 migration status: active (transferred 2758367025, remaining 95420416), total 8607588352)
2020-02-15 03:30:26 migration xbzrle cachesize: 1073741824 transferred 345529 pages 4277 cachemiss 40682 overflow 1
2020-02-15 03:30:26 migration status: active (transferred 2770266532, remaining 55263232), total 8607588352)
2020-02-15 03:30:26 migration xbzrle cachesize: 1073741824 transferred 519325 pages 5119 cachemiss 43493 overflow 36
2020-02-15 03:30:27 migration status: active (transferred 2782197928, remaining 29818880), total 8607588352)
2020-02-15 03:30:27 migration xbzrle cachesize: 1073741824 transferred 672808 pages 6032 cachemiss 46323 overflow 70
2020-02-15 03:30:27 migration speed: 341.33 MB/s - downtime 42 ms
2020-02-15 03:30:27 migration status: completed
2020-02-15 03:30:29 migration finished successfully (duration 00:00:28)
TASK OK

今回の所要時間は28秒でダウンタイムは42ms
CentOS7のVMと違ってメモリが8GB分あったのと転送速度が出ていなかった影響で
少し時間がかかりましたが大事なダウンタイムはほぼ一緒なことから
ノード切替処理のみでメモリ容量に関係しないことが確認できます

ライブマイグレーション後の状態

pve01
メモリ消費は5.94GiB

pve02
メモリ消費は2.49GiB

pve01上のWindows10-VM

VMのコンソール画面はもちろん作業内容を維持しています

今回はマイグレーション時にVMのメモリが一部解放されたようで
マイグレーション後はメモリ消費が減っていました

VMがオフライン状態でマイグレーションを使う

ライブマイグレーションはVMを起動したまま移動させる機能ですが
シンプルにVMがオフラインな状態でもマイグレーションはもちろん可能
コールドマイグレーションと言われる作業になります

先ほど案内した右上の「マイグレート」ボタンと効果は同じですが
今回は左メニューの右クリックからマイグレートを選択

モードがオフラインになっているのが確認できます

マイグレーション処理が開始されますが
メモリ内容を転送する必要がないのですぐ終わります

2020-02-15 03:36:59 starting migration of VM 101 to node 'pve02' (192.168.0.12)
2020-02-15 03:37:00 migration finished successfully (duration 00:00:01)
TASK OK

今回の所要時間は1秒

VM101はWindows10のVMでCentOS7のVMの場合はこちらのログになります

2020-02-15 03:39:00 starting migration of VM 100 to node 'pve01' (192.168.0.11)
2020-02-15 03:39:01 migration finished successfully (duration 00:00:01)
TASK OK

当然ながらこちらも所要時間は1秒

マイグレーションの所要時間について

切替自体は一瞬で完了するので
大きく影響するのはメモリ内容の転送時間になります

クラスタネットワークを利用するので10GbEであればもっと高速なのは当然ですが
マイグレーション処理のログにある通りマイグレーションでメモリを転送するファイルは
/run/qemu-server/101.migrateなどが使用されています

このファイルパスはProxmoxのOSがインストールされているディスク内の話なので
ProxmoxOSのインストール先ディスクの速度も転送時間に影響する可能性があります

ちなみに今回のProxmoxOSインストール先はSSDです

今回は検証してませんが
VMで消費しているメモリ量が多ければ多いほど転送サイズが大きくなるので
OS部分「HDスペース(root)」の空き容量が必要な可能性があります

VMのデータは共有ストレージにある必要があるので
マイグレーション処理ではデータ移動が不要な為、Ceph/RBDの速度には影響しません

先ほど検証したライブマイグレーションはSSDのみで構築したCeph/RBDを使っていましたが
HDDのみで構築したCeph/RBDの結果がこちら

CentOS7-VM

2020-02-15 04:59:00 starting migration of VM 100 to node 'pve02' (192.168.0.12)
2020-02-15 04:59:00 starting VM 100 on remote node 'pve02'
2020-02-15 04:59:01 start remote tunnel
2020-02-15 04:59:02 ssh tunnel ver 1
2020-02-15 04:59:02 starting online/live migration on unix:/run/qemu-server/100.migrate
2020-02-15 04:59:02 migrate_set_speed: 8589934592
2020-02-15 04:59:02 migrate_set_downtime: 0.1
2020-02-15 04:59:02 set migration_caps
2020-02-15 04:59:02 set cachesize: 268435456
2020-02-15 04:59:02 start migrate command to unix:/run/qemu-server/100.migrate
2020-02-15 04:59:03 migration status: active (transferred 118758022, remaining 233041920), total 2165121024)
2020-02-15 04:59:03 migration xbzrle cachesize: 268435456 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 04:59:04 migration status: active (transferred 236598421, remaining 103301120), total 2165121024)
2020-02-15 04:59:04 migration xbzrle cachesize: 268435456 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 04:59:05 migration speed: 682.67 MB/s - downtime 20 ms
2020-02-15 04:59:05 migration status: completed
2020-02-15 04:59:07 migration finished successfully (duration 00:00:07)
TASK OK

所要時間は7秒でダウンタイムは20ms

Windows10-VM

2020-02-15 05:03:30 starting migration of VM 101 to node 'pve01' (192.168.0.11)
2020-02-15 05:03:30 starting VM 101 on remote node 'pve01'
2020-02-15 05:03:31 start remote tunnel
2020-02-15 05:03:32 ssh tunnel ver 1
2020-02-15 05:03:32 starting online/live migration on unix:/run/qemu-server/101.migrate
2020-02-15 05:03:32 migrate_set_speed: 8589934592
2020-02-15 05:03:32 migrate_set_downtime: 0.1
2020-02-15 05:03:32 set migration_caps
2020-02-15 05:03:32 set cachesize: 1073741824
2020-02-15 05:03:32 start migrate command to unix:/run/qemu-server/101.migrate
2020-02-15 05:03:33 migration status: active (transferred 94078473, remaining 5310832640), total 8607588352)
2020-02-15 05:03:33 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:34 migration status: active (transferred 211713646, remaining 5112352768), total 8607588352)
2020-02-15 05:03:34 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:35 migration status: active (transferred 329396925, remaining 4940431360), total 8607588352)
2020-02-15 05:03:35 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:36 migration status: active (transferred 447275819, remaining 4772667392), total 8607588352)
2020-02-15 05:03:36 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:37 migration status: active (transferred 565095178, remaining 4561170432), total 8607588352)
2020-02-15 05:03:37 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:38 migration status: active (transferred 682653230, remaining 4343750656), total 8607588352)
2020-02-15 05:03:38 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:39 migration status: active (transferred 800453509, remaining 3980668928), total 8607588352)
2020-02-15 05:03:39 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:40 migration status: active (transferred 918063221, remaining 3450859520), total 8607588352)
2020-02-15 05:03:40 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:41 migration status: active (transferred 1035812776, remaining 3176091648), total 8607588352)
2020-02-15 05:03:41 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:42 migration status: active (transferred 1153580807, remaining 2896646144), total 8607588352)
2020-02-15 05:03:42 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:43 migration status: active (transferred 1271194336, remaining 2612965376), total 8607588352)
2020-02-15 05:03:43 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:44 migration status: active (transferred 1389016151, remaining 2353770496), total 8607588352)
2020-02-15 05:03:44 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:45 migration status: active (transferred 1506815530, remaining 2091737088), total 8607588352)
2020-02-15 05:03:45 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:46 migration status: active (transferred 1613893551, remaining 134049792), total 8607588352)
2020-02-15 05:03:46 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:47 migration status: active (transferred 1731468285, remaining 15265792), total 8607588352)
2020-02-15 05:03:47 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:03:47 migration status: active (transferred 1743430113, remaining 69423104), total 8607588352)
2020-02-15 05:03:47 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 2603 overflow 0
2020-02-15 05:03:47 migration status: active (transferred 1755344230, remaining 57446400), total 8607588352)
2020-02-15 05:03:47 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 5506 overflow 0
2020-02-15 05:03:47 migration status: active (transferred 1767258779, remaining 45273088), total 8607588352)
2020-02-15 05:03:47 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 8409 overflow 0
2020-02-15 05:03:47 migration status: active (transferred 1779173238, remaining 33140736), total 8607588352)
2020-02-15 05:03:47 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 11312 overflow 0
2020-02-15 05:03:47 migration status: active (transferred 1791119998, remaining 21217280), total 8607588352)
2020-02-15 05:03:47 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 14223 overflow 0
2020-02-15 05:03:47 migration status: active (transferred 1803050342, remaining 13004800), total 8607588352)
2020-02-15 05:03:47 migration xbzrle cachesize: 1073741824 transferred 0 pages 0 cachemiss 17130 overflow 0
2020-02-15 05:03:47 migration speed: 546.13 MB/s - downtime 68 ms
2020-02-15 05:03:47 migration status: completed
2020-02-15 05:03:50 migration finished successfully (duration 00:00:20)
TASK OK

所要時間は20秒でダウンタイムは68ms

このように共有ストレージの速度は影響なし

ダウンタイムの検証

記事の冒頭でも触れましたがProxmoxに関わらずESXiなども同様に
ライブマイグレーション機能は表記上「ダウンタイムなし」

しかし厳密には最後の切替処理時にミリ秒単位でダウンタイムが発生していて
現に先ほどの検証結果でも20~68msの範囲でダウンタイムが確認済

ダウンタイムなしと記載するのはダウンタイムが実際のVMにはほぼ影響しないからですが
本当にVMに影響しないのか、個人的にはサーバ用途のVMが多いので
ノードが切り替わる関係でネットワーク周りに影響しないのかを検証してみました

外部からpingを送信する

Proxmox外のPCからVMへpingを送り続けている状態で
ライブマイグレーション処理を実施しました

C:\Users\user>ping 192.168.0.3 -t

192.168.0.3 に ping を送信しています 32 バイトのデータ:
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 =1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64
192.168.0.3 からの応答: バイト数 =32 時間 <1ms TTL=64

192.168.0.3 の ping 統計:
    パケット数: 送信 = 21、受信 = 21、損失 = 0 (0% の損失)、
ラウンド トリップの概算時間 (ミリ秒):
    最小 = 0ms、最大 = 1ms、平均 = 0ms
Ctrl+C
^C
C:\Users\user>

ノード移動後もVMのIPも変わらないのもあり
損失・応答時間に問題ありませんでした

SSH接続する

Proxmox外のPCからCentOS7-VMにSSH接続したまま
ライブマイグレーション処理を実施しました

結果はセッションが切れることもなく完了しました

FTPでファイル転送

CentOS7-VMでFTPサーバを起動してProxmox外のPCからFTP経由で
ファイルを転送している間にライブマイグレーション処理を実施しました

結果は全く問題なし

この時のライブマイグレーションログになります

2020-02-15 05:22:33 starting migration of VM 100 to node 'pve02' (192.168.0.12)
2020-02-15 05:22:33 starting VM 100 on remote node 'pve02'
2020-02-15 05:22:34 start remote tunnel
2020-02-15 05:22:34 ssh tunnel ver 1
2020-02-15 05:22:34 starting online/live migration on unix:/run/qemu-server/100.migrate
2020-02-15 05:22:34 migrate_set_speed: 8589934592
2020-02-15 05:22:34 migrate_set_downtime: 0.1
2020-02-15 05:22:34 set migration_caps
2020-02-15 05:22:34 set cachesize: 268435456
2020-02-15 05:22:34 start migrate command to unix:/run/qemu-server/100.migrate
2020-02-15 05:22:35 migration status: active (transferred 118666653, remaining 229896192), total 2165121024)
2020-02-15 05:22:35 migration xbzrle cachesize: 268435456 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:22:36 migration status: active (transferred 236378326, remaining 100966400), total 2165121024)
2020-02-15 05:22:36 migration xbzrle cachesize: 268435456 transferred 0 pages 0 cachemiss 0 overflow 0
2020-02-15 05:22:37 migration speed: 682.67 MB/s - downtime 38 ms
2020-02-15 05:22:37 migration status: completed
2020-02-15 05:22:40 migration finished successfully (duration 00:00:08)
TASK OK

ダウンタイム38ms

まとめ

今回の検証では問題なく通信できていました

理屈ではダウンしている数十ミリ秒の間にたまたま通信がくると応答できませんが
今時のシステムは自動で再送してくれたりするので
運用している人の話を見ていてもよっぽどアクセスの多い環境でなければ
気にする必要はなさそうです

最後に

操作もシンプルで期待通りの動作をしてくれました

ライブマイグレーション機能はパススルー機能を使っているVMは使えなかったり
Proxmoxのバージョンが一致していないと使えないなどの細かい制約がありますので
シンプルにVMを使っている分には問題ないのですが
事前に各自のVM用途に合うか確認が必要です

コメント