どういう原理なのかなぁ?
メリットとデメリットも知りたいなぁ…
仮想化とは?
仮想化とは?

仮想化とは、ソフトウェアを用いて自由なスペックを持つハードウェアを仮想的に作り出す技術のことをいいます。
例えば、図1の左図のように18GBの容量を持つ物理ハードウェア上に仮想化ソフトウェアを動作させることで、
3GB、4GB、4GB、7GBの仮想化ハードウェアを作り出すことができます。
この場合は、1つのハードウェアが4つのハードウェアの役割を果たすことができます。
逆もしかりで、右図のようにハードウェアを4つ集約させて、18GBの容量を持つ仮想ハードウェアを作り出すことも可能です。
つまり、複数のハードウェアを連結させて、容量の大きいハードウェアを生み出すこともできます。
仮想化の仕組み

結論からいうと、図2のように物理ハードウェア上に仮想化ソフトウェアを動作させることで、ハードウェアを仮想化します。
通常のハードウェアでは、ハードウェア上にあるOSがハードウェアを制御しながら、アプリケーションを起動させています。
アプリケーションの要望に応じて、OSがハードウェアの必要な部分を動かすといったイメージです。
仮想化をする場合も基本的な動作は同じです。
図2の右側の上から見ていきましょう。
まずは、アプリケーションがあります。
そのアプリケーションの必要な命令を制御する役割にOSがあります。
ここまでは、通常のハードウェアと同様ですね。
しかし、物理ハードウェアの代わりに仮想ハードウェアが存在しています。
この仮想ハードウェアは実際に存在しているわけではなく、ただ単にハードウェアが存在しているかのように振る舞います。
この仮想ハードウェアの命令を受け取り、物理ハードウェアを動かすのが、仮想化ソフトウェアです。
仮想化ソフトウェアの役割は、実際には動いてなかった仮想ハードウェアを物理ハードウェア上で動かして、あたかも本当に動いたかのように錯覚させることです。
ひとことで言うのであれば、「帳尻合わせ」って感じです。
このようにして、仮想化ソフトウェアが仲介して、物理ハードウェアを制御することで、仮想マシンを作り出すことができます。
仮想化のメリット
仮想化の仕組みを理解したところで、そのメリットも抑えていきましょう。
結論から言うと、仮想化のメリットは以下の3つです。
- コストの削減
- 障害に強い
- メンテナンスが容易
コストの削減
まず1つ目のメリットは、「コストの削減」です。
仮想化することでハードウェアの稼働率を上げることで、効率的に運用することができるからです。
例えば、「ハードウェアの導入コスト」の削減をすることができます。
ハードウェアを仮想化することができるので、最初から大容量のハードウェアを購入する必要がなくなるからです。
1つハードウェアを購入して、複数の仮想的ハードウェアを作ってシステムを作ったあとに、
必要に応じて物理ハードウェアを継ぎ足していくことができるので、導入コストを最小限にすることができます。
また、「省エネ・省スペース」なハードウェア運用をすることもできます。
ハードウェアの稼働率があがることで、物理ハードウェアの数を少なくすることができるからです。
従来であれば、目的に応じて物理ハードウェアを用意するため、ハードウェアの稼働率が下がり、
必要以上のスペースと電力を使う必要がありました。
しかし、仮想化を利用することで、稼働率の高いシステムを実現できるので、
効率的に電力やスペースを利用することができます。
したがって、仮想化をすることで、導入コストや電力、スペースといったコスト削減をすることができると言えます。
障害に強い
2つ目のメリットは「障害に強い」ことです。
仮想化を通じて、柔軟なシステムを形成できるので、障害への対処が容易になります。
ハードウェアの仮想化を行い管理することによって、
他のハードウェア上に仮想ソフトウェアのバックアップを取ることができます。
そのため、障害が発生しシステムが破壊された際には、簡単に元の状態を復元することができます。
加えて、仮想化の場合では、複数台の物理ハードウェアを元に、仮想ハードウェアを形成しています。
そのため、1つのハードウェアに障害が発生しても、他のハードウェアを用いて、カバーすることができるとも言われています。
したがって、バックアップを取ることができ、1つのハードウェアに障害が発生しても他のハードウェアで補うことができるため、「障害への強さ」も仮想化のメリットと言えます。
メンテナンスが容易
3つ目のメリットは「メンテナンスが容易な点」です。
物理ハードウェアのスペックに依存せずに、仮想ハードウェアを作り出すことができるからです。
例えば古いハードウェアシステムから新しいものに変えたいとします。
従来の場合は、ハードウェアを更新し、その上でソフトウェアを再度ダウンロードするなどの手間がありました。
しかし、仮想化をすることで、物理ハードウェア上に仮想化ソフトウェアをインストールすることで、
仮想ハードウェアを作り出すことができます。
そのため、もしハードウェアを新しいシステムにしたい時には仮想環境を更新するだけでいいので、
古いハードウェアを継続的に使うことができます。
また、ハードウェアを増強する際もこの仮想化の強みが生きてきます。
物理ハードウェアを追加で組み合わせて、仮想環境を生み出すだけでいいからです。
このような点から、メンテナンスが容易なことも仮想化のメリットといえます。
仮想化のデメリット
次にデメリットを紹介していきます。
一見、便利な仮想化でさえデメリットがあります。
しっかりとデメリットを抑えた上で、仮想化を活用していきましょう。
仮想化のデメリットは以下の3つです。
- 専門知識が必要
- 場合によってはコストが削減できない
- 処理能力の低下
専門知識が必要
デメリットの1つ目は仮想化ハードウェアを管理する「専門知識」が必要となる点です。
通常のサーバーに関する知識だけでは、運用することができないからです。
そのため、仮想化ハードウェアに関する知識を持ち合わせている専門家を追加で雇ったり、
仮想化の知識を勉強する必要が出てきてしまいます。
ですので、「専門知識の必要性」が仮想化のデメリットの1つです。
場合によってはコストが削減できない
次のデメリットは、場合によってはコストが削減できないという点です。
仮想化環境を整える費用や管理する人を雇う費用が発生するためです。
先ほどは、仮想化を通じてコストを削減できると解説しました。
しかし、このコスト削減は一概には言えないというのが結論です。
例えば、仮想化環境を整えるには、仮想化ソフトウェアをインストールする必要があります。
しかし、仮想化ソフトウェアをインストールすると言っても、そこに費用がかかってしまいます。
また、仮想化された環境を管理する専門知識をもった人を雇う必要もあります。
したがって、上記のような費用の結果、コストを削減できないということが発生する可能性があるといえます。
ですので、コスト削減を目的に仮想化を導入する際にはしっかりと検討をする必要があります。
処理能力の低下
最後のデメリットは、「処理能力の低下」です。
仮想化ソフトウェアを介して、物理ハードウェアが動作するためです。
仮想化ソフトウェアを利用することで、処理をする過程は増えてしまいます。
ですので、処理能力が低下してしまうと言われています。
また、仮想化環境を最適に整えることができない場合も処理速度を下げてしまう原因になります。
したがって、「処理速度の低下」も仮想化のデメリットと言えます。
まとめ
今回は、「仮想化」について解説しました。
まとめると以下の通りです。
- ソフトウェアを用いて自由なスペックを持つハードウェアを仮想的に作り出す技術
- 仮想化ソフトウェアを物理ハードウェア上に動作させることで実現
- 仮想化のメリット
- コストの削減
- 障害への強さ
- メンテンスが容易
- 仮想化のデメリット
- 専門知識が必要
- 場合によってはコストが削減できない
- 処理能力の低下
いかがだったでしょうか?
仮想化についてのみなさんの理解が深まれば幸いです。
質問があれば、ご気軽にコメントしてください!
可能な限り全てを回答させていただきます。