(57)【要約】能動ストレージシステムが開示される。本能動ストレージシステムは、ストレージデバイスと、不揮発性メモリと、能動ドライブコントローラとを含む。能動ドライブコントローラは、本能動ストレージシステム内のデータ管理および／またはクラスタ管理を実施し、能動ドライブコントローラは、少なくともオブジェクトおよび／またはファイルデータを、受信するためのデータインターフェースを含む。【選択図】図７
2017531857.tif 000002
【特許請求の範囲】
【請求項１】
ストレージデバイスと、
不揮発性メモリと、
能動ドライブコントローラと、
を含む能動ストレージシステムであって、
前記能動ドライブコントローラは、前記ストレージデバイスおよび前記不揮発性メモリに連結されており、前記能動ストレージシステム内のデータ管理および／またはクラスタ管理を実施し、前記能動ドライブコントローラは、少なくともオブジェクトおよび／またはファイルデータを受信するためのデータインターフェースを含む、
能動ストレージシステム。
【請求項２】
前記データインターフェースは、キー値データを受信する、請求項１に記載の能動ストレージシステム。
【請求項３】
前記データ管理は、キャッシング、階層化、圧縮、サービス品質（ＱｏＳ）、およびスナップショットのうちの少なくとも１つを含む、請求項１に記載の能動ストレージシステム。
【請求項４】
前記クラスタ管理は、クラスタを見出すおよび結合するための、メタデータサーバおよびピアとの相互作用を含む、請求項１に記載の能動ストレージシステム。
【請求項５】
前記クラスタ管理は、クラスタを形成および維持するための、前記メタデータサーバおよびピアとの相互作用をさらに含む、請求項１〜４のいずれか一項に記載の能動ストレージシステム。
【請求項６】
ユーザ／クライアントが前記能動ストレージシステム内にプログラムをダウンロードおよび実行することが可能な、インストール可能プログラムをさらに含む、請求項１に記載の能動ストレージシステム。
【請求項７】
１つ以上のハイブリッドオブジェクトストレージデバイス（ＨＯＳＤ）デーモンをさらに含む、請求項１に記載の能動ストレージシステム。
【請求項８】
前記能動ストレージシステムはプログラム可能スイッチを制御する、請求項１に記載の能動ストレージシステム。
【請求項９】
メタデータサーバと、
１つ以上の能動ハイブリッドノードと、
を含む、能動ドライブ分散型ストレージシステムであって、
各能動ハイブリッドノードは複数の能動ドライブストレージデバイスを含み、各能動ドライブストレージデバイスはハイブリッドストレージデバイスおよび能動ドライブコントローラを含み、各能動ドライブコントローラは、その対応ハイブリッドストレージデバイスに対する少なくともオブジェクトおよび／またはファイルデータを受信するためのデータインターフェースを含み、
前記１つ以上の能動ハイブリッドノードの各々中の前記複数の能動ドライブストレージデバイスの１つの能動ドライブコントローラは能動管理ノードをさらに含み、前記能動管理ノードは、前記能動ハイブリッドノードを管理およびモニタリングするため、前記メタデータサーバおよび前記複数の能動ドライブストレージデバイスの各々と相互作用する、
能動ドライブ分散型ストレージシステム。
【請求項１０】
前記データインターフェースは、キー値データをさらに受信する、請求項９に記載の能動ストレージシステム。
【請求項１１】
前記複数の能動ドライブストレージデバイスの各々は、ハイブリッドオブジェクトストレージデバイス（ＨＯＳＤ）デーモンを含む、請求項９に記載の能動ストレージシステム。
【請求項１２】
各能動ドライブコントローラは、キャッシング、階層化、圧縮、サービス品質（ＱｏＳ）、およびスナップショットのうちの少なくとも１つを含むデータ管理をさらに実施する、請求項９に記載の能動ストレージシステム。
【請求項１３】
前記能動管理ノードは、新規な能動ハイブリッドノードの追加、前記１つ以上の能動ハイブリッドノードの１つの不具合、およびそれが対応する能動ハイブリッドノードへのバランスを失したデータアクセス、のうちの１つ以上に応じて、前記能動ハイブリッドノード内のデータの移行を命令する、請求項９に記載の能動ストレージシステム。
【請求項１４】
ユーザ／クライアントが前記能動ストレージシステム内にインストール可能プログラムをダウンロードおよび実行することを可能にするプログラムをさらに含む、請求項９に記載の能動ストレージシステム。
【請求項１５】
前記能動ストレージシステムはプログラム可能スイッチを制御し、前記能動管理ノードは、前記プログラム可能スイッチに、ネットワークトラフィックを低減するため、データパケットを送信元によって指定されていない宛先に転送する命令を送信する、請求項９に記載の能動ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本出願は、２０１４年１０月３日出願のシンガポール特許出願第１０２０１４０６３４９Ｖ号からの優先権を主張する。
【０００２】
発明の分野
本発明は、データセンタのためのストレージシステムに関する。さらに具体的には、本発明は、データセンタのための分散型能動ハイブリッドストレージシステムに関する。
【背景技術】
【０００３】
現今のストレージデバイスまたはボリュームは、インテリジェンス能力をほとんどまたは全く有していない。これらは、単純な読み取り／書き込み動作を行う受命が可能なダミーデバイスである。これらは、ストレージサーバ中の、ブロックベースのストレージデバイスを抽象化するための多くのシステムソフトウェアに依存する。データセンタ中にデータが多くなるにしたがい、デバイスを管理しストレージ抽象化を提供するためのより多くのストレージサーバが必要となる。これは、ハードウェアコストのみならず、サーバのメンテナンスのコストも増加させる。
【０００４】
中央処理装置（ＣＰＵ：Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）および不揮発性メモリ（ＮＶＭ：Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）技術の進展に伴い、システムの効率およびパフォーマンスを最適化して総所有コスト（ＴＯＣ：Ｔｏｔａｌ  Ｃｏｓｔ  ｏｆ  Ｏｗｎｅｒｓｈｉｐ）を低減するために、システムの諸機能およびクラスタ化ソフトウェアの実装、ならびに他のデータ管理をより小さなコントローラボードに組み込むことがますます実行可能になっている。このＮＶＭは、きわめて高速および／またはきわめて低遅延のアクセス時間で、データを格納するためのソリッドステートメモリおよびストレージ技術であり、ＮＶＭは、たとえ電力が切られても格納されたデータを保持する。ＮＶＭ技術の例は、以下に限らないが、ＳＴＴ−ＭＲＡＭ（Ｓｐｉｎ  ｔｏｒｑｕｅ  ｔｒａｎｓｆｅｒ  ＭＲＡＭ（回転トルク転送ＭＲＡＭ））、ＲｅＲＡＭ（Ｒｅｓｉｓｔｉｖｅ  ＲＡＭ（抵抗変化型ＲＡＭ））、およびフラッシュメモリを含む。また、コストとパフォーマンスとの間のバランスを達成するため、様々な異なるＮＶＭ技術のハイブリッドまたは組み合せによってこのＮＶＭを設けることが可能である。
【０００５】
しかして、ストレージデバイスにインテリジェンスを備え、これらデバイスの、かかるインテリジェンスについてのストレージサーバへの依存を低減または排除すべく、ＣＰＵおよびＮＶＭ技術を活用するためのシステムが必要とされている。添付の図面および本開示のこの背景技術と併せ、以降の詳細な説明および添付の特許請求の範囲を理解することによって、さらに他の望ましい特徴および特性が明らかとなろう。
【発明の概要】
【０００６】
本発明の一態様によって、能動ストレージシステムが開示される。本能動ストレージシステムは、ストレージデバイス、不揮発性メモリ、および能動ドライブコントローラを含む。能動ドライブコントローラは、能動ストレージシステム内のデータ管理および／またはクラスタ管理を実施し、また、該能動ドライブコントローラは、少なくともオブジェクトおよび／またはファイルデータを受信するためのデータインターフェースを含む。
【０００７】
本発明の別の態様によって、別の能動ストレージシステムが開示される。本能動ストレージシステムは、メタデータサーバおよび１つ以上の能動ハイブリッドノードを含む。各能動ハイブリッドノードは、複数のハイブリッドオブジェクトストレージデバイス（ＨＯＳＤ：Ｈｙｂｒｉｄ  Ｏｂｊｅｃｔ  Ｓｔｏｒａｇｅ  Ｄｅｖｉｃｅ）および対応する複数の能動ドライブコントローラを含み、複数の能動ドライブコントローラの各々は、それの対応ＨＯＳＤに対する、少なくともオブジェクトおよび／またはファイルデータを受信するためのデータインターフェースを含む。また、複数の能動ドライブコントローラの１つは、能動管理ノードを含み、該能動管理ノードは、能動ハイブリッドノードを管理しモニタリングするために、メタデータサーバ、および複数のＨＯＳＤの各々と相互作用する。
【０００８】
添付の図面において、個別の図面全体を通して同じ参照記号は同一のまたは機能的に類似の要素を表し、これら図面は、以降の詳細な説明とともに本明細書に組み込まれその一部を形成し、様々な実施形態を例示し、単に非限定の例として本発明による様々な原理および利点を説明するための役割を果たす。
【０００９】
以下の図面を参照して、以降に本発明の実施形態を説明する。
【図面の簡単な説明】
【００１０】
【図１】或る実施形態による、能動ドライブストレージシステムの一例を表す図である。
【図２】本実施形態による、能動ドライブ分散型ストレージシステムのアーキテクチャの一例を表す図である。
【図３】本実施形態による、能動ドライブストレージシステムの一例のブロック図を表す図である。
【図４】本実施形態による、オブジェクトマッピングに対する１対１キー値の概覧を表す図である。
【図５】本実施形態による、オブジェクトマッピングに対する多対１キー値の概覧を表す図である。
【図６】本実施形態による、オブジェクトマッピングに対する１対多キー値の概覧を表す図である。
【図７】本実施形態による、能動ハイブリッドノード（ＡＨＮ：ａｃｔｉｖｅ  ｈｙｂｒｉｄ  ｎｏｄｅ）のアーキテクチャの一例を表すブロック図である。
【図８】本実施形態による、能動管理ノード（ＡＭＮ：ａｃｔｉｖｅ  ｍａｎａｇｅｍｅｎｔｎｏｄｅ）ソフトウェアのアーキテクチャの一例を表すブロック図である。
【図９】従来式分散型ストレージシステムにおけるデータ更新プロセスのブロック図である。
【図１０】本実施形態による、分散型能動ハイブリッドストレージシステムの例示的なネットワーク最適化のブロック図である。
【図１１】図１１は、本実施形態による、スイッチ制御ボード（ＳＣＢ：ｓｗｉｔｃｈ  ｃｏｎｔｒｏｌ  ｂｏａｒｄ）におけるプログラム可能スイッチのパケット転送のフローを表すフローチャートである。
【図１２】本実施形態による、ＨＯＳＤの不具合に遭遇した際の再構築プロセスを表すフローチャートである。
【発明を実施するための形態】
【００１１】
当業者には自明のことであろうが、これらの図の要素は簡明さおよび明瞭さを旨として描かれており、必ずしも一定の縮尺では表されていない。
【００１２】
以降の詳細な説明は、事実上単なる例示であり、本発明または本出願、および本発明の用途を限定することは意図されていない。さらに、前述の本発明の背景または以降の詳細な説明中に提示されたいかなる原理によっても制約されることは意図されていない。本発明の目的は、データ管理およびクラスタ管理の実施のため、ストレージシステム内にハイブリッドストレージデバイスに連結された能動ドライブコントローラを含む、能動ストレージシステムを提供することであり、このクラスタ管理は、クラスタを見出すおよび結合する、またはクラスタを形成および維持するため、メタデータサーバまたは他の能動ドライブコントローラと相互作用することを含む。本実施形態による能動ドライブコントローラは、オブジェクトデータ、ファイルデータ、およびキー値データを受信するためのデータインターフェースを含む。
【００１３】
図１を参照すると、図は、本実施形態によるシステム１００中の能動ドライブストレージシステムの一例を表している。本能動ドライブストレージシステムは、３つの主要コンポーネント、すなわち、アプリケーションサーバ１０２、能動ハイブリッドノード（ＡＨＮ）１０４、および能動管理ノード（ＡＭＮ）１０６を含む。ＡＨＮ１０４は、不揮発性メモリ（ＮＶＭ）１１０およびハードディスクドライブ（ＨＤＤ：ｈａｒｄ  ｄｉｓｋ  ｄｒｉｖｅ）１１２が取り付けられたハイブリッドストレージノードである。複数のＡＨＮ１０４をクラスタ１２０に形成することができる。ＡＭＮ１０６は、ストレージ媒体として少数のＮＶＭを包含する。データのパケット１３０は、ネットワーク１４０を介してアプリケーションサーバ１０２とＡＨＮ１０４との間を流れる。
【００１４】
図２を参照すると、図は、本実施形態による、能動ドライブ分散型ストレージシステム２００に対するアーキテクチャの一例を表している。この能動ドライブ分散型ストレージシステムは、インターネット２０４を介して複数の能動ハイブリッドドライブ２０６に連結されたアプリケーション／クライアントサーバ２０２を含む。データセンタ構成において、能動ハイブリッドドライブ２０６は、４２Ｕラック２１０などのラックに搭載することが可能で、該ラックは、プログラム可能スイッチ２２０中に搭載された能動ハイブリッドドライブ２０６をアプリケーション／クライアントサーバ２０２に連結するための該スイッチ２２０を含む。このアーキテクチャは、能動ハイブリッドドライブ２０６への直接的データ伝送に使われるストレージノードを排除する。
【００１５】
図３を参照すると、本実施形態による、分散型能動ハイブリッドドライブストレージシステム３０２の一例の概略図３００が示されている。アプリケーションサーバ１０２は、ＡＨＮ１０４、３０４に連結されており、ＡＨＮ１０４の一部は、ＮＶＭ１１０、ＨＤＤ１１２、および能動ドライブコントローラ３０６を含み、他のＡＨＮ３０４は、ＮＶＭ１１０、ソリッドステートドライブ（ＳＳＤ：ｓｏｌｉｄ  ｓｔａｔｅ  ｄｒｉｖｅ）３１０、および能動ドライブコントローラ３０６を含む。複数のＡＨＮ１０４、３０４はクラスタ３１５に形成することが可能である。パフォーマンスを向上し、ストレージ利用率を上げるために、分散型能動ハイブリッドストレージシステム３０２は、並列データアクセスおよび消失訂正符号を用いる。データ書き込みのため、アプリケーションサーバ１０２は、データの部分を追跡するためにメタデータサーバ３２０を用いながら、データを相異なるＡＨＮ１０４，３０４宛てに分解することができる。データ読み取りの過程で、アプリケーションサーバ１０２は、高パフォーマンスを達成するために、相異なるＡＨＮ１０４、３０４から同時に複数の分割片をいっせいに読み取ることが可能である。
【００１６】
図４を参照すると、マッピング図４００は、本実施形態による、オブジェクトマッピングに対する１対１のキー値の概覧を表している。オブジェクト４１０は、３つの部分、すなわち、オブジェクト識別（ＯＩＤ：ｏｂｊｅｃｔ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ）４１２、オブジェクトデータ４１４、およびオブジェクトメタデータ４１６から成る。ＯＩＤ４１２は、オブジェクト４１０の一意的ＩＤ／名称である。オブジェクトデータ４１４は、オブジェクト４１０の実際のコンテンツである。オブジェクトメタデータ４１６は、オブジェクト４１０の任意の事前定義された属性または情報とすればよい。
【００１７】
キー値（ＫＶ：Ｋｅｙ  Ｖａｌｕｅ）インターフェースは、オブジェクトストアの最上部に形成される。マッピング層は、ＫＶエントリ４２０をオブジェクト４１０にマップするように設計され実装される。ＫＶをオブジェクトにマッピングするための様々なメカニズムがある。マッピング図４００中に表されるように、１対１のマッピングでは、各ＫＶエントリ４２０は単一のオブジェクト４１０に対してマップされる。ＫＶエントリ４２０は、キー４２２、値４２４、および他の情報４２６を含む。キー４２２は、オブジェクトＩＤ４１２に対してマップされる４３２。値４２４は、オブジェクトデータ４１４に対してマップされる４３４。また、他の情報４２６は、バージョン、チェックサム、値のサイズを含むことが可能で、オブジェクトメタデータ４１６に対してマップされる４３６。
【００１８】
図５は、本実施形態による、多対１マッピングスキームの概覧のマッピング図５００を表す。複数のＫＶエントリ５２０が同一のオブジェクト５１０に対してマップされている。オブジェクトＩＤ５１２はキー範囲５２２を表す。キー範囲５２２中に含まれるキーを有するＫＶエントリ５２０は、このオブジェクト５１０にマップされる。各エントリ５２０に対し、そのキー５２４および属性５２６が、オブジェクトメタデータ５１６に対してマップされる５３２。属性５２６は、オブジェクトメタデータ５１６の内部のキー５２４を検索することによって見出すことができる。オブジェクトメタデータ５１６中に「オフセット」と名付けられた属性５２６が格納されており、この属性は、各値５２８がオブジェクトデータ５１４に対してマップされる５３４とき、キー値の格納された表現のオフセット５４０を表す。
【００１９】
図６は、本実施形態による、各ＫＶエントリ６２０が複数のオブジェクト６１０にマップされている場合の、１対多キー値のオブジェクトマッピングの概覧のマッピング図６００を表す。キー６２２は、各オブジェクトＩＤ６１２が接尾辞（＃０００、＃００１等）と組み合されたキー６２２である、複数のオブジェクトＩＤ６１２にマップされている。属性６２４は、第一オブジェクト６１０のメタデータ６１４中に格納される。属性分割片サイズ６２６は、各オブジェクトデータ６１６にマップされた値６３０の分割片サイズ６２８を表す。最後のオブジェクトデータ６１６は、分割片サイズ６２８より少数のバイトの格納が可能である。上記に換えて、各オブジェクト６１０は、分割片の相異なるサイズ６２８を格納することも可能で、分割片の個別のサイズは、オブジェクトのメタデータ６１４、６１５の中に格納される。
【００２０】
図７を参照すると、ブロック図７００は、ノードデーモン７０４を備えるＡＨＮ７０２のアーキテクチャを表している。デーモンは、バックグラウンドプロセスとして実行されるコンピュータプログラムであり、１つもしくは複数のＨＯＳＤ、またはＡＨＮ７０２が大きなハドゥープストレージプール（Ｈａｄｏｏｐ  ｓｔｏｒａｇｅ  ｐｏｏｌ）のストレージノードである場合にマップリデュースジョブ（ＭａｐＲｅｄｕｃｅ  ｊｏｂ）を処理できるマップリデュースジョブ７０６、を含むハイブリッドオブジェクトストレージデバイス（ＨＯＳＤ）デーモンなど、多くのデーモンがあり得る。また、再構築デーモン７０８、または（例えば、ローカルストレージのためのデータをソートする）メタデータソーティングデーモンなど、他のデーモンを実装することもできよう。アプリケーションまたはクライアントサーバ（例えばサーバ１０２）は、実行のためＡＨＮ７０２の中にジョブをポストしインストールすることができ、ノードデーモン７０４中のメッセージハンドラ７１０は、クライアントサーバがオブジェクトクライアント７１２またはキー値（ＫＶ）クライアント７１４であってよいアプリケーション／クライアントサーバ１０２と通信するため、ＡＨＮ７０２に対しメッセージハンドリング機能を提供する。
【００２１】
また、ＡＨＮ７０２は、オブジェクトストア７１６、ローカルファイルストレージ７１８、およびＨＤＤ１１２とＮＶＭ１１０とを含むハイブリッドストレージ７２０を含む。ローカルファイルストレージは、オブジェクトメタデータ４１６（またはオブジェクトメタデータ５１６、６１４、６１５）およびオブジェクトデータファイル４１４（またはオブジェクトデータファイル５１４、６１６）を含む。オブジェクトストア７１６は、オブジェクトクライアント７１２と接続するためのオブジェクトインターフェース７２２、およびＫＶクライアント７１４と接続するためのキー値インターフェース７２４を含む。キー値インターフェース７２４は、ＫＶに対し、図４、５、および６に示されたマッピングなど、オブジェクトマッピングの役割を担い、オブジェクトストア７１６中のファイルストア７２６は、オブジェクトに対し、ファイルマッピングの役割を担う。また、データ圧縮およびハイブリッドデータ管理７２８は、オブジェクトストア７１６を形成するために制御される。
【００２２】
ＡＨＮ７０２の動作および機能を形成するソフトウェアのアーキテクチャおよびモジュールをさらに詳細に説明する。これらソフトウェア実行ファイルは、プログラムコード保管のための不揮発性媒体中に格納され、実行のための立ち上げ過程でＡＨＮのプロセッサによって主メモリ中に呼び出される。ＡＨＮ７０２は、オブジェクトクライアントサーバ７１２およびキー値（ＫＶ）クライアントサーバ７１４中のアプリケーションへのオブジェクトインターフェースおよびＫＶインターフェースの両方を備える。オブジェクトインターフェース７２２は、下層のオブジェクトストア７１６へのネイティブインターフェースである。オブジェクトストア７１６は、オブジェクトをファイルとして保管するために、代わりにファイルストア（例えば、ファイルストア７２６）として実装することも可能である。
【００２３】
ソフトウェアの３つの主要層、すなわちノードデーモン７０４、オブジェクトストア７１６、およびローカルファイルシステム７１８がある。ノードデーモン層７０４は、様々な独立したランタイムプログラムまたはソフトウェアデーモンを示す。メッセージハンドラデーモン７１０は、分散型クラスタシステムを形成、維持し、クライアントサーバとＡＮＨとの間のデータ伝送を提供するため、他のＡＮＨ、ＡＭＮおよびクライアント端末とのＴＣＰ／ＩＰに基づく通信プロトコルを取り扱う。
【００２４】
再構築デーモン７０８は、関連する残存データおよびチェック符号ドライブからデータを復号することによって、システム中の不具合ドライブから失われたデータを復元する処理を実行する役割を担う。マップリデュースデーモン７０６は、ＡＮＨノードの１つ以上ストレージデバイス中で処理のため必要なデータに直接ローカルにアクセスできるように、データ分析タスクを実行のためＡＮＨに割り当てるべく、マップリデュースフレームワーク中のジョブトラッカーに対しマップリデュースおよびハドゥープ分散型ファイルシステム（ＨＤＦＳ：Ｈａｄｏｏｐ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｆｉｌｅ  Ｓｙｓｔｅｍ）インターフェースを提供する。クライアントインストール可能プログラムデーモン７３０は、ＡＮＨに付属するどれか１つ以上のストレージデバイス上に格納されたプログラムを実行するように構成される。アプリケーションまたはクライアントサーバは、実行のためＡＨＮの中にジョブをポストしインストールすることができるので、クライアントインストール可能プログラムデーモンは、ＡＮＨに付属する１つ以上のストレージデバイスの中に実行可能プログラムをアップロードしインストールするため、クライアント端末と通信する。
【００２５】
ＡＨＮ７０２中でデータ計算を実行する原理は、計算をストレージの近くに持ってくること、すなわち、デーモンが、時間の大部分をローカルＡＨＮ７０２からのデータへのアクセスにかけ、そのジョブの結果をアプリケーションまたはクライアントサーバに返信する必要があるだけにすることにある。多くの状況では、データ計算の結果のサイズは、計算に使われるローカルのデータのものよりもずっと小さい。このようにして、ネットワーク１４０を介して送信する必要のあるデータの量を低減でき、ビッグデータの処理または計算をストレージリソースとともに分散し、全体的システムのパフォーマンスを大きく向上することができる。
【００２６】
オブジェクトストア７１６は、ノードデーモン層７０４へのオブジェクトインターフェース７２２およびＫＶインターフェース７２４を提供するためのソフトウェア層である。また、オブジェクトストア層７１６は、オブジェクトが基底のファイルシステムによって格納され管理され得るように、ファイルストア７２６を用い、オブジェクトをファイルにマップする。データ圧縮およびハイブリッドデータ管理は、オブジェクトストア層７１６中の他の２つの主要モジュールである（但し、簡潔さのため図７では単一のモジュール７２８として示されている）。本実施形態によれば、データ圧縮は、データ書き込みおよび読み取りのため、それぞれにインラインデータ符号化および復号を実施する。本実施形態によれば、ハイブリッドデータ管理は、頻繁に使用されるデータがＮＶＭに格納されるように、ハイブリッドストレージを管理する。また、オブジェクトストア層７１６中には、ストレージのサービス品質（ＱｏＳ：Ｑｕａｌｉｔｙ  ｏｆ  Ｓｅｒｖｉｃｅ）など、他のデータ管理サービスを実装することも可能である。
【００２７】
ローカルファイルシステム層７１８は、各オブジェクトを１つ以上のストレージデバイスの対応セクタブロックの中に分解することによりオブジェクトメタデータ４１６およびオブジェクトデータ４１４を格納するため、下層の１つ以上のストレージデバイスのデータブロックに対するファイルシステム管理を提供する。本実施形態によれば、削除されたオブジェクトに対するデータセクタブロックは、新しく生成されるオブジェクトを格納するためのセクタスペースの将来の割り当てのため、ローカルファイルシステム層７１８によって再利用される。
【００２８】
図８を参照すると、ブロック図８００は、本実施形態による、能動管理ノード（ＡＭＮ）８０２のソフトウェアアーキテクチャの一例を表している。ＡＭＮ８０２は、メッセージハンドラデーモン８１２を介して、ＡＭＮ８０２が属しているクラスタ中の他のＡＭＮ（存在する場合）８０４、ＡＨＮ８０６、アプリケーションサーバ８０８、およびスイッチ制御ボード（ＳＣＢ）のスイッチ８１０と通信することができる。
【００２９】
ＡＭＮ８０２は、多機能ノードである。ＡＭＮ８０２は、クラスタ管理およびモニタリング機能８１４に加えて、新規に加わったノード、または故障で不活性なＡＨＮ、またはデータ移行および再構築デーモン８１６からＡＨＮへのバランスを失したデータアクセスに起因して、データを移行する命令を送信する。さらに、ＡＭＮ８０２は、スイッチコントローラデーモン８１８を介してＳＣＢのスイッチ８１０に、送信元によって指定されていない宛先にデータパケットを転送する命令を送信することによってネットワークトラフィックを有利に低減することができる。
【００３０】
メッセージハンドラデーモン８１２は、存在する場合他のＡＭＮ、クラスタ中のＡＨＮ、アプリケーションサーバ、およびプログラム可能スイッチとの通信プロトコルを実装する。クラスタ管理およびモニタリングデーモン８１４は、クラスタについての情報を形成し維持するためのアルゴリズムおよび機能を提供する。クライアントサーバは、データを格納または読み出すための対応ＨＯＳＤを判断すべく、クラスタ中の最新のＨＯＳＤトポロジーを抽出するため、クラスタ管理およびモニタリングデーモン８１４と通信する。ＡＭＮ８０２は、クラスタのモニタリング状態に基づき、新規に加わったノードまたは故障で不活性なＡＨＮまたはＡＨＮへのバランスを失したデータアクセスに起因して、データ移行および再構築デーモン８１６からデータを移行する命令を送信する。さらに、ＡＭＮ８０２は、スイッチコントローラデーモン８１８を介してプログラム可能スイッチに、クライアント通信への負荷を低減するため、データパケットを自立的に複製し宛先に転送する命令送信することもできる。
【００３１】
図９を参照すると、ブロック図９００は、信頼性のため実装された消失訂正符号を用いる従来式分散型ストレージシステム中のデータ更新プロセスを表している。アプリケーションサーバ９０２は、ネットワークスイッチ９０４を介して、データノード９０６（すなわち、ＤＮ１、ＤＮ２、…、ＤＮｎ）およびパリティノード９０８（すなわち、ＰＮ１、ＰＮ２、およびＰＮ３）の両方を含むストレージに連結される。パリティノード９０８は、ＤＮ１〜ＤＮｎからの符号化データを、データがデータノードに書き込まれる都度（例えば、ステップ９１２でデータＷがＤＮ１に書き込まれる）、そのデータがパリティノード９０８に複製されるようにして（例えば、データＷは、ステップ９１４でＰＮ１、ＰＮ２、およびＰＮ３に複製される）維持する。パリティノード９０８に対する符号化データが、リードソロモン符号から計算されている場合、このストレージシステムは同時に３つのノード不具合に耐えることができる。また、メタデータサーバ９１０は、ネットワークスイッチ９０４を介して、データノード９０６およびパリティノード９０８に連結される。
【００３２】
図１０を参照すると、ブロック図１０００は、本実施形態による、分散型能動ハイブリッドストレージシステム１００２の例示的なネットワーク最適化を示している。アプリケーションサーバ９０２は、ネットワークスイッチ９０４を介して分散型能動ハイブリッドストレージシステム１００２と通信する。ネットワークスイッチ９０４は、ＡＨＮデータノード１００６およびＡＨＮパリティノード１００８と通信するために、分散型能動ハイブリッドストレージシステム１００２のプログラム可能スイッチ１００４とインターフェース接続している。プログラム可能スイッチ１００４は、フローテーブル１０１０およびパリティノードインデックス１０１２を含み、ＡＭＮ１０１４からのプログラム可能コマンドに応じて動作する。データノード１００６およびパリティノード１００８は、ＡＭＮ１０１４の制御の下の、能動ハイブリッドドライブストレージクラスタ中のＨＯＳＤとすればよい。アプリケーションサーバ９０２とこれらストレージノード（すなわち、データノード１００６およびパリティノード１００８）との間のデータ伝送は、伝送および経路選択プロトコルとしてＴＣＰ／ＩＰを使い、ネットワークを介して行われる。データノード１００６およびパリティノード１００８は、ＡＨＮ７０２（図７）などの能動ハイブリッドノードであり、能動ハイブリッドノード７０２のソフトウェアアーキテクチャを用いて、アプリケーションサーバ９０２の、データの複数のコピーを相異なるストレージノードへの送信を軽減する。また、この構造は、データセンタのネットワークスイッチ９０４の処理能力の消費を低減する。
【００３３】
図１１を参照すると、フローチャート１１００は、本実施形態による、プログラム可能スイッチ１００４（図１０）のスイッチ制御ボード（ＳＣＢ）における、アプリケーションサーバ９０２からの到来データを転送するためのプログラム可能スイッチのパケット転送フローを表している。プログラム可能スイッチ１００４のＳＣＢは、アプリケーションサーバ９０２からデータパケットを受信する１１０２と、パケットヘッダおよび対応するペイロードパラメータ情報を調べ、フローテーブル１０１０およびパリティノードテーブル１０１２をチェックして１１０４、当該データパケットが書き込みデータパケットかどうか、また、そのパケットをどのＡＨＮノード１００６に転送すべきかを判断する。
【００３４】
フローテーブル中に関連するエントリが見出せない場合１１０６、そのパケットまたはフローに対する新規のエントリを得るために、パケットヘッダおよび関連するペイロードパラメータがＡＭＮ１０１４に送信され、新規テーブルエントリ情報を包含するＡＭＮ１０１４から受信された応答に従って、プログラム可能スイッチ１００４中でフローおよびパリティノードテーブルが更新される１１０８。当該エントリが見出された場合１１０６は、該パケットはそのエントリによって示された宛先ＨＯＳＤを包含するＡＨＮに転送される１１１０。アプリケーションサーバ９０２から受信された、同じデータを用いた別個のデータ書き込み要求は、パリティノードテーブル１０１２中の対応するエントリに記載された、データノード１００６に関連付けられたパリティノード１００８のそれぞれに転送するため、プログラム可能スイッチ１００４によって複製される１１１２、１１１４。パリティノード１００８およびデータノード１００６の両方は、分散型ストレージクラスタ中のＨＯＳＤによって設けられる。
【００３５】
図１２を参照すると、フローチャート１２００は、１つ以上のＨＯＳＤが不具合になったときの再構築プロセスを表している。最初に、ＡＨＮがその付属ＨＯＳＤ／ＨＤＤの不具合を識別する１２０２。代替ドライブが識別されたならば、再構築プロセスが開始される。単一のＨＯＳＤ／ＨＤＤの不具合１２０４および同一のＡＨＮの複数のＨＯＳＤ／ＨＤＤの不具合１２０６の場合は、該ＨＯＳＤ不具合が生じたＡＨＮに付属するＡＭＮ８０２の再構築デーモン８１６が、ＡＨＮ７０２が包含するオブジェクトマップを使って再構築プロセスを開始する１２０８。最初に、再構築デーモン８１６は、付属するＮＶＭ中の利用可能なデータを検索し１２１０、それを代替ＨＯＳＤ／ＨＤＤに直接コピーする。また、再構築マップとして使われたオブジェクトマップも、各々のオブジェクトが再構築された後、もしくは複数のオブジェクトが再構築された後１２１４、更新される１２１２。
【００３６】
相異なるＡＨＮ１２１６に亘って複数のＨＯＳＤ／ＨＤＤ不具合が生じた場合、それぞれのＡＨＮがそれ自体のＨＯＳＤ／ＨＤＤの再構築の役割を担うことになる１２１８。各ＡＨＮに対し、再構築の手順は、再構築デーモン８１６が、付属するＮＶＭ中の利用可能なデータを調べ１２２０、それを代替ＨＯＳＤ／ＨＤＤに直接コピーすることであり、また、再構築マップとして使われたオブジェクトマップも、各々のオブジェクトが再構築された後、もしくは複数のオブジェクトが再構築された後１２１４、更新される１２２２。
【００３７】
しかして、本実施形態が、ストレージデバイスに対するインテリジェンスを備え、かかるインテリジェンスに対するこれらのストレージサーバへの依存を低減または排除するため、ＣＰＵおよびＮＶＭ技術を活用するためのシステムを提供することが分かる。加えて、本実施形態は、データの計算をデータストレージのより近傍に持ってきて、計算のため使用されるローカルデータよりもずっと小さいサイズであるデータ計算の結果だけをネットワークを介して転送することによって、ネットワーク通信を低減する有利な方法を提供する。このようにして、ネットワークを介して送信する必要のあるデータの量を低減でき、ビッグデータの処理または計算をストレージリソースとともに分散し、全体的システムのパフォーマンスを大きく向上することができる。前述の本発明の詳細な説明において、例示的な実施形態を提示してきたが、当然のことながら数多くのバリエーションが存在する。
【００３８】
さらに、当然のことながら、これらの例示的な実施形態は単なる例であって、いかなる形においても、本発明の範囲、適用性、作用、または構成を制限することは意図されていない。むしろ、前述の詳細な説明は、当業者に、本発明の典型的な実施形態を実装するための便利なロードマップを提供するものであり、当然ながら、添付の特許請求の範囲に述べられた本発明の範囲から逸脱することなく、例示的な実施形態で説明された要素の機能および配置、ならびに動作の方法に様々な変更を加えることが可能である。
【図１】
2017531857.tif 000003
【図２】
2017531857.tif 000004
【図３】
2017531857.tif 000005
【図４】
2017531857.tif 000006
【図５】
2017531857.tif 000007
【図６】
2017531857.tif 000008
【図７】
2017531857.tif 000009
【図８】
2017531857.tif 000010
【図９】
2017531857.tif 000011
【図１０】
2017531857.tif 000012
【図１１】
2017531857.tif 000013
【図１２】
2017531857.tif 000014
【手続補正書】
【提出日】平成28年5月24日(2016.5.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ストレージデバイスと、
不揮発性メモリと、
能動ドライブコントローラと、
を含む能動ストレージシステムであって、
前記能動ドライブコントローラは、前記ストレージデバイスおよび前記不揮発性メモリに連結されており、前記能動ストレージシステム内のデータ管理および／またはクラスタ管理を実施し、前記能動ドライブコントローラは、少なくともキー値データおよび／またはオブジェクトデータを受信するためのデータインターフェースを含み、前記データインターフェースは、前記オブジェクトデータとインターフェース接続するためのオブジェクトインターフェースを含む第一インターフェース、および前記オブジェクトデータとインターフェース接続するためのキー値インターフェースを含む第二インターフェース、を含み、前記第二インターフェースは、オブジェクトデータマッピング構造体に対する１対１キー値データ、オブジェクトデータマッピング構造体に対する多対１キー値データ、およびオブジェクトデータマッピング構造体に対する１対多キー値データ、を含むグループから選択された前記オブジェクトデータに前記キー値データをマッピングするためのマッピング構造体を含む、
能動ストレージシステム。
【請求項２】
前記キー値データは、キー、値データ、および他のデータを含み、前記第二インターフェースの前記マッピング構造体が、前記値データを前記オブジェクトデータにマップし、前記キーを前記マップされたオブジェクトデータに対応するオブジェクトＩＤにマップし、前記他のデータを前記マップされたオブジェクトデータに対応するオブジェクトメタデータにマップするオブジェクトデータマッピング構造体に対する、１対１キー値データを含む、請求項１に記載の能動ストレージシステム。
【請求項３】
前記キー値データは、複数のキー値エントリを含み、前記複数のキー値エントリの各々は、キー、属性、および値データを含み、前記第二インターフェースの前記マッピング構造体は、１オブジェクトデータに対し前記複数のキー値エントリの複数エントリをマップするオブジェクトデータマッピング構造体に対する多対１キー値を含み、前記マップされたオブジェクトデータに対応するオブジェクトＩＤデータは、キーの範囲に対応し、前記キーおよび前記対応する属性は、前記マップされたオブジェクトデータに対応するオブジェクトメタデータにマップされる、請求項１に記載の能動ストレージシステム。
【請求項４】
前記キー値データは、複数のキー値エントリを含み、前記複数のキー値エントリの各々は、キー、属性、および値データを含み、前記第二インターフェースの前記マッピング構造体は、前記複数のキー値エントリの各々を複数オブジェクトデータにマップするオブジェクトデータマッピング構造体に対する１対多キー値データを含み、各キーは、前記マップされた複数オブジェクトデータに対応する複数オブジェクトＩＤデータにマップされ、前記複数のキー値エントリに対応する前記属性は、前記マップされたオブジェクトデータの第一データのオブジェクトメタデータによって表される、請求項１に記載の能動ストレージシステム。
【請求項５】
前記データ管理は、キャッシング、圧縮、およびサービス品質（ＱｏＳ）のうちの少なくとも１つを含む、請求項１に記載の能動ストレージシステム。
【請求項６】
前記クラスタ管理が、クラスタを見出して結合するための、メタデータサーバおよびピアとの相互作用を含む、請求項１に記載の能動ストレージシステム。
【請求項７】
前記クラスタ管理は、クラスタを形成および維持するための、前記メタデータサーバおよびピアとの相互作用をさらに含む、請求項６に記載の能動ストレージシステム。
【請求項８】
ユーザ／クライアントが前記能動ストレージシステム内にプログラムをダウンロードおよび実行することが可能な、インストール可能プログラムをさらに含む、請求項１に記載の能動ストレージシステム。
【請求項９】
１つ以上のハイブリッドオブジェクトストレージデバイス（ＨＯＳＤ）デーモンをさらに含む、請求項１に記載の能動ストレージシステム。
【請求項１０】
前記能動ストレージシステムはプログラム可能スイッチを制御する、請求項１に記載の能動ストレージシステム。
【請求項１１】
メタデータサーバと、
１つ以上の能動ハイブリッドノードと、
を含む、能動ドライブ分散型ストレージシステムであって、
各能動ハイブリッドノードは複数の能動ドライブストレージデバイスを含み、各能動ドライブストレージデバイスは、能動ドライブコントローラを含み、各能動ドライブコントローラは、前記複数の能動ストレージデバイスのそれが対応する１つに対する少なくともキー値データおよび／またはオブジェクトデータを受信するためのデータインターフェースを含み、前記データインターフェースは、前記オブジェクトデータをインターフェース接続するためのオブジェクトインターフェースを含む第一インターフェース、および前記オブジェクトデータをインターフェース接続するためのキー値インターフェースを含む第二インターフェース、を含み、前記第二インターフェースは、オブジェクトデータマッピング構造体に対する１対１キー値データ、オブジェクトデータマッピング構造体に対する多対１キー値データ、およびオブジェクトデータマッピング構造体に対する１対多キー値データを含むグループから選択された前記オブジェクトデータに、前記キー値データをマッピングするためのマッピング構造体を含み、前記１つ以上の能動ハイブリッドノードの各々中の前記複数の能動ドライブストレージデバイスの１つの前記能動ドライブコントローラは、能動管理ノードに連結され、前記複数の能動ドライブストレージデバイスの前記１つの前記能動ドライブコントローラは、前記能動ハイブリッドノードを管理およびモニタリングするために、前記能動管理ノードを介して、前記メタデータサーバおよび前記複数の能動ドライブストレージデバイスの他のデバイスと相互作用する、能動ドライブ分散型ストレージシステム。
【請求項１２】
前記キー値データは、キー、値データ、および他のデータを含み、前記第二インターフェースの前記マッピング構造体は、前記値データを前記オブジェクトデータにマップし前記キーを前記マップされたオブジェクトデータに対応するオブジェクトＩＤにマップし前記他のデータを前記マップされたオブジェクトデータに対応するオブジェクトメタデータにマップするオブジェクトデータマッピング構造体、に対する１対１キー値データを含む、請求項１１に記載の能動ストレージシステム。
【請求項１３】
前記キー値データは、複数のキー値エントリを含み、前記複数のキー値エントリの各々は、キー、属性、および値データを含み、前記第二インターフェースの前記マッピング構造体は、前記複数のキー値エントリの複数エントリを１つのオブジェクトデータにマップするオブジェクトデータマッピング構造体に対する多対１キー値データを含み、前記マップされたオブジェクトデータに対応するオブジェクトＩＤデータは、キーの範囲に対応し、前記キーおよび前記対応する属性は、前記マップされたオブジェクトデータに対応するオブジェクトメタデータにマップされる、請求項１１に記載の能動ストレージシステム。
【請求項１４】
前記キー値データは、複数のキー値エントリを含み、前記複数のキー値エントリの各々は、キー、属性、および値データを含み、前記第二インターフェースの前記マッピング構造体は、前記複数のキー値エントリの各々を複数のオブジェクトデータにマップするオブジェクトデータマッピング構造体に対する１対多キー値データを含み、各キーは、前記マップされた複数オブジェクトデータに対応する複数オブジェクトＩＤデータにマップされ、前記複数のキー値エントリに対応する前記属性は、前記マップされたオブジェクトデータの第一データのオブジェクトメタデータによって表される、請求項１１に記載の能動ストレージシステム。
【請求項１５】
前記複数の能動ドライブストレージデバイスの各々は、ハイブリッドオブジェクトストレージデバイス（ＨＯＳＤ）デーモンを含む、請求項１１に記載の能動ストレージシステム。
【請求項１６】
各能動ドライブコントローラは、キャッシング、圧縮、およびサービス品質（ＱｏＳ）のうちの少なくとも１つを含むデータ管理をさらに実施する、請求項１１に記載の能動ストレージシステム。
【請求項１７】
前記能動管理ノードは、新規な能動ハイブリッドノードの追加、前記１つ以上の能動ハイブリッドノードの１つの不具合、およびそれが対応する能動ハイブリッドノードへのバランスを失したデータアクセス、のうちの１つ以上に応じて、前記能動ハイブリッドノード内のデータの移行を命令する、請求項１１に記載の能動ストレージシステム。
【請求項１８】
ユーザ／クライアントが前記能動ストレージシステム内にインストール可能プログラムをダウンロードおよび実行することを可能にするプログラムをさらに含む、請求項１１に記載の能動ストレージシステム。
【請求項１９】
メタデータサーバと、
１つ以上の能動ハイブリッドノードと、
を含む能動ドライブ分散型ストレージシステムであって、
各能動ハイブリッドノードは複数の能動ドライブストレージデバイスを含み、各能動ドライブストレージデバイスは、能動ドライブコントローラを含み、各能動ドライブコントローラは、前記複数の能動ストレージデバイスのそれが対応する１つに対する少なくともキー値データおよび／またはオブジェクトデータを受信するためのデータインターフェースを含み、前記１つ以上の能動ハイブリッドノードの各々中の前記複数の能動ドライブストレージデバイスの１つの能動ドライブコントローラは、能動管理ノードに連結され、前記複数の能動ドライブストレージデバイスの前記１つの前記能動ドライブコントローラは、前記能動ハイブリッドノードを管理しモニタリングするために、前記能動管理ノードを介して、前記メタデータサーバおよび前記複数の能動ドライブストレージデバイスの他のデバイスと相互作用し、能動ストレージシステムは、プログラム可能スイッチを制御し、前記能動管理ノードは、ネットワークトラフィックを低減するため、データパケットを送信元によって指定されていない宛先に転送する命令を、前記プログラム可能スイッチに送信する、能動ドライブ分散型ストレージシステム。

【国際調査報告】
2017531857.tif 000015
2017531857.tif 000016