(57)【要約】データストレージシステムのハイブリッドストレージノードにおけるデータ記憶のための方法を提供する。ハイブリッドストレージノードは、異なる性能特性を有する第1のストレージデバイスと第2のストレージデバイスとを含み、第1のデバイスは、キャッシュ記憶用の少なくとも1つの高性能不揮発性メモリを含む。ハイブリッドストレージノードは、ハイブリッドストレージノードにおけるデータ記憶を管理するための処理リソースをさらに含む。本方法は、記憶された情報をハイブリッドストレージノードから読み出すよう求める読出し要求を受け取る段階、および読出し要求に応答して、記憶された情報を発見するためにキャッシュ記憶の第1のストレージデバイスと第2のストレージデバイス内の記憶との両方にアクセスする段階を含む。2018520420.tif 000003
2018520420.tif 000002
【特許請求の範囲】
【請求項１】
データストレージシステムのハイブリッドストレージノードにおけるデータ記憶のための方法であって、前記ハイブリッドストレージノードは、異なる性能特性を有する第1のストレージデバイスと第2のストレージデバイスとを含み、前記第1のデバイスは、キャッシュ記憶用の少なくとも1つの高性能不揮発性メモリを含み、前記ハイブリッドストレージノードは、前記ハイブリッドストレージノードにおけるデータ記憶を管理するための処理リソースをさらに含み、前記方法は、
記憶された情報を前記ハイブリッドストレージノードから読み出すよう求める読出し要求を受け取る段階;および
前記読出し要求に応答して、前記記憶された情報を発見するために前記キャッシュ記憶の第1のストレージデバイスと前記第2のストレージデバイス内の記憶との両方にアクセスする段階
を含む、前記方法。
【請求項２】
前記ハイブリッドストレージノードへの情報の書込み要求を受け取る段階;
前記書込み要求に応答して、前記情報を前記第2のストレージデバイスに書き込む段階;および
前記書込み要求に応答して、前記情報が所定の基準を満たす場合に限り前記情報を前記キャッシュ記憶に書き込む段階
をさらに含む、請求項1記載の方法。
【請求項３】
前記所定の基準は、前記情報のサイズが所定のサイズ閾値を下回ること、および前記情報がホットデータを含むこと、のうちの1つまたは複数を含む、請求項2記載の方法。
【請求項４】
前記キャッシュ記憶は、データと関連付けられた識別情報を該データへのアクセスがある度にID待ち行列記憶に記憶するID待ち行列記憶を含み、かつここで、関連付けられた識別情報がID待ち行列記憶にすでに記憶されている場合に前記ID待ち行列記憶に記憶された前記関連付けられた識別情報を有するデータを情報が含む場合、該情報はホットデータを含む、請求項3記載の方法。
【請求項５】
前記記憶された情報が前記キャッシュ記憶にまだ記憶されておらず、かつ前記記憶された情報がホットデータを含む場合、前記第2のストレージデバイス内の記憶において前記記憶された情報を発見したことに応答して、前記記憶された情報を前記キャッシュ記憶に書き込む段階をさらに含む、請求項3記載の方法。
【請求項５】
所定の基準が満たされた場合に限り、前記キャッシュからホットデータではないデータを削除することを含むキャッシュフラッシュを実行する段階をさらに含む、請求項1記載の方法。
【請求項６】
前記所定の基準は、（a）キャッシュ空間利用度が第1の閾値より大きいこと、および（b）キャッシュ空間利用度が前記第1の閾値を下回るが、第2の閾値を上回り、かつハイブリッドストレージノードがアイドル状態であること、の中から選択される基準を含む、請求項5記載の方法。
【請求項７】
1つまたは複数のハイブリッドストレージノードを含むデータストレージシステムであって、各ハイブリッドストレージノードが、
第1の性能特性を有する第1のストレージデバイスと、
前記第1の性能特性とは異なる第2の性能特性を有する第2のストレージデバイスと、
前記ハイブリッドストレージノードにおけるデータ記憶を管理するための処理リソースと
を含み、
前記第1の性能特性が、前記第2の性能特性よりも高性能であり、かつ前記第1のストレージデバイスが、キャッシュ記憶用の少なくとも1つの高性能不揮発性メモリを含み、かつ前記キャッシュ記憶が、前記第2のストレージデバイスのためのキャッシュの働きをする、
データストレージシステム。
【請求項８】
前記第2のストレージデバイスが2つ以上のストレージデバイスを含み、かつ前記処理リソースおよび前記キャッシュ記憶が前記2つ以上のストレージデバイスの間で共用される、請求項7記載のデータストレージシステム。
【請求項９】
前記第1の性能特性および前記第2の性能特性がデータアクセス速度を含み、かつ前記第1の性能特性が、前記第2の性能特性より高速なアクセス速度を含む、請求項7記載のデータストレージシステム。
【請求項１０】
前記処理リソースが、読出し動作と書込み動作の両方のために前記キャッシュ記憶にアクセスする、請求項7記載のデータストレージシステム。
【請求項１１】
前記処理リソースがID待ち行列記憶およびIDリスト記憶を含み、かつ前記ID待ち行列記憶が、所定の最近の期間中に前記第2のストレージデバイスからのアクセスがあったデータ識別情報を記憶する短期履歴バッファを含み、かつ前記IDリスト記憶が、前記ID待ち行列記憶より大きい記憶を含み、かつ前記処理リソースが、前記IDリスト記憶に応答してキャッシュロードポリシーおよびキャッシュデステージポリシーを実行する、請求項7記載のデータストレージシステム。
【請求項１２】
前記IDリスト記憶が、前記第1のストレージデバイスにおいて実装され得、かつ前記キャッシュ記憶の働きをすることができる、請求項11記載のデータストレージシステム。
【請求項１３】
前記ID待ち行列記憶内のデータと関連付けられた情報が、前記ID待ち行列記憶内の関連付けられた前記データが複数回アクセスされたことに応答して、前記第2のストレージデバイスから読み出され、かつ前記キャッシュ記憶に記憶される（キャッシュロード）、請求項11記載のデータストレージシステム。
【請求項１４】
前記IDリスト記憶内のデータと関連付けられた情報が、前記IDリスト記憶内の関連付けられた前記データがアクセスされずかつ前記IDリスト記憶の末尾に移動したことに応答して、前記キャッシュ記憶から追い出される（キャッシュデステージ）、請求項11記載のデータストレージシステム。
【請求項１５】
キャッシュアーキテクチャが、前記第2のストレージデバイスの各々の索引構造を再利用する、請求項7記載のデータストレージシステム。
【請求項１６】
前記第1のストレージデバイスが不揮発性メモリデバイスを含む、請求項7記載のデータストレージシステム。
【請求項１７】
前記第2のストレージデバイスが単一のストレージデバイスを含む、請求項7記載のデータストレージシステム。
【請求項１８】
前記第2のストレージデバイスが各々、ハードディスクドライブ記憶媒体または固体ストレージデバイスのいずれかを含む、請求項7記載のデータストレージシステム。
【請求項１９】
前記処理リソースが、プロセッサと少なくともメタデータ記憶用のメモリリソースとを含むシステムオンチップを含む、請求項7記載のデータストレージシステム。
【請求項２０】
前記処理リソースが、ネットワーク上でアプリケーションと連携するためのネットワークインターフェースを含む、請求項7記載のデータストレージシステム。
【請求項２１】
連携する前記ネットワークインターフェースが、ブロックインターフェース、ファイルインターフェース、オブジェクトインターフェース、またはキー値インターフェースのうちの1つまたは複数と結合する、請求項20記載のデータストレージシステム。
【請求項２２】
前記データストレージシステムがファイルベースであり、かつ各データアクセス単位がファイルであり、かつ前記キャッシュ記憶のキャッシュアーキテクチャが、前記第1のストレージデバイスと前記第2のストレージデバイスとによって共用されるファイル層の上に構築される、請求項7記載のデータストレージシステム。
【請求項２３】
前記データストレージシステムがオブジェクトベースであり、かつ各データアクセス単位がオブジェクトであり、かつ前記キャッシュ記憶のキャッシュアーキテクチャが、前記第1のストレージデバイスと前記第2のストレージデバイスとによって共用されるオブジェクト層の上に構築される、請求項7記載のデータストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、データ記憶のための方法およびシステムに関し、より詳細には、データシステム管理のための方法およびシステムに関する。
【背景技術】
【０００２】
開示の背景
中央処理装置および不揮発性メモリの技術の進歩と共に、ストレージシステム性能を最適化し、総所有コスト（TOC）を削減するために、オペレーティングシステムソフトウェアおよびストレージシステムソフトウェアの機能を小型のストレージコントローラボードに組み込むことの実現可能性がますます高まっている。
【０００３】
次世代ストレージシステムでは、ストレージデバイスの管理に使用されるストレージサーバと独立ディスク冗長アレイ（redundant array of independent disk：RAID）コントローラが除かれている。代わりに、単一システムオンシップ（SOC）アクティブドライブコントローラがストレージノードの管理に使用され、ストレージサーバの機能はストレージデバイスに移される。アプリケーションをストレージデバイスに直接接続することができ、そのため、ハードウェアコストおよび保守コストを含むシステム全体のコストが大幅に削減される。
【０００４】
そうしたハイブリッド技術の解決策では、単一のストレージデバイスにおいて異なる記憶媒体を組み合わせることにより、記憶性能（1ドル当たりの毎秒入出力動作数（IOPS）（IOPS/ドル）として測定される）を向上させると同時に、記憶コスト（1ギガバイト当たりのドル金額として測定される（ドル/GB））を削減する。異なる記憶媒体は異なる性能特性および異なるコストを有するので、ハイブリッドストレージデバイスは、通常、少量の高性能かつ高コスト記憶媒体と、多量の低性能かつ低コスト記憶媒体とで構成される。例えば、ハイブリッドストレージデバイスは、単一のディスクエンクロージャ内に不揮発性ランダムアクセスメモリ（NVRAM）半導体チップと磁気ディスクプラッタとを含むハイブリッドドライブとすることもできる。またハイブリッドストレージデバイスは、単一/複数の固体デバイス（SSD）と単一/複数のハードディスクドライブ（HDD）とで構成されたストレージノードとすることもできる。そうしたノードで使用されるSSDおよびHDDの数は、所望の性能またはコストに基づいて決定することができる。
【０００５】
そうしたハイブリッドストレージデバイス内の異なる記憶媒体を十分に活用するためには、効率的なデータ管理およびキャッシュアルゴリズムが必要であり、特別な要件を考慮する必要がある。第1に、そうしたシステム内のハイブリッドストレージデバイスはネットワークに直接接続され、分散型のファイルストレージシステムまたはオブジェクトストレージシステムによって管理されることが多いため、ハイブリッドデータ管理およびキャッシュアルゴリズムをファイルレベルまたはオブジェクトレベルで設計し、実装した方がより効率的である。第2に、ハイブリッドストレージデバイスは、通常、ハードウェアリソースが限られているため、そうしたシステム向けに設計されるキャッシュアーキテクチャおよびアルゴリズムは、高効率で、リソース要求が少ないことが重要である。
【０００６】
よって、必要とされているのは、現在の手法の欠点を少なくとも部分的に克服し、将来のストレージシステムで有効に使用するための最小限のリソース使用解決策を提供する、効率的なハイブリッドデータ管理およびキャッシュアルゴリズムのための方法およびシステムである。さらに、以下の詳細な説明および添付の特許請求の範囲を、添付の図面およびこの開示の背景と共に読めば、他の望ましい特徴および特性が明らかになるであろう。
【発明の概要】
【０００７】
概要
本発明の少なくとも1つの態様によれば、データストレージシステムのハイブリッドストレージノードにおけるデータ記憶のための方法が提供される。ハイブリッドストレージノードは、異なる性能特性を有する第1のストレージデバイスと第2のストレージデバイスとを含み、第1のデバイスは、キャッシュ記憶用の少なくとも1つの高性能不揮発性メモリを含む。ハイブリッドストレージノードは、ハイブリッドストレージノードにおけるデータ記憶を管理するための処理リソースをさらに含む。本方法は、記憶された情報をハイブリッドストレージノードから読み出すよう求める読出し要求を受け取る段階、および読出し要求に応答して、記憶された情報を発見するためにキャッシュ記憶の第1のストレージデバイスと第2のストレージデバイス内の記憶との両方にアクセスする段階を含む。
【０００８】
本発明の別の態様によれば、1つまたは複数のハイブリッドストレージノードを含むデータストレージシステムが提供される。各ハイブリッドストレージノードは、第1のストレージデバイスと第2のストレージデバイスと処理リソースとを含む。第1のストレージデバイスは第1の性能特性を有し、第2のストレージデバイスは、第1の性能特性とは異なる第2の性能特性を有する。処理リソースは、ハイブリッドストレージノードにおけるデータ記憶を管理する。第1の性能特性は第2の性能特性よりも高性能であり、第1のストレージデバイスはキャッシュ記憶用の少なくとも1つの高性能不揮発性メモリを含む。キャッシュ記憶は、第2のストレージデバイスのためのキャッシュの働きをする。
【図面の簡単な説明】
【０００９】
添付の各図において、類似した符番は別個の各図を通して同一の要素または機能的に類似した要素を指し、各図は以下の詳細な説明と共に本明細書に組み入れられ、本明細書の一部を形成しており、様々な態様を例示し、本発明の態様による様々な原理および利点の説明に使用される。
【００１０】
【図１】従来のストレージシステムと典型な次世代ストレージシステム案とを並べて示したブロック図である。
【図２】本発明の態様による分散型ファイル/オブジェクトベースハイブリッドストレージシステムを示すブロック図である。
【図３】本発明の態様による図2のハイブリッドストレージシステム内の単一のストレージデバイスのオブジェクトストアアーキテクチャを示す階層化ブロック図である。
【図４】本発明の態様による図2のハイブリッドストレージシステム内の単一のアクティブハイブリッドストレージノードのキャッシュアーキテクチャを示す階層化ブロック図である。
【図５】本発明の態様による図2のハイブリッドストレージシステム内の複数のストレージデバイス間の共用キャッシュアーキテクチャを示す階層化ブロック図である。
【図６】本発明の態様による図2のハイブリッドストレージシステム内のキャッシュを有するオブジェクトストアにオブジェクトを書き込むためのプロセスフローを示す流れ図である。
【図７】本発明の態様による図2のハイブリッドストレージシステム内のキャッシュを有するオブジェクトストアからオブジェクトを読み出すためのプロセスフローを示す流れ図である。
【図８】本発明の態様による図2のハイブリッドストレージシステム内のハードディスクドライブ（HDD）とキャッシュとの間のオブジェクトのロードおよびデステージのアルゴリズムを示す図である。
【００１１】
当業者は、各図の要素が簡潔かつ明瞭であるように図示されており、必ずしも縮尺通りには描かれていないことを理解するであろう。
【発明を実施するための形態】
【００１２】
詳細な説明
以下の詳細な説明は単に例示的な性格のものにすぎず、本発明または本発明の適用および用途を限定するためのものではない。さらに、前述の本発明の背景または以下の詳細な説明で提示されるいかなる理論による拘束も意図されていない。本発明の態様の目的は、スケールアウトストレージクラスタ内のハイブリッドストレージデバイスのためのキャッシュアーキテクチャおよびアルゴリズムを提示することである。本発明の態様によるハイブリッドストレージデバイスは、不揮発性メモリ（NVM）チップと磁気ディスクとを有する単一のハイブリッドドライブとするか、または1台の固体デバイス（SSD）と1台もしくは複数台のハードディスクドライブ（HDD）とを有するドライブのグループとすることができる。
【００１３】
どちらの形態においても、本発明の態様によるハイブリッドストレージデバイスは、ハイブリッド記憶媒体を管理するための単一システムオンチップ（SOC）ボードを含むことになる。本発明の態様によるSOCボードは、通常、低消費電力プロセッサと、ある一定量のダイナミックランダムアクセスメモリ（DRAM）とを備えている。またSOCボードは、本発明の態様によれば、ハイブリッドストレージデバイスがイーサネットに直接接続することを可能にするイーサネットインターフェースを提供することもできる。ストレージシステムクラスタは、ファイルベースまたはオブジェクトベースのストレージシステムとすることができ、その場合のデータアクセス単位はファイルまたはオブジェクトになる。
【００１４】
本発明の態様によるハイブリッドストレージデバイスの内部では、より高速な媒体（例えばNVMまたはSSD）は、より低速な媒体（磁気ディスク）のキャッシュの働きをする。データをディスクブロックとして管理する従来のキャッシュとは異なり、本発明の態様によるキャッシュアーキテクチャは、ファイル層またはオブジェクト層の上に構築され、キャッシュを上位の分散型のファイルストレージシステムまたはオブジェクトストレージシステムとよりよく統合することが可能になる。また、本発明の態様によるキャッシュアーキテクチャおよびアルゴリズムは、基礎となるファイルストアまたはオブジェクトストアの索引構造およびアクセスアプリケーションプログラミングインターフェース（API）を再利用することによって設計され、実装される。このように、本発明の態様によるキャッシュアーキテクチャは、限られたリソースを有するハイブリッドストレージデバイスのクリティカルな制約条件に対応するために、追加のリソース使用をほとんど必要としない（例えば、メタデータ用のDRAMのみ）。
【００１５】
本発明の態様によるキャッシュは、読出し動作と書込み動作の両方のための汎用キャッシュであるように設計されており、SOCプロセッサは、読出し動作および書込み動作のプロセスフローと、キャッシュロードおよびキャッシュデステージのポリシーおよびアルゴリズムを提供する。従来、ハイブリッドストレージデバイス内部のより高速な媒体は、ファイルストア/オブジェクトストアのジャーナルを記憶するのに使用される。本発明の態様によれば、キャッシュアーキテクチャおよびアルゴリズムは、従来のアーキテクチャおよびアルゴリズムとのいくつかの相違点を有する。第1に、ジャーナルは主にトランザクションをサポートするように設計されているが、ローカルファイルシステム（例えば、Oracle Corporation、米国カリフォルニア州が最初に設計したBツリーファイルシステムbtrfs）がすでに同様の機能を有しているため、これを不要とすることができる。本発明の態様に従ってジャーナルを使用すれば、キャッシュは、すべてのファイルシステムで性能を向上させることができる。
【００１６】
第2に、従来のジャーナル設計では、すべてのオブジェクト書込みが2回実行される。すなわち、オブジェクトデータはまずジャーナルに書き込まれ、次いでオブジェクトデータはディスクに書き込まれる。本発明の態様によるキャッシュアーキテクチャおよび動作では、選択されたオブジェクト（スモールオブジェクトおよび/またはホットオブジェクト）だけがキャッシュに書き込まれ、他のすべてのオブジェクトはジャーナルに書き込まれずにディスクに書き込まれる。これにより、有利には、処理時間およびリソースが削減される。というのは、すべての書込み（特に大きな連続した書込み）がSSDに向かった場合、SSDリソースの限られた空間がすぐに使い果たされ、処理が高くつくフラッシュ動作/追い出し動作を引き起こすことになるからである。
【００１７】
第3に、すでにジャーナルにコミットされたオブジェクトが、一定の間隔でディスクにフラッシュされる。本発明の態様によれば、システム全体の性能を向上させるために様々なキャッシュポリシーに従ってキャッシュエントリがディスクに動的に追い出される。このように、オブジェクトはそれらが十分にホットである間だけキャッシュ内に留まる。
【００１８】
第4に、従来、ジャーナルエントリは後続の読出し動作からは確認できない。というのは、通常のシステムでは、オブジェクトは、それらがディスクに書き込まれるときにだけ読み出すことができるからである。よって、ジャーナルは読出し性能に悪影響を及ぼす場合がある。しかし、本発明の態様によるシステムでは、読出し要求によってキャッシュ内のエントリにアクセスすることができ、そのため、読出し性能が向上する。最後に、HDD内のオブジェクトがホットになった場合、それらは、性能を向上させるために本発明の態様に従ってキャッシュにロードされる。従来は、オブジェクトをHDDからジャーナルにロードすることはできない。
【００１９】
図1を参照すると、ブロック図100には、従来のストレージシステム110から次世代ストレージシステム150への進化が示されている。従来のストレージシステム110は、分散ファイルストレージで使用するためのクライアントサーバ114を有するアプリケーションサーバ112を含む。アプリケーションサーバ112は、ネットワーク118を介してストレージサーバ116に結合されている。ストレージサーバ116は、ストレージデバイス122を管理するために独立ディスク冗長アレイ（RAID）コントローラ120を利用する。ネットワーク118には、ストレージデバイス122に記憶された情報と関連付けられたメタデータを管理するためのメタデータサーバ124も結合されている。
【００２０】
次世代のストレージシステム150では、ストレージサーバ116と、ストレージデバイス122の管理に使用されるRAIDコントローラが除かれている。代わりに、単一システムオンチップ（SOC）アクティブドライブコントローラ152が、ネットワーク118を介してアプリケーションサーバ156内のクライアントライブラリと通信するストレージノード154の管理に使用される。よって、ストレージサーバ116の機能はストレージデバイスに移行されており、アプリケーション156は154ストレージデバイスに直接接続することができ、そのため、ハードウェアコストおよび保守コストを含むストレージシステム全体のコストが大幅に削減される。
【００２１】
次世代ストレージシステム150のストレージデバイス154は、典型的には、記憶性能を向上させると同時に記憶コストを削減するために単一のストレージデバイス内に異なる記憶媒体を含むハイブリッドストレージデバイスである。背景技術で論じたように、そうしたハイブリッドストレージデバイス内の異なる記憶媒体を十分に活用するためには、効率的なデータ管理およびキャッシュアルゴリズムが必要であり、特別な要件を考慮する必要がある。第1に、そうしたシステム内のハイブリッドストレージデバイスはネットワークに直接接続され、分散型のファイルストレージシステムまたはオブジェクトストレージシステムによって管理されることが多いため、ハイブリッドデータ管理およびキャッシュアルゴリズムをファイルレベルまたはオブジェクトレベルで設計し、実装した方がより効率的である。第2に、ハイブリッドストレージデバイスは、通常、ハードウェアリソースが限られているため、そうしたシステム向けに設計されるキャッシュアーキテクチャおよびアルゴリズムは、高効率で、リソース要求が少ないことが重要である。
【００２２】
図2に、次世代ストレージシステムの課題に対処する本発明の態様によるスケールアウトオブジェクトストレージクラスタ202のアーキテクチャのブロック図200を示す。システムのストレージノードは、アクティブハイブリッドベイ204である。各アクティブハイブリッドベイ204は、ストレージとして1台の固体デバイス（SSD）206と複数台のハードディスクドライブ（HDD）208とを含む。各アクティブハイブリッドベイ204は、アクティブハイブリッドベイ204を管理する処理リソースを含むアクティブコントローラボード（ACB）210と呼ばれる単一SOCボードも含み、アクティブハイブリッドベイ204は、単一のオブジェクトストレージデバイスとして構成することもでき、複数のオブジェクトストレージデバイスとして構成することもでき、各HDDは別々のオブジェクトストレージデバイスに属する。オブジェクトストレージクラスタ202はアクティブ管理ノード212も含み、アクティブ管理ノード212は、オブジェクトストレージクラスタ202のメタデータを維持し、アクティブ管理ノード212内で動作するゲートウェイ213と呼ばれるモジュールおよびプロセスのセットを含む。
【００２３】
オブジェクトストレージクラスタ202は高速イーサネットネットワーク118を介して、アプリケーション214に複数のインターフェースを提供する。ゲートウェイ213は、アプリケーション214に、S3インターフェースなどの記憶インターフェースを提供する。ブロックインターフェース216は、アプリケーション214がブロックデバイスのようにクラスタを使用することを可能にし、通常は、オブジェクトストレージクラスタ202を使用して仮想マシン218に記憶空間を提供する。ファイルインターフェース220は、ポータブルオペレーティングシステムインターフェース（POSIX）アプリケーション222がオブジェクトストレージクラスタ202をPOSIXファイルシステムのように使用することを可能にする。オブジェクトインターフェース224は、S3アプリケーションまたはSwiftアプリケーション226と互換性があり、S3アプリケーションまたはSwiftアプリケーションがオブジェクトストレージクラスタ202を使用することを可能にする。キー値インターフェース228は、キネティックドライブアプリケーション230と互換性があり、キネティックドライブアプリケーションがオブジェクトストレージクラスタ202を使用することを可能にする。
【００２４】
図3を参照すると、階層化ブロック図300には、本発明の態様によるハイブリッドストレージシステム202内の単一のストレージノード（例えばハードディスクドライブ208）のオブジェクトストアアーキテクチャが示されている。オブジェクトストアは、ローカルファイルシステム302に基づくものであり、各オブジェクトは個別ファイルとして記憶されている。オブジェクトストアは、オブジェクトに索引付けし、オブジェクトを管理するための索引構造304を実装している。例えば、索引付け構造304は、ハッシュアルゴリズムを使用して、オブジェクト名をオブジェクトファイルパス名306およびローカルファイルシステム302内のファイル名にマップする。オブジェクトストアは複数のコレクションを含み、各コレクションは、ローカルファイルシステム302内のオブジェクトのグループを含む別個のフォルダに対応している。オブジェクトストアは、ファイルのようにローカルファイルシステム302からオブジェクトにアクセスすることを可能にする、POSIXのようなアプリケーションプログラミングインターフェース（API）308のセットも提供する。
【００２５】
図4に、本発明の態様によるハイブリッドストレージシステム202内の1つのアクティブハイブリッドストレージノード204のキャッシュアーキテクチャの階層化ブロック図400を示す。キャッシュアーキテクチャは、ブロック図300に示されているオブジェクトストアアーキテクチャに基づくものであり、元のオブジェクトストアに別個のキャッシュコレクション402が追加されている。キャッシュコレクション402は、複数の索引構造304およびファイルシステム406と同様の索引構造404およびファイルシステム406を使用する。キャッシュコレクション402は、NVM/SSD206などのより高速な媒体上に位置し、その他のコレクション306は、HDD208などのより低速な媒体上に位置する。NVM/SSD206上のキャッシュコレクション402とHDD上のオブジェクトコレクション306との間でオブジェクトを管理するためにキャッシュ管理モジュール408が実装されている。オブジェクトAPI308は、ブロック図300に示されている単一のデバイスオブジェクトストアと同じであり、オブジェクトストアアプリケーションが変更なしでキャッシュアーキテクチャの上で動作することを可能にする。アプリケーションがNVM/SSD206上のキャッシュ内のデータを直接操作するために、強制デステージなどの追加キャッシュAPIがオブジェクトAPI層308に実装されている。
【００２６】
図5に、本発明の態様によるハイブリッドストレージシステム202内の複数のストレージデバイス208間の共用キャッシュアーキテクチャを示す階層化ブロック図500を示す。各キャッシュコレクション402は、NVM/SSD206上のローカルファイルシステム406内の別個のフォルダに対応している。ローカルファイルシステム406は複数のフォルダを含んでいてよく、各フォルダは異なるキャッシュコレクションに対応している。これらのキャッシュコレクションは、同じファイルシステム空間を共用するが、各々、異なるHDD208上の異なるオブジェクトストアファイルシステム302に属する。
【００２７】
図6に、本発明の態様によるハイブリッドストレージシステム202内のキャッシュを有するオブジェクトストアにオブジェクトを書き込むためのプロセスフローの流れ図600を示す。キャッシュ管理モジュール408は、オブジェクト書込み要求602を受け取ると、まず、オブジェクトがキャッシュコレクション402にすでに存在しているかどうか検出し（604）、オブジェクトがすでに存在している場合、キャッシュ内のオブジェクトの更新を実行する（606）。オブジェクトがキャッシュ内にない場合（604）、キャッシュ管理モジュール408は、オブジェクトがHDD208に存在しているかどうかさらに検出する（606）。オブジェクトがHDD208に記憶されている場合（606）、オブジェクトはHDD208において直接更新される（608）。そうでない場合、オブジェクトは新しいオブジェクトであり、オブジェクトのサイズ、名前、種類、または他のオブジェクト属性に従って（610）、キャッシュに書き込まれる（606）か、またはHDD208に書き込まれる（608）。
【００２８】
図7を参照すると、流れ図700には、本発明の態様によるハイブリッドストレージシステム202内のキャッシュを有するオブジェクトストアからオブジェクトを読み出すためのプロセスフローが示されている。キャッシュ管理モジュール408は、オブジェクト読出し要求702を受け取ると、まず、オブジェクトがキャッシュコレクション402内にあるかどうか検出する（704）。オブジェクトがキャッシュコレクション402内にある場合、オブジェクトをキャッシュから読み出す（706）。オブジェクトがHDD208にあることが検出された場合（708）、オブジェクトをHDD208から読み出す（710）。オブジェクトがキャッシュコレクション402でもHDD208でも検出されない場合（704、708）、キャッシュ管理モジュール408はオブジェクトAPI層にエラーを返し（712）、キャッシュ管理モジュール408がアクセスできるファイルシステム302、406にはそのオブジェクトが記憶されていないことを示す。
【００２９】
図8に、本発明の態様によるハイブリッドストレージシステム202内のHDD208とNVM206キャッシュとの間のオブジェクトのロードおよびデステージのアルゴリズムの説明図800を示す。キャッシュ管理モジュール408は、FIFO待ち行列802とLRUリスト804の2つのメタデータ構造を実装している。FIFO待ち行列802は、所定の最近の期間中にHDD208から一度アクセスされたオブジェクトIDを記憶する短期履歴バッファの働きをし、オブジェクトIDはFIFO待ち行列802の先頭805に記憶されている。FIFO待ち行列802内のオブジェクトが2回目にアクセスされた場合、そのオブジェクトはHDD208からNVM206内のキャッシュにロードされる。FIFO待ち行列802内のオブジェクトが一度しかアクセスされなかった場合、そのオブジェクトは徐々にFIFO待ち行列802の末尾806に移動され、最終的には新しいオブジェクトが待ち行列に入るときにFIFO待ち行列802から追い出される。実際には、FIFO待ち行列802は、長い期間に一度しかアクセスされていないオブジェクトがキャッシュに入るのを防止するフィルタとして機能し、よって有利には、キャッシュ汚染を回避し、真にホットなオブジェクトのためのキャッシュ空間を確保する。他方、LRUリスト804は、通常、FIFO待ち行列802よりもはるかに大きく、LRUリスト804は、現在キャッシュ内にあるオブジェクトIDを記憶する。オブジェクトがキャッシュに入る度に、そのオブジェクトIDがLRUリスト804の先頭808に追加される。LRUリスト804内のオブジェクトが再度アクセスされた場合、そのオブジェクトIDはLRUリスト804の先頭808に戻される。このようにして、頻繁にアクセスされるホットオブジェクトはLRUリスト804の先頭808に留まり、よりコールドなオブジェクトはLRUリスト804の末尾810に移動する。
【００３０】
オブジェクトがNVM206内のキャッシュへとコピーされた後、HDD208からコピーされた後にNVM206のキャッシュ内のそのオブジェクトが更新される場合、そのオブジェクトを「ダーティオブジェクト」と呼ぶ。というのは、キャッシュにはNVM206に記憶された、HDD208よりも新しいバージョンのオブジェクトがあるからである。他方、「クリーンオブジェクト」とは、HDD208からキャッシュにコピーされてから更新されていないNVM206のキャッシュ内のオブジェクトである。よって、キャッシュデステージ中に、LRUリスト804の末尾810のオブジェクトがキャッシュから追い出され、それらがダーティオブジェクトである場合には、HDD208に書き込まれる。というのは、キャッシュバージョンのダーティオブジェクトはHDDに記憶されたバージョンのダーティオブジェクトよりも新しいバージョンのオブジェクトだからである。しかし、クリーンオブジェクトは、HDDに記憶されたバージョンのクリーンオブジェクトがキャッシュバージョンのクリーンオブジェクトと同じであるため、HDD208に書き込まれずにキャッシュから追い出されることになる。
【００３１】
本発明の態様の一局面によれば、キャッシュは、メモリ内LRUリスト804を用いて実装することができる。しかし、キャッシュは、本発明の態様の別の局面に従って、メモリ内LRUリスト804なしで実装することもできる。これは、本発明の態様によるキャッシュがオブジェクト/ファイルレベルのものであり、記憶されたオブジェクトのアクセス/変更時刻が下層のファイルシステムによってすでに記録されているためである。ファイルシステム情報を利用し、アクセス/変更時刻によってオブジェクト/ファイルをソートすることによって、キャッシュはメモリ内LRUリスト804と同様の効果を達成することができる。実用的な実装形態では、本発明の態様によるメモリ内LRUリスト804を、LRUリスト804を永続記憶でバックアップせずに実装することもできる。というのは、システムクラッシュの場合には、メモリ内LRUリスト804をファイルシステム情報302、406から回復することができるからである。
【００３２】
本発明の態様の別の局面によれば、キャッシュデステージ動作を、現在のキャッシュ空間利用度およびワークロード状態に従って予定することができる。キャッシュ空間利用度の2つの閾値、下限閾値および上限閾値を設定することができる。現在のキャッシュ空間利用度が下限閾値を下回る場合には、キャッシュデステージを予定しなくてよい。現在のキャッシュ空間利用度が下限閾値を上回るが上限水位を下回る場合には、システム202がアイドル状態にあるときにキャッシュデステージを予定することができる。また、現在のキャッシュ空間利用度が上限閾値を上回る場合には、キャッシュデステージを最優先で予定する必要がある。
【００３３】
よって、本発明の態様は、従来の手法の欠点を少なくとも部分的に克服し、将来のストレージシステムで有効に使用するための最小限のリソース使用解決策を提供する効率的なハイブリッドデータ管理およびキャッシュアルゴリズムのための、改善されたデータ記憶のための方法およびデータストレージシステムを提供することが理解できる。
【００３４】
以上の本発明の詳細な説明では例示的な態様が提示されているが、膨大な数の変形形態が存在することを理解されたい。例示的な態様は単なる例にすぎず、いかなる点においても本発明の範囲、適用性、動作または構成を限定するものではないことをさらに理解されたい。そうではなく、以上の詳細な説明は、当業者に、本発明の例示的な態様を実施するのに好都合なロードマップを提供するものであり、添付の特許請求の範囲に記載されている本発明の範囲を逸脱することなく、例示的な態様に記載されている段階および操作方法の機能および構成に様々な変更を加えることができることを理解されたい。
【図１】
2018520420.tif 000004
【図２】
2018520420.tif 000005
【図３】
2018520420.tif 000006
【図４】
2018520420.tif 000007
【図５】
2018520420.tif 000008
【図６】
2018520420.tif 000009
【図７】
2018520420.tif 000010
【図８】
2018520420.tif 000011
【国際調査報告】
2018520420.tif 000012
2018520420.tif 000013
2018520420.tif 000014