これからの企業のIT基盤を考える上で重要なテクノロジーの一つが「仮想化」です。仮想化される対象としては、サーバーやクライアントPC、ストレージ、ネットワークなど、さまざまなものがありますが、ここでは仮想化技術の代表とも言える「サーバー仮想化」について考えてみます。
企業のIT基盤は複雑化の一途をたどっています。業務の都合に応じてさまざまなシステムを構築・運用していった結果、サーバーの台数が増え続けていく現象は、多くの企業で経験があることでしょう。運用するサーバーが増えれば、故障の発生数も増えてきますし、当然ながら運用・保守に要する作業負担も増大します。例えば、セキュリティパッチの適用にも、またハードウェアをメンテナンスする際の計画ダウンタイム調整にも、さらにはハードウェア更新時の移行作業も、台数が多ければ多いほど負担が増えてしまいます。その結果、IT部門の人的リソースの大半がサーバーの保守に費やされ、より高度なIT活用へ向けた取り組みを進めたくても余裕がなくなってしまいます。IT予算の観点からも、攻めの投資に回せる余裕が少なくなります。
サーバーのサイジングも課題です。各サーバーにはシステム負荷がピークとなったときにも対応できるようプロセッサ処理能力やメモリ容量などを十分に用意するのが基本ですが、そのサイジングはシステム運用よりはるか前に行わねばならず、的確に予測することは困難です。ギリギリで設定すれば後になって負荷が予想以上に増大するなどの理由で拡張する余裕がなくなる可能性があり、また逆に余裕を持たせすぎると投資の無駄になってしまいます。
サーバーA:リソースに余裕がなくなっているが、これ以上の性能拡張ができなくなっている
サーバーB:今後の負荷増大に備えリソースの大きなサーバーを導入したが、現状では余っている
サーバーC:負荷の小さなシステムだが信頼性の高いサーバーを選定したためリソースが余っている
サーバー仮想化技術は、こうしたサーバーの課題、特にハードウェアに関連する諸問題を解消するために用いられます。VMwareのVMware ESX/ESXi、MicrosoftのHyper-V、CitrixのXenServerなどがその主な製品で、これらサーバー仮想化ソフトウェアはサーバーのハードウェア(以下、物理サーバー)上に仮想的なサーバーを設け、その上でサーバー機能を稼働させることができます。これにより、物理サーバーからサーバー機能を切り離すことができ、物理サーバーに由来する課題の多くが解消・軽減され、IT部門はその分の労力やコストを、より高度な作業に回すことができます。
物理サーバー上には複数の仮想サーバーを設置することができ、各仮想サーバーに対するプロセッサやメモリ、I/Oなどのリソース割り当ても自由に設定可能です。これにより、サーバーを統合・集約し、物理サーバーの台数を大幅に削減することができます。台数が減ることで、ハードウェアに関する保守運用の負担は軽減される上に、故障の可能性があるポイントも減らすことができます。また、一般的に大型サーバーほど信頼性や可用性も高い傾向があるので、多数の中小規模サーバーで構成されていたシステムを一つの大型サーバーへ集約すれば、格段に高い信頼性・可用性が期待できることになるのです。
そして余剰リソースも物理サーバー上に集約され、有効活用しやすくなります。必要に応じて負荷の高まった仮想サーバーに割り当てるのはもちろん、新たなサーバーが必要になった場面でも、余剰リソースを生かして迅速に仮想サーバーを立ち上げることが可能です。仮想サーバーの管理ツールは高度化しており、負荷の変動に応じて各仮想サーバーへのリソース割り当てを動的に変更するといった使い方もできるようになってきているため、さらに柔軟なリソース活用が可能となっています。
サーバーA、B、Cを同一の物理サーバー上の仮想サーバーとして構築
サーバーA、B:負荷の増大に対し余剰リソースを割り当てて対処
サーバーC:負荷は小さいが信頼性の高い物理サーバー上で稼働
物理サーバーにはハードウェア保守期限があり、老朽化の対策が欠かせませんが、仮想サーバーはその心配もありません。仮想サーバーは丸ごと別の物理サーバーに移動・コピーすることが可能なので、物理サーバーを更新する際にも構築作業の負担やダウンタイムを大幅に抑えることができます。ただし、仮想サーバーでも、導入するOSやミドルウェアなどソフトウェアのサポートは問題となります。
仮想サーバーの移動やコピーが容易な点は、災害対策やクラウドサービス(PaaSやIaaS)活用などにも有利です。もう一つの仮想サーバー環境をバックアップサイトとして遠隔地に用意しておき、システム環境をコピーしておくことで、広域災害時にも業務停止期間を抑えることができます。クラウドサービス上で仮想サーバーを使う場合は、広域災害時のバックアップサイトとして用いるほか、一時的なテスト環境や開発環境、負荷変動が激しいシステムのコスト削減策などとしても有効です。