VMwareではESX 3.0よりiSCSIソフトウェアイニシエータ機能を実装しており、さまざまなiSCSIストレージ装置がESXの互換性認証を取得している。iSCSIストレージ装置利用時のマルチパスの考え方、ロードバランシングの考え方は、ストレージアレイ装置本体の設計思想に大きく依存する部分があり、基本的にはストレージ装置ベンダの推奨する方法で構成することになる。大きく分けて以下の3通りのいずれか、もしくは複数を組み合わせた方法でマルチパスを構成する。
1) ESXのSCSIスタック側のマルチパス機構を用いる方法
Fibre ChannelやiSCSIハードウェアイニシエータ利用時と同様の方法をiSCSIソフトウェアイニシエータ利用時においても利用する方法である。ESX 4.0では上記のPSAの枠組みの中でI/Oパスのフェイルオーバやロードバランシングなどをハンドルする。
2) NIC Teaming機構を用いる方法
ESXのネットワークスタック側の機能であるNIC TeamingをiSCSIパスにも適用する方法である。パス故障時のフェイルオーバ機構としては容易に機能させることができるが、I/Oパスの負荷分散という観点ではいくつかの考慮点が発生する。
3) ストレージアレイ装置側の保有するフェイルオーバ機構を用いる方法
iSCSIストレージ装置によっては、ポートリダイレクト、ポートリアサインなど、IPストレージ流のインテリジェントなフェイルオーバ機構をサポートしている場合がある。これらの機能が提供されている機種を利用している場合は 2) の方法と組み合わせることで、NIC側、ストレージ側それぞれのポートを冗長化することができる。
現在ESXとの接続がサポートされているiSCSIストレージの各機種について、個別の構成例を全て紹介することはできないため、本稿では最もオーソドックスなストレージ装置を利用する場合の考え方について解説することとする。
ここで例として取り上げるのは、Fibre Channelのポートを単純にイーサネットのポートに置き換えたタイプのストレージ装置である。iSCSIストレージ装置側としてのポートリダイレクト機能、ポートリアサイン機能などは無く、ESX側でI/Oマルチパス機構をハンドルする状況を想定する。
この場合、図10のような設計を検討される方が多いのではないだろうか?
確かにこの設計でもNIC Teamingによるフェイルオーバ機構を構成することはできる。しかし、負荷分散という観点では単一のNICが利用されてしまう。
これはESXのNIC Teamingのロードバランス方式に起因している。NIC Teamingのロードバランシングアルゴリズムとして、Port Based、Source MAC、IP Hashの3種類より選択することができるが、Port BasedとSource MACでは送出先アドレスの情報はパス選択時に利用されないため、結果として必ず同じ物理NICが利用されてしまう。IP Hashでは送出元・送出先IPアドレスのペアに対するハッシュ値を用いて物理NICを選択するため負荷分散を期待することができるが、その場合は物理スイッチ側をLink Aggregationで構成する必要があるため、適用範囲が限定されてしまう。
ではVMkernelインターフェイスを追加構成して、物理NICの負荷分散を考えたとしよう。以下のような例を考える。
残念ながら図12の場合も物理NICの負荷分散は期待できない。同一のサブネット上にVMkernelインターフェイスを複数構成した場合、iSCSIソフトウェアイニシエータは単一のVMkernelインターフェイスしか利用しないためである。
このような状況に対応するため、ESX 4.0ではiSCSIソフトウェアイニシエータのPort Bindingと呼ばれる機能を利用することができるようになった。この機能を利用すると、iSCSIソフトウェアイニシエータが利用するVMkernelインターフェイスを、明示的に指定登録することができる。複数個のVMkernelインターフェイスをiSCSI用として登録することもできるため上記の例ではvmk0、vmk1の両方がiSCSIトラフィックで利用されるようになる。
Copyright © ITmedia, Inc. All Rights Reserved.