今さら聞けない物理サーバの基礎(1)
仮想化によって生じたサーバ界の大異変
インターネット上で何らかのサービスを提供する、あるいは社内で利用するメールサーバや業務アプリケーションサーバを構築するといった際、物理サーバではなく仮想サーバを利用することが増えています。仮想化技術を利用し、仮想化したハードウェアにOSなどをインストールして利用する仮想サーバは、必要なときに即座に構築できる手軽さがあり、幅広い用途で使われるようになりました。
この仮想サーバが急速に普及した背景には、IaaS(Infrastructure as a Service)と呼ばれるクラウドサービスの存在も大きいでしょう。IaaSは仮想サーバを提供するサービスであり、インターネット上で申し込むだけで即座に仮想サーバを使い始めることができます。また従量課金制であり、必要なときに必要な分だけ使えることもIaaSの利点です。
このような背景から仮想サーバが普及しましたが、一方で物理サーバが選ばれるケースもあるのも事実です。それでは、この仮想サーバと物理サーバにはどのような違いがあるのでしょうか。
サーバを仮想化する理由
物理サーバと仮想サーバの違いは、ハードウェアの実体があるかないかで区別できます。物理サーバには実体があり、仮想的なハードウェアを使う仮想サーバには実体はありません。サーバとして動作するにはCPUやメモリ、ストレージが必要ですが、仮想サーバではこれらが仮想化されていて、物理サーバから見ると、ストレージに保存されているデータの1つに過ぎないのです。このデータを読み取り、物理サーバのリソースを使って仮想サーバを実行しているのが仮想化ソフトウェアなどと呼ばれているものです。
それでは、なぜサーバを仮想化するのでしょうか。いくつか理由はありますが、その1つとして大きいのがリソースの有効活用です。1つのサーバを1つの用途でしか使わない場合、物理サーバをそのまま使うと1つの用途でしか使えないことになります。しかし物理サーバ上で複数の仮想サーバを実行すれば、1つの物理サーバを複数の用途で使うことが可能になり、リソースをより効率的に使うことが可能になるというわけです。
前述したように、必要なときに即座にサーバを構築できることも仮想サーバの特長です。たとえばシステムの開発中に、検証用などでサーバが急遽必要になるといったことは珍しくありません。この際、物理サーバであれば発注から納品までに短くても数日、長ければ数週間のタイムラグが発生します。しかし仮想サーバであれば、即座に新たなサーバを立ち上げて使い始めることが可能です。このスピードの違いは、ビジネスに大きな影響を生み出します。
物理サーバが持つアドバンテージ
このように便利な仮想サーバですが、一方でデメリットもあります。その1つがパフォーマンス面でのペナルティです。仮想サーバはCPUやメモリに直接アクセスすることができず、必ず仮想化ソフトウェアを介して利用することになります。この仮想化ソフトウェアの処理がボトルネックとなり、物理サーバが持つパフォーマンスをフルに発揮できないのです。
このパフォーマンス面において、特に問題となりやすいのがメモリやストレージへのI/O処理です。特にI/O処理が全体のパフォーマンスに大きな影響を与えるデータベースなどの用途では、仮想サーバでは十分なパフォーマンスを得られないといったケースがあります。
利用できるOSに制限があることも覚えておくべきでしょう。仮想化ソフトウェアが生成するハードウェアは、IAアーキテクチャと呼ばれる現在一般的なハードウェアアーキテクチャで、利用できるOSはWindowsやLinuxなど、IAアーキテクチャをサポートするOSに限られます。しかしSolarisやHP-UXなど、独自アーキテクチャを前提としたサーバOSもあり、これらは一般的な仮想化ソフトウェアでは実行できません。
一方、物理サーバであれば仮想化ソフトウェアによる余計な処理が発生しないため、ハードウェアが持つパフォーマンスをフルに発揮することが可能であるほか、利用したいOSに合わせてハードウェアを選択できる自由度もあります。
昨今では、物理サーバを仮想サーバと同様にクラウドサービスとして利用できる「ベアメタルクラウド」も登場しており、自社で物理サーバを持たずに使うことができる環境も整いつつあります。
いずれにしても、仮想サーバにはさまざまな制約があるのも事実であり、用途によっては使えないケースもあります。このため、物理サーバと仮想サーバの特性を理解し、用途に応じて使い分ける必要があることを覚えておくべきでしょう。