Cisco MDS 9000 シリーズ

Cisco MDS 9000 ファミリの Quality of Service(QoS)

ホワイト ペーパー





Cisco MDS 9000 ファミリの Quality of Service(QoS)


Quality of Service(QoS)によってトラフィックの差別化および優先順位付けが可能になり、Online Transaction Processing(OLTP; オンライン トランザクション処理)などの遅延が問題になるアプリケーションが、データ ウェアハウジングなどの高スループットが要求されるアプリケーションとストレージ リソースを共有することができます。

イントロダクション

この文書は、Cisco® MDS 9000 ファミリ スイッチの高度な QoS およびトラフィック エンジニアリング機能に関するガイドです。第 2 世代の Cisco ラインカードおよびスーパバイザにおける QoS 拡張機能について説明するほか、QoS を有効にすることで全体的なサービスが向上する Storage Area Network(SAN; ストレージ エリア ネットワーク)の設計例を紹介します。

QoS の必要性

QoS の主な目的は、特定のデバイスとの間を流れるトラフィック フローに優先順位を付けることです。ここで、優先順位が高いとは、ジッタが制御された低遅延かつ高帯域幅接続の提供を意味します。
ファイバ チャネル スイッチングの基礎原理は、フレームが廃棄されないことをネットワークが保証することです。この場合、なぜ QoS が必要なのでしょうか。現在のスイッチは、高性能、ノンブロッキング、ノンオーバーサブスクライブのクロスバー スイッチ ファブリックです。Cisco MDS 9513 Multilayer Director では 1 秒あたり 10 億個以上のフレームのスイッチングが可能です。スイッチ ファブリックが無数のフレームのスイッチング能力を備えているように見えるにもかかわらず、なお QoS が必要とされる理由は何でしょうか。

答は簡単です。それは輻輳のためです。

輻輳は以下の 2 つの基本的な原因から発生します。

  • 輻輳は、複数の送信元が少数の受信先を求めて競合している場合に発生します。送信元によって送信されるトラフィックの集約レートが受信先への接続のサイズを超えると、ブロッキングが発生します(図 1)。
  • 送信元と受信先の速度が一致しないと、バッファリングが行われます。バッファはスイッチ上の有限のリソースであり、一般的には 1 ポートあたり 16 バッファ(32 KB)から 255 バッファ(512 KB)が割り当てられています。これらのバッファがいっぱいになると、ブロッキングが発生します(図 2)。

図 1 送信元が受信先よりも多い場合に発生する輻輳

図 1 送信元が受信先よりも多い場合に発生する輻輳

図 2 送信元と受信先の速度の不一致により発生する輻輳

図 2 送信元と受信先の速度の不一致により発生する輻輳

多くの組織では、別々のストレージ リソースを 1 つの物理ストレージ ファブリックにプールすることにより、SAN インフラストラクチャを統合してコストの節約と管理効率の向上を図っています。ストレージの統合に伴うビジネス上のメリットを実現する上で、リソースに対する競合の管理は重要な側面です。クリティカルでないビジネス アプリケーションが原因でストレージ リソースに停滞が発生し、時間重視のミッションクリティカルなアプケーションの速度が低下すれば、SAN 統合に関するコスト上のメリットは一気に失われます。

輻輳とブロッキングを自動的に軽減する簡単な方法はありません。スイッチにバッファを追加することは可能ですが、バッファの追加によって輻輳を取り除くことはできません。輻輳がブロッキングに変化するまでの時間が長くなるだけです。Virtual Output Queuing(VOQ)を使用すると、ブロックされた受信先が他の混雑していない受信先へのトラフィックに影響を与えること(「Head-Of-Line ブロッキング」)を防止できますが、これも、混雑しているデバイスに送信されるトラフィックに対しては何の効果もありません。

