JP2005209227A - ディスクアレイ装置 - Google Patents

ディスクアレイ装置 Download PDF

Info

Publication number
JP2005209227A
JP2005209227A JP2005096839A JP2005096839A JP2005209227A JP 2005209227 A JP2005209227 A JP 2005209227A JP 2005096839 A JP2005096839 A JP 2005096839A JP 2005096839 A JP2005096839 A JP 2005096839A JP 2005209227 A JP2005209227 A JP 2005209227A
Authority
JP
Japan
Prior art keywords
data
host
disk
parity
read
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.)
Granted
Application number
JP2005096839A
Other languages
English (en)
Other versions
JP3699473B2 (ja
Inventor
Sawao Iwatani
沢男 岩谷
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2005096839A priority Critical patent/JP3699473B2/ja
Publication of JP2005209227A publication Critical patent/JP2005209227A/ja
Application granted granted Critical
Publication of JP3699473B2 publication Critical patent/JP3699473B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Abstract

【課題】本発明はディスクアレイ装置に関し、リードパリティチェックで整合性に矛盾が有った場合でも、正しいホストデータを再構築し、ホストに対し常に正しいデータが転送できるようにする。
【解決手段】ディスクアレイ装置で、CRC付加処理部11がホストデータにCRCを付加しディスクアレイコントローラ4がそのデータを分割し、分割データからパリティを作成しディスク装置6−1〜6−nへ格納する。リード時はパリティ処理部19がリードパリティチェックを行い整合性に矛盾が有る場合、ディスクアレイコントローラ4では、データ用ディスク装置を1つずつ順番に誤ったデータが格納されているものと仮定し、前記ディスク装置を除く他のディスク装置の分割データ及びパリティよりホストデータを再構築しそのホストデータに対しCRCチェックを行い、整合性がとれれば正しいホストデータとする。
【選択図】 図1

Description

本発明は、複数のディスク装置と前記ディスク装置を並列的に動作させてデータの読み出し/書き込み制御を行うディスクアレイ制御装置を備えたディスクアレイ装置に関する。

以下、図面に基づいて従来例を説明する。
§1:ディスクアレイ装置の説明・・・図14参照
図14は従来のディスクアレイ装置の説明図である。ディスクアレイ装置は内蔵した複数の磁気ディスク装置(ハードディスク装置)を並列動作させることで、データの読み出し/書き込み速度の高速化を図り、かつ冗長構成の導入によって信頼性を向上させた外部記憶装置、或いは補助記憶装置である。なお、以下の説明では、前記磁気ディスク装置(又はハードディスク装置)を単に「ディスク装置」と記す。
図示のように、ディスクアレイ装置は、ホスト1に接続されたディスクアレイ制御装置2と、複数のRAID(詳細は後述する)を構成するディスク装置6−1、6−2、6−3・・・6−m、6−n(n=m+1)で構成されている。また、前記ディスクアレイ制御装置2には、ホストアダプタ3と、ディスクアレイコントローラ4と、複数のデバイスアダプタ(DA)5−1、5−2、5−3・・・5−m、5−nが設けてある。そして、前記デバイスアダプタ5−1〜5−nには、それぞれ前記各ディスク装置6−1〜6−nが接続されている。
前記のように、ディスクアレイ装置は、ホスト1に接続されて運用されるが、この場合、ホスト1とディスクアレイ制御装置2のホストアダプタ3間をインターフェースケーブル(例えば、SCSI−2用ケーブル)により接続する。ホストアダプタ3はホスト1に対するインターフェース制御を行うものであり、ディスクアレイコントローラ4は、データのリード/ライト時の各種制御等を行うものである。前記デバイスアダプタ(DA)5−1〜5−nは、データのリード/ライト時にディスクアレイコントローラ4の指示によりディスク装置6−1〜6−nに対する制御を行うものである。
前記ディスクアレイ装置はホスト1から見ると1台のディスク装置に見える。このディスクアレイ装置では、例えば、ホストアダプタ3がホスト1から送られたデータを受信すると、そのデータをディスクアレイコントローラ4へ送る。そして、ディスクアレイコントローラ4は、例えば、前記データを複数のデータに分割し、デバイスアダプタ5−1〜5−mを介して複数のディスク装置6−1〜6−m(データ用ディスク装置)に格納すると共に、前記データに対するパリティデータを作成し、デバイスアダプタ5−nを介して残りの1台のディスク装置6−n(パリティ用ディスク装置)に格納する。
このようにディスクアレイ装置は、大きなサイズのデータを複数のディスク装置に同時に書き込んだり、或いは複数のディスク装置から同時に読み出したりすることで1台のディスク装置よりもリード/ライトの高速化を実現し、かつデータの信頼性を向上させることができる。従って、装置の高性能化を図ることができるものである。
§2:RAIDの説明
前記ディスクアレイ装置は、複数のディスク装置(ハードディスク装置)を使用することにより、単独のディスク装置よりも高い信頼性と性能を実現する方式である。これは、1987年に米国のカリフォルニア大学バークレイ校のデビッド.A.パターソン(David.A.Patterson) 教授らが提唱したRAID(Redundant Arrays of Inexpensive Disks )と呼ばれるものである。すなわち、前記RAIDは前記デビッド.A.パターソン教授らの論文に由来する呼び方である。
前記のように、高速に大量のデータを多くのディスク装置にアクセスし、ディスク故障時におけるデータの冗長性を実現するディスクアレイ方式RAIDは、1から5までのレベル(以下、前記レベルをRAID1、RAID2、RAID3、RAID4、RAID5とも記す)に分類されており、レベル3からレベル5(RAID3、RAID4、RAID5)には、ディスク装置の故障時にデータを回復させるためのパリティデータを保持する。
前記RAIDのレベルの中でも、レベル4(RAID4)、レベル5(RAID5)では、複数の同時読み出しが可能であり、更に、レベル5(RAID5)においては、パリティを格納するディスク装置を固定しないことで、複数の同時書き込みをも可能としており、大量のトランザクション処理において効果を発揮する。
§3:RAIDのレベルの説明・・・図15参照
図15はRAIDのレベル説明図であり、(a) 図はRAID3のデータ転送(書き込み)、(b) 図はRAID5のデータ転送(書き込み)を示した図である。なお、図15において、3はホストアダプタ、4はディスクアレイコントローラ、A、B、C、D、Eはそれぞれデバイスアダプタ(DA)、6−1〜6−5はディスク装置である。
(1) :RAID1の説明
RAID1は、ディスク装置を二重化した、いわゆるミラードディスク構成である。すなわち、2つのディスク装置に同じデータが書かれる。ディスク装置のコストが2倍かかるが、最もシンプルで実績もある。性能に関しては、データの書き込み時は、2つのディスク装置への書き込み完了を待つために実行時間が少し延びるが、データの読み取り時は、2つのディスク装置のどちらかが空いていれば原理上は実行可能なので、性能向上となる。
(2) :RAID2の説明
RAID2は、入力データを分割し(ストライピング)、インターリーブをかけて複数のディスク装置に分散して格納するものである。この場合、前記分割したデータに対するエラー訂正符号を格納するディスク装置を冗長ディスク装置とし、前記冗長ディスク装置のデータをハミングコードとしたものである。
RAID2では、例えば、データ格納用のディスク装置が4台の場合、エラー訂正符号用のディスク装置は3台必要である。ディスク装置の特徴としては、複数のディスク装置障害でもデータが失われないことである。そのために、前記のように、複数の冗長ディスク装置を必要とし、正味のデータ量が少なくなるという欠点がある。
(3) :RAID3の説明・・・図15の(a) 図参照
RAID3は、入力データを分割し(ストライピング)、インターリーブをかけて分割したデータを複数のディスク装置に分散して格納するものである。この場合、前記分割したデータに対するエラー訂正符号を格納するディスク装置を冗長ディスク装置とし、前記冗長ディスク装置のデータをパリティデータとしたものである。このため、RAID3ではデータ用のディスク装置の数に関わらず、前記冗長ディスク装置(パリティデータ用ディスク装置)の台数は1台で済む。
例えば、RAID3では、図15の(a) 図に示したように、データを複数のディスク装置6−1〜6−4に対して並列的にリード/ライトするもので、1台のパリティ用ディスク装置6−5を持つことを特徴としている。データ転送速度は、並列度によりN倍(N:並列動作させるデータ用ディスク装置の台数)となる。また、1台のディスク装置に障害が発生しても、性能低下はなく、原理的にはデータ転送中に障害が発生しても、そのまま動作することも可能である。
(4) :RAID4の説明
RAID4はRAID3におけるストライピングユニット(分割単位)をセクタ単位(1又は数セクタ)としたものである。すなわち、前記RAID3では、複数のディスク装置を束ねてアクセスするため、ある程度大きな単位でアクセスする時は性能上の効果が見られるが、小さなデータ量のアクセスでは、個々のディスク装置にアクセスを分散させた方が性能上有利である。このことから、RAID4では、データは各ディスク装置に独立に書くが、パリティディスク装置を持ち、各ディスク装置の対応するビットから生成されたパリティを格納する。
そのため、1台のディスク装置の障害でも、データが失われない。欠点は、データ更新時に、必ずデータディスク装置とパリティディスク装置の両方をアクセスしなければならないことで、この場合のパリティディスク装置がボトルネックに成りやすい。
(5) :RAID5の説明・・・図15の(b) 図参照
RAID5は、RAID4の欠点であったパリティディスク装置へのアクセス集中を解消するために、パリティデータを各ディスク装置6−1〜6−5に分散させたものである。しかし、依然としてデータの更新時には2つのディスクアレイ装置をアクセスしなければならないし、パリティデータは、原理上、旧データとの差分をとらなければ生成できないので、リード(読み出し)、データ生成、ライト(書き込み)というプロセスを取る必要がある。
更に、パリティデータによって、データ喪失は事実上なくなったと言えるが、1台のディスクアレイ装置が故障した場合は、少なくとも元の装置性能を維持することができない。故障したディスクアレイ装置のデータを作り出すのに、残ったディスクアレイ装置のデータを総動員するからである。従って、ノンストップシステムのように、ディスクアレイ装置の障害でシステムを止めたくないものには向かない。
前記RAID5のデータ転送(書き込み)の1例は図15の(b) 図に示した通りである。(b) 図において、P0、P1、P2、P3はパリティであり、パリティ生成のセクタグループ毎にパリティを格納するディスク装置を異ならせている。なお、RAID5でもRAID4と同様にストライピングユニットはセクタ単位(1又は数セクタ)である。

(1) :従来のディスクアレイ装置において、RAID3やRAID5のレベルでは、データのリード時にパリティデータを使用せず、パリティ用ディスク装置を除く他のディスク装置からリードしたデータからホストデータを再構築(復元)し、そのままホストへ転送していた。このようなディスクアレイ装置では、リード時のパリティチェックをしていないので、仮にリードデータにデータ化けやデータ消失等があってもこれを検出することができず、データの信頼性が低下していた。
(2) :従来のディスクアレイ装置において、1台のデータ用ディスク装置が故障した場合、そのディスク装置を除いて、他のディスク装置から読み出したデータからホストデータを再構築(復元)することも知られていた。この場合、RAIDにおけるパリティを使ったデータの再構築(復元)は、RAID3やRAID5においては、故障したディスク装置の再構築を正常なディスク装置の各データの排他的論理和を取ることで行っていた。
また、最近のディスクアレイ装置では、前記排他的論理和機能を利用し、データリード時に、データとパリティの整合性がとれているか調査する機能(リードパリティチェック機能)が加えられているものが多くなってきている。しかし、前記リードパリティチェック機能を備えた装置において、リード時のパリティチェックを行い、その結果、データの整合性がとれたリードデータについては問題はないが、データの整合性が取れなかったリードデータについては、ホストにリードデータの整合性がとれなかったということを通知するだけに留まっていた。この場合、ホストへデータが送れなくなるので、データの消失が発生することになり、データの信頼性が低下する。
本発明は、このような従来の課題を解決し、データの読み出し時にリードデータのパリティチェックを行い、その結果、整合性に矛盾が発生した場合でも、正しいホストデータを再構築して、ホストに対し常に正しいデータの転送ができるようにすることを目的とする。

本発明は前記の目的を達成するため、次のように構成した。
(1) :複数の記憶装置(ディスク装置)と、前記複数の記憶装置を並列的に動作させることでデータの書き込み/読み出し制御を行うディスクアレイ制御装置を備えたディスクアレイ装置において、前記ディスクアレイ制御装置は、入力したホストデータに巡回冗長検査情報として第1冗長情報を付加し、この第1冗長情報付きホストデータを分割し、この分割データからチェック用の第2冗長情報を作成し、前記分割データ及び第2冗長情報を前記複数の記憶装置へ書き込む制御を行う制御手段を備えると共に、前記複数の記憶装置から読み出した分割データからチェック用の第2冗長情報を作成し、この第2冗長情報を前記記憶装置から読み出した第2冗長情報と比較して第2冗長情報のチェックを行う第2冗長情報チェック手段と、前記第2冗長情報チェック手段によるチェックで整合性に矛盾が有る場合、前記複数の記憶装置を1つずつ順番に誤ったデータが格納されているものと仮定し、この仮定の元で前記誤ったデータが格納されているものと仮定した記憶装置を除く他の記憶装置のデータより第1冗長情報付きホストデータを順次再構築するホストデータ再構築手段と、前記ホストデータ再構築手段で再構築した第1冗長情報付きホストデータに対して第1冗長情報のチェックを行って整合性がとれなかった場合、前記ホストデータ再構築手段で、誤ったデータが格納されていると仮定した記憶装置を別の記憶装置と仮定し、再びこの仮定の元で再構築された第1冗長情報付きホストデータに対し第1冗長情報のチェックを行う処理を、整合性がとれるまで繰り返して行い、整合性がとれた場合、そのホストデータを正しいホストデータとする第1冗長情報チェック手段を備えていることを特徴とする(RAIDレベル3、RAIDレベル5に対応)。
(2) :複数のディスク装置6−1〜6−nと、各ディスク装置6−1〜6−nを並列的に動作させることでデータの書き込み/読み出し制御を行うディスクアレイ制御装置2を備え、ディスクアレイ制御装置2により、ホスト1から転送されたホストデータを分割し、その分割データからパリティデータを作成して、前記分割データを複数のデータ用ディスク装置6−1〜6−mに書き込むと共に、前記パリティデータを1つのパリティ用ディスク装置6−nに書き込むRAIDレベル3のディスクアレイ装置において、ディスクアレイ制御装置2は、前記ホストデータに巡回冗長検査情報(以下単に「CRC」とも記す)を付加し、このCRC付きホストデータを分割し、この分割データからパリティデータを作成して前記各ディスク装置6−1〜6−nへの書き込み制御を行うデータ書き込み制御手段(ホストアダプタ3、ディスクアレイコントローラ4、及びデバイスアダプタ5−1〜5−nの一部)と、前記ディスク装置6−1〜6−mから読み出した分割データからパリティデータを作成し、このパリティデータを前記パリティ用ディスク装置6−nから読み出したパリティデータと比較してパリティチェックを行うパリティチェック手段(パリティ処理部19の一部)と、前記パリティチェック手段によるパリティチェックで整合性に矛盾が有る場合、前記複数のデータ用ディスク装置6−1〜6−m及びパリティ用ディスク装置6−nを1つずつ順番に誤ったデータが格納されているものと仮定し、この仮定の元で前記誤ったデータが格納されているものと仮定したディスク装置を除く他のディスク装置のデータより巡回冗長検査情報付きホストデータを順次再構築(復元)するホストデータ再構築手段(ディスクアレイコントローラ4の一部)と、前記ホストデータ再構築手段で再構築した巡回冗長検査情報付きホストデータに対してCRCチェック(巡回冗長検査情報チェック)を行って整合性がとれなかった場合、前記ホストデータ再構築手段で、誤ったデータが格納されていると仮定したディスク装置を別のディスク装置と仮定し、再びこの仮定の元で再構築された巡回冗長検査情報付きホストデータに対し巡回冗長検査情報チェックを行う処理を、整合性がとれるまで繰り返して行い、整合性がとれた場合、そのホストデータを正しいホストデータとする巡回冗長検査情報チェック手段(CRCチェック部20)を備えている。
(3) :データを格納する複数のデータ記憶装置(例えば、ディスク装置5−1〜5−m)と、前記複数のデータ記憶装置に格納される複数のデータに対して付加された第1の冗長情報(例えば、ホストCRC)を格納する第1の冗長情報記憶装置(例えば、ディスク装置5−1〜5−mの内のいずれか1つの装置)と、前記複数のデータと前記第1の冗長情報とに基づいて作成された第2の冗長情報(例えば、パリティデータ)を格納する第2の冗長情報記憶装置(例えば、ディスク装置5−n)とを含んでなる複数の記憶装置を制御するためのディスクアレイ制御部(ディスクアレイ制御装置2)を備えてなるディスクアレイ装置であって、前記ディスクアレイ制御部は、前記データ記憶装置にデータを格納し、前記第1の冗長情報記憶装置に第1の冗長情報(例えば、ホストCRC)を格納する際に、前記第2の冗長情報記憶装置に格納すべき当該データ及び第1の冗長情報用の第2の冗長情報(例えば、パリティデータ)を作成する手段(例えば、パリティ処理部19の一部)と、前記複数のデータ記憶装置からデータを読出す際に、前記データの正常性を、複数のデータ及び複数のデータに付加された第1の冗長情報から作成された前記第2の冗長情報記憶装置に格納された第2の冗長情報に基づいて判定する手段(パリティ処理部19の一部)と、前記データの正常性がないことが判定された場合に、前記複数の記憶装置のうちの一つの記憶装置を指定し、この指定された記憶装置を除く残りの記憶装置に格納されている情報に基づいて、複数のデータ及び複数のデータに付加された第1の冗長情報からなる巡回冗長情報付きデータの再構築を行う再構築手段(ディスクアレイコントローラ4の一部)と、前記再構築されたデータの整合性を、前記再構築されたデータに含まれる第1の冗長情報に基づいて判定する手段(例えば、CRCチェック部20)とを備えている。
また、前記再構築手段によるデータの再構築と、前記判定手段によるデータの整合性の判定を順次複数の記憶装置に対して実行させるための制御手段とを含んでいる。
(作用)
図1は本発明の原理説明図である。以下、図1に基づいて前記各構成の作用を説明する。
(a) :RAIDレベル3のディスクアレイ装置において、データの書き込み時にデータ書き込み手段がホスト1から転送されたホストデータにCRCを付加し、このCRC付きホストデータを分割しこの分割データからパリティデータを作成する。そして、前記分割データをディスク装置6−1〜6−mへ書き込み、パリティデータをディスク装置6−nに書き込む。
次に、データ読み出し時には、パリティチェック手段は、ディスク装置6−1〜6−mから読み出した分割データからリードパリティデータを作成し、このリードパリティデータを前記パリティ用ディスク装置6−nから読み出したパリティデータと比較してリードパリティチェックを行う。
パリティチェック手段によるリードパリティチェックで整合性に矛盾が有る場合、ホストデータ再構築手段は、全てのディスク装置6−1〜6−nを1つずつ順番に誤ったデータが格納されているものと仮定し、この仮定の元で、誤ったデータが格納されているものと仮定したディスク装置を除く他の全てのディスク装置のデータより巡回冗長検査情報付きホストデータを順次再構築する。
そして、巡回冗長検査情報チェック手段は、ホストデータ再構築手段で再構築した巡回冗長検査情報付きホストデータに対してCRCチェックを行い、その結果整合性がとれなかった場合、前記ホストデータ再構築手段で誤ったデータが格納されたと仮定したディスク装置を別のディスク装置と仮定し、この仮定の元で、再び再構築された巡回冗長検査情報付きホストデータに対しCRCチェックを行う処理を前記整合性がとれるまで繰り返して行い、前記チェックで整合性がとれた場合、そのホストデータを正しいホストデータとする。その後、このホストデータはホストアダプタ3を介してホスト1へ転送する。
前記のようにすれば、RAIDレベル3のディスクアレイ装置において、リードパリティチェックで整合性がとれなかった場合でも、CRCチェックにより、常に正しいホストデータを再構築してホスト1へ転送することができる。従って、データの信頼性が向上する。
(b) :ディスクアレイ制御部は、データの書き込み時にホスト1から転送されたホストデータに第1の冗長情報を付加し、この第1の冗長情報付きホストデータを分割し、この分割データから第2の冗長情報を作成する。そして、前記分割データを複数のデータ記憶装置へ書き込み、第2の冗長情報を第2の冗長情報記憶装置に書き込む。
次に、データ読み出し時には、ディスクアレイ制御部は、複数のデータ記憶装置から読み出した分割データから第2の冗長情報を作成し、この第2の冗長情報を前記第2の冗長情報記憶装置から読み出した第2の冗長情報と比較して整合性を判定する。
前記整合性の判定で整合性に矛盾が有る場合、前記再構築手段は、全てのデータ記憶装置を1つずつ順番に誤ったデータが格納されているものと仮定し、この仮定の元で、誤ったデータが格納されているものと仮定した記憶装置を除く他の全ての記憶装置のデータよりホストデータを順次再構築する。
そして、前記制御手段は、前記再構築手段で再構築したホストデータに対して整合性を判定し、その結果整合性がとれなかった場合、前記再構築手段で誤ったデータが格納されたと仮定した記憶装置を別の記憶装置と仮定し、この仮定の元で、再び再構築されたホストデータに対し第2の冗長情報によるチェックを行う処理を前記整合性がとれるまで繰り返して行い、前記チェックで整合性がとれた場合、そのホストデータを正しいホストデータとする。その後、このホストデータはホストアダプタ3を介してホスト1へ転送する。
前記のようにすれば、ディスクアレイ装置において、第2の冗長情報によるチェックで整合性がとれなかった場合でも、常に正しいホストデータを再構築してホスト1へ転送することができる。従って、データの信頼性が向上する。

本発明は、前記構成により次のような効果がある。
(1) :従来のリードパリティチェック機能を備えていないディスクアレイ装置において、RAID3やRAID5のレベルでは、データのリード時にパリティデータを使用せず、パリティ用ディスク装置を除く他のディスク装置からリードしたデータからホストデータを再構築し、そのままホストへ転送していたので、リードデータにデータ化けやデータ消失等があってもこれを検出することができず、データの信頼性が低下していた。
これに対して本願発明は、ディスク装置からのデータリード時にリードパリティチェックを行い、その結果、整合性に矛盾が有れば、正しいホストデータを再構築してホストへ転送することができる。従って、リード時にホストデータをホストヘ転送できない事態もなくなりデータの消失もなくなる。その結果、データの信頼性、及びディスクアレイ装置の信頼性が更に向上する。
(2) :従来のリードパリティチェック機能を備えた装置では、リード時のパリティチェックを行い、その結果、データの整合性がとれたリードデータについては問題はないが、データの整合性が取れなかったものについては、ホストにリードデータの整合性がとれなかったということを通知するだけに留まっていた。この場合、ホストへデータが送れなくなるので、データの消失が発生することになり、データの信頼性が低下していた。
これに対して本願発明は、データの読み出し時にリードデータのパリティチェックを行い、その結果、整合性に矛盾が発生したら、CRCチェックや時刻データのチェック、或いは更新カウンタのカウンタ値のチェック等により、正しいホストデータを再構築してホストへ転送することができる。従って、データの消失等の事態も回避され、データの信頼性、及びディスクアレイ装置の信頼性が更に向上する。
(3) :RAIDレベル3のディスクアレイ装置において、ディスクアレイ制御装置は、ホストデータに巡回冗長検査情報(CRC情報)を付加して分割し、パリティデータを作成して各ディスク装置への書き込み制御を行うデータ書き込み制御手段と、ディスク装置から読み出した分割データからパリティデータを作成し、このパリティデータをパリティ用ディスク装置から読み出したパリティデータと比較してパリティチェックを行うパリティチェック手段と、パリティチェックで整合性に矛盾が有る場合、データ用ディスク装置及びパリティ用ディスク装置を1つずつ順番に誤ったデータが格納されているものと仮定し、誤ったデータが格納されているものと仮定したディスク装置を除く他のディスク装置のデータよりホストデータを順次再構築するホストデータ再構築手段と、前記再構築したホストデータに対して巡回冗長検査情報チェックを行って整合性がとれなかった場合、ホストデータ再構築手段で、誤ったデータが格納されていると仮定したディスク装置を別のディスク装置と仮定し、再びこの仮定の元で再構築されたホストデータに対し巡回冗長検査情報チェックを行う処理を、整合性がとれるまで繰り返して行い、整合性がとれた場合、そのホストデータを正しいホストデータとする巡回冗長検査情報チェック手段を備えている。
従って、RAIDレベル3のディスクアレイ装置において、リードパリティチェックで整合性がとれなかった場合でも、巡回冗長検査情報チェックにより、常に正しいホストデータを再構築してホストへ転送することができる。このため、データの信頼性が向上する。
(4) :以上のように、ディスクアレイ装置において、第2の冗長情報によるチェックで整合性がとれなかった場合でも、常に正しいホストデータを再構築してホスト1へ転送することができる。従って、データの信頼性が向上する。
(各実施の形態に共通の説明)
前記ディスクアレイ装置において、リードパリティチェック時に不整合が生じるのは、RAIDを構成しているディスク装置内の1台が何らかの原因で正しいデータを返せない場合が殆どである。特に、ライトコマンドがディスク装置に送られた時に、ライトデータが実際にディスク装置の記憶媒体に書かれずにディスク装置が正常終了を返す場合がある。このような場合、ディスク装置側はリードコマンドに対して前回ライトコマンドで書き損じたデータを何も問題なく転送してくるようになってしまう。このようなデータをディスクアレイコントローラに転送し、パリティチェックを行うと整合性がとれない。
ここで、RAID本来の特徴である「故障した1台のディスク装置の場所が分かればデータを復元できる」ということを用いることによりデータを復元(以下「再構築」とも記す)すれば良いのであるが、どれが誤ったデータが書かれているディスク装置なのかは、ディスクアレイコントローラ4は理解できない。
従って、後述する実施の形態1〜5の処理を用いることにより、どのディスク装置に誤ったデータが書かれていたかを特定し、その特定されたディスク装置のデータを不良(誤ったデータ)としてRAIDのデータ再構築機能を利用して他のデータからホストデータを再構築する。
以下、各例について詳細に説明する。なお、以下に説明する「CRC」(Cyclic Redundancy Check )は、巡回冗長検査のことであり、前記巡回冗長検査のために付加する検査情報を単に「CRC」と記す。また、ホストからディスクアレイ装置側へ転送されるデータ(書き込みデータ)を「ホストデータ」、ディスク装置側に記憶されたデータ(分割データ)を「ディスクデータ」、ディスク装置から読み出したデータから再構築され、ホストへ転送されるデータを「再構築されたホストデータ」、或いは単に「ホストデータ」とも記す。
(実施の形態1の説明)
§1:実施の形態1の装置の説明・・・図2参照
図2は実施の形態1の装置構成図である。図示のように、ディスクアレイ装置は、ホスト1に接続されたディスクアレイ制御装置2と、前記ディスクアレイ制御装置2に接続された複数のディスク装置(磁気ディスク装置、或いはハードディスク装置)6−1〜6−n(n:ディスク装置の台数)によって構成されている。
また、ディスクアレイ制御装置2には、ホストアダプタ3とディスクアレイコントローラ4と、複数のデバイスアダプタ5−1〜5−nが設けてある。そして、ホストアダプタ3には、メモリ10とCRC付加処理部11が設けてあり、ディスクアレイコントローラ4にはパリティ処理部19とCRCチェック部20が設けてあり、デバイスアダプタ5−1から5−nにはそれぞれメモリ12−1から12−nが設けてある。前記各部の機能等は次の通りである。
(1) :ディスクアレイ制御装置2は、ディスクアレイ装置の各種制御を行うものである。
(2) :ディスク装置6−1〜6−nは、内部にそれぞれ記憶媒体(磁気ディスク)を備え、デバイスアダプタ5−1〜5−nを介して送られたコマンドによりデータのリード/ライト等を行うものである。
(3) :ホストアダプタ3は、ホスト1に対するインターフェース制御を行うものである。例えば、コマンドの受信、ホストデータの送受信等を行うものである。
(4) :ディスクアレイコントローラ4は、データのリード/ライト時の各種制御や処理を行うものである。
(5) :デバイスアダプタ5−1〜5−nは、ディスクアレイコントローラ4の指示により各ディスク装置6−1〜6−nを制御するものである。
(6) :メモリ10は、ホストアダプタ3がアクセスし、ワーク用として使用するメモリである。
(7) :CRC付加処理部11は、ホストデータにCRCを付加する処理を行うものである。
(8) :パリティ処理部19は、パリティデータの作成、パリティチェック処理等を行うものである。
(9) :CRCチェック部20は、リードデータから再構築したホストデータに対するCRCチェックを行うものである。
(10):メモリ12−1〜12−nは、各デバイスアダプタ5−1〜5−nがそれぞれアクセスし、ワーク用として使用するメモリである。
§2:処理概要の説明
実施の形態1はRAID3のレベルでの処理において特に効果のある処理である。従って、この例では、図2に示した構成のRAID3のディスクアレイ装置により処理を行う。データの書き込み時には、ホスト1から受信したホストデータにCRCを付加し、このCRC付きホストデータを複数のデータに分割し、これら分割データからパリティデータを作成する。
そして、前記分割データとパリティデータをディスクアレイコントローラ4、デバイスアダプタ5−1〜5−nを介してディスク装置6−1〜6−nへ送り、前記ディスク装置の記録媒体に書き込む。この場合、分割データはディスク装置6−1〜6−mに書き込み、前記パリティデータはディスク装置6−nに書き込む。
また、ディスク装置6−1〜6−nからのデータのリード時には、RAID3でのリードパリティチェックを行い、その結果整合性がとれなかった場合、ホストCRCを用いてホストデータのRAID3での再構築(復元)を行う。すなわち、ディスクアレイコントローラ4では、リードパリティの不整合時に、端のディスク装置から格納されているデータが誤っているのではないかと仮定を立てて、ホストデータを再構築してみる。そして、正しいホストCRCが計算されたものを本来の正しいホストデータとしてホスト1へ転送する。
§3:処理の説明・・・図3参照
図3は実施の形態1の処理説明図である。以下、図3に基づいて実施の形態1の処理を説明する。
(1) :RAID3でのライト時の処理
RAID3でのデータライト(書き込み)時の処理は次の通りである。この場合ディスク装置6−1〜6−mを分割データ格納用とし、ディスク装置6−nをパリティデータ格納用として、データのリード/ライト時の処理を次のようにして行う。
先ず、ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する(a参照)。そして、CRC付加処理部11は前記メモリ10に格納されたホストデータからホストCRC(CRC検査情報)を作成し、前記ホストデータに付加する(b参照)。
次に、ホストアダプタ3は、前記CRC付きのホストデータをディスクアレイコントローラ4へ転送する。ディスクアレイコントローラ4は前記CRC付きホストデータを受け取ると、RAID3に基づき、前記CRC付きホストデータをm個のデータに分割して(CRCも含めたホストデータを分割する)、各ディスク装置6−1〜6−mに割り振るデータを作成する。また、パリティ処理部19は、前記m個の分割された各データの排他的論理和を計算してパリティデータを作成する。
すなわち、前記CRC付きホストデータを分割した分割データをd1 、d2 、d3 ・・・dm 、パリティデータをPとすると、前記パリティデータPは、前記分割データd1 、d2 、d3 ・・・dm の各排他的論理和となる(d参照)。
次にディスクアレイコントローラ4は、ディスク装置6−1〜6−nに対してライトコマンドを発行すると共に、前記作成した各ディスク装置毎の分割データをデバイスアダプタ5−1〜5−mへ転送する。これと同時に、デバイスアダプタ5−nには、前記パリティデータを転送する。これらのデータはデバイスアダプタ内でそれぞれメモリ12−1〜12−nに一時格納される。
その後、デバイスアダプタ5−1〜5−mは、各々接続されているディスク装置6−1〜6−mに前記ライトコマンドを送ると共に、前記分割データを転送する。そして、ディスク装置6−1〜6−mは記憶媒体に前記分割データを書き込む(ディスクデータの書き込み)。また、デバイスアダプタ5−nは、接続されているディスク装置6−nにライトコマンドを送ると共に、前記パリティデータを転送し、ディスク装置6−nは記憶媒体にパリティデータを書き込む(c参照)。
(2) :RAID3でのリード処理において、パリティの整合性に矛盾が無かった場合の処理説明
RAID3でのリード処理時に、パリティの整合性に矛盾がなかった場合の処理は次の通りである。先ず、ホスト1の発行したリードコマンドをホストアダプタ3が受信すると、ホストアダプタ3は、そのコマンドをディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで各ディスク装置6−1〜6−nに対してリードコマンドを発行する。
デバイスアダプタ5−1〜5−nを介して前記リードコマンドを受信したディスク装置6−1〜6−nは、指定されたアドレスのデータをリードする。そして、ディスク装置6−1〜6−nからリードしたデータは、ディスク装置6−1〜6−nに接続されている各デバイスアダプタ5−1〜5−nに転送され、それぞれメモリ12−1〜12−nに格納される。
この状態で、メモリ12−1〜12−mにはリードされた分割データが格納され、メモリ12−nにはリードされたパリティデータが格納される。その後、ディスクアレイコントローラ4は、前記メモリ12−1〜12−mに格納されている分割データを用いて、ホストデータを再構築(復元)する。
この時、ディスクアレイコントローラ4のパリティ処理部19は、前記メモリ12−1〜12−mに格納されている各分割データの排他的論理和を計算してリードパリティとし、このリードパリティを前記メモリ12−nに格納されているパリティと比較することでリードパリティチェックを行う。この場合、前記メモリ12−1〜12−mに格納されている分割データをd1 、d2 、d3 ・・・dm 、メモリ12−nに格納されているパリティデータをP、前記分割データd1 、d2 、d3 ・・・dm から計算したリードパリティデータをRPとすると、前記リードパリティデータRPは、前記各分割データd1 、d2 、d3 ・・・dm の排他的論理和となる。
そして前記リードパリティチェックでRP=Pとなれば、整合性に矛盾無しと判断する(e参照)。すなわち、前記リードパリティチェックの結果、両者が一致すれば(RP=P)、リードパリティチェックが正常であり、リードデータの整合性に矛盾が無かったとして、前記再構築したデータをホストアダプタ3へ転送する。その後、ホストアダプタ3は前記データをホスト1へ転送する。
(3) :RAID3でのリード処理において、パリティの整合性に矛盾が有った場合の処理説明
前記のように、ディスク装置からのデータリード時に、デバイスアダプタ5−1〜5−mのメモリ12−1〜12−mに格納されている各分割データの排他的論理和から計算したリードパリティRPと、デバイスアダプタ5−nのメモリ12−nに格納されているパリティデータPとの比較において不一致であった場合、従来の装置ではホストデータの再構築ができないため、パリティ不一致ということをホスト1へ通知するに止まっていた。
しかし、本実施の形態1では、ホストデータに付加されていたホストCRCデータを用いてデータの再構築を行う。この場合、原則として、パリティ不一致が起きた場合、どれか1つのデバイスアダプタのメモリに誤ったデータが格納されている可能性が多く、2つ以上のデバイスアダプタのメモリに誤ったデータが格納されている場合は、確率的にも少なく、また、こうなってしまった場合、本実施の形態1でも救済することはできない。
そこで、実施の形態1では、前記のようにパリティが不一致と分かった時点で以下のようなデータリカバリ処理を実施する。先ず、ディスクアレイコントローラ4は、端のデバイスアダプタ5−1のメモリ12−1に誤ったデータが入ってしまったと仮定する。この仮定の元でRAID3のリカバリ方法によりホストデータを再構築(復元)してみる(故障した1台のディスク装置の場所が分かればホストデータを復元できる)。
この場合、メモリ12−1に格納された分割データd1 が誤ったデータであると仮定するので、この分割データd1 を除いて他の全てのデータd2 、d3 ・・・dm 、及びパリティデータPの各排他的論理和を計算すれば、前記データd1 が復元できる。従って、前記復元したデータd1 を含めた全ての分割データd1 、d2 、d3 ・・・dm からホストデータが再構築できる。
その後、前記再構築されたホストデータが正しいものか否かを、CRCチェック部20が再構築されたホストCRCデータをチェックすることで決定する。前記CRCチェック部20によるホストCRCチェックで整合性がとれた場合、ディスクアレイコントローラ4は、前記再構築したホストデータを正しいホストデータとし、デバイスアダプタ5−1のメモリ12−1に誤ったデータが入っていたものと断定する。
もし、前記ホストCRCチェックで整合性がとれない場合は、このデバイスアダプタ5−1以外の他のデバイスアダプタ5−2〜5−nのメモリ12−2〜12−nに誤ったデータが入っているに違いないとする。このため、ディスクアレイコントローラ4は、誤ったデータが入っていると仮定するデバイスアダプタのメモリを隣のデバイスアダプタ5−2のメモリ12−2とし、かつデバイスアダプタ5−1のメモリ12−1を正確なデータが入っているものと仮定して、この仮定の元で、再度、ホストデータを再構築し、CRCチェック部20が前記のホストCRCチェックを行う。
これを全てのデバイスアダプタのメモリに格納されているデータについて、ホストCRCの整合性がとれるまで繰り返して行う。前記のようにして、CRCチェック部20によるホストCRCチェックで整合性がとれた場合、そのホストデータは正しいとする。そして、ディスクアレイコントローラ4は、その再構築したホストデータをホストアダプタ3へ転送する。ホストアダプタ3は前記データを受け取ると、そのホストデータをホスト1へ転送する。
§4:フローチャートによる処理の説明・・・図4参照
図4は実施の形態1の処理フローチャートである。以下、図4に基づいて実施の形態1の処理を説明する。なお、S1〜S13は各処理ステップを示す。
処理が開始され、ホストアダプタ3がホスト1の発行したコマンドを受信すると(S1)、ホストアダプタ3は前記コマンドをメモリ10に一時格納すると共に、そのコマンドを解析し内容を判断する(S2)。その結果、前記コマンドがライトコマンドであれば、RAID3でのデータライト(書き込み)時の処理を次のようにして行う。
ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する。そして、CRC付加処理部11は前記メモリ10に格納されたホストデータからホストCRCを作成し、ホストデータに付加してCRC付きホストデータとする。その後ホストアダプタ3は、前記CRC付きのホストデータをディスクアレイコントローラ4へ転送する(S3)。
ディスクアレイコントローラ4は前記CRC付きのホストデータを受け取ると、RAID3により、前記CRC付きのホストデータをm個のデータに分割して、各ディスク装置6−1〜6−mに割り振るデータを作成する。また、パリティ処理部19は前記m個のデータの排他的論理和を計算してパリティデータを作成する。
次にディスクアレイコントローラ4は、ディスク装置6−1〜6−nに対してライト命令を発行すると共に、前記作成した各ディスク装置毎のデータ(分割データ)をデバイスアダプタ5−1〜5−mへ転送する。これと同時に、デバイスアダプタ5−nには、前記作成したパリティデータを転送する(S4)。
その後、デバイスアダプタ5−1〜5−mは、各々接続されているディスク装置6−1〜6−mに前記ライトコマンドを送ると共に分割データを転送する。そして、ディスク装置6−1〜6−mは記憶媒体に前記分割データを書き込む(ディスクデータの書き込み)。また、デバイスアダプタ5−nは、接続されているディスク装置6−nにライトコマンドを送ると共に、前記パリティデータを転送し、ディスク装置6−nは記憶媒体にパリティデータを書き込み(S5)、前記ライト処理を終了する。
また、前記S2の処理で、受信したコマンドがリードコマンドであった場合、ホストアダプタ3は、そのコマンドの内容をディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで各ディスク装置6−1〜6−nに対してリードコマンドを発行する(S6)。
ディスク装置6−1〜6−nは、デバイスアダプタ5−1〜5−nを介して前記リードコマンドを受信すると、前記コマンドで指定されたアドレスのデータをリードする。そして、ディスク装置6−1〜6−nは、リードしたデータを、ディスク装置6−1〜6−nに接続されている各デバイスアダプタ5−1〜5−nへ転送する。各デバイスアダプタ5−1〜5−nは、前記データをそれぞれ内部のメモリ12−1〜12−nに格納する(S7)。
その後、ディスクアレイコントローラ4は、デバイスアダプタ5−1〜5−mのメモリ12−1〜12−mに格納されている分割データからホストデータを再構築(復元)する。この場合、ディスクアレイコントローラ4のパリティ処理部19は、前記メモリ12−1〜12−mに格納されている各データの排他的論理和を計算してリードパリティデータとし、このリードパリティデータを前記メモリ12−nに格納されているパリティデータと比較することでリードパリティチェックを行う(S8)。
その結果、両者が一致すれば、リードパリティチェックが正常であり、整合性に矛盾が無かったとして、前記再構築(復元)したホストデータをホストアダプタ3へ転送する(S13)。その後、ホストアダプタ3は前記ホストデータをホスト1へ転送する(S12)。しかし、前記S8のリードパリティチェックで不一致の場合、パリティの整合性に矛盾が有ったとする。
すなわち、ディスクアレイコントローラ4は前記のようにパリティが不一致と分かった時点で以下のようなデータリカバリ処理を実施する。先ず、ディスクアレイコントローラ4は、端のデバイスアダプタ5−1のメモリ12−1に誤ったデータが入ってしまったと仮定する。この仮定の元で、前記RAID3のリカバリ方法によりホストデータを再構築してみる(S9)。
そしてこの再構築されたホストデータが正しいものか否かを、CRCチェック部20がホストCRCデータをチェックすることにより決定する(S10)。前記CRCチェック部20によるホストCRCチェックで整合性がとれた場合、そのホストデータは正しいとする。そして、ディスクアレイコントローラ4は、デバイスアダプタ5−1のメモリ12−1に誤ったデータが入っていたものと断定する。
もし、前記ホストCRCチェックで整合性がとれない場合は、このデバイスアダプタ5−1以外の他のデバイスアダプタ5−2〜5−nのメモリ12−2〜12−nに誤ったデータが入っているに違いないとする。このため、ディスクアレイコントローラ4は、誤ったデータが入っていると仮定するデバイスアダプタのメモリを隣のデバイスアダプタ5−2のメモリ12−2とし、かつデバイスアダプタ5−1のメモリ12−1を正確なデータが入っているものと仮定し、この仮定の元で、再度、ホストデータを再構築し、そのホストデータについてCRCチェック部20が前記ホストCRCチェックを行う。
これを全てのデバイスアダプタに対してホストCRCの整合性がとれるまで前記S9の処理から繰り返して行う。前記のようにして、ホストCRCチェックで整合性がとれた場合、このホストデータは正しいとする。そして、ディスクアレイコントローラ4は、その再構築したホストデータをホストアダプタ3へ転送する(S11)。ホストアダプタ3は前記データを受け取ると、そのデータをホスト1へ転送する(S12)。
(実施の形態2の説明)
§1:実施の形態2の装置の説明・・・図5参照
図5は実施の形態2の装置構成図である。以下、図5に基づいて実施の形態2の装置の構成を説明する。図示のように、ディスクアレイ装置は、ホスト1に接続されたディスクアレイ制御装置2と、前記ディスクアレイ制御装置2に接続された複数のディスク装置6−1〜6−n(n:ディスク装置の台数)によって構成されている。
また、ディスクアレイ制御装置2には、ホストアダプタ3と、ディスクアレイコントローラ4と、複数のデバイスアダプタ5−1〜5−nが設けてある。そして、ホストアダプタ3には、メモリ10が設けてあり、ディスクアレイコントローラ4にはパリティ処理部19と時刻データ処理部13と時計14が設けてあり、デバイスアダプタ5−1から5−nにはそれぞれメモリ12−1から12−nが設けてある。
前記パリティ処理部19はパリティデータの作成処理、チェック処理等を行うものである。時計14は時刻を計時するものであり、時刻データ処理部13は時計14の時刻を検出してその時刻データの処理を行うものである。なお、他の構成は前記実施の形態1と同じである。
§2:実施の形態2の処理概要の説明
実施の形態2は、RAID3のディスクアレイ装置の例である。この例では、図5に示したRAID3のディスクアレイ装置により、次のような処理を行う。データの書き込み時には、ホスト1から受信したホストデータを複数のデータに分割し、これら分割データからパリティデータを計算する。そして前記分割データとパリティデータに対し、現在時刻の時刻データを付加する。
その後、時刻データ付き分割データとパリティデータをディスク装置6−1〜6−nへ送り、前記ディスク装置の記録媒体に書き込む。この場合、時刻データ付き分割データはディスク装置6−1〜6−mに書き込み、前記時刻データ付きパリティデータはディスク装置6−nに書き込む。
また、ディスク装置からのデータリード時には、RAID3でのパリティチェックで整合性がとれなかった場合、各ディスク装置に書かれている時刻を比較し、一番古いものを誤ったデータとして、RAID3でのホストデータの再構築を行う。
すなわち、ディスク装置からのデータのリード時に、パリティチェックを行い、そのパリティチェックで不整合となった場合は、各ディスク装置に書かれている時刻データを参照し、古いものがあればそれを誤ったデータの入ったディスク装置であるとして、RAID3のリカバリ方法により正しいホストデータを再構築する。
§3:処理の説明・・・図6参照
図6は実施の形態2の処理説明図である。以下、図6に基づいて実施の形態2の処理を説明する。
(1) :RAID3でのライト時の処理
RAID3でのデータライト(書き込み)時の処理は次の通りである。この場合ディスク装置6−1〜6−mを分割データの格納用(データ用ディスク装置)とし、ディスク装置6−nをパリティデータの格納用(パリティ用ディスク装置)として、データのリード/ライト時の処理を次のようにして行う。
先ず、ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する(a参照)。次に、ホストアダプタ3は、前記ホストデータをディスクアレイコントローラ4へ転送する(b参照)。
ディスクアレイコントローラ4はホストデータを受け取ると、RAID3に基づき、ホストデータをm個のデータに分割して、各ディスク装置6−1〜6−mに割り振るデータ(分割データ)を作成する。また、パリティ処理部19は、前記m個の分割データの排他的論理和を計算してパリティデータを作成する。
すなわち、前記ホストデータを分割した分割データをd1 、d2 、d3 ・・・dm 、パリティデータをPとすると、前記パリティデータPは、前記分割データd1 、d2 、d3 ・・・dm の各排他的論理和となる(d参照)。そして、時刻データ処理部13は時計14から現在時刻を読み取り、その時刻データを前記各分割データ、及びパリティデータに付加する。
次にディスクアレイコントローラ4は、ディスク装置6−1〜6−nに対してライトコマンドを発行すると共に、前記各時刻データ付き分割データをデバイスアダプタ5−1〜5−mへ転送する。これと同時に、デバイスアダプタ5−nには、前記時刻データ付きパリティデータを転送する。
その後、デバイスアダプタ5−1〜5−mは、各々接続されているディスク装置6−1〜6−mに前記ライトコマンドを送ると共に、前記時刻データ付き分割データを転送する。そして、ディスク装置6−1〜6−mは記憶媒体に前記時刻付き分割データを書き込む(ディスクデータの書き込み)。また、デバイスアダプタ5−nは、接続されているディスク装置6−nにライトコマンドを送ると共に、前記時刻データ付きパリティデータを転送し、ディスク装置6−nは記憶媒体に時刻付きパリティデータを書き込む(c参照)。
(2) :RAID3でのリード処理において、パリティの整合性に矛盾が無かった場合の処理説明
RAID3でのリード処理時に、パリティの整合性に矛盾がなかった場合の処理は次の通りである。先ず、ホスト1の発行したリードコマンドをホストアダプタ3が受信すると、ホストアダプタ3は、そのコマンドの内容をディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで各ディスク装置6−1〜6−nに対してリードコマンドを発行する。
デバイスアダプタ5−1〜5−nを介して前記リードコマンドを受信したディスク装置6−1〜6−nは、指定されたアドレスのデータをリードする。そして、ディスク装置6−1〜6−nからリードしたデータは、ディスク装置6−1〜6−nに接続されている各デバイスアダプタ5−1〜5−nに転送され、それぞれメモリ12−1〜12−nに格納される。
その後、ディスクアレイコントローラ4は、デバイスアダプタ5−1〜5−mのメモリ12−1〜12−mに格納されている分割データからRAID3に基づきホストデータを再構築(復元)する。この時、パリティ処理部19は、前記メモリ12−1〜12−mに格納されている各分割データの排他的論理和を計算してリードパリティとし、このリードパリティを前記メモリ12−nに格納されているパリティと比較することでリードパリティチェックを行う。
この場合、前記メモリ12−1〜12−mに格納されている分割データをd1 、d2 、d3 ・・・dm 、メモリ12−nに格納されているパリティデータをP、前記分割データd1 、d2 、d3 ・・・dm から計算したリードパリティデータをRPとすると、前記リードパリティデータRPは、前記各分割データd1 、d2 、d3 ・・・dm の排他的論理和となる。
そして前記リードパリティチェックでRP=Pとなれば、整合性に矛盾無しと判断する(e参照)。すなわち、前記リードパリティチェックの結果、両者が一致すれば(RP=P)、リードパリティチェックが正常であり、リードデータの整合性に矛盾が無かったとして、前記再構築したデータをホストアダプタ3へ転送する。その後、ホストアダプタ3は前記データをホスト1へ転送する。
(3) :RAID3でのリード処理において、パリティの整合性に矛盾が有った場合の処理説明
前記のように、ディスク装置からのデータリード時に、デバイスアダプタ5−1〜5−mのメモリ12−1〜12−mに格納されている各分割データの排他的論理和を計算して求めたリードパリティデータRPと、デバイスアダプタ5−nのメモリ12−nに格納されているパリティデータPとの値が不一致(RP≠P)であった場合、整合性に矛盾が有るとして次の処理を行う。
この場合、時刻データ処理部13は、各デバイスアダプタ5−1〜5−mのメモリ12−1〜12−mに格納されているデータの時刻を調べ、ディスクアレイコントローラ4はこの時刻が一番古いものを誤ったデータとして決定する。そして、ディスクアレイコントローラ4は、最古の時刻データを持つ誤ったデータを除いて、他のデバイスアダプタのメモリに格納されているデータからRAID3のデータリカバリ方法に基づき、ホストデータを再構築する。前記再構築されたホストデータは、正しいデータとしてホストアダプタ3へ転送される。ホストアダプタ3は前記データを受け取ると、そのデータをホスト1へ転送する。
§4:フローチャートによる処理の説明・・・図7参照
図7は実施の形態2の処理フローチャートである。以下、図7に基づいて実施の形態2の処理を説明する。なお、S21〜S32は各処理ステップを示す。
処理が開始され、ホストアダプタ3がホスト1の発行したコマンドを受信すると(S21)、ホストアダプタ3は前記コマンドをメモリ10に一時格納し、そのコマンドを解析して内容を判断する(S22)。その結果、前記コマンドがライトコマンドであれば、RAID3でのデータライト(書き込み)時の処理を次のようにして行う。
前記のように、ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する。そして、ホストアダプタ3は前記ホストデータをディスクアレイコントローラ4へ転送する(S23)。
ディスクアレイコントローラ4はホストデータを受け取ると、RAID3に基づき、ホストデータをm個のデータに分割して各ディスク装置6−1〜6−mに割り振る分割データを作成する。また、パリティ処理部19は前記m個の分割データの排他的論理和を計算してパリティデータを作成する。そして、時刻データ処理部13は時計14から現在時刻を読み取り、その時刻データを前記各分割データ及びパリティデータに付加する(S24)。
次にディスクアレイコントローラ4はディスク装置6−1〜6−nに対してライトコマンドを発行すると共に、前記時刻データ付き分割データをデバイスアダプタ5−1〜5−mへ転送する。これと同時に、デバイスアダプタ5−nには、前記時刻データ付きパリティデータを転送する。
その後、デバイスアダプタ5−1〜5−mは、各々接続されているディスク装置6−1〜6−mに前記ライトコマンドを送ると共に、前記時刻データ付き分割データを転送する。そして、ディスク装置6−1〜6−mは記憶媒体に前記時刻付き分割データを書き込む(ディスクデータの書き込み)。また、デバイスアダプタ5−nは、接続されているディスク装置6−nにライトコマンドを送ると共に、前記時刻データ付きパリティデータを転送し、ディスク装置6−nは記憶媒体に時刻付きパリティデータを書き込み(S25)ライト処理を終了する。
また、前記S22の処理で、受信したコマンドがリードコマンドであった場合、ホストアダプタ3は、そのコマンドの内容をディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで各ディスク装置6−1〜6−nに対してリードコマンドを発行する(S26)。
デバイスアダプタ5−1〜5−nを介して前記リードコマンドを受信したディスク装置6−1〜6−nは、指定されたアドレスのデータをリードする。そして、ディスク装置6−1〜6−nからリードした時刻付きデータは、ディスク装置6−1〜6−nに接続されている各デバイスアダプタ5−1〜5−nに転送され、それぞれメモリ12−1〜12−nに格納される(S27)。
その後、ディスクアレイコントローラ4は、デバイスアダプタ5−1〜5−mのメモリ12−1〜12−mに格納されている分割データを用いてホストデータを再構築する。また、この時、パリティ処理部19は、デバイスアダプタ5−1〜5−mに格納されている分割データの排他的論理和を計算してリードパリティを作成し、前記リードパリティをデバイスアダプタ5−nのメモリ12−nに格納されているパリティデータと比較することでリードパリティチェックを行う(S28)。
その結果、両者が一致すれば、リードパリティチェックが正常であり、整合性に矛盾が無かったとして、前記再構築(復元)したホストデータをホストアダプタ3へ転送する(S32)。その後、ホストアダプタ3は前記ホストデータをホスト1へ転送する(S31)。
しかし、前記S28のリードパリティチェックで、不一致の場合、整合性に矛盾が有ったとする。すなわち、前記のようにパリティが不一致と分かった時点で以下のようなデータリカバリ処理を実施する。この場合、ディスクアレイコントローラ4は、各デバイスアダプタ5−1〜5−nのメモリ12−1〜12−nに格納されているデータの時刻を調べ、この時刻が一番古いもの(最古の時刻を持ったデータ)を誤ったデータと決定する。そして、最古の時刻データを持つ誤ったデータを除いて、他のデバイスアダプタのメモリに格納されているデータから前記RAID3のデータリカバリ処理に基づき、ホストデータを再構築する(S29)。前記再構築されたホストデータは、正しいデータとしてホストアダプタ3へ転送される(S30)。ホストアダプタ3は前記データを受け取ると、そのデータをホスト1へ転送する(S31)。
(実施の形態3の説明)
§1:実施の形態3の装置の説明・・・図8参照
図8は実施の形態3の装置構成図である。以下、図8に基づいて実施の形態3の装置を説明する。図示のように、ディスクアレイ装置は、ホスト1に接続されたディスクアレイ制御装置2と、前記ディスクアレイ制御装置2に接続された複数のディスク装置6−1〜6−n(n:ディスク装置の台数)によって構成されている。
また、ディスクアレイ制御装置2には、ホストアダプタ3と、ディスクアレイコントローラ4と、複数のデバイスアダプタ5−1〜5−nが設けてある。そして、ホストアダプタ3には、メモリ10が設けてあり、ディスクアレイコントローラ4にはパリティ処理部19と時刻データ処理部13と時計14が設けてあり、デバイスアダプタ5−1から5−nにはそれぞれメモリ12−1から12−nが設けてある。
この場合、RAID5での処理を行うため、ディスク装置6−1〜6−nの全てに巡回的にパリティデータを分散して格納するものである。すなわち、パリティデータを特定のディスク装置ではなく、各ディスク装置に巡回的に分散して格納する。なお、他の構成は前記実施の形態2と同じである。
§2:実施の形態3の処理概要の説明
実施の形態3は、RAID5のディスクアレイ装置の例であり、次のように処理を行う。前記RAID5のディスクアレイ装置によるデータリード処理において、大量のデータを転送する場合、前記RAID3のように、全ディスク装置へのアクセスが行われればデータのパリティチェックを行うことは可能である。
そこで、前記実施の形態2と同様な処理により各ディスク装置に時刻付きデータを格納しておき、リード時には、各ディスク装置に書かれている時刻を比較し、一番古いものを誤ったディスクデータとして、ホストデータのRAID5のデータリカバリ方法によりホストデータの再構築を行う。
すなわち、RAID5では、リード時に大量のデータを転送する場合、RAID3のように、全ディスク装置へのアクセスが行われると、パリティチェックを行うことが可能である。この場合、実施の形態2と同じ処理によりホストデータを再構築する。
§3:処理の説明・・・図8参照
以下、図8に基づいて実施の形態3の処理を説明する。なお、以下に説明する処理は、全ディスク装置へのアクセスが行われる場合の例である。
(1) :RAID5でのライト時の処理
RAID5でのデータライト(書き込み)時の処理は次の通りである。この場合、ディスク装置6−1〜6−nの全てを分割データ及びパリティデータの格納用として、データのリード/ライト時の処理を次のようにして行う。
先ず、ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する。次に、ホストアダプタ3は、前記ホストデータをディスクアレイコントローラ4へ転送する。
ディスクアレイコントローラ4はホストデータを受け取ると、RAID5に基づき、ホストデータをセクタ単位でm(m=n−1)個のデータに分割して、パリティデータ格納用の1つのディスク装置を除く他の各ディスク装置に割り振る分割データを作成する。また、パリティ処理部19は、前記m個の分割データの排他的論理和を計算してパリティデータを作成する。そして、時刻データ処理部13は時計14から現在時刻を読み取り、その時刻データを前記各分割データ、及びパリティデータに付加する。
次にディスクアレイコントローラ4は、ディスク装置6−1〜6−nに対してライトコマンドを発行すると共に、前記時刻データ付き分割データをデバイスアダプタ5−1〜5−nの内の該当するm個のデバイスアダプタへ転送する。これと同時に、残りの1つのデバイスアダプタには、前記時刻データ付きパリティデータを転送する。
その後、前記時刻付き分割データを格納しているデバイスアダプタは、各々接続されているディスク装置に前記ライトコマンドを送ると共に、前記時刻データ付き分割データを転送する。そして、前記時刻付き分割データを受信したディスク装置は記憶媒体に前記時刻付き分割データを書き込む。また、時刻付きパリティデータを格納しているデバイスアダプタは、接続されているディスク装置にライトコマンドを送ると共に、前記時刻データ付きパリティデータを転送し、そのディスク装置は記憶媒体に時刻付きパリティデータを書き込む。
(2) :RAID5でのリード処理において、パリティの整合性に矛盾が無かった場合の処理説明
RAID5でのリード処理時に、パリティの整合性に矛盾がなかった場合の処理は次の通りである。先ず、ホスト1の発行したリードコマンドをホストアダプタ3が受信すると、ホストアダプタ3は、そのコマンドの内容をディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで各ディスク装置6−1〜6−nに対してリードコマンドを発行する。
デバイスアダプタ5−1〜5−nを介して前記リードコマンドを受信したディスク装置6−1〜6−nは、指定されたアドレスのデータをリードする。そして、ディスク装置6−1〜6−nからリードしたデータは、ディスク装置6−1〜6−nに接続されている各デバイスアダプタ5−1〜5−nに転送され、それぞれメモリ12−1〜12−nに格納される。
その後、ディスクアレイコントローラ4は、デバイスアダプタのメモリに格納されている分割データからRAID5に基づきホストデータを再構築(復元)する。この時、パリティ処理部19は、前記メモリに格納されている各分割データの排他的論理和を計算してリードパリティとし、このリードパリティを前記いずれか1つのメモリに格納されているパリティデータと比較する。
その結果、両者が一致すれば、リードパリティチェックが正常であり、整合性に矛盾が無かったとして、前記再構築した(復元)データをホストアダプタ3へ転送する。その後、ホストアダプタ3は前記データをホスト1へ転送する。
(3) :RAID5でのリード処理において、パリティの整合性に矛盾が有った場合の処理説明
前記のように、ディスク装置からのデータリード時に、デバイスアダプタのメモリに格納されている各分割データの排他的論理和を計算して求めたリードパリティデータと、いずれか1つのデバイスアダプタのメモリに格納されているパリティデータとの値が不一致であった場合、整合性に矛盾が有るとして次の処理を行う。
この場合、時刻データ処理部13は、各デバイスアダプタ5−1〜5−nのメモリ12−1〜12−nに格納されているデータの時刻を調べ、この時刻が一番古いものを誤ったデータとして決定する。そして、ディスクアレイコントローラ4は、最古の時刻データを持つ誤ったデータを除いて、他のデバイスアダプタのメモリに格納されているデータからRAID5のデータリカバリ方法に基づき、ホストデータを再構築する。前記再構築されたホストデータは、正しいデータとしてホストアダプタ3へ転送される。ホストアダプタ3は前記データを受け取ると、そのデータをホスト1へ転送する。
§4:フローチャートによる処理の説明・・・図9参照
図9は実施の形態3の処理フローチャートである。以下、図9に基づいて実施の形態3の処理を説明する。なお、S41〜S52は各処理ステップを示す。
処理が開始され、ホストアダプタ3がホスト1の発行したコマンドを受信すると(S41)、ホストアダプタ3は前記コマンドをメモリ10に一時格納し、そのコマンドを解析して内容を判断する(S42)。その結果、前記コマンドがライトコマンドであれば、RAID5でのデータライト(書き込み)時の処理を次のようにして行う。
前記のように、ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する。そして、ホストアダプタ3は前記ホストデータをディスクアレイコントローラ4へ転送する(S43)。
ディスクアレイコントローラ4は前記ホストデータを受け取ると、RAID5に基づき、ホストデータをセクタ単位でm個のデータに分割して各ディスク装置に割り振る分割データを作成する。また、パリティ処理部19は前記m個の分割データの排他的論理和を計算してパリティデータを作成する。そして、時刻データ処理部13は時計14から現在時刻を読み取り、その時刻データを前記分割データ及びパリティデータに付加する。
そして、ディスクアレイコントローラ4は、ディスク装置6−1〜6−nに対してライトコマンドを発行すると共に、前記時刻データ付き分割データと1個の時刻データ付きパリティデータをデバイスアダプタ5−1〜5−nへ転送する(S44)。
その後、デバイスアダプタ5−1〜5−nは、各々接続されているディスク装置6−1〜6−nに前記ライトコマンドを送ると共に、前記時刻データ付き分割データ、及び時刻付きパリティデータを転送する。そして、ディスク装置6−1〜6−nは記憶媒体に前記時刻付きデータを書き込む(S45)。この場合、いずれか1つのディスク装置に時刻付きパリティデータを格納し、他の複数のディスク装置に時刻付き分割データを格納する。前記処理が完了すると、ライト処理を終了する。
また、前記S42の処理で、受信したコマンドがリードコマンドであった場合、ホストアダプタ3は、そのリードコマンドの内容をディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで、各ディスク装置6−1〜6−nに対してリードコマンドを発行する(S46)。
デバイスアダプタ5−1〜5−nを介して前記リードコマンドを受信したディスク装置6−1〜6−nは、指定されたアドレスのデータをリードする。そして、ディスク装置6−1〜6−nからリードした時刻付きデータは、ディスク装置6−1〜6−nに接続されている各デバイスアダプタ5−1〜5−nに転送され、それぞれメモリ12−1〜12−nに格納される(S47)。
その後、ディスクアレイコントローラ4は、デバイスアダプタ5−1〜5−nのメモリ12−1〜12−nに格納されている分割データを用いてホストデータを再構築する。また、パリティ処理部19は、前記データの再構築と同時に、デバイスアダプタ5−1〜5−nのメモリ12−1〜12−nのデータ内、パリティデータを除く、他のm個の分割データの排他的論理和を計算してリードパリティを作成し、このリードパリティを、前記メモリ12−1〜12−nのいずれか1つのメモリに格納されているパリティデータ(書き込み時に作成したパリティデータ)と比較することでリードパリティチェックを行う(S48)。
その結果、両者が一致すれば、リードパリティチェックが正常であり、整合性に矛盾が無かったとして、前記再構築(復元)したホストデータをホストアダプタ3へ転送する(S52)。その後、ホストアダプタ3は前記ホストデータをホスト1へ転送する(S51)。
しかし、前記S48のリードパリティチェック処理で不一致の場合、整合性に矛盾が有ったとする。すなわち、前記のようにパリティが不一致と分かった時点で以下のようなデータリカバリ処理を実施する。この場合、ディスクアレイコントローラ4は、各デバイスアダプタ5−1〜5−nのメモリ12−1〜12−nに格納されているデータの時刻を調べ、この時刻が一番古いもの(最古の時刻を持ったデータ)を誤ったデータと決定する。
そして、最古の時刻データを持つ誤ったデータを除いて、他のデバイスアダプタのメモリに格納されているデータから前記RAID5のデータリカバリ方法に基づき、ホストデータを再構築する(S49)。前記再構築されたホストデータは、正しいデータとしてホストアダプタ3へ転送される(S50)。ホストアダプタ3は前記データを受け取ると、そのデータをホスト1へ転送する(S51)。
(実施の形態4の説明)
§1:実施の形態4の装置の説明・・・図10参照
図10は実施の形態4の装置構成図である。以下、図10に基づいて実施の形態4の装置の構成を説明する。図示のように、ディスクアレイ装置は、ホスト1に接続されたディスクアレイ制御装置2と、前記ディスクアレイ制御装置2に接続された2つのディスク装置6−1、6−2によって構成されている(ミラードディスク構成)。
また、ディスクアレイ制御装置2には、ホストアダプタ3と、ディスクアレイコントローラ4と、2つのデバイスアダプタ(DA)5−1、5−2が設けてある。そして、ホストアダプタ3には、メモリ10が設けてあり、ディスクアレイコントローラ4には時刻データ処理部13と時計14が設けてあり、デバイスアダプタ(DA)5−1、5−2にはそれぞれメモリ12−1、12−2が設けてある。
§2:実施の形態4の処理概要の説明
実施の形態4は、RAID1のディスクアレイ装置の例である。この例では、前記ディスクアレイ装置により次のようにして処理を行う。すなわち、前記ディスクアレイ装置により、ディスク装置6−1、6−2に格納されたミラーデータ相互の比較で結果が等しくなかった場合(データ不一致の場合)、各ディスク装置6−1、6−2に書かれている時刻を比較し、最新の時刻が書かれていた方のデータを正しいホストデータとして用いるものである。
§3:処理の説明・・・図10参照
以下、図10に基づいて実施の形態4の処理を説明する。
(1) :RAID1でのライト時の処理
RAID1でのデータのリード/ライト時の処理を次のようにして行う。先ず、ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する。次に、ホストアダプタ3は、前記ホストデータをディスクアレイコントローラ4へ転送する。
ディスクアレイコントローラ4が前記ホストデータを受け取ると、時刻データ処理部13は時計14から現在時刻を読み取り、その時刻データを前記ホストデータに付加する。次にディスクアレイコントローラ4は、ディスク装置6−1、6−2に対してライトコマンドを発行すると共に、前記時刻データ付きデータをデバイスアダプタ5−1、5−2へ転送する。
その後、デバイスアダプタ5−1、5−2は、各々接続されているディスク装置6−1、6−2に前記ライトコマンドを送ると共に、前記時刻データ付きデータを転送する。そして、ディスク装置6−1、6−2は記憶媒体に前記時刻付きホストデータを書き込む。このようにしてディスク装置6−1と6−2には同一の時刻データ付きホストデータ(ミラーデータ)が書き込まれる。
(2) :RAID1でのリード処理において、ミラーデータ相互の比較処理で結果が等しかった場合の処理説明
RAID1でのリード処理時に、ミラーデータ相互の比較処理で結果が等しかった場合の処理は次の通りである。先ず、ホスト1の発行したリードコマンドをホストアダプタ3が受信すると、ホストアダプタ3は、そのコマンドの内容をディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで各ディスク装置6−1、6−2に対してリードコマンドを発行する。
デバイスアダプタ5−1、5−2を介して前記リードコマンドを受信したディスク装置6−1、6−2は、指定されたアドレスのデータをリードする。そして、ディスク装置6−1、6−2からリードしたデータは、ディスク装置6−1、6−2に接続されている各デバイスアダプタ5−1、5−2に転送され、それぞれメモリ12−1、12−2に格納される。
その後、ディスクアレイコントローラ4は、デバイスアダプタ5−1のメモリ12−1に格納されているデータと、デバイスアダプタ5−2のメモリ12−2に格納されているデータとの比較を行う(ミラーデータの比較)。その結果、両者が一致すれば、いずれか一方のデータ(例えば、メモリ12−1に格納されているデータ)を正しいホストデータであるとしてホストアダプタ3へ転送する。その後、ホストアダプタ3は前記データをホスト1へ転送する。
(3) :RAID1でのリード処理において、ミラーデータ相互の比較処理で結果が等しくなかった場合の処理説明
前記のように、ディスク装置からのデータのリード時に、デバイスアダプタ5−1、5−2のメモリ12−1、12−2に格納されているデータの比較で、両者が不一致であった場合、時刻データ処理部13は、各デバイスアダプタ5−1、5−2のメモリ12−1、12−2に格納されているデータの時刻を調べ、この時刻が古いものを誤ったデータとして決定する。
そして、ディスクアレイコントローラ4は、最新の時刻が書かれていた方のデータを正しいホストデータとして用いる。すなわち、古い時刻データを持つ誤ったデータを除いて、他のデバイスアダプタのメモリに格納されているデータを正しいホストデータとしてホストアダプタ3へ転送する。ホストアダプタ3は前記データを受け取ると、そのデータをホスト1へ転送する。
§4:フローチャートによる処理の説明・・・図11参照
図11は実施の形態4の処理フローチャートである。以下、図11に基づいて実施の形態4の処理を説明する。なお、S61〜S72は各処理ステップを示す。
処理が開始され、ホストアダプタ3がホスト1の発行したコマンドを受信すると(S61)、ホストアダプタ3は前記コマンドをメモリ10に一時格納し、そのコマンドを解析して内容を判断する(S62)。その結果、前記コマンドがライトコマンドであれば、RAID1でのデータライト(書き込み)時の処理を次のようにして行う。
前記のように、ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する。そして、ホストアダプタ3は前記ホストデータをディスクアレイコントローラ4へ転送する(S63)。
ディスクアレイコントローラ4はホストデータを受け取ると、RAID1に基づき処理を行う。この場合、時刻データ処理部13は時計14から現在時刻を読み取り、その時刻データを前記ホストデータに付加する。次にディスクアレイコントローラ4はディスク装置6−1、6−2に対してライトコマンドを発行すると共に、前記時刻データ付きデータをデバイスアダプタ5−1、5−2へ転送する(S64)。
その後、デバイスアダプタ5−1、5−2は、各々接続されているディスク装置6−1、6−2に前記ライトコマンドを送ると共に、前記時刻データ付きデータを転送する。そして、ディスク装置6−1、6−2は記憶媒体に前記時刻付きデータを書き込み(S65)ライト処理を終了する。
また、前記S62の処理で、受信したコマンドがリードコマンドであった場合、ホストアダプタ3は、そのコマンドの内容をディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで、各ディスク装置6−1、6−2に対してリードコマンドを発行する(S66)。
デバイスアダプタ5−1、5−2を介して前記リードコマンドを受信したディスク装置6−1、6−2は、指定されたアドレスのデータをリードする。そして、ディスク装置6−1、6−2からリードした時刻付きデータは、ディスク装置6−1、6−2に接続されている各デバイスアダプタ5−1、5−2に転送され、それぞれメモリ12−1、12−2に格納される(S67)。
その後、ディスクアレイコントローラ4は、デバイスアダプタ5−1のメモリ12−1に格納されているデータと、デバイスアダプタ5−2のメモリ12−2に格納されているデータとの比較を行う。すなわちミラーデータを比較する(S68)。その結果、両者が一致すれば、前記メモリ12−1、または12−2のいずれかのデータ(両者は同じデータなのでどちらのデータでも良い)を正しいホストデータとしてホストアダプタ3へ転送する(S72)。その後、ホストアダプタ3は前記ホストデータをホスト1へ転送する(S71)。
しかし、前記S68の処理で、両者が不一致の場合、すなわち、ミラーデータが一致しなかった場合、その時点で以下のようなデータリカバリ処理を実施する。この場合、ディスクアレイコントローラ4は、各デバイスアダプタ5−1、5−2のメモリ12−1、12−2に格納されているデータの時刻を調べ、この時刻が古いものを誤ったデータとし、最新の時刻を持つデータを正しいデータとして決定する(S69)。
そして、前記決定した正しいデータ(ホストデータ)をホストアダプタ3へ転送する(S70)。その後、ホストアダプタ3は前記データを受け取ると、そのデータをホスト1へ転送する(S71)。
(実施の形態5の説明)
§1:実施の形態5の装置の説明・・・図12参照
図12は実施の形態5の装置構成図である。以下、図12に基づいて実施の形態5の装置の構成を説明する。図示のように、ディスクアレイ装置は、ホスト1に接続されたディスクアレイ制御装置2と、前記ディスクアレイ制御装置2に接続された複数のディスク装置6−1〜6−n(n:ディスク装置の台数)によって構成されている。
また、前記ディスクアレイ制御装置2には、ホストアダプタ3とディスクアレイコントローラ4と、複数のデバイスアダプタ5−1〜5−nが設けてある。そして、ホストアダプタ3には、メモリ10が設けてあり、ディスクアレイコントローラ4には、パリティ処理部19と更新カウンタ22とカウンタデータ処理部21が設けてあり、デバイスアダプタ5−1から5−nにはそれぞれメモリ12−1から12−nが設けてある。
前記更新カウンタ16は、ディスクアレイコントローラ4により逐次カウンタ値が更新制御されるカウンタである。例えば、データのライト(書き込み)が行われる度にカウンタ値をインクリメントされるカウンタを使用する。また、カウンタデータ処理部21は、更新カウンタ22のカウンタ値を読み取り、書き込みデータに付加したり、或いはディスク装置からリードしたデータに付加されている更新カウンタのカウンタ値のチェックを行うものである。なお、他の構成は前記図2の装置と同じである。
§2:実施の形態5の処理の説明
実施の形態5は、前記実施の形態2の処理における時刻データの代わりとして前記更新カウンタのカウンタ値を用いた例である。この例ではRAID3により次のようにして処理を行う。
(1) :RAID3でのライト時の処理
RAID3でのデータライト(書き込み)時の処理は次の通りである。この場合ディスク装置6−1〜6−mを分割したデータの格納用とし、ディスク装置6−nをパリティデータの格納用として、データのリード/ライト時の処理を次のようにして行う。
先ず、ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する。次に、ホストアダプタ3は、前記ホストデータをディスクアレイコントローラ4へ転送する。
ディスクアレイコントローラ4はホストデータを受け取ると、RAID3に基づき、ホストデータをm個のデータに分割して、各ディスク装置6−1〜6−mに割り振る分割データを作成する。また、パリティ処理部19は、前記m個の分割データの排他的論理和を計算してパリティデータを作成する。そして、カウンタデータ処理部21は更新カウンタ22から現在のカウンタ値を読み取り、そのカウンタ値を前記各分割データ、及びパリティデータに付加する。
次にディスクアレイコントローラ4は、ディスク装置6−1〜6−nに対してライト命令を発行すると共に、前記カウンタ値付き分割データをデバイスアダプタ5−1〜5−mへ転送する。これと同時に、デバイスアダプタ5−nには、前記カウンタ値付きパリティデータを転送する。
その後、デバイスアダプタ5−1〜5−mは、各々接続されているディスク装置6−1〜6−mに前記ライトコマンドを送ると共に、前記カウンタ値付き分割データを転送する。そして、ディスク装置6−1〜6−mは記憶媒体に前記カウンタ値付き分割データを書き込む。また、デバイスアダプタ5−nは、接続されているディスク装置6−nにライトコマンドを送ると共に、前記カウンタ値付きパリティデータを転送し、ディスク装置6−nは記憶媒体にカウンタ値付きパリティデータを書き込む。
(2) :RAID3でのリード処理において、パリティの整合性に矛盾が無かった場合の処理説明
RAID3でのリード処理時に、パリティの整合性に矛盾がなかった場合の処理は次の通りである。先ず、ホスト1の発行したリードコマンドをホストアダプタ3が受信すると、ホストアダプタ3は、そのコマンドの内容をディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで、各ディスク装置6−1〜6−nに対してリードコマンドを発行する。
デバイスアダプタ5−1〜5−nを介して前記リードコマンドを受信したディスク装置6−1〜6−nは、指定されたアドレスのデータをリードする。そして、ディスク装置6−1〜6−nからリードしたデータは、ディスク装置6−1〜6−nに接続されている各デバイスアダプタ5−1〜5−nに転送され、それぞれメモリ12−1〜12−nに格納される。
その後、ディスクアレイコントローラ4は、デバイスアダプタ5−1〜5−mのメモリ12−1〜12−mに格納されている分割データからRAID3に基づきホストデータを再構築(復元)する。この時、パリティ処理部19は、前記メモリ12−1〜12−mに格納されている各分割データの排他的論理和を計算してリードパリティとし、このリードパリティを前記メモリ12−nに格納されているパリティデータと比較する。その結果、両者が一致すれば、リードパリティチェックが正常であり、整合性に矛盾が無かったとして、前記再構築(復元)したホストデータをホストアダプタ3へ転送する。その後、ホストアダプタ3は前記データをホスト1へ転送する。
(3) :RAID3でのリード処理において、パリティの整合性に矛盾が有った場合の処理説明
前記のように、ディスク装置からのデータのリード時に、デバイスアダプタ5−1〜5−mのメモリ12−1〜12−mに格納されている各データの排他的論理和を計算して求めたリードパリティデータと、デバイスアダプタ5−nのメモリ12−nに格納されているパリティデータとの値が不一致であった場合、整合性に矛盾が有るとして次の処理を行う。
この場合、カウンタデータ処理部21は、各デバイスアダプタ5−1〜5−nのメモリ12−1〜12−nに格納されているデータのカウンタ値を調べる。そして、ディスクアレイコントローラ4は最も古いカウンタ値を持つデータを誤ったデータとして決定する。
そして、ディスクアレイコントローラ4は、最古のカウンタ値を持つ誤ったデータを除いて、他のデバイスアダプタのメモリに格納されているデータからRAID3のデータリカバリ方法に基づき、ホストデータを再構築する。前記再構築されたホストデータは、正しいデータとしてホストアダプタ3へ転送される。ホストアダプタ3は前記データを受け取ると、そのデータをホスト1へ転送する。
§3:フローチャートによる処理の説明・・・図13参照
図13は実施の形態5の処理フローチャートである。以下、図13に基づいて実施の形態5の処理を説明する。なお、S81〜S92は各処理ステップを示す。
処理が開始され、ホストアダプタ3がホスト1の発行したコマンドを受信すると(S81)、ホストアダプタ3は前記コマンドをメモリ10に一時格納し、そのコマンドを解析して内容を判断する(S82)。その結果、前記コマンドがライトコマンドであれば、RAID3でのデータライト(書き込み)時の処理を次のようにして行う。
前記のように、ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する。そして、ホストアダプタ3は前記ホストデータをディスクアレイコントローラ4へ転送する(S83)。
ディスクアレイコントローラ4はホストデータを受け取ると、RAID3に基づき、ホストデータをm個のデータに分割して各ディスク装置6−1〜6−mに割り振る分割データを作成する。また、パリティ処理部19は前記m個の分割データの排他的論理和を計算してパリティデータを作成する。そして、カウンタデータ処理部21は更新カウンタ22から現在のカウンタ値を読み取り、そのカウンタ値を前記各分割データ及びパリティデータに付加する。
次にディスクアレイコントローラ4はディスク装置6−1〜6−nに対してライトコマンドを発行すると共に、前記作成した各ディスク装置毎のカウンタ値付き分割データをデバイスアダプタ5−1〜5−mへ転送する。これと同時に、デバイスアダプタ5−nには、前記カウンタ値付きパリティデータを転送する(S84)。
その後、デバイスアダプタ5−1〜5−mは、各々接続されているディスク装置6−1〜6−mに前記ライトコマンドを送ると共に、前記カウンタ値付き分割データを転送する。そして、ディスク装置6−1〜6−mは記憶媒体に前記カウンタ値付き分割データを書き込む。また、デバイスアダプタ5−nは、接続されているディスク装置6−nにライトコマンドを送ると共に、前記カウンタ値付きパリティデータを転送し、ディスク装置6−nは記憶媒体にカウンタ値付きパリティデータを書き込み(S85)ライト処理を終了する。
また、前記S82の処理で、受信したコマンドがリードコマンドであった場合、ホストアダプタ3は、そのコマンドの内容をディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで各ディスク装置6−1〜6−nに対してリードコマンドを発行する(S86)。
デバイスアダプタ5−1〜5−nを介して前記リードコマンドを受信したディスク装置6−1〜6−nは、指定されたアドレスのデータをリードする。そして、ディスク装置6−1〜6−nからリードしたカウンタ値付きデータは、ディスク装置6−1〜6−nに接続されている各デバイスアダプタ5−1〜5−nに転送され、それぞれメモリ12−1〜12−nに格納される(S87)。
その後、ディスクアレイコントローラ4は、デバイスアダプタ5−1〜5−mのメモリ12−1〜12−mに格納されている分割データからホストデータを再構築する。また、パリティ処理部19は、前記ホストデータの再構築と同時にデバイスアダプタ5−1〜5−mに格納されているデータの排他的論理和を計算してリードパリティを作成し、前記リードパリティをデバイスアダプタ5−nのメモリ12−nに格納されているパリティと比較することでリードパリティチェックを行う(S28)。
その結果、両者が一致すれば、リードパリティチェックが正常であり、整合性に矛盾が無かったとして、前記再構築したホストデータをホストアダプタ3へ転送する(S92)。その後、ホストアダプタ3は前記ホストデータをホスト1へ転送する(S91)。
しかし、前記S28のリードパリティチェック処理で、不一致の場合、整合性に矛盾が有ったとする。すなわち、前記のようにパリティが不一致と分かった時点で以下のようなデータリカバリ処理を実施する。この場合、ディスクアレイコントローラ4は、各デバイスアダプタ5−1〜5−nのメモリ12−1〜12−nに格納されているデータのカウンタ値を調べ、このカウンタ値が一番古いもの(最古のカウンタ値を持ったデータ)を誤ったデータと決定する。
そして、最古のカウンタ値を持つ誤ったデータを除いて、他のデバイスアダプタのメモリに格納されているデータからRAID3のデータリカバリ処理に基づき、ホストデータを再構築する(S89)。前記再構築されたホストデータは、正しいデータとしてホストアダプタ3へ転送される(S90)。ホストアダプタ3は前記データを受け取ると、そのデータをホスト1へ転送する(S91)。
(実施の形態6の説明)
§1:実施の形態6の処理の説明・・・図12参照
実施の形態6は、実施の形態3の処理における時刻データの代わりとして前記更新カウンタのカウンタ値を用いた例である。なお、実施の形態6のディスクアレイ装置は前記実施の形態5の装置をRAID5の装置としたものなので、図12を援用して説明する。この例ではRAID5により次のようにして処理を行う。この場合、以下に説明する処理は、全ディスク装置へのアクセスが行われる場合の例である。
(1) :RAID5でのライト時の処理
RAID5でのデータライト時の処理は次の通りである。この場合、ディスク装置6−1〜6−nの全てを分割データ及びパリティデータの格納用として、データのリード/ライト時の処理を次のようにして行う。
先ず、ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する。次に、ホストアダプタ3は、前記ホストデータをディスクアレイコントローラ4へ転送する。
ディスクアレイコントローラ4はホストデータを受け取ると、RAID5に基づき、ホストデータをセクタ単位でm個のデータに分割して、パリティデータ格納用の1つのディスク装置を除く他の各ディスク装置に割り振る分割データを作成する。また、パリティ処理部19は、前記m個の分割データの排他的論理和を計算してパリティデータを作成する。そして、カウンタデータ処理部21は更新カウンタ22から現在のカウンタ値を読み取り、そのカウンタ値を前記各分割データ、及びパリティデータに付加する。
次にディスクアレイコントローラ4は、ディスク装置6−1〜6−nに対してライトコマンドを発行すると共に、前記カウンタ値付き分割データをデバイスアダプタ5−1〜5−nの内の該当するm個のデバイスアダプタへ転送する。これと同時に、残りの1つのデバイスアダプタには、前記カウンタ値付きパリティデータを転送する。
その後、前記カウンタ値付き分割データを格納しているデバイスアダプタは、各々接続されているディスク装置に前記ライトコマンドを送ると共に、前記カウンタ値付き分割データを転送する。そして、前記カウンタ値付き分割データを受信したディスク装置は記憶媒体に前記カウンタ値付き分割データを書き込む。また、カウンタ値付きパリティデータを格納しているデバイスアダプタは、接続されているディスク装置にライトコマンドを送ると共に、前記カウンタ値付きパリティデータを転送し、そのディスク装置は記憶媒体にカウンタ値付きパリティデータを書き込む。
(2) :RAID5でのリード処理において、パリティの整合性に矛盾が無かった場合の処理説明
RAID5でのリード処理時に、パリティの整合性に矛盾がなかった場合の処理は次の通りである。先ず、ホスト1の発行したリードコマンドをホストアダプタ3が受信すると、ホストアダプタ3は、そのコマンドの内容をディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで各ディスク装置6−1〜6−nに対してリードコマンドを発行する。
デバイスアダプタ5−1〜5−nを介して前記リードコマンドを受信したディスク装置6−1〜6−nは、指定されたアドレスのデータをリードする。そして、ディスク装置6−1〜6−nからリードしたデータは、ディスク装置6−1〜6−nに接続されている各デバイスアダプタ5−1〜5−nに転送され、それぞれメモリ12−1〜12−nに格納される。
その後、ディスクアレイコントローラ4は、デバイスアダプタのメモリに格納されている分割データからRAID5に基づきホストデータを再構築(復元)する。この時、パリティ処理部19は、前記メモリに格納されている各分割データの排他的論理和を計算してリードパリティとし、このリードパリティを前記いずれか1つのメモリに格納されているパリティデータと比較する。
その結果、両者が一致すれば、リードパリティチェックが正常であり、整合性に矛盾が無かったとして、前記再構築した(復元)データをホストアダプタ3へ転送する。その後、ホストアダプタ3は前記データをホスト1へ転送する。
(3) :RAID5でのリード処理において、パリティの整合性に矛盾が有った場合の処理説明
前記のように、ディスク装置からのデータリード時に、デバイスアダプタのメモリに格納されている各分割データの排他的論理和を計算して求めたリードパリティデータと、いずれか1つのデバイスアダプタのメモリに格納されているパリティデータとの値が不一致であった場合、整合性に矛盾が有るとして次の処理を行う。
この場合、時刻データ処理部13は、各デバイスアダプタ5−1〜5−nのメモリ12−1〜12−nに格納されているデータのカウンタ値を調べ、このカウンタ値が一番古いものを誤ったデータとして決定する。そして、ディスクアレイコントローラ4は、最古のカウンタ値を持つ誤ったデータを除いて、他のデバイスアダプタのメモリに格納されているデータからRAID5のデータリカバリ方法に基づき、ホストデータを再構築する。前記再構築されたホストデータは、正しいデータとしてホストアダプタ3へ転送される。ホストアダプタ3は前記データを受け取ると、そのデータをホスト1へ転送する。
(実施の形態7の説明)
§1:実施の形態7の処理の説明・・・図12参照
実施の形態7は、実施の形態4の処理における時刻データの代わりとして前記更新カウンタのカウンタ値を用いた例である。なお、実施の形態7のディスクアレイ装置は前記実施の形態5の装置をRAID4の装置としたものなので、図12を援用して説明する。この例ではRAID4により次のようにして処理を行う。
(1) :RAID1でのライト時の処理
RAID1でのデータのリード/ライト時の処理を次のようにして行う。先ず、ホストアダプタ3は、ホスト1よりライトコマンドと共に書き込み要求のあったホストデータを受信すると、そのホストデータをメモリ10に一時格納する。次に、ホストアダプタ3は、前記ホストデータをディスクアレイコントローラ4へ転送する。
ディスクアレイコントローラ4が前記ホストデータを受け取ると、カウンタデータ処理部21は更新カウンタ22から現在のカウンタ値を読み取り、そのカウンタ値を前記ホストデータに付加する。次にディスクアレイコントローラ4は、ディスク装置6−1、6−2に対してライトコマンドを発行すると共に、前記カウンタ値付きデータをデバイスアダプタ5−1、5−2へ転送する。
その後、デバイスアダプタ5−1、5−2は、各々接続されているディスク装置6−1、6−2に前記ライトコマンドを送ると共に、前記カウンタ値付きデータを転送する。そして、ディスク装置6−1、6−2は記憶媒体に前記カウンタ値付きホストデータを書き込む。このようにしてディスク装置6−1と6−2には同一のカウンタ値付きホストデータ(ミラーデータ)が書き込まれる。
(2) :RAID1でのリード処理において、ミラーデータ相互の比較処理で結果が等しかった場合の処理説明
RAID1でのリード処理時に、ミラーデータ相互の比較処理で結果が等しかった場合の処理は次の通りである。先ず、ホスト1の発行したリードコマンドをホストアダプタ3が受信すると、ホストアダプタ3は、そのコマンドの内容をディスクアレイコントローラ4へ通知する。この通知を受け取ったディスクアレイコントローラ4は、ホスト1より要求のあったアドレスで各ディスク装置6−1、6−2に対してリードコマンドを発行する。
デバイスアダプタ5−1、5−2を介して前記リードコマンドを受信したディスク装置6−1、6−2は、指定されたアドレスのデータをリードする。そして、ディスク装置6−1、6−2からリードしたデータは、ディスク装置6−1、6−2に接続されている各デバイスアダプタ5−1、5−2に転送され、それぞれメモリ12−1、12−2に格納される。
その後、ディスクアレイコントローラ4は、デバイスアダプタ5−1のメモリ12−1に格納されているデータと、デバイスアダプタ5−2のメモリ12−2に格納されているデータとの比較を行う(ミラーデータの比較)。その結果、両者が一致すれば、いずれか一方のデータ(例えば、メモリ12−1に格納されているデータ)を正しいホストデータであるとしてホストアダプタ3へ転送する。その後、ホストアダプタ3は前記データをホスト1へ転送する。
(3) :RAID1でのリード処理において、ミラーデータ相互の比較処理で結果が等しくなかった場合の処理説明
前記のように、ディスク装置からのデータのリード時に、デバイスアダプタ5−1、5−2のメモリ12−1、12−2に格納されているデータの比較で、両者が不一致であった場合、カウンタデータ処理部21は、各デバイスアダプタ5−1、5−2のメモリ12−1、12−2に格納されているデータのカウンタ値を調べ、このカウンタ値が古いものを誤ったデータとして決定する。
そして、ディスクアレイコントローラ4は、最新のカウンタ値が書かれていた方のデータを正しいホストデータとして用いる。すなわち、古いカウンタ値を持つ誤ったデータを除いて、他のデバイスアダプタのメモリに格納されているデータを正しいホストデータとしてホストアダプタ3へ転送する。ホストアダプタ3は前記データを受け取ると、そのデータをホスト1へ転送する。
(他の実施の形態)
以上実施の形態について説明したが、本発明は次のようにしても実施可能である。
(1) :前記時計の代わりにタイマを使用しても実現可能である。この場合、前記分割データ及びパリティデータに現在のタイマ値を付加してディスク装置に書き込み、データの読み出し時のパリティチェックで整合性に矛盾が有った場合は、前記タイマ値の比較により最古のタイマ値を持つデータを誤ったデータであるとして、ホストデータの再構築を行う。
(2) :前記更新カウンタは、データの書き込みが行われる度にカウンタ値が更新されるものでも良いが、このような例に限らず、例えば、一定時間毎にカウンタ値が更新されるものでも実現可能である。
本発明の説明図である。 実施の形態1の装置構成図である。 実施の形態1の処理説明図である。 実施の形態1の処理フローチャートである。 実施の形態2の装置構成図である。 実施の形態2の処理説明図である。 実施の形態2の処理フローチャートである。 実施の形態3の装置説明図である。 実施の形態3の処理フローチャートである。 実施の形態4の装置構成図である。 実施の形態4の処理フローチャートである。 実施の形態5の装置構成図である。 実施の形態5の処理フローチャートである。 従来のディスクアレイ装置の説明図である。 RAIDのレベル説明図である。
符号の説明
1 ホスト(ホスト装置)
2 ディスクアレイ制御装置
3 ホストアダプタ
4 ディスクアレイコントローラ
5−1〜5−n デバイスアダプタ
6−1〜6−n ディスク装置
10、12−1〜12−n メモリ
11 CRC付加処理部
13 時刻データ処理部
14 時計
19 パリティ処理部
20 CRCチェック部
21 カウンタデータ処理部
22 更新カウンタ

Claims (1)

  1. 複数の記憶装置と、前記複数の記憶装置を並列的に動作させることでデータの書き込み/読み出し制御を行うディスクアレイ制御装置を備えたディスクアレイ装置において、
    前記ディスクアレイ制御装置は、
    入力したホストデータに巡回冗長検査情報として第1冗長情報を付加し、この第1冗長情報付きホストデータを分割し、この分割データからチェック用の第2冗長情報を作成し、前記分割データ及び第2冗長情報を前記複数の記憶装置へ書き込む制御を行う制御手段を備えると共に、
    前記複数の記憶装置から読み出した分割データからチェック用の第2冗長情報を作成し、この第2冗長情報を前記記憶装置から読み出した第2冗長情報と比較して第2冗長情報のチェックを行う第2冗長情報チェック手段と、
    前記第2冗長情報チェック手段によるチェックで整合性に矛盾が有る場合、前記複数の記憶装置を1つずつ順番に誤ったデータが格納されているものと仮定し、この仮定の元で前記誤ったデータが格納されているものと仮定した記憶装置を除く他の記憶装置のデータより第1冗長情報付きホストデータを順次再構築するホストデータ再構築手段と、
    前記ホストデータ再構築手段で再構築した第1冗長情報付きホストデータに対して第1冗長情報のチェックを行って整合性がとれなかった場合、前記ホストデータ再構築手段で、誤ったデータが格納されていると仮定した記憶装置を別の記憶装置と仮定し、再びこの仮定の元で再構築された第1冗長情報付きホストデータに対し第1冗長情報のチェックを行う処理を、整合性がとれるまで繰り返して行い、整合性がとれた場合、そのホストデータを正しいホストデータとする第1冗長情報チェック手段を備えていることを特徴としたディスクアレイ装置。
JP2005096839A 2005-03-30 2005-03-30 ディスクアレイ装置 Expired - Fee Related JP3699473B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005096839A JP3699473B2 (ja) 2005-03-30 2005-03-30 ディスクアレイ装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005096839A JP3699473B2 (ja) 2005-03-30 2005-03-30 ディスクアレイ装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2004017073A Division JP3676793B2 (ja) 2004-01-26 2004-01-26 ディスクアレイ装置

Publications (2)

Publication Number Publication Date
JP2005209227A true JP2005209227A (ja) 2005-08-04
JP3699473B2 JP3699473B2 (ja) 2005-09-28

Family

ID=34909776

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005096839A Expired - Fee Related JP3699473B2 (ja) 2005-03-30 2005-03-30 ディスクアレイ装置

Country Status (1)

Country Link
JP (1) JP3699473B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071047A (ja) * 2006-09-13 2008-03-27 Kwok-Yan Leung ディスクインターフェースカード
JP2008117395A (ja) * 2006-10-31 2008-05-22 Hewlett-Packard Development Co Lp フォールトトレラントデータストレージシステムにおけるブロックレベルのデータ破損の検出および訂正
JP2009301303A (ja) * 2008-06-13 2009-12-24 Fujitsu Ltd 制御方法、ディスクアレイ装置

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008071047A (ja) * 2006-09-13 2008-03-27 Kwok-Yan Leung ディスクインターフェースカード
JP2008117395A (ja) * 2006-10-31 2008-05-22 Hewlett-Packard Development Co Lp フォールトトレラントデータストレージシステムにおけるブロックレベルのデータ破損の検出および訂正
JP4668970B2 (ja) * 2006-10-31 2011-04-13 ヒューレット−パッカード デベロップメント カンパニー エル.ピー. フォールトトレラントデータストレージシステムにおけるブロックレベルのデータ破損の検出および訂正
US8145941B2 (en) 2006-10-31 2012-03-27 Hewlett-Packard Development Company, L.P. Detection and correction of block-level data corruption in fault-tolerant data-storage systems
JP2009301303A (ja) * 2008-06-13 2009-12-24 Fujitsu Ltd 制御方法、ディスクアレイ装置

Also Published As

Publication number Publication date
JP3699473B2 (ja) 2005-09-28

Similar Documents

Publication Publication Date Title
US5379417A (en) System and method for ensuring write data integrity in a redundant array data storage system
US7062704B2 (en) Storage array employing scrubbing operations using multiple levels of checksums
US7017107B2 (en) Storage array employing scrubbing operations at the disk-controller level
JPH09305328A (ja) ディスクアレイ装置
US7577866B1 (en) Techniques for fault tolerant data storage
US7308599B2 (en) Method and apparatus for data reconstruction after failure of a storage device in a storage array
US20180081760A1 (en) Managing raid parity stripe contention
US7206991B2 (en) Method, apparatus and program for migrating between striped storage and parity striped storage
KR100275900B1 (ko) 알에이아이디 서브시스템에 있어서 분할패러티 예비 디스크 구현방법
US8060772B2 (en) Storage redundant array of independent drives
US6970987B1 (en) Method for storing data in a geographically-diverse data-storing system providing cross-site redundancy
US6327672B1 (en) Multiple drive failure tolerant raid system
US7146461B1 (en) Automated recovery from data corruption of data volumes in parity RAID storage systems
JP5124792B2 (ja) RAID(RedundantArrayofIndependentDisks)システム用のファイルサーバ
US20120192037A1 (en) Data storage systems and methods having block group error correction for repairing unrecoverable read errors
JPH08263227A (ja) ディスクアレイにおけるパリティデータの無矛盾性保持方法
US9740440B2 (en) Separating a hybrid asymmetric mix of a RAID 1 mirror and a parity-based RAID array
JP2006252126A (ja) ディスクアレイ装置及びその再構築方法
US7409499B1 (en) Automated recovery from data corruption of data volumes in RAID storage
US20090132890A1 (en) Anamorphic Codes
JP4794439B2 (ja) アレイ・ストレージ・システムでの冗長性
JP3676793B2 (ja) ディスクアレイ装置
JP3699473B2 (ja) ディスクアレイ装置
US10901843B2 (en) Managing data storage
JP2857288B2 (ja) ディスクアレイ装置

Legal Events

Date Code Title Description
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: 20050705

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20050707

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20080715

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090715

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100715

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110715

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120715

Year of fee payment: 7

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130715

Year of fee payment: 8

LAPS Cancellation because of no payment of annual fees