(57)【要約】データセンター内の複数のイベントを予測するために推論エンジンをトレーニングするためのトレーニングデータセットを生成する方法が提供される。方法は、データセンターの複数のコンポーネントに対応する複数のプローブベクトルを生成することであって、各プローブベクトルは、複数のデータ要素からなるシーケンスを含み、複数のプローブベクトルのうちの１つは、コンポーネントのイベントの時刻におけるイベントを示す、生成すること、マスターデバイスで一組のトレーニングスナップショットを生成すること、を含む。各トレーニングスナップショットは、示されたイベントの発生時刻に一致するか又は以前に発生した時間増分に対応する複数のデータ要素からなるサブシーケンスを含む。
2021530067.tif 000002
【特許請求の範囲】
【請求項１】
データセンター内の複数のイベントを予測する推論エンジンをトレーニングするためのトレーニングデータを生成するように構成されたシステムであって、
少なくとも１つのプロセッサと、
該少なくとも１つのプロセッサに動作可能に接続された少なくとも１つの非一時的なコンピュータ可読媒体であって、前記少なくとも１つのプロセッサにアクセス可能であり且つ前記少なくとも１つのプロセッサによって実行可能である前記非一時的なコンピュータ可読媒体に関連付けられて格納された複数の命令を含む前記非一時的なコンピュータ可読媒体と、を備え、
前記複数の命令は、
実行された場合、少なくとも１つのデータセンターハードウェア（ＤＣＨ）インスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成する複数の第１の命令であって、各プローブベクトルは、複数のデータ要素からなる時系列シーケンスを含み、各データ要素は、対応する複数の時間増分からなるシーケンスにおけるそれぞれのプローブベクトルに対応するコンポーネントの状態を示し、前記複数のプローブベクトルは、１つ以上のプローブベクトルに対応する１つ以上のそれぞれのコンポーネントにおける１つ以上のイベントの発生を示し且つ前記１つ以上のイベントに対応する１つ以上の発生時刻を示す、前記複数の第１の命令と、
実行された場合、複数のトレーニングスナップショットを含むデータ構造を生成する複数の第２の命令と、を含み、
各トレーニングスナップショットは、前記複数のプローブベクトルのうちの１つ以上からの複数のデータ要素からなる対応するサブシーケンスを含み、前記複数のプローブベクトルのうちの１つ以上からの複数のデータ要素からなる対応するサブシーケンスは、前記１つ以上のイベントのうちの少なくとも１つに対応する指定された発生時刻よりも遅くないそれぞれの時間増分に対応するそれぞれの最終データ要素を含む、システム。
【請求項２】
前記複数のデータ要素からなる対応するサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなる対応するサブシーケンスのうちの他の少なくとも１つのそれぞれの最終データ要素に対応するそれぞれの時間増分よりも遅い時間増分に対応するそれぞれの最終データ要素を含む、請求項１に記載のシステム。
【請求項３】
前記複数の第２の命令は、実行された場合、前記複数のトレーニングスナップショットにラベルを付けて、前記イベントが発生した各コンポーネントを識別する、請求項１に記載のシステム。
【請求項４】
前記複数の第２の命令は、実行された場合、前記複数のトレーニングスナップショットにラベルを付けて、前記イベントを識別する、請求項１に記載のシステム。
【請求項５】
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも２つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項１に記載のシステム。
【請求項６】
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも２つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも３つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項１に記載のシステム。
【請求項７】
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも２つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
前記複数のデータ要素のサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素のサブシーケンスのうちの他の少なくとも３つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも４つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項１に記載のシステム。
【請求項８】
前記複数の第１の命令は、実行された場合、データセンターネットワーク（ＤＣＮ）内で結合された少なくとも２つのＤＣＨインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成する、請求項１に記載のシステム。
【請求項９】
前記複数の第１の命令は、実行された場合、データセンターネットワーク（ＤＣＮ）内で結合された少なくとも２つのＤＣＨインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
各それぞれのトレーニングスナップショットは、前記ＤＣＮの少なくとも２つのＤＣＨの各々の１つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含む、請求項１に記載のシステム。
【請求項１０】
前記複数の第１の命令は、実行された場合、ＤＣＮの第１のＤＣＨを設定して、前記第１のＤＣＨの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
前記複数の第１の命令は、実行された場合、前記ＤＣＮの第２のＤＣＨを設定して、前記第２のＤＣＨの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
各トレーニングスナップショットは、前記第１のＤＣＨおよび前記第２のＤＣＨの各々の１つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含む、請求項１に記載のシステム。
【請求項１１】
前記複数の第１の命令は、実行された場合、ＤＣＮの第１のＤＣＨを設定して、前記第１のＤＣＨの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
前記複数の第１の命令は、実行された場合、ＤＣＮの第２のＤＣＨを設定して、前記第２のＤＣＨの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
前記複数の第２の命令は、実行された場合、前記各トレーニングスナップショットを生成するようにマスターデバイスを設定し、
実行された場合、前記第１のＤＣＨによって生成された複数のプローブベクトルをネットワークを介してマスターデバイスに報告し、前記第２のＤＣＨによって生成された複数のプローブベクトルを前記ネットワークを介して前記マスターデバイスに報告する複数の第３の命令をさらに含む請求項１に記載のシステム。
【請求項１２】
前記複数の第１の命令は、実行された場合、データセンターネットワーク（ＤＣＮ）内で結合された少なくとも２つのＤＣＨインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成し、
各トレーニングスナップショットは、前記ＤＣＮの少なくとも２つのＤＣＨの各々の１つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含み、
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも２つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも３つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも４つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項１に記載のシステム。
【請求項１３】
データセンター内の複数のイベントを予測する推論エンジンをトレーニングするためのトレーニングデータを生成する方法であって、
少なくとも１つのデータセンターハードウェア（ＤＣＨ）インスタンスにおいて複数のプローブロジックインスタンスによって、前記少なくとも１つのＤＣＨインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成することであって、各プローブベクトルは、複数のデータ要素からなる時系列シーケンスを含み、各データ要素は、対応する複数の時間増分からなるシーケンスにおけるそれぞれのプローブベクトルに対応するコンポーネントの状態を示し、前記複数のプローブベクトルは、１つ以上のプローブベクトルに対応する１つ以上のそれぞれのコンポーネントにおける１つ以上のイベントの発生を示し且つ前記１つ以上のイベントに対応する１つ以上の発生時刻を示す、前記複数のプローブベクトルを生成すること、
マスターデバイスにおいて、複数のトレーニングスナップショットを含む対応するデータ構造を生成すること、を備え、
各トレーニングスナップショットは、前記複数のプローブベクトルのうちの１つ以上からの複数のデータ要素からなる対応するサブシーケンスを含み、前記複数のプローブベクトルのうちの１つ以上からの複数のデータ要素からなる対応するサブシーケンスは、前記１つ以上のイベントのうちの少なくとも１つに対応する指定された発生時刻よりも遅くないそれぞれの時間増分に対応するそれぞれの最終データ要素を含む、方法。
【請求項１４】
前記複数のデータ要素からなる対応するサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなる対応するサブシーケンスのうちの他の少なくとも１つのそれぞれの最終データ要素に対応するそれぞれの時間増分よりも遅い時間増分に対応するそれぞれの最終データ要素を含む、請求項１３に記載の方法。
【請求項１５】
前記複数のトレーニングスナップショットにラベルを付けて、前記イベントが発生した各コンポーネントを識別することをさらに含む請求項１３に記載の方法。
【請求項１６】
前記複数のトレーニングスナップショットにラベルを付けて、前記イベントを識別することをさらに含む請求項１３に記載の方法。
【請求項１７】
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも２つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項１３に記載の方法。
【請求項１８】
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも２つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記データ要素からなるサブシーケンスのうちの他の少なくとも３つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項１３に記載の方法。
【請求項１９】
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも２つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも３つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記データ要素からなるサブシーケンスのうちの他の少なくとも４つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項１３に記載の方法。
【請求項２０】
前記少なくとも１つのＤＣＨインスタンスにおいて前記複数のプローブロジックインスタンスによって生成することは、
データセンターネットワーク（ＤＣＮ）内で結合された少なくとも２つのＤＣＨインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、を含む、請求項１３に記載の方法。
【請求項２１】
前記少なくとも１つのＤＣＨインスタンスにおいて前記複数のプローブロジックインスタンスによって生成することは、
データセンターネットワーク（ＤＣＮ）内で結合された少なくとも２つのＤＣＨインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、を含み、
前記マスターデバイスにおいて複数のトレーニングスナップショットを含む前記データ構造を生成することは、
各それぞれのトレーニングスナップショットが前記ＤＣＮの少なくとも２つのＤＣＨの各々の１つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含む前記複数のトレーニングスナップショットを生成すること、を含む、請求項１３に記載の方法。
【請求項２２】
ＤＣＮの第１のＤＣＨを設定して、前記第１のＤＣＨの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、
前記ＤＣＮの第２のＤＣＨを設定して、前記第２のＤＣＨの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、をさらに含み、
前記マスターデバイスにおいて複数のトレーニングスナップショットを含む前記データ構造を生成することは、
各それぞれのトレーニングスナップショットが前記第１のＤＣＨ及び第２のＤＣＨの各々の１つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含む前記複数のトレーニングスナップショットを生成すること、を含む、請求項１３に記載の方法。
【請求項２３】
ＤＣＮの第１のＤＣＨを設定して、前記第１のＤＣＨの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、
前記ＤＣＮの第２のＤＣＨを設定して、前記第２のＤＣＨの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、
前記複数のトレーニングスナップショットを含むデータ構造を生成するようにマスターデバイスを設定すること、
前記第１のＤＣＨによって生成された複数のプローブベクトルをネットワークを介してマスターデバイスに報告し、前記第２のＤＣＨによって生成された複数のプローブベクトルを前記ネットワークを介して前記マスターデバイスに報告すること、をさらに含む請求項１３に記載の方法。
【請求項２４】
前記少なくとも１つのＤＣＨインスタンスにおいて前記複数のプローブロジックインスタンスによって生成することは、
データセンターネットワーク（ＤＣＮ）内で結合された少なくとも２つのＤＣＨインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成すること、を含み、
前記マスターデバイスにおいて複数のトレーニングスナップショットを含む前記データ構造を生成することは、
各それぞれのトレーニングスナップショットが前記ＤＣＮの少なくとも２つのＤＣＨの各々の１つ以上のプローブベクトルの各々からの複数のデータ要素からなるサブシーケンスを含む前記複数のトレーニングスナップショットを生成すること、を含み、
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも２つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも３つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含み、
前記複数のデータ要素からなるサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるサブシーケンスのうちの他の少なくとも４つの最終データ要素に対応する時間増分よりも遅い時間増分に対応する最終データ要素を含む、請求項１３に記載の方法。
【請求項２５】
複数の命令を記憶する非一時的なコンピュータ可読媒体であって、前記複数の命令は、方法に従って生成された非一時的なコンピュータ可読媒体に記憶された情報構造を含み、前記方法は、
少なくとも１つのＤＣＨインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成することであって、各プローブベクトルは、複数のデータ要素からなる時系列シーケンスを含み、各データ要素は、対応する複数の時間増分からなるシーケンスにおける前記プローブベクトルに対応するそれぞれのコンポーネントの状態を示し、前記複数のプローブベクトルは、１つ以上のプローブベクトルに対応する１つ以上のそれぞれのコンポーネントにおける１つ以上のイベントの発生を示し、前記１つ以上のイベントに対応する１つ以上の発生時刻を示す、前記複数のプローブベクトルを生成すること、
複数のトレーニングスナップショットを含むデータ構造を生成すること、を含み、
各トレーニングスナップショットは、前記複数のプローブベクトルのうちの１つ以上からの複数のデータ要素からなる対応するサブシーケンスを含み、前記複数のプローブベクトルのうちの１つ以上からの複数のデータ要素からなる対応するサブシーケンスは、前記１つ以上のイベントのうちの少なくとも１つに対応する指定された発生時刻よりも遅くない各時間増分に対応するそれぞれの最終データ要素を含む、非一時的なコンピュータ可読媒体。
【請求項２６】
前記複数のデータ要素からなる対応するサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるそれぞれのサブシーケンスのうちの他の少なくとも１つのそれぞれの最終データ要素に対応するそれぞれの時間増分よりも遅い時間増分に対応するそれぞれの最終データ要素を含む、請求項２５に記載の非一時的なコンピュータ可読媒体。
【請求項２７】
複数の命令を記憶する非一時的なコンピュータ可読媒体であって、前記複数の命令は、コンピューティングシステムの１つまたは複数のコンピュータプロセッサによって実行されると、前記コンピューティングシステムに、
少なくとも１つのＤＣＨインスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成することであって、各プローブベクトルは、複数のデータ要素からなる時系列シーケンスを含み、各データ要素は、対応する複数の時間増分からなるシーケンスにおける前記プローブベクトルに対応するそれぞれのコンポーネントの状態を示し、前記複数のプローブベクトルは、１つ以上のプローブベクトルに対応する１つ以上のそれぞれのコンポーネントにおける１つ以上のイベントの発生を示し、前記１つ以上のイベントに対応する１つ以上の発生時刻を示す、前記複数のプローブベクトルを生成すること、
複数のトレーニングスナップショットを含むデータ構造を生成すること、を含む複数の動作を実行させ、
各トレーニングスナップショットは、前記複数のプローブベクトルのうちの１つ以上からの複数のデータ要素からなるそれぞれのサブシーケンスを含み、前記複数のプローブベクトルのうちの１つ以上からの複数のデータ要素からなるそれぞれのサブシーケンスは、前記１つ以上のイベントのうちの少なくとも１つに対応する指定された発生時刻よりも遅くない各時間増分に対応するそれぞれの最終データ要素を含む、非一時的なコンピュータ可読媒体。
【請求項２８】
前記複数のデータ要素からなるそれぞれのサブシーケンスのうちの少なくとも１つは、前記複数のデータ要素からなるそれぞれのサブシーケンスのうちの他の少なくとも１つのそれぞれの最終データ要素に対応するそれぞれの時間増分よりも遅い時間増分に対応するそれぞれの最終データ要素を含む、請求項２７に記載の非一時的なコンピュータ可読媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
本願は、２０１８年６月２２日に出願された米国特許出願第１６／０１６，３６２に対する優先権の利益を主張し、参照によりその全体が本明細書に組み込まれる。
データセンターは、どのような規模であっても、構築、運用、保守が複雑である。さまざまなタイプのテクノロジーとスキルセット、チーム、ツール、相互運用性を組み合わせることは、論理的に困難である。データセンターを完全に機能させるには、時間の経過とともに段階的な改善が必要になる場合がある。データセンターが完全に機能するまでには、すべての要素を理解している人がほとんどいないほど複雑になり、ビジネスニーズに合わせた再構成又は新しいテクノロジーの導入は、最初の構築と同等以上に拡張することが困難になる可能性がある。
【０００２】
現代のデータセンターは、典型的には、例えば、様々なＷｅｂプロトコル、言語プラットフォーム、ユーザーに完全なデスクトップを提供することができる仮想マシン、またはマイクロサービスを提供するためのコンテナ化されたアプリケーションのいずれかを介してアプリケーションワークフローへのクライアントアクセスを提供し得るサーバーのネットワークを含む。典型的な複数のデータセンターハードウェアリソースは、複数のサーバー、複数のネットワークコンポーネント、複数の記憶ボリュームを含み得る。複数のサーバーは、複数のアプリケーションワークフローを管理し且つ複数のクライアント要求に応答する。複数のネットワークスイッチは、複数のデータセンターサーバーを接続してワークフローを管理する。複数のネットワークルーターは、複数のパケット転送機能を実行する。複数のネットワークゲートウェイは、データセンターネットワークとインターネットとの間の複数のジャンクションとして機能し得る。複数の記憶ボリュームは、複数のアプリケーションワークフローを提供するために複数のサーバーによって用いられる情報を記憶する。データセンターは、さまざまなアプリケーションワークフローをサポートし得る。
【０００３】
データセンターの管理は、データセンターの複数のワークフロー要件を監視すること、複数のクライアント要求の変化に応じてさまざまなアプリケーションワークフローへのデータセンターのリソース割り当てを調整することを含む。データセンターは、複数のハードウェアリソースを設定、監視、およびパーティション化する１つ以上のコントローラと、ハードウェアリソース間でソフトウェア及び複数のサービスがどのようにデプロイされるか、または分配されるかを管理するオーケストレーター（orchestrator）と、データセンター内で実行される複数のアプリケーションソフトウェア自体と、を含み得る。これらのハードウェアリソース、コントローラ、オーケストレーター、およびアプリケーションからの多くのデータが存在し、データセンターのオペレータが監視して、リソース割り当ての管理、トラブルシューティング、パフォーマンスの最適化、および拡張の計画を実行する。これらのデータは、典型的には、１つまたは別の機能領域に焦点を当てた複数のツールによって収集され、その特定の機能領域の複数のドメインエキスパートによって解釈される。様々な機能領域からすべてのデータを集約して大規模な（おそらく巨大な）データベースに収集することは困難ではないが、そのような大規模なデータセットの解釈は、データのサイズだけでなく、複雑さとデータを利用するために必要なドメイン間の知識によって、指数関数的に困難になる可能性がある。データセンターの規模と複雑さが増大するにつれ、これらのデータを有用なリアルタイムの方法で利用することは、人間だけではますます困難になっている。
【発明の概要】
【０００４】
データセンターは、複数のデータセンターの機能を共有するためにクラスター化され得る複数の物理デバイスなどの多数の物理コンピューティングインスタンスを備える。複数の異なるインスタンスの複数のコンポーネントが同時にプローブされて、時間増分のシーケンス（sequence of time increments）において異なるインスタンスのコンポーネントのステータスを示す複数のデータ値シーケンス（data value sequences）を含む複数のプローブベクトルを生成し得る。複数のプローブベクトルは、複数のイベントの発生を示し得る。１つまたは複数のイベントに至る複数のデータ値シーケンスの異なるサブシーケンスを含む複数のスナップショットを含む１つまたは複数のスナップショットデータ構造が生成され、１つまたは複数のイベントの発生に至る一組の一連の時間間隔におけるデータセンターネットワーク内の１つまたは複数のクラスター内の複数のノードの複数のコンポーネントの同時物理状態を示す。１つまたは複数のデータ構造は、機械学習トレーニングデータとして機能し、リアルタイムデータセンターの動作中に収集されたプローブデータに基づいて複数のイベントを予測するために推論エンジンをトレーニングし得る。
【０００５】
一態様では、システムは、データセンター内の複数のイベントを予測する推論エンジンをトレーニングするためのトレーニングデータセットを生成するように構成される。システムは、少なくとも１つのプロセッサおよび少なくとも１つのメモリ記憶デバイスを含む。記憶デバイスは、少なくとも１つのプロセッサにアクセス可能であり、それらによって実行可能である記憶された複数の命令を含む。複数の第１の命令は、実行されると、少なくとも１つのデータセンターハードウェア（data center hardware : DCH）インスタンスの複数のそれぞれのコンポーネントに対応する複数のプローブベクトルを生成する。複数のプローブベクトルは、複数のデータ要素からなる時系列シーケンスを含む。複数のデータ要素は、対応する時間増分のシーケンスの間、プローブベクトルに対応するそれぞれのコンポーネントのステータスを示す複数の値を有する。複数のプローブベクトルは、１つまたは複数のプローブベクトルに対応する１つまたは複数のそれぞれのコンポーネントにおける１つまたは複数のイベントの発生を示し、１つまたは複数のイベントに対応する１つまたは複数の発生時刻（one or more times of occurrence）を示す。複数の第２の命令は、一組のトレーニングスナップショットを作成する。一組のトレーニングスナップショットの複数のそれぞれのトレーニングスナップショットは、１つ以上のプローブベクトルからの複数のデータ要素からなるそれぞれのサブシーケンスを含む。複数のデータ要素からなるそれぞれのサブシーケンスは、１つ以上のイベントのうちの少なくとも１つに対応する指定された発生時刻より遅くない時間増分に対応するそれぞれの最終データ要素を含む。
【図面の簡単な説明】
【０００６】
【図１】図１は、いくつかの実施形態によるデータセンターハードウェアインスタンスの例示的なブロック図である。
【図２】図２は、いくつかの実施形態による、データセンターハードウェアインスタンスネットワークを含む例示的なデータセンターネットワーク（data center network : DCN）の例示的な説明図である。
【図３】図３は、ホストオペレーティングシステムで実行されている例示的なコンテナを示す説明図である。
【図４】図４は、複数のコンテナをデプロイおよび管理するシステムを示す例示的なブロック図である。
【図５】図５は、いくつかの実施形態による、複数のコンテナで構成された図２の例示的なＤＣＮの例示的な説明図である。
【図６】図６は、いくつかの実施形態による、ネットワークトラフィックデータおよびイベントの発生を監視および記憶するようにプローブロジックインスタンスを構成する方法を示す例示的な第１のフロー図である。
【図７】図７は、いくつかの実施形態による、ネットワークデータストレージメモリインスタンスおよびそこに記憶された例示的なプローブデータ構造を示す例示的な説明図である。
【図８】図８は、いくつかの実施形態による、複数のベクトルの例示的な時系列を示す例示的な説明図である。
【図９】図９は、いくつかの実施形態による、複数のデータセンターハードウェアインスタンスのクラスターから複数のプローブベクトルを収集して時系列の複数のベクトルを生成するようにマスターデバイスを設定する方法を示す例示的な第３のフロー図である。
【図１０Ａ】図１０Ａは、いくつかの実施形態による、自己ラベリングされたトレーニングデータを生成するようにコンピュータシステムを設定する方法を示す例示的な第４のフロー図である。
【図１０Ｂ】図１０Ｂは、いくつかの実施形態による、自己ラベリングされたトレーニングデータを生成するようにコンピュータシステムを設定する方法を示す例示的な第５のフロー図である。
【図１１】図１１は、いくつかの実施形態による、自己ラベリングされたラベル付きプローブベクトルスナップショットトレーニングデータの第１のセットを含む例示的なスナップショットデータ構造を示す例示的な説明図である。
【図１２】図１２は、いくつかの実施形態による、自己ラベリングされたラベル付きプローブベクトルスナップショットトレーニングデータの第２のセットを含む例示的なスナップショットデータ構造を示す例示的な説明図である。
【図１３】図１３は、いくつかの実施形態による、自己ラベリングされたスナップショットトレーニングデータ１３００の第３のセットを含む例示的なスナップショットデータ構造を示す例示的な説明図である。
【図１４】図１４は、いくつかの実施形態による、複数のラベル付きトレーニングプローブベクトルスナップショットに基づいて複数のネットワーク状態を予測するように推論エンジンをトレーニングするように構成された教師あり学習システムを示す例示的な説明図である。
【発明を実施するための形態】
【０００７】
Ａ．導入
いくつかの実施形態では、データセンターネットワーク（data center network : DCN）２００は、データセンターハードウェア（data center hardware : DCH）インスタンス２００ａ〜２００ｆとして具体化され得る機能的に同一の物理演算インスタンスを増分的に構築することができ、各インスタンスは、サーバー１０２、ネットワーク回路１０４、および記憶ボリューム１０６を含む。複数の個別ハードウェアインスタンス２００ｂ〜２００ｇの複数のネットワーク回路は、ＤＣＮ２００への自身のオンボーディング（onboarding）を個別に管理するように構成され得る。データセンターハードウェアインスタンスの複数のクラスターによって提供されるサーバーレベルの複数のサービスとネットワークレベルの複数のサービスの両方を定義するために、複数のコンテナ化されたアプリケーション（Containerized applications）がデプロイ（deploy）、管理、および拡張され、これにより、データセンターの管理を簡略化することができる。複数のＤＣＨノードインスタンスのネットワーク回路１０４は、複数のノードのクラスターとして機能して、コンテナ化されたネットワークレベルアプリケーションをデプロイおよび管理して複数のネットワーク関連タスクを共有し得る。各ネットワーク回路は、共通のホストオペレーティングシステム上でコンテナ化されたアプリケーションインスタンスをホストする。したがって、ＤＣＮ２００は、一般的に複数のデータセンターで標準となっている複数の層の抽象化の上の典型的な複数の層を除去して、データセンター管理を簡略化する。
【０００８】
コンテナ化されたネットワークレベルアプリケーション（containerized network-level application）をデプロイおよび管理する複数のノードのクラスターに参加する複数のネットワーク回路は、複数のノードイベントを示すプローブデータ（probe data）７０２を生成する。プローブ情報は、ＤＣＮ２００内の複数のネットワーク関連イベントを示す複数のプローブベクトル８００の集合を生成するために使用され得る。自己ラベリングされたラベル付きプローブベクトルスナップショットトレーニングデータ（Self-labeled labeled probe vector snapshot training data）は、複数のプローブベクトルに基づいて生成され得る。推論エンジンは、スナップショットトレーニングデータを使用して、対象とする複数のネットワーク状態の発生を予測し得る。本明細書で使用される用語「スナップショット（snapshot）」は、１つまたは複数のプローブベクトルによってスパンされる（spanned）時間増分のサブシーケンスに対応する１つまたは複数のプローブベクトルの複数のデータ要素からなるサブシーケンスを指す。
【０００９】
Ｂ．データセンターハードウェアインスタンス
図１は、いくつかの実施形態によるデータセンターハードウェア（data center hardware : DCH）インスタンス１００の例示的なブロック図である。ＤＣＨインスタンス１００は、ホストサーバー（Ｓ）１０２と、ネットワークスイッチ／ルータ回路（以下「ネットワーク回路」という）（Ｘ）１０４と、永続的記憶ボリューム（persistent storage volume）（Ｖ）１０６と、これらを相互接続する通信バス１０７とを含む。ホストサーバー１０２は１つまたは複数のホストＣＰＵ１１０と、バス１０７を介して通信するように接続されたホストサーバーメモリ１１２と、を含み得るホストプロセッサシステム１０８を含む。ホストメモリ１１２は、例えば、複数のアプリケーションワークフローサービスを提供するようにホストＣＰＵ１１０を設定するために使用される実行可能な複数の命令およびデータを含み得る。ネットワーク回路１０４は、スイッチファブリック（switch fabric）１１８の複数の入力キュー１１７Ｉおよび複数の出力キュー１１７Ｏを含む複数の物理インタフェースポート１１６間での複数のパケットのスイッチングを決定するように構成可能なスイッチロジック１１４Ｓを含み、ネットワーク上に送信される複数のパケットのルーティングを決定するように構成可能なルータロジック１１４Ｒを含み、パケットフローを監視し、複数のネットワークイベントの発生をプローブするように構成可能なプローブロジック１１４Ｐを含み、複数のＤＣＨインスタンスのクラスター内に、いくつかの実施形態では、複数のＤＣＨインスタンスのクラスターに結合された複数の汎用マシン内にデプロイされた複数のコンテナを管理するためのコンテナデプロイメント及び管理ロジック１１４Ｄ（「コンテナロジック１１４Ｄ」）を含むネットワークコントローラ１１４を含む。いくつかの実施形態では、ネットワークコントローラ１１４は、記憶デバイス１２２内に、スイッチロジック１１４Ｓ、ルータロジック１１４Ｒ、プローブロジック１１４Ｐ、およびコンテナロジック１１４Ｄの機能を具体化するように設定する複数の命令を含み得る。プローブロジック１１４Ｐは、複数のプローブロジックインスタンス１１４Ｐｉをインスタンス化して、対応する複数のプローブベクトルを生成し得る。いくつかの実施形態では、ネットワークコントローラ１１４は、スイッチング、ルーティング、監視、および複数のコンテナ関連機能のうちの１つ以上を実行する１つ以上のハードウェアＣＰＵ（図示せず）を含み得る。代替的には、ネットワークコントローラ１１４は、ホストサーバー１０２から利用可能な複数の計算リソースに常駐するソフトウェアアプリケーションを含み得る。ネットワーク回路１０４はまた、ネットワーク性能関連情報を記憶するように接続されたネットワークデータ記憶メモリ１２２を含む。いくつかの実施形態では、ネットワーク回路１０４は、１つ以上の特定用途向け集積回路（ＡＳＩＣ）として具体化されてもよい。記憶ボリューム１０６は、例えば、ディスクストレージ１２４および／またはフラッシュストレージ１２６を含み得る。
【００１０】
ＤＣＨインスタンス１００は、個別データセンターとして個別に機能し得る。より詳細には、ＤＣＨインスタンス１００は、複数のアプリケーションサービスを提供するサーバー（Ｓ）と、複数のサービスを提供するために使用される情報を提供するための記憶ボリューム（Ｖ）と、複数の情報パケットを複数のクライアントデバイス（図示せず）と通信するためのスイッチ／ルーター（Ｘ）とを含む。したがって、典型的なデータセンターの機能は、例えば、単一のＤＣＨインスタンス１００内にカプセル化され得る。
【００１１】
Ｃ．データセンターハードウェアインスタンスネットワーク（物理コンポーネント）
図２は、いくつかの実施形態による、ＤＣＨインスタンスのネットワークを含む例示的なデータセンターネットワーク（data center network : DCN）２００の例示的な説明図である。ＤＣＮ２００は、パケット交換またはルーティングネットワーク内の複数のネットワーク接続２９９を介して結合された複数のＤＣＨインスタンス２００ａ〜２００ｆを含む。図５を参照してより完全に以下に説明するように、ＤＣＨインスタンス２００ａ〜２００ｆのネットワーク回路１０４の部分は、「複数のノード」の「クラスター」として機能するように構成されて、複数のＤＣＨインスタンスは、本明細書では「複数のノード」とも呼称されてもよい。各ＤＣＨインスタンス２００ａ〜２００ｆは、図１に記載されているように、サーバー（Ｓ）、ネットワーク回路（Ｘ）、および記憶ボリューム（Ｖ）を含むように構成され得る。スイッチ／ルーター（Ｘ）は、イーサネットパケット交換および／またはＩＰルーティングネットワークプロトコルを実装するように構成され得る。スイッチ／ルーター（Ｘ）は、ＭＰＬＳプロトコルまたはＶＸＬＡＮプロトコルをサポートするように構成され得る。ネットワーク接続２９５を介してサーバー２０３ａに結合された管理者コンピューティングデバイス２２８は、例えば、ＤＣＮ動作を監視し、アプリケーションワークフローの複数の要求の変化に応じてＤＣＮ２００の複数のコンポーネントを再設定するための管理ユーザインタフェース（user interface : UI）２２９を含む。以下でより完全に説明されるように、いくつかの実施形態では、サーバー（Ｓ）およびスイッチ／ルーター（Ｘ）の両方の再設定は、コンテナ化されたサービスの配布および管理を通じて達成され得る。さまざまなＤＣＨインスタンスは、さまざまなレベルのコンピューティング、ストレージ、およびスイッチ／ルータ機能を有するように構成され得る。
【００１２】
例示的なＤＣＮ２００はまた、汎用（例えば、従来型）スイッチ／ルータ２０１と、図２に示すように複数のネットワーク接続２９７を介して結合されたそれぞれの汎用記憶ボリューム２０５ａ、２０５ｂ、２０５ｃに結合された汎用サーバー２０３ａ、２０３ｂ、２０３ｃとを含み、これらを本明細書では「汎用（generic）」コンポーネントと呼称し得る。ＤＣＨインスタンス２００ａ〜２００ｆと汎用コンポーネント２０１、２０３ａ〜２０３ｃ、２０５ａ〜２０５ｃとの間の共通性は、それらが共通オペレーティングシステム、いくつかの実施形態では、ネイティブＬｉｎｕｘオペレーティングシステムを含む共通オペレーティングシステムを実行することである。例示的なＤＣＮ２００では、汎用サーバー２０３ａ〜２０３ｃおよびそれらの記憶ボリューム２００５ａ〜２００５ｃは、以下により完全に説明されるように、クラスター内で複数のノードとして機能するようにそれらを設定するように動作可能であるＤＣＨ２００ｅに結合され、それらが結合されるＤＣＨ２００ｅとそれらの計算およびストレージ能力を共有する。
【００１３】
ＤＣＮ２００は、インターネット２１０を介して複数の情報パケットを送受信するように構成され得る。例えば、ネットワーク接続２９３を介してＤＣＨ２００ｅに接続されたルーティングデバイス２１２は、インターネット２１０を介して、ＤＣＮ２００と、ラップトップコンピュータまたはモバイルコンピューティングデバイス等の１つ以上の第１のクライアントデバイス２１４との間で複数のパケットを送受信するように構成され得る。ＤＣＮ２００はまた、例えばＬＡＮ等の第１のローカルネットワーク２２１を含む第１のプライベートネットワーク２２０間で複数のパケットを送受信し、第１のローカルネットワークに接続された複数の第２のクライアントデバイス２２４と複数のパケットを通信するように構成され得る。ネットワーク接続２９１を介してＤＣＨ２００ｆに接続されたスイッチ／ルータ２２２は、例えば、ファイアウォールとして機能し、ＤＣＮ２００と１つ以上の第２のクライアントデバイス２２４との間で複数のパケットを結合し得る。ＤＣＮ２００はまた、例えば第２のＬＡＮ等の第２のローカルネットワーク２３１を含む第２のプライベートネットワーク２３０間で複数のパケットを送受信し、第２のローカルネットワーク２３１に接続された複数の第３のクライアントデバイス２３４と複数のパケットを通信するように構成され得る。例えばファイアウォールとして機能し得るスイッチ／ルータ２３２は、インターネット２１０と１つまたは複数の第３のクライアントデバイス２３４との間で複数のパケットを結合し得る。
【００１４】
共同所有の２０１７年３月３１日に出願され「モジュラーシャーシ内の異種ネットワーク（Heterogeneous Network in a Modular Chassis）」と題する米国特許出願第１５／４７６，６６４号、共同所有の２０１７年３月３１日に出願され「部分的なシャットダウン中のプライオリティベースの電源オフ（Priority Based Power Off During Partial Shutdown）」と題する米国特許出願第１５／４７６，６７３号、共同所有の２０１７年３月３１日に出願され「ラインカードにファブリックが統合されたモジュラーシャーシ（Modular Chassis with Fabric Integrated into the Line Card）」）と題する米国特許出願番号第１５／４７６，６７８号は、この参照によりその全体が明示的に本明細書に組み込まれ、いくつかの実施形態による分散型データセンターネットワーク２００の具体化を開示している。
【００１５】
複数のＤＣＨインスタンス２００ａ〜２００ｆは、ＤＣＮ２００と協調して動作するように構成されている。より詳細には、複数のＤＣＨインスタンス２００ａ〜２００ｆの個別サーバー（Ｓ）、個別記憶ボリューム（Ｖ）、および個別ネットワーク回路（Ｘ）は、協働して、クライアントデバイス２１４，２２４、２３４と複数の情報パケットを通信する。ＤＣＮ２００の全容量（overall capacity）は、サービス容量を増加させるために多数のＤＣＨインスタンスを増分的に結合することによって、およびサービス容量を減少させるために少数のＤＣＨインスタンスを増分的に結合することによって、動的にスケーリングされることができる。
【００１６】
各ＤＣＨインスタンス２００ａ〜２００ｆは、ＤＣＮ２００へのインスタンスの追加を効率化するための組み込みシステムソフトウェアを含むコンテナロジック（container logic）１１４Ｄを含む。いくつかの実施形態では、コンテナロジック１１４Ｄは、ネットワークコントローラ１１４を設定して、インスタンスのＤＣＮ２００へのオンボーディングを管理し得る。新たに追加されたＤＣＨインスタンスの最初の電源投入から、組み込みコンテナロジック１１４Ｄは、ネットワーク発見、オペレーティングシステムソフトウェア（例えば、ネイティブＬｉｎｕｘ）のダウンロードおよび設定、および組み込みシステムのダウンロードおよび設定、ロジック１１４Ｄ自体を管理する。コンテナ１１４Ｄは、コンテナ化された複数のアプリケーションの管理において協働する複数のマシンのクラスターに参加するようにＤＣＨを設定し得る。コンテナロジック１１４Ｄはまた、コンテナ化された複数のアプリケーションの管理において協働する複数のマシンのクラスターに参加するために、ＤＣＨ２００ｅ等のＤＣＨに結合された汎用サーバー２０３ａ〜２０３ｃ等の複数の汎用サーバーを設定し得る。スイッチング／ルーティング／コンテナ機能は、任意の標準的なアプリケーションがＤＣＨインスタンス上で実行されていることを認識することなく、既に利用することができるオペレーティングシステムリソース、例えばＬｉｎｕｘリソースとして、オペレーティングシステム、例えばＬｉｎｕｘに公開されている。したがって、スイッチング／ルーティング／コンテナロジックは、そのようなＤＣＨまたは汎用マシン上で、ＤＣＨまたはマシンの基礎となるオペレーティングシステムに変更を加えることなく、実行することができる。ネットワークコントローラ１１４内で実行されている組み込みオペレーティングシステムを用いて、ＤＣＨインスタンス１００のネットワーク回路（Ｘ）１０４のコンポーネントは、ＤＣＮ２００に結合され、例えば、コンテナ化されたネットワーク関連のアプリケーションを協働して提供するように構成された複数のＤＣＨインスタンスのクラスターに参加するようにそれ自体をインストールおよび自己設定することができる。
【００１７】
Ｄ．複数のコンテナ
図３は、ホストオペレーティングシステム３０４で実行されている例示的なコンテナ３０２を示す説明図である。コンテナ３０２は、複数のアプリケーションサービスインスタンス３０６に加えて、ホストオペレーティングシステム３０４上で複数のアプリケーションサービスを実行するために必要な複数のコンピュータリソース（例えば、ＣＰＵおよびＲＡＭ）にアクセスするための複数のバイナリおよび複数のライブラリ（binaries and libraries）３０８を含む。より具体的には、例示的なコンテナ３０２は、オペレーティングシステム３０４のカーネル内でインスタンス化された複数のアプリケーションサービス３０２の仮想化されたインスタンスを含む。コンテナ３０２は、複数のアプリケーションサービス３０６を、オペレーティングシステム３０４およびそれがネットワークに接続するために使用する物理インフラストラクチャ（図示せず）から分離する。コンテナ３０４内で実行されている複数のアプリケーションインスタンス３０６は、それらに割り当てられた複数のオペレーティングシステムリソースのみを監視することができる。いくつかの実施形態によれば、割り当てられた複数のオペレーティングシステムリソースは、複数の仮想リソースのみにアクセスするのではなく、複数のコンテナが複数の物理ネットワークリソースにアクセスすることを可能にし得る。
【００１８】
概して、複数のコンテナは、複数のオペレーティングシステムリソースを共有することにより、少ないオーバーヘッドの分散型アプリケーションを実行するために使用され得る。複数のコンテナがオペレーティングシステムカーネル内でインスタンス化され、コンピュータの複数のリソースの一部分がそのような各コンテナに割り当てられてもよい。アプリケーションは、１つ以上のコンテナの集合としてパッケージ化され得る。アプリケーションは、高レベルのＳａａＳ（system as a service）としてユーザーに提供され得る。アプリケーションとその複数のサービスを多くのコンテナに分散することで、冗長性及び移植性が向上し、アプリケーションがより多くのユーザーに提供され得る。単一のコンテナ内に、高レベルのアプリケーションの形成に役立つ複数のソフトウェアパッケージ／複数のライブラリ、複数のツールなどの複数のビルディングブロックアプリケーション（building-block applications）が存在することができる。複数のコンテナは、複数のアプリケーションサービスの要求の増加に応答して効率的なワークフロー管理を行うために、オンデマンドでデータセンターネットワークのサーバー間で作成および分散され、複数のアプリケーションサービスの要求の減少に応答して終了され得る。
【００１９】
Ｅ．コンテナのデプロイメント及び管理
図４は、複数のコンテナをデプロイおよび管理するシステムを示す例示的なブロック図である。以下の説明は、例として複数のコンテナ処理を自動化するための「ｋｕｂｅｒｎｅｔｅｓ」プラットフォームを説明するために典型的に使用される用語を使用するが、複数のコンテナをデプロイおよび管理するための他のスタイルのコンテナ自動化プラットフォームは、明細書において開示された原則に従って使用され得る。Ｋｕｂｅｒｎｅｔｅｓは、複数のホスト間でコンテナ化された複数のアプリケーションを管理するためのオープンソースシステムであり、複数のアプリケーションのデプロイメント、メンテナンス、スケーリングのための基本的なメカニズムを提供する。（ｈｔｔｐｓ：／／ｋｕｂｅｒｎｅｔｅｓ．ｉｏ／ｄｏｃｓ／ｈｏｍｅを参照されたい。）ｋｕｂｅｒｎｅｔｅｓプラットフォームは、「複数のノード」と呼称される複数のマシンのクラスターを調整して、単一のユニットとして機能する。コンテナ化された複数のアプリケーションは、複数の個別ノードに特に結び付けることなく、クラスターにデプロイされる。複数のアプリケーションは、複数の個別ホストから切り離すために複数のコンテナとしてパッケージ化されてもよい。Ｋｕｂｅｒｎｅｔｅｓは、複数のノードのクラスター全体での複数のアプリケーションコンテナの分散、スケジューリング、スケーリングを自動化する。
【００２０】
汎用サーバー２０３ａ（またはＤＣＨインスタンス２００ａ〜２００ｆのうちの１つまたは他の汎用サーバー２０３ｂ〜２０３ｃのうちの１つ）などのマスターデバイスは、コンテナデプロイメント（container deployment）と、ホストオペレーティングシステム４０４のインスタンス上で実行するマスターモジュール４０２を提供するように構成され得る。代替的な実施形態では、マスター「デバイス」は、特定のサーバーおよび／またはＤＣＨにまたがる分散サービスとして実装されることができる。１つ以上のワーカーノード（worker nodes）４０６はそれぞれ、１つ以上のポッド（pods）４０８を含み、各ポッド４０８は、ホストオペレーティングシステム４０４のインスタンス上で実行する１つ以上のコンテナ４１０を含む。本明細書で使用される場合、「ノード」は、ＤＣＨインスタンス２００ａ〜２００ｆのうちの１つなどの物理的であり得るワーカーマシン（worker machine）、またはそれらのうちの１つ以上でインスタンス化され得る複数の仮想マシン（図示せず）を指す。本明細書で使用される「ポッド」は、単一のノードにデプロイされた１つ以上のコンテナのグループを指す。ポッド内の複数のコンテナ４１０は、たとえば、ＣＰＵ及びＲＡＭなどの複数のワーカーノードリソースを共有する。管理者コンピュータ２２８などの管理者マシンは、複数の物理または仮想マシンを含む複数のノード上で複数のコンテナをスケジューリングおよび実行するために、所望のデプロイメント定義状態を示す複数のコマンドをマスターデバイス／コンピュータ２０３ａに提供し得る。マスターデバイス／コンピュータ２０３ａは、複数のノードのクラスター４０６を調整する。それは、管理者コンピュータ２２８によって提供されるデプロイメント定義に従って、複数のノード４０６のうちの１つまたはクラスター内の１つ以上のポッド４０８内の複数のグループのコンテナの実際のデプロイメントスケジューリングおよび実行を制御する。またそれは、１つ以上のノードが使用できなくなった場合のデプロイメントのレプリケーション（replication）を制御する。
【００２１】
ポッド４０８は、複数のコンテナ４１０とオペレーティングシステム４０４との間にインタフェース層４１２を提供し得る。インタフェース層４１２は、複数のコンテナワークロードをスケジューリングし、複数のコンテナ４１０間で共有ＣＰＵ、スイッチ／ルータ、および複数のストレージリソースを割り当てるために用いられ得る。インタフェース４１２はまた、複数のノード間で複数のコンテナを移行する（migrate）ことをより容易にし得る。各ポッド４０８は、ポッド４０８内の複数のコンテナ４１０に関するステータス情報をマスターデバイス／コンピュータ２０３ａに報告するエージェント（agent）４１４を含み、マスターデバイス／コンピュータ２０３ａは、管理者コンピュータ２２８にステータスを提供し得る。
【００２２】
ノードは、典型的には、外部でルーティング可能な（クラスターの外部から利用可能な）外部ＩＰアドレス（ＩＰＥｎｏｄｅ）と、クラスター内でのみルーティング可能な内部ＩＰアドレス（ＩＰＩｎｏｄｅ）を含む。ポッド４０８内でグループ化された複数のコンテナ４０８は、内部ＩＰアドレス（ＩＰＩｐｏｄ）を共有する。マスター／コンピュータ２０３ａは、例えば複数のワークロードを分散するために、マスター２０３ａがポッド４０８及び複数のコンテナ４１０と通信し得る仮想サブネット（virtual subnet）を定義し、複数のコンテナ４１０が、内部ＩＰアドレスを使用して互いに通信し得る。
【００２３】
マスター／コンピュータ２０３ａは、デプロイされた複数のポッド４０８および複数のコンテナ４１０のステータスを監視する。それは、例えば、オフラインになったノードを置き換えるためにノードを自動的に追加したり、消失したノードのポッドおよびノードを自動的に置き換えるために新しいポッドおよびコンテナを自動的に作成するなどの修正を行うことによって、実際のデプロイステータスと所望のデプロイメント定義状態との間の差異に応答し得る。マスター／コンピュータ２０３ａは、例えば、複数のコンテナ４１０間でワークフローを分散するための複数のロードバランシングサービス（load balancing services）を提供し得る。
【００２４】
Ｆ．データセンターハードウェアノードクラスタ（コンテナ化されたアプリケーション）
図５は、いくつかの実施形態による、複数のコンテナ化されたアプリケーションを有する複数のノードのクラスターとして構成された図２の例示的なＤＣＮ２００の例示的な説明図である。ＤＣＨインスタンス２００ａ〜２００ｆのサーバー（Ｓ）は、例示的なクライアント２１４、２２４、２３４のうちの１つまたは複数に複数のアプリケーションサービスを提供するために複数のコンテナを用いて設定される。コンテナＡ、Ｂ、Ｃは、１つまたは複数のＤＣＨインスタンスの物理サーバー（Ｓ）１０２のＣＰＵ１０８上で直接または仮想マシン（図示せず）上のいずれかで実行し得る。複数のコンテナＮは、複数のＤＣＨインスタンスのスイッチ／複数のルータの回路（Ｘ）１０４の複数のネットワークコントローラ１１４上で実行し得る。
【００２５】
管理者コンピュータ２２８は、マスターデバイスとして機能するように構成され得るサーバー２０３ａに、各コンテナＡ、Ｂ、Ｃ、Ｎのデプロイメント定義Ａ〜Ｃ、Ｎを示す複数のコマンドを提供するように構成され得る。より具体的には、マスターデバイス／サーバー２０３は、デプロイメント定義Ａ〜Ｃ、Ｎを使用して、コンテナＡ、Ｂ、Ｃ、Ｎのデプロイメントスケジューリングおよび実行およびスケーリングを管理するマスターモジュール２４０を用いて設定され得る。いくつかの実施形態によれば、２００内の複数のＤＣＨデバイスまたは複数の汎用サーバーのいずれかは、マスターモジュールとして機能するように構成され得る。さらに、マスターモジュールは、複数のサーバーおよび／またはＤＣＨにまたがる分散サービスとすることができる。したがって、マスターモジュールは、固定された特化した専用マシンである必要はない。マスターモジュールとして機能するマシンに障害が発生した場合、ＤＣＨまたは汎用サーバーのいずれかがマスター機能を取得することができる。
【００２６】
例示的なＤＣＮ２００では、マスターモジュール２４０は、定義Ａを使用して２００ａ、２００ｂ、２００ｃ、２００ｅ、および２００ｆを含む複数のＤＣＨインスタンスの第１のクラスターの構成を管理し、アプリケーションサービス「Ａ」（コンテナＡ）を備えた複数のコンテナのインスタンスをホストする。また汎用サーバー２０３は、コンテナＡを実行するように構成されている。マスターモジュール２４０は、定義Ｂを使用して２００ａ、２００ｃ、２００ｄを含む複数のＤＣＨインスタンスの複数のサーバーの第２のクラスターの構成を管理し、アプリケーションサービス「Ｂ」（コンテナＢ）を有する複数のコンテナをホストする。マスターモジュール２４０は、定義Ｃを使用して２００ａ、２００ｄを含む複数のＤＣＨインスタンスの複数のサーバーの第３のクラスターの構成を管理し、アプリケーションサービス「Ｃ」（コンテナＣ）を有する複数のコンテナをホストする。マスターモジュール２４０は、定義Ｎを使用して２００ａ〜２００ｆを含む複数のＤＣＨインスタンスおよび汎用マシン２０３ｂ、２０３ｃのスイッチ／複数のルータ（Ｘ）の第４のクラスターの構成を管理して、例えば、アプリケーションサービス「Ｎ」（コンテナＮ）を有する複数のコンテナをホストする。
【００２７】
コンテナＡ、Ｂ、Ｃは、たとえば、サーバーレベルのコンテナ式ビジネス（server-level container-based business）、パーソナル、またはエンターテインメントサービスを提供し得る。複数のコンテナＮは、ネットワークレベルのコンテナ式サービスを提供する。定義Ｎは、例えば、図４を参照して説明したように、他のアプリケーションレベルのサービスおよびマイクロサービスがデプロイおよび管理されるのと同じ方法で、複数のネットワークサービスを提供する複数のコンテナをデプロイおよび管理するために使用され得る。
【００２８】
Ｇ．ネットワークパフォーマンスの監視およびプロービング（Probing）
ＤＣＮ２００のＤＣＨインスタンス２００ａ〜２００ｆのネットワーク回路（Ｘ）１０４は、データセンタートラフィックの複数のネットワークパスに配置されている。また、ＤＣＨ２００ｅに接続された汎用サーバー２０３ａ〜２０３ｃは、データセンタートラフィックの複数のネットワークパスに配置されている。複数の個別ＤＣＨインスタンスのプローブロジック（probe logic）１１４Ｐは、対象とする複数のイベントの発生についてネットワークトラフィックを監視および記録する。複数のプローブロジックインスタンス１１４Ｐｉはネットワーク回路１０４内に作成されて、例えば、任意のＤＣＨ上で実行する異なるハードウェア要素または（マイクロサービスを含む）異なるアプリケーションプログラムなどの複数の異なるコンポーネントをプローブし得る。コンテナ化されたアプリケーションＮは、定義Ｎに従ってマスターデバイス２０３ａによって分配され、複数の個別ネットワーク回路１０４を設定してプローブロジック１１４Ｐを具体化し得る。以下により完全に説明されるように、ネットワーク定義Ｎは、クラスタデータにアクセスするためだけでなく、データを解析、キュレート（curate）、集約および記憶するためにもプローブロジック１１４Ｐを含むようにＤＣＨを設定し得る。例えば、複数の個別プローブロジックインスタンス１１４Ｐｉは、複数のパケットをサンプリングして複数のパケットヘッダーから統計データを収集し、すなわち、ＤＣＨインスタンス２００ａ〜２００ｆに何が流れているかを決定し得る。対象とする複数のイベントをプローブするプローブロジックは、管理者によって設定され得る。いくつかの実施形態では、各ＤＣＮのネットワーク回路は、毎秒約１５，０００のデータポイントにアクセスできる。
【００２９】
図６は、いくつかの実施形態による、ネットワークトラフィックデータメトリック（network traffic data metrics）およびイベントの発生を監視および記憶するようにプローブロジックインスタンス１１４Ｐｉを設定する方法を示す例示的な第１のフロー図６００である。ネットワークコントローラ１１４は、複数のプログラム命令に従って設定されて、図６のプロセスに従って、ネットワークトラフィックデータメトリックおよびイベントの発生を監視および記憶し得る。データトラフィックメトリックは、順序付けられたシーケンスの複数の時間増分の各々の間の複数のＤＣＨコンポーネントのステータスを示し得る。プローブロジックインスタンス１１４Ｐｉは、第１のフロー６００の多数の異なる実装形態を提供するように構成されてもよく、各実装形態は、異なるＤＣＨコンポーネントのメトリックおよびイベントを生成するように向けられることを理解されたい。ＤＣＨインスタンス２００ａ〜２００ｆの複数のネットワーク回路１０４の複数の個別ネットワークコントローラ１１４は、第１のフロー図Ｆ００に従って設定され得る。第１のプローブブロック６０２は、ＤＣＮのネットワークコントローラ１１４によってＤＣＮ２００を介して受信されたネットワークデータを時間増分で受信する。いくつかの実施形態では、データを受信することは、例えば、ネットワークプロトコルに従って複数のネットワークパケットを受信することを含み得る。いくつかの実施形態では、時間増分は毎秒であってもよく、その増分は、例えば、イベントのタイプおよび精度とリソース（計算／記憶）利用率との間のトレードオフとに応じて増加または減少されてもよい。第２のプローブブロック６０４は、時間増分のネットワークデータフローメトリックを生成する。第２のプローブブロック６０４は、受信したデータを解析、キュレート、および／または要約して、ネットワークデータフローメトリックを生成し得る。例えば、プローブロジックインスタンス１１４Ｐｉは、第２のブロック６０４の実装形態に従って、例えば、キュー内のデータフレームの数をカウントするカウンタを提供し、時間増分のために満たされたキューのパーセントを示すメトリック値を生成するように構成され得る。キュー割合メトリック値（queue percent metric value）は、キュー内のフレーム数がすぐにしきい値を超えるかどうかを示すキューフィルステータス（queue-fill status）の指標として機能し得る。代替的には、プローブロジックインスタンス１１４Ｐｉは、第２のブロック６０４の実装形態に従って、２つ以上のカウンタを提供して、２つ以上の異なるキューにおけるキュー深さ（queue depth）を監視し、２つ以上のキューにおけるフレーム数の分散を示すメトリック値を生成するように構成されてもよい。分散メトリック値は、例えば、分散がすぐにある分散閾値を超えるかどうかを示す２つ以上のキューのロードバランスステータス（load balance status）の指標として機能する。第３のプローブ決定ブロック６０６は、時間増分中に所定の条件の発生についてのメトリックを監視する。上記した複数の例を続けると、ある閾値数を超えるキュー内のフレーム数が発生に相当し得る場合、閾値を超える異なるキュー内のフレーム数の所定の条件および変動���よって、例えば、ロードバランスイベントに相当し得る。現在の時間増分中のイベントの発生に応答して、プローブブロック６０８は、現在の時間増分についてのイベント発生の指標を記憶デバイス１２２に記憶する。ブロック６０８または現在の時間増分の間にイベントが発生しなかったという判定に応答した判定ブロック６０６に続いて、現在の時間増分のネットワークデータフローメトリックを記憶するプローブブロック６１０に制御は進む。
【００３０】
各ネットワークコントローラ１１４は、複数の異なるプローブロジックインスタンス１１４Ｐｉを実装するように構成され、各異なるプローブロジックインスタンスは、ＤＣＮ２００内のネットワークデータの異なる部分を受信し、ＤＣＮ２００のその部分におけるネットワークデータフローを示す異なるネットワークデータフローメトリックおよびイベント発生を生成して記憶する。異なるプローブロジックインスタンス１１４Ｐｉによって生成および記憶され得るデータフローメトリックのさらなる複数の例は、データパイプライン内の様々なポイントにおけるポート利用率、キュー深さ、キュー廃棄（queue drops）、エラーカウントおよび廃棄カウント、転送テーブル、アドレス利用率、およびどのように複数のノードが相互接続および分割され且つどのようにアプリケーションインスタンスが複数の個別ノード内でグループ化されるかを示すクラスタネットワークトポロジを含む。対象とする複数のイベントの追加の複数の例は、キュー廃棄、分散しきい値を超えるロードバランシング（load balancing）、規定のしきい値を超える廃棄率（drop rate）、プロトコルヘルスチェックの失敗、および規定のしきい値を超える遅延を含む。他の例は、サンプリングされた複数のパケットのヘッダーを監視し、どのＩＰアドレスが出入りしているかを判定し、履歴データの異常との比較によって、セキュリティ違反または攻撃の可能性があることを示すフラグが立てられることができる。
【００３１】
図７は、いくつかの実施形態による、そこに記憶される例示的なプローブベクトルＰ１〜ＰＸ７０２を実装するデータストレージメモリインスタンス１２２を示す例示的な説明図である。プローブベクトルＰ１〜ＰＸは、一連の時間増分ｔ１〜ｔＮについて記憶された対応する時系列シーケンスのデータ要素７０４を含む複数のデータ構造である。例えば、各プローブベクトルＰ１〜ＰＸは、時間増分ｔ１〜ｔＮにおける対応する時系列のデータ要素７０４を含む。プローブロジックインスタンス１１４Ｐｉは、各プローブ時系列データセットＰ１〜ＰＸについて、図６のフロー６００の異なるインスタンスを提供し得る。より具体的には、例えば、異なるプローブベクトルＰ１〜ＰＸは、異なるイベントを示すデータメトリックを含む異なる時系列のデータ要素を含み、１つ以上の異なるイベント発生の対応する指標を含み得る。
【００３２】
ＤＣＨプローブロジックインスタンスは、ＤＣＨ（または汎用サーバー）のポートコンポーネントに対応するプローブベクトルを生成するように構成され、図６の第１のフロー６００に従って設定された各プローブロジックインスタンス（図示せず）は、例えば、時系列ｔ１〜ＴＮの各時間増分におけるポート利用率を示すプローブベクトルＰ１を生成し得る。ＤＣＨプローブロジックインスタンスは、ＤＣＨ（または汎用サーバー）のキューコンポーネントの深さに対応するプローブベクトルを生成するように構成され、第１のフロー６００に従って設定された各プローブロジックインスタンス（図示せず）は、例えば、時系列ｔ１〜ＴＮの各時間増分におけるキューの深さを示す第４のプローブベクトルＰ４を生成し得る。ＤＣＨプローブロジックインスタンスは、ＤＣＨ（または汎用サーバー）のキューコンポーネントによるキュー廃棄に対応するプローブベクトルを生成するように構成され、図６の第１のフロー６００に従って設定された各プローブロジックインスタンス（図示せず）は、例えば、各時間増分ｔ１〜ＴＮにおけるキュー廃棄があったかどうかを示す第５のプローブ時系列データセットＰ５を生成し得る。第５のプローブベクトルＰ５内の第１の「Ｘ１」マーカーは、時間増分ｔ１４、すなわちプローブ／時間の組み合わせ（Ｐ５、ｔ１４）におけるキュー廃棄を示す。ＤＣＨプローブロジックインスタンスは、ＤＣＨ（または汎用サーバー）の複数のコンポーネントの比較計算負荷に対応するプローブベクトルを生成するように構成され得る。例えば、図６の第１のフロー６００に従って設定されたＸ−２プローブロジックインスタンス（図示せず）は、例えば、各時間増分ｔ１〜ＴＮにおけるロードバランスが分散閾値を超えたかどうかを示すＸ−２プローブベクトルＰＸ−２を生成し得る。Ｘ−２番目のプローブベクトルＰＸ−２内の第２の「Ｘ２」マーカーは、時間増分ｔ１５、すなわちプローブ／時間の組み合わせ（ＰＸ−２、ｔ５）においてロードバランシングが分散閾値を超えたことを示す。Ｘ番目のプローブベクトルＰＸ内の第３のマーカー「Ｘ３」は、時刻ｔ１５、すなわちプローブ／時間の組み合わせ（ＰＸ、ｔ１５）における侵入イベント（intrusion event）の検出の発生を示す。
【００３３】
従って、以下により完全に説明されるように、クラスターに参加する複数の個別ＤＣＨは、それらのローカルＣＰＵリソースを使用して、クラスターのデータのより広い視野（ｖｉｅｗ）のために集約ポイントに複数のプローブベクトルを送信する前に、ネットワークデータの収集およびキュレーションをローカルで実行し得る。その結果、各ＤＣＨノードは複数のＣＰＵリソースを含むので，プローブの多重度に対応するデータの処理は、クラスターのサイズに応じて自動的にスケーリングされる。このアプローチは、クラスターサイズが大きくなるにつれて「中央」コンピューティングが個別にスケーリングされる集中型モデルとは異なる。いくつかの実施形態によれば、ＤＣＨによるネットワークデータの前処理は、複数のローカルイベントの詳細な記録を提供する複数のプローブベクトルを生成し、多数のＤＣＨによって生成された複数のプローブベクトルの集合は、次に、例えば、ＤＣＮ２００を管理するためのネットワーク管理システムのトレーニングに使用され得るネットワーク動作の全体像（global picture of network behavior）を提供する前処理されたデータとして機能する。図１４を参照して以下に説明するように、複数のプローブベクトルに基づいて推論エンジン１４０４がトレーニングされると、推論エンジン１４０４は、新しいデータ１４１６に応答してリアルタイムでイベントの発生を予測し得る。
【００３４】
Ｈ．モニター時系列データセットおよびプローブ時系列データセットの集約
ＤＣＮ２００のＤＣＨインスタンス２００ａ〜２００ｆのネットワーク回路（Ｘ）１０４は、それぞれのプローブベクトルＰ１〜ＰＸをマスターデバイス２０３ａに公開するように構成されている。いくつかの実施形態では、プローブデータの収集に使用されるマスターデバイスは、複数のサーバーまたはＤＣＨにまたがるサービスであり得る。さらに、データ収集に使用されるマスターは、複数のコンテナの調整に使用されるマスターと同じである必要はない。上記で説明したように、ｋｕｂｅｒｎｅｔｅｓ環境では、複数のコンテナ４１０は、複数のポッド４０８内の複数のコンテナ４１０に関するステータス情報をマスターデバイス／コンピュータ２０３ａに報告するために、複数のエージェント４１４を含む複数のポッド４０８内でグループ化され得る。より具体的には、マスター２０３ａがＤＣＨインスタンス２００ａ〜２００ｆのクラスターを設定して、プローブロジック１１４Ｐを実装するコンテナ化されたアプリケーション「Ｎ」（コンテナＮ）をホストするいくつかの実施形態では、各スイッチ／ルータ１０４のエージェント４１０は、プローブベクトルＰ１−ＰＸをマスターデバイス２０３に報告する。さらに、いくつかの実施形態によれば、汎用サーバー２０３ａ〜２０３ｃはまた、例示的な事例ではＤＣＨ２００ｅ等の最も近いＤＣＨにネットワークデータを報告するように構成されてもよく、プロセス６００を使用してメトリックを含み且つ複数の汎用サーバーによって報告されたデータに対応するイベントを識別する複数のプローブベクトルを生成し得る。
【００３５】
図８は、いくつかの実施形態による、複数のＤＣＨの複数のプローブベクトル８００の例示的な集合を示す例示的な説明図である。図８の各列は、時間間隔ｔ１−ｔＮにわたるプローブベクトルを示している。各プローブベクトルは、時系列のメトリックを含み、１つ以上のイベントの発生の指標を含み得るデータセットを示す。したがって、例えば、各プローブベクトルは、個別ＤＣＨ２００ａ〜２００ｆまたは汎用サーバー２０３ａ〜２０３ｃの機能状態を示す状態情報、例えば、データパイプライン内の様々なポイントにおけるポート利用率、キュー深さ、キュー廃棄、エラーカウントおよび廃棄カウントと、転送テーブルと、アドレス利用率とを提供し得る。集合的に、複数のプローブベクトル８００の集合は、各時間間隔ｔ１〜ｔＮにおける複数のノードのクラスター全体にわたるネットワーク状態の指標を提供し得る。したがって、クラスターの複数の物理コンポーネントの集合的な状態の観点から、クラスターの全体的な状態が経時的に観測されることができる。
【００３６】
図９は、いくつかの実施形態による、ＤＣＨインスタンス２００ａ〜２００ｆインスタンスのクラスターから複数のプローブベクトル７０２を収集するようにマスターデバイス２０３ａを設定する方法を示す例示的な第３のフロー図９００である。第１のプローブ収集ブロック９０２は、ＤＣＮ２００の各ＤＣＨインスタンス２００ａ〜２００ｆの各ネットワークコントローラコンポーネント１１４からプローブデータ７０２を受信する。マスターデバイス２０３ａは、定義Ｎに従って、アプリケーションＮの複数のインスタンスをホストするために複数のノードのクラスターとして機能するようにＤＣＨインスタンス２００ａ〜２００ｆを設定する。複数のノードのクラスターとしての役割を果たすＤＣＨインスタンス２００ａ〜２００ｆは、それらプローブデータ７０２をマスターデバイス２０３ａに公開する。第２のプローブ収集ブロック９０４は、受信したプローブデータ７０２を集約して、プローブベクトル８００の集合を生成する。
【００３７】
再び図８を参照すると、プローブベクトル８００の例示的な事例の集合は、各プローブベクトルが時系列のデータ値を含むディメンションを示す複数のディメンションの時系列データ（multi-dimensional time series data）を提供する。複数のプローブベクトルの集合によって提供される複数のディメンションの時系列データは、どのように複数のノードが相互接続され分割されているか、どのように複数のノード間でネットワークトラフィックの負荷がどのように分散されているか、クラスター内のどこに複数の輻輳ポイントがあるか、どのタイプのトラフィック／フローがクラスターを経ているか、などを示すように使用され得る情報を提供し得る。以下により完全に説明されるように、リアルタイム動作中に収集された複数のプローブベクトル８００の収集が、推論エンジン１４０４をトレーニングして複数のネットワークイベントの発生を予測し得るために用いられ得る。
【００３８】
Ｉ．リアルタイムのネットワーク状態の検出
複数のプローブベクトル７０２は、複数の物理ハードウェアＤＣＨインスタンスのコンポーネントに対応する。複数の個別ＤＣＨインスタンス２００ａ〜２００ｆは、ポート、キュー、テーブル、パイプラインなどのハードウェアコンポーネントを含む。複数の個別ＤＣＨは、たとえば、ＤＣＨのホストされた複数のコンポーネントであるポート、キュー、テーブル、パイプラインなどの複数の仮想コンポーネントを含む複数の仮想マシンをホストし得る。複数の個別ＤＣＨインスタンス２００ａ〜２００ｆは、例えば、複数のアプリケーションサブ機能または複数のマイクロサービスを実装し得る複数のアプリケーションプログラムまたは複数のコンテナなどの複数のソフトウェアコンポーネントを含む。複数の個別ＤＣＨの複数のプローブロジックインスタンス１１４Ｐｉは、複数の個別ＤＣＨでのネットワーク関連動作を示す複数のプローブベクトルをローカルで生成する。複数の個別ＤＣＨから収集された複数のプローブベクトルの集合８００は、データを集合的に含む複数のディメンションのデータを提供して、複数のノードのクラスターとして動作する複数の物理ハードウェアＤＣＨ内または複数の物理ハードウェアＤＣＨ間で発生する複数のネットワーク関連機能、例えば、キュー廃棄、ロードバランシング、キュー廃棄率、プロトコルヘルスチェック（protocol heath check）、およびパケット遅延時間を示す複数の値を提供する。
【００３９】
図２および図５に戻って参照すると、管理者は、管理システム２２８のＵＩ２２９で複数のディメンションのデータを観測し得る。管理者は、例えば、直接的に閾値またはアルゴリズム監視を介して、複数のディメンションのデータ８００内の複数の値を観測することによって、ＤＣＮ２００の状態、より具体的には、ノード２００ａ〜２００ｆのクラスターの状態を観測し得る。処理において、複数のディメンションのデータ８００は、ネットワーク管理者によってリアルタイムで観測された場合、トラフィックを他の場所にリダイレクトする、クラスターの一部をシャットダウンする、デバッグする、分離する、および／または他の軽減技術のような即時の修正措置をとることを促すことがある完全なパニックではないにしても深刻な懸念を引き起こす可能性のある複数のディメンションを含み得る。複数のディメンションのデータ８００から、管理者は、時間増分または一連の時間増分を選択し、１つ以上の時間増分内で複数のディメンションの全部または一部分を分析して、複数のネットワーク関連エラー（例えば、廃棄、到達不可能なノード／サービス、高レーテンシー）をトラブルシュート（trouble shoot）するか、ネットワーク関連のみならず非ネットワーク関連性能（例えば、ネットワーク通信関連アルゴリズムの変更によるロードバランスの向上、複数のアプリケーションの移動による複数のリソースの使用率の向上、クラスターネットワークを異なる方法でパーティション化することによる帯域幅の使用率の向上、キャッシュの異なる階層にデータを移動させることによるストレージの使用率の向上）について最適化することができる。
【００４０】
図７に戻って参照すると、管理者は、ＵＩ２２９を介して（Ｐ５、ｔ１４）における第１の「Ｘ１」マーカーで示されるキュー廃棄イベントをリアルタイムで観測し、例えば、イベントの発生後に修正措置を実行し得る。同様に、管理者は、ロードバランシングが（ＰＸ−２、ｔ１５）における第２の「Ｘ２」マーカーで示される分散しきい値を超えたことを観測し、例えば、イベントの発生後に修正措置を実行し得る。また、管理者は、（ＰＸ、ｔ１５）における第３の「Ｘ３」マーカーで示される侵入イベントを観測し、例えば、イベントの発生後に修正措置を実行し得る。しかし、以下により完全に説明されるように、１つ以上のイベントの発生に先行する１つ以上のプローブベクトルの時系列の値等のＤＣＮ２００内の複数の状態を知ることにより、管理者は、１つ以上のイベントの実際の再発を回避するための修正措置を実行するために、それらが再発する前に、１つ以上のイベントの発生を予測し得る。より具体的には、１つ以上のイベントの以前の発生に至るまでの複数のプローブベクトル内の時系列データに基づく機械学習は、１つ以上のイベントの発生前に修正措置が実行され得るように、事前に１つ以上のイベントの他の発生を予測するための基礎を提供し得る１つ以上のプローブベクトル内の時系列データのパターンの発生をリアルタイムで識別するために、後に推論エンジン１４０４によって使用され得る。
【００４１】
Ｊ．ネットワーク状態を予測するための機械学習用の自己ラベリングレーニングデータ
図１０Ａは、いくつかの実施形態による、自己ラベリングされたトレーニングデータ（self-labeled training data）を生成するようにコンピュータシステムを設定する方法を示す例示的な第４のフロー図１０００である。ＤＣＨまたはサーバーは、図１０Ａのプロセスに従って自己ラベルリングされたトレーニングデータを生成するように、複数のプログラム命令に従って設定され得る。以下で図１３を参照してより完全に説明されるように、機械学習エンジン１４０２は、自己ラベリングされたトレーニングデータに基づいて推論エンジン１４０４をトレーニングして、すでに発生した後ではなく事前にネットワーク状態を予測するように構成され得る。第１のブロック１００２は、プローブベクトルを受け取る。例えば、第１の１００２は、図７のプローブベクトルＰ１を受け取る。第２の判定ブロック１００４は、現在受け取っているプローブベクトル内の１つまたは複数の値が、イベント等の対象とする状態の発生を示しているかどうかを判定する。対象とする状態が発生していないという判定に応答して、制御は、例えば、プローブベクトルＰ２等の次のプローブベクトルを受け取る、複数のプローブベクトルスナップショット１００２をトレーニングする第１のブロック１００２に戻る。しかしながら、対象とする状態の発生の判定に応答して、制御は、第３のブロック１００６に進み、識別された状態の名前を挙げる（name）ために、受け取ったベクトルにラベルを関連付ける。いくつかの実施形態によれば、ラベルは、イベントの発生を識別する。例えば、現在受け取っているプローブベクトルが例示的なプローブベクトルＰ５である場合、第２の判定ブロック１００４は、現在受け取っているプローブベクトルＰ５が時刻ｔ１４におけるキュー廃棄イベントを示していると判定し、第３の自己ラベル付けブロック（self-label block）１００６は、ラベル「キュー廃棄」を現在受け取っているプローブベクトルの時系列データ要素（Ｐ５、ｔ１４）に関連付ける。ラベルはまた、イベントに関連付けられたコンポーネント、例えば、どのキュー、およびイベントに関連付けられたノード、例えば、どのＤＣＨまたは他のサーバーを示し得る。第４のブロック１００８は、タイムスタンプマーカーを現在受け取ったベクトルに関連付ける。例えば、プローブベクトルＰ５を「キュー廃棄」ラベルでラベリングする例示的な事例を続けると、第４のブロック１００８は、時間増分ｔ１４を示す時間マーカーでプローブベクトルＰ５をラベル付けする。第４の自己ラベル付けブロック１００８はまた、現在受け取ったベクトルを、予測された状態の深刻度および／または対象とする範囲等の他の識別データでラベル付けしてもよい。対象とする範囲は、例えば、時間の範囲、複数のノードの範囲、および／または複数のプローブベクトルの範囲（例えば、対象とする他の複数の列）を包含し得る。
【００４２】
第５のブロック１０１０は、一組の自己ラベル付けされたトレーニングスナップショットに含めるために１つまたは複数のプローブベクトルを選択する。いくつかの実施形態によれば、例えば、第５のブロック１０１０は、イベントのタイプに基づいてまたは複数のイベントの同時発生に基づいて、一組のトレーニングスナップショットに含まれるプローブベクトルの集合を選択し得る。一組のトレーニングスナップショットは、ある時間範囲内の複数のイベントの同時発生を包含するように、異なるイベントを含む複数のプローブベクトルを含み得る。たとえば、侵入（例えば、ハッカー攻撃）の検出は、サンプリングされたＩＰアドレス及びポート使用率に大きく相関するが、ロードバランスの変動またはストレージ使用率にはあまり相関しない。いくつかの実施形態によれば、例えば、第５のブロック１０１０は、例えば、イベントが発生したデバイスへのネットワーク近接性（network proximity）に基づいて、一組のトレーニングスナップショットに含まれるプローブベクトルの集合を選択し得る。ネットワーク近接性は、たとえば、ＢＧＰピア、フローパス内のノード、同じネットワークネームスペース（network namespace）内のノードなどに基づいてもよい。いくつかの実施形態によれば、例えば、第５のブロック１０１０は、例えば、イベントに対する時間的近接性に基づいて、一組のトレーニングスナップショットに含まれるプローブベクトルの集合を選択してもよい。たとえば、輻輳イベントは、イベントから数秒以内のデータに関連している可能性が高い。
【００４３】
第６のブロック１０１２は、タイムスタンプによって示される時刻の前におよび前まで延長され得る異なる範囲内の選択された複数のプローブベクトルのデータ要素を含み、タイムスタンプによって示される時刻も含み得る複数のトレーニングデータスナップショットを含むスナップショットデータ構造を生成する。各スナップショットはデータ構造であり、異なるスナップショットは、複数のプローブベクトルの同じ集合からの時系列データ要素を含み得るが、異なる時間範囲、およびおそらく異なるＤＣＨについての時系列データ要素を含んでもよい。第７のブロック１０１４は、ブロック１００６で判定されたラベルと一致する複数のスナップショットをラベル付けする。複数のスナップショットは、第２の決定ブロック１００４によって識別されるイベントの発生等の条件を予測するために推論エンジン１４０４をトレーニングするように構成された以下に説明される機械学習システム１５０２によって使用され得る。ブロック１０１０、１０１２は、イベントの発生を事前に予測するように推論エンジン１４０４をトレーニングするために使用する複数のトレーニングプローブベクトルスナップショットを生成し得る。
【００４４】
第２の決定ブロック１００４が対象とする条件の発生を示すトレーニングデータセット自体内のデータを検出することに基づいてそれらのラベリングが生じるので、複数のトレーニングプローブベクトルスナップショットは、「自己ラベリング（self-labeled）」と呼称される。すなわち、プローブベクトル自体は、プローブベクトルがラベル付けされたトレーニングデータとして使用されることを示すものとして判定ブロック１００４によって認識されるデータを含む。したがって、プロセス１０００は、例えば、対象とするイベントを示すために、ラベル付けされるべきプローブベクトルを識別し、トレーニングを支援するために、異なるノード、イベント、および時系列時間増分に対応する、複数のプローブベクトルまたはその一部分の十分に大きな集合の複数の部分を含み得る複数の対応するラベル付きスナップショットを生成する。さらに、マスターデバイス２０３ａは、複数のプローブベクトル８００の時系列の集合を、第４のフロー図１０００に従って設定された別個のコンピュータシステム（図示せず）に送信して、リアルタイムで生じる必要はない複数のトレーニングプローブベクトルスナップショットを生成してもよいことを理解されたい。いくつかの実施形態によれば、「マスターデバイス」は、クラスター内に分散されるソフトウェアプロセスとして具体化されてもよい。したがって、マスターデバイスは、特定のマシンにロックされる必要はなく、任意の単一のマシン故障に対して耐性を有し得るように、ビルトイン冗長性（built-in redundancy）（つまり、複数のコンテナを持つアプリケーション／プロセス）を有し得る。
【００４５】
データ構造は、１つ以上のイベントの発生に至る一連の時間間隔の間に、ＤＣＮ２００内の１つ以上のクラスター内の複数のＤＣＨの複数のコンポーネントの同時物理状態を集合的に示す複数のトレーニングスナップショットを含むことを理解されたい。以下に説明するように、複数のスナップショットデータ構造は、推論エンジン１４０４をトレーニングし、ＤＣＮ２００内の１つ以上のクラスター内の複数のＤＣＨの複数のコンポーネントのリアルタイムの物理状態を、１つ以上のイベントの発生に到る可能性が高い一連のリアルタイム時間間隔にわたって予測するために用いられ得る。このような予測は、１つ以上の予測されたイベントの発生を回避するための修正措置を実行する基礎として使用され得る。
【００４６】
図１０Ｂは、いくつかの実施形態による、自己ラベリングされたトレーニングデータを生成するようにコンピュータシステムを設定する代替的な方法を示す例示的な第５のフロー図１０５０である。ＤＣＨまたはサーバーは、図１０Ｂのプロセスに従って自己ラベリングされたトレーニングデータを生成するように、複数のプログラム命令に従って設定され得る。以下で図１３を参照してより完全に説明されるように、機械学習エンジン１４０２は、自己ラベリングされたトレーニングデータに基づいて推論エンジン１４０４をトレーニングして、すでに発生した後ではなく事前にネットワーク状態を予測するように構成され得る。
【００４７】
第１のブロック１０５２は、機械可読記憶デバイスにおいて、複数のトレーニングスナップショットを生成するための複数の組の１つ以上のイベントを選択するように複数の異なる組み合わせイベントセット選択基準（multiple different combinations event set selection criteria）を提供する。以下の表は、複数のイベントを選択するための例示的な基準を示している。第１のブロック１０５２は、例えば、イベントタイプ、時間範囲、ハードウェアデバイスまたはソフトウェアプロセスのうちの１つまたは複数を含み得る組み合わせを含む基準を示すように構成され得る。
【００４８】
【表１】
2021530067.tif 000003
第２のブロック１０５４は、第１のブロック１０５２によって提供される一組のイベント選択基準を選択する。第３のブロック１０５６は、現在選択されているイベント選択基準に基づいて、１つまたは複数のイベントの発生について、図８の複数のプローブベクトル８００の集合をスキャンする。例えば、現在選択されているイベント選択基準は、キュー廃棄イベントおよび分散しきい値イベントを超えるロードバランスの同時発生について複数のプローブベクトル８００の集合をスキャンするように第３のブロック１４０６に指示し得る。第４の決定ブロック１０５８は、現在選択されているイベント選択基準と、複数のプローブベクトル８００の集合内の１つまたは複数のイベント内の複数のイベントとの間に一致が存在するかどうかを判定する。存在しない場合、制御は、第２のブロック１０５４に戻り、第１のブロック１０５２によって提供される別の組のイベント選択基準を選択し得る。存在する場合、第５のブロック１０６０は、ラベルを、イベント選択基準に一致する複数のイベントを含む１つまたは複数のベクトルに関連付ける。第６のブロック１０６２は、タイムスタンプマーカーを、１つまたは複数のイベントマッチング基準に一致する１つまたは複数のベクトルのうちの対象とする最新のベクトル（latest vector）の発生時刻に関連付ける。トレーニングデータは、対象とする最新のイベントの前におよびそれまで延長し得る異なる時間範囲内の選択された／一致する複数のプローブベクトルの複数のプローブベクトルデータ要素を含み得る。しかしながら、そのトレーニングデータのラベルは、単一の最新イベントではなく、組み合わせイベントを参照する。したがって、いくつかの実施形態では、第６のブロック１０６２は、一致する１つまたは複数のイベントの中から最新の発生イベントの発生に時間的に対応するプローブベクトル内のデータ系列要素（data series element）でタイムスタンプマーカーをベクトルプローブに関連付ける。第７のブロック１０６４は、複数の自己ラベリングされたトレーニングスナップショットに含めるために１つまたは複数のプローブベクトルを選択する。第８のブロック１０６６は、タイムスタンプによって示される時刻またはそれ以前の異なる範囲内の選択された複数のプローブベクトルの複数のデータ要素を含む複数のスナップショットを生成する。第７および第８のブロック１０６４、１０６６は、例えば、図１０Ａのブロック１０１０、１０１２を参照して上記した方法で複数のプローブベクトルを選択し、複数のスナップショットを生成し得る。第９のブロック１０６８は、ブロック１０６０で決定されたラベルと一致する複数のスナップショットをラベル付けする。複数のスナップショットは、以下に説明する第２の判定ブロック１４０６，１０５８によって識別される一組のイベントの発生等の条件を予測するために推論エンジン１４０４をトレーニングするように構成される機械学習システム１４０２によって使用され得る。
【００４９】
図１１は、いくつかの実施形態による、図１０Ａまたは図１０Ｂのプロセスに従って生成されたラベル付きプローブベクトルスナップショットトレーニングデータの第１のセットを含む例示的なスナップショットデータ構造１１００を示す例示的な説明図である。データ構造１１０３のコンポーネントであるラベルＡ１１００は、例示的な４つのスナップショット１１０２〜１１０８を含み、コンポーネントＡにおけるキュー廃棄イベントに至る一連の時間シーケンスにわたるＤＣＨ２００ａのコンポーネントＡ（図示せず）の物理的状態を集合的に示す。スナップショットデータ構造１１００は、対象とするイベントの発生時刻を示す各タイムスタンプコンポーネントにおいてタイムスタンプ「Ｔ」１１０５を含み、この事例ではイベント「Ｘ１」の発生時刻であるｔ１４である。より詳細には、スナップショットデータ構造１１００の第１の例の自己ラベリングされたトレーニングスナップショットデータ１１０２のコンポーネントは、時間増分範囲ｔ５〜ｔ１３のＤＣＨ２００ａのプローブベクトルＰ５の複数のデータ要素からなるサブシーケンスを含む。第１のスナップショット１１０２は、例えば、ノード２００ａの「示されているコンポーネントＡでのキュー廃棄」を示し得る例示的なラベルＡ１１０３に関連付けられている。ラベルＡ１１０３は、キュー廃棄が発生したノード２００ａのポートの指示および／またはマシン名、ポート（ただし、この情報はポートベクトル内のデータとしてすでに含まれている場合がある）、そのマシン上で実行されている複数のアプリケーション、そのマシン上で実行されている複数のプロトコルなどの追加の物理ハードウェア識別情報を含み得る。しかしながら、マシン（例えば、ＤＣＨ）の構成を示すデータは、それらが（マシン名のように）静的でない限り、複数のプローブベクトルの全体的な集合においてすでにそれら自体が複数のベクトルである可能性が高いことを理解されたい。データ構造１１００の第２の例の自己ラベリングされたトレーニングスナップショット１１０４のコンポーネントは、時間増分範囲ｔ１〜ｔ１０のＤＣＨ２００ａのプローブベクトルＰ５の複数のデータ要素からなるサブシーケンスを含む。第２のスナップショット１１０４も、ラベルＡに関連付けられている。データ構造１１００の第３の例の自己ラベリングされたトレーニングスナップショット１１０６は、時間増分範囲ｔ１〜ｔ７のＤＣＨ２００ａのプローブベクトルＰ５の複数のデータ要素からなるサブシーケンスを含む。第３のスナップショット１１０６も、ラベルＡ１１０３に関連付けられている。データ構造１１００の第４の例の自己ラベリングされたトレーニングスナップショット１１０８のコンポーネントは、時間増分範囲ｔ１〜ｔ５のＤＣＨ２００ａのプローブベクトルＰ５の複数のデータ要素からなるサブシーケンスを含む。第４のスナップショット１１０８も、ラベルＡ１１０３に関連付けられている。例示的な複数の時間範囲は、データ構造１１０に対応するキュー廃棄イベントの発生の時間間隔ｔ１４までの時間間隔を含むが時間間隔ｔ１４を含まないように拡張されることに留意されたい。スナップショットデータ構造は、対応するイベントの時間間隔、そのようなイベントの前に発生する複数の時間間隔を含み得るが、イベントの前に発生するトレーニングデータは、概して、イベントを予測するために推論エンジン１４０４をトレーニングするためにより有用である。
【００５０】
スナップショット１１０８は、スナップショット１１０２、１１０４、１１０６の最後のデータ要素に対応する時間増分よりも早い時間増分ｔ５に対応する最後（最新）のデータ要素を含む複数のデータ要素からなるサブシーケンスを含むことに留意されたい。スナップショット１１０６は、スナップショット１１０２、１１０４の最後のデータ要素に対応する時間増分よりも早い時間増分ｔ７に対応する最後のデータ要素を含む複数のデータ要素からなるサブシーケンスを含む。スナップショット１１０４は、スナップショット１１０２の最後のデータ要素に対応する時間増分よりも早い時間増分ｔ１０に対応する最後のデータ要素を含む複数のデータ要素からなるサブシーケンスを含む。従って、スナップショット１１０２〜１１０８の例示的なシーケンスは、対象とするイベントＰ５の発生時刻ｔ１４より遅くない最終時刻（latest time）をそれぞれ有する異なる４つの時間間隔の同じＤＣＨ２００ａについての同じプローブベクトル（Ｐ５）を包含する。
【００５１】
図１２は、いくつかの実施形態による、図１０Ａまたは図１０Ｂのプロセスに従って生成された自己ラベリングされたプローブベクトルスナップショットトレーニングデータの第２のセットを含む例示的なスナップショットデータ構造を示す例示的な説明図１１５０である。データ構造１１５０のコンポーネントであるラベルＢ１１５３は、例示的な４つのスナップショット１１５２〜１１５８を含み、時間ｔ１５で生じる例示的なプローブベクトルＰＸ−２によって示される分散しきい値イベントを超えるロードバランスに至る一連の時間シーケンスにわたるＤＣＨ２００ａのコンポーネントＢ（図示せず）の物理的状態を集合的に示す。スナップショットデータ構造１１５０は、対象とするイベントの発生時刻を示す各タイムスタンプコンポーネントにおいてタイムスタンプ「Ｔ」１１５５を含み、この事例ではイベント「Ｘ２」の発生時刻であるｔ１５である。より詳細には、データ構造１１５０の第５の例の自己ラベリングされたトレーニングスナップショット１１５２のコンポーネントは、時間増分範囲ｔ５〜ｔ１４の各ＤＣＨ２００ａ〜２００ｆのプローブベクトルＰ１〜Ｐ５，Ｐ５０〜ＰＸについての複数のデータ要素からなるサブシーケンスを含む。第５のスナップショット１１５２は、例えば、ノード２００ｂのコンポーネントＢ（図示せず）における分散しきい値イベントを超えるロードバランスを示し得るラベルＢ１１５３に関連付けられている。ラベルは、上記したような追加情報を含んでもよい。データ構造１１５０の第６の例の自己ラベリングされたトレーニングスナップショット１１５４のコンポーネントは、時間増分範囲ｔ１〜ｔ１４の各ＤＣＨ２００ａ〜２００ｆのプローブベクトルＰ１〜Ｐ５，Ｐ５０〜ＰＸについての複数のデータ要素からなるサブシーケンスを含む。第６のスナップショット１１５４も、ラベルＢ１１５３に関連付けられている。データ構造１１５０の第７の例のラベル付けプローブベクトルスナップショット１１５６のコンポーネントは、時間増分範囲ｔ４〜ｔ１３の各ＤＣＨ２００ａ〜２００ｆのプローブベクトルＰ１〜Ｐ５，Ｐ５０〜ＰＸについての複数のデータ要素からなるサブシーケンスを含む。第７のスナップショット１１５６も、ラベルＢ１１５３に関連付けられている。データ構造１１５０の第８の例の自己ラベリングされたトレーニングスナップショット１１５８のコンポーネントは、時間増分範囲ｔ３〜ｔ１２の各ＤＣＨ２００ａ〜２００ｆのプローブベクトルＰ１〜Ｐ５，Ｐ５０〜ＰＸについての複数のデータ要素からなるサブシーケンスを含む。第８のスナップショット１１５６も、ラベルＢ１１５３に関連付けられている。従って、スナップショット１１５２〜１１５８の例示的な複数のシーケンスは、同じＤＣＨ２００ａ〜２００ｆについて、対象とするイベントＰＸ−２の発生時刻ｔ１５より遅くない最終時刻をそれぞれ有する異なる４つの時間間隔の同じ複数のプローブベクトル（Ｐ１−Ｐ５、Ｐ５０−ＰＸ）を包含する。
【００５２】
図１３は、いくつかの実施形態による、図１０Ａまたは図１０Ｂのプロセスに従って生成された自己ラベル付きプローブベクトルスナップショットトレーニングデータ１３００の第３のセットを含む例示的なスナップショットデータ構造を示す例示的な説明図１３００である。データ構造１３００のコンポーネントであるラベルＣ１３０３は、例示的な１２個のスナップショット１３０２〜１３０４を含み、時間ｔ１５で生じる例示的なプローブベクトルＰＸによって示される侵入イベントに至る一連の時間シーケンスにわたるＤＣＨ２００ａのコンポーネントＣ（図示せず）の物理的状態を集合的に示す。スナップショットデータ構造１３００は、対象とするイベントの発生時刻を示す各タイムスタンプコンポーネントにおいてタイムスタンプ「Ｔ」１３０５を含み、この事例ではイベント「Ｘ３」の発生時刻であるｔ１５である。より詳細には、データ構造１３００のそれぞれの第９〜第１２のスナップショット１３０２〜１３０８のコンポーネントは、ラベルＣ１３０３と、時間増分ｔ１０〜ｔ１４、ｔ８〜ｔ１４、ｔ８〜ｔ１２、ｔ６〜ｔ１２に対するＤＣＨ２００ａ〜２００ｃの各々についてのプローブベクトルＰ１〜Ｐ５とをそれぞれ含む。ラベルＣ１３０３は、例えば、「ノード２００ｂにおける侵入イベントの検出」を示し、上記したような追加情報を含み得る。データ構造１３００の第１３〜第１６のスナップショット１３１０〜１３１６の各々のコンポーネントは、ラベルＣと、時間増分ｔ１０〜ｔ１４、ｔ８〜ｔ１４、ｔ８〜ｔ１２、ｔ６〜ｔ１２の各々のＤＣＨ２００ｂ〜２００ｅの各々についてのプローブベクトルＰ１〜Ｐ５を含む。データ構造１３００の第１７〜第２０のスナップショット１３１８〜１３２４の各々のコンポーネントは、ラベルＣと、時間増分ｔ８〜ｔ１３、ｔ７〜ｔ１３、ｔ６〜ｔ１３、ｔ５〜ｔ１３の各々のＤＣＨ２００ｃ〜２００ｆの各々についてのプローブベクトルＰ１〜Ｐ５と、を含む。従って、スナップショット１３０４〜１３０８，１３１０〜１３１６，１３１８〜１３２４の例示的な３つのシーケンスは、ＤＣＨｓ（ＤＣＨｓ２００ａ〜２００ｃ，ＤＣＨｓ２００ｂ〜２００ｅ，ＤＣＨｓ２００ｃ〜２００ｆ）の異なる組合せについて、対象とするイベントＰＸの発生時刻ｔ５より遅くない最終時刻をそれぞれ有する異なる４つの時間間隔について、同じ時間間隔（ｔ８〜ｔ１３、ｔ７〜ｔ１３、ｔ６〜ｔ１３、ｔ５〜ｔ１３）の同じ複数のプローブベクトル（Ｐ１−Ｐ５）をそれぞれ包含する。
【００５３】
イベントに先行する時系列データ（例えば、イベントのタイムスタンプに先行する１つまたは複数のプローブベクトル内の時系列データ）は、イベントとの相関および／または因果関係を有するデータを提供し得る。スナップショットデータ構造１１００、１１５０、１３００は、タイムスタンプでタグ付けされ、対応するイベントを示すためにラベル付けされている。データ構造１１００、１１５０、１３００のトレーニングスナップショットのコンポーネントは、例えば、推論エンジン１４０４をトレーニングしてイベントの発生前に予防措置が実行され得るようにイベントの発生を予測するために用いられ得る。予測されるキュー廃棄イベントの場合、予防措置は、例えば、トラフィックのリダイレクト（redirecting）、ロードバランシングスキームの変更、複数のアプリケーション（複数のコンテナ）のＤＣＮ２００内の別の場所への移動、複数のホスト（つまり、複数のサーバー）または複数のストレージターゲットへのフロー制御の送信、複数のレート制限ポート、異なるネットワークのパーティション化を含み得る。分散閾値イベントを超える予測されたロードバランシングの場合、予防処置は、例えば、ロードバランシングスキームの変更、複数のアプリケーション（複数のコンテナ）の２００内の別の場所への移動、ＤＣＮ２００内のＩＰアドレス指定方式の再割り当て、異なるネットワークのパーティション化を含み得る。
【００５４】
自己ラベリングされたラベル付きプローブベクトルスナップショットトレーニングデータは、イベントの発生を事前に予測するために推論エンジン１４０４のトレーニングに使用するための異なる時間増分における複数のプローブベクトルデータ要素を含む。一組の自己ラベリングされたラベル付きプローブベクトルスナップショットトレーニングデータ内の異なるスナップショットは、イベントが発生する前の異なる時間増分範囲を含む。任意の時間増分におけるイベントの発生は、イベントの発生前の１つまたは複数のプローブベクトルの時間要素データに基づいて予測され得る。一組のスナップショットトレーニングデータは、異なる最終時間増分を含む異なる時間増分範囲を含む。従って、一組のスナップショットトレーニングデータは、スナップショットが異なる範囲の時間増分をカバーする複数のスナップショットからなる時間シーケンスを含み、シーケンス内の各スナップショットは、シーケンス内の次のスナップショットの最終時間増分とは異なる最終時間増分を有する。いくつかの実施形態では、複数のスナップショットシーケンス内の各スナップショットは、スナップショットシーケンス内の次のスナップショットの最終時間増分よりも早い最終時間増分を有する。いくつかの実施形態では、シーケンス内の最後のスナップショット以外の各スナップショットは、シーケンス内の少なくとも１つの他のスナップショットの最終時間増分よりも遅い最終時間増分を有する。時間を遡り過ぎる複数のラベル付きトレーニングプローブベクトルスナップショットを生成することは、データが事象と相関しなくなり、正確性を損ない、偽陽性（false positives）を生成する可能性があるので、機械学習エンジンによるトレーニングにさらなる改善をもたらす可能性は低い。従って、どれだけトレーニングセットが時間的に遡っているかについての制限または制約が必要とされ得る。予測精度と、どれだけ前もって推論エンジンが対象とする状態を予測するかとの間には、トレードオフが必要になり得る。
【００５５】
特定のプローブベクトルは他のものよりもイベントの発生をより予測することができるので、自己レベリングされたラベル付きプローブベクトルスナップショットトレーニングデータは、複数のプローブベクトルの異なる組み合わせからの複数のデータ要素を含み得る。さらに、複数のプローブベクトルは非常に大きくなる可能性があるので、機械学習アルゴリズムによって必要とされるトレーニング時間および必要とされる計算能力は、非常に多く又は非常に高価になる可能性がある。トレーニングのために使用される複数のディメンションの時系列ベクトル内のデータ量は、予測可能性のために含めるために戻る履歴時間増分の数を維持しながら、時間スタンプ当たりのより小さいディメンション化されたトレーニングデータを生成するように低減され得る。あるアプリオリインテリジェンス（priori intelligence）は、ある条件に特有のトレーニングにどのデータを含めるかに関して、管理者によって合理的に適用され得る。複数のラベル付きトレーニングプローブベクトルスナップショットのサイズは、すべての条件で同じである必要はない。つまり、トレーニングデータが構築される複数のプローブベクトル８００の集合は変化しないが、特定のラベル／条件のトレーニングセットに含まれるデータは変化し得る。
【００５６】
いくつかの事例では、機械学習の収束時間を短縮するだけでなく、精度を向上させるために、複数のプローブベクトルからデータが省略されてもよい。例えば、トレーニングデータから既知の非相関の複数のディメンションを除去することによって、機械学習アルゴリズムに提示される「ノイズ」が少なくなり、より正確な予測を行うことができる。
【００５７】
Ｋ．ネットワークの状態を予測するための機械学習
図１４は、いくつかの実施形態による、複数のラベル付きトレーニングプローブベクトルスナップショットに基づいて複数のネットワーク状態を予測するために推論エンジン１４０４をトレーニングするように構成された教師あり学習システム１４０２を示す例示的な説明図である。１ノードあたり毎秒数万を含み得る多くのプローブベクトルが生成される場合、ネットワーク状態の発生を識別するために、人的時間（human time）でリアルタイムネットワーク解析を実行することは不可能である。また、マシンが、現在利用可能なモニターおよびプローブ時系列データセットに基づくネットワーク状態に対して、定型的に提案されたアクション（例えば、アラーム、警告、予測、動作）を有するリアルタイム（例えば、ミリ秒の時間スケール）で到達することは不可能である。いくつかの実施形態によれば、機械学習が適用されて、複数のプローブベクトル内に含まれる履歴データから学習し、そのようなデータに基づいてネットワーク状態の発生を予測するための推論モデルを生成し得る。いくつかの実施形態では、推論モデルは、入力として複数のディメンションのベクトルを受け取り、出力としてネットワーク状態の指標を提供し得る伝達関数を含み得る。
【００５８】
機械学習エンジン１４０２は、機械学習（machine learning : ML）アルゴリズム１４０６に従って設定されたコンピュータシステム１４０３を含み得る。推論エンジン１４０４は、伝達関数１４１４に従って設定されたコンピュータシステム１４０５を含み得る。アルゴリズム１４０６は、決定木、ナイーブベイズ分類、最小二乗回帰、ＳＶＭ、ＰＣＡ、ＩＣＡ、またはクラスタリング等であり、例えば、イベントの発生を検出するためにイベント発生予測伝達関数１４１４をトレーニングする。教師あり学習システム１４０２は、図１４に示すように、複数のラベル付きトレーニングプローブベクトルスナップショット１４１２を受け取る。トレーニング中、複数のラベルなしトレーニングベクトル１４１０は、複数の時間増分にわたって生成された複数のプローブベクトルを含み、複数のラベル付きトレーニングプローブベクトルスナップショット１４１２は、推論エンジン１４０４をトレーニングするためにＭＬエンジン１４０２に入力され得る。推論の間、新しいデータ１４１６である。新しいデータ１４１６は、それがトレーニングのためにまだ使用されていないという点で「新しい（new）」ものである。新しいデータ１４１６は、伝達関数１４１４に基づいて例えば、複数のイベント等の複数の予測状態を示す複数の推論値１４２０を生成するために推論エンジン１４０４に提供される、複数の新しいプローブベクトル１４１８に変換された複数の時間増分にわたるリアルタイムプローブベクトルデータを含み得る。いくつかの実施形態では、マスターデバイス２０３ａは、推論エンジン１４０４を含むように構成されてもよい。また、マスターデバイス２０３ａは、複数の新しいベクトル１４１８、例えば、ＤＣＨ２００ａ〜２００ｆのプローブベクトルＰ１〜ＰＸの新しいイテレーション（iterations）を含む、複数の新しいプローブベクトル８００を新しいデータ１４１６として受け取るように構成されてもよい。推論エンジン１４０４は、例えば、複数の新しいプローブベクトルに基づいて、マーカーＸ１、Ｘ２またはＸ３によって示される上述した複数のイベントの発生を予測するようにトレーニングされ得る。
【００５９】
予測伝達関数は、複数の時間増分のローリングウィンドウ（rolling window）にわたって複数のディメンションのベクトル１４１８を入力として受け取り、将来、ある状態がいくつかの時間増分で生じるか否かを予測し得る。出力が正である（条件が発生する）場合、その状態が発生する前に回避するために複数の工程が実行され得る。実行可能な複数の工程／動作の例は、１つ以上のボックスのロードバランシングアルゴリズムの変更、アプリケーションがデプロイされる場所の変更、直接接続されたサーバーまたは記憶デバイスへのＥｔｈｅｒｎｅｔポーズフレーム（Ethernet pause frame）の送信、リンクのシャットダウンを含み得る。
【００６０】
上記した説明は、当業者が、複数のアプリケーションを実行またはホストしているノードのデータセンタークラスタのためのトレーニングデータに自己ラベリングするシステムおよび方法を作成および使用できるようにするために提示されている。複数の実施形態への様々な修正は当業者には容易に明らかであり、本明細書において定義される一般原理は、本発明の趣旨および範囲から逸脱することなく、他の実施形態および用途に適用され得る。上記した説明では、多くの詳細が説明の目的で示されている。例えば、電気外科信号発生器回路は、シーラーステージ（sealer stage）および解剖ステージを制御するように別個のプロセスを実行するための複数の命令で設定される単一のプロセッサを含み得る。しかしながら、当業者は、本発明がこれらの特定の詳細を使用せずに実施され得ることを理解するであろう。他の複数の例では、不必要な詳細で本発明の説明を曖昧にしないために、周知の複数のプロセスがブロック図の形で示されている。同一の参照符号が、異なる図面における同じまたは類似のアイテムの描写を示すように用いられ得る。したがって、本発明による複数の実施形態の前述の説明および図面は、本発明の原理の単なる例示である。したがって、添付の特許請求の範囲に定義されている本発明の趣旨および範囲から逸脱することなく、当業者が複数の実施形態に様々な変更を加えることができることが理解されよう。
【図１】
2021530067.tif 000004
【図２】
2021530067.tif 000005
【図３】
2021530067.tif 000006
【図４】
2021530067.tif 000007
【図５】
2021530067.tif 000008
【図６】
2021530067.tif 000009
【図７】
2021530067.tif 000010
【図８】
2021530067.tif 000011
【図９】
2021530067.tif 000012
【図１０Ａ】
2021530067.tif 000013
【図１０Ｂ】
2021530067.tif 000014
【図１１】
2021530067.tif 000015
【図１２】
2021530067.tif 000016
【図１３】
2021530067.tif 000017
【図１４】
2021530067.tif 000018
【国際調査報告】
2021530067.tif 000019