目次
概要
いまはVMWareなどでサーバ仮想化は手軽に利用できるようになっています。サーバを仮想化すると、柔軟なシステムを構築できます。技術検証にも仮想化はとても便利です。サーバ仮想化技術の概要について解説します。
仮想化とは
仮想化とは、物理的な構成にとらわれずにサーバやネットワーク、ストレージなどのさまざまなリソースを活用するための技術です。仮想化技術は、クライアントコンピュータやサーバ、ネットワーク、ストレージなどさまざまな技術分野で適用されています。
仮想化技術を利用すると、物理的なサーバやネットワーク、ストレージ装置といった物理リソースを自由に論理的なリソースとして構成することができます。一口に仮想化技術といってもさまざまな技術があります。たとえば、物理的に1台のサーバを論理的に複数のサーバとして利用することができます。逆に、物理的に複数台のサーバをあたかも1台のサーバとして利用するようなこともできます。
さまざまな仮想化技術がありますが、サーバを仮想化するサーバ仮想化技術が注目を集めています。以降では、サーバ仮想化技術にフォーカスして解説していきます。
サーバ仮想化技術のメリット
サーバ仮想化技術は、1台の物理的なサーバを論理的に複数台のサーバとして利用するための技術です。サーバ仮想化技術を利用することによって、主に、次のようなメリットが得られます。
- サーバを集約して、サーバ台数を削減することができる
- ハードウェアとソフトウェアのライフサイクルギャップを吸収できる
- ハードウェアリソースを効率よく利用できる
サーバを集約して、サーバ台数を削減することができる
ピアツーピア型の通信も増えていますが、多くのシステムは、クライアント/サーバ型で実現されています。クライアントアプリケーションがサーバアプリケーションに対してリクエストを送信し、サーバでリクエストを処理し、クライアントに返していくという仕組みです。こうしたクライアント/サーバ型のシステムを実現するサーバは、通常は、OS+1つのアプリケーションという構成を取ります。1つのOS上に複数のアプリケーションを稼働させるとOSの動作が不安定になってしまうことがあります。また、セキュリティ上の観点からも1つのOS上には1つのアプリケーションという構成が望ましいです。脆弱性のあるアプリケーションが攻撃されると、他のアプリケーションもその影響を受けてしまうことが考えられるからです。
こうした安定性やセキュリティ上の考慮から、サーバの性能的に余裕があっても、1台の物理的なサーバを複数の用途に利用することはあまり行いません。メール用にメールサーバを構成し、Web用にWebサーバを構成し、データベース用にデータベースサーバを構成し・・・とそれぞれの用途ごとに物理的なサーバを構成することが一般的です。すると、サーバ台数がどんどん増えてきてしまいます。
物理的なサーバ台数が増えてしまうと、サーバの管理コストや電力コストなどのランニングコストが増加してしまいます。
そこで、サーバ仮想化技術を利用します。1台のサーバマシンを仮想的に複数台のサーバとして扱うようにすれば、サーバを集約してサーバ台数を削減することができます。その結果、サーバのランニングコストを低減することができるようになります。
ハードウェアとソフトウェアのライフサイクルギャップを吸収できる
システムはハードウェアとOSやアプリケーションといったソフトウェアから構成されます。ハードウェアとソフトウェアのライフサイクル(寿命)が一致しないライフサイクルギャップが問題になることがあります。
ハードウェアの保証期間が満了したあと、ハードウェア故障が発生したとき、簡単に修理できないことがあります。そのようなときに、新しいハードウェアに置き換えても、今度は、新しいハードウェアでOSが利用できないこともあります。サポート期間が終了したOSには、新しいハードウェアを利用するためのドライバが提供されないからです。ハードウェアを置き換えて、さらにOSを新しくしても問題が起こる場合があります。OSを新しくすると、古いOSで稼働していたアプリケーションが動作しないことがあるからです。
このようなライフサイクルのギャップをサーバ仮想化技術で解消することができます。仮想化技術によって、ハードウェアからOSとアプリケーションを切り離して、ハードウェアに依存せずにOSとアプリケーションを利用することができるからです。サーバ仮想化技術を利用すれば、最新のハードウェア環境上で、古いOSやアプリケーションの利用が可能です。
ハードウェアリソースを効率よく利用できる
システムごとに負荷のピークはさまざまです。通常、ピーク時の負荷に合わせてサーバの処理性能を決定します。すると、ピーク時以外はサーバのハードウェアリソースを使い切れないことがあります。また、システムによってサーバに求められる処理性能は違ってきます。あるシステムのサーバのCPU使用率は低く、別のシステムのサーバのCPU使用率が高くなってしまう場合があります。たとえば、DNSサーバはそれほどCPU負荷が高くなることはあまりありません。一方、データベースサーバやアプリケーションサーバは高いCPU負荷になる場合が考えられます。
近年、CPU性能をはじめとしたハードウェアの性能は著しく向上しています。単体のシステムでは最新のハードウェアリソースを使い切るようなことは、ほとんどなくサーバのハードウェアリソースが無駄になってしまいます。そこで、仮想化技術によってピークがずれているシステムやCPU使用率の傾向が異なるシステムのサーバを集約することで、単体のシステムでは使い切れないようなハードウェアリソースを効率よく利用することができます。
サーバ仮想化技術の方式
サーバ仮想化技術には、次の2種類あります。
- ホストOS型
- ハイパーバイザー型
ホストOS型は、ホストOSのミドルウェアとして仮想化ソフトが動作します。仮想化ソフトによって仮想ハードウェアが作成され、仮想ハードウェア上でOSやアプリケーションが動作できるようになります。仮想ハードウェアは、仮想サーバが利用可能なCPUプロセスやメモリ、ストレージサイズなどを定義したものです。物理的なハードウェアの入出力処理にはホストOSの機能を利用することになります。ホストOS経由でハードウェアを扱うために、オーバーヘッドが大きくなってしまいます。
一方、ハイパーバイザー型では、仮想化ソフトが物理的なハードウェアの入出力処理を実行します。そして、仮想ハードウェアを作成し、仮想ハードウェア上でOSやアプリケーションを稼働させます。仮想化ソフトが直接ハードウェアを制御することから、ハイパーバイザー型はオーバーヘッドが小さく、ハードウェアリソースの管理も柔軟に行うことができます。そのため、サーバを仮想化するためには、ホスト型よりもハイパーバイザー型の方式が主流です。
まとめ
ポイント
- 仮想化とは、物理的な構成にとらわれずにサーバやネットワーク、ストレージなどのさまざまなリソースを活用するための技術です。
- サーバ仮想化技術によって、1台の物理的なサーバを論理的に複数台のサーバとして利用できます。
- サーバ仮想化技術の主なメリットは以下の通りです。
- サーバを集約して、サーバ台数を削減することができる
- ハードウェアとソフトウェアのライフサイクルギャップを吸収できる
- ハードウェアリソースを効率よく利用できる
- サーバ仮想化技術の方式として、主に以下の2つあります。
- ホストOS型
- ハイパーバイザー型