Red Hat Training

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

仮想化スタートガイド

Red Hat Enterprise Linux 6

仮想化の概念について

Dayle Parker

Red Hat Engineering Content Services

Laura Novich

Red Hat Engineering Content Services

Jacquelynn East

Red Hat Engineering Content Services

Scott Radvan

Red Hat Engineering Content Services

概要

Red Hat Enterprise Linux 仮想化スタートガイドは、仮想化の基本事項と Red Hat Enterprise Linux で利用可能な仮想化製品および技術について説明しています。

第1章 はじめに

仮想化スタートガイド』 は 仮想化の基本事項を紹介し、Red Hat が提供する他の仮想化ドキュメントと製品のナビゲーションの手助けになるものです。
本書はまた、仮想化の利点を説明し、仮想化に関する一般的な通説を払拭するものです。

1.1. 本書の対象者

本書は仮想化の基本を理解したいと思っている人を対象としていますが、特に以下のような方に役立つと思われます。
  • 仮想化が初めてで、その利点についての知識を求めている方。
  • ご自分の環境に仮想化マシンの導入を検討している方。
  • Red Hat が提供し、サポートする仮想化技術の全体像を把握されようとしている方。

1.2. Red Hat Enterprise Linux 6 における仮想化

Red Hat Enterprise Linux には、様々な仮想化環境をサポートするパッケージとツールが含まれています。
Red Hat Enterprise Linux 6 における仮想化は、KVM (カーネルベースの仮想マシン) によって実行されます。KVM は、Red Hat Enterprise Linux 6 に組み込まれた完全仮想化ソリューションです。
Red Hat Enterprise Linux 6 で利用可能な仮想化製品についての詳細は 4章Red Hat 仮想化製品について を参照してください。

1.3. Red Hat Enterprise Virtualization (RHEV)

Red Hat Enterprise Virtualization (RHEV) は、KVM (カーネルベースの仮想マシン) テクノロジーをベースとしたサーバーおよびデスクトップ仮想化用の完全なエンタープライズ仮想化管理ソリューションです。
Red Hat Enterprise Virtualization は、エンタープライズクラスのスケーラビリティーおよびパフォーマンス向けに設計されており、ホストや仮想マシン、ネットワーク、ストレージおよびユーザーを含む中央グラフィカルインターフェースからの仮想インフラストラクチャー全体の管理を可能にします。
Red Hat Enterprise Virtualization には、RHEV Manager インフラストラクチャー管理システムと RHEV Hypervisor が含まれています。 RHEV Hypervisor は、信頼性と安定性、同一クラスで最少の総所有コストを達成する一方で、Windows および Linux のサーバーとデスクトップオペレーティングシステムを幅広くサポートしています。
完全サポート付き 60 日間の評価版 Red Hat Enterprise Virtualization は、http://www.redhat.com/en/technologies/virtualization/enterprise-virtualization からダウンロードできます。

1.4. ドキュメントスイート

Red Hat では、様々な仮想化製品のドキュメントを豊富に提供しています。Red Hat Enterprise Linux および同梱の仮想化製品のドキュメントには、以下のようなガイドが含まれます。
  • 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 環境のユーザーポータルの使い方、仮想マシンおよびテンプレートの作成および使用方法、さらにはリソース使用を監視する方法について記載しています。
  • 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 テクニカルノート』: 現行リリースと旧リリース間の変更点を記載しています。

注記

これらの製品についてのすべてのガイドは、Red Hat カスタマーポータル (https://access.redhat.com/documentation/en-US/) からご覧いただけます。

第2章 仮想化とは、マイグレーションとは

本章では、仮想化とマイグレーションに関連する用語について説明します。

2.1. 仮想化とは

仮想化とは単一システム上で他のプログラムとは別個にソフトウェア(通常、複数のオペレーティングシステム群)を同時に実行することを示す広範囲なコンピュータ用語です。ほとんどの既存の仮想化実装では、ハードウェアを制御し、ゲストオペレーティングシステムに 基盤ハードウェアへのアクセスを与えるソフトウェアレイヤーである ハイパーバイザーを使用します。ハイパーバイザーは、ゲストと呼ばれる複数のオペレーティングシステムに対して仮想化ハードウェアを提供することで、ゲストが同一の物理システム上で 実行できるようになります。オペレーティングシステムの仮想化には様々な方法があります。
完全仮想化
完全仮想化は、プロセッサーのハードウェア機能を使用して、ゲストに対し、基盤となる物理システムの完全な抽出化を提供します。これにより、仮想マシンと呼ばれる新規の仮想システムが作成され、ゲストオペレーティングシステムは変更なしに実行可能となります。ゲストオペレーティングシステムとゲスト仮想マシン上のアプリケーションは、仮想化環境を認識せず、正常に実行されます。ハードウェア補助の仮想化は、Red Hat Enterprise Linux で KVM (カーネルベースの仮想マシン) を使用した完全仮想化に使用される技術です。
準仮想化
準仮想化は、仮想化ゲストに示されたソフトウェアとデータ構成のコレクションを使います。ゲストのソフトウェアを準仮想化環境で使用するには、ソフトウェアの変更が必要になります。Xen 準仮想化ゲストの場合と同様に、準仮想化はカーネル全体や入出力デバイスを仮想化するドライバーを包含することができます。
ソフトウェアの仮想化 (またはエミュレーション)
ソフトウェアの仮想化は、より遅いバイナリー変換と他のエミュレーション技術を使用して、変換されていないオペレーティングシステムを実行します。Red Hat Enterprise Linux はソフトウェアの仮想化に対応していません。

注記

ゲストインストールの詳細とさらなる手順に関しては、 『Red Hat Enterprise Linux 6 仮想化ホスト設定およびゲストインストールガイド』 を参照してください。

2.2. マイグレーション

マイグレーションとは、 ゲスト仮想マシンを任意のホストから別のホストに移行するプロセスです。仮想マシンが直接ハードウェア上で実行するのではなく仮想化環境内で実行するために、このマイグレーションが可能となります。仮想マシンのマイグレーションには、ライブとオフラインの 2 つの方法があります。

マイグレーションのタイプ

オフラインマイグレーション
オフラインマイグレーションでは、ゲスト仮想マシンを一時停止させて、仮想マシンのメモリーのイメージを目的のホストに移動します。次に、目的のホスト上で仮想マシンを再開し、仮想マシンがソースホスト上で使用していたメモリーを解放します。
ライブマイグレーション
ライブマイグレーションは、アクティブな仮想マシンを任意の物理ホストから別の物理ホストに移行するプロセスです。

2.2.1. 仮想マシンのマイグレーションの利点

マイグレーションは以下の点でに役立ちます。
負荷の分散
ホストマシンがオーバーロードとなった場合、仮想マシンは単独でも複数でも、ライブマイグレーションで他のホストに移行できます。
ホストのアップグレードやホストに変更を加える場合
任意のホスト上にあるハードウェアデバイスにアップグレード、追加、削除などの必要性が生じた場合、仮想マシンを安全に他のホストに移動させることができます。つまり、ホストに変更がなされたからといって、それに起因するダウンタイムをゲストが経験することはありません。
省エネ
仮想マシンを別のホストに再配分することで、アンロードされたホストシステムの電源を電力使用量の少ない時間帯にオフにして節電とコスト削減が可能になります。
地理的なマイグレーション
待ち時間の短縮や他の特別な状況のために、別の物理的場所に仮想マシンを移動することができます。
マイグレーションプロセスでは仮想マシンのメモリーが移動するということ、また Red Hat Enterprise Linux 6.3 からは仮想マシンに関連するディスクボリュームも移行するということを理解することが重要です。このプロセスはライブブロックマイグレーションを使用して実施されます。
移行するゲストイメージは、共有のネットワークストレージに保存することができます。仮想マシンのマイグレーション時の共有ストレージには、libvirt 管理のストレージプールの使用が推奨されます。

注記

マイグレーションに関する詳細は、 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。

2.3. 仮想化から仮想化へのマイグレーション (V2V)

Red Hat Enterprise Linux 6 は、仮想マシンを他のタイプのハイパーバイザーから KVM に変換するツールを提供します。virt-v2v ツールが、Xen、KVN の別バージョン、VMware ESX、および Hyper-V からの仮想マシンを変換し、インポートします。
Red Hat Enterprise Linux 6.5 より、virt-v2v ツールは、VHDX、VMDK、OVF、Raw、および qcow2 などの仮想ディスクイメージ形式で仮想マシンを変換し、インポートします。

注記

V2V に関する詳細は、 『Red Hat Enterprise Linux 6 V2V ガイド』を参照してください。

第3章 仮想化の利点と誤解

仮想化には多くの利点がありますが、おそらく同じくらいの誤解があるようです。本章では、これらの点について説明します。

3.1. 仮想化コスト

一般的な誤解は、仮想化への変更はコストが高すぎて正当化できない、というものです。仮想化の導入は費用がかかることもありますが、長期的には節約になる場合が多くあります。ご自分の環境における仮想化の最大限の活用を測定するには、投資回収率 (ROI) の分析を行うことが重要です。以下の利点を検討してみてください。
省電力
仮想化により、複数の物理プラットフォームの必要性がほとんどなくなります。これは、マシン稼働や冷却に使われる電力の節約を意味し、エネルギー費用の削減につながります。マシンの消費電力と必要となる冷却を合わせると、複数の物理プラットフォー厶購入の初期費用は、仮想化の利用により大幅に削減されます。
メンテナンスの省力化
物理システムから仮想化システムへの移行前に十分なプラニングを行うことで、メンテナンスにかかる時間は少なくなります。つまり、部品にかかる費用や人件費が削減されることになります。
インストール済みソフトウェアの使用期限の延長
古いバージョンのソフトウェアは、新しいベアメタルマシン上では直接機能しない可能性があります。しかし、より大きく速い仮想システム上でこれらを稼働することにより、新しいシステムからのパフォーマンスを活用する一方で、古いソフトウェアの使用期限が延長される場合があります。
予測可能なコスト
Red Hat Enterprise Linux のサブスクリプションは、仮想化サポートが固定料金なので、コスト予測が容易になります。
スペースの節約
サーバーをより少ないマシンに統合することは、必要な物理的スペースが減ることを意味します。つまり、通常サーバーハードウェアが占拠していたスペースを他の目的に使用できることになります。

3.2. 仮想化の習熟曲線

仮想化を学ぶことは難しい、という誤解があります。実際には仮想化の習熟は、他の新たなプロセスと比べて難しくもなければ簡単でもありません。物理環境の管理とサポートで求められるスキルは、容易に仮想環境に移転することができます。仮想環境は物理環境と同様の動きをするので、学習量がわずかであることは間違いありません。

3.3. パフォーマンス

シングル CPU のみに対応していた古い仮想化バージョンでは、仮想マシンは明らかなパフォーマンスの限界を経験しました。これにより、仮想化ソリューションは遅い、という長期にわたる誤解が生み出されました。
しかし、最近の状況は変わりました。最新の仮想化技術により、仮想マシンのスピードは格段に速くなりました。通常のサーバーアプリケーションの仮想マシン上での効率性は、ベアメタルシステム上とほぼ同一であることがベンチマークで示されています。
  • 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 Enterprise Linux 6 仮想化のチューニングと最適化ガイド』 を参照してください。

3.4. 障害回復

システムが仮想化されていると、障害からの回復がより迅速で容易になります。物理システムでは、何らかの重大な障害が発生すると、通常オペレーティングシステムの完全な再インストールが必要となり、回復時間は何時間にも及びます。しかしシステムが仮想化されていれば、マイグレーション機能のおかげで回復は非常に速くなります。ライブマイグレーションの要件が実行されれば、仮想マシンは別のホスト上での再起動が可能になり、最大の遅延はゲストデータの復元に関するものとなります。また、仮想化システムはそれぞれ完全に独立しているので、1 つのシステムのダウンタイムが他のシステムに影響することはありません。

3.5. セキュリティー

仮想マシンは SELinux および sVirt を使用して、仮想化におけるセキュリティーを強化します。このセクションでは、利用可能なセキュリティーオプションの概要を説明します。

3.5.1. 仮想化セキュリティーの特徴

SELinux

SELinux は、Linux 用に Mandatory Access Control (MAC) を提供するために米国国家安全保障局などが開発しました。SELinux の管理下では、すべてのプロセスとファイルに タイプ が与えられ、アクセスはきめ細かい管理で制限されます。SELinux は攻撃者の能力を限定し、バッファオーバーフロー攻撃や権限エスカレーションといった多くの一般的なセキュリティーエクスプロイトを防ぎます。

SELinux は、Red Hat Enterprise Linux ホストと Red Hat Enterprise Linux の仮想化ゲストのセキュリティーモデルを強化します。SELinux はデフォルトで Red Hat Enterprise Linux 6 と共に出荷されたすべての仮想化ツールと機能するように設定され、テストされています。
sVirt

sVirt は Red Hat Enterprise Linux 6 に導入されている技術のことで、 SELinux と仮想化を統合します。仮想マシンの使用時には Mandatory Access Control (MAC) を適用してセキュリティーを改善し、ホストや他の仮想マシンを目標とした攻撃経路として使用される可能性のあるハイパーバイザー内のバグに対してシステムを堅牢にします。

注記

仮想化のセキュリティーに関する詳細は、 『Red Hat Enterprise Linux 6 仮想化セキュリティガイド』を参照してください。

3.6. サーバー向け仮想化と個人向け仮想化

仮想化はサーバーだけのものではなく、個人にも便利なものとなります。デスクトップの仮想化は、集中型管理やデスクトップソリューションの改良、すぐれた障害回復をもたらします。接続ソフトウェアを使用することで、デスクトップのリモート接続が可能になります。
サーバーの場合、仮想化は大規模ネットワークだけではなく、2 台以上のサーバーがある状況で利用可能です。ライブマイグレーションや高可用性、耐障害性、簡素化されたバックアップなどの機能を提供します。

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 仮想化製品について

本章では、Red Hat Enterprise Linux で利用可能な様々な仮想化製品をご紹介します。

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-managervirsh などの) 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/supported-hypervisors を参照してください。

4.2. libvirt および libvirt ツール

libvirt パッケージはハイパーバイザーに依存しない仮想化 API で、幅広いオペレーティングシステムの仮想化機能との対話が可能です。
libvirt パッケージが提供する機能
  • ホスト上の仮想マシンを安全に管理する共通、一般的、かつ安定的な層
  • ローカルシステムおよびネットワーク接続されたホストを管理する共通インターフェース
  • 仮想マシンのプロビジョニング、作成、修正、監視、制御、移行、停止に必要なすべての API 。ただし、ハイパーバイザーがこれらの操作に対応している場合のみ。libvirt で複数のホストに同時アクセスはできますが、API はシングルノード操作に限られています。
libvirt は単一ホストの管理にフォーカスし、CPU やメモリー、ストレージ、ネットワーキング、NUMA (Non-Uniform Memory Access) パーティションを含む管理ノード上で利用可能なリソースをエミュレートし、監視し、使用する API を提供します。管理ツールは、セキュアなプロトコルを使用してホストからそれぞれの物理マシンに配置できます。
Red Hat Enterprise Linux 6 は libvirt に対応しており、(Red Hat Enterprise Virtualization Management 同様に) 仮想化管理のデフォルトの方法として libvirt ベースのツールが含まれています。
libvirt パッケージは、GNU 一般公衆利用許諾契約書 (GPL) の下でフリーソフトウェアとして利用可能です。libvirt プロジェクトは、様々なハイパーバイザー技術上で稼働する仮想化管理ツールに長期的な安定性のある C API を提供することを目的としています。libvirt パッケージは、Red Hat Enterprise Linux 5 上の Xen と Red Hat Enterprise Linux 5 および Red Hat Enterprise Linux 6 上の KVM に対応しています。
virsh
virsh コマンドラインツールは、libvirt 管理 API 上で構築されており、グラフィカルな virt-manager アプリケーションの代替手段として作動します。 virsh コマンドは、権限を持たないユーザーは読み取り専用モードで、ルートアクセスでは完全な管理者機能を使用することができます。virsh コマンドは仮想化管理のスクリプト作成に適しています。
virt-manager
virt-manager は、仮想マシン管理用のグラフィカルなデスクトップツールです。グラフィカルなゲストコンソールへのアクセスが可能になり、仮想化管理や仮想マシン作成、移行、設定タスクが実行できます。仮想マシン、ホスト統計、デバイス情報、パフォーマンスグラフの表示機能も提供されます。ローカルハイパーバイザーとリモートハイパーバイザーは、単一インターフェースで管理可能です。

注記

virsh および virt-manager に関する詳細は、 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。

4.3. 仮想化ハードウェアデバイス

Red Hat Enterprise Linux 6 における仮想化は、仮想マシンに以下の3つの異なる種類のシステムデバイスを提示します。
  • 仮想化デバイスおよびエミュレートされたデバイス
  • 準仮想化デバイス
  • 物理共有デバイス
これらのハードウェアデバイスはすべて、仮想化マシンに物理的にアタッチされたように表示されますが、デバイスドライバーの機能の仕方が異なります。

4.3.1. 仮想化デバイスおよびエミュレートされたデバイス

KVM は、ソフトウェアに多くの仮想マシン向けコアデバイスを実装します。これらのエミュレートされたハードウェアデバイスは、オペレーティングシステムの仮想化に必須のものです。
エミュレートされたデバイスは、ソフトウェア内にのみ存在する仮想デバイスです。
エミュレートされたドライバーは、物理デバイスまたは仮想ソフトウェアデバイスを使用することができます。エミュレートされたドライバーは、仮想マシンと (ソースデバイスを管理する) Linux カーネルの間の変換層です。デバイスレベルの指示は KVM ハイパーバイザーによって完全に変換されます。Linux カーネルで認識される、(ストレージやネットワーク、キーボード、マウスなど) 同じタイプのデバイスはいずれも、エミュレートされたドライバーのバッキングソースデバイスとして使用可能です。
仮想 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. 準仮想化デバイス

