仮想マシン
 Computer >> コンピューター >  >> ソフトウェア >> 仮想マシン

CentOS/RHELへのKVMハイパーバイザー導入ガイド:インストールからVM作成・管理まで

本記事では、Linux RHELまたはCentOSが稼働するサーバーにKVMハイパーバイザーをインストールし、構成する手順を詳しく解説します。KVM上での仮想マシンの作成方法、設定変更、ゲストOSのインストール手順に加え、仮想マシンを管理するための代表的なコマンドもあわせて紹介します。

KVM(Kernel-based Virtual Machine)とは

KVM(Kernel-based Virtual Machine)は、Intel VTやAMD SVMといったCPUのハードウェア仮想化技術を活用するLinux標準のハイパーバイザーです。KVMを利用すれば、仮想ネットワークアダプター、仮想ディスク、仮想グラフィックカードなど、独自の仮想ハードウェアを備えた隔離された仮想マシンを作成できます。ゲストOSはLinuxに限らず、Windowsなど任意のOSをインストールできる点も大きな特徴です。

CentOS/RHELへのKVMのインストール手順

KVMをサーバーに構成する際は、まずCPUがハードウェア仮想化に対応しているかどうかを確認しましょう。サーバーのコンソールで以下のコマンドを実行します。

# cat /proc/cpuinfo | egrep "(vmx|svm)"

プロセッサーがVT-xに対応していれば、次のような出力が表示されます。

CentOS/RHELへのKVMハイパーバイザー導入ガイド:インストールからVM作成・管理まで

コマンドが何も返さない場合でも、CPU自体は仮想化に対応している可能性があります。その場合は、サーバーのBIOS設定で仮想化機能が無効化されていないか確認してください。Intel Virtualization TechnologySVM MODEといった項目を探して有効化します。

ここではVT-xが有効になっている前提で、yum/dnfを使って必要なパッケージをインストールします。

# yum install libvirt libvirt-python libguestfs-tools qemu-kvm virt-install –y

  • qemu-kvm — KVMハイパーバイザー本体
  • libvirt — 仮想化を管理するためのライブラリ群
  • virt-install — コマンドラインからKVM仮想マシンを操作するCLIツール

多数のパッケージがサーバーにインストールされるため、途中でエラーが発生していないか必ず確認してください。

続いて、libvirtdサービスを自動起動に登録し、起動します。

# systemctl enable libvirtd
# systemctl start libvirtd

CentOS/RHELへのKVMハイパーバイザー導入ガイド:インストールからVM作成・管理まで

kvm_intelおよびkvmカーネルモジュールが正しくロードされているかも確認しておきましょう。

# lsmod | grep kvm

kvm_intel 188688 0
kvm 636931 1 kvm_intel
irqbypass 13503 1 kvm

コマンドが何も返さない場合は、ホストを再起動してから再度確認してください。

KVM用ブリッジネットワークの作成と構成

まず、仮想マシンのディスクイメージとISOファイルを保存するためのディレクトリを作成します。

# mkdir -p /vz/{disk,iso}

仮想マシンにインターネットアクセスを提供するには、ブリッジによるネットワーク構成が必要です。そのためにbridge-utilsパッケージを使用します。以下のコマンドでインストール済みかどうかを確認できます。

# rpm -qa | grep bridge-utils

未インストールの場合は、次のコマンドで導入してください。

# yum install bridge-utils -y

パッケージ導入後、virbr0というネットワークインターフェースがOS上に現れます。ip aコマンドで確認できます。

CentOS/RHELへのKVMハイパーバイザー導入ガイド:インストールからVM作成・管理まで

ブリッジを作成するには、サーバーの物理NICの設定ファイルを編集します。作業前に必ずバックアップを取っておきましょう。

# cp /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 /etc/sysconfig/network-scripts/ifcfg-enp1s0f0_bak — 設定ファイルのバックアップ
# nano /etc/sysconfig/network-scripts/ifcfg-enp1s0f0 — エディターで開いて編集

ファイルの内容をすべて削除し、以下の内容に置き換えます。

DEVICE="enp1s0f0"
ONBOOT="yes"
BRIDGE=br0

インターフェース名は環境によって異なるため、ip aコマンドで実際の名称を確認して指定してください。

次に、ブリッジ用の設定ファイルを新規作成します。

# nano /etc/sysconfig/network-scripts/ifcfg-br0
以下の内容を記述します。

DEVICE="br0"
TYPE=BRIDGE
ONBOOT=yes
BOOTPROTO=static
IPADDR="サーバーのIPアドレス"
NETMASK="255.255.255.0"
GATEWAY="デフォルトゲートウェイ"
DNS1="8.8.8.8"
DNS2="8.8.4.4"

サーバーのIPアドレスとデフォルトゲートウェイは、ご自身の環境に合わせて指定してください。設定ファイルの編集が完了したら、ネットワークサービスを再起動します。

# service network restart

ネットワーク再起動後にサーバーへアクセスできなくなった場合は、ホスト全体の再起動を試みてください。ブリッジが正しく認識されるまで再起動が必要になるケースがあります。

ブリッジの状態は以下のコマンドで確認できます。

# brctl show

bridge name bridge id STP enabled interfaces
br0 8000.ac1f6b654321 no enp1s0f0
virbr0 8000.525400abcdef1 yes virbr0-nic

最後に、ネットワークトラフィックの転送を有効化します。

# echo -e "net.ipv4.ip_forward=1" >> /etc/sysctl.conf && sysctl -p

その後、libvirtdを再起動すれば、KVMの基本的なネットワーク設定は完了です。これで仮想マシンを作成できる状態になりました。

KVMでの仮想マシン作成

仮想マシンを作成する前に、公式ミラーサイトからCentOS 8のISOイメージを/vz/isoディレクトリへダウンロードしておきます。

# cd /vz/iso && wget https://mirror.imt-systems.com/centos/8.3.2011/isos/x86_64/CentOS-8.3.2011-x86_64-dvd1.iso

新しいKVM仮想マシンを作成するには、virt-installコマンドを以下のように実行します。

virt-install -n test-centosvm \
--noautoconsole \
--network=bridge:br0 \
--ram 2048 --arch=x86_64 \
--vcpus=4 --cpu host --check-cpu \
--disk path=/vz/disk/test-centosvm.img,size=32 \
--cdrom /vz/iso/CentOS-8.3.2011-x86_64-dvd1.iso \
--graphics vnc,listen=IP,password=p@sswdr0w1 \
--os-type linux --os-variant=rhel7 --boot cdrom,hd,menu=on

  • test-centosvm — 作成する仮想マシンの名前
  • noautoconsole — VM作成後にコンソールへ自動接続しない
  • network — ネットワークタイプ(ここではブリッジを指定)
  • ram — 仮想マシンに割り当てるメモリ容量
  • vcpus — 割り当てるCPUコア数(vCPU構成)
  • disk — 仮想ディスクの指定。pathはディスクの保存先、sizeは容量(GB)。後から拡張・縮小も可能
  • cdrom — 仮想CD-ROM。ゲストOSのインストール用ISOイメージをマウントする
  • graphics — グラフィカルコンソールへの接続パラメーター。ここではVNCを使用するため、listenにはKVMサーバーのIPアドレスと、VMコンソール接続用のパスワードを指定する

ホスト起動時に仮想マシンを自動的に立ち上げたい場合は、次のコマンドを実行します。

# virsh autostart test-centosvm

VNCでKVM仮想マシンに接続してOSをインストールする方法

VNC経由でKVM仮想マシンに接続するには、まずVMが待ち受けているポート番号を調べます。

# virsh vncdisplay test-centovms

IP:0

0という表示は、VNC接続ポートが5900番であることを意味します。別の数値が返された場合は、5900にその数値を加えたものが実際のポート番号になります。

VNCクライアントにはTightVNCを使用します。TightVNCを起動し、サーバーのIPアドレスと先ほど取得したVNCポートを「::」(ダブルコロン)で区切って指定してください。

CentOS/RHELへのKVMハイパーバイザー導入ガイド:インストールからVM作成・管理まで

Connectをクリックし、VM作成時に設定したパスワードを入力します。正しく接続できればサーバーコンソールが表示され、CentOS(またはマウントした他のゲストOSイメージ)のインストール画面が立ち上がります。

CentOS/RHELへのKVMハイパーバイザー導入ガイド:インストールからVM作成・管理まで

サーバーでファイアウォールが有効になっている場合は、firewalld/iptablesでVNC用のポート5900〜5910を開放しておきましょう(10ポートあれば十分です)。ゲストOSのインストール完了後は、サーバーコンソールから仮想マシンを起動します。

CentOS/RHELへのKVMハイパーバイザー導入ガイド:インストールからVM作成・管理まで

KVM仮想マシンをシャットダウンするには、次のコマンドを使用します。

# virsh shutdown test-centosvm

登録されているすべてのKVM仮想マシンの一覧を表示するには、以下を実行します。

# virsh list --all

virshコマンドを使えば、メモリやCPU、ディスク、ネットワークインターフェースの追加など、サーバーコンソールからの柔軟なVM管理が可能です。GUIでの操作を好む場合は、virt-managerというKVM向けグラフィカル管理ツールを利用するとよいでしょう。

以上でKVMホストの基本構成は完了です。KVMでは、サーバーのリソースとニーズに応じて、必要な台数の仮想マシンを自由に作成できます。

  1. CentOS/RHELでBashの自動補完(タブ補完)をインストールして有効化する方法

    Bash(Bourne Again Shell)は、間違いなく最も広く使われているLinuxシェルです。多くのLinuxディストリビューションでデフォルトシェルとして採用されているのも納得でしょう。Bashの魅力的な機能の一つが、組み込みの「自動補完(オートコンプリート)」機能です。 この機能は「TAB補完」とも呼ばれ、コマンドの入力を簡単に完成させることができます。コマンドの一部を入力した状態で[Tab]キーを押すと、残りのコマンドや引数が自動的に補完されます。候補が複数ある場合は、すべての候補が一覧表示されます。 Bashだけでなく、近年のほぼすべてのモダンなLinuxシェルにはコマンド補

  2. Windows 10にXAMPPをインストールして設定する方法【初心者向け完全ガイド】

    Windows 10へのXAMPPのインストールと設定:PHPでWebサイトを開発する際には、PHPの開発環境を提供し、バックエンドとフロントエンドを接続するためのツールが必要になります。ローカル環境でWebサイトをテストできるソフトウェアはXAMPPやMongoDBなど多数存在しますが、それぞれに長所と短所があります。このガイドでは、Windows 10向けのXAMPPに焦点を当て、インストールから設定までの手順を詳しく解説します。 XAMPPとは? XAMPPは、Apache Friendsによって開発されたオープンソースのクロスプラットフォーム対応Webサーバーです。PHPを使ってWeb