では、「仮想化技術」とは何なのでしょうか。まず、物理サーバ1台当たりの性能が向上したならば、「ある作業を、より速く処理できる」ようになります。早く処理が終われば、その分、性能に余力が生まれます。余力があるならば(もったいないので)、もっと仕事をしてもらいたいと考えることでしょう。そこで、物理サーバ自身にもう1台、あるいは複数台分のサーバの“フリ”をさせる「仮想化」という技術が生まれました。
仮想化は、言い換えると模倣をすることです。例えば、私たちが「車を運転している」と実感するには、どんな要素が必要だと思いますか? まず、実車が必要です。ステアリングホイールやアクセル、座席など、車を操作するためのインタフェースも必要です。この他に、景色の移り変わりや、加速度、振動、エンジン音などを体感する必要もあるでしょう。最近は疑似でも「かなりそれらしく」感じられるよう技術が進歩してきていますが、ともあれ多くの情報がないと、運転していることを認識できなかったり、違うものと感じたりしてしまいます。
一方、コンピュータのプログラムはどうでしょうか。プログラムは、計算する機能、覚えておく機能といったように、必要とされる情報や機能が的確に与えられていれば稼働できます。物理コンピュータでも、仮想化基盤が作り出した架空のコンピュータでも違いはありません。
少し回り道をしましたが、ITの仮想化とは、「仮想化基盤と呼ばれるソフトウェアによってあたかも物理コンピュータのように振る舞う架空の環境(仮想マシン)を作り、その中で物理コンピュータが提供する機能を提供する」手段のことを指します(図2)。
この仮想化を実現する技術により、1台の物理コンピュータ単位の集積率を高めることが可能となりました。この架空のコンピュータは、「仮想マシン」「仮想のコンピュータ」などと呼ばれます。
仮想マシンには多くのメリットがあります。
1台の物理サーバに複数台の仮想マシンを集約させることで、計算能力やメモリなどのリソースを効率よく使えるようになります。それは、所有する物理サーバの台数を減らすことにもつながります。物理サーバの台数が減れば、その分、サーバを維持する費用や人手といった管理コストを減らせます。これは、設備の電気代であったり、サーバを預ける費用なども含まれます。
また、仮想マシンを“作る”作業も、ソフトウェア上の操作や設定、あるいはWeb上での注文などで行えます。ハードウェアを注文/調達して、設置して、そこからセットアップして……といった物理サーバを用意するこれまでの方法と比べて、手間、コスト、時間、いずれも大きく簡略化できることでしょう。その構築を、ソフトウェア処理によって自動化してしまうことも可能になります。
この、人手を介さずに自動提供できる仕組みを応用することで、利用者はいつでも、使いたいときにコンピュータの機能(コンピュータリソース)を入手できるようになります。そして、いらなくなれば、仮想マシンのデータを消せばそれで完了。物理的な“モノ”がないので、廃棄コストや資産の減価償却なども不要ですし、性能アップなどもサービスとして用意される範囲で自在に行えます。
一方、仮想化の弱点もあります。1台の物理サーバで複数の仮想マシンとシステムが稼働しているということは、本丸である物理サーバが壊れてしまったら、仮想マシン上で稼働する複数のシステムがまとめて影響を受けてしまうことになります。このために、複数のサーバで同じシステムを稼働させて、仮にどこかに障害が起きたとしてもサービスを継続できる仕組みを構築しておく必要が生じます。この能力を「可用性(Availability)」といいます。
このように、仮想化のメリットとデメリットを洗い出し、その特性を捉えていくことが、この先のクラウドを考える上で重要なアプローチです。新しい技術の多くは、従来の課題を乗り越えるために生み出されます。ですから、新しい技術の理解を深める上で、これまでの背景や基礎をきちんと捉えておくことが重要です。
Copyright © ITmedia, Inc. All Rights Reserved.