Contents
概要
KVM環境を構築します。
インストール
公開されているUbuntuのISOにはKVM関連のパッケージが含まれていない為、必要なパッケージをインターネットからAPTで取得する必要があります。このためKVM内にインターネット接続に必要な仮想ルーターを配置する場合(それ以外にインターネット接続環境が無い場合)はKVMをローカルインストールする必要があります。
オンラインインストール
通常通りAPTでインストールします。最低限必要なパッケージはqemu-kvm, libvirt-daemon-system, libosinfo-bin, virtinstです。virt-top, iptables-persistentは必要に応じてインストールしてください。
myadmin@ubuntu:~$ sudo DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold \
install qemu-kvm libvirt-daemon-system libosinfo-bin virtinst virt-top iptables-persistent
オフラインインストール
特に正式な方法があるわけではないようですが下記の方法でオフラインインストールが可能です。他のケースでも流用できると思います。
必要パッケージの入手
事前にダウンロード用のクリアなUbuntu(KVMを導入するホストとは別です)を用意して必要なファイルをダウンロードします。-d:–download-onlyを付与するとダウンロードのみとなります。ダウンロードのみとなるためTUI抑止のオプションは付与していません。
このダウンロード用のホストは公開されているISOからインストールして”APTで更新していない状態”がトラブルが無く良いと思います。
myadmin@ubuntu:~$ sudo apt-get -d install qemu-kvm libvirt-daemon-system libosinfo-bin virtinst
アーカイブ作成
ダウンロードしたファイルは/var/cache/apt/archivesに保存されています。アーカイブを作成してSCP等で別のホストに移動しておきます。
myadmin@ubuntu:~$ cd /var/cache/apt myadmin@ubuntu:/var/cache/apt$ sudo tar czvf ubuntu-22.04-server-debpkg-kvm_`date +%Y%m%d-%H%M%S`.tar.gz archives
オフラインインストールの実行
ここからはKVMを導入するホストで操作します。ポイントは下記の通りです。
- ubuntu-22.04-server-debpkg-kvm_20220523-234503.tar.gzを事前にアップロードしておきます。
- DNSが有効の場合、ローカルのdebパッケージを指定していてもインターネット上のリポジトリを参照する為、NetplanでDNSを無効にします。
myadmin@ubuntu:~$ tar xzvf ubuntu-22.04-server-debpkg-kvm_20220523-234503.tar.gz myadmin@ubuntu:~$ sudo DEBIAN_FRONTEND=noninteractive apt-get -o Dpkg::Options::=--force-confdef -o Dpkg::Options::=--force-confold install ./archives/*.deb
最後に下記のメッセージが出力されますが問題は無いようです。libvirtd.serviceが起動していれば良いと思います。
myadmin@ubuntu:~$ N: Download is performed unsandboxed as root as file '/home/myadmin/archives/acl_2.3.1-1_amd64.deb' couldn't be accessed by user '_apt'. - pkgAcquire::Run (13: Permission denied)
オフラインインストール時、Unable to fetch some archives~等のエラーでインストールが失敗することがありました。環境や状態に依存する問題だと思います。下記のようにキャッシュを削除することで解決します。
myadmin@ubuntu:~$ sudo rm -fr /var/lib/apt/lists/*
設定
単にハイパーバイザーとして使用するだけであればKVMに対して設定すべきことはほとんどありません。これはKVMに限らず他のハイパーバイザーも同じです。後述のデフォルトネットワークの無効化も管理上無効化しているだけで必須ではありません。
デフォルトネットワークの無効化
KVMは内部の仮想マシン用仮想ネットワークをインストール時に作成します。この仮想ネットワークはKVMホストのIPアドレスを使用(NAT)して外部と通信するために設定されますが、本稿では利用する機会がないため無効化します。
https://docs.openstack.org/mitaka/ja/networking-guide/misc-libvirt.html
仮想ネットワークの確認
インストール直後の仮想ネットワークの状態は下記の通りです。OSを再起動しないと空かもしれません。
myadmin@ubuntu:~$ virsh net-list
Name State Autostart Persistent
--------------------------------------------
default active yes yes
仮想ネットワークの無効化
仮想ネットワークを無効化します。まず自動起動を無効にしてから無効化します。
myadmin@ubuntu:~$ virsh net-autostart --network default --disable Network default unmarked as autostarted myadmin@ubuntu:~$ virsh net-list Name State Autostart Persistent -------------------------------------------- default active no yes myadmin@ubuntu:~$ virsh net-destroy default Network default destroyed myadmin@ubuntu:~$ virsh net-list Name State Autostart Persistent ----------------------------------------
仮想ネットワークを有効化
仮想ネットワークを有効化する場合は下記の通りです。
myadmin@ubuntu:~$ virsh net-start default Network default started myadmin@ubuntu:~$ virsh net-list Name State Autostart Persistent -------------------------------------------- default active no yes myadmin@ubuntu:~$ virsh net-autostart --network default Network default marked as autostarted Name State Autostart Persistent -------------------------------------------- default active yes yes