JP5489868B2 - ダイレクトアタッチト・ストレージ(das)システムでキャッシングされたデータの保全性を保護する方法及び装置 - Google Patents

ダイレクトアタッチト・ストレージ(das)システムでキャッシングされたデータの保全性を保護する方法及び装置 Download PDF

Info

Publication number
JP5489868B2
JP5489868B2 JP2010130841A JP2010130841A JP5489868B2 JP 5489868 B2 JP5489868 B2 JP 5489868B2 JP 2010130841 A JP2010130841 A JP 2010130841A JP 2010130841 A JP2010130841 A JP 2010130841A JP 5489868 B2 JP5489868 B2 JP 5489868B2
Authority
JP
Japan
Prior art keywords
data
das
array
stored
raid
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.)
Expired - Fee Related
Application number
JP2010130841A
Other languages
English (en)
Other versions
JP2010282628A5 (ja
JP2010282628A (ja
Inventor
バート ルカ
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 Logic 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 Logic Corp filed Critical LSI Logic Corp
Publication of JP2010282628A publication Critical patent/JP2010282628A/ja
Publication of JP2010282628A5 publication Critical patent/JP2010282628A5/ja
Application granted granted Critical
Publication of JP5489868B2 publication Critical patent/JP5489868B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0866Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches for peripheral storage systems, e.g. disk cache
    • 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/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0804Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches with main memory updating
    • 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
    • G06F12/0802Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
    • G06F12/0806Multiuser, multiprocessor or multiprocessing cache systems
    • G06F12/084Multiuser, multiprocessor or multiprocessing cache systems with a shared cache
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/22Employing cache memory using specific memory technology
    • G06F2212/222Non-volatile memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2212/00Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
    • G06F2212/26Using a specific storage system architecture
    • G06F2212/261Storage comprising a plurality of storage devices
    • G06F2212/262Storage comprising a plurality of storage devices configured as RAID

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System Of A Hierarchy Structure (AREA)

Description

関連出願の相互参照
本願は、その全体が参照によって本明細書に組み込まれている、2009年6月8日に出願した米国仮出願第61/268,055号、名称「METHOD TO EFFICIENTLY USE SSD AS WB CACHE ELEMENT IN BOTH PRIVATE AND SHARED DAS CONFIGURATIONS」の優先権及び出願日の利益を主張するものである。
本発明は、全般的にはデータ・ストレージ・システムに関し、より具体的には、ダイレクトアタッチト・ストレージ(direct−attached storage、DAS)システム内にキャッシングされたデータの保全性を保護する方法及び装置に関する。
ストレージ・アレイ又はディスク・アレイは、複数の磁気ハード・ディスク・ドライブ(HDD)又は類似する永続ストレージ・ユニットを含むデータ・ストレージ・デバイスである。ストレージ・アレイは、大量のデータを効率的な形で格納することを可能にすることができる。サーバ又はワークステーションを、ストレージ・アレイに直接接続し、ストレージ・アレイがそのサーバ又はワークステーションにとってローカルになるようにすることができる。サーバ又はワークステーションがストレージ・アレイに直接接続される場合、そのストレージ・アレイは、通常、ダイレクトアタッチト・ストレージ(DAS)システムと呼ばれる。その代わりに、サーバ又はワークステーションを、ストレージ・アレイ・ネットワーク(storage array network、SAN)を介してストレージ・アレイにリモート接続することもできる。SANシステムでは、ストレージ・アレイはサーバ又はワークステーションにとってローカルではないが、アレイのディスク・ドライブは、サーバ又はワークステーションのオペレーティング・システム(OS)にはローカルに接続されているように見える。
DASシステム及びSANシステムは、しばしば、RAID(Redundant Array of Inexpensive(又はIndependent)Disks)システムとして構成される。RAIDシステムは、ストレージ信頼性を改善するため及び/又は入出力(I/O)性能を改善するために、ストレージ冗長性を使用する。一般に、RAIDシステムは、通常は物理ディスク・ドライブ(PD)と呼ばれる複数の磁気HDDを同時に使用して、より高いレベルの性能、信頼性、及び/又はより大きいデータ・ボリューム・サイズを達成する。句「RAID」は、一般に、複数のPDの間でデータを分割し、複製する、コンピュータ・データ・ストレージ方式を記述するのに使用される。RAIDシステムでは、1つ又は複数のPDが、1つのRAID仮想ディスク・ドライブ(VD)としてセットアップされる。RAID VDでは、データを複数のPDにまたがって分散させることができるが、VDは、ユーザ及びサーバ又はワークステーションのOSには、単一のディスクに見える。
RAIDシステムとして構成されたDASシステムでは、DASコントローラが、RAIDコントローラとして機能する。そのようなシステムでは、RAIDコントローラは、そのローカル・メモリの一部をキャッシュ・メモリとして使用する。キャッシュ・メモリは、PDに書き込まれるべきデータを一時的に格納するのに使用される。この目的に使用されるキャッシュ・メモリ構成の1タイプが、ライト・バック(WB)キャッシュ・メモリ構成として知られる。WBキャッシュ・メモリ構成では、キャッシュ・コマンドは、通常、データがキャッシュ・メモリに移動されるや否や、完了する。そのような構成では、キャッシングされたデータの保全性を維持することは、データが、キャッシングされた後にPDへの書込みのためにコミットされるためにフェールオーバー・イベント又はフェールバック・イベントが発生した場合、難題となり得る。したがって、フェールオーバー・イベント又はフェールバック・イベントの発生が、キャッシングされたデータの破壊をもたらさないことを保証するために、措置を講じなければならない。言い換えると、DASシステムは、キャッシュ・コヒーレンシを提供しなければならない。キャッシュ・コヒーレンシを提供するために、キャッシングされたデータは、通常、図1〜3を参照してこれから説明するように、別のメモリ・デバイス内で複製される。
図1に、RAIDテクノロジを実施する通常のDASシステム2のブロック図を示す。システム2は、サーバ3、RAIDコントローラ4、及びPCI(peripheral interconnect)バス5を含む。RAIDコントローラ4は、中央処理装置(CPU)6、メモリ・デバイス7、及びI/Oインターフェース・デバイス8を含む。メモリ・デバイス7のストレージ空間の一部は、キャッシュ・メモリとして使用される。代替案では、RAIDコントローラ4が、キャッシュ・メモリとして使用される別々のメモリ・デバイス(図示せず)を含むことができる。I/Oインターフェース・デバイス8は、SAS(Serial Attached SCSI)標準規格及び/又はSATA(Serial Advanced Technology Attachment)標準規格などの既知のデータ転送プロトコル標準規格に従ってデータ転送を実行するように構成される。I/Oインターフェース・デバイス8は、複数のPD 9との間でのデータの転送を制御する。RAIDコントローラ4は、PCIバス5を介して、サーバCPU 11及びサーバ・メモリ・デバイス12と通信する。サーバ・メモリ・デバイス12は、サーバCPU 11が実行するソフトウェア・プログラム及びデータを格納する。
通常の書込みアクション中に、サーバCPU 11は、PCIバス5を介してRAIDコントローラ4に書込み要求命令を送る。RAIDコントローラ4のCPU 6は、RAIDコントローラ4のメモリ・デバイス7内のキャッシュ・メモリにデータを一時的に格納させる。このデータは、その後、メモリ・デバイス7からI/Oインターフェース・デバイス8を介してPD 9のうちの1つ又は複数に転送される。メモリ・デバイス7は、RAID VDの仮想アドレスとPD 9の物理アドレスとの間のマッピングを実行するコア・ロジックを含む。RAIDコントローラ4のCPU 6は、システム2のRAIDレベルに従って、パリティ計算などの計算を実行する。システム2の現在のRAIDレベルがパリティを使用する場合には、I/Oインターフェース・デバイス8は、パリティ・ビットをPD 9のうちの1つ又は複数に格納させる。
通常の読取り動作中に、サーバCPU 11は、対応する読取り要求をPCIバス5を介してRAIDコントローラ4に送る。RAIDコントローラCPU 6は、メモリ・デバイス7に保持されたロジックを使用して、要求を処理し、要求されたデータがメモリ・デバイス7内のキャッシュ・メモリに保持されている場合には、要求されたデータをメモリ・デバイス7のキャッシュ・メモリから取り出す。要求されたデータがメモリ・デバイス7内のキャッシュ・メモリに保持されていない場合には、RAIDコントローラCPU 6は、要求されたデータをPD 9から取り出させる。取り出されたデータは、読取り要求を満たすために、PCIバス5を介してサーバCPU 11に転送される。
図2に、図1に示された複数のRAIDコントローラ4と、RAIDコントローラ4によって共有される図1に示されたPD 9のアレイとを含む、既知の共有DASシステム23のブロック図を示す。共有DASシステム23内でキャッシュ・コヒーレンシを提供するために、RAIDコントローラ4のうちの1つのメモリ・デバイス7内にキャッシングされたデータは、RAIDコントローラ4がキャッシュ・ミラーリングに関して対になるように、他のRAIDコントローラ4のうちの1つのRAIDコントローラ4のメモリ・デバイス7内に複製される、すなわちミラーリングされる。キャッシングされたデータの複製は、図2では矢印24によって表される。このタイプのキャッシュ・コヒーレンシ技法は、一般に有効であるが、フェールオーバー・イベント又はフェールバック・イベントが所与の対の両方のRAIDコントローラ4で発生する場合には、そのミラーリングされた対のキャッシングされたデータの保全性は、危険にさらされる。
図3に、キャッシュ・コヒーレンシが、それぞれのRAIDコントローラ4のメモリ・デバイス7内にキャッシングされたデータを他のRAIDコントローラ4それぞれのメモリ・デバイス7内に複製することによって提供される、図2に示された共有DASシステム23のブロック図を示す。キャッシングされたデータの複製は、図3では矢印24及び25によって表される。このタイプのキャッシュ・コヒーレンシ技法は、一般に有効であるが、そのような技法の物理的実装形態は、極端に複雑であり、大量の帯域幅を利用する。さらに、システム23がスケール・アウトされ、より多数のRAIDコントローラ4がシステム23に追加されるとき、システム23の複雑さ及びキャッシュ・ミラーリングに利用される帯域幅の量は、指数関数的に増える。これらの理由から、このキャッシュ・コヒーレンシ解決策は、ほとんどの場合に非実用的である。
DASシステムでのキャッシュ・コヒーレンシ問題に対するもう1つの解決策は、WBキャッシュ構成ではなくWTキャッシュ構成を使用することである。しかし、WBキャッシュ構成ではなくWTキャッシュ構成を使用すると、一般に、DASシステムのI/O性能を劣化させ、したがって、競争的な市場において多くのストレージ・アプリケーションにとって不適切である。キャッシュ・コヒーレンシ問題は、SANコントローラを使用して簡単に対処することができるが、そのような解決策は、相対的に高価であり、多くの場合に実施が不可能なほどに高価である。
米国仮出願第61/268,055号
したがって、キャッシングされたデータの保全性を十分に保護し、DASシステムで使用される既知のキャッシュ・コヒーレンシ解決策の上述の制限を克服する、DASシステムの必要が存在する。
本発明は、キャッシングされたデータの保全性を保護するDASシステム、方法、及びコンピュータ可読媒体を提供する。このDASシステムは、PDのRAIDアレイとして構成された複数の磁気HDDと、キャッシュ・メモリとして構成されたSSD(solid state disk)のアレイと、PDのRAIDアレイ及びSSDアレイに接続された少なくとも第1の及び第2のDASコントローラとを含む。各DASコントローラハ、CPU、ローカル・メモリ・デバイス、及びI/Oインターフェース・デバイスを有する。CPUのそれぞれ及びローカル・メモリ・デバイスのそれぞれは、PDのRAIDアレイのRAID構成と整合するRAIDテクノロジレベルを実行するように構成される。各CPUは、それぞれのDASコントローラ内で受け取られたデータをSSDアレイのキャッシュ・メモリに一時的に格納させ、その後、PDのRAIDアレイのPDのうちの1つ又は複数に格納させる、キャッシング・アルゴリズムを実行するように構成される。
DASシステム内でキャッシングされたデータの保全性を保護する方法は、第1のDASコントローラ内でデータを受け取ること、第1のDASコントローラ内で受け取られたデータをSSDアレイの1つ又は複数のSSDに一時的に格納させ、その後、PDのRAIDアレイとして構成された1つ又は複数の磁気HDDに格納させる、キャッシング・アルゴリズムを第1のDASコントローラのCPU内で実行すること、第2のDASコントローラ内でデータを受け取ること、ならびに第2のDASコントローラ内で受け取られたデータをSSDアレイ内の1つ又は複数のSSDに一時的に格納させ、その後、PDのRAIDアレイとして構成された磁気HDDのうちの1つ又は複数に格納させる、キャッシング・アルゴリズムを第2のDASコントローラのCPU内で実行することを含む。
コンピュータ可読媒体は、DASコントローラによって実行される、第1の命令セット及び第2の命令セットを含む。第1の命令セットは、DASコントローラでデータを受け取る。第2の命令セットは、第1のDASコントローラで受け取られたデータを、SSDアレイの1つ又は複数のSSDに一時的に格納させ、その後、PDのRAIDアレイとして構成された1つ又は複数の磁気HDDに格納させるキャッシング・アルゴリズムを第1のDASコントローラ内で実行する。
本発明の上記及び他の特徴及び利点は、以下の説明、図面、及び特許請求の範囲から明らかになる。
RAIDテクノロジを実施する既知のDASシステムを示すブロック図である。 図1に示された複数のRAIDコントローラが図1に示されたPDのアレイを共有し、キャッシングされたデータをRAIDコントローラ対のメモリ・デバイス内にミラーリングすることによってキャッシュ・コヒーレンシが提供される、共有DASシステムを示すブロック図である。 各RAIDコントローラのキャッシングされたデータを他のRAIDコントローラのすべてのメモリ・デバイス内にミラーリングすることによってキャッシュ・コヒーレンシが提供される、図2に示された共有DASシステムを示すブロック図である。 DASシステムのDASコントローラの外部の少なくとも1つの共有SSD(solid state disk)が、DASシステムのPDに書き込まれるデータをキャッシングするWBキャッシュ・メモリとして使用される、一実施形態による共有DASシステムを示すブロック図である。 図4に示されたDASコントローラの1つを示すブロック図である。 例示的実施形態による、図4に示されたDASコントローラの1つのCPUによって実行されるWBキャッシング・アルゴリズムを表す流れ図である。 データはSSDアレイ内にキャッシングされるが、関連するメタデータはDASコントローラの内部のキャッシュ・メモリ内にキャッシングされる、例示的一実施形態による図4に示されたDASシステムを示すブロック図である。 データ及び関連するメタデータがSSDアレイ内にキャッシングされる、例示的一実施形態による図4に示されたDASシステムを示すブロック図である。 図8に示されたDASコントローラによって実行されるWBキャッシング・アルゴリズムを表す流れ図である。
本発明によれば、DASシステムのDASコントローラの外部のSSD(solid state disk)のアレイが、DASコントローラにより、WBキャッシング動作を実行するためのWBキャッシュ・メモリとして使用される、RAIDテクノロジを実施するDASシステムが提供される。外部SSDアレイをWBキャッシュ・メモリとして使用すると、DASシステムの複雑さを大幅には増やさず、キャッシング動作を実行するために利用される帯域幅の量を増やさずに、DASシステムを完全にキャッシュ・コヒーレントにすることが可能になる。さらに、外部SSDアレイをWBキャッシュ・メモリとして使用すると、図1〜3を参照して上で説明したようにDASコントローラをミラーリングする必要がなくなる。
図4に、DASシステム100のSSDアレイ110が、DASシステム100の複数のDASコントローラ120によりWBキャッシュ・メモリとして共有される、例示的実施形態による本発明のDASシステム100のブロック図を示す。図5に、図4に示されたDASコントローラ120のうちの1つのブロック図を示す。DASシステム100のDASコントローラ120は、図1に示されたRAIDコントローラ4の構成と同一の又はこれに類似する構成を有する。DASコントローラ120のそれぞれは、キャッシング動作に関するものを除いて、RAIDコントローラ4が動作するのと同じように動作する。したがって、図1に示されたRAIDコントローラ4の場合と同様に、図4に示されたDASコントローラ120もそれぞれ、RAIDコントローラとして構成される。DASシステム100は、RAIDテクノロジを使用する。本発明は、DASシステム100内で使用されるRAIDのレベルに関して限定されない。
RAIDは、異なるシステム設計に対応する7つの基本レベルを有し、これらのレベルのいずれか1つ又は複数を、DASシステム100内で実施することができる。異なるRAIDレベルの簡単な説明をこれから行うが、これらのRAIDレベルは、当技術分野で周知である。通常はRAIDレベル0〜6と称する、7つの基本RAIDレベルは、次のとおりである。RAIDレベル0は、改善されたデータ信頼性及び高められたI/O性能を達成するためにストライピングを使用する。用語「ストライピング」は、単一のデータ・ファイルなど論理的に順次のデータが、フラグメント化され、ラウンドロビン形式で複数のPDに割り当てられることを意味する。したがって、データは、そのデータが書き込まれるとき、複数のPD上に「ストライピングされる」と言われる。ストライピングは、性能を改善し、追加のストレージ容量を提供する。RAIDレベル1は、パリティなしのミラーリングを使用する。用語「ミラーリング」は、データが継続的に使用可能であることを保証するために、データが別々のPD上にリアル・タイムで複製されることを意味する。このタイプの複製は、データ冗長性を提供する。RAIDレベル2は、冗長性及びストライピングを使用する。RAIDレベル2では、冗長性は、ハミング・コードの使用によって達成され、このハミング・コードは、PD上のビットにまたがって計算され、複数のPDに格納される。あるPDが故障した場合に、パリティ・ビットを使用して、データを再構成することができる。
RAIDレベル3システムは、バイトレベル・ストライピングを、インターリーブされたパリティ・ビット及び専用パリティPDと組み合わせて使用する。バイトレベル・ストライピング及び冗長性の使用は、改善された性能をもたらし、システムにフォールト・トレランスを与える。RAIDレベル3システムは、パリティなしで動作を継続することができ、パリティPDが故障した場合に、性能ペナルティをこうむらない。RAIDレベル4は、RAIDレベル4システムがバイトレベル又はワード・レベルのストライピングではなくブロックレベルのストライピングを使用することを除いて、RAIDレベル3と本質的に同一である。各ストライプは、比較的大きいので、単一のファイルを1ブロックに格納することができる。各PDは独立に動作し、多数の異なるI/O要求を、並列に処理することができる。誤り検出は、ブロック・レベル・パリティ・ビット・インターリービングを使用することによって達成される。インターリーブされたパリティ・ビットは、別々の単一のパリティPDに格納される。
RAIDレベル5は、ストライピングを分散パリティと組み合わせて使用する。分散パリティを実施するには、システムが動作するために1つを除くすべてのPDが存在しなければならない。PDのうちのいずれか1つが故障すると、PDの交換が必要となる。しかし、PDのうちの単一のPDが故障しても、システムの故障は起こらない。RAIDレベル6は、ストライピングを二重分散パリティと組み合わせて使用する。RAIDレベル6システムは、少なくとも4つのPDの使用を必要とし、PDのうちの2つは、分散パリティ・ビットを格納するのに使用される。このシステムは、2つのPDが故障した場合でも動作し続けることができる。二重パリティは、各VDがより多数のPDから構成されるシステムで、ますます重要になる。単一パリティを使用するRAIDレベルシステムは、故障したドライブがリビルドされるまで、データ消失に対して脆弱である。RAIDレベル6システムでは、二重パリティを使用することにより、他のVDのうちの1つのPDが、第1のの故障したPDのリビルド完了前に故障した場合に、故障したPDを有するVDを、データの消失の危険を冒さずにリビルドすることが可能になる。
もう一度図5を参照すると、DASコントローラ120は、CPU130C、メモリ・デバイス140、及びI/Oインターフェース・デバイス150を含む。I/Oインターフェース・デバイス150は、PD129との間でのデータの転送を制御する。I/Oインターフェース・デバイス150は、通常、たとえばSAS標準規格及び/又はSATA標準規格ならびにその変形などの既知のデータ転送プロトコル標準規格に従ってデータ転送を実行するように構成されるが、他の既知のデータ転送プロトコルならびに所有権付きのデータ転送プロトコルをこの目的に使用することもできる。
DASシステム100の動作を、これから図4及び5を参照して説明する。通常の書込み動作中に、DASコントローラ120のCPU130は、PD129のうちの1つ又は複数に書き込まれるデータを外部サーバ又はワークステーション(図示せず)から受け取る。DASコントローラCPU130は、SSDアレイ110をWBキャッシュ・メモリとして使用して、PD129に書き込まれるデータを一時的に格納する。SSD110でデータをWBキャッシングするプロセスを、下記で図6を参照してより詳細に説明する。データがSSD110にWBキャッシングされた後のある時点で、DASコントローラCPU130は、キャッシングされたデータをSSD110から転送させ、PD129のうちの1つ又は複数に格納させる。メモリ・デバイス140は、RAID VDの仮想アドレスとPD129の物理アドレスとの間のマッピングを実行するコア・ロジックを含む。DASコントローラ120は、キャッシングされたデータをPD129の対応する物理アドレスに格納させる。DASコントローラCPU130は、DASシステム100のRAIDレベルに従って、パリティ計算などの計算をも実行する。たとえば、DASシステム100のRAIDレベルがパリティを使用する場合、DASコントローラCPU130は、パリティ・ビットを計算し、I/Oインターフェース・デバイス150は、そのパリティ・ビットをPD129のうちの1つ又は複数に格納させる。
通常の読取り動作中に、DASコントローラCPU130は、外部サーバ又はワークステーション(図示せず)から読取り要求を受け取り、メモリ・デバイス140内に保持されたロジックを使用することによって、その読取り要求を処理して、データをそこから読み取るべきPD129のうちの1つ又は複数のPDの物理アドレスを決定する。次に、DASコントローラCPU130は、要求されたデータを、そのデータがPD129内に存在するアドレスから取り出させ、外部サーバ又はワークステーション(図示せず)に送らせる。メモリ・デバイス140の一部又はDASコントローラ120内の他の何らかのメモリ・デバイス(図示せず)を、読取りキャッシュ・メモリとして使用することができ、その場合、CPU130は、要求されたデータが読取りキャッシュ・メモリ内に保持されているとCPU130が判定した場合に、PD129からではなく、読取りキャッシュ・メモリからデータを読み取る。
図6に、例示的一実施形態による、DASコントローラ120のうちの1つのDASコントローラ120のCPU130によって実行されるWBキャッシング・アルゴリズムを表す流れ図を示す。各DASコントローラ120のCPU130が、このWBキャッシング・アルゴリズムを実行する。しかし、簡略にするために、このアルゴリズムを、DASコントローラ120のうちの1つを参照して説明するのみとする。サーバ又はワークステーション(図示せず)が、PD129に書き込まれるデータをDASコントローラ120に送ると、DASコントローラ120は、ブロック201によって示されるように、そのデータを受け取る。次に、CPU130は、ブロック203によって示されるように、キャッシュ「ヒット」又はキャッシュ「ミス」のどちらが発生したかを判定するために、受け取られたデータを処理する。キャッシュ「ヒット」は、データが現在はSSD110内のキャッシュ・メモリに保持されているとCPU130が判定したことを意味する。キャッシュ「ミス」は、データが現在はキャッシュ・メモリに保持されていないとCPU130が判定したことを意味する。
CPU130が、キャッシュ・ミスが発生したと判定した場合、CPU130は、ブロック205によって示されるように、データをSSDアレイ110のキャッシュ・メモリに書き込ませる。データがSSDアレイ110のキャッシュ・メモリに書き込まれた後のある時点で、CPU130は、ブロック206によって示されるように、データをPD129内の物理アドレスに格納させる。ブロック203で、CPU130が、キャッシュ・ヒットが発生したと判定した場合、CPU130は、ブロック206によって表されるステップで、SSDアレイ110のキャッシュ・メモリ内に保持された対応するデータを、SSDアレイ110内の対応する物理アドレスに格納させる。
図1〜3を参照して上記で説明した既知のキャッシュ・コヒーレンシ方法とは対照的に、本発明によれば、キャッシュ・コヒーレンシは、SSDアレイ110のあるRAIDテクノロジレベルを使用することによって提供される。具体的に言うと、DASコントローラ120が、SSDアレイ110内のキャッシュ・メモリにデータを格納するとき、そのデータがキャッシングされるSSDアレイ110のSSDが故障の場合にデータを回復できることを保証するために、RAIDテクノロジが使用される。たとえば、DASコントローラ120のそれぞれがSSDアレイ110内のキャッシュ・メモリ内にデータを格納するとき、そのデータが、SSDアレイ110の複数のSSDにまたがってストライピングされるように、RAIDレベル0を使用することができる。たとえば、RAIDレベル1が使用される場合、DASコントローラ120のそれぞれがSSDアレイ110内のキャッシュ・メモリ内にデータを格納するとき、そのデータは、SSDアレイ110の複数のSSD内に複製される、すなわち、ミラーリングされる。SSDアレイ110のSSDのうちの1つが故障した場合、SSDアレイ110を用いて実施されたRAIDテクノロジレベルが、データの回復を可能にする。このようにして、DASシステム100は、完全にキャッシュ・コヒーレントである。本発明は、SSDアレイ110のキャッシュ・メモリ内にキャッシングされるデータのキャッシュ・コヒーレンシを保証するのに使用されるRAIDレベルに関して限定されない。
また、SSDアレイ110は、必ずではないが通常、それぞれのDASコントローラ120によって使用されるそれぞれの部分に区分される。たとえば、合計N個のDASコントローラ120があり、Nが、1以上の正の整数であると仮定すると、SSDアレイ110の記憶容量は、N個の等しい部分に分割され、各部分は、それぞれのDASコントローラ120によって使用される。このようにSSDアレイ110を区分すると、DASコントローラ120がSSDアレイ110にアクセスする際のアクセス衝突が回避される。しかし、DASコントローラ120のうちの1つが故障した場合は、他のDASコントローラ120のうちの1つが、SSDアレイ110内に格納されている、故障したDASコントローラ120に関連するデータにアクセスすることができる。
当技術分野で既知のように、データには、たとえば、データのソースの識別(すなわち、ハッシュ・キャッシュ・タグ)、データ・ストリームの長さ、及びデータが変更されたか否か(すなわち、状況表示)など、データの属性を定義するメタデータが関連付けられる。DASシステムでは、メタデータは、通常、DASコントローラの内部のダイナミック・ランダム・アクセス・メモリ(DRAM)に格納される。本発明の例示的一実施形態によれば、メタデータは、DASコントローラ120のメモリ・デバイス140に格納され、対応するデータは、図4〜6を参照して上記で説明したように、SSDアレイ110のキャッシュ・メモリに格納される。メタデータを扱うこの例示的一実施形態を、これから図7を参照して説明する。
図7に、データはSSDアレイ110内にキャッシングされるが、関連するメタデータはDASコントローラ120の内部のキャッシュ・メモリ内にキャッシングされる、例示的一実施形態による図4に示されたDASシステム100のブロック図を示す。この実施形態によれば、DASコントローラ120のうちの1つのDASコントローラ120のCPU130が、データをSSDアレイ110のキャッシュ・メモリに格納するときに、対応するメタデータは、DASコントローラ120のメモリ・デバイス140のキャッシュ・メモリ部分(図示せず)又はDASコントローラ120の他の何らかのメモリ・デバイス(図示せず)に格納される。さらに、メタデータのキャッシュ・コヒーレンシを提供するために、DASコントローラ120内のキャッシュ・メモリに格納されるメタデータは、図7で隣接するDASコントローラ120の間を通る矢印によって示されるように、他のDASコントローラ120のうちの1つ又は複数のDASコントローラ120のキャッシュ・メモリ内にミラーリングされる。このようにして、DASコントローラ120のうちの1つが故障した場合に、対応するメタデータを、そのメタデータがミラーリングされた、他のDASコントローラ120のキャッシュ・メモリから回復することができる。
図8に、データ及び関連するメタデータがSSDアレイ110内にキャッシングされる、例示的一実施形態による図4に示されたDASシステム100のブロック図を示す。SSDでは、データは、通常、所定の個数のバイト(B)、たとえばブロックあたり520Bのブロックで書き込まれる。ブロックのフォーマットは、情報技術規格国際委員会(InterNational Committee on Information Technology Standards、INCITS)の標準規格T10によって規定される。標準規格T10は、各データ・ブロックが、巡回冗長検査(CRC)ビット、アプリケーションタグ・ビット、及び基準タグ・ビットなどの保護情報を含むデータ保全性フィールド(data integrity field、DIF)を含むことを規定する。標準規格T10によって定義されたDIFは、各ブロックの終りの8Bからなる。したがって、各ブロックは、512Bのデータ及び8BのDIFからなる。この例示的実施形態によれば、各データ・ブロックの8BのDIFは、そのデータ・ブロックに関連するメタデータを表すのに使用される。したがって、データ及びそれに関連するメタデータは、SSDアレイ110のキャッシュ・メモリ内に一緒に格納される。
データ及びそれに関連するメタデータを一緒にキャッシングすると、動作中の電源障害の場合に、データは更新されるがそれに関連するメタデータは更新されない又はその逆であることを保証する。たとえば、データ及びメタデータが、異なるメモリ・デバイス内に互いに独立にキャッシングされる場合、あるメモリ・デバイスの電源障害により、故障したメモリ・デバイスに格納されるデータ又はメタデータは更新されないが、電源障害をこうむらない他のメモリ・デバイスに格納されるデータ又はメタデータが更新される可能性がある。データ及びメタデータをSSDアレイ110のキャッシュ・メモリに一緒にキャッシングすることによって、この問題が除去される。
この例示的実施形態によれば、SSDアレイ110のキャッシュ・メモリ内のキャッシュ・ラインは、64KBからなり、K=1024である。所与のキャッシュ・ラインの各ブロックは、512Bのデータからなるので、各キャッシュ・ラインは、128個のブロックからなる(すなわち、(64Bx1024)/512B=128)。所与のキャッシュ・ラインの128個のブロックのそれぞれのDIFは、8Bのメタデータからなる。しかし、キャッシュ・ラインごとに、約64Bのメタデータしか必要でない。この64Bのメタデータは、8B部分に分割される。したがって、所与のキャッシュ・ラインに使用される8ブロックのDIFだけが、メタデータのために必要である。この例示的実施形態によれば、各128ブロック・キャッシュ・ラインの最初の8ブロックが、キャッシュ・ラインに含まれるデータに関連する8Bのメタデータに割り当てられる。冗長性を提供するために、同じ8Bのメタデータが、キャッシュ・ラインの次の8ブロックの8つのDIFのそれぞれに複製される。64Bのメタデータのハッシュが、キャッシュ・ラインの最後の8ブロックの8つのDIFに含まれる。この手法は、キャッシュ・ラインに書き込まれる最初のブロック及び最後のブロックが、ハッシュによって互いに関連付けられるので、原子性を保証する。
図9に、図8に示されたDASコントローラ120によって実行されるWBキャッシング・アルゴリズムを表す流れ図を示す。このアルゴリズムを、図5、8、及び9を参照して説明する。DASコントローラ120のそれぞれのDASコントローラのCPU130が、このWBキャッシング・アルゴリズムを実行する。しかし、簡略にするために、このアルゴリズムを、DASコントローラ120のうちの1つを参照して説明するのみとする。サーバ又はワークステーション(図示せず)が、PD129に書き込まれるデータをDASコントローラ120に送るとき、DASコントローラ120は、ブロック301によって示されるように、データ及びそれに関連するメタデータを受け取る。次に、CPU130は、ブロック303によって示されるように、キャッシュ「ヒット」又はキャッシュ「ミス」のどちらが発生したかを判定するために、受け取られたデータを処理する。
CPU130が、キャッシュ・ミスが発生したと判定した場合、CPU130は、ブロック305によって示されるように、メタデータ・ハッシュを計算し、データ、メタデータ、及びメタデータ・ハッシュをSSDアレイ110のキャッシュ・メモリに書き込ませる。メタデータ・ハッシュを計算するためのさまざまな既知のハッシング・アルゴリズムが存在する。任意の適切な既知のハッシング・アルゴリズムを、この目的に使用することができる。したがって、簡略にするために、メタデータ・ハッシュを計算するのに使用されるアルゴリズムについては、本明細書では説明しない。
データがSSDアレイ110のキャッシュ・メモリに書き込まれた後のある時点で、CPU130は、ブロック306によって示されるように、データ及びそれに関連するメタデータをPD129内の物理アドレスに格納させる。ブロック303で、CPU130が、キャッシュ・ヒットが発生したと判定した場合、CPU130は、ブロック306によって表されるステップで、SSDアレイ110のキャッシュ・メモリ内に保持される対応するデータ及びメタデータを、SSDアレイ110内の対応する物理アドレスに格納させる。
図6及び9を参照して上記で説明したWBキャッシング・アルゴリズムを、さまざまな形で実施できることに留意されたい。このWBアルゴリズムは、通常は、ハードウェアのみで又はハードウェアとソフトウェア又はファームウェアとの組合せで、CPU130内で実行される。この目的に使用されるソフトウェア命令又はファームウェア命令は、たとえばDASコントローラ120のメモリ・デバイス140内など、コンピュータ可読媒体内に格納される。
当業者は、上記で説明した実施形態に対して多くの変形を加えることができ、そのような変形形態のすべてが本発明の範囲内にあることを理解するであろう。たとえば、DIFを使用しないSSDが、市場で入手可能である。そのようなSSDは、データ、メタデータ、及びメタデータ・ハッシュをキャッシングするために本発明と共に使用するのに適する。本発明は、SSDアレイ110内で特定のタイプ又は構成のSSDを使用することに限定されない。本発明は、DASコントローラ120の構成に関しても限定されない。図5に示されたDASコントローラ120の構成は、本発明と共に使用するのに適するDAS構成の単なる一例である。
本発明を、上記では本発明の原理及び概念を実証するために例示的実施形態を参照して説明したことに留意されたい。当業者は、本明細書で説明された実施形態に対して多くの変更を加えることができ、そのような変更のすべてが本発明の範囲に含まれることを理解するであろう。

Claims (11)

  1. ダイレクトアタッチト・ストレージ(DAS)システムであって、
    物理ディスク・ドライブ(PD)のRAIDアレイとして構成された複数の磁気ハード・ディスク・ドライブ(HDD)と、
    キャッシュ・メモリとして構成されたSSDのアレイと、
    PDの前記RAIDアレイ及び前記SSDアレイに接続された少なくとも第1の及び第2のDASコントローラとを含み、各DASコントローラは、中央処理装置(CPU)、ローカル・メモリ・デバイス、及び入出力(I/O)インターフェース・デバイスを有し、前記CPUのそれぞれ及び前記ローカル・メモリ・デバイスのそれぞれは、PDの前記RAIDアレイのRAID構成と整合するRAIDテクノロジレベルを実行するように構成され、前記CPUのそれぞれは、前記それぞれのDASコントローラ内で受け取られたデータが前記SSDアレイの前記キャッシュ・メモリに一時的に格納されるようにし、その後、PDの前記RAIDアレイの前記PDのうちの1つ又は複数に格納されるようにする、キャッシング・アルゴリズムを実行するように構成され、
    前記データは、それに関連付けられたメタデータを有し、前記メタデータはデータのソースの指示する属性、データの長さを指示する属性、及びデータが変更されたか否かを指示する属性を含み、前記それぞれのCPUによって実行される前記キャッシング・アルゴリズムは、前記データを前記SSDアレイ内のブロックに格納させ、各ブロックは、データ保全性フィールド(DIF)を含み、前記それぞれのCPUは、前記それぞれのDASコントローラで受け取られた前記データに関連する前記メタデータを、前記SSDアレイ内で前記関連するデータが格納される前記ブロックのうちの少なくとも1つに関連する前記DIFのうちの少なくとも1つに格納させる、DASシステム。
  2. 前記それぞれのCPUは、前記SSDアレイ内に一時的に格納される前記データに対してキャッシュ・コヒーレンシが提供されるように、前記SSDアレイ内へのデータの前記一時的格納に関してあるRAIDテクノロジレベルを実行するように構成される、請求項1に記載のDASシステム。
  3. 各それぞれのCPUによって実行される前記キャッシング・アルゴリズムは、前記メタデータのハッシュを計算するハッシング・アルゴリズムを含み、それぞれのハッシュは、前記SSDアレイ内で前記関連するデータが格納される前記ブロックのうちの少なくとも1つに関連する前記DIFのうちの前記少なくとも1つに格納される、請求項1に記載のDASシステム。
  4. ダイレクトアタッチト・ストレージ(DAS)システム内でキャッシングされたデータの保全性を保護する方法であって、
    中央処理装置(CPU)とローカル・メモリ・デバイスと入出力(I/O)インターフェース・デバイスとを有する第1のDASコントローラ内でデータを受け取るステップと、
    前記第1のDASコントローラの前記CPU内で、前記第1のDASコントローラ内で受け取られた前記データをSSDアレイ内の1つ又は複数のSSD内のブロック内に一時的に格納させ、その後、物理ディスク・ドライブ(PD)のRAIDアレイとして構成された1つ又は複数の磁気ハード・ディスク・ドライブ(HDD)に格納させる、キャッシング・アルゴリズムを実行するステップであり、前記データは、それに関連付けられたメタデータを有し、前記CPUによって前記SSDアレイ内の1つ又は複数のSSDに一時的に格納されたデータの各ブロックは、データ保全性フィールド(DIF)を含み、前記CPUは、前記DASコントローラで受け取られた前記データに関連する前記メタデータを、前記SSDアレイ内で前記関連するデータが格納される前記ブロックのうちの少なくとも1つに関連する前記DIFのうちの少なくとも1つに格納させるステップと、
    CPUとローカル・メモリ・デバイスとI/Oインターフェース・デバイスとを有する第2のDASコントローラ内でデータを受け取るステップと、
    前記第2のDASコントローラの前記CPU内で、前記第2のDASコントローラ内で受け取られた前記データを前記SSDアレイ内の1つ又は複数のSSD内のブロック内に一時的に格納させ、その後、PDの前記RAIDアレイとして構成された前記磁気HDDのうちの1つ又は複数に格納させる、キャッシング・アルゴリズムを実行することステップであり、前記第2のDASコントローラ内で受け取られた前記データは、それに関連付けられたメタデータを有し、前記メタデータはデータのソースの指示する属性、データの長さを指示する属性、及びデータが変更されたか否かを指示する属性を含み、前記第2のDASコントローラの前記CPUによって前記SSDアレイ内の1つ又は複数のSSDに一時的に格納されたデータの各ブロックは、データ保全性フィールド(DIF)を含み、前記第2のDASコントローラの前記CPUは、前記第2のDASコントローラで受け取られた前記データに関連する前記メタデータを、前記SSDアレイ内で前記関連するデータが格納される前記ブロックのうちの少なくとも1つに関連する前記DIFのうちの少なくとも1つに格納させるステップと、
    を含む方法。
  5. 前記それぞれのCPUは、前記SSDアレイ内に一時的に格納される前記データに対してキャッシュ・コヒーレンシが提供されるように、前記SSDアレイ内へのデータの前記一時的格納に関してあるRAIDテクノロジレベルを実行するように構成される、請求項に記載の方法。
  6. 各それぞれのCPUによって実行される前記キャッシング・アルゴリズムは、前記メタデータのハッシュを計算するハッシング・アルゴリズムを含み、各それぞれのハッシュは、前記SSDアレイ内で前記関連するデータが格納される前記ブロックのうちの少なくとも1つに関連する前記DIFのうちの前記少なくとも1つに格納される、請求項に記載の方法。
  7. ダイレクトアタッチト・ストレージ(DAS)システム内でキャッシングされたデータの保全性を保護するコンピュータ・プログラムをその上に格納されたコンピュータ可読媒体であって、前記コンピュータ・プログラムが、前記コンピュータ可読媒体上に格納されたコンピュータ命令を含み、前記命令が、
    第1のDASコントローラでデータを受け取る第1の命令セットと、
    前記第1のDASコントローラで受け取られた前記データを、SSDアレイ内の1つ又は複数のSSD内のブロックに一時的に格納させ、その後、物理ディスク・ドライブ(PD)のRAIDアレイとして構成された1つ又は複数の磁気ハード・ディスク・ドライブ(HDD)に格納させるキャッシング・アルゴリズムを前記第1のDASコントローラ内で実行する第2の命令セットとを含み、各ブロックは、データ保全性フィールド(DIF)を含み、前記データは、それに関連付けられたメタデータを有し、前記メタデータはデータのソースの指示する属性、データの長さを指示する属性、及びデータが変更されたか否かを指示する属性を含み、前記キャッシング・アルゴリズムは、前記DASコントローラで受け取られた前記データに関連する前記メタデータを、前記SSDアレイ内で前記関連するデータが格納される前記ブロックのうちの少なくとも1つに関連する前記DIFのうちの少なくとも1つに格納させる、コンピュータ可読媒体。
  8. 前記DASコントローラは、前記SSDアレイ内に一時的に格納される前記データに対してキャッシュ・コヒーレンシが提供されるように、前記SSDアレイ内へのデータの前記一時的格納に関してあるRAIDテクノロジレベルを実行するように構成される、請求項に記載のコンピュータ可読媒体。
  9. 前記DASコントローラによって実行される前記キャッシング・アルゴリズムは、前記メタデータのハッシュを計算するハッシング・アルゴリズムを含み、各それぞれのハッシュは、前記SSDアレイ内で前記関連するデータが格納される前記ブロックのうちの少なくとも1つに関連する前記DIFのうちの前記少なくとも1つに格納される、請求項に記載のコンピュータ可読媒体。
  10. ダイレクトアタッチト・ストレージ(DAS)システムであって、
    物理ディスク・ドライブ(PD)のRAIDアレイとして構成された複数の磁気ハード・ディスク・ドライブ(HDD)と、
    キャッシュ・メモリとして構成されたSSDのアレイと、
    PDの前記RAIDアレイ及び前記SSDアレイに接続された少なくとも第1の及び第2のDASコントローラとを含み、各DASコントローラは、中央処理装置(CPU)、ローカル・メモリ・デバイス、及び入出力(I/O)インターフェース・デバイスを有し、前記CPUのそれぞれ及び前記ローカル・メモリ・デバイスのそれぞれは、PDの前記RAIDアレイのRAID構成と整合するRAIDテクノロジレベルを実行するように構成され、前記CPUのそれぞれは、前記それぞれのDASコントローラ内で受け取られたデータが前記SSDアレイの前記キャッシュ・メモリに一時的に格納されるようにし、その後、PDの前記RAIDアレイの前記PDのうちの1つ又は複数に格納されるようにする、キャッシング・アルゴリズムを実行するように構成され、前記それぞれのCPUは、前記SSDアレイ内に一時的に格納される前記データに対してキャッシュ・コヒーレンシが提供されるように、前記SSDアレイ内へのデータの前記一時的格納に関してあるRAIDテクノロジレベルを実行するように構成され
    前記データは、それに関連付けられたメタデータを有し、前記メタデータはデータのソースの指示する属性、データの長さを指示する属性、及びデータが変更されたか否かを指示する属性を含み、前記DASコントローラの前記ローカル・メモリ・デバイスのそれぞれは、その一部分がキャッシュ・メモリとして使用され、前記それぞれのCPUによって実行される前記WBキャッシング・アルゴリズムは、前記それぞれのDASコントローラで受け取られた前記データに関連する前記メタデータを、前記それぞれのローカル・メモリ・デバイスの前記それぞれのキャッシュ・メモリ部分に一時的に格納させ、その後、PDの前記RAIDアレイの前記PDのうちの1つ又は複数に格納させる、DASシステム。
  11. ダイレクトアタッチト・ストレージ(DAS)システム内でキャッシングされたデータの保全性を保護する方法であって、
    中央処理装置(CPU)とローカル・メモリ・デバイスと入出力(I/O)インターフェース・デバイスとを有する第1のDASコントローラ内でデータを受け取るステップと、
    前記第1のDASコントローラの前記CPU内で、前記第1のDASコントローラ内で受け取られた前記データをSSDアレイ内の1つ又は複数のSSDに一時的に格納させ、その後、物理ディスク・ドライブ(PD)のRAIDアレイとして構成された1つ又は複数の磁気ハード・ディスク・ドライブ(HDD)に格納させる、キャッシング・アルゴリズムを実行するステップであり、前記CPUは、前記SSDアレイ内に一時的に格納される前記データに対してキャッシュ・コヒーレンシが提供されるように、前記SSDアレイ内へのデータの前記一時的格納に関してあるRAIDテクノロジレベルを実行するように構成され、
    前記データは、それに関連付けられたメタデータを有し、前記メタデータはデータのソースの指示する属性、データの長さを指示する属性、及びデータが変更されたか否かを指示する属性を含み、前記DASコントローラの前記ローカル・メモリ・デバイスは、その一部分がキャッシュ・メモリとして使用され、前記CPUによって実行される前記WBキャッシング・アルゴリズムは、前記DASコントローラで受け取られた前記データに関連する前記メタデータを、前記ローカル・メモリ・デバイスの前記キャッシュ・メモリ部分に一時的に格納させ、その後、PDの前記RAIDアレイの前記PDのうちの1つ又は複数に格納させる、方法。
JP2010130841A 2009-06-08 2010-06-08 ダイレクトアタッチト・ストレージ(das)システムでキャッシングされたデータの保全性を保護する方法及び装置 Expired - Fee Related JP5489868B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US26805509P 2009-06-08 2009-06-08
US61/268,055 2009-06-08

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2013236874A Division JP2014038660A (ja) 2009-06-08 2013-11-15 ダイレクトアタッチト・ストレージ(das)システムでキャッシングされたデータの保全性を保護する方法及び装置

Publications (3)

Publication Number Publication Date
JP2010282628A JP2010282628A (ja) 2010-12-16
JP2010282628A5 JP2010282628A5 (ja) 2012-08-23
JP5489868B2 true JP5489868B2 (ja) 2014-05-14

Family

ID=42829597

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2010130841A Expired - Fee Related JP5489868B2 (ja) 2009-06-08 2010-06-08 ダイレクトアタッチト・ストレージ(das)システムでキャッシングされたデータの保全性を保護する方法及び装置
JP2013236874A Withdrawn JP2014038660A (ja) 2009-06-08 2013-11-15 ダイレクトアタッチト・ストレージ(das)システムでキャッシングされたデータの保全性を保護する方法及び装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2013236874A Withdrawn JP2014038660A (ja) 2009-06-08 2013-11-15 ダイレクトアタッチト・ストレージ(das)システムでキャッシングされたデータの保全性を保護する方法及び装置

Country Status (6)

Country Link
US (1) US8732396B2 (ja)
EP (1) EP2264607A3 (ja)
JP (2) JP5489868B2 (ja)
KR (1) KR101345572B1 (ja)
CN (1) CN101982816B (ja)
TW (1) TWI451257B (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8495469B2 (en) 2011-05-16 2013-07-23 International Business Machines Corporation Implementing enhanced IO data conversion with protection information model including parity format of data integrity fields
US9921954B1 (en) * 2012-08-27 2018-03-20 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for split flash memory management between host and storage controller
US9256384B2 (en) * 2013-02-04 2016-02-09 Avago Technologies General Ip (Singapore) Pte. Ltd. Method and system for reducing write latency in a data storage system by using a command-push model
FR3010598B1 (fr) * 2013-09-06 2017-01-13 Sagem Defense Securite Procede de gestion de coherence de caches
KR102146037B1 (ko) 2013-11-14 2020-08-19 삼성전자주식회사 불휘발성 메모리 시스템 및 그것의 동작 방법
CN104199751A (zh) * 2014-08-27 2014-12-10 山东超越数控电子有限公司 一种刀片服务器中备份冗余硬盘的系统识别方法
US10025664B2 (en) 2015-12-22 2018-07-17 Western Digital Technologies, Inc. Selective buffer protection
CN107870731B (zh) * 2016-09-23 2021-07-27 伊姆西Ip控股有限责任公司 独立盘冗余阵列系统的管理方法和电子设备
US10976361B2 (en) * 2018-12-20 2021-04-13 Advantest Corporation Automated test equipment (ATE) support framework for solid state device (SSD) odd sector sizes and protection modes
CN112286625B (zh) * 2020-09-11 2022-07-08 苏州浪潮智能科技有限公司 一种基于云平台多用户的镜像缓存状态管理方法及系统

Family Cites Families (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4476526A (en) * 1981-11-27 1984-10-09 Storage Technology Corporation Cache buffered memory subsystem
JP3181398B2 (ja) * 1992-10-06 2001-07-03 三菱電機株式会社 アレイ型記録装置
US5640506A (en) 1995-02-15 1997-06-17 Mti Technology Corporation Integrity protection for parity calculation for raid parity cache
US6321298B1 (en) 1999-01-25 2001-11-20 International Business Machines Corporation Full cache coherency across multiple raid controllers
US6574709B1 (en) 1999-09-30 2003-06-03 International Business Machine Corporation System, apparatus, and method providing cache data mirroring to a data storage system
JP2001222385A (ja) * 2000-02-10 2001-08-17 Hitachi Ltd 記憶装置および情報処理システム
US6578160B1 (en) 2000-05-26 2003-06-10 Emc Corp Hopkinton Fault tolerant, low latency system resource with high level logging of system resource transactions and cross-server mirrored high level logging of system resource transactions
JP2002023966A (ja) * 2000-06-30 2002-01-25 Toshiba Corp 転送データを冗長化したディスクシステム
US7127633B1 (en) 2001-11-15 2006-10-24 Xiotech Corporation System and method to failover storage area network targets from one interface to another
US7003688B1 (en) 2001-11-15 2006-02-21 Xiotech Corporation System and method for a reserved memory area shared by all redundant storage controllers
US7181581B2 (en) 2002-05-09 2007-02-20 Xiotech Corporation Method and apparatus for mirroring data stored in a mass storage system
JP2004021811A (ja) * 2002-06-19 2004-01-22 Hitachi Ltd 不揮発メモリを使用したディスク制御装置
JP2004054845A (ja) * 2002-07-24 2004-02-19 Sony Corp データ管理装置
US7043610B2 (en) 2002-08-19 2006-05-09 Aristos Logic Corporation System and method for maintaining cache coherency without external controller intervention
CA2498154A1 (en) * 2002-09-16 2004-03-25 Tigi Corporation Storage system architectures and multiple caching arrangements
US7076606B2 (en) 2002-09-20 2006-07-11 Quantum Corporation Accelerated RAID with rewind capability
WO2004114116A1 (ja) 2003-06-19 2004-12-29 Fujitsu Limited キャッシュ二重化方式におけるミラーキャッシュからの書き戻し方法
US20050066230A1 (en) * 2003-09-23 2005-03-24 Bean Robert George Data reliabilty bit storage qualifier and logical unit metadata
JP4383321B2 (ja) * 2004-11-09 2009-12-16 富士通株式会社 記憶制御装置および外部記憶装置
JP4805660B2 (ja) * 2005-02-08 2011-11-02 富士通株式会社 ディスクライト抜け検出装置
JP2006268524A (ja) * 2005-03-24 2006-10-05 Fujitsu Ltd 記憶装置、その制御方法及びプログラム
US20060294300A1 (en) * 2005-06-22 2006-12-28 Seagate Technology Llc Atomic cache transactions in a distributed storage system
KR20070029358A (ko) * 2005-09-09 2007-03-14 주식회사 태진인포텍 고속 메모리 기반의 스토리지 시스템 및 그 제어방법
US7444541B2 (en) 2006-06-30 2008-10-28 Seagate Technology Llc Failover and failback of write cache data in dual active controllers
WO2008070191A2 (en) * 2006-12-06 2008-06-12 Fusion Multisystems, Inc. (Dba Fusion-Io) Apparatus, system, and method for a reconfigurable baseboard management controller
JP4362134B2 (ja) * 2007-02-09 2009-11-11 富士通株式会社 データアクセス方法、チャネルアダプタ、データアクセス制御装置およびデータアクセスプログラム
US20090063895A1 (en) * 2007-09-04 2009-03-05 Kurt Smith Scaleable and maintainable solid state drive
US7873878B2 (en) * 2007-09-24 2011-01-18 International Business Machines Corporation Data integrity validation in storage systems
US7827439B2 (en) * 2007-09-28 2010-11-02 Symantec Corporation System and method of redundantly storing and retrieving data with cooperating storage devices

Also Published As

Publication number Publication date
CN101982816B (zh) 2015-04-08
KR101345572B1 (ko) 2014-01-06
EP2264607A2 (en) 2010-12-22
US20100312960A1 (en) 2010-12-09
KR20100131949A (ko) 2010-12-16
US8732396B2 (en) 2014-05-20
TW201107981A (en) 2011-03-01
TWI451257B (zh) 2014-09-01
CN101982816A (zh) 2011-03-02
EP2264607A3 (en) 2011-07-20
JP2010282628A (ja) 2010-12-16
JP2014038660A (ja) 2014-02-27

Similar Documents

Publication Publication Date Title
JP5489868B2 (ja) ダイレクトアタッチト・ストレージ(das)システムでキャッシングされたデータの保全性を保護する方法及び装置
US10191676B2 (en) Scalable storage protection
US10360119B2 (en) Data recovery in a distributed storage system
US8209587B1 (en) System and method for eliminating zeroing of disk drives in RAID arrays
US10452498B2 (en) Fault tolerance for persistent main memory
US8156282B1 (en) System and method for optimizing write operations in storage systems
US7647526B1 (en) Reducing reconstruct input/output operations in storage systems
US9535840B2 (en) Parallel destaging with replicated cache pinning
US20150012699A1 (en) System and method of versioning cache for a clustering topology
US10691339B2 (en) Methods for reducing initialization duration and performance impact during configuration of storage drives
US20220137835A1 (en) Systems and methods for parity-based failure protection for storage devices
US20120166909A1 (en) Method and apparatus for increasing data reliability for raid operations
CN101410783A (zh) 内容可寻址存储阵列元件
US20170329674A1 (en) Flushing host cache data before rebuilding degraded redundant virtual disk
US9348525B2 (en) Systems and methods for a storage array-managed initiator cache
JP2006178926A (ja) 複数のオブジェクトベースのストレージ装置を使用したストレージ装置、システム、および方法
US9830094B2 (en) Dynamic transitioning of protection information in array systems

Legal Events

Date Code Title Description
A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120706

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120706

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20120710

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121016

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20130116

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20130121

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130416

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130716

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131115

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20140107

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20140128

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140225

R150 Certificate of patent or registration of utility model

Ref document number: 5489868

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees