Port Binding for iSCSI

 つい最近,iSCSI で Datastore を用意したのですが,かなり久しぶりだったので iSCSI 用ネットワークについて備忘録を残しておきます.


 もちろん参考にしたのは Best Practices For Running VMware vSphere On iSCSI です.

core.vmware.com

 NFS ばかり使っていると,ネットワークの冗長構成は Teaming でいいじゃんと安易に流れてしまいそうですが,Best Practices にはしっかりとPort Binding を推奨する根拠が記載されています.Link down だけでなく,データの読み書きやハードウェアエラーを返す SCSI sense code までを監視して動いてくれるんですね.それぞれのポートが独立したセッションを持つので,SCSI コマンドは個別に送受信され,信頼性が高まります.

 というわけで,早速 Distributed vSwitch 環境で Port Binding を設定してみました.( Best Practices には Standard vSwitch 設定の記載もあります.)
まず Distributed vSwitch に,Port Binding で利用する Uplink の数だけ Portgroup を作成します.今回は Uplink が 2 本あるので,それぞれ iscsi0, iscsi1 を用意しました.


 ポイントは Teaming and failover の設定で,Load balancing に Use explicit failover order 選択し,Failback を No にすることと,Failover order で Active uplinks を 1 つだけにして,残りの Uplink は Unused uplinks に移動させることです.


 2 つ目の Portgroup も同様に設定しますが,Uplinks の Active と Unused を 1 つ目の Portgroup で設定したものと逆にします.


 それぞれの Portgroup に iSCSI Target と同一サブネットの IP を付与した VMkernel Network Adapter を用意します.Minimizing Latency のために iSCSI の Initiator とTarget 間の Hop 数は増やさないのが賢明です.


 これで準備は整ったはずなので,Port Binging を設定したい iSCSI Software Adapter を選択して Network Port Binding タブから ADD をクリックします.

 すると,先程作成した Portgroup が表示されるので,選択して OK で進めます.

 Port Group Policy も Compliant !

 あとは粛々と iSCSI Target (今回の環境では 2 Node でそれぞれ iSCSI 用 LIF が 2 つ) を Discover して行くだけです.

 4 つの iSCSI Target に対して ESXi 側の Port が 2 つなので, Path が 8 つであることが確認できます.Device としてもしっかり認識されているので,あとは Datastore を作成すれば完了です!

 Advanced Options タブで ESXi Host の iSCSI 用パラメータの確認・変更が可能です.

 パラメータの説明は VMware Docs の Configuring Advanced Parameters for iSCSI on ESXi Host を参考にしてください.

docs.vmware.com

 ストレージベンダー各社から推奨値が公開されていますので,環境に合わせて調整しましょう. (今回も備忘録なので特にオチはありませんw.)