Kernel-based Virtual Machine (略して KVM) は、Linux に緊密に統合された、オープン ソースで事実上の標準となる仮想化ソリューションです。 これは、Linux をタイプ 1 (ベアメタル) ハイパーバイザーに変えるロード可能なカーネル モジュールで、仮想マシン (VM) を実行するために使用される仮想オペレーティング プラットフォームを作成します。
KVM では、各 VM はカーネルによってスケジュールおよび管理されている Linux プロセスで、プライベート仮想ハードウェア (CPU, ネットワーク カード、ディスク、など) を持っています。 また、ネストされた仮想化もサポートしており、別の VM の内部で VM を実行できます。
主な機能としては、Linux がサポートする幅広いハードウェア プラットフォーム (仮想化拡張機能を持つ x86 ハードウェア (Intel VT または AMD-V)) のサポート、SELinux と安全な仮想化 (sVirt) の両方を使用して強化した VM セキュリティおよび分離、カーネルのメモリ管理機能の継承、オフラインおよびリアルタイム移行 (物理ホスト間で実行中の VM を移行) の両方が含まれます。
この記事では、CentOS 8 および RHEL 8 Linux で KVM 仮想化をインストールし、仮想マシンを作成および管理する方法について説明します。
前提条件
- A fresh installation of CentOS 8 server
- A fresh installation of RHEL 8 server
- A RedHat subscription enabled on RHEL 8 server
さらに、お使いのハードウェア プラットフォームが仮想化に対応しているか、以下のコマンドで確認しましょう。
# grep -e 'vmx' /proc/cpuinfo#Intel systems# grep -e 'svm' /proc/cpuinfo#AMD systems
また、カーネルに KVM モジュールがロードされていることを確認します (デフォルトでロードされているはずです)。
# lsmod | grep kvm
以下は Intel ベースのテスト システムでの出力例です。

以前の一連の KVM ガイドで、KVM (Kernel-based Virtual Machine) を使用して Linux で仮想マシンを作成する方法を説明しましたが、ここでは virt-manager GUI ツール (RHEL 8 文書によると現在は非推奨) を使用して VM を作成および管理する方法を実演しています。 このガイドでは、別のアプローチとして、Cockpit Web コンソールを使用します。
Step 1: Cockpit Web Console on CentOS 8
1. コックピットは、Web ブラウザで Linux サーバーを管理するための、使いやすく、統合および拡張可能な Web ベースのインターフェイスです。 ネットワークの設定、ストレージの管理、VMの作成、ログの検査などのシステムタスクをマウス操作で実行することができます。 システムの通常のユーザーログインと権限を使用しますが、他の認証方法もサポートされています。
インストールしたばかりの CentOS 8 および RHEL 8 システムにプリインストールされ、有効になっています。 パッケージのインストールが完了したら、コックピットソケットを起動し、システム起動時の自動起動を有効にし、その状態を確認して、起動していることを確認します。
# systemctl start cockpit.socket# systemctl enable cockpit.socket# systemctl status cockpit.socket

3. 次に、デフォルトで有効になっているシステムファイアウォールに、firewall-cmdコマンドを使用してコックピットサービスを追加し、ファイアウォール設定をリロードして新しい変更を適用します。
# firewall-cmd --add-service=cockpit --permanent# firewall-cmd --reload
4. コックピットWebコンソールにアクセスするには、Webブラウザを開いて次のURLで移動します。
https://FQDN:9090/ORhttps://SERVER_IP:9090/
コックピットは自己署名証明書を使用してHTPSを有効にするので、ブラウザからの警告が出たら簡単に接続を続行してください。 ログインページで、サーバー ユーザー アカウントの資格情報を使用します。


Step 2: Installing KVM Virtualization CentOS 8
5.1 KVM 仮想化のインストール 次に、仮想化モジュールとその他の仮想化パッケージを以下のようにインストールします。 virt-install パッケージは、コマンドラインインターフェースから仮想マシンをインストールするためのツールを提供し、virt-viewer は仮想マシンを表示するために使用します。
# dnf module install virt # dnf install virt-install virt-viewer
6. 次に、ホストマシンが libvirt ハイパーバイザードライバーを実行するように設定されているかどうかを検証するために virt-host-validate コマンドを実行します。
# virt-host-validate

