JP2004213470A - ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法 - Google Patents
ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法 Download PDFInfo
- Publication number
- JP2004213470A JP2004213470A JP2003001314A JP2003001314A JP2004213470A JP 2004213470 A JP2004213470 A JP 2004213470A JP 2003001314 A JP2003001314 A JP 2003001314A JP 2003001314 A JP2003001314 A JP 2003001314A JP 2004213470 A JP2004213470 A JP 2004213470A
- Authority
- JP
- Japan
- Prior art keywords
- data
- disk
- write
- array device
- physical address
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims description 46
- 230000000593 degrading effect Effects 0.000 claims description 4
- 230000006870 function Effects 0.000 description 14
- 238000010586 diagram Methods 0.000 description 7
- 238000012544 monitoring process Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003111 delayed effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1076—Parity data used in redundant arrays of independent storages, e.g. in RAID systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0866—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
- G06F12/0802—Addressing of a memory level in which the access to the desired data or data block requires associative addressing means, e.g. caches
- G06F12/0804—Addressing 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1009—Cache, i.e. caches used in RAID system with parity
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1019—Fast writes, i.e. signaling the host that a write is done before data is written to disk
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2211/00—Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
- G06F2211/10—Indexing scheme relating to G06F11/10
- G06F2211/1002—Indexing scheme relating to G06F11/1076
- G06F2211/1059—Parity-single bit-RAID5, i.e. RAID 5 implementations
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1032—Reliability improvement, data loss prevention, degraded operation etc
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/26—Using a specific storage system architecture
- G06F2212/261—Storage comprising a plurality of storage devices
- G06F2212/262—Storage 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)
- Quality & Reliability (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
【解決手段】上位ホストからの指令により複数のディスクに対してデータを読み書き制御する制御部と、ディスクに対して読み書きするデータを一時的に記憶するキャッシュメモリとを備え、制御部が、キャッシュメモリ上において、上位ホストにて用いられる論理アドレスに関連付けたデータを物理アドレスに関連付けて前記ディスクに対して読み書き制御を行うディスクアレイ装置において、制御部が、ディスクに対して読み書き制御を行う際に、キャッシュメモリ上の物理アドレスに関連付けられたデータを当該物理アドレスに対応するディスク上のデータに対して優先して処理する。
【選択図】 図1
Description
【発明の属する技術分野】
本発明は、ディスクアレイ装置にかかり、特に、上位ホストからの指令にて複数のディスクに対してデータを読み書きするディスクアレイ装置に関する。
【0002】
【従来の技術】
ディスクアレイ装置では、複数のディスクをグループ化して、データに冗長性を持たせて格納するので、単一のディスク障害によってもデータが損失せず、データ処理を継続することができる。そして、データに冗長性を持たせる方法としては複数あり、RAIDレベルと呼ばれる。複数のRAIDレベルのなかで、RAID5は容量効率に優れているため、RAID1と並んでとくに有用で普及している。RAIDレベルについては、1987年カリフォルニア大学バークレイ校において論文化された、デビット.A.パターソン、ガースギブソン、ランディカッツ教授による「A Case for Redundant Arrays of Inexpensive Disks」に詳細に解説されている。また、実用されているディスクアレイ装置の例として、特許文献1に開示されている。
【0003】
RAID技術によれば単一のディスク障害によってデータが損失することは無いが、RAID制御を行うディスクアレイ装置内の制御部であるディレクタの障害に関してはRAID技術の範囲外である。従って、ディスク障害によってデータ損失がないので、ディレクタの障害によってもデータ損失せず、データ処理の継続が行われる装置が望ましい。そのために、ディレクタを二重化し、単一のディレクタ障害が発生しても、別のディレクタによって処理を継続できるようにするのが一般的である。但し、RAID5においてディレクタ障害が発生したときに、データコヒーレンシ、すなわち、ディスクとメモリとのデータの同一性において問題が生じるので、それを図8を参照して説明する。
【0004】
図8(a)、(b)、(c)を用いて、RAID5における書き込み処理(ライト処理)を説明する。ディスク101〜105でRAID5を構成していて、データを記憶する領域(ストライプ)111〜115が形成されている。そして、領域111〜114にはユーザーデータが格納されていて、領域115には領域111〜114のパリティ情報が格納されている。
【0005】
ここで、領域111に対してデータ121を書き込む(ライトする)場合について説明する。ライトする場合、領域111内を新しいデータに更新するだけでなく、領域115も新しいデータに対応したパリティに更新しなくてはならない。従って、まず、図8(a)で示すように、ライト動作に先立って、領域111と領域115から、旧データ122と旧パリティ123を読み出す。次に、図8(b)で示すように、書き込みデータ121、旧データ122、旧パリティ123の3つのデータから新パリティ124を生成する。このようにパリティを生成するときには並列処理を可能とするためにディスク112〜114のアクセスを行わない方法で行う。最後に、図8(c)で示すように、書き込みデータ121と新パリティ124を、それぞれディスク101,105に書き込む。
【0006】
【特許文献1】
特開2001−344076号公報
【0007】
【発明が解決しようとする課題】
以上の処理過程において、障害が発生したときの回復処理を以下に説明する。図8(c)において、書き込みデータが記憶されるデータディスク101とパリティデータが記憶されるパリティディスク105へのライト時に、いずれか一方には書き込むことができたが、他方には書き込めなかった場合に、単純に図8(a)〜(c)の処理をすべて最初からやり直すとする。すると、パリティが不正な値になってしまうという不都合が生じる。パリティが不正な値になると、ディスクのいずれかが縮退した場合に、不正なパリティを用いてデータ普及することになり、データ化けとなってしまい、データ読み書きの信頼性の低下という問題が生じる。
【0008】
そして、図8(c)において一方のディスクに対しては書き込むことができたが、他方のディスクには書き込めなかった場合には、書き込めなかったディスクを縮退しなければならず、処理が遅延したり、ディスクの交換による運用コストが増大するという問題も生じる。
【0009】
また、書き込み処理中にディレクタ(制御部)障害が発生したために書き込めなかった場合に、他のディレクタである代替ディレクタが書き込みデータ121を見つけて、図8(a)からの処理を行うことも考えられる。しかし、かかる場合には、上述したようにパリティ不正が発生してしまい、信頼性の低下という問題が生じる。
【0010】
【発明の目的】
本発明は、上記従来例の有する不都合を改善し、特に、ディスクに障害が生じた場合であっても、データコヒーレンシを維持し、信頼性の高いディスクアレイ装置を提供することをその目的とする。
【0011】
【課題を解決するための手段】
そこで、本発明では、上位ホストからの指令により複数のディスクに対してデータを読み書き制御する制御部と、ディスクに対して読み書きするデータを一時的に記憶するキャッシュメモリとを備え、制御部が、キャッシュメモリ上において、上位ホストにて用いられる論理アドレスに関連付けたデータを物理アドレスに関連付けて前記ディスクに対して読み書き制御を行うディスクアレイ装置において、制御部が、ディスクに対して読み書き制御を行う際に、キャッシュメモリ上の物理アドレスに関連付けられたデータを当該物理アドレスに対応するディスク上のデータに対して優先して処理する、という構成を採っている。
【0012】
このような構成にすることにより、ディスクに対して書き込み、読み出し処理を行っている最中に、ディスク障害、あるいは、制御部に障害が発生し、ディスク上のデータが不定な状態になっても、物理アドレスに関連付けたられたデータを用いて読み書き処理を継続することで、データの安定性、具体的には、データコヒーレンシの維持を図ることができ、データの信頼性の向上を図ることができる。
【0013】
また、制御部が、ディスクに対してデータの書き込み処理を行う前に、当該ディスクに書き込むデータを物理アドレスに関連付けてキャッシュメモリに格納する。
【0014】
これにより、ディスクに書き込まれるデータは、書き込まれる前に物理アドレスに関連付けられてキャッシュメモリに記憶されるため、かかる状態で制御部に障害等が発生した場合であっても必ずキャッシュメモリに残ることとなる。従って、その後、当該キャッシュメモリ上の物理アドレスに関連付けられたデータがディスク上のデータに優先されて当該物理アドレスを参照してディスクに書き込まれるため、障害前と同様の書き込み処理を継続でき、データコヒーレンシの維持を図ることができる。
【0015】
また、制御部が、ディスクにデータ書き込み処理を行うと共に当該書き込みが完了したことを確認した後に、キャッシュメモリ上で物理アドレスに関連付けられた書き込みデータを当該物理アドレスに関連付けられた状態から解除する。
【0016】
これにより、確実に書き込み処理が完了したことを確認した後にキャッシュメモリ上にて物理アドレスに関連付けられた状態から解除されるため、完全にデータ書き込み処理が終了しない限りはキャッシュメモリに物理アドレスに関連付けられた書き込みデータが残ることとなる。従って、上述したように、当該データが後に優先して読み書き処理されるため、障害前の処理を継続でき、より信頼性の向上を図ることができる。
【0017】
また、制御部を、物理的に独立させて複数個備えると望ましい。これにより、一つの制御部に障害が生じたとしても、別の制御部がキャッシュメモリ内の物理アドレスに関連付けられたデータの優先処理を引き継ぐことで、データコヒーレンシの維持を図ることができる。
【0018】
また、キャッシュメモリは、不揮発メモリであると、障害によってディスクアレイ装置自体の動作が停止したとしても、キャッシュメモリには物理アドレスに関連付けられたデータが残っており、かかるデータに対して処理を継続することで、データコヒーレンシの維持を図ることができる。
【0019】
さらに、制御部は、いずれかのディスクに障害が生じても当該障害ディスクを縮退せずにデータ読み書き処理を行う。これにより、障害ディスクをすぐに縮退することなくデータ処理を継続するため、発生した障害が一時的なもの、あるいは、局所的なものなどの軽障害である場合には、ディスク交換する必要がないため、運用コストの削減を図ることができる。
【0020】
また、本発明では、上位ホストからの指令により複数のディスクに対してデータを読み書きするディスクアレイ装置におけるデータ書き込み方法であって、上位ホストにて用いられる論理アドレスに関連付けられたデータを、ディスクに対してデータの書き込み処理を行う前に物理アドレスに関連付けて一時的にキャッシュメモリに格納し、キャッシュメモリ上の物理アドレスに関連付けられたデータを、当該物理アドレスに対応するディスク上のデータに対して優先して書き込み処理する、というディスクアレイ装置を用いたデータ書き込み方法をも提供していている。
【0021】
このようにしても、上述と同様の作用・効果を発揮し、上記目的を達成することができる。
【0022】
【発明の実施の形態】
以下、本発明の一実施形態を、図1乃至図7を参照して説明する。図1は、本発明におけるデータ処理の概略を説明する説明図である。図2は、本発明の構成を示すブロック図であり、図3は、キャッシュメモリ内におけるデータ構成を示すブロック図である。図4乃至図7は、データ処理の動作を示すフローチャートである。
【0023】
本発明におけるディスクアレイ装置は、パーソナルコンピュータやサーバコンピュータなどの上位ホストからの指令により、RAID5によって複数のディスクに対してデータを読み書きするものである。このとき、ディスクアレイ装置は、データの読み書き処理を制御部であるディレクタにて制御し、また、ディスクに対して読み書きするデータをキャッシュメモリに一時的に記憶する。そして、キャッシュメモリ上においては、ディレクタが、上位ホストにて用いられる論理アドレスに関連付けたデータを物理アドレスに関連付け、そして、ディスクに対して読み書き制御を行っている。
【0024】
まず、図1を参照して、上述したようなディスクアレイ装置における本発明の特徴を説明する。
【0025】
図1では、ディスク11〜15によりRAID5を構成している。ここで、RAID5とは、RAID技術の1つであり、データをディスクに記録する際に、複数のディスクにデータを分散して書き込むと同時に、パリティを計算及び生成してディスクに書き込む。そして、パリティ用ディスクは特に決まっておらず、全ディスク分散して書き込む、というものである。そして、従来の技術において説明したように、データに冗長性を持たせたディスクへの書き込み方式の一つである。
【0026】
また、ディスクに対して読み書きされるデータが一時的に記憶されるキャッシュメモリ30上には、データを格納するための領域であるキャッシュページ(例えば、ライトデータ、新パリティデータなどが格納されている領域)が存在する。そして、キャッシュページは、論理ドメイン31、物理ドメイン32、ワークドメイン33と名付けられたいずれかの領域に属している。ここで、論理ドメイン31とは、論理アドレスに関連づけられたデータの属する場所であり、物理ドメインとは、物理アドレス32に関連づけられたデータの属する場所である。また、ワークドメイン33とは論理アドレスにも物理アドレスにも関連づけられていないデータの属する場所である。但し、後述するように、実際には図1のように各ドメイン毎に領域が分けられているわけではない。説明の便宜上、図1のように示したまでである。
【0027】
今、キャッシュメモリ30上に上位ホスト(図示せず)からのライトデータ41が存在し、これをディスクに書き込むが、このデータは論理アドレスで検索可能なキャッシュページに格納されているので、論理ドメイン31に属している。図1では、このデータをライトするのはディスク11であり、対応するパリティはディスク15に存在するので、ディスク11と15において上記論理アドレスに対応するアドレスから、あらかじめ旧データ43と旧パリティ44を読み出す(矢印A1,A2参照)。具体的には、旧データ41は、ライトデータ41が関連付けられている論理アドレスに対応するディスク11上の領域(アドレス)21に格納されているデータであり、同様に、旧パリティ44は、ディスク15の領域25に格納されているデータであって、各ディスク11,15の領域21,25から読み出す。ちなみに、他のディスク12〜14にも、他のデータに対応する領域22〜24がそれぞれ形成されている。
【0028】
そして、論理ドメイン31内のライトデータ41と、ワークドメイン33内の旧データ43、旧パリティ44とから、新パリティ45をワークドメイン33内に生成する(矢印A3,A4,A5参照)。ここで、旧データ43、旧パリティ44、新パリティ45がワークドメイン33のキャッシュページに属しているのは、読み書き処理のための一時的なデータであるからである。
【0029】
次に、ライトデータ41と新パリティ45をディスク11,15に書き込む処理を行うが、本発明においてはディスクへの書き込み処理を行う前に、ライトデータ41と新パリティ45とをドメイン変換により、物理ドメイン32のキャッシュページとする。すなわち、ライトデータ41は、そもそも上位ホスト(図示せず)からの指令によりディスクアレイ装置に送られてきたため、論理ドメイン31内では論理アドレスに関連付けられて管理されており、これを、物理アドレスに関連付けられるよう変換を行う(矢印A6,A7参照)。
【0030】
その後、ディレクタは、物理ドメイン32内のキャッシュページを、ディスク上の該当アドレスデータよりも優先して、書き込み処理を行う(矢印A8,A9参照)。すなわち、ディスクへの書き込み処理が行われる前か、実施中か、完了しているかに関わらず、ディスク上の該当アドレスのデータに対して、物理ドメインのキャッシュページが優先される。そのため、ディスク書き込み中にディレクタ障害が発生して、ディスク上のデータが不定な状態になっても、物理ドメイン32のキャッシュページにライトデータが残っているため、かかるデータが再度書き込まれることにより、データコヒーレンシが維持されることになる。
【0031】
次に、図2乃至図7を参照して、本発明の具体的な実施例を説明する。まず、図2に示すように、本発明であるディスクアレイ装置50は、データの読み書きを制御する制御部であるディレクタ51,52を2つ備えている。このディレクタ51,52は、SCSIなどの汎用インターフェースによって上位ホストであるホストコンピュータ60に接続され、当該ホストコンピュータ60から受領したコマンドを処理する。またディレクタ51,52は、やはり汎用インターフェースによってディスク54〜59に接続され、ホストコンピュータ60から転送されたデータを、ディスクの適当な場所に格納したり、必要なデータを読み出したりする。ここで、ディレクタ51,52は、2つ備えてられていることを例示したが、必ずしもこの個数に限定されない。1つでもよく、3つ以上であってもよい。また、ディレクタ51,52は、それぞれ物理的に独立して形成されている。すなわち、一つのCPU内に2つの機能が存在するよう構成されているのではなく、図2の例では、2つの個別のハードウェアにて構成されている。
【0032】
さらに、ディレクタ51,52は、同一の記憶手段である共有メモリ53に接続されているが、この共有メモリ53は、キャッシュメモリとして使用され、不揮発なメモリでもある。そして、ディレクタ51,52は、ホストコンピュータ60とやりとりするデータを、共有メモリ53に一旦格納することでホストからコマンドに高速に応答することができる。なお、共有メモリ53は、不揮発なメモリにて構成されていなくてもよい。
【0033】
次に、上記キャッシュメモリとして機能する共有メモリ53内のデータ構造について、図3を参照して説明する。共有メモリ53上には、論理ドメイン検索エントリテーブル71、物理ドメイン検索エントリテーブル72、キャッシュページ配列80が存在する。そして、論理ドメイン検索エントリテーブル71には、論理アドレスから一意に決まるポインタ71a〜71dであって、その参照先に当該論理アドレスに関連づけられるキャッシュページがある。従って、論理ドメイン検索エントリテーブル71にて、いずれかのポインタ71a〜71dから、論理ドメイン31に属するキャッシュページを検索することができる。同様に、物理ドメイン検索エントリテーブル72には、物理アドレスから一意に決まるポインタ72a〜72dのいずれかのポインタから、当該物理アドレスに関連づけられるキャッシュページを検索することができる。すなわち、検索されたキャッシュページは、物理ドメイン32に属しているキャッシュページである。
【0034】
また、キャッシュページ配列80には、複数のキャッシュページ81〜91と、各キャッシュページに対応する未書き込みフラグ81fから91fの領域とがある。そして、キャッシュページには、ディスクに対して読み書きされるデータ(ライトデータやパリティデータなど)が格納される。また、すべてのキャッシュページ81〜91は、上述した論理ドメイン31、物理ドメイン32、ワークドメイン33のいずれかに属する。
【0035】
ここで、図3の矢印に示すように、キャッシュページ81,82,83,87は論理ドメイン検索エントリテーブル71から検索でき、従って、これらキャッシュページは、論理ドメイン31に属している。また、物理ドメイン32のキャッシュページ84,91は物理ドメイン検索エントリテーブル72から検索できるようになっている。そして、残りのキャッシュページ、すなわち、論理アドレスにも物理アドレスにも関連づけられていないキャッシュページ85,86,88,89,90,91は、ワークドメイン33に属するキャッシュページである。
【0036】
また、図2に示すディレクタ51,52は、以下に説明する機能を有する。まず、ディスクに対して読み書き制御を行う際に、共有メモリ(キャッシュメモリ)53上の物理アドレスに関連付けられたデータを当該物理アドレスに対応するディスク上のデータに対して優先して処理する機能を有する。従って、物理ドメイン32に属するデータがある場合には、このデータに対する処理が、ディスクから読み出し処理や当該ディスクに対する他のデータの書き込み処理などよりも優先して行われる。
【0037】
さらに、ディレクタ51,52には、ディスクに対する書き込み処理を行う前に、ディスクに書き込むデータを物理アドレスに関連付けて共有メモリ(キャッシュメモリ)53に格納する機能を有する。従って、書き込み処理の対象となっているデータは、書き込み処理前に常に物理ドメイン32内に格納されることとなる。そして、ディレクタ51,52は、ディスクにデータ書き込み処理を行なった後に、当該書き込みが完了したことを確認する機能を有し、この機能は、当該書き込み完了を確認した後に、当該書き込みデータをキャッシュメモリ上で物理アドレスに関連付けられた状態から開放する。すなわち、物理ドメイン32から移動あるいは削除される。従って、書き込み対象のデータは、完全にディスクに書き込まれない限りは物理ドメイン32に残ることとなり、その後、当該物理ドメイン32内のデータが、ディスク上のデータよりも優先してディレクタ51,52にて処理される。
【0038】
また、ディレクタ51,52には、いずれかのディスクに障害が生じても当該障害ディスクを縮退せずにデータ読み書き処理を行う機能を有する。すなわち、軽障害が発生した程度では読み書き処理を停止せずに読み書き処理を続行する。
【0039】
そして、本実施形態では、ディレクタ51,52を2つ備えているが、このように複数のディレクタが備えられている構成においては、各ディレクタが他のディレクタの状況を監視し、当該他のディレクタに障害が生じたら、障害が生じたディレクタの処理を引き継いでディスクへの読み書き処理を行う。例えば、ディスクに共有メモリ53内の物理ドメイン32に格納されているデータを書き込む際に、一方のディレタ51に障害が生じたら、他方のディレクタ52は当該物理ドメイン32のデータを優先的に処理し、障害前と同様にディスクへの書き込み処理を継続して実行する。
【0040】
ここで、ディレクトリ51,52は、上述した機能の全てを必ずしも備えていることに限定されない。そのうちの一部の機能が備わっていなくてもよい。また、上記機能は、あらかじめ各機能用プログラムがCPUであるディレクタ51,52に組み込まれており、あるいは、不揮発メモリなどの記憶手段に記憶されてこれを読み出すことにより、ディレクタ51,52内に各機能が構築され、これにより実現できる。なお、上記機能については、次の動作説明時に詳述する。
【0041】
次に、図4乃至図7のフローチャートを参照して、本実施形態におけるディスクアレイ装置50の動作を説明する。
【0042】
まず、図4のリード処理について説明する。はじめに、ディスクアレイ装置50のディレクタ51,52が、ホストコンピュータ60からディスク上の所定のデータを読み出すようリードコマンドを受信する(ステップS1)と、共有メモリ53内の論理ドメイン検索エントリテーブル71を用いて、リード対象となる論理アドレスにデータがあるか、すなわち、論理ドメインキャッシュページがあるか否かを調べる(ステップS2)。以下、キャッシュページがあるか否かの判定をヒット判定と呼び、キャッシュページがあることをヒットするという。
【0043】
そして、キャッシュページがヒットした場合、すなわち、対応するキャッシュページがある場合には(ステップS2で肯定判断)、当該キャッシュページからホストコンピュータ60にデータ転送を行う(ステップS8)。逆に、キャッシュページがヒットしなかった場合には、論理アドレスからそれに対応する物理アドレスを算出してアドレス変換する(ステップS3)。そして、物理ドメイン検索エントリテーブル72を用いて、変換した物理アドレスにデータがあるか、すなわち、物理ドメインキャッシュページのヒット判定を行う(ステップS4)。
【0044】
ここで、キャッシュページがヒットした場合には(ステップS4にて肯定判断)、当該キャッシュページからワークドメイン33のキャッシュページにデータコピーを行う(ステップS5)。また、キャッシュページがヒットしなかった場合には(ステップS4にて否定判断)、ディスクからワークドメイン33のキャッシュページにデータをコピーする(ステップS6)。すると、いずれの場合にも、ワークドメイン33のキャッシュページに必要なデータが格納されるので、データを格納したワークドメイン33のキャッシュページを論理ドメイン31のキャッシュページにドメイン変換する(ステップS7)。この処理は、具体的には、ワークドメイン33のキャッシュページに、論理ドメイン検索エントリテーブル71のポインタを参照させるよう、当該ポインタを書き換えることにより行う。これにより、当該キャッシュページを論理アドレスから検索できるようになる。その後、論理ドメインキャッシュページからホストコンピュータ60にデータを転送する(ステップS8)。以上の処理によってリードコマンド処理は完了となる。
【0045】
次に、図5のライト動作を説明する。まず、ディレクタ51,52が、ホストコンピュータ60からデータをディスクに記録するというライトコマンドを受信すると(ステップS11)、論理ドメイン検索エントリテーブル71を用いて、その論理アドレスに対応する論理ドメインキャッシュページがあるか否かを判定する(ヒット判定、ステップS12)。そして、キャッシュページがヒットした場合には(ステップS12で肯定判断)、ホストコンピュータ60からそのキャッシュページにライトデータを転送する(ステップS14)。このとき、当該キャッシュページに付随する未書き込みフラグをセットする。
【0046】
また、ステップS12にてキャッシュページがヒットしなかった場合には、ホストコンピュータ60からライトデータをワークドメイン33のキャッシュページにデータ転送する(ステップS13)。そして、データを格納したワークドメイン33のキャッシュページを、論理ドメイン31のキャッシュページにドメイン変換する(ステップS15)。以上の処理によってライトコマンド処理は完了となる。
【0047】
続いて、上記ライトコマンド処理によってキャッシュメモリに格納されたデータをディスクに書き込む処理を、図6のフローチャートを参照して説明する。ここで、ディレクタ51,52では、上述したコマンド処理動作とは非同期に、論理ドメイン31の未書き込みデータの監視処理が、定期的に行われる(ステップS21)。そして、監視処理は、具体的には、論理ドメイン31の未書き込みフラグがセットされたキャッシュページを検索することにより行われる(ステップS22)。
【0048】
このとき、未書き込みフラグがセットされたキャッシュページが存在する場合には(ステップS22で肯定判断)、そのキャッシュページの論理アドレスからそれに対応する物理アドレスを算出し、すなわち、アドレス変換し(ステップS23)、その物理アドレスにおいて物理ドメイン検索エントリテーブル72を用いて、物理ドメイン32のキャッシュページのヒット判定を行う(ステップS24)。
【0049】
そして、キャッシュページがヒットした場合には、ライトデータは既に物理アドレスに関連付けられているため、このときには当該キャッシュページの書き込み処理は実行せず(ステップS24にて肯定判断)、後の処理において書き込む(図7参照)。そして、物理ドメインキャッシュページがヒットしなかった場合には(ステップS24にて否定判断)、ワークドメイン33のキャッシュページに、該当するディスクから旧データと旧パリティデータを読み出す(ステップS25、図1の符号43,44参照)。そして、旧データ、旧パリティ及びライトデータとを用いて、ワークドメイン33のキャッシュページに新パリティデータを生成する(ステップS26、図1の符号45参照)。
【0050】
続いて、ライトデータと新パリティを物理ドメイン32にドメイン変換する(ステップS27)。この処理は、具体的には、論理ドメイン検索エントリテーブル71のポインタと物理ドメイン検索エントリテーブル72のポインタを書き換えることで、ライトデータと新パリティデータを物理アドレスから検索できるようにする。また、同時に、そのキャッシュページの未書き込みフラグをリセットする。
【0051】
その後、ドメイン変換したキャッシュページからディスクへデータ転送を行い、実際にライト処理を行う(ステップS28)。そして、ディスクにライト処理を行った結果、エラーが発生していないかの判定を行い(エラー判定、ステップS29)、エラーが発生していなければ(ステップS29にて否定判断)、ライトデータ及び新パリティデータを削除する(ステップS30)。この処理は、具体的には、物理ドメイン検索エントリテーブル72のポインタを書き換えることで、当該キャッシュページをアドレスで検索できないようにし、ワークドメイン33のキャッシュページとする処理である。すなわち、物理アドレスに関連付けられた状態から開放する処理である。一方、ライト処理にエラーがあった場合には(ステップS29にて肯定判断)、ライトデータ及び新パリティデータを物理ドメイン32に残したまま処理を終了する。
【0052】
次に、ディスクライト処理において残った物理ドメインのキャッシュページをディスクに書き込む処理を、図7のフローチャートを用いて説明する。このとき、ディレクタ51,52では、コマンド処理動作とは非同期に、物理ドメイン32のキャッシュページを定期的に監視している(ステップS31)。具体的には、物理ドメイン32のキャッシュページを検索する(ステップS32)。
【0053】
そして、物理ドメイン32のキャッシュページが存在する場合には(ステップS32にて肯定判断)、当該キャッシュページからディスクにデータ転送を行う(ステップS33)。すなわち、物理ドメインに残ったライトデータ及び新パリティデータを、実際にディスクに書き込む。
【0054】
その後、ディスクへのライト処理の結果をエラー判定し(ステップS34)、エラーが発生していなければ(ステップS34で否定判断)、当該キャッシュページを削除する(ステップS35)。この処理は、具体的には上述と同様に、物理ドメイン検索エントリテーブル72のポインタを書き換えることで、当該キャッシュページをアドレスで検索できなくし、ワークドメイン33のキャッシュページとする処理である。一方で、エラーがあった場合には(ステップS34にて肯定判断)、当該キャッシュページを物理ドメインに残したまま処理を終了する。
【0055】
そして、上記図7に示す物理ドメインの監視処理が常に実行され、物理ドメインに残されているデータ、すなわち、物理アドレスに関連付けられているデータの優先的な書き込み処理が行われる。
【0056】
このようにすることにより、ディスクへのライト処理において、書き込むライトデータと、それに伴って更新すべきパリティデータとを、ディスクへのライトを実行する前に、キャッシュメモリ上で物理アドレスによって検索可能な物理ドメインのキャッシュページとして管理することにより、書き込み処理中にディレクタが障害によりダウンした場合であっても、他の代替ディレクタで物理アドレスに関連付けられているデータの優先処理が継続されるため、障害発生前の書き込み処理を継続することができ、データコヒーレンシを維持することができる。その結果、ディスクアレイ装置の信頼性の向上を図ることができる。
【0057】
また、ディレクタが二重化されてない場合に当該ディレクタ障害が発生したり、あるいは、二重化されていても電源障害のようにディスクアレイ装置全体が停止してしまうような障害が書き込み処理中に発生した場合であっても、キャッシュメモリを不揮発メモリとすることで、障害回復後の再起動後にも当該不揮発メモリに残されている物理アドレスに関連付けられたデータが優先的に処理されるため、障害発生前の書き込み処理を継続することができ、データコヒーレンシを維持できる。
【0058】
さらに、ディスク障害によってエラーが発生したときでも、書き込めなかったデータを物理ドメインのキャッシュページとして管理することで、障害ディスクをすぐに縮退しなくてもデータ処理を継続することができる。そのため、発生したディスク障害が一時的な、または局部的な、軽障害である場合には、そのディスクを使い続けることが可能になり、そのためディスク交換の頻度が下がり、結果的に運用コストを削減することができる。
【0059】
【発明の効果】
本発明は、以上のように構成され機能するので、これによると、ディスクに対するデータのリード・ライト処理中に、ディスクや制御部に障害が発生した場合であっても、ディスクに対する処理対象データが物理ドメインのキャッシュページ上に残り、リード・ライト処理において当該アドレスにアクセスする場合に、そのディスク上のデータよりも物理ドメインのキャッシュページ上のデータが優先されるので、データコヒーレンシを維持したまま処理を継続することができ、リード・ライト処理の信頼性の向上を図ることができる、という従来にない優れた効果を有する。
【0060】
また、ライト処理中に電源障害が発生してディスクアレイ装置全体がダウンした場合でも、キャッシュメモリが不揮発なので書き込み中のデータが物理ドメインのキャッシュページ上に残る。障害が復旧してディスクアレイ装置が再起動するとディレクタはデータコヒーレンシを維持したまま処理を継続することができる。
【0061】
また、物理ドメインのキャッシュページはいずれかのディレクタの定期監視によってディスクに書き込まれ削除されるが、ディスク障害によってデータの書き込みがエラーした場合には書き込めなかったデータが物理ドメインのキャッシュページ上に残るため、ディスク障害が一時的な障害である場合には、当該データが後で定期監視によってディスクに書き込まれ、また、局部的な障害である場合には、物理ドメインのキャッシュページとして残ることになり、ディスクを縮退せずに使い続けることができるため、ディスクの交換コストを削減することができる。
【図面の簡単な説明】
【図1】本発明の一実施形態におけるデータ処理の概略を説明する説明図である。
【図2】本発明の一実施形態における構成を示すブロック図である。
【図3】図2に開示した共有メモリ(キャッシュメモリ)内のデータ構成を示すブロック図である。
【図4】ディスクアレイ装置によるリード処理の動作を示すフローチャートである。
【図5】ディスクアレイ装置によるライト処理の動作を示すフローチャートである。
【図6】図5に示すライト処理によってキャッシュメモリに格納されたデータをディスクに書き込む処理の動作を示すフローチャートである。
【図7】図6に示すライト処理においてキャッシュメモリの物理ドメインに残ったデータをディスクに書き込む処理の動作を示すフローチャートである。
【図8】図8(a)〜(c)は、従来のディスクアレイ装置におけるデータの書き込み処理を説明する説明図である。
【符号の説明】
11〜15,54〜59 ディスク
21〜25 記憶領域(ディスク内)
30 キャッシュメモリ
31 論理ドメイン
32 物理ドメイン
33 ワークドメイン
41,42 ライトデータ
43 旧データ
44 旧パリティデータ
45,46 新パリティデータ
50 ディスクアレイ装置
51,52 ディレクタ(制御部)
53 共有メモリ(キャッシュメモリ)
60 ホストコンピュータ
71 論理ドメイン検索エントリテーブル
72 物理ドメイン検索エントリテーブル
80 キャッシュページ配列
81〜91 キャッシュページ
81f〜91f 未書き込みフラグ
Claims (7)
- 上位ホストからの指令により複数のディスクに対してデータを読み書き制御する制御部と、前記ディスクに対して読み書きするデータを一時的に記憶するキャッシュメモリとを備え、
前記制御部が、前記キャッシュメモリ上において、前記上位ホストにて用いられる論理アドレスに関連付けたデータを物理アドレスに関連付けて前記ディスクに対して読み書き制御を行うディスクアレイ装置において、
前記制御部が、前記ディスクに対して読み書き制御を行う際に、前記キャッシュメモリ上の前記物理アドレスに関連付けられたデータを当該物理アドレスに対応する前記ディスク上のデータに対して優先して処理する、ことを特徴とするディスクアレイ装置。 - 前記制御部が、前記ディスクに対してデータの書き込み処理を行う前に、当該ディスクに書き込むデータを物理アドレスに関連付けて前記キャッシュメモリに格納する、ことを特徴とする請求項1記載のディスクアレイ装置。
- 前記制御部が、前記ディスクにデータの書き込み処理を行うと共に当該書き込みが完了したことを確認した後に、前記キャッシュメモリ上で前記物理アドレスに関連付けられた書き込みデータを当該物理アドレスに関連付けられた状態から解除する、ことを特徴とする請求項2記載のディスクアレイ装置。
- 前記制御部を、物理的に独立させて複数個備えたことを特徴とする請求項1,2又は3記載のディスクアレイ装置。
- 前記キャッシュメモリは、不揮発メモリであることを特徴とする請求項1,2,3又は4記載のディスクアレイ装置。
- 前記制御部は、前記いずれかのディスクに障害が生じても当該障害ディスクを縮退せずにデータ読み書き処理を行う、ことを特徴とする請求項1,2,3,4又は5記載のディスクアレイ装置。
- 上位ホストからの指令により複数のディスクに対してデータを読み書きするディスクアレイ装置におけるデータ書き込み方法において、
上位ホストにて用いられる論理アドレスに関連付けられたデータを、前記ディスクに対してデータの書き込み処理を行う前に物理アドレスに関連付けて一時的にキャッシュメモリに格納し、
前記キャッシュメモリ上の前記物理アドレスに関連付けられたデータを、当該物理アドレスに対応する前記ディスク上のデータに対して優先して書き込み処理する、ことを特徴とするディスクアレイ装置を用いたデータ書き込み方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003001314A JP2004213470A (ja) | 2003-01-07 | 2003-01-07 | ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法 |
US10/720,162 US20040133741A1 (en) | 2003-01-07 | 2003-11-25 | Disk array apparatus and data writing method used in the disk array apparatus |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003001314A JP2004213470A (ja) | 2003-01-07 | 2003-01-07 | ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004213470A true JP2004213470A (ja) | 2004-07-29 |
Family
ID=32677486
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2003001314A Pending JP2004213470A (ja) | 2003-01-07 | 2003-01-07 | ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20040133741A1 (ja) |
JP (1) | JP2004213470A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007004798A (ja) * | 2005-06-22 | 2007-01-11 | Seagate Technology Llc | 分散記憶システムにおけるアトミック・キャッシュ・トランザクション |
JP2008016024A (ja) * | 2006-06-30 | 2008-01-24 | Seagate Technology Llc | キャッシュされたデータのダイナミック適応フラッシング |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080256037A1 (en) * | 2007-04-12 | 2008-10-16 | Sihem Amer Yahia | Method and system for generating an ordered list |
US8407448B1 (en) * | 2008-05-06 | 2013-03-26 | Emc Corporation | Shared storage I/O elimination through mapping client integration into a hypervisor |
US9495301B2 (en) | 2012-08-07 | 2016-11-15 | Dell Products L.P. | System and method for utilizing non-volatile memory in a cache |
US9852073B2 (en) | 2012-08-07 | 2017-12-26 | Dell Products L.P. | System and method for data redundancy within a cache |
US9311240B2 (en) | 2012-08-07 | 2016-04-12 | Dell Products L.P. | Location and relocation of data within a cache |
US9549037B2 (en) * | 2012-08-07 | 2017-01-17 | Dell Products L.P. | System and method for maintaining solvency within a cache |
US9367480B2 (en) | 2012-08-07 | 2016-06-14 | Dell Products L.P. | System and method for updating data in a cache |
US9940204B2 (en) | 2015-11-02 | 2018-04-10 | International Business Machines Corporation | Memory error recovery |
US10853268B2 (en) * | 2016-06-15 | 2020-12-01 | Hitachi, Ltd. | Parity generating information processing system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0720994A (ja) * | 1993-06-30 | 1995-01-24 | Hitachi Ltd | 記憶システム |
JPH07152499A (ja) * | 1993-10-05 | 1995-06-16 | Hitachi Ltd | ディスクアレイ装置におけるパリティ格納方法、障害回復方法およびディスクアレイ装置 |
JPH09282236A (ja) * | 1996-04-09 | 1997-10-31 | Hitachi Ltd | 記憶制御方法および装置 |
JPH10111762A (ja) * | 1996-10-08 | 1998-04-28 | Hitachi Ltd | 記憶装置サブシステム |
JPH10312246A (ja) * | 1997-05-12 | 1998-11-24 | Hitachi Ltd | 記憶装置サブシステム |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5596708A (en) * | 1994-04-04 | 1997-01-21 | At&T Global Information Solutions Company | Method and apparatus for the protection of write data in a disk array |
US20030041215A1 (en) * | 2001-08-27 | 2003-02-27 | George Robert T. | Method and apparatus for the utilization of distributed caches |
US20040078508A1 (en) * | 2002-10-02 | 2004-04-22 | Rivard William G. | System and method for high performance data storage and retrieval |
-
2003
- 2003-01-07 JP JP2003001314A patent/JP2004213470A/ja active Pending
- 2003-11-25 US US10/720,162 patent/US20040133741A1/en not_active Abandoned
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH0720994A (ja) * | 1993-06-30 | 1995-01-24 | Hitachi Ltd | 記憶システム |
JPH07152499A (ja) * | 1993-10-05 | 1995-06-16 | Hitachi Ltd | ディスクアレイ装置におけるパリティ格納方法、障害回復方法およびディスクアレイ装置 |
JPH09282236A (ja) * | 1996-04-09 | 1997-10-31 | Hitachi Ltd | 記憶制御方法および装置 |
JPH10111762A (ja) * | 1996-10-08 | 1998-04-28 | Hitachi Ltd | 記憶装置サブシステム |
JPH10312246A (ja) * | 1997-05-12 | 1998-11-24 | Hitachi Ltd | 記憶装置サブシステム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007004798A (ja) * | 2005-06-22 | 2007-01-11 | Seagate Technology Llc | 分散記憶システムにおけるアトミック・キャッシュ・トランザクション |
JP2008016024A (ja) * | 2006-06-30 | 2008-01-24 | Seagate Technology Llc | キャッシュされたデータのダイナミック適応フラッシング |
Also Published As
Publication number | Publication date |
---|---|
US20040133741A1 (en) | 2004-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5768587B2 (ja) | ストレージシステム、ストレージ制御装置およびストレージ制御方法 | |
US7185222B2 (en) | Apparatus, system, and method for maintaining data in a storage array | |
JP4821448B2 (ja) | Raidコントローラおよびraid装置 | |
US8051367B2 (en) | Storage sub-system and method for controlling the same | |
US6766491B2 (en) | Parity mirroring between controllers in an active-active controller pair | |
US6604171B1 (en) | Managing a cache memory | |
US6591335B1 (en) | Fault tolerant dual cache system | |
US9081697B2 (en) | Storage control apparatus and storage control method | |
JP2008204041A (ja) | ストレージ装置及びデータ配置制御方法 | |
JPH06202817A (ja) | ディスクアレイ装置及びそのデータ更新方法 | |
US7721143B2 (en) | Method for reducing rebuild time on a RAID device | |
JP2004213470A (ja) | ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法 | |
JP2009163562A (ja) | ストレージシステム、ストレージシステムの制御部、ストレージシステムの制御方法 | |
JP2010026812A (ja) | 磁気ディスク装置 | |
JP4248164B2 (ja) | ディスクアレイのエラー回復方法、ディスクアレイ制御装置及びディスクアレイ装置 | |
JP2005293119A (ja) | ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム | |
JPH07306758A (ja) | ディスクアレイ装置及びその制御方法 | |
JP3256329B2 (ja) | ディスクアレイ装置及びその制御方法 | |
JP2007323377A (ja) | 記録装置、管理データの書き込み方法および管理データの修復方法 | |
JP2006285527A (ja) | ストレージ装置およびプログラム。 | |
JPH1031563A (ja) | 記憶装置 | |
JP5598124B2 (ja) | データ記録再生装置、データ記録方法、及び、データ記録プログラム | |
JP3793544B2 (ja) | ディスクアレイ装置及びその制御方法 | |
JP2002123372A (ja) | キャッシュメモリ付きディスクアレイ装置及びそのエラー制御方法並びにその制御プログラムを記録した記録媒体 | |
JP3542577B2 (ja) | ディスクアレイ装置及びその制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040428 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060914 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20061003 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20061201 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20071030 |
|
A02 | Decision of refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A02 Effective date: 20080408 |