Blog Brocade Japan

Brocade Packet Brokerでプローブをフル活用する方法

by Jude Vedam on ‎06-22-2016 08:37 PM - last edited on ‎07-01-2016 06:26 PM by aokuhara (2,686 Views)

x86サーバ・プラットフォームでプローブをお使いですか? プローブを実行しているハードウェアを最大限に活用できないことについて不満をお持ちではありませんか?   CPU全体にトラフィックを分散させてプローブの稼働率を向上させようとしても、結局はCPUサイクルが増加していませんか? これらの質問に「はい」と回答し、その打開策をお探しであれば、ここにその答えがあります。 ブロケードのパケット・ブローカ・ソリューションを使用すると、プローブを最大限にご活用いただけるようになります。 その方法について説明いたします。 

 

世界規模で、業界トップクラスの携帯電話会社は、自社でプローブを構築したり、ベンダーのソフトウェアベースのプローブを試しています。 どちらの場合でも企業は、複数のCPUコア、豊富なメモリ、40G NICカードが搭載されているx86サーバ・プラットフォームを使用する方法を模索しています。 最新のプローブ・ソフトウェアの負荷が並列に処理されて、マルチコアCPUのアーキテクチャを活用できたとしても、パケットの並列処理にはパケットをCPUコア全体に「分散」させる必要があります。

 

シンプルな負荷分散

 

複数のCPUコアにトラフィックを分散させる方法の1つは、最新のNICカード(MellanoxやIntelなどのカード)で利用できるハッシング機能を信頼することです。 この機能は受信側スケーリング(RSS)と呼ばれています。 これらのカードは、最大で5つのタプルを使用してトラフィックをハッシングすることができ、複数のキュー・バッファからキューを選択します。 異なる受信キューのNICへの供給を各CPUコアに実行させることで、トラフィックはCPUコア全体に分散できます。 ただし、このアプローチには問題があります。

 

一般的なユーザ・プレーンのプローブ・ポイントに注目してみましょう。 最も一般的なものがS1-UやSGiです。 S1-UのタッピングポイントではGTP-Uトラフィック(SGiでは一般的なIPトラフィック)がプローブに送信されます。 普通のIPトラフィックと比較すると、S1-Uトラフィックではより多くの情報が送信されます。これは、TEIDや外部IPアドレスが含まれているためです。 これらのフィールドを活用することで、プローブはKPIを算出し、ベアラベースでメタデータを抽出できるようになりました。

プローブ・ハードウェア内の5つのタプルをベースにしたシンプルなハッシング機能でGTP-Uトラフィックが負荷分散されると、サブスクライバからのトラフィックが時間差で異なるCPUに送信されます。 これは、eNodeBとServing Gatewayの間での移動やリンク・アグリゲーションによって発生する外部IPの変更によるものです (詳細については、前回のブログをご覧ください)。 この結果、サブスクライバやeNodeBに属するKPIおよびメタデータが複数のCPUで利用できるようになりますが、このことは、CPU間でのデータ構造アクセスや分析レベルのレコードの相関関係(またはその両方)が必要になります。 これらには追加のコンピューティング・リソースが必要になります。

 

SGi(通常のIP)トラフィックがNICカードによって負荷分散される場合にも、似たような問題が存在します。 1つのサブスクライバに複数のIPアドレスが割り当てられる場合があるからです。 この場合、サブスクライバ・セッションが異なるCPUに送信されることがあります。 さらに、IMSIデータ・セッションに割り当てられているプライベートIPアドレスがPGWドメインで再利用され、実際には異なるサブスクライバに属している同一のIPアドレス・セッションが同じCPUコアで処理されてしまう可能性があります。

 

2段階の相関関係

 

Brocade Packet Broker(BPB)は、このような問題を2段階の相関関係で解決します。 2段階の相関関係によって、プローブ・ハードウェアの稼働率を最大限に高めることができます。 第1段階では、BPBによって、サブスクライバに属しているトラフィックが、外部IPやTEIDの変更にかかわらず、同一のプローブ・ポートに送信されます。 第2段階では、プローブ・ポート内で、一部のサブスクライバが特定のVLAN IDでタグ付けされます。 たとえば、プローブ・ポートが30万のサブスクライバ・セッションを送信する場合、30の異なるVLAN IDを使用して、各IDに1万のサブスクライバをタグ付けします。 このことにより、プローブはVLAN IDをハッシュ・キーとして使用して、受信キューを選択できるようになります。 この場合、それぞれのCPUコアは1万のサブスクライバ・セッション・トラフィックだけを受信します。 BPBがトラフィックを相互に関連付けてVLAN IDを割り当てることで、サブスクライバに属するトラフィックは常に同じCPUコアに送信されるようになります。このことで、CPUの境界を越えてデータ構造を検索する必要がなくなります。 この方法で、プローブはCPUを最大限に活用できるようになります。 プローブは、処理リソースの増加に伴い、稼働率を直線的に向上させることができます。

 

BPBは、この2段階の相関関係をS11とS1-Uトラフィック、RADIUSとSGiトラフィック、GTP-Cv1とGTP-Uトラフィックに同時に適用することができます。

 

つまり、BPBは、話題のセッションID(IMSIやIMEIなど)を活用しパケットをタグ付けすることで、プローブの直線的な拡張を実現します。 このことにより、プローブはソフトウェアの負荷に応じてスケールアップすることもスケールアウトすることも可能になり、オペレータのリソース活用を最適化できるようになります。

 

Brocade Blog 翻訳記事「How to maximize Probe utilization with Brocade Packet Broker」 Jude Vedam