How to set IP address to listen for QUADStor service
先日のエントリーでは、複数の I/F (IP アドレス) を持つ QUADStor が利用するターゲット I/F を iptables で擬似的に制御していました。…その後、QUADStor が内部で利用している iSCSI Enterprise Target のマニュアルとコマンドのオプション ヘルプに Listen する I/F を指定する方法の記述があったので、ズボラな回避策ではなく基本に立ち返った設定方法を残します。
ietd のヘルプを見ると Listen する IP アドレスを指定出来ることがわかります。
[root@stg-l-01b ~]# /quadstor/sbin/ietd --help
Usage: iscsid [OPTION]
iSCSI target daemon.
-c, --config=[path] Execute in the config file.
-f, --foreground make the program run in the foreground
-d, --debug debuglevel print debugging information
-u, --uid=uid run as uid, default is current user
-g, --gid=gid run as gid, default is current user group
-a, --address=address listen on specified local address instead of all
-p, --port=port listen on specified port instead of 3260
-h, --help display this help and exit
[root@stg-l-01b ~]#
コンフィグファイルで Listen する IP アドレスやポートを指定する方法は、残念ながら iET にはないようなので、QUADStor サービスを起動するスクリプト (/etc/init.d/quadstor) を直接編集します。こちら を見る限り Debian では /etc/defaults/iscsitarget に IETD_ARGS というパラメータが入ったようですが、今後に期待したいところです。
if [ -f /quadstor/sbin/ietd ]; then
/sbin/insmod /quadstor/lib/modules/$kvers/iscsit.ko > /dev/null 2>&1
check_error "Failed to insert iscsi target module"
$DAEMON_CMD /quadstor/sbin/ietd -a 192.168.220.201
fi
このサーバーでは、192.168.210.201 と 192.168.220.201 という 2 つの IP アドレスを持っていて、192.168.220.0/24 をストレージアクセス用のセグメントとしています。保存したら、QUADStor を再起動するか、OS を再起動させます。 編集する前は以下のようなポートの開き具合だったのが、
[root@stg-l-01b ~]# netstat -an | grep 3260
tcp 0 0 0.0.0.0:3260 0.0.0.0:* LISTEN
tcp 0 0 :::3260 :::* LISTEN
[root@stg-l-01b ~]#</pre>
次のように、狙い撃った I/F (IP アドレス) でサービスを提供するようになります。
[root@stg-l-01b ~]# netstat -an | grep 3260
tcp 0 0 192.168.220.201:3260 0.0.0.0:* LISTEN
[root@stg-l-01b ~]#
自宅環境、閉鎖ネットワーク、かつ、Nested 環境での稼働なので、iptables を停止し 少しでも負荷を下げることに努めます。