更新>MCS/MPIO/64bitLBAパッチ 2008/12/25版
Microsoft iSCSI Initiator Users Guide によると
現バージョンでサポートしている冗長化は
Multiple Connections per Session(MCS)
Microsoft MPIO support
だそうな。
iscsi-targetは1コネクション(TCP)を1スレッド、
当該セッションパラメータをスレッドに埋め込みで管理しています。
もし複数スレッド間でパラメータを共有できればMCSが容易になります。
でもそこまで作りこむのはかなり時間がかかりそうなので、
動作確認の意味も込めて、スレッド内のSCSIコマンド処理前に
各スレッドから必要なシーケンス番号をコピーするという
なんちゃって同期機能をつけて対応(笑)
この動作の前提として複数スレッドが同時に同じシーケンス番号を
更新しないとすごく期待しています。
一般化するなら送受信スレッドとパケット処理スレッドを作って、
FIFOキューでつなぐのがいいと思ってるけどどうでしょ。
用意するもの:
LANを2ポート以上装備したマシン2台
スイッチングハブ2台
iscsi-targetのパッチファイル iscsi-target-20081118-patch.bz2
更新版をご利用ください。
# cd /usr/ports/net/iscsi-target
# make patch
# bzcat < iscsi-target-20081118-patch.bz2 | patch -p0
# make
# make install
-C 最大接続コネクション数(デフォルト4)
-P 接続可能なポータルのIPアドレス(カンマ区切り)
いわゆる仕様:
ネットマスクはまだ対応していないので0/0が必要です。
全てのIPアドレスが同じポート番号でグループ1のネットワークポータルになります。
ポート番号は従来の-pオプションで変更可能ですがグループ番号は固定です。
最初に接続したコネクションが壊れるとおかしくなります。
~参考設定~
ターゲットにはしばらくブログに書いてきたExpress5800/110Geに
Intel PRO 1000/PT Desktop Adapter を増設して利用しました。
http://www.intel.com/products/server/adapters/pro1000pt/pro1000pt-overview.htm
ホストはWindows Server 2008に同型カードを挿しました。
それぞれのカードのIPアドレスを別のネットワークにして、
スイッチングハブをそれぞれに独立して接続します。
(参考設定では192.168.2.0/24と192.168.3.0/24を利用)
ターゲット側(FreeBSD7.1):
/etc/rc.conf
ifconfig_em0="inet 192.168.3.36 netmask 255.255.255.0"
ifconfig_em0_alias0="inet 192.168.3.37 netmask 255.255.255.255"
ifconfig_em1="inet 192.168.2.36 netmask 255.255.255.0"
ifconfig_em1_alias0="inet 192.168.2.37 netmask 255.255.255.255"
iscsi_target_enable="YES"
iscsi_target_flags="-s 32 -C 4 -P 192.168.2.36,192.168.3.36,192.168.2.37,192.168.3.37"
/usr/local/etc/iscsi/targets
extent0 /tank/iscsi/iscsi-target0 0 80GB
extent1 /tank/iscsi/iscsi-target1 0 80GB
target0 rw extent0 192.168.2.0/24
target1 rw extent1 0/0
ホスト側(WindowsServer2008):
オンボードLANに192.168.2.33/24を、
Intel PRO 1000/PTに192.168.3.33/24を割り当てました。
ログインするときに[詳細設定]でローカルアダプタ、ソースIP、
ターゲットポータルを指定します。
接続できたら、[詳細]でセッションのプロパティを開き、[接続]を押します。
[追加]を押します。
ソースIP、ターゲットポータルを別のものを指定します。
負荷分散ポリシーを適当に変更する。
設定はこんな感じですが、先に述べた通り最初のコネクションが
すべてのデータを持っているのでこれが死ぬと復帰できなくなります。
とりあえず動くところを見ないとね。





FreeBSD 7.1 + Microsoft iSCSI Initiator / MCSパッチの新しいの…
いつもエラーが出て気になっていたので修正しました(汗)
パッチファイル: iscsi-target-20081129-patch.bz2
# cd /usr/ports/net/iscsi-target
# make clean
# make patch
# bzcat < /path/to/iscsi-target-20081129-patch.bz2 | pa…
MCSパッチ修正 2008/11/30版…
やっぱりバグバグだった。
パッチファイル: iscsi-target-20081130-patch.bz2
# cd /usr/ports/net/iscsi-target
# make clean
# make patch
# bzcat < /path/to/iscsi-target-20081130-patch.bz2 | patch -p0
# make
# make install
新規オ…..