7.Next, start the libvirtd daemon (libvirtd) and enable it to start automatically on each boot.X.X.
1. その後、その状態をチェックして、稼働していることを確認します。
# systemctl start libvirtd.service# systemctl enable libvirtd.service# systemctl status libvirtd.service

Step 3: Set Up Network Bridge (Virtual Network Switch) via Cockpit
8. 今度は、仮想マシンをホストと同じネットワークに統合するためのネットワークブリッジ (virtual network switch) を作成します。 デフォルトでは、libvirtd デーモンが起動すると、NAT モードで動作する仮想ネットワークスイッチを表すデフォルトのネットワークインターフェイス virbr0 が有効になります。
このガイドでは、br0 というブリッジモードのネットワークインターフェイスを作成します。
コックピットのメインインターフェイスから、[ネットワーク]をクリックし、次のスクリーンショットに示すように[ブリッジの追加]をクリックします。 ポップアップウィンドウから、次のスクリーンショットに示すように、ブリッジ名を入力し、ブリッジスレーブまたはポートデバイス(たとえば、イーサネットインターフェースを表すenp2s0など)を選択します。 そして Apply をクリックします。

10.

Step 4: Creating and Managing Virtual Machines via Cockpit Web Console
11.インターフェースのリストを見ると、新しいブリッジが表示されているはずですが、数秒後にEthernetインターフェースが無効に(停止さ)されるはずです。 コックピットのメインインターフェイスから、次のスクリーンショットで強調表示されているように、[Virtual Machines]オプションをクリックします。 仮想マシン]ページで、[VMの作成]をクリックします。

12. 新しい仮想マシンを作成するためのオプションが表示されたウィンドウが表示されます。 次の画像に示すように、接続、名前(例:ubuntu18.04)、インストールソースの種類(テストシステムでは、ストレージプール(例:/var/lib/libvirt/images/)にISOイメージを格納しました)、インストールソース、ストレージ、サイズ、メモリーを入力します。 OS Vendor と OS は、Installation Source を入力した後に自動的に選択されます。
VM をすぐに開始するオプションにもチェックを入れ、[作成] をクリックします。

13 で新しい仮想マシンを追加します。 前のステップで [作成] をクリックすると、VM が自動的に起動し、提供された ISO イメージを使用して起動するはずです。 ゲスト OS (ここでは Ubuntu 18.04) のインストールに進みます。

VM のネットワーク インターフェイスをクリックすると、ネットワーク ソースが新しく作成されたブリッジ ネットワーク インターフェイスを示すはずです。

そしてインストール中、ネットワーク インターフェイスを設定するステップで、VM のイーサネット インターフェイスがホスト ネットワークの DHCP サーバーから IP アドレスを受け取ることに気付くことができるはずです。

なお、ホストネットワーク上の任意のマシンから SSH でゲスト OS にアクセスするには、最後のセクションで説明したように OpenSSH パッケージをインストールする必要があることに留意してください。 ゲスト OS のインストールが完了したら、VM を再起動し、Disks に移動して VM のディスクの下にある cdrom デバイスを切り離すか削除します。


15.1.2. コンソール]で、OSのインストール時に作成したユーザーアカウントを使用してゲストOSにログインできます。

Step 5: Virtual Machine Guest OS via SSH
16.ゲストOSにアクセスする[コンソール]をクリックします。 SSH 経由でホストネットワークから新しくインストールされたゲスト OS にアクセスするには、次のコマンドを実行します (10.42.0.197 をゲストの IP アドレスに置き換えます)。
$ ssh [email protected]

17. VM をシャットダウン、再起動、または削除するには、VM のリストからその VM をクリックし、次のスクリーンショットで強調表示されているボタンを使用します。 このガイドでは、KVM 仮想化パッケージをインストールする方法、およびコックピット Web コンソールを使用して VM を作成および管理する方法を説明しました。 詳細については、以下を参照してください。 RHEL 8 で仮想化を始める
を参照してください。