Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

第6章 仮想化

6.1. カーネルベースの仮想化

virtio-blk-data-plane を使用したブロック I/O パフォーマンスの向上

Red Hat Enterprise Linux 7 では、virtio-blk-data-plane I/O 仮想化機能がテクノロジープレビューとして利用できます。この機能は QEMU を拡張して、I/O パフォーマンス用に最適化された専用スレッドでディスク I/O を実行します。

PCI Bridge

QEMU は以前は最大 32 の PCI スロットしかサポートしていませんでした。Red Hat Enterprise Linux 7 は、テクノロジープレビューとして PCI Bridge を備えています。この機能により、ユーザーは 32 を超える PCI デバイスを設定できます。ブリッジの背後にあるデバイスのホットプラグはサポートされていないことに注意してください。

QEMU サンドボックス

Red Hat Enterprise Linux 7 は、ホストシステムとゲスト間の分離を改善するカーネルシステムコールフィルタリングを使用して、強化された KVM 仮想化セキュリティーを備えています。

QEMU 仮想 CPU ホットアドのサポート

Red Hat Enterprise Linux 7 の QEMU は、仮想 CPU (vCPU) のホットアドサポートを備えています。仮想 CPU (vCPU) を実行中の仮想マシンに追加して、ワークロードの要求を満たすか、ワークロードに関連付けられたサービスレベルアグリーメント (SLA) を維持することができます。vCPU ホットプラグは、Red Hat Enterprise Linux 7 のデフォルトのマシンタイプである pc-i440fx-rhel7.0.0 マシンタイプを使用する仮想マシンでのみサポートされることに注意してください。

複数のキュー NIC

複数のキュー virtio_net により、スケーラビリティが向上します。各仮想 CPU は、別の送信キューまたは受信キューと、他の仮想 CPU に影響を与えることなく使用できる別の割り込みを持つことができます。この機能は Linux ゲストでのみサポートされていることに注意してください。

マルチキュー virtio_scsi

マルチキュー virtio_scsi により、スケーラビリティが向上します。各仮想 CPU は、他の仮想 CPU に影響を与えることなく使用できる個別のキューと割り込みを持つことができます。この機能は Linux ゲストでのみサポートされていることに注意してください。

ライブマイグレーションのページデルタ圧縮

KVM ライブマイグレーション機能は、ゲストメモリーページを圧縮し、転送されるマイグレーションデータのサイズを縮小することで改善されました。この機能により、移行をより迅速に収束させることができます。

KVM での Hyper-V Enlightenment

KVM は、いくつかの Microsoft Hyper-V 機能で更新されました。たとえば、メモリー管理ユニット (MMU) と仮想割り込みコントローラーのサポート。Microsoft は、ゲストとホストの間に準仮想化 API を提供します。この機能の一部をホストに実装し、Microsoft の仕様に従って公開することで、Microsoft Windows ゲストのパフォーマンスを向上させることができます。これらの機能はデフォルトでは有効になっていないことに注意してください。Red Hat Enterprise Linux 7 では、Windows ゲスト仮想マシンは Advanced Mission Critical (AMC) などの特定のサブスクリプションプログラムでのみサポートされることに注意してください。

高帯域幅 I/O の EOI アクセラレーション

Red Hat Enterprise Linux 7 は、Intel および AMD の拡張機能を Advanced Programmable Interrupt Controller (APIC) に利用して、End of Interrupt (EOI) 処理を高速化します。古いチップセットの場合、Red Hat Enterprise Linux 7 は EOI アクセラレーション用の準仮想化オプションを提供します。

KVM ゲストの USB 3.0 サポート

Red Hat Enterprise Linux 7 では、USB 3.0 ホストアダプター (xHCI) エミュレーションをテクノロジープレビューとして追加することで、USB サポートが改善されています。

QEMU ゲストの I/O スロットリング

この機能は、QEMU ゲストのブロックデバイスの I/O スロットリングまたは制限を提供します。I/O スロットリングは、ディスク I/O 要求の処理を遅くします。これにより、1 つのゲストディスクの速度が低下し、ホスト上の他のタスク用に I/O 帯域幅が確保されます。現在、virtio-blk-data-plane デバイスを調整することはできないことに注意してください。

