仮想化は、一つのコンピュータリソースを複数に見せる「分割」、複数のリソースを一つに見せる「統合」、個別インタフェースを汎用化する「抽象化」を実現する。

 仮想化の対象となるコンピュータリソースはさまざまだ。そのなかでも特に、サーバー仮想化、I/Oインタフェース仮想化、ストレージ仮想化、ネットワーク仮想化、デスクトップ仮想化などを整理して理解することで、技術変化に対する応用力を身につけることができる。

サーバー仮想化はハードアシストが普及

 まず、サーバー仮想化について解説する。サーバーの構成要素は、CPU、メモリー、入出力(I/O)がある。SMP(対称型マルチプロセッシング)サーバーでは、これらを物理分割するパーティション機能を有するものがある。逆に、複数サーバーをバスレベルで連結することで、OSから見て一つのサーバーにできる機種もある。これらがサーバー単位の仮想化だ。

 OS単位でみると、通常のOSは仮想記憶(ページングなど)が前提であり、必要に応じて仮想アドレスに実メモリーを割り当てる。仮想アドレスから実アドレスへの変換は、キャッシュの一種であるTLB(Translation Look-aside Buffer)がハードアシストする。仮想サーバーの場合は、ハイパーバイザーが仮想サーバー単位に実メモリを割り当てるので、仮想サーバー単位にTLBを用意するようにハードアシストが強化されている。