25.14. iSCSI オフロードとインターフェースバインディングの設定

本章では、ソフトウェア iSCSI を使用する際にセッションを NIC ポートに結合させるための iSCSI インターフェースを設定する方法について説明します。また、オフロード機能に対応するネットワークデバイスでインターフェースを使用できるよう設定を行う方法についても説明しています。
iSCSI が結合に使用するパスや NIC を指定できるようネットワークサブシステムを設定することができます。たとえば、ポータルと NIC が別々のサブネットにセットアップされている場合、結合用の iSCSI インターフェースを手作業で設定する必要はありません。
結合用の iSCSI インターフェースを設定する前に、まず次のコマンドを実行します。
$ ping -I ethX target_IP
ping が失敗する場合はセッションを NIC に結合することはできません。このような場合にはネットワーク設定をまず確認してください。

25.14.1. 利用可能な iface 設定の表示

iSCSI オフロードとインターフェースバインディングは、以下の iSCSI イニシエーター実装でサポートされます。
ソフトウェア iSCSI
このスタックはセッションごとに iSCSI ホストインスタンス (scsi_host) を割り当てます。接続は 1 セッションに 1 接続です。結果として /sys/class_scsi_host/proc/scsi は、ログインしている各接続/セッションに対して 1 つの scsi_host を報告します。
オフロード iSCSI
このスタックは各 PCI デバイスに対して scsi_host を割り当てます。このため、ホストのバスアダプター上の各ポートは、HBA ポートごとに別々の scsi_host を持つ異なった PCI デバイスとして表示されます。
いずれのタイプのイニシエーター実装を管理する場合も iscsiadmiface 構造を使用します。この構造では、複数のセッションの結合に使用する各 HBA ポート、ソフトウェア iSCSI、またはネットワークデバイス (ethX) などの /var/lib/iscsi/ifacesiface の設定を記載しておく必要があります。
利用可能な iface の設定を表示するには、iscsiadm -m iface を実行します。次のような形式で iface の情報が表示されます。
iface_name transport_name,hardware_address,ip_address,net_ifacename,initiator_name
それぞれの値または設定については次の表を参照してください。

表25.2 iface の設定

設定説明
iface_nameiface の設定名
transport_nameドライバー名
hardware_addressMAC アドレス
ip_addressこのポートに使用する IP アドレス
net_iface_nameソフトウェア iSCSI セッションの vlan またはエイリアス結合に使用する名前 (iSCSI オフロードの場合、再起動するとこの値は維持されないため net_iface_name<empty> になります)
initiator_name/etc/iscsi/initiatorname.iscsi で定義されているイニシエーターのデフォルト名を無効にする場合に使用

例25.6 iscsiadm -m iface コマンドの出力例

以下に iscsiadm -m iface コマンドの出力例を示します。
iface0 qla4xxx,00:c0:dd:08:63:e8,20.15.0.7,default,iqn.2005-06.com.redhat:madmax
iface1 qla4xxx,00:c0:dd:08:63:ea,20.15.0.9,default,iqn.2005-06.com.redhat:madmax
ソフトウェア iSCSI の場合、iface 設定には固有の名前を持たせなければなりません (65 文字未満)。オフロード機能に対応するネットワークデバイスの iface_nametransport_name.hardware_name の形式で表示されます。

例25.7 Chelsio ネットワークカードを使用する場合の iscsiadm -m iface の出力

たとえば、Chelsio ネットワークカードを使用しているシステムで iscsiadm -m iface コマンドを実行した場合の出力例は以下のようになります。
default tcp,<empty>,<empty>,<empty>,<empty>
iser iser,<empty>,<empty>,<empty>,<empty>
cxgb3i.00:07:43:05:97:07 cxgb3i,00:07:43:05:97:07,<empty>,<empty>,<empty>
特定の iface 設定をさらにわかりやすい方法で表示することもできます。これを実行するには、-I iface_name オプションを使用します。これにより、次のような形式で設定が表示されます。
iface.setting = value

例25.8 Chelsio 集中型ネットワークアダプターによる iface 設定を使用

前述の例と同じ Chelsio 統合型ネットワークアダプターによる iface 設定は次のように表示されます (iscsiadm -m iface -I cxgb3i.00:07:43:05:97:07) 。
# BEGIN RECORD 2.0-871
iface.iscsi_ifacename = cxgb3i.00:07:43:05:97:07
iface.net_ifacename = <empty>
iface.ipaddress = <empty>
iface.hwaddress = 00:07:43:05:97:07
iface.transport_name = cxgb3i
iface.initiatorname = <empty>
# END RECORD

25.14.2. ソフトウェア iSCSI 用 iface の設定

前述のように、セッションをバインドするために使用される各ネットワークオブジェクトにはiface の設定が必要になります。
その前に
ソフトウェア iSCSI 用の iface 設定を作成するには、以下のコマンドを実行します。
# iscsiadm -m iface -I iface_name --op=new
これは、指定された iface_name を使用して、新規の 空の iface 設定を作成します。既存の iface 設定が、すでに同じ iface_name を持っている場合は、それが新規の空の設定で上書きされます。
iface 構成の特定の設定を行うには、以下のコマンドを使用します。
# iscsiadm -m iface -I iface_name --op=update -n iface.setting -v hw_address

例25.9 iface0 の MAC アドレスの設定

たとえば、iface0 の MAC アドレス (hardware_address) を 00:0F:1F:92:6B:BF に設定するには、以下を実行します。
# iscsiadm -m iface -I iface0 --op=update -n iface.hwaddress -v 00:0F:1F:92:6B:BF

警告

default または iseriface の名前として使用しないでください。これらのストリングは後方互換性について iscsiadm で使用される特別な値です。default または iser という名前の手動で作成された iface 構成は、いずれも後方互換性を無効にします。

25.14.3. iSCSI Offload 用 iface の設定

デフォルトでは、iscsiadm は各ポートの iface 設定を作成します。利用可能な iface 設定を表示するには、ソフトウェア iSCSI で使用する同じコマンドを使用します (例: iscsiadm -m iface)。
iSCSI オフロードにネットワークカードの iface に使用する前に、オフロードインターフェイスの iface.ipaddress 値を、インターフェースが使用するイニシエーター IP アドレスに設定します。
  • be2iscsi ドライバーを使用するデバイスについては、この IP アドレスは BIOS のセットアップ画面で設定します。
  • その他すべてのデバイスの iface の IP アドレスを設定するには、以下を使用します。
    # iscsiadm -m iface -I iface_name -o update -n iface.ipaddress -v initiator_ip_address

例25.10 Chelsio カードの iface IP アドレスの設定

たとえば、cxgb3i.00:07:43:05:97:07 という iface 名のカードを使用するときに iface IP アドレスを 20.15.0.66 に設定するには、以下を使用します。
# iscsiadm -m iface -I cxgb3i.00:07:43:05:97:07 -o update -n iface.ipaddress -v 20.15.0.66

25.14.4. iface のポータルに対する結合/結合解除

相互接続のスキャンに iscsiadm を使用すると、iscsiadm ユーティリティーは /var/lib/iscsi/ifaces 内の各 iface 構成の iface.transport 設定をまず最初にチェックします。次にこの iface.transport 設定が tcp になっている iface 構成に検出したポータルを結合します。
この動作は互換性を目的として実装されました。この動作を無効にする場合は、次のように -I iface_name を使って iface に結合させるポータルを指定します。
# iscsiadm -m discovery -t st -p target_IP:port -I iface_name -P 1
[5]
デフォルトでは、iscsiadm は、オフロード機能を使用する iface 構成にはポータルを自動結合しません。オフロード機能を使用する iface 構成の場合、iface.transporttcp が設定されることはないためです。このため、iface 構成には、検出されたポータルに手作業で結合する必要があります。
既存の iface にポータルを一切結合しないようにすることもできます。以下のように iface_namedefault を使用します。
# iscsiadm -m discovery -t st -p IP:port -I default -P 1
ターゲットと iface 間の結合を削除する場合は次を使用します。
# iscsiadm -m node -targetname proper_target_name -I iface0 --op=delete[6]
特定の iface の結合をすべて削除する場合は次を使用します。
# iscsiadm -m node -I iface_name --op=delete
特定のポータルに対する結合を削除する場合は次を使用します。
# iscsiadm -m node -p IP:port -I iface_name --op=delete

注記

/var/lib/iscsi/iface 内に iface 構成が定義されておらず、-I オプションが使用されていない場合は、iscsiadm により、ネットワークサブシステムが特定ポータルが使用するデバイスを決定できることになります。


[6] proper_target_name の詳細は、「iSCSI 相互接続のスキャン」を参照してください。