KVMで仮想化を試してみる(前編)

やまもとやま
2026-02-09
2026-02-09

どうも、やまもとやまです。
サーバー仮想化、色々ありますよね。
VMware、Docker、LXC、OpenVZ、等々。
今回はKVMでの仮想化を試してみようと思います。

環境

AlmaLinux9を最小インストールした環境を元に構築します。
CPUの仮想化支援機能は有効にしておきましょう。
ホストサーバーのIPアドレスは198.51.100.10とします。
また、作成する仮想マシンのIPアドレスを192.168.51.20とします。

KVMの導入

QEMUとlibvirtを組み合わせて利用するため、これらをインストールします。

# dnf install qemu-kvm libvirt virt-install

とりあえずこれだけ指定しておけば、最低限必要なパッケージもまとめてインストールされます。簡単ですね!

ネットワークの設定

libvirt導入時にデフォルトでブリッジが作成されますが、NAT接続用のブリッジとなり、そのままでは外部から仮想マシンへの接続ができないため、ブリッジを作成します。

# nmcli con add type bridge ifname br0 con-name br0
# nmcli con modify br0 ipv4.method manual ipv4.address "198.51.100.10/24" ipv4.gateway "198.51.100.1"  ipv4.dns "8.8.8.8"
# nmcli con modify br0 ipv6.method ignore
# nmcli con add type bridge-slave ifname ens3 master br0
# nmcli con del ens3;systemctl restart NetworkManager

インストールとネットワーク設定後は一旦ホストサーバーごと再起動して各サービスを起動させます。

OSのISOファイル設置

仮想マシンへのOSインストール用ISOファイルを用意します。
とりあえず今回はAlmaLinux9のISOを利用します。
デフォルトでイメージ用ディレクトリがあるので、以下へ保存しましょう。

/var/lib/libvirt/images/AlmaLinux-9-latest-x86_64-boot.iso

仮想マシンの作成

では仮想マシンを作成します。
仮想マシンの作成はvirt-install、各種操作はvirshコマンドで実行可能です。

# virt-install --name al9test --memory 2048 --vcpus 2 --disk size=50 --network bridge=br0 --location /var/lib/libvirt/images/AlmaLinux-9-latest-x86_64-boot.iso --nographics --extra-args="console=tty0 console=ttyS0,115200n8"

各オプションパラメータはだいたい以下の内容です。

name 仮想マシン名
memory メモリサイズ(MiB)
vcpus 仮想コア数
disk size指定で対象サイズ(GiB)のディスクイメージを自動で作成し割り当てられます。作成済みのイメージを設定することも可能です。
network 仮想ネットワークの指定です。今回はブリッジモードで、対象ブリッジのインタフェースを指定します。他にNICへの直接接続等も可能。
localtion インストール用ISOファイルを指定しています。ISOをドライブにマウントするのではなく、OS直接インストールするためlocation指定になっていますが、GUI利用の場合はcdromオプションでマウントしたりします。
extra-args カーネル起動時の追加パラメータを指定できます。今回はシリアルコンソール接続のために指定している値で、記載内容はおまじないのようなやつです。

 

上記コマンドを実行すると仮想マシン作成後にコンソール接続した状態となり、しばらくするとOSインストールプロセスが開始されます。
GUIを利用する方法もありますが、準備が面倒な場合はとりあえずこれで、、
各種設定を指定し、実行すればOSインストールが完了します。

作成中や作成後、仮想マシンのネットワーク設定を行うと外部から仮想マシンIPアドレスに指定した198.51.100.20へも無事ping通信ができています。
インストール後、コンソール接続は Ctrl+] で解除可能です。

起動した仮想マシンで各種操作も問題ないですね。

KVMの各種操作

KVMのホストサーバーから、各種操作が可能です。

仮想マシン一覧の表示

virsh listコマンドで一覧が表示可能です。

# virsh list --all
 Id   Name      State
-------------------------
 2    al9test   running

仮想マシンと状態が表示されます。
allオプションを付けない場合は、稼働中のものだけ表示されます。

仮想マシンの停止

virsh shutdownコマンドで停止を実行可能です。

# virsh shutdown al9test
Domain 'al9test' is being shutdown

# virsh list --all
 Id   Name      State
--------------------------
 -    al9test   shut off

停止しましたね。

仮想マシンの起動

virsh startコマンドで起動可能です。

# virsh start al9test
Domain 'al9test' started

# virsh list --all
 Id   Name      State
-------------------------
 3    al9test   running

停止していた仮想マシンが起動しました。

仮想マシンの再起動

virsh rebootコマンドで再起動可能です。

# virsh reboot al9test
Domain 'al9test' is being rebooted

仮想マシンの強制停止

仮想マシンがハングアップやフリーズし、shutdownでは停止できないことがあります。
強制停止する場合は、virsh destroyコマンドで実行可能です。

# virsh destroy al9test
Domain 'al9test' destroyed

# virsh list --all
 Id   Name      State
--------------------------
 -    al9test   shut off

destroyというと破壊されそうですが、削除されたりはしませんのでご安心を(とはいえ強制停止するので破損等が発生する可能性はありますが、、)。

まとめ

KVMを導入し、仮想マシン作成および簡単な操作を試してみました。
ネットワーク周りの設定は少し分かりづらいところもありますが、仮想化の機能がカーネルに組み込まれているため、導入もシンプルですぐに利用可能なのが便利ですね。
次回はもう少し色々と試してみようと思います。

それではまた!