その前に、まず、仮想マシンのフォーマットについて少し整理しておきたいと思います。Xenでは仮想マシンは「ファイル」または「ボリューム」という単位で作成することになります。
ファイルについては説明不要かと思います。ここでいうボリュームというのは、ディスクそのもの(/dev/sdaなど)、ディスク上のパーティション(/dev/sda1)、LVMの論理ボリューム(/dev/Vg-01/Vol-01など)のいずれかを指します。それぞれは以下のような階層構造になっています。
各フォーマットの特徴を簡単にまとめてみましょう。
取り回しが容易。仮想マシン実体をごっそりコピーしたり、ネットワーク経由で転送したりという操作が、普段使い慣れたcpやscpといったコマンドで簡単に行えます。実体ファイルは作成時にサイズ指定できるので、柔軟に容量を割り当てることができますが、いったん作成した後に容量を伸長するのは容易ではありません。
データの階層構造が最もシンプル。しかしディスク全体を仮想マシンに割り当てることになるため、ホストサーバ側で容量の調節ができません。この形式を採用するとすれば、iSCSIで細かく区切ったLUをマウントして使う場合が想定されます。容量割り当てやバックアップなどのタスクをすべてストレージに任せてしまう場合は、このフォーマットが適しています。
ホストサーバ側でサイズを指定できるので、柔軟に容量を割り当てることができますが、いったん作成した後に容量を伸長するのは容易ではありません。
ホストサーバ側でサイズを指定できるので、柔軟に容量を割り当てることができるうえ、いったん作成した後に簡単に容量を伸長することができます。そのほか、スナップショットといった高度な操作も行えるため、ホストサーバ側で仮想マシン実体の容量割り当てやバックアップを管理する場合にはこのフォーマットが重宝します。
では、これを理解したうえで、ストレージごとの特徴を見ていきましょう。
ローカルHDDはSCSIケーブルなどで直接サーバ機と接続されるので、ネットワーク構成を考慮する必要はありません。このローカルHDDは、まずブロックデバイスという形でホストサーバに認識されます。OSからは、/dev/sdaというような形で、/devディレクトリ以下にスペシャルファイルとして見えます。仮想マシンは、このデバイスを基にしてボリュームやファイルという単位で作成することができます(図はファイルベースの場合)。
この構成の特徴は、シンプルだがストレージを複数のホストサーバで共有できないことです。このため、仮想マシンとホストサーバの組み合わせがスタティックになってしまい、ライブマイグレーションが行えません。
iSCSIのストレージは、ホストサーバからはブロックデバイスとして認識されます。つまり、一度接続さえしてしまえば、取り回しはローカルHDDと同じように行うことができます。仮想マシンもボリューム、ファイルと、さまざまな形式で作成することが可能です(図はファイルベースの場合)。
この構成の特徴は、複数のホストサーバでストレージを共有できるので、ホストサーバと仮想マシンをダイナミックに組み合わせられることです。また、ブロックデバイスレベルでストレージを共有するため、仮想マシンをLVMの論理ボリュームで作成すれば、ホストサーバ側からデータに対してさまざまなオペレーションを行うことができます。
ローカルHDDがブロックデバイスとしてホストサーバから認識されるのに対し、NASはファイルシステムとして認識されます。従ってNASの場合は、パーティションや論理ボリューム単位で仮想マシンを作成することはできず、常にファイル形式で作成することになります。
この構成の特徴は、複数ホストサーバでストレージを共有できるので、ホストサーバと仮想マシンの組み合わせをダイナミックに行えることです。
iSCSI構成との違いは、繰り返しになりますが、NAS構成ではファイルシステムレベルでストレージを共有するため、すべての仮想マシンはファイル形式で作成することになります。よって、ホストサーバ側で容量の変更やLVMのスナップショットなどの操作を容易に行うことができません(注2)。
注2:ただし、ファイル形式でもVHD形式やqcow形式など特殊なフォーマットを用いれば、スナップショットのような高度な操作も可能になります
このようにストレージの種類によって、データの階層構造は異なってきます。それに伴い、仮想マシンの配置方法も、ボリュームベースで作成できるのか、それともファイルベースで作成できるのか変わってきます。
iSCSIとNASはいずれも、複数のサーバから同じデータ(仮想マシン)へのアクセスを可能にするストレージですが、その仕組みは大きく異なります。
iSCSIは純粋にネットワーク経由でブロックデバイスへのアクセスを提供します。一方NASは、ブロックデバイスより上位のファイルシステムへのアクセスをネットワーク経由で提供し、さらにそのファイルシステムへの排他制御も提供しています。従って、複数のホストサーバで、NAS上の仮想マシンのデータ(ファイル)を共有するのは簡単に実現できますが、iSCSIの場合には、排他制御の部分など、共有に際して必要なさまざまな機能を補ってあげる必要があります。
では次回以降、仮想マシンからiSCSI、NASへの接続手順と、そのストレージ上に仮想マシンを作成して複数のホストサーバで共有するための環境構築手順を解説したいと思います。
Copyright © ITmedia, Inc. All Rights Reserved.