サーバ仮想化の3つの弱点
弱点その1:メモリの容量オーバー
サーバ仮想化を実装するためには、導入を検討されているサーバのスペックの確認が必要です。1台のサーバ上で複数の仮想マシンが動くためより高性能な機能が求められるためです。まず、スペックで見ておくポイントはCPUとメモリ容量です。
サーバの頭脳を司るCPUですが、実は多くのサーバのCPU使用率は非常に低い(5% 程度)という点が仮想サーバ導入する1つの理由でもあるくらい、CPUの性能は高い状況です。1990年代後半から始まったCPUスピード激化時代に始まり、現在では進化の頭打ちといわれるくらい必要十分なレベルに達しています。
それに対し、メモリの容量は、日進月歩、進化し続けている状況であるため、数年前に購入したサーバでは容量が足りなくなる可能性が発生します。メモリの進化を単純に理解するには日常的に使用する記録媒体を思い出してみてください。ほんの十数年年前まで使用していたフロッピーディスクの容量はなんとキロバイト単位でした。それが、現在主に使用されるUSBメモリはギガバイト単位が主流です。
スペックの低いサーバ上で、複数の仮想マシンを稼働した際に、メモリ容量が足りなくなるイメージがつかめるのではないでしょうか。1つのアプリーケーションを使用する際にスペック以上のメモリ容量が必要となった場合、現場のサーバのメモリの空き容量では完全にオーバーフローする可能性が高いのです。
弱点その2:データの入出力性能
データや信号を入力したり出力する回路や装置、またはソフトウェアをI/O(アイオー)といいます。このI/Oがサーバを仮想化した時に弱点になることがあります。
デバイスとメモリ間で大きなデータをやり取りする際、 I/O は DMAC(Direct Memory Access Controller)という、CPU を介することない専用回路を使用する仕組みになっています。DMACが低速なデバイスとのやりとりから CPUを開放することで、CPUはI/Oの実行が遅くなったとしても、他の処理を進めることができるよう工夫されています。
しかし、仮想マシンの環境では、物理マシン上の DMAC を複数の仮想マシンで共有して利用するため、排他制御や順番の整理をソフトウェアで行うことになります。
つまり、サーバを仮想化するとI/OがDMACを使用したいにも関わらず、様々なソフトウェアが関与することでCPUの使用が必要となってしまうのです。本来 I/O と CPU を切り離して CPU を開放するための仕掛けが機能しなくり、CPUの性能に対してI/Oが足を引っ張ることになってしまうのです。
出典:日本ユニシス「仮想化の落とし穴と脱出法」高橋優亮
http://www.unisys.co.jp/tec_info/tr112/11202.pdf
弱点その3:データバックアップの負荷
従来、データのバックアップは、エージェントと物理サーバのやり取りで完了していました。これを仮想サーバで行った場合、仮想サーバという中継地点が1つ追加され、かつ複数の仮想マシンのエージェントへの読み出しが必要となるため、CPUへの負荷がかかるようになります。弱点2でも解説したように、大規模なデータのやり取りは、仮想サーバ全体に負荷をかけパフォーマンスの低下を招きます。
この問題を解決するために、仮想マシン内の更新ブロックのみを読み出す製品や、仮想マシンを介さず、それぞれのエージェントのバックアップを行う製品が販売されています。これらの機能を備えることで仮想サーバへの負荷を軽減します。
サーバ仮想化の導入の際には、現在のサーバまたは導入を検討されているサーバがこの3つの弱点をクリアできるかをチェックしてみてください。正しい環境を整えることが、サーバ仮想化導入のメリットを最大に享受できるポイントです。