JP2014002743A - スマート・アクティブ−アクティブ高可用性dasシステム - Google Patents

スマート・アクティブ−アクティブ高可用性dasシステム Download PDF

Info

Publication number
JP2014002743A
JP2014002743A JP2013127811A JP2013127811A JP2014002743A JP 2014002743 A JP2014002743 A JP 2014002743A JP 2013127811 A JP2013127811 A JP 2013127811A JP 2013127811 A JP2013127811 A JP 2013127811A JP 2014002743 A JP2014002743 A JP 2014002743A
Authority
JP
Japan
Prior art keywords
server
data
hot
cache memory
peer
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2013127811A
Other languages
English (en)
Other versions
JP2014002743A5 (ja
Inventor
Samanta Sumanesh
スマネシュ・スマンタ
Biswas Sujan
スジュアン・ビスワス
Christian Simeonescu Horia
ホリア・クリスチャン・シメオネスク
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
LSI Corp
Original Assignee
LSI Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by LSI Corp filed Critical LSI Corp
Publication of JP2014002743A publication Critical patent/JP2014002743A/ja
Publication of JP2014002743A5 publication Critical patent/JP2014002743A5/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/08Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1666Error detection or correction of the data by redundancy in hardware where the redundant component is memory or memory area
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2089Redundant storage control functionality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2097Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements maintaining the standby controller/processing unit updated
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

【課題】DASクラスタにおいてアクティブ−アクティブに近い性能を提供つつ、アクティブ−パッシブまたはデュアル・アクティブ・システムの実現の簡素さを保持する高可用性DASシステムを提供する。
【解決手段】クラスタにおける各ノードは、アクティブ−アクティブ・モードでホットI/Oを格納するソリッド・ステート・キャッシュを備え、「ホット領域」に対するアクセスが静まったとき、またはキャッシュ・ミスの場合にのみ、デュアル−アクティブまたはアクティブ/パッシブDAS−RAIDシステムに対しデータを読み出し、または書き込みを許可する。ホットI/Oデータは、動的に蓄積したホット・リード・データ、及びホット・ライト・データを含み、潜在的なダーティ・ライト・データの矛盾を回避し、更にサーバ障害の場合に高い可用性を提供するために、ホット・ライト・データをソリッド・ステート・キャッシュ・メモリ間でミラーリングする。
【選択図】図1

Description

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

Claims (26)

  1. ホスト・サーバと、ピア・サーバと、高可用性ダイレクト・アタッチト・ストレージ・システムとを備えているマルチ・コントローラ・コンピュータ・システムであって、
    前記ホスト・サーバが所有する第1組のダイレクト・アタッチト・データ・ドライブと、
    前記ピア・サーバが所有する第2組のダイレクト・アタッチト・データ・ドライブと、
    前記ホスト・サーバ上に存在するまたはこれに取り付けられたホスト・キャッシュ・メモリと、前記ピア・サーバ上に存在するまたはこれに取り付けられたピア・キャッシュ・メモリとを備えているキャッシュ・メモリ・システムと、
    を備えており、
    前記キャッシュ・メモリ・システムが、前記キャッシュ・メモリ・システムに格納されているホットI/Oデータに対してアクティブ−アクティブ・アクセスを付与しつつ、前記第1および第2組のダイレクト・アタッチト・データ・ドライブ間において、前記ホットI/Oデータに関係するマルチ・イニシエータ対立を回避し、
    前記ホスト・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
    前記ピア・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
    前記ホストおよびピア・キャッシュ・メモリが、更に、前記ホストおよびピア・キャッシュ・メモリに格納されているダーティ・ライト・データにデータ矛盾が生ずるのを防ぐため、ならびにサーバまたはコントローラの障害の場合に、制約がない(uncommitted)データ可用性を提供するために、前記ホストおよびピア・キャッシュ・メモリ間に跨がってミラーリングされたホット・ライト・データを格納するように構成されている、マルチ・コントローラ・コンピュータ・システム。
  2. 請求項1記載のマルチ・サーバ・コンピュータ・システムにおいて、前記第1および第2組のダイレクト・アタッチト・データ・ドライブが、デュアル−アクティブ構成を備えている、マルチ・サーバ・コンピュータ・システム。
  3. 請求項1記載のマルチ・サーバ・コンピュータ・システムにおいて、前記第1および第2組のダイレクト・アタッチト・データ・ドライブが、アクティブ−パッシブ構成を備えている、マルチ・サーバ・コンピュータ・システム。
  4. 請求項1記載のマルチ・サーバ・コンピュータ・システムにおいて、多数のサーバが、アクティブ−パッシブおよびデュアル−アクティブ・モードの組み合わせで動作する、マルチ・サーバ・コンピュータ・システム。
  5. 請求項1記載のマルチ・サーバ・コンピュータ・システムであって、更に、前記ホスト・サーバ上に存在する第1RAIDコントローラと、前記ピア・サーバ上に存在する第2RAIDコントローラとを備えており、前記RAIDコントローラが、前記高可用性ダイレクト・アタッチト・データ・ストレージ・システムへのサーバ・アクセスを仲介する、マルチ・サーバ・コンピュータ・システム。
  6. 請求項1記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットI/Oリード要求が、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードI/Oデータに宛てられている場合、前記ホスト・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに前記ホット・リードI/Oデータを供給する、マルチ・サーバ・コンピュータ・システム。
  7. 請求項1記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットI/Oリード要求が、前記ピア・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードI/Oデータに宛てられている場合、前記ピア・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに、前記ホット・リードI/Oデータを供給する、マルチ・サーバ・コンピュータ・システム。
  8. 請求項1記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットI/Oライト要求が、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、ホット・ライト・データを、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに格納し、更に前記ピア・サーバ上に存在する前記キャッシュ・メモリにミラーリングする、マルチ・サーバ・コンピュータ・システム。
  9. 請求項7記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けた前記ホットI/Oライトが、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットI/Oライトのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるSASリンクを通じた前記ホット・ライト・データの1回の移送を含む、マルチ・サーバ・コンピュータ・システム。
  10. 請求項1記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けたホットI/Oライト要求が、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、ホット・ライト・データを、前記ホスト・サーバ上に存在する前記前記キャッシュ・メモリに格納し、更に前記ピア・サーバ上に存在する前記キャッシュ・メモリにミラーリングする、マルチ・サーバ・コンピュータ・システム。
  11. 請求項9記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・サーバが受けた前記ホットI/Oライト・データが、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットI/Oライト・データのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるSASリンクを通じた前記ホット・ライト・データの1回の移送を含む、マルチ・サーバ・コンピュータ・システム。
  12. 請求項1記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ホスト・キャッシュ・メモリが、前記ホスト・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、マルチ・サーバ・コンピュータ・システム。
  13. 請求項11記載のマルチ・サーバ・コンピュータ・システムにおいて、前記ピア・キャッシュ・メモリが、前記ピア・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、マルチ・サーバ・コンピュータ・システム。
  14. ホスト・サーバと、ピア・サーバと、高可用性ダイレクト・アタッチト・ストレージ・システムとを備えているマルチ・コントローラ・コンピュータ・システムを設ける方法であって、
    前記ホスト・サーバが所有する第1組のダイレクト・アタッチト・データ・ドライブを設けるステップと、
    前記ピア・サーバが所有する第2組のダイレクト・アタッチト・データ・ドライブを設けるステップと、
    前記ホスト・サーバ上に存在するまたはこれに取り付けられたホスト・キャッシュ・メモリと、前記ピア・サーバ上に存在するまたはこれに取り付けられたピア・キャッシュ・メモリとを備えているキャッシュ・メモリ・システムとを設けるステップと、
    を備えており、
    前記キャッシュ・メモリ・システムが、前記キャッシュ・メモリ・システムに格納されているホットI/Oデータに対してアクティブ−アクティブ・アクセスを付与しつつ、前記第1および第2組のダイレクト・アタッチト・データ・ドライブ間において、前記ホットI/Oデータに関係するマルチ・イニシエータ対立を回避し、
    前記ホスト・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
    前記ピア・キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
    前記ホストおよびピア・キャッシュ・メモリが、更に、前記ホストおよびピア・キャッシュ・メモリに格納されているダーティ・ライト・データにデータ矛盾が生ずるのを防ぐため、ならびにサーバまたはコントローラの障害の場合に、制約がないデータ可用性を提供するために、前記ホストおよびピア・キャッシュ・メモリ間に跨がってミラーリングされたホット・ライト・データを格納するように構成されている、方法。
  15. 請求項13記載の方法であって、更に、前記第1および第2組のダイレクト・アタッチト・データ・ドライブを、デュアル−アクティブ構成に設定するステップを備えている、方法。
  16. 請求項13記載の方法であって、前記第1および第2組のダイレクト・アタッチト・データ・ドライブを、アクティブ−パッシブ構成に設定するステップを備えている、方法。
  17. 請求項13記載の方法であって、更に、前記ホスト・サーバ上に存在する第1RAIDコントローラと、前記ピア・サーバ上に存在する第2RAIDコントローラとを設けるステップを備えており、前記RAIDコントローラが、前記高可用性ダイレクト・アタッチト・データ・ストレージ・システムへのサーバ・アクセスを仲介する、方法。
  18. 請求項13記載の方法であって、更に、前記ホスト・サーバ上において、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードI/Oデータに宛てたホットI/Oリード要求を受けるステップと、前記ホスト・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに、前記要求されたデータを供給するステップとを備えている、方法。
  19. 請求項13記載の方法であって、更に、前記ホスト・サーバにおいて、前記ピア・サーバ上に存在する前記キャッシュ・メモリに格納されているホット・リードI/Oデータに宛てたホットI/Oリード要求を受けるステップと、前記ピア・サーバ上に存在する前記キャッシュ・メモリへのダイレクト・メモリ・アクセスによって、前記ホスト・サーバのシステム・メモリに、前記要求されたデータを供給するステップとを備えている、方法。
  20. 請求項13記載の方法であって、更に、前記ホスト・サーバにおいて、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てたホットI/Oライト要求を受けるステップと、前記ホスト・サーバ上に存在する前記キャッシュ・メモリに前記ホット・ライト・データを格納するステップと、 前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、前記ピア・サーバ上に存在する前記キャッシュ・メモリに前記ホット・ライト・データをミラーリングするステップとを備えている、方法。
  21. 請求項19記載の方法において、前記ホスト・サーバが受けた前記ホットI/Oライトが、前記ホスト・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットI/Oライトのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるSASリンクを通じた前記ホット・ライト・データの1回の移送を含む、方法。
  22. 請求項13記載の方法であって、更に、前記ホスト・サーバ上において、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てたホットI/Oライト要求を受けるステップと、前記ホスト・サーバ上に存在する前記前記キャッシュ・メモリに前記ホット・リード・データを格納するステップと、前記ホストおよびピアのソリッド・ステート・キャッシュ・メモリに格納されるダーティ・ライト・データにおける潜在的なデータ矛盾を回避するために、前記ピア・サーバ上に存在する前記キャッシュ・メモリに前記ホット・ライト・データをミラーリングするステップとを含む、方法。
  23. 請求項21記載の方法において、前記ホスト・サーバが受けた前記ホットI/Oライト・データが、前記ピア・サーバが所有する前記ダイレクト・アクセス・データ・ドライブに宛てられている場合、前記ホットI/Oライト・データのキャッシュ動作が、前記ホスト・サーバとピア・サーバとの間におけるSASリンクを通じた前記ホット・ライト・データの1回の移送を含む、マルチ・サーバ・コンピュータ・システム。
  24. 請求項13記載の方法において、前記ホスト・キャッシュ・メモリが、前記ホスト・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、方法。
  25. 請求項13記載の方法において、前記ピア・キャッシュ・メモリが、前記ピア・サーバ上に存在するソリッド・ステート・キャッシュ・メモリを含む、方法。
  26. ホスト・サーバと、前記サーバ上で動作する第1および第2I/Oコントローラと、高可用性ダイレクト・アタッチト・ストレージ・システムとを備えているマルチ・コントローラ・コンピュータ・システムであって、
    前記第1I/Oコントローラが所有する第1組のダイレクト・アタッチト・データ・ドライブと、
    前記第2I/Oコントローラが所有する第2組のダイレクト・アタッチト・データ・ドライブと、
    前記サーバ上に存在し、前記第1I/Oコントローラに専用の第1キャッシュ・メモリと、前記第2I/Oコントローラに専用の第2キャッシュ・メモリとを備えているキャッシュ・メモリ・システムと、
    を備えており、
    前記キャッシュ・メモリ・システムが、前記第1および第2キャッシュ・メモリに格納されているホットI/Oデータに対してアクティブ−アクティブ・アクセスを付与しつつ、前記第1および第2組のダイレクト・アタッチト・データ・ドライブ間において、前記ホットI/Oデータに関係するマルチ・イニシエータ対立を回避し、
    前記第1キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
    前記第2キャッシュ・メモリが、前記ホット・リード・データが永続的に格納されている前記アタッチト・データ・ドライブの所有には関係なく、動的なシステムの使用から得られるホット・リード・データを格納するように構成されており、
    前記ホストおよびピア・キャッシュ・メモリが、更に、前記第1および第2キャッシュ・メモリに格納されているダーティ・ライト・データにデータ矛盾が生ずるのを防ぐため、ならびにサーバまたはコントローラの障害の場合に、制約がないデータ可用性を提供するために、前記第1および第2キャッシュ・メモリ間に跨がってミラーリングされたホット・ライト・データを格納するように構成されている、マルチ・コントローラ・コンピュータ・システム。
JP2013127811A 2012-06-19 2013-06-18 スマート・アクティブ−アクティブ高可用性dasシステム Withdrawn JP2014002743A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US13/526,881 US9015525B2 (en) 2012-06-19 2012-06-19 Smart active-active high availability DAS systems
US13/526,881 2012-06-19

Publications (2)

Publication Number Publication Date
JP2014002743A true JP2014002743A (ja) 2014-01-09
JP2014002743A5 JP2014002743A5 (ja) 2016-07-14

Family

ID=48625745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013127811A Withdrawn JP2014002743A (ja) 2012-06-19 2013-06-18 スマート・アクティブ−アクティブ高可用性dasシステム

Country Status (6)

Country Link
US (1) US9015525B2 (ja)
EP (1) EP2698703B1 (ja)
JP (1) JP2014002743A (ja)
KR (1) KR20130142965A (ja)
CN (1) CN103514108B (ja)
TW (1) TW201411348A (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20150286544A1 (en) * 2012-11-29 2015-10-08 Hewlett-Packard Development Company, L.P. Fault tolerance in a multi-core circuit
US9037799B2 (en) * 2013-02-11 2015-05-19 Avago Technologies General Ip (Singapore) Pte Ltd Rebuild of redundant secondary storage cache
JP6146087B2 (ja) * 2013-03-28 2017-06-14 富士通株式会社 ストレージ制御プログラム,ストレージ制御方法,ストレージシステム及びその階層制御装置
GB201315435D0 (en) * 2013-08-30 2013-10-16 Ibm Cache management in a computerized system
US9785499B2 (en) * 2014-02-12 2017-10-10 Seagate Technology Llc Hot-read data aggregation and code selection
JP6217033B2 (ja) * 2014-04-30 2017-10-25 華為技術有限公司Huawei Technologies Co.,Ltd. ハードディスク間のインタラクションのための方法、装置、およびシステム
TW201614412A (en) * 2014-10-02 2016-04-16 Wistron Corp Server system and controlling method thereof
KR20160058458A (ko) 2014-11-17 2016-05-25 에스케이하이닉스 주식회사 메모리 시스템 및 메모리 시스템의 동작 방법
US9891849B2 (en) 2016-04-14 2018-02-13 International Business Machines Corporation Accelerated recovery in data replication environments
US10437730B2 (en) * 2016-08-22 2019-10-08 International Business Machines Corporation Read cache synchronization in data replication environments
CN106407409A (zh) * 2016-09-22 2017-02-15 Tcl集团股份有限公司 基于das架构存储服务器的虚拟文件系统及其文件管理方法
US10359953B2 (en) * 2016-12-16 2019-07-23 Western Digital Technologies, Inc. Method and apparatus for offloading data processing to hybrid storage devices
CN106681665B (zh) * 2016-12-29 2020-04-24 北京奇虎科技有限公司 缓存数据的持久化存储方法及装置
US10691368B2 (en) 2017-03-31 2020-06-23 Samsung Electronics Co., Ltd. System and method for providing data replication in NVMe-oF ethernet SSD
CN107301021B (zh) * 2017-06-22 2021-03-09 苏州浪潮智能科技有限公司 一种利用ssd缓存对lun进行加速的方法和装置
US10795913B2 (en) 2018-10-11 2020-10-06 Capital One Services, Llc Synching and reading arrangements for multi-regional active/active databases
US10606497B1 (en) 2018-10-24 2020-03-31 International Business Machines Corporation Systems and methods for managing replication path direction in storage networks
KR102084650B1 (ko) 2019-12-23 2020-03-04 (주)백산에스엔케이 작업장의 hse 관리를 위한 라우터 기능을 구비한 스마트 das
US11144252B2 (en) * 2020-01-09 2021-10-12 EMC IP Holding Company LLC Optimizing write IO bandwidth and latency in an active-active clustered system based on a single storage node having ownership of a storage object
WO2021174063A1 (en) * 2020-02-28 2021-09-02 Nebulon, Inc. Cloud defined storage

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412045B1 (en) * 1995-05-23 2002-06-25 Lsi Logic Corporation Method for transferring data from a host computer to a storage media using selectable caching strategies
US6567889B1 (en) * 1997-12-19 2003-05-20 Lsi Logic Corporation Apparatus and method to provide virtual solid state disk in cache memory in a storage controller
US6321298B1 (en) * 1999-01-25 2001-11-20 International Business Machines Corporation Full cache coherency across multiple raid controllers
US6681339B2 (en) * 2001-01-16 2004-01-20 International Business Machines Corporation System and method for efficient failover/failback techniques for fault-tolerant data storage system
US7752173B1 (en) * 2005-12-16 2010-07-06 Network Appliance, Inc. Method and apparatus for improving data processing system performance by reducing wasted disk writes
US7444541B2 (en) * 2006-06-30 2008-10-28 Seagate Technology Llc Failover and failback of write cache data in dual active controllers
US7395390B2 (en) * 2006-07-12 2008-07-01 Inventec Corporation System for backing up cache memory in a double backup server structure
US10572188B2 (en) 2008-01-12 2020-02-25 Hewlett Packard Enterprise Development Lp Server-embedded distributed storage system
US7921328B1 (en) * 2008-04-18 2011-04-05 Network Appliance, Inc. Checkpoint consolidation for multiple data streams
JP5187017B2 (ja) * 2008-06-18 2013-04-24 富士通株式会社 分散ディスクキャッシュシステム及び分散ディスクキャッシュ方法
US8627015B2 (en) * 2009-07-31 2014-01-07 Emc Corporation Data processing system using cache-aware multipath distribution of storage commands among caching storage controllers
US8458239B2 (en) 2009-12-16 2013-06-04 International Business Machines Corporation Directory traversal in a scalable multi-node file system cache for a remote cluster file system
CN102122235B (zh) * 2011-01-24 2012-07-25 武汉固捷联讯科技有限公司 一种raid4系统及其数据读写方法
US9037799B2 (en) * 2013-02-11 2015-05-19 Avago Technologies General Ip (Singapore) Pte Ltd Rebuild of redundant secondary storage cache

Also Published As

Publication number Publication date
KR20130142965A (ko) 2013-12-30
EP2698703B1 (en) 2019-12-11
EP2698703A1 (en) 2014-02-19
CN103514108A (zh) 2014-01-15
US9015525B2 (en) 2015-04-21
US20130339786A1 (en) 2013-12-19
TW201411348A (zh) 2014-03-16
CN103514108B (zh) 2018-03-27

Similar Documents

Publication Publication Date Title
JP2014002743A (ja) スマート・アクティブ−アクティブ高可用性dasシステム
US10698818B2 (en) Storage controller caching using symmetric storage class memory devices
JP5951582B2 (ja) 外部キャッシュデバイスでのハイパーバイザのi/oステージング
US9830088B2 (en) Optimized read access to shared data via monitoring of mirroring operations
US8140811B2 (en) Nonvolatile storage thresholding
US7752409B2 (en) Storage system and computer system and processing method thereof
US9785561B2 (en) Integrating a flash cache into large storage systems
US10735500B2 (en) Application server to NVRAM path
US10303396B1 (en) Optimizations to avoid intersocket links
JP2010049502A (ja) ストレージサブシステム、及びこれを有するストレージシステム
US9836223B2 (en) Changing storage volume ownership using cache memory
JP2014002743A5 (ja)
US11074113B1 (en) Method and apparatus for performing atomic operations on local cache slots of a shared global memory
CN111857540A (zh) 数据存取方法、装置和计算机程序产品
US20170220476A1 (en) Systems and Methods for Data Caching in Storage Array Systems
TWI551988B (zh) 計算系統、用以控制存取記憶體之方法及相關電腦可讀儲存媒體
US9921913B2 (en) Flushing host cache data before rebuilding degraded redundant virtual disk
US9244868B2 (en) Leased lock in active-active high availability DAS systems
US20140129782A1 (en) Server Side Distributed Storage Caching
CN112513828A (zh) 以分布式方式实现文件的一致性和页面高速缓存支持
US11315028B2 (en) Method and apparatus for increasing the accuracy of predicting future IO operations on a storage system
US9298397B2 (en) Nonvolatile storage thresholding for ultra-SSD, SSD, and HDD drive intermix
US9703714B2 (en) System and method for management of cache configuration
US20180239703A1 (en) Reducing write-backs to memory by controlling the age of cache lines in lower level cache
JP2011232962A (ja) ディスクアレイ装置およびミラードキャッシュ制御方法

Legal Events

Date Code Title Description
RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20140801

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20140804

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20150522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20160526

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20160526

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20160706