SAN トラフィックは、少数のデバイス(ストレージ ポート)と通信する多数のデバイス(ホスト)として分類できます。言い換えれば、SAN の設計はほとんどいつも加入超過の状態であり、ストレージに接続されたポートよりもホストに接続されたポートの方が多くなっています。重要なのは、加入超過の状態が、ミッションクリティカルな時間重視のアプケーションの性能に影響を与えないようにすることです。

Cisco MDS 9000 ファミリにおける QoS

Cisco MDS 9000 ファミリ スイッチは、最初に QoS を提供した SAN スイッチの 1 つです。2003 年 11 月に発売された Cisco MDS 9000 SAN-OS ソフトウェア リリース 1.3 搭載の QoS 対応スイッチは、トラフィックの差別化および優先順位付け機能を備えており、OLTP などの遅延が問題になるアプリケーションで、データ ウェアハウジングなどの高スループットが要求されるアプリケーションと同じストレージ リソースを共有することができます。

QoS は Fiber Channel Congestion Control(FCC)や入力ポートレート制限などの他のトラフィック エンジニアリング機能と共に使用することができ、Cisco MDS 9000 SAN-OS ソフトウェアに組み込まれたコマンド スケジューラにより、1 日の中で時間によって異なるポリシーが適用されるように設定できます。

QoS 機能は、第 2 世代の Cisco MDS 9000 ファミリ ラインカード モジュールおよびスーパバイザの導入に伴って拡張されました。以下の段落では、実装の相違点と詳細について説明します。QoS 設定のセマンティクスは、世代に関係なく同じです。

第 1 世代のラインカードおよびスーパバイザでの QoS

第 1 世代の Cisco MDS スイッチ ハードウェアでの QoS は、1 つまたは複数のアプリケーション サーバがストレージ リソースにアクセスするために競合している場合に、ストレージ アレイに接続されたポートでトラフィック競合の悪影響を緩和する際に有効です。QoS が効果的に機能するには、ホストとストレージ アレイが異なるスイッチに接続されている必要があります。QoS ポリシーは、エンドポート デバイスに輻輳がある場合にのみ適用されます。SAN のコアにおける Inter-Switch Link(ISL; スイッチ間リンク)の輻輳に対しては、何の軽減策も実行しません。

図 3 は、第 1 世代のスイッチ、ラインカード、およびスーパバイザ上で QoS を展開する方法を示しています。図の 2 つのスイッチは 1 つまたは複数の ISL で接続されます。

図 3 第 1 世代のスイッチ、ラインカード、およびスーパバイザでの QoS の展開

図 3 第 1 世代のスイッチ、ラインカード、およびスーパバイザでの QoS の展開

この図で、スイッチ 1 に着信する OLTP トラフィックには、分類(クラス マップ)とマーキング(ポリシー マップ)によって高いプライオリティ レベルがマークされます。同様に、バックアップ トラフィックには低いプライオリティ レベルがマークされます。トラフィックは、フレームの優先順位に対応した仮想出力キューに入れられます。それぞれの仮想出力キューから送出されるフレームは、スイッチ 2 に送信されます。

フレームがスイッチ 2 に着信すると、OLTP 要求は高優先度の仮想出力キューに入れられます。出力ストレージ ポートが混雑している場合、OLTP サーバの要求はバックアップ サーバの要求よりも優先して処理されます。これは、スケジューラが(高優先度キュー内の)OLTP トラフィックを低優先度キュー内のバックアップ トラフィックよりも頻繁に処理するためです。OLTP サーバで発生する遅延は、低優先順位トラフィックのボリュームおよび出力インターフェイスの輻輳には依存しません。

Deficit Weighted Round Robin(DWRR)スケジューリングを使用して、高優先順位のトラフィックが低優先順位のトラフィックよりも迅速に処理されます。たとえば DWRR の重みが 70:20:10(高:中:低)とすると、高優先度キューは低優先度キューの 7 倍の割合で処理されます。これにより、出力ポートに輻輳がある場合に、高優先順位のトラフィックに対して低い遅延と高いスループットが保証されます。

出力ポートが混雑していない場合は、キューイングは行われず、すべてのトラフィックが同等に扱われることに注意してください。

