(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-06
(54)【発明の名称】分散ストレージシステムにおけるマスターデータ配置
(51)【国際特許分類】
H04L 67/1097 20220101AFI20230330BHJP
G06F 16/182 20190101ALI20230330BHJP
【FI】
H04L67/1097
G06F16/182
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022542090
(86)(22)【出願日】2021-01-19
(85)【翻訳文提出日】2022-08-18
(86)【国際出願番号】 US2021014002
(87)【国際公開番号】W WO2021146725
(87)【国際公開日】2021-07-22
(32)【優先日】2020-01-13
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】508041127
【氏名又は名称】シスコ テクノロジー,インコーポレイテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(74)【代理人】
【識別番号】100140431
【氏名又は名称】大石 幸雄
(72)【発明者】
【氏名】トルノー,ドミニク,レネ
(72)【発明者】
【氏名】デーブ,ウルミル,ビジェイ
(57)【要約】
分散ストレージシステム上のデータアイテムの配置を管理するためのシステム、方法、およびコンピュータ可読媒体。いくつかの例では、方法は、分散ストレージシステム上のデータアイテムのマスターコピーの場所を決定することであって、その場所が、分散ストレージシステム上のデータストアを含む、決定することと、データアイテムのマスターコピーと関連付けられたアクセスパターンを決定することであって、アクセスパターンが、分散ストレージシステムによって受信された、データアイテムのマスターコピーへのアクセス要求の発信場所、および発信場所の各々から受信されたアクセス要求のそれぞれの数を含む、決定することと、アクセスパターンに基づいて、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所を決定することであって、異なる場所が、分散ストレージシステム上の異なるデータストアを含む、決定することと、データアイテムのマスターコピーを異なる場所に配置することと、を含むことができる。
【選択図】
図2
【特許請求の範囲】
【請求項1】
方法であって、
分散ストレージシステム上に記憶されたデータアイテムのマスターコピーの現在の場所を決定することであって、前記データアイテムの前記マスターコピーの前記現在の場所が、前記分散ストレージシステム上の複数のデータストアからの現在のデータストアを含む、決定することと、
前記データアイテムの前記マスターコピーと関連付けられたアクセスパターンを決定することであって、前記アクセスパターンが、前記分散ストレージシステムによって受信された、前記データアイテムの前記マスターコピーへのアクセス要求のセットの1つ以上の発信場所と、前記1つ以上の発信場所の各々から受信されたアクセス要求のそれぞれの数と、を含む、決定することと、
前記データアイテムの前記マスターコピーと関連付けられた前記アクセスパターンに基づいて、前記データアイテムの前記マスターコピーを記憶するための前記分散ストレージシステム上の異なる場所を決定することであって、前記異なる場所が、前記複数のデータストアとは異なるデータストアを含む、決定することと、
前記データアイテムの前記マスターコピーを前記分散ストレージシステム上の前記異なる場所に配置することと、を含む、方法。
【請求項2】
前記データアイテムの前記マスターコピーを記憶するための前記分散ストレージシステム上の前記異なる場所を決定することが、
前記データアイテムの前記マスターコピーと関連付けられた前記アクセスパターンに基づいて、前記1つ以上の発信場所から、前記データアイテムの前記マスターコピーと関連付けられたアクセス要求の最大数の発信場所を識別することと、
前記複数のデータストアのどれが、前記データアイテムの前記マスターコピーと関連付けられた前記アクセス要求の最大数の前記発信場所に最も近い場所にあるかを決定することと、
前記異なる場所と関連付けられた前記異なるデータストアが、前記データアイテムの前記マスターコピーと関連付けられた前記アクセス要求の最大数の前記発信場所に最も近い場所にあると決定することと、を含む、請求項1に記載の方法。
【請求項3】
前記1つ以上の発信場所が、前記分散ストレージシステムによって受信された、前記データアイテムの前記マスターコピーへの前記アクセス要求のセットを生成した1つ以上のクライアントデバイスに対応し、前記データアイテムの前記マスターコピーを前記分散ストレージシステム上の前記異なる場所に配置することが、前記データアイテムの前記マスターコピーを前記現在のデータストアから前記異なるデータストアに移動することを含む、請求項2に記載の方法。
【請求項4】
前記異なるデータストアが、前記データアイテムの前記マスターコピーと関連付けられた前記アクセス要求の最大数の前記発信場所に最も近い場所にあると決定することは、
前記異なるデータストアと前記発信場所との間のホップ数が、前記複数のデータストアの各々と前記1つ以上の発信場所からの1つ以上の残りの場所の各々との間のそれぞれのホップ数未満であると決定することと、
前記異なるデータストアと前記発信場所との間の距離が、前記複数のデータストアの各々と、前記1つ以上の発信場所からの前記1つ以上の残りの場所の各々との間のそれぞれの距離未満であると決定することと、のうちの少なくとも1つを含む、請求項2または3に記載の方法。
【請求項5】
前記データアイテムの前記マスターコピーを記憶するために前記分散ストレージシステム上の前記異なる場所を決定することが、
前記分散ストレージシステム上に記憶された第2のデータアイテムの第2のマスターコピーの第2の現在の場所を決定することであって、前記第2のデータアイテムの前記第2のマスターコピーの前記第2の現在の場所が、前記分散ストレージシステム上の前記複数のデータストアからの第2の現在のデータストアを含む、決定することと、
前記データアイテムの前記マスターコピーと関連付けられた前記アクセスパターンと、前記第2のデータアイテムの前記第2のマスターコピーと関連付けられた第2のアクセスパターンに基づいて、前記第2のデータアイテムの前記マスターコピーと前記第2のデータアイテムの前記第2のマスターコピーの両方を記憶するための前記分散ストレージシステム上の前記異なる場所を選択することと、
前記データアイテムの前記マスターコピーと前記第2のデータアイテムの前記第2のマスターコピーの両方を前記分散ストレージシステム上の前記異なる場所に配置することと、を含む、請求項1に記載の方法。
【請求項6】
前記第2のアクセスパターンが、前記第2のデータアイテムの前記第2のマスターコピーと関連付けられたアクセス要求の第2のセットの1つ以上のそれぞれの発信場所と、前記1つ以上のそれぞれの発信場所の各々から受信されたアクセス要求の第2のそれぞれの数と、を含み、前記データアイテムの前記マスターコピーと前記第2のデータアイテムの前記第2のマスターコピーの両方を前記分散ストレージシステム上の前記異なる場所に配置することが、前記データアイテムの前記マスターコピーを前記現在の場所から前記異なる場所に移動することと、前記第2のデータアイテムの前記第2のマスターコピーを前記第2の現在の場所から前記異なる場所に移動することと、を含む、請求項5に記載の方法。
【請求項7】
前記データアイテムの前記マスターコピーが、区分されたデータセットの第1の区分を含み、前記第2のデータアイテムの前記第2のマスターコピーが、前記区分されたデータセットの第2の区分を含む、請求項5または6に記載の方法。
【請求項8】
前記分散ストレージシステム上の前記データアイテムの前記マスターコピーおよび第2のデータアイテムが、合計で閾値回数アクセスされていることを決定することと、
前記データアイテムの前記マスターコピーを記憶するための前記分散ストレージシステム上の前記異なる場所を決定した後、前記第2のデータアイテムを前記第2のデータアイテムの現在のそれぞれの場所から前記異なる場所に移動することであって、前記現在のそれぞれの場所が、前記分散ストレージシステム上の前記複数のデータストアのうちの1つを含む、移動することと、をさらに含む、先行請求項のいずれか一項に記載の方法。
【請求項9】
前記データアイテムの前記マスターコピーが、前記分散ストレージシステム上に記憶された第2のデータアイテムの特定のコピーへの参照を含むことを決定することであって、前記第2のデータアイテムの前記特定のコピーが、前記第2のデータアイテムのそれぞれのマスターコピーのうちの1つ、または前記第2のデータアイテムの前記それぞれのマスターコピーのレプリカを含む、決定することと、
前記データアイテムの前記マスターコピーを記憶するための前記分散ストレージシステム上の前記異なる場所を決定すること、および前記データアイテムの前記マスターコピーが前記第2のデータアイテムの前記特定のコピーへの参照を含むと決定することに応答して、前記第2のデータアイテムの前記特定のコピーを記憶するための前記分散ストレージシステム上の前記異なる場所を選択することと、
前記第2のデータアイテムの前記特定のコピーを前記分散ストレージシステム上のそれぞれの場所から前記分散ストレージシステム上の前記異なる場所に移動することと、をさらに含む、先行請求項のいずれか一項に記載の方法。
【請求項10】
前記分散ストレージシステムと関連付けられた情報を収集することであって、前記情報が、1つ以上のリソースと関連付けられた統計、前記分散ストレージシステム上の1つ以上のデータアイテムと関連付けられた1つ以上のデータアクセス制限、1つ以上のイベント、データアクセスパターン、ならびに前記分散ストレージシステムの少なくとも1つおよび前記分散ストレージシステムと関連付けられた1つ以上のネットワークと関連付けられたネットワーク統計のうちの少なくとも1つを含み、前記1つ以上のリソースが、ストレージノード、計算ノード、仮想マシン、ソフトウェアコンテナ、サーバ、ネットワーク、およびネットワーキングデバイスのうちの少なくとも1つを含む、収集することと、
前記分散ストレージシステムと関連付けられた前記情報に基づいて、前記分散ストレージシステム上の1つ以上のデータアイテムと関連付けられたデータアクセスパフォーマンスを改善するか、または前記分散ストレージシステムのパフォーマンスを改善すると推定されたデータ配置アクションを決定することであって、前記データ配置アクションが、少なくとも1つのデータアイテムを少なくとも1つのストレージ場所から少なくとも1つの異なるストレージ場所に移動することを含み、前記少なくとも1つのストレージ場所および前記少なくとも1つの異なるストレージ場所が、前記複数のデータストアからの異なるデータストアを含む、決定することと、
前記データ配置アクションを決定することに応答して、前記少なくとも1つのデータアイテムを前記少なくとも1つのストレージ場所から前記少なくとも1つの異なるストレージ場所に移動することと、をさらに含む、先行請求項のいずれか一項に記載の方法。
【請求項11】
システムであって、
1つ以上のプロセッサと、
命令を記憶した少なくとも1つのコンピュータ可読ストレージ媒体と、を備え、前記命令が、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
分散ストレージシステム上に記憶されたデータアイテムのマスターコピーの現在の場所を決定することであって、前記データアイテムの前記マスターコピーの前記現在の場所が、前記分散ストレージシステム上の複数のデータストアからの現在のデータストアを含む、決定することと、
前記データアイテムの前記マスターコピーと関連付けられたアクセスパターンを決定することであって、前記アクセスパターンが、前記分散ストレージシステムによって受信された、前記データアイテムの前記マスターコピーへのアクセス要求のセットの1つ以上の発信場所と、前記1つ以上の発信場所の各々から受信されたそれぞれのアクセス要求の数と、を含む、決定することと、
前記データアイテムの前記マスターコピーと関連付けられた前記アクセスパターンに基づいて、前記データアイテムの前記マスターコピーを記憶するための前記分散ストレージシステム上の異なる場所を決定することであって、前記異なる場所が、前記複数のデータストアとは異なるデータストアを含む、決定することと、
前記データアイテムの前記マスターコピーを前記分散ストレージシステム上の前記異なる場所に配置することと、を行わせる、システム。
【請求項12】
前記データアイテムの前記マスターコピーを前記分散ストレージシステム上の前記異なる場所に配置することが、前記データアイテムの前記マスターコピーを前記現在のデータストアから前記異なるデータストアに移動することと、前記データアイテムの前記マスターコピーを記憶するための前記分散ストレージシステム上の前記異なる場所を決定することが、
前記データアイテムの前記マスターコピーと関連付けられた前記アクセスパターンに基づいて、前記1つ以上の発信場所から、前記データアイテムの前記マスターコピーと関連付けられたアクセス要求の最大数の発信場所を識別することと、
前記複数のデータストアのどれが、前記データアイテムの前記マスターコピーと関連付けられた前記アクセス要求の最大数の前記発信場所に最も近い場所にあるかを決定することと、
前記異なる場所と関連付けられた前記異なるデータストアが、前記データアイテムの前記マスターコピーと関連付けられた前記アクセス要求の最大数の前記発信場所に最も近い場所にあると決定することと、を含む、請求項11に記載のシステム。
【請求項13】
前記異なるデータストアが、前記データアイテムの前記マスターコピーと関連付けられた前記アクセス要求の最大数の前記発信場所に最も近い場所にあると決定することは、
前記異なるデータストアと前記発信場所との間のホップ数が、前記複数のデータストアの各々と前記1つ以上の発信場所からの1つ以上の残りの場所の各々との間のそれぞれのホップ数未満であると決定することと、
前記異なるデータストアと前記発信場所との間の距離が、前記複数のデータストアの各々と、前記1つ以上の発信場所からの前記1つ以上の残りの場所の各々との間のそれぞれの距離未満であると決定することと、のうちの少なくとも1つを含む、請求項12に記載のシステム。
【請求項14】
前記データアイテムの前記マスターコピーを記憶するための前記分散ストレージシステム上の前記異なる場所を決定することが、
前記分散ストレージシステム上に記憶された第2のデータアイテムの第2のマスターコピーの第2の現在の場所を決定することであって、前記第2のデータアイテムの前記第2のマスターコピーの前記第2の現在の場所が、前記分散ストレージシステム上の前記複数のデータストアからの第2の現在のデータストアを含む、決定することと、
前記データアイテムの前記マスターコピーと関連付けられた前記アクセスパターンと、前記第2のデータアイテムの前記第2のマスターコピーと関連付けられた第2のアクセスパターンに基づいて、前記第2のデータアイテムの前記マスターコピーと前記第2のデータアイテムの前記第2のマスターコピーの両方を記憶するための前記分散ストレージシステム上の前記異なる場所を選択することと、
前記データアイテムの前記マスターコピーと前記第2のデータアイテムの前記第2のマスターコピーの両方を前記分散ストレージシステム上の前記異なる場所に配置することと、を含む、請求項11に記載のシステム。
【請求項15】
前記データアイテムの前記マスターコピーが、区分されたデータセットの第1の区分を含み、前記第2のデータアイテムの前記第2のマスターコピーが、前記区分されたデータセットの第2の区分を含み、前記第2のアクセスパターンが、前記第2のデータアイテムの前記第2のマスターコピーと関連付けられたアクセス要求の第2のセットの1つ以上のそれぞれの発信場所、および前記1つ以上のそれぞれの発信場所の各々から受信されたアクセス要求の第2のそれぞれの数を含む、請求項14に記載のシステム。
【請求項16】
前記少なくとも1つのコンピュータ可読ストレージ媒体が、前記1つ以上のプロセッサによって実行されると、前記システムに、
前記分散ストレージシステム上の前記データアイテムの前記マスターコピーと第2のデータアイテムが合計で閾値回数アクセスされていることを決定することと、
前記データアイテムの前記マスターコピーを記憶するための前記分散ストレージシステム上の前記異なる場所を決定した後、前記第2のデータアイテムを前記第2のデータアイテムの現在のそれぞれの場所から前記異なる場所に移動することであって、前記現在のそれぞれの場所が、前記分散ストレージシステム上の前記複数のデータストアのうちの1つを含む、請求項11~15のいずれか一項に記載のシステム。
【請求項17】
前記少なくとも1つのコンピュータ可読ストレージ媒体が命令を記憶しており、前記命令が、前記1つ以上のプロセッサによって実行されると、前記システムに、
前記データアイテムの前記マスターコピーが、前記分散ストレージシステム上に記憶された第2のデータアイテムの特定のコピーへの参照を含むと決定することであって、前記第2のデータアイテムの前記特定のコピーが、前記第2のデータアイテムのそれぞれのマスターコピーの1つ、または前記第2のデータアイテムの前記それぞれのマスターコピーのレプリカを含む、決定することと、
前記データアイテムの前記マスターコピーを記憶するための前記分散ストレージシステム上の前記異なる場所を決定すること、および前記データアイテムの前記マスターコピーが前記第2のデータアイテムの前記特定のコピーへの参照を含むと決定することに応答して、前記第2のデータアイテムの前記特定のコピーを記憶するための前記分散ストレージシステム上の前記異なる場所を選択することと、
前記第2のデータアイテムの前記特定のコピーを前記分散ストレージシステム上のそれぞれの場所から前記分散ストレージシステム上の前記異なる場所に移動することと、を行わせる、請求項11~16のいずれか一項に記載のシステム。
【請求項18】
前記少なくとも1つのコンピュータ可読ストレージ媒体が命令を記憶しており、前記命令が、前記1つ以上のプロセッサによって実行されると、前記システムに、
前記分散ストレージシステムと関連付けられた情報を収集することであって、前記情報が、1つ以上のリソースと関連付けられた統計、前記分散ストレージシステム上の1つ以上のデータアイテムと関連付けられた1つ以上のデータアクセス制限、1つ以上のイベント、データアクセスパターン、ならびに前記分散ストレージシステム上の少なくとも1つおよび前記分散ストレージシステムと関連付けられた1つ以上のネットワークと関連付けられたネットワーク統計のうちの少なくとも1つを含み、前記1つ以上のリソースが、ストレージノード、計算ノード、仮想マシン、ソフトウェアコンテナ、サーバ、ネットワーク、およびネットワーキングデバイスを含む、収集することと、
前記分散ストレージシステムと関連付けられた前記情報に基づいて、前記分散ストレージシステム上の1つ以上のデータアイテムと関連付けられたデータアクセスパフォーマンスを改善するか、または前記分散ストレージシステムのパフォーマンスを改善するために推定されたデータ配置アクションを決定することであって、前記データ配置アクションが、少なくとも1つのデータアイテムを少なくとも1つのストレージ場所から少なくとも1つの異なるストレージ場所に移動することを含み、前記少なくとも1つのストレージ場所および少なくとも1つの異なるストレージ場所が、前記複数のデータストアからの異なるデータストアを含む、決定することと、
前記データ配置アクションの決定に応答して、前記少なくとも1つのデータアイテムを前記少なくとも1つのストレージ場所から前記少なくとも1つの異なるストレージ場所に移動することと、を行わせる、請求項11~19のいずれか一項に記載のシステム。
【請求項19】
命令を記憶した非一時的なコンピュータ可読ストレージ媒体であって、前記命令が、前記1つ以上のプロセッサによって実行されると、前記1つ以上のプロセッサに、
分散ストレージシステム上に記憶されたデータアイテムのマスターコピーの現在の場所を決定することであって、前記データアイテムの前記マスターコピーの前記現在の場所が、前記分散ストレージシステム上の複数のデータストアからの現在のデータストアを含む、決定することと、
前記データアイテムの前記マスターコピーと関連付けられたアクセスパターンを決定することであって、前記アクセスパターンが、前記データアイテムの前記マスターコピーに対して前記分散ストレージシステムによって受信されたアクセス要求のセットの1つ以上の発信場所と、前記1つ以上の発信場所の各々から受信されたそれぞれのアクセス要求の数と、を含む、決定することと、
前記データアイテムの前記マスターコピーと関連付けられた前記アクセスパターンに基づいて、前記データアイテムの前記マスターコピーを記憶するための前記分散ストレージシステム上の異なる場所を決定することであって、前記異なる場所が、前記複数のデータストアとは異なるデータストアを含む、決定することと、
前記データアイテムの前記マスターコピーを前記分散ストレージシステム上の前記異なる場所に配置することと、を行わせる、非一時的なコンピュータ可読ストレージ媒体。
【請求項20】
前記データアイテムの前記マスターコピーを記憶するための前記分散ストレージシステム上の前記異なる場所を決定することが、
前記データアイテムの前記マスターコピーと関連付けられた前記アクセスパターンに基づいて、前記1つ以上の発信場所から、前記データアイテムの前記マスターコピーと関連付けられたアクセス要求の最大数の発信場所を識別することと、
前記複数のデータストアのどれが、前記データアイテムの前記マスターコピーと関連付けられた前記アクセス要求の最大数の前記発信場所に最も近い場所にあるかを決定することと、
前記異なる場所と関連付けられた前記異なるデータストアが、前記データアイテムの前記マスターコピーと関連付けられた前記アクセス要求の最大数の前記発信場所に最も近い場所にあると決定することと、を含む、請求項19に記載の非一時的なコンピュータ可読ストレージ媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本出願は、2020年1月13日に出願された米国非仮特許出願第16/741,580号の利益と優先権を主張し、その完全な開示は参照によりその全体が本明細書に組み込まれる。
【0002】
本技術は、分散ストレージシステムに関し、より具体的には、分散ストレージシステムでのマスターデータ配置に関する。
【背景技術】
【0003】
インターネット対応デバイスの普及により、インターネットサービスおよびコンテンツに対する膨大な需要が生まれている。様々な意味で、ユーザのネットワークサービスおよびコンテンツへの依存度が高まっている相互接続された社会を迎えている。このインターネットおよび相互接続革命は、パフォーマンスの期待を下回ることが多い一方で、大量のクライアント要求に対応するのに苦労しているコンテンツおよびストレージプロバイダに重大な課題をもたらした。例えば、データプロバイダは通常、ユーザからのネットワークおよびデータ要求に追いつくために、大規模で複雑なデータセンタを必要とする。これらのデータセンタには、特定のデータおよびサービスをホストするように構成されたサーバファームが装備されていることが多く、データ要求をルーティングおよび処理するように構成された多数のネットワークデバイスが含まれる。多くの場合、特定のデータセンタにより数百万のトラフィックフローおよびデータ要求を取り扱うことが期待される。
【0004】
当然のことながら、このような大量のデータは管理が難しく、パフォーマンスが大幅に低下し、課題をもたらす可能性がある。場合によっては、パフォーマンスおよびサービスの信頼性を向上させるために、負荷分散ソリューションが実装されることがある。しかしながら、現在の負荷分散ソリューションはノード障害が発生しやすく、ネットワークおよびデータ要求の動的な変化および変動を適切に考慮できないことが多く、待ち時間およびボトルネックの影響を受けやすい場合がある。追加のリソースを購入して実装すると、ネットワークの容量を増やして、待ち時間を短縮し、パフォーマンスの問題を減らすことができる。残念ながら、このアプローチはコストがかかり、ネットワークがさらに複雑になり、ネットワークの変動および様々なデータアクセスパターンの影響を受けやすいままであり、これにより、過負荷状態による待ち時間、負荷不足状態による無駄、およびパフォーマンスの大きい変動をもたらす可能性がある。
【図面の簡単な説明】
【0005】
本開示の様々な利点および特徴を得ることができる様式を説明するために、添付の図面に示されるその特定の実施形態を参照することにより、上記で簡単に説明した原理のより具体的な説明を行う。これらの図面が本開示の例示的な実施形態のみを描写し、したがって、その範囲を限定するとみなされるべきではないことを理解して、本明細書の原理は、以下の添付の図面を使用することにより、追加の特定事項および詳細とともに記載および説明される。
【0006】
【
図1】いくつかの例による、分散ストレージシステムの例を示す。
【
図2】いくつかの例による、分散ストレージシステムにおけるデータアイテム配置シナリオの例を示す。
【
図3】いくつかの例による、分散ストレージシステムにおけるグループデータアイテム配置シナリオの例を示す。
【
図4】いくつかの例による、分散ストレージシステムにおけるグループデータアイテム配置シナリオの別の例を示す。
【
図5】いくつかの例による、分散ストレージシステム上でのデータアイテムの配置を管理するための方法の例を示す。
【
図6】いくつかの例によるネットワークデバイスの例を示す。
【
図7】いくつかの例による、コンピューティングデバイスの例を示す。
【0007】
例示的な実施形態の説明
本開示の様々な実施形態について、以下で詳細に考察する。特定の実装形態について考察するが、これは例証を目的として行われることを理解されたい。関連技術の当業者は、本開示の趣旨および範囲から逸脱することなく、他の構成要素および構成を使用することができることを認識するであろう。本開示の追加の特徴および利点は、以下の説明に記載され、一部は説明から明らかであるか、または本明細書に開示された原理の実践によって学ぶことができる。本開示の特徴および利点は、添付の特許請求の範囲で特に指摘されている機器および組み合わせによって実現および取得することができる。本開示のこれらおよび他の特徴は、以下の説明および添付の特許請求の範囲からより完全に明らかになるか、または本明細書に記載の原理の実践によって学ぶことができる。
【0008】
概要
本明細書で開示されるのは、分散されたステートフルストレージシステムにおけるデータアイテム配置のインテリジェントかつ動的な管理のためのシステム、方法、およびコンピュータ可読媒体である。ここでのデータ配置技術は、アクセスパターン、ネットワーク統計、および/またはイベントもしくは条件に基づいて、分散ストレージシステム上の特定の場所にデータアイテムのマスターコピーをインテリジェントに配置することにより、データアクセスの待ち時間を短縮し、データアクセスのパフォーマンスを向上させることができる。
【0009】
少なくとも1つの例によれば、分散ストレージシステムにおけるデータアイテムの配置を管理するための方法が提供される。この方法は、分散ストレージシステム上に記憶されたデータアイテムのマスターコピーの現在の場所を決定することであって、データアイテムのマスターコピーの現在の場所が、分散ストレージシステム上の複数のデータストアからの現在のデータストアを含む、決定することと、データアイテムのマスターコピーと関連付けられたアクセスパターンを決定することであって、アクセスパターンが、分散ストレージシステムによって受信された、データアイテムのマスターコピーへのアクセス要求のセットの1つ以上の発信場所、および1つ以上の発信場所の各々から受信されたアクセス要求のそれぞれの数を含む、決定することと、データアイテムのマスターコピーと関連付けられたアクセスパターンに基づいて、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所を決定することであって、異なる場所が、複数のデータストアからの異なるデータストアを含む、決定することと、データアイテムのマスターコピーを分散ストレージシステム上の異なる場所に配置することと、を含むことができる。
【0010】
少なくとも1つの例によれば、分散ストレージシステムにおけるデータアイテムの配置を管理するためのシステムが提供される。システムは、1つ以上のプロセッサと、その中に命令を記憶した少なくとも1つのコンピュータ可読記憶媒体と、を含むことができ、この命令が、1つ以上のプロセッサによって実行されると、システムに、分散ストレージシステム上に記憶されたデータアイテムのマスターコピーの現在の場所であって、分散ストレージシステム上の複数のデータストアからの現在のデータストアを含む、データアイテムのマスターコピーの現在の場所を決定させることと、データアイテムのマスターコピーと関連付けられたアクセスパターンであって、分散ストレージシステムによって受信された、データアイテムのマスターコピーへのアクセス要求のセットの1つ以上の発信場所、および1つ以上の発信場所の各々から受信されたアクセス要求のそれぞれの数を含むアクセスパターンを決定させることと、データアイテムのマスターコピーと関連付けられたアクセスパターンに基づいて、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所であって、複数のデータストアとは異なるデータストアを含む異なる場所を決定させることと、データアイテムのマスターコピーを分散ストレージシステム上の異なる場所に配置させることと、を行わせる。
【0011】
少なくとも1つの例によれば、分散ストレージシステム内のデータアイテムの配置を管理するための非一時的なコンピュータ可読記憶媒体が提供される。非一時的なコンピュータ可読記憶媒体は、命令を記憶することができ、この命令が、1つ以上のプロセッサによって実行されると、1つ以上のプロセッサに、分散ストレージシステム上に記憶されたデータアイテムのマスターコピーの現在の場所であって、分散ストレージシステム上の複数のデータストアからの現在のデータストアを含む、データアイテムのマスターコピーの現在の場所を決定させることと、データアイテムのマスターコピーと関連付けられたアクセスパターンであって、分散ストレージシステムによって受信された、データアイテムのマスターコピーへのアクセス要求のセットの1つ以上の発信場所、および1つ以上の発信場所の各々から受信されたアクセス要求のそれぞれの数を含む、アクセスパターンを決定させることと、データアイテムのマスターコピーと関連付けられたアクセスパターンに基づいて、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所であって、複数のデータストアとは異なるデータストアを含む異なる場所を決定させることと、データアイテムのマスターコピーを分散ストレージシステム上の異なる場所に配置させることと、を行わせる。
【0012】
少なくともいくつかの態様では、上記の方法、システム、および非一時的なコンピュータ可読記憶媒体は、分散ストレージシステムと関連付けられた情報であって、1つ以上のリソースと関連付けられた統計、分散ストレージシステム上の1つ以上のデータアイテムと関連付けられた1つ以上のデータアクセス制限、1つ以上のイベント、データアクセスパターン、ならびに/または分散ストレージシステムの少なくとも1つおよび分散ストレージシステムと関連付けられた1つ以上のネットワークと関連付けられたネットワーク統計を含む、情報を収集することであって、1つ以上のリソースが、ストレージノード、計算ノード、仮想マシン、ソフトウェアコンテナ、サーバ、ネットワーク、および/またはネットワーキングデバイスを含む、収集することと、分散ストレージシステムと関連付けられた情報に基づいて、分散ストレージシステム上の1つ以上のデータアイテムと関連付けられたデータアクセスのパフォーマンスを改善するか、または分散ストレージシステムのパフォーマンスを改善すると推定されたデータ配置アクションであって、少なくとも1つのデータアイテムを少なくとも1つのストレージ場所から少なくとも1つの異なるストレージ場所に移動することを含むデータ配置アクションを決定することであって、少なくとも1つのストレージ場所および少なくとも1つの異なるストレージ場所が、複数のデータストアからの異なるデータストアを含む、決定することと、データ配置アクションを決定することに応答して、少なくとも1つのデータアイテムを少なくとも1つのストレージ場所から少なくとも1つの異なるストレージ場所に移動することと、を含むことができる。
【0013】
いくつかの態様では、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所を決定することは、データアイテムのマスターコピーと関連付けられたアクセスパターンに基づいて、1つ以上の発信場所から、データアイテムのマスターコピーと関連付けられたアクセス要求の最大数の発信場所を識別することと、複数のデータストアのどれが、データアイテムのマスターコピーと関連付けられたアクセス要求の最大数の発信場所に最も近い場所にあるかを決定することと、異なる場所と関連付けられた異なるデータストアが、データアイテムのマスターコピーと関連付けられたアクセス要求の最大数の発信場所に最も近い場所にあると決定することと、を含むことができる。
【0014】
いくつかの例では、1つ以上の発信場所は、分散ストレージシステムによって受信された、データアイテムのマスターコピーへのアクセス要求のセットを生成した1つ以上のクライアントデバイスに対応することができる。さらに、いくつかの例では、データアイテムのマスターコピーを分散ストレージシステム上の異なる場所に配置することは、データアイテムのマスターコピーを現在のデータストアから異なるデータストアに移動することを含むことができる。
【0015】
場合によっては、異なるデータストアが、データアイテムのマスターコピーと関連付けられたアクセス要求の最大数の発信場所に最も近い場所にあると決定することが、異なるデータストアと発信場所の間のホップ数が、複数のデータストアの各々と、1つ以上の発信場所からの1つ以上の残りの場所の各々との間のそれぞれのホップ数未満であることを決定することと、および/または異なるデータストアと発信場所との間の距離が、複数のデータストアの各々と、1つ以上の発信場所からの1つ以上の残りの場所の各々との間のそれぞれの距離未満であることを決定することと、を含み得る。
【0016】
いくつかの態様では、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所を決定することは、分散ストレージシステム上に記憶された第2のデータアイテムの第2のマスターコピーの第2の現在の場所であって、分散ストレージシステム上の複数のデータストアからの第2の現在のデータストアを含む、第2のデータアイテムの第2のマスターコピーの第2の現在の場所を決定することと、データアイテムのマスターコピーと関連付けられたアクセスパターンおよび第2のデータアイテムの第2のマスターコピーと関連付けられた第2のアクセスパターンに基づいて、第2のデータアイテムのマスターコピーと第2のデータアイテムの第2のマスターコピーの両方を記憶するための分散ストレージシステム上の異なる場所を選択することと、データアイテムのマスターコピーと第2のデータアイテムの第2のマスターコピーの両方を分散ストレージシステム上の異なる場所に配置することと、を含み得る。
【0017】
いくつかの例では、第2のアクセスパターンは、第2のデータアイテムの第2のマスターコピーと関連付けられた第2のセットのアクセス要求の1つ以上のそれぞれの発信場所、および1つ以上のそれぞれの発信場所の各々から受信されたアクセス要求の第2のそれぞれの数を含み得る。場合によっては、データアイテムのマスターコピーと第2のデータアイテムの第2のマスターコピーの両方を分散ストレージシステム上の異なる場所に配置することが、データアイテムのマスターコピーを現在の場所から異なる場所に移動することと、第2のデータアイテムの第2のマスターコピーを第2の現在の場所から異なる場所に移動することと、を含み得る。さらに、いくつかの例では、データアイテムのマスターコピーは、区分化されたデータセットの第1の区分を含むことができ、第2のデータアイテムの第2のマスターコピーは、区分化されたデータセットの第2の区分を含むことができる。
【0018】
いくつかの態様では、上記の方法、システム、および非一時的なコンピュータ可読記憶媒体は、分散ストレージシステム上のデータアイテムのマスターコピーおよび第2のデータアイテムが、合計で閾値回数アクセスされていることを決定することと、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所を決定した後、第2のデータアイテムを第2のデータアイテムの現在のそれぞれの場所であって、分散ストレージシステム上の複数のデータストアのうちの1つを含む、現在のそれぞれの場所から異なる場所に移動することと、を含み得る。
【0019】
上記の方法、システム、および非一時的なコンピュータ可読記憶媒体は、データアイテムのマスターコピーが、分散ストレージシステム上に記憶された第2のデータアイテムの特定のコピーへの参照を含むことを決定することであって、第2のデータアイテムの特定のコピーが、第2のデータアイテムのそれぞれのマスターコピーまたは第2のデータアイテムのそれぞれのマスターコピーのレプリカのうちの1つを含む、決定することと、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所を決定し、データアイテムのマスターコピーが第2のデータアイテムの特定のコピーへの参照を含むと決定することに応答して、第2のデータアイテムの特定のコピーを記憶するための分散ストレージシステム上の異なる場所を選択することと、第2のデータアイテムの特定のコピーを、分散ストレージシステム上のそれぞれの場所から分散ストレージシステム上の異なる場所に移動することと、を含み得る。
【0020】
この概要は、特許請求される主題の重要または本質的な特徴を識別することを意図しておらず、特許請求される主題の範囲を決定するために単独で使用されることも意図していない。主題は、本出願の全明細書の適切な部分、一部またはすべての図面、および各特許請求の範囲を参照することによって理解されるべきである。
【0021】
上記は、他の特徴および実施形態とともに、以下の明細書、特許請求の範囲、および添付の図面を参照することにより、より明らかになるであろう。
【0022】
説明
分散型のステートフルストレージシステムは、ネットワーク環境全体の状態を管理して、データアイテムへの読み取りおよび書き込みアクセスを提供する。いくつかの例では、状態は、データアイテムへの読み取りおよび書き込みアクセスを管理するように構成された、コアネットワークなどの中央の場所に配置された1つ以上のデータストアを使用して、集中管理され得る。ここで、クライアントは、中央の場所にある1つ以上のデータストアに要求を送信することにより、読み取りおよび書き込み操作を実行できる。場合によっては、読み取り専用の状態レプリカをオプションで分散的に管理することができる。例えば、読み取り専用の状態レプリカは、ネットワークの「エッジ」(例えば、キャッシュ)に配置された1つ以上のデータストアによって管理することができる。ネットワークのエッジにある1つ以上のデータストアは、データアイテムへの読み取り専用アクセスを管理でき、クライアントは、ネットワークのエッジにある1つ以上のデータストアから分散型データストア(例えば、キャッシュ)に要求を送信することによって、読み取り操作を実行することができる。
【0023】
ネットワークのエッジにデータストアまたはキャッシュを実装すると、読み取り操作のパフォーマンスを向上させることができるが、要求元のクライアントが中央の場所のデータストアから遠く離れていることが多いため、書き込み操作では待ち時間およびパフォーマンスの低下が発生する可能性がある。例えば、クライアントと、そのようなクライアントにデータアイテムへの書き込みアクセスを提供する中央データストアとの間の距離は、追加された距離がネットワーク、デバイス、およびそのようなクライアントと中央のデータストアとの間のデータアクセス通信が通過する潜在的なボトルネックの数を増加させるので、待ち時間を増やし、このようなクライアントからの書き込み操作のデータアクセスのパフォーマンスを低下させる可能性がある。
【0024】
場合によっては、待ち時間を短縮し、クライアントからの書き込み操作のデータアクセスのパフォーマンスを向上させるために、ここでのアプローチでは、データアクセス場所(例えば、データアイテムに対するクライアントの場所)および頻度などのデータアクセスパターンに基づいて、分散ストレージ環境の戦略的な場所にデータアイテムのマスターコピーをインテリジェントに配置することができる。例えば、特定のクライアントによって頻繁にアクセスされるデータアイテムのマスターコピーは、クライアントおよび/またはデータアイテムのマスターコピーに対して計算されたアクセスパターンに基づいて、クライアントの近くに位置するデータストアに移動することができる。これにより、クライアントとの間のデータアクセス通信が通過するホップ数を減らし、そのようなデータアクセス通信が通過する潜在的なボトルネックの数を減らし、一般に待ち時間を減らし、そのクライアントのデータアクセスのパフォーマンスを向上させることができる。
【0025】
場合によっては、データアイテムのマスターコピーを記憶または移動するための場所を選択するとき、他の要因も考慮することができる。例えば、データアイテム(および/またはレプリカ)のマスターコピーを配置する戦略的な場所を決定するとき、システムは、コストの考慮事項、ネットワークパフォーマンスの考慮事項、クライアントアクセス要件、クライアントサブスクリプションレベル(例えば、プレミアムアクセスレベル、標準アクセスレベルなど)、データアイテムおよび/またはクライアントのグループと関連付けられたアクセスパターン、データアイテムのタイプ、データアイテムと他のデータアイテムとの関係(例えば、データアイテム、参照データアイテムなどの区分)、履歴および/または予測されたアクセスパターンなどを考慮することができる。
【0026】
以下でさらに説明するように、開示された技術は、分散ストレージシステムにおけるマスターデータ配置のためのシステム、方法、およびコンピュータ可読媒体を提供する。本技術は、後続の開示において以下のように説明される。考察は、
図1に示されるような分散ストレージシステムの例の説明、および
図2~4に示されるような分散ストレージシステムにおけるマスターデータ配置のための様々な例および技法の説明から始まる。次に、
図5に示されるような、分散ストレージシステムにおけるマスターデータ配置のための方法の例の説明が続く。考察は、
図6に示されるように、ネットワークデバイスの例、ならびに
図7に示されるように、ストレージおよびコンピューティング操作を実行するのに好適なハードウェア構成要素の例を含む、コンピューティングデバイスアーキテクチャの例の説明で終了する。次に、本開示は
図1に向けられる。
【0027】
図1は、いくつかの例による、分散ストレージシステム例100の簡略化されたブロック図である。この例では、分散ストレージシステム100は、コア102およびエッジ110A~N(以下、総称して「110」)を含む。コア102は、分散ストレージシステム100によって提供されるネットワークおよびストレージサービスのためのバックボーン、集中型ネットワーク、および/または中央ハブとして機能することができる。さらに、コア102は、例えば、クラウドネットワーク、データセンタなどのような1つ以上のネットワーク、および/またはコアセグメントもしくはハブなどの分散ストレージシステム100のネットワーク環境の1つ以上のセグメントを含むことができる。
【0028】
エッジ110は、例えば、1つ以上のスイッチまたはルータなどの1つ以上のネットワークデバイスを介して、および/または例えば、1つ以上のパブリックネットワーク(例えば、広域ネットワーク、パブリッククラウドなど)などの1つ以上のネットワーク、1つ以上のプライベートネットワーク(例えば、プライベートデータセンタ、プライベートクラウド、ローカルエリアネットワーク、仮想プライベートネットワークなど)、および/または1つ以上のハイブリッドネットワーク(例えば、ハイブリッドクラウドなど)を介して、コア102に接続され得る。いくつかの例では、エッジ110は、コア102を介して、および/または直接(またはコア102を通過せずに)互いに相互接続することができる。
【0029】
場合によっては、エッジ110は、分散ストレージシステム100と関連付けられたネットワーク環境のセグメントまたはセクションを表すことができる。例えば、エッジ110は、コア102および/または分散ストレージシステム100と関連付けられたネットワーク環境のエッジまたは周辺に配置されたネットワークセグメントまたはセクションであり得る。他の場合では、エッジ110は、例えば、フォグネットワーク、ローカルエリアネットワーク(LAN)、オンプレミスデータセンタ、エンタープライズネットワークなどの別個のネットワークを表すことができる。いくつかの例では、そのようなネットワークは、分散ストレージシステム100と関連付けられたネットワーク環境のエッジまたは周辺に配置され得る。したがって、エッジ110は、コア102よりも1つ以上のクライアント160~166の近くに物理的および/または論理的に位置し得る。
【0030】
コア102は、1つ以上のデータストア106を記憶またはホストするための1つ以上のストレージノード104を含むことができる。同様に、エッジ110は、データストア114~120を記憶またはホストするためのストレージノード112を含むことができる。例えば、エッジ110Aは、1つ以上のデータストア114を記憶するための1つ以上のストレージノード112を含むことができ、エッジ110Bは、1つ以上のデータストア116を記憶するための1つ以上のストレージノード112を含むことができ、エッジ110Cは、1つ以上のデータストア118を記憶するための1つ以上のストレージノード112を含むことができ、エッジ110Nは、1つ以上のデータストア120を記憶するための1つ以上のストレージノード112を含むことができる。
【0031】
ストレージノード104および112は、分散ストレージシステム100上のハードウェアおよび/または仮想ストレージインフラストラクチャを表すことができる。さらに、ストレージノード104および112は、1つ以上の物理ストレージサーバ、1つ以上の仮想ストレージサーバ(例えば、仮想マシン(VM)、ソフトウェアコンテナなど)、1つ以上の物理および/または論理ストレージ構成要素(例えば、ストレージドライブ、論理ボリューム、ストレージ区分、ストレージアレイなど)、および/または任意の他の物理および/または仮想/論理ストレージ要素を含むことができる。ストレージノード104および112のそれぞれは、個々のストレージ要素によって実装することができ、または複数のストレージ要素にまたがってまたは分散して、分散ストレージインフラストラクチャを提供することができる。場合によっては、ストレージノードは複数の物理または仮想ストレージ要素をまたぐことができる。例えば、ストレージノードは、2つ以上の物理サーバおよび/またはストレージデバイスから作成された仮想ストレージデバイス、コンテナ、または場所を表すことができる。
【0032】
場合によっては、ストレージノード104および112は、ストレージノードプールまたはクラスタにグループ化することができる。例えば、コア102上のストレージノード104は、1つ以上のストレージノードプールまたはクラスタにグループ化することができ、エッジ110の各々のストレージノード112は、1つ以上のストレージノードプールまたはクラスタにグループ化することができる。ストレージノードは、1つ以上の共通の特性など、1つ以上の要因に基づいて、ストレージノードプールまたはクラスタにグループ化できる。例えば、ストレージノードは、ストレージタイプ、データのタイプ(例えば、記憶するデータのタイプ)、基盤となるストレージプラットフォーム、物理または仮想の場所、容量、構成設定またはアーキテクチャ、ストレージの役割、優先度、ネットワークセグメント(例えば、IPプレフィックスまたはサブネット)、共有リソース、動作条件などによって、ストレージノードプールまたはクラスタにグループ化することができる。場合によっては、ストレージノードのプールまたはクラスタ(例えば、104および/または112)を単一ストレージノードまたは分散ストレージとして機能するように構成することができる。他の場合には、ストレージノード(例えば、104および/または112)のプールまたはクラスタは、別々におよび/または個別に操作することができるストレージノードの集合を表すことができる。
【0033】
コア102上のデータストア106およびエッジ110上のデータストア114~120は、マスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nを永続的に記憶および管理するためのストレージリポジトリ、コンテナ、または構造を含むことができる。コア102上のデータストア106およびエッジ110上のデータストア114~120は、例えば、データベース、ファイル、ファイルシステム、ストレージシステム、および/または任意の他のデータリポジトリを含むことができる。いくつかの実装形態では、データストア106および114~120は、1つ以上のデータベースを含むことができる。
【0034】
データストア106および114~120上のマスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nのそれぞれは、例えば、レコード(例えば、データベースレコード)、1つ以上のデータベースフィールド、データオブジェクト、データまたはデータ値を含むデータ構造、データ要素の集合、データ値、データ区分、コンテンツアイテムなどを含むことができる。いくつかの例では、データストア106および/または114~120上のデータアイテム(例えば、108A~Nおよび/または130A~N)には、プロファイル、レコード、テーブル行、他のデータアイテムを参照しない(または他のデータアイテムへの参照が制限されている)データのセットなど、任意のタイプの自己完結型(または大部分が自己完結型)のデータアイテムを含めることができる。
【0035】
コア102上のデータストア106内のマスターデータアイテム108A~Nは、レプリカデータアイテム130A~Nのマスターコピーを表すことができ、一方、エッジ110上のデータストア114~120内のレプリカデータアイテム130A~Nは、コア102上のデータストア106内のマスターデータアイテム108A~Nのレプリカまたは読み取り専用コピーを表すことができる。マスターデータアイテム108A~Nは、読み書きデータアイテムであり得、レプリカデータアイテム130A~Nの真のソース(例えば、現在および/または信頼できるデータ状態および/またはバージョン)を提供することができる。例えば、マスターデータアイテム108Aは、読み取り/書き込みデータアイテムであり得、マスターデータアイテム108Aおよびレプリカデータアイテム130Aと関連付けられたデータの現在の信頼できる状態またはバージョンを提供することができ、マスターデータアイテム108Nは、データアイテムを読み書きすることができ、マスターデータアイテム108Nおよびレプリカデータアイテム130Nと関連付けられたデータの現在の信頼できる状態またはバージョンを提供することができる。
【0036】
クライアント160~166は、分散ストレージシステム100を介してマスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nにアクセスすることができる。特に、クライアント160~166は、コア102および/またはエッジ110を介してマスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nにアクセスすることができる。例えば、読み取り操作の場合、クライアント160~166は、コア102および/またはエッジ110からマスターデータアイテム108A~Nおよび/またはレプリカデータアイテム130A~Nにアクセスでき、書き込み操作の場合、クライアント160~166は、コア102を介してマスターデータアイテム108A~N(例えば、レプリカデータアイテム130A~Nのマスターコピー)にアクセスすることができる。しかしながら、以下でさらに説明するように、マスターデータアイテム108A~Nは、1つ以上の要因に基づいて、分散ストレージシステム100上の他の場所に移動または配置することができる。したがって、場合によっては、クライアント160~166は、エッジ110の1つ以上からマスターデータアイテム108A~Nにアクセスすることができる。
【0037】
クライアント160~166は、任意のコンピューティングデバイスまたはネットワークを表すことができる。例えば、場合によっては、クライアント160~166は、1つ以上のクライアントエンドポイント(例えば、パーソナルコンピュータ、スマートフォン、タブレットコンピュータ、スマートテレビ、ゲームシステム、セットトップボックス、スマートウェアラブルなどのクライアントコンピューティングデバイス)、1つ以上のサーバ、1つ以上のモノのインターネット(IoT)デバイス、1つ以上の自律型車両、1つ以上のネットワークデバイス(例えば、スイッチ、ルータなど)などを含むことができる。その他の場合、クライアント160~166は、例えば、1つ以上のLAN、1つ以上のデータセンタ、1つ以上のエンタープライズネットワーク、1つ以上のキャンパスネットワーク、1つ以上のプライベートネットワークなどの1つ以上のネットワークを含むことができる。
【0038】
分散ストレージシステム100は、分散ストレージシステム100に関する情報を収集および分析し、分散ストレージシステム100上のマスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nの配置または移動を調整または統合することができるコーディネータシステム140を含むことができる。さらに、コーディネータシステム100は、1つ以上のコンピューティングデバイス(物理的および/または仮想的)を含むことができ、またはそれによって実装することができる。例えば、場合によっては、コーディネータシステム100は、サーバ、ネットワークコントローラ、オーケストレータアプライアンス、ルータ、または任意の他のコンピューティングデバイスによって実装することができる。他の場合には、コーディネータシステム100は、複数のサーバ、複数のネットワークコントローラ、複数のオーケストレータアプライアンス、複数のルータなどのような複数のデバイスによって実装することができる。
【0039】
いくつかの例では、コーディネータシステム140は、分散ストレージシステム100、マスターデータアイテム108A~N、および/またはレプリカデータアイテム130A~Nと関連付けられた統計および情報を追跡および監視し、コーディネータシステム140によって追跡および監視された統計および情報に基づいて、マスターデータアイテム108A~Nおよび/またはレプリカデータアイテム130A~Nのうちの1つ以上を分散型ストレージシステム100内の特定の場所に移動する(または分散ストレージシステム100に移動を指示する)ことができる。
【0040】
説明のために、コーディネータシステム140によって監視された統計および情報が、マスターデータアイテム108Aがエッジ110Aに最も近い場所からクライアント160によって頻繁にアクセスされることを示す場合、コーディネータシステム140は、コア102上のデータストア106からエッジ110A上のデータストア114までマスターデータアイテム108Aの移動をトリガすることができる。そのような移動は、マスターデータアイテム108Aと、マスターデータアイテム108Aに頻繁にアクセスするクライアント160との間の距離(ならびにホップ数および/または潜在的なボトルネック数)を減少させ、したがって、待ち時間を減らし得、コア102上のデータストア106からマスターデータアイテム108Aにアクセスするのとは対照的に、エッジ110A上のデータストア114からマスターデータアイテム108Aにアクセスするときにクライアント160が経験するアクセスパフォーマンスを向上させ得る。
【0041】
場合によっては、コーディネータシステム140は、収集された情報を使用して、分散ストレージシステム100上のレプリカデータアイテム130A~Nの移動を調整または統合することができる。例えば、前の例で説明したように、マスターデータアイテム108Aをコア102上のデータストア106からエッジ110A上のデータストア114に移動する場合、コーディネータシステム140は、エッジ110Aのデータストア114上のレプリカデータアイテム130Aをコア102上のデータストア106に移動することもできる。別の例として、コーディネータシステム140によって収集および監視された情報が、レプリカデータアイテム130Aが、コア102に最も近い場所からクライアント164によって頻繁にアクセスされるか、またはエッジ110よりもコア102からより速い応答時間を受け取ることを示す場合、コーディネータシステム140は、エッジ110の1つからコア102へのレプリカデータアイテム130Aの移動をトリガすることができる。さらに別の例として、コーディネータシステム140によって収集および監視された情報が、レプリカデータアイテム130Nがエッジ110Nから頻繁にアクセスされないことを示す場合、コーディネータシステム140は、エッジ110Nでのネットワークおよび/またはリソースの使用率を減らす(したがって、帯域幅を増やし、輻輳を減らし、エッジ110Nでのリソースの利用可能性を高める)ために、エッジ110Nからコア102へのレプリカデータアイテム130Nの移動をトリガすることができる。
【0042】
さらに、場合によっては、マスターデータアイテムを現在のデータストアから別の宛先データストアに移動するのではなく、コーディネータシステム140は、代わりに、異なる宛先データストアにマスターデータアイテムとして記憶されたマスターデータアイテムのレプリカ(例えば、レプリカデータアイテム130Aまたは130N)を指定することができ、現在のデータストアにある前のマスターデータアイテムをレプリカデータアイテムとして指定することができる。いくつかの例では、コーディネータシステム140が、マスターデータアイテムをレプリカデータアイテムの場所に移動する代わりに、レプリカデータアイテムの指定をマスターデータアイテムに変更する場合、コーディネータシステム140は、整合性チェックを実行して、マスターデータアイテムとして指定されているレプリカデータアイテムは、最新のデータを反映しているか、または古くなっていないか、および/あるいはレプリカデータアイテムをマスターデータアイテムとして指定しても競合またはエラーが発生しないことをチェックすることができる。
【0043】
場合によっては、コーディネータシステム140が、レプリカデータアイテムをマスターデータアイテムとして指定することにより競合またはエラーが発生すること、および/またはレプリカデータアイテムが最新のデータを反映していないか、または古くなっていると決定する場合、コーディネータシステム140は、レプリカデータアイテムをマスターデータアイテムとして指定する前に、そのような競合またはエラーを修正し、および/またはレプリカデータアイテムを更新して最新のデータを反映することができる。他の場合、そのような競合またはエラーを修正しようとする、および/または最新のデータを反映するようにレプリカデータアイテムを更新しようとするのではなく、コーディネータシステム140は、レプリカデータアイテムをマスターデータアイテムとして指定せず、代わりに、実際のマスターデータアイテムをレプリカデータアイテムが記憶されている場所に移動することを決定することができる。そのような場合、コーディネータシステム140は、レプリカデータアイテムをレプリカとして残すことができ、レプリカデータアイテムを現在の場所に残すか、またはレプリカデータアイテムを異なる場所、例えばマスターデータアイテムの移動元に移動することができる。
【0044】
いくつかの例では、コーディネータシステム140によって追跡/監視され、データ配置アクションをトリガするために使用された統計および情報は、マスターデータアイテム108A~N、レプリカデータアイテム130A~N、コア102、エッジ110の1つ以上、および/またはクライアント160~166の1つ以上と関連付けられたアクセスパターンおよび/またはメトリクスを含むことができる。場合によっては、コーディネータシステム140は、そのような情報を使用して、特定のマスターデータアイテムおよび/または特定のレプリカデータアイテムと関連付けられたアクセス待ち時間および/またはアクセスパフォーマンスが、マスターまたはレプリカデータアイテムを分散ストレージシステム100内の異なる場所(例えば、異なるデータストア、ストレージノード、セグメント、および/またはネットワーク)に移動することによって改善され得るかどうかを決定することができる。例えば、コーディネータシステム140は、そのような情報を使用して、マスターまたはレプリカデータアイテムを、そのマスターまたはレプリカデータアイテムとのほとんどの相互作用または最も頻繁な相互作用(例えば、読み取りおよび/もしくは書き込みアクセス操作または相互作用)を行うクライアントに最も近い場所にある特定のデータストアおよび/または場所(例えば、コア102、エッジ110A、エッジ110B、エッジ110C、またはエッジ110N)に移動することにより、そのマスターまたはレプリカデータアイテムのアクセス統計、例えば、アクセス遅延または待ち時間、アクセス要求/操作のラウンドトリップ時間(RTT)、エラー率などが改善されるかどうかを決定することができる。
【0045】
コーディネータシステム100がデータアイテムの移動を決定/実行するために使用され得るアクセスパターン情報の非限定的な例は、分散ストレージシステム100上のデータアイテム(例えば、108A~Nおよび/または130A~N)が、ある期間にわたっておよび/または一般的にアクセスされている場所(例えば、データアイテムにアクセスしたクライアント160~166の場所)、(例えば、ネットワークアドレス、物理的場所、ネットワーク、地理的領域、ストレージノード、データストアなど)、そのような場所からのデータアイテム(例えば、108A~Nおよび/または130A~N)のアクセス頻度(例えば、各場所からおよび/または各場所の各クライアントによって各データアイテムにアクセスしている回数および/または頻度など)、どのクライアント(例えば、160~166)および/または何人のクライアントが様々なデータアイテム(例えば、108A~Nおよび/または130A~N)にアクセスしたか、各アクセス場所および/またはクライアントからのアクセスのタイプ(例えば、読み取り、書き込みなど)、他のどのデータアイテム(存在する場合)が特定のデータアイテムと組み合わせてまたは関連付けられてアクセスされているか、他のどの操作がデータアイテム(例えば、108A~Nおよび/または130A~N)および/またはアクセス場所に対応するアクセス操作と組み合わせてまたは関連付けられて実行されたか、データアイテム(例えば、108A~Nおよび/または130A~N)がアクセス場所からアクセスされている時間および/または日(および/または異なる時間および/または日の間のアクセスの相対頻度)、アクセス場所からの要求/操作のために観測された待ち時間および/または他のパフォーマンスもしくはメトリクス、データアイテム(例えば、108A~Nおよび/または130A~N)のアクセスおよび/またはアクセス場所と関連付けられたルーティング情報(例えば、ホップ数、ネットワークパス、ルーティングコスト、遅延、パフォーマンス、セキュリティ、帯域幅、輻輳など)、ならびに/あるいは任意の他のアクセスパターン情報を含むことができる。
【0046】
場合によっては、コーディネータシステム140によって追跡/監視され、データ配置アクションをトリガするために使用された情報は、分散ストレージシステム100の状態、セキュリティ、安定性、および/またはパフォーマンス、ならびに/あるいは分散ストレージシステム100によって受信または処理されたアクセス要求または操作のパフォーマンス、コスト、および/または他のメトリクスに影響を及ぼし得る他のタイプの情報を含むことができる。例えば、情報は、マスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nの場所、分散ストレージシステム100の1つ以上の要素(例えば、コア102、エッジ110、ストレージノード104および112、データストア106、データストア114~120など)のステータス/状態、マスターデータアイテム108A~Nおよび/またはレプリカデータアイテム130A~Nと関連付けられたアクセス要求の応答時間、コア102および/またはエッジ110の1つ以上で利用可能な帯域幅、コア102および/またはエッジ110の1つ以上でのリソース使用量および/またはワークロード条件、コア102および/またはエッジ110のうちの1つ以上でのリソースの利用可能性および/または処理能力、コア102および/またはエッジ110の場所、コア102および/またはエッジ110のトポロジー、コア102および/またはエッジ110と関連付けられたパフォーマンスのメトリクス/統計(例えば、1秒当たりの入力/出力操作(IOPS)、待ち時間、帯域幅、スループット、パケット損失、ジッタ、接続性、再伝送、エラー率、RTT、輻輳、利用可能性、利用など)、クライアント160~166と関連付けられたクライアントサブスクリプションレベル(例えば、プレミアムアクセス、標準または基本アクセス、ゲストアクセスなど)などを含むことができる。
【0047】
場合によっては、コーディネータシステム100は、分散ストレージシステム100から/のために収集された情報を使用して、マスターデータアイテム108A~Nおよび/またはレプリカデータアイテム130A~Nのうちの1つ以上を分散ストレージシステム100上の特定の場所(例えば、データストア、ストレージノード、セグメント、ネットワークなど)に配置または分散するためのデータアイテム配置スキームまたはアクションを決定することができる。例えば、コーディネータシステム100は、そのような情報を使用して、分散ストレージシステム100の負荷または負担をより良くバランスまたは分散し、マスターデータアイテム108A~Nおよび/またはレプリカデータアイテム130A~Nのアクセスパフォーマンスを改善し、エラー率を低減し、特定のアクセス基準(例えば、アクセスパフォーマンスレベル、サービス品質(QoS)要件、サービスレベル契約(SLA)、セキュリティ要件、アクセス制限など)を満たし、データ主権の法律/ポリシーを満たし、リソースの利用可能性を向上し、リソースの過剰使用を削減し、輻輳を削減し、コストを削減し、帯域幅を改善し、効率を向上し、ネットワークトラフィックを削減することなどを推定されたデータアイテム配置スキームを決定することができる。
【0048】
例示するために、コーディネータシステム100は、情報を使用して、マスターデータアイテム108A~Nと関連付けられた書き込み要求のソースおよび場所、ならびに場所の各々からの書き込み要求のそれぞれの頻度を決定して、マスターデータアイテム108A~Nのうちの1つ以上を移動または配置するためのターゲット場所を識別することができる。ターゲット場所は、例えば、最も頻繁な書き込み要求が発生する場所に最も近い分散ストレージシステム100上の場所(例えば、エッジ、コア、データストア、ストレージノードなど)であり得る。マスターデータアイテム108A~Nのうちの1つ以上をそのような場所に移動または配置することにより、その場所(最も頻繁なアクセス場所であり、したがって、そのようなマスターデータアイテムの書き込み要求のかなりの部分を占める)から、そのようなマスターデータアイテムが記憶されている分散ストレージシステム100上の場所まで発信するそのようなマスターデータアイテムの書き込み要求を通過する距離を減らすことができる。これにより、待ち時間を削減し、その特定の場所からのそのようなマスターデータアイテムの書き込み要求のパフォーマンスを向上させることができる。
【0049】
コーディネータシステム140は、プッシュおよび/またはプルベースで分散ストレージシステム100(例えば、コア102、エッジ110、分散ストレージシステム100上の1つ以上のネットワークデバイスなど)からコーディネータシステム140によって収集および監視/追跡された情報(例えば、データアイテムアクセス履歴および/または統計、分散ストレージシステム100上の様々な場所での動作条件、データアイテム情報、分散ストレージシステム100と関連付けられたトポロジー情報、パフォーマンスメトリクス、ストレージまたは配置情報、リソースパラメータ、要求パラメータ、構成情報など)を受信することができる。例えば、コーディネータシステム140は、分散ストレージシステム100から、アクセスパターン、統計、メトリクス、ステータス情報、動作条件などのデータのそれぞれのストリームを引き出すことができる。別の例として、分散ストレージシステム100は、そのようなデータのそれぞれのストリームをコーディネータシステム140にプッシュすることができる。
【0050】
図1に示される要素および構成要素は、説明の目的で提供される例示的な例である。したがって、
図1は、特定のタイプおよび数のネットワークまたはセグメント(例えば、コア102、エッジ110A~110N)および構成要素(例えば、ストレージノード104および112、データストア106および114~120、マスターデータアイテム108A~N、レプリカデータアイテム130A~Nなど)を示しているが、当業者は、他の例が、
図1に示されるものとは異なる数および/またはタイプのネットワーク/セグメントおよび/または構成要素を含み得ることを認識するであろう。例えば、場合によっては、分散ストレージシステム100は、
図1に示されているものよりも多いまたは少ないエッジ、コアもしくはコアセグメント、および/または構成要素(例えば、ストレージノード104および112、データストア106および114~120、マスターデータアイテム108A~N、レプリカデータアイテム130A~N、デバイス等)を含み得る。
【0051】
図2は、分散ストレージシステム100におけるデータアイテム配置シナリオ例200を示している。この例では、クライアント160はエッジ110Aに近い/最も近い位置にあり、クライアント162はエッジ110Bに近い/最も近い位置にあり、クライアント164はエッジ110Cに近い/最も近い位置にあり、クライアント166はエッジ110Nに近い/最も近い位置にある。さらに、コーディネータシステム140は、分散ストレージシステム100から配置データ202を受信および監視することができる。
【0052】
配置データ202は、メトリクス、統計、イベントデータ、ステータス情報、状態情報、通知、構成情報、ジョブ/ワークロード情報、データアイテムに関する情報、アクセスパターン情報、パラメータ、好み、クライアント情報、アクセスおよび/またはデータ制限に関する情報、場所情報、リソース情報、ネットワーク情報などを含むことができる。いくつかの例では、配置データ202は、マスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nと関連付けられたアクセス要求および/または操作(例えば、アクセスパターン)の履歴を含むことができる。アクセス要求および/または操作の履歴は、どのクライアント160~166がマスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nにアクセスしたかなど、マスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nと関連付けられた1つ以上のアクセスパターン、マスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nと関連付けられたアクセス要求および/または操作の場所(例えば、アクセス要求および/または操作と関連付けられたクライアント160~166の場所)、アクセス要求および/または操作と関連付けられた場所からのアクセス要求および/または操作の頻度、アクセス要求および/または操作のタイプ(例えば、読み取り、書き込みなど)、そのようなアクセス要求および/または操作の日/時間、アクセス要求および/または操作と関連付けられたパフォーマンス統計、アクセス異常、アクセス傾向などを示すことができる。
【0053】
例えば、配置データ202は、クライアント160がエッジ110Aに最も近く(エッジ110B~Nおよびコア102に対して)、クライアント162がエッジ110Bに最も近く(エッジ110A、エッジ110C~N、およびコア102に対して)、クライアント164が、エッジ110Cに最も近く(エッジ110A~B、エッジ110Nおよびコア102に対して)、クライアント166がエッジ110Nに最も近い(エッジ110A~Cおよびコア102に対して)ことを示すことができる。配置データ202はまた、クライアント162が、クライアント160および164~166よりも頻繁におよび/またはより多くの回数、コア102のデータストア106上のマスターデータアイテム108Aにアクセスし、クライアント166が、クライアント160~164よりも頻繁におよび/またはより多くの回数、コア102のデータストア106上のマスターデータアイテム108Nにアクセスしたことを示すことができる。以下でさらに説明するように、コーディネータシステム140は、配置データ202内のこの情報を使用して、マスターデータアイテム108Aおよび108Nをそれぞれクライアント162および166の近くに移動することができ、それによって、待ち時間を短縮し、クライアント162および166からのマスターデータアイテム108Aおよび108Nのためのアクセス要求および操作のパフォーマンスを改善することができる。
【0054】
いくつかの例では、配置データ202は、コア102、エッジ110、コア102および/またはエッジ110の構成要素、例えば、ストレージノード104および112、コア102上のデータストア106、エッジ110上のデータストア114~120、マスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nなどに関する情報(例えば、パフォーマンス統計、帯域幅、輻輳、容量、遅延、リソース利用可能性、状態、条件、メトリクス、場所情報、構成情報、アクセス制限、アクセスポリシーなど)を含むことができる。
【0055】
コーディネータシステム140は、配置データ202を分析し、クライアント160~166のアクセスパターンおよび/または分散ストレージシステム100と関連付けられた任意の他の情報に基づいて、マスターデータアイテム108A~Nおよび/またはレプリカデータアイテム130A~Nのいずれかを移動する必要があるかどうか(例えば、そのようなデータアイテムを移動することで1つ以上の改善/利益が得られるかどうか)を決定することができる。言い換えれば、コーディネータシステム140は、配置データ202を分析し、マスターデータアイテム108A~Nおよび/またはレプリカデータアイテム130A~Nのいずれかを異なるストレージ場所に移動することが将来のアクセス要求/操作の待ち時間を短縮するかどうかを決定し、将来のアクセス要求/操作のパフォーマンスを改善し、分散ストレージシステム100の負荷/負担を減らし、分散ストレージシステム100でのリソース利用可能性を改善し、輻輳を減らし、帯域幅の使用/利用可能性を最適化し、分散ストレージシステム100でのリソース利用可能性を改善し、ならびに/あるいはデータアクセス要求/操作および/またはネットワーク/システム条件のための任意の他の利益を提供することができる。
【0056】
例えば、前述のように、配置データ202は、コア102上のマスターデータアイテム108Aが(クライアント160および164~166と比較して)クライアント162によって最も頻繁にアクセスされたことを示すことができる。したがって、マスターデータアイテム108Aにアクセスするクライアント162によるおよびマスターデータアイテム108Nにアクセスするクライアント166による将来の要求に対するアクセスパフォーマンスおよび効率を改善するために、コーディネータシステム140は、マスターデータアイテム108Aおよびマスターデータアイテム108Nをクライアント162およびクライアント166に近い場所に移動することができ、それによって、待ち時間を短縮し、マスターデータアイテム108Aおよび108Nに対するクライアント162および166からの将来のアクセス要求のパフォーマンスを向上させることができる。
【0057】
したがって、いくつかの例では、(例えば、配置データ202に基づいて)コア102上のマスターデータアイテム108Aがクライアント162によって最も頻繁にアクセスされること、およびクライアント162が、分散ストレージシステム100上の他のストレージ場所(例えば、コア102およびエッジ110A、110C、および110N)よりもエッジ110Bにより近い/最も近いことを決定した後、コーディネータシステム140は、パフォーマンスを改善し、マスターデータアイテム108Aに対するクライアント162からの要求/操作の待ち時間を短縮するために、マスターデータアイテム108Aをコア102から(例えば、データストア106から)エッジ110B(例えば、データストア116)に移動することを決定することができる。
【0058】
同様に、(例えば、配置データ202に基づいて)コア102上のマスターデータアイテム108Nがクライアント166によって最も頻繁にアクセスされること、およびクライアント166が、分散ストレージシステム100上の他のストレージ場所(例えば、コア102ならびにエッジ110A、110B、および110C)よりもエッジ110Nに近い/最も近いことを決定した後、コーディネータシステム140は、パフォーマンスを改善し、マスターデータアイテム108Nに対するクライアント166からの要求/操作の待ち時間を減らすために、マスターデータアイテム108Nをコア102から(例えば、データストア106から)エッジ110Nに(例えば、データストア120に)移動することを決定することができる。
【0059】
データアイテムを移動するか、または配置アクションをトリガするために、コーディネータシステム140は、配置要求204を分散ストレージシステム100(例えば、コア102、エッジ110A、エッジ110B、エッジ110C、エッジ110N、および/または分散ストレージシステム内のネットワークデバイス100)に送信することができる。例えば、コーディネータシステム140は、配置要求204をコア102に送信することができ、これは、マスターデータアイテム108Aのエッジ110Bへの移動およびマスターデータアイテム108Nのエッジ110Nへの移動をトリガすることができる。配置要求204は、例えば、マスターデータアイテム108Aをエッジ110Bに移動し、マスターデータアイテム108Nをエッジ110Nに移動するためのコマンド、命令、および/または要求を含むことができる。
【0060】
分散ストレージシステム100は、コーディネータシステム140から配置要求204を(例えば、コア102で)受信し、配置要求204で要求された、または配置要求204によってトリガされたように、データ配置アクション206および208を実行することができる。いくつかの例では、データ配置アクション206は、マスターデータアイテム108Aをコア102からエッジ110Bに移動させることができ、その結果、マスターデータアイテム108Aは、マスターデータアイテム108Aに最も頻繁にアクセスするクライアント162の近くに記憶される。同様に、いくつかの例では、データ配置アクション208は、マスターデータアイテム108Nをコア102からエッジ110Nに移動させることができるので、マスターデータアイテム108Nは、マスターデータアイテム108Nに最も頻繁にアクセスするクライアント166の近くに記憶される。
【0061】
データ配置アクション206および208の後、マスターデータアイテム108Aは、コア102とは対照的に、エッジ110Bによってホストされ(例えば、記憶され)、マスターデータアイテム108Nは、コア102とは対照的に、エッジ110Nによってホストされる(例えば、エッジ110N上に記憶される)。したがって、将来のインスタンスでは、クライアント162は、エッジ110Bにあるデータストア116の対応する1つからマスターデータアイテム108Aにアクセスすることができ、クライアント166は、エッジ110Nにあるデータストア120の対応する1つからマスターデータアイテム108Nにアクセスすることができる。マスターデータアイテム108Aをエッジ110Bに配置することにより、コーディネータシステム140は、クライアント162とマスターデータアイテム108Aとの間の距離を縮小し、それによって待ち時間を短縮し、マスターデータアイテム108Aのクライアント162による将来のアクセス要求および操作のパフォーマンスを向上させることができる。さらに、マスターデータアイテム108Nをエッジ110Nに配置することにより、コーディネータシステム140は、クライアント166とマスターデータアイテム108Nとの間の距離を縮小し、それによって待ち時間を短縮し、マスターデータアイテム108Nのクライアント166による将来のアクセス要求および操作のパフォーマンスを向上させることができる。
【0062】
コーディネータシステム140は、配置データ202を受信および監視し続けて、追加のデータ配置アクションを実行すべきかどうかを決定することができる。例えば、新しい配置データが、クライアント160が、以前にエッジ110Bに移動されたマスターデータアイテム108Aに最も頻繁にアクセス(読み取りおよび/または書き込み)するクライアントであることを示す場合、コーディネータシステム140は、新しい配置要求を分散ストレージシステム100に送信し、エッジ110Bからクライアント160に近いエッジ110Aへのマスターデータアイテム108Aの移動をトリガすることができる。
【0063】
データ配置アクション206および208は、上記の例において、マスターデータアイテム108Aおよび108Nを、マスターデータアイテム108Aおよび108Nに最も頻繁にアクセスするクライアント162および166に最も近い場所(例えば、エッジ110Bおよび110Nならびにデータストア116および120)に移動することを含むものとして説明されたが、他の例では、データ配置アクション206および208は、マスターデータアイテム108Aおよび108Nを他の場所(例えば、他のデータストアおよび/またはエッジ、コアなど)に、および/または他の要因および/またはアクセスパターンに基づいて移動することができる。
【0064】
例えば、場合によっては、マスターデータアイテム(例えば、108A、108B、または108N)は、ソースおよび/または宛先の場所(例えば、データストア、コア、エッジなど)での1つ以上の条件(例えば、帯域幅、リソース利用可能性、輻輳、接続またはダウンタイム、エラー率、状態、パフォーマンス、アクセス制限など)、ソースおよび/または宛先の場所の1つ以上の特性(例えば、場所、プラットフォームまたはインフラストラクチャ、構成、パフォーマンス統計、相対ランキング、ネットワークタイプ、データタイプ、リソースのタイプなど)、1つ以上のイベント(例えば、トラフィックの変動、1つ以上のネットワークまたはリソースの障害、1つ以上のエラー、1つ以上のネットワーク変更など)、1つ以上の好みまたは要件(例えば、1つ以上のQoS要件、SLA、クライアントの好み、データまたはジョブの要件、制限など)、コストおよび/またはクライアントサブスクリプションレベル、他のアクセスパターン(例えば、データアイテム、クライアント、および/または位置のグループと関連付けられた読み取りおよび/または書き込みアクセスパターン)、ならびに/あるいは任意の他の要因または要因の組み合わせに基づいて、特定の場所(例えば、データストア106、114、116、118、または120、コア102、エッジ110A、110B、110C、またはエッジ110Nなど)にまたは特定の場所から移動され得る。
【0065】
図3は、分散ストレージシステム100におけるグループデータアイテム配置シナリオ例300を示す。コーディネータシステム140は、前述のように、分散ストレージシステム100から配置データ202を受信および監視することができる。この例では、配置データ202は、区分化されたデータ304と関連付けられたアクセスパターンを含むことができる。区分化されたデータ304は、マスターデータアイテム108A~Nを含むことができる。例えば、マスターデータアイテム108A~Nの各々は、区分化されたデータセット(例えば、304)の区分を表すことができ、マスターデータアイテム108A~Nは、合計で、区分化されたデータ304を構成することができる。したがって、この例では、配置データ202は、区分化されたデータセット(例えば、304)内の異なるデータ区分(例えば、108A~N)のためのアクセスパターンを提供することができる。
【0066】
場合によっては、配置データ202は、区分化されたデータ304および/または区分化されたデータ304内の各個々の区分(例えば、マスターデータアイテム108A~N)にアクセスするクライアントのそれぞれの場所、ならびにそのようなクライアントによるそれぞれのアクセス頻度を識別する統計を含むことができる。いくつかの例では、配置データ202はまた、レプリカデータアイテム130A~Nなどの他のデータアイテムのアクセスパターンを識別する統計を含むことができる。したがって、コーディネータシステム140は、配置データ202を分析し、区分化されたデータ304がクライアント160および162によって最も頻繁にアクセスされることを決定することができる。場合によっては、コーディネータシステム140は、クライアント160がエッジ110Aに最も近い場所にあり、クライアント162がエッジ110Bに最も近い場所にあることを(例えば、配置データ202に基づいて)決定することもできる。コーディネータシステム140はまた、クライアント160がエッジ110Aに最も近いとしても、エッジ110Bがコア102(およびエッジ110Cおよび110N)よりもクライアント160に近いことを決定することができる。
【0067】
この情報に基づいて、コーディネータシステム140は、マスターデータアイテム108A~Nを含む区分化されたデータ304をエッジ110Bに移動することが、全体および/またはその構成部分の1つ以上(例えば、マスターデータアイテム108A~N)として、区分化されたデータ304と関連付けられたアクセス要求/操作のパフォーマンスおよび/またはコストにおいて最大の向上および/または利点(および/または利点と不利点のバランス)を提供し得ると決定することができる。したがって、区分化されたデータ304をエッジ110Bに移動することは、区分化されたデータ304と関連付けられたアクセス要求/操作のパフォーマンスおよび/またはコストにおいて最大の向上および/または利点(および/または利点と不利点の最適なバランス)を提供し得ると決定した後、コーディネータシステム140は、グループ配置要求302を分散ストレージシステム100(例えば、コア102、エッジ110B、および/または分散ストレージシステム100内のネットワークデバイス)に送信することができる。
【0068】
グループ配置要求302は、マスターデータアイテム108A~Nを含む区分化されたデータ304をエッジ110Bに移動するための命令を含むことができる。次に、命令は、グループ配置アクション304をトリガすることができ、これは、マスターデータアイテム108A~Nを含む区分化されたデータ304をエッジ110Bに(例えば、エッジ110B上のデータストア116のうちの1つ以上に)移動することを含み得る。グループ配置アクション304の後、区分化されたデータ304は、コア102とは対照的に、エッジ110Bによってホスト(例えば、記憶)される。したがって、将来、クライアント160および162(および任意の他のクライアント)は、エッジ110Bから、区分化されたデータ304(および/または区分化されたデータ304内のマスターデータアイテム108A~Nのいずれか)にアクセスすることができるようになる。これは、コア102よりもクライアント160および162に近いため、アクセスパフォーマンスの改善/利益(例えば、待ち時間の短縮)、コストの改善/利益、および/または他の改善/利益をもたらすことができる。例えば、区分化されたデータ304をエッジ110Bに配置することにより、コーディネータシステム140は、クライアント160および162と、区分化されたデータ304との間の距離を短縮し、それによって待ち時間を短縮し、区分化されたデータ304についてクライアント160および162による将来のアクセス要求および操作のパフォーマンスを向上させることができる。
【0069】
コーディネータシステム140は、配置データ202を受信および監視し続けて、追加の配置アクションを実行すべきかどうかを決定することができる。例えば、新しい配置データが、クライアント164および/または166が、構成可能な時間の間、クライアント160および/または162よりも高い頻度で区分化されたデータ304にアクセスしたことを示す場合、コーディネータシステム140は、区分化されたデータ304が異なる場所に移動する必要があるかどうかを決定することができる。例示のために、コーディネータシステム140が、クライアント164および166がエッジ110Bよりもエッジ110Cの近くに位置していると決定した場合、コーディネータシステム140は、区分化されたデータ304をエッジ110Bからエッジ110Cに移動することがパフォーマンスまたは他のもの(例えば、コスト、リソースの利用可能性、輻輳/帯域幅など)の(全体的なおよび/またはバランスのとれた)改善をもたらすかどうかを推定することができる。
【0070】
コーディネータシステム140は、区分化されたデータ304をエッジ110Bからエッジ110Cに移動することが、1つ以上の要因に基づいてそのような改善をもたらすかどうかを推定することができる。例えば、場合によっては、コーディネータシステム140は、区分化されたデータ304をエッジ110Bからエッジ110Cに移動することが、クライアント160~166からエッジ110Bおよび110Cまでの相対距離、クライアント160~166が区分化されたデータ304にアクセスする頻度(および/または頻度の違い)日/時間、クライアント160~166が区分化されたデータ304にアクセスする日/時間、クライアント160~166ならびに/あるいはエッジ110Bおよび110Cと関連付けられた帯域幅および/または輻輳メトリクス、クライアント160~166と関連付けられたQoS要件および/またはSLA、ならびに/あるいは任意の他の関連する要因に基づいて、そのような改善をもたらすかどうかを推定することができる。
【0071】
前述のように、
図3に示す例では、クライアント160はエッジ110Aに最も近く、クライアント162はエッジ110Bに最も近く、区分化されたデータ304は、クライアント160がエッジ110Aの近くに位置するにもかかわらず、クライアント160および162のアクセス頻度に基づいて、エッジ110Bに移動された。ここで、コーディネータシステム140は、区分化されたデータ304をエッジ110Bに移動することは、区分化されたデータ304をエッジ110Aに移動するよりも大きいパフォーマンス向上など、(全体的なおよび/またはバランスのとれた)より大きい利点/利益を提供すると決定することができる。例えば、コーディネータシステム140は、区分化されたデータ304をエッジ110Aおよびエッジ110Bに移動することの利点および不利点を比較し、その利点および不利点の比較に基づいて、区分化されたデータ304のターゲット場所としてエッジ110Bを選択することができる。コーディネータシステム140は、例えば、クライアント160および162のエッジ110Aおよび110Bまでの相対距離、クライアント160および162が区分化されたデータ304にアクセスする相対頻度、区分化されたデータ304に対してクライアント160および162によって実行された操作のタイプ(例えば、読み取りおよび/または書き込み)、クライアント160および162ならびに/あるいはエッジ110Aおよび110Bと関連付けられた帯域幅および/または輻輳メトリクス、クライアント160および162と関連付けられたQoS要件および/またはSLA、ならびに/あるいは任意の他の関連する要因に基づいて、利点および不利点を決定することができる。
【0072】
図4は、分散ストレージシステム100における別の例示的なグループデータアイテム配置シナリオ400を示す。前に説明したように、コーディネータシステム140は、分散ストレージシステム100から配置データ202を受信および監視することができる。この例では、配置データ202は、マスターデータアイテム108A~Nおよびレプリカデータアイテム130A~Nからのデータアイテムのグループなどのデータアイテムのグループと関連付けられたアクセスパターンを含むことができる。例えば、配置データ202は、一緒に頻繁にアクセスされるデータアイテムの1つ以上のグループを識別する統計、ならびにデータアイテムの1つ以上のグループにアクセスするクライアントのそれぞれの場所、およびそのようなクライアントによるそれぞれのアクセス頻度を含むことができる。
【0073】
例示のために、配置データ202は、マスターデータアイテム108Aおよび108Nが書き込み操作のためにクライアント162によって頻繁に一緒にアクセスされることと、クライアント162がコア102ならびにエッジ110A、110C、およびエッジ110Nよりもエッジ110Bの近くに位置することと、を示すことができる。配置データ202は、クライアント162が、クライアント160、164、および166(例えば、一緒におよび/または個別に)よりも頻繁に(例えば、一緒におよび/または個別に)マスターデータアイテム108Aおよび108Nにアクセスすることを示すことができる。この情報に基づいて、コーディネータシステム140は、マスターデータアイテム108Aおよび108Nをエッジ110Bに移動することは、マスターデータアイテム108Aおよび108Nをそれぞれの場所(例えば、コア102およびエッジ110N)に残すことよりも、またはマスターデータアイテム108Aおよび108Nを分散ストレージシステム100内の異なる場所に移動することよりも優れたパフォーマンスおよび/または他の利益/改善(全体的なおよび/またはバランスのとれた)を提供すると決定することができる。
【0074】
したがって、マスターデータアイテム108Aおよび108Nをエッジ110Bに移動することが、マスターデータアイテム108Aおよび108Nと関連付けられたアクセス要求/操作のパフォーマンスおよび/または態様において、より大きい向上および/または利益/利点(ならびに/あるいは利点および不利点の最適なバランス)を提供し得ると決定した後、コーディネータシステム140は、グループ配置要求402を分散ストレージシステム100(例えば、コア102、エッジ110B、エッジ110N、および/または分散ストレージシステム100内のネットワークデバイス)に送信することができる。
【0075】
グループ配置要求402は、マスターデータアイテム108Aおよび108Nをエッジ110Bに移動するための命令を含むことができる。命令は、グループ配置アクション404をトリガすることができ、これは、マスターデータアイテム108Aおよび108Nをコア102からエッジ110Bに(例えば、エッジ110B上のデータストア116のうちの1つ以上に)移動することを含み得る。グループ配置アクション404の後、マスターデータアイテム108Aは、コア102とは対照的に、エッジ110Bによってホスト(例えば、記憶)され、マスターデータアイテム108Nは、エッジ110Nとは対照的に、エッジ110Bによってホスト(例えば、記憶)される。したがって、将来、クライアント162(および任意の他のクライアント)は、クライアント162に最も近いエッジ110Bからマスターデータアイテム108Aおよび108Nにアクセスすることができ、したがって、アクセスパフォーマンスの改善/利益(例えば、待ち時間の短縮)、コストの改善/利益および/または他の改善/利益をもたらすことができる。例えば、マスターデータアイテム108Aおよび108Nをエッジ110Bに配置することによって、コーディネータシステム140は、クライアント162とマスターデータアイテム108Aおよび108Nとの間の距離を縮小し、それによって待ち時間を短縮し、マスターデータアイテム108Aおよび108Nに対するクライアント162による将来のアクセス要求および操作のパフォーマンスを向上させることができる。全体的なおよび/またはバランスのとれた、そのような改善/利益は、クライアント160、164、および/または166からのアクセス要求/操作のパフォーマンスの低下など、マスターデータアイテム108Aおよび108Nのエッジ110Bへの移動のいかなる不利点よりも大きいと推定することができる。
【0076】
コーディネータシステム140は、配置データ202を受信および監視し続けて、追加の配置アクションを実行すべきかどうかを決定することができる。新しい配置データが、分散ストレージシステム100の異なる場所の近くに位置する他のクライアントが、構成可能な時間の間、クライアント162よりも高い頻度でマスターデータアイテム108Aおよび/または108Nにアクセスしたことを示す場合、コーディネータシステム140は、前述のように、マスターデータアイテム108Aおよび/または108Nを異なる場所に移動すべきかどうかを決定することができる。
【0077】
システム、構成要素、および概念の例を開示したので、次に、開示は、
図5に示すように、分散ストレージシステム(例えば、100)上のデータアイテム(例えば、108A~N、130A~N)の配置を管理するための例示的な方法500に移る。本明細書に概説されるステップは例示目的のために提供される非限定的な例であり、それらの任意の組み合わせで実装することができ、特定のステップを除外、追加、または変更する組み合わせを含む。
【0078】
ステップ502では、方法500は、分散ストレージシステム(例えば、100)上に記憶されたデータアイテム(例えば、マスターデータアイテム108A、108B、または108N)のマスターコピーの現在の場所(例えば、コア102、エッジ110A、110B、110C、または110N、データストア106、114、116、118、または120)を決定することを含むことができる。いくつかの例では、データアイテムのマスターコピーの現在の場所は、分散ストレージシステム上の複数のデータストア(例えば、データストア106および114~120)からの分散ストレージシステムおよび/または現在のデータストア(例えば、データストア106、114、116、118、または120)上の現在のネットワークまたはネットワークセグメント(例えば、コア102、エッジ110A、エッジ110B、エッジ110C、またはエッジ110N)を含むことができる。
【0079】
ステップ504では、方法500は、データアイテムのマスターコピーと関連付けられたアクセスパターンを決定することを含むことができる。場合によっては、データアイテムのマスターコピーと関連付けられたアクセスパターンは、分散ストレージシステムによって受信された、データアイテムのマスターコピーへのアクセス要求(例えば、読み取りおよび/または書き込み要求)のセットの1つ以上の発信場所、1つ以上の発信場所の各々から受信されたアクセス要求の数、アクセス要求のタイプ(例えば、読み取り、書き込みなど)、アクセス要求の日/時間、データアクセス傾向(例えば、時間ベースのデータアクセス傾向、クライアントベースのデータアクセス傾向、場所ベースのアクセス傾向、特定のデータアイテムもしくはタイプと関連付けられたアクセス傾向、特定のアクセストリガと関連付けられたアクセス傾向、データアイテムの特定のグループと関連付けられたアクセス傾向、データアクセスシーケンス、特定のイベントと関連付けられたアクセス傾向、特定の条件と関連付けられたアクセス傾向など)、および/または任意の他のアクセスパターン特性を含むことができる。
【0080】
いくつかの例では、データアイテムのマスターコピーと関連付けられたアクセスパターンは、分散ストレージシステムによって受信された、データアイテムのマスターコピーへのアクセス要求(例えば、読み取りおよび/または書き込み要求)のセットの1つ以上の発信場所と、1つ以上の発信場所の各々から受信されたアクセス要求の数と、を含む。1つ以上の発信場所は、アクセス要求のセットが発信される(例えば、アクセス要求が生成、伝送される場所等)場所(例えば、ネットワーク、クライアント、アドレス、地理的な場所、領域、ソースなど)を参照することができる。アクセス要求の数は、アクセス要求の量および/または頻度を参照することができる。例えば、発信場所から受信したアクセス要求の数は、その場所から発信されたアクセス要求の数、および/またはその場所からアクセス要求を受信した頻度を参照することができる。
【0081】
場合によっては、データアイテムのマスターコピーと関連付けられたアクセスパターンは、分散ストレージシステムから収集および/または監視された配置データ(例えば、202)に基づいて決定することができる。例えば、場合によっては、コーディネータシステム(例えば、140)は、分散ストレージシステムから、例えば、アクセスパターン統計(例えば、データアクセス要求または操作、データアクセス要求または操作の数および/または頻度、データアクセス要求または操作と関連付けられたクライアントの場所、そのような場所からそのようなクライアントによってアクセスされたデータアイテムの場所、そのようなデータアイテムの場所とそのようなクライアントの場所との間の距離、そのようなデータアクセス要求または操作の日/時間など)、ネットワーク統計、リソース統計、データアクセス制限、データアクセスサブスクリプションレベル、ネットワークおよび/または分散ストレージシステムの特性、システムイベント、エラー、障害、メトリクス、データアイテムの特性、クライアントおよび/またはデータパフォーマンス、データタイプ、ネットワークまたはシステム構成情報、データアクセスポリシーなどの情報を収集することができる。
【0082】
ステップ506で、方法500は、データアイテムのマスターコピーと関連付けられたアクセスパターンに基づいて、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所(例えば、コア102の異なるもの、エッジ110A、110B、110C、または110N、データストア106、114、116、118、または120)を決定することを含むことができる。いくつかの例では、異なる場所は、分散ストレージシステム上の異なるネットワークまたはネットワークセグメント(例えば、コア102、エッジ110A、エッジ110B、エッジ110C、またはエッジ110N)および/または複数のデータストアからの異なるデータストアを含むことができる。
【0083】
いくつかの態様では、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所を決定することは、データアイテムのマスターコピーと関連付けられたアクセスパターンに基づいて、1つ以上の発信場所から、データアイテムのマスターコピーと関連付けられたアクセス要求の最大数の発信場所を識別することと、複数のデータストアのどれが、データアイテムのマスターコピーと関連付けられたアクセス要求の最大数の発信場所に最も近い(例えば、地理的に最も近い、論理的に最も近いなど)場所にあるかを決定することと、異なる場所と関連付けられた異なるデータストアが、データアイテムのマスターコピーと関連付けられたアクセス要求の最大数の発信場所に最も近い場所にあると決定することと、を含むことができる。
【0084】
アクセス要求の最大数の発信場所は、データアイテムのマスターコピーのアクセス要求の最大量および/または頻度を発信した場所、ならびに/あるいはデータアイテムのマスターコピーに対するアクセス要求の最大量および/または頻度が分散ストレージシステムによって受信された場所を参照することができる。いくつかの例では、1つ以上の発信場所は、分散ストレージシステムによって受信された、データアイテムのマスターコピーへのアクセス要求のセットを生成した1つ以上のクライアントデバイス(例えば、160、162、164、166)に対応することができる。
【0085】
いくつかの例では、異なるデータストアが、データアイテムのマスターコピーと関連付けられたアクセス要求の最大数の発信場所に最も近い場所にあると決定することは、(例えば、異なる場所と関連付けられた)異なるデータストア間のホップ数を決定することであって、発信場所が、複数のデータストアの各々と、1つ以上の発信場所(例えば、最大数のアクセス要求の発信場所を除く1つ以上の発信場所)からの1つ以上の残りの場所の各々との間のそれぞれのホップ数未満であることを決定することと、および/または異なるデータストアと発信場所との間の距離が、複数のデータストアの各々と、1つ以上の発信場所からの1つ以上の残りの場所の各々との間のそれぞれの距離未満であることを決定することと、を含むことができる。
【0086】
他の例では、異なるデータストアが、データアイテムのマスターコピーと関連付けられたアクセス要求の最大数の発信場所に最も近い場所にあると決定することが、代わりに、または追加で、異なるデータストアと発信場所の間のホップ数が、分散ストレージシステムと関連付けられた複数のネットワークまたはネットワークセグメント(例えば、コア102、エッジ110)の各々と、1つ以上の発信場所からの1つ以上の残りの場所の各々との間のそれぞれのホップ数未満であると決定することと、および/または異なるデータストアと発信場所との間の距離が、分散ストレージシステムと関連付けられた複数のネットワークまたはネットワークセグメント(例えば、コア102、エッジ110)の各々と、1つ以上の発信場所からの1つ以上の残りの場所の各々との間のそれぞれの距離未満であることを決定することと、を含むことができる。
【0087】
いくつかの態様では、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所を決定することは、分散ストレージシステム上に記憶された第2のデータアイテム(例えば、マスターデータアイテム108A、108B、または108N)の第2マスターコピーの第2の現在の場所を決定することと、データアイテムのマスターコピーと関連付けられたアクセスパターンおよび第2のデータアイテムの第2のマスターコピーと関連付けられた第2のアクセスパターンに基づいて、第2のデータアイテムのマスターコピーと第2のデータアイテムの第2のマスターコピーの両方を記憶するための分散ストレージシステム上の異なる場所を選択することと、データアイテムのマスターコピーと第2のデータアイテムの第2のマスターコピーの両方を分散ストレージシステム上の異なる場所に配置することと、を含むことができる。いくつかの例では、第2のデータアイテムの第2のマスターコピーの第2の現在の場所は、分散ストレージシステム上の複数のデータストアからの第2の現在のデータストアを含むことができる。さらに、いくつかの例では、データアイテムのマスターコピーは、区分化されたデータセット(例えば、区分化されたデータ304)の第1の区分を含むことができ、第2のデータアイテムの第2のマスターコピーは、区分化されたデータセットの第2の区分を含むことができる。
【0088】
場合によっては、第2のアクセスパターンは、第2のデータアイテムの第2のマスターコピーと関連付けられたアクセス要求の第2のセットの1つ以上のそれぞれの発信場所(例えば、アクセス要求の第2のセットが発信されたまたは受信された場所)および1つ以上のそれぞれの発信場所の各々から受信されたアクセス要求の第2のそれぞれの数(例えば、アクセス要求の量および/または頻度)を含むことができる。いくつかの例では、データアイテムのマスターコピーと第2のデータアイテムの第2のマスターコピーの両方を分散ストレージシステム上の異なる場所に配置することは、データアイテムのマスターコピーを現在の場所から異なる場所に移動または移行することと、第2のデータアイテムの第2のマスターコピーを第2の現在の場所から異なる場所に移動または移行することと、を含むことができる。
【0089】
ステップ508で、方法500は、データアイテムのマスターコピーを分散ストレージシステム上の異なる場所に配置することを含むことができる。いくつかの例では、データアイテムのマスターコピーを分散ストレージシステム上の異なる場所に配置することは、データアイテムのマスターコピーを現在のデータストアから異なるデータストアに移動または移行することを含むことができる。
【0090】
いくつかの態様では、方法500は、分散ストレージシステム上のデータアイテムのマスターコピーおよび第2のデータアイテムが、合計で閾値数および/または時間の頻度でアクセスされていることを決定することと、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所を決定した後、第2のデータアイテムを第2のデータアイテムの現在のそれぞれの場所から異なる場所に移動することと、を含むことができる。現在のそれぞれの場所は、例えば、分散ストレージシステム上の複数のデータストアからのデータストアを含むことができる。
【0091】
いくつかの態様では、方法500は、データアイテムのマスターコピーが、分散ストレージシステム上に記憶された第2のデータアイテムの特定のコピーへの参照(例えば、ポインタ、関連付け、リンク、関係など)を含むことを決定することと、データアイテムのマスターコピーを記憶するための分散ストレージシステム上の異なる場所を決定し、データアイテムのマスターコピーが第2のデータアイテムの特定のコピーへの参照を含むと決定することに応答して、第2のデータアイテムの特定のコピーを記憶するための分散ストレージシステム上の異なるの場所を選択することと、第2のデータアイテムの特定のコピーを、分散ストレージシステム上のそれぞれの場所から分散ストレージシステム上の異なる場所に移動することと、を含むことができる。いくつかの例では、第2のデータアイテムの特定のコピーは、第2のデータアイテムのマスターコピーまたは第2のデータアイテムのマスターコピーのレプリカを含むことができる。
【0092】
いくつかの実装形態では、方法500は、アクセスパターン情報および/または1つ以上の他の要因に基づいて、データアイテムを配置(例えば、移動、移行、記憶など)するための異なる場所を決定することができる。例えば、いくつかの態様では、方法500は、分散ストレージシステムと関連付けられた情報を収集することと、分散ストレージシステムと関連付けられた情報に基づいて、分散ストレージシステム上の1つ以上のデータアイテムと関連付けられたデータアクセスパフォーマンス(例えば、待ち時間、応答時間、エラー率など)を改善し、および/または分散ストレージシステムのパフォーマンス(例えば、分散ストレージシステムの全体および/または1つ以上の構成要素/リソースのパフォーマンス)を改善するために推定されたデータ配置アクションを決定することと、データ配置アクションの決定に応答して、少なくとも1つのデータアイテム(例えば、マスターデータアイテム108A、108B、および/または108N、ならびに/あるいはレプリカデータアイテム130Aおよび/または130N)を少なくとも1つのストレージ場所(例えば、データストア、コア102、エッジ110A、エッジ110B、エッジ110C、またはエッジ110N)から少なくとも1つの異なるストレージ場所(例えば、異なるデータストア、コア102、エッジ110A、エッジ110B、エッジ110C、またはエッジ110N)に移動することと、を含むことができる。
【0093】
いくつかの例では、分散ストレージシステムにと関連付けられた収集された情報は、1つ以上のリソース(例えば、ストレージノード104および/または112、計算ノード、コア102、エッジ110、ネットワークデバイス、帯域幅など)と関連付けられた統計、分散ストレージシステム上の1つ以上のデータアイテムと関連付けられた1つ以上のデータアクセス制限(例えば、場所ベースの制限、ポリシーベースの制限、クライアントベースの制限、ネットワークベースの制限、リソースベースの制限、ソースベースの制限、データタイプベースの制限、サブスクリプションベースの制限など)、データストレージ制限(例えば、データ主権法、データタイプ、リソースタイプ、ネットワーク使用率、リソース使用率、日/時間、リソース利用可能性などに基づく制限)、1つ以上のイベント(例えば、エラー、障害、ネットワークの変更、トラフィックの変更、アクセスイベント、システムイベントなど)、データアクセスパターン、ならびに/あるいは分散ストレージシステムおよび/または分散ストレージシステムと関連付けられた1つ以上のネットワークと関連付けられたネットワーク統計を含むことができる。いくつかの例では、1つ以上のリソースは、ストレージノード、計算ノード、仮想マシン、ソフトウェアコンテナ、サーバ、ネットワーク、および/またはネットワーキングデバイス(例えば、スイッチ、ルータ、ファイアウォール、アプライアンスなど)を含むことができる。
【0094】
場合によっては、データ配置アクションは、少なくとも1つのデータアイテムを少なくとも1つのストレージ場所(例えば、データストア、コア102、エッジ110A、エッジ110B、エッジ110C、またはエッジ110N)から少なくとも1つの異なるストレージ場所に移動することを含み得る。いくつかの例では、少なくとも1つのストレージ場所および少なくとも1つの異なるストレージ場所は、複数のデータストア、分散ストレージシステムと関連付けられた異なるネットワーク、異なるネットワークセグメントなどからの異なるデータストアを含むことができる。
【0095】
いくつかの例では、複数のより多くの要因(例えば、アクセスパターン、パフォーマンス統計、リソースメトリクス、環境条件、イベントなど)に基づいて、データ配置アクション(例えば、データアイテムの移動または移行)を決定するときに、データ配置アクションの決定に使用された要因を比較考量することができる。例えば、データアイテムのデータ配置アクションが、異なるアクセス場所からのデータアイテムへのアクセスの頻度、分散ストレージシステム上の異なるストレージノードのステータス、および分散ストレージシステムの異なるネットワークまたはセグメントで利用可能な帯域幅の量に基づいて決定されると仮定する。ここでは、配置アクションの決定のために使用した利用可能な、アクセスの頻度、異なるストレージノードのステータス、および帯域幅の量について、異なる重みを決定して適用することができる。これにより、配置アクションで様々な要因を考慮に入れることができ、特定の要因が、より高い重み、強調、または優先度を受け取る。
【0096】
次に、本開示は、スイッチ、ルータ、ノード、サーバ、クライアントデバイス、オーケストレータ(例えば、コーディネータシステム140)などの例示的なネットワークデバイスおよびコンピューティングデバイスを示す
図6および7に移る。
【0097】
図6は、スイッチング、ルーティング、負荷分散、および他のネットワーキング操作を実行するのに好適なネットワークデバイス例600を示す。ネットワークデバイス600は、中央処理装置(CPU)604、インターフェース602、およびバス610(例えば、PCIバス)を含む。適切なソフトウェアまたはファームウェアの制御下で動作する場合、CPU604は、パケット管理、エラー検出、および/またはルーティング機能を実行する責任を負う。CPU604は、好ましくは、オペレーティングシステムおよび任意の適切なアプリケーションソフトウェアを含むソフトウェアの制御下でこれらすべての機能を達成する。CPU604は、マイクロプロセッサのINTEL X86ファミリからのプロセッサなどの1つ以上のプロセッサ608を含み得る。場合によっては、プロセッサ608は、ネットワークデバイス600の動作を制御するために特別に設計されたハードウェアであり得る。場合によっては、メモリ606(例えば、不揮発性RAM、ROMなど)はまた、CPU604の一部を形成する。ただし、メモリをシステムに結合することができる多くの異なる方式がある。
【0098】
インターフェース602は、典型的に、モジュラーインターフェースカード(「ラインカード」と称されることもある)として提供される。一般に、それらは、ネットワークを介したデータパケットの送受信を制御し、ネットワークデバイス600とともに使用される他の周辺機器をサポートすることができる。提供され得るインターフェースの中には、イーサネットインターフェース、フレームリレーインターフェース、ケーブルインターフェース、DSLインターフェース、トークンリングインターフェースなどがある。加えて、高速トークンリングインターフェース、ワイヤレスインターフェース、イーサネットインターフェース、ギガビットイーサネットインターフェース、ATMインターフェース、HSSIインターフェース、POSインターフェース、FDDIインターフェース、WIFIインターフェース、3G/4G/5Gセルラインターフェース、CAN BUS、LoRAなど、様々な非常に高速なインターフェースが提供される場合がある。一般に、これらのインターフェースには、適切な媒体との通信に適したポートが含まれている場合がある。場合によっては、それらには、独立したプロセッサ、および場合によっては揮発性RAMも含まれる。独立したプロセッサは、パケット交換、媒体制御、信号処理、暗号処理、および管理などの通信集約型タスクを制御することができる。通信集約型タスクのために別個のプロセッサを提供することにより、これらのインターフェースは、マスターCPU(例えば、604)がルーティング計算、ネットワーク診断、セキュリティ機能などを効率的に実行することを可能にする。
【0099】
図6に示されるシステムは、本開示の1つの特定のネットワークデバイスであるが、本開示が実装され得る唯一のネットワークデバイスアーキテクチャであることを意味するものではない。例えば、通信ならびにルーティング計算などを処理する単一のプロセッサを備えるアーキテクチャがよく使用される。さらに、他のタイプのインターフェースおよび媒体もまた、ネットワークデバイス600とともに使用することができる。
【0100】
ネットワークデバイスの構成に関係なく、本明細書で説明するローミング、ルート最適化、およびルーティング機能のための汎用ネットワーク動作およびメカニズムのためのプログラム命令を記憶するように構成された1つ以上のメモリまたはメモリモジュール(メモリ606を含む)を採用し得る。プログラム命令は、例えば、オペレーティングシステムおよび/または1つ以上のアプリケーションの動作を制御することができる。メモリまたは複数のメモリはまた、モビリティバインディング、登録、および関連付けテーブルなどのようなテーブルを記憶するように構成され得る。メモリ606はまた、様々なソフトウェアコンテナおよび仮想化実行環境およびデータを保持することができる。
【0101】
ネットワークデバイス600はまた、ルーティングおよび/またはスイッチング操作を実施するように構成され得る特定用途向け集積回路(ASIC)を含み得る。ASICは、バス610を介してネットワークデバイス600内の他の構成要素と通信して、データおよび信号を交換し、例えば、ルーティング、スイッチング、および/またはデータストレージ操作などのネットワークデバイス600による様々なタイプの操作を調整することができる。
【0102】
図7は、データ操作および要求を処理し、データアイテムを記憶および移動し、データ配置アクションを調整し、および他のコンピューティング操作を実行するために使用できるシステム700のコンピューティングシステムアーキテクチャの例を示す。この例では、システム700の構成要素は、バスなどの接続706を使用して互いに電気的に通信している。システム700は、処理ユニット(CPUまたはプロセッサ)704と、読み取り専用メモリ(ROM)718およびランダムアクセスメモリ(RAM)716などのメモリ720を含む様々なシステム構成要素をプロセッサ704に結合する接続706と、を含む。システム700は、プロセッサ704に直接接続されているか、近接しているか、またはプロセッサ704の一部分として統合された高速メモリのキャッシュを含むことができる。システム700は、プロセッサ704による迅速なアクセスのために、メモリ720および/またはストレージデバイス708からキャッシュ702にデータをコピーすることができる。このようにして、キャッシュは、データを待機している間のプロセッサ704の遅延を回避するというパフォーマンス向上を提供することができる。これらおよび他のモジュールは、プロセッサ704を制御するか、または制御するように構成して、様々なアクションを実行することができる。他のメモリ720も同様に使用のために利用可能であり得る。メモリ720は、異なるパフォーマンス特性を有する複数の異なるタイプのメモリを含むことができる。プロセッサ704は、任意の汎用プロセッサ、プロセッサ704を制御するように構成されたストレージデバイス708に記憶されたサービス1 710、サービス2 712、およびサービス3 714のようなハードウェアまたはソフトウェアサービス、ならびにソフトウェア命令が実際のプロセッサ設計に組み込まれている特別目的プロセッサを含むことができる。プロセッサ704は、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであり得る。マルチコアプロセッサは、対称または非対称であり得る。
【0103】
コンピューティングシステム700とのユーザ相互作用を可能にするために、入力デバイス722は、スピーチ用のマイクロフォン、ジェスチャまたはグラフィック入力用のタッチセンシティブスクリーン、キーボード、マウス、モーション入力、スピーチなどの任意の数の入力機構を表すことができる。出力デバイス724はまた、当業者に知られているいくつかの出力メカニズムのうちの1つ以上とすることができる。場合によっては、マルチモーダルシステムは、ユーザがコンピューティングデバイス700と通信するために複数のタイプの入力を提供することを可能にし得る。通信インターフェース726は、一般に、ユーザ入力およびシステム出力を統御および管理することができる。特定のハードウェア構成での動作に制限はないため、ここでの基本機能は、開発時に改善されたハードウェアまたはファームウェア構成に簡単に置き換えることができる。
【0104】
記憶デバイス708は、不揮発性メモリであり、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ(RAM)716、読み取り専用メモリ(ROM)718、およびそれらのハイブリッドなど、コンピュータがアクセス可能なデータを記憶することができるハードディスクまたは他のタイプのコンピュータ可読媒体とすることができる。
【0105】
記憶デバイス708は、プロセッサ704を制御するためのサービス710、712、714を含むことができる。他のハードウェアまたはソフトウェアモジュールが企図される。ストレージデバイス708は、接続部706に接続することができる。一態様では、特定の機能を実行するハードウェアモジュールは、その機能を実施するために、プロセッサ704、接続部706、出力デバイス724などのような必要なハードウェア構成要素に関連して、コンピュータ可読媒体に記憶されたソフトウェア構成要素を含むことができる。
【0106】
説明を明確にするために、場合によっては、本技術は、ソフトウェアで具体化される方法におけるデバイス、デバイス構成要素、ステップもしくはルーチン、またはハードウェアとソフトウェアの組み合わせを含む機能ブロックを含む個々の機能ブロックを含むものとして提示され得る。
【0107】
いくつかの実施形態では、コンピュータ可読記憶デバイス、媒体、およびメモリは、ビットストリームなどを含むケーブルまたは無線信号を含み得る。しかしながら、言及される場合、非一時的コンピュータ可読記憶媒体は、エネルギ、搬送波信号、電磁波、および信号自体などの媒体を明示的に除外する。
【0108】
上述した例にかかる方法は、コンピュータ可読媒体に記憶されているか、または別様にそれから利用可能であるコンピュータ実行可能命令を使用して実装されることができる。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、もしくは専用処理デバイスに特定の機能または機能のグループを実行させるかまたは別様に構成する命令およびデータを含むことができる。使用されるコンピュータリソースの部分は、ネットワーク経由でアクセス可能とすることができる。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語、ファームウェア、またはソースコードなどの中間フォーマット命令とすることができる。命令、使用される情報、および/または説明された例にかかる方法中に作成された情報を記憶するために使用されることができるコンピュータ可読媒体の例は、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリを備えたUSBデバイス、ネットワーク記憶デバイスなどを含む。
【0109】
これらの開示による方法を実装するデバイスは、ハードウェア、ファームウェア、および/またはソフトウェアを含むことができ、様々なフォームファクタのいずれかを取ることができる。このようなフォームファクタの典型的な例には、ラップトップ、スマートフォン、スモールフォームファクタのパーソナルコンピュータ、携帯情報端末、ラックマウントデバイス、スタンドアロンデバイスなどが挙げられる。本明細書に記載される機能はまた、周辺機器またはアドインカードで具体化されることができる。そのような機能はまた、さらなる例として、単一のデバイスで実行される異なるチップまたは異なるプロセスの間の回路基板上に実装されることもできる。
【0110】
命令、そのような命令を伝達するための媒体、それらを実行するためのコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、これらの開示に記載された機能を提供するための手段である。
【0111】
添付の特許請求の範囲の範疇の態様を説明するために、様々な例および他の情報が使用されたが、当業者であれば、多種多様な実装形態を導出するために、これらの例を使用することができるように、そのような例における特定の特徴または構成に基づいて、特許請求の範囲のいかなる制限も示唆されるべきではない。さらに、一部の主題は、構造的特徴および/または方法ステップの例に対して固有の言語で記載されている場合があるが、添付の特許請求の範囲で定義される主題は、必ずしもこれらの記載された特徴または行為に限定されないことを理解されたい。例えば、そのような機能は、本明細書において識別されている構成要素以外の構成要素で、異なって配布され、または実施されることができる。むしろ、記載された特徴およびステップは、添付の特許請求の範囲の範疇のシステムおよび方法の構成要素の例として開示される。
【0112】
セット「のうちの少なくとも1つ」と記載される特許請求項の文言は、セットの1つの部材またはセットの複数の部材が特許請求項を満たしていることを示す。例えば、「AおよびBのうちの少なくとも1つ」と記載される特許請求項の文言は、A、B、またはAおよびBを意味する。
【国際調査報告】