自宅ラボ環境にて、ストレージ QUADStor と vSphere ESXi の接続を整理したのでその際の備忘録を。

ラボの vSphere ESXi と QUADStor の接続構成は以下の通り。

管理系のセグメント (192.168.110.0/24) とストレージ用のセグメント (192.168.120.0/24) の 2 系統で、両者が接続されています。ストレージ用のセグメントが輻輳していてもストレージ管理が行えるようにと、ネットワークを分離していますが、QUADStor の初期設定がズボラなため、ストレージ デバイスへのパス構成が少々格好悪い構成になっています。

上記のように、管理系のセグメント (192.168.110.0/24) でも iSCSI 接続が行われてしまっています。これは QUADStor の iSCSI サービスが any (0.0.0.0:3260) でオープンされてしまっているため、管理系のポートでも iSCSI サービスを提供してしまっているためです。

パスを無効化すれば、以下のようにストレージ用のセグメントを使うようにすることができますが、ストレージ側で対応してしまいたいところです。

QUADStor の iSCSI サービスは IET をベースにしているようなので、/quadstor/etc/ietd.conf を修正すれば対応出来るのかも知れませんが、そもそもサンプルファイルしかないことや、PostgreSQL を内部で絡めていたりするので判断に悩みます。また、iSCSI ボリュームを作成しても ietd.conf にエントリが追加されないので、ietd.conf がどこまで有効なのかわかりません。

ietd.conf に頼らず、iptables で管理系のセグメントで iSCSI サービスを提供しないようにします。iSCSI のポート (3260) について -d で Allow するセグメントを絞ります。

# Firewall configuration written by system-config-firewall
# Manual customization of this file is not recommended.
*filter
:INPUT ACCEPT [0:0]
:FORWARD ACCEPT [0:0]
:OUTPUT ACCEPT [0:0]
-A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
-A INPUT -p icmp -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp -d 192.168.120.0/24 --dport 3260 -j ACCEPT
-A INPUT -j REJECT --reject-with icmp-host-prohibited
-A FORWARD -j REJECT --reject-with icmp-host-prohibited
COMMIT

これによって、vSphere ESXi からは各ボリュームへのパスが一つになります。