第 2 世代のラインカードおよびスーパバイザでの QoS

第 2 世代の Cisco MDS 9000 ファミリ ラインカード モジュールおよびスーパバイザでは、輻輳の発生場所に関係なくトラフィックの差別化および優先順位付けが実行されるように、QoS が拡張されました。第 2 世代の Cisco MDS 9000 ファミリ ラインカード モジュールおよびスーパバイザは、マルチスイッチ SAN ファブリックのエンドポートやシングルスイッチ ファブリックのエンドポートでの輻輳、および ISL での輻輳が発生した場合に、QoS ポリシーを適用します。

主要な相違点は、第 1 世代の Cisco MDS 9000 ファミリ ラインカード モジュールおよびスーパバイザが入力に対して QoS ポリシーを適用するのに対し、第 2 世代の Cisco MDS 9000 ファミリ ラインカード モジュールおよびスーパバイザは出力に対して QoS ポリシーを適用することです。第 1 世代のラインカード モジュールおよびスーパバイザでは、混雑している出力ポート宛てのトラフィックが同じ入力ポートに着信する場合にのみ、与えられた QoS ポリシー マップを適用することができました。このため、一般的に着信トラフィックは ISL などの共通の入力ポートに集約される必要があり、したがってマルチスイッチが必要でした。第 2 世代のラインカード モジュールおよびスーパバイザは出力に対して QoS ポリシーを適用するため、この制限がなくなり、シングルスイッチ環境や ISL の輻輳でも QoS が有効です。

表 1 に、第 1 世代のファイバ チャネル ラインカードを示します。

表 1 第 1 世代のファイバ チャネル ラインカード

製品番号 説明
DS-X9016 16 ポート 1/2 Gbps ファイバ チャネル モジュール
DS-X9032 32 ポート 1/2 Gbps ファイバ チャネル モジュール
DS-X9032-SSM 32 ポート 1/2 Gbps ファイバ チャネル ストレージ サービス モジュール
DS-X9302-14K9 2 ポート 1 ギガビット イーサネット IPS、14 ポート 1/2 Gbps ファイバ チャネル モジュール

表 2 に、第 2 世代のファイバ チャネル ラインカードを示します。

表 2 第 2 世代のファイバ チャネル ラインカード

製品番号 説明
DS-X9112 12 ポート 1/2/4 Gbps ファイバ チャネル モジュール
DS-X9124 24 ポート 1/2/4 Gbps ファイバ チャネル モジュール
DS-X9148 48 ポート 1/2/4 Gbps ファイバ チャネル モジュール
DS-X9704 4 ポート 10 Gbps ファイバ チャネル モジュール

QoS の設定

QoS はライセンス機能であり、QoS が使用されるすべてのスイッチに Enterprise Package ライセンスをインストールする必要があります。QoS はライセンス機能ですが、ユーザは猶予期間を利用してライセンス機能を最大 120 日間試用することができます。

複数のスイッチにおける QoS の設定は、すべてのスイッチで送信と受信の両方向のトラフィックに対して共通のポリシーが適用されるように、一貫している必要があります。

スイッチのラインカードが第 1 世代か第 2 世代かに関係なく、QoS は同じように設定されます。要求される QoS ポリシーの複雑さに応じて、QoS は次の 3 つの方法のいずれかにより展開できます。

  • Virtual SAN(VSAN)ベースの QoS
  • ゾーンベースの QoS
  • 個別のデバイスに応じた個別の QoS ポリシー

VSAN ベースの QoS

VSAN ベースの QoS では、QoS 優先順位を VSAN 単位で割り当てることができます。

VSAN ベースの QoS では、個々の VSAN に高、中、または低の QoS 優先順位が設定されます。その VSAN 内のデバイス間を流れるすべてのトラフィックは、設定された優先順位を継承します。

