第1章 Red Hat Virtualization システムアーキテクチャ

第1章 Red Hat Virtualization システムアーキテクチャ

正しく稼動する Red Hat Virtualization システムは複数レイヤーであり、特権を持つRed Hat Virtualization コンポーネントにより運用されます。Red Hat Virtualization は複数のゲストオペレーティングシステムを保持できます。各ゲストオペレーティングシステムはそれぞれ自身のドメイン内で稼動し、Red Hat Virtualization は仮想マシン内の仮想 CPU をスケジュールして利用可能な物理 CPU を最大利用できるようにします。各ゲストオペレーティングシステムはそれ自身のアプリケーションを担当します。これらのゲストオペレーティングシステムはそれぞれのアプリケーションを必要に応じてスケジュールすることになります。

Red Hat Virtualization を以下の二つの方法のいずれかで導入できます: 完全仮想化 full virtualization、又は パラバーチャライゼーション paravirtualization。完全仮想化(full virtualization) では、根底にある物理システムの総合抽象化(total abstraction)を提供し、ゲストオペレーティングシステムが実行できる新規の仮想システムを作成します。この場合、ゲスト OS やアプリケーションには修正は必要ありません(ゲスト OS やアプリケーションは仮想環境の認識がなく普通に動作します)。パラバーチャライゼーション (Paravirtualization) では、ユーザーが仮想マシン上で動作するゲストオペレーティングシステムを修正して、ネイティブに近いパフォーマンスを提供する必要があります(これらのオペレーティングシステムは仮想マシン上で動作している認識を持ちます)。仮想化基盤構造全域に渡って、paravirtualization と完全仮想化の両方が導入できます。

domain0 (dom0) と呼ばれる一番目のドメインは、システムがブートする時点で自動的に作成されます。Domain0 は特権ゲストであり、新規のドメイン作成や仮想デバイス管理などができる管理能力を所有します。Domain0 はネットワークカードやハードディスクコントローラなどの物理ハードウェアを処理します。Domain0 はまた、他の仮想マシンに対してゲストの保留、復元、あるいは移行などの管理タスクも処理します。

hypervisor(Red Hat の仮想マシンモニター) は完全仮想化環境内に於て単独ホスト上で複数のオペレーティングシステムを同時に実行するようにできる仮想化プラットフォームです。ゲストとは、ホスト、すなわち主体 OS の他に、仮想マシン上で実行するオペレーティングシステムのことです。

Red Hat Virtualization では 各ゲスト memory(メモリー) はホストの物理メモリーの一部から来るものです。paravirtualization ゲストには、初期メモリーと仮想マシンの最大メモリーサイズの両方を設定できます。ランタイム時には、指定した最大サイズを超過することなく、仮想マシンへ物理メモリーを追加(あるいは削除)することができます。このプロセスは「ballooning」と呼ばれます。

各ゲストを多数の仮想 cpus (vcpus と呼ばれる)で設定することができます。物理 CPU 上の作業負荷に応じて、仮想マシンマネージャは vcpus をスケジュールします。

ユーザーはゲストに対して、任意の数の virtual disks(仮想ディスク) を認可することができます。ゲストはこれらの仮想ディスクをハードディスク、又は CD-ROM デバイス(完全仮想化ゲスト用)と見なします。各仮想ディスクはブロックデバイスから、あるいはホスト上の通常ファイルからゲストへのサービス提供します。ホスト上のデバイスにはゲスト用の完全ディスクイメージが含まれており、通常はパーティションテーブル、複数パーティション、及び殆んどの場合、LVM 物理ボリュームを含んでいます。

Virtual networking interfaces(仮想ネットワーキングインターフェイス) はゲスト上で動作します。他のインターフェイスは、仮想イーサネットインターネットカード(VNIC) のようなゲスト上で動作できます。これらのネットワークインターフェイスは固定の仮想メディアアクセスコントロール(MAC)アドレスを使って設定されるものです。新規ゲストのデフォルトインストールは、千六百万以上のアドレスの保管プールからランダムに選択した MAC アドレスを持つ VNIC をインストールします。その為、二つのゲストが偶然に同じ MAC アドレスを受理することはあり得ないと言えます。大量のゲストを持つ複雑なサイトでは、手動で MAC アドレスを割り当てて、各ゲストがネットワーク上で固有のものであることを確実にすることができます。

各ゲストは、ホストに接続できる仮想 text console(テキストコンソール) を持っています。ゲストログインとコンソール出力をテキストコンソールに転送することができます。

設定すればどのゲストでも、物理ホスト上の通常のビデオコンソールに相当する仮想 graphical console(グラフィカルコンソール) を使用できるようになります。これは 完全仮想化ゲストでも paravirtualization ゲストででも実行できます。この機能はブートメッセージ、グラフィカルブーティング、複数仮想ターミナルのような標準グラフィックアダプタの特長を活用し、x window システムを起動します。ユーザーはまた、グラフィカルキーボードを使用して、仮想のキーボードとマウスを設定することもできます。

ゲストは、次の三つの identities(識別要素) のいずれかで識別できます: ドメイン名 (domain-name)、識別子 (domain-id)、または UUID。ドメイン名はゲスト設定ファイルに相当するテキストの文字列です。ドメイン名はゲストの起動に使用され、ゲストの稼動時には同じ名前が、識別と制御のために使用されます。domain-id はアクティブなドメインに割り当てられる独得の非固定の番号であり、ドメインを識別し制御する為に使用されます。UUID は、ゲスト設定ファイルから制御される固定の特有識別子であり、ゲストがシステム管理ツールで確実に長期間識別されるようにします。これは稼動時にはゲストに見えるようになります。新規の UUID は、ゲストが最初にインストールする時にシステムツールによって各ゲストに自動的に割り当てられます。