コマンドキューイングを有効な状態で書き込みすると処理が停止する可能性が
ありました。シングル接続だとあまり表面化しないけれど、マルチ接続な環境では
発現しやすかった模様です。
ついでに書き込み処理をデータ転送とLUN(物理メディア)書き込みの二段階に
分割してキューイングが有効に効くように変更しました。
現状では受信と送信を交互に同一スレッドで行っている為、どちらかが大きな
データサイズを処理しているともう片方は待たされる事になります。
今後のリリースで受信と送信のスレッドを個別に作成してみる予定です。
istgt (tarball): istgt-20090425.tar.gz
更新版をご利用ください。
作成方法:
# cd /path/to/work
# tar zxf /path/to/istgt-20090425.tar.gz
# cd istgt-20090425
# ./configure
# make
# make install
# make install-doc
デーモンの再起動方法:
# /usr/local/etc/rc.d/istgt restart
MD5 (istgt-20090425.tar.gz) = 04bcc6e78593ce3b42e5eeea6be2f5e7
SHA256 (istgt-20090425.tar.gz) = 9cb460eb0f7572cfa305b5530b31c6a02ffecbc0c3a816df16b6197c8dbf15d2
FreeBSD iSCSI initiator 2.1.3 はこちらからどうぞ。
ftp://ftp.cs.huji.ac.il/users/danny/freebsd/iscsi-2.1.3.tar.gz
主な修正点:
ソケットI/Oを旧版と同じルーチンに戻しました。
キューイング書き込み時の問題を修正しました。
キューイング書き込みをデータ転送とLUN書き込みの二段階に分けました。
MCS逆順の処理をusleepからpthread_cond_timedwaitに変更しました。
実行中のタスク完了を待って終了するようになりました。