vmm/vmd: OpenBSDの仮想環境

構成要素

資料: OpenBSD FAQ - Virtualization

特徴

シンプル。以下の制限がある。

準備

# #ハードウェアが対応しているか確認
# dmesg | egrep '(VMX/EPT|SVM/RVI)'
# #vmdを有効化
# rcctl enable vmd
# rcctl start vmd
# #ディスクイメージを作成
# vmctl create -s 4G OpenBSD78.img  # raw or qcow2

起動

(ネットワークブリッジを使用しなければ)設定ファイルなしで動く。

OSのインストール

# vmctl start -c -i 1 -L -m 2G -B cdrom -r install78.iso -d OpenBSD78.img obsd78

インストール後、起動

# vmctl start -i 1 -L -m 2G -d OpenBSD78.img obsd78

設定

vm.confの設定

設定を/etc/vm.confに記述する。

# cat /etc/vm.conf
switch "uplink" {
        interface veb0
}

vm "obsd78" {
    disable
    memory 2G
    disk "/opt/vmd/OpenBSD78.img"
    interfaces 1
    interface { switch "uplink" }
}
(他にもVMがある場合は以下同様に記述)

ネットワークの設定

前項のvm.confの設定ではVMをブリッジに接続し、外のネットワークに出られるようにしている。 これについて、ネットワークの追加設定が必要

# cat /etc/hostname.veb  # veb(4) (Virtual Ethernet Bridge)の設定
add re0
add vport0
up
# cat /etc/hostname.re0  # 実機のNICの設定
up  # 有効化するだけ
# cat /etc/hostname.vport  # vebに接続する仮想ポート。実機のアドレス設定はここで
inet autoconf
inet alias 192.168.1.32 255.255.255.0
inet6 autoconf

(vebを使用する場合、実H/WのNICにアドレスを割り振れなくなる)

VMが起動すると、tap(4)経由でveb0に接続される。

起動

# vmctl start obsd78
vmctl: started vm 1 successfully, tty /dev/ttyp1
# vmctl status
      ID   PID VCPUS  MAXMEM  CURMEM     TTY        OWNER    STATE NAME
       1 25809     1    516M    156M   ttyp1         root  running obsd78

/dev/ttyp1はVMのシリアルコンソール。cu(1)を使ってアクセスする。

# vmctl console obsd78

または、起動時に、

# vmctl start -c obsd78

Front page   New Page list Search Recent changes   Help   RSS of recent changes