UnixPower on Networking
  http://www.unix-power.net/

 
 Top - Linux - VMware ESXi iSCSI Port Bindingによるマルチパス




■MultiPath iSCSIの考慮

iSCSIでデータストアに接続する場合、通常は普通のNICを使ってソフトウェアiSCSIとして利用するのが一般的です。ESXiからストレージに対して物理的にNICが一本しかなければ、それが壊れた場合、全落ちとなってしまうので冗長化を考える必要があります。

冗長化を実現する場合、以下の二つの手法があります。


●NIC Teaming
●iSCSI Port Binding


奨励されるのは後者のiSCSI Port Bindingです。NIC Teamingにおいては冗長化はできても分散ができない、冗長かつ分散ができるにしてもスイッチ側が対応しておく必要があるなど、ある一定の条件が求められるからです。また、同一サブネットに属するVMkernelインターフェイスを複数構成したiSCSIソフトウェアイニシエータは単一のNICしか利用しない仕様であることも理由の一つに挙げられます。


そこでiSCSI Port Bindingを設定することにします。


■利用イメージ


物理的な接続構成は以下を前提とします。iSCSIセグメントは192.168.12.0/24を利用します。

●構成図1



ESXiの中のVMkernelはそれぞれ専用のvmnicに紐づける必要があります。これをiSCSI Port Bindingと呼びます。これによりESXiホストからストレージまで4つのパスが確保され、なおかつ分散して使用されるという構成になります。またSCSIスタックのマルチパス機能を利用する場合はNIC Teamingの設定は不要となります。

上記は検証環境なので図のような構成図となりますが、本番環境においてはストレージにはストレージプロセッサというものが搭載されており、プロセッサごとにNICを2枚搭載していることが多いです。その場合、さらに冗長化等を考慮して以下のような構成にするのが一般的です。

●構成図2


vmnic1と2でセグメントをわけています。またストレージ側においてもストレージプロセッサごとに2つのNICが搭載されており、それぞれでセグメントを分けるという想定です。構成図1ではL2スイッチがこけると通信不可状態となりますが、この構成ではスイッチも冗長化されているということになります。こうすることでFiber ChannelのゾーニングのようなことをiSCSIで実現することが可能になります。

■実際の設定

vSphere Clientを用いて実際の設定を見てみます。上の構成図1の前提で既に各NICにはIPアドレスが振られているという前提です。まずネットワーク構成を編集するところから始めます。ESXiのネットワーク構成が以下のようにVMkernelおよびvmnicがvSwitchにそれぞれ2本づつ接続されている必要があります。vSwitchのプロパティリンクをクリックします。



VMkernel1を選択して編集ボタンをクリックします。



各VMkernelは各vmnicにそれぞれ個別に紐づいている必要があります。「NICチーミング」タブをクリックします。「スイッチのフェイルオーバー順序の置き換え」にチェックを入れ、有効なアダプタにこのVMkernelが紐づくvmnicを選択するよう移動します。その他のvmnicは未使用アダプタのところにくるよう編集します。



これをもう一方のVMkernel ( vmnic ) も行います。上記はVMkernel1とvmnic0を紐づけたので次はVMkernel2とvmnic1を紐づけるようにしてください。それらが完了すると最初の画面のようなネットワーク構成となります。


次にiSCSIソフトウェアアダプタを追加します。「構成」タブから「ストレージアダプタ」をクリックし、「追加」をクリックします。




OKをクリックします。




OKをクリックします。



そしてiSCSIのソフトウェアアダプタが追加されます。



追加されたアダプタを右クリックしてプロパティを選択します。ネットワーク構成タブをクリックして追加ボタンをクリックします。




このiSCSIアダプタにバインドするvmnicを選択してOKをクリックします。ここでは上記で設定したVMkernel1およびVMkernel2の二つを追加いたします。これがiSCSI Port Binding操作です。




追加が完了すると以下のような画面となります。




続いて静的検出タブをクリックして追加ボタンをクリックします。ここでiSCSIターゲットの設定を行います。



iSCSIターゲットのIPおよびターゲット名を入力します。ここにはストレージ側が持っている2つのIPを設定することになるので、それぞれのIPごとに以下の追加操作を行うことになります。また、iSCSIターゲット名はストレージ側に設定しているものと一致している必要があります。




IPアドレスが入力されました。閉じるでプロパティ画面を閉じます。




これでiSCSI Port Bindingの操作は完了です。iSCSIターゲットへのパスの数がいくらなのかvSphereの管理画面から確認することができます。




上記ではパスの数は8と表示されていますが、LUNを2つ認識しているのでLUN 1つにつき4つのパスということになります。デバイスの部分を右クリックして「パスの管理」をクリックすると実際のパスが表示されます。




上記では4つのパスがあり全て有効とされているものパスの選択が「固定」となっていますので4つのうちの1つしか使われない設定となっています。そこでパスの選択をラウンドロビンに変更することで4つのパスすべてが使用されるようになります。




パス選択のポリシーとしては以下のものがあります。

ポリシー 説明 
固定 複数パスのうち優先されたパスがある場合はそれを使用し、
優先パスがない場合はシステム起動時に最初に検出されたパスが使用する。 
ラウンドロビン  自動的にパスが選択されるアルゴリズムを使用する。 
最近の使用  最近使われたパスを有効にする。 




 関連記事
 ゲストOSのインストール
 iSCSIターゲットとイニシエータの構築
 Copyright(C) 2003-2015 UnixPower on Networking All rights reserved.