(57)【要約】  本開示は、メタデータ演算制御を有するストレージアグリゲータコントローラを説明する。ストレージアグリゲータコントローラは、ホストインタフェースを介して、コンピュータネットワークを介して１または複数のリモートホストと通信を行い、ストレージデバイスインタフェースを介して、リモートホストとは別の、それぞれの不揮発性メモリを有する複数のローカルストレージデバイスとも通信を行う。ストレージアグリゲータコントローラは、メディアオブジェクトの格納または検索のためにローカルストレージデバイスを管理する。ストレージアグリゲータコントローラは、アグリゲータ制御回路またはストレージデバイスの１または複数のストレージデバイスコントローラにおいて、複数のストレージデバイスから検索された、または複数のストレージデバイスにおける格納のために、コンピュータネットワークを介して１または複数のホストから受信されたメディアオブジェクトのコンテンツの特徴を規定するメタデータの選択的演算をも統制する。
2021532473.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータネットワークを介して１または複数のリモートホストと通信を行うように構成されるホストインタフェースと、
前記１または複数のリモートホストとは別の複数のローカルストレージデバイスとローカルに通信を行うように構成されるストレージデバイスインタフェースであって、前記複数のローカルストレージデバイスはそれぞれの不揮発性メモリを有する、ストレージデバイスインタフェースと、
メディアオブジェクトの格納または検索のために前記複数のローカルストレージデバイスを管理するように構成されるアグリゲータ制御回路であって、前記複数のローカルストレージデバイスは前記ストレージデバイスインタフェースと結合される、アグリゲータ制御回路と
を備え、
前記アグリゲータ制御回路は、
前記複数のローカルストレージデバイスの物理アドレス空間の組み合わせにマッピングされる抽象化論理アドレス空間を前記１または複数のリモートホストに提供することであって、前記抽象化論理アドレス空間の前記物理アドレス空間への前記マッピングは調整可能である、提供することと、
前記アグリゲータ制御回路または前記複数のローカルストレージデバイスの１または複数のストレージデバイスコントローラにおいて、前記メディアオブジェクトのコンテンツの特徴を規定するメタデータの選択的演算を統制することであって、前記メディアオブジェクトは、前記複数のローカルストレージデバイスから検索される、または前記複数のローカルストレージデバイスにおける格納のために、前記コンピュータネットワークを介して前記１または複数のリモートホストから受信される、統制することと
を実行するように構成される、
ストレージアグリゲータコントローラ。
【請求項２】
前記アグリゲータ制御回路は、メディアオブジェクトが前記複数のローカルストレージデバイスから検索され、メタデータを演算するために処理される順序を制御するようにさらに構成される、請求項１に記載のストレージアグリゲータコントローラ。
【請求項３】
前記アグリゲータ制御回路は、前記メタデータが、任意の単一のストレージデバイスの前記ストレージデバイスコントローラ、複数のストレージデバイスのストレージデバイスコントローラ、または前記アグリゲータ制御回路および１または複数のストレージデバイスのストレージデバイスコントローラの組み合わせのいずれによって演算されるかを選択的に制御するようにさらに構成される、請求項１または２に記載のストレージアグリゲータコントローラ。
【請求項４】
前記アグリゲータ制御回路は、前記複数のローカルストレージデバイスのうち特定のストレージデバイスの前記ストレージデバイスコントローラに、前記特定のストレージデバイスに格納されるメディアオブジェクトのセグメントに関してメタデータを演算させるようにさらに構成される、請求項１から３の何れか一項に記載のストレージアグリゲータコントローラ。
【請求項５】
前記アグリゲータ制御回路は、
格納関連の読み出しオペレーションまたは書き込みオペレーションの実行で現在ビジーではないアイドル状態の１または複数のストレージデバイスのストレージデバイスコントローラを特定することと、
前記複数のローカルストレージデバイスの１または複数に格納されるメディアオブジェクトまたはメディアオブジェクトセグメントに基づいて、メタデータを演算するために、前記特定されたアイドル状態のストレージデバイスコントローラを選択することと
を実行するようにさらに構成される、
請求項１から４の何れか一項に記載のストレージアグリゲータコントローラ。
【請求項６】
前記アグリゲータ制御回路は、前記アグリゲータ制御回路および前記複数のローカルストレージデバイスの１または複数のストレージデバイスコントローラの間で、メディアオブジェクトのメタデータを演算するための処理負荷を配分するようにさらに構成される、請求項１から５の何れか一項に記載のストレージアグリゲータコントローラ。
【請求項７】
メディアオブジェクトは、前記複数のローカルストレージデバイスのそれぞれの間で分配されるセグメントに格納され、前記アグリゲータ制御回路は、
前記複数のローカルストレージデバイスの複数のストレージデバイスコントローラに、前記それぞれのローカルストレージデバイスにローカルに格納される前記メディアオブジェクトの前記セグメントのメタデータの部分をそれぞれ演算させ、演算されたメタデータの前記部分を前記それぞれのローカルストレージデバイスに格納させることと、
前記複数のローカルストレージデバイスからメタデータの前記演算された部分を取得することと、
メタデータの前記演算された部分を組み合わせて、前記メディアオブジェクトに対応する組み合わせメタデータにすることと
を実行するようにさらに構成される、
請求項１から６の何れか一項に記載のストレージアグリゲータコントローラ。
【請求項８】
前記アグリゲータ制御回路は、
前記ストレージアグリゲータコントローラによって集約された前記複数のローカルストレージデバイスのうち別個のストレージデバイスから、メディアオブジェクトのセグメントを検索することと、
前記メディアオブジェクトの前記検索されたセグメントのメタデータを演算することと
を実行するようにさらに構成される、
請求項１から７の何れか一項に記載のストレージアグリゲータコントローラ。
【請求項９】
前記アグリゲータ制御回路は、演算されたメタデータを、前記複数のローカルストレージデバイスの間で分配される別個のセグメントに格納させるようにさらに構成される、請求項１から８の何れか一項に記載のストレージアグリゲータコントローラ。
【請求項１０】
前記アグリゲータ制御回路は、
前記１または複数のリモートホストから、コンピュータネットワークを介して読み出し命令または書き込み命令を受信することと、
前記受信に応答して、前記アグリゲータ制御回路およびストレージデバイスコントローラのうち、前記読み出しまたは書き込み命令のターゲットである１または複数においてメタデータ演算を中断し、少なくとも、前記アグリゲータ制御回路において、または前記アグリゲータ制御回路によって制御され、かつ、あらゆる読み出しまたは書き込み命令の実行からアイドル状態にあるストレージコントローラにおいて、メタデータ演算を継続することと
を実行するようにさらに構成される、
請求項１から９の何れか一項に記載のストレージアグリゲータコントローラ。
【請求項１１】
ホストインタフェースを介して、コンピュータネットワークを介して１または複数のリモートホストと通信を行う段階と、
ストレージデバイスインタフェースを介して、前記１または複数のリモートホストとは別の複数のローカルストレージデバイスとローカルに通信を行う段階であって、前記複数のローカルストレージデバイスはそれぞれの不揮発性メモリを有する、段階と、
メディアオブジェクトの格納または検索のために前記複数のローカルストレージデバイスを管理する段階であって、前記複数のローカルストレージデバイスは前記ストレージデバイスインタフェースと結合される、段階と、
前記複数のローカルストレージデバイスの物理アドレス空間の組み合わせにマッピングされる抽象化論理アドレス空間を前記１または複数のリモートホストに提供する段階であって、前記抽象化論理アドレス空間の前記物理アドレス空間への前記マッピングは調整可能である、段階と、
アグリゲータ制御回路または前記複数のローカルストレージデバイスの１または複数のストレージデバイスコントローラにおいて、前記メディアオブジェクトのコンテンツの特徴を規定するメタデータの選択的演算を統制する段階であって、前記メディアオブジェクトは、前記複数のローカルストレージデバイスから検索される、または前記複数のローカルストレージデバイスにおける格納のために、前記コンピュータネットワークを介して前記１または複数のリモートホストから受信される、段階と
を備える
ローカルストレージデバイスおよびメタデータ演算を管理するための方法。
【請求項１２】
メディアオブジェクトが前記複数のローカルストレージデバイスから検索され、メタデータを演算するために処理される順序を制御する段階をさらに備える、請求項１１に記載の方法。
【請求項１３】
前記メタデータが、任意の単一のストレージデバイスの前記ストレージデバイスコントローラ、複数のストレージデバイスのストレージデバイスコントローラ、または前記アグリゲータ制御回路および前記複数のローカルストレージデバイスの１または複数のストレージデバイスコントローラの組み合わせのいずれによって演算されるかを選択的に制御する段階をさらに備える、請求項１１または１２に記載の方法。
【請求項１４】
前記複数のローカルストレージデバイスのうち特定のストレージデバイスの前記ストレージデバイスコントローラに、前記特定のストレージデバイスに格納されるメディアオブジェクトのセグメントに関してメタデータを演算させるよう段階をさらに備える、請求項１１から１３の何れか一項に記載の方法。
【請求項１５】
格納関連の読み出しオペレーションまたは書き込みオペレーションの実行で現在ビジーではないアイドル状態の１または複数のストレージデバイスのストレージデバイスコントローラを特定する段階と、
前記複数のローカルストレージデバイスの１または複数に格納されるメディアオブジェクトまたはメディアオブジェクトセグメントに基づいて、メタデータを演算するために、前記特定されたアイドル状態のストレージデバイスコントローラを選択する段階と
をさらに備える
請求項１１から１４の何れか一項に記載の方法。
【請求項１６】
前記アグリゲータ制御回路および前記複数のローカルストレージデバイスの１または複数のストレージデバイスコントローラの間で、メディアオブジェクトのメタデータを演算するための処理負荷を配分する段階をさらに備える、請求項１１から１５の何れか一項に記載の方法。
【請求項１７】
メディアオブジェクトは、前記複数のローカルストレージデバイスのそれぞれの間で分配されるセグメントに格納され、前記方法は、
前記複数のローカルストレージデバイスの複数のストレージデバイスコントローラに、前記それぞれのローカルストレージデバイスにローカルに格納される前記メディアオブジェクトの前記セグメントのメタデータの部分をそれぞれ演算させ、演算されたメタデータの前記部分を前記それぞれのローカルストレージデバイスに格納させる段階と、
前記複数のローカルストレージデバイスからメタデータの前記演算された部分を取得する段階と、
メタデータの前記演算された部分を組み合わせて、前記メディアオブジェクトに対応する組み合わせメタデータにする段階と
をさらに備える
請求項１１から１６の何れか一項に記載の方法。
【請求項１８】
ストレージアグリゲータコントローラによって集約された前記複数のローカルストレージデバイスのうち別個のストレージデバイスから、メディアオブジェクトのセグメントを検索する段階と、
前記メディアオブジェクトの前記検索されたセグメントのメタデータを演算する段階と
をさらに備える、請求項１１から１７の何れか一項に記載の方法。
【請求項１９】
演算されたメタデータを、前記複数のローカルストレージデバイスの間で分配される別個のセグメントに格納させる段階をさらに備える、請求項１１から１８の何れか一項に記載の方法。
【請求項２０】
前記１または複数のリモートホストから、コンピュータネットワークを介して読み出し命令または書き込み命令を受信する段階と、
前記受信に応答して、前記アグリゲータ制御回路およびストレージデバイスコントローラのうち、前記読み出しまたは書き込み命令のターゲットである１または複数においてメタデータ演算を中断し、少なくとも、前記アグリゲータ制御回路において、または前記アグリゲータ制御回路によって制御され、かつ、あらゆる読み出しまたは書き込み命令の実行からアイドル状態にあるストレージコントローラにおいて、メタデータ演算を継続する段階と
をさらに備える
請求項１１から１９の何れか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
［関連出願への相互参照］
本開示は、米国特許法第１１９条（ｅ）に基づき、同時係属の本願出願人に譲受された２０１８年７月３１日出願の米国仮特許出願第６２／７１２，８２３号、２０１８年８月３日出願の同第６２／７１４，５６３号、２０１８年８月８日出願の同第６２／７１６，２６９号、２０１８年９月４日出願の同第６２／７２６，８４７号、および２０１８年９月４日出願の同第６２／７２６，８５２号の利益を主張する。本願出願人に譲受された以下の米国非仮特許出願の各々も、前述の米国仮特許出願の利益を主張し、ここに同時に出願されている。
１．米国特許出願第１６／２６３，３８７号
２．米国特許出願第１６／２６４，４７３号
３．米国特許出願第１６／２６２，９７５号
４．米国特許出願第１６／２６２，９７１号
前述の仮および非仮特許出願の各々は、ここに参照により、そのそれぞれの全体において本明細書に引用されている。
【０００２】
本開示は、格納されるコンテンツデータのためのメタデータのストレージエッジにおける格納の制御および生成に関し、具体的には、ローカルストレージデバイスのアレイにおけるデータの格納および検索の管理に加えて、さらに、格納されたまたは格納されるデータを特徴付けるメタデータを演算するストレージアグリゲータコントローラに関する。
【背景技術】
【０００３】
本明細書において提供される背景説明は、本開示の文脈を全般的に提供することを目的とする。本明細書の発明者の成果は、成果が本背景の項で説明される限りにおいて、出願時に別段先行技術とみなされない説明の態様と共に、本開示に対する先行技術であると明示的にも黙示的にも認められない。
【０００４】
既存のストレージシステムは、動画、録音およびセンサデータのような非構造化データを、非構造化データの記述または意味をコンパクトなフォーマットで提供する関連メタデータと共に格納することが多い。メタデータの共通フォーマットは、様々なラベル、タグ、データタイプインジケータ、データ中に検出されたオブジェクトおよびアクティビティ、データが形成されたロケーション等を含む。しばしば、メタデータは、データが格納されるストレージサーバのような既存のストレージシステムとコンピュータネットワークを介してリモートでインタラクトするデータセンタのようなホストシステムによって、従来から生成されている。例えば、ストレージシステムは、格納された非構造化コンテンツメディアをストレージセンタの不揮発性メモリから検索し、ホストインタフェースまたはコンピュータネットワークを介して、検索されたデータをホストシステムに送信するように構成される。ホストシステムは、次に、例えば強力な人工知能ツールを用いて取得されたデータを解析し、取得されたデータに関するメタデータを生成することができる。しかしながら、メタデータ生成を必要とする非構造化データの量は莫大になることがあり、莫大な量の非構造化データを走査および解析してメタデータを生成することは、多くの処理命令サイクル（例えば中央処理装置（ＣＰＵ）サイクル）を消費する高コストな処理である。さらに、メタデータが生成された後でさえ、メタデータは格納のために、次に、ホストインタフェースまたはコンピュータネットワークを介してリモートストレージシステムに戻される。コンピュータネットワークを介してリモートストレージおよびホストシステム間で交換されるデータおよび／またはメタデータはかなりの量となることがあり、従って、コンピュータ処理およびネットワーキングシステムの利用可能な帯域幅に悪影響を与る。結果として、今日の世界で生成される相当量のメディアのためのメタデータを生成することは、実際には不可能である。
【発明の概要】
【０００５】
本明細書において説明される実施形態は、メタデータ演算制御を有するストレージアグリゲータコントローラを提供する。一態様において、ストレージアグリゲータコントローラは、ホストインタフェースと、ストレージデバイスインタフェースと、アグリゲータ制御回路とを備える。ホストインタフェースは、コンピュータネットワークを介して１または複数のリモートホストと通信を行うように構成される。ストレージデバイスインタフェースは、複数のローカルストレージデバイスとローカルに通信を行うように構成され、複数のローカルストレージデバイスは、それぞれの不揮発性メモリを有し、１または複数のリモートホストとは別であり、ストレージデバイスインタフェースと結合される。アグリゲータ制御回路は、メディアオブジェクトの格納または検索のために、複数のローカルストレージデバイスを管理するように構成される。例として、アグリゲータ制御回路は、複数のストレージデバイスの物理アドレス空間の組み合わせにマッピングされる抽象化論理アドレス空間を１または複数のリモートホストに提供するように構成され、抽象化論理アドレス空間の物理アドレス空間へのマッピングは調整可能である。アグリゲータ制御回路は、アグリゲータ制御回路またはストレージデバイスの１または複数のストレージデバイスコントローラにおいて、複数のストレージデバイスから検索された、または複数のストレージデバイスにおける格納のために、コンピュータネットワークを介して１または複数のホストから受信されたメディアオブジェクトのコンテンツの特徴を規定するメタデータの選択的演算を統制するようにも構成される。
【０００６】
別の態様において、アグリゲータ制御回路は、メディアオブジェクトが複数のストレージデバイスから検索され、メタデータを演算するために処理される順序（ｏｒｄｅｒ）を制御するようにさらに構成される。
【０００７】
さらなる態様において、アグリゲータ制御回路は、メタデータが、任意の単一のストレージデバイスのストレージデバイスコントローラ、複数のストレージデバイスのストレージデバイスコントローラ、またはアグリゲータ制御回路および１または複数のストレージデバイスのストレージデバイスコントローラの組み合わせのいずれによって演算されるかを選択的に制御するようにさらに構成される。
【０００８】
さらに別の態様において、アグリゲータ制御回路は、複数のストレージデバイスのうち特定のストレージデバイスのストレージデバイスコントローラに、特定のストレージデバイスに格納されるメディアオブジェクトのセグメントに関してメタデータを演算させるようにさらに構成される。
【０００９】
一実施形態において、アグリゲータ制御回路は、格納関連の読み出しオペレーションまたは書き込みオペレーションの実行で現在ビジーではないアイドル状態の１または複数のストレージデバイスのストレージデバイスコントローラを特定することと、複数のストレージデバイスの１または複数に格納されるメディアオブジェクトまたはメディアオブジェクトセグメントに基づいて、メタデータを演算するために、特定されたアイドル状態のストレージデバイスコントローラを選択することとを実行するようにさらに構成される。
【００１０】
別の例として、アグリゲータ制御回路は、アグリゲータ制御回路および複数のストレージデバイスの１または複数のストレージデバイスコントローラの間で、メディアオブジェクトのメタデータを演算するための処理負荷を配分するようにさらに構成される。
【００１１】
さらなる態様において、メディアオブジェクトは、複数のストレージデバイスのそれぞれの間で分配されるセグメントに格納される。このような態様において、アグリゲータ制御回路は、複数のストレージデバイスの複数のストレージデバイスコントローラに、それぞれのストレージデバイスにローカルに格納されるメディアオブジェクトのセグメントのメタデータの部分をそれぞれ演算させ、演算されたメタデータの部分をそれぞれのストレージデバイスに格納させることを実行するようにさらに構成される。アグリゲータ制御回路は、複数のストレージデバイスからメタデータの演算された部分を取得し、メタデータの演算された部分を組み合わせて、メディアオブジェクトに対応する組み合わせメタデータにする。
【００１２】
別の例として、アグリゲータ制御回路は、ストレージアグリゲータコントローラによって集約された複数のストレージデバイスのうち別個のストレージデバイスから、メディアオブジェクトのセグメントを検索することと、メディアオブジェクトの検索されたセグメントのメタデータを演算することとを実行するようにさらに構成される。
【００１３】
一実施形態において、アグリゲータ制御回路は、演算されたメタデータを、複数のストレージデバイスの間で分配される別個のセグメントに格納させるようにさらに構成される。
【００１４】
別の実施形態において、アグリゲータ制御回路は、１または複数のホストから、コンピュータネットワークを介して読み出し命令または書き込み命令を受信することと、受信に応答して、アグリゲータ制御回路およびストレージデバイスコントローラのうち、読み出しまたは書き込み命令のターゲットである１または複数においてメタデータ演算を中断し、少なくとも、アグリゲータ制御回路において、またはアグリゲータ制御回路によって制御され、かつ、あらゆる読み出しまたは書き込み命令の実行からアイドル状態にあるストレージコントローラにおいて、メタデータ演算を継続することとを実行するようにさらに構成される。
【００１５】
別の態様において、ローカルストレージデバイスおよびメタデータ演算を管理するための方法が提供される。方法は、ホストインタフェースを介して、コンピュータネットワークを介して１または複数のリモートホストと通信を行う段階を備える。ストレージアグリゲータコントローラは、ストレージデバイスインタフェースを介して、１または複数のリモートホストとは別の複数のローカルストレージデバイスとローカルに通信を行う。複数のローカルストレージデバイスは、それぞれの不揮発性メモリを有し、ストレージデバイスインタフェースと結合されている。ストレージアグリゲータコントローラは、メディアオブジェクトの格納または検索のために複数のローカルストレージデバイスを管理する。一例として、ストレージアグリゲータコントローラは、複数のストレージデバイスの物理アドレス空間の組み合わせにマッピングされる抽象化論理アドレス空間を１または複数のリモートホストに提供する。抽象化論理アドレス空間の物理アドレス空間へのマッピングは調整可能である。ストレージアグリゲータコントローラは、アグリゲータ制御回路またはストレージデバイスの１または複数のストレージデバイスコントローラにおいて、複数のストレージデバイスから検索された、または複数のストレージデバイスにおける格納のために、コンピュータネットワークを介して１または複数のホストから受信されたメディアオブジェクトのコンテンツの特徴を規定するメタデータの選択的演算をも統制する。
【００１６】
別の態様において、方法は、メディアオブジェクトが複数のストレージデバイスから検索され、メタデータを演算するために処理される順序を制御する段階をさらに備える。
【００１７】
さらなる態様において、方法は、メタデータが、任意の単一のストレージデバイスのストレージデバイスコントローラ、複数のストレージデバイスのストレージデバイスコントローラ、またはアグリゲータ制御回路およびストレージデバイスの１または複数のストレージデバイスコントローラの組み合わせのいずれによって演算されるかを選択的に制御する段階をさらに備える。
【００１８】
さらに別の態様において、方法は、複数のストレージデバイスのうち特定のストレージデバイスのストレージデバイスコントローラに、特定のストレージデバイスに格納されるメディアオブジェクトのセグメントに関してメタデータを演算させるよう段階をさらに備える。
【００１９】
一実施形態において、方法は、格納関連の読み出しオペレーションまたは書き込みオペレーションの実行で現在ビジーではないアイドル状態の１または複数のストレージデバイスのストレージデバイスコントローラを特定する段階と、複数のストレージデバイスの１または複数に格納されるメディアオブジェクトまたはメディアオブジェクトセグメントに基づいて、メタデータを演算するために、特定されたアイドル状態のストレージデバイスコントローラを選択する段階とをさらに備える。
【００２０】
別の例として、方法は、アグリゲータ制御回路および複数のストレージデバイスの１または複数のストレージデバイスコントローラの間で、メディアオブジェクトのメタデータを演算するための処理負荷を配分する段階をさらに備える。
【００２１】
さらなる態様において、メディアオブジェクトは、複数のストレージデバイスのそれぞれの間で分配されるセグメントに格納される。このような態様において、方法は、複数のストレージデバイスの複数のストレージデバイスコントローラに、それぞれのストレージデバイスにローカルに格納されるメディアオブジェクトのセグメントのメタデータの部分をそれぞれ演算させ、演算されたメタデータの部分をそれぞれのストレージデバイスに格納させる段階をさらに備える。ストレージアグリゲータコントローラは、複数のストレージデバイスからメタデータの演算された部分を取得し、メタデータの演算された部分を組み合わせて、メディアオブジェクトに対応する組み合わせメタデータにする。
【００２２】
さらなる態様において、方法は、ストレージアグリゲータコントローラによって集約された複数のストレージデバイスのうち別個のストレージデバイスから、メディアオブジェクトのセグメントを検索する段階と、メディアオブジェクトの検索されたセグメントのメタデータを演算する段階とをさらに備える。
【００２３】
別の例として、方法は、演算されたメタデータを、複数のストレージデバイスの間で分配される別個のセグメントに格納させる段階をさらに備える。
【００２４】
さらなる実施形態において、方法は、１または複数のホストから、コンピュータネットワークを介して読み出し命令または書き込み命令を受信する段階と、受信に応答して、アグリゲータ制御回路およびストレージデバイスコントローラのうち、読み出しまたは書き込み命令のターゲットである１または複数においてメタデータ演算を中断し、少なくとも、アグリゲータ制御回路において、またはアグリゲータ制御回路によって制御され、かつ、あらゆる読み出しまたは書き込み命令の実行からアイドル状態にあるストレージコントローラにおいて、メタデータ演算を継続する段階とをさらに備える。
【図面の簡単な説明】
【００２５】
添付図面と共に用いられる以下の詳細な説明を考慮すると、本開示のさらなる特徴、その性質および様々な利点が明らかになろう。図面の全体を通じて、同様の参照符号は、同様の部分を指す。
【００２６】
【図１】本開示の主題のいくつかの実施形態に係るストレージアグリゲータコントローラを用いたメタデータ演算を制御するためのシステムの模式図である。
【００２７】
【図２】本開示の主題の実施形態に係るストレージアグリゲータコントローラを用いたメタデータ演算を制御するための方法のフロー図である。
【００２８】
【図３】本開示の主題の他の実施形態に係るストレージアグリゲータコントローラを用いたメタデータ演算を制御するための別の方法のフロー図である。
【００２９】
【図４】本開示の主題のさらに他の実施形態に係るストレージアグリゲータコントローラを用いたメタデータ演算を制御するためのさらに別の方法のフロー図である。
【発明を実施するための形態】
【００３０】
ホストシステムにおける従来のメタデータ演算の非効率を考慮すると、本明細書で説明される実装によれば、非構造化メディアのメタデータは、ストレージアグリゲータコントローラおよび／またはストレージデバイスの演算リソースを用いて演算される。ストレージエッジにおける非構造化メディアのメタデータの演算は、メタデータを生成するためにストレージデバイスとリモートホストシステムとの間で大量のデータを送信する必要をなくし、（ＣＰＵのような）ホスト処理リソースの利用を低減し、メタデータを生成するためのデータ要求の開始と要求されたデータのストレージデバイスからの検索との間のレイテンシを低減し、ホストシステムの電力消費を低減し、ストレージエッジにおいてアイドル状態であることが多いリソース（例えばストレージアグリゲータコントローラおよび／またはストレージデバイスコントローラ）の利用を増加させ、（例えばビッグデータの文脈における利用の）スケーラビリティを改善する。具体的には、本明細書で説明される実施形態は、不揮発性ストレージデバイスのアレイと結合されるストレージアグリゲータコントローラ内に（人工知能（ＡＩ）エンジンのような）１または複数の演算エンジンを提供し、および／またはストレージデバイスの１または複数のストレージコントローラが非構造化メディアのメタデータ生成を実装する。このように、ストレージアグリゲータコントローラおよび／またはストレージデバイス自体が、コンピュータネットワークを介して、離れて配置されたホスト演算システムに非構造化メディアのデータコンテンツを処理のために移すことなく、例えば、ストレージアグリゲータコントローラおよび／またはストレージコントローラ内に存在する１または複数の内部演算エンジンを介して、（コンテンツデータが格納される場所と比べて）ローカルにメタデータを生成する。離れて配置されたホストは、ストレージデバイスから離れて配置されたホストを含む。例えば、いくつかの例において、離れて配置されたホストは、ストレージデバイスからいくらかの距離で分離されたサーバに配置され、これら自体は異なるサーバ上に、異なるラックに、および／または異なるデータセンタのロケーションに配置されている。したがって、メタデータ生成のスループットは、ストレージデバイスのホストインタフェースのデータ容量、コンピュータネットワーク接続の帯域幅の制限、またはホストシステムとデータが格納されるストレージデバイスのロケーションとの間の離れた距離によって生じるあらゆるレイテンシの可能性のいずれによっても制限されることがない。さらに、ストレージデバイスの効率が改善される。
【００３１】
本明細書で用いられるように、用語「データオブジェクト」、「メディアオブジェクト」、または「オブジェクト」は、ホストシステム上で実行されるアプリケーションによって発行され、ストレージデバイス上に格納可能な様々なタイプのデータを意味するものとして用いられる。「メディアオブジェクト」または「オブジェクト」の例は、限定されるものではないが、動画、録音、静止画、テキストメッセージおよびｅメールのようなテキストオブジェクト、自動車センサおよびモノのインターネット（ＩｏＴ）センサのような様々なタイプのセンサから取得されたデータ、データベースオブジェクト、および／または任意の他の好適なオブジェクトを含む。多くの場合、メディアオブジェクトは構造化されていない。本明細書で用いられるように、用語「非構造化オブジェクト」は、オブジェクトのメディアコンテンツ（例えば、テキストコンテンツ、オーディオコンテンツ、イメージコンテンツまたは動画コンテンツ）が生の形式で提供され、固定されたフィールドフォーマットに従って予め編成されていないことを意味する。非構造化オブジェクトは、フレーム毎のコンテンツまたは他のコンテンツ部分の態様を規定するメタデータで演繹的にタグ付けされていない。非構造化データは、トランザクション向けではなく、そのフォーマットは関係データベースのスキームに容易に準拠しない。
【００３２】
本明細書で用いられるように、ストレージエッジという用語は、不揮発性ストレージデバイスに対してローカルなモジュールまたはコンポーネントを意味するものとして用いられる。例えば、不揮発性メモリの１または複数のインスタンスにおいてデータを格納または検索する１または複数のストレージデバイスのオペレーションを制御するコントローラは、ストレージエッジ上に配置される。ストレージエッジは、例えば、専用ストレージデバイスまたはストレージネットワークにあり、例えばホストコンピュータまたはデータセンタに離れて配置されたプロセッサから分離されている。ストレージエッジとリモートホストとの間の通信は、コンピュータネットワーク接続を介して行われる。
【００３３】
本明細書で用いられるように、用語「メタデータ」は、不揮発性ストレージデバイスに格納される実際のデータコンテンツの高レベル表現を指す。「メタデータ」は、データコンテンツの記述または意味をコンパクトなフォーマットで提供する、実際のデータコンテンツの抽象化レイヤであってよい。メタデータは、非構造化なものであることが多いメディアオブジェクトから、様々な手段で生成されてよい。メタデータの例は、ラベル、タグ、データのタイプ、データコンテンツにおいて検出されたオブジェクト／コンセプト／センチメント、このようなオブジェクト／コンセプト／センチメントのデータコンテンツ内における空間／時間的ロケーション等を含んでよい。
【００３４】
本明細書で用いられるように、用語「人工知能（ＡＩ）モデル」は、例えば、ディープニューラルネットワークまたは任意のリカレントニューラルネットワークまたはそれらの任意のバリエーション上で実装される任意の好適なＡＩアルゴリズムを指すものとして用いられる。いくつかの実装において、ＡＩモデルは、好適には、任意の他の監視学習アルゴリズム、非監視学習アルゴリズム、または強化学習アルゴリズムである。ＡＩモデルが監視学習アルゴリズムである実装では、ＡＩモデルは、メディアオブジェクトのボディおよび正確なものであると知られている対応メタデータの「トレーニングセット」を用いてトレーニングされる。トレーニングされた監視ＡＩモデルは、次に、他のメディアオブジェクトのメタデータを生成するように適用される。トレーニングされたＡＩモデルのようなＡＩモデルを受信し、それを用いてオブジェクトのメタデータを演算するソフトウェアまたはハードウェアモジュールは、本明細書において「ＡＩエンジン」または「ＡＩ推定エンジン」と称される。いくつかの実装において、いくつかの異なるＡＩモデルが非構造化または部分的に構造化されたメディアオブジェクトに適用される。
【００３５】
図１は、本開示の主題のいくつかの実施形態に係るストレージアグリゲータコントローラ１０４を用いたメタデータ演算を制御するためのシステム１００の図である。システム１００は、１または複数のホストシステム１０２−１、１０２−２、１０２−３（集合的にホストシステム１０２）、ストレージアグリゲータコントローラ１０４、およびストレージデバイス１０６−１、１０６−２、１０６−３のアレイ（集合的にストレージデバイス１０６）を含む。図１は３つのホストシステム１０２および３つのストレージデバイス１０６を示すが、他の実施形態において、システム１００は、他の好適な数（１、２、３、４、５等）のホストシステム１０２および／またはストレージデバイス１０６を含む。ホストシステム１０２はストレージアグリゲータコントローラ１０４およびストレージデバイス１０６から離れており、コンピュータネットワーク１０８およびホストインタフェース１２０を介してストレージアグリゲータコントローラ１０４と通信可能に結合されている。いくつかの実施形態において、例えば、ストレージアグリゲータコントローラ１０４およびストレージデバイス１０６は、ストレージサーバ、またはリモートホストシステム１０２からいくらかの距離をとって配置される、ネットワークアタッチストレージサーバに配置されており、ホストシステム１０２は、それら自体も互いから離れて配置される１または複数のデータセンタに配置されている。
【００３６】
ストレージアグリゲータコントローラ１０４は、シリアルアタッチスモールコンピュータシステムインタフェース（ＳＡＳ）、シリアルＡＴＡインタフェース、ペリフェラルコンポーネントインターコネクトエクスプレス（ＰＣＩｅ）インタフェース、クラウドプロトコル、ストレージエリアネットワークのためのプロトコル等のようなそれぞれのストレージデバイスインタフェース１２２（ストレージインタフェースと称されることがある）およびローカル通信経路１１０−１、１１０−２、１１０−３（集合的にローカル通信経路１１０）を介して、複数のストレージデバイス１０６−１、１０６−２、１０６−３と通信可能に結合される。
【００３７】
ストレージアグリゲータコントローラ１０４は、アグリゲータメモリ１１２、アグリゲータ制御回路１１４、アグリゲータＡＩエンジン１１６、ホストインタフェース１２０、およびストレージインタフェース１２２を含む。これらのコンポーネントは、１または複数のアグリゲータ制御／データバス１１８を介して互いと通信可能に結合される。
【００３８】
図１は、アグリゲータＡＩエンジン１１６がストレージアグリゲータコントローラ１０４内に配置されているものとして示すが、他の実施形態において、アグリゲータＡＩエンジン１１６は、ストレージアグリゲータコントローラ１０４から分離しているがローカルに配置されている。例えば、ストレージアグリゲータコントローラ１０４がシステムオンチップ（ＳｏＣ）として実装されるいくつかの実施形態において、ＡＩエンジンは、例えば、ＰＣＩｅインタフェース、Ｅｔｈｅｒｎｅｔ（登録商標）インタフェース、または任意の他の好適な高速インタフェースを介してストレージアグリゲータコントローラ１０４とローカルかつ通信可能に結合されるＦＰＧＡ、デジタルシグナリング処理のために具体的に構成される別個の演算デバイス、ベクトル処理エンジン、またはグラフィクス処理ユニット（ＧＰＵ）のようなオフチップペリフェラルコンポーネントとして実装される。
【００３９】
アグリゲータ制御回路１１４は、実施形態において、アグリゲータ非一時的メモリ１２１に格納されるプロセッサ実行可能命令、例えばファームウェア命令を実行するように構成される。概して、アグリゲータ制御回路１１４は、メディアオブジェクトの格納または検索のために、アグリゲータインタフェース１３２およびローカル通信経路１１０を介してストレージデバイスインタフェース１２２と結合されるローカルストレージデバイス１０６を管理する。このような管理の一部として、実施形態において、アグリゲータ制御回路１１４は、複数のストレージデバイス１０６の物理アドレス空間の少なくとも一部の組み合わせにマッピングされる抽象化論理アドレス空間を１または複数のリモートホスト１０２に提供する。抽象化論理アドレス空間の物理アドレス空間へのマッピングは調整可能である。
【００４０】
アグリゲータ制御回路１１４は、ストレージデバイス１０６から検索された、またはストレージデバイス１０６における格納のために、コンピュータネットワーク１０８を介して１または複数のホスト１０２から受信されたメディアオブジェクトのコンテンツの特徴を規定するメタデータの選択的演算をも制御する。いくつかの態様において、アグリゲータ制御回路１１４は、メディアオブジェクトがストレージデバイス１０６から検索され、メタデータを演算するために処理される順序を制御するように構成される。
【００４１】
実施形態において、アグリゲータ制御回路１１４は、アグリゲータコントローラ１０４自体のアグリゲータ制御回路１１４、集約されたストレージアレイにおけるいずれか１つのストレージデバイス１０６のストレージデバイスコントローラ１２６またはストレージアグリゲータコントローラ１０４のアグリゲータ制御回路１１４およびストレージデバイス１０６のストレージデバイスコントローラ１２６の組み合わせのいずれによってメタデータが演算されるかを制御するようにも構成される。実施形態において、このような決定は、システム１００において特定の時点で利用可能なそれぞれの演算リソースを使用する集約されたストレージデバイス１０６のコントローラ間で処理負荷のバランスを取る取り組みにおいて、例えば、様々なストレージデバイス１０６およびストレージアグリゲータコントローラ１０６によってそれぞれ実行されている現在の格納または検索オペレーションに基づいてなされる。いくつかの実施形態において、このような決定は、統合的な態様でストレージ空間の使用のバランスを取り、および／またはメタデータの関連項目を格納するための取り組みにおいて、様々なストレージデバイス１０６において利用可能であり、関連メタデータの特定の項目の格納のために必要とされるストレージ空間の量および／またはロケーション（例えば、隣接するストレージロケーション）に基づいてなされる。
【００４２】
例において、格納および検索オペレーションの実行でビジーである、または間もなくそうなることが予期される第１のストレージデバイス１０６−１からデータが検索され、データは、格納オペレーションから現在アイドル状態の第２のストレージデバイス１０６−２に提供される。このような例において、第１のストレージデバイス１０６−１から検索されたデータに基づいて、第２のストレージデバイス１０６−２は、第１のストレージデバイス１０６−１において実行されている格納および検索オペレーションと同時にメタデータ生成オペレーションを実行し、生成されたメタデータのストレージロケーションとしても機能する。同様に、いくつかのシステムにおいて、ストレージデバイス１０６のストレージデバイスコントローラ１２６の特定のいくつかは、指定されたタイプの処理、例えば、ＤＳＰよびベクトル処理に特化されるように構成され、これにより、汎用プロセッサまたはＤＳＰもしくはベクトルプロセッサによって最も好適に実行される特定のタイプの解析を必要とする非構造化メディアが、集約されたストレージシステム１００において最も好適かつ利用可能なプロセッサに提供される。この点において、いくつかの例において、アグリゲータ制御回路１１４および／またはストレージデバイスコントローラ１２６の異なるものは、１または複数のＤＳＰブロック、ＧＰＵブロック、または他のタイプのプロセッサブロックを有する。
【００４３】
いくつかの例において、アグリゲータ制御回路１１４は、ストレージデバイス１０６のストレージデバイスコントローラ１２６に、ストレージデバイス１０６に格納されるメディアオブジェクトのセグメントに関してメタデータを演算させる（例えばコマンドまたは要求を出す）ように構成される。ストレージアグリゲータコントローラ１０４は、個々のストレージデバイス１０６自体より高いレイヤで動作する。例えば、いくつかの態様において、ストレージアグリゲータコントローラ１０４は、非構造化または部分的に構造化されたメディアオブジェクトのようなデータを部分に分割し、オブジェクトの部分を異なるストレージデバイス１０６−１、１０６−２、１０６−３に格納する。そのために、ストレージアグリゲータコントローラ１０４は、メディアオブジェクトのようなデータがストレージデバイス１０６のそのアレイ間での格納のためにどのように分割されるか、オブジェクトがストレージデバイス１０６からどのように検索されるか、および検索されたデータがメタデータ演算のために処理される順序を制御する。述べたように、ストレージアグリゲータコントローラ１０４は、その選択による制御されたストレージデバイス１０６からのメディアオブジェクトに対応するデータの格納および検索をも制御する。代替的に、ストレージアグリゲータコントローラ１０４は、その選択による接続されたストレージデバイス１０６のプロセッサまたは他のタイプのストレージデバイスコントローラ１２６を制御して、当該ストレージデバイス１０６に格納されたオブジェクトの部分に関してメタデータを演算する。
【００４４】
ストレージデバイス１０６は、様々な実施形態において、任意のタイプのソリッドステートドライブ（ＳＳＤ）、ハードディスクドライブ（ＨＤＤ）、フラッシュストレージ等のような好適な不揮発性ストレージおよびこれらの任意の組み合わせを含む。ストレージデバイス１０６の各々は、それぞれのストレージデバイスメモリ１２４、ストレージデバイスコントローラ１２６、ストレージデバイスＡＩエンジン１２８、アグリゲータインタフェース１３２、およびストレージデバイス不揮発性メモリ１３４を含み、その各々は、ストレージデバイス制御／データバス１３０を介して互いと通信可能に結合される。
【００４５】
図２は、本開示の主題の実施形態に係るストレージアグリゲータコントローラ１０４を用いたメタデータ演算を制御するための方法２００のフロー図である。様々な実施形態において、メタデータ生成は、異なる手段、例えば、ストレージアグリゲータコントローラ１０４においてホストシステム１０２からメタデータ生成コマンドを受信すること、またはストレージアグリゲータコントローラ１０４が実行するように構成されるジェネリックバックグラウンドタスク等によってトリガされる。２０２において、アグリゲータ制御回路１１４は、ホストインタフェース１２０を用いて、コンピュータネットワーク１０８を介して、ホストシステム１０２の１または複数と通信、例えば、ストレージデバイス１０６の１または複数に格納されるべきメディアオブジェクトのようなデータをホストシステム１０２から受信する。代替的に、アグリゲータ制御回路１１４は、ホストシステム１０２の１または複数からネットワーク１０８およびホストインタフェース１２０を介して、以前に格納された非構造化メディアオブジェクトまたは部分的に構造化されたメディアオブジェクトのメタデータを演算する命令を受信する。
【００４６】
２０４において、アグリゲータ制御回路１１４は、ストレージインタフェース１２２を用いてストレージデバイス１０６とローカルに通信を行い、例えば、ストレージデバイス１０６におけるホストシステム１０２から受信されたデータまたはメディアオブジェクトを格納する。例において、アグリゲータ制御回路１１４は、集約されたストレージデバイス１０６に対して統一されたアドレス空間をホスト１０２に提供する抽象化論理アドレス空間を用いることによって、データまたはメディアオブジェクトの格納を調整する。
【００４７】
２０６において、アグリゲータ制御回路１１４は、ローカルストレージデバイス１０６を管理してホストシステム１０２から受信されたメディアオブジェクトの格納および／または検索オペレーションを実行する。
【００４８】
２０８において、アグリゲータ制御回路１１４は、システム１００における格納のためにリモートホストから受信された、またはシステム１００のストレージデバイス１０６の１または複数におけるストレージから検索された非構造化データのメタデータを演算させる。ストレージアグリゲータコントローラ１０４は、それ自体のアグリゲータ制御回路１１４または集約されたシステム１００の１または複数のストレージデバイス１０６−１、１０６−２、１０６−３のストレージデバイスコントローラ１２６のいずれかにおいて利用可能な演算リソースを用いてメタデータを選択的に演算する。メタデータの演算は、実施形態において、１または複数のストレージデバイス１０６に格納されるべき非構造化メディアオブジェクトのコンテンツの特徴を規定する。メタデータを演算するための例示的方法のさらなる詳細が、図３および図４の文脈で提供される。メタデータの生成は、完了まで繰り返されるマルチステップの処理である。例えば、ホストシステム１０２とストレージアグリゲータコントローラ１０４との間でさらなる通信が行われない場合（２１０で「いいえ」）、次に方法２００は終了する。一方で、ホストシステム１０２とストレージアグリゲータコントローラ１０４との間でさらなる通信が継続する場合（２１０で「はい」）、制御は２０２に戻され、アグリゲータ制御回路１１４は上述の態様でホストシステム１０２との通信を継続し、例えば、ストレージデバイス１０６における格納のために、および／またはメタデータ演算のために、より多くのデータを受信する。
【００４９】
いくつかの実施形態において、上述されたように、ストレージアグリゲータコントローラ１０４（または、より具体的にはアグリゲータ制御回路１１４）は、ストレージアグリゲータコントローラ１０４がコンピュータネットワーク１０８を介してホストシステム１０２と通信を行うことに関連するオペレーションからアイドル状態である、および／または集約されたローカルストレージデバイス１０６の１または複数においていずれかのデータの格納または検索を管理することに関連するオペレーションからアイドル状態である期間に、メタデータ演算を実行するように動作可能である。このような実施形態において、例えば、２１０において、アグリゲータ制御回路１１４は、特定のストレージデバイス１０６のストレージデバイスコントローラ１２６が不揮発性メモリに対する読み出しおよび書き込みのようなオペレーションからアイドル状態であり、従ってさらなるメタデータ演算に利用可能であるか、またはこのような格納関連オペレーションの実行でビジーであり、従ってメタデータの演算を中止または一時的に中断すべきであると決定する。この点で、例えば、ストレージアグリゲータコントローラ１０４のアグリゲータ制御回路１１４が、例えば、新たなデータがストレージデバイス１０６−１における格納のためにホスト１０２からコンピュータネットワーク１０８を介して受信されるので、第１のストレージデバイス１０６−１のストレージデバイスコントローラ１２６のリソースが格納オペレーションを実行するために必要とされていると決定した場合、新たに入力されるデータの格納を妨げないように、第１のストレージデバイス１０６−１におけるメタデータ演算は中断され、メタデータの演算は第２のストレージデバイス１０６−２のストレージデバイスコントローラ１２６に提供される。逆に、ストレージアグリゲータコントローラ１０４は、代替的な場合、制御回路１２６がメタデータ演算の実行から現在アイドル状態であるストレージデバイス１０６−３に、新たに受信されたデータが格納されるべきであると決定する。
【００５０】
実施形態において、（例えば、アグリゲータメモリ１１２の一部として）好適な共有メモリ、バッファ、またはキャッシュが、メタデータを計算中の非構造化メディアのそれらの部分を格納するために必要とされてよく、これにより、集約されたシステム１００における異なるストレージデバイス１０６のストレージデバイスコントローラ１２６に計算がシームレスに移行する。
【００５１】
例において、アグリゲータ制御回路１１４は、１または複数のホスト１０２からコンピュータネットワーク１０８を介して読み出し命令または書き込み命令を受信し、これに応答して、ストレージアグリゲータコントローラ１０４のアグリゲータ制御回路１１４および／またはストレージデバイス１０６の１または複数のストレージデバイスコントローラ１２６によるメタデータ演算を中断する。実施形態において、アグリゲータ制御回路１１４は、後述される図３および図４のそれぞれの段階３０８および／または段階４１０の一部として、同様の決定を行う。
【００５２】
他の実施形態において、ストレージアグリゲータコントローラ１０４は、ストレージデバイス１０６の１または複数に既に格納されたメディアオブジェクトを検索することによって、メタデータの演算をトリガする。さらに、いくつかの実施形態において、（例えば、アグリゲータＡＩエンジン１１６および／またはストレージデバイスＡＩエンジン１２８をそれぞれ実装するアグリゲータ制御回路１１４および／またはストレージデバイスコントローラ１２６によって）メディアオブジェクトの格納または検索が並列に実行され、これにより、メタデータ生成を高速化し、またはセグメントで検索されたメディアオブジェクトに対する演算が実行される。メタデータ演算のいくつかの部分は、実施形態において、ストレージデバイス１０６レベルにおいてセグメント単位で実行され、次に、ストレージアグリゲータコントローラ１０４（またはアグリゲータ制御回路１１４）は、演算されたメタデータの部分を組み合わせてまたはまとめて、次に、例えば、メディアオブジェクトのセグメントから検索可能に分離して格納する。アグリゲータ制御回路１１４は、いくつかの例において、演算されたメタデータをストレージデバイス１０６間で分配された別個のセグメントで格納する。代替的に、制御回路１０４は、アグリゲータ制御回路１１４によってメディアオブジェクトの検索されたセグメントまたはメディアオブジェクトの全体（例えば、検索されたセグメントの組み合わせ）に対して独立してメタデータの演算を実行させながら、異なるストレージデバイス１０６からセグメント単位でメディアオブジェクトを検索する。
【００５３】
図３は、本開示の主題の実施形態に係るストレージデバイス１０６に格納されたデータに基づいてメタデータ演算を制御するストレージアグリゲータコントローラ１０４を用いるための方法３００のフロー図である。３０２において、アグリゲータ制御回路１１４は、ストレージデバイス１０６に格納されたメディアオブジェクトのセグメントを検索する。
【００５４】
３０４において、ストレージアグリゲータコントローラ１０４のアグリゲータ制御回路１１４は、メディアオブジェクトの特徴を規定するメタデータを演算する。代替的に、アグリゲータ制御回路１１４は、メタデータの演算をストレージデバイス１０６の１または複数のストレージデバイスコントローラ１２６に割り当てる。
【００５５】
３０６において、アグリゲータ制御回路１１４は、３０４において演算されたメタデータを、集約されたシステム１００のストレージデバイス１０６の１または複数に格納する。ストレージデバイス１０６に格納されたデータがさらなるメタデータ演算を必要としない場合（３０８において「いいえ」）、次に、方法３００は終了する。一方で、メタデータ演算を必要とする非構造化または部分的に構造化されたメディアデータが残っている場合（３０８において「はい」）、次に、制御は３０２に戻る。実施形態において、アグリゲータ制御回路１１４は、上述された態様でのメタデータのさらなる演算のために、メディアオブジェクトのさらなるセグメントをストレージデバイス１０６の１または複数から検索させる。
【００５６】
図４は、本開示の主題の実施形態に係るストレージアグリゲータコントローラ１０４を用いてメタデータ演算を制御するための方法４００のフロー図であり、ここで、非構造化データ、例えば動画は、集約されたストレージデバイス１０６−１、１０６−２、１０６−３のいくつかの間で分配されるセグメントに分割される。４０２において、ストレージアグリゲータコントローラ１０４のアグリゲータ制御回路１１４は、ストレージデバイス１０６のそれぞれのストレージデバイスコントローラ１２６に、それぞれのストレージデバイス１０６間に分配される態様で格納される非構造化メディアオブジェクトのセグメントを検索させる（例えば、コマンドまたは要求を出す）。
【００５７】
４０４において、アグリゲータ制御回路１１４は、ストレージデバイス１０６のそれぞれのストレージデバイスコントローラ１２６に、非構造化メディアオブジェクトデータのこれらのそれぞれの検索されたセグメントに基づいて、メタデータのセグメントを演算させる（例えば、コマンドまたは要求を出す）。
【００５８】
４０６において、アグリゲータ制御回路１１４は、ストレージデバイス１０６から、ストレージデバイス１０６のそれぞれのストレージデバイスコントローラ１２６によって演算された非構造化メディアオブジェクトデータのメタデータのセグメントを検索する。
【００５９】
４０８において、アグリゲータ制御回路１１４は、４０６において検索されたメディアオブジェクトのメタデータのセグメントを組み合わせて、組み合わせメタデータを、例えば、メディアオブジェクトと関連付けて、１または複数のストレージデバイス１０６に格納する。実施形態において、アグリゲータ制御回路１１４は、４０８において、メタデータをまとめて、メタデータセグメントと構造化メディアにおける対応オブジェクトとの間の関連付けを（例えば、集約されたストレージの抽象化レイヤにおけるポインタをリンクすることによって）維持する。アグリゲータ制御回路１１４は、いくつかの態様において、メタデータを、生データオブジェクトと関連付けられているが生データから分離して検索できる態様で格納させる。このように、メタデータは、メディアなしでホスト１０２に供給されてよいが、メタデータは、メディアの関連部分を特定し、次に、関連部分を分離して検索するために用いられてよい。換言すると、アグリゲータ制御回路１１４の機能は、実施形態において、コンピュータネットワーク１０８を介してホスト１０２のプロセッサをメタデータの演算、またはメタデータの部分を単一のメタデータにまとめるために用いることなく、特定のアグリゲータ１０４およびそのそれぞれのストレージデバイス１０６−１、１０６−２、１０６−３において、およびその内部で実行される。
【００６０】
ストレージデバイス１０６に格納されたデータがさらなるメタデータ演算を必要としない場合（４１０において「いいえ」）、次に、方法４００は終了する。一方で、ストレージデバイス１０６がメタデータ演算を必要とするデータを含む場合（４１０において「はい」）、次に、制御は４０２に戻り、ストレージアグリゲータコントローラ１０４のアグリゲータ制御回路１１４は、ストレージデバイス１０６のそれぞれのストレージデバイスコントローラ１２６に、上述された態様での対応メタデータの演算のために、これらのそれぞれのストレージデバイス１０６に格納されたメディアオブジェクトのさらなるセグメントを検索させる（例えば、コマンドまたは要求を出す）。
【００６１】
図１から４と共に説明された様々な実施形態は、制御回路、または限定されるものではないが、集積回路、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、および／または他の同様の回路のような１または複数の電子回路の様々な電子コンポーネントによって実行される。さらに、または代替的に、本明細書で開示される様々な実施形態およびコンポーネントは、アグリゲータ非一時的メモリ１２１における１または複数の一時的または非一時的プロセッサ可読メディアに格納されるプロセッサ実行可能命令、例えばファームウェア命令によって、少なくとも部分的に動作および／または実装されるように構成される。
【００６２】
本開示の様々な実施形態が本明細書において示され、説明されてきたが、このような実施形態は、例示的手段としてのみ提供されている。本明細書において説明される実施形態に関連する多数のバリエーション、変更および代用が、本開示から逸脱することなく適用可能である。本明細書で説明された本開示の実施形態の様々な代替例が、本開示の実施において採用されることに留意されたい。以下の特許請求の範囲が本開示の範囲を規定し、これらの特許請求の範囲の範囲内の方法および構造ならびにそれらの均等物がこれにより包含されることが意図されている。
【００６３】
オペレーションが図面において特定の順序で示されているが、これは、このようなオペレーションが図示される特定の順序またはシーケンシャルな順序で実行されること、または図示された全てのオペレーションが所望の結果を実現するために実行されることを必要とするものとして解されるべきではない。
【００６４】
他のバリエーションは、以下の特許請求の範囲の範囲内にある。
【図１】
2021532473.tif 000003
【図２】
2021532473.tif 000004
【図３】
2021532473.tif 000005
【図４】
2021532473.tif 000006
【国際調査報告】
2021532473.tif 000007
2021532473.tif 000008
2021532473.tif 000009