サーバー最前線

仮想化の正体 Part1動向 システムの単純さを取り戻す

 (1)はハードウェア仕様の異なる機種が多数混在するのが主な要因だ。コンピュータの製品サイクルは短い。短くて数カ月,長くても数年でしかない。同じ仕様のコンピュータを市場から調達し続けるのは困難だ。システム運用の過程でコンピュータやストレージ装置を順次追加していくと,さまざまな仕様のハードウェアやソフトウェアが混在することになる。さらに価格の低下が,コンピュータ数を増やす傾向に拍車をかけた。今では3万円台のサーバー機も珍しくない。確かに個々の製品の導入コストは低いものの,運用管理のコスト増が,そのコストメリットを超えつつある。
 (2)は,最大の負荷を見込んでハードウェアを整備することによる費用対効果の悪化だ。例えばオンライン・ショップ用のWebサーバーを考える。商品の売れ行きは水物だ。アクセスが最も集中するケースを想定し,CPU性能やメモリーの容量を見積もらなければならない。負荷が最大になる時間がたとえ1時間であっても,それに合わせてシステムの要件は決まる。もし当てが外れれば,システムへの投資が無駄になりかねない。
 (3)はアプリケーションごとにサーバーを分ける必要性があるのが原因である。
 一般的なOSは,カーネルやシステム・サービスと各種アプリケーションが利用するメモリー空間をそれぞれ分けることで信頼性を確保している。あるアプリケーションがエラーを起こしたとしても,別のアプリケーションが使っているメモリー領域を破壊することはない。
 しかしソフトウェアである以上,バグからは逃れられない。OS自身がエラーを起こせば,その上で稼働するアプリケーションすべてに影響が及ぶ。セキュリティ・ホールがあれば,それを突いた不正アクセスによってサーバー機が乗っ取られるかもしれない。これらの可能性を減らす予防策として,アプリケーションごとにサーバーやワークステーションを用意するのが一般的となり,マシン台数の増大に拍車をかけた。
 (2)と(3)が主な要因となり,(4)のリソース利用効率の低下を招いた。最大負荷を見越した仕様のサーバー機を導入し,目的とするサービスごとにサーバー機を分けることでシステムの安定をねらう。こうして,システム内に平均使用率の低いCPUやメモリー,ハードディスクなど,有効利用できていないリソースが増えていった(*2)

実マシンとの摩擦を減らす
 以上の問題を解決するために,仮想マシンを中核とするメインフレームの設計思想を取り入れる。ハードウェアを仮想的なコンピュータや仮想ストレージとして扱うことで,管理対象の削減や全体最適化をしやすくする。具体的には,負荷に応じて仮想マシンの動作環境をCPUやメモリーの使用率が低い実マシンに動的に移動させることで,リソースの利用効率を上げる(図3)。「ハードウェア故障時に別の実マシンで仮想マシンを生成する」といった仮想マシンの追加や削除,移動のポリシーを事前に決めておけば,運用の負担も減る。

図3 仮想化でOSとハードウェアの"摩擦力"を軽減

図3 仮想化でOSとハードウェアの"摩擦力"を軽減
仮想マシン内の仮想ハードウェアを動作環境としてOSをインストールすると,ハードウェアの仕様が異なるコンピュータに仮想マシンをスムーズに移動できる。ハードウェア構成の変更によるデバイス・ドライバの再認識やハングアップをなくせる。仮想マシンはOSの動作状態をメモリーやファイルのイメージとして保持しているため,OSやアプリケーションの動作状態を保ったまま,別の実マシンで動作する仮想マシンに移すことも可能だ。

 こうした仮想マシンを基盤とするシステム構築は,米IBM社のメインフレーム「System/360」を起源として1960年代から存在した(Part 4を参照)。しかし,現在の仮想化は単なるメインフレームの焼き直しというわけではない。仮想マシンが実マシンから別の実マシンへと自由に移動できるという新たな特徴を生み出した。
 例えば米VMware社の「VMware」シリーズや米Microsoft社の「Virtual Server」といった仮想マシン・ソフトは,動作中の仮想マシンのメモリー・イメージをファイルとして保存する機能を持つ。このファイルは,仮想マシンとOSおよびアプリケーションの動作状態をある時点で切り取ったスナップショット。これを別の実マシンで動く仮想マシンに移してやることで,負荷を平準化したり,バックアップを作成できる。
 具体的に言うとVMwareのサーバー向け仮想化支援機能の「VMotion」を使えば,動作中の仮想マシンを稼働させたまま別の実マシンに動かせる。
 その手順はこうだ。まず移動先の仮想マシンを生成する。移動元の仮想マシンは,自身のメモリー・イメージを移動先の仮想マシンにネットワークを通じてコピーする。この時点で,同じメモリー・イメージを持つ仮想マシンが二つあることになる。ただ移動元の仮想マシンは稼働中なので,コピー作業中にも刻々と仮想メモリーの内容が変化する。そこでメモリー・イメージをコピーした後に更新のあったメモリーページ(ダーティページ)を記録するテーブルを用意。移動先の仮想マシンが稼働後,ダーティページを移動元の仮想マシンからコピーするとともに,移動元の仮想マシンを削除する。 (次ページへ)

*2 )例えばRISC系やx86系のCPUを使うコンピュータは,1台のマシン内でもCPUを使い切れていない。「メインフレームOSのCPU使用率は平均で70〜80%程度。しかしオープン系のOSでは,そこまでCPUを使い切れない」(日立製作所ソフトウェア事業部プラットフォームソフトウェア本部第1プラットフォームソフトウェア設計部の熊A裕之部長)。

前へ ページ1 ページ2 ページ3 次へ
 

 


ITproについてITproへのお問い合わせ・ご意見日経BP書店広告について
著作権リンクについて|個人情報保護方針/ネットにおける情報収集/個人情報の共同利用
プライバシーマーク ITpro Tech-On! PC Online

日経BP社 Copyright© 1995-2009 Nikkei Business Publications, Inc. All rights reserved.
このページに掲載されている記事・写真・図表などの無断転載を禁じます。著作権は日経BP社,またはその情報提供者に帰属します。
掲載している情報は,記事執筆時点のものです。