CentOS8にKVMをインストールしてみる。(ゲストOSインストールまで)

仮想マシンで検証環境を作りたいと考え、手持ちのCentOS 8.1環境で構築できそうなKVMをインストールしてみることにしました。

KVMインストール

とにかくKVM環境に必要そうなものをインストールします。
調べながらインストールしたため単発でのインストールになっているが、ワンラインでもできるかもしれません。
また、virt-viewerをインストールしていますが、SSHでのリモート操作がメインなので不要かもしれません。
(そもそもGUIならvirt-managerもいるよね・・・)

yum install qemu-kvm
yum install virt-install
yum install virt-viewer

※ 2020/4/6 virshは上記で入るようなので、記載から削除しました。

コンソールの有効化

仮想マシンの操作には virsh の console オプションで仮想マシンにコンソール接続するのだが、インストール時はともかくそれ以降の接続では応答しなかった。
調べてみると、ホストOSのシリアルコンソールを有効化すればよいらしいので GRUB に設定する。

GRUBのコンフィグを作成するため、コンフィグ生成のためのファイルを編集します。

vi /etc/default/grub

末尾に以下の2行を追記します。

> GRUB_TERMINAL="serial"
> GRUB_SERIAL_COMMAND="serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1"

GRUBのコンフィグを作成するコマンドを実行します。

grub2-mkconfig -o /boot/grub2/grub.cfg

そしてホストOSを再起動します。

shutdown -r now

仮想マシンのインストール

以下のフォーマットでインストールを実施します。

virt-install\
 --hvm\
 -n (ゲストOSドメイン名)\
 -r (仮想マシンメモリサイズ:MB単位)\
 -f (仮想マシンイメージ保存場所のパス)\
 -s (仮想マシンディスクサイズ:GB単位)\
 --location=(インストールISOパス)\
 --graphics none\
 --extra-args="console=tty0 console=ttyS0"

上記でCLIのインストール設定が始まります。
自分が実際にインストール時に使ったコマンドは以下になります。

virt-install\
 --hvm\
 -n CentOS8-Guest1\
 -r 2000\
 -f /data/kvm-guest-C8--1.img\
 -s 10\
 --location=/var/material/CentOS-8.1.1911-x86_64-dvd1.iso\
 --graphics none\
 --extra-args="console=tty0 console=ttyS0"

インストール設定は通常と同じかと思いますので、省略します。

仮想マシンのインストール失敗時の対応

何度かインストール失敗し、作成途中のインストール処理を停止させることになったので対応手順を記載しておきます。
1.virshのコンソールを抜ける場合、「Ctrl + ]」でコンソールを抜けます。「^]」と書いてあったがすぐには思い当たらなかったため少し迷いました。
2.仮想マシンの状態を把握します。「--all」オプションをつけておかないと、シャットダウンしているゲストOSのドメイン名は表示されません。

virsh list --all

3.仮想マシンがシャットダウン状態になっていなければ、以下のコマンドで強制停止します。

virsh destroy (ゲストOSドメイン名)

4.仮想マシンの定義をKVMから削除します。

virsh undefine (ゲストOSドメイン名)

5.仮想マシンのイメージファイルを削除します。

rm (仮想マシンイメージ保存場所のパス)

上記でゲストOSのインストールまでになります。多分後日に続きます。