バルーニングとトランスペアレントヒュージページの統合

バルーニングとトランスペアレントヒュージページは、Red Hat Enterprise Linux 7 でより適切に統合されています。バルーンページは移動および圧縮できるため、巨大なページにすることができます。

ホストからシステムエントロピーを引き出す

新しいデバイス virtio-rng をゲスト用に設定できます。これにより、ホストからゲストがエントロピーを利用できるようになります。デフォルトでは、この情報はホストの /dev/random ファイルから取得されますが、ホストで使用可能なハードウェア乱数ジェネレーター (RNG) をソースとして使用することもできます。

ブリッジのゼロコピー送信

ブリッジゼロコピー送信は、大きなメッセージの CPU 処理を改善するためのパフォーマンス機能です。ブリッジのゼロコピー送信機能により、ブリッジを使用する場合のゲストから外部トラフィックへのパフォーマンスが向上します。この機能はデフォルトで無効になっていることに注意してください。

ライブ移行のサポート

Red Hat Enterprise Linux 6.5 ホストから Red Hat Enterprise Linux 7 ホストへのゲストのライブマイグレーションがサポートされています。

qemu-kvm でサポートを破棄

fstrim または mount -o discard コマンドを使用した破棄サポートは、ドメインの XML 定義の <driver> 要素に discard='unmap' を追加した後、ゲストで機能します。以下に例を示します。
<disk type='file' device='disk'>
	<driver name='qemu' type='raw' discard='unmap'/>
  <source file='/var/lib/libvirt/images/vm1.img'>
  ...
</disk>

NVIDIA GPU デバイスの割り当て

Red Hat Enterprise Linux 7 は、エミュレートされた VGA へのセカンダリーグラフィックスデバイスとして、NVIDIA プロフェッショナルシリーズグラフィックスデバイス (GRID および Quadro) のデバイス割り当てをサポートします。

準仮想化チケットロック

Red Hat Enterprise Linux 7 は、CPU がオーバーサブスクライブされた Red Hat Enterprise Linux 7 ホスト上で実行される Red Hat Enterprise Linux 7 ゲスト仮想マシンのパフォーマンスを向上させる準仮想化チケットロック (pvticketlocks) をサポートします。

割り当てられた PCIe デバイスでのエラー処理

Advanced Error Reporting (AER) を備えた PCIe デバイスがゲストに割り当てられているときにエラーが発生した場合、影響を受けるゲストは、実行中の他のゲストやホストに影響を与えることなく停止されます。デバイスのホストドライバーがエラーから回復した後、ゲストを元に戻すことができます。

Q35 チップセット、PCI Express バス、および AHCI バスエミュレーション

KVM ゲスト仮想マシンでの PCI Express バスのサポートに必要な Q35 マシンタイプは、Red Hat Enterprise Linux 7 でテクノロジープレビューとして利用できます。AHCI バスは、Q35 マシンタイプに含めることのみがサポートされており、Red Hat Enterprise Linux 7 のテクノロジープレビューとしても利用できます。

VFIO ベースの PCI デバイス割り当て

Virtual Function I/O (VFIO) ユーザー空間ドライバーインターフェイスは、KVM ゲスト仮想マシンに、改善された PCI デバイス割り当てソリューションを提供します。VFIO は、デバイス分離のカーネルレベルの適用を提供し、デバイスアクセスのセキュリティーを向上させ、セキュアブートなどの機能と互換性があります。VFIO は、Red Hat Enterprise Linux 6 で使用されている KVM デバイス割り当てメカニズムを置き換えます。

Intel VT-d Large Pages

Red Hat Enterprise Linux 7 上の KVM ゲスト仮想マシンで Virtual Function I/O (VFIO) デバイス割り当てを使用する場合は、入出力メモリ管理ユニット (IOMMU) によって 1GB ページが使用されるため、I/O 操作の TLB (Translation Lookaside Buffer) オーバーヘッドが削減されました。2MB および 1GB のページサイズがサポートされています。VT-d ラージページ機能は、最近の特定の Intel ベースのプラットフォームでのみサポートされています。

