図1●仮想メインフレーム時代へ<BR>コンピュータが安く速くなる,いわゆるコモディティ化が進んだ結果,散在するCPUやハードディスクといったリソースの利用効率や管理効率は低下の一途をたどった。これを有効に活用したり,管理可能にしやすくするために,システムは「仮想メインフレーム」とも言うべき形態に姿を変えようとしている。
図1●仮想メインフレーム時代へ<BR>コンピュータが安く速くなる,いわゆるコモディティ化が進んだ結果,散在するCPUやハードディスクといったリソースの利用効率や管理効率は低下の一途をたどった。これを有効に活用したり,管理可能にしやすくするために,システムは「仮想メインフレーム」とも言うべき形態に姿を変えようとしている。
[画像のクリックで拡大表示]
図2●仮想化の主なメリット&lt;BR&gt;ハードウェアの物理的な制約を取り払える。物理的なハードウェアの単位ではなく,仮想的なコンピュータ(仮想マシン)の単位でシステムを構築することで,管理の手間やシステム性能向上の制約などを軽減する。
図2●仮想化の主なメリット<BR>ハードウェアの物理的な制約を取り払える。物理的なハードウェアの単位ではなく,仮想的なコンピュータ(仮想マシン)の単位でシステムを構築することで,管理の手間やシステム性能向上の制約などを軽減する。
[画像のクリックで拡大表示]
図3●仮想化でOSとハードウェアの"摩擦力"を軽減&lt;br&gt;仮想マシン内の仮想ハードウェアを動作環境としてOSをインストールすると,ハードウェアの仕様が異なるコンピュータに仮想マシンをスムーズに移動できる。ハードウェア構成の変更によるデバイス・ドライバの再認識やハングアップをなくせる。仮想マシンはOSの動作状態をメモリーやファイルのイメージとして保持しているため,OSやアプリケーションの動作状態を保ったまま,別の実マシンで動作する仮想マシンに移すことも可能だ。
図3●仮想化でOSとハードウェアの"摩擦力"を軽減<br>仮想マシン内の仮想ハードウェアを動作環境としてOSをインストールすると,ハードウェアの仕様が異なるコンピュータに仮想マシンをスムーズに移動できる。ハードウェア構成の変更によるデバイス・ドライバの再認識やハングアップをなくせる。仮想マシンはOSの動作状態をメモリーやファイルのイメージとして保持しているため,OSやアプリケーションの動作状態を保ったまま,別の実マシンで動作する仮想マシンに移すことも可能だ。
[画像のクリックで拡大表示]
図4●仮想化の形態&lt;BR&gt;現在の主流は(a)。1台の実マシン内で複数の仮想マシンを実行する形態。実CPUを複数の仮想CPUとして扱える。マルチプロセッサ機であれば,仮想SMP機として動作させることも可能。一方(b)の形態は,グリッド・コンピューティングや仮想マルチプロセッサ機として開発が進んでいる段階にある。
図4●仮想化の形態<BR>現在の主流は(a)。1台の実マシン内で複数の仮想マシンを実行する形態。実CPUを複数の仮想CPUとして扱える。マルチプロセッサ機であれば,仮想SMP機として動作させることも可能。一方(b)の形態は,グリッド・コンピューティングや仮想マルチプロセッサ機として開発が進んでいる段階にある。
[画像のクリックで拡大表示]

 「Keep it Simple Stupid!(KISS!)」。単純であることを至上とする意味で広く使われているこの格言は,コンピュータの世界でも開発者や管理者の間で座右の銘とされている。システムにかかわるハードウェアやソフトウェアの数が増えるほど,管理の効率化や数に応じた性能の向上が難しくなる。シンプル・イズ・ベストだからだ。

 しかし理想はあくまでも理想。現実の企業情報システムはシンプルから程遠い。管理が行き届かず,十分に活用できていないコンピュータがあふれている。そこでサーバー*1やストレージといったリソースの物理的な性質や境界を隠蔽し,自由に結合・分割して論理的なリソース単位に変換して扱う「仮想化」が今,脚光を浴びている。オフィス内や全国に散らばるさまざまな仕様のコンピュータやストレージ装置をまとめ上げ,あたかも一つの大型コンピュータのようにシンプルに扱えるようにする(図1[拡大表示])。いわば「仮想メインフレーム」とも言うべき形態に姿を変えようとしている。

