IT人材のためのキャリアライフスタイルマガジン

仮想化メリットとデメリット|サーバーCPU仮想化のメリットは?

マネジメント

皆さんは、日常用語で「仮想化」という言葉を使いますか?おおよその皆さんは使わないと思います。「仮想化」という言葉にはメリットもデメリットも含まれていることを先に理解をしておいてください。今回は「仮想化」に関して解説していきます。

更新日時:

仮想化とは

仮想化には縁が無い?

近年、さまざまな場所で見かけるようになった仮想化という言葉。なんだか、最新のテクノロジーといったイメージで用事は無い。と考えておられる方も居られるかもしれませんが現代では誰でも使っている可能性がある技術なんです。そこで、仮想化という言葉の意味から説明していきたいと思います。

仮想化の歴史

実は仮想化技術そのものは最新技術でもなんでもなく、1960年代から使われ始めた技術です。当時は大変高価なメインフレームと呼ばれる集約型のリソースを効率よく利用するために使われ始めました。時代が進むと、ハードウェアの性能が進歩しまた価格が低下したことで、高価な集約型ではなく、安価で高性能なサーバーに分散するという考えが主流になりました。 更なる技術の進歩は分散したサーバーにも余剰なリソースを生み効率化が課題となりました。そして現代、ブレードサーバーなどが登場し、物理的な統合による省スペース化や省エネルギーが注目され、再び集約型のシステムが再評価され始め、同時にそれらを効率よく運用する仮想化技術が注目されるようになります。クラウドというものも、この仮想化技術によって支えられている技術です。なので、意識しない形で利用していることも多いはずの技術なのです。

仮想化という言葉の意味

“リソースの物理的特性を、そのリソースと相互作用するシステム/アプリケーション/エンドユーザーから隠蔽する技法。 単一の物理リソースを複数の論理リソースに見せかけたり、複数の物理リソースを単一の論理リソースに見せかけたりできる。”

詳細は後ほど説明しますが、今とりあえずものすごく大雑把に説明すると、物理的な状態にかかわらず論理的にリソースを統合や分割できる技術のことです。 具体的には、ひとつのパソコンで複数のオペレーティングシステム(WindowsやLinux)などがお互いに独立して同時に動いていたり、その逆に、複数のパソコンがひとつのオペレーティングシステムで動いているように見える状態となります。 ちなみに“お互いに独立して”や“ように見える”という部分が仮想化の最大のメリットのひとつです。

結局仮想化とはどのような状態なのか

仮想化していない構成ではひとつの機体にひとつの環境が直接インストールされていますが、仮想化環境においては、仮想化環境を作るためにものがインストールされ、その上にそれぞれの仮想化環境が載って動作している状態となります。

仮想化のメリット

仮想化はさまざまなものについて行える

上記説明のとおり仮想化というのは物理的な状態(たとえばパソコンが一台)というものにかかわり無く、論理的に色々な状態に見せかけられる手法なので、パソコンだけに限らずサーバーやスマホなど、さまざまなものを仮想化して扱うことが可能です。 そのことも踏まえて、仮想化の代表的なメリットを説明していきます。

物理的な機体の数を減らせる

機体の構成にかかわらず複数の機体が動いているように見せかけることが出来る。 というのはつまり、物理的に必要な数をそろえるという必要性がなくなることを意味します。たとえば、アプリケーションソフトウェアを開発するとして、いちいち環境ごとにパソコンを用意していたら、部屋がパソコンで埋め尽くされかねませんよね。 スマホのアプリ開発であれば、世の中に数限りなくあるスマホを揃えるのは現実的では有りません。 また独立動作していることでバグやらなんやらで不安定となってもすぐにやり直すことも出来ます。実機と比べればですが。

サーバーの仮想化

そもそも、余力があるならひとつのOSで複数のアプリケーションを動かせばよいのでは? と考えられるかもしれませんが、サーバー仮想化では安定動作のため1つの仮想化サーバに対し、1つのアプリケーションソフトウェアとすることが一般的です。 またこのことを、カプセル化などといったりもします。 このことによって、アプリケーションソフト相互の影響により不安定になったり、要求する環境が異なっていたり、障害発生時に迅速に切り離すということが可能となります。