準仮想化は、ゲストがホストマシン上のデバイスを使用するための高速かつ効率的な通信手段を提供します。KVM は、ハイパーバイザーとゲスト間のレイヤーとして Virtio API を使用し、準仮想化されたデバイスを仮想マシンに提供します。
準仮想化デバイスは、I/O 待ち時間を短縮し、I/O スループットをベアメタルレベル近くにまで高めるものもあれば、その他の方法では利用できない機能を仮想マシンに追加するものもあります。I/O 集約型アプリケーションを稼働している仮想マシンには、エミュレートされたデバイスの代わりに準仮想化ドライバーの使用が推奨されます。
すべての virtio デバイスは、ホストデバイスとゲストドライバーの 2 つの部分から構成されます。準仮想化デバイスドライバーにより、ゲストのオペレーティングシステムはホストシステム上の物理デバイスにアクセスできます。
準仮想化デバイスドライバーは、ゲストオペレーティングシステムにインストールする必要があります。デフォルトでは、Red Hat Enterprise Linux 4.7 以降、Red Hat Enterprise Linux 5.4 以降、および Red Hat Enterprise Linux 6.0 以降に準仮想化デバイスドライバーが含まれています。Windows ゲストでは、準仮想化デバイスドライバーを手動でインストールする必要があります。

注記

