KVMで仮想化環境 - 構築
KVMについて
KVM (Kernel-based Virtual Machine:カーネルベースの仮想マシン) は、Linuxに組み込まれたオープンソースの仮想化技術です。KVM を使用することで、いわゆる仮想化基盤を構築できます。「Kernel-based」の文字通りKernelに組み込まれていますので、Linuxをハイパーバイザーとして動作させることができます。
概要
Red hat Enterprise Linux 9.4にKVMを構築します。また、Cockpitに仮想マシンモジュールを追加してGUIで仮想マシンを管理できるようにします。
構築
- 環境
・ESXi上に構築したRHEL9.4にKVMを構築 (KVM on ESXi)
- OS (仮想ホスト)
・Red hat Enterprise Linux 9.4
- 主要ソフトウェア
・qemu-kvm-8.2.0-11.el9_4.3.x86_64
・libvirt-10.0.0-6.3.el9_4.x86_64
・virt-install-4.1.0-5.el9.noarch
・virt-viewer-11.0-1.el9.x86_64
ESXi環境事前設定
・CPUの仮想化支援機構の有効化
KVMを構築する仮想マシンで仮想化支援機構が有効になっている必要があります。
KVMホストとする仮想マシンを選択し、「設定の編集」→「仮想ハードウェア」→「CPU」→「ハードウェア仮想化」→「ハードウェアアシストによる仮想化をゲストOSに公開」にチェックを入れておきます。
・vSwitch のモード
KVMが動作する仮想マシンが接続するESXiホストの仮想スイッチ(vSwitch)において、プロミスキャスモード を有効にする必要があります。
KVMインストール
以下にKVMをインストールする手順を紹介します。インストール自体はとても簡単で手軽に仮想環境を用意できます。
1.仮想化ハイパーバイザーパッケージインストール
下記の4つのパッケージをインストールします。コマンド実行時に表示される依存関係パッケージも同時にインストールします。
# dnf install qemu-kvm libvirt virt-install virt-viewer
2.サービス起動
各サービスを起動します。数が多いのでRed hatのドキュメントに倣ってfor文で一括起動させます。
# for drv in qemu network nodedev nwfilter secret storage interface; do systemctl start virt${drv}d{,-ro,-admin}.socket; done
3.準備状況の確認
仮想化の準備状況を確認します。全ての項目がPASSになっていることを確認します。FAILの項目がある場合はメッセージに従って対応する必要があります。WARNの項目は対処しなくても稼働させることは可能です。
# virt-host-validate
QEMU: 確認中 ハードウェア仮想化用 : 成功
QEMU: 確認中 if device /dev/kvm exists : 成功
QEMU: 確認中 if device /dev/kvm is accessible : 成功
QEMU: 確認中 if device /dev/vhost-net exists : 成功
QEMU: 確認中 if device /dev/net/tun exists : 成功
QEMU: 確認中 for cgroup 'cpu' controller support : 成功
QEMU: 確認中 for cgroup 'cpuacct' controller support : 成功
QEMU: 確認中 for cgroup 'cpuset' controller support : 成功
QEMU: 確認中 for cgroup 'memory' controller support : 成功
QEMU: 確認中 for cgroup 'devices' controller support : 成功
QEMU: 確認中 for cgroup 'blkio' controller support : 成功
QEMU: 確認中 デバイス割り当て IOMMU サポート用 : WARN (No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform)
QEMU: 確認中 安全なゲストサポートのため : WARN (Unknown if this platform has Secure Guest support)
- No ACPI DMAR table found, IOMMU either disabled in BIOS or not supported by this hardware platform
上記メッセージは、IOMMU(Intel VT-d / AMD-Vi)(物理デバイスを仮想マシンでそのまま使用する機能)に対応していない場合に表示されます。
- Unknown if this platform has Secure Guest support
上記メッセージは、仮想ホストでIntel製CPUを使用している場合に表示されます。
Cockpit(WebGUI)インストール
続いて仮想マシンをGUIで管理する為、CockpitとCockpitの仮想マシンプラグインをインストールします。
1.Cockpitインストール&Cockpit仮想マシンプラグインインストール&起動
Cockpit及びCockpitの仮想マシンプラグインをインストールします。Cockpitはサーバ起動時に自動的にサービス起動するように設定します。
# dnf install cockpit
# dnf install cockpit-machines
# systemctl enable --now cockpit.socket
2.rootでCockpitWeb画面にアクセスできるようにセキュリティ緩和
RHEL9からCockpitのWeb画面にrootでアクセスできないようにセキュリティが強化されていますので、rootでもアクセスできるように設定を変えます。
# vi /etc/cockpit/disallowed-users
「root」の記載をコメントアウト
3.ブラウザでCockpitへアクセス
ブラウザでアクセスします。9090ポートが開いていない場合はfirewallでポートを開放する必要があります。
https://<IPアドレス>:9090/
以下のようにWeb画面が表示されますので、ユーザ名にroot、パスワードにはOSのrootユーザと同じパスワードを入力してログインします。
ログインすると以下のような画面が表示されます。画面左のメニューの中ほどに「仮想マシン」の項目があります。
左メニューの「仮想マシン」をクリックすると仮想マシンを管理するための画面が表示されます。この画面で仮想マシンの作成やストレージプール、仮想ネットワークの作成を行うことができます。
これで仮想環境が完成しました。細かい設定等をすることもなく簡単に構築することができます。
仮想マシンの作成もGUIから簡単に行うことが可能です。KVMをインストールしただけの状態では、仮想マシンから外部への通信は可能ですが、外部から仮想マシンへの通信はできません。外部からの通信を受け付けるには仮想ネットワークを作成する必要があります。
仮想ネットワークの作成についてはまた別の機会にブログに書きたいと思います。
参考サイト
お問い合わせ
弊社では様々なサービスを取り扱っております。
詳細はサービス一覧からご覧ください。
お気軽にお問い合わせください。応対時間 9:30-17:30 [ 土・日・祝日除く ]
お問い合わせ