• EOS Network Telemetryの概要〜LANZの動作モード

 
 
Print Friendly, PDF & Email

粒度の細かいスイッチの状態監視や適切なトラフィックエンジニアリング実現のためにテレメトリデータの活用が注目されています。

ARISTA EOSは、スイッチ単体、ネットワークワイドでテレメトリデータを収集するためにさまざまな機能を提供してきました。今回は、多くのお客さまから好評いただいているLatency ANalyZer(LANZ)の動作モードを7280R/7500Rシリーズを例に紹介します。

LANZの概要

LANZは、ネットワークで生じる遅延をスイッチのQueueに着目して計測する機能です。パケットの遅延やドロップは、TCPのウィンドウコントロールに影響を及ぼします。仮想化技術が定着し、サーバ上で実行されるワークロードの増加により、消費する帯域も大きくなっています。さらにメディアスピードの進化により、低速と高速のメディアが混在する環境も増えています。このような環境下でパケット遅延やドロップを回避してネットワークを健全な状態に維持するためには、Queueの状態の把握は重要です。Queueの状態把握には、コマンドラインやSNMPの利用が考えられますが、コマンドラインやSNMPは、その特性からリアルタイムに状態把握するには適していません。

LANZを利用すれば、サブ秒レベルでスイッチQueueの輻輳状態を把握することが可能になります。(LANZについては、EOS Centralの解説記事をご覧ください) LANZには、輻輳状態の通知方法の違いにより、二つのモードが存在します。PollingモードとNotifyingモードです。今回は、7280R/7500Rシリーズを例にそれぞれのモードを紹介します。

Pollingモード

LANZエージェントが、ハードウェアから受信するQueue状態の通知メッセージをチェックします。このとき、設定した閾値を超過するQueueが一つ以上あると、それをトリガにして輻輳状態の発生のみをSysDBに記録します。コマンドライン(show queue-monitor length)を実行すると、’P‘のフラグを伴い輻輳状態が発生していることが確認できます。

Notifyingモード

LANZエージェントが、ハードウェアから受信するQueue状態の通知メッセージをチェックします。このとき、設定した閾値を超過するQueueがあれば、そのすべてを対象に輻輳状態の発生、輻輳状態(Queueの長さ、滞留時間)の変化、輻輳状態の解消をSysDBに記録します。
コマンドライン(show queue-monitor length)を実行すると、‘S(Start)’‘U(Upate)’および‘E(End)’のフラグを伴い輻輳状態が発生していることが確認できます。出力には、輻輳状態にある出力インターフェースとトラフィッククラス(Traffic Class)の情報も記録されます。Notyfyingモードは、Pollingモードに比べてQueueの状態遷移を精緻に把握することが可能です。

7280Rシリーズの出力例

Notifyingモードの出力を7280Rシリーズを利用して確認していきます。Notifyingモードを実行するには、以下のパラメータを設定します。デフォルトは、Pollingモードで動作しています。

  queue-monitor length notifying

show queue-monitor length statusコマンドにてNotifyingモードが有効になっていることを確認します。

DANZ-7280R-1@22:40:15#show queue-monitor length status 
queue-monitor length enabled
queue-monitor length packet sampling is disabled
queue-monitor length update interval in micro seconds: 100 
Syslog interval in seconds : 1
Per-Interface Queue Length Monitoring
-------------------------------------
Queue length monitoring is enabled
Queue length monitoring mode is notifying
Maximum queue length in bytes : 524288000
Port thresholds in bytes:
Port High threshold Low threshold
Cpu 40962 20481
Et1 524288000 40962
Et2 524288000 40962
Et3 524288000 40962
Et4 524288000 40962
(以下、出力省略)

Queue輻輳の状態は、show queue-monitor lengthコマンドで確認します。一旦、輻輳状態が発生するとその状態遷移が記録されます。出力の左袖フラグとタイムスタンプに着目してください。

