仮想環境で利用できるディスクの種類とその使い分けについて。仮想ディスクの複製におけるSID重複問題も学ぶ。
前回は、代表的な3つの仮想化ソフトウェア(Virtual PC 2007、Virtual Server 2005、Windows Server 2008のHyper-V)の概要と、ゲストOSのインストール方法などについて解説した。今回は仮想ディスクの種類とその使い分け方法や、複数のOSイメージを利用する場合に問題になる、SIDの重複について取り上げる。
仮想化ソフトウェアでは、仮想的なディスク上にOSやデータを格納するが(ファイル名は.vhd)、利用できる仮想ディスクにはいくつか種類がある。
Virtual PCやHyper-Vで利用可能な仮想ディスクには、次のようなものがある。
仮想ディスクの種類 | 内容 |
---|---|
容量可変の仮想ディスク | 最もよく使われる仮想ディスクのタイプ。ディスクの使用済みのブロックのデータだけを保存するので、最小限のサイズですむ。使用するにつれサイズが拡大する |
容量固定の仮想ディスク | あらかじめ必要なサイズの領域をすべて確保したタイプの仮想ディスク。使用中にサイズが増えることがないので、最もパフォーマンスが高い |
差分仮想ディスク | ベースとなるディスクに対して、変更部分だけを保持したディスク。親となるディスクが常に必要 |
実ハードディスクへのリンク | 物理的なハードディスクへのリンク |
仮想ディスクの種類 Virtual PC 2007、Virtual Server 2005、Windows Server 2008のHyper-Vで利用可能な仮想ディスク(ファイル名は.vhd)には、このような種類がある。.vhdファイルのサイズは何Gbytesにもなるので、NTFS上に確保すること。FATファイル・システム上では4Gbytes以上のファイルは作成できないし、パフォーマンスもよくないからだ。 |
次の画面はVirtual PC 2007の仮想ディスクの作成ウィザードの画面だが、Virtual Server 2005やHyper-Vでも同様に作成できる。
以下、順に見ていこう。
■容量可変の仮想ディスク
これは最もよく利用されると想定される仮想ディスクのタイプである(Virtual PCやVirtual Serverでは「容量可変の拡張仮想ディスク」と呼んでいる)。仮想ディスクのうち、実際に使われているブロック(データが書き込まれているブロック)部分のみが.vhdファイルの中に随時記録されるので、使用中にファイル・サイズが自動的に拡大する。未使用部分はバイナリの0が入っているものと見なされる。
使用している部分のデータしか含まれていないので、物理的な.vhdファイルのサイズは最小だが、記録されるデータ・ブロックの並び順が仮想マシンから見たブロック番号とは一致せず(基本的には、書き込んだ順に.vhdファイルに記録される)、パフォーマンス的には次の容量固定タイプよりも劣る。しかしサイズが小さいので、取り扱いは容易である。
なお一度拡大した.vhdファイルのサイズは、たとえ仮想マシン上でファイルを削除したり、デフラグを行ったりしても、縮小されることはないので、必要ならば後述の「容量可変の仮想ディスクのデフラグとワイプ」を行う必要がある。
■容量固定の仮想ディスク
これは、あらかじめ仮想ディスクのサイズ分だけ.vhdファイルを確保しておくタイプの仮想ディスクである。使用中にサイズが増えたり減ったりしない。仮想ディスクのファイル内ではブロックが連続して配置されているので、仮想マシンから見ると、最高のパフォーマンスでアクセスできる形式である。実験的な用途ではなく、サーバ上で多数の仮想マシンを実運用しているような場合には(例:サーバ統合など)、この形式が望ましい。パフォーマンスに優れるだけでなく、運用の途中でファイル・サイズが増えないのでディスク・フルになることはないし、仮想ファイルのフラグメントなどを起こすことがないからだ。
ただし仮想ディスクと同じサイズの.vhdファイルが作られるので、十分なサイズのホスト・ディスクを用意しておく必要がある。例えば仮想ディスクのサイズを64Gbytesにすると、.vhdファイルのサイズも64Gbytesになるので、非常に大きなディスク領域が必要になるし、コピーなどを行う場合は非常に時間がかかる。
なおサイズが大きいからといって、ホスト側のファイル・システムで.vhdファイルに圧縮属性を付けてはいけない(これはほかのタイプを使うときでも同様だが)。仮想マシンが仮想ディスクへ書き込みを行うたびにホスト側OSで圧縮/解凍などの処理が発生し、著しくパフォーマンスが低下するからだ。同様の理由で、ゲストOS側でも圧縮属性は利用しない方がよい。
■差分仮想ディスク
これは上の2種類とは少し異なり、ある仮想ディスクをベースにして、その差分(ブロック単位での相違部分)だけを記録するタイプの仮想ディスクである。例えばWindows Server 2003 SP1適用版のOSイメージを保存した仮想ディスク・ファイルがある場合に、それをベースにして、SP2を適用したOSイメージを作成したい場合に利用できる。SP2を適用しても、元のSP1適用版とは同じままの部分(ファイル)は少なくない。このような場合、元の仮想ディスクをコピーしてそのOSイメージにSP2を適用すると、仮想ディスクの合計は元の倍以上になるが、差分だけを記録できれば、元の仮想ファイル+新しく更新された部分だけで済み、仮想ディスクを保存するためのディスク領域を大幅に節約できる。
これ以外にも、例えば1つのOSイメージを元にして、コンピュータ名やIPアドレスなどを変更した複数の仮想マシンを作成するような場合にも利用できるだろう。
しかし、親仮想ディスクと大きく異なる環境を構築する用途にはあまり向かない。例えばWindows 2000がインストールされた仮想ディスクを親にするけれども、新しくWindows XPを新規インストールするといった場合である。現実のPCでは、元のOSを削除してから別のOSを新規インストールするのは普通であるが、こういう場合は差分ディスクではなく(もちろん既存の仮想ディスクを使うのでもなく)、新規作成した仮想ディスクを利用するべきである。仮想マシン上でファイルを削除しても、仮想ディスクのサイズは自動的に縮小されないからだ。
差分ディスクは、常に親(マスター)となる仮想ディスクとペアで利用される。親の仮想ディスクのタイプは固定でも可変長でもよいし、別の差分ディスクでも構わない。つまり、差分ディスクを多段に構成することも可能である。しかし親の仮想ディスクの内容を変更することは許されていない。親仮想ディスクの内容が変更されてしまうと、元のデータが分からなくなってしまうからだ。
このような事情があるため、差分ディスクを使う場合は注意が必要である。親仮想ディスクの内容を書き換えないように注意するのはもちろんのこと、親ディスクの保存場所や名前を変えてもいけない。もし変更したり、移動したりすると、エラーとなるか、親仮想ディスクの名前や場所を問い合わせるダイアログが表示されることがある。また差分ディスクをコピーしたり移動する場合は、その親仮想ディスクも同様にコピーしたり、移動したりしなければならない。
■実ハードディスクへのリンク(直ディスク)
これは、物理的に存在するハードディスクへリンクされるタイプの仮想ディスクである。システムに搭載されている物理的なハードディスクを仮想環境から利用するためのものであり、ほかのハードディスクとはやや利用目的が異なる。仮想環境から直接物理ハードディスクへアクセスして、パフォーマンスを最大限にするためにも利用できるが、一般的には、既存のコンピュータ・システムの環境を仮想環境に移行させるために利用することが多いだろう。
Copyright© Digital Advantage Corp. All Rights Reserved.