Ubuntu 22.04 KVM #2 仮想マシンのデプロイ

目次に戻る

概要

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

目次に戻る

Ubuntu 22.04 KVM #2 仮想マシンのデプロイ

コメントを残す

メールアドレスが公開されることはありません。

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)

トップへ戻る