Contents
概要
KVM上に仮想マシンをデプロイします。
KVMのネットワーク
一般的なハイパーバイザーの物理ネットワーク構成は、ハイパーバイザー自身の管理インターフェイス、仮想マシンに割り当てるインターフェイスとなります。1NICでも使用可能ですが少なくともこの2つは分けておいたほうが良いでしょう。プロダクション環境では更にストレージ用インターフェイス、仮想マシン用の管理インターフェイス等があり、これらのNICは2重化されています。
仮想マシンに割り当てるインターフェイス
通常の要件においてはブリッジインターフェイスが最も扱いやすくトラブルが少ないでしょう。より性能を追求する場合にはmacvtap(macvlan)やホストデバイス等を利用できますが使い勝手のデメリットもあります。本稿では省略します。
ブリッジインターフェイスの作成
仮想マシンに割り当てるブリッジインターフェイスをKVM上で作成します。UbuntuではNetplanを使用します。本稿ではハイパーバイザー自身の管理インターフェイス(00-main.yaml)とは別の設定ファイルとして作成していますがこれは設計次第です。
br1001、br1002、br1003はそれぞれ物理インターフェイスに紐づいています。br2000は空のブリッジで仮想マシン間の内部通信用です。
myadmin@ubuntu:~$ sudo tee /etc/netplan/01-etc.yaml <<EOF network: version: 2 ethernets: enp1s0: {} enp2s0: {} enp3s0: {} bridges: br1001: interfaces: [enp1s0] br1002: interfaces: [enp2s0] br1003: addresses: [xxx.xxx.xxx.xxx/24] interfaces: [enp3s0] br2000: {} EOF myadmin@ubuntu:~$ sudo netplan apply
virt-install
仮想マシンのデプロイにはvirt-installを使用します。
virt-installの主なオプション
本稿で使用するvirt-installの主なオプションは下記の通りです。
オプション | 説明 | 補足 |
---|---|---|
--connect | デフォルト以外のハイパーバイザーに接続します。 指定しない場合は最適なデフォルトが選択されます。 | 少しわかりにくいですがqemu:///systemを指定するとローカルのKVMに接続します。リモートホストにSSH接続する場合はqemu+ssh://myadmin@xxx.xxx.xxx.xxx/systemとなります。 |
--name | 仮想マシン名を指定します。 | |
--memory | 仮想マシンに割り当てるメモリ量をMiBで指定します。 | --ramオプションは現在でも使用可能ですが非推奨になっています。今後は--memoryを使用しましょう。 |
--vcpus | 仮想マシンに割り当てる仮想CPUの個数を指定します。 | |
--cdrom | OSインストールに使用するISOのファイル名を指定します。 | |
--boot | 仮想マシンのブート構成を指定します。 | UEFIを使用しない場合はこのオプションを削除します。 |
--os-variant | ゲストOSに合わせたOS名を指定します。指定可能な値は[osinfo-query os]で確認します。 | osinfo-queryコマンドはlibosinfo-binパッケージが必要です。 |
--disk | インストール先ディスクのパスとサイズ(GB)を指定します。 | |
--network | 使用するネットワークデバイスを指定します。 | |
--graphics | VNCかSPICEを指定します。 | |
--autostart | このオプションを指定するとハイパーバイザーの起動時に仮想マシンも起動します。 | |
--noautoconsole | インストール後にゲストOSのコンソールに自動接続しません。 | このオプションを指定しないとインストールに失敗する場合がありました。 |
virt-installのコマンド例
virt-installのコマンド例は下記の通りです。オプションで指定しなければならない項目が多い為、シェルスクリプトにしておくと管理しやすいと思います。
VyOS
VyOSの例は下記の通りです。UEFIを指定するとインストールに失敗する為、--bootを削除しています。VMware環境ではUEFIでインストール可能でしたのでKVM環境の問題です。バージョンアップが進むと解決するかもしれません。
virt-install \ --connect qemu:///system \ --name vyos \ --memory 1024 \ --vcpus 1 \ --cdrom /var/lib/libvirt/images/vyos-1.4-rolling-202205060217-amd64.iso \ --os-variant debian11 \ --disk path=/var/lib/libvirt/images/vyos.qcow2,size=20 \ --network bridge=br1001 \ --network bridge=br1002 \ --network bridge=br1003 \ --graphics spice,listen=0.0.0.0,keymap=ja \ --autostart \ --noautoconsole
Ubuntu
Ubuntuの例は下記の通りです。
virt-install \ --connect qemu:///system \ --name ubuntu \ --memory 4096 \ --vcpus 2 \ --cdrom /var/lib/libvirt/images/ubuntu-22.04-live-server-amd64.iso \ --boot uefi \ --os-variant ubuntu22.04 \ --disk path=/var/lib/libvirt/images/ubuntu.qcow2,size=40 \ --network bridge=br1000 \ --graphics spice,listen=0.0.0.0,keymap=ja \ --autostart \ --noautoconsole