iSCSI パフォーマンスの分析とチューニング
この手順では、 システムに接続中の iSCSI (Internet Small Computer Systems Interface) ホストのパフォーマンス問題を解決し、ネットワーク・スイッチに接続できるようにします。
このタスクについて
- 伝送制御プロトコル (TCP) 遅延 ACK
- イーサネット・ジャンボ・フレーム
- ネットワークのボトルネックまたはオーバー・サブスクリプション
- iSCSI セッション・ログインのバランス
- ネットワーク上での iSCSI に対する優先順位フロー制御 (PFC) 設定および帯域幅割り振り
手順
- TCP 遅延確認応答フィーチャーを使用不可にします。 このフィーチャーを使用不可にするには、OS/プラットフォームの資料を参照してください。
この問題の主なこん跡は、読み取りパフォーマンスが書き込みパフォーマンスよりかなり低いことです。伝送制御プロトコル (TCP) 遅延確認応答は、ネットワークのパフォーマンスを向上させるために一部の TCP 実装環境で使用される技法です。 ただし、このシナリオでは未処理の入出力数が 1 であり、この技法は入出力のパフォーマンスを大幅に低減させる可能性があります。
実質的には、複数の ACK 応答を単一の応答に結合して、プロトコルのオーバーヘッドを減らすことができます。 RFC 1122 で記述されているとおり、ホストは、ACK 応答の送信を最大 500 ms まで遅延させることができます。さらに、フルサイズの着信セグメントのストリームでは、1 つおきのセグメントの ACK 応答が送信されなければなりません。
重要: これらの設定を有効にするには、ホストのリブートが必要です。 一部のプラットフォーム (例えば、標準 Linux ディストリビューション) では、このフィーチャーを使用不可にすることができません。しかし、この問題はバージョン 7.1 リリースで解決されたので、TcpDelayedAck の動作を管理するためにホスト構成を変更する必要はありません。 - iSCSI のジャンボ・フレームを使用可能にします。
ジャンボ・フレームは、サイズが 1500 バイトを超えるイーサネット・フレームです。最大伝送単位 (MTU) パラメーターは、ジャンボ・フレームのサイズの測定に使用されます。
システムは、9000 バイトの MTU をサポートします。ジャンボ・フレームを使用可能にするには、CLI コマンド cfgportip を参照してください。このコマンドは、リンクが反転してそのポートを介した入出力操作が休止するため、中断しています。
有効にするには、ネットワークがジャンボ・フレームをエンドツーエンドでサポートする必要があります。ネットワークがジャンボ・フレームをサポートしていることを確認するには、フラグメントなしに配信される ping パケットを送信します。 例えば、次のとおりです。- Windows:
ping -t <iscsi target ip> -S <iscsi initiator ip> -f -l <new mtu size - packet overhead (usually 36, might differ)>次のコマンドは、9000 バイトの MTU が Windows 7 システムで正しく設定されているかどうかを確認するために使用されるコマンドの例です。
次の出力は、成功したときの応答の例です。ping -t -S 192.168.1.117 192.168.1.217 -f -l 8964192.168.1.217: bytes=8964 time=1ms TTL=52 - Linux:
ping -l <source iscsi initatior ip> -s <new mtu size> -M do <iscsi target ip> - ESXi:
ping <iscsi target ip> -I <source iscsi initiator ip> -s <new mtu size - 28> -d
- Windows:
- イニシエーター/ターゲット・ポートが接続されているスイッチのポート統計を検査して、パケット・ドロップが多数でないことを確認します。
ネットワーク体系を検討して、ボトルネックとオーバー・サブスクリプションを回避してください。 パケット・ドロップを回避するには、ネットワークのバランスを取る必要があります。パケット・ドロップは、ストレージのパフォーマンスを大幅に低下させます。そのような問題を修正するには、ネットワーキング・サポートに依頼してください。
- すべての iSCSI ポートを最適化して使用します。 システムのリソース使用状況を最適化するには、すべての iSCSI ポートを使用する必要があります。
- 各ポートに 1 つの CPU が割り当てられます。ログインのバランスを取ることによって、CPU 使用率を最大化し、パフォーマンス改善を実現することができます。理想的には、システム・ノード上の iSCSI ポートの数と同じ数のサブネットを構成します。ノードの各ポートは、それぞれ異なるサブネット上の IP を使用して構成し、他のノードでも同じ構成を維持してください。次の例は、理想的な構成を示しています。
ノード 1
ポート 1: 192.168.1.11
ポート 2: 192.168.2.21
ポート 3: 192.168.3.31
ノード 2:
ポート 1: 192.168.1.12
ポート 2: 192.168.2.22
ポート 3: 192.168.3.33 - ポート 1 にログインしているのが 50 個のホストで、ポート 2 にログインしているのが 5 個のホストだけという状態は避けてください。
- 適切なサブネット化を使用して、セッション数と冗長度との間のバランスを取ります。
- 各ポートに 1 つの CPU が割り当てられます。ログインのバランスを取ることによって、CPU 使用率を最大化し、パフォーマンス改善を実現することができます。理想的には、システム・ノード上の iSCSI ポートの数と同じ数のサブネットを構成します。ノードの各ポートは、それぞれ異なるサブネット上の IP を使用して構成し、他のノードでも同じ構成を維持してください。次の例は、理想的な構成を示しています。
- PFC 設定の問題のトラブルシューティングを行います。
システムで PFC を有効にする必要はありません。 システムは、データ・センター・ブリッジング交換 (DCBx) パケットを読み取り、iSCSI に対して PFC を自動的に有効にします (スイッチ上で有効に設定されている場合)。lsportip コマンドの出力で、lossless_iscsi フィールドと lossless_iscsi6 フィールドは、システム上で iSCSI に対して PFC が有効であるかどうかに応じて [on/off] を示します。
lossless_iscsi フィールドと lossless_iscsi6 フィールドに off が表示されている場合、以下のいずれかの理由が原因である可能性があります。- その IP に対して VLAN が設定されていない。以下の検査を確認して
ください。
- IP アドレス・タイプ IPv4 の場合、lsportip 出力の vlan フィールドを調べます。これはブランクにすることはできません。
- IP アドレス・タイプ IPv6 の場合、lsportip 出力の vlan_6 フィールドを調べます。これはブランクにすることはできません。
- vlan フィールドおよび vlan_6 フィールドがブランクの場合は、iSCSI 用の VLAN の構成を使用して IP タイプに VLAN を設定します。
- その IP に対してホスト・フラグが設定されていない。以下の検査を確認して
ください。
- IP アドレス・タイプ IPv4 の場合、lsportip 出力の host フィールドを調べます。これは yes でなければなりません。
- IP アドレス・タイプ IPv6 の場合、lsportip 出力の host_6 フィールドを調べます。これは yes でなければなりません。
- host フィールドおよび host_6 フィールドが yes でない場合は、cfgportip CLI コマンドを使用して IP タイプのホスト・フラグを設定します。
- PFC がスイッチ上で正しく設定されていない。
VLAN が正しく設定され、ホスト・フラグも設定されているにもかかわらず、lossless_iscsi フィールドまたは lossless_iscsi6 フィールドにまだ off が表示されている場合、一部のスイッチ設定が欠落しているか、正しくない可能性があります。
スイッチで以下の設定を確認してください。
- iSCSI トラフィックに対して優先度タグが設定されている。
- iSCSI CoS に割り当てられている優先度タグに対して PFC が有効に設定されている。
- スイッチで DCBx が有効に設定されている。
以下の該当資料を確認してください。- 特定のスイッチで PFC を有効にするための資料を参照してください。
- ご使用の構成に固有の Red Hat Enterprise Linux (RHEL) および Windows ホストで PFC を有効にするための資料を参照してください。
- その IP に対して VLAN が設定されていない。以下の検査を確認して
ください。
- ネットワーク上で iSCSI に適切な帯域幅が提供されていることを確認します。
さまざまなタイプのトラフィック間で帯域幅を分割することができます。良好なパフォーマンスを実現するには、適切な帯域幅を割り当てることが重要です。iSCSI トラフィックに帯域幅を割り当てるには、最初に iSCSI に対して優先順位フロー制御を有効にする必要があります。