仮想化スタートガイド
仮想化の概念について
概要
第1章 はじめに
1.1. 本書の対象者
- 仮想化が初めてで、その利点についての知識を求めている方。
- ご自分の環境に仮想化マシンの導入を検討している方。
- Red Hat が提供し、サポートする仮想化技術の全体像を把握されようとしている方。
1.2. Red Hat Enterprise Linux 6 における仮想化
1.3. Red Hat Enterprise Virtualization (RHEV)
1.4. ドキュメントスイート
- 『Red Hat Enterprise Linux 仮想化スタートガイド 』: 仮想化の概念、利点、ツールについて概説し、Red Hat の仮想化関連ドキュメントおよび製品の概要を記載しています。
- 『Red Hat Enterprise Linux 仮想化ホスト設定およびゲストインストールガイド』: 仮想化ソフトウェアのインストールおよび仮想化ホスト上のゲストマシンの設定について記載しています。
- 『Red Hat Enterprise Linux 仮想化管理ガイド』: virt-manager または virsh のいずれかを主要設定ツールとして使用した、ホスト、ネットワーク、ストレージ、デバイス、ゲストの管理について説明します。このガイドには、libvirt および QEMU についての参考情報と、トラブルシューティング情報も記載しています。
- 『Red Hat Enterprise Linux 仮想化セキュリティガイド』: Red Hat が提供する仮想化セキュリティーテクノロジーについての概要を説明しています。また、仮想化環境内のホスト、ゲスト、共有インフラストラクチャーおよびリソースを保護するための推奨事項も記載しています。
- 『Red Hat Enterprise Linux 仮想化のチューニングと最適化ガイド』: システムおよびゲスト仮想マシンで、仮想化パフォーマンスの機能とオプションを最大限に活用するためのヒント、コツ、アドバイスを記載しています。
- 『Red Hat Enterprise Linux V2V ガイド』: KVM、Xen および VMware ESX/ESX(i) のハイパーバイザーから Red Hat Enterprise Virtualization および libvirt で管理されている KVM への仮想マシンのインポートについて記載しています。
- 『Red Hat Enterprise Virtualization インストールガイド』: Red Hat Enterprise Virtualization 環境を準備し、セットアップする方法、および Red Hat Enterprise Virtualization 環境を最新リリースにアップグレードする方法について記載しています。さらに、ハイパーバイザーをセットアップする方法や、Red Hat Enterprise Virtualization 環境の初期設定を実行する方法についても概説しています。
- 『Red Hat Enterprise Virtualization 管理ガイド』: Red Hat Enterprise Virtualization 環境を最初にセットアップした後に設定し、管理する方法について記載しています。これには、ハイパーバイザーやストレージドメイン、および外部プロバイダーを環境に追加する方法や、仮想マシン、仮想ディスクおよびテンプレートなどのリソースを管理する方法、およびバックアップを取る方法や復元する方法などが含まれます。
- 『Red Hat Enterprise Virtualization ユーザーガイド』: 基本タブや拡張タブで提供される機能を含む Red Hat Enterprise Virtualization 環境のユーザーポータルの使い方、仮想マシンおよびテンプレートの作成および使用方法、さらにはリソース使用を監視する方法について記載しています。
- 『Red Hat Enterprise Virtualization テクニカルガイド』: Red Hat Enterprise Virtualization に特有の REST API、Python、Java ソフトウェア開発キット、およびコマンドラインツールの使用方法について記載しています。さらに、Red Hat Enterprise Virtualization の背後にある基盤となる技術コンセプトについて概説しています。
- 『Red Hat Enterprise Virtualization Manager リリースノート』: 現行リリースに固有の Red Hat Enterprise Virtualization Manager に関する情報が記載されています。
- 『Red Hat Enterprise Virtualization テクニカルノート』: 現行リリースと旧リリース間の変更点を記載しています。
注記
第2章 仮想化とは、マイグレーションとは
2.1. 仮想化とは
- 完全仮想化
- 完全仮想化は、プロセッサーのハードウェア機能を使用して、ゲストに対し、基盤となる物理システムの完全な抽出化を提供します。これにより、仮想マシンと呼ばれる新規の仮想システムが作成され、ゲストオペレーティングシステムは変更なしに実行可能となります。ゲストオペレーティングシステムとゲスト仮想マシン上のアプリケーションは、仮想化環境を認識せず、正常に実行されます。ハードウェア補助の仮想化は、Red Hat Enterprise Linux で KVM (カーネルベースの仮想マシン) を使用した完全仮想化に使用される技術です。
- 準仮想化
- 準仮想化は、仮想化ゲストに示されたソフトウェアとデータ構成のコレクションを使います。ゲストのソフトウェアを準仮想化環境で使用するには、ソフトウェアの変更が必要になります。Xen 準仮想化ゲストの場合と同様に、準仮想化はカーネル全体や入出力デバイスを仮想化するドライバーを包含することができます。
- ソフトウェアの仮想化 (またはエミュレーション)
- ソフトウェアの仮想化は、より遅いバイナリー変換と他のエミュレーション技術を使用して、変換されていないオペレーティングシステムを実行します。Red Hat Enterprise Linux はソフトウェアの仮想化に対応していません。
注記
2.2. マイグレーション
マイグレーションのタイプ
- オフラインマイグレーション
- オフラインマイグレーションでは、ゲスト仮想マシンを一時停止させて、仮想マシンのメモリーのイメージを目的のホストに移動します。次に、目的のホスト上で仮想マシンを再開し、仮想マシンがソースホスト上で使用していたメモリーを解放します。
- ライブマイグレーション
- ライブマイグレーションは、アクティブな仮想マシンを任意の物理ホストから別の物理ホストに移行するプロセスです。
2.2.1. 仮想マシンのマイグレーションの利点
- 負荷の分散
- ホストマシンがオーバーロードとなった場合、仮想マシンは単独でも複数でも、ライブマイグレーションで他のホストに移行できます。
- ホストのアップグレードやホストに変更を加える場合
- 任意のホスト上にあるハードウェアデバイスにアップグレード、追加、削除などの必要性が生じた場合、仮想マシンを安全に他のホストに移動させることができます。つまり、ホストに変更がなされたからといって、それに起因するダウンタイムをゲストが経験することはありません。
- 省エネ
- 仮想マシンを別のホストに再配分することで、アンロードされたホストシステムの電源を電力使用量の少ない時間帯にオフにして節電とコスト削減が可能になります。
- 地理的なマイグレーション
- 待ち時間の短縮や他の特別な状況のために、別の物理的場所に仮想マシンを移動することができます。
注記
2.3. 仮想化から仮想化へのマイグレーション (V2V)
virt-v2v
ツールが、Xen、KVN の別バージョン、VMware ESX、および Hyper-V からの仮想マシンを変換し、インポートします。
virt-v2v
ツールは、VHDX、VMDK、OVF、Raw、および qcow2 などの仮想ディスクイメージ形式で仮想マシンを変換し、インポートします。
注記
第3章 仮想化の利点と誤解
3.1. 仮想化コスト
- 省電力
- 仮想化により、複数の物理プラットフォームの必要性がほとんどなくなります。これは、マシン稼働や冷却に使われる電力の節約を意味し、エネルギー費用の削減につながります。マシンの消費電力と必要となる冷却を合わせると、複数の物理プラットフォー厶購入の初期費用は、仮想化の利用により大幅に削減されます。
- メンテナンスの省力化
- 物理システムから仮想化システムへの移行前に十分なプラニングを行うことで、メンテナンスにかかる時間は少なくなります。つまり、部品にかかる費用や人件費が削減されることになります。
- インストール済みソフトウェアの使用期限の延長
- 古いバージョンのソフトウェアは、新しいベアメタルマシン上では直接機能しない可能性があります。しかし、より大きく速い仮想システム上でこれらを稼働することにより、新しいシステムからのパフォーマンスを活用する一方で、古いソフトウェアの使用期限が延長される場合があります。
- 予測可能なコスト
- Red Hat Enterprise Linux のサブスクリプションは、仮想化サポートが固定料金なので、コスト予測が容易になります。
- スペースの節約
- サーバーをより少ないマシンに統合することは、必要な物理的スペースが減ることを意味します。つまり、通常サーバーハードウェアが占拠していたスペースを他の目的に使用できることになります。
3.2. 仮想化の習熟曲線
3.3. パフォーマンス
- Red Hat Enterprise Linux 6.4 および KVM は、IBM DB2 データベースと共に完全に仮想化された x86 環境で実行され、ベアメタルパフォーマンスの 88% を実現することで、業界をリードする TPC-C ベンチマークで結果を記録しました。データベースは、これまでリソース需要が高いために、ベアメタルのデプロイメントでのみ実行されており、データセンター内の仮想化する対象としては最後に残る候補の 1 つと見なされてきました。
- 業界標準であるSAP Sales and Distribution (SD) Standard Application Benchmark は、Red Hat Enterprise Linux 6.2 および KVM を同一ハードウェア上で稼働するベアメタルシステムと比較した場合、85%の仮想化効率を実証したとしています。
- Red Hat Enterprise Linux 6.1 および KVM は、標準性能評価法人 (Standard Performance Evaluation Corporation) が行った SPECvirt_sc2010 ベンチマークで記録的な仮想化パフォーマンスを達成しました。これは公開されている SPECvirt 結果のなかでは最高の仮想パフォーマンス得点となりました。SPECvirt_sc2010 メトリックは、仮想化データセンターサーバー内にあるシステムコンポーネントのエンドツーエンドのパフォーマンスを測定するものです。
注記
- 『Red Hat and IBM Achieve Leading Performance Benchmark Results』: http://www.redhat.com/about/news/archive/2013/2/red-hat-and-ibm-achieve-leading-performance-benchmark-results
- Red Hat ナレッジベース、『SAP-SD Benchmark running in a VM – Leadership Performance using RHEL 6 / KVM』 https://access.redhat.com/knowledge/articles/216943
- 『Standard Performance Evaluation Corporation (SPEC)』 http://www.spec.org
- 『Red Hat Achieves New Top Virtualization Performance Benchmark with HP』 http://investors.redhat.com/releasedetail.cfm?ReleaseID=617594
3.4. 障害回復
3.5. セキュリティー
3.5.1. 仮想化セキュリティーの特徴
SELinux は、Linux 用に Mandatory Access Control (MAC) を提供するために米国国家安全保障局などが開発しました。SELinux の管理下では、すべてのプロセスとファイルに タイプ が与えられ、アクセスはきめ細かい管理で制限されます。SELinux は攻撃者の能力を限定し、バッファオーバーフロー攻撃や権限エスカレーションといった多くの一般的なセキュリティーエクスプロイトを防ぎます。
sVirt は Red Hat Enterprise Linux 6 に導入されている技術のことで、 SELinux と仮想化を統合します。仮想マシンの使用時には Mandatory Access Control (MAC) を適用してセキュリティーを改善し、ホストや他の仮想マシンを目標とした攻撃経路として使用される可能性のあるハイパーバイザー内のバグに対してシステムを堅牢にします。
注記
3.6. サーバー向け仮想化と個人向け仮想化
3.6.1. 仮想化デプロイメントシナリオ
- 最大 3 台の物理ホストおよびゲスト 10 台の小規模デプロイメント: virt-manager
- 厳密なアップタイム要件やサービスレベルアグリーメントがないサーバー数台を稼働している小規模ビジネスでは、virt-managerのようなツールが役立ちます。この環境では、管理者 1 人が全体のインフラストラクチャーに責任を負い、コンポーネントの変更が必要な場合は、手順の柔軟性を維持することが重要です。この環境には、ウェブブラウザーやファイルおよびプリントサーバー、アプリケーションサーバーが含まれます。
- 大規模デプロイメントまたはミッションクリティカルなアプリケーション: Red Hat Enterprise Virtualization (RHEV)
- Red Hat Enterprise Virtualization (RHEV) のような完全仮想化プラットフォー厶は、大規模デプロイメントやミッションクリティカルなアプリケーションを稼働している企業に適しています。この環境では、物理インフラストラクチャーは IT 部門が必要になるほど大きく、ビジネス要件は新たなニーズに対する明確な対応が必要となります。Red Hat Enterprise Virtualization が適する大規模デプロイメントの例としては、ダウンタイムなしに継続的な稼働が必須となるデータベースや商用プラットフォーム、メッセージングシステムなどがあげられます。
- 管理アプリケーションを作成しているソフトウェア開発者: libvirt
- virt-manager と Red Hat Enterprise Virtualization (RHEV) の両方が libvirt を使用して仮想マシンを管理します。libvirt はソフトウェア開発者による管理アプリケーションの作成と適応を可能にする仮想化アプリケーションプログラミングインターフェース (API) です。
第4章 Red Hat 仮想化製品について
4.1. KVM および Red Hat Enterprise Linux での仮想化
- KVM とは
- KVM (カーネルベースの仮想マシン) とは、標準的な Red Hat Enterprise Linux 6 カーネルに組み込まれた AMD64 および Intel 64 ハードウェア上の Linux 向け完全仮想化ソリューションです。複数の変更されていない Windows および Linux のゲストオペレーティングシステムを実行することができます。Red Hat Enterprise Linux の KVM ハイパーバイザーは、libvirt API および (
virt-manager
やvirsh
などの) libvirt 向けにビルドされたツールで管理されます。仮想マシンは、これらのツールで管理されたマルチスレッドの Linux プロセスとして実行されます。 - オーバーコミット
- KVM ハイパーバイザーは システムリソースの オーバーコミット に対応しています。オーバーコミットとは、システム上で利用可能なリソースの容量を超える仮想化 CPU または仮想化メモリーを割り当てることです。メモリーのオーバーコミットにより、ホストはメモリーおよび仮想メモリーを活用してゲストの密度を高めることが可能になります。
重要
オーバーコミットは、システムの安定性へのリスクとなる可能性があります。KVMのオーバーコミットと必要な予防措置については 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。 - シンプロビジョニング
- シンプロビジョニングは柔軟なストレージの割り当てを可能にし、すべてのゲスト仮想マシンの利用可能なスペースを最適化します。これにより、ゲスト上では実際に利用可能なストレージよりも多くの物理ストレージがあるように見えます。これはストレージのみに関することで、CPUやメモリーの割り当てとは関係ないので、オーバーコミットではありません。しかし、オーバーコミットと同様の警告が適用されます。
重要
シンプロビジョニングは、システムの安定性へのリスクとなる可能性があります。KVMのシンプロビジョニングと必要な予防措置については 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。 - KSM
- KVM ハイパーバイザーが使用する Kernel Same-page Merging (KSM) により、KVM ゲストは同一メモリーページを共有することが可能になります。これら共有ページは通常、共通ライブラリーまたは同一の高使用データです。KSM はメモリー重複を防ぐことで同一または類似のゲストオペレーティングシステムのより高いゲスト密度を可能にします。
注記
KSM に関する詳細は、『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。 - QEMU ゲストエージェント
- QEMU ゲストエージェントはゲストオペレーティングシステム上で稼働し、ホストマシンによるゲストオペレーティングシステムへのコマンド発行を可能にします。
注記
QEMU ゲストエージェントに関する詳細は、 『Red Hat Enterprise Linux 6 Virtualization Host Configuration and Guest Installation Guide』 を参照してください。 - Hyper-V エンライト
- Red Hat Enterprise Linux 6.5 の KVM は、パフォーマンスと安定性を強化するために Windows ゲストが使用する Hyper-V と互換性のある機能を実装します。これにより、Windows ゲストのパフォーマンスは Microsoft Hyper-V ハイパーバイザー上で実行されているかのようになります。
注記
Hyper-V エンライトに関する詳細は、『Red Hat Enterprise Linux 6 仮想化ホスト設定およびゲストインストールガイド』 を参照してください。 - ディスク I/O スロットリング
- 複数の仮想マシンが同時に実行される場合、それらは過剰なディスク I/O を使用することでシステムのパフォーマンスに影響を与える可能性があります。KVM のディスク I/O スロットリングは、仮想マシンからホストマシンに送られるディスク I/O 要求に制限を設定する機能を提供します。これにより、1 台の仮想マシンが共有リソースを過剰に使用し、他の仮想マシンのパフォーマンスに影響を与えることを防ぐことができます。
注記
ディスク I/O スロットリングを使用する方法については、『Red Hat Enterprise Linux 6 仮想化のチューニングと最適化ガイド』 を参照してください。 - KVM ゲスト仮想マシンの互換性
- ご自分のプロセッサーが仮想化拡張に対応しているかどうかの確認方法および仮想化拡張の有効化に関する情報については、『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。Red Hat Enterprise Linux 6 サーバーには、サポートに関する制限がいくつかあります。Red Hat Enterprise Linux のプロセッサーおよびメモリー容量の制限については、以下のサイトで説明されています。
- ホストシステムについては、https://access.redhat.com/site/articles/rhel-limits を参照してください。
- KVM ハイパーバイザーについては、https://access.redhat.com/site/articles/rhel-kvm-limits を参照してください。
サポートされるオペレーティングシステムとホストおよびゲストの組み合わせの詳細な対応表については、 https://access.redhat.com/site/supported-hypervisors を参照してください。
4.2. libvirt および libvirt ツール
- ホスト上の仮想マシンを安全に管理する共通、一般的、かつ安定的な層
- ローカルシステムおよびネットワーク接続されたホストを管理する共通インターフェース
- 仮想マシンのプロビジョニング、作成、修正、監視、制御、移行、停止に必要なすべての API 。ただし、ハイパーバイザーがこれらの操作に対応している場合のみ。libvirt で複数のホストに同時アクセスはできますが、API はシングルノード操作に限られています。
- virsh
virsh
コマンドラインツールは、libvirt 管理 API 上で構築されており、グラフィカルなvirt-manager
アプリケーションの代替手段として作動します。virsh
コマンドは、権限を持たないユーザーは読み取り専用モードで、ルートアクセスでは完全な管理者機能を使用することができます。virsh
コマンドは仮想化管理のスクリプト作成に適しています。- virt-manager
virt-manager
は、仮想マシン管理用のグラフィカルなデスクトップツールです。グラフィカルなゲストコンソールへのアクセスが可能になり、仮想化管理や仮想マシン作成、移行、設定タスクが実行できます。仮想マシン、ホスト統計、デバイス情報、パフォーマンスグラフの表示機能も提供されます。ローカルハイパーバイザーとリモートハイパーバイザーは、単一インターフェースで管理可能です。
注記
virsh
および virt-manager に関する詳細は、 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。
4.3. 仮想化ハードウェアデバイス
- 仮想化デバイスおよびエミュレートされたデバイス
- 準仮想化デバイス
- 物理共有デバイス
4.3.1. 仮想化デバイスおよびエミュレートされたデバイス
- 仮想 CPU (vCPUS)
- ホストシステムはゲストに提示する CPU として、ホストCPUの数にかかわらず最大 160 の仮想 CPU を保持することが可能です。
- エミュレートされたグラフィックデバイス
- エミュレートされたグラフィックデバイスが 2 つ提供されます。これらのデバイスは SPICE プロトコルまたは VNC で接続することができます。
- Cirrus CLGD 5446 PCI VGA カード (cirrus デバイスを使用)
- Bochs VESA 拡張を搭載している標準的な VGA グラフィックカード (すべての非標準モードを含むハードウェアレベル)
- エミュレートされたシステムコンポーネント
- 以下のコアシステムコンポーネントは基本的なシステム機能を提供するためにエミュレートされます。
- Intel i440FX ホスト PCI ブリッジ
- PIIX3 PCI to ISA ブリッジ
- PS/2 マウスおよびキーボード
- EvTouch USB グラフィックタブレット
- PCI UHCI USB コントローラーおよび仮想化 USB ハブ
- エミュレートされたシリアルポート
- EHCI コントローラー、仮想化 USB ストレージ、USB マウス
- エミュレートされたサウンドデバイス
- Red Hat Enterprise Linux 6.1 以降では、エミュレートされた HDA サウンドデバイスである
intel-hda
が提供されます。このデバイスは以下のゲストオペレーティングシステムに対応しています。- Red Hat Enterprise Linux 6 (i386 および x86_64 アーキテクチャー)
- Red Hat Enterprise Linux 5 (i386 および x86_64 アーキテクチャー)
- Red Hat Enterprise Linux 4 (i386 および x86_64 アーキテクチャー)
- Windows 7 (i386 および x86_64 アーキテクチャー)
- Windows 2008 R2 (x86_64 アーキテクチャー)
以下の 2 種類のエミュレートされたサウンドドライバーも利用可能ですが、特定のゲストオペレーティングシステムとの互換性の問題で推奨されません。ac97
エミュレートされた Intel 82801AA AC97 Audio 互換サウンドカードes1370
エミュレートされた ENSONIQ AudioPCI ES1370 サウンドカード
- エミュレートされたウォッチドッグデバイス
- Red Hat Enterprise Linux 6 では、2 種類のエミュレートされたウォッチドッグデバイスが提供されます。ウォッチドッグは、仮想マシンがオーバーロードするか、または応答しない場合に仮想マシンを自動的に再起動するために使用できます。ウォッチドッグパッケージは、ゲスト上にインストールする必要があります。利用可能なデバイスは以下の 2 つです。
i6300esb
エミュレートされた Intel 6300 ESB PCI ウォッチドッグデバイス。 Red Hat Enterprise Linux versions 6.0 以降のゲストオペレーティングシステムに対応しており、使用が推奨されているデバイスです。ib700
エミュレートされた iBase 700 ISA ウォッチドッグデバイス。ib700
ウォッチドッグデバイスは、Red Hat Enterprise Linux 6.2 以降を使用するゲストにのみ対応しています。
これらのウォッチドッグデバイスは両方とも、Red Hat Enterprise Linux 6.2 以降のゲストオペレーティングシステムの i386 および x86_64 アーキテクチャーに対応しています。 - エミュレートされたネットワークデバイス
- エミュレートされたネットワークデバイスは 2 種類あります。
e1000
デバイスは、Intel E1000 ネットワークアダプター (Intel 82540EM、82573L、82544GC) をエミュレートします。rtl8139
デバイスは、 Realtek 8139 ネットワークアダプターをエミュレートします。
- エミュレートされたストレージドライバー
- ストレージデバイスとストレージプールは、これらのエミュレートされたデバイスを使用してストレージデバイスを仮想化ゲストにアタッチすることができます。ゲストは、エミュレートされたストレージドライバーを使用してストレージプールにアクセスします。すべての仮想デバイスと同様、ストレージドライバーはストレージデバイスではない点に注意してください。 バッキングストレージデバイスやファイル、 ストレージプールボリュームなどを仮想ゲストにアタッチするために使用するのがドライバーです。対応する任意のタイプのストレージデバイス、ファイル、ストレージプールボリュームをバッキングストレージデバイスにすることができます。
- エミュレートされたIDE ドライバー
- KVM は 2 種類のエミュレートされた PCI IDE インターフェースを提供します。エミュレートされた IDE ドライバーを使用して、最大 4 つの仮想 IDE ハードディスクまたは仮想 IDE CD-ROM ドライブの組み合わせを仮想マシンにアタッチすることができます。エミュレートされた IDE ドライバーは、仮想CD-ROM および DVD-R ドライブにも使用できます。
- エミュレートされたフロッピーディスクドライブドライバー
- エミュレートされたフロッピーディスクドライブドライバーは、仮想フロッピードライブの作成に使用されます。
4.3.2. 準仮想化デバイス
注記
- 準仮想化ネットワークデバイス (virtio-net)
- 準仮想化ネットワークデバイスは、仮想マシンにネットワークアクセスを提供する仮想ネットワークデバイスであり、入出力パフォーマンスを強化し、待ち時間を短縮します。
- 準仮想化ブロックデバイス (virtio-blk)
- 準仮想化ブロックデバイスは、高パフォーマンスの仮想ストレージデバイスであり、これにより、I/O パフォーマンスが強化され、待ち時間が短縮されます。準仮想化ブロックデバイスはハイパーバイザーによってサポートされ、仮想マシンにアタッチされます (フロッピーディスクドライブは例外で、これにはエミュレートが必要になります)。
- 準仮想化コントローラーデバイス (virtio-scsi)
- 準仮想化 SCSI コントローラーデバイスは Red Hat Enterprise Linux 6.4 の新機能で、virtio-blk により柔軟でスケーラブルな選択肢を提供します。virtio-scsi ゲストはターゲットデバイスの機能一式を継承でき、わずか 28 デバイスしか処理できない virtio-blk に比べて数百ものデバイス処理が可能です。Red Hat Enterprise Linux 6.4 以降では、virtio-scsi は以下のゲストオペレーティングシステムに完全対応しています。
- Red Hat Enterprise Linux 6.4 以降
- Windows Server 2008
- Windows 7
- Windows Server 2012
- Windows 8 (32/64 bit)
- 準仮想化クロック
- タイムスタンプカウンター (TSC) をクロックソースとして使用するゲストは、時間管理の問題に直面することがあります。一定したタイムスタンプカウンターを持たないホストに関しては、KVM はゲストに準仮想化クロックを提供することで対処します。さらに、準仮想化クロックは、ゲストによる S3 の実行または RAM へのサスペンド操作の後に必要な時間の調整を支援します。
- 準仮想化シリアルデバイス (virtio-serial)
- 準仮想化シリアルデバイスは、 バイトストリーム指向の文字ストリームデバイスで、ホストのユーザー領域とゲストのユーザー領域をつなぐシンプルな通信インターフェースを提供します。
- バルーンデバイス (virtio-balloon)
- バルーンデバイスは仮想マシンの RAM の一部を未使用として指定することが可能で (バルーン膨張) 、これによりメモリーが解放されて、ホスト (またはホスト上の他の仮想マシン) が使用できるようになります。仮想マシンが再度メモリーを必要とした際には、バルーンを 縮小 させて、ホストが RAM を仮想マシンに配分し直すことができます。
- 準仮想化グラフィックカード (QXL)
- 準仮想化グラフィックカードは、QXL ドライバーと連携して機能し、リモートホストから仮想マシンのグラフィックスを表示する効率的な方法を提供します。SPICE を使用するには QXL ドライバーが必要です。
4.3.3. 物理ホストデバイス
- PCI デバイス割り当て
- KVM ハイパーバイザーは、ホストシステム上の PCI デバイスの仮想マシンへのアタッチをサポートします。PCI デバイス割り当てにより、ゲストは様々なタスクで PCI デバイスへの排他的アクセスが可能になります。PCI デバイスはゲスト仮想マシンに物理的にアタッチされているように表示され、動作します。デバイス割り当ては、グラフィックスカードを除いて PCI Express デバイス上でサポートされています。パラレル PCI デバイスは割り当てデバイスとしてのサポートが可能ですが、セキュリティーとシステム設定の競合により、極端な制限があります。
注記
デバイス割り当てに関する詳細は、 『Red Hat Enterprise Linux 6 Virtualization Host Configuration and Guest Installation Guide』 を参照してください。 - USB パススルー
- KVM ハイパーバイザーは、ホストシステム上の USB デバイスの仮想マシンへのアタッチをサポートします。USB デバイス割り当てにより、ゲストは様々なタスクでUSB デバイスへの排他的アクセスが可能になります。USB デバイスは仮想マシンに物理的にアタッチされているように表示され、動作します。
注記
USB パススルーに関する詳細は、 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。 - SR-IOV
- SR-IOV (シングルルート I/O 仮想化) は、単一の物理 PCI 機能を拡張して PCI リソースを個別の仮想機能として共有する PCI Express スタンダードです。各機能は、異なる仮想マシンが PCI デバイス割り当て経由で使用できます。SR-IOV 対応 PCI-e デバイスは、シングルルート機能 (例えば、単一イーサネットポート) を提供し、複数の個別の仮想デバイスを固有の PCI デバイス機能として提示します。仮想デバイスはそれぞれ、固有の PCI 設定領域、メモリーマップドレジスター、個別の MSI ベースの割り込みを備えている場合があります。
注記
SR-IOV に関する詳細は、 『Red Hat Enterprise Linux 6 Virtualization Host Configuration and Guest Installation Guide』 を参照してください。 - NPIV
- N_Port ID Virtualization (NPIV) とは、ファイバーチャンネルデバイスの一部で利用可能な機能です。 NPIV では単一の物理的な N_Port を複数の N_Port ID として共有します。 SR-IOV が PCIe インターフェースに提供するファイバーチャンネル Host Bus Adaptor (HBA) に対して同様の機能を提供します。 NPIV を使用すると、 ストレージエリアネットワーク (SAN) への仮想ファイバーチャンネルイニシエーターを仮想マシンに与えることができます。NPIV は、エンタープライズレベルのストレージソリューションで高密度の仮想化環境を提供できます。
注記
NPIV に関する詳細は、 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。
4.4. ゲスト CPU モデル
注記
4.5. ストレージ
4.5.1. ストレージプール
- ローカルストレージプール
- ローカルストレージプールは、ホストサーバーに直接アタッチされています。これに含まれるのは、ローカルディレクトリー、直接アタッチされたディスク、物理パーティション、ローカルデバイス上のLVM ボリュームグループです。ローカルストレージプールは開発、テスト、移行や多数の仮想マシンを必要としない小規模開発などに役立ちます。ローカルストレージプールは、ライブマイグレーションに対応していないため、多くの本番環境に適切でない可能性があります。
- ネットワーク (共有) ストレージプール
- ネットワークストレージプールには、標準プロトコル使用のネットワークにまたがって共有されるストレージデバイスが含まれます。ネットワークストレージは、virt-manager を使用したホスト間の仮想マシン移行で必要となりますが、
virsh
を使用した移行の場合はオプションとなります。ネットワークストレージプールは、libvirtで管理します。
4.5.2. ストレージボリューム
4.5.3. エミュレートされたストレージデバイス
- virtio-scsi
- virtio-scsi は数多くのディスクや TRIM などの高度なストレージ機能を使用するゲスト用の準仮想化ストレージデバイスとして推奨されます。
- virtio-blk
- virtio-blk はイメージファイルをゲストに公開するのに適した準仮想化ストレージデバイスです。virtio-blk は仮想マシンに対して最高レベルのディスクの I/O パフォーマンスを提供しますが、virtio-scsi と比較すると機能の数が少なくなります。
- IDE
- IDE は virtio ドライバーに対応しないレガシーゲスト用に推奨されます。IDE のパフォーマンスは virtio-scsi または virtio-blk よりも低いですが、複数の異なるシステムに対する互換性の面では優れています。
- CD-ROM
- ATAPI CD-ROM および virtio-scsi CD-ROM は ISO ファイルまたはホスト CD-ROM ドライブをゲストに提示するために使用できます。virtio-scsi CD-ROM は、virtio-scsi ドライバーがインストールされているゲストと共に使用することができます。ATAPI CD-ROM の方が互換性の幅が広いですが、パフォーマンスはより低くなります。
- USB 大容量ストレージデバイスおよびフロッピーディスク
- USB 大容量ストレージデバイスおよびフロッピーディスクは、リムーバブルメディアが必要な場合に利用することができます。フロッピーディスクよりも容量がより大きい USB 大容量ストレージデバイスの使用をお勧めします。
4.5.4. ホストストレージ
- イメージファイル
- イメージファイルはホストファイルシステム上に格納されます。イメージファイルは、ext4 または xfs などのローカルファイルシステム上や、NFS などのネットワークファイルシステム上に格納することができます。libguestfs などのツールを使用して、ファイルの管理、バックアップおよび監視を行うことができます。KVM 上で使用されるディスクイメージの形式には以下が含まれます。
- Raw
- Raw イメージファイルには、ディスクのコンテンツが含まれますが、メタデータは一切追加されません。ホストファイルシステムが許可する場合、Raw ファイルのタイプは Preallocated (事前割り当て) ファイルまたは Sparse (スパース) ファイルのいずれかになります。Sparse ファイルはホストディスク容量をオンデマンドで割り当てるため、一種のシンプロビジョニングと言うことができます。Preallocated ファイルは完全にプロビジョニングされますが、Sparse ファイルよりもパフォーマンスが高くなります。Raw ファイルは、ディスクの I/O パフォーマンスが重要となる場合や、イメージファイルをネットワーク上で転送する必要がほとんどない場合に適しています。
- qcow2
- qcow2 イメージファイルは、バッキングファイルや、スナップショット、圧縮および暗号化などの数多くの高度なディスクイメージ機能を提供します。これらのイメージファイルは、テンプレートイメージから仮想マシンのインスタンスを作成するために使用することができます。qcow2 ファイルは、通常ネットワーク上でより効率的に転送できるファイルです。仮想マシンによって書き込まれるセクターのみがイメージに割り当てられるためです。
- LVM ボリューム
- 論理ボリュームはディスクイメージに使用でき、システムの LVM ツールを使用して管理できます。LVM のブロックストレージのモデルは他のファイルシステムよりもシンプルであるため、LVM はより高いパフォーマンスを提供します。LVM シンプロビジョニングはスナップショットを提供し、LVM ボリュームの領域のより効率的な使用を可能にします。さらに、qcow2 に対する移行の代替手段として使用することができます。
- ホストデバイス
- 物理 CD-ROM および Raw ディスク、または論理ユニット番号 (LUN) などのホストデバイスをゲストに提示することができます。これにより、ゲストは SAN (Storage Area Network) や iSCSI LUN、およびローカル CD-ROM メディアをパフォーマンスを維持した状態で使用できます。ホストデバイスは、ストレージ管理がホスト上ではなく SAN 上で行なわれている場合に使用することができます。
- 分散ストレージシステム
- Gluster ボリュームはディスクイメージとして使用できます。これにより、ネットワーク上で高パフォーマンスのクラスター化ストレージを使用することができます。Red Hat Enterprise Linux 6.5 以降には、GlusterFS を使用して仮想マシンを作成するためのネイティブサポートが含まれます。これにより、KVM ホストは GlusterFS ボリュームから仮想マシンイメージを起動し、仮想マシンのデータディスクとして GlusterFS ボリュームのイメージを使用することができます。GlusterFS FUSE と比較すると、KVM のこのネイティブサポートは、より高いパフォーマンスを実現します。
注記
第5章 仮想化ツール
5.1. virsh
virsh
コマンドラインツールは、libvirt 管理 API 上で構築されており、qemu-kvm
コマンドおよびグラフィカルな virt-manager アプリケーションの代わりとして動作します。virsh
コマンドは、権限のないユーザーは読み取り専用モードで、ルートアクセスのあるユーザーは完全な管理機能を使用することができます。virsh
コマンドは仮想化管理のスクリプト作成に適しています。さらに virsh
ツールは、virsh
ゲストドメイン向けのメインの管理インターフェースで、現行ドメインのリスト化に加え、ドメインの作成、一時停止、およびシャットダウンに使用できます。このツールは、libvirt-client パッケージの一部としてインストールされます。
注記
virsh
を使用した仮想マシン管理に関する詳細は、 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。
5.2. virt-manager
注記
virt-manager
を使用した仮想マシン管理に関する詳細は、 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。
5.3. virt-install
注記
virt-install
に関する詳細は、 『Red Hat Enterprise Linux 6 irtualization Host Configuration and Guest Installation Guide』 を参照してください。
5.4. guestfish
guestfs
API が提供する全機能を公開します。
警告
guestfish
を使用するとディスクイメージが破損する恐れがあります。実行中の仮想マシンがディスクイメージを使用している場合は、--ro
(読み取り専用) オプションで guestfish
コマンドを使用してください。
注記
guestfish
に関する詳細は、 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。
5.5. 他の便利ツール
disk-image
ファイル経由でアクセスします。しかし、 libvirt ドメイン経由でアクセスすることも時には可能です。後に続くコマンドは libvirt ドメインの一部で、ゲストのディスクイメージにアクセスするために使用されます。
guestmount
- ホストマシン上に仮想マシンファイルシステムおよびディスクイメージをマウントするために使用するコマンドラインツールです。
警告
ゲストが使用中のディスクに--r/w
(読み取り/書き込み) モードのguestmount
を使用してアクセスすると、ディスクが破損する恐れがあります。ライブの仮想マシン上で--r/w
(読み取り/書き込み) モードのguestmount
を使用しないでください。ディスクイメージを使用している場合は、--ro
(読み取り専用) オプションでguestmount
コマンドを使用してください。 virt-cat
- 指定された仮想マシンのディスクまたはディスクイメージ内にある 1 つ以上のファイルのコンテンツを迅速に表示させる際に使用するコマンドラインツール。このツールは、libguestfs-tools パッケージの一部としてインストールされます。
virt-df
- 仮想マシンの実際の物理ディスク使用量を表示させるために使用するコマンドラインツールで、
df
コマンドラインツールと同様のもの。このツールは、リモート接続では機能しないことに注意してください。このツールは、libguestfs-tools パッケージの一部としてインストールされます。 virt-edit
- 指定された仮想マシン上にあるファイルを編集するために使用されるコマンドラインツール。このツールは、libguestfs-tools パッケージの一部としてインストールされます。
警告
実行中の仮想マシン上でvirt-edit
を使用すると、仮想マシン内のディスクが破損する恐れがあります。virt-edit
コマンドは、ユーザーが実行中の仮想マシン上のファイルを編集することを阻止しようとしますが、全インスタンスの捕捉は保証されません。実行中の仮想マシン上ではvirt-edit
を使用しないでください。 virt-filesystems
- ディスクシステムもしくは仮想マシン内のファイルシステム、パーティション、論理ボリュームおよびそれらのサイズを検出するために使用されるコマンドラインツール。シェルスクリプト内での一般的な使用方法の一つは、ディスクイメージ内の全ファイルシステムを反復することです。このツールは、libguestfs-tools パッケージの一部としてインストールされます。このツールは
virt-list-filesystems
およびvirt-list-partitions
を置き換えます。 virt-inspector
- 仮想マシンまたはディスクイメージを検証して当該オペレーティングシステムおよび他の情報を測定することができるコマンドラインツール。XML 出力の生成も可能で、これは他のプログラムにパイプすることができます。
virt-inspector
は一度に 1 ドメインしか検査できないことに注意してください。このツールは、libguestfs-tools パッケージの一部としてインストールされます。 virt-inspector2
- C 言語で書かれた
virt-inspector
の代替ツール。このツールは、libguestfs-tools パッケージの一部としてインストールされます。 virt-ls
- 仮想マシン内のファイルおよびディレクトリーをリスト化するコマンドラインツール。このツールは、libguestfs-tools パッケージの一部としてインストールされます。
virt-make-fs
- ディレクトリー内の tar アーカイブもしくはファイルに基づいてファイルシステムを作成するコマンドラインツール。
mkisofs
やmksquashfs
に類似したツールですが、ext2、ext3、NTFSといった一般的なファイルシステムの作成が可能で、作成されるファイルシステムのサイズは元となるファイルサイズと同等もしくはそれよりも大きいものになります。このツールは、libguestfs-tools パッケージの一部として提供されます。 virt-p2v
- 物理マシンを仮想マシンに変換するためのグラフィカルツールです。このツールは、Red Hat Enterprise Linux 6.2 以降の virt-v2v パッケージの一部としてインストールされます。
virt-rescue
- ブート不可能な仮想マシンおよびディスクイメージ用のレスキューシェルとシンプルなリカバリーツールを提供するコマンドラインツール。libvirt が認識する仮想マシン上であれば実行可能です。また、ディスクイメージ上で直接実行することもできます。このツールは、libguestfs-tools パッケージの一部としてインストールされます。
警告
実行中の仮想マシン上でvirt-rescue
を使用すると仮想マシン内のディスクが破損する恐れがあります。virt-rescue
は、実行中の仮想マシン上での使用を阻止しようとしますが、すべてのケースをカバーできる訳ではありません。--ro
(読み取り専用) オプションでこのコマンドを使用してもディスクは破損しませんが、見たことのない、または一貫性を欠く結果となる場合があります。実行中の仮想マシンでのvirt-rescue
の使用は避けてください。 virt-resize
- 仮想マシンディスクのサイズ変更、また仮想マシンディスク上のすべてのパーティションのサイズ変更もしくは削除に使用するコマンドラインツール。ゲストイメージをコピーして、オリジナルのディスクイメージをそのまま残すことで機能します。このツールは、libguestfs-tools パッケージの一部としてインストールされます。
重要
実行中の仮想マシンでvirt-resize
を使用すると、一貫性のない結果をもたらす可能性があります。サイズ変更前に仮想マシンをシャットダウンすることが最良の方法です。 virt-sysprep
- クローン作成用テンプレートを準備するために仮想マシンのリセット、カスタマイズまたは設定解除を行うためのコマンドラインツールです。このツールは libguestfs-tools パッケージの一部としてインストールされます。
重要
仮想マシンはvirt-sysprep
を実行する前にシャットダウンしている必要があります。仮想マシンの既存のコンテンツを保持するには、virt-sysprep
を実行する前にディスクのスナップショットを取得するか、またはディスクのコピーまたはクローン作成を行ってください。 virt-tar
- 仮想マシンのファイルシステムの一部をダウンロード、アップロードするコマンドラインアーカイブツール。このツールは一般的にバックアップの作成、データのアップロード、ゲストアクティビティーのレビュー、ゲストの修正もしくはカスタマイズに使用されます。このツールは、libguestfs-tools パッケージの一部としてインストールされます。
警告
実行中の仮想マシン上で-u
(アップロード) オプションを使用してvirt-tar
を使うと、仮想マシン内のディスクが破損する恐れがあります。virt-tar
は、実行中の仮想マシン上での使用を回避しようとしますが、すべてのケースをカバーする訳ではありません。実行中の仮想マシン上で、-x
(抽出) オプションを使ってvirt-tar
を使用してもディスクは破損しませんが、見たことのない、または一貫性を欠く結果となる場合があります。ファイル抽出前に仮想マシンをシャットダウンすることが最良の方法です。 virt-top
- 仮想化ドメインに関連する統計を表示する
top
に類似したコマンドラインユーティリティー。このツールは、virt-top というパッケージ名称で出荷されます。 virt-v2v
- 仮想マシンを Xen から VMware ハイパーバイザーに変換して KVM 上で稼働させるグラフィカルツール。このツールは、virt-v2v というパッケージ名称で出荷されます。
virt-viewer
- 仮想マシンのグラフィカルコンソールを VNC および SPICE プロトコル経由で表示させる最小限のツール。このツールは、virt-viewer というパッケージ名称で出荷されます。
virt-what
- プログラムが仮想マシンで実行中かどうかを検出するシェルスクリプト。このツールは、virt-what というパッケージ名称で出荷されます。
virt-who
- virt-who パッケージは、ゲスト UUID を libvirt に問い合わせる Red Hat Enterprise Linux ホストエージェントです。次に、そのデータを証明書発行目的でローカルエンタイトルメントサーバーに渡します。このツールは、virt-who というパッケージ名称で出荷されます。
virt-win-reg
- Windows 仮想マシンから Windows Registry エントリーをエクスポートし、マージするコマンドラインツール。また、シンプルな Registry 操作を実行します。このツールは、libguestfs-tools パッケージの一部としてインストールされます。
警告
実行中の仮想マシン上でvirt-win-reg
を使うと、仮想マシン内のディスクに復元不可能な破損をもたらします。virt-win-reg
は、実行中の仮想マシン上での使用を回避しようとしますが、すべてのケースをカバーする訳ではありません。警告
Windows Registry の修正は、フォーマットが意図的に不明瞭でドキュメントに未記載であることから、本質的にリスクのある操作です。レジストリーの変更でシステムがブート不可能になる可能性があることから、--merge
オプション使用前に信頼できるバックアップがあることを確認してください。 virt-xml-validate
- libvirt XML ファイルの発行済スキーマとのコンプライアンスを検証するコマンドラインツール。このツールは、libvirt-client パッケージの一部としてインストールされます。
付録A 改訂履歴
改訂履歴 | |||||
---|---|---|---|---|---|
改訂 1.0-15.2 | Thu Oct 23 2014 | ||||
| |||||
改訂 1.0-15.1 | Mon Oct 13 2014 | ||||
| |||||
改訂 1.0-15 | Fri Oct 10 2014 | ||||
| |||||
改訂 1.0-12 | Tue Oct 07 2014 | ||||
| |||||
改訂 1.0-11 | Thurs Aug 28 2014 | ||||
| |||||
改訂 1.0-10 | Fri Aug 8 2014 | ||||
| |||||
改訂 1.0-04 | Mon July 28 2014 | ||||
| |||||
改訂 1.0-03 | Wed July 16 2014 | ||||
| |||||
改訂 1.0-02 | Fri June 6 2014 | ||||
| |||||
改訂 1.0-01 | Fri May 30 2014 | ||||
| |||||
改訂 0.3-43 | Fri Nov 15 2013 | ||||
| |||||
改訂 0.3-42 | Fri Oct 18 2013 | ||||
| |||||
改訂 0.3-41 | Wed Oct 2 2013 | ||||
| |||||
改訂 0.3-40 | Wed Sept 25 2013 | ||||
| |||||
改訂 0.3-39 | Mon Sept 16 2013 | ||||
| |||||
改訂 0.3-36 | Thurs Sept 12 2013 | ||||
| |||||
改訂 0.3-33 | Mon Sept 9 2013 | ||||
| |||||
改訂 0.3-32 | Mon Sept 2 2013 | ||||
| |||||
改訂 0.3-31 | Fri August 30 2013 | ||||
| |||||
改訂 0.3-30 | Tue August 20 2013 | ||||
| |||||
改訂 0.3-29 | Thurs August 15 2013 | ||||
| |||||
改訂 0.3-28 | Mon August 12 2013 | ||||
| |||||
改訂 0.3-25 | Fri Apr 26 2013 | ||||
| |||||
改訂 0.3-24 | Mon Feb 18 2013 | ||||
| |||||
改訂 0.3-20 | Thurs Jan 31 2013 | ||||
| |||||
改訂 0.3-18 | Tue Jan 29 2013 | ||||
| |||||
改訂 0.3-16 | Wed Jan 16 2013 | ||||
| |||||
改訂 0.3-15 | Tues Nov 27 2012 | ||||
| |||||
改訂 0.3-13 | Thu Oct 18 2012 | ||||
| |||||
改訂 0.3-11 | Wed Oct 17 2012 | ||||
| |||||
改訂 0.3-10 | Mon Oct 8 2012 | ||||
| |||||
改訂 0.3-8 | Thurs Oct 4 2012 | ||||
| |||||
改訂 0.3-7 | Wed Oct 3 2012 | ||||
| |||||
改訂 0.3-6 | Tue Sep 25 2012 | ||||
| |||||
改訂 0.3-5 | Mon Sep 3 2012 | ||||
| |||||
改訂 0.3-2 | Wed Aug 29 2012 | ||||
| |||||
改訂 0.3-1 | Mon Aug 27 2012 | ||||
| |||||
改訂 0.2-83 | Mon June 18 2012 | ||||
| |||||
改訂 0.2-82 | Mon June 18 2012 | ||||
| |||||
改訂 0.2-80 | Tues June 12 2012 | ||||
| |||||
改訂 0.2-78 | Fri June 8 2012 | ||||
| |||||
改訂 0.2-73 | Mon April 23 2012 | ||||
| |||||
改訂 0.2-72 | Mon April 23 2012 | ||||
| |||||
改訂 0.2-71 | Thur April 19 2012 | ||||
| |||||
改訂 0.2-69 | Wed April 18 2012 | ||||
| |||||
改訂 0.2-68 | Tue April 17 2012 | ||||
| |||||
改訂 0.2-64 | Mon April 2 2012 | ||||
| |||||
改訂 0.2-61 | Fri March 30 2012 | ||||
| |||||
改訂 0.2-52 | Wed January 11 2012 | ||||
| |||||
改訂 0.2-51 | Fri November 4 2011 | ||||
| |||||
改訂 0.2-47 | Fri October 14 2011 | ||||
| |||||
改訂 0.2-44 | Fri September 16 2011 | ||||
| |||||
改訂 0.2-43 | Fri September 16 2011 | ||||
| |||||
改訂 0.2-37 | Fri September 2 2011 | ||||
| |||||
改訂 0.2-34 | Thu September 1 2011 | ||||
| |||||
改訂 0.2-33 | Wed August 31 2011 | ||||
| |||||
改訂 0.2-22 | Wed July 27 2011 | ||||
| |||||
改訂 0.2-17 | Mon July 25 2011 | ||||
| |||||
改訂 0.2-15 | Mon July 25 2011 | ||||
| |||||
改訂 0.1-1 | Wed May 4 2011 | ||||
| |||||
改訂 0.0-1 | Wed May 4 2011 | ||||
|