技術コラム

製品技術
Mellanox

Mellanoxスイッチのテレメトリー新機能のWJHについて

Mellanoxスイッチのテレメトリー新機能のWJHについて

Mellanoxスイッチとテレメトリー/What Just Happened(WJH)

SN2xxxシリーズスイッチには多様な機能がございますが、そのうちの1つの機能にテレメトリー機能がございます。
このテレメトリー機能は、様々なMellanoxスイッチ内のデータをMellanoxのNEOサーバ、またはオープンソースのTelegraf、InfluxDBやGrafanaに対してデータを送信し、データフローの可視化などが可能となります。

その中でも今回Onyx OS version 3.8.1112において、What Just Happened(以下、WJH)が強化され、テレメトリーストリームでリアルタイムにパケットのドロップ状況について確認することができるようになりました。

ではWJHとは何か?と申しますと、スイッチ内のパケットロスにおいて問題が起こった場合、「どのような状況でパケットロスしたのか?」 を即時に原因の確認が可能となります。これはMellanox社が自社でシリコンチップを作っているベンダでもあり、Mellanoxスイッチにもこの自社製シリコンチップを利用しているため、より詳細にdropした理由を確認できるのが強みとなります。また今後、この機能は拡張の予定があるとのこと、将来に向けて活用の機会が更に広がることが予想されます。

それでは、Mellanoxのテレメトリー機能について、「どのように実行すれば良いのか?」を以下にて説明いたします。

 

ネットワーク構成

今回は簡易的な実践方法のご紹介のため、下記のようなネットワーク構成で実施しています。

 

  1. WJH dockerの構築方法について

事前にWJHストリームを受信するためにサーバを構築し(今回はCentOS 7.6を利用しています)、インターネット経由でdocker hubからイメージをダウンロードしてデプロイを実施します。
なおdockerのインストールについては多様なサイトにて説明がございますので、本記事では割愛をさせていただきます。

WJHのdockerには以下のツールが既にデプロイ済みとなっています。

  • Telelgraf:入力データから特定のフォーマットでデータを収集してInfluxdbに転送するツール
  • InfluxDB:データが格納されているデータベース(例えば、WJHドロップパケット)
  • Grafana:Influxdbから受け取ったデータをグラフィカルに表示する視覚化ツール

WJHサーバでdockerを有効にしたら、以下のコマンドでWJHgraf dockerをpullします。

ダウンロードが完了したら、WJHのdockerについて3005ポートと8093ポートを外部ポートのバインドとして起動します。

起動が完了しているか docker psコマンド等で確認します。

起動の確認が取れたら、WJHサーバのIPにたいして任意のブラウザよりhttp://IP:3005でアクセスを実施し、以下のクレデンシャルでログインを実施します。
User: admin
Password: admin

初期ログイン後のみパスワードの変更について確認があり、初期パスワードについて変更を実施したら以下のようダッシュボード画面が表示されます。

WJHgraf dockerには以下の2種類の画面があります。
・What Just Happened?-Debug
・What Just Happened?-Monitoring

どちらもリアルタイムのパケットロスのストリームに対しての可視化となりますが、Debugダッシュボードでは、パケットがdorpした場合の原因の情報が表示され、Monitoringについてはリアルタイムのパケットロスのストリームに対しての統計情報について表示されます。

  • What Just Happened?-Debugの初期画面
  • What Just Happened?-Monitoringの初期画面

 

2. MellanoxスイッチにTelemetry dockerのインストール方法について

前回のdockerの記事でも記載をさせていただきましたが、マネジメントポートからインターネットに繋がっている環境が必要となり、また時刻を合わせる必要があるため、以下のコマンドを実行し時刻を合わせた上でTelemetry dockerのpullを実施します。
※ dockerイメージファイルを事前にダウンロードして、任意の端末よりtftpなどでもアップロードは可能ですが、今回は容易な方法で実施しているため、インターネット経由でdockerイメージのダウンロードを実施しています。

・時刻の確認

・ntpを利用して時刻を合わせる

・What-Just-Happenedについて転送の有効と起動を実施

・Telemetry-agent dockerのpullを実施

dockerのpullが完了したら、以下のコマンドにてTelemetry dockerを起動し、正常に起動されているか確認をします。

Telemetry dockerが起動したらdockerのコンテナに対してSDKのコピーを実施します。

Telemetry エージェントサービスを外部のWJHサーバとコネクトするためのスクリプトを実行します。
実行時にAdding Session dropped packetが表示されれば正常にコネクションが完了しています。

 

3. WJHサーバがdropパケットを受け取ったときの表示について

Mellanoxスイッチ内部においてパケットでdropが起こった場合、以下のように表示がされます。
※ 本例ではSpanning treeによりdropした内容となっています。

MellanoxスイッチのWJHとメリットについて

今回、Mellanoxスイッチの機能強化として実装されているWJHについて記載をさせていただきました。
最初の記載の通り、Mellanox社は自社でシリコンチップも開発しているため、プロコトル・フローのラインについても、どのような理由でdropしているのか、また何が起こってスイッチ内部でdropしたのかについて、詳細に確認することが可能となっています。

また、今後WJHについて機能強化も予定されているとのことで、もし何かトラブルが起こった場合でも、多くのレイヤや接続機器を確認せずに迅速な原因の把握が可能となり、より早い復旧対策についても可能になるのではと考えています。
昨今DX(デジタル トランスフォーメーション)の取り組みをしている企業様が多いなか、IoT機器 や多様なデバイスが接続されるネットワークのエラーは、以前よりもビジネスクリティカルになっており、BCP(事業継続計画)においても重要なファクターの一つとなっております。

このような状況でMellanoxスイッチのWJH機能は、継続的なビジネスを実行するにあたり有用なネットワークソリューションになり得るかと思います。
是非Mellanoxスイッチを体験いただき、WJH についてもお試しになっていただければと思います。