JP4985647B2 - 修復プログラム、修復装置および修復方法 - Google Patents

修復プログラム、修復装置および修復方法 Download PDF

Info

Publication number
JP4985647B2
JP4985647B2 JP2008537325A JP2008537325A JP4985647B2 JP 4985647 B2 JP4985647 B2 JP 4985647B2 JP 2008537325 A JP2008537325 A JP 2008537325A JP 2008537325 A JP2008537325 A JP 2008537325A JP 4985647 B2 JP4985647 B2 JP 4985647B2
Authority
JP
Japan
Prior art keywords
data
raid
read
disk
raid disk
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
JP2008537325A
Other languages
English (en)
Other versions
JPWO2008041267A1 (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.)
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
Publication of JPWO2008041267A1 publication Critical patent/JPWO2008041267A1/ja
Application granted granted Critical
Publication of JP4985647B2 publication Critical patent/JP4985647B2/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
    • 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/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B19/00Driving, starting, stopping record carriers not specifically of filamentary or web form, or of supports therefor; Control thereof; Control of operating function ; Driving both disc and head
    • G11B19/02Control of operating function, e.g. switching from recording to reproducing
    • G11B19/04Arrangements for preventing, inhibiting, or warning against double recording on the same blank or against other recording or reproducing malfunctions
    • G11B19/041Detection or prevention of read or write errors
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1045Nested RAID, i.e. implementing a RAID scheme in another RAID scheme
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2211/00Indexing scheme relating to details of data-processing equipment not covered by groups G06F3/00 - G06F13/00
    • G06F2211/10Indexing scheme relating to G06F11/10
    • G06F2211/1002Indexing scheme relating to G06F11/1076
    • G06F2211/1059Parity-single bit-RAID5, i.e. RAID 5 implementations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • G11B2020/1826Testing wherein a defect list or error map is generated
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B2220/00Record carriers by type
    • G11B2220/40Combinations of multiple record carriers
    • G11B2220/41Flat as opposed to hierarchical combination, e.g. library of tapes or discs, CD changer, or groups of record carriers that together store one title
    • G11B2220/415Redundant array of inexpensive disks [RAID] systems

Description

