JP2021530067A - データセンターハードウェアインスタンスネットワークのトレーニング - Google Patents

データセンターハードウェアインスタンスネットワークのトレーニング Download PDF

Info

Publication number
JP2021530067A
JP2021530067A JP2021520085A JP2021520085A JP2021530067A JP 2021530067 A JP2021530067 A JP 2021530067A JP 2021520085 A JP2021520085 A JP 2021520085A JP 2021520085 A JP2021520085 A JP 2021520085A JP 2021530067 A JP2021530067 A JP 2021530067A
Authority
JP
Japan
Prior art keywords
probe
data element
data
dch
time increment
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Revoked
Application number
JP2021520085A
Other languages
English (en)
Inventor
スー−ジェン ヤン、フランク
ブイ. ヴォゲティ、ラマナゴパル
メロトラ、シャラド
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Platina Systems Corp
Original Assignee
Platina Systems Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Platina Systems Corp filed Critical Platina Systems Corp
Publication of JP2021530067A publication Critical patent/JP2021530067A/ja
Revoked legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/065Replication mechanisms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/067Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/01Dynamic search techniques; Heuristics; Dynamic trees; Branch-and-bound
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Abstract

データセンター内の複数のイベントを予測するために推論エンジンをトレーニングするためのトレーニングデータセットを生成する方法が提供される。方法は、データセンターの複数のコンポーネントに対応する複数のプローブベクトルを生成することであって、各プローブベクトルは、複数のデータ要素からなるシーケンスを含み、複数のプローブベクトルのうちの1つは、コンポーネントのイベントの時刻におけるイベントを示す、生成すること、マスターデバイスで一組のトレーニングスナップショットを生成すること、を含む。各トレーニングスナップショットは、示されたイベントの発生時刻に一致するか又は以前に発生した時間増分に対応する複数のデータ要素からなるサブシーケンスを含む。

Description

