無償の純正iSCSIターゲットソフト「Microsoft iSCSI Target」を試す


 Microsoftが4月初旬に公開したWindows Server 2008 R2用のiSCSI Targetソフト「Microsoft iSCSI Software Target」(以下、iSCSI Target)は、Hyper-VにおけるLive Migration環境を実現するために、重要なソフトウェアだ。今回は、これを実際に試したみたので、利用手順などを紹介しよう。

 

iSCSI Target提供の意味

iSCSI Targetのドキュメントは、ダウンロードしたソフトに同梱されている。現在のバージョンは、iSCSI Target 3.3だ

 2台のHyper-Vサーバー上で、仮想環境を移動するLive Migration環境を構築するためには、2台のサーバーからアクセスできる共有ストレージを用意する必要がある。Hyper-Vでは、この共有ストレージとしてはiSCSIストレージを必要としている(VMware ESXなどでは、NASなども利用できる)。

 ただ、問題になったのは、Hyper-VのLive Migration環境をサポートするためには、iSCSIストレージ側でSCSI3コマンドをサポートするなど、さまざまな機能を必要としていることだ。このため、ローコストなiSCSIストレージではHyper-VのLive Migration環境が利用できなかった。

 今回、Microsoftが無償で公開したiSCSI Targetは、Windows Server 2008 R2環境にインストールして、Windows Server 2008 R2をiSCSIストレージとして利用するソフトウェアだ。

 これを使えば、2台のHyper-Vをインストールしたサーバー、iSCSI Targetをインストールしたサーバーなど3台のサーバーで、Hyper-VのLive Migration環境を稼働させることができる。

 iSCSI Targetは本来、Windows Storage Serverのオプションとして提供されていたので、Windows Server 2008 R2にiSCSI Targetをインストールして利用することはできなかった。このため、Windows Server 2008 R2をiSCSIストレージとして利用するには、サードパーティのiSCSI Targetソフトを購入するしかなかった。しかし、iSCSI Targetが無償で公開されたことで、手軽にiSCSIストレージ環境を構築することが可能になった。この意義は大きい。

 

iSCSI Targetの利用環境

iSCSI Targetソフトのインストールは非常に簡単。インストール時に、設定する項目はほとんどない

 iSCSI Targetは、Microsoftのダウンロードセンターからダウンロード可能だ(最新バージョンは、iSCSI Target 3.3)。ソフト自体は、起動すれば、自動的にインストールしてくれる。対応OSとしては、Windows Server 2008 R2 Standard、Enterprise、Datacenterの各エディションとなっている。

 iSCSI Targetでは、Windows Storage Serverで利用するのと同じように、仮想ディスク(VHD)をドライブとして利用する。このため、物理的なNTFSドライブの上にファイルとして仮想ディスク(VHD)を構築することになる。

 また、iSCSIを利用してサーバーとストレージサーバーを接続するのにはEthernetを使用するが、インターネット接続用のLANとは別に、iSCSI用のネットワークを用意する必要がある。今回は、Gigabit Ethernet(GbE)のNICを2つ用意し、1本をiSCSIのネットワーク用に割り当てた。ハブは、GbE対応のスイッチを利用している。

 なお今回はテストということで、デスクトップPCにWindows Server 2008 R2をインストールしてテストしているので、NICは、RealtekなどのデスクトップPC用の製品を使っている。

 

iSCSI Targetを導入する

 iSCSIの設定自体は、それほど難しいモノではない。

 まずは、サーバー、ストレージサーバーの両方で、iSCSIネットワークで使用するNICのIPアドレスを設定する。IPアドレスは閉じたiSCSIネットワーク内部で使用するため、どのようなIPアドレスでもいいが、既存のネットワークに接続する場合などに、ぶつからないIPアドレスをiSCSIネットワークに付与する必要があるのは、言うまでもない。

 次にiSCSI Targetを起動して、iSCSIターゲットを作成する。固有のIQN識別子を設定する必要があるが、IQN識別子はネーミングのルールが難しいので、ここではIPアドレスを使って設定を行う。IPアドレスを使えば、自動的にiSCSIイニシエータを認識して、ターゲットのIQN識別子を作成してくれる。


iSCSI Targetをインストールすると、メニューにiSCSI Targetという項目があるiSCSI Targetを起動して、iSCSIターゲットを作成する。メニューの操作に、iSCSIターゲットの作成という項目がある
iSCSIターゲットの作成では、ウィザードで設定を行うiSCSIターゲット名を入力後、IQN識別子を入力する。今回は、詳細設定から、IPアドレスを入力する。この時入力するのは、iSCSIイニシエータのIPアドレス
新しいiSCSIターゲット「iSCSI01」が作成された

 次に、作成したiSCSIターゲットが使用する仮想ディスクを作成する。このウィザードでは、固定長の仮想ディスク(VHD)を作成する。このため、仮想ディスクのアクセス性能としては、可変長よりも高い性能となっている。ちなみに、可変長の仮想ディスクもiSCSIターゲットで使用できるものの、ウィザードでは作成できないので、あらかじめ可変長の仮想ディスクを作成して、その仮想ディスクをインポートすることになる。

 ここで、複数の仮想ディスクを作成すれば、LUN番号で分けて管理することになる。


