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
などのツールを使って、仮想マシンの作成、管理、ネットワーク設定、リソース変更、バックアップなどが簡単に行えます。この方法を使えば、コマンドラインベースでの効率的な仮想化環境の管理が可能になります。