DANZ-7280R-1@22:40:15#show queue-monitor length ethernet 5
Report generated at 2017-06-22 16:25:44
E-End, S-Start, P-Polling, TC-Traffic Class
* Max queue length during period of congestion
Type       Time                          Intf(TC)          Queue          Duration      Ingress                           
                                                                       Length                             Port-set                          
                                                                       (bytes)        (usecs)                                        
---------- ----------------------------- -------------- -------------- --------------- --------------------------------- 
E          0:02:01.18998 ago       Et5(1)            43456*        1002393       Et9-16,21-28,33-40,49/1-50/1,54/1 
S          0:02:02.19237 ago       Et5(1)            43456          N/A              Et9-16,21-28,33-40,49/1-50/1,54/1 
E          0:02:06.24175 ago       Et5(1)            66736*        1002644       Et9-16,21-28,33-40,49/1-50/1,54/1 
S          0:02:07.24440 ago       Et5(1)            66736          N/A              Et9-16,21-28,33-40,49/1-50/1,54/1 

‘S’と’E’のフラグが繰り返し出力されていることが確認できます。これは、定常的にQueueの輻輳状態が繰り返されていることを示しています。Notifyingモードでは、輻輳時のQueueの長さ(Queue Length)と滞留時間(Duration)も確認できます。7280R/7500Rシリーズは、Virtual Output Queueingアーキテクチャを採用しています。トラフィックの入力ポート側バッファが、出力ポートに対して仮想的にQueueを持ちます。上記の例では、入力ポート(Ethernet14)が出力ポート(Ethernet5/Traffic Class1)に対するQueueに輻輳状況が発生していることを示しています。この情報をもとに、輻輳が発生している出力インターフェースに接続されるワークロードを分散させたり、メディアスピードを変更するなどの対処を行うことにより、輻輳の回避が可能になります。

出力のオプション

LANZの出力は、コマンドライン以外にCVS, Syslog, gRPC,  Network Telemetry(EOS TerminAttr)を介して出力することが可能です。show queue-monitor lengthコマンドには、CSVのオプションがサポートされています。CSVをオプションを指定して出力すれば、生成されたCSVファイルを表計算ソフトに取り込み、簡単に可視化することが可能です。コマンドラインの出力を表計算ソフトウェアに取り込みグラフ化すると、継続して輻輳が発生していること、そのときのQueue消費状態が簡単に可視化することが可能になります。

DANZ-7280R-1@01:31:42#show queue-monitor length csv 
Report generated at 2017-06-24 01:31:54

S,2017-06-20 06:24:08.35860,Et5(1),41904,-1,1,Et9-16,21-28,33-40,49/1-50/1,54/1
U,2017-06-20 06:24:09.36129,Et5(1),80704,-1,1,Et9-16,21-28,33-40,49/1-50/1,54/1
U,2017-06-20 06:24:10.36132,Et5(1),100880,-1,1,Et9-16,21-28,33-40,49/1-50/1,54/1
U,2017-06-20 06:24:11.36141,Et5(1),268496,-1,1,Et9-16,21-28,33-40,49/1-50/1,54/1
U,2017-06-20 06:24:12.36194,Et5(1),425248,-1,1,Et9-16,21-28,33-40,49/1-50/1,54/1
U,2017-06-20 06:24:13.36208,Et5(1),552512,-1,1,Et9-16,21-28,33-40,49/1-50/1,54/1

lanzcsv

最後にCloudVisionによるLANZデータの可視化方法を紹介します。EOS TerminAttrは、LANZデータのストリーミングをサポートします。CloudVisionの分析エンジンを使えば、相関分析も可能になります。

lanz-cv-sample

ARISTA EOSは、テレメトリデータを取得するための方法と利活用を容易にするさまざまなオプションを提供して、Network Telemetryを促進しています。次回以降もEOSのテレメトリ機能を紹介していきます。

Follow

Get every new post on this blog delivered to your Inbox.

Join other followers: