PR

仮想アプライアンスの最新技術

2010年6月29日(火)
的場 謙一郎

仮想アプライアンスの登場とその背景

サーバーの仮想化が定着しつつある現在、さらなるインフラの柔軟性を実現するために、ネットワーク上に存在している、いわゆるアプライアンス機器の仮想化、つまり「ハイパーバイザ上で動作するネットワーク機器」が、強く望まれるようになってきています。

「クラウド・コンピューティング」あるいはその技術を活用した共有型のインフラ・サービスの提供を検討している組織や事業者では、柔軟なシステム設計を可能にするため、迅速かつオン・デマンドでネットワーク・サーバー機を配備できる仮想アプライアンスの存在は、非常に有効です。

図1: XenServer上で動作する仮想アプライアンス

仮想ネットワーク・アプライアンスの実現

仮想ネットワーク・アプライアンス、つまりハイパーバイザ上で動作するアプライアンスを実現するための要件は何でしょうか。

XenServerなどオープンソースXenを由来とするハイパーバイザも、VMware ESXをベースとするハイパーバイザも、x86アーキテクチャのサーバー機をエミュレートします。つまり、これらハイパーバイザ上で動作する仮想アプライアンスのソフトウエア自体も、x86アーキテクチャで動作する必要があります。加えて、仮想アプライアンスを動作させる物理サーバー機も、物理的に接続されている周辺機器も含めてそれぞれのハイパーバイザで利用可能なものでなければなりません。

こうしたシステム要件がある一方で、歴史のあるネットワーク機器であればあるほど、専用のハードウエアを利用しているケースが多く見受けられます。これが、仮想ネットワーク・アプライアンスの実現を困難にさせる一因です。

ネットワーク機器が多様化し、アプライアンスという市場が拡大した1990年代は、コンピュータ・ネットワークが大きく発展した時代です。

1990年代以前は、OSのネットワーク・プロトコル・スタック自身も、そしてハードウエア(ネットワーク インタフェース・カード、NIC)も、当時LANで使われていた毎秒10MビットのEthernetを超える処理を想定していませんでした。このため、汎用CPUとOSを使用して毎秒100Mビットを超えるネットワークをライン速度で処理することは、ほぼ不可能でした。

そこで、高速ネットワーク処理の必要性に対する解決策として、汎用CPUと汎用OSの代わりに、特定のネットワーク処理を行うために専用に設計されたハードウエア(一般的に「ASIC」と呼びます)を使うようになりました。これらASICを用いた代表的なアプライアンスには、レイヤー3スイッチ(ルータ)、レイヤー4スイッチ(ロード・バランサ)などがあります。

機能の拡張性や汎用性を犠牲にすることにはなりますが、IPアドレスやポート番号など処理する範囲と内容があらかじめ決まっていれば、ハードウエア(ASIC)の方がソフトウエアよりもずっと高速に動作します。また、ネットワークのようなリアルタイム性の高い処理を行うには、そのような特徴を備えた組み込み機器向けのCPUとOSを利用することも有効です。

さらに、装置全体として特定の処理しか行わないアプライアンスとしての実装であれば、全体を管理するOSもまた、専用のものを使った方が、管理ツールなどの面で運用性が向上します。同時に、外部からの予期できない攻撃に対応するには、汎用目的のOSよりも専用OSの方がセキュリティ面で強固だと考えられます。

これらの理由により、ネットワーク上で使うアプライアンスは、文字通り特定目的のために最適化された専用装置として発展してきました。歴史のあるアプライアンスほど、専用ハードウエアへの依存度は高くなり、仮想アプライアンスとしてハイパーバイザ上に移植することが困難となっています。

シトリックス・システムズ・ジャパン株式会社 マーケティング本部 プロダクトマーケティング シニア プロダクト マーケティング マネージャー

外資系コンピュータ・メーカーにて、ネットワーク関連ハードウエアおよびソフトウエア、セキュリティ、サーバーおよびワーク・ステーションなど幅広い分野のプロダクト・マーケティングを経て、2009年10月より現職。ネットワークを中心とした、手元に情報資源を「持たない」コンピューティングを、15年以上にわたって追求中。
 

連載バックナンバー

Think IT会員サービス無料登録受付中

Think ITでは、より付加価値の高いコンテンツを会員サービスとして提供しています。会員登録を済ませてThink ITのWebサイトにログインすることでさまざまな限定特典を入手できるようになります。

Think IT会員サービスの概要とメリットをチェック

他にもこの記事が読まれています