(57)【要約】【課題】ＰＵ又は他の制御エンティティーを必要とせずに、自律的にデータ格納及びデータ保護サービスを実行することができる改善された格納システム及びそのホスト格納ドライブ並びにデータ格納方法を提供する。【解決手段】本発明による格納システムは、ドライブツードライブ格納システムであって、ホストＣＰＵと、ホスト格納ドライブと、を含むホストサーバーと、１つ以上の遠隔格納ドライブと、ホスト格納ドライブを１つ以上の遠隔格納ドライブに接続するピアツーピアリンクとを有し、ホスト格納ドライブは、プロセッサ及びメモリを含み、メモリは、プロセッサによって実行される時、書込み命令を発行するホストＣＰＵの少なくとも一部に基づいて、プロセッサがデータをホスト格納ドライブからピアツーピアリンクを通じて１つ以上の遠隔格納ドライブに伝送するようにするメモリに格納された命令を含む。【選択図】  図２
2019175445.tif 000002
【特許請求の範囲】
【請求項１】
ドライブツードライブ（ｄｒｉｖｅ−ｔｏ−ｄｒｉｖｅ）格納システムであって、
ホストＣＰＵと、ホスト格納ドライブと、を含むホストサーバーと、
１つ以上の遠隔格納ドライブと、
前記ホスト格納ドライブを前記１つ以上の遠隔格納ドライブに接続するピアツーピア（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）リンクと、を有し、
前記ホスト格納ドライブは、プロセッサ及びメモリを含み、
前記メモリは、前記プロセッサによって実行される時、書込み命令を発行する前記ホストＣＰＵの少なくとも一部に基づいて、前記プロセッサがデータを前記ホスト格納ドライブから前記ピアツーピアリンクを通じて前記１つ以上の遠隔格納ドライブに伝送するようにする前記メモリに格納された命令を含むことを特徴とする格納システム。
【請求項２】
前記メモリは、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）であることを特徴とする請求項１に記載の格納システム。
【請求項３】
前記ダイナミックランダムアクセスメモリは、制御メモリバッファを含み、前記命令は、前記制御メモリバッファに格納されることを特徴とする請求項２に記載の格納システム。
【請求項４】
前記ピアツーピアリンクは、前記ホスト格納ドライブを前記１つ以上の遠隔格納ドライブに接続する２次ポート、ＰＣＩｅスイッチファブリック、又はネットワークファブリックを含むことを特徴とする請求項１に記載の格納システム。
【請求項５】
前記ピアツーピアリンクは、前記ホスト格納ドライブを前記１つ以上の遠隔格納ドライブに接続する専用ポート又は再プログラムされたスイッチポートを含むことを特徴とする請求項１に記載の格納システム。
【請求項６】
前記ピアツーピアリンクは、１つ以上の特定の命令を通じて前記メモリに構成されることを特徴とする請求項１に記載の格納システム。
【請求項７】
ホスト格納ドライブであって、
前記ホスト格納ドライブを１つ以上の遠隔格納ドライブに接続するピアツーピアリンクと、
プロセッサ及びメモリと、を有し、
前記メモリは、前記プロセッサによって実行された時に、前記プロセッサがデータを前記ホスト格納ドライブから前記ピアツーピアリンクを通じて前記１つ以上の遠隔格納ドライブに伝送するようにする前記メモリに格納された命令を含むことを特徴とするホスト格納ドライブ。
【請求項８】
前記メモリは、ダイナミックランダムアクセスメモリである請求項７に記載のホスト格納ドライブ。
【請求項９】
前記ダイナミックランダムアクセスメモリは、制御メモリバッファを含み、前記命令は、前記制御メモリバッファに格納されることを特徴とする請求項８に記載のホスト格納ドライブ。
【請求項１０】
前記ピアツーピアリンクは、前記ホスト格納ドライブを前記１つ以上の遠隔格納ドライブに接続する２次ポート、ＰＣＩｅスイッチファブリック、又はネットワークファブリックを含むことを特徴とする請求項７に記載のホスト格納ドライブ。
【請求項１１】
前記ピアツーピアリンクは、前記ホスト格納ドライブを前記１つ以上の遠隔格納ドライブに接続する専用ポート又は再プログラムされたスイッチポートを含むことを特徴とする請求項７に記載のホスト格納ドライブ。
【請求項１２】
前記ピアツーピアリンクは、１つ以上の特定の命令を通じて前記メモリに構成されることを特徴とする請求項７に記載のホスト格納ドライブ。
【請求項１３】
ドライブツードライブ格納システムを用いてデータを格納する方法であって、
前記ドライブツードライブ格納システムは、ホストＣＰＵと、プロセッサ及びメモリを含むホスト格納ドライブと、を含むホストサーバーと、
１つ以上の遠隔格納ドライブと、
前記ホスト格納ドライブを前記１つ以上の遠隔格納ドライブに接続するピアツーピアリンクと、を有し、
前記データを格納する方法は、データを前記ホスト格納ドライブに書き込むための書込み命令を開始する段階と、
直接メモリアクセスを用いて前記データを前記ホスト格納ドライブの前記メモリに伝送する段階と、
前記データを前記ホスト格納ドライブの前記メモリから前記ピアツーピアリンクを通じて前記１つ以上の遠隔格納ドライブに伝送する段階と、を有することを特徴とするデータ格納方法。
【請求項１４】
前記ピアツーピアリンクを通じて前記ホスト格納ドライブを前記１つ以上の遠隔格納ドライブに接続する段階をさらに有することを特徴とする請求項１３に記載のデータ格納方法。
【請求項１５】
通知を前記１つ以上の遠隔格納ドライブに対するトリガーにして前記データに対する情報を提供する段階をさらに有することを特徴とする請求項１３に記載のデータ格納方法。
【請求項１６】
前記１つ以上の遠隔格納ドライブで前記情報を受信し、前記情報に応答して直接メモリアクセスを発行する段階をさらに有することを特徴とする請求項１５に記載のデータ格納方法。
【請求項１７】
前記情報に応答して前記直接メモリアクセスを完了し、前記完了を前記ホスト格納ドライブに知らせる段階をさらに有することを特徴とする請求項１６に記載のデータ格納方法。
【請求項１８】
前記ホスト格納ドライブの前記メモリは、ダイナミックランダムアクセスメモリであることを特徴とする請求項１３に記載のデータ格納方法。
【請求項１９】
前記ダイナミックランダムアクセスメモリは、制御メモリバッファを含み、前記データは、前記制御メモリバッファから伝送されることを特徴とする請求項１８に記載のデータ格納方法。
【請求項２０】
前記ピアツーピアリンクは、前記ホスト格納ドライブを前記１つ以上の遠隔格納ドライブに接続する専用ポート又は再プログラムされたスイッチポートを含み、
前記データは、前記専用ポート又は前記再プログラムされたスイッチポートを通じて前記１つ以上の遠隔格納ドライブに各々伝送されることを特徴とする請求項１３に記載のデータ格納方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アレイを形成するソリッドステートドライブに関し、特に、アレイ内でソリッドステートドライブを自律的に管理するメカニズムを有する格納システム及びそのホスト格納ドライブ並びにデータ格納方法に関する。
【背景技術】
【０００２】
近年エンタープライズ用のデータ格納システムは、相当な量の重要なデータを格納する。
このようなデータは、格納装置の故障の結果としてデータ損失することを防止する保護手段を必要とする。
通常、１つ以上の制御エンティティー（ｅｎｔｉｔｙ：実体）がこのような目標を達成する複数の保護方法を実行する。
このようなエンティティー（実体）は、通常、格納サーバーユニット中央処理部（ＣＰＵ）である。
【０００３】
格納装置の観点から、格納サーバーＣＰＵは、監督する方式によって、格納及び保護方法を遂行し、格納装置は厳格に従属された装置に参与する。
例示的に、制御エンティティーは、通常的に方策基盤基準（ｐｏｌｉｃｙ−ｂａｓｅｄ  ｃｒｉｔｅｒｉａ）を利用して、どのデータがそれらの制御の下で、どの従属された格納装置に格納されるかを判断する。
【０００４】
ＣＰＵ及び格納装置の間の伝送活動は、ネットワークリソースの使用のみならず、データ伝送経路に対応する少なくともローカルＣＰＵキャッシュ及びダイナミックランダムアクセスメモリ（ＤＲＡＭ）を伴う。
したがって、このようなＣＰＵ−制御データ保護方法を実行することは、通常的に複数の格納サーバーリソースを消費する。
データ伝送でのＣＰＵ参与は、ＣＰＵキャッシュ汚染、重大なＤＲＡＭ使用、同期化ソフトウェア業務負荷、そして追加的なプロセシングの結果としてレイテンシを誘発する可能性がある。
【０００５】
一方、格納装置は、しばしば利用可能な使用されないリソース及び能力を有する。
例えば、ソリッドステートドライブ（ＳＳＤ）、特に不揮発性メモリエクスプレス（ＮＶＭｅ）ＳＳＤは、他の機能のために使用される相対的に大量のＤＲＡＭを有する。
例えば、ＮＶＭｅＳＳＤのためのＤＲＡＭは、読出し／書込みバッファを提供するのに使用され、内部ＳＳＤメタデータ格納のために使用され、そして制御メモリバッファを提供するのに使用される。
制御メモリバッファは、入力／出力（Ｉ／Ｏ）メモリ待機列、データバッファ等のためにＳＳＤがホストに公開（ｅｘｐｏｓｕｒｅ）するＳＳＤのＤＲＡＭの部分である。
【０００６】
ＣＰＵ又は他の制御エンティティーを必要とせずに、自律的なデータ格納及びデータ保護サービスを遂行することができる改善された格納装置及びドライブツードライブ（ｄｒｉｖｅ−ｔｏ−ｄｒｉｖｅ）格納方法が要求されている。
また、格納装置の使用されないリソース及び能力を利用することができる改善された格納装置及びドライブツードライブ（ｄｒｉｖｅ−ｔｏ−ｄｒｉｖｅ）格納方法が要求されている。
このような改善された格納装置及び格納方法は、データ保護及びバックアップに必要であるホストリソースの量を減少させることができる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許第９，８１７，６０７号明細書
【特許文献２】米国特許出願公開第２０１４／０１８１４３５号明細書
【特許文献３】米国特許出願公開第２０１５／０２７８２４６号明細書
【発明の概要】
【発明が解決しようとする課題】
【０００８】
本発明は上記従来のデータ格納システムにおける課題に鑑みてなされたものであって、本発明の目的は、ＣＰＵ又は他の制御エンティティーを必要とせずに、自律的にデータ格納及びデータ保護サービスを実行することができる改善された格納システム及びそのホスト格納ドライブ並びにデータ格納方法を提供することにある。
また、本発明の他の目的は、格納装置の使用されないリソース及び能力の長所を採用することができる改善された格納システム及びそのホスト格納ドライブ並びにデータ格納方法を提供することにある。
【課題を解決するための手段】
【０００９】
上記目的を達成するためになされた本発明による格納システムは、ドライブツードライブ（ｄｒｉｖｅ−ｔｏ−ｄｒｉｖｅ）格納システムであって、ホストＣＰＵと、ホスト格納ドライブと、を含むホストサーバーと、１つ以上の遠隔格納ドライブと、前記ホスト格納ドライブを前記１つ以上の遠隔格納ドライブに接続するピアツーピア（Ｐｅｅｒ  ｔｏ  Ｐｅｅｒ）リンクと、を有し、前記ホスト格納ドライブは、プロセッサ及びメモリを含み、前記メモリは、前記プロセッサによって実行される時、書込み命令を発行する前記ホストＣＰＵの少なくとも一部に基づいて、前記プロセッサがデータを前記ホスト格納ドライブから前記ピアツーピアリンクを通じて前記１つ以上の遠隔格納ドライブに伝送するようにする前記メモリに格納された命令を含むことを特徴とする。
【００１０】
上記目的を達成するためになされた本発明によるホスト格納ドライブは、前記ホスト格納ドライブを１つ以上の遠隔格納ドライブに接続するピアツーピアリンクと、プロセッサ及びメモリと、を有し、前記メモリは、前記プロセッサによって実行された時に、前記プロセッサがデータを前記ホスト格納ドライブから前記ピアツーピアリンクを通じて前記１つ以上の遠隔格納ドライブに伝送するようにする前記メモリに格納された命令を含むことを特徴とする。
【００１１】
上記目的を達成するためになされた本発明によるデータ格納方法は、ドライブツードライブ格納システムを用いてデータを格納する方法であって、前記ドライブツードライブ格納システムは、ホストＣＰＵと、プロセッサ及びメモリを含むホスト格納ドライブと、を含むホストサーバーと、１つ以上の遠隔格納ドライブと、前記ホスト格納ドライブを前記１つ以上の遠隔格納ドライブに接続するピアツーピアリンクと、を有し、前記データを格納する方法は、データを前記ホスト格納ドライブに書き込むための書込み命令を開始する段階と、直接メモリアクセスを用いて前記データを前記ホスト格納ドライブの前記メモリに伝送する段階と、前記データを前記ホスト格納ドライブの前記メモリから前記ピアツーピアリンクを通じて前記１つ以上の遠隔格納ドライブに伝送する段階と、を有することを特徴とする。
【発明の効果】
【００１２】
本発明に係る格納システム及びそのホスト格納ドライブ並びにデータ格納方法によれば、自律的にデータ格納及びデータ保護サービスを実行することができ、また、格納装置の使用されないリソース及び能力の長所を採用することによって、データ保護及びバックアップに必要であるホストリソースの量を減らすことができるという効果がある。
【図面の簡単な説明】
【００１３】
【図１】データ保護のためのＣＰＵ制御システムを説明するための概略図である。
【図２】本発明の実施形態に係るドライブツードライブ格納システムを説明するための概略図である。
【図３】格納システム内の格納ドライブが専用ポート又は再プログラムされたスイッチポートを通じて接続された図２の他の実施形態を説明するための概略図である。
【図４】本発明の実施形態に係るホスト格納ドライブの概略構成を示す概略図である。
【図５】図２又は図３のドライブツードライブ格納システムを用いてデータを格納するための方法を説明するためのブロック図である。
【発明を実施するための形態】
【００１４】
次に、本発明に係る格納システム及びそのホスト格納ドライブ並びにデータ格納方法を実施するための形態の具体例を図面を参照しながら説明する。
【００１５】
類似の参照符号は全体的に類似は要素を示す。
しかし、本発明は多様な他の形態で具現されることができ、ここに説明された実施形態のみに限定されることと看做されてはならない。
一方、このような実施形態は、この記載がさらに徹底であり、完全になり、そして本発明の側面及び特徴をこの分野に熟練された者に完全に伝達する例として提供される。
したがって、本発明の側面及び特徴の完全な理解のためにこの分野に通常的な技術を有する者に必須的ではないプロセス、要素、そして技術は説明されないこともある。
別途、言及されなければ、添付された図面及び記載された説明全体で類似の参照符号は類似の要素を指し、したがってそれらの説明は繰り返さない。
図面で、要素、階層、及び領域の相対的なサイズは、明確性のために強調することができる。
【００１６】
１つの要素又は階層が他の１つの要素又は階層の“上にある”、“接続された”又は“結合された”ことと参照される時、１つの要素又は階層は他の要素又は階層の直接上にあるか、直接接続させるか、又は直接結合されることができ、又は１つ以上の介している要素又は階層が存在することができる。
また、１つの要素又は階層が２つの要素又は階層の間にあることと参照される時、１つの要素は２つの要素又は階層の間の唯一の要素又は階層であり、又は１つ以上の介している要素又は階層もまた存在することができる。
ここに使用される用語は、特定の実施形態のみを説明する目的のためのものであり、本発明を制限することを意図しない。
ここで使用するように、文脈が明確に相違を示さない限り、単数形は複数形をまた含むことを意図する。
【００１７】
詳細な説明で使用される時に、“含む”、“包含する”の用語は言及された特徴、整数、段階、動作、要素、及び／又は構成要素の存在を明示し、１つ以上の特徴、整数、段階、動作、要素、構成要素、及び／又はこれらのグループの存在又は追加を排除しない。
ここで使用するように、“及び／又は”の用語は１つ以上の関連して羅列された項目の任意の、そしてすべての組み合わせを含む。
要素の目録に先行する時に、“少なくとも１つの”のような表現は要素の全体目録を変更し、目録の個別要素を変更しない。
本発明の実施形態を説明する時に、“することができる”の使用は“本発明の１つ以上の実施形態”を参照する。
ここで使用するように、“使用する”、“使う”、そして“使用された”の用語は“活用する”、“活用する”、そして“活用された”の用語と類意語として看做される。また、“模範的な”の用語は例又は事例を参照することを意図する。
【００１８】
ここに記載した本発明の実施形態に係る電子又は電気装置、及び／又は任意の他の関連された装置又は構成要素は適切なハードウェア、ファームウェア（例えば、応用固有の集積回路）、ソフトウェア又はソフトウェア、ファームウェア、そしてハードウェアの組み合わせを利用して具現することができる。
例えば、このような装置の多様な構成要素は、１つの集積回路（ＩＣ）チップに又は別のＩＣチップに形成することができる。
また、このような装置の多様な構成要素は、柔軟印刷回路フィルム、テープキャリヤーパッケージ（ＴＣＰ）、印刷回路基板（ＰＣＢ）に具現されるか、又は１つの基板の上に形成することができる。
【００１９】
また、このような装置の多様な構成要素は、１つ以上のコンピューティング装置でコンピュータプログラム命令を実行し、そしてここに記述された多様な機能を遂行するために他のシステム構成要素と相互作用する１つ以上のプロセッサによって実行されるプロセス又はスレッドである。
コンピュータプログラム命令は、例えばランダムアクセスメモリ（ＲＡＭ）のような標準メモリ装置を利用してコンピューティング装置で具現することができるメモリに格納される。
コンピュータプログラム命令は、また、例えばＣＤ−ＲＯＭ、フラッシュドライブ等のような他の非一時的（ｎｏｎ−ｔｒａｎｓｉｔｏｒｙ）コンピュータ読出し可能媒体に格納することができる。
また、この分野に熟練された者は、本発明の模範的な実施形態の思想及び範囲から逸脱することなく、多様なコンピューティング装置の機能が単一コンピューティング装置に組み合わされる又は集積されることができ、又は特定なコンピューティング装置の機能が１つ以上のコンピューティング装置に亘って分散されることを理解されなければならない。
【００２０】
別途に定義されない限り、ここで使用するすべての用語（技術的及び科学的用語を含んで）は本発明が属する分野に通常的な技術を有する者によって通常的に理解されることと同一である意味を有する。
共通に使用される辞書に定義されたような用語は、関連した分野及び／又は本明細書の脈絡でそれらの意味と一致する意味を有することと解釈されなければならなく、ここにこのように明確に定義されなければ、理想化されるか、或いは過度に形式的な意味として解釈されなければならないことが理解されるべきである。
【００２１】
本発明の実施形態は、格納装置としてホストＣＰＵに対する自分の接続性を認識し、そして１つ以上の格納装置に対する自分の接続性を認識する格納装置（例えば、ホスト格納装置）を含む。
ホスト格納装置の実施形態は、１つ以上の格納装置へのデータの直接ピアツーピア伝送を開示して、方策基盤（ｐｏｌｉｃｙ−ｂａｓｅｄ）自律データ伝送サービスを提供することができる。
これはホストＣＰＵが追加的なＩ／Ｏを遂行して複製（ｒｅｐｌｉｃａｔｉｏｎ）及び他のデータ保護サービスをホスト格納装置に提供することを効果的にオフロードし（ｏｆｆｌｏａｄ）、ホストＣＰＵ演算要求を減らし、そしてデータ伝送で減少された格納サーバーＣＰＵ参与による格納システムレイテンシを低くする。
【００２２】
一部の実施形態は、特定の格納プロトコルをＣＰＵツーＳＳＤ方法から格納装置のＳＳＤツーＳＳＤ方法にオフロードする。
追加的な実施形態は、元の格納装置を格納装置販売者（又は、供給業者、製造業者）−定義（ｖｅｎｄｏｒ−ｄｅｆｉｎｅｄ）の方法、あるいは、プライベートな方法として定義する機会を提供する。
また、追加的な実施形態は、プッシュ又はプルモデルがデータ保護目的のための格納装置の間の書込みトラフィックを同期化することができるようにする格納装置を含む。
【００２３】
図１は、格納サーバーのＣＰＵがデータの格納を制御するデータ保護のためのＣＰＵ制御システムを説明するための概略図である。
図１で、ノード（１０、２０、３０）は、格納サーバーである。
各ノード（１０、２０、３０）は、ＣＰＵ（１１、２１、３１）、ＤＲＡＭ（１３、２３、３３）、そして１つ以上の格納ドライブ（１２、２２、３２）を含む。
【００２４】
１つ以上の格納ドライブ（１２、２２、３２）がデュアルポート格納装置であれば、１つ以上の格納ドライブ（１２、２２、３２）は、ＰＣＩｅスイッチファブリック、ネットワークファブリック、又は他の適切なコネクターのような２次ポートを通じてそれらの各々のＣＰＵ（１１、２１、３１）と接続される。
データを格納するために、ノード１０のＣＰＵ１１は、ノード１０のローカルドライブ１２に書込み命令を発行する。
格納されるデータは、ローカルドライブ１２に格納される前にノード１０のローカルＤＲＡＭ１３に先にキャッシュされる。
【００２５】
ローカルドライブ１２への格納と共に、ノード１０のＣＰＵ１１は、ノード２０の遠隔ドライブ２２への同一のデータの書き込みを開始して方策基盤（ｐｏｌｉｃｙ−ｂａｓｅｄ）複製要求を満足させることができる。
ノード１０のＣＰＵ１１は、ノード２０のＣＰＵ２１を初期化してデータを格納する。
ＣＰＵ１１は、ＣＰＵ２１を通じてドライブ２２に書込み命令を発行する。
データはローカルドライブ２２に格納される前にノード２０のローカルＤＲＡＭ２３に先にキャッシュされる。
【００２６】
他の実施形態で、２次書込みは、ノード２０のＣＰＵ２１が関与しないデュアルポートドライブで構成することができる。
また、ノード１０のＣＰＵ１１は、データをノード３０の追加ドライブにコミットすることができる。
ＣＰＵ１１は、ノード３０のＣＰＵ３１を開始し、ＣＰＵ１１はノード２０に対する時と同一のプロセスにしたがって、ＣＰＵ３１を通じてデータをローカルドライブ３２に書き込む。
【００２７】
図１にしたがうプロセスで、ノード（サーバー）のＣＰＵ（１１、２１、３１）は、データ伝送を調整する。
したがって、伝送活動は、データ伝送経路にしたがってローカルＣＰＵキャッシュ及びＤＲＡＭを関与させ、多様なローカルドライブに亘った格納のためのＣＰＵ能力使用を必要とする。
また、多様なノードにわたってデータの格納を同期化するために追加的なソフトウェアが必要となる可能性がある。
例えば、格納サーバーソフトウェアは、同期式及び非同期式機能を提供するために複製プロセスの両終端を調整することができる。
【００２８】
図２は、本発明の実施形態に係るドライブツードライブ格納システムを説明するための概略図である。
図２で、ノードは格納サーバー（１００、２００、３００）である。
各ノード（１００、２００、３００）は、ＣＰＵ（１１０、２１０、３１０）、ＤＲＡＭ（１３０、２３０、３３０）、そして１つ以上の格納ドライブ（１２０、２２０、３３０）を含む。
【００２９】
一部の実施形態で、１つ以上の格納ドライブ（１２０、２２０、３２０）は、ＳＳＤである。
追加的な実施形態で、１つ以上の格納ドライブ（１２０、２２０、３２０）は、ＮＶＭｅＳＳＤである。
一部の実施形態で、ＣＰＵ（２１０、３１０）及びＤＲＡＭ（２３０、３３０）は、省略することができ、ノード（２００、３００）は、格納ドライブ（２２０、３２０）のみを含むことができる。
【００３０】
１つ以上の格納ドライブ（１２０、２２０、３２０）は、例えば、格納ドライブ（１２０、２２０、３２０）がデュアルポート格納装置であれば、ＰＣＩｅスイッチファブリック、ネットワークファブリック、又は他の適切なコネクターのような２次ポートを通じてそれらの各々のＣＰＵ（１１０、２１０、３１０）と接続される。
また、格納ドライブ（１２０、２２０、３２０）は、格納ドライブ（１２０、２２０、３２０）がピアツーピアで接続されるＰＣＩｅ直接構成、スイッチファブリック構成、又は任意の他の構成で互いに接続される。
一部の実施形態で、格納ドライブ（１２０、２２０、３２０）は、専用ポート又は再プログラムされたスイッチポートを通じて互いに接続され得る。
格納ドライブ（１２０、２２０、３２０）は、現存するプロトコル又は販売者（又は、供給業者、製造業者、以下、販売者で記す）固有の具現を利用して通信することができる。
【００３１】
以下で説明するように、ピアツーピア構成の一部として、このような接続及び通信プロトコルは、直接メモリアクセス（ＤＭＡ）要請及び格納ドライブ（１２０、２２０、３２０）の間の同期化を実行できるようにする。
格納ドライブ（１２０、２２０、３２０）は、ピアツーピア接続性のために構成された追加的な構成オプションを含むことができる。
このような構成制御経路の例は、ゲット（ｇｅｔ）、又はセット（ｓｅｔ）「ログ＿ペイジ」（ｌｏｇ＿ｐａｇｅ）（ｐｅｅｒ＿ｃｏｎｆｉｇ）である。
これはピアツーピアロジックのために特別に定義された新しいログページである。
【００３２】
一部の実施形態で、現存する、広く公知され、標準化されたログページである、ＳＭＡＲＴログページが使用することができる。
ピアツーピア構成の一部として、接続及び通信プロトコルは、格納ドライブ（１２０、２２０、３２０）が互いに通信するようにし、デュアルモードに構成されるようにし、データ伝送を可能するようにするハードウェアリソースを共有するようにし、そして一部の実施形態で、販売者固有の伝送（ｔｒａｎｓｐｏｒｔ）及びシグナリング（ｓｉｇｎａｌｉｎｇ）メカニズムを提供するようにすることができる。
【００３３】
図３は、格納ドライブが専用ポート又は再プログラムされたスイッチポートを通じて接続された図２の他の実施形態を説明するための概略図である。
この構成で、遠隔格納ドライブ（２２０、３２０）は、図２では別途のＣＰＵ（例えば、２１０、３１０）に接続されるが、図３に示すように、別途のＣＰＵを有する必要はない（格納ドライブ（２２０、３２０）は、ホストＣＰＵに直接接続されなく、代わりにそれら各々のＣＰＵ（２２０、３２０）を通じて、又は格納ドライブ１２０のような他の格納ドライブを通じてホストＣＰＵ１１０と接続されるので、格納ドライブ（２２０、３２０）は、また、遠隔格納ドライブとも称される）。
【００３４】
この実施形態で、格納サーバー１００は、格納サーバー１００をホスト格納ドライブ１２０と接続されたスイッチ１５０に接続するルートコンプレックス装置１４０を含む。
スイッチ１５０は、また、格納ドライブ（２２０、３２０）に各々接続されたスイッチ２５０、３５０に接続される。
スイッチ（１５０、２５０、３５０）は、ＰＣＩｅスイッチ又は他の適切な専用の、又は再プログラムされたスイッチポートである。
【００３５】
スイッチ（１５０、２５０、３５０）は、例えば、ＰＣＩｅスイッチが使用されれば、アクセス制御サービス（ＡＣＳ）又は適切な通信プロトコルを支援して格納ドライブ（１２０、２２０、３２０）が互いに通信し、そしてデータ伝送のためのハードウェアリソースを共有するようにする。
例えば、スイッチ（１５０、２５０、３５０）がネットワークファブリック構成内のネットワークスイッチであれば、格納ドライブ（１２０、２２０、３２０）は、ＰＣＩｅの代わりにネットワークプロトコルを通じて互いに直接付着されたネットワークである。
このような実施形態で、同期化のためのメモリアクセスは、マッピングされた（ｍａｐｐｅｄ）ネットワークメモリである。
【００３６】
一旦、ピアツーピアリンクに接続されれば、図２及び図３の格納ドライブ（１２０、２２０、３２０）は、通信して方策基盤（ｐｏｌｉｃｙ−ｂａｓｅｄ）データ伝送を実行することができる。
格納ドライブ（１２０、２２０、３２０）がデータを互いに直接伝送するので、これは、本質的に、格納ドライブ（１２０、２２０、３２０）間のサービス品質（ＱｏＳ）チャンネルを生成する。
一実施形態で、ＣＰＵ（１１０、２１０、３１０）は、トップダウン構成で格納ドライブ（１２０、２２０、３２０）間のピアツーピア接続を管理する。
例えば、各々の格納ドライブ（１２０、２２０、３２０）のためのＣＰＵ（１１０、２１０、３１０）は、ペアリング（ｐａｉｒｉｎｇ）のためにドライブのピアアクセスを管理することができる。
【００３７】
ＣＰＵ（１１０、２１０、３１０）は、また、格納ドライブ（１２０、２２０、３２０）間の関連したスイッチ（１５０、２５０、３５０）をプログラムして、使用された通信プロトコル（例えば、ＰＣＩｅスイッチが使用されれば、ＡＣＳ）を通じてピアツーピア接続をするようにすることができる。
又は、格納ドライブ（１２０、２２０、３２０）がネットワーク（例えば、スイッチファブリック構成で）に存在すれば、ＣＰＵ（１１０、２１０、３１０）は、ネットワークスイッチをプログラムしてピアツーピア接続をするようにすることができる。
【００３８】
一部の実施形態で、ＣＰＵ１１０は、セット（ｓｅｔ）「ログ＿ペイジ」（ｌｏｇ＿ｐａｇｅ）（ｐｅｅｒ＿ｃｏｎｆｉｇ）命令を格納ドライブ（１２０、２２０、３２０）に使用して、格納ドライブ（１２０、２２０、３２０）のピア接続性及び保護グループを、格納ドライブ（１２０、２２０、３２０）に指示することができる。
この命令は、ホストＣＰＵ１１０によって管理され、各格納ドライブで具現され、トップダウン構成のみを必要とする。
各々の格納ドライブ（１２０、２２０、３２０）に対するＣＰＵ（１１０、２１０、３１０）は、また、エラー経路を管理することができる。
【００３９】
代案的な実施形態で、格納ドライブ（１２０、２２０、３２０）は、ボトムアップ（ｂｏｔｔｏｍ−ｕｐ）構成で格納ドライブ（１２０、２２０、３２０）間のピアツーピア接続を管理することができる。
格納ドライブ（１２０、２２０、３２０）は、従属的な遠隔格納ドライブのマスター制御器を選択するか、そうでなければ、提供して、例えばＲＡＩＤフォーメーションに自己管理（ｓｅｌｆ−ｍａｎａｇｅｄ）クラスターを形成することができる。
一部の実施形態で、格納ドライブ１２０（以下でホストドライブ１２０とも称される）は、従属した格納ドライブ（２２０、３２０）に対してマスター制御器として動作することができる。
【００４０】
ホストドライブ１２０は、１つの管理ビュー（ｖｉｅｗ）、そして必要であれば、１つのアドレス範囲を提供する格納プールリソース（ｓｔｏｒａｇｅ  ｐｏｏｌ  ｒｅｓｏｕｒｃｅｓ）を統合することができる。
ホストドライブ１２０がクラスターチェーンに位置すれば、ＣＰＵ１１０上のソフトウェアは、ホストドライブ１２０をプログラムすることができる。
一部の実施形態で、「ログ＿ペイジ」命令は、どんなドライブがホストドライブ１２０であるか、そしていずれのものが遠隔格納ドライブ（２２０、３２０）であるかを明示し、識別することができる。
【００４１】
ボトムアップ構成の一部の実施形態で、ホストドライブ１２０は、データフローを制御することができ、そして自分のローカル経路にデータを含むか、又はＣＰＵ１１０からのデータを末端格納装置である格納ドライブ（遠隔格納ドライブ）（２２０、３２０）に直接プッシュ（ｐｕｓｈ）することができる。
プッシュモデルの実施形態は、ＲＡＩＤフォーメーションを使用することができる。
このような実施形態で、ＣＰＵ１１０に接続されたホストドライブ１２０は、ＬＢＡ空間及びデータ移動を誘導するマスター制御器として機能する。
ＥＣ／ＲＡＩＤ０／５で、一部のＬＢＡ空間は、ホストドライブ１２０に対してローカルであり、他のＬＡＢ空間は、遠隔格納ドライブ（２２０、３２０）にある。
ローカルデータは、ホストドライブ１２０に書き込まれ、遠隔格納ドライブ（２２０、３２０）にあるＬＢＡ範囲のデータは、これらにプッシュされる。
ここで、ホストドライブ１２０は、データ移動を調整する。
【００４２】
他の実施形態で、遠隔格納ドライブ（２２０、３２０）は、データを自分の方にプル（ｐｕｌｌ）する。
このプルモデルの実施形態は、制御メッセージが、格納ドライブ（１２０、２２０、３２０）にプッシュされ、そしてデータが遠隔格納ドライブ（２２０、３２０）によってプルされるＲＡＩＤ１（複製）フォーメーションを利用することができる。
プッシュ及びプルモデルの全ては、書込みトラフィックをホストＣＰＵ１１０からのデータフローに応じて同期化する。
【００４３】
ボトムアップ構成の一部の実施形態で、ホストドライブ１２０は、論理ブロックアドレス（ＬＢＡ）情報を制御し、そしてホストドライブのＤＲＡＭ１２１（図４参照）の制御メモリバッファ１２２を制御することができる。
追加的な実施形態で、ホストドライブ１２０は、エラー及び代替（ａｌｔｅｒｎａｔｅ）経路を管理することができ、そしてＣＰＵ１１０は、ホストドライブ１２０によって管理されるエラーフロー通知に加入することができる。
一部の実施形態で、ホストドライブ１２０は、可視的な（ｖｉｓｉｂｌｅ）ドライブのみのエラーを正常エラーフローとしてホストＣＰＵ１１０に公開（ｅｘｐｏｓｕｒｅ）することができる。
他の実施形態で、ホストドライブ１２０は、このようなドライブのエラーを非可視的にし、そして追加的なソフトウェアを必要とする特別な通知を通じてホストＣＰＵ１１０のみに通知することができる。
【００４４】
ボトムアップ構成で、格納ドライブ（１２０、２２０、３２０）が、方策基盤（ｐｏｌｉｃｙ−ｂａｓｅｄ）データ保護スキームのためのピアツーピア構成に置かれれば、これらはホストＣＰＵ１１０に対し独立的に（そして、一部のケースで透明に）、自律的に動作する。
格納ドライブ（１２０、２２０、３２０）がホストＣＰＵ１１０に透明な後者の場合に、保護スキームを発見し、構成し、そして修正するための外部メカニズムが必要である。
これは、幾つかの例として、別の制御プレーン、ＢＭＣ、又はスイッチ管理ポートを通じて達成することができる。
トップダウン又はボトムアップ構成によってピアツーピア接続が確立されるような場合、ホストドライブ１２０は、ホストドライブ１２０を認識している他の格納サーバー（２００、３００）の１つ以上の遠隔格納ドライブ（２２０、３２０）に命令することができるソフトウェアを含む。
【００４５】
図４は、本発明の実施形態に係るホスト格納ドライブの概略構成を示す概略図である。
ソフトウェアは、図４に示すようにホスト格納ドライブ１２０のＤＲＡＭ１２１の制御メモリバッファ１２２に格納され得る。
制御メモリバッファ１２２は、本発明の実施形態のデータ伝送メカニズムのためにホストＣＰＵ１１０に公開（ｅｘｐｏｓｕｒｅ）され得るホスト格納ドライブ１２０のＤＲＡＭ１２１のメモリの部分であるＮＶＭｅドライブ定義（ｄｅｆｉｎｉｔｉｏｎ）である。
【００４６】
制御メモリバッファ（ＣＭＢ）１２２は、制御及びデータペイロードパケットを共有するのに使用することができる。
通知自体は、伝送の固有のもの、例えばＰＣＩｅのためのＴＬＰである。
この構造は、ホストドライブ１２０の制御メモリバッファ１２２の部分が複製及びデータ伝送ステージング領域（ｓｔａｇｉｎｇ  ａｒｅａ）として実行するようにする。
制御メモリバッファ１２２は、ホストドライブ１２０によってデータペイロード及び同期化メモリポインターを公開（ｅｘｐｏｓｕｒｅ）するのに使用することができる。
【００４７】
ホストドライブ１２０は、それらのバッファ管理オプション及び制御と共に１つ以上の遠隔格納ドライブ（２２０、３２０）を調整し、１つ以上の遠隔格納ドライブ（２２０、３２０）は同様に応答する。
ホストドライブ１２０は、自分のバッファ管理スキーム及び同期化方法をこの方式に公開（ｅｘｐｏｓｕｒｅ）して、効果的なバッファ管理を具現する。
しかし、このようなメカニズムは、ＮＶＭｅのような現存するプロトコルのスペックを厳格に従わない可能性があり、したがってプライベート又は販売者固有のプロトコルとして具現される可能性がある。
このピアツーピア接続は、ＣＰＵ（１１０、２１０、３１０）の作業負荷を効果的にオフロードすることによって、ホストＣＰＵの演算要求を減らし、そしてデータ伝送において格納サーバーのＣＰＵ関与を減らす結果、格納システムのレイテンシを低減するのに役立つ。
【００４８】
図５は、図２又は図３のドライブツードライブ格納システムを用いてデータを格納するための方法を説明するためのブロック図である。
データをローカルにバックアップするために、ノード１００のＣＰＵ１１０は、前述で、図１に対して説明したものと同様の方法で、データをホストドライブ１２０に格納する。
ＣＰＵ１１０は、ホストドライブ１２０に書込み命令を発行する（ステップＳ１）。
格納されるデータは、ホストドライブ１２０に格納される前に、先にノード１００のローカルＤＲＡＭ１３０（図２参照）にキャッシュされる。
【００４９】
データを遠隔に格納するために（即ち、データを格納ドライブ（２２０、３２０）に格納するために）、ＣＰＵ１１０がホストドライブ１２０に書込み命令を発行する（ステップＳ１）時、ホストドライブ１２０は、ホストＣＰＵ１１０に直接メモリアクセス（ＤＭＡ）要請を利用して書き込まれるデータをＤＲＡＭ１２１に伝送する（ステップＳ２）ようにし、したがって現在ホストサーバーのＤＲＡＭ１３０のデータがホストドライブのＤＲＡＭ１２１の制御メモリバッファ１２２に書き込まれるようにする。
【００５０】
ホストドライブ１２０は、また、書き込まれるデータ、それの制御メモリバッファ１１２内での位置及びオフセット、そして名称空間／ＬＵＮ、ＬＢＡオフセット、バイトの数、及び／又は格納を開始するために必要とするデータに対する任意の他の情報のような追加的な詳細に関する情報を、１つ以上の遠隔格納ドライブ（２２０、２３０）に通知する（ステップＳ３、ステップＳ４）。
通知自体は、ホストドライブ１２０と遠隔格納ドライブ（２２０、３２０）との間の有線メッセージである。
【００５１】
ホストドライブ１２０は、また、関連したメモリブロックが参照され、そして自分の追跡のためにつながる参照が解除されないことを示すフラッグを設定（例えば、ホストドライブ１２０は、各遠隔格納ドライブ（２２０、３２０）に対する参照カウントを増加させることができ、方策基盤（ｐｏｌｉｃｙ−ｂａｓｅｄ）データ保護スキームにしたがってデータを書き込む）することができる。
【００５２】
１つ以上の遠隔格納ドライブ（２２０、３２０）は、受信した情報を利用して、ホストドライブの制御メモリバッファ１２１から、それら各々のメモリ（ＤＲＡＭ）（２２１、３３１）へのＤＭＡ要請を与えられた情報を用いて構成し、発行する。
提供された情報（例えば、名称空間／ＬＵＮ、ＬＢＡ、バイトの数等）は、また、データバッファ以前のヘッダーとしてＤＭＡ要請に提供することができる。
【００５３】
個別ＤＭＡが完了し、したがって遠隔格納が完了すれば、関連した１つ以上の遠隔格納ドライブ（２２０、３２０）は、ホストドライブ１２０に完了の信号を送り（ステップＳ７、ステップＳ８）、ホストドライブ１２０が制御メモリバッファ１２２の参照カウントを減少するようにする。
これは別途の呼出（ｃａｌｌ）を利用して、又はホストドライブメモリポインターを原子性（不可分性）（ａｔｏｍｉｃａｌｌｙ）に直接操作するＤＭＡ動作によって発生させることができる。
図５に対して、上述したように、全体プロセスは格納サーバーのノード（１００、２００、３００）に同様に進行させることができる。
【００５４】
上の実施形態で、遠隔格納ドライブ（２２０、３２０）は、活性化されたＣＭＢ（制御メモリバッファ）を有する必要がない。
しかし、遠隔格納ドライブ（２２０、３０２）がＣＭＢを有し、そして、これらが活性化されれば、このような各々のＣＭＢは、上述したプッシュモデルで使用されて、ホストドライブ１２０によってペイロードを複製することができる。
【００５５】
他の実施形態で、データ分散は、「ホストドライブ」ツー（ｔｏ）「１つ以上の遠隔格納ドライブ」の代わりにデイジーチェーン（ｄａｉｓｙ−ｃｈａｉｎ）又はトーラス（ｔｏｒｕｓ）方式のような他の方法でも達成することができる。
デイジーチェーン及びトーラストポロジーの全ては、スイッチが無い相互接続である。
【００５６】
デイジーチェーンモデルで、システムに含まれた任意の数の格納ドライブに対してドライブは直列に接続され、ホストドライブ１２０は第１遠隔格納ドライブ（例えば、遠隔格納ドライブ２２０）に接続され、第１遠隔格納ドライブは次の遠隔格納ドライブ（例えば、遠隔格納ドライブ３２０）に接続される。
ドライブツードライブ通信は、直接的であり、標準基盤プロトコルに従う必要はない。
ＵＳＢ、ＦｉｒｅＷｉｒｅ（登録商標）、Ｔｈｕｎｄｅｒｂｏｌｔ（登録商標）、イーサーネット（登録商標）のような接続は、デイジーチェーンで使用される他の例である。
【００５７】
トーラストポロジーで、各格納ドライブは、ドライブの間（１Ｄ、２Ｄ、３Ｄ〜ＮＤ）のスイッチ無しで、並列システム構成で１つより多い他の格納ドライブと直接接続される。
例えば、この構成の実施形態で、ホストドライブ１２０は、遠隔格納ドライブ（２２０、３２０）の両方と接続され、遠隔格納ドライブ２２０は、ホストドライブ１２０及び遠隔格納ドライブ３２０と接続され、遠隔格納ドライブ３２０は、ホストドライブ１２０及び遠隔格納ドライブ２２０の全てに接続される。
【００５８】
各ドライブで、可用であるデータ保護クラスターの充分な構成及び末端（ｅｎｄ−ｐｏｉｎｔ）情報を有し、データはさらに効果的な方式にこれらの間に分散させることができる。
費用もまた減少したハードウェア要求によって、このようなトポロジーで減少させることができる。
また、この構成でドライブの近い近接性は、減少されたレイテンシ及びスケーリング（ｓｃａｌｉｎｇ）長所を誘導することができる。
【００５９】
追加的な実施形態で、格納ドライブ（１２０、２２０、３２０）は、制御の外に、甚だしく格納サーバーのＣＰＵ（１１０、２１０、３１０）のビューの外にプライベートネットワークを追加的に構成することができる。
現存する通信プロトコルを選択することは、ホストドライブに追加的なハードウェア／ファームウェアリソースを必要とするコナーケース及びエラー条件を含む現存するプロトコルのすべての要求を遵守することを必要とする。
【００６０】
しかし、ホストドライブ及び１つ以上の遠隔格納ドライブが１つの販売者からのものであれば、現存するプロトコル制限の一部は、強要されない販売者固有の方法を利用して緩和させることができる。
このようなプライベート定義の例は、イーサーネット（登録商標）上のＮＶＭｅ及びネットワーク上のＮＶＭｅ販売者固有の具現のようなファブリック上の共用ＮＶＭｅ（ＮＶＭｅ−ｏＦ）定義及びＮＶＭｅの販売者固有の具現である。
【００６１】
ＰＣＩｅに対して、ＤＭＦＴ固有の定義及びそれの必要である互換性及び時間仕様を除去することによって、ＰＣＩエクスプレス上のＭＣＴＰが販売者固有の具現で再定義することができる。
これは本発明の実施形態で使用されるために調整された元の定義の骨子のみを残したバーションが作成される。
他の実施形態で、ホストドライブがピアリングされた遠隔格納ドライブと直接対話することを可能にするするためにネットワークインターコネクトを使用することができる。
このプライベートネットワークは、同様に販売者固有の定義で簡潔にすることができる。
したがって、上の例に示したプライベート装置接続性は、現在使用されるプロトコル伝送と比較して格納装置間で情報をさらに効率的に伝達する販売者固有の駆動方法を許容する公共仕様（ｐｕｂｌｉｃ  ｓｐｅｃｉｆｉｃａｔｉｏｎｓ）によって販売者固有で、制限されないように作成することができるので、一貫された性能を提供する。
【００６２】
また、ピア格納ドライブの間の販売者固有の伝送定義として、ドライブは、自己の原子性（不可分性）をＳＳＤのＦＴＬ階層及び論理ツー物理マッピング（Ｌｏｇｉｃａｌ−ｔｏ−Ｐｈｙｓｉｃａｌ  ｍａｐｐｉｎｇ：Ｌ２Ｐ）にコミット（ｃｏｍｍｉｔ）して公開（ｅｘｐｏｓｕｒｅ）することができる。
複製のために、サンプルペイロードがホストドライブに到達した時に、これはすべてのピアリングされた（ｐｅｅｒｅｄ）遠隔格納ドライブが該当書き込み要請に同期化される時までマッピングの更新を遅延することができる。
【００６３】
ピアの全てが成功裏に書き込みをコミットすれば、ピアに戻るフラッシュＬ２Ｐマッピングを更新する追加的な同期化関連メッセージがある。
ドライブが内部的構成定義を外部ソフトウェアに公開しておらず、ピア及び販売者ピアの間でドライブレイアウトを完全に隠されているので、これが可能である。
これは原子性（不可分性）が達成されることができる１つの方法である。
また、上の実施形態は、複製サンプルセットのようなデータ保護サンプルセットの間で原子性（不可分性）を提供する。
【００６４】
上述の実施形態は、格納装置がＣＰＵの介入無しで互いに直接通信するようにするホスト格納装置及び方法を提供し、したがって通常的にサーバーＣＰＵが関与するデータ移動活動をオフロードする。
格納サーバーＣＰＵを無くすことによって、格納サーバーは潜在的にさらに大きい数の格納装置を支援することができ、又は、相変わらず同一の数の格納装置を支援しながら、ＣＰＵの電力消費が減少させることができる。
上述の実施形態は、また複数のドライブの間を調整するホストソフトウェアを単純化し、格納ドライブがホストシステムをそれ以上使用しなくとも、データ伝送を遂行することができるので、格納装置同期化が一端セットアップされれば、ホストソフトウェアは、Ｉ／Ｏ性能及びレイテンシメトリックに影響を及ぼさない。
本発明の実施形態の可能な使用は、これに限定されないが、データ複製、直接データ（ｄｉｒｅｃｔ  ｄａｔａ）のためのスナップショット、そして間接データ（ｉｎｄｉｒｅｃｔ  ｄａｔａ）のためのキー値タイプ使用を含む。
【００６５】
尚、本発明は、上述の実施形態に限られるものではない。本発明の技術的範囲から逸脱しない範囲内で多様に変更実施することが可能である。
【符号の説明】
【００６６】
１００、２００、３００    格納サーバー（ノード）
１１０、２１０、３１０    ＣＰＵ（ホストＣＰＵ）
１２０    格納ドライブ（ホストドライブ）
１２１、１３０、２２１、２３０、３２１、３３０    ＤＲＡＭ
１２２    制御メモリバッファ（ＣＭＢ）
１４０    ルートコンプレックス
１５０、２５０、３５０    スイッチ
２１０    ＣＰＵ
３１０    ＣＰＵ
２２０    格納ドライブ（遠隔格納ドライブ）
３２０    格納ドライブ（遠隔格納ドライブ）
【図１】
2019175445.tif 000003
【図２】
2019175445.tif 000004
【図３】
2019175445.tif 000005
【図４】
2019175445.tif 000006
【図５】
2019175445.tif 000007