OSS Fan ~OSSでLinuxサーバ構築~

このエントリーをはてなブックマークに追加

Oracle Linux 8.4へインストールしたKVMで仮想マシンを作成

カテゴリ:OSSセットアップ | ソフトウェア:KVM | タグ:
最終更新日:2021/09/11 | 公開日:2021/09/08

目次

概要

 KVMの仮想マシンを作成するのに少し手こずったので手順を残しておきます。 virt-install コマンドで仮想マシンの作成とディスクイメージの作成を同時に行い、 ディスクイメージをスパースファイルに指定しました。 しかし、ディスクメージがスパースファイルにならず、作成時に指定したサイズ(今回は80GB)で ホストOSのストレージプールを消費してしまいました。 そこで、qemu-img コマンドで先にディスクイメージを作成すると、期待通りスパースファイルで作成されましたので、 ひと手間かかりますが、ディスクイメージの作成と仮想マシンの作成を分けて実施する手順としました。

構成

環境構成

 Oracle Linux 8.4のKVM仮想化環境を利用しています。

サーバ構成

ハードウェア

 KVM導入済みホストOSのハードウェアスペックは以下の通りとなっています。

■ハードウェアスペック
項目内容
vCPU6コア
メモリ10GB
ネットワークアダプタ1 ※数
ハードディスク180GB
ハードディスク2200GB

OS

Oracle Linux Server release 8.4 x86_64

モジュール

  • virt (仮想化モジュール)

主要パッケージ

  • virt-install-2.2.1-4.0.1.el8.noarch.rpm
  • virt-viewer-9.0-9.el8.x86_64.rpm

仮想マシン構成

仮想マシンスペック

 本手順で作成するKVMの仮想マシンスペックは以下のとおりとしています。

■スペック
項目内容
vCPU2コア
メモリ2GB
ハードディスク80GB

OS

AlmaLinux release 8.4 (Electric Cheetah) x86_64

環境構築

QEMUディスクイメージ作成

ディスクイメージ作成

 qemu-img コマンドでディスクイメージを作成します。 後続の仮想マシン作成手順の中で virt-install コマンドで一緒に作成することもできますが、 スパースファイルを指定して作成してもスパースファイルにならなかったので、 対策として先にディスクイメージの作成を行っています。 ディスクイメージの作成場所はストレージプールのパス(今回の環境では /vmdata/ )内にしています。

# qemu-img create -f qcow2 /vmdata/vm001.qcow2 80G
Formatting '/vmdata/vm001.qcow2', fmt=qcow2 size=85899345920 cluster_size=65536 lazy_refcounts=off refcount_bits=16

ディスクイメージ作成後のサイズ確認

 80GBのディスクイメージを作成しましたが、作成後にディスクイメージのファイルサイズを確認すると、 約198KBとなっています。スパースファイルとして作成できています。

# ls -l /vmdata/vm002.qcow2
-rw-r--r-- 1 root root 197888  9月  7 22:22 /vmdata/vm001.qcow2

仮想マシンの作成

仮想マシンの作成と起動

 virt-install コマンドで仮想マシンを作成します。 以下のコマンドを実行すると、指定したオプションに沿って仮想マシンが作成された後、 AlmaLinuxのインストールディスク(ISOファイル)を読み込んでインストーラが起動します。

# virt-install \
> --name vm001 \
> --vcpus 2 \
> --memory 2048 \
> --cdrom /vmdata/isos/AlmaLinux-8.4-x86_64-dvd.iso \
> --os-variant almalinux8 \
> --disk path=/vmdata/vm001.qcow2 \
> --network network=bridge-br0 \
> --graphics vnc,port=5901,listen=0.0.0.0 \
> --boot uefi
WARNING  グラフィックスが要求されていますが DISPLAY 変数が設定されていません。virt-viewer を起動できません。
WARNING  ゲストのコンソールがないため、デフォルト値 --wait -1 を適用します。

インストールの開始中...
Domain installation still in progress.
Waiting for installation to complete.

 標準出力としてはここで止まってプロンプトが返ってこない状態になりますが、 作成した仮想マシンではゲストOS(今回はAlmaLinux)のインストールが開始されています。

ゲストOSのインストール

 KVMが稼働しているホストOSのIPアドレス(今回は 192.168.0.52)と virt-install コマンドのオプションで指定した VNC接続用ののポート番号(今回は 5901)を指定してVNCクライアントで接続するとお馴染みのAlmaLinuxのインストール画面が表示されます。

 以下はUltraVNC Viewer 1.3.2で接続した場合のゲストOS(AlmaLinux)のインストール画面です。

 インストール手順は特に特殊なものはないので割愛しますが、注意点としては、 virt-installでネットワークはホストOSの仮想スイッチ(ブリッジ)に接続していますので、 ホストOSと同じサブネットに接続されている前提でネットワークの設定を行います。 また、UEFIブートを指定していますので、ディスクの構成時に /boot/efi を作成する必要があります。 ゲストOSのインストールが完了すると以下の画面が表示されます。

 [システムの再起動]ボタンをクリックするとゲストOS(AlmaLinux)の再起動が開始されます。

仮想マシンの作成完了

 ゲストOSの再起動の過程でシャットダウンが終わると virt-install コマンドのプロンプトが返ってきます。

インストールの開始中...
Domain installation still in progress.
Waiting for installation to complete.
※ゲストOSインストール後の再起動を実行すると以下の部分が表示されプロンプトが返ってくる※
ドメインがシャットダウンしました。続けています。
仮想マシンの作成が完了しました。
ゲストを再起動しています。
#

 ゲストOSの再起動が終わるとVNCの画面にはログイン画面が表示されています。

起動中の仮想マシンの確認

 上記の流れで仮想マシンのインストールを行うと、仮想マシンとしては起動状態となっていますので、 ホストOS上で仮想マシンの一覧を表示すると「状態」が「実行中」と表示されます。

# virsh list
 Id   名前    状態
----------------------
 2    vm001   実行中

#

仮想マシンの停止

 仮想マシンの停止は接続しているVNCの画面やTeraTerm接続でシャットダウンを実行することで停止できますが、 以下のようにホストOS上から virsh コマンドを実行することでも停止することができます。 VNCで接続していた場合はここで切断されます。

# virsh shutdown vm001
ドメイン vm001 はシャットダウン中です

#

仮想マシンの停止確認

 virsh list コマンドは起動中の仮想マシンしか表示されませんので、停止中の仮想マシンも表示するには --all オプションを指定して実行します。作成した仮想マシンの「状態」が「シャットオフ」と表示されます。

# virsh list --all
 Id   名前            状態
------------------------------------
 -    almalinux84-1   シャットオフ
 -    almalinux84-2   シャットオフ
 -    oraclelinux84   シャットオフ
 -    vm001           シャットオフ ←今回作成した仮想マシン

#

ゲストOSインストール後のディスクイメージのサイズ確認

 作成した仮想マシンにゲストOSとしてAlmaLinux 8.4をインストールした後の状態で ディスクイメージのサイズは2.7GB程度となっています。 引き続きスパースファイルとして存在できています。

# ls -l /vmdata/vm001.qcow2
-rw-r--r-- 1 root root 2752512000  9月  7 22:38 /vmdata/vm001.qcow2

参考にしたサイト