手に余るリソース数の爆発

 1960年代のメインフレームの時代。1台のコンピュータの中で仮想マシンをいくつも立ち上げ,多数のユーザーで共用するのはごく当たり前だった。運用管理者の行動範囲はサーバー室のみ。ハードウェアも目の届く範囲に存在していた。

 ところが1970年代に入ると,1人に1台のコンピュータを指向し,ミニコン,ワークステーション,そしてパソコンと,小型化と低価格化が進んだ。ネットワークが普及すると,企業内,さらには全国や海外へと,システムを構成するリソースは分散していった。

 Webやデータベースはそれぞれ別のサーバー機で実行され,サーバー・ソフトウェアの数だけマシンの台数が増えた。インターネットがビジネスのインフラになり,それらサーバーにアクセスするユーザー数の上限もふくれあがった。従業員がユーザーとなる企業内システムであればともかく,Webに公開するサーバーにアクセスするユーザー数を完全に予測するのは不可能だ。

システム運用に四つの問題

 システムを運用する上で考慮すべきリソースの数が増える一方で,人間の能力が劇的に高まることは期待できない。確かに管理については,管理者の能力を補う目的で統合管理のツールの整備が進んだ。ただ管理ツールで各種リソースが一覧できるものの,管理の対象が多いことに変わりはない。そもそもインターネット・ユーザーの行動は管理ツールで把握できない。

 リソース数の増加と負荷変動の拡大によって,現在システム運用は,大きく四つの問題に直面している(図2[拡大表示])。すなわち,(1)異なるハードウェア仕様のリソースが混在することによる管理負担の増大,(2)システム構築時の性能見積もりの難しさ,(3)信頼性の低下を防ぐ目的で設置するサーバー機の増加,(4)リソースの利用効率の低下,である。

 (1)はハードウェア仕様の異なる機種が多数混在するのが主な要因だ。コンピュータの製品サイクルは短い。短くて数カ月,長くても数年でしかない。同じ仕様のコンピュータを市場から調達し続けるのは困難だ。システム運用の過程でコンピュータやストレージ装置を順次追加していくと,さまざまな仕様のハードウェアやソフトウェアが混在することになる。さらに価格の低下が,コンピュータ数を増やす傾向に拍車をかけた。今では3万円台のサーバー機も珍しくない。確かに個々の製品の導入コストは低いものの,運用管理のコスト増が,そのコストメリットを超えつつある。

 (2)は,最大の負荷を見込んでハードウェアを整備することによる費用対効果の悪化だ。例えばオンライン・ショップ用のWebサーバーを考える。商品の売れ行きは水物だ。アクセスが最も集中するケースを想定し,CPU性能やメモリーの容量を見積もらなければならない。負荷が最大になる時間がたとえ1時間であっても,それに合わせてシステムの要件は決まる。もし当てが外れれば,システムへの投資が無駄になりかねない。

 (3)はアプリケーションごとにサーバーを分ける必要性があるのが原因である。

 一般的なOSは,カーネルやシステム・サービスと各種アプリケーションが利用するメモリー空間をそれぞれ分けることで信頼性を確保している。あるアプリケーションがエラーを起こしたとしても,別のアプリケーションが使っているメモリー領域を破壊することはない。

 しかしソフトウェアである以上,バグからは逃れられない。OS自身がエラーを起こせば,その上で稼働するアプリケーションすべてに影響が及ぶ。セキュリティ・ホールがあれば,それを突いた不正アクセスによってサーバー機が乗っ取られるかもしれない。これらの可能性を減らす予防策として,アプリケーションごとにサーバーやワークステーションを用意するのが一般的となり,マシン台数の増大に拍車をかけた。

 (2)と(3)が主な要因となり,(4)のリソース利用効率の低下を招いた。最大負荷を見越した仕様のサーバー機を導入し,目的とするサービスごとにサーバー機を分けることでシステムの安定をねらう。こうして,システム内に平均使用率の低いCPUやメモリー,ハードディスクなど,有効利用できていないリソースが増えていった*2