カプセル化

他から独立しや隠蔽されている状態のことを、カプセル化といいます。これこそが仮想化技術に大きな可搬性を生んでいる技術の一つで、仮想化された環境の管理を容易にもしてくれます。 たとえば、風邪薬のカプセルに何が入っているかを利用者は意識しませんが、中には熱さましや鼻炎の薬などさまざまなものが入っているはずです。同じようにサーバーの仮想化では、オペレーティングシステムや付随するアプリケーションを、ひとつのソフトウェアパッケージ内にまとめ、ソフトウェアコンテナとします。

カプセル化のメリット

・カプセルかすることによって環境をファイルのごとく扱うことが出来るので、保守や管理が容易となります。 ・仮想化環境にそのカプセル化したソフトウェアパッケージが対応さえしていれば良いので、新旧のオペレーティングシステムの共存が可能です。 ・CPUやメモリなども複数環境で共有でき、例えばそれぞれのピーク負荷が重ならないように設計すれば、効率よくリソースを使い切ることが出来ます。 ・障害発生時にそれぞれ独立していることにより、他環境へ障害を波及させず※速やかに切り離すことが出来ます。 ※リソースを使いすぎて他の環境の動作が重たくなる可能性はあります。 ・ホスト名やIPアドレスMACアドレスもここの環境に割り当て可能です。 このほかにもメリットはありますが、このように仮想化技術とそれを支えるカプセル化にはさまざまなメリットがあるのです。

仮想化のデメリット

デメリットも存在します

いい事尽くめに見える仮想化ですが、当然デメリットも存在します。仮想化ソフトウェアも、当然ですが物理的なサーバの処理能力を作って動きます。統合するサーバーとこの仮想化サーバーのバランスが悪ければ、統合することによる投資コストのほうが高くついてしまうこともあります。 また仮想化サーバ管理者には仮想化の専門知識がもとめられることになります。メリットとデメリットは裏表の関係になっている場合が多いので、よく考えなければデメリットのほうが多いということにもなってしまうでしょう。

導入コスト

イニシャルコストとも言いますね。仮想化システムを導入する際に直接支出されるコストです。それぞれの物理サーバーを導入する場合はリソースをすべて使い切れることは無いので、その分は遊ばしていることになります。これが物理サーバーのデメリットです。この分を統合し使い切れる環境であるのであればデメリットはありませんが、そうでもない小規模なサーバー群では、純粋に導入コストがデメリットとなってしまうでしょう。

維持コスト

ランニングコストとも言いますね。維持することで発生するコストです。電気代や場所を借りて設置するのであれば場所のレンタル代、また、それらを維持するスタッフの人件費などです。 仮想化に関する専門知識を持つスタッフも必要となります。上記のとおり小規模な場合は無意味に大規模なシステムと維持コストというデメリットになってしまうのではないでしょうか?

管理コスト

管理というのは案外待ち時間のほうが長いものです。また、システムの肥大や複雑でタスクも増大し目に見えない管理コストは増大しています。 これらの状況の打破に有効な手段は、システムの単純化です。また従前それぞれの物理サーバーに対して行っていた作業を自動化することも有効です。仮想化環境というある種標準化された環境の上にのる仮想化サーバーは、それぞれをシステム上から論理的に扱うことが出来るため、作業の単純化や自動化に向いているといえます。

仮想化のデメリット

このように仮想化とは大規模かつ大量の環境を扱う場合に真価を発揮します。逆に言えば、小規模であれば導入や教育のデメリットのほうが大きくなってしまう可能性があります。また、仮想化とは結局ひとつの機材を分割して間借りしている状態なので、同じスペックの実機と比較した場合には性能に劣る場合も有ります。 また、簡単に仮想環境を切り離せるとはいえ、障害は波及しなくても、影響は同一仮想システム上で動くすべての仮想環境に波及することも考えられます。

効率的と省エネの仮想化技術

仮想化の機能の一つであるカプセル化などにより、利用者は中身を隠蔽され特に知ることは無いですし、意識しなくても使っている仮想化技術ですが有限の資源を効率的に使う縁の下の力持ちという技術ということは、ご理解いただけたでしょうか。

関連タグ

アクセスランキング