検索
連載

仮想化環境でファイルシステムのパフォーマンスを引き出すには?ファイルシステムの基礎知識(3)(1/2 ページ)

仮想マシンのファイルシステムを最適化するには? 仮想化の手法によって最適化のポイントが異なることを理解しておこう。

PC用表示 関連情報
Share
Tweet
LINE
Hatena

仮想化環境特有の問題はどこにどうやって発生するのか

 第1回では「ファイルシステムとは何か」について解説し、第2回では「障害」と「パフォーマンス」の2つの観点で、ファイルシステムの技術について紹介した。ここまでで、ファイルシステムの基礎知識に加え、1990年代と比べて近年のファイルシステムが堅牢になった理由、ファイルシステムを長く使用するとパフォーマンスが低下する理由とその防止策について理解できたのではないだろうか。

 最終回となる第3回(本稿)では、仮想化環境上のファイルシステムについて紹介する。「仮想化マシン上のOS」を使用する場合、これまで述べてきたファイルシステムに関する留意点に配慮すれば十分なケースと、それでは不十分なケースがある。その違いや背景について触れてみたい。

仮想化手法のバリエーションを知る

 仮想化されたOS上のファイルシステムを考える場合、初めに「どのような仕組みで仮想化されたOSなのか」を整理することが非常に大切である。なぜならば、仮想化の手法によって、ファイルシステムのI/Oの処理のされ方が全く異なるからである。

 まずは、仮想化の代表的な2つの手法について整理する。

ホストOS型=ファイルシステムはホスト/ゲストOSの両方に存在する

 1つ目は、VMware Workstationや Mac OS X Serverに代表される「ホストOS型」の仮想化である(図1)。このソリューションは、物理マシン上に通常のOSがインストールされ、その上で動作する仮想化ソフトウェアによって、仮想化OS(ゲストOS)を構成する。従って、ファイルシステムはホストOSと仮想化されたOSの両方に存在する。


図1 ホストOS型仮想化の概念イメージ

ハイパーバイザ型=仮想マシン側にのみファイルシステムがある

 2つ目は、VMware ESX や Microsoft Hyper-V に代表される「ハイパーバイザ型」の仮想化ソリューションである(図2)。このソリューションは、ホストOSの代わりに、仮想マシンを提供するハイパーバイザが介在する。従って、ファイルシステムは、仮想化されたOS上にのみ存在する。


図2 ハイパーバイザ型仮想化の概念イメージ

 2つの仮想化ソリューションについて整理できたところで、本題であるファイルシステムの留意点について考えてみよう。今回は、パフォーマンスに絞って考えてみる。

 さて、今回も前回までに説明したファイルシステムの仕組みについて思い出してほしい。

 ファイルシステムを本に例えて説明したが(図3)、今回も同じ例えを使って説明する。例によって、一度完成されると内容の変更が発生しない実際の本ではなく、頻繁に内容が追加・削除・変更される特殊な本を想像してほしい。


図3 ファイルシステムを「本」に例えると……

ホストOS型の仮想化でのファイルシステムに関する留意点

 ホストOS型の仮想化ソリューションの場合、仮想化されたOSに割り当てられる「仮想ハードディスク」は、ホストOSのファイルシステム上にファイルとして配置される。つまり、仮想化されたOS上のファイルシステムを「料理の本」に例えれば、それはホストOS上に存在する「家事全般の本」という非常に分厚い本の一部として存在するのである。

 第2回で、ファイルシステムのフラグメントによってパフォーマンスが低下する問題とそのメカニズムについて説明したが、ホストOS型の仮想化ソリューションを使用している場合は、さらに問題が複雑である。

 「料理の本」でレシピの追加と削除を繰り返していくと、ある料理のレシピが68〜70ページまでと381ページの2カ所に分散して掲載される状態が発生する。これをフラグメントと呼ぶ。このフラグメントがファイルシステムのパフォーマンスの低下を招く最大の要因であることは第2回目で述べた。

 しかし、仮想化によって「料理の本」が「家事全般の本」の中の一部として配置されていることを考えれば、状況はさらに複雑であることは理解できるだろう。

 当初、「料理の本」が400ページあり、それは「家事全般の本」の1601ページから2000ページの間に連続して配置されていたとする。「料理の本」にレシピの追加と削除を繰り返していくと、「1601ページから2000ページの間に連続して配置されている」という状況自体が崩れてしまう、すなわち「家事全般の本」にも1つのファイルが複数の領域に分散されて配置される状況が発生する。こうなると、「料理の本」だけでなく「家事全般の本」も含めてフラグメントに留意する必要が出てくるのだ。

 具体的な例で説明しよう。Windows 2008上にVMware Workstationを導入して、仮想マシンをいくつか作成し、そこにゲストOSとしてWindows XPを構成した環境を想像してほしい。

 ゲストOSであるWindows XPが認識しているハードディスクの実態は、ホストOSであるWindows 2008のNTFS上に「VMDK」形式のファイルとして配置されている。

 ゲストOS(Windows XP)上でファイルの作成と削除を繰り返したのでWindows XP上で「NTFSの最適化」を行ったとしても、Windows XPのファイルシステムに対応するVMDKファイルがホストOS(Windows 2008)のファイルシステム上で複数の領域に分散されることなく最適に配置されているかどうかは保証できない。

 最も重要なのは「ホストOS上のファイルシステム上に配置されたVMDKファイルが最適化されている状態」を維持することだ。そのためには、仮想化ソリューションのツールに頼る必要が出てくる。

 図4は、VMware Workstationのツールの一部である。このツールによって、ホストOSのファイルシステム上に不適切に配置されてしまったVMDKファイルを最適化できる。


図4 VMware Workstationのツールによる“VMDK”の最適化 「ディスクの最適化」を実行することで、ホストOSのファイルシステム上に配置された「ゲストOS用の仮想ディスク=VMDKファイル」が最適化される

 前述の例では、ホストOSもゲストOSもNTFSを使用していたが、異なるファイルシステムを使用する場合でも考え方は同じである。つまり、ゲストOSがLinuxでExt3などを使うケースでも、ゲストOS内でファイルシステムのパフォーマンスを維持するには、ホストOS側でVMDKファイルの最適化を行う必要がある。

Copyright © ITmedia, Inc. All Rights Reserved.

       | 次のページへ
ページトップに戻る