1.2 仮想マシン機能
1.2.3 I/O 仮想化方式
1.2.4.2 メモリの仮想化
仮想マシンのメモリには、物理マシンに搭載されたメモリを分割したものが割り当てられます。
起動中の仮想マシンは割り当てられたメモリを占有して使用し、停止時にそれを解放します。
図1.13 メモリの割り当ての例
なお、ハイパーバイザはメモリのスワップを行わないため、仮想マシンで使用できるメモリ(複数の場合は各 仮想マシンの使用メモリの合計)の上限は物理マシンの搭載メモリ量になります。
したがって、ゲストOSを動作させる仮想マシンで使用できるメモリの総量は、搭載メモリからハイパーバイ ザとドメイン0に割り当てたメモリ量を差し引いた量となります。
1.2.4.3
ブロックデバイスの仮想化
ブロックデバイスとは、複数バイトからなるデータブロックを1 つの単位としてデータの入出力を行うデバイ スの総称であり、ハードディスクなどが該当します。仮想マシンのブロックデバイスを仮想ブロックデバイス
(VBD)といい、ディスクとして使用されることを目的とした仮想デバイスドライバ方式で実現されたブロッ クデバイスのことです。(「1.2.3 I/O仮想化方式」参照)
仮想ブロックデバイスは、バックエンド(ドメイン 0)側の物理ブロックデバイスをゲストドメイン側に見せ るための機構です。
仮想マシン上のゲストOSから発行するI/Oは、仮想ブロックデバイスを経由し、ドメイン0に接続された物 理ブロックデバイスへアクセスされます。
現在のところ、バックエンドは、ドメイン 0 のみです。つまり、すべてのゲストドメインで使用する仮想ブ ロックデバイスは、ドメイン0に接続されたブロックデバイスを利用しています。
仮想ブロックデバイスには、以下のような形式のブロックデバイスを割り当てることができます。
• ディスク
• パーティション
• イメージファイル
• LVM論理ボリューム
図1.14 仮想ブロックデバイス (VBD)
イメージファイルとは、ディスクなどのブロックデバイスと同じような構造をもったファイルのことです。その 内部には複数のディレクトリやファイルが格納されます。
イメージファイルは、バックエンド(ドメイン0)のファイルシステムにより実現しているものです。バックエ ンド( ドメイン0) からみれば、1つのファイルであり、コピーや移動、バックアップが簡単にできます。イ メージファイルは、ディスクやパーティションに比べて取り扱いが容易ですが、性能が劣ります。
1.2.4.4
ネットワークの仮想化
仮想ネットワークとは、仮想マシンと外部のネットワークを接続するためにドメイン 0 上で構成されている ネットワークのことです。
仮想ネットワークインタフェース(VNIF)は、仮想デバイスドライバ方式で各ドメイン上に実現されたネッ トワークインタフェースのことです。(「1.2.3 I/O仮想化方式」参照)
ネットワークインタフェース(eth0、eth1など)とは、ネットワークの出入口を指します。
物理的なネットワークと仮想ネットワークの例を以下の図に示します。
図1.15 物理ネットワークと仮想ネットワーク
仮想ブリッジとは、管理OSのLinuxで実現されている単純なL2スイッチの機能を有するモジュールのことで す。仮想ネットワークの構成要素のひとつとして各ネットワークインタフェース間の通信の橋渡しをします。
仮想ネットワークのブリッジ接続は、ドメイン0上の仮想ブリッジを使用して実現しています。
各ゲストOS上のEthernetインタフェースとしてeth(実際は通し番号がついてeth0やeth1のようになります)
が接続し、反対側はドメイン0上の仮想ブリッジに接続されています。
仮想ネットワークにおいては、通信させるデータにタグと呼ばれる識別子をつけて、複数のネットワークをグ ループ化するタグVLANと呼ばれる機能を利用することもできます。
図1.16 仮想ネットワークの構造(例)
上図における、各インタフェース(このインタフェース名は、管理OS上で参照できます)の意味は以下のと おりです。
• eth(管理OS上)
管理OS上のソフトウェアが実際に使用する仮想ネットワークインタフェースで、管理OS上の仮想ブリッ ジに接続されます。
• eth(ゲストOS上)
ゲストOS上のソフトウェアなどが実際に使用する仮想ネットワークインタフェースで、管理OS上の仮想 ブリッジに接続されます。
• peth(管理OS上)
物理マシンに接続されているEthernetデバイスへのインタフェース。