(57)【要約】      （修正有）【課題】ＤＡＳクラスタにおいてアクティブ−アクティブに近い性能を提供つつ、アクティブ−パッシブまたはデュアル・アクティブ・システムの実現の簡素さを保持する高可用性ＤＡＳシステムを提供する。【解決手段】クラスタにおける各ノードは、アクティブ−アクティブ・モードでホットＩ／Ｏを格納するソリッド・ステート・キャッシュを備え、「ホット領域」に対するアクセスが静まったとき、またはキャッシュ・ミスの場合にのみ、デュアル−アクティブまたはアクティブ／パッシブＤＡＳ−ＲＡＩＤシステムに対しデータを読み出し、または書き込みを許可する。ホットＩ／Ｏデータは、動的に蓄積したホット・リード・データ、及びホット・ライト・データを含み、潜在的なダーティ・ライト・データの矛盾を回避し、更にサーバ障害の場合に高い可用性を提供するために、ホット・ライト・データをソリッド・ステート・キャッシュ・メモリ間でミラーリングする。【選択図】図１
2014002743.tif 000002
【特許請求の範囲】
【請求項１】
ホスト・サーバと、ピア・サーバと、高可用性ダイレクト・アタッチト・ストレージ・システムとを備えているマルチ・コントローラ・コンピュータ・システムであって、
前記ホスト・サーバが所有する第１組のダイレクト・アタッチト・データ・ドライブと、
前記ピア・サーバが所有する第２組のダイレクト・アタッチト・データ・ドライブと、
前記ホスト・サーバ上に存在するまたはこれに取り付けられたホスト・キャッシュ・メモリと、前記ピア・サーバ上に存在するまたはこれに取り付けられたピア・キャッシュ・メモリとを備えているキャッシュ・メモリ・システムと、
を備えており、
前記キャッシュ・メモリ・システムが、前記キャッシュ・メモリ・システムに格納されているホットＩ／Ｏデータに対してアクティブ−アクティブ・アクセスを付与しつつ、前記第１および第２組のダイレクト・アタッチト・データ・ドライブ間において、前記ホットＩ／Ｏデータに関係するマルチ・イニシエータ対立を回避し、
前記ホスト・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記ピア・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記ホストおよびピア・キャッシュ・メモリが、更に、前記ホストおよびピア・キャッシュ・メモリに格納されているダーティ・ライト・データにデータ矛盾が生ずるのを防ぐため、ならびにサーバまたはコントローラの障害の場合に、制約がない(uncommitted)データ可用性を提供するために、前記ホストおよびピア・キャッシュ・メモリ間に跨がってミラーリングされたホット・ライト・データを格納するように構成されている、マルチ・コントローラ・コンピュータ・システム。
【請求項２】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記第１および第２組のダイレクト・アタッチト・データ・ドライブが、デュアル−アクティブ構成を備えている、マルチ・サーバ・コンピュータ・システム。
【請求項３】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記第１および第２組のダイレクト・アタッチト・データ・ドライブが、アクティブ−パッシブ構成を備えている、マルチ・サーバ・コンピュータ・システム。
【請求項４】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、多数のサーバが、アクティブ−パッシブおよびデュアル−アクティブ・モードの組み合わせで動作する、マルチ・サーバ・コンピュータ・システム。
【請求項５】
請求項１記載のマルチ・サーバ・コンピュータ・システムであって、更に、前記ホスト・サーバ上に存在する第１ＲＡＩＤコントローラと、前記ピア・サーバ上に存在する第２ＲＡＩＤコントローラとを備えており、前記ＲＡＩＤコントローラが、前記高可用性ダイレクト・アタッチト・データ・ストレージ・システムへのサーバ・アクセスを仲介する、マルチ・サーバ・コンピュータ・システム。
【請求項５】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットＩ／Ｏリード要求が、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードＩ／Ｏデータに宛てられている場合、前記ホスト・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに前記ホット・リードＩ／Ｏデータを供給する、マルチ・サーバ・コンピュータ・システム。
【請求項６】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットＩ／Ｏリード要求が、前記ピア・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードＩ／Ｏデータに宛てられている場合、前記ピア・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに、前記ホット・リードＩ／Ｏデータを供給する、マルチ・サーバ・コンピュータ・システム。
【請求項７】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットＩ／Ｏライト要求が、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、ホット・ライト・データを、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに格納し、更に前記ピア・サーバ上に存在する前記キャッシュ・メモリにミラーリングする、マルチ・サーバ・コンピュータ・システム。
【請求項８】
請求項７記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けた前記ホットＩ／Ｏライトが、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットＩ／Ｏライトのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるＳＡＳリンクを通じた前記ホット・ライト・データの１回の移送を含む、マルチ・サーバ・コンピュータ・システム。
【請求項９】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットＩ／Ｏライト要求が、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、ホット・ライト・データを、前記ホスト・サーバ上に存在する前記前記キャッシュ・メモリに格納し、更に前記ピア・サーバ上に存在する前記キャッシュ・メモリにミラーリングする、マルチ・サーバ・コンピュータ・システム。
【請求項１０】
請求項９記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けた前記ホットＩ／Ｏライト・データが、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットＩ／Ｏライト・データのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるＳＡＳリンクを通じた前記ホット・ライト・データの１回の移送を含む、マルチ・サーバ・コンピュータ・システム。
【請求項１１】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・キャッシュ・メモリが、前記ホスト・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、マルチ・サーバ・コンピュータ・システム。
【請求項１２】
請求項１１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ピア・キャッシュ・メモリが、前記ピア・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、マルチ・サーバ・コンピュータ・システム。
【請求項１３】
ホスト・サーバと、ピア・サーバと、高可用性ダイレクト・アタッチト・ストレージ・システムとを備えているマルチ・コントローラ・コンピュータ・システムを設ける方法であって、
前記ホスト・サーバが所有する第１組のダイレクト・アタッチト・データ・ドライブを設けるステップと、
前記ピア・サーバが所有する第２組のダイレクト・アタッチト・データ・ドライブを設けるステップと、
前記ホスト・サーバ上に存在するまたはこれに取り付けられたホスト・キャッシュ・メモリと、前記ピア・サーバ上に存在するまたはこれに取り付けられたピア・キャッシュ・メモリとを備えているキャッシュ・メモリ・システムとを設けるステップと、
を備えており、
前記キャッシュ・メモリ・システムが、前記キャッシュ・メモリ・システムに格納されているホットＩ／Ｏデータに対してアクティブ−アクティブ・アクセスを付与しつつ、前記第１および第２組のダイレクト・アタッチト・データ・ドライブ間において、前記ホットＩ／Ｏデータに関係するマルチ・イニシエータ対立を回避し、
前記ホスト・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記ピア・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記ホストおよびピア・キャッシュ・メモリが、更に、前記ホストおよびピア・キャッシュ・メモリに格納されているダーティ・ライト・データにデータ矛盾が生ずるのを防ぐため、ならびにサーバまたはコントローラの障害の場合に、制約がないデータ可用性を提供するために、前記ホストおよびピア・キャッシュ・メモリ間に跨がってミラーリングされたホット・ライト・データを格納するように構成されている、方法。
【請求項１４】
請求項１３記載の方法であって、更に、前記第１および第２組のダイレクト・アタッチト・データ・ドライブを、デュアル−アクティブ構成に設定するステップを備えている、方法。
【請求項１５】
請求項１３記載の方法であって、前記第１および第２組のダイレクト・アタッチト・データ・ドライブを、アクティブ−パッシブ構成に設定するステップを備えている、方法。
【請求項１６】
請求項１３記載の方法であって、更に、前記ホスト・サーバ上に存在する第１ＲＡＩＤコントローラと、前記ピア・サーバ上に存在する第２ＲＡＩＤコントローラとを設けるステップを備えており、前記ＲＡＩＤコントローラが、前記高可用性ダイレクト・アタッチト・データ・ストレージ・システムへのサーバ・アクセスを仲介する、方法。
【請求項１７】
請求項１３記載の方法であって、更に、前記ホスト・サーバ上において、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードＩ／Ｏデータに宛てたホットＩ／Ｏリード要求を受けるステップと、前記ホスト・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに、前記要求されたデータを供給するステップとを備えている、方法。
【請求項１８】
請求項１３記載の方法であって、更に、前記ホスト・サーバにおいて、前記ピア・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードＩ／Ｏデータに宛てたホットＩ／Ｏリード要求を受けるステップと、前記ピア・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに、前記要求されたデータを供給するステップとを備えている、方法。
【請求項１９】
請求項１３記載の方法であって、更に、前記ホスト・サーバにおいて、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てたホットＩ／Ｏライト要求を受けるステップと、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに前記ホット・ライト・データを格納するステップと、 前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、前記ピア・サーバ上に存在する前記キャッシュ・メモリに前記ホット・ライト・データをミラーリングするステップとを備えている、方法。
【請求項２０】
請求項１９記載の方法において、前記ホスト・サーバが受けた前記ホットＩ／Ｏライトが、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットＩ／Ｏライトのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるＳＡＳリンクを通じた前記ホット・ライト・データの１回の移送を含む、方法。
【請求項２１】
請求項１３記載の方法であって、更に、前記ホスト・サーバ上において、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てたホットＩ／Ｏライト要求を受けるステップと、前記ホスト・サーバ上に存在する前記前記キャッシュ・メモリに前記ホット・リード・データを格納するステップと、前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、前記ピア・サーバ上に存在する前記キャッシュ・メモリに前記ホット・ライト・データをミラーリングするステップとを含む、方法。
【請求項２２】
請求項２１記載の方法において、前記ホスト・サーバが受けた前記ホットＩ／Ｏライト・データが、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットＩ／Ｏライト・データのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるＳＡＳリンクを通じた前記ホット・ライト・データの１回の移送を含む、マルチ・サーバ・コンピュータ・システム。
【請求項２３】
請求項１３記載の方法において、前記ホスト・キャッシュ・メモリが、前記ホスト・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、方法。
【請求項２４】
請求項１３記載の方法において、前記ピア・キャッシュ・メモリが、前記ピア・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、方法。
【請求項２５】
ホスト・サーバと、前記サーバ上で動作する第１および第２Ｉ／Ｏコントローラと、高可用性ダイレクト・アタッチト・ストレージ・システムとを備えているマルチ・コントローラ・コンピュータ・システムであって、
前記第１Ｉ／Ｏコントローラが所有する第１組のダイレクト・アタッチト・データ・ドライブと、
前記第２Ｉ／Ｏコントローラが所有する第２組のダイレクト・アタッチト・データ・ドライブと、
前記サーバ上に存在し、前記第１Ｉ／Ｏコントローラに専用の第１キャッシュ・メモリと、前記第２Ｉ／Ｏコントローラに専用の第２キャッシュ・メモリとを備えているキャッシュ・メモリ・システムと、
を備えており、
前記キャッシュ・メモリ・システムが、前記第１および第２キャッシュ・メモリに格納されているホットＩ／Ｏデータに対してアクティブ−アクティブ・アクセスを付与しつつ、前記第１および第２組のダイレクト・アタッチト・データ・ドライブ間において、前記ホットＩ／Ｏデータに関係するマルチ・イニシエータ対立を回避し、
前記第１キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記第２キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記ホストおよびピア・キャッシュ・メモリが、更に、前記第１および第２キャッシュ・メモリに格納されているダーティ・ライト・データにデータ矛盾が生ずるのを防ぐため、ならびにサーバまたはコントローラの障害の場合に、制約がないデータ可用性を提供するために、前記第１および第２キャッシュ・メモリ間に跨がってミラーリングされたホット・ライト・データを格納するように構成されている、マルチ・コントローラ・コンピュータ・システム。
【発明の詳細な説明】
【技術分野】
【０００１】
[0001]  本発明は、コンピュータ・ネットワーク用の可用性が高いクラスタ・システムに関し、更に特定すれば、デュアル−アクティブまたはアクティブ／パッシブＤＡＳ  ＲＡＩＤシステムにおいて、ソリッド・ステート・キャッシュを用いて、アクティブ−アクティブに近い性能 (performance)が得られる高可用性ＤＡＳシステムに関するものである。
【従来技術】
【０００２】
[0002]  独立ディスク冗長アレイ（ＲＡＩＤ）システムは、ディスク障害に対する保護に備えるために開発された。しかしながら、ダイレクト・アタッチト・ストレージ（ＤＡＳ：direct attached storage）ＲＡＩＤコントローラは、サーバ障害に対して無防備である。何故なら、定義上、データ記憶システムはサーバ内部に埋め込まれるからである。サーバが故障すると、ＲＡＩＤコントローラも故障し、格納されているデータは、サーバおよびＲＡＩＤコントローラがオンラインに復帰するまで、一時的に入手不可能になる。この問題に対処するために、重要なデータを有する企業の顧客は、高可用性ＤＡＳクラスタを利用することが多い。この高可用性ＤＡＳクラスタは、２つ以上のサーバ・ノードを含み、各サーバ・ノードが、ＲＡＩＤコントローラを備えた埋め込みＤＡＳシステムを有する。一方、これらの埋め込みＤＡＳシステムは、エンクロージャ内にある同じ１組のディスクに接続されている。これらのディスクは別個に給電されており、サーバが故障しても、他のサーバのＲＡＩＤシステムがこれらのディスクを引き取って、非破壊モードでＩＯに対応する(serve)。
【０００３】
[0003]  これらのマルチ・サーバＤＡＳクラスタは、マルチ・イニシエータ問題(multi-initiator problem)を発現させることが知られている。この問題は、１つよりも多いサーバが、同じドライブ上に格納されているデータに同時にアクセスしようとするときに起こる。この問題に対する従来の解決策には、デュアル−アクティブ構成が含まれる。この場合、各ドライブが１つのサーバのみによって「所有され」、このサーバはそれ自体のドライブへのアクセスを独占的に制御する。この手法はマルチ・イニシエータ対立を回避するが、サーバ間において大量のデータ（ＩＯ）が送り出される(shipping)結果となる可能性がある。代わりに、ドライブをアクティブ−パッシブ構成に設定することもできるが、この場合一度にアクティブになるのは１つのサーバだけであり、第２のサーバがアクティブになるのは、第１のサーバに障害が発生したときだけである。双方の手法には、上位レイヤがＩＯを双方のサーバに送るときに不都合が生ずる。何故なら、非所有ディスクへのＩＯを他方のサーバに向けて送り出す必要があるからである。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
[0004]  したがって、高可用性ＤＡＳシステムの改良が引き続き求められている。更に特定すると、従来のアクティブ−パッシブおよびデュアル−アクティブＤＡＳクラスタの欠点を克服するＤＡＳクラスタの改良が求められている。
【課題を解決するための手段】
【０００５】
[0005]  本発明は、ソリッド・ステート・キャッシュを用いて、ＤＡＳクラスタにおいてスマートアクティブ−アクティブ処理能力(capability)を設ける高可用性ＤＡＳシステムを提供する。クラスタにおける各ノードは、「ホットＩ／Ｏ」（最も頻繁にアクセスされるディスクの位置）をアクティブ−アクティブ・モードで格納（キャッシュ）するソリッド・ステート・キャッシュを含むことができ、これによって、キャッシュ・ミスがある場合にのみ、即ち、求められているデータがＳＳＤキャッシュになく、基礎となるハード・ドライブから持ってこなければならない場合にのみ、基礎となるデュアル−アクティブまたはアクティブ／パッシブＤＡＳ  ＲＡＩＤシステムからデータを読み出すこと、またはこのＤＡＳ  ＲＡＩＤシステムにデータを書き込むことが許可される。ホットＩ／Ｏデータは、ホット・リード・データが永続的に格納されているダイレクト・アタッチト・ドライブの所有には関係なく、動的に蓄積するホット・リード・データを含む。また、ホットＩ／Ｏデータは、ホット・ライト・データも含む。サーバ障害の場合に、存続するサーバからダーティ・データを供給できるように、そして潜在的なダーティ・ライト・データの対立を回避するために、２つのサーバ上にあるソリッド・ステート・キャッシュ・メモリ間に跨がって、ホット・ライト・データをミラーリングする。本発明は、デュアル−アクティブまたはアクティブ−パッシブＲＡＩＤシステムにおけるＤＡＳクラスタ上において実現するとよいが、そうしなければならないのではない。
【０００６】
[0006]  更に具体的には、「ホット・リード」データは、リードＩＯ（READ IO）の発生元のみに応じて、そして基礎となるＶＤの所有(ownership)には関係なく、各ノード上にあるソリッド・ステート・キャッシュ・メモリに格納される。例えば、サーバＡがＶＤを所有するが、殆どのＩＯがサーバＢに向かっていると仮定する。この場合、リード・キャッシュ(READ cache）によって、蓄積するのはサーバＢであって、サーバＡではない。キャッシュ・ヒットに対して、このキャッシュされているリード・データは、サーバＡへのＩＯ送り出しを必要とせずに、サーバＢのキャッシュから直接供給される。本システムは、ホット・リード・データが永続的に格納されている物理的な外付けドライブの所有には無関係に、そのホット・リード・データが使用パターンに基づいて動的に積み上がることを可能にする。これによって、ホット・リード・データが永続的に格納されているドライブを所有するのはどのノードなのかには関係なく、ホット・リード・データに対する多数の送り出しトランザクションが不要になる。
【０００７】
[0007]  ホット・ライト・データに関して、各ノード上にあるソリッド・ステート・メモリは、あらゆるダーティ・ライト・データのミラー・コピーを収容する。これは、データが永続的に格納されている物理ドライブを所有するのはどのサーバであるかに関係なく、ダーティ・ライト・データが永続的ストレージに書き込まれるまで、サーバ間に跨がってダーティ・ライト・データの完全性を維持しつつ、各ノードが、それ自体のソリッド・ステート・キャッシュにライト・データを格納することを可能にする。このソリッド・ステート・キャッシュ技法は、ホット・リード・データまたはホット・ライト・データのみにしか適用できないが、最も大きな効果(benefit)は、本発明によるホット・リードおよびホット・ライト・データのアクティブ−アクティブ・キャッシュ動作から得られる。
【０００８】
[0008]  また、本発明は、１つのサーバが多数のＩ／Ｏコントローラを内蔵し、各Ｉ／Ｏコントローラが専用の１組のアタッチト・データ・ドライブを有する、ＤＡＳシステムにおいても実施することができる。このシステムは、各Ｉ／Ｏコントローラに専用とした別個のキャッシュ・メモリを含み、一方、Ｉ／Ｏコントローラはその専用の１組のデータ・ドライブへのアクセスを仲介する。キャッシュ・メモリは、本発明のスマート・アクティブ−アクティブ・キャッシュ・メモリ・システムを実現するように構成されており、ホット・リード・データは、所有に関係なく、各キャッシュに動的に蓄積し、ダーティ・ライト・データはキャッシュ・メモリ間に跨がってミラーリングされる。単一サーバ、マルチ・コントローラＤＡＳシステムは、１つのサーバ上に実装されている多数のコントローラが異なるサーバ上に実装されている多数のコントローラと置き換わることを除いて、マルチ・サーバ・ＤＡＳシステムと同様である。それ以外では、ＤＡＳシステムは同様に動作する。このように、本発明は、いずれの特定のサーバ上に実装されているＩ／Ｏコントローラの数にも関係なく、専用ドライブを有するいずれの１組のＩ／Ｏコントローラ間でも実施することができる。
【０００９】
[0009]  尚、以上の概略的な説明および以下の詳細な説明の双方は、一例であり説明に役立てるためのものであって、必然的結果として、特許請求する発明を限定するのではないことは言うまでもない。添付図面は、本明細書に組み込まれその一部をなすが、本発明の実施形態を例示し、以上の概略的な説明と併せて、本発明の原理を説明する役割を果たす。
【図面の簡単な説明】
【００１０】
[0010]  本発明の多数の利点は、添付図面を参照することによって、一層良く理解することができる。図面において、
【図１】[0011]図１は、アクティブ−アクティブ・ソリッド・ステート・キャッシュを有するＤＡＳクラスタの機能ブロック図である。
【図２】[0012]図２は、アクティブ−アクティブ・ソリッド・ステート・キャッシュ・システムを利用するＤＡＳクラスタにおいて、所有するノード上に格納されているデータに対するリード要求のデータ・フロー図である。
【図３】[0013]図３は、アクティブ・ソリッド・ステート・キャッシュ・システムを利用するＤＡＳクラスタにおいて、ピア・ノード上に格納されているデータに対するリード要求のデータ・フロー図である。
【図４】[0014]図４は、アクティブ・ソリッド・ステート・キャッシュ・システムを利用するＤＡＳクラスタにおいて、所有するノード上に格納されているデータに対するライト要求のデータ・フロー図である。
【図５】[0015]図５は、アクティブ・ソリッド・ステート・キャッシュ・システムを利用するＤＡＳクラスタにおいて、ピア・ノード上に格納されているデータに対するライト要求のデータ・フロー図である。
【図６】[0016]図６は、アクティブ−アクティブ・キャッシュ・メモリ・システムを動作させるための論理フロー図である。
【図７】[0017]図７は、多数のＩ／Ｏコントローラが、アクティブ・ソリッド・ステート・キャッシュを有するＤＡＳクラスタを形成する、サーバの機能ブロック図である。
【発明を実施するための形態】
【００１１】
[0018]  本発明は、パッシブ−アクティブまたはデュアル−アクティブＤＡＳクラスタにおいて具体化することができ、このクラスタの各ノード内には、アクティブ−アクティブ・キャッシュ・メモリが配置されている。記述の都合上、二サーバＤＡＳクラスタを示し、このクラスタについて以下で論ずるが、本発明は、いずれの数のノードを有するＤＡＳシステムにでも拡張できることは認められよう。加えて、「ホスト」は通例Ｉ／Ｏ要求を受けるサーバを指し、「オーナー」(onwer)は通例、Ｉ／Ｏが物理的に格納されている物理ドライブを所有するサーバを指し、そして「ピア」は通例クラスタにおける他のいずれかのサーバを指す。ＤＡＳノードは、通例、特定のＩ／Ｏトランザクションに対して、ホスト、オーナー、またはピア・ノードと呼ばれるが、この命名は相対的であり、いずれのノードでも、当該ノードがＩ／Ｏ要求を受けるのか、または要求されたＩ／Ｏが永続的に配置されている物理ドライブを所有するのかに応じて、特定のＩ／Ｏトランザクションに対してホスト、オーナー、またはピア・ノードになり得る。また、図示する実施形態は、ＤＡＳシステムを仲介する用途の例として、独立ディスク冗長アレイ（ＲＡＩＤ）システムを含むことは理解されようが、本発明は、ＤＡＳクラスタの多数のサーバによって制御されるディスク・メモリを利用するのであれば、いずれのタイプのシステムまたは用途にでも応用できることは言うまでもない。
【００１２】
[0019]  このタイプのマルチ・サーバ高可用性ＤＡＳデータ記憶システムでは、ダイレクト・アタッチト・ストレージは通例光記憶ドライブ（「単なる基本的な古いドライブ」の意味でＪＢＯＤＳと呼ばれることもある）であり、双方のコントローラ（「ＣＰＵ」、「サーバ」、「イニシエータ」(initiator)、または「ノード」と呼ばれることが多い）によってアクセスすることができる。しかしながら、双方のコントローラが同時にＩ／Ｏを設定する、増大させる(spin up)、または同じ記憶デバイスに送ろうとすると、マルチ・イニシエータ問題として知られるアクセス対立が起こる可能性がある。例えば、一方のイニシエータがタスク管理を開始し、時間切れの後リセットしたが、他方のイニシエータはこれについて知らないということがあり得る。次いで、他方のノードがもう１度リセットを開始すると、「リセット・ストーム」(reset storm)に至る可能性がある。加えて、効果的な記憶管理には、補強(rebuild)、再現(reconstruction)、一貫性維持等というような種々の背景動作に対してコントローラ間で帯域幅ネゴシエーションを調整する必要がある。
【００１３】
[0020]  これらの問題は、潜在的に、サーバ間における調整および意思疎通(communication)によって解決することができるが、通信のオーバーヘッドが直ちに重くなり、コードが法外に複雑になる。その結果、ＤＡＳクラスタは、通例、マルチ・イニシエータ対立が起こるのを防ぐために、アクティブ−パッシブまたはデュアル−アクティブ構成を選択していた。アクティブ−パッシブ構成では、双方のイニシエータがドライブの全てに接続されるが、第１イニシエータのみがアクティブ・モードとなり、一方第２イニシエータはパッシブ・モードのまま留まる。第２イニシエータがアクティブになるのは、第１イニシエータが何らかの理由でオフラインになっているときだけである。その結果、アクティブ−パッシブ構成では一度に１つのイニシエータだけしかアクティブになれない。この手法はマルチ・イニシエータ問題が発生するのを防ぐが、いずれの時点でもサーバの内一方のＤＡＳコントローラはインアクティブのままになっている。
【００１４】
[0021]  代わって、デュアル−アクティブ構成では、双方のイニシエータが同時にアクティブになる。マルチ・イニシエータ問題を回避するために、各ドライブは潜在的なイニシエータ・ノード（例えば、サーバ）の内１つのみによって排他的に制御される（「所有される」とも言う）。この場合、非所有ノード上に達したＩ／Ｏは、所有ノードに送り出されなければならない。この手法もマルチ・イニシエータ問題を排除するには効果的であるが、ノード間でＩ／Ｏ要求を送り出すことによって、システム性能が低下し、双方のコントローラが所有するドライブ空間を系統的に用いる構成では、過酷になる可能性がある。例えば、各物理ドライブ上に多数の仮想ドライブがあり、特定の物理ドライブ上にある仮想ドライブが異なるノードに割り当てられる場合、厳しいオーバーヘッド・データ送り出し(overhead data shipping)が発生する可能性がある。別の例として、オペレーティング・システムにおける上位レイヤが故意にＩ／Ｏをアクティブ−アクティブ・モードで送って意図的にノード間でデータを拡散させるように設定されているとき、送り出し要求は厳しくなる可能性がある。例えば、ＲＡＩＤコントローラの中には、ＲＡＩＤデータ・セキュリティ・プロトコルの一部として、アクティブ−アクティブ構成で格納されているデータを意図的に拡散させるように設定されている場合がある。ドライブに対するゲスト・アクセス(guest access)を許可することによっても、送り出しが増える可能性がある。何故なら、ゲスト・オペレーティング・システムは、ホストのノード・システムを考慮して動作するように設定されていないかもしれないからである。
【００１５】
[0022]  本発明は、各サーバにおいてローカルＳＳＤキャッシュ・アクセレレータがあるあらゆるＤＡＳクラスタにも適用することができる。例えば、このＳＳＤは、１つのサーバにしか見えないローカルＳＳＤキャッシュであってもよく、またはコントローラ上にあるオンボードＳＳＤであってもよい。ホットＩ／Ｏ（即ち、同じローカル・ブロック・アドレス［ＬＢＡ］範囲内で頻繁に行われるＩ／Ｏ）は、所有(ownership)には関係なく、Ｉ／Ｏパターンに基づいてオーナーおよびピアの双方にあるローカルＳＳＤにキャッシュされる。
【００１６】
[0023]  キャッシュ動作には所有が考慮されないので、ホット・リード・データ(hot READ data)は、所有には関係なく、Ｉ／Ｏパターンに基づいてローカル・キャッシュ上に動的に積み上がっていく。キャッシュ・ヒットに対して（大多数のＩ／Ｏ。何故なら、ＳＳＤキャッシュは通例サイズが非常に大きいからである）、この場合も所有には関係なく、データはローカル・コントローラのみから供給される(serve)。全ての低速回転ディスクに縛られるＩ／Ｏは、なおもＩ／Ｏ送り出しメカニズムに追従する。リージョン・ロック(region lock)はオーナー側のみにおいて維持され、ピア側ＳＳＤキャッシュから完了することができるＩ／Ｏに対しては、オーナーからロックを取得した後に、そのように行われる。
【００１７】
[0024]  全ての回転ディスクは、これまで通り１つのオーナー・コントローラを有する。したがって、ホット・リード・データは、所有には関係なく、双方のコントローラにおいて維持され、一方、コールド・データは、基礎をなすマルチ・サーバＤＡＳプロトコルにしたがって、所有されているディスクに格納される。つまり、ホット・リードＩ／Ｏは、このＩ／Ｏを受け取ったコントローラにおいてキャッシュされ、所有には依存せずに、Ｉ／Ｏパターンに基づいて動的に変化する。ピア・ノードから送り出されたいずれのＩ／Ｏについても、オーナー・ノードは通例ヒート・ロジック(heat logic)を実行しないが、ＳＳＤ、ＤＤＲにおける検索、リージョン・ロック実行等というような、他の動作を実行することができる。ホット・ライト・データは、潜在的なダーティ・ライト・データの矛盾を回避するために、サーバ間に跨ってキャッシュにミラーリングされる。
【００１８】
[0025]  したがって、本発明は、デュアル−アクティブＤＡＳシステムに、注目に値する性能の向上をもたらす。何故なら、ＳＳＤキャッシュからアクセスされる大多数のＩ／Ｏに対して、Ｉ／Ｏ送り出しを不要にするからである。あるノード上において、そのノードのＳＳＤに格納されているホット・リード・データに対して受けたリード要求に対して、このノードは、ＳＡＳリンクを通した送り出しを全く行うことなく、ダイレクト・メモリ・アクセスによってデータを供給する。ホスト・ノードにおいて、他のノード（ＳＳＤオーナー・ノード）上のＳＳＤに格納されているホット・リード・データに対して受けたリード要求に対して、ピア・ノードがＳＳＤオーナー・ノードからロックをかけ、ＤＭＡデータはオーナーＳＳＤからホスト（ピア）システム・メモリに受け取られる。つまり、ホット・リード・データは、所有には関係なく、使用に基づいて動的に積み重なっていき、ＳＳＤからせいぜい１回の送信で、ＳＡＳリンクを通って供給される。ＳＳＤキャッシュに格納されているいずれのホット・リード・データに対しても、基礎をなすドライブからの送り出しは行われない。
【００１９】
[0026]  ホスト・ノードが所有するホット・ライト・データに対するライト要求では、データは、ピア・ノード上におけるＳＳＤキャッシュにホット・ライト・データをミラーリングするために、１回だけＳＡＳリンクを通って移動する。ピア・ノードが所有するホット・ライト・データに対するライト要求では、データは、ピア・ノード上におけるＳＳＤキャッシュにホット・ライト・データをミラーリングするために、１度だけＳＡＳリンクを通って移動する。したがって、ホット・ライトは、これらのサーバ上にあるＳＳＤキャッシュ間に跨がってミラーリングされ、ＳＡＳリンクを通る１回の送信で、ＳＳＤから供給される。この場合も、基礎となるドライブからの送り出しは、ＳＳＤキャッシュに格納されているいずれのホット・ライト・データに対しても行われない。一旦ダーティ・ライト・データが納まった(cool down)なら（例えば、そのデータへのアクセスが閾値未満に減った(slow down)なら）、このデータは最終的に正しいオーナー・ドライブ上の永続的ストレージに格納される。
【００２０】
[0027]  これより図を参照すると、図１は、マルチ・サーバ・システム１０の機能ブロック図である。マルチ・サーバ・システム１０は、本発明のスマート・アクティブ−アクティブ・キャッシュ・メモリ・システムを実現するように構成されたＤＡＳクラスタ３０を含む。ＤＡＳクラスタ３０は、代表例として、ホスト・サーバ１２ａおよびピア・サーバ１２ｂを含む。ホスト・サーバ１２ａは、ＣＰＵ複合体１４ａおよびシステム・メモリ１５ａを含み、システム・メモリ１５ａは、通例、ＤＤＲまたはＤＤＲ３、あるいは他の適したＳＤＲＡＭである。また、ホスト・サーバ１２ａは、ＤＡＳ高可用性メモリ・システムも含み、この例では、ＲＡＩＤコントローラ１６ａによって仲介される。加えて、ホスト・サーバ１２ａは、キャッシュ・メモリ１８ａを含み、この例では、フラッシュ・メモリのようなソリッド・ステート・デバイス（ＳＳＤ）である。同様に、ピア・サーバ１２ｂは、ＣＰＵ複合体１４ｂ、システム・メモリ１５ｂ、ＲＡＩＤコントローラ１６ｂ、およびキャッシュ・メモリＳＳＤ１８ｂを含む。尚、キャッシュ・メモリ１８ａ、１８ｂは、これらの特定的な実施形態では、それらのそれぞれのサーバ上に存在するソリッド・ステート・デバイス（ＳＳＤ）として示されているが、キャッシュは、専用の外付けドライブ(attached drive)、外付けドライブの専用部分、または本発明のキャッシュ・メモリ機能に割り当てられる他のいずれかの適したコンピュータ・メモリによっても実現できることは認められてしかるべきである。
【００２１】
[0028]  ＤＡＳ高可用性メモリ・システムは、ホストおよびピア・サーバ１２ａ、１２ｂと、ホスト・サーバ１２ａと連携する第１組のデータ・ドライブ２４ａと、ピア・サーバ１２ｂと連携する第２組のデータ・ドライブ２４ｂとの間における機能的接続を拠り所とする。両サーバ１２ａ、１２ｂは、サーバまたはドライブ障害モードにおけるバックアップの目的のために、双方の組のドライブ２４ａ、２４ｂに接続されているが、マルチ・イニシエータ問題を回避するために、正常な動作中には同時アクセスは制限されている。例えば、ドライブ２４ａ、２４ｂをデュアル・アクティブ構成で動作させることができ、この場合、ホスト・サーバ１２ａが第１組のデータ・ドライブ２４ａを「所有」し、ピア・サーバ１２ｂは第２組のデータ・ドライブ２４ｂを「所有」する。この場合、非所有サーバに宛てられているＩ／Ｏアクセスは、所有サーバに送り出さなければならず、所有サーバはそれが「所有する」ドライブに対して排他的制御を維持する。あるいは、データ・ドライブ２４ａ、２４ｂを、アクティブ−パッシブ構成で動作させることもでき、この場合、一度に１組のデータ・ドライブだけがアクティブとなる。双方の構成において、マルチ・イニシエータ問題を回避するために、ＤＡＳクラスタ３０は、双方の組のデータ・ドライブ２４ａ、２４ｂに対して同時に真のアクティブ−アクティブ・アクセスを行わない (lack)。
【００２２】
[0029]  この構成例では、ＲＡＩＤコントローラ１６ａ、１６ｂは、本発明のスマート・アクティブ−アクティブ・キャッシュ・メモリ・システム３２を実現するために、基礎となるＤＡＳデータ・ドライブ２４ａ、２４ｂおよびキャッシュ・メモリ１８ａ、１８ｂへのアクセスを仲介する。サーバ（コントローラまたはノードとも呼ぶ）は図示する実施形態とは異なる構成を有することもでき、ＲＡＩＤコントローラ以外のＤＡＳコントローラがキャッシュ・メモリを制御してもよく、ＳＳＤ以外のキャッシュ・メモリを用いてもよく、更にはクラスタ内に２つよりも多いノードがあってもよいが、図１に示す基本的なエレメントは十分であり、本発明を実施することができる環境の適した動作例(working example)を示すことができる。また、システム３０は広範囲にわたる他のコンポーネントを含むこともでき、ゲスト・コントローラがＤＡＳシステムにアクセスすることを許可してもよいことも、言うまでもない。図には、便宜上、本発明を実現するときに必要となる最少限の１組のサーバおよびコンポーネントのみが示されている。
【００２３】
[0030]  アクティブ−アクティブ・キャッシュ３２は、ＤＡＳクラスタ３０に、ＳＳＤ１８ａ、１８ｂと称するキャッシュ・メモリに一時的に格納されている「ホットＩ／Ｏ」へのスマート・アクティブ−アクティブ・アクセスを付与する。ホスト・サーバ１２ａ上に存在するＳＳＤ１８ａは、「ホットＩ／Ｏ」のためにキャッシュ・メモリを提供する。ホットＩ／Ｏには、「ホット・リード」および「ホット・ライト」Ｉ／Ｏが含まれる。同様に、ピア・サーバ１２ｂ上に存在するＳＳＤ１８ｂは、「ホット・リード」および「ホット・ライト」Ｉ／Ｏを含む「ホットＩ／Ｏ」のために、キャッシュ・メモリを提供する。ホットＩ／Ｏデータは、同じローカル・ブロック・アドレス（ＬＢＡ）範囲内で頻繁に発生するリードおよびライト・データを含む（即ち、頻繁にアクセスされるＩ／Ｏデータ）。ホットＩ／Ｏデータであることを定義するアクセスの頻度は、ＳＳＤ１８ａ、１８ｂのメモリ容量およびその他の要因に基づいて、設計パラメータとして設定することができる。
【００２４】
[0031]  キャッシュ・メモリは、大多数のＩ／Ｏをキャッシュから行うことを可能にするように、予期されるＩ／Ｏトラフィックと比較して、十分に大きくするとよく、ダーティ・ライトは、背景においてあるいは低使用期間またはアイドル期間中に、永続的メモリに退去させる。ホット・リード・データは、このリード・データが永続的に格納されているドライブのオーナーには関係なく、使用パターンに基づいて、各キャッシュ内において動的に積み重なることができる。ホット・リード・データは、キャッシュ記憶容量を維持するために、必要に応じて一掃することができる。例えば、新たなホット・リード・データのための余裕を作るために、アクセスされたのが最も早かった（remotely in time)リード・データを、必要に応じて一掃する。
【００２５】
[0032]  ホット・ライト・データを「ダーティ・ライト」データと呼ぶこともできる。何故なら、これは永続的メモリ内にある同じデータのコピーに対するユーザ変更を含むかもしれないからである。ホット・ライト・データは、ダーティ・ライト・データにおける潜在的な矛盾を回避するために、双方のサーバ上にあるローカル・キャッシュにおいてミラーリングされる。
【００２６】
[0033]  図２は、アクティブ−アクティブ・ソリッド・ステート・キャッシュ・システムを利用するＤＡＳクラスタにおける所有ノード上に格納されているデータに対するリード要求についてのデータ・フロー図４０である。ＳＳＤ１８ａ、１８ｂは、各々、データが永続的に格納されているドライブの所有には関係なく、動的な使用パターンに基づいて、ホット・リード・データを格納する。その結果、ＳＳＤ１８ａは、データが永続的に格納されているドライブを所有するのはどのサーバであるかには関係なく、サーバ１２ａを介して要求されたホット・リード・データを格納する。同様に、ＳＳＤ１８ｂは、データが永続的に格納されているドライブを所有するのはどのサーバであるかには関係なく、サーバ１２ｂを介して要求されたホット・リード・データを格納する。その結果、サーバ１２ａが受けたホット・リードＩ／Ｏ要求は、キャッシュ・メモリＳＳＤ１８ａまたはＳＳＤ１８ｂのいずれかに格納されているホット・リード・データに宛てることができる。図２は、サーバ１２ａが、それ自体のＳＳＤ１８ａに宛てられているホット・リードＩ／Ｏ要求を受けた状況を示す。この場合、ホット・リードＩ／Ｏ要求は、サーバ１２ａ上にあるＣａｃｈｅＣａｄｅ４２ａを通じてＳＳＤ１８ａからシステム・メモリ１５ａに直接出される (serve)ＤＭＡ要求として扱われる。同様に、図２は、サーバ１２ｂが、それ自体のＳＳＤ１８ｂに宛てられているホット・リードＩ／Ｏ要求を受けた状況を示す。この場合、ホット・リードＩ／Ｏは、サーバ１２ｂ上のＣａｃｈｅＣａｄｅ４２ｂを通じてＳＳＤ１８ｂからシステム・メモリ１５ｂに直接出されるＤＭＡ要求として扱われる。
【００２７】
[0034]  図３は、サーバが、ピアＳＳＤ上に格納されているデータに対するホット・リードＩ／Ｏ要求を受けたという相補的な状況についてのデータ・フロー図５０である。この図示する例では、サーバ１２ａは、ピア・サーバ１２ｂ上のＳＳＤ１８ｂキャッシュ・メモリに格納されているデータに対するホット・リードＩ／Ｏ要求を受ける。この場合、要求されたＩ／Ｏは、ＳＳＤ１８ｂからピアＣａｃｈｅＣａｄｅ４２ｂに出されるＤＭＡ要求として扱われる。次いで、要求されたデータは、ＳＡＳリンク４４を通ってホストＣａｃｈｅＣａｄｅ４２ａに、そしてシステム・メモリ１５ａに移送される。その結果、このＩ／Ｏ要求は、ホスト・サーバへの従来のＤＭＡ要求のように見え、要求されたホット・リードＩ／Ｏは、ＣａｃｈｅＣａｄｅモジュール４２ａ、４２ｂ間で送り出され(ship)、サーバ１８ａ、１８ｂのいずれかによる追加のオーバーヘッド・データ送り出し制御を必要としない。これによって、従来のディスク・データ・リード、およびＣＰＵが仲介するデータ送り出しプロセスが、キャッシュ・データ・リードおよび本発明のＲＡＩＤ仲介ＳＡＳリンク移送アクティブ−アクティブ・データ・アクセス手順と置き換えられる。
【００２８】
[0035]  図４は、ＤＡＳクラスター内にある所有ノード上に格納されているデータに対するライト要求についてのデータ・フロー図６０である。ここに示す例では、ホスト・サーバ１２ａが、このホスト・サーバ上に永続的に格納するデータに対するライト要求を受ける。このライトデータは、ＳＳＤ１８ａのホット・ライト・データ・セクションに書き込まれ、ＳＡＳリンク４４を通ってピア・サーバ１２ｂに移送され、ピア・サーバ１２ｂにおいて、ＳＳＤ１８ｂのホット・ライト・データ・セクションにミラーリングされる。これによって、潜在的なダーディ・ライト・データの矛盾をいずれも回避するために、いずれのダーティ・ライト・データでも双方のキャッシュ・メモリ１８ａ、１８ｂに確実にミラーリングする。
【００２９】
[0036]  図５は、サーバが、ピア・サーバが所有するドライブ上に永続的に格納されているデータに対するホット・ライトＩ／Ｏ要求を受けたという、相補的な状況についてのデータ・フロー図７０である。ここに示す例では、サーバ１２ａが、ピア・サーバ１２ｂが所有するドライブに永続的に格納するデータに対してホット・ライトＩ／Ｏ要求を受ける。最初に、このライト・データをホストＳＳＤ１８ａに格納する。そして、このライト・データは、ホスト・サーバ１２ａ上のＣａｃｈｅＣａｄｅ４２ａからＳＡＳリンク４４を通って、ピア・サーバ１２ｂ上のＣａｃｈｅＣａｄｅ４２ｂに移送される。次いで、このホット・ライト・データは、潜在的なダーティ・ライト・データの矛盾をいずれも回避するために、ピアＳＳＤ１８ｂのホット・ライト・データ・セクションに書き込まれ、キャッシュ・メモリ１８ａ、１８ｂの双方においてこのホット・ライト・データをミラーリングする。
【００３０】
[0037]  図６は、アクティブ−アクティブ・キャッシュ・メモリ・システムを動作させるための論理フロー図８０である。ステップ８２において、本システムは、ホスト・サーバ上において受けたホット・リードＩ／Ｏ要求が、ホスト・サーバのソリッド・ステート・キャッシュ・メモリに宛てられているか否か判定を行う。ホスト・サーバ上において受けたホット・リードＩ／Ｏ要求が、ホスト・サーバのソリッド・ステート・キャッシュ・メモリに宛てられている場合、「ＹＥＳ」分岐にしたがってステップ８２からステップ８４に進み、ステップ８４において、ホスト・サーバ上にあるソリッド・ステート・キャッシュ・メモリから直接Ｉ／Ｏリードを読み出す。この状況は、図２のデータ・フロー図に対応する。
【００３１】
[0038]  ホスト・サーバ上において受けたホット・リードＩ／Ｏ要求が、ホスト・サーバのソリッド・ステート・キャッシュ・メモリに当たらない場合、「ＮＯ」分岐にしたがって、ステップ８２からステップ８６に進み、ステップ８６において、本システムは、ホスト・サーバ上において受けたホット・リードＩ／Ｏ要求が、ピア・サーバのソリッド・ステート・キャッシュ・メモリに宛てられているか否か判定を行う。ホスト・サーバ上において受けたホット・リードＩ／Ｏ要求が、ピア・サーバのソリッド・ステート・キャッシュ・メモリに宛てられている場合、「ＹＥＳ」分岐にしたがって、ステップ８６からステップ８８に進み、ステップ８８において、ピア・サーバ上にあるソリッド・ステート・キャッシュ・メモリから直接このＩ／Ｏ要求を読み出す。ステップ８８に続いてステップ９０に進み、ステップ９０において、ホット・リード・データをＳＡＳリンクを通ってホスト・サーバのソリッド・ステート・キャッシュ・メモリに移送し、ホスト・サーバは、ダイレクト・メモリ・アクセスによって、ホスト・ソリッド・ステート・キャッシュからのデータにアクセスする。この状況は、図３のデータ・フロー図に対応する。
【００３２】
[0039]  ホスト・サーバ上において受けたホット・リードＩ／Ｏ要求が、ピア・サーバのソリッド・ステート・キャッシュ・メモリに当たらない場合、「ＮＯ」分岐にしたがってステップ８６からステップ９２に進み、ステップ９２において、本システムは、ホスト・サーバ上において受けたホット・ライトＩ／Ｏ要求が、そのホスト・サーバが所有する永続メモリに宛てられているか否か判定を行う。ホスト・サーバ上において受けたホット・ライトＩ／Ｏ要求が、ホスト・サーバが所有する永続メモリに宛てられている場合、「ＹＥＳ」分岐にしたがって、ステップ９２からステップ９４に進み、ステップ９４において、ホスト・サーバ上にあるソリッド・ステート・キャッシュ・メモリにこのライト・データを書き込む。ステップ８４に続いてステップ９９に進み、ステップ９９において、異なるサーバ上に格納されているダーティ・ライト・データにおける潜在的な矛盾を防ぐために、ホット・ライト・データを、ＳＡＳリンクを通ってピア・サーバのソリッド・ステート・キャッシュ・メモリに移送し、これらのサーバ間に跨いでライト・データをミラーリングする。この状況は、図４のデータ・フロー図に対応する。
【００３３】
[0040]  ホスト・サーバ上において受けたホット・ライトＩ／Ｏ要求が、ホスト・サーバが所有する永続メモリに当たらない場合、「ＮＯ」分岐にしたがってステップ９２からステップ９８に進み、ステップ９８において、本システムは、ホスト・サーバ上において受けたホット・ライトＩ／Ｏ要求が、ピア・サーバが所有する永続メモリに宛てられているか否か判定を行う。ホスト・サーバ上において受けたホット・ライトＩ／Ｏ要求が、ピア・サーバが所有する永続メモリに宛てられている場合、「ＹＥＳ」分岐にしたがってステップ９８からステップ１０２に進み、ステップ１０２において、ホスト・サーバ上にあるキャッシュ・メモリにライト・データを格納する。ステップ１０２に続いてステップ１０４に進み、ステップ１０４において、ホット・ライト・データを、ＳＡＳリンクを通して、ピア・サーバのソリッド・ステート・キャッシュ・メモリに移送する。ステップ１０４に続いてステップ１０６に進み、ステップ１０６において、異なるサーバ上に格納されているダーティ・ライト・データにおける潜在的な矛盾を防ぐために、ホット・ライト・データをピア・サーバのキャッシュ・メモリに格納し、サーバ間に跨がってライト・データをミラーリングする。この状況は、図５のデータ・フロー図に対応する。
【００３４】
[0041]  図７は、代替ＤＡＳシステム７１の機能ブロック図であり、１つのサーバが、本発明のスマート・アクティブ−アクティブ・キャッシュ・メモリ・システムを実現するように構成されている多数のＩ／Ｏコントローラを内蔵している。図７のＤＡＳシステム７１は、１つのサーバ上に実装された多数のコントローラが、異なるサーバ上に実装されている多数のコントローラと置き換わっていることを除いて、図１のＤＡＳクラスタ３０と同様である。それ以外では、図７のＤＡＳは、図１のＤＡＳと同様に動作する。尚、このシステムは、各Ｉ／Ｏコントローラに専用とした別個のキャッシュ・メモリを含み、一方、各Ｉ／Ｏコントローラはその専用の１組のデータ・ドライブへのアクセスを仲介することは認められよう。キャッシュ・メモリは、本発明のスマート・アクティブ−アクティブ・キャッシュ・メモリ・システムを実現するように構成されており、ホット・リード・データは、所有には関係なく、各キャッシュに動的に蓄積し、キャッシュ・メモリ間に跨がってダーティ・ライト・データをミラーリングする。この単一サーバ、マルチ・コントローラＤＡＳシステムは、１つのサーバ上に実装されている多数のコントローラが、異なるサーバ上に実装されている多数のコントローラと置き換わることを除いて、マルチ・サーバＤＡＳシステムと同様である。このように、本発明は、専用ドライブを有するいずれの１組のＩ／Ｏコントローラ間でも、いずれの特定のサーバ上に実装されているＩ／Ｏコントローラの数には関係なく、実施することができる。
【００３５】
[0042]  更に具体的には、ＤＡＳ高可用性メモリ７１は、サーバ１１を含む。サーバ１１は、サーバ１１は、ＣＰＵ複合体１３およびシステム・メモリ１７を有し、システム・メモリ１７は、通例、ＤＤＲまたはＤＤＲ３、あるいは他の適したＳＤＲＡＭである。この例におけるＤＡＳ高可用性メモリ・システム７１は、複数のＲＡＩＤコントローラ１９ａ〜１９ｎによって仲介される。ホスト・サーバ１１は、アクティブ−アクティブ・キャッシュ・メモリ・システム７２を含む。このアクティブ−アクティブ・キャッシュ・メモリ・システム７２は、複数のキャッシュ・メモリ２１ａ、例えば、フラッシュ・メモリのような、ソリッド・ステート・デバイス（ＳＳＤ）を含む。各キャッシュ・メモリは、連携するＩ／Ｏコントローラに専用となっており、キャッシュ２１ａはＩ／Ｏコントローラ１９ａに専用であり、キャッシュ２１ｂはＩ／Ｏコントローラ１９ｂに専用である等となっている。加えて、各Ｉ／Ｏコントローラは、１組の連携する専用データ・ドライブを「所有」する。Ｉ／Ｏコントローラ１９ａは、ドライブ２５ａ〜２５ｎを所有し、Ｉ／Ｏコントローラ１９ｂは、ドライブ２７ａ〜２７ｎを所有する等となっている。
【００３６】
[0043]  ＤＡＳシステム７１は、サーバ１１および各組のデータ・ドライブ２５ａ〜ｎ、２７ａ〜ｎ等の間における機能的接続を拠り所とする。サーバは、サーバまたはドライブの障害モードにおけるバックアップの目的のために、全ての組のドライブに接続されているが、マルチ・イニシエータ問題を回避するために、正常な動作中には同時アクセスは制限されており、コントローラによって仲介される。例えば、コントローラ１９ａが所有するドライブ２５ａ〜２５ｎは、コントローラ１９ａを通じてでなければアクセスできず、コントローラ１９ｂが所有するドライブ２７ａ〜２７ｎは、コントローラ１９ｂを通じてでなければアクセスできない等となっている。各組のドライブは、所望に応じて、デュアル−アクティブ、またはアクティブ−パッシブ構成で動作することもできる。例えば、コントローラ１９ａが所有するドライブ２５ａ〜２５ｎをアクティブ−パッシブ・モードで動作させることができ、コントローラ１９ｂが所有するドライブ２７ａ〜２７ｎをアクティブ−パッシブ・モードで動作させることができる。更に一般的には、ドライブ制御モードのいずれの組み合わせでも、所望に応じて、Ｉ／Ｏコントローラのいずれにおいても用いることができる。
【００３７】
[0044]  スマート・アクティブ−アクティブ・キャッシュ・メモリ・システムを実現するために、キャッシュ・メモリ２１ａは、ドライブ２５ａ〜２５ｎを所有するＩ／Ｏコントローラ１９ａに専用となっている。キャッシュ・メモリ２１ｂは、ドライブ２７ａ〜２７ｎを所有するＩ／Ｏコントローラ１９ｂに専用となっている等である。一旦各組のドライブが専用のＩ／Ｏコントローラおよびキャッシュ・メモリを有したなら、図１に示したＤＡＳシステム３０を参照して既に説明したのと同様に、キャッシュ・メモリ・システムは動作する。この場合、ＤＡＳ７１の１つのサーバにおけるＩ／Ｏコントローラ１９ａ〜１９ｎ（図７）が、デュアル−サーバＤＡＳシステム３０（図１）におけるＩ／Ｏコントローラ１６ａ、１６ｂに置き換わる。ＳＡＳを通したデータ移送も、単一サーバ、マルチ・コントローラ構成では不要となる。各ＤＡＳシステム３０および７１は、所望に応じて、もっと多い数（ｎ）のＩ／Ｏコントローラを含むように拡張することもできる。加えて、各コントローラがそれ自体に専用の１組のドライブおよびキャッシュ・メモリを有するのであれば、マルチ・コントローラ・サーバを単一コントローラ・サーバと組み合わせることもできる。即ち、本発明は、いずれの特定のサーバ上に実装されるＩ／Ｏコントローラの数にも関係なく、専用ドライブを有するＩ／Ｏコントローラが何組あっても、それらの間で実施することができる。
【００３８】
[0045]  本発明は、現状の既存システムを改造するかまたは設定し直すことによって構成してもよい（が、こうすることによって構成する必要はない）。あるいは、本発明を具体化する当初からの機器を設けるのでもよい。
【００３９】
[0046]  本明細書において説明した方法の全ては、その方法実施形態の１つ以上のステップの結果を記憶媒体に格納するステップを含むとよい。結果は、本明細書において説明した結果であればいずれでも含むことができ、当技術分野において周知のやり方であればそのいずれでも格納することができる。記憶媒体は、本明細書において記載したいずれの記憶媒体も含み、または当技術分野において周知の他のあらゆる適した記憶媒体も含むことができる。結果を格納した後、これらの結果には、記憶媒体においてアクセスすることができ、本明細書において説明した方法またはシステムの実施形態のいずれによってでも、これらの結果を用い、ユーザへの表示のためにフォーマットすることができ、他のソフトウェア・モジュール、方法、またはシステムによって用いること等もできる。更に、結果は、「永続的に」、「半永続的に」、一時的に、またはある時間期間だけ格納することもできる。例えば、記憶媒体はランダム・アクセス・メモリ（ＲＡＭ）であってもよく、この記憶媒体においては、結果は必然的に無期限に存続することはできない。
【００４０】
[0047]  更に、以上で説明した方法の実施形態の各々が、本明細書において説明した他のいずれの方法（１つまたは複数）のいずれの他のステップ（１つまたは複数）でも含んでもよいことも考えられる。加えて、以上で説明した方法の実施形態の各々は、本明細書において説明したシステムの内いずれでも実行することができる。
【００４１】
[0048]  本明細書において説明したプロセスおよび／またはシステムおよび／または技術を実行することができる種々の手段(vehicle)があり（例えば、ハードウェア、ソフトウェア、および／またはファームウェア）、好ましい手段は、これらのプロセスおよび／またはシステムおよび／または技術を配備するコンテキストによって変化することは、当業者には認められよう。例えば、実施者(implementer)が、速度および精度が最も大事であると判断した場合、この実施者は主にハードウェアおよび／またはソフトウェアの手段を選択するとよい。代わりに、柔軟性が最も大事である場合、実施者は主にソフトウェアの実施態様を選択するとよい。または、更に別の代案では、実施者は、ハードウェア、ソフトウェア、および／またはファームウェアの何らかの組み合わせを選択してもよい。したがって、本明細書において説明したプロセスおよび／またはデバイスおよび／または他の技術を実行するには、様々な可能な手段があるが、利用しようとする手段はいずれも、その手段を配備するコンテキストおよび実施者の特定の関心事（例えば、速度、柔軟性、または予測可能性）に依存する選択事項であり、これらの関心事も変化するかもしれないので、いずれかが他のものよりも本質的に優れているということはない。当業者には、実施態様の光学的態様は、通例、光学に向いた(optically oriented)ハードウェア、ソフトウェア、および／またはファームウェアを採用することが認められよう。
【００４２】
[0049]  当業者には、本明細書において明記したようにデバイスおよび／またはプロセスを記載すること、そしてその後設計の実践 (engineering practice)を用いてこのように記載されたデバイスおよび／またはプロセスをデータ処理システムに統合することは当技術分野では極普通であることが認められよう。即ち、本明細書において説明したデバイスおよび／またはプロセスの少なくとも一部を、適当な量の経験によって、データ処理システムに統合することができる。典型的なデータ処理システムは、通常、システム・ユニットの筐体、ビデオ・ディスプレイ・デバイス、揮発性および不揮発性メモリというようなメモリ、マイクロプロセッサおよびディジタル信号プロセッサというようなプロセッサ、オペレーティング・システム、ドライバ、グラフィカル・ユーザ・インターフェース、およびアプリケーション・プログラムというような計算エンティティ、タッチ・パッドまたはタッチ・スクリーンというような１つ以上の対話処理デバイス、および／またはフィードバック・ループおよび制御モータを含む制御システム（例えば、位置および／または速度を検知するためのフィードバック、構成要素および／または量を移動させるおよび／または調節するための制御モータ）の内１つ以上を含むことは、当業者には認められよう。典型的なデータ処理システムは、データ計算／通信および／またはネットワーク計算／通信システムにおいて通例見られるコンポーネントのような、市販の適したコンポーネントであればいずれを利用しても、実現することができる。
【００４３】
[0050]  本明細書において説明した主題は、他のコンポーネント内部に内蔵されている異なるコンポーネント、または他のコンポーネントと接続されている異なるコンポーネントを例示することがある。尚、このようなアーキテクチャは単なる一例に過ぎず、実際には、同じ機能を遂行する多くの他のアーキテクチャを実現できることは言うまでもない。概念的な意味では、同じ機能を遂行するためのコンポーネントの配列(arrangement)はいずれも、所望の機能が遂行されるように、効果的に「連携されている」。したがって、本明細書において特定の機能を遂行するために組み合わせられたいずれの２つのコンポーネントも、アーキテクチャや仲介するコンポーネントには関係なく、所望の機能が遂行されるように互いに「連携されている」と見なすことができる。同様に、そのように連携されているいずれの２つのコンポーネントも、所望の機能を遂行するために互いに「接続」または「結合」されていると見なすことができ、そしてそのように連携することができるいずれの２つのコンポーネントも、所望の機能を遂行するために「結合可能」であると見なすことができる。結合可能なコンポーネントの具体的な例には、物理的に嵌合可能なコンポーネント、および／または物理的に相互作用するコンポーネント、および／またはワイヤレスで相互作用可能なコンポーネント、および／またはワイヤレスで相互作用するコンポーネント、および／または論理的に相互採用するコンポーネントおよび／または論理的に相互作用可能なコンポーネントが含まれるが、これらに限定されるのではない。
【００４４】
[0051]  本明細書において説明した本主題の特定の態様について示し説明したが、本明細書における教示に基づけば、本明細書において説明した主題およびその更に広い態様から逸脱することなく、変更や修正を行うこともできることは、当業者には明白であろう。したがって、添付する特許請求の範囲は、本明細書において説明した主題の真の主旨および範囲に該当する、そのような変更や修正全てをその範囲に包含することとする。
【００４５】
[0052]  更に、本発明は、添付した特許請求の範囲によって定義されることは言うまでもない。
[0053]  以上、本発明の特定的な実施態様について例示したが、以上の開示の範囲および主旨から逸脱することなく、本発明の種々の修正および実施形態を当業者が行うことができることは明白である。したがって、本発明の範囲は、これに添付する特許請求の範囲のみによって限定されて当然である。
【００４６】
[0054]  尚、本開示およびそれに付随する利点の多くは、以上の説明によって理解されたことを確信すると共に、開示した主題から逸脱することなく、またはその重要な利点の全てを犠牲にすることなく、構成要素の形態、構造、および配列において、種々の変更を行うことができることは明白である。
【図１】
2014002743.tif 000003
【図２】
2014002743.tif 000004
【図３】
2014002743.tif 000005
【図４】
2014002743.tif 000006
【図５】
2014002743.tif 000007
【図６】
2014002743.tif 000008
【図７】
2014002743.tif 000009
【手続補正書】
【提出日】平成25年8月19日(2013.8.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ホスト・サーバと、ピア・サーバと、高可用性ダイレクト・アタッチト・ストレージ・システムとを備えているマルチ・コントローラ・コンピュータ・システムであって、
前記ホスト・サーバが所有する第１組のダイレクト・アタッチト・データ・ドライブと、
前記ピア・サーバが所有する第２組のダイレクト・アタッチト・データ・ドライブと、
前記ホスト・サーバ上に存在するまたはこれに取り付けられたホスト・キャッシュ・メモリと、前記ピア・サーバ上に存在するまたはこれに取り付けられたピア・キャッシュ・メモリとを備えているキャッシュ・メモリ・システムと、
を備えており、
前記キャッシュ・メモリ・システムが、前記キャッシュ・メモリ・システムに格納されているホットＩ／Ｏデータに対してアクティブ−アクティブ・アクセスを付与しつつ、前記第１および第２組のダイレクト・アタッチト・データ・ドライブ間において、前記ホットＩ／Ｏデータに関係するマルチ・イニシエータ対立を回避し、
前記ホスト・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記ピア・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記ホストおよびピア・キャッシュ・メモリが、更に、前記ホストおよびピア・キャッシュ・メモリに格納されているダーティ・ライト・データにデータ矛盾が生ずるのを防ぐため、ならびにサーバまたはコントローラの障害の場合に、制約がない(uncommitted)データ可用性を提供するために、前記ホストおよびピア・キャッシュ・メモリ間に跨がってミラーリングされたホット・ライト・データを格納するように構成されている、マルチ・コントローラ・コンピュータ・システム。
【請求項２】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記第１および第２組のダイレクト・アタッチト・データ・ドライブが、デュアル−アクティブ構成を備えている、マルチ・サーバ・コンピュータ・システム。
【請求項３】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記第１および第２組のダイレクト・アタッチト・データ・ドライブが、アクティブ−パッシブ構成を備えている、マルチ・サーバ・コンピュータ・システム。
【請求項４】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、多数のサーバが、アクティブ−パッシブおよびデュアル−アクティブ・モードの組み合わせで動作する、マルチ・サーバ・コンピュータ・システム。
【請求項５】
請求項１記載のマルチ・サーバ・コンピュータ・システムであって、更に、前記ホスト・サーバ上に存在する第１ＲＡＩＤコントローラと、前記ピア・サーバ上に存在する第２ＲＡＩＤコントローラとを備えており、前記ＲＡＩＤコントローラが、前記高可用性ダイレクト・アタッチト・データ・ストレージ・システムへのサーバ・アクセスを仲介する、マルチ・サーバ・コンピュータ・システム。
【請求項６】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットＩ／Ｏリード要求が、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードＩ／Ｏデータに宛てられている場合、前記ホスト・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに前記ホット・リードＩ／Ｏデータを供給する、マルチ・サーバ・コンピュータ・システム。
【請求項７】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットＩ／Ｏリード要求が、前記ピア・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードＩ／Ｏデータに宛てられている場合、前記ピア・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに、前記ホット・リードＩ／Ｏデータを供給する、マルチ・サーバ・コンピュータ・システム。
【請求項８】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットＩ／Ｏライト要求が、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、ホット・ライト・データを、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに格納し、更に前記ピア・サーバ上に存在する前記キャッシュ・メモリにミラーリングする、マルチ・サーバ・コンピュータ・システム。
【請求項９】
請求項８記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けた前記ホットＩ／Ｏライトが、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットＩ／Ｏライトのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるＳＡＳリンクを通じた前記ホット・ライト・データの１回の移送を含む、マルチ・サーバ・コンピュータ・システム。
【請求項１０】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットＩ／Ｏライト要求が、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、ホット・ライト・データを、前記ホスト・サーバ上に存在する前記前記キャッシュ・メモリに格納し、更に前記ピア・サーバ上に存在する前記キャッシュ・メモリにミラーリングする、マルチ・サーバ・コンピュータ・システム。
【請求項１１】
請求項１０記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けた前記ホットＩ／Ｏライト・データが、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットＩ／Ｏライト・データのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるＳＡＳリンクを通じた前記ホット・ライト・データの１回の移送を含む、マルチ・サーバ・コンピュータ・システム。
【請求項１２】
請求項１記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・キャッシュ・メモリが、前記ホスト・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、マルチ・サーバ・コンピュータ・システム。
【請求項１３】
請求項１２記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ピア・キャッシュ・メモリが、前記ピア・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、マルチ・サーバ・コンピュータ・システム。
【請求項１４】
ホスト・サーバと、ピア・サーバと、高可用性ダイレクト・アタッチト・ストレージ・システムとを備えているマルチ・コントローラ・コンピュータ・システムを設ける方法であって、
前記ホスト・サーバが所有する第１組のダイレクト・アタッチト・データ・ドライブを設けるステップと、
前記ピア・サーバが所有する第２組のダイレクト・アタッチト・データ・ドライブを設けるステップと、
前記ホスト・サーバ上に存在するまたはこれに取り付けられたホスト・キャッシュ・メモリと、前記ピア・サーバ上に存在するまたはこれに取り付けられたピア・キャッシュ・メモリとを備えているキャッシュ・メモリ・システムとを設けるステップと、
を備えており、
前記キャッシュ・メモリ・システムが、前記キャッシュ・メモリ・システムに格納されているホットＩ／Ｏデータに対してアクティブ−アクティブ・アクセスを付与しつつ、前記第１および第２組のダイレクト・アタッチト・データ・ドライブ間において、前記ホットＩ／Ｏデータに関係するマルチ・イニシエータ対立を回避し、
前記ホスト・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記ピア・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記ホストおよびピア・キャッシュ・メモリが、更に、前記ホストおよびピア・キャッシュ・メモリに格納されているダーティ・ライト・データにデータ矛盾が生ずるのを防ぐため、ならびにサーバまたはコントローラの障害の場合に、制約がないデータ可用性を提供するために、前記ホストおよびピア・キャッシュ・メモリ間に跨がってミラーリングされたホット・ライト・データを格納するように構成されている、方法。
【請求項１５】
請求項１４記載の方法であって、更に、前記第１および第２組のダイレクト・アタッチト・データ・ドライブを、デュアル−アクティブ構成に設定するステップを備えている、方法。
【請求項１６】
請求項１４記載の方法であって、前記第１および第２組のダイレクト・アタッチト・データ・ドライブを、アクティブ−パッシブ構成に設定するステップを備えている、方法。
【請求項１７】
請求項１４記載の方法であって、更に、前記ホスト・サーバ上に存在する第１ＲＡＩＤコントローラと、前記ピア・サーバ上に存在する第２ＲＡＩＤコントローラとを設けるステップを備えており、前記ＲＡＩＤコントローラが、前記高可用性ダイレクト・アタッチト・データ・ストレージ・システムへのサーバ・アクセスを仲介する、方法。
【請求項１８】
請求項１４記載の方法であって、更に、前記ホスト・サーバ上において、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードＩ／Ｏデータに宛てたホットＩ／Ｏリード要求を受けるステップと、前記ホスト・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに、前記要求されたデータを供給するステップとを備えている、方法。
【請求項１９】
請求項１４記載の方法であって、更に、前記ホスト・サーバにおいて、前記ピア・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードＩ／Ｏデータに宛てたホットＩ／Ｏリード要求を受けるステップと、前記ピア・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに、前記要求されたデータを供給するステップとを備えている、方法。
【請求項２０】
請求項１４記載の方法であって、更に、前記ホスト・サーバにおいて、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てたホットＩ／Ｏライト要求を受けるステップと、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに前記ホット・ライト・データを格納するステップと、 前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、前記ピア・サーバ上に存在する前記キャッシュ・メモリに前記ホット・ライト・データをミラーリングするステップとを備えている、方法。
【請求項２１】
請求項２０記載の方法において、前記ホスト・サーバが受けた前記ホットＩ／Ｏライトが、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットＩ／Ｏライトのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるＳＡＳリンクを通じた前記ホット・ライト・データの１回の移送を含む、方法。
【請求項２２】
請求項１４記載の方法であって、更に、前記ホスト・サーバ上において、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てたホットＩ／Ｏライト要求を受けるステップと、前記ホスト・サーバ上に存在する前記前記キャッシュ・メモリに前記ホット・リード・データを格納するステップと、前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、前記ピア・サーバ上に存在する前記キャッシュ・メモリに前記ホット・ライト・データをミラーリングするステップとを含む、方法。
【請求項２３】
請求項２２記載の方法において、前記ホスト・サーバが受けた前記ホットＩ／Ｏライト・データが、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットＩ／Ｏライト・データのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるＳＡＳリンクを通じた前記ホット・ライト・データの１回の移送を含む、マルチ・サーバ・コンピュータ・システム。
【請求項２４】
請求項１４記載の方法において、前記ホスト・キャッシュ・メモリが、前記ホスト・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、方法。
【請求項２５】
請求項１４記載の方法において、前記ピア・キャッシュ・メモリが、前記ピア・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、方法。
【請求項２６】
ホスト・サーバと、前記サーバ上で動作する第１および第２Ｉ／Ｏコントローラと、高可用性ダイレクト・アタッチト・ストレージ・システムとを備えているマルチ・コントローラ・コンピュータ・システムであって、
前記第１Ｉ／Ｏコントローラが所有する第１組のダイレクト・アタッチト・データ・ドライブと、
前記第２Ｉ／Ｏコントローラが所有する第２組のダイレクト・アタッチト・データ・ドライブと、
前記サーバ上に存在し、前記第１Ｉ／Ｏコントローラに専用の第１キャッシュ・メモリと、前記第２Ｉ／Ｏコントローラに専用の第２キャッシュ・メモリとを備えているキャッシュ・メモリ・システムと、
を備えており、
前記キャッシュ・メモリ・システムが、前記第１および第２キャッシュ・メモリに格納されているホットＩ／Ｏデータに対してアクティブ−アクティブ・アクセスを付与しつつ、前記第１および第２組のダイレクト・アタッチト・データ・ドライブ間において、前記ホットＩ／Ｏデータに関係するマルチ・イニシエータ対立を回避し、
前記第１キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記第２キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
前記ホストおよびピア・キャッシュ・メモリが、更に、前記第１および第２キャッシュ・メモリに格納されているダーティ・ライト・データにデータ矛盾が生ずるのを防ぐため、ならびにサーバまたはコントローラの障害の場合に、制約がないデータ可用性を提供するために、前記第１および第２キャッシュ・メモリ間に跨がってミラーリングされたホット・ライト・データを格納するように構成されている、マルチ・コントローラ・コンピュータ・システム。
【外国語明細書】
2014002743000001.pdf