複数の VSAN(たとえば、実稼働、開発、およびテスト)がデータ センター間で共通の ISL を共有していて、輻輳が発生した場合は常に実稼働トラフィックを優先させる必要がある場合は、VSAN ベースの QoS が便利です。

ゾーンベースの QoS

より細かい QoS が必要な場合は、QoS 優先順位をゾーン単位で割り当てることができます。

Cisco MDS 9000 ファミリ スイッチのゾーン分割拡張機能では、QoS 優先順位をゾーンと関連付けることができます。そのゾーンに共通のデバイス間の通信はすべて、設定された QoS 優先順位(高、中、または低)にマップされます。

ゾーンベースの QoS は、1 つの VSAN 内にクラスが異なる複数のアプリケーション サーバがあり、クリティカルでないホストおよびアプリケーションと共通のストレージ リソースを共有している時間重視のミッションクリティカルなアプケーションに対して、高い優先順位を付ける場合に便利です。例を挙げると、OLTP アプリケーションと、共通のワークグループ ストレージにアクセスするサーバとの間で、ストレージ アレイ リソースを共有している場合があります。QoS を使用して OLTP アプリケーションに高い優先順位を割り当てることにより、ストレージ アレイへの接続が混雑した場合にワークグループ サーバよりも OLTP アプリケーションが優先されるように設定できます。

ゾーンベースの QoS は、interop モード 0 におけるゾーン分割拡張機能および VSAN には依存しません。

個別のデバイスに応じた個別の QoS ポリシー

最大限の柔軟性が必要な場合は、QoS ポリシーをデバイスごとに定義することができます。各デバイスおよび VSAN に個別のポリシーが適用されます(図 4)。QoS クラス マップを使用してトラフィックが分類されます。分類は、QoS ポリシー マップ内のポリシーにマップされます。QoS サービス マップを使用して、ポリシーが VSAN に割り当てられます。

図 4 デバイスごとの QoS ポリシーの定義

図 4 デバイスごとの QoS ポリシーの定義

トラフィックの分類は、QoS クラス マップに従って行われます。QoS クラス マップは、次のコマンドのいずれかに基づき、複数基準一致(「すべて一致」)または単一基準一致(「いずれか一致」)を使用してフレームを一致させます。

  • source-wwn 一致フレーム。トラフィックの送信元デバイスのワールド ワイド名を指定します。
  • destination-wwn 一致フレーム。トラフィックの受信先デバイスのワールド ワイド名を指定します。
  • source-address 一致フレーム。トラフィックの送信元デバイスのファイバ チャネル ID(FC_ID)を指定します。
  • destination-address 一致フレーム。トラフィックの受信先デバイスの FC_ID を指定します。
  • input-interface 一致フレーム。フレームが着信するインターフェイスを指定します。
  • destination-device-alias 一致フレーム。トラフィックの受信先デバイスのエイリアスを指定します。

QoS クラス マップをサービス レベルに正しくマップするために、QoS ポリシー マップが使用されます。1 つのポリシー マップに、1 つのサービス レベル(高、中、または低)または Differentiated Services Code Point(DSCP)に関連付けられた複数のクラス マップが含まれることがあります。DSCP 値には 46(Expedite Forwarding)以外の任意の値が許容されます。

QoS サービス マップを使用して、QoS ポリシー マップが VSAN に関連付けられます。

フレームの転送のスケジューリング

フレームがスイッチに最初に着信した時点で、フレーム ヘッダー内の既存の QoS 情報を信頼できるものと見なすか、信頼できないものと見なすことができます。デフォルトでは、すべての Cisco MDS 9000 ファミリ スイッチは、フレームがトランキングしている E_Port(TE_Port)に着信する場合を除き、スイッチに着信するフレームの QoS 情報を信頼できないものとして扱います。フレームが転送される際、フレーム内の既存の QoS 情報は、フレームに一致する QoS ポリシーがある場合でも常に保持されます。QoS ポリシーはスイッチの転送動作を変更するだけで、実際のフレーム自体は変更しません。

