Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

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)を割り当て、セッションごとに単一の接続を使用します。その結果、/sys/class_scsi_host および /proc/scsi は、ログインしている各接続/セッションの scsi_host を報告します。
iSCSI のオフロード
このスタックは、PCI デバイスごとに scsi_host を割り当てます。そのため、ホストバスアダプター上の各ポートは異なる PCI デバイスとして表示され、HBA ポートごとに異なる scsi_host が表示されます。
両方のタイプのイニシエーター実装を管理するために、iscsiadmiface 構造を使用します。この構造では、セッションのバインドに使用される各 HBA ポート、ソフトウェア iSCSI、またはネットワークデバイス(ethX)の /var/lib/iscsi/ iface s に iface 設定を入力する必要があります。
利用可能な 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 または alias バインディングに使用される名前。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_name は、transport_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 コンバージドネットワークアダプター( iscsiadm -m iface -I cxgb3i.00:07:43:05:97:07)の iface設定は以下のように表示されます。
# 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
警告
デフォルト または iseriface 名として使用しないでください。どちらの文字列も、後方互換性のために iscsiadm で使用される特別な値です。手動で作成された default または iser という名前の iface 設定は、後方互換性を無効にします。

25.14.3. iSCSI オフロード用の 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 アドレスの設定

たとえば、iface 名が cxgb3i .00:07:43:05:97:07 のカードを使用する場合は、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 を使用して相互接続をスキャンするたびに、最初に /var/lib/iscsi/ifaces の各 iface 設定の iface.transport 設定を確認します。その後、iscsiadm ユーティリティーは、検出されたポータルを、 iface.transporttcp である任意の 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 にバインドされないようにすることもできます。これを行うには、以下のように defaultiface_name として使用します。
# 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
特定のポータル (Equalogic ターゲットなど) のバインディングを削除するには、以下のコマンドを実行します。
# iscsiadm -m node -p IP:port -I iface_name --op=delete
注記
/var/lib/iscsi/ iface に iface 設定が定義されておらず、-I オプションが使用されていない場合、iscsiadm はネットワークサブシステムが特定のポータルが使用するデバイスを決定できるようにします。


[6] Refer to 「iSCSI 相互接続のスキャン」 for information on proper_target_name.