KVM(カーネル仮想マシン)は、Linuxカーネルの仮想化機能を活用した仮想化ソリューションであり、サーバー環境や開発環境で広く使用されています。この記事では、KVMのインストールから仮想マシンの作成・管理まで、コマンドラインツールを使用したKVMの管理方法を完全かつ包括的に解説します。
KVMのインストールとセットアップ
まず、KVMを使用するために必要なパッケージをインストールします。KVMは、qemu-kvmやlibvirt、virt-managerなどのツールを含むパッケージです。これらをインストールすることで、仮想マシンの作成や管理が可能になります。
必要なパッケージのインストール
Debian系(Ubuntuなど)やRed Hat系(CentOS、RHELなど)では、以下のコマンドを使用してインストールします。
Debian/Ubuntuの場合:
bashsudo apt update sudo apt install qemu-kvm libvirt-bin bridge-utils virt-manager
CentOS/RHELの場合:
bashsudo yum install qemu-kvm libvirt libvirt-devel bridge-utils virt-manager
これにより、KVM仮想化をサポートするために必要な基本的なパッケージがインストールされます。
KVMの動作確認
KVMが正しくインストールされ、動作しているか確認するためには、以下のコマンドを実行します。
bashkvm-ok
このコマンドは、KVMがシステムで利用可能かどうかをチェックします。問題がなければ、「KVM acceleration can be used」というメッセージが表示されます。
仮想マシンの作成
次に、仮想マシンを作成します。仮想マシンの作成にはvirt-installコマンドを使用します。このコマンドで、インストールするOSや仮想マシンのリソース(CPU、メモリ、ディスクなど)を指定できます。
仮想マシンの作成
以下は、最も基本的な仮想マシンを作成するためのコマンドの例です。
bashsudo virt-install \ --name=vm1 \ --vcpus=2 \ --memory=2048 \ --disk size=10 \ --cdrom /path/to/iso \ --os-type=linux \ --os-variant=ubuntu20.04 \ --network network=default \ --graphics none \ --console pty,target_type=serial
このコマンドは、次のような設定を行います。
- 仮想マシン名:
vm1 - 仮想CPU数:2
- メモリ:2048MB
- 仮想ディスクのサイズ:10GB
- ISOファイルからOSをインストール
- ネットワーク設定(
defaultネットワークを使用) - グラフィカルインターフェースなし(CLIのみ)
- シリアルコンソールを使用
--cdromオプションにはインストールするISOファイルのパスを指定します。
仮想マシンの管理
仮想マシンが作成された後は、いくつかのコマンドでその状態を管理できます。以下は、KVMで仮想マシンを管理するための基本的なコマンドです。
仮想マシンの一覧表示
現在稼働中または停止している仮想マシンの一覧を表示するには、virsh listコマンドを使用します。
bashsudo virsh list --all
これにより、仮想マシンの名前、状態(実行中または停止中)が表示されます。
仮想マシンの起動と停止
仮想マシンを起動するには、virsh startコマンドを使用します。
bashsudo virsh start vm1
仮想マシンを停止するには、virsh shutdownコマンドを使用します。
bashsudo virsh shutdown vm1
また、強制的に仮想マシンを終了する場合は、virsh destroyコマンドを使用します。
bashsudo virsh destroy vm1
仮想マシンの状態確認
仮想マシンが稼働しているかどうか、またはその他の詳細な情報を確認するには、virsh dominfoコマンドを使用します。
bashsudo virsh dominfo vm1
このコマンドで、仮想マシンのCPU使用率、メモリ使用量、ネットワーク設定などの詳細情報が表示されます。
ネットワーク設定
仮想マシンのネットワーク設定を行うには、virshとbridge-utilsを使って、ブリッジネットワークの設定を行います。仮想マシンのネットワークを外部ネットワークに接続するために、ブリッジを設定することが一般的です。
ブリッジネットワークの設定
ブリッジインターフェースを設定するには、まず/etc/network/interfacesファイルを編集します。以下のような設定を追加します。
bashauto br0 iface br0 inet dhcp bridge_ports eth0
この設定により、物理インターフェースeth0をブリッジインターフェースbr0に接続し、DHCPでIPアドレスを取得する設定が行われます。
設定が完了したら、ネットワークサービスを再起動します。
bashsudo systemctl restart networking
仮想マシンのリソース管理
KVMでは、仮想マシンのリソース(CPU、メモリ、ディスクなど)を後から変更することができます。例えば、仮想マシンのメモリサイズを変更したい場合は、以下のコマンドを使用します。
bashsudo virsh setmem vm1 4096 --config
これにより、仮想マシンvm1のメモリサイズが4096MBに変更されます。
同様に、CPU数を変更したい場合は、以下のコマンドを使用します。
bashsudo virsh setvcpus vm1 4 --config
仮想マシンのバックアップと復元
仮想マシンをバックアップするには、仮想ディスクのコピーを作成します。cpコマンドやrsyncコマンドを使用して、仮想マシンのディスクイメージを別の場所にコピーします。
仮想マシンを復元するには、バックアップしたディスクイメージを元の場所に戻し、新しい仮想マシンとして作成します。
仮想マシンの削除
仮想マシンを削除するには、まず仮想マシンを停止し、次にそのディスクイメージを削除します。
bashsudo virsh destroy vm1
sudo virsh undefine vm1
sudo rm /var/lib/libvirt/images/vm1.qcow2
これにより、仮想マシンの設定とディスクイメージが完全に削除されます。
まとめ
KVMをコマンドラインツールを使って管理する方法を紹介しました。KVMは強力で柔軟な仮想化ソリューションであり、サーバーの仮想化において非常に重要な役割を果たしています。virt-installやvirshなどのツールを使って、仮想マシンの作成、管理、ネットワーク設定、リソース変更、バックアップなどが簡単に行えます。この方法を使えば、コマンドラインベースでの効率的な仮想化環境の管理が可能になります。