iSCSI01に仮想ディスクを接続する。メニューの操作からiSCSIターゲット用の仮想ディスクの作成を選択仮想ディスクの作成もウィザードで行える
仮想ディスクを作成するディレクトリーやファイル名を入力後、仮想ディスクの容量を決める。ここでは、5GBに設定した作成した仮想ディスク。LUN0に設定されている。ちなみに、このウィザードでは、固定容量の仮想ディスクが作成されるため、作成時に入力した容量がHDD上にファイルとして作成される

 アクセスするサーバー側では、iSCSIイニシエータを利用する。iSCSIイニシエータを起動して、「ターゲット」タブで、iSCSIターゲットのIQN識別子を入力するか、iSCSIターゲットが動作してるストレージサーバーのIPアドレス(iSCSIネットワークで使用しているNIC)を入力すればOK。

 iSCSIイニシエータとiSCSIターゲットが自動的に通信して、iSCSIターゲットのIQN識別子を認識する。今回は、クローズドなネットワークを構成しているため、セキュリティなどに使用するCHAPなどは、設定していない。

 サーバー側でiSCSIのディスクを認識したら、「ディスクの管理」を起動して、iSCSIのディスクが使用できるようにフォーマットする。これにより、iSCSIのネットワークディスクが、ローカルディスクと同じように使用できるようになる。


サーバー側のiSCSIイニシエータの設定。ここでも、IQN識別子を入力するのは面倒なので、iSCSI TargetのIPアドレスを入力する

 

iSCSIのアクセス性能は?

 サーバーとストレージサーバーの間で、Crystal Disk Mark 3.0.1aを使用してアクセス性能をチェックした。iSCSIターゲットで使用するHDDとローカルHDDは、同じHDDを使用している(SeagateのBarracuda 7200 SATA 3Gbps)。

 Crystal Disk Markのデータを見てみると、シーケンシャルアクセスは、iSCSIディスクがローカルHDDの80%ほどの性能を示している。ランダムアクセスに関しては、一部のベンチマークにおいては、ローカルHDDの性能をiSCSI HDDが抜いている。これは、サーバー側の負荷などの誤差だろう。


ベンチマーク表

 この結果を見ると、GbEのiSCSIでは3GbpsのSATAドライブの約80%~約90%のアクセス性能を持っているようだ。GbEのネットワーク、TCP/IPプロトコル、iSCSIターゲットの仮想ディスクなど、さまざまなオーバーヘッドがあるが、約10%~約20%のオーバーヘッドで済んでいるのは非常に優秀といえる。

 今回のテストでは、iSCSIに使用するNICは標準設定のため、Ethernetのフレームサイズを大きくして、効率のよい通信を行う「Jumbo Frame」などの設定は行っていない。こうした設定などを行えば、もう少し性能は向上するだろう。

 またTCP/IPをオフロードするNICを使用すれば、サーバーやストレージサーバーのCPU負荷は小さくなる。iSCSIの転送性能自体は、TCP/IPオフロードのNICを使用するだけでアップするわけではない。しかし、頻繁にアクセスが行われるiSCSIディスクは、TCP/IPプロトコルのオーバーヘッドが大きくなるため、TCP/IPオフロードのNICを使用することは、システム全体の性能を高く保つことに寄与する。

 iSCSIディスクのアクセス性能を向上させるためには、ネットワークの帯域を増強すればいい。10GbE NICを使用すれば、大きな性能向上が図れるだろう。また、複数ポートをTrunkするNICやスイッチなどを利用すれば、それだけiSCSIのアクセス性能も向上する。

 ただし、ストレージサーバー側のHDD性能も関係するため、そこがボトルネックになるかもしれない。これを解決するには、ストレージサーバーで使用するHDDをRAID構成にしたり、6Gbps のHDDやSSDなどを使用することになるだろう。

 

 このように、iSCSI Targetを利用すれば、Hyper-VのLive Migration環境なども簡単に構築できる。ストレージサーバーとして利用するサーバーが1台必要になるが、手軽にiSCSI環境が構築できる。

 確かに、本格的なiSCSIストレージに比べると、性能面や機能面(プロビジョニング機能、ストレージ管理)で劣る部分があるが、Hyper-VのLive Migration環境、VMwareのVMotion環境が簡単に構築できるため、テストを行うには最高だろう。

 高価なサーバーをストレージサーバーとして使うのはもったいないと考えるなら、HPのMicroServerのような安価なサーバーを使用してもいいし、余っているデスクトップPCにサーバーOSをインストールしてもいい。

 とにかく、仮想環境のさまざまな機能をテストするには、iSCSI Targetソフトは、非常に便利なソフトだといえるのではないだろうか。

関連情報