信頼できるポートにフレームが着信した場合、スイッチはフレーム ヘッダー内の QoS 情報をコピーします。フレームに一致する QoS サービス マップがない場合、フレームを転送する際には着信フレームの QoS サービス レベルが使用されます。信頼できないポートにフレームが着信した場合は、フレームに一致する QoS サービス マップがないと、デフォルトのサービス レベルで処理されます(図 5)。

図 5 QoS 処理のステップ

図 5 QoS 処理のステップ
※画像をクリックすると、大きな画面で表示されますpopup_icon

フレームは、表 3 に示すとおり、QoS サービス レベルまたは DSCP マッピングに基づいて、1 出力ポートあたり 4 つある仮想出力キューのいずれかにマップされます。

表 3 フレームの仮想出力キューへのマッピング

サービス レベル DSCP PHB(FC-FS-2 規格による) マップ先のキュー
絶対 46 EF(Expedite Forwarding) プライオリティ キュー
10、12、14 AF1(Assured Forwarding 1) DWRR1 キュー
18、20、22 AF2(Assured Forwarding 2) DWRR2 キュー
26、28、30 AF3(Assured Forwarding 3) DWRR3 キュー
34, 36, 38 AF4(Assured Forwarding 4)
デフォルト その他すべて その他すべて

各出力ポートで 4 つの仮想出力キューを利用することができ、各ポートは 4 つの QoS レベルに対応しています。1 つのプライオリティ キューと、DWRR スケジューリングによって処理される 3 つのキューがあります。プライオリティ キューに入れられたフレームは、DWRR キュー内のフレームよりも先に転送するようにスケジュールされます。3 つの DWRR キュー内のフレームは、設定されている相対重みに従ってスケジュールされます。デフォルトの相対重みは 33:33:33 ですが、この値は設定可能であり、任意の比率に変更できます。

1 ポートあたりの入力バッファリングの容量も設定可能な項目であり、12 〜 4096 フレームまでのバッファリングを設定できます。ほとんどの場合、デフォルトを超えて入力バッファ レベルを変更する必要はありません。

その他のトラフィックエンジニアリング機能

VOQ

すべての Cisco MDS 9000 ファミリ スイッチは、VOQ キューイング技術を採用しています(図 6)。これは常に有効になっている標準機能です。
VOQ は、「Head-Of-Line ブロッキング」と呼ばれる現象の緩和に役立ちます。出力ポートの輻輳のためにフレームの送信が阻止されると、ブロッキングが発生します。ファイバ チャネル スイッチはフレームの廃棄が発生しないことを保証するために、出力ポートが混雑した場合には、フレームの送信が可能になるまでブロックする必要があります。出力ポートの輻輳が原因でキューの先頭のフレームを送信できないと、Head-Of-Line ブロッキングが発生します。この状況では、このフレームの後ろにあるフレームは、それらの個々の出力ポートが混雑していないときでも、宛先への送信を「ブロック」されます。

VOQ は、複数の仮想出力キューを利用することによって Head-Of-Line ブロッキングを解決します。個々の仮想出力キューはブロックされることがありますが、別の(ブロックされていない)宛先のキューに入れられたトラフィックはフローを継続することができ、混雑している出力ポートのブロッキングがクリアされるのを待っているフレームのために遅れることはありません。

図 6 VOQ を使用するスイッチと使用しないスイッチの比較

図 6 VOQ を使用するスイッチと使用しないスイッチの比較
※画像をクリックすると、大きな画面で表示されますpopup_icon

フェアネス

すべての Cisco MDS 9000 ファミリ スイッチは、フレームを公平にスイッチします。QoS が有効でない場合は、混雑している出力ポート宛てのフレームにも出力ポートの能力を常に平等に与えるために、フェアネスが役立ちます。フェアネスにより、1 つの入力デバイスだけがその割り当てを超えて出力ポート リソースを使用したり、他の入力デバイスへの割り当てを奪ったりすることが防止されます。

入力および出力にどのラインカード モジュールが使用されるかに関係なく、フェアネスは常に保証されています。