準仮想化デバイスおよびドライバーの使用に関する詳細は、『Red Hat Enterprise Linux 6 仮想化ホスト設定およびゲストインストールガイド』 を参照してください。
準仮想化ネットワークデバイス (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 モデル

CPU モデル は、ゲストオペレーティングシステムに公開するホスト CPU 機能を定義します。qemu-kvmlibvirt には、複数の現行プロセッサーモデルの定義が含まれ、これによりユーザーは新しい CPU モデルでのみ利用できる CPU 機能を有効にすることができます。ゲストに公開できる CPU 機能のセットは、ホスト CPU、カーネル、および qemu-kvm コードのサポートによって異なります。
異なる CPU 機能のセットを持つ複数のホスト間で仮想マシンの安全なマイグレーションを許可するために、qemu-kvm はデフォルトでは、ホスト CPU のすべての機能をゲストオペレーティングシステムに公開しません。その代わりに、CPU 機能は選択された CPU モデルに基づいて公開されます。仮想マシンで所定の CDU 機能が有効にされている場合、その機能のゲストへの公開をサポートしていないホストに移行することはできません。

注記

ゲスト CPU モデルに関する詳細は、 『Red Hat Enterprise Linux 6 Virtualization Host Configuration and Guest Installation Guide』 を参照してください。

4.5. ストレージ

仮想マシン向けのストレージは、仮想マシンが使用する物理ストレージから抽出されます。これは、準仮想化またはエミュレートされたブロックデバイスドライバーを使用して仮想マシンにアタッチされます。

4.5.1. ストレージプール

ストレージプール (storage pool) とは、仮想マシンにストレージを提供するために libvirt が管理するファイルやディレクトリー、ストレージデバイスのことです。ストレージプールは、仮想マシンイメージを保存するストレージボリュームもしくは仮想マシンに新たなストレージとしてアタッチされるストレージボリュームに分割されます。複数のゲストが同一のストレージプールを共有でき、ストレージリソースのよりよい割り当てが可能になります。詳細については、 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。
ローカルストレージプール
ローカルストレージプールは、ホストサーバーに直接アタッチされています。これに含まれるのは、ローカルディレクトリー、直接アタッチされたディスク、物理パーティション、ローカルデバイス上のLVM ボリュームグループです。ローカルストレージプールは開発、テスト、移行や多数の仮想マシンを必要としない小規模開発などに役立ちます。ローカルストレージプールは、ライブマイグレーションに対応していないため、多くの本番環境に適切でない可能性があります。
ネットワーク (共有) ストレージプール
ネットワークストレージプールには、標準プロトコル使用のネットワークにまたがって共有されるストレージデバイスが含まれます。ネットワークストレージは、virt-manager を使用したホスト間の仮想マシン移行で必要となりますが、virsh を使用した移行の場合はオプションとなります。ネットワークストレージプールは、libvirtで管理します。

4.5.2. ストレージボリューム

ストレージプールは、さらにストレージボリュームに分割されます。ストレージボリュームとは、物理パーティション、LVM 論理ボリューム、ファイルベースのディスクイメージ、libvirt で処理される他のストレージタイプなどを抽象化したものです。ストレージボリュームは、基盤となるハードウェアに関係なく、ローカルストレージデバイスとして仮想マシンに提示されます。

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 のこのネイティブサポートは、より高いパフォーマンスを実現します。

注記

ストレージおよび仮想化に関する詳細は、 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。

第5章 仮想化ツール

本章では、仮想化で役に立つ多くのツールをご紹介します。

5.1. virsh

virsh は、ハイパーバイザーとゲスト仮想マシンの管理に使用するコマンドラインインターフェース (CLI) ツールです。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 は、仮想マシン管理用の軽量のグラフィカルツールです。このツールでは、既存マシンのライフサイクル管理、新規マシンのプロビジョン、仮想ネットワークの管理、仮想マシンのグラフィカルコンソールへのアクセス、パフォーマンス統計の表示といった機能が提供されます。このツールは、virt-manager というパッケージ名称で出荷されます。

注記

virt-manager を使用した仮想マシン管理に関する詳細は、 『Red Hat Enterprise Linux 6 仮想化管理ガイド』を参照してください。

5.3. virt-install

virt-install は、新規仮想マシンを設定するコマンドラインツールです。テキストベースとグラフィカルベースの両方に対応しており、シリアルコンソール、SDL、SPICE、VNC クライアントサーバーペアグラフィックスを使用します。インストールメディアはローカルに置くことも可能ですし、NFS、HTTP、FTP サーバーにリモートで存在することも可能です。このツールは無人で稼働し、インストール完了時にゲストをキックスタートするように設定することも可能で、インストールの自動化を容易にしています。このツールは python-virtinst パッケージの一部としてインストールされます。

注記

virt-install に関する詳細は、 『Red Hat Enterprise Linux 6 irtualization Host Configuration and Guest Installation Guide』 を参照してください。

5.4. guestfish

guestfish は仮想マシンのディスクイメージを検証し、修正するためのシェルおよびコマンドラインツールです。このツールは、libguestfs を使用し、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 アーカイブもしくはファイルに基づいてファイルシステムを作成するコマンドラインツール。mkisofsmksquashfs に類似したツールですが、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.2Thu Oct 23 2014Aiko Sasaki
翻譯、校閱完成
改訂 1.0-15.1Mon Oct 13 2014Aiko Sasaki
翻訳ファイルを XML ソースバージョン 1.0-15 と同期
改訂 1.0-15Fri Oct 10 2014Dayle Parker
6.6 GA リリース向けバージョン
改訂 1.0-12Tue Oct 07 2014Scott Radvan
イメージの guestfish 操作についての SME からのフィードバックを反映 BZ#1043235
改訂 1.0-11Thurs Aug 28 2014Jodi Biddle
若干の明確化および正確性に関連する修正 (BZ#1043235)
改訂 1.0-10Fri Aug 8 2014Dayle Parker
ベータリース向けのビルド
仮想化のチューニングと最適化ガイドの参照をパフォーマンスのセクションに追加
改訂 1.0-04Mon July 28 2014Dayle Parker
ドキュメントスイート一覧を修正、リンクを更新 (BZ#1043235)
エミュレートされたデバイスとホストストレージについて説明するセクションを追加 (BZ#971226)
改訂 1.0-03Wed July 16 2014Dayle Parker
QXL ドライバーの説明を追加 (BZ#1097974)
改訂 1.0-02Fri June 6 2014Dayle Parker
パフォーマンスのセクションを編集 (BZ#1097973)
「KVM ゲストマシンの互換性」にあるサポートに関する制限の URL を更新 (BZ#1097627)
改訂 1.0-01Fri May 30 2014Dayle Parker
ゲスト CPU モデルのセクションを更新 ( BZ#1097621)
改訂 0.3-43Fri Nov 15 2013Dayle Parker
6.5 GA リリース向けのバージョン
改訂 0.3-42Fri Oct 18 2013Dayle Parker
準仮想化デバイスのセクションの virtio-scsi サポート一覧から Windows 2003 を削除
改訂 0.3-41Wed Oct 2 2013Dayle Parker
最初のページから本版の番号を削除
改訂 0.3-40Wed Sept 25 2013Dayle Parker
ベータリリースに向けに若干編集
改訂 0.3-39Mon Sept 16 2013Dayle Parker
ディスクの I/O スロットリングの説明の表現を若干変更 (BZ#991252)
Red Hat Enterprise Linux 6.4 ベンチマーク詳細の組み込み (BZ#919330)
改訂 0.3-36Thurs Sept 12 2013Dayle Parker
ディスク I/O スロットリングの説明を追加 (BZ#991252)
SME フィードバックに従って GlusterFS の説明を修正 ( BZ#979271)
改訂 0.3-33Mon Sept 9 2013Dayle Parker
GlusterFS の説明を追加 (BZ#979271)
Hypervisor 導入ガイドをドキュメンテーションの一覧から削除
改訂 0.3-32Mon Sept 2 2013Dayle Parker
準仮想化デバイスのセクションで用語を修正 (BZ#983371)
Hyper-V エンライトの説明を編集 (BZ#923342)
改訂 0.3-31Fri August 30 2013Dayle Parker
Hyper-V エンライトの説明の組み込み (BZ#923342)
改訂 0.3-30Tue August 20 2013Dayle Parker
準仮想化デバイスのセクションで用語を修正 (BZ#983371)
改訂 0.3-29Thurs August 15 2013Dayle Parker
virt-v2v によって変換用にサポートされる仮想ディスクイメージ形式 (VHDX、VMDK および OVF ) の一覧を追加 (BZ#982846)
virt-sysprep の説明をセクション 5.5 に追加 (BZ#988156)
改訂 0.3-28Mon August 12 2013Dayle Parker
Hyper-V をセクション 2.3 に追加 (BZ#990333)
改訂 0.3-25Fri Apr 26 2013Dayle Parker
ドキュメントスイート一覧を第 1 章に追加
改訂 0.3-24Mon Feb 18 2013Dayle Parker
6.4 GA リリース向けのバージョン
改訂 0.3-20Thurs Jan 31 2013Dayle Parker
4.4.1 ストレージプールを更新
改訂 0.3-18Tue Jan 29 2013Dayle Parker
4.3.2. 準仮想化デバイスの virtio-scsi サポート詳細を更新 (BZ#903891)
改訂 0.3-16Wed Jan 16 2013Dayle Parker
仮想化製品の章で文章を若干編集
改訂 0.3-15Tues Nov 27 2012Dayle Parker
本書全体にわたって文章を若干編集
改訂 0.3-13Thu Oct 18 2012Dayle Parker
SME のフィードバックを RHEV 「はじめに」に反映 (BZ#798104)
「はじめに」で仮想化ガイドの説明を修正
改訂 0.3-11Wed Oct 17 2012Dayle Parker
1.3 の RHEV セクション を訂正、更新。仮想化ベンチマークを 3.3 に追加 (BZ#798104)
仮想化実装シナリオを追加 (BZ#847924)
改訂 0.3-10Mon Oct 8 2012Dayle Parker
「はじめに」の 1.3 RHEV の説明を更新 (BZ#798104)
改訂 0.3-8Thurs Oct 4 2012Dayle Parker
SME のレビューに従って第 4 章に virtio-scsi についての技術プレビューノートを追加
QEMU ゲストエージェントの説明を追加
4.3.4. ゲスト CPU モデルの設定固有の部分を仮想化ホスト設定およびゲストインストールガイドに移動 (BZ#842970)
改訂 0.3-7Wed Oct 3 2012Dayle Parker
Red Hat Enterprise Linux の仮想化にピアフィードバックを追加
virtio-scsi の説明を追加 (BZ#847167)
改訂 0.3-6Tue Sep 25 2012Dayle Parker
セクション 1.2: Red Hat Enterprise Linux 6 における仮想化を追加
改訂 0.3-5Mon Sep 3 2012Dayle Parker
第 3 章仮想化セキュリティーガイドにリファレンスを追加 (BZ#838009)
改訂 0.3-2Wed Aug 29 2012Dayle Parker
http://docs.redhat.com/ のリンクを新たな場所の http://access.redhat.com/knowledge/docs/ に訂正
2.2.マイグレーションおよび 4.4.1. ストレージプールのセクションでマイグレーションの詳細を訂正 (BZ#831901)
改訂 0.3-1Mon Aug 27 2012Dayle Parker
警告で他のガイドへのリファレンスを掲載、用語を訂正 (BZ#813620)
改訂 0.2-83Mon June 18 2012Dayle Parker
6.3 GA リリース向けバージョン
改訂 0.2-82Mon June 18 2012Dayle Parker
「 64 vCPU 」を「 160 vCPU 」に訂正 (BZ#832415)
改訂 0.2-80Tues June 12 2012Dayle Parker
エミュレートされたウォッチドッグデバイスのセクションについて明確化 (BZ#827307)
改訂 0.2-78Fri June 8 2012Dayle Parker
誤字とマークアップを訂正 (BZ#827305)
第 4 章を全般的に訂正 (BZ#827307)
改訂 0.2-73Mon April 23 2012Laura Novich
第 5 章を訂正 (BZ#798108).
改訂 0.2-72Mon April 23 2012Laura Novich
第 4 章を訂正 (BZ#798106).
改訂 0.2-71Thur April 19 2012Laura Novich
第 5 章を訂正 (BZ#798108).
改訂 0.2-69Wed April 18 2012Laura Novich
第 4 章を訂正 (BZ#798106).
改訂 0.2-68Tue April 17 2012Dayle Parker
「仮想マシン」の用語で必要な箇所を訂正 (BZ#798063)
改訂 0.2-64Mon April 2 2012Laura Novich
第 2 章を訂正 (BZ#800401)
改訂 0.2-61Fri March 30 2012Dayle Parker
第 3 章「利点」を訂正 (BZ#800409)
該当箇所で「仮想マシン」および「仮想化ゲスト」の用語を調整。セクション 4.1 の古くなったリンクを訂正。(ドライバーからの) エミュレートされたネットワークデバイスの用語を訂正 (BZ#798063)
改訂 0.2-52Wed January 11 2012Jacquelynn East
略語の明確化 (BZ#772859)
改訂 0.2-51Fri November 4 2011Jacquelynn East
誤字修正 (BZ#750969)
改訂 0.2-47Fri October 14 2011Jacquelynn East
エミュレートされたウォッチドッグについての段落を追加 (BZ#744156)
改訂 0.2-44Fri September 16 2011Jacquelynn East
BZ#734614
改訂 0.2-43Fri September 16 2011Jacquelynn East
若干の編集 (BZ#734618)
改訂 0.2-37Fri September 2 2011Jacquelynn East
(BZ#734619, 734614)
改訂 0.2-34Thu September 1 2011Jacquelynn East
(BZ#734619, 734511, 734618, 734616, 715476, 734613)
改訂 0.2-33Wed August 31 2011Jacquelynn East
(BZ#734618, 734613, 734619)
改訂 0.2-22Wed July 27 2011Jacquelynn East
利点の章を完了 (BZ#715476)
改訂 0.2-17Mon July 25 2011Jacquelynn East
若干の編集 (BZ#715473, 715474)
改訂 0.2-15Mon July 25 2011Jacquelynn East
第 4 章のドラフト (BZ#715476)
改訂 0.1-1Wed May 4 2011Scott Radvan
基本的なレイアウトと本の構成を調整。導入部テキストをインポート
改訂 0.0-1Wed May 4 2011Scott Radvan
Publican による初版作成

法律上の通知

Copyright © 2011-2014 Red Hat, Inc.
This document is licensed by Red Hat under the Creative Commons Attribution-ShareAlike 3.0 Unported License. If you distribute this document, or a modified version of it, you must provide attribution to Red Hat, Inc. and provide a link to the original. If the document is modified, all Red Hat trademarks must be removed.
Red Hat, as the licensor of this document, waives the right to enforce, and agrees not to assert, Section 4d of CC-BY-SA to the fullest extent permitted by applicable law.
Red Hat, Red Hat Enterprise Linux, the Shadowman logo, JBoss, OpenShift, Fedora, the Infinity logo, and RHCE are trademarks of Red Hat, Inc., registered in the United States and other countries.
Linux® is the registered trademark of Linus Torvalds in the United States and other countries.
Java® is a registered trademark of Oracle and/or its affiliates.
XFS® is a trademark of Silicon Graphics International Corp. or its subsidiaries in the United States and/or other countries.
MySQL® is a registered trademark of MySQL AB in the United States, the European Union and other countries.
Node.js® is an official trademark of Joyent. Red Hat Software Collections is not formally related to or endorsed by the official Joyent Node.js open source or commercial project.
The OpenStack® Word Mark and OpenStack logo are either registered trademarks/service marks or trademarks/service marks of the OpenStack Foundation, in the United States and other countries and are used with the OpenStack Foundation's permission. We are not affiliated with, endorsed or sponsored by the OpenStack Foundation, or the OpenStack community.
All other trademarks are the property of their respective owners.