手当たり次第に書くんだ

飽きっぽいのは本能

目次に戻る

概要

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

目次に戻る

Ubuntu 22.04 KVM 環境構築

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

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

トップへ戻る