複雑な仮想化技術を支えるKVMのリソース管理:KVM徹底解説 第4回 - (page 2)

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

2011-10-05 17:11

3. ハードウェアリソースのオーバーコミット

 仮想化技術では、複数のゲストOSを統合することで効率性を向上させるとともに、仮想マシンの集約度をできる限り高めて優れたパフォーマンスを維持できることが理想です。これらの実現度は、仮想化技術が提供するハードウェアリソースをオーバーコミットする能力によるところが大きいのです。

 オーバーコミットとは、システム上に存在する物理的リソース以上に仮想的リソースを割り当てることです。例えば、物理メモリは32MBしか存在しないが、仮想メモリは64MBを割り当てることをいいます。KVMでは、CPUとメモリのオーバーコミットが可能です。

ゲストOSもメモリオーバーコミット技術を採用している

 現在、ゲストOSになりうるOSは仮想メモリの概念を採用しているので、メモリオーバーコミット技術を採用しています。多くのプロセスを必要とするメモリは、全て同時に物理メモリに展開されるのではなく、必要になったメモリページが都度割り当てられる仕組みです。物理的に割り当てられていないメモリがディスクに存在しており、必要に応じて物理メモリへ展開されることで、仮想的に物理メモリの容量を超えるメモリを処理できる仕組みを採用しています。これらの動作の中で、物理メモリが不足した場合には、使用頻度が低いメモリページをディスクへスワップアウトしてメモリを解放します。

ホストOSとゲストOSの連携が重要

 KVM(ホストOS)上でゲストOSが動作するという仮想化技術のアーキテクチャから見て、重要なポイントは以下にあります。

  • 複数動作しているゲストOSが要求するメモリ容量は異なる(差がある)
  • 各ゲストOSもメモリオーバーコミット技術を採用している
  • KVM(ホストOS)自身もメモリオーバーコミット技術を採用している

 各ゲストOSが要求するメモリ容量は、ある一時点を見ると大きな差異が生じています。よって、多くのメモリを要求しているゲストOSには、消費量が少ないゲストOSの空いているメモリを割り当てることでリソースを有効に活用できます。

 KVMがゲストOSのメモリ管理を実施している一方で、ゲストOSでも同様のメモリ管理を実施していますが、ここでゲストOSが物理環境において単体で動作している状態では発生しない問題が起こります。ホストOSとゲストOSが何らかの連携を取らなければ、無駄にページングやスワッピングが発生してしまい、システム全体のパフォーマンスを劣化させる可能性があるのです。

KVMのメモリオーバーコミットに対応するメカニズム

  • メモリバルーニング(Memory Ballooning)
    KVMがゲストOSに対してメモリの解放を指示し、解放されたメモリを他のゲスト(またはホスト)で使用できるようにする仕組み
  • KSM(Kernel Same-page Merging)
    特定のメモリ領域内にアクセスし、記憶内容が同一のページを1つのページに集約し、重複しているページを解放する仕組み。同じ構成のアプリケーションを搭載するゲストOSが多数存在するときにメモリ占有量を節約する効果がある

 これらのメカニズムは、メモリオーバーコミットに対する管理フレームワークであり、動的に変化するメモリ消費量を監視して、必要に応じてメモリの解放と再割り当てを行うことまでは実現できません。これらを実現するためには、ホストOSとゲストOSの状態を常にモニターし、その状態に応じたバルーニングを制御する別のメカニズムが必要となります。

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

ZDNET Japan クイックポール

マイナンバーカードの利用状況を教えてください

NEWSLETTERS

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

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

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