CentOS8 KVM導入


はじめに

KVM(Kernel-base Virtual Machine)はカーネルモジュールとして実装されているハイパーバイザー型のサーバ仮想化技術です。
KVMは完全仮想化のみをサポートするため、CPUが仮想化支援機能をサポートしている必要があります。
今回はCentOS 8.2にKVMを導入してみました。

仮想化支援機能の確認

以下のコマンドで、仮想化支援機能がサポートされているか確認できます。今回の環境だとIOMMUが有効になっていないため、WARNと表示されました。これでも仮想マシンは作成できましたが、有効にした方がパフォーマンスは良いと思われます。
[root@localhost ~]# virt-host-validate
QEMU: Checking for hardware virtualization : PASS
QEMU: Checking if device /dev/kvm exists : PASS
QEMU: Checking if device /dev/kvm is accessible : PASS
QEMU: Checking if device /dev/vhost-net exists : PASS
QEMU: Checking if device /dev/net/tun exists : PASS
QEMU: Checking for cgroup 'cpu' controller support : PASS
QEMU: Checking for cgroup 'cpuacct' controller support : PASS
QEMU: Checking for cgroup 'cpuset' controller support : PASS
QEMU: Checking for cgroup 'memory' controller support : PASS
QEMU: Checking for cgroup 'devices' controller support : PASS
QEMU: Checking for cgroup 'blkio' controller support : PASS
QEMU: Checking for device assignment IOMMU support : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)

パッケージのインストール

以下のパッケージをインストールします。
NameSummary
qemu-kvmQEMU is a machine emulator and virtualizer
libvirtLibrary providing a simple virtualization API
cockpit-machinesCockpit user interface for virtual machines
# dnf install qemu-kvm
# dnf install libvirt
# dnf install cockpit-machines

libvirtdの起動

インストール直後は自動起動が有効になっています。
# systemctl is-enabled libvirtd
enabled
インストール直後は停止しているの起動させます。
# systemctl start libvirtd

Cockpitのインストール

CentOS8ではリモートからGUIでシステムを管理できるようWEBの管理画面であるCockpitが導入されています。
上記でインストールしたcockpit-machinesを入れておけばCockpitのメニューに「仮想マシン」が追加され、仮想マシンが操作できるようになります。
従来のウインドウシステムと違いシステムにもほとんど負荷がかからないようですし、使用感も確認してみたいので入れてみることにしました。
# dnf install cockpit cockpit-system cockpit-bridge cockpit-ws cockpit-packagekit cockpit-storaged

Cockpitの起動

インストール直後は自動起動が有効になっていないので、有効化させます。
# systemctl enable cockpit.socket
インストール直後は起動していないので起動させます。
# systemctl start cockpit.socket

Cockpitのログイン

Cockpitを起動するとサーバのIPアドレスとポート番号(9090)でブラウザからログインできるようになります。
ログイン後左の「仮想マシン」から仮想マシンの操作ができます。
注意点としては、Firewalldのpublicゾーンでcockpitは始めから通信許可されているので、インターネットに公開している場合は接続元を制限した方がいいのと、仮想マシンのコンソール操作もFirewalldによって制限されているようで、操作ができませんでした。今回はプライベート環境なのでFirewalldは無効にして操作できることを確認しています。 仮想マシンの作成はまた次回。 参考 CentOS8で作るネットワークサーバ構築ガイド (Network Server Construction Guide S)