KVMの機能とクラウドOS:KVM徹底解説 第2回 - (page 2)

山﨑靖之 (サイオステクノロジー株式会社)

2011-08-22 09:00

1-2. メモリの仮想化

 物理環境でのLinuxのメモリ管理の方式としては、各プロセスが論理アドレス空間をアクセスし、論理アドレスから物理メモリへの変換処理を経てメモリへのアクセスを実現しています。この変換処理で用いる対応表をページテーブルと呼びます。

 KVMでは、複数動作する仮想マシンに対応するための変換処理が必要となり、その処理概要は以下のとおりです。

 まず、仮想マシンごとに割り当てられた「仮想的な物理メモリ」の位置を記録するGPFN(Guest Page Frame Number)と、本物の「物理的なメモリ」の位置を記録するMPFN(Machine Page Frame Number)が存在しており、これらの対応づけをEPT(Extended Page Table:拡張ページテーブル)によって実現しています。

 仮想マシン上で動作するゲストOSは、上記の「仮想的な物理メモリ」を物理メモリと思い込んで動作しており、各ゲストOSのページテーブルには、論理アドレスとGPFNとの対応が記録されることになります。

 物理環境での変換処理と比較して一段階多いアドレス変換のメカニズムを用いることで、仮想化環境のアドレス変換を実現しています。

図2 メモリ変換 図2 メモリ変換

1-3. Disk装置の仮想化

 ゲストOSに接続されているDisk装置は、何らかの手段で仮想化される必要があります。ここでいう仮想化とは、「物理的なDisk装置はホストOS(KVM)に接続されているが、ゲストOSは自身が接続しているDisk装置をあたかも物理接続であるかのように見せる方法」を指しています。

 KVMの場合は、この処理をオープンソースのQEMUによって実現しています。QEMUは、Disk装置などのデバイスをソフトウェア的にエミュレートするソフトウェアです。ゲストOSが自身に接続されているDisk装置にアクセスすると、仮想化支援機能によって、QEMUのデバイスエミュレータに処理が渡され、ゲストOSがアクセスしようとしているDisk装置の実体に相応するホストOS(KVM)に接続されているDisk装置に対してアクセスを実施するものです。

図3 デバイスのアクセス 図3 デバイスのアクセス

1-4. ネットワークの仮想化

 ネットワークの仮想化についても、Desk装置の仮想化と同様に、QEMUのデバイスエミュレーションによって実現をしています。ただし、Disk装置の場合とは異なる点として、KVM環境の仮想ネットワークの概念があります。

 仮想ネットワークは、「TAPデバイス」と「仮想ブリッジ」から構成されており、これらはホストOS(KVM)環境で動作しています。具体的な動作を解説すると以下のようになります。

 仮想マシン上のゲストOSのNICをエミュレートしているQEMUプロセスと通信しているのが、ホストOS(KVM)環境で動作するTAPデバイスです。よって、ホストOS(KVM)環境では、複数のTAPデバイスが動作しており、ゲストOSと通信していることになります。これらの複数のTAPデバイスを接続しているのが仮想ブリッジであり、ホストOS(KVM)内部にネットワークスイッチを構成することになります。単純な方式では、この仮想ブリッジを物理的なNICにブリッジ接続することで、ゲストOSが物理的なネットワーク環境と接続することが可能となります。

ZDNET Japan 記事を毎朝メールでまとめ読み(登録無料)

ZDNET Japan クイックポール

注目している大規模言語モデル(LLM)を教えてください

NEWSLETTERS

エンタープライズ・コンピューティングの最前線を配信

ZDNET Japanは、CIOとITマネージャーを対象に、ビジネス課題の解決とITを活用した新たな価値創造を支援します。
ITビジネス全般については、CNET Japanをご覧ください。

このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]