Fibre Channel Congestion Control

すべての Cisco MDS 9000 ファミリ スイッチは、Fiber Channel Congestion Control(FCC)をサポートしています。送信側デバイスが受信側デバイスの処理速度よりも高速でトラフィックを送信しているとき、FCC を使用して出力ポートのブロッキングを防止することができます。

このブロッキングは一般的に次の 2 つのケースで発生します。

  • ファブリック内の送信元と受信先の速度が一致しない(たとえば、2 Gbps のデバイスが 1 Gbps のデバイスに送信している)。
  • 受信先が持続性能を維持できない(たとえば、LTO-2 テープ ドライブが 2 Gbps でファブリックに接続されているが、400 MBps [0.4 Gbps] の書き込みスループットしか持続できない)。

1 つの出力ポートで輻輳とブロッキングが発生している場合、送信側デバイスが速度を低下させないと、ブロッキングが他のポートやデバイスにも広がることがあります。この原因は、ファイバ チャネル スイッチングの基礎原理に関連しています。つまり、スイッチはフレームが廃棄されないことを保証しなければならないためです。

FCC では、輻輳の原因となっている送信側デバイスの速度を低下させるようにパス上のデバイスに通知するシグナリングを利用して、輻輳およびブロッキングが広がることを抑制できます(図 7 を参照)。

図 7 FCC 輻輳緩和およびブロッキング

図 7 FCC 輻輳緩和およびブロッキング
※画像をクリックすると、大きな画面で表示されますpopup_icon

FCC は出力ポートで輻輳を検出すると、その原因となっているデバイス(送信元)の宛先アドレスを使用して、FCC エッジ クエンチ フレームを生成します。FCC エッジ クエンチを受信したスイッチは FCC フレームを調べ、宛先が直接接続されているデバイスであるかどうか判断します(輻輳の原因となっている送信側デバイスは直接接続されています)。直接接続されたデバイスが宛先の場合、スイッチは問題の送信側デバイスに接続されている入力ポートのレート制限を有効にして、送信元を受信先のレートに合わせて制限します。

FCC はアクティブループ フィードバック システムで機能します。輻輳の間も、混雑した出力ポートを持つスイッチは FCC エッジ クエンチ フレームを送信し続けます。輻輳の原因となっている送信側デバイスに接続されたスイッチは、輻輳が解消されるまで、フローのレート制限を続行します。

FCC および FCC エッジ クエンチ フレームは、既存のファイバ チャネル規格およびファブリックと完全に互換性があり、ベンダーが混在するファブリックで使用できます。

入力ポートレート制限

入力ポートレート制限は、Cisco MDS 9000 ファミリ スイッチに接続されている個々のデバイスの利用可能な帯域幅を細かく制御するための機能です。接続されているデバイスから送信されるフレームをスイッチが処理するレートを制限し、トラフィックを送信しているデバイスにバッファ クレジットが返される速さを制限します。レート制限はポートの速度の 1 〜 100% の範囲で、1% 単位で設定できます。デフォルトは 100% です。
入力ポートレート制限は、Cisco MDS 9100 シリーズ マルチレイヤ ファブリック スイッチ、Cisco MDS 9216i マルチレイヤ ファブリック スイッチ、MPS-14/2 モジュールのファイバ チャネル ポート、およびすべての第 2 世代 Cisco MDS ラインカード モジュールで利用できます。この機能を使用するには、Enterprise Feature ライセンスを有効にする必要があります。

まとめ

シスコシステムズは、常にマルチプロトコル インテリジェント SAN スイッチをより優れたものにしようとしています。業界最高レベルのアベイラビリティ、スケーラビリティ、セキュリティ、管理、および投資保護を提供する Cisco MDS 9000 ファミリ スイッチにより、高性能 SAN を低い TCO で展開することが可能になり、豊富なインテシリジェント機能を高性能のプロトコル独立型スイッチ ファブリック上に実装することができます。

お問い合わせ