本願は、2018年6月22日に出願された米国特許出願第16/016,362に対する優先権の利益を主張し、参照によりその全体が本明細書に組み込まれる。
データセンターは、どのような規模であっても、構築、運用、保守が複雑である。さまざまなタイプのテクノロジーとスキルセット、チーム、ツール、相互運用性を組み合わせることは、論理的に困難である。データセンターを完全に機能させるには、時間の経過とともに段階的な改善が必要になる場合がある。データセンターが完全に機能するまでには、すべての要素を理解している人がほとんどいないほど複雑になり、ビジネスニーズに合わせた再構成又は新しいテクノロジーの導入は、最初の構築と同等以上に拡張することが困難になる可能性がある。
現代のデータセンターは、典型的には、例えば、様々なWebプロトコル、言語プラットフォーム、ユーザーに完全なデスクトップを提供することができる仮想マシン、またはマイクロサービスを提供するためのコンテナ化されたアプリケーションのいずれかを介してアプリケーションワークフローへのクライアントアクセスを提供し得るサーバーのネットワークを含む。典型的な複数のデータセンターハードウェアリソースは、複数のサーバー、複数のネットワークコンポーネント、複数の記憶ボリュームを含み得る。複数のサーバーは、複数のアプリケーションワークフローを管理し且つ複数のクライアント要求に応答する。複数のネットワークスイッチは、複数のデータセンターサーバーを接続してワークフローを管理する。複数のネットワークルーターは、複数のパケット転送機能を実行する。複数のネットワークゲートウェイは、データセンターネットワークとインターネットとの間の複数のジャンクションとして機能し得る。複数の記憶ボリュームは、複数のアプリケーションワークフローを提供するために複数のサーバーによって用いられる情報を記憶する。データセンターは、さまざまなアプリケーションワークフローをサポートし得る。
データセンターの管理は、データセンターの複数のワークフロー要件を監視すること、複数のクライアント要求の変化に応じてさまざまなアプリケーションワークフローへのデータセンターのリソース割り当てを調整することを含む。データセンターは、複数のハードウェアリソースを設定、監視、およびパーティション化する1つ以上のコントローラと、ハードウェアリソース間でソフトウェア及び複数のサービスがどのようにデプロイされるか、または分配されるかを管理するオーケストレーター(orchestrator)と、データセンター内で実行される複数のアプリケーションソフトウェア自体と、を含み得る。これらのハードウェアリソース、コントローラ、オーケストレーター、およびアプリケーションからの多くのデータが存在し、データセンターのオペレータが監視して、リソース割り当ての管理、トラブルシューティング、パフォーマンスの最適化、および拡張の計画を実行する。これらのデータは、典型的には、1つまたは別の機能領域に焦点を当てた複数のツールによって収集され、その特定の機能領域の複数のドメインエキスパートによって解釈される。様々な機能領域からすべてのデータを集約して大規模な(おそらく巨大な)データベースに収集することは困難ではないが、そのような大規模なデータセットの解釈は、データのサイズだけでなく、複雑さとデータを利用するために必要なドメイン間の知識によって、指数関数的に困難になる可能性がある。データセンターの規模と複雑さが増大するにつれ、これらのデータを有用なリアルタイムの方法で利用することは、人間だけではますます困難になっている。
データセンターは、複数のデータセンターの機能を共有するためにクラスター化され得る複数の物理デバイスなどの多数の物理コンピューティングインスタンスを備える。複数の異なるインスタンスの複数のコンポーネントが同時にプローブされて、時間増分のシーケンス(sequence of time increments)において異なるインスタンスのコンポーネントのステータスを示す複数のデータ値シーケンス(data value sequences)を含む複数のプローブベクトルを生成し得る。複数のプローブベクトルは、複数のイベントの発生を示し得る。1つまたは複数のイベントに至る複数のデータ値シーケンスの異なるサブシーケンスを含む複数のスナップショットを含む1つまたは複数のスナップショットデータ構造が生成され、1つまたは複数のイベントの発生に至る一組の一連の時間間隔におけるデータセンターネットワーク内の1つまたは複数のクラスター内の複数のノードの複数のコンポーネントの同時物理状態を示す。1つまたは複数のデータ構造は、機械学習トレーニングデータとして機能し、リアルタイムデータセンターの動作中に収集されたプローブデータに基づいて複数のイベントを予測するために推論エンジンをトレーニングし得る。
一態様では、システムは、データセンター内の複数のイベントを予測する推論エンジンをトレーニングするためのトレーニングデータセットを生成するように構成される。システムは、少なくとも1つのプロセッサおよび少なくとも1つのメモリ記憶デバイスを含む。記憶デバイスは、少なくとも1つのプロセッサにアクセス可能であり、それらによって実行可能である記憶された複数の命令を含む。複数の第1の命令は、実行されると、少なくとも1つのデータセンターハードウェア(data center hardware : DCH)インスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成する。複数のプローブベクトルは、複数のデータ要素からなる時系列シーケンスを含む。複数のデータ要素は、対応する時間増分のシーケンスの間、プローブベクトルに対応するそれぞれのコンポーネントのステータスを示す複数の値を有する。複数のプローブベクトルは、1つまたは複数のプローブベクトルに対応する1つまたは複数のそれぞれのコンポーネントにおける1つまたは複数のイベントの発生を示し、1つまたは複数のイベントに対応する1つまたは複数の発生時刻(one or more times of occurrence)を示す。複数の第2の命令は、一組のトレーニングスナップショットを作成する。一組のトレーニングスナップショットの複数のそれぞれのトレーニングスナップショットは、1つ以上のプローブベクトルからの複数のデータ要素からなるそれぞれのサブシーケンスを含む。複数のデータ要素からなるそれぞれのサブシーケンスは、1つ以上のイベントのうちの少なくとも1つに対応する指定された発生時刻より遅くない時間増分に対応するそれぞれの最終データ要素を含む。
図1は、いくつかの実施形態によるデータセンターハードウェアインスタンスの例示的なブロック図である。 図2は、いくつかの実施形態による、データセンターハードウェアインスタンスネットワークを含む例示的なデータセンターネットワーク(data center network : DCN)の例示的な説明図である。 図3は、ホストオペレーティングシステムで実行されている例示的なコンテナを示す説明図である。 図4は、複数のコンテナをデプロイおよび管理するシステムを示す例示的なブロック図である。 図5は、いくつかの実施形態による、複数のコンテナで構成された図2の例示的なDCNの例示的な説明図である。 図6は、いくつかの実施形態による、ネットワークトラフィックデータおよびイベントの発生を監視および記憶するようにプローブロジックインスタンスを構成する方法を示す例示的な第1のフロー図である。 図7は、いくつかの実施形態による、ネットワークデータストレージメモリインスタンスおよびそこに記憶された例示的なプローブデータ構造を示す例示的な説明図である。 図8は、いくつかの実施形態による、複数のベクトルの例示的な時系列を示す例示的な説明図である。 図9は、いくつかの実施形態による、複数のデータセンターハードウェアインスタンスのクラスターから複数のプローブベクトルを収集して時系列の複数のベクトルを生成するようにマスターデバイスを設定する方法を示す例示的な第3のフロー図である。 図10Aは、いくつかの実施形態による、自己ラベリングされたトレーニングデータを生成するようにコンピュータシステムを設定する方法を示す例示的な第4のフロー図である。 図10Bは、いくつかの実施形態による、自己ラベリングされたトレーニングデータを生成するようにコンピュータシステムを設定する方法を示す例示的な第5のフロー図である。 図11は、いくつかの実施形態による、自己ラベリングされたラベル付きプローブベクトルスナップショットトレーニングデータの第1のセットを含む例示的なスナップショットデータ構造を示す例示的な説明図である。 図12は、いくつかの実施形態による、自己ラベリングされたラベル付きプローブベクトルスナップショットトレーニングデータの第2のセットを含む例示的なスナップショットデータ構造を示す例示的な説明図である。 図13は、いくつかの実施形態による、自己ラベリングされたスナップショットトレーニングデータ1300の第3のセットを含む例示的なスナップショットデータ構造を示す例示的な説明図である。 図14は、いくつかの実施形態による、複数のラベル付きトレーニングプローブベクトルスナップショットに基づいて複数のネットワーク状態を予測するように推論エンジンをトレーニングするように構成された教師あり学習システムを示す例示的な説明図である。
A.導入
いくつかの実施形態では、データセンターネットワーク(data center network : DCN)200は、データセンターハードウェア(data center hardware : DCH)インスタンス200a〜200fとして具体化され得る機能的に同一の物理演算インスタンスを増分的に構築することができ、各インスタンスは、サーバー102、ネットワーク回路104、および記憶ボリューム106を含む。複数の個別ハードウェアインスタンス200b〜200gの複数のネットワーク回路は、DCN200への自身のオンボーディング(onboarding)を個別に管理するように構成され得る。データセンターハードウェアインスタンスの複数のクラスターによって提供されるサーバーレベルの複数のサービスとネットワークレベルの複数のサービスの両方を定義するために、複数のコンテナ化されたアプリケーション(Containerized applications)がデプロイ(deploy)、管理、および拡張され、これにより、データセンターの管理を簡略化することができる。複数のDCHノードインスタンスのネットワーク回路104は、複数のノードのクラスターとして機能して、コンテナ化されたネットワークレベルアプリケーションをデプロイおよび管理して複数のネットワーク関連タスクを共有し得る。各ネットワーク回路は、共通のホストオペレーティングシステム上でコンテナ化されたアプリケーションインスタンスをホストする。したがって、DCN200は、一般的に複数のデータセンターで標準となっている複数の層の抽象化の上の典型的な複数の層を除去して、データセンター管理を簡略化する。
コンテナ化されたネットワークレベルアプリケーション(containerized network-level application)をデプロイおよび管理する複数のノードのクラスターに参加する複数のネットワーク回路は、複数のノードイベントを示すプローブデータ(probe data)702を生成する。プローブ情報は、DCN200内の複数のネットワーク関連イベントを示す複数のプローブベクトル800の集合を生成するために使用され得る。自己ラベリングされたラベル付きプローブベクトルスナップショットトレーニングデータ(Self-labeled labeled probe vector snapshot training data)は、複数のプローブベクトルに基づいて生成され得る。推論エンジンは、スナップショットトレーニングデータを使用して、対象とする複数のネットワーク状態の発生を予測し得る。本明細書で使用される用語「スナップショット(snapshot)」は、1つまたは複数のプローブベクトルによってスパンされる(spanned)時間増分のサブシーケンスに対応する1つまたは複数のプローブベクトルの複数のデータ要素からなるサブシーケンスを指す。
B.データセンターハードウェアインスタンス
図1は、いくつかの実施形態によるデータセンターハードウェア(data center hardware : DCH)インスタンス100の例示的なブロック図である。DCHインスタンス100は、ホストサーバー(S)102と、ネットワークスイッチ/ルータ回路(以下「ネットワーク回路」という)(X)104と、永続的記憶ボリューム(persistent storage volume)(V)106と、これらを相互接続する通信バス107とを含む。ホストサーバー102は1つまたは複数のホストCPU110と、バス107を介して通信するように接続されたホストサーバーメモリ112と、を含み得るホストプロセッサシステム108を含む。ホストメモリ112は、例えば、複数のアプリケーションワークフローサービスを提供するようにホストCPU110を設定するために使用される実行可能な複数の命令およびデータを含み得る。ネットワーク回路104は、スイッチファブリック(switch fabric)118の複数の入力キュー117Iおよび複数の出力キュー117Oを含む複数の物理インタフェースポート116間での複数のパケットのスイッチングを決定するように構成可能なスイッチロジック114Sを含み、ネットワーク上に送信される複数のパケットのルーティングを決定するように構成可能なルータロジック114Rを含み、パケットフローを監視し、複数のネットワークイベントの発生をプローブするように構成可能なプローブロジック114Pを含み、複数のDCHインスタンスのクラスター内に、いくつかの実施形態では、複数のDCHインスタンスのクラスターに結合された複数の汎用マシン内にデプロイされた複数のコンテナを管理するためのコンテナデプロイメント及び管理ロジック114D(「コンテナロジック114D」)を含むネットワークコントローラ114を含む。いくつかの実施形態では、ネットワークコントローラ114は、記憶デバイス122内に、スイッチロジック114S、ルータロジック114R、プローブロジック114P、およびコンテナロジック114Dの機能を具体化するように設定する複数の命令を含み得る。プローブロジック114Pは、複数のプローブロジックインスタンス114Piをインスタンス化して、対応する複数のプローブベクトルを生成し得る。いくつかの実施形態では、ネットワークコントローラ114は、スイッチング、ルーティング、監視、および複数のコンテナ関連機能のうちの1つ以上を実行する1つ以上のハードウェアCPU(図示せず)を含み得る。代替的には、ネットワークコントローラ114は、ホストサーバー102から利用可能な複数の計算リソースに常駐するソフトウェアアプリケーションを含み得る。ネットワーク回路104はまた、ネットワーク性能関連情報を記憶するように接続されたネットワークデータ記憶メモリ122を含む。いくつかの実施形態では、ネットワーク回路104は、1つ以上の特定用途向け集積回路(ASIC)として具体化されてもよい。記憶ボリューム106は、例えば、ディスクストレージ124および/またはフラッシュストレージ126を含み得る。
DCHインスタンス100は、個別データセンターとして個別に機能し得る。より詳細には、DCHインスタンス100は、複数のアプリケーションサービスを提供するサーバー(S)と、複数のサービスを提供するために使用される情報を提供するための記憶ボリューム(V)と、複数の情報パケットを複数のクライアントデバイス(図示せず)と通信するためのスイッチ/ルーター(X)とを含む。したがって、典型的なデータセンターの機能は、例えば、単一のDCHインスタンス100内にカプセル化され得る。
C.データセンターハードウェアインスタンスネットワーク(物理コンポーネント)
図2は、いくつかの実施形態による、DCHインスタンスのネットワークを含む例示的なデータセンターネットワーク(data center network : DCN)200の例示的な説明図である。DCN200は、パケット交換またはルーティングネットワーク内の複数のネットワーク接続299を介して結合された複数のDCHインスタンス200a〜200fを含む。図5を参照してより完全に以下に説明するように、DCHインスタンス200a〜200fのネットワーク回路104の部分は、「複数のノード」の「クラスター」として機能するように構成されて、複数のDCHインスタンスは、本明細書では「複数のノード」とも呼称されてもよい。各DCHインスタンス200a〜200fは、図1に記載されているように、サーバー(S)、ネットワーク回路(X)、および記憶ボリューム(V)を含むように構成され得る。スイッチ/ルーター(X)は、イーサネットパケット交換および/またはIPルーティングネットワークプロトコルを実装するように構成され得る。スイッチ/ルーター(X)は、MPLSプロトコルまたはVXLANプロトコルをサポートするように構成され得る。ネットワーク接続295を介してサーバー203aに結合された管理者コンピューティングデバイス228は、例えば、DCN動作を監視し、アプリケーションワークフローの複数の要求の変化に応じてDCN200の複数のコンポーネントを再設定するための管理ユーザインタフェース(user interface : UI)229を含む。以下でより完全に説明されるように、いくつかの実施形態では、サーバー(S)およびスイッチ/ルーター(X)の両方の再設定は、コンテナ化されたサービスの配布および管理を通じて達成され得る。さまざまなDCHインスタンスは、さまざまなレベルのコンピューティング、ストレージ、およびスイッチ/ルータ機能を有するように構成され得る。
例示的なDCN200はまた、汎用(例えば、従来型)スイッチ/ルータ201と、図2に示すように複数のネットワーク接続297を介して結合されたそれぞれの汎用記憶ボリューム205a、205b、205cに結合された汎用サーバー203a、203b、203cとを含み、これらを本明細書では「汎用(generic)」コンポーネントと呼称し得る。DCHインスタンス200a〜200fと汎用コンポーネント201、203a〜203c、205a〜205cとの間の共通性は、それらが共通オペレーティングシステム、いくつかの実施形態では、ネイティブLinuxオペレーティングシステムを含む共通オペレーティングシステムを実行することである。例示的なDCN200では、汎用サーバー203a〜203cおよびそれらの記憶ボリューム2005a〜2005cは、以下により完全に説明されるように、クラスター内で複数のノードとして機能するようにそれらを設定するように動作可能であるDCH200eに結合され、それらが結合されるDCH200eとそれらの計算およびストレージ能力を共有する。
DCN200は、インターネット210を介して複数の情報パケットを送受信するように構成され得る。例えば、ネットワーク接続293を介してDCH200eに接続されたルーティングデバイス212は、インターネット210を介して、DCN200と、ラップトップコンピュータまたはモバイルコンピューティングデバイス等の1つ以上の第1のクライアントデバイス214との間で複数のパケットを送受信するように構成され得る。DCN200はまた、例えばLAN等の第1のローカルネットワーク221を含む第1のプライベートネットワーク220間で複数のパケットを送受信し、第1のローカルネットワークに接続された複数の第2のクライアントデバイス224と複数のパケットを通信するように構成され得る。ネットワーク接続291を介してDCH200fに接続されたスイッチ/ルータ222は、例えば、ファイアウォールとして機能し、DCN200と1つ以上の第2のクライアントデバイス224との間で複数のパケットを結合し得る。DCN200はまた、例えば第2のLAN等の第2のローカルネットワーク231を含む第2のプライベートネットワーク230間で複数のパケットを送受信し、第2のローカルネットワーク231に接続された複数の第3のクライアントデバイス234と複数のパケットを通信するように構成され得る。例えばファイアウォールとして機能し得るスイッチ/ルータ232は、インターネット210と1つまたは複数の第3のクライアントデバイス234との間で複数のパケットを結合し得る。
共同所有の2017年3月31日に出願され「モジュラーシャーシ内の異種ネットワーク(Heterogeneous Network in a Modular Chassis)」と題する米国特許出願第15/476,664号、共同所有の2017年3月31日に出願され「部分的なシャットダウン中のプライオリティベースの電源オフ(Priority Based Power Off During Partial Shutdown)」と題する米国特許出願第15/476,673号、共同所有の2017年3月31日に出願され「ラインカードにファブリックが統合されたモジュラーシャーシ(Modular Chassis with Fabric Integrated into the Line Card)」)と題する米国特許出願番号第15/476,678号は、この参照によりその全体が明示的に本明細書に組み込まれ、いくつかの実施形態による分散型データセンターネットワーク200の具体化を開示している。
複数のDCHインスタンス200a〜200fは、DCN200と協調して動作するように構成されている。より詳細には、複数のDCHインスタンス200a〜200fの個別サーバー(S)、個別記憶ボリューム(V)、および個別ネットワーク回路(X)は、協働して、クライアントデバイス214,224、234と複数の情報パケットを通信する。DCN200の全容量(overall capacity)は、サービス容量を増加させるために多数のDCHインスタンスを増分的に結合することによって、およびサービス容量を減少させるために少数のDCHインスタンスを増分的に結合することによって、動的にスケーリングされることができる。
各DCHインスタンス200a〜200fは、DCN200へのインスタンスの追加を効率化するための組み込みシステムソフトウェアを含むコンテナロジック(container logic)114Dを含む。いくつかの実施形態では、コンテナロジック114Dは、ネットワークコントローラ114を設定して、インスタンスのDCN200へのオンボーディングを管理し得る。新たに追加されたDCHインスタンスの最初の電源投入から、組み込みコンテナロジック114Dは、ネットワーク発見、オペレーティングシステムソフトウェア(例えば、ネイティブLinux)のダウンロードおよび設定、および組み込みシステムのダウンロードおよび設定、ロジック114D自体を管理する。コンテナ114Dは、コンテナ化された複数のアプリケーションの管理において協働する複数のマシンのクラスターに参加するようにDCHを設定し得る。コンテナロジック114Dはまた、コンテナ化された複数のアプリケーションの管理において協働する複数のマシンのクラスターに参加するために、DCH200e等のDCHに結合された汎用サーバー203a〜203c等の複数の汎用サーバーを設定し得る。スイッチング/ルーティング/コンテナ機能は、任意の標準的なアプリケーションがDCHインスタンス上で実行されていることを認識することなく、既に利用することができるオペレーティングシステムリソース、例えばLinuxリソースとして、オペレーティングシステム、例えばLinuxに公開されている。したがって、スイッチング/ルーティング/コンテナロジックは、そのようなDCHまたは汎用マシン上で、DCHまたはマシンの基礎となるオペレーティングシステムに変更を加えることなく、実行することができる。ネットワークコントローラ114内で実行されている組み込みオペレーティングシステムを用いて、DCHインスタンス100のネットワーク回路(X)104のコンポーネントは、DCN200に結合され、例えば、コンテナ化されたネットワーク関連のアプリケーションを協働して提供するように構成された複数のDCHインスタンスのクラスターに参加するようにそれ自体をインストールおよび自己設定することができる。
D.複数のコンテナ
図3は、ホストオペレーティングシステム304で実行されている例示的なコンテナ302を示す説明図である。コンテナ302は、複数のアプリケーションサービスインスタンス306に加えて、ホストオペレーティングシステム304上で複数のアプリケーションサービスを実行するために必要な複数のコンピュータリソース(例えば、CPUおよびRAM)にアクセスするための複数のバイナリおよび複数のライブラリ(binaries and libraries)308を含む。より具体的には、例示的なコンテナ302は、オペレーティングシステム304のカーネル内でインスタンス化された複数のアプリケーションサービス302の仮想化されたインスタンスを含む。コンテナ302は、複数のアプリケーションサービス306を、オペレーティングシステム304およびそれがネットワークに接続するために使用する物理インフラストラクチャ(図示せず)から分離する。コンテナ304内で実行されている複数のアプリケーションインスタンス306は、それらに割り当てられた複数のオペレーティングシステムリソースのみを監視することができる。いくつかの実施形態によれば、割り当てられた複数のオペレーティングシステムリソースは、複数の仮想リソースのみにアクセスするのではなく、複数のコンテナが複数の物理ネットワークリソースにアクセスすることを可能にし得る。
概して、複数のコンテナは、複数のオペレーティングシステムリソースを共有することにより、少ないオーバーヘッドの分散型アプリケーションを実行するために使用され得る。複数のコンテナがオペレーティングシステムカーネル内でインスタンス化され、コンピュータの複数のリソースの一部分がそのような各コンテナに割り当てられてもよい。アプリケーションは、1つ以上のコンテナの集合としてパッケージ化され得る。アプリケーションは、高レベルのSaaS(system as a service)としてユーザーに提供され得る。アプリケーションとその複数のサービスを多くのコンテナに分散することで、冗長性及び移植性が向上し、アプリケーションがより多くのユーザーに提供され得る。単一のコンテナ内に、高レベルのアプリケーションの形成に役立つ複数のソフトウェアパッケージ/複数のライブラリ、複数のツールなどの複数のビルディングブロックアプリケーション(building-block applications)が存在することができる。複数のコンテナは、複数のアプリケーションサービスの要求の増加に応答して効率的なワークフロー管理を行うために、オンデマンドでデータセンターネットワークのサーバー間で作成および分散され、複数のアプリケーションサービスの要求の減少に応答して終了され得る。
E.コンテナのデプロイメント及び管理
図4は、複数のコンテナをデプロイおよび管理するシステムを示す例示的なブロック図である。以下の説明は、例として複数のコンテナ処理を自動化するための「kubernetes」プラットフォームを説明するために典型的に使用される用語を使用するが、複数のコンテナをデプロイおよび管理するための他のスタイルのコンテナ自動化プラットフォームは、明細書において開示された原則に従って使用され得る。Kubernetesは、複数のホスト間でコンテナ化された複数のアプリケーションを管理するためのオープンソースシステムであり、複数のアプリケーションのデプロイメント、メンテナンス、スケーリングのための基本的なメカニズムを提供する。(https://kubernetes.io/docs/homeを参照されたい。)kubernetesプラットフォームは、「複数のノード」と呼称される複数のマシンのクラスターを調整して、単一のユニットとして機能する。コンテナ化された複数のアプリケーションは、複数の個別ノードに特に結び付けることなく、クラスターにデプロイされる。複数のアプリケーションは、複数の個別ホストから切り離すために複数のコンテナとしてパッケージ化されてもよい。Kubernetesは、複数のノードのクラスター全体での複数のアプリケーションコンテナの分散、スケジューリング、スケーリングを自動化する。
汎用サーバー203a(またはDCHインスタンス200a〜200fのうちの1つまたは他の汎用サーバー203b〜203cのうちの1つ)などのマスターデバイスは、コンテナデプロイメント(container deployment)と、ホストオペレーティングシステム404のインスタンス上で実行するマスターモジュール402を提供するように構成され得る。代替的な実施形態では、マスター「デバイス」は、特定のサーバーおよび/またはDCHにまたがる分散サービスとして実装されることができる。1つ以上のワーカーノード(worker nodes)406はそれぞれ、1つ以上のポッド(pods)408を含み、各ポッド408は、ホストオペレーティングシステム404のインスタンス上で実行する1つ以上のコンテナ410を含む。本明細書で使用される場合、「ノード」は、DCHインスタンス200a〜200fのうちの1つなどの物理的であり得るワーカーマシン(worker machine)、またはそれらのうちの1つ以上でインスタンス化され得る複数の仮想マシン(図示せず)を指す。本明細書で使用される「ポッド」は、単一のノードにデプロイされた1つ以上のコンテナのグループを指す。ポッド内の複数のコンテナ410は、たとえば、CPU及びRAMなどの複数のワーカーノードリソースを共有する。管理者コンピュータ228などの管理者マシンは、複数の物理または仮想マシンを含む複数のノード上で複数のコンテナをスケジューリングおよび実行するために、所望のデプロイメント定義状態を示す複数のコマンドをマスターデバイス/コンピュータ203aに提供し得る。マスターデバイス/コンピュータ203aは、複数のノードのクラスター406を調整する。それは、管理者コンピュータ228によって提供されるデプロイメント定義に従って、複数のノード406のうちの1つまたはクラスター内の1つ以上のポッド408内の複数のグループのコンテナの実際のデプロイメントスケジューリングおよび実行を制御する。またそれは、1つ以上のノードが使用できなくなった場合のデプロイメントのレプリケーション(replication)を制御する。
ポッド408は、複数のコンテナ410とオペレーティングシステム404との間にインタフェース層412を提供し得る。インタフェース層412は、複数のコンテナワークロードをスケジューリングし、複数のコンテナ410間で共有CPU、スイッチ/ルータ、および複数のストレージリソースを割り当てるために用いられ得る。インタフェース412はまた、複数のノード間で複数のコンテナを移行する(migrate)ことをより容易にし得る。各ポッド408は、ポッド408内の複数のコンテナ410に関するステータス情報をマスターデバイス/コンピュータ203aに報告するエージェント(agent)414を含み、マスターデバイス/コンピュータ203aは、管理者コンピュータ228にステータスを提供し得る。
ノードは、典型的には、外部でルーティング可能な(クラスターの外部から利用可能な)外部IPアドレス(IPEnode)と、クラスター内でのみルーティング可能な内部IPアドレス(IPInode)を含む。ポッド408内でグループ化された複数のコンテナ408は、内部IPアドレス(IPIpod)を共有する。マスター/コンピュータ203aは、例えば複数のワークロードを分散するために、マスター203aがポッド408及び複数のコンテナ410と通信し得る仮想サブネット(virtual subnet)を定義し、複数のコンテナ410が、内部IPアドレスを使用して互いに通信し得る。
マスター/コンピュータ203aは、デプロイされた複数のポッド408および複数のコンテナ410のステータスを監視する。それは、例えば、オフラインになったノードを置き換えるためにノードを自動的に追加したり、消失したノードのポッドおよびノードを自動的に置き換えるために新しいポッドおよびコンテナを自動的に作成するなどの修正を行うことによって、実際のデプロイステータスと所望のデプロイメント定義状態との間の差異に応答し得る。マスター/コンピュータ203aは、例えば、複数のコンテナ410間でワークフローを分散するための複数のロードバランシングサービス(load balancing services)を提供し得る。
F.データセンターハードウェアノードクラスタ(コンテナ化されたアプリケーション)
図5は、いくつかの実施形態による、複数のコンテナ化されたアプリケーションを有する複数のノードのクラスターとして構成された図2の例示的なDCN200の例示的な説明図である。DCHインスタンス200a〜200fのサーバー(S)は、例示的なクライアント214、224、234のうちの1つまたは複数に複数のアプリケーションサービスを提供するために複数のコンテナを用いて設定される。コンテナA、B、Cは、1つまたは複数のDCHインスタンスの物理サーバー(S)102のCPU108上で直接または仮想マシン(図示せず)上のいずれかで実行し得る。複数のコンテナNは、複数のDCHインスタンスのスイッチ/複数のルータの回路(X)104の複数のネットワークコントローラ114上で実行し得る。
管理者コンピュータ228は、マスターデバイスとして機能するように構成され得るサーバー203aに、各コンテナA、B、C、Nのデプロイメント定義A〜C、Nを示す複数のコマンドを提供するように構成され得る。より具体的には、マスターデバイス/サーバー203は、デプロイメント定義A〜C、Nを使用して、コンテナA、B、C、Nのデプロイメントスケジューリングおよび実行およびスケーリングを管理するマスターモジュール240を用いて設定され得る。いくつかの実施形態によれば、200内の複数のDCHデバイスまたは複数の汎用サーバーのいずれかは、マスターモジュールとして機能するように構成され得る。さらに、マスターモジュールは、複数のサーバーおよび/またはDCHにまたがる分散サービスとすることができる。したがって、マスターモジュールは、固定された特化した専用マシンである必要はない。マスターモジュールとして機能するマシンに障害が発生した場合、DCHまたは汎用サーバーのいずれかがマスター機能を取得することができる。
例示的なDCN200では、マスターモジュール240は、定義Aを使用して200a、200b、200c、200e、および200fを含む複数のDCHインスタンスの第1のクラスターの構成を管理し、アプリケーションサービス「A」(コンテナA)を備えた複数のコンテナのインスタンスをホストする。また汎用サーバー203は、コンテナAを実行するように構成されている。マスターモジュール240は、定義Bを使用して200a、200c、200dを含む複数のDCHインスタンスの複数のサーバーの第2のクラスターの構成を管理し、アプリケーションサービス「B」(コンテナB)を有する複数のコンテナをホストする。マスターモジュール240は、定義Cを使用して200a、200dを含む複数のDCHインスタンスの複数のサーバーの第3のクラスターの構成を管理し、アプリケーションサービス「C」(コンテナC)を有する複数のコンテナをホストする。マスターモジュール240は、定義Nを使用して200a〜200fを含む複数のDCHインスタンスおよび汎用マシン203b、203cのスイッチ/複数のルータ(X)の第4のクラスターの構成を管理して、例えば、アプリケーションサービス「N」(コンテナN)を有する複数のコンテナをホストする。
コンテナA、B、Cは、たとえば、サーバーレベルのコンテナ式ビジネス(server-level container-based business)、パーソナル、またはエンターテインメントサービスを提供し得る。複数のコンテナNは、ネットワークレベルのコンテナ式サービスを提供する。定義Nは、例えば、図4を参照して説明したように、他のアプリケーションレベルのサービスおよびマイクロサービスがデプロイおよび管理されるのと同じ方法で、複数のネットワークサービスを提供する複数のコンテナをデプロイおよび管理するために使用され得る。
G.ネットワークパフォーマンスの監視およびプロービング(Probing)
DCN200のDCHインスタンス200a〜200fのネットワーク回路(X)104は、データセンタートラフィックの複数のネットワークパスに配置されている。また、DCH200eに接続された汎用サーバー203a〜203cは、データセンタートラフィックの複数のネットワークパスに配置されている。複数の個別DCHインスタンスのプローブロジック(probe logic)114Pは、対象とする複数のイベントの発生についてネットワークトラフィックを監視および記録する。複数のプローブロジックインスタンス114Piはネットワーク回路104内に作成されて、例えば、任意のDCH上で実行する異なるハードウェア要素または(マイクロサービスを含む)異なるアプリケーションプログラムなどの複数の異なるコンポーネントをプローブし得る。コンテナ化されたアプリケーションNは、定義Nに従ってマスターデバイス203aによって分配され、複数の個別ネットワーク回路104を設定してプローブロジック114Pを具体化し得る。以下により完全に説明されるように、ネットワーク定義Nは、クラスタデータにアクセスするためだけでなく、データを解析、キュレート(curate)、集約および記憶するためにもプローブロジック114Pを含むようにDCHを設定し得る。例えば、複数の個別プローブロジックインスタンス114Piは、複数のパケットをサンプリングして複数のパケットヘッダーから統計データを収集し、すなわち、DCHインスタンス200a〜200fに何が流れているかを決定し得る。対象とする複数のイベントをプローブするプローブロジックは、管理者によって設定され得る。いくつかの実施形態では、各DCNのネットワーク回路は、毎秒約15,000のデータポイントにアクセスできる。
図6は、いくつかの実施形態による、ネットワークトラフィックデータメトリック(network traffic data metrics)およびイベントの発生を監視および記憶するようにプローブロジックインスタンス114Piを設定する方法を示す例示的な第1のフロー図600である。ネットワークコントローラ114は、複数のプログラム命令に従って設定されて、図6のプロセスに従って、ネットワークトラフィックデータメトリックおよびイベントの発生を監視および記憶し得る。データトラフィックメトリックは、順序付けられたシーケンスの複数の時間増分の各々の間の複数のDCHコンポーネントのステータスを示し得る。プローブロジックインスタンス114Piは、第1のフロー600の多数の異なる実装形態を提供するように構成されてもよく、各実装形態は、異なるDCHコンポーネントのメトリックおよびイベントを生成するように向けられることを理解されたい。DCHインスタンス200a〜200fの複数のネットワーク回路104の複数の個別ネットワークコントローラ114は、第1のフロー図F00に従って設定され得る。第1のプローブブロック602は、DCNのネットワークコントローラ114によってDCN200を介して受信されたネットワークデータを時間増分で受信する。いくつかの実施形態では、データを受信することは、例えば、ネットワークプロトコルに従って複数のネットワークパケットを受信することを含み得る。いくつかの実施形態では、時間増分は毎秒であってもよく、その増分は、例えば、イベントのタイプおよび精度とリソース(計算/記憶)利用率との間のトレードオフとに応じて増加または減少されてもよい。第2のプローブブロック604は、時間増分のネットワークデータフローメトリックを生成する。第2のプローブブロック604は、受信したデータを解析、キュレート、および/または要約して、ネットワークデータフローメトリックを生成し得る。例えば、プローブロジックインスタンス114Piは、第2のブロック604の実装形態に従って、例えば、キュー内のデータフレームの数をカウントするカウンタを提供し、時間増分のために満たされたキューのパーセントを示すメトリック値を生成するように構成され得る。キュー割合メトリック値(queue percent metric value)は、キュー内のフレーム数がすぐにしきい値を超えるかどうかを示すキューフィルステータス(queue-fill status)の指標として機能し得る。代替的には、プローブロジックインスタンス114Piは、第2のブロック604の実装形態に従って、2つ以上のカウンタを提供して、2つ以上の異なるキューにおけるキュー深さ(queue depth)を監視し、2つ以上のキューにおけるフレーム数の分散を示すメトリック値を生成するように構成されてもよい。分散メトリック値は、例えば、分散がすぐにある分散閾値を超えるかどうかを示す2つ以上のキューのロードバランスステータス(load balance status)の指標として機能する。第3のプローブ決定ブロック606は、時間増分中に所定の条件の発生についてのメトリックを監視する。上記した複数の例を続けると、ある閾値数を超えるキュー内のフレーム数が発生に相当し得る場合、閾値を超える異なるキュー内のフレーム数の所定の条件および変動によって、例えば、ロードバランスイベントに相当し得る。現在の時間増分中のイベントの発生に応答して、プローブブロック608は、現在の時間増分についてのイベント発生の指標を記憶デバイス122に記憶する。ブロック608または現在の時間増分の間にイベントが発生しなかったという判定に応答した判定ブロック606に続いて、現在の時間増分のネットワークデータフローメトリックを記憶するプローブブロック610に制御は進む。
各ネットワークコントローラ114は、複数の異なるプローブロジックインスタンス114Piを実装するように構成され、各異なるプローブロジックインスタンスは、DCN200内のネットワークデータの異なる部分を受信し、DCN200のその部分におけるネットワークデータフローを示す異なるネットワークデータフローメトリックおよびイベント発生を生成して記憶する。異なるプローブロジックインスタンス114Piによって生成および記憶され得るデータフローメトリックのさらなる複数の例は、データパイプライン内の様々なポイントにおけるポート利用率、キュー深さ、キュー廃棄(queue drops)、エラーカウントおよび廃棄カウント、転送テーブル、アドレス利用率、およびどのように複数のノードが相互接続および分割され且つどのようにアプリケーションインスタンスが複数の個別ノード内でグループ化されるかを示すクラスタネットワークトポロジを含む。対象とする複数のイベントの追加の複数の例は、キュー廃棄、分散しきい値を超えるロードバランシング(load balancing)、規定のしきい値を超える廃棄率(drop rate)、プロトコルヘルスチェックの失敗、および規定のしきい値を超える遅延を含む。他の例は、サンプリングされた複数のパケットのヘッダーを監視し、どのIPアドレスが出入りしているかを判定し、履歴データの異常との比較によって、セキュリティ違反または攻撃の可能性があることを示すフラグが立てられることができる。
図7は、いくつかの実施形態による、そこに記憶される例示的なプローブベクトルP〜P702を実装するデータストレージメモリインスタンス122を示す例示的な説明図である。プローブベクトルP〜Pは、一連の時間増分t〜tについて記憶された対応する時系列シーケンスのデータ要素704を含む複数のデータ構造である。例えば、各プローブベクトルP〜Pは、時間増分t〜tにおける対応する時系列のデータ要素704を含む。プローブロジックインスタンス114Piは、各プローブ時系列データセットP〜Pについて、図6のフロー600の異なるインスタンスを提供し得る。より具体的には、例えば、異なるプローブベクトルP〜Pは、異なるイベントを示すデータメトリックを含む異なる時系列のデータ要素を含み、1つ以上の異なるイベント発生の対応する指標を含み得る。
DCHプローブロジックインスタンスは、DCH(または汎用サーバー)のポートコンポーネントに対応するプローブベクトルを生成するように構成され、図6の第1のフロー600に従って設定された各プローブロジックインスタンス(図示せず)は、例えば、時系列t〜Tの各時間増分におけるポート利用率を示すプローブベクトルPを生成し得る。DCHプローブロジックインスタンスは、DCH(または汎用サーバー)のキューコンポーネントの深さに対応するプローブベクトルを生成するように構成され、第1のフロー600に従って設定された各プローブロジックインスタンス(図示せず)は、例えば、時系列t〜Tの各時間増分におけるキューの深さを示す第4のプローブベクトルPを生成し得る。DCHプローブロジックインスタンスは、DCH(または汎用サーバー)のキューコンポーネントによるキュー廃棄に対応するプローブベクトルを生成するように構成され、図6の第1のフロー600に従って設定された各プローブロジックインスタンス(図示せず)は、例えば、各時間増分t〜Tにおけるキュー廃棄があったかどうかを示す第5のプローブ時系列データセットPを生成し得る。第5のプローブベクトルP内の第1の「X1」マーカーは、時間増分t14、すなわちプローブ/時間の組み合わせ(P、t14)におけるキュー廃棄を示す。DCHプローブロジックインスタンスは、DCH(または汎用サーバー)の複数のコンポーネントの比較計算負荷に対応するプローブベクトルを生成するように構成され得る。例えば、図6の第1のフロー600に従って設定されたX−2プローブロジックインスタンス(図示せず)は、例えば、各時間増分t〜Tにおけるロードバランスが分散閾値を超えたかどうかを示すX−2プローブベクトルPX−2を生成し得る。X−2番目のプローブベクトルPX−2内の第2の「X2」マーカーは、時間増分t15、すなわちプローブ/時間の組み合わせ(PX−2、t)においてロードバランシングが分散閾値を超えたことを示す。X番目のプローブベクトルP内の第3のマーカー「X3」は、時刻t15、すなわちプローブ/時間の組み合わせ(P、t15)における侵入イベント(intrusion event)の検出の発生を示す。
従って、以下により完全に説明されるように、クラスターに参加する複数の個別DCHは、それらのローカルCPUリソースを使用して、クラスターのデータのより広い視野(view)のために集約ポイントに複数のプローブベクトルを送信する前に、ネットワークデータの収集およびキュレーションをローカルで実行し得る。その結果、各DCHノードは複数のCPUリソースを含むので,プローブの多重度に対応するデータの処理は、クラスターのサイズに応じて自動的にスケーリングされる。このアプローチは、クラスターサイズが大きくなるにつれて「中央」コンピューティングが個別にスケーリングされる集中型モデルとは異なる。いくつかの実施形態によれば、DCHによるネットワークデータの前処理は、複数のローカルイベントの詳細な記録を提供する複数のプローブベクトルを生成し、多数のDCHによって生成された複数のプローブベクトルの集合は、次に、例えば、DCN200を管理するためのネットワーク管理システムのトレーニングに使用され得るネットワーク動作の全体像(global picture of network behavior)を提供する前処理されたデータとして機能する。図14を参照して以下に説明するように、複数のプローブベクトルに基づいて推論エンジン1404がトレーニングされると、推論エンジン1404は、新しいデータ1416に応答してリアルタイムでイベントの発生を予測し得る。
H.モニター時系列データセットおよびプローブ時系列データセットの集約
DCN200のDCHインスタンス200a〜200fのネットワーク回路(X)104は、それぞれのプローブベクトルP〜Pをマスターデバイス203aに公開するように構成されている。いくつかの実施形態では、プローブデータの収集に使用されるマスターデバイスは、複数のサーバーまたはDCHにまたがるサービスであり得る。さらに、データ収集に使用されるマスターは、複数のコンテナの調整に使用されるマスターと同じである必要はない。上記で説明したように、kubernetes環境では、複数のコンテナ410は、複数のポッド408内の複数のコンテナ410に関するステータス情報をマスターデバイス/コンピュータ203aに報告するために、複数のエージェント414を含む複数のポッド408内でグループ化され得る。より具体的には、マスター203aがDCHインスタンス200a〜200fのクラスターを設定して、プローブロジック114Pを実装するコンテナ化されたアプリケーション「N」(コンテナN)をホストするいくつかの実施形態では、各スイッチ/ルータ104のエージェント410は、プローブベクトルP−Pをマスターデバイス203に報告する。さらに、いくつかの実施形態によれば、汎用サーバー203a〜203cはまた、例示的な事例ではDCH200e等の最も近いDCHにネットワークデータを報告するように構成されてもよく、プロセス600を使用してメトリックを含み且つ複数の汎用サーバーによって報告されたデータに対応するイベントを識別する複数のプローブベクトルを生成し得る。
図8は、いくつかの実施形態による、複数のDCHの複数のプローブベクトル800の例示的な集合を示す例示的な説明図である。図8の各列は、時間間隔t−tにわたるプローブベクトルを示している。各プローブベクトルは、時系列のメトリックを含み、1つ以上のイベントの発生の指標を含み得るデータセットを示す。したがって、例えば、各プローブベクトルは、個別DCH200a〜200fまたは汎用サーバー203a〜203cの機能状態を示す状態情報、例えば、データパイプライン内の様々なポイントにおけるポート利用率、キュー深さ、キュー廃棄、エラーカウントおよび廃棄カウントと、転送テーブルと、アドレス利用率とを提供し得る。集合的に、複数のプローブベクトル800の集合は、各時間間隔t〜tにおける複数のノードのクラスター全体にわたるネットワーク状態の指標を提供し得る。したがって、クラスターの複数の物理コンポーネントの集合的な状態の観点から、クラスターの全体的な状態が経時的に観測されることができる。
図9は、いくつかの実施形態による、DCHインスタンス200a〜200fインスタンスのクラスターから複数のプローブベクトル702を収集するようにマスターデバイス203aを設定する方法を示す例示的な第3のフロー図900である。第1のプローブ収集ブロック902は、DCN200の各DCHインスタンス200a〜200fの各ネットワークコントローラコンポーネント114からプローブデータ702を受信する。マスターデバイス203aは、定義Nに従って、アプリケーションNの複数のインスタンスをホストするために複数のノードのクラスターとして機能するようにDCHインスタンス200a〜200fを設定する。複数のノードのクラスターとしての役割を果たすDCHインスタンス200a〜200fは、それらプローブデータ702をマスターデバイス203aに公開する。第2のプローブ収集ブロック904は、受信したプローブデータ702を集約して、プローブベクトル800の集合を生成する。
再び図8を参照すると、プローブベクトル800の例示的な事例の集合は、各プローブベクトルが時系列のデータ値を含むディメンションを示す複数のディメンションの時系列データ(multi-dimensional time series data)を提供する。複数のプローブベクトルの集合によって提供される複数のディメンションの時系列データは、どのように複数のノードが相互接続され分割されているか、どのように複数のノード間でネットワークトラフィックの負荷がどのように分散されているか、クラスター内のどこに複数の輻輳ポイントがあるか、どのタイプのトラフィック/フローがクラスターを経ているか、などを示すように使用され得る情報を提供し得る。以下により完全に説明されるように、リアルタイム動作中に収集された複数のプローブベクトル800の収集が、推論エンジン1404をトレーニングして複数のネットワークイベントの発生を予測し得るために用いられ得る。
I.リアルタイムのネットワーク状態の検出
複数のプローブベクトル702は、複数の物理ハードウェアDCHインスタンスのコンポーネントに対応する。複数の個別DCHインスタンス200a〜200fは、ポート、キュー、テーブル、パイプラインなどのハードウェアコンポーネントを含む。複数の個別DCHは、たとえば、DCHのホストされた複数のコンポーネントであるポート、キュー、テーブル、パイプラインなどの複数の仮想コンポーネントを含む複数の仮想マシンをホストし得る。複数の個別DCHインスタンス200a〜200fは、例えば、複数のアプリケーションサブ機能または複数のマイクロサービスを実装し得る複数のアプリケーションプログラムまたは複数のコンテナなどの複数のソフトウェアコンポーネントを含む。複数の個別DCHの複数のプローブロジックインスタンス114Piは、複数の個別DCHでのネットワーク関連動作を示す複数のプローブベクトルをローカルで生成する。複数の個別DCHから収集された複数のプローブベクトルの集合800は、データを集合的に含む複数のディメンションのデータを提供して、複数のノードのクラスターとして動作する複数の物理ハードウェアDCH内または複数の物理ハードウェアDCH間で発生する複数のネットワーク関連機能、例えば、キュー廃棄、ロードバランシング、キュー廃棄率、プロトコルヘルスチェック(protocol heath check)、およびパケット遅延時間を示す複数の値を提供する。
図2および図5に戻って参照すると、管理者は、管理システム228のUI229で複数のディメンションのデータを観測し得る。管理者は、例えば、直接的に閾値またはアルゴリズム監視を介して、複数のディメンションのデータ800内の複数の値を観測することによって、DCN200の状態、より具体的には、ノード200a〜200fのクラスターの状態を観測し得る。処理において、複数のディメンションのデータ800は、ネットワーク管理者によってリアルタイムで観測された場合、トラフィックを他の場所にリダイレクトする、クラスターの一部をシャットダウンする、デバッグする、分離する、および/または他の軽減技術のような即時の修正措置をとることを促すことがある完全なパニックではないにしても深刻な懸念を引き起こす可能性のある複数のディメンションを含み得る。複数のディメンションのデータ800から、管理者は、時間増分または一連の時間増分を選択し、1つ以上の時間増分内で複数のディメンションの全部または一部分を分析して、複数のネットワーク関連エラー(例えば、廃棄、到達不可能なノード/サービス、高レーテンシー)をトラブルシュート(trouble shoot)するか、ネットワーク関連のみならず非ネットワーク関連性能(例えば、ネットワーク通信関連アルゴリズムの変更によるロードバランスの向上、複数のアプリケーションの移動による複数のリソースの使用率の向上、クラスターネットワークを異なる方法でパーティション化することによる帯域幅の使用率の向上、キャッシュの異なる階層にデータを移動させることによるストレージの使用率の向上)について最適化することができる。
図7に戻って参照すると、管理者は、UI229を介して(P、t14)における第1の「X1」マーカーで示されるキュー廃棄イベントをリアルタイムで観測し、例えば、イベントの発生後に修正措置を実行し得る。同様に、管理者は、ロードバランシングが(PX−2、t15)における第2の「X2」マーカーで示される分散しきい値を超えたことを観測し、例えば、イベントの発生後に修正措置を実行し得る。また、管理者は、(P、t15)における第3の「X3」マーカーで示される侵入イベントを観測し、例えば、イベントの発生後に修正措置を実行し得る。しかし、以下により完全に説明されるように、1つ以上のイベントの発生に先行する1つ以上のプローブベクトルの時系列の値等のDCN200内の複数の状態を知ることにより、管理者は、1つ以上のイベントの実際の再発を回避するための修正措置を実行するために、それらが再発する前に、1つ以上のイベントの発生を予測し得る。より具体的には、1つ以上のイベントの以前の発生に至るまでの複数のプローブベクトル内の時系列データに基づく機械学習は、1つ以上のイベントの発生前に修正措置が実行され得るように、事前に1つ以上のイベントの他の発生を予測するための基礎を提供し得る1つ以上のプローブベクトル内の時系列データのパターンの発生をリアルタイムで識別するために、後に推論エンジン1404によって使用され得る。
J.ネットワーク状態を予測するための機械学習用の自己ラベリングレーニングデータ
図10Aは、いくつかの実施形態による、自己ラベリングされたトレーニングデータ(self-labeled training data)を生成するようにコンピュータシステムを設定する方法を示す例示的な第4のフロー図1000である。DCHまたはサーバーは、図10Aのプロセスに従って自己ラベルリングされたトレーニングデータを生成するように、複数のプログラム命令に従って設定され得る。以下で図13を参照してより完全に説明されるように、機械学習エンジン1402は、自己ラベリングされたトレーニングデータに基づいて推論エンジン1404をトレーニングして、すでに発生した後ではなく事前にネットワーク状態を予測するように構成され得る。第1のブロック1002は、プローブベクトルを受け取る。例えば、第1の1002は、図7のプローブベクトルPを受け取る。第2の判定ブロック1004は、現在受け取っているプローブベクトル内の1つまたは複数の値が、イベント等の対象とする状態の発生を示しているかどうかを判定する。対象とする状態が発生していないという判定に応答して、制御は、例えば、プローブベクトルP等の次のプローブベクトルを受け取る、複数のプローブベクトルスナップショット1002をトレーニングする第1のブロック1002に戻る。しかしながら、対象とする状態の発生の判定に応答して、制御は、第3のブロック1006に進み、識別された状態の名前を挙げる(name)ために、受け取ったベクトルにラベルを関連付ける。いくつかの実施形態によれば、ラベルは、イベントの発生を識別する。例えば、現在受け取っているプローブベクトルが例示的なプローブベクトルPである場合、第2の判定ブロック1004は、現在受け取っているプローブベクトルPが時刻t14におけるキュー廃棄イベントを示していると判定し、第3の自己ラベル付けブロック(self-label block)1006は、ラベル「キュー廃棄」を現在受け取っているプローブベクトルの時系列データ要素(P、t14)に関連付ける。ラベルはまた、イベントに関連付けられたコンポーネント、例えば、どのキュー、およびイベントに関連付けられたノード、例えば、どのDCHまたは他のサーバーを示し得る。第4のブロック1008は、タイムスタンプマーカーを現在受け取ったベクトルに関連付ける。例えば、プローブベクトルPを「キュー廃棄」ラベルでラベリングする例示的な事例を続けると、第4のブロック1008は、時間増分t14を示す時間マーカーでプローブベクトルPをラベル付けする。第4の自己ラベル付けブロック1008はまた、現在受け取ったベクトルを、予測された状態の深刻度および/または対象とする範囲等の他の識別データでラベル付けしてもよい。対象とする範囲は、例えば、時間の範囲、複数のノードの範囲、および/または複数のプローブベクトルの範囲(例えば、対象とする他の複数の列)を包含し得る。
第5のブロック1010は、一組の自己ラベル付けされたトレーニングスナップショットに含めるために1つまたは複数のプローブベクトルを選択する。いくつかの実施形態によれば、例えば、第5のブロック1010は、イベントのタイプに基づいてまたは複数のイベントの同時発生に基づいて、一組のトレーニングスナップショットに含まれるプローブベクトルの集合を選択し得る。一組のトレーニングスナップショットは、ある時間範囲内の複数のイベントの同時発生を包含するように、異なるイベントを含む複数のプローブベクトルを含み得る。たとえば、侵入(例えば、ハッカー攻撃)の検出は、サンプリングされたIPアドレス及びポート使用率に大きく相関するが、ロードバランスの変動またはストレージ使用率にはあまり相関しない。いくつかの実施形態によれば、例えば、第5のブロック1010は、例えば、イベントが発生したデバイスへのネットワーク近接性(network proximity)に基づいて、一組のトレーニングスナップショットに含まれるプローブベクトルの集合を選択し得る。ネットワーク近接性は、たとえば、BGPピア、フローパス内のノード、同じネットワークネームスペース(network namespace)内のノードなどに基づいてもよい。いくつかの実施形態によれば、例えば、第5のブロック1010は、例えば、イベントに対する時間的近接性に基づいて、一組のトレーニングスナップショットに含まれるプローブベクトルの集合を選択してもよい。たとえば、輻輳イベントは、イベントから数秒以内のデータに関連している可能性が高い。
第6のブロック1012は、タイムスタンプによって示される時刻の前におよび前まで延長され得る異なる範囲内の選択された複数のプローブベクトルのデータ要素を含み、タイムスタンプによって示される時刻も含み得る複数のトレーニングデータスナップショットを含むスナップショットデータ構造を生成する。各スナップショットはデータ構造であり、異なるスナップショットは、複数のプローブベクトルの同じ集合からの時系列データ要素を含み得るが、異なる時間範囲、およびおそらく異なるDCHについての時系列データ要素を含んでもよい。第7のブロック1014は、ブロック1006で判定されたラベルと一致する複数のスナップショットをラベル付けする。複数のスナップショットは、第2の決定ブロック1004によって識別されるイベントの発生等の条件を予測するために推論エンジン1404をトレーニングするように構成された以下に説明される機械学習システム1502によって使用され得る。ブロック1010、1012は、イベントの発生を事前に予測するように推論エンジン1404をトレーニングするために使用する複数のトレーニングプローブベクトルスナップショットを生成し得る。
第2の決定ブロック1004が対象とする条件の発生を示すトレーニングデータセット自体内のデータを検出することに基づいてそれらのラベリングが生じるので、複数のトレーニングプローブベクトルスナップショットは、「自己ラベリング(self-labeled)」と呼称される。すなわち、プローブベクトル自体は、プローブベクトルがラベル付けされたトレーニングデータとして使用されることを示すものとして判定ブロック1004によって認識されるデータを含む。したがって、プロセス1000は、例えば、対象とするイベントを示すために、ラベル付けされるべきプローブベクトルを識別し、トレーニングを支援するために、異なるノード、イベント、および時系列時間増分に対応する、複数のプローブベクトルまたはその一部分の十分に大きな集合の複数の部分を含み得る複数の対応するラベル付きスナップショットを生成する。さらに、マスターデバイス203aは、複数のプローブベクトル800の時系列の集合を、第4のフロー図1000に従って設定された別個のコンピュータシステム(図示せず)に送信して、リアルタイムで生じる必要はない複数のトレーニングプローブベクトルスナップショットを生成してもよいことを理解されたい。いくつかの実施形態によれば、「マスターデバイス」は、クラスター内に分散されるソフトウェアプロセスとして具体化されてもよい。したがって、マスターデバイスは、特定のマシンにロックされる必要はなく、任意の単一のマシン故障に対して耐性を有し得るように、ビルトイン冗長性(built-in redundancy)(つまり、複数のコンテナを持つアプリケーション/プロセス)を有し得る。
データ構造は、1つ以上のイベントの発生に至る一連の時間間隔の間に、DCN200内の1つ以上のクラスター内の複数のDCHの複数のコンポーネントの同時物理状態を集合的に示す複数のトレーニングスナップショットを含むことを理解されたい。以下に説明するように、複数のスナップショットデータ構造は、推論エンジン1404をトレーニングし、DCN200内の1つ以上のクラスター内の複数のDCHの複数のコンポーネントのリアルタイムの物理状態を、1つ以上のイベントの発生に到る可能性が高い一連のリアルタイム時間間隔にわたって予測するために用いられ得る。このような予測は、1つ以上の予測されたイベントの発生を回避するための修正措置を実行する基礎として使用され得る。
図10Bは、いくつかの実施形態による、自己ラベリングされたトレーニングデータを生成するようにコンピュータシステムを設定する代替的な方法を示す例示的な第5のフロー図1050である。DCHまたはサーバーは、図10Bのプロセスに従って自己ラベリングされたトレーニングデータを生成するように、複数のプログラム命令に従って設定され得る。以下で図13を参照してより完全に説明されるように、機械学習エンジン1402は、自己ラベリングされたトレーニングデータに基づいて推論エンジン1404をトレーニングして、すでに発生した後ではなく事前にネットワーク状態を予測するように構成され得る。
第1のブロック1052は、機械可読記憶デバイスにおいて、複数のトレーニングスナップショットを生成するための複数の組の1つ以上のイベントを選択するように複数の異なる組み合わせイベントセット選択基準(multiple different combinations event set selection criteria)を提供する。以下の表は、複数のイベントを選択するための例示的な基準を示している。第1のブロック1052は、例えば、イベントタイプ、時間範囲、ハードウェアデバイスまたはソフトウェアプロセスのうちの1つまたは複数を含み得る組み合わせを含む基準を示すように構成され得る。
Figure 2021530067
第2のブロック1054は、第1のブロック1052によって提供される一組のイベント選択基準を選択する。第3のブロック1056は、現在選択されているイベント選択基準に基づいて、1つまたは複数のイベントの発生について、図8の複数のプローブベクトル800の集合をスキャンする。例えば、現在選択されているイベント選択基準は、キュー廃棄イベントおよび分散しきい値イベントを超えるロードバランスの同時発生について複数のプローブベクトル800の集合をスキャンするように第3のブロック1406に指示し得る。第4の決定ブロック1058は、現在選択されているイベント選択基準と、複数のプローブベクトル800の集合内の1つまたは複数のイベント内の複数のイベントとの間に一致が存在するかどうかを判定する。存在しない場合、制御は、第2のブロック1054に戻り、第1のブロック1052によって提供される別の組のイベント選択基準を選択し得る。存在する場合、第5のブロック1060は、ラベルを、イベント選択基準に一致する複数のイベントを含む1つまたは複数のベクトルに関連付ける。第6のブロック1062は、タイムスタンプマーカーを、1つまたは複数のイベントマッチング基準に一致する1つまたは複数のベクトルのうちの対象とする最新のベクトル(latest vector)の発生時刻に関連付ける。トレーニングデータは、対象とする最新のイベントの前におよびそれまで延長し得る異なる時間範囲内の選択された/一致する複数のプローブベクトルの複数のプローブベクトルデータ要素を含み得る。しかしながら、そのトレーニングデータのラベルは、単一の最新イベントではなく、組み合わせイベントを参照する。したがって、いくつかの実施形態では、第6のブロック1062は、一致する1つまたは複数のイベントの中から最新の発生イベントの発生に時間的に対応するプローブベクトル内のデータ系列要素(data series element)でタイムスタンプマーカーをベクトルプローブに関連付ける。第7のブロック1064は、複数の自己ラベリングされたトレーニングスナップショットに含めるために1つまたは複数のプローブベクトルを選択する。第8のブロック1066は、タイムスタンプによって示される時刻またはそれ以前の異なる範囲内の選択された複数のプローブベクトルの複数のデータ要素を含む複数のスナップショットを生成する。第7および第8のブロック1064、1066は、例えば、図10Aのブロック1010、1012を参照して上記した方法で複数のプローブベクトルを選択し、複数のスナップショットを生成し得る。第9のブロック1068は、ブロック1060で決定されたラベルと一致する複数のスナップショットをラベル付けする。複数のスナップショットは、以下に説明する第2の判定ブロック1406,1058によって識別される一組のイベントの発生等の条件を予測するために推論エンジン1404をトレーニングするように構成される機械学習システム1402によって使用され得る。
図11は、いくつかの実施形態による、図10Aまたは図10Bのプロセスに従って生成されたラベル付きプローブベクトルスナップショットトレーニングデータの第1のセットを含む例示的なスナップショットデータ構造1100を示す例示的な説明図である。データ構造1103のコンポーネントであるラベルA1100は、例示的な4つのスナップショット1102〜1108を含み、コンポーネントAにおけるキュー廃棄イベントに至る一連の時間シーケンスにわたるDCH200aのコンポーネントA(図示せず)の物理的状態を集合的に示す。スナップショットデータ構造1100は、対象とするイベントの発生時刻を示す各タイムスタンプコンポーネントにおいてタイムスタンプ「T」1105を含み、この事例ではイベント「X1」の発生時刻であるt14である。より詳細には、スナップショットデータ構造1100の第1の例の自己ラベリングされたトレーニングスナップショットデータ1102のコンポーネントは、時間増分範囲t〜t13のDCH200aのプローブベクトルPの複数のデータ要素からなるサブシーケンスを含む。第1のスナップショット1102は、例えば、ノード200aの「示されているコンポーネントAでのキュー廃棄」を示し得る例示的なラベルA1103に関連付けられている。ラベルA1103は、キュー廃棄が発生したノード200aのポートの指示および/またはマシン名、ポート(ただし、この情報はポートベクトル内のデータとしてすでに含まれている場合がある)、そのマシン上で実行されている複数のアプリケーション、そのマシン上で実行されている複数のプロトコルなどの追加の物理ハードウェア識別情報を含み得る。しかしながら、マシン(例えば、DCH)の構成を示すデータは、それらが(マシン名のように)静的でない限り、複数のプローブベクトルの全体的な集合においてすでにそれら自体が複数のベクトルである可能性が高いことを理解されたい。データ構造1100の第2の例の自己ラベリングされたトレーニングスナップショット1104のコンポーネントは、時間増分範囲t〜t10のDCH200aのプローブベクトルPの複数のデータ要素からなるサブシーケンスを含む。第2のスナップショット1104も、ラベルAに関連付けられている。データ構造1100の第3の例の自己ラベリングされたトレーニングスナップショット1106は、時間増分範囲t〜tのDCH200aのプローブベクトルPの複数のデータ要素からなるサブシーケンスを含む。第3のスナップショット1106も、ラベルA1103に関連付けられている。データ構造1100の第4の例の自己ラベリングされたトレーニングスナップショット1108のコンポーネントは、時間増分範囲t〜tのDCH200aのプローブベクトルPの複数のデータ要素からなるサブシーケンスを含む。第4のスナップショット1108も、ラベルA1103に関連付けられている。例示的な複数の時間範囲は、データ構造110に対応するキュー廃棄イベントの発生の時間間隔t14までの時間間隔を含むが時間間隔t14を含まないように拡張されることに留意されたい。スナップショットデータ構造は、対応するイベントの時間間隔、そのようなイベントの前に発生する複数の時間間隔を含み得るが、イベントの前に発生するトレーニングデータは、概して、イベントを予測するために推論エンジン1404をトレーニングするためにより有用である。
スナップショット1108は、スナップショット1102、1104、1106の最後のデータ要素に対応する時間増分よりも早い時間増分tに対応する最後(最新)のデータ要素を含む複数のデータ要素からなるサブシーケンスを含むことに留意されたい。スナップショット1106は、スナップショット1102、1104の最後のデータ要素に対応する時間増分よりも早い時間増分tに対応する最後のデータ要素を含む複数のデータ要素からなるサブシーケンスを含む。スナップショット1104は、スナップショット1102の最後のデータ要素に対応する時間増分よりも早い時間増分t10に対応する最後のデータ要素を含む複数のデータ要素からなるサブシーケンスを含む。従って、スナップショット1102〜1108の例示的なシーケンスは、対象とするイベントPの発生時刻t14より遅くない最終時刻(latest time)をそれぞれ有する異なる4つの時間間隔の同じDCH200aについての同じプローブベクトル(P)を包含する。
図12は、いくつかの実施形態による、図10Aまたは図10Bのプロセスに従って生成された自己ラベリングされたプローブベクトルスナップショットトレーニングデータの第2のセットを含む例示的なスナップショットデータ構造を示す例示的な説明図1150である。データ構造1150のコンポーネントであるラベルB1153は、例示的な4つのスナップショット1152〜1158を含み、時間t15で生じる例示的なプローブベクトルPX−2によって示される分散しきい値イベントを超えるロードバランスに至る一連の時間シーケンスにわたるDCH200aのコンポーネントB(図示せず)の物理的状態を集合的に示す。スナップショットデータ構造1150は、対象とするイベントの発生時刻を示す各タイムスタンプコンポーネントにおいてタイムスタンプ「T」1155を含み、この事例ではイベント「X2」の発生時刻であるt15である。より詳細には、データ構造1150の第5の例の自己ラベリングされたトレーニングスナップショット1152のコンポーネントは、時間増分範囲t〜t14の各DCH200a〜200fのプローブベクトルP〜P,P50〜Pについての複数のデータ要素からなるサブシーケンスを含む。第5のスナップショット1152は、例えば、ノード200bのコンポーネントB(図示せず)における分散しきい値イベントを超えるロードバランスを示し得るラベルB1153に関連付けられている。ラベルは、上記したような追加情報を含んでもよい。データ構造1150の第6の例の自己ラベリングされたトレーニングスナップショット1154のコンポーネントは、時間増分範囲t〜t14の各DCH200a〜200fのプローブベクトルP〜P,P50〜Pについての複数のデータ要素からなるサブシーケンスを含む。第6のスナップショット1154も、ラベルB1153に関連付けられている。データ構造1150の第7の例のラベル付けプローブベクトルスナップショット1156のコンポーネントは、時間増分範囲t〜t13の各DCH200a〜200fのプローブベクトルP〜P,P50〜Pについての複数のデータ要素からなるサブシーケンスを含む。第7のスナップショット1156も、ラベルB1153に関連付けられている。データ構造1150の第8の例の自己ラベリングされたトレーニングスナップショット1158のコンポーネントは、時間増分範囲t〜t12の各DCH200a〜200fのプローブベクトルP〜P,P50〜Pについての複数のデータ要素からなるサブシーケンスを含む。第8のスナップショット1156も、ラベルB1153に関連付けられている。従って、スナップショット1152〜1158の例示的な複数のシーケンスは、同じDCH200a〜200fについて、対象とするイベントPX−2の発生時刻t15より遅くない最終時刻をそれぞれ有する異なる4つの時間間隔の同じ複数のプローブベクトル(P−P5、50−P)を包含する。
図13は、いくつかの実施形態による、図10Aまたは図10Bのプロセスに従って生成された自己ラベル付きプローブベクトルスナップショットトレーニングデータ1300の第3のセットを含む例示的なスナップショットデータ構造を示す例示的な説明図1300である。データ構造1300のコンポーネントであるラベルC1303は、例示的な12個のスナップショット1302〜1304を含み、時間t15で生じる例示的なプローブベクトルPによって示される侵入イベントに至る一連の時間シーケンスにわたるDCH200aのコンポーネントC(図示せず)の物理的状態を集合的に示す。スナップショットデータ構造1300は、対象とするイベントの発生時刻を示す各タイムスタンプコンポーネントにおいてタイムスタンプ「T」1305を含み、この事例ではイベント「X3」の発生時刻であるt15である。より詳細には、データ構造1300のそれぞれの第9〜第12のスナップショット1302〜1308のコンポーネントは、ラベルC1303と、時間増分t10〜t14、t〜t14、t〜t12、t〜t12に対するDCH200a〜200cの各々についてのプローブベクトルP〜Pとをそれぞれ含む。ラベルC1303は、例えば、「ノード200bにおける侵入イベントの検出」を示し、上記したような追加情報を含み得る。データ構造1300の第13〜第16のスナップショット1310〜1316の各々のコンポーネントは、ラベルCと、時間増分t10〜t14、t〜t14、t〜t12、t〜t12の各々のDCH200b〜200eの各々についてのプローブベクトルP〜Pを含む。データ構造1300の第17〜第20のスナップショット1318〜1324の各々のコンポーネントは、ラベルCと、時間増分t〜t13、t〜t13、t〜t13、t〜t13の各々のDCH200c〜200fの各々についてのプローブベクトルP〜Pと、を含む。従って、スナップショット1304〜1308,1310〜1316,1318〜1324の例示的な3つのシーケンスは、DCHs(DCHs200a〜200c,DCHs200b〜200e,DCHs200c〜200f)の異なる組合せについて、対象とするイベントPの発生時刻tより遅くない最終時刻をそれぞれ有する異なる4つの時間間隔について、同じ時間間隔(t〜t13、t〜t13、t〜t13、t〜t13)の同じ複数のプローブベクトル(P−P)をそれぞれ包含する。
イベントに先行する時系列データ(例えば、イベントのタイムスタンプに先行する1つまたは複数のプローブベクトル内の時系列データ)は、イベントとの相関および/または因果関係を有するデータを提供し得る。スナップショットデータ構造1100、1150、1300は、タイムスタンプでタグ付けされ、対応するイベントを示すためにラベル付けされている。データ構造1100、1150、1300のトレーニングスナップショットのコンポーネントは、例えば、推論エンジン1404をトレーニングしてイベントの発生前に予防措置が実行され得るようにイベントの発生を予測するために用いられ得る。予測されるキュー廃棄イベントの場合、予防措置は、例えば、トラフィックのリダイレクト(redirecting)、ロードバランシングスキームの変更、複数のアプリケーション(複数のコンテナ)のDCN200内の別の場所への移動、複数のホスト(つまり、複数のサーバー)または複数のストレージターゲットへのフロー制御の送信、複数のレート制限ポート、異なるネットワークのパーティション化を含み得る。分散閾値イベントを超える予測されたロードバランシングの場合、予防処置は、例えば、ロードバランシングスキームの変更、複数のアプリケーション(複数のコンテナ)の200内の別の場所への移動、DCN200内のIPアドレス指定方式の再割り当て、異なるネットワークのパーティション化を含み得る。
自己ラベリングされたラベル付きプローブベクトルスナップショットトレーニングデータは、イベントの発生を事前に予測するために推論エンジン1404のトレーニングに使用するための異なる時間増分における複数のプローブベクトルデータ要素を含む。一組の自己ラベリングされたラベル付きプローブベクトルスナップショットトレーニングデータ内の異なるスナップショットは、イベントが発生する前の異なる時間増分範囲を含む。任意の時間増分におけるイベントの発生は、イベントの発生前の1つまたは複数のプローブベクトルの時間要素データに基づいて予測され得る。一組のスナップショットトレーニングデータは、異なる最終時間増分を含む異なる時間増分範囲を含む。従って、一組のスナップショットトレーニングデータは、スナップショットが異なる範囲の時間増分をカバーする複数のスナップショットからなる時間シーケンスを含み、シーケンス内の各スナップショットは、シーケンス内の次のスナップショットの最終時間増分とは異なる最終時間増分を有する。いくつかの実施形態では、複数のスナップショットシーケンス内の各スナップショットは、スナップショットシーケンス内の次のスナップショットの最終時間増分よりも早い最終時間増分を有する。いくつかの実施形態では、シーケンス内の最後のスナップショット以外の各スナップショットは、シーケンス内の少なくとも1つの他のスナップショットの最終時間増分よりも遅い最終時間増分を有する。時間を遡り過ぎる複数のラベル付きトレーニングプローブベクトルスナップショットを生成することは、データが事象と相関しなくなり、正確性を損ない、偽陽性(false positives)を生成する可能性があるので、機械学習エンジンによるトレーニングにさらなる改善をもたらす可能性は低い。従って、どれだけトレーニングセットが時間的に遡っているかについての制限または制約が必要とされ得る。予測精度と、どれだけ前もって推論エンジンが対象とする状態を予測するかとの間には、トレードオフが必要になり得る。
特定のプローブベクトルは他のものよりもイベントの発生をより予測することができるので、自己レベリングされたラベル付きプローブベクトルスナップショットトレーニングデータは、複数のプローブベクトルの異なる組み合わせからの複数のデータ要素を含み得る。さらに、複数のプローブベクトルは非常に大きくなる可能性があるので、機械学習アルゴリズムによって必要とされるトレーニング時間および必要とされる計算能力は、非常に多く又は非常に高価になる可能性がある。トレーニングのために使用される複数のディメンションの時系列ベクトル内のデータ量は、予測可能性のために含めるために戻る履歴時間増分の数を維持しながら、時間スタンプ当たりのより小さいディメンション化されたトレーニングデータを生成するように低減され得る。あるアプリオリインテリジェンス(priori intelligence)は、ある条件に特有のトレーニングにどのデータを含めるかに関して、管理者によって合理的に適用され得る。複数のラベル付きトレーニングプローブベクトルスナップショットのサイズは、すべての条件で同じである必要はない。つまり、トレーニングデータが構築される複数のプローブベクトル800の集合は変化しないが、特定のラベル/条件のトレーニングセットに含まれるデータは変化し得る。
いくつかの事例では、機械学習の収束時間を短縮するだけでなく、精度を向上させるために、複数のプローブベクトルからデータが省略されてもよい。例えば、トレーニングデータから既知の非相関の複数のディメンションを除去することによって、機械学習アルゴリズムに提示される「ノイズ」が少なくなり、より正確な予測を行うことができる。
K.ネットワークの状態を予測するための機械学習
図14は、いくつかの実施形態による、複数のラベル付きトレーニングプローブベクトルスナップショットに基づいて複数のネットワーク状態を予測するために推論エンジン1404をトレーニングするように構成された教師あり学習システム1402を示す例示的な説明図である。1ノードあたり毎秒数万を含み得る多くのプローブベクトルが生成される場合、ネットワーク状態の発生を識別するために、人的時間(human time)でリアルタイムネットワーク解析を実行することは不可能である。また、マシンが、現在利用可能なモニターおよびプローブ時系列データセットに基づくネットワーク状態に対して、定型的に提案されたアクション(例えば、アラーム、警告、予測、動作)を有するリアルタイム(例えば、ミリ秒の時間スケール)で到達することは不可能である。いくつかの実施形態によれば、機械学習が適用されて、複数のプローブベクトル内に含まれる履歴データから学習し、そのようなデータに基づいてネットワーク状態の発生を予測するための推論モデルを生成し得る。いくつかの実施形態では、推論モデルは、入力として複数のディメンションのベクトルを受け取り、出力としてネットワーク状態の指標を提供し得る伝達関数を含み得る。
機械学習エンジン1402は、機械学習(machine learning : ML)アルゴリズム1406に従って設定されたコンピュータシステム1403を含み得る。推論エンジン1404は、伝達関数1414に従って設定されたコンピュータシステム1405を含み得る。アルゴリズム1406は、決定木、ナイーブベイズ分類、最小二乗回帰、SVM、PCA、ICA、またはクラスタリング等であり、例えば、イベントの発生を検出するためにイベント発生予測伝達関数1414をトレーニングする。教師あり学習システム1402は、図14に示すように、複数のラベル付きトレーニングプローブベクトルスナップショット1412を受け取る。トレーニング中、複数のラベルなしトレーニングベクトル1410は、複数の時間増分にわたって生成された複数のプローブベクトルを含み、複数のラベル付きトレーニングプローブベクトルスナップショット1412は、推論エンジン1404をトレーニングするためにMLエンジン1402に入力され得る。推論の間、新しいデータ1416である。新しいデータ1416は、それがトレーニングのためにまだ使用されていないという点で「新しい(new)」ものである。新しいデータ1416は、伝達関数1414に基づいて例えば、複数のイベント等の複数の予測状態を示す複数の推論値1420を生成するために推論エンジン1404に提供される、複数の新しいプローブベクトル1418に変換された複数の時間増分にわたるリアルタイムプローブベクトルデータを含み得る。いくつかの実施形態では、マスターデバイス203aは、推論エンジン1404を含むように構成されてもよい。また、マスターデバイス203aは、複数の新しいベクトル1418、例えば、DCH200a〜200fのプローブベクトルP〜Pの新しいイテレーション(iterations)を含む、複数の新しいプローブベクトル800を新しいデータ1416として受け取るように構成されてもよい。推論エンジン1404は、例えば、複数の新しいプローブベクトルに基づいて、マーカーX1、X2またはX3によって示される上述した複数のイベントの発生を予測するようにトレーニングされ得る。
予測伝達関数は、複数の時間増分のローリングウィンドウ(rolling window)にわたって複数のディメンションのベクトル1418を入力として受け取り、将来、ある状態がいくつかの時間増分で生じるか否かを予測し得る。出力が正である(条件が発生する)場合、その状態が発生する前に回避するために複数の工程が実行され得る。実行可能な複数の工程/動作の例は、1つ以上のボックスのロードバランシングアルゴリズムの変更、アプリケーションがデプロイされる場所の変更、直接接続されたサーバーまたは記憶デバイスへのEthernetポーズフレーム(Ethernet pause frame)の送信、リンクのシャットダウンを含み得る。
上記した説明は、当業者が、複数のアプリケーションを実行またはホストしているノードのデータセンタークラスタのためのトレーニングデータに自己ラベリングするシステムおよび方法を作成および使用できるようにするために提示されている。複数の実施形態への様々な修正は当業者には容易に明らかであり、本明細書において定義される一般原理は、本発明の趣旨および範囲から逸脱することなく、他の実施形態および用途に適用され得る。上記した説明では、多くの詳細が説明の目的で示されている。例えば、電気外科信号発生器回路は、シーラーステージ(sealer stage)および解剖ステージを制御するように別個のプロセスを実行するための複数の命令で設定される単一のプロセッサを含み得る。しかしながら、当業者は、本発明がこれらの特定の詳細を使用せずに実施され得ることを理解するであろう。他の複数の例では、不必要な詳細で本発明の説明を曖昧にしないために、周知の複数のプロセスがブロック図の形で示されている。同一の参照符号が、異なる図面における同じまたは類似のアイテムの描写を示すように用いられ得る。したがって、本発明による複数の実施形態の前述の説明および図面は、本発明の原理の単なる例示である。したがって、添付の特許請求の範囲に定義されている本発明の趣旨および範囲から逸脱することなく、当業者が複数の実施形態に様々な変更を加えることができることが理解されよう。

Claims (28)

  1. データセンター内の複数のイベントを予測する推論エンジンをトレーニングするためのトレーニングデータを生成するように構成されたシステムであって、
    少なくとも1つのプロセッサと、
    該少なくとも1つのプロセッサに動作可能に接続された少なくとも1つの非一時的なコンピュータ可読媒体であって、前記少なくとも1つのプロセッサにアクセス可能であり且つ前記少なくとも1つのプロセッサによって実行可能である前記非一時的なコンピュータ可読媒体に関連付けられて格納された複数の命令を含む前記非一時的なコンピュータ可読媒体と、を備え、
    前記複数の命令は、
    実行された場合、少なくとも1つのデータセンターハードウェア(DCH)インスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成する複数の第1の命令であって、各プローブベクトルは、複数のデータ要素からなる時系列シーケンスを含み、各データ要素は、対応する複数の時間増分からなるシーケンスにおけるそれぞれのプローブベクトルに対応するコンポーネントの状態を示し、前記複数のプローブベクトルは、1つ以上のプローブベクトルに対応する1つ以上のそれぞれのコンポーネントにおける1つ以上のイベントの発生を示し且つ前記1つ以上のイベントに対応する1つ以上の発生時刻を示す、前記複数の第1の命令と、
    実行された場合、複数のトレーニングスナップショットを含むデータ構造を生成する複数の第2の命令と、を含み、
    各トレーニングスナップショットは、前記複数のプローブベクトルのうちの1つ以上からの複数のデータ要素からなる対応するサブシーケンスを含み、前記複数のプローブベクトルのうちの1つ以上からの複数のデータ要素からなる対応するサブシーケンスは、前記1つ以上のイベントのうちの少なくとも1つに対応する指定された発生時刻よりも遅くないそれぞれの時間増分に対応するそれぞれの最終データ要素を含む、システム。
  2. 前記複数のデータ要素からなる対応するサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなる対応するサブシーケンスのうちの他の少なくとも1つのそれぞれの最終データ要素に対応するそれぞれの時間増分よりも遅い時間増分に対応するそれぞれの最終データ要素を含む、請求項1に記載のシステム。
  3. 前記複数の第2の命令は、実行された場合、前記複数のトレーニングスナップショットにラベルを付けて、前記イベントが発生した各コンポーネントを識別する、請求項1に記載のシステム。
  4. 前記複数の第2の命令は、実行された場合、前記複数のトレーニングスナップショットにラベルを付けて、前記イベントを識別する、請求項1に記載のシステム。
  5. 前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも2つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項1に記載のシステム。
  6. 前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも2つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
    前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも3つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項1に記載のシステム。
  7. 前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも2つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
    前記複数のデータ要素のサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素のサブシーケンスのうちの他の少なくとも3つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
    前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも4つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項1に記載のシステム。
  8. 前記複数の第1の命令は、実行された場合、データセンターネットワーク(DCN)内で結合された少なくとも2つのDCHインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成する、請求項1に記載のシステム。
  9. 前記複数の第1の命令は、実行された場合、データセンターネットワーク(DCN)内で結合された少なくとも2つのDCHインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
    各それぞれのトレーニングスナップショットは、前記DCNの少なくとも2つのDCHの各々の1つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含む、請求項1に記載のシステム。
  10. 前記複数の第1の命令は、実行された場合、DCNの第1のDCHを設定して、前記第1のDCHの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
    前記複数の第1の命令は、実行された場合、前記DCNの第2のDCHを設定して、前記第2のDCHの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
    各トレーニングスナップショットは、前記第1のDCHおよび前記第2のDCHの各々の1つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含む、請求項1に記載のシステム。
  11. 前記複数の第1の命令は、実行された場合、DCNの第1のDCHを設定して、前記第1のDCHの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
    前記複数の第1の命令は、実行された場合、DCNの第2のDCHを設定して、前記第2のDCHの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
    前記複数の第2の命令は、実行された場合、前記各トレーニングスナップショットを生成するようにマスターデバイスを設定し、
    実行された場合、前記第1のDCHによって生成された複数のプローブベクトルをネットワークを介してマスターデバイスに報告し、前記第2のDCHによって生成された複数のプローブベクトルを前記ネットワークを介して前記マスターデバイスに報告する複数の第3の命令をさらに含む請求項1に記載のシステム。
  12. 前記複数の第1の命令は、実行された場合、データセンターネットワーク(DCN)内で結合された少なくとも2つのDCHインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
    各トレーニングスナップショットは、前記DCNの少なくとも2つのDCHの各々の1つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含み、
    前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも2つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
    前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも3つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
    前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも4つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項1に記載のシステム。
  13. データセンター内の複数のイベントを予測する推論エンジンをトレーニングするためのトレーニングデータを生成する方法であって、
    少なくとも1つのデータセンターハードウェア(DCH)インスタンスにおいて複数のプローブロジックインスタンスによって、前記少なくとも1つのDCHインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成することであって、各プローブベクトルは、複数のデータ要素からなる時系列シーケンスを含み、各データ要素は、対応する複数の時間増分からなるシーケンスにおけるそれぞれのプローブベクトルに対応するコンポーネントの状態を示し、前記複数のプローブベクトルは、1つ以上のプローブベクトルに対応する1つ以上のそれぞれのコンポーネントにおける1つ以上のイベントの発生を示し且つ前記1つ以上のイベントに対応する1つ以上の発生時刻を示す、前記複数のプローブベクトルを生成すること、
    マスターデバイスにおいて、複数のトレーニングスナップショットを含む対応するデータ構造を生成すること、を備え、
    各トレーニングスナップショットは、前記複数のプローブベクトルのうちの1つ以上からの複数のデータ要素からなる対応するサブシーケンスを含み、前記複数のプローブベクトルのうちの1つ以上からの複数のデータ要素からなる対応するサブシーケンスは、前記1つ以上のイベントのうちの少なくとも1つに対応する指定された発生時刻よりも遅くないそれぞれの時間増分に対応するそれぞれの最終データ要素を含む、方法。
  14. 前記複数のデータ要素からなる対応するサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなる対応するサブシーケンスのうちの他の少なくとも1つのそれぞれの最終データ要素に対応するそれぞれの時間増分よりも遅い時間増分に対応するそれぞれの最終データ要素を含む、請求項13に記載の方法。
  15. 前記複数のトレーニングスナップショットにラベルを付けて、前記イベントが発生した各コンポーネントを識別することをさらに含む請求項13に記載の方法。
  16. 前記複数のトレーニングスナップショットにラベルを付けて、前記イベントを識別することをさらに含む請求項13に記載の方法。
  17. 前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも2つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項13に記載の方法。
  18. 前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも2つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
    前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記データ要素からなるサブシーケンスのうちの他の少なくとも3つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項13に記載の方法。
  19. 前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも2つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
    前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも3つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
    前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記データ要素からなるサブシーケンスのうちの他の少なくとも4つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項13に記載の方法。
  20. 前記少なくとも1つのDCHインスタンスにおいて前記複数のプローブロジックインスタンスによって生成することは、
    データセンターネットワーク(DCN)内で結合された少なくとも2つのDCHインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、を含む、請求項13に記載の方法。
  21. 前記少なくとも1つのDCHインスタンスにおいて前記複数のプローブロジックインスタンスによって生成することは、
    データセンターネットワーク(DCN)内で結合された少なくとも2つのDCHインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、を含み、
    前記マスターデバイスにおいて複数のトレーニングスナップショットを含む前記データ構造を生成することは、
    各それぞれのトレーニングスナップショットが前記DCNの少なくとも2つのDCHの各々の1つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含む前記複数のトレーニングスナップショットを生成すること、を含む、請求項13に記載の方法。
  22. DCNの第1のDCHを設定して、前記第1のDCHの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、
    前記DCNの第2のDCHを設定して、前記第2のDCHの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、をさらに含み、
    前記マスターデバイスにおいて複数のトレーニングスナップショットを含む前記データ構造を生成することは、
    各それぞれのトレーニングスナップショットが前記第1のDCH及び第2のDCHの各々の1つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含む前記複数のトレーニングスナップショットを生成すること、を含む、請求項13に記載の方法。
  23. DCNの第1のDCHを設定して、前記第1のDCHの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、
    前記DCNの第2のDCHを設定して、前記第2のDCHの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、
    前記複数のトレーニングスナップショットを含むデータ構造を生成するようにマスターデバイスを設定すること、
    前記第1のDCHによって生成された複数のプローブベクトルをネットワークを介してマスターデバイスに報告し、前記第2のDCHによって生成された複数のプローブベクトルを前記ネットワークを介して前記マスターデバイスに報告すること、をさらに含む請求項13に記載の方法。
  24. 前記少なくとも1つのDCHインスタンスにおいて前記複数のプローブロジックインスタンスによって生成することは、
    データセンターネットワーク(DCN)内で結合された少なくとも2つのDCHインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、を含み、
    前記マスターデバイスにおいて複数のトレーニングスナップショットを含む前記データ構造を生成することは、
    各それぞれのトレーニングスナップショットが前記DCNの少なくとも2つのDCHの各々の1つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含む前記複数のトレーニングスナップショットを生成すること、を含み、
    前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも2つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
    前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも3つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
    前記複数のデータ要素からなるサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも4つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項13に記載の方法。
  25. 複数の命令を記憶する非一時的なコンピュータ可読媒体であって、前記複数の命令は、方法に従って生成された非一時的なコンピュータ可読媒体に記憶された情報構造を含み、前記方法は、
    少なくとも1つのDCHインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成することであって、各プローブベクトルは、複数のデータ要素からなる時系列シーケンスを含み、各データ要素は、対応する複数の時間増分からなるシーケンスにおける前記プローブベクトルに対応するそれぞれのコンポーネントの状態を示し、前記複数のプローブベクトルは、1つ以上のプローブベクトルに対応する1つ以上のそれぞれのコンポーネントにおける1つ以上のイベントの発生を示し、前記1つ以上のイベントに対応する1つ以上の発生時刻を示す、前記複数のプローブベクトルを生成すること、
    複数のトレーニングスナップショットを含むデータ構造を生成すること、を含み、
    各トレーニングスナップショットは、前記複数のプローブベクトルのうちの1つ以上からの複数のデータ要素からなる対応するサブシーケンスを含み、前記複数のプローブベクトルのうちの1つ以上からの複数のデータ要素からなる対応するサブシーケンスは、前記1つ以上のイベントのうちの少なくとも1つに対応する指定された発生時刻よりも遅くない各時間増分に対応するそれぞれの最終データ要素を含む、非一時的なコンピュータ可読媒体。
  26. 前記複数のデータ要素からなる対応するサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるそれぞれのサブシーケンスのうちの他の少なくとも1つのそれぞれの最終データ要素に対応するそれぞれの時間増分よりも遅い時間増分に対応するそれぞれの最終データ要素を含む、請求項25に記載の非一時的なコンピュータ可読媒体。
  27. 複数の命令を記憶する非一時的なコンピュータ可読媒体であって、前記複数の命令は、コンピューティングシステムの1つまたは複数のコンピュータプロセッサによって実行されると、前記コンピューティングシステムに、
    少なくとも1つのDCHインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成することであって、各プローブベクトルは、複数のデータ要素からなる時系列シーケンスを含み、各データ要素は、対応する複数の時間増分からなるシーケンスにおける前記プローブベクトルに対応するそれぞれのコンポーネントの状態を示し、前記複数のプローブベクトルは、1つ以上のプローブベクトルに対応する1つ以上のそれぞれのコンポーネントにおける1つ以上のイベントの発生を示し、前記1つ以上のイベントに対応する1つ以上の発生時刻を示す、前記複数のプローブベクトルを生成すること、
    複数のトレーニングスナップショットを含むデータ構造を生成すること、を含む複数の動作を実行させ、
    各トレーニングスナップショットは、前記複数のプローブベクトルのうちの1つ以上からの複数のデータ要素からなるそれぞれのサブシーケンスを含み、前記複数のプローブベクトルのうちの1つ以上からの複数のデータ要素からなるそれぞれのサブシーケンスは、前記1つ以上のイベントのうちの少なくとも1つに対応する指定された発生時刻よりも遅くない各時間増分に対応するそれぞれの最終データ要素を含む、非一時的なコンピュータ可読媒体。
  28. 前記複数のデータ要素からなるそれぞれのサブシーケンスのうちの少なくとも1つは、前記複数のデータ要素からなるそれぞれのサブシーケンスのうちの他の少なくとも1つのそれぞれの最終データ要素に対応するそれぞれの時間増分よりも遅い時間増分に対応するそれぞれの最終データ要素を含む、請求項27に記載の非一時的なコンピュータ可読媒体。
JP2021520085A 2018-06-22 2019-06-13 データセンターハードウェアインスタンスネットワークのトレーニング Revoked JP2021530067A (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/016,362 2018-06-22
US16/016,362 US10956832B2 (en) 2018-06-22 2018-06-22 Training a data center hardware instance network
PCT/US2019/036974 WO2019245850A1 (en) 2018-06-22 2019-06-13 Training a data center hardware instance network

Publications (1)

Publication Number Publication Date
JP2021530067A true JP2021530067A (ja) 2021-11-04

Family

ID=67108205

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021520085A Revoked JP2021530067A (ja) 2018-06-22 2019-06-13 データセンターハードウェアインスタンスネットワークのトレーニング

Country Status (4)

Country Link
US (1) US10956832B2 (ja)
JP (1) JP2021530067A (ja)
CN (1) CN112513815A (ja)
WO (1) WO2019245850A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10956832B2 (en) 2018-06-22 2021-03-23 Platina Systems Corporation Training a data center hardware instance network
US20200184043A1 (en) * 2018-12-11 2020-06-11 Avago Technologies International Sales Pte. Limited Multimedia content recognition with local and cloud-assisted machine learning
US20200196011A1 (en) * 2018-12-15 2020-06-18 Activision Publishing, Inc. Systems and Methods for Receiving Digital Media and Classifying, Labeling and Searching Offensive Content Within Digital Media
US11188696B1 (en) 2019-04-15 2021-11-30 Cadence Design Systems, Inc. Method, system, and product for deferred merge based method for graph based analysis pessimism reduction
CN110460488B (zh) * 2019-07-01 2022-10-18 华为技术有限公司 业务流识别方法和装置、模型生成方法和装置
US11258659B2 (en) * 2019-07-12 2022-02-22 Nokia Solutions And Networks Oy Management and control for IP and fixed networking
US11803510B2 (en) * 2020-02-10 2023-10-31 International Business Machines Corporation Labeling software applications running on nodes of a data center
CN111651866B (zh) * 2020-05-12 2023-03-17 北京华如科技股份有限公司 一种基于动态负载迁移及时间同步的仿真执行方法及系统
US11343310B2 (en) * 2020-09-25 2022-05-24 Vmware, Inc. Detecting anomalies in a distributed application
CN113364888B (zh) * 2021-06-30 2022-05-31 重庆紫光华山智安科技有限公司 服务调度方法、系统、电子设备及计算机可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012188027A (ja) * 2011-03-11 2012-10-04 Omron Automotive Electronics Co Ltd 情報処理装置、情報処理方法、およびプログラム
JP2016058027A (ja) * 2014-09-12 2016-04-21 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ処理装置、データ処理方法、およびプログラム
JP2016062544A (ja) * 2014-09-22 2016-04-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、プログラム、及び情報処理方法
JP2016173782A (ja) * 2015-03-18 2016-09-29 エヌ・ティ・ティ・コミュニケーションズ株式会社 故障予測システム、故障予測方法、故障予測装置、学習装置、故障予測プログラム及び学習プログラム

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5357395A (en) 1992-06-25 1994-10-18 Schlumberger Technology Corporation Undervoltage protection circuit, system and method of operating same
EP0663634B1 (en) 1994-01-14 2003-05-14 Sun Microsystems, Inc. Smart switch
US6334219B1 (en) 1994-09-26 2001-12-25 Adc Telecommunications Inc. Channel selection for a hybrid fiber coax network
US7657706B2 (en) 2003-12-18 2010-02-02 Cisco Technology, Inc. High speed memory and input/output processor subsystem for efficiently allocating and using high-speed memory and slower-speed memory
US20080012603A1 (en) 2006-07-17 2008-01-17 Wadhwa Sanjay K Brown out detector
US8907520B2 (en) 2007-03-14 2014-12-09 Zonit Structured Solutions, Llc Parallel redundant power distribution
US7583674B2 (en) 2006-11-20 2009-09-01 Alcatel Lucent Switch and method for supporting internet protocol (IP) network tunnels
US7925081B2 (en) * 2007-12-12 2011-04-12 Fuji Xerox Co., Ltd. Systems and methods for human body pose estimation
US8077726B1 (en) 2008-12-10 2011-12-13 Juniper Networks, Inc. Fast reroute for multiple label switched paths sharing a single interface
US9077654B2 (en) 2009-10-30 2015-07-07 Iii Holdings 2, Llc System and method for data center security enhancements leveraging managed server SOCs
US8228100B2 (en) 2010-01-26 2012-07-24 Freescale Semiconductor, Inc. Data processing system having brown-out detection circuit
US9106527B1 (en) 2010-12-22 2015-08-11 Juniper Networks, Inc. Hierarchical resource groups for providing segregated management access to a distributed switch
US9442876B2 (en) 2012-05-18 2016-09-13 Dell Products, Lp System and method for providing network access for a processing node
US9092223B1 (en) 2012-05-31 2015-07-28 Google Inc. Systems and methods to save power in data-center networks
US8989192B2 (en) 2012-08-15 2015-03-24 Futurewei Technologies, Inc. Method and system for creating software defined ordered service patterns in a communications network
US9485276B2 (en) 2012-09-28 2016-11-01 Juniper Networks, Inc. Dynamic service handling using a honeypot
US9507586B2 (en) 2012-10-05 2016-11-29 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Virtual machine based controller and upgrade mechanism
US8924619B2 (en) 2013-03-15 2014-12-30 Seagate Technology Llc Unified message-based communications
US9136624B1 (en) 2013-03-28 2015-09-15 Juniper Networks, Inc. Orthogonal cross-connecting of printed circuit boards without a midplane board
US9755960B2 (en) 2013-09-30 2017-09-05 Juniper Networks, Inc. Session-aware service chaining within computer networks
US9017087B1 (en) 2013-10-18 2015-04-28 Tyco Electronics Corporation Cable connector assembly and cable tray having a floatable cable connector
US9235245B2 (en) 2013-12-04 2016-01-12 Sandisk Enterprise Ip Llc Startup performance and power isolation
US9223734B2 (en) 2013-12-13 2015-12-29 Avago Technologies General Ip (Singapore) Pte. Ltd. Switch with synthetic device capability
US9722926B2 (en) 2014-01-23 2017-08-01 InMon Corp. Method and system of large flow control in communication networks
US20160154756A1 (en) 2014-03-31 2016-06-02 Avago Technologies General Ip (Singapore) Pte. Ltd Unordered multi-path routing in a pcie express fabric environment
US9870410B2 (en) * 2014-09-15 2018-01-16 Microsoft Technology Licensing, Llc Constructed data stream for enhanced event processing
US10261851B2 (en) * 2015-01-23 2019-04-16 Lightbend, Inc. Anomaly detection using circumstance-specific detectors
US10191527B2 (en) 2015-05-14 2019-01-29 Arm Limited Brown-out detector
US10097017B2 (en) 2015-06-24 2018-10-09 Apple Inc. Systems and methods for bidirectional two-port battery charging with boost functionality
US10038650B2 (en) 2015-08-25 2018-07-31 Futurewei Technologies, Inc. System and method for tunnel stitching transport
US10038572B1 (en) 2015-09-11 2018-07-31 Amazon Technologies, Inc. Programmable tunnel creation for hardware-based packet processing
US10116521B2 (en) * 2015-10-15 2018-10-30 Citrix Systems, Inc. Systems and methods for determining network configurations using historical real-time network metrics data
US9985903B2 (en) 2015-12-29 2018-05-29 Amazon Technologies, Inc. Reliable, out-of-order receipt of packets
US20170269959A1 (en) 2016-03-15 2017-09-21 Intel Corporation Method, apparatus and system to send transactions without tracking
US9898069B1 (en) 2016-03-31 2018-02-20 Amazon Technologies, Inc. Power reduction methods for variable sized tables
US10386913B2 (en) 2016-04-01 2019-08-20 Platina Systems Corporation Priority based power-off during partial power loss
CN107273262A (zh) * 2017-05-23 2017-10-20 深圳先进技术研究院 一种硬件事件的预测方法及系统
US10956832B2 (en) 2018-06-22 2021-03-23 Platina Systems Corporation Training a data center hardware instance network

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012188027A (ja) * 2011-03-11 2012-10-04 Omron Automotive Electronics Co Ltd 情報処理装置、情報処理方法、およびプログラム
JP2016058027A (ja) * 2014-09-12 2016-04-21 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation データ処理装置、データ処理方法、およびプログラム
JP2016062544A (ja) * 2014-09-22 2016-04-25 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 情報処理装置、プログラム、及び情報処理方法
JP2016173782A (ja) * 2015-03-18 2016-09-29 エヌ・ティ・ティ・コミュニケーションズ株式会社 故障予測システム、故障予測方法、故障予測装置、学習装置、故障予測プログラム及び学習プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
近藤喜芳 ほか: "時間付きマルコフモデルを用いた障害検知手法の提案", 電子情報通信学会技術研究報告, vol. 第115巻, JPN6023032415, 12 April 2016 (2016-04-12), JP, pages 109 - 112, ISSN: 0005124707 *

Also Published As

Publication number Publication date
US20190392354A1 (en) 2019-12-26
US10956832B2 (en) 2021-03-23
CN112513815A (zh) 2021-03-16
WO2019245850A1 (en) 2019-12-26

Similar Documents

Publication Publication Date Title
JP2021530067A (ja) データセンターハードウェアインスタンスネットワークのトレーニング
US11115466B2 (en) Distributed network services
US11165631B1 (en) Identifying a root cause of alerts within virtualized computing environment monitoring system
EP2672668B1 (en) Facilitating the operation of a virtual network by predicting a failure
US11438214B2 (en) Operational analytics in managed networks
US9606896B2 (en) Creating searchable and global database of user visible process traces
US10924329B2 (en) Self-healing Telco network function virtualization cloud
CN110011869B (zh) 控制器装置、方法及计算机可读存储介质
US20200401936A1 (en) Self-aware service assurance in a 5g telco network
JP6575949B2 (ja) Mtcイベント管理方法およびシステム
US10083051B1 (en) System, method, and code for classifying resources of a virtual computing environment
US11916721B2 (en) Self-healing telco network function virtualization cloud
JP2022515994A (ja) ネットワーククラウド内で動作するエンティティの活動のオーケストレーション
Moghaddam et al. Performance-aware management of cloud resources: a taxonomy and future directions
US20220060369A1 (en) Intent-based distributed alarm service
GB2564863A (en) Containerized application platform
Pisa et al. VNEXT: Virtual network management for Xen-based testbeds
Perez-Espinoza et al. A distributed architecture for monitoring private clouds
Vuong et al. Distributed Event Monitoring for Software Defined Networks
US11570260B1 (en) Data collection configuration file generation
EP4184880A1 (en) Cloud network failure auto-correlator

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220610

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230428

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230516

AA91 Notification that invitation to amend document was cancelled

Free format text: JAPANESE INTERMEDIATE CODE: A971091

Effective date: 20230801

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20230808

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20240305