Linuxで仮想マシンを作成する方法(KVMを使用したカーネルベースの仮想マシン) – Part 1

Create Virtual Machines in Linux Using KVM – Part 1

このチュートリアルでは、RedHatベースのディストリビューション(RHEL/CentOS7およびFedora 21など)で仮想マシンを作成するためにKVMの導入、展開、使用方法について説明します。

KVMとは?

KVM(Kernel-based Virtual Machine)は、Linux用の完全仮想化ソリューションであり、Intel 64およびAMD 64ハードウェア上のLinuxカーネルに含まれており、2.6.20以降のメインラインLinuxカーネルで安定して高速に動作します。

KVMの特徴

KVMを使用すると、仮想プラットフォームを展開する際に得られる多くの便利な機能と利点があります。KVMハイパーバイザは以下の機能をサポートしています:

  1. オーバーコミット:システム上の利用可能なリソースよりも多くの仮想CPUやメモリを割り当てることができます。
  2. スリンプロビジョニング:柔軟なストレージの割り当てを可能にし、各ゲスト仮想マシンの利用可能なスペースを最適化します。
  3. ディスクI/Oスロットリング:仮想マシンからホストマシンに送信されるディスクI/Oリクエストに制限を設定する機能を提供します。
  4. 自動NUMAバランシング:NUMAハードウェアシステムで実行されるアプリケーションのパフォーマンスを向上させます。
  5. 仮想CPUのホット追加機能:実行中の仮想マシンの処理能力を必要に応じて増やす機能を提供し、ダウンタイムなしに処理能力を増やすことができます。

これは私たちの最初のKVM(Kernel-based Virtual Machine)シリーズであり、ここでは部分的に以下の記事をカバーしていきます。

Part 1: How to Create Virtual Machines in Linux Using KVM (Kernel-based Virtual Machine)

前提条件

システムがハードウェア仮想化拡張機能を持っていることを確認してください。Intelベースのホストの場合、次のコマンドを使用してCPU仮想化拡張機能[vmx]が利用可能であることを確認してください。

[root@server ~]# grep -e 'vmx' /proc/cpuinfo
Check Virtualization Support

AMDベースのホストの場合、CPU仮想化拡張機能[svm]が利用可能であることを確認してください。

[root@server ~]# grep -e 'svm' /proc/cpuinfo
Check CPU Virtualization Support

出力がない場合は、BIOSで仮想化拡張機能が有効になっていることを確認してください。KVMモジュールがカーネルにロードされていることを確認してください(デフォルトでロードされているはずです)。

[root@server ~]# lsmod | grep kvm

出力には、Intelベースのホストの場合はkvm_intel、AMDベースのホストの場合はkvm_amdが含まれている必要があります。

Check KVM Kernel Module

開始する前に、システムにはルートアカウントまたはsudo特権を持つノンルートユーザーが設定されており、システムが最新であることを確認してください。

[root@server ~]# yum update

SelinuxがPermissiveモードになっていることを確認してください。

[root@server ~]# setenforce 0

ステップ1:KVMのインストールと展開

1.まず、qemu-kvmqemu-imgパッケージをインストールします。これらのパッケージはユーザーレベルのKVMとディスクイメージマネージャーを提供します。

[root@server ~]# yum install qemu-kvm qemu-img

2.これで、ホスト上で仮想プラットフォームを展開するための最小限の要件が揃いましたが、

  1. 仮想マシンを管理するためのGUIツールを提供するvirt-manager
  2. 仮想環境を管理するためのCLツールであるvirshと呼ばれるlibvirt-client
  3. CLIから仮想マシンを作成するためのコマンド「virt-install」を提供するvirt-installなど、便利なツールもまだあります。
  4. libvirtは、ハイパーバイザーやホストシステムとやり取りするためのサーバー側およびホスト側のライブラリを提供します。

上記のツールを以下のコマンドを使用してインストールしましょう。

[root@server ~]# yum install virt-manager libvirt libvirt-python libvirt-client 

3. RHEL/CentOS7ユーザーの場合、Virtualization Client、Virtualization Platform、Virtualization Toolsなどの追加パッケージグループもインストールする必要があります。

[root@server ~]#yum groupinstall virtualization-client virtualization-platform virtualization-tools	

4. すべてのプラットフォームを管理する仮想化デーモンは「libvirtd」です。再起動しましょう。

[root@server ~]#systemctl restart libvirtd

5. デーモンを再起動した後、次のコマンドを実行して状態を確認します。

[root@server ~]#systemctl status libvirtd  
サンプル出力
libvirtd.service - Virtualization daemon 
   Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled) 
   Active: active (running) since Mon 2014-12-29 15:48:46 EET; 14s ago 
 Main PID: 25701 (libvirtd) 
Check Libvirtd Status

さて、次のセクションに移動して仮想マシンを作成しましょう。

ステップ2:KVMを使用してVMを作成する

前述のように、仮想プラットフォームを管理し、仮想マシンを作成するための便利なツールがいくつかあります。そのうちの1つが[virt-manager]と呼ばれるツールで、次のセクションで使用します。

6. virt-managerはGUIベースのツールですが、ターミナルからもGUIからも起動できます。

[root@server ~]#virt-manager
GNOMEを使用する
Start Virtual Manager in GNOME
GNOME Classicを使用する
Start Virtual Manager in GNOME Classic

7. ツールを起動した後、このウィンドウが表示されます。

Start Virtual Manager Window

8. デフォルトでは、マネージャーが直接localhostに接続されていますが、同じツールを使用して別のホストをリモートで管理することもできます。「ファイル」タブから、「接続の追加」を選択すると、このウィンドウが表示されます。

Add Connection

リモートホストに接続」オプションをチェックして、リモートサーバーのホスト名/IPを提供してください。マネージャーが起動するたびにリモートホストに接続する必要がある場合は、「自動接続」オプションをチェックしてください。

9. 新しい仮想マシンを作成する前に、ファイルをどこに保存するかを決定する必要があります。つまり、仮想マシンのためにボリュームディスク(仮想ディスク/ディスクイメージ)を作成する必要があります。

localhost を右クリックし、「詳細」を選択してから「ストレージ」タブを選択してください。

VM Storage Details
VM Storage Volume

10. 次に、「新しいボリューム」ボタンを押し、新しい仮想ディスク(ボリュームディスク)の名前と、「最大容量」セクションに必要なサイズを入力してください。

Create VM Storage Disk

割り当てサイズは、手順を完了した後に物理ディスクから直ちに割り当てられるディスクの実際のサイズです。

注意:これは「スリンプロビジョニング」と呼ばれるストレージ管理分野の重要な技術です。使用されたストレージサイズのみを割り当て、利用可能なサイズ全体を割り当てないようにします。

例えば、サイズが60Gの仮想ディスクを作成した場合、実際に使用されているのは20Gだけです。この技術を使用すると、物理ハードディスクから割り当てられるサイズは20Gであり、60Gではありません。

別の言葉で言えば、割り当てられた物理サイズは実際に使用されるサイズに応じて動的に割り当てられます。詳細はVMWare vStorage Thin Provisioningで詳細情報を見つけることができます。

11.新しいボリュームディスクのラベルがリストに表示されたことに注意してください。

VM Storage Label

また、新しいディスクイメージ(ボリュームディスク)のパスにも注意してください。デフォルトでは、/var/lib/libvirt/images以下にあります。次のコマンドを使用して確認できます。

[root@server Downloads]# ls -l /var/lib/libvirt/images
-rw-------. 1 root root 10737418240 Jan  3 16:47 vm1Storage.img

12.これで、仮想マシンを作成する準備が整いました。メインウィンドウで「VM」ボタンをクリックすると、このウィザードウィンドウが表示されます。

Create New Virtual Machine

仮想マシンを作成するために使用するインストール方法を選択します。今はローカルインストールメディアを使用しますが、後で残りの方法についても説明します。

13.今、使用するローカルインストールメディアを指定する時が来ました。2つのオプションがあります。

  1. 物理的な[CDROM/DVD]から。
  2. ISOイメージから。

このチュートリアルでは、ISOイメージの方法を使用します。したがって、ISOイメージのパスを指定する必要があります。

Select Installation Media

重要: 残念ながら、RHEL/CentOS7を使用している場合には非常に愚かなバグがあります。このバグにより、物理的な[CDROM/DVD]を使用してインストールすることができなくなり、オプションが次のようにグレーアウトされます。

Disabled CD DVD Rom in KVM

また、カーソルを合わせると、このエラーメッセージが表示されます。

CD DVD Not Supported in KVM

これまでにこのバグのための公式/直接の解決策はありませんが、同じ情報を以下で見つけることができます:https://bugzilla.redhat.com

14. ストレージが戻ってきましたので、以前に作成した仮想ディスクを使用して仮想マシンをインストールします。それは以下のようになります。

Enable Storage for Virtual Machine

15. 最後のステップでは、仮想マシンの名前や他の高度なオプションについて尋ねられますが、後で話し合いましょう。

Enter Name of Virtual Machine

何か構成を変更したい場合やカスタマイズを行いたい場合は、「インストール前に構成をカスタマイズ」オプションをチェックしてください。その後、完了をクリックして数秒待ち、ゲストOSを管理するためのコントロールコンソールが表示されます。

Virtual Machine Installation

結論

これで、KVMとは何か、GUIツールを使用して仮想プラットフォームを管理する方法、それを使用して仮想マシンを展開する方法、およびその他の素晴らしいことを学びました。

この記事の終わりではありませんが、今後の記事では、KVMに関連する他の重要なトピックについて議論します。前の知識を活用して実践し、次の部分に備えてください…

Source:
https://www.tecmint.com/install-and-configure-kvm-in-linux/