少し前にどこかの記事で見たのですが、今年で日本初の民生用テレビが松下電器産業から発売されて66年になるそうです。
テレビが発売され、その場に行かなければ楽しめなかったコンテンツが1つの大きな箱の中に共存する。 家にいながら家族全員で娯楽を共有できるようになったことは、当時にしては画期的な技術であったことでしょう。

テレビが生まれる前は、野球・プロレス・ボクシング・紅白に至るまで大衆の娯楽は、その場に行き1つのことを楽しむのが普通でした。 テレビが当たり前に存在している現代では想像できない世界だったと思います。その技術の進歩は70年弱で100を優に超えるチャンネル数を生み出しています。また、3D化・インターネットとの連携などその進化はまだまだとどまる気配がありません。

IT業界でも複数のものを1つの中で共有する技術というのは存在し、近年世の中に急速に普及しています。

IT業界における、仮想化とはいくつか種類がありますが、今回はその中でもサーバーの仮想化について考えてみます。

サーバーの仮想化とは?

そもそも、サーバーの仮想化というのはどういうことなのか。

サーバーの仮想化とは「物理的には1台のサーバーしかないのに、複数のサーバーがあるかのように見せてそれぞれを使えるようにすることでより効率よくサーバーを使いましょう」という仕組みです。

サーバーの仮想化を考えるうえで、まずユーザー視点から見てみると「サーバーを1台使う」ということはどういうことなのか。
WindowsなどのOS(オペレーティングシステム)が動いていて、その上にアプリケーションをインストールして使うことができれば、サーバーが本物だろうが仮想だろうが「サーバーを1台使う」ことができるといってよいでしょう。

それでは、どのような仕掛けで1台のサーバーの上で複数のOSを動作させることができるか考えてみます。

OSの役割はハードウェア全体を管理することが主です。
つまりOSは本来、1台のサーバーの上では1個しか動作できません。

逆に言うと、複数のOSを動作させるためには、上記のようなことにならないような仕組みが必要です。その仕組みとは1台の物理サーバーを複数の領域に分割して、それぞれが1台のサーバー全体であるかのように見せる仕掛けを作れば良いのです。

例えると、ひとつの建物に一家族が住む一軒家から、ひとつの建物に複数の部屋があるアパートのような構造に変えてあげるという事です。それぞれの家族に自分の部屋だけが全てだと思えるような環境を作ってあげるようなイメージです。

(図1) 仮想化のイメージ

C201810_image01

サーバー仮想化はサーバーのアパートのようなものと述べましたが、1つのアパート(サーバー)を みんなで分けて使うことになるわけなのでライフライン(性能)や部屋数(記憶容量)が足りなくなるのではないかと思われるでしょう。
多くの人はそこが心配になるかと思います。

しかし近年のアパートは性能が高く、1つのにアパート(サーバー)にひとつの部屋(OS)しか動かさない環境ではほとんどの家族(システム)で持て余してしまいます。したがってサーバーに対して複数のOSを動作させることは、余り気味のリソースを効率よく利用する方法だと言えるのです。(実際のアパートで部屋がそんなに余るかどうかは・・・置いておきます)

サーバー仮想化技術の利用シーン

ではどんな場合にサーバー仮想化を使えばいいのでしょう?

サーバー仮想化技術は基本的にはハードウェアを効率よく利用することにより物理的なサーバー台数を減らすという技術です。したがって、サーバー台数が多すぎる場合や、多くのサーバーを使用したいのに場所が無い、予算が無いといった場合に有効です。
物理的な1台のサーバーを多数の論理的なサーバーにより共有して使うことになるので、ひとつのOSで1台の物理的なサーバーを全て占有して使っているときよりは性能が低下しますが、それでもサーバー性能向上により論理サーバーの性能は十分に確保できるようになっています。

ここでサーバー仮想化技術の利用シーンをいくつか例として示します。

1. システム更新:現行システムのハードウェアが古くなったので新システムに移行する

C201810_image02

サーバーが古くなってくると故障頻度が増加したり、メーカーサポート期限や保守期間が切れたりして、新しいサーバーに更新する必要が出てきます。また、ある程度月日が経つと新しいサーバーは以前のサーバーよりも相当性能が向上しています。(2倍、3倍になっている場合も)

その割に業務システムの負荷はそれほど増加しないので、サーバーを更新する場合は台数を削減して複数のシステムを統合する動きとなるのです。(サーバーの仮想化をするケースで最も多いパターンだと思います)

また、仮想化を利用するとリソースの割当てをそれぞれのシステムごとに設定できるため自由度の高いシステム設計が可能であるという利点もあります。
(負荷が増加しているシステムには多めに、減少しているものは少なめにという具合に)

サーバー仮想化ソフトウェアの中には、OSベンダがサポートを終了した古いOS(Windows XP や Windows Server 2003 など)を動作可能とするものがあり、仮想化を利用すると古いOSを用いたシステムを新しいハードにそのまま載せることも可能なので継続してシステムを使用することも可能です。
(※ この点はOSベンダのサポートが無いので利用には注意が必要です)

2. 開発用途:システム開発や保守のため、開発担当者やシステム毎に開発用のサーバを準備する

C201810_image03

システムの開発を行う場合、多数のプログラマが多種多様なテストなどを行うことになります。 この時に開発者一人ひとりに開発用のPCとは別に開発用のサーバー環境が必要になります。

性能やメモリ容量などは小さくても、開発するシステムによっては何十人、場合によっては何百人に割当てる必要があり、物理サーバーで環境を用意しようとすると台数が多くなるという問題が発生します。かといってひとつのOSの上で複数の開発者がテストをしようとすると、環境がひとつしかないため効率が下がったり、テストがうまく行かない・・・といった事態に陥る可能性もあります。

このような場合に仮想化を利用して開発者個々人に独立した環境を使わせて、
物理サーバーは少数に統合するといった開発環境を用意すると開発効率が良くなります。

3. 省エネ・運用効率化:物理サーバーの台数を減らし運用の効率化や消費電力の削減を実現する

C201810_image04

サーバーの台数を減らすことは単純に消費電力を削減できるということになります。

最近のCPUは省電力モードを持っているので、使用率が低い場合は消費電力を低下させることもできますが、CPU使用率が半分に減ったからといって、消費電力自体はそれほど大きく減るものではありません。

しかしサーバーを統合して台数を減らせば直接消費電力の削減に効果があります。

サーバー台数の削減は運用の効率化にもつながります。
システム全体のハードウェア障害発生率は構成品点数に比例します。当然サーバー台数が少ない方障害の発生率が減り信頼性が高まるので、運用にも良い影響をもたらします。

今回はサーバー仮想化の概要と利用シーンを中心に解説しました。
後編ではサーバー仮想化のコスト面について、後日、掲載致します。

ライタープロフィール


西 達彦

サービス営業部ネットワーク課勤務。

平成22年林兼コンピューター入社。
某大学医学部附属病院様で7年間の常駐勤務を経験。
現在は福岡・熊本を中心に活躍中。趣味はサッカー。