FreeBSD bhyve migration

Cold Migration

Feature request: support incremental migration to reduce downtime · Issue #309 · churchers/vm-bhyve · GitHub

Network migration for bhyve guests using vm-bhyve · GitHub

socat が必要

# pkg install socat

移行先 bhyve2 vm recv実行

# vm recv migrtest
Recieving guest into /zroot/vm/migrtest
  * stage 1: waiting for snapshot on port 12000

移行元 bhyve1 vm send実行

# vm send migrtest bhyve2:12000
Sending migrtest to bhyve2
  * stage 1: taking snapshot - 20191025210012
  * stage 1: sending zroot/vm/migrtest@20191025210012
  * stage 1: complete
  * stage 1: giving time for remote socket to close
  * stage 2: attempting to stop guest locally...
  * stage 2: guest powered off
  * stage 2: taking snapshot - 20191025210407
  * stage 2: sending zroot/vm/migrtest@20191025210407 (incremental source 20191025210012)
  * stage 2: complete
  * removing snapshots
  * done

移行元の仮想マシンは停止状態になる。

移行先 bhyve2 完了

# vm recv migrtest
Recieving guest into /zroot/vm/migrtest
  * stage 1: waiting for snapshot on port 12000
  * stage 1: complete
  * stage 2: waiting for snapshot on port 12000
  * stage 2: complete
  * updating configuration file
cannot mount 'zroot/vm/migrtest': filesystem already mounted
  * done

移行先の仮想マシンは停止状態なので起動する。

# vm start migrtest