RHCSAシリーズ:KVMを使用した仮想化とゲスト管理の基礎–Part 15

辞書で「仮想化」という言葉を調べると、「実際のものではなく仮想的なバージョンを作成する」という意味であることがわかります。コンピューティングでは、仮想化という用語は、同じ物理的(ハードウェア)システムの上で、複数のオペレーティングシステムを同時に実行し、お互いを隔離する可能性を指します。この仮想化スキーマでは、ホストとして知られています。

RHCSA Series: Essentials of Virtualization and Guest Administration with KVM – Part 15

仮想マシンモニター(ハイパーバイザーとも呼ばれる)を使用することで、仮想マシン(ゲストと呼ばれる)は、基礎となるハードウェアから仮想リソース(CPU、RAM、ストレージ、ネットワークインターフェースなど)を提供されます。

このように考えると、仮想化の主な利点の1つは、コストの節約(機器やネットワークインフラストラクチャ、およびメンテナンスの努力の面で)と、必要なすべてのハードウェアを収容するために必要な物理的スペースの大幅な削減です。

この簡単な手順では、すべての仮想化方法を網羅することはできませんので、この件に関する詳細については、要約にリストされているドキュメントを参照することをお勧めします。

この記事は、RHEL 7での仮想化の基本を学ぶための出発点であり、コマンドラインユーティリティを使用したKVM(Kernel-based Virtual Machine)の詳細な議論ではないことに留意してください。

ハードウェア要件の確認とパッケージのインストール

仮想化を設定するためには、CPUがそれをサポートしている必要があります。次のコマンドを使用して、システムが要件を満たしているかどうかを確認できます:

# grep -E 'svm|vmx' /proc/cpuinfo

次のスクリーンショットでは、現在のシステム(AMD マイクロプロセッサーを搭載)が svm によって仮想化をサポートしていることがわかります。Intelベースのプロセッサーを使用している場合、上記のコマンドの結果には vmx が表示されます。

Check KVM Support

さらに、ホストのファームウェア(BIOS または UEFI)で仮想化機能を有効にする必要があります。

必要なパッケージをインストールしてください:

  1. qemu-kvm は、KVMハイパーバイザーのためのハードウェアエミュレーションを提供するオープンソースの仮想化ソフトウェアであり、qemu-img はディスクイメージを操作するためのコマンドラインツールを提供します。
  2. libvirt には、オペレーティングシステムの仮想化機能とやり取りするためのツールが含まれています。
  3. libvirt-python には、Pythonで書かれたアプリケーションが libvirt が提供するインターフェースを使用できるモジュールが含まれています。
  4. libguestfs-tools:仮想マシンのためのさまざまなシステム管理者向けコマンドラインツール。
  5. virt-install:仮想マシンの管理のためのその他のコマンドラインユーティリティ。
# yum update && yum install qemu-kvm qemu-img libvirt libvirt-python libguestfs-tools virt-install

インストールが完了したら、libvirtd サービスを起動および有効化してください。

# systemctl start libvirtd.service
# systemctl enable libvirtd.service

デフォルトでは、各仮想マシンは同じ物理サーバー内の他のマシンやホスト自体とのみ通信できます。ゲストがLAN内の他のマシンやインターネットにアクセスできるようにするには、ホスト(たとえばbr0)にブリッジインターフェースを設定する必要があります。そのためには、次の手順を実行します:

1.メインNICの設定ファイル(おそらく/etc/sysconfig/network-scripts/ifcfg-enp0s3)に次の行を追加します:

BRIDGE=br0

2.br0の設定ファイル(/etc/sysconfig/network-scripts/ifcfg-br0)を作成し、以下の内容を記述します(IPアドレス、ゲートウェイアドレス、DNS情報を変更する必要があることに注意してください):

DEVICE=br0
TYPE=Bridge
BOOTPROTO=static
IPADDR=192.168.0.18
NETMASK=255.255.255.0
GATEWAY=192.168.0.1
NM_CONTROLLED=no
DEFROUTE=yes
PEERDNS=yes
PEERROUTES=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=br0
ONBOOT=yes
DNS1=8.8.8.8
DNS2=8.8.4.4

3.最後に、パケット転送を有効にするために、/etc/sysctl.confで以下の変更を行い、現在のカーネル構成に反映させます:

net.ipv4.ip_forward = 1

# sysctl -p

この種のトラフィックを許可するようにfirewalldに通知する必要があるかもしれません。この操作が必要な場合は、このシリーズの記事(Part 11: Network Traffic Control Using FirewallD and Iptables)を参照してください。

Source:
https://www.tecmint.com/kvm-virtualization-basics-and-guest-administration/