KVM クロック取得時間のパフォーマンス

Red Hat Enterprise Linux 7 では、vsyscall メカニズムが拡張され、KVM ゲストのユーザー空間からのクロックの高速読み取りがサポートされるようになりました。Red Hat Enterprise Linux 7 ホストで Red Hat Enterprise Linux 7 を実行しているゲスト仮想マシンでは、時刻を頻繁に読み取るアプリケーションのパフォーマンスが向上します。

QCOW2 バージョン 3 イメージフォーマット

Red Hat Enterprise Linux 7 は、QCOW2 バージョン 3 イメージ形式のサポートを追加します。

改善されたライブマイグレーション統計

ライブマイグレーションに関する情報を使用して、パフォーマンスを分析および調整できるようになりました。改善された統計には、合計時間、予想されるダウンタイム、および使用されている帯域幅が含まれます。

ライブマイグレーションスレッド

KVM ライブマイグレーション機能は、独自のスレッドを使用するようになりました。その結果、移行によってゲストのパフォーマンスが実質的に影響を受けることはありません。

キャラクターデバイスとシリアルポートのホットプラグ

Red Hat Enterprise Linux 7 では、新しいキャラクターデバイスを使用した新しいシリアルポートのホットプラグがサポートされるようになりました。

AMD Opteron G5 のエミュレーション

KVM は AMD Opteron G5 プロセッサーをエミュレートできるようになりました。

KVM ゲストでの新しい Intel 命令のサポート

KVM ゲストは、Intel 22nm プロセッサーがサポートする新しい命令を使用できます。これらには以下が含まれます。
  • 浮動小数点融合乗加算。
  • 256 ビットの整数ベクトル。
  • ビッグエンディアン移動命令 (MOVBE) のサポート。
  • または HLE/HLE+。

VPC および VHDX ファイル形式

Red Hat Enterprise Linux 7 の KVM には、Microsoft Virtual PC (VPC) および Microsoft Hyper-V 仮想ハードディスク (VHDX) ファイル形式のサポートが含まれています。これらの形式は、読み取り専用モードでのみサポートされていることに注意してください。

libguestfs の新機能

libguestfs は、仮想マシンのディスクイメージにアクセスして変更するためのツールセットです。Red Hat Enterprise Linux 7 に含まれる libguestfs には多くの改善が含まれており、その中で最も注目すべきものは次のとおりです。
  • SELinux または sVirt 保護を使用した安全な仮想化により、悪意のある不正なディスクイメージに対するセキュリティーが強化されます。
  • リモートディスクは、最初に Network Block Device (NBD) を介して検査および変更できます。
  • 特定のアプリケーションでパフォーマンスを向上させるために、ディスクをホットプラグすることができます。

WHQL 認定の virtio-win ドライバー

Red Hat Enterprise Linux 7 には、最新の Microsoft Windows ゲスト、つまり Microsoft Windows 8、8.1、2012、および 2012 R2 用の Windows Hardware Quality Labs (WHQL) 認定の virtio-win ドライバーが含まれています。Red Hat Enterprise Linux 7 では、Windows ゲスト仮想マシンは Advanced Mission Critical (AMC) などの特定のサブスクリプションプログラムでのみサポートされることに注意してください。

KVM でのホストおよびゲストのパニック通知

新しい pvpanic 仮想デバイスを仮想化スタックに配線して、ゲストパニックによって libvirt が通知イベントを管理アプリケーションに送信できるようにすることができます。
kdump メカニズムとは対照的に、pvpanic はゲストカーネルでメモリーを予約する必要はありません。依存パッケージをゲストにインストールする必要はありません。また、pvpanic のダンプ手順はホストによって制御されるため、ゲストは最小限の範囲でしか連携しません。
パニックメカニズムを設定するには、virsh edit を実行して XML ファイルを開いて編集することにより、次のスニペットを Domain XML devices 要素に配置します。
<devices>
  <panic>
    <address type='isa' iobase='0x505'/>
  </panic>
</devices>
次のスニペットを指定すると、クラッシュしたドメインのコアがダンプされます。ドメインを再起動すると、同じ設定設定が使用されます。
<on_crash>coredump-destroy</on_crash>