Ubunut20.04 KVMでプライベートクラウドを構築しよう ~その1 インストールするパッケージについて

 本記事では、KVMのインストールに必要なKVMの仕組の概要と、実際にKVMを動かすためにインストールするパッケージについて説明します。

関連記事
 インストールするパッケージについて(この記事)
 KVMのインストールと仮想マシンの作成
 KVMの仮想環境
 サーバ接続用仮想ネットワークの作成

1.KVMについて

 LinuxパソコンにKVMをインストールすると、Linuxマシンの中に仮想環境を構築することができます。仮想環境とは、PCの中に構築された仮想LANと仮想マシンで構成される仮想ネットワークシステムのことです。
 つまり、KVMをインストールすると、1台のLinuxホスト内にさまざまな種類のOSの仮想マシンを何台でも作成し、利用することができるようになります。
 KVMはLinux純正の仮想化アプリケーションです。Ubuntuはじめ、いろいろなディストリビューションのLINUXにインストールすることができます。ここでは、インストール方法や使い方を説明する前に、KVM仮想環境が動作する仕組について説明します。

2.OSとカーネルについて

 図1は、LinuxOSで動作するアプリケーションが、どのようにPCのハードウェア上で動いているかを表した図です。

02-01-OSとカーネル.drawio

図1 OSとカーネルの役割

 アプリケーションは、1つ以上のプログラムで構成されています。OS上で実行中のプログラムことを、プロセスといいます。

 OSは、大きくは2つの役割をもっています。
 1つはプロセスの実行環境の提供です。CLI(Command Line Interface/コマンドはシェルから実行)や、デスクトップGUI(Grapchical User Interface)、あるいはブートローダを通じて、プロセスの起動、操作、停止、管理の機能を提供します。
 もう1つの役割は、プロセスに対するハードウェアリソースの管理や入出力インタフェースの提供です。これは、カーネルが提供します。プロセスが使用するCPUリソースやメモリリソースの割当を管理したり、マウスやキーボードなどの外部接続デバイスとの入出力インタフェースを提供し、デバイスをコントロールします。

 "Linux"とは、カーネルの名前であり、OSの名前ではありません。RedHatやUbuntuをはじめとするさまざまな種類のLinuxOS(ディストリビューション)は、Linuxカーネルを使って開発されたOSのことをいいます。

3.KVMのインストールに必要なパッケージとアプリケーション

 図2は、パッケージに含まれる主要なアプリケーションと、これらのアプリケーションを通じて物理マシン(ホストマシン)上で仮想マシンがどのように動いているか表した図です。Ubuntu20.04にKVMをインストールするためには、以下の2つのパッケージをインストールします。

①qemu-kvm
②libvirt-daemon-system

02-02-kvmのソフトウェアスタック.drawio

図2 KVM仮想マシンの動作概要とインストールパッケージ

 以下、KVMのインストールに必要なパッケージについて補足します。

3.1.qemu-kvmとKVM

 仮想マシンにインストールされたOSを、ゲストOSといいます。といっても、ゲストOS専用のOSがあるわけではありません。中身はホストマシンにインストールするOSと同じです。
 ゲストOSが仮想マシン上でも動作できるようにするために、qemu-kvmは、ゲストOSのカーネルに対して、物理ハードウェアと全く同じようにふるまいます(ハードウェアをエミュレートする)。
 また、ゲストOSも、実際にはホストマシンのハードウェアリソースを利用します。このため、qemu-kvmは、ホストOSのカーネルに含まれているKVM(Kernel-based Virtual Machine)と連携し、仮想マシンに対するホストマシンのハードウェアリソースの割当を管理します。加えて、ゲストOSのカーネルとホストマシンのハードウェアの入出力を中継します。

KVMは、バージョン2.6.20以降のLinuxカーネルに含まれています。KVMは、Linuxで仮想化を実現するためのソフトウェア(ハイパーバイザ)です。

 qemu-kvmとKVMを使って仮想環境を構築するためには、仮想化機能に対応したCPUが必要です。また、CPUの仮想化機能がUEFIで「有効」に設定されている必要があります。Intel Coreシリーズ/AMD RyzenシリーズのCPUはすべて仮想化機能に対応しています。

UEFIでCPUの仮想化機能をONに設定する方法は難しくはないのですが、CPUの種類によって設定方法が変わります。ご自身のCPU、またはマザーボードにあった設定方法を確認してみてください。マザーボードの説明書か、またはネットにもたくさん情報があると思います。

2.2.libvirt-daemon-system

 libvirt-daemon-systemは、KVMの仮想マシンを作成したり、削除したり、管理したりするためのアプリケーションやコマンドを同梱したパッケージです。ここでは、libvirt-daemon-systemに同梱されている、libvirtd、virsh、virsh-install、virt-managerについて説明します。

 libvirtdは、qemu-kvmを操作するためのAPIを提供するデーモンプロセスであり、仮想マシンの作成、削除、管理はこのAPIを通じてqemu-kvmが実行します。

デーモンプロセスというのは、ウイルスチェックアプリケーションや、各種サーバアプリケーション等のプロセスのように、一度起動すると明示的にストップするまで、OSのバックグラウンドで実行され続けるプロセスのことをいいます。qemu-kvmとlibvirtdは、ホストOSのデーモンプロセスとして実行されます。

 virshとvirsh-installはシェルから実行可能なコマンドとしてインストールされます。KVMの仮想マシンの作成、削除、管理は、すべてvirshコマンドとvirsh-installコマンドを使って実行することができます。
 シェルから手動でコマンドを書くととても長いコマンドになりがちなのですが、仮想マシンの管理、操作を自動化したい場合などはとても便利です。

 virt-managerは、LinuxのデスクトップGUI上で仮想マシンの作成、削除、管理を行うためのデスクトップアプリです。これもlibvirt-daemon-systemのパッケージに含まれています。
 グラフィカルに仮想マシンを管理できるため、手動で仮想マシンを管理する場合はわかりやすくて便利です。

 次の記事ではKVMのインストールと仮想マシンの作成方法を説明します。

 

 


 

 

この記事が気に入ったらサポートをしてみませんか?