本発明は修復プログラム、修復装置および修復方法に関する。
近年、電子文書や電子メール、観測データのログ等の大量に蓄積されるデータを参照するために、常時アクセス可能な媒体に格納することがビジネスプロセスの改善やセキュリティの観点から望まれている。
このようなデータを格納するためには信頼性が高く、長期の保存が可能で、大容量なストレージ装置が必要となる。また、ストレージ装置は比較的安価なものが好ましい。このような要求を満たすために冗長構成を有する複数のディスクで構成されるRAID(Redundant Arrays of Inexpensive Disks)装置が一般的に知られている。なお、ここでいう冗長構成とは、非常時に備えて、主に使用しているディスクとは別にバックアップ用ディスクを用意したり、複数のディスクを用意し、これらを切り替えて用いたりするような構成をいう。
また、このようなRAID装置を備えるモジュールをネットワークで複数接続し、仮想ストレージシステムとして利用することも一般的に行われている。
このようなRAID装置ではデータに冗長性を持たせて保持させることで、障害が起こってもデータを修復することを可能にしている。しかし、そのRAID装置の冗長度を超える障害が発生すると、データを修復することができずに失われてしまう。
そこで、大規模なシステムでは信頼性をさらに向上させるために複数のRAID装置を互いに接続することによりデータの冗長構成をとるといった階層的な冗長構成がとられている(例えば、特許文献1参照)。
特開2000−76207号公報
しかしながら、特許文献1で開示されている方法では、RAID装置の読み出し障害に起因してノード(モジュール)内の冗長構成で修復不可能な障害が発生した場合には障害が発生したRAID装置全体分に相当する修復を必要とするという問題があった。
また、ノード内で修復不可能な障害が複数のノードで同時に発生し、それがノード間冗長度を超えた場合には、修復が不可能な障害となってしまうという問題があった。
本発明はこのような点に鑑みてなされたものであり、データ修復量を減らすことができる修復プログラム、修復装置および修復方法を提供することを目的とする。
本発明では上記問題を解決するために、ストレージデバイスに格納された一部のデータについて読み出し障害が発生した場合に修復処理を行う修復プログラムにおいて、データが複数のストレージデバイスに冗長構成で記憶されるシステムにおける該複数のストレージデバイスのうち第1のストレージデバイスに接続されるコンピュータに、前記第1のストレージデバイスで発生したデータの読み出し障害を検出し、前記読み出し障害が発生したデータの補完を要求する要求データを、該読み出し障害が発生したデータに対応する冗長データを記憶する第2のストレージデバイスに接続される他のコンピュータに送信し、前記他のコンピュータから前記要求データに応じた第2のデータを受信すると、前記読み出し障害が生じたデータに、受信した該第2のデータを上書きする、処理を実行させることを特徴とする修復プログラムが提供される。
本発明は、従来に比べデータ修復を行うために必要なデータ量を減らすことができる。これによりシステムの信頼性を向上させることができる。
本発明の上記および他の目的、特徴および利点は本発明の例として好ましい実施の形態を表す添付の図面と関連した以下の説明により明らかになるであろう。
実施の形態に適用される発明を示す概要図である。 実施の形態のシステム構成を示す図である。 モジュールのハードウェア構成例を示す図である。 ノードの構成を示す図である。 ストライプの構成を示す図である。 サーバのハードウェア構成例を示す図である。 一方のモジュールの機能を示すブロック図である。 他方のモジュールの機能を示すブロック図である。 ノード内変換テーブルを示す図である。 RAIDディスク内変換テーブルを示す図である。 システムにおける修復処理を示すシーケンス図である。 一方のモジュールの修復処理を示すフローチャートである。 他方のモジュールの修復処理を示すフローチャートである。 復旧処理を示すフローチャートである。 データの復旧の概念を示す図である。 第2の実施の形態のシステムの管理単位を示す図である。 第2の実施の形態のノード内変換テーブルを示す図である。 第3の実施の形態のシステムの一方のモジュールを示す図である。 第3の実施の形態のシステムの他方のモジュールを示す図である。 第3の実施の形態のシステムにおける修復処理を示すシーケンス図である。 第3の実施の形態の一方のモジュールの修復処理を示すフローチャートである。 第3の実施の形態の一方のモジュールの修復処理を示すフローチャートである。 第3の実施の形態の他方のモジュールの修復処理を示すフローチャートである。 データの復旧の概念を示す図である。 データの復旧の概念を示す図である。
以下、本発明の実施の形態を、図面を参照して詳細に説明する。
まず、実施の形態に適用される発明の概要について説明し、その後、実施の形態の具体的な内容を説明する。
図1は、実施の形態に適用される発明を示す概要図である。
コンピュータ1は、コンピュータ7に直接的または間接的に接続されている。
第1のRAIDディスク2は、データの格納単位を構成するブロックを複数備える分散データを複数のディスク2a、2b、2c、2dに分けて記憶する。分散データは、例えばサーバ(図示せず)が1つのデータを分散して書き込んだデータである。
障害検出手段3は、ブロックの読み出し障害を、読み出し障害が生じたブロックを含む所定領域毎に検出する。図1では一例としてディスク2a内のブロックの読み出し障害が発生した場合を示している。
要求手段4は、読み出し障害が生じた際、第1のRAIDディスク2内で修復できないブロック(図1ではディスク2a内のブロック)の補完を、分散データと同じデータが格納されている第2のRAIDディスク5を備える他のコンピュータ6に要求する。ここで、コンピュータ1およびコンピュータ6を含むシステムでは第1のRAIDディスク2と第2のRAIDディスク5とにデータに冗長性を持たせて保持させている。
上書き手段7は、コンピュータ6からのブロックを受け取ると、読み出し障害が生じたブロックに受け取ったブロックを上書きする。
このようなシステム検出プログラムによれば、障害検出手段3により、第1のRAIDディスク2のブロックの読み出し障害が、読み出し障害が生じたブロックを含む所定領域毎に検出される。この際、要求手段4により、第1のRAIDディスク2内で修復できないブロックの補完が、コンピュータ6に要求される。そしてコンピュータ6からのブロックを受け取ると、上書き手段7により、読み出し障害が生じたブロックに受け取ったブロックが上書きされる。
以下、本発明の実施の形態を具体的に説明する。
図2は、実施の形態のシステム構成を示す図である。
モジュール100a、100b(複数のモジュール)は、それぞれ複数のストレージデバイスを有している。モジュール100a、100bには、共通のデータが略同時に書き込まれるよう構成されており、一方が予備としてプールされ、他方がサーバで使用される。すなわち、モジュール100aとモジュール100bとがRAID(Redundant Array of Inexpensive Disks)レベル1(以下、RAID#1という)を構成している。
また、各モジュールは、それぞれのストレージデバイスに自己のモジュール内では解決できない不具合が生じた場合、他のモジュールにアクセスを行い、不具合が生じた部分のデータを修復する。
サーバ200は、ネットワーク10を介して、モジュール100a、100bに接続されており、各装置の運用状況を管理する。具体的には、サーバ200はデータを100a、100bに略同時に書き込む。
図3は、モジュールのハードウェア構成例を示す図である。なお、図3では一例としてモジュール100aのハードウェア構成を示している。
モジュール100aは、CPU(Central Processing Unit)101によって装置全体が制御されている。CPU101には、バス105を介してRAM(Random Access Memory)102、ノード103、および通信インタフェース104が接続されている。
RAM102には、CPU101に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM102には、CPU101による処理に必要な各種データが格納される。
ノード103は、それぞれ複数のハードディスクドライブ(HDD:Hard Disk Drive)で構成されるRAIDディスク1031およびRAIDディスク1032を有している。ノード103では、RAIDディスク単位に論理ボリュームの管理/割当がなされている。RAIDディスク1031およびRAIDディスク1032には、それぞれOSやアプリケーションプログラム等各種データが格納される。
通信インタフェース104は、ネットワーク10に接続されている。通信インタフェース104は、ネットワーク10を介して、サーバ200やサーバ200を介してモジュール100bとの間でデータの送受信を行う。
次に、ノード103の構造について説明する。
図4は、ノードの構造を示す図である。
ノード103のRAIDディスク1031は、例えば1TB程度の記憶容量を有している。RAIDディスク1031は、RAIDレベル5(以下、RAID#5という)を構成する複数のHDD103a、103b、103c、103dを有している。HDD103a、103b、103c、103dのそれぞれ先頭から例えば10MBの領域には論理ボリュームRB1が構成されている。
1つのデータD1は、ストライピング処理によって分散データD11、D12、D13に分散され、それぞれHDD103a、103b、103cに書き込まれる。この処理の際、パリティデータ(誤り訂正符号データ)P1が生成されHDD103dに書き込まれる。また、例えば次のデータD2がストライピング処理によって分散データD21、D22、D23に分散され書き込まれる際には、生成されたパリティデータP2は、HDD103dとは異なるディスク(図5ではHDD103c)に書き込まれる。このため、1つのHDDにアクセスが集中することを回避することができ、書き込みの高速化を実現することができる。
以下、分散データおよびパリティデータ(例えば分散データD11やパリティデータP1等)が格納される単位を「ストライプ」という。各ストライプの容量は、例えば64KB程度である。
図5は、ストライプの構成を示す図である。
図5に示すストライプSt1は、複数のブロックを有している。各ブロックの容量は、例えば512B程度である。データのリード/ライトは、ブロック単位で行われる。すなわち、各分散データの格納単位であるストライプの対応するブロック毎にリード/ライトが行われる。
再び図4に戻って説明する。
RAID#5は、HDDの故障時にデータを再生成する機能を有している。
例えばCPUからの命令により分散データD11、D12、D13を取り出すときに、分散データD12が壊れている場合は、パリティデータP1によって分散データD12が復活する。このように、パリティデータを利用し、故障したHDDの分散データを他のディスクのデータを使用して再生成することで、システムの停止を回避することができる。
RAIDディスク1032は、RAID#1を構成するHDD103e、103fを有している。
図6は、サーバのハードウェア構成例を示す図である。
サーバ200は、CPU(Central Processing Unit)201によって装置全体が制御されている。CPU201には、バス207を介してRAM(Random Access Memory)202、HDD203、グラフィック処理装置204、入力インタフェース205、および通信インタフェース206が接続されている。
RAM202には、CPU201に実行させるOS(Operating System)のプログラムやアプリケーションプログラムの少なくとも一部が一時的に格納される。また、RAM202には、CPU201による処理に必要な各種データが格納される。HDD203には、OSやアプリケーションプログラムが格納される。また、HDD203内には、プログラムファイルが格納される。
グラフィック処理装置204には、モニタ41が接続されている。グラフィック処理装置204は、CPU201からの命令に従って、画像をモニタ41の画面に表示させる。入力インタフェース205には、キーボード42とマウス43とが接続されている。入力インタフェース205は、キーボード42やマウス43から送られてくる信号を、バス207を介してCPU201に送信する。
通信インタフェース206は、ネットワーク10に接続されている。通信インタフェース206は、ネットワーク10を介して、モジュール100a、100bや他のコンピュータとの間でデータの送受信を行う。
以上のようなハードウェア構成によって、本実施の形態の処理機能を実現することができる。
このようなハードウェア構成をそれぞれ有するシステムにおいてデータの修復処理を行うために、モジュール100a、100b内には、以下のような機能が設けられる。
図7は、一方のモジュールの機能を示すブロック図である。
モジュール100aは、RAIDディスク110と、RAIDディスク120と、障害検出部(障害検出手段)15と、論理ボリューム特定部16と、変換テーブル記憶部17と、インタフェース部18と応答データ処理部19とを有している。
RAIDディスク110は、RAID#5を構成するディスク11、12、13、14を有している。ディスク11、12、13、14は、それぞれHDD103a、103b、103c、103dに対応している。
図7では、HDD103a、103b、103c、103dの各ストライプの一部を図示しており、ディスク11のストライプSt11には分散データD11が格納されている。ディスク12のストライプSt12には、分散データD12が格納されている。ディスク13のストライプSt13には、分散データD13が格納されている。ディスク14のストライプSt14には、パリティデータP1が格納されている。
RAIDディスク120は、RAID#1を構成するディスク21、22を有している。ディスク21、22は、それぞれHDD103e、103fに対応している。なお、ディスク21、22には分散データD11、D12、D13以外のデータが格納されている。
障害検出部15は、RAIDディスク110およびRAIDディスク120を定期的に監視し、各RAIDディスクに読み出し障害が存在するか否かを検出する。読み出し障害の検出は、各ストライプのブロック単位で行う。読み出し障害が存在する場合には、読み出し障害が存在するRAIDディスクおよびRAIDディスクの先頭側から何番目のブロックに読み出し障害が起こったか(読み出し障害が起こったブロックの位置)を特定する。なお、読み出し障害とは、ディスクの一部のデータが読み出せなくなった場合でもその部分にデータを上書きすることで再びデータを読み書きすることができる障害をいう。
障害検出部15は、RAIDディスク110で読み出し障害が存在した場合、RAIDディスク110内で解決できる障害であるか否かを判断する。RAIDディスク110内で解決できる障害である場合は、パリティデータP1を用いて障害が生じたディスクの分散データを再生成することで読み出し障害を解決する。一方、RAIDディスク110内で解決できない障害の場合、障害が生じたブロックの位置情報を論理ボリューム特定部16に渡す。
論理ボリューム特定部16は、障害が生じたブロックの位置情報に基づいて、同じブロックを他のモジュールから取得するための要求データを作成する。この要求データは、変換テーブル(後述)を用いて作成し、作成した要求データをインタフェース部18に渡す(送る)。
この論理ボリューム特定部16により、要求手段の一機能が構成されている。
変換テーブル記憶部17には、変換テーブルが格納されている。
インタフェース部18は、要求データを受け取るとサーバ200に送信する。
また、インタフェース部18は、サーバ200から応答データ(後述)を受信すると、受信したデータを応答データ処理部19に渡す。このように、インタフェース部18は、内部からのデータを受け取ると、サーバ200に送信し、サーバ200等の外部からのデータを受信すると、モジュール100a内の各部に渡す。
応答データ処理部19は、上書き手段の主要部を構成しており、応答データに基づいて、障害が生じたディスクの分散データの復旧処理(後述)を行う。
図8は、他方のモジュールの機能を示すブロック図である。
モジュール100bは、RAID#0を構成するディスク11b、12b、13bを有するRAIDディスク130と、RAID#0を構成するディスク14b、15b、16bを有するRAIDディスク140と、変換テーブル記憶部17bと、インタフェース部18bと、要求データ処理部20bとを有している。
このRAIDディスク130とRAIDディスク140とで二重化され、RAID#0+1の構成となっている。
ディスク11b、12b、13b、14b、15b、16bにはディスク11、12、13に格納されているデータと同一のデータがそれぞれ二重化(ミラーリング)されて格納されている。詳しくは、ディスク11bのストライプSt21およびディスク14bのストライプSt24にはそれぞれ分散データD11が格納されている。ディスク12bのストライプSt22およびディスク15bのストライプSt25にはそれぞれ分散データD12が格納されている。ディスク13bのストライプSt23およびディスク16bのストライプSt26にはそれぞれ分散データD13が格納されている。
変換テーブル記憶部17bと、インタフェース部18bとについては、それぞれモジュール100aの変換テーブル記憶部17と、インタフェース部18と同様の機能を有しているため、詳細な説明を省略する。
要求データ処理部20bは、インタフェース部18bから要求データを受け取ると、変換テーブル記憶部17bの変換テーブルを参照して、対応するRAIDディスクを特定し、そのRAIDディスクからブロック(読み出し障害が発生したブロックに該当するブロック)を取り出す。そして、取り出したブロックを含む応答データを生成してインタフェース部18bに送る。
次に、変換テーブル記憶部17、17bに格納されている変換テーブルについて説明する。
変換テーブル記憶部17、17bには、ノード内の変換テーブルであるノード内変換テーブルとRAIDディスク内の変換テーブルであるRAIDディスク内変換テーブルとが設けられている。
図9は、ノード内変換テーブルを示す図である。
ノード内変換テーブル171aは、RAIDディスク単位で論理ボリュームの管理(割当)がなされている。
ノード内変換テーブル171aには、論理ボリュームおよびRAIDディスクの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
論理ボリュームの欄には、RAIDディスクの欄に格納されたRAIDディスク名に対応する論理ボリュームが設定される。図6の例では、論理ボリュームAがRAIDディスク120に対応づけられており、論理ボリュームBがRAIDディスク110に対応づけられている。
RAIDディスクの欄には、モジュール100内のRAIDディスク名、すなわちRAIDディスクを一意に特定する情報が設定されている。
図10は、RAIDディスク内変換テーブルを示す図である。
RAIDディスク内変換テーブル172aには、RAIDディスクおよび詳細構成の欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
RAIDディスクの欄には、モジュール100a内のRAIDディスク名が設定されている。
詳細構成の欄には、RAIDレベルに応じた項目が設定される。RAIDディスク110はRAID#5であるため、RAIDディスク110のRAIDレベル(RAID#5)とディスク個数とストライプサイズとが設定されている。RAIDディスク120はRAID#1であるため、RAIDディスク110のRAIDレベル(RAID#1)のみが設定されている。
ノード内変換テーブル171aおよび、RAIDディスク内変換テーブル172aの内容(対応付け)は、サーバ200によって常時書き換えられる。
一方、モジュール100bの変換テーブル記憶部17bにも同様の構成を有するノード内変換テーブルおよびRAIDディスク内変換テーブルが設けられている。
このように論理ボリュームを用いてデータをやりとりすることにより、互いの物理アドレスを知らなくても容易にデータの取得先を特定することができる。
次に、モジュール100aのRAIDディスク110に読み出し障害が発生した場合のシステムにおける修復処理の概要について説明する。
図11は、システムにおける修復処理を示すシーケンス図である。
RAIDディスク110にて読み出し障害が発生した場合、モジュール100aが要求データを生成する(ステップS11)。
次に、モジュール100aが、生成した要求データをサーバ200に送信する(ステップS12)。
次に、サーバ200が、受信した要求データをモジュール100bに送信する(ステップS13)。
次に、モジュール100bが、受信した要求データに基づいて応答データを生成する(ステップS14)。
次に、モジュール100bが、生成した応答データをサーバ200に送信する(ステップS15)。
次に、サーバ200が、受信した応答データをモジュール100aに送信する(ステップS16)。
次に、モジュール100aが、受信した応答データを用いて復旧処理を行う(ステップS17)。
以上で、修復処理を終了する。
次に、修復処理におけるモジュール100a側の処理について詳しく説明する。
図12は、一方のモジュールの修復処理を示すフローチャートである。
まず、障害検出部15が、読み出し障害が発生したか否かを検出する(ステップS21)。読み出し障害が発生していない場合(ステップS21のNo)、修復処理を終了する。
一方、読み出し障害が発生している場合(ステップS21のYes)、論理ボリューム特定部16が、障害が生じたブロックの位置情報およびRAIDディスク内変換テーブル172aを参照することにより読み出し障害が発生したRAIDディスクを特定し(ステップS22)、さらにノード内変換テーブル171aを参照することにより読み出し障害が発生したブロックを含む論理ボリュームを特定する(ステップS23)。
次に、論理ボリューム特定部16が、特定した論理ボリューム名を含む要求データを生成し(ステップS24)、インタフェース部18に渡す。
次に、インタフェース部18が、要求データをサーバ200に送信する(ステップS25)。
その後、インタフェース部18が、応答データを受信したか否かを判断する(ステップS26)。応答データを受信していない場合(ステップS26のNo)、応答データの受信を待機する。一方、応答データを受信した場合(ステップS26のYes)。応答データ処理部19が、復旧処理を行う(ステップS27)。
以上で修復処理におけるモジュール100a側の処理を終了する。
次に、修復処理におけるモジュール100b側の処理について詳しく説明する。
図13は、他方のモジュールの修復処理を示すフローチャートである。
まず、インタフェース部18bが、要求データを受信したか否かを判断する(ステップS31)。要求データを受信していない場合(ステップS31のNo)、要求データの受信を待機する。一方、要求データを受信した場合(ステップS31のYes)、要求データ処理部20bが変換テーブル記憶部17b内のノード内変換テーブル、RAIDディスク内変換テーブルを参照することにより障害が生じたブロックを特定する(ステップS32)。次に、要求データ処理部20bが、特定したブロックを含む応答データを生成する(ステップS33)。
次に、インタフェース部18bが応答データをサーバ200に送信する(ステップS34)。
以上で修復処理におけるモジュール100b側の処理を終了する。
次に、図12に示すステップS27の復旧処理について説明する。
図14は、復旧処理を示すフローチャートである。
まず、RAIDディスク110内の読み出し障害が発生したブロックのストライプと、パリティデータが格納されているストライプ以外の全てのディスクにおける読み出し障害が発生したブロックに対応するブロックが格納されているストライプを読み出す(ステップS261)。
次に、読み出したストライプの互いに対応する部分の各ブロックと、応答データから取り出したブロックとから新たなパリティデータのブロックを作成する(ステップS262)。
次に、作成したパリティデータのブロックを従来のパリティデータが格納されているブロックに上書き(更新)する。また、応答データから取り出したブロックを、読み出し障害が発生したブロックに上書きする(ステップS263)。
以上で、復旧処理を終了する。
次に、システムにおける修復処理を、具体例を用いて説明する。
なお、以下では一例として分散データD13のブロックB13とブロックB13を修復するためのパリティデータP1の該当ブロックとに読み出し障害が同時に発生し、RAIDディスク110内での自己修復ができない場合の修復処理について説明する。
まず、障害検出部15が、障害が生じたブロックB13の位置情報を論理ボリューム特定部16に渡す。そして、論理ボリューム特定部16が、RAIDディスク内変換テーブル172aおよびノード内変換テーブル171aを参照することにより読み出し障害が発生したブロックB13を含む論理ボリュームを特定する。そして、論理ボリューム特定部16が、この論理ボリューム名を含む要求データを生成しインタフェース部18に渡す。インタフェース部18は、要求データをサーバ200に送信する。その後インタフェース部18は、応答データを待機する。
一方、インタフェース部18bが要求データを受信すると、要求データ処理部20bが変換テーブル記憶部17bに格納されているノード内変換テーブルおよびRAIDディスク内変換テーブルを参照することによりディスク13bを特定する。そして、要求データ処理部20bが算出した分散データD13内のブロックB13をディスク13bから取り出し、応答データを生成する。その後、インタフェース部18bが応答データをサーバ200に送信する。
図15は、データの復旧の概念を示す図である。
インタフェース部18が応答データを受信すると、応答データ処理部19がディスク11、12に格納されている分散データD11、D12を読み出す。そして読み出した分散データD11、D12のブロックB11、B12と、応答データから取り出したブロックB13とから新たなパリティデータP1を作成する。次に、作成したパリティデータP1をディスク14に上書きして、パリティデータを更新する。また、分散データD13を読み出し障害が発生したディスク13の読み出し障害が生じた領域に上書きする。
以上で修復処理を終了する。
以上述べたように、本実施の形態のシステムによれば、読み出し障害が発生した場合に、モジュール100aとモジュール100bとの間の冗長構成を利用して修復すべきデータを構築し、それを障害が発生した箇所に上書きすることで容易にデータを修復することができる。これにより、大幅にデータ修復量を低減させることができる。また、データ修復中の記憶手段への他のアクセスの影響を抑制することができる。よってシステムの信頼性を向上させることができる。
なお、本実施の形態では読み出し障害が存在する場合に修復処理を行うようにしたが、本発明ではこれに限らず、例えば読み出し障害が一定以上発生した場合やディスクのある特定の物理領域(例えば、連続する領域)で読み出し障害が発生した場合には修復処理を行わず、ディスクの物理的な障害であると判断するよう構成されていてもよい。読み出し障害以外の障害の場合は他の処理を行うことにより、処理の効率化を図ることができる。
また、本実施の形態ではモジュール100aが要求データを生成し、サーバ200に送信するようにしたが、本発明ではこれに限らず、例えばサーバ200がモジュール100aの読み出し障害が発生したディスクに格納されているブロックの取得依頼を受けて要求データを生成してモジュール100bに送信し、サーバ200がモジュール100bから応答データを取得し、モジュール100aに送信するようにしてもよい。
また、本実施の形態では、サーバ200を介して修復処理を行う場合について説明したが、本発明ではこれに限らず、起動時にモジュールを識別するテーブルを双方のモジュールに与え、モジュール100aおよび100bは、与えられたテーブルを見てサーバ200を介さずに直接データ送受信を行うようにしてもよい。
また、本実施の形態では一例としてモジュール100aおよびモジュール100bの2つのモジュール間での修復処理について説明したが、本発明ではこれに限らず、3つ以上のモジュール間での修復処理についても適用することができるのはいうまでもない。この場合も論理ボリュームを用いてデータをやりとりすることにより、互いの物理アドレスを知らなくても容易にデータの取得先を特定することができる。
次に、第2の実施の形態のシステムについて説明する。
以下、第2の実施の形態のシステムについて、前述した第1の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
第2の実施の形態のシステムでは、セグメント単位で、論理ボリュームが分散されて管理(割当)がなされている点が異なり、それ以外は第1の実施の形態と同様である。
図16は、第2の実施の形態のシステムの管理単位を示す図である。
図16では、RAIDディスク1031の論理ボリュームRB1がセグメントsg1、sg2、sg3(3つのセグメント)で構成されている。このセグメントのサイズ(セグメントサイズ)は予め定められており、各セグメントには、複数のストライプが含まれている。
また、RAIDディスク1032も同様に複数のセグメントで構成されている。
次に、第2の実施の形態の変換テーブル記憶部17に格納されているノード内変換テーブルについて説明する。
図17は、第2の実施の形態のノード内変換テーブルを示す図である。
ノード内変換テーブル173aは、セグメント単位で論理ボリュームが分散されて管理(割当)がなされている。
ノード内変換テーブル173aには、論理ボリュームおよびRAIDディスクの欄が設けられており、各欄の横方向に並べられた情報同士が互いに関連づけられている。
論理ボリュームの欄には、論理ボリューム名およびこの論理ボリューム名のセグメント名が設定される。
RAIDディスクの欄には、論理ボリュームの欄に設定された論理ボリュームおよびセグメントに対応するRAIDディスク名およびセグメント名を一意に特定する情報が格納されている。
一方、モジュール100bの変換テーブル記憶部17bにも同様の構成を有するノード内変換テーブルが格納されている。
次に、第2の実施の形態のシステムの修復処理について説明する。
まず、モジュール100aの修復処理について説明する。
論理ボリューム特定部16は、障害が生じたブロックの位置情報、RAIDディスク内変換テーブル172aおよびセグメントサイズを参照することにより読み出し障害が発生したRAIDディスクのセグメントを特定する。さらにノード内変換テーブル173aを参照することにより読み出し障害が発生したブロックを含む論理ボリュームおよびセグメントを特定する。
次に、論理ボリューム特定部16が、特定した論理ボリュームとセグメントとを含む要求データを生成しインタフェース部18に渡す。以降、第1の実施の形態のモジュール100aの修復処理と同様の処理を行う。
次に、モジュール100bの修復処理について説明する。
インタフェース部18bが要求データを受信した場合、要求データ処理部20bが変換テーブル記憶部17b内のノード内変換テーブルを参照することにより、読み出し障害が発生したブロックを含むRAIDディスクおよびセグメントを特定する。さらに、RAIDディスク内変換テーブルを参照することにより障害が生じたブロックを特定する。次に、要求データ処理部20bが、特定したブロックを含む応答データを生成する。次に、インタフェース部18bが応答データをサーバ200に送信する。
以上でモジュール100bの修復処理を終了する。
この第2の実施の形態のシステムによれば、前述した第1の実施の形態のシステムと同様の効果が得られる。
そして、この第2の実施の形態では、セグメントの領域単位で読み出し障害を検出するため、さらに細かい領域指定を行うことができ、より柔軟な論理ボリュームの管理を行うことが可能となる。
次に、第3の実施の形態のシステムについて説明する。
以下、第3の実施の形態のシステムについて、前述した第1の実施の形態との相違点を中心に説明し、同様の事項については、その説明を省略する。
第3の実施の形態のシステムは、複数のモジュールに読み出し障害が生じた場合においてもデータの修復を行うことができるシステムである。
第3の実施の形態のシステムは、モジュール100cとモジュール100dを有している。
図18は、第3の実施の形態のシステムの一方のモジュールを示す図である。
図18に示すように、モジュール100cは、モジュール100aに比べさらに要求データ処理部20bと同機能の要求データ処理部20cを有している。
図19は、第3の実施の形態のシステムの他方のモジュールを示す図である。
図19に示すように、モジュール100dは、モジュール100bに比べさらに障害検出部15dと、論理ボリューム特定部16dと、応答データ処理部19dと、要求データ処理部20dとを有している。
障害検出部15dは、障害検出部15と同機能を有している。すなわち、RAIDディスク130、140を定期的に監視し、各ディスクに読み出し障害が存在するか否かを検出する。さらに、障害検出部15dは、要求データ処理部20dからの検出依頼を受けると、読み出し障害の検出を行い、障害が生じたブロックの位置情報を検出依頼に対する結果として論理ボリューム特定部16dに渡す。
論理ボリューム特定部16dは、論理ボリューム特定部16と同機能を有している。すなわち、要求データ処理部20dが要求した検出依頼に因らない検出結果を受け取ると、検出結果に基づいた要求データを生成し、インタフェース部18bに送る。また、検出依頼に対する検出結果を受け取ると、検出結果に基づいた要求データを生成し、この要求データをインタフェース部18bに送らずに要求データ処理部20dに送る。
応答データ処理部19dは、応答データ処理部19と同機能を有している。
要求データ処理部20dは、要求データ処理部20bと同機能を有している。すなわち、インタフェース部18bから要求データを受け取ると、ノード内変換テーブルおよびRAIDディスク内変換テーブルを参照して、対応するディスクを特定し、そのディスクからブロックを取り出す。そして、取り出したブロックを含む応答データを生成するとともに、障害検出部15dに検出依頼を送る。その後、論理ボリューム特定部16dから要求データを受け取ると、応答データに要求データを付加した応答要求データを生成してインタフェース部18bに送る。検出依頼を送って所定時間要求データの送信がなければ要求データはないものとして応答データをインタフェース部18bに送る。
この要求データ処理部20dにより、要求手段の一機能と受信手段の主要部と送信手段の主要部とが構成されている。
次に、読み出し障害が発生した場合の第3の実施の形態のシステムの修復処理について説明する。
図20は、第3の実施の形態のシステムにおける修復処理を示すシーケンス図である。
ステップS41〜S44は、それぞれ第1の実施の形態のシステムのステップS11〜S14と同様の動作を行う。
次に、モジュール100dが、モジュール100d側に要求データが存在するか否かを判断する(ステップS45)。モジュール100d側に要求データが存在しない場合は、第1の実施の形態のステップS15以降の処理を行う。
一方、モジュール100d側に要求データが存在する場合、モジュール100dが、モジュール100d側に存在する要求データを応答データに付加した応答要求データを生成する(ステップS46)。
次に、モジュール100dが、生成した応答要求データをサーバ200に送信する(ステップS47)。
次に、サーバ200が、受信した応答要求データをモジュール100cに送信する(ステップS48)。
次に、モジュール100cが、受信した応答要求データに含まれる応答データに基づいて復旧処理を行う(ステップS49)。
次に、モジュール100cが、受信した応答要求データの要求データの部分に基づいて応答データを生成する(ステップS50)。
次に、モジュール100cが、生成した応答データをサーバ200に送信する(ステップS51)。
次に、サーバ200が、受信した応答データをモジュール100dに送信する(ステップS52)。
次に、モジュール100dが、受信した応答データに基づいて読み出し障害が生じたブロックに、得られたデータを格納する(ステップS53)。
以上で修復処理を終了する。
次に、第3の実施の形態の修復処理におけるモジュール100c側の処理について詳しく説明する。
図21および図22は、第3の実施の形態の一方のモジュールの修復処理を示すフローチャートである。
ステップS61〜S65については、図12のステップS21〜S25と同様の処理を行う。
次に、インタフェース部18が、応答データを受信したか否かを判断する(ステップS66)。応答データを受信した場合(ステップS66のYes)。応答データ処理部19が、復旧処理を行う(ステップS67)。そしてモジュール100cの修復処理を終了する。一方、応答データを受信していない場合(ステップS66のNo)、インタフェース部18が、応答要求データを受信したか否かを判断する(ステップS68)。応答要求データを受信していない場合(ステップS68のNo)、ステップS66に移行し、処理を継続する。一方、応答要求データを受信した場合(ステップS68のYes)、応答データ処理部19が、復旧処理を行う(図22のステップS69)。その後、応答要求データを要求データ処理部20cに渡す。
次に、要求データ処理部20cが、ノード内変換テーブル171a、RAIDディスク内変換テーブル172aを参照することにより障害が生じたブロックを特定する(ステップS70)。次に、要求データ処理部20cが、特定したブロックを含む応答データを生成する(ステップS71)。
次に、インタフェース部18bが応答データをサーバ200に送信する(ステップS72)。
以上で、モジュール100cの修復処理を終了する。
次に、第3の実施の形態の修復処理におけるモジュール100d側の処理について詳しく説明する。
図23は、第3の実施の形態の他方のモジュールの修復処理を示すフローチャートである。
まず、インタフェース部18bが、要求データを受信したか否かを判断する(ステップS81)。要求データを受信していない場合(ステップS81のNo)、要求データの受信を待機する。一方、要求データを受信した場合(ステップS81のYes)、変換テーブル記憶部17b内のノード内変換テーブル、RAIDディスク内変換テーブルを参照することにより障害が生じたブロックを特定する(ステップS82)。次に、要求データ処理部20dが、モジュール100cに送信すべき要求データが存在するか否かを判断する(ステップS83)。モジュール100cに送信すべき要求データが存在しない場合(ステップS83のNo)、応答データを生成する(ステップS84)。
そして、インタフェース部18bが、応答データをサーバ200に送信し、処理を終了する(ステップS85)。
一方、モジュール100cに送信すべき要求データが存在する場合(ステップS83のYes)、要求データ処理部20dが、要求応答データを生成する(ステップS86)。
そして、インタフェース部18bが、要求応答データをサーバ200に送信する(ステップS87)。
次に、インタフェース部18bが、ステップS87で送信した応答要求データに対する応答データを受信したか否かを判断する(ステップS88)。応答データを受信していない場合(ステップS88のNo)、応答データを待機する。一方、応答データを受信した場合(ステップS88のYes)、応答データ処理部19が、復旧処理を行う(ステップS89)。
以上でモジュール100dの修復処理を終了する。
次に、第3の実施の形態のシステムの修復処理について具体例を用いて説明する。本実施の形態では、一例としてモジュール100cのディスク13の分散データD13のブロックB13とブロックB13を修復するためのパリティデータPの該当ブロックとモジュール100dのディスク11bの分散データD11のブロックB11とディスク14bの分散データD11のブロックB11とに読み出し障害が発生した場合について説明する。
まず、モジュール100cの障害検出部15が、障害が生じたブロックB13の位置情報を論理ボリューム特定部16に渡す。そして、論理ボリューム特定部16が、RAIDディスク内変換テーブル172aおよびノード内変換テーブル171aを参照することにより読み出し障害が発生したブロックB13を含む論理ボリュームを特定する。そして、論理ボリューム特定部16が、特定した論理ボリュームを含む要求データを生成しインタフェース部18に渡す。インタフェース部18は、要求データをサーバ200に送信する。その後インタフェース部18は、応答データを待機する。
一方、モジュール100dのインタフェース部18bが要求データを受信すると、要求データ処理部20dが変換テーブル記憶部17bに格納されているノード内変換テーブルおよびRAIDディスク内変換テーブルを参照することによりディスク13bを特定する。そして、要求データ処理部20dが算出した分散データD13内のブロックをディスク13bから取り出し、応答データを生成する。また、このタイミングで要求データ処理部20dが、障害検出部15dに検出依頼を送る。そして障害検出部15dが読み出し障害の検出を行いディスク11b、14bの各ブロックB11に読み出し障害が発生したことを検出し、障害が生じたブロックB11の位置情報を論理ボリューム特定部16dに渡す。そして、論理ボリューム特定部16dが、変換テーブル記憶部17bに格納されているRAIDディスク内変換テーブルおよびノード内変換テーブルを参照することにより読み出し障害が発生したブロックB11を含む論理ボリュームを特定する。そして、論理ボリューム特定部16dが、特定した論理ボリュームを含む要求データを生成し、要求データ処理部20dに送る。
要求データ処理部20dは、ブロックB11を要求する要求データとブロックB13を含む応答データとを受け取り要求応答データを生成する。そして、インタフェース部18bが要求応答データをサーバ200に送信する。
図24は、データの復旧の概念を示す図である。
モジュール100cのインタフェース部18が応答要求データを受信すると、応答データ処理部19がディスク11、12に格納されている分散データD11、D12を読み出す。そして読み出した分散データD11、D12のブロックB11、B12と、応答要求データから取り出したブロックB13とから新たなパリティデータP1を作成する。次に、作成したパリティデータP1をディスク14に上書きして、パリティデータを更新する。また、ディスク13の読み出し障害が生じた領域に分散データD13を上書きする。その後、応答要求データを要求データ処理部20に渡す。そして、要求データ処理部20が、ノード内変換テーブル171aおよびRAIDディスク内変換テーブル172aを参照することによりディスク11bを特定する。そして、要求データ処理部20が算出した分散データD11内のブロックB11をディスク11bから取り出し、応答データを生成する。そして、インタフェース部18bが応答データをサーバ200に送信する。
図25は、データの復旧の概念を示す図である。
インタフェース部18bが応答データを受信すると、応答データ処理部19dがディスク11b、14bの各ブロックB11を上書きする。以上で修復処理が終了する。
この第3の実施形態のシステムによれば、第1の実施の形態のシステムと同様の効果が得られる。
そして、第3の実施形態のシステムによれば、モジュール100cとモジュール100dの双方に読み出し障害が発生した場合においても、ノード間での冗長構成と、ノード内での冗長構成とを協調させて動作させることにより、容易かつ確実に所望のデータを修復させることができる。
なお、本実施の形態の修復処理では、まずモジュール100cのデータを修復し、その後モジュール100dのデータを修復したが、これに限らず、まずモジュール100dのデータを修復し、その後モジュール100cのデータを修復するようにしてもよい。
以上、本発明の修復プログラム、修復装置および修復方法を、図示の実施の形態に基づいて説明したが、本発明はこれに限定されるものではなく、各部の構成は、同様の機能を有する任意の構成のものに置換することができる。また、本発明に、他の任意の構成物や工程が付加されていてもよい。
また、本発明は、前述した各実施の形態のうちの、任意の2以上の構成(特徴)を組み合わせたものであってもよい。
なお、前述した各実施の形態では、ブロック単位でデータのやり取りを行ったが、本発明ではこれに限らず、例えばストライプ単位でデータのやり取りを行ってもよい。この場合例えば障害検出部15は、読み出し障害の検出は、ストライプ単位で行うようにしてもよい。
また、上記の処理機能は、コンピュータによって(コンピュータに所定の修復プログラムを実行させることにより)実現することができる。その場合、前述したモジュールが有すべき機能の処理内容を記述したプログラムが提供される。そのプログラムをコンピュータで実行することにより、上記処理機能がコンピュータ上で実現される。処理内容を記述したプログラムは、コンピュータで読み取り可能な記録媒体に記録しておくことができる。コンピュータで読み取り可能な記録媒体としては、例えば、磁気記録装置、光ディスク、光磁気記録媒体、半導体メモリ等が挙げられる。磁気記録装置としては、例えば、ハードディスク装置(HDD)、フレキシブルディスク(FD)、磁気テープ等が挙げられる。光ディスクとしては、例えば、DVD(Digital Versatile Disc)、DVD−RAM(Random Access Memory)、CD−ROM(Compact Disc Read Only Memory)、CD−R(Recordable)/RW(ReWritable)等が挙げられる。光磁気記録媒体としては、例えば、MO(Magneto-Optical disk)等が挙げられる。
プログラムを流通させる場合には、例えば、そのプログラムが記録されたDVD、CD−ROM等の可搬型記録媒体が販売される。また、プログラムをサーバコンピュータの記憶装置に格納しておき、ネットワークを介して、サーバコンピュータから他のコンピュータにそのプログラムを転送することもできる。
修復プログラムを実行するコンピュータは、例えば、可搬型記録媒体に記録されたプログラムもしくはサーバコンピュータから転送されたプログラムを、自己の記憶装置に格納する。そして、コンピュータは、自己の記憶装置からプログラムを読み取り、プログラムに従った処理を実行する。なお、コンピュータは、可搬型記録媒体から直接プログラムを読み取り、そのプログラムに従った処理を実行することもできる。また、コンピュータは、サーバコンピュータからプログラムが転送される毎に、逐次、受け取ったプログラムに従った処理を実行することもできる。
上記については単に本発明の原理を示すものである。さらに、多数の変形、変更が当業者にとって可能であり、本発明は上記に示し、説明した正確な構成および応用例に限定されるものではなく、対応するすべての変形例および均等物は、添付の請求項およびその均等物による本発明の範囲とみなされる。
符号の説明
1、6 コンピュータ
2 第1のRAIDディスク
2a、2a、2b、2c、11、11b、12、12b、13、13b、14、14b、15b、16b、21、22 ディスク
3 障害検出手段
4 要求手段
5 第2のRAIDディスク
7 上書き手段
15、15d 障害検出部
16、16d 論理ボリューム特定部
17、17b 変換テーブル記憶部
18、18b インタフェース部
19、19d 応答データ処理部
20、20b、20c、20d 要求データ処理部
100a、100b、100c、100d モジュール
103a、103b、103c、103d HDD
110、120、1031、1032 RAIDディスク
171a、172a、173a 変換テーブル
200 サーバ
St1、St11〜St14、St21〜St26 ストライプ

Claims (7)

  1. RAIDディスクに格納された一部のデータについて読み出し障害が発生した場合に修復処理を行う修復プログラムにおいて、
    データが複数のRAIDディスクに冗長構成で記憶されるシステムにおける前記複数のRAIDディスクのうち第1のRAIDディスクに接続されるコンピュータに、
    前記第1のRAIDディスクで発生したデータの読み出し障害を検出し、
    前記読み出し障害が前記第1のRAIDディスク内で修復できない場合に、前記読み出し障害が発生したデータの補完要求を前記読み出し障害が発生したデータに対応する冗長データを記憶する第2のRAIDディスクに接続される他のコンピュータに送信し、
    前記他のコンピュータから前記補完求に応じた第2のデータを受信すると、前記読み出し障害が発生した前記第1のRAIDディスクの読み出し障害が発生した領域に、受信した前記第2のデータを上書きする、
    処理を実行させることを特徴とする修復プログラム。
  2. 前記読み出し障害を検出する処理は、前記読み出し障害が生じたブロック単位に検出することを特徴とする請求項1記載の修復プログラム。
  3. 前記読み出し障害を検出する処理は、前記読み出し障害が生じたブロックをストライプ単位に検出することを特徴とする請求項1記載の修復プログラム。
  4. 前記読み出し障害を検出する処理は、前記読み出し障害を、前記第1のRAIDディスクの論理ボリュームの一部に対応づけられているセグメント単位に検出することを特徴とする請求項1記載の修復プログラム。
  5. 前記コンピュータに、さらに前記第2のRAIDディスクで生じたブロックの読み出し障害による前記他のコンピュータからの前記ブロックの補完要求を受信し、
    前記ブロックの前記補完要求を受信した場合、前記補完要求に対応する前記ブロックを前記第1のRAIDディスクから取り出し、
    取り出した前記ブロックを、前記他のコンピュータに送信する、
    処理を実行させることを特徴とする請求項記載の修復プログラム。
  6. RAIDディスクに格納された一部のデータについて読み出し障害が発生した場合に修復処理を行う修復装置において、
    前記修復装置は、
    データが複数のRAIDディスクに冗長構成で記憶されるシステムにおける前記複数のRAIDディスクのうち第1のRAIDディスクに接続され、
    前記第1のRAIDディスクで発生したデータの読み出し障害を検出する障害検出部と、
    前記読み出し障害が前記第1のRAIDディスク内で修復できない場合に、前記読み出し障害が発生したデータの補完要求を前記読み出し障害が発生したデータに対応する冗長データを記憶する第2のRAIDディスクに接続される他の装置に送信する送信部と、
    前記他の装置から前記補完求に応じた第2のデータを受信すると、前記読み出し障害が発生した前記第1のRAIDディスクの読み出し障害が発生した領域に、受信した前記第2のデータを上書きする上書き部と、
    を有することを特徴とする修復装置。
  7. RAIDディスクに格納された一部のデータについて読み出し障害が発生した場合に修復処理を行う修復方法において、
    データが複数のRAIDディスクに冗長構成で記憶されるシステムにおける前記複数のRAIDディスクのうち第1のストレージデバイスに接続されるコンピュータが、
    前記第1のRAIDディスクで発生したデータの読み出し障害を検出し、
    前記読み出し障害が前記第1のRAIDディスク内で修復できない場合に、前記読み出し障害が発生したデータの補完要求を前記読み出し障害が発生したデータに対応する冗長データを記憶する第2のRAIDディスクに接続される他のコンピュータに送信し、
    前記他のコンピュータから前記補完求に応じた第2のデータを受信すると、前記読み出し障害が発生した前記第1のRAIDディスクの読み出し障害が発生した領域に、受信した前記第2のデータを上書きする、
    ことを特徴とする修復方法。
JP2008537325A 2006-09-29 2006-09-29 修復プログラム、修復装置および修復方法 Expired - Fee Related JP4985647B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2006/319411 WO2008041267A1 (fr) 2006-09-29 2006-09-29 Programme, dispositif et procédé de gestion de système

Publications (2)

Publication Number Publication Date
JPWO2008041267A1 JPWO2008041267A1 (ja) 2010-01-28
JP4985647B2 true JP4985647B2 (ja) 2012-07-25

Family

ID=39268134

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008537325A Expired - Fee Related JP4985647B2 (ja) 2006-09-29 2006-09-29 修復プログラム、修復装置および修復方法

Country Status (3)

Country Link
US (1) US8276017B2 (ja)
JP (1) JP4985647B2 (ja)
WO (1) WO2008041267A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8392813B2 (en) * 2009-12-22 2013-03-05 Intel Corporation Redundant file system
CN108733518B (zh) * 2017-04-17 2021-07-09 伊姆西Ip控股有限责任公司 用于管理存储系统的方法、设备和计算机可读介质
WO2021017009A1 (en) * 2019-08-01 2021-02-04 Advanced New Technologies Co., Ltd. Shared blockchain data storage based on error correction code

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744322A (ja) * 1991-07-03 1995-02-14 Internatl Business Mach Corp <Ibm> Dasdアレイの階層を管理する方法および装置
JPH0816328A (ja) * 1994-06-28 1996-01-19 Mitsubishi Electric Corp ディスクアレイシステム
JPH09305327A (ja) * 1996-05-20 1997-11-28 Pfu Ltd ディスク装置
JPH11224166A (ja) * 1998-02-05 1999-08-17 Toshiba Corp ログ書き込み方式のディスク記憶装置に於ける記憶領域の障害回避方法、及びディスク記憶装置、同装置に用いられるコンピュータ読込み可能な記憶媒体
JP2000076207A (ja) * 1998-08-28 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 分散記憶方法及び分散記憶システム及び分散記憶プログラムを記録した記録媒体
JP2001307410A (ja) * 2000-04-26 2001-11-02 Matsushita Electric Ind Co Ltd 磁気ディスク装置、データ記録方法、およびデータ再生方法
JP2005293119A (ja) * 2004-03-31 2005-10-20 Toshiba Solutions Corp ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム
JP2005346212A (ja) * 2004-05-31 2005-12-15 Toshiba Corp ディスクアレイコントローラおよび情報処理装置
JP2006505035A (ja) * 2002-11-01 2006-02-09 インターナショナル・ビジネス・マシーンズ・コーポレーション ディスク・アレイ内に多重従属故障または任意の二重ディスク故障があっても使用することができる方法および手段
JP2006065773A (ja) * 2004-08-30 2006-03-09 Toshiba Corp 計算機システム及び同システムに適用される論理ユニット切り替え方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5581690A (en) * 1993-06-29 1996-12-03 Digital Equipment Corporation Method and apparatus for preventing the use of corrupt data in a multiple disk raid organized storage system
US6195761B1 (en) * 1997-12-31 2001-02-27 Emc Corporation Method and apparatus for identifying and repairing mismatched data
US6941490B2 (en) * 2000-12-21 2005-09-06 Emc Corporation Dual channel restoration of data between primary and backup servers
JP2004265567A (ja) * 2003-02-14 2004-09-24 Ricoh Co Ltd 情報記録再生装置とディスク装置とプログラムとコンピュータ読み取り可能な記録媒体と欠陥領域交替方法
GB0320494D0 (en) * 2003-09-02 2003-10-01 Ibm Methods apparatus and controllers for a raid storage system
US20050283654A1 (en) * 2004-05-24 2005-12-22 Sun Microsystems, Inc. Method and apparatus for decreasing failed disk reconstruction time in a raid data storage system

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0744322A (ja) * 1991-07-03 1995-02-14 Internatl Business Mach Corp <Ibm> Dasdアレイの階層を管理する方法および装置
JPH0816328A (ja) * 1994-06-28 1996-01-19 Mitsubishi Electric Corp ディスクアレイシステム
JPH09305327A (ja) * 1996-05-20 1997-11-28 Pfu Ltd ディスク装置
JPH11224166A (ja) * 1998-02-05 1999-08-17 Toshiba Corp ログ書き込み方式のディスク記憶装置に於ける記憶領域の障害回避方法、及びディスク記憶装置、同装置に用いられるコンピュータ読込み可能な記憶媒体
JP2000076207A (ja) * 1998-08-28 2000-03-14 Nippon Telegr & Teleph Corp <Ntt> 分散記憶方法及び分散記憶システム及び分散記憶プログラムを記録した記録媒体
JP2001307410A (ja) * 2000-04-26 2001-11-02 Matsushita Electric Ind Co Ltd 磁気ディスク装置、データ記録方法、およびデータ再生方法
JP2006505035A (ja) * 2002-11-01 2006-02-09 インターナショナル・ビジネス・マシーンズ・コーポレーション ディスク・アレイ内に多重従属故障または任意の二重ディスク故障があっても使用することができる方法および手段
JP2005293119A (ja) * 2004-03-31 2005-10-20 Toshiba Solutions Corp ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム
JP2005346212A (ja) * 2004-05-31 2005-12-15 Toshiba Corp ディスクアレイコントローラおよび情報処理装置
JP2006065773A (ja) * 2004-08-30 2006-03-09 Toshiba Corp 計算機システム及び同システムに適用される論理ユニット切り替え方法

Also Published As

Publication number Publication date
US8276017B2 (en) 2012-09-25
US20090177917A1 (en) 2009-07-09
WO2008041267A1 (fr) 2008-04-10
JPWO2008041267A1 (ja) 2010-01-28

Similar Documents

Publication Publication Date Title
US11163472B2 (en) Method and system for managing storage system
US10365983B1 (en) Repairing raid systems at per-stripe granularity
CN101571815B (zh) 信息系统及i/o处理方法
JP4767139B2 (ja) ストレージ管理プログラム、ストレージ管理装置、およびストレージ管理方法
JP4821448B2 (ja) Raidコントローラおよびraid装置
CN102024044B (zh) 分布式文件系统
JP4958739B2 (ja) 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
US20090150629A1 (en) Storage management device, storage system control device, storage medium storing storage management program, and storage system
JP2010015195A (ja) 記憶制御装置及び記憶制御方法
CN103534688A (zh) 数据恢复方法、存储设备和存储系统
JP2010282324A (ja) ストレージ制御装置、ストレージシステムおよびストレージ制御方法
JP4985647B2 (ja) 修復プログラム、修復装置および修復方法
US7529776B2 (en) Multiple copy track stage recovery in a data storage system
US20090177916A1 (en) Storage system, controller of storage system, control method of storage system
JP2006285527A (ja) ストレージ装置およびプログラム。
JP2004213470A (ja) ディスクアレイ装置及びディスクアレイ装置におけるデータ書き込み方法
JP4460596B2 (ja) ディスク管理方法、ディスク管理装置およびストレージシステム
JP4143040B2 (ja) ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム
US8578206B2 (en) Disk controller and disk control method
JP2014119831A (ja) ストレージ装置、制御方法及び制御プログラム
JP6175771B2 (ja) ディスクアレイ装置、バッドセクタ修復方法および修復プログラム
US8930748B2 (en) Storage apparatus and controller
CN107122261B (zh) 一种存储设备的数据读写方法及装置
JP2007128551A (ja) ストレージエリアネットワークシステム
JP2007293738A (ja) ストレージシステムおよびストレージシステムの情報処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110329

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110527

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20111213

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120308

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

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20120316

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: 20120403

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120416

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: 20150511

Year of fee payment: 3

LAPS Cancellation because of no payment of annual fees