User Guide

User Guide
Linux ドライバ ソフトウェア: Broadcom NetXtreme II ネットワーク アダプタ ユーザーガイド

目次のページに戻る

Linux ドライバ ソフトウェア: Broadcom NetXtreme II ネットワーク アダプタ ユーザーガイド

はじめに

各種制限

パッケージング

Linux ドライバ ソフトウェアをインストールする

Linux ドライバをアンロード・削除する

PCI ファイルをパッチする (オプション)

ネットワーク インストール

オプション プロパティの値を設定する

ドライバのデフォルト

ドライバ メッセージ

チャネル結合によるチーム化

Remote PHY (リモート PHY) サポート

通信情報

Linux iSCSI オフロード

はじめに

このセクションでは、Broadcom NetXtreme II ネットワーク アダプタ用 Linux ドライバについて説明します。

表 1:Broadcom NetXtreme II Linux ドライバ
Linux ドライバ
詳細
bnx2
cnic
BCM5708/BCM5709 10/100/1000/2500 Mbps ネットワーク アダプタ用 Linux ドライバ。bnx2 ドライバはネットワーク ドライバで、cnic ドライバは bnx2i iSCSI オフロード ドライバに必要な追加機能をサポートします。bnx2i iSCSI ドライバは別のパッケージに含まれています。
bnx2x
BCM57710 10 Gbps ネットワーク アダプタ用 Linux ドライバ
bnx2i
BCM5708/BCM5709 10/100/1000/2500 Mbps ネットワーク アダプタの iSCSI オフロードをイネーブルする Linux ドライバ

各種制限

bnx2 ドライバ

ドライバの現行バージョンは、すべての 2.6.x カーネルでテストを実施しました。テストは、i386 と x86_64 アーキテクチャで集中的に実施しました。その他のアーキテクチャでは、限定的なテストのみを実施しました。カーネルによっては、一部のソース ファイルや Makefile を多少変更する必要があります。また、Makefile は、2.6.16 よりも前のカーネルでは cnic ドライバをコンパイルしません。iSCSI オフロードは、2.6.16 以降のカーネルでのみサポートされています。

メモ: シリコン バージョンが B2 より前の Broadcom NetXtreme II BCM5708 デバイスの場合、オープン ソースの bnx2 ドライバでは、ethtool を使用しての NetXtreme II WOL のレポートと設定はサポートしていません。シリコン バージョンが B2 以降である場合、bnx2 ドライバは ethtool を使用して Magic Packet WOL のサポートをレポートします。システムを正常に起動させるには、ethtool を使用してサポートをイネーブルする必要があります。Broadcom NetXtreme II デバイスのシリコン バージョンを確認するには、lspci コマンドを使用します。この場合、「10」はバージョン B0、「11」はバージョン B1、「12」はバージョン B2 を表します。

bnx2x ドライバ

ドライバの現行バージョンは、2.6.9 以降の 2.6.x カーネルでテストを実施しました。ドライバは、2.6.9 よりも前のカーネルではコンパイルできません。テストは、i386 と x86_64 アーキテクチャで集中的に実施しました。その他一部のアーキテクチャでは、限定的なテストのみを実施しました。カーネルによっては、一部のソース ファイルや Makefile を多少変更する必要があります。

bnx2i ドライバ

ドライバの現行バージョンは、2.6.18 カーネル以降の 2.6.x カーネルでテストを実施しました。ドライバは、これよりも前のカーネルではコンパイルできませんが、2.6.16.46 カーネルを実行する SLES 10 SP1 は例外です。SUSE は、SLES 10 SP1 で iscsi_transport カーネル モジュールをアップグレードしており、Broadcom iSCSI オフロード イニシエータが SLES 10 SP1 でサポートされています。テストは、i386 と x86_64 アーキテクチャ、Red Hat EL5、および SUSE 10 SP1 ディストリビューションで集中的に実施しました。

パッケージング

Linux ドライバは、表 2 に示されているパッケージで配布されています。

表 2:Linux ドライバ形式
形式
bnx2 ドライバ
bnx2i ドライバ
bnx2x ドライバ
ソース DKMS RPM
bnx2-version.3dkms.src.rpm
bnx2i-version.3dkms.src.rpm
bnx2x-version.3dkms.src.rpm
バイナリ DKMS RPM
bnx2-version.3dkms.noarch.rpm
bnx2i-version.3dkms.noarch.rpm
bnx2x-version.3dkms.noarch.rpm
ソース RPM
bnx2-version.src.rpm
bnx2i-version.src.rpm
bnx2x-version.src.rpm
圧縮 tar
bnx2-version.tar.gz
bnx2i-version.tar.gz
bnx2x-version.tar.gz
補足的な tar
bnx2_sup-version.tar.gz
bnx2i_sup-version.tar.gz
bnx2x_sup-version.tar.gz

ドライバを構築するための同一ソース ファイルもこの RPM と TAR ソース パッケージに含まれています。補足的な tar ファイルには、ネットワーク インストール用のパッチ、ドライバ ディスケット画像といった付加的なユーティリティが含まれています。

更新された open-iSCSI コンポーネントは、ソース RPM 形式で配布されています。

  • iscsi-initiator-utils-6.2.0.868-0.7c.src.rpm:Red Hat EL 5.0 および 5.1 ディストリビューション用の更新された open-iscsi
  • open-iscsi-2.0.707-0.25b.src.rpm:SLES 10 SP1 ディストリビューション用の更新された open-iscsi コンポーネント
  • open-iscsi-2.0.707-0.44b.src.rpm:SLES 10 SP2 ディストリビューション用の更新された open-iscsi コンポーネント

Linux ドライバ ソフトウェアをインストールする

ソース RPM パッケージをインストールする

ソース TAR ファイルからドライバを構築する

バイナリ DKMS RPM ドライバ パッケージをインストールする

メモ: bnx2/bnx2x/bnx2i ドライバがロードされ、Linux カーネルが更新された場合、ソース RPM または TAR パッケージを使用してインストールしたドライバ モジュールをリコンパイルする必要があります。これは、ソース DKMS RPM には適用されません。

ソース RPM パッケージをインストールする

メモ: この手順の例は bnx2 ドライバを扱っていますが、bnx2x および bnx2i ドライバにも適用されます。

  1. ソース RPM パッケージをインストールするには、以下を実行します。
  2. rpm -ivh bnx2-version.src.rpm
    
  3. ディレクトリを RPM のパスに変更し、カーネル のバイナリ ドライバを作成します (RPM のパスは Linux のディストリビューション版とは異なります)。
  4. cd /usr/src/redhat,OpenLinux,turbo,packages,rpm ...
    

    または

    rpmbuild -bb SPECS/bnx2.spec (RPM バージョン 4.x.x の場合)
    

    メモ: ソース RPM パッケージのインストールを試行すると、次のようなメッセージが表示されることがあります。

    error:cannot create %sourcedir /usr/src/redhat/SOURCES

    エラーの原因としては、rpm-build パッケージがインストールされていないことが考えられます。Linux インストール メディア上の rpm-build パッケージの保存場所を確認し、次のコマンドを使用してインストールします。

    rpm -ivh rpm-build-version.arch.rpm

    ソース RPM のインストールを完了します。

  5. 新しいビルトのパッケージをインストールします (ドライバおよび man ページ)。
  6. rpm -ivh RPMS/i386/bnx2-version.arch.rpm
    

    すでに旧バージョンのドライバが含まれている既存のディストリビューション版にインストールする場合は、--force オプションが必要になります。

    ドライバは次のパスにインストールされます。

    2.6.x カーネル

    /lib/modules/kernel_version/kernel/drivers/net/bnx2.ko
    

    bnx2i ドライバ用:

    2.6.16 以降のカーネル (bnx2 ドライバ)

    /lib/modules/kernel_version/kernel/drivers/net/bnx2.ko
    
    /lib/modules/kernel_version/kernel/drivers/net/cnic.ko
    

    2.6.16 以降のカーネル (bnx2i ドライバ)

    /lib/modules/kernel_version/kernel/drivers/iscsi/bnx2i.ko
    
  7. ドライバをロードします。
  8. insmod bnx2.ko (2.6.x カーネル)
    

    または

    modprobe bnx2 
    
  9. cnic ドライバをロードします (該当する場合)。
  10. insmod cnic.ko
    

    または

    modprobe cnic
    

ネットワーク プロトコルとアドレスを設定するときは、オペレーション システムの付属文書類を参照してください。

ソース TAR ファイルからドライバを構築する

bnx2 および bnx2x ドライバ

メモ: この手順で使用される例は bnx2 ドライバを扱っていますが、bnx2x ドライバにも適用されます。

  1. ディレクトリを作成し、そのディレクトリに TAR ファイルを抽出します。
  2. tar xvzf bnx2-version.tar.gz
    
  3. カーネル実行用に、ロード可能なモジュールとして bnx2.ko ドライバを作成します。
  4. cd bnx2-version/src
    
    make
    
  5. ドライバをロードしてテストします (必要に応じて、最初に既存のドライバをアンロードします)。
  6. rmmod bnx2
    
    insmod bnx2.ko
    

    このコマンドが正しく実行された場合には、メッセージは返されません

  7. cnic ドライバをロードします (該当する場合)。
  8. insmod cnic.ko
    
  9. ドライバおよび man ページをインストールします。
  10. make install
    

    メモ: インストールされているドライバの保存場所は、上の RPM の説明を参照してください。

ドライバを構築した後に、ネットワーク プロトコルとアドレスを設定するときは、オペレーティング システムに付属されているマニュアルを参照してください。

bnx2i ドライバ
  1. ディレクトリを作成し、そのディレクトリに TAR ファイルを抽出します。
  2. tar xvzf bnx2-version.tar.gz
    
  3. カーネル実行用に、ロード可能なモジュールとして bnx2.ko ドライバを作成します。
  4. cd bnx2i-version/driver
    
    make
    
  5. ドライバをロードしてテストします (必要に応じて、最初に既存のドライバをアンロードします)。
  6. rmmod bnx2i
    
    insmod bnx2i.ko
    
  7. ドライバおよび man ページをインストールします。
  8. make install
    

    メモ: インストールされているドライバの保存場所は、上の RPM の説明を参照してください。

  9. ユーザー デーモンをインストールします (bnx2id)
  10. cd ${DRV_BASE}/driver
    
    make install_usr
    

    このコマンドで、/sbin の下に bnx2id バイナリがインストールされます。

  11. Broadcom iSCSI を使用するには、必要な iSCSI ソフトウェア コンポーネントをロードして実行する を参照して、必要なソフトウェア コンポーネントをロードします。

バイナリ DKMS RPM ドライバ パッケージをインストールする

メモ: この手順で使用される例は bnx2 ドライバを扱っていますが、bnx2x ドライバにも適用されます。

DKMS (Dynamic Kernel Module Support) は、カーネルのアップグレード時にモジュールを簡単に再構築するために設計されています。そのために、カーネルに依存するモジュール ソースが常駐できるフレームワークを作成します。

バイナリ DKMS RPM ドライバ パッケージをインストールするには:

  1. バイナリ DKMS RPM (dkms-version.noarch.rpm) を http://linux.dell.com/dkms/ からダウンロードします。
  2. バイナリ DKMS RPM パッケージをインストールするには、以下を実行します。
  3. rpm -ivh dkms-version.noarch.rpm
    
  4. DKMS RPM ドライバ パッケージをインストールします。
  5. rpm -ivh bnx2-version dkms.noarch.rpm
    
  6. デーモンをロードします (bnx2id)
  7. Broadcom iSCSI を使用するには、必要な iSCSI ソフトウェア コンポーネントをロードして実行する を参照して、必要なソフトウェア コンポーネントをロードします。

詳しくは、http://linux.dell.com/projects.shtml をご覧ください。

必要な iSCSI ソフトウェア コンポーネントをロードして実行する

Broadcom iSCSI オフロード ソフトウェア スイートは、3 つのカーネル モジュールと 1 つのユーザー デーモンで構成されています。必要なソフトウェア コンポーネントは、手動またはシステムによりロードできます。

  1. 必要に応じて、既存のドライバをアンロードし、ユーザー デーモンを停止します。
  2. 手動:

    rmmod bnx2i
    
    pkill -9 bnx2id
    

    サービスを使用する:

    service bnx2id stop
    
  3. iSCSI ドライバとユーザー デーモンをロードします。
  4. 手動:

    bnx2id
    
    insmod bnx2i.ko
    

    または

    modprobe bnx2i
    

    サービスを使用する:

    service bnx2id start
    

Linux ドライバをアンロード・削除する

RPM インスタレーションからドライバをアンロード・削除する

TAR インスタレーションからドライバを削除する

RPM インスタレーションからドライバをアンロード・削除する

メモ:

    • この手順で使用される例は bnx2 ドライバを扱っていますが、bnx2x および bnx2i ドライバにも適用されます。
    • 2.6 カーネルでは、ドライバ モジュールをアンロードする前に eth# インターフェイスを閉じる必要はありません。
    • cnic ドライバがロードされている場合は、cnic ドライバをアンロードしてから bnx2 ドライバをアンロードします。
    • bnx2i ドライバをアンロードする前に、ターゲットに接続しているすべてのアクティブな iSCSI セッションを停止します。

ドライバをアンロードするときは、ifconfig を使って、ドライバが開いたすべての eth# インターフェイスを閉じてから以下のように入力します。

rmmod bnx2

rpm を使用してドライバをインストールした場合は、以下のコマンドを実行して削除します。

rpm -e bnx2

TAR インスタレーションからドライバを削除する

メモ: この手順で使用される例は bnx2 ドライバを扱っていますが、bnx2x および bnx2i ドライバにも適用されます。

TAR ファイルから make install を使ってドライバをインストールした場合、bnx2.ko ドライバ ファイルは手動でオペレーティング システムから削除してください。インストールされているドライバの保存場所は、ソース RPM パッケージをインストールするを参照してください。

PCI ファイルをパッチする (オプション)

メモ: この手順で使用される例は bnx2 ドライバを扱っていますが、bnx2x および bnx2i ドライバにも適用されます。

Red Hat kudzu などのハードウェア検出ユーティリティを使用して、bnx2 のサポート デバイスを適切に識別するには、PCI ベンダーとデバイス情報が含まれている多数のファイルを更新する必要があります。

補足的な tar ファイルで提供されたスクリプトを実行して、更新を適用します。たとえば、Red Hat Enterprise Linux の場合は、以下を実行して更新を適用します。

./patch_pcitbl.sh /usr/share/hwdata/pcitable pci.updates
/usr/share/hwdata/pcitable.new bnx2
./patch_pciids.sh /usr/share/hwdata/pci.ids pci.updates
/usr/share/hwdata/pci.ids.new

次に、古いファイルをバックアップして、新しいファイルの名前を変更して、これらを使用することができます。

cp /usr/share/hwdata/pci.ids /usr/share/hwdata/old.pci.ids
cp /usr/share/hwdata/pci.ids.new /usr/share/hwdata/pci.ids
cp /usr/share/hwdata/pcitable /usr/share/hwdata/old.pcitable
cp /usr/share/hwdata/pcitable.new /usr/share/hwdata/pcitable

ネットワーク インストール

NFS、FTP、HTTP による (ネットワーク ブート ディスクまたは PXE を使用する) ネットワークのインストールでは、bnx2/bnx2x ドライバが保存されているドライバ ディスクが必要になることがあります。最新の Red Hat および SuSE バージョン用のドライバ ディスク イメージがこれに保存されます。その他の Linux バージョン用のブート ドライバは、Makefile とメイク環境を修正してコンパイルすることが可能です。詳しくは Red Hat のウェブサイト (http://www.redhat.com) をご覧ください。

オプション プロパティの値を設定する

さまざまなドライバに対応するオプションのプロパティがあります。

bnx2 ドライバ

disable_msi

disable_msi オプション プロパティは、insmod または modprobe コマンドのコマンド ライン引数として指定できます。またプロパティは、modprobe.conf で設定できます。詳細は、man ページを参照してください。ethtool ユーティリティでは、その他のすべてのドライバ設定を確認したり、変更したりできます。詳細は、ethtool man ページを参照してください。ethtool 設定は、再起動やモジュールのリロードで失われます。再起動の後でも設定を維持できるように、ethtool コマンドは、/etc/rc.local などのスタートアップ スクリプトに指定できます。

メモ: プロパティ値の組み合わせによってはコンフリクトを起こすものもあり、不具合の原因ともなりかねませんが、 このような競合をすべてドライバで検知することは不可能です。

このプロパティは、MSI (Message Signal Interrupt、メッセージ信号割り込み) をディスエーブルするために使用します。このプロパティが有効なのは、MSI をサポートする 2.6 カーネルの場合だけです。カーネルでサポートされている場合、MSI はドライバによってデフォルトでイネーブルされます。MSI の動作状況を確認するため、初期化中に割り込みテストが実行されます。テストで合格すると、ドライバによって MSI がイネーブルされます。それ以外の場合は、従来の INTx モードが使用されます。

insmod bnx2.ko disable_msi=1

または

modprobe bnx2 disable_msi=1

bnx2x ドライバ

use_inta

use_inta パラメタは、insmod または modprobe コマンドのコマンド ライン引数として指定できます。このパラメタは、MSI-X が正常に動作しないシステムでの使用に適しています (通常、ドライバが検出して自動的にフォールバックします)。カーネルでサポートされている場合、MSI-X はドライバによってデフォルトでイネーブルされます。MSI-X の動作状況を確認するため、初期化中に割り込みテストが実行されます。テストで合格すると、ドライバによって MSI-X がイネーブルされます。それ以外の場合は、従来の INTx モードが使用されます。

以下に示すように、use_inta パラメタを 1 に設定して、システムにあるすべての NetXtreme II ネットワーク アダプタで、常に MSI-X をディスエーブルします。

insmod bnx2x.ko use_inta = 1

または

modprobe bnx2x use_inta = 1
disable_tpa

disable_tpa パラメタは、TPA (Transparent Packet Aggregation、透明なパケット集約) 機能をディスエーブルするコマンド ライン引数として指定できます。TCP パケットはドライバによってデフォルトで集約されます。高度な TPA 機能をディスエーブルするには、disable_tpa を使用します。

以下に示すように、disable_tpa パラメタを 1 に設定して、システムにあるすべての NetXtreme II ネットワーク アダプタで、TPA 機能をディスエーブルします。またこのパラメタは、modprobe.conf で設定できます。詳細は、man ページを参照してください。

insmod bnx2x.ko disable_tpa=1

または

modprobe bnx2x disable_tpa=1

bnx2i ドライバ

オプション パラメタ en_tcp_dackerror_mask1、および error_mask2 は、bnx2i の insmod または modprobe コマンドのコマンド ライン引数として指定できます。

error_mask1 および error_mask2

「Config FW iSCSI Error Mask #」は、警告または致命的エラーとして処理される iSCSI プロトコル違反を設定するのに使用されます。すべての致命的な iSCSI プロトコル違反は、セッション リカバリ (ERL 0) の原因になります。これらはビット マスクです。

デフォルト: すべての違反はエラーとして処理されます。

注意事項: 結果について不明な場合は、error_mask を使用しないでください。これらの値は、Broadcom 開発チームとケースバイケースで検討されます。これは、ターゲット側で iSCSI の実装の問題を回避するためのメカニズムであり、iSCSI プロトコルの詳細に関する正しい知識がない場合、これらのパラメタを試さないことをお勧めします。

en_tcp_dack

「Enable TCP Delayed ACK」は、オフロード iSCSI 接続で TCP 遅延 ACK 機能をイネーブル/ディスエーブルします。

デフォルト: TCP 遅延 ACK がイネーブルされます。例:

insmod bnx2i.ko en_tcp_dack=0

または

modprobe bnx2i en_tcp_dack=0

sq_size

「Configure SQ size」は、オフロード接続の送信キュー サイズの選択に使用され、SQ サイズはキューが可能な最大の SCSI コマンドを決定します。SQ サイズは、オフロードできる接続数にも関係しています。QP サイズが増加すると、サポートされる接続数は減少します。デフォルト値では、BCM5708 アダプタは 28 の接続をオフロードできます。

デフォルト: 128

範囲: 32 ~ 128

Broadcom の検証は、32、64、128 など、2 の累乗に限定されます。

rq_size

「Configure RQ size」は、オフロードされた接続ごとの非同期バッファ キューのサイズの選択に使用されます。RQ サイズは、iSCSI ASYNC/NOP/REJECT メッセージおよび SCSI センス データの配置に使用されるため、16 より大きくする必要はありません。

デフォルト: 16

範囲: 16 ~ 32

Broadcom の検証は、16、32 など、2 の累乗に限定されます。

event_coal_div

「Event Coalescing Divide Factor」は、iscsi ファームウェアにより発生する割り込み率の管理に使用されるパフォーマンス調整パラメタです。

デフォルト: 1

有効値: 1、2、4、8

bnx2i_nopout_when_commands_active

「iSCSI NOOP even when connection is not idle」というパラメタは、オフロード イニシエータをイネーブルして、リンクが完全にアイドルでない場合でもワイヤ上で iSCSI NOP-OUT を送信します。このパラメタは、iSCSI NOP-OUT と iSCSI CMD pdus が混用されたときに一部の古いターゲットにより不要なセッション リカバリが誘発されるのを回避するために導入されました。新しい iSCSI ターゲット システムは、この状態の影響を受けず、このパラメタがオンにされてかなり長期間が経過しています。

デフォルト: 1

値: バイナリ パラメタ、0/1

これらのパラメタは、modprobe.conf でも設定できます。詳細は、man ページを参照してください。

ドライバのデフォルト

bnx2 ドライバ

速度: 通知されているすべての速度で自動ネゴシエーション

Flow Control (フロー コントロール): 通知されている RX と TX で自動ネゴシエーション

MTU: 1500 (範囲 46-9000)

RX Ring Size (RX リング サイズ): 255 (範囲 0-4080)

RX Jumbo Ring Size (RX ジャンボ リング サイズ): 0 (範囲 0-16320) MTU および RX Ring Size (RX リング サイズ) に基づいてドライバが調整

TX Ring Size (TX リング サイズ): 255 (範囲 (MAX_SKB_FRAGS+1)-255)。MAX_SKB_FRAGS は、カーネルやアーキテクチャによって異なります。x86 の 2.6 カーネルでは、MAX_SKB_FRAGS は 18 です。

Coalesce RX Microseconds (連結 RX マイクロ秒): 18 (範囲 0-1023)

Coalesce RX Microseconds IRQ (連結 RX マイクロ秒 IRQ): 18 (範囲 0-1023)

Coalesce RX Frames (連結 RX フレーム): 6 (範囲 0-255)

Coalesce RX Frames IRQ (連結 RX フレーム IRQ): 6 (範囲 0-255)

Coalesce TX Microseconds (連結 TX マイクロ秒): 80 (範囲 0-1023)

Coalesce TX Microseconds IRQ (連結 TX マイクロ秒 IRQ): 80 (範囲 0-1023)

Coalesce TX Frames (連結 TX フレーム): 20 (範囲 0-255)

Coalesce TX Frames IRQ (連結 TX フレーム IRQ): 20 (範囲 0-255)

Coalesce Statistics Microseconds (連結統計マイクロ秒): 999936 (約 1 秒) (範囲 0-16776960、増加単位 256)

MSI: イネーブル (2.6 カーネルでサポートされており、割り込みテストに合格した場合)

TSO: イネーブル (2.6 カーネル)

WoL: NVRAM の設定に基づく初期設定

bnx2x ドライバ

速度: 通知されているすべての速度で自動ネゴシエーション

Flow Control (フロー コントロール): 通知されている RX と TX で自動ネゴシエーション

MTU: 1500 (範囲 46-9000)

RX Ring Size (RX リング サイズ): 4078 (範囲 0-4078)

TX Ring Size (TX リング サイズ): 4078 (範囲 (MAX_SKB_FRAGS+4)-4078)。MAX_SKB_FRAGS は、カーネルやアーキテクチャによって異なります。x86 の 2.6 カーネルでは、MAX_SKB_FRAGS は 18 です。

Coalesce RX Microseconds (連結 RX マイクロ秒): 25 (範囲 0-3000)

Coalesce TX Microseconds (連結 TX マイクロ秒): 50 (範囲 0-12288)

Coalesce Statistics Microseconds (連結統計マイクロ秒): 999936 (約 1 秒) (範囲 0-16776960、増加単位 256)

MSI-X: イネーブル (2.6 カーネルでサポートされており、割り込みテストに合格した場合)

TSO: Enabled

WoL: Disabled

ドライバ メッセージ

/var/log/messages ファイルにログされるメッセージのうち、一般的なものを以下に示します。dmesg -n <level> を使用すると、コンソールに表示されるメッセージのレベルを指定できます。ほとんどの場合、レベル 6 がデフォルトとされています。すべてのメッセージを表示するには、レベルを上げます。

bnx2 および bnx2x ドライバ

メモ: この手順で使用される例は bnx2 ドライバを扱っていますが、bnx2x ドライバにも適用されます。

ドライバのサインオン

Broadcom NetXtreme II Gigabit Ethernet Driver
bnx2 v1.6.3c (July 23, 2007) 

CNIC ドライバのサインオン (bnx2 のみ)

Broadcom NetXtreme II cnic v1.1.19 (Sep 25, 2007)

NIC の検出

eth#:Broadcom NetXtreme II BCM5708 1000Base-T (B0)
PCI-X 64-bit 133MHz found at mem f6000000, IRQ 16, node addr 0010180476ae
cnic: 追加 CNIC デバイス: eth0

リンクアップと速度の指定

bnx2:eth# NIC Link is Up, 1000 Mbps full duplex

リンクダウンの指定

bnx2:eth# NIC Link is Down

MSI が正常にイネーブルされました (bnx2 のみ)

bnx2:eth0: MSI を使用する

MSI-X が正常にイネーブルされました (bnx2x のみ)

bnx2x: eth0: MSI-X を使用する

bnx2i ドライバ

BNX2I ドライバのサインオン

Broadcom NetXtreme II iSCSI Driver bnx2i v1.0.30 (Sep 29, 2007)

iSCSI トランスポート名前結合へのネットワーク ポート

bnx2i: netif=eth2, iscsi=bcm570x-050000
bnx2i: netif=eth1, iscsi=bcm570x-030c00

ドライバは、iSCSI オフロードをイネーブルした CNIC デバイスとのハンドシェイクを完了します

bnx2i [05:00.00]: ISCSI_INIT passed

メモ: このメッセージは、ユーザーが iSCSI 接続の確立を試行するときのみ表示されます。

ドライバは、iSCSI オフロードが CNIC デバイスでイネーブルされていないことを検出します

bnx2i: iSCSI はサポートされていません。dev=eth3
bnx2i: bnx2i: LOM は iSCSI 接続をオフロードするためにイネーブルされていません。dev=eth0

ドライバは、TCP ポートを iSCSI 接続に割り当てられません

bnx2i: 「bnx2id」デーモンを実行して TCP ポートを割り当てます

許可されている最大 iSCSI 接続オフロード制限を超えています

bnx2i: iSCSI コンテキスト リソースを割り当てられません

ターゲット ノードとトランスポート名前結合へのネットワーク ルートは、2 つの異なるデバイスです

bnx2i: conn bind, ep=0x...($ROUTE_HBA) は hba $USER_CHOSEN_HBA に属していません

ここで、ROUTE_HBA は、ルート情報に基づいて接続がオフロードされたネット デバイスであり、USER_CHOSEN_HBA は、ターゲット ノードがバインドされた (iscsi トランスポート名を使用) HBA です

どの CNIC デバイスでもターゲットに到達できません

bnx2i: ルートを確認してください。cnic を使用して接続できません

ネットワーク ルートはダウンしているネットワーク インターフェイスに割り当てられています

bnx2i: ルートを確認してください。hba が見つかりません

iSCSI 接続をジャンボ フレームがイネーブルされたデバイスにオフロードしようとしています

bnx2i: eth# network i/f mtu は #mtu に設定されています
bnx2i: iSCSI HBA は、1500 mtu をサポートできます

メモ: ifconfig を使用して、mtu1500 に変更し、インターフェイスを再起動して、iSCSI 接続をオフロードします。

SCSI-ML が開始したホストのリセット (セッション リカバリ)

bnx2i: ホスト #3 のリセットを試行中です

CNIC が iSCSI プロトコル違反を検出しました - 致命的エラー

bnx2i: iscsi_error - wrong StatSN rcvd
bnx2i: iscsi_error - hdr digest err
bnx2i: iscsi_error - data digest err
bnx2i: iscsi_error - wrong opcode rcvd
bnx2i: iscsi_error - AHS len > 0 rcvd
bnx2i: iscsi_error - invalid ITT rcvd
bnx2i: iscsi_error - wrong StatSN rcvd
bnx2i: iscsi_error - wrong DataSN rcvd
bnx2i: iscsi_error - pend R2T violation
bnx2i: iscsi_error - ERL0, UO
bnx2i: iscsi_error - ERL0, U1
bnx2i: iscsi_error - ERL0, U2
bnx2i: iscsi_error - ERL0, U3
bnx2i: iscsi_error - ERL0, U4
bnx2i: iscsi_error - ERL0, U5
bnx2i: iscsi_error - ERL0, U
bnx2i: iscsi_error - invalid resi len
bnx2i: iscsi_error - MRDSL violation
bnx2i: iscsi_error - F-bit not set
bnx2i: iscsi_error - invalid TTT
bnx2i: iscsi_error - invalid DataSN
bnx2i: iscsi_error - burst len violation
bnx2i: iscsi_error - buf offset violation
bnx2i: iscsi_error - invalid LUN field
bnx2i: iscsi_error - invalid R2TSN field
bnx2i: iscsi_error - invalid cmd len1
bnx2i: iscsi_error - invalid cmd len2
bnx2i: iscsi_error - pend r2t exceeds MaxOutstandingR2T value
bnx2i: iscsi_error - TTT is rsvd
bnx2i: iscsi_error - MBL violation
bnx2i: iscsi_error - data seg len != 0
bnx2i: iscsi_error - reject pdu len error
bnx2i: iscsi_error - async pdu len error
bnx2i: iscsi_error - nopin pdu len error
bnx2i: iscsi_error - pend r2t in cleanup
bnx2i: iscsi_error - IP fragments rcvd
bnx2i: iscsi_error - IP options error
bnx2i: iscsi_error - urgent flag error

CNIC が iSCSI プロトコル違反を検出しました - 致命的ではなく、警告です

bnx2i: iscsi_warning - invalid TTT
bnx2i: iscsi_warning - invalid DataSN
bnx2i: iscsi_warning - invalid LUN field

メモ: ドライバは、特定の違反を重大なエラーではなく警告として処理するように設定する必要があります。

ドライバは、セッションをリカバリさせます

conn_err - hostno 3 conn 03fbcd00, iscsi_cid 2 cid a1800

ターゲットから受信した iSCSI PDU を拒否します

bnx2i - printing rejected PDU contents
[0]: 1 ffffffa1 0 0 0 0 20 0
[8]: 0 7 0 0 0 0 0 0
[10]: 0 0 40 24 0 0 ffffff80 0
[18]: 0 0 3 ffffff88 0 0 3 4b
[20]:2a 0 0 2 ffffffc8 14 0 0
[28]: 40 0 0 0 0 0 0 0

Open-iSCSI デーモンがドライバにセッションを渡します

bnx2i: conn update - MBL 0x800 FBL 0x800MRDSL_I 0x800 MRDSL_T 0x2000

チャネル結合によるチーム化

Linux ドライバでは、結合カーネル モジュールおよびチャネル結合インターフェイスを使用して、アダプタをチーム化できます。詳細は、オペレーティング システムの文書類のチャネル結合に関する情報を参照してください。

Remote PHY (リモート PHY) サポート

bnx2 ドライバは、NetXtreme II BCM5708S または BCM5709s デバイスを使用し、Remote PHY (リモート PHY) をサポートし、Remote PHY (リモート PHY) がイネーブルされているブレード サーバー上の Remote PHY (リモート PHY) をサポートします。

Remote PHY (リモート PHY) 対応システムでは、bnx2 ドライバによって NetXtreme II BCM5708S または BCM5709S デバイスがイネーブルされ、ブレード シャーシの銅のより線対 PHY で使用可能な機能を利用できるようになります。bnx2 ドライバは、ethtool 出力で Remote PHY (リモート PHY) より線対モードを使用していることを示します。

メモ: 1.63d よりも前の bnx2 ドライバ バージョンは、Remote PHY (リモート PHY) とこれらの古いドライバを使用しているオペレーティング システムをサポートせず、Remote PHY (リモート PHY) ドライバをサポートするオペレーティング システムとは異なる動作をする可能性があります。Remote PHY (リモート PHY) のサポート状況については、システムとオペレーティング システムの文書類を参照してください。

標準の ethtool コマンドでアダプタを設定してください。

通信情報

詳細な統計と設定情報は、ethtool ユーティリティで表示できます。詳細は、ethtool man ページを参照してください。

Linux iSCSI オフロード

ユーザー アプリケーション - bnx2id

bnx2i RPM パッケージがインストールされている場合、bnx2id アプリケーションは /sbin の下にインストールする必要があります。詳しくは、セクション ソース RPM パッケージをインストールする を参照してください。iSCSI 接続を試行する前に、bnx2id デーモンを実行します。デーモンの支援がなければ、ドライバは iSCSI ターゲットへの接続を確立できません。

bnx2id

bnx2id デーモンには、通常のサーバーで標準の mknod および sh シェルが必要です。NetXtreme II オフロード サポートを使用する iSCSI ブートでは、mknod および sh のバイナリは initrd イメージにバンドルする必要があります。

Open iSCSI ユーザー アプリケーション

open-iscsi プログラム、iscsid および iscsiadm は、Broadcom が配布する open-iscsi パッケージからインストールして実行します。詳しくは、パッケージング を参照してください。事前にインストールされたすべての open-iscsi パッケージを削除しておかなければ、Broadcom iSCSI がサポートするパッケージをインストールできません。

  1. 既存の open-iscsi パッケージをすべて削除します。
  2. RHEL5

    rpm -e iscsi-initiator-utils
    

    SLES10 SP1

    rpm -e open-iscsi
    
  3. ソース RPM パッケージをインストールします。
  4. rpm -ivh <open-iscsi-package-name>.src.rpm
    
  5. ディレクトリを RPM のパスに変更し、カーネルのバイナリ ドライバを作成します。
  6. cd /usr/src/{redhat,OpenLinux,turbo,packages,rpm ..}
    

    または

    rpmbuild -bb SPECS/<open-iscsi-package-name>.spec (RPM バージョン 4.x.x の場合)
    

    RPM パスは、Linux ディストリビューションにより異なります。

  7. 新しいビルトのパッケージをインストールします。
  8. rpm -ivh RPMS/<arch>/<open-iscsi-package-name>.<arch>.rpm
    

    ここで、<arch> は i386 などのマシン アーキテクチャです。

    rpm -ivh RPMS/i386/<open-iscsi-package-name>.i386.rpm
    
  9. デーモンを開始します。
  10. iscsid
    

iSCSI ターゲットを Broadcom NX2 iSCSI トランスポート名にバインドする

デフォルトでは、open-iscsi デーモンは、ソフトウェア イニシエータ (トランスポート名 =「tcp」) を使用して、検出されたターゲットに接続します。iSCSI 接続を CNIC デバイスにオフロードするには、iSCSI ノードのトランスポート結合を明示的に変更する必要があります。これは、次のように iscsiadm cli ユーティリティを使用して実行できます。

iscsiadm --mode node --targetname iqn.2004-06.com.broadcom:tg1 \
		--portal 192.168.1.100 --op=update			 \
		--name=node.transport_name --value=${XPORT_NAME}

ここで、XPORT_NAME=bcm570x-xxyyzz

xx - NX2 デバイスの pci バス番号
yy - NX2 デバイスの pci デバイス番号
zz - NX2 デバイスの pci 機能番号

iscsi トランスポート名前結合へのネットワーク インターフェイスは、次を実行することで取得できます。

dmesg | grep "bnx2i:netif"

NetXtreme II デバイスが 2 台あるシステムでの出力例:

bnx2i: netif=eth1, iscsi=bcm570x-050000
bnx2i: netif=eth0, iscsi=bcm570x-030000

ソフトウェア イニシエータに戻るには、次を使用します。

iscsiadm --mode node --targetname iqn.2004-06.com.broadcom:tg1 \
		--portal 192.168.1.100 --op=update			 \
		--name=node.transport_name --value=tcp

iSCSI ターゲットへの接続を作成する

iscsiadm コマンドの総合リストは、open-iscsi の文書類を参照してください。これは、ターゲットを検出して、ターゲットへの iscsi 接続を作成するサンプル リストです。

静的エントリを追加する

iscsiadm -m node -p <ipaddr[:port]> -T iqn.2007-05.com.broadcom:target1 -o new 

「SendTargets」を使用して、iSCSI ターゲットを検出する

iscsiadm -m discovery --type sendtargets -p <ipaddr[:port]> 

「iscsiadm」コマンドを使用して、ターゲットにログインする

iscsiadm --mode node --targetname <iqn.targetname> --portal <ipaddr[:port]> --login

システムでアクティブなすべてのドライバをリストする

「fdisk -l」

オフロード iSCSI 接続を最大化する

128 の未処理コマンドを含むデフォルトのドライバ パラメタを設定した状態で、bnx2i は最大 28 の iSCSI 接続をオフロードできます。これは絶対的な制限ではなく、チップ上でリソースの割り当てを計算したものです。bnx2i は、共有キュー サイズを減らすことで 28 を超える接続をオフロードできますが、これにより、1 接続あたりの最大未処理タスク数が制限されます。sq_size および rq_size については、オプション プロパティの値を設定する を参照してください。許可された最大の接続オフロード制限に達すると、ドライバは次のメッセージを syslog に記録します。「bnx2i: iSCSI コンテキスト リソースを割り当てられません」

Linux iSCSI オフロードの FAQ

  • すべての Broadcom NetXtreme II アダプタが iSCSI オフロードをサポートするわけではありません。
  • iSCSI セッションは、動的削除とホット プラグの後でリカバリしません。
  • iSCSI ドライバ/ファームウェアは、iSCSI 接続をジャンボ フレームがイネーブルされた CNIC デバイスにオフロードしません。
  • MPIO が正常に動作するには、iSCSI nopout を各 iSCSI セッションでイネーブルする必要があります。noop_out_interval および noop_out_timeout 値を設定する手順については、open-iscsi の文書類を参照してください。
  • システムに複数の CNIC デバイスがあり、システムが Broadcom の iSCSI ブート ソリューションによりブートされる場合、ブート ターゲットの /etc/iscsi/nodes の下にある iscsi ノードがブートに使用される NIC にバインドされていることを確認してください。


各種制限および免責条項の項目にはすべて目を通してください。


目次のページに戻る

© 2009 Dell | About Dell | Terms of Sale | Unresolved Issues | Privacy | Site Map | | Feedback

snWEB1