JP3832223B2 - Disk array disk failure recovery method - Google Patents

Disk array disk failure recovery method Download PDF

Info

Publication number
JP3832223B2
JP3832223B2 JP2000297066A JP2000297066A JP3832223B2 JP 3832223 B2 JP3832223 B2 JP 3832223B2 JP 2000297066 A JP2000297066 A JP 2000297066A JP 2000297066 A JP2000297066 A JP 2000297066A JP 3832223 B2 JP3832223 B2 JP 3832223B2
Authority
JP
Japan
Prior art keywords
disk
data
disks
mirror
logical unit
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
JP2000297066A
Other languages
Japanese (ja)
Other versions
JP2002108571A (en
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.)
Hitachi Ltd
Original Assignee
Hitachi 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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2000297066A priority Critical patent/JP3832223B2/en
Publication of JP2002108571A publication Critical patent/JP2002108571A/en
Application granted granted Critical
Publication of JP3832223B2 publication Critical patent/JP3832223B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Description

【0001】
【発明の属する技術分野】
本発明は主として、コンピュータの外部記憶装置システムにおけるディスク障害復旧方法に関するものである。
【0002】
【従来の技術】
(1)ディスクアレイのディスク障害復旧方法
ディスクアレイシステムは、RAID(Redundant Arrays of Inexpensive Disks)とも呼ばれ、複数のディスク装置をアレイ状に配置した構成をとり、ホスト装置(以下ホストと略する)からのリード要求(データの読み出し要求)およびライト要求(データの書き込み要求)をディスク装置の並列動作によって高速に処理するとともに、データに冗長データを付加することによって信頼性を向上させた記憶装置である。ディスクアレイシステムは、冗長データの種類と構成により5つのレベルに分類されている(論文:"A Case for Redundant Arrays of Inexpensive Disks (RAID)", David A.Patterson, Garth Gibson, and Randy H.Katz, Computer Science Division Department of Electrical Engineering and Computer Sciences, University of California Berkeley)。
【0003】
上記のようなディスクアレイを実現するためには、ホストからのリード/ライト要求を各ディスク装置へのリード/ライト要求に変換し、ライト時にはデータを各ディスク装置へ分散し、リード時には各ディスク装置からデータを集合するデータ分散・集合制御を行う必要がある。このような制御をディスクアレイ制御と呼ぶこととする。
【0004】
ディスクアレイのうちパリティを付加している例えばRAID5レベルでは、1台のディスク障害が発生しても他のディスクとのパリティ保証により、ディスクの内容を復旧することができる。ディスクを復旧する場合、障害があったディスクを交換し、パリティグループを構成する他のディスクからデータを読み出し、XOR演算(排他的論理和)を施した後、演算結果を交換したディスクに書き込む。
【0005】
(2)スナップショットのための二重化
一般にハードディスクなどのコンピュータの外部記憶装置に記録されたデータは、装置の障害、ソフトウェアの欠陥、誤操作などによりデータを喪失した場合に、喪失したデータを回復できるように定期的にテープなどにコピーして保存しておくバックアップが必要である。その際、コピー作業中にデータが更新され、データに不整合が生じるとバックアップとして意味をなさないため、コピー作業中はデータの整合性を保証する必要がある。
【0006】
バックアップされるデータの整合性を保証するためには、データにアクセスするバックアッププログラム以外のプログラムを停止すればよいが、高可用性が要求されるシステムではプログラムを長時間停止させることができない。そのため、バックアップ中にプログラムがデータを更新することを妨げず、なおかつバックアップ開始時点でのデータの記憶イメージを作成する仕組みを提供する必要がある。ここで、ある時点でのデータの記憶イメージをスナップショットと呼び、指定された時点のスナップショットを作成しつつデータの更新が可能な状態を提供する仕組みをスナップショット管理方法と呼ぶ。また、スナップショット管理方法によりスナップショットを作成することをスナップショットの取得と呼び、スナップショット取得の対象となったデータをオリジナルデータと呼ぶ。また、スナップショットを作成した状態をやめることをスナップショットの削除と呼ぶ。
【0007】
従来のスナップショット管理方法の一つとして、データの二重化による方法が挙げられる。
【0008】
この方法では、スナップショットを取得していない通常の状態において、コンピュータ上のプログラムがすべてのデータを2つの記憶領域に二重化(ミラー)する。スナップショットを取得する時は二重化を停止して2つの記憶領域を独立な領域に分離し、1つの領域をオリジナルデータ、もう1つの領域をスナップショットとして提供する。
【0009】
スナップショットを取得し二重化を停止している間は、オリジナルデータの記憶領域に対するデータの更新を許可するとともに、データ更新が発生した場合は更新した位置を記録しておく。スナップショット削除時には、データの二重化を再開するとともに、2つの記憶領域の間で内容が一致していない更新データを更新位置の記録をもとにオリジナルデータの記憶領域からスナップショットとして提供していた記憶領域にコピーする(ミラー再同期化)。コンピュータ上のプログラムでデータを二重化する方法は、例えば米国特許5,051,887に示されている。
【0010】
【発明が解決しようとする課題】
ディスク交換後のパリティ再構築時には、交換したディスク以外の同パリティグループの全ディスクからデータを読み出す必要があるため通常アクセス性能が低下するという課題がある。また、パリティグループを形成するRAID5などの構成を表すnD+1Pにおいて、データドライブ数nが増加すると性能がさらに悪化するという課題がある。
【0011】
データの二重化によるスナップショット管理方法では、ミラー再同期化時において、更新/参照をする通常アクセスと更新データのコピーアクセスがオリジナルデータの記憶領域に集中し、通常アクセスの性能が低下する。ミラー再同期化にかかる時間は、スナップショットを取得して二重化を停止している間に更新されたデータ量に比例するので、更新アクセスが単位時間あたり同じ回数発生すると仮定した場合、ミラー再同期化にかかる時間は二重化の停止時間に比例して大きくなる。ディスク交換後のパリティ再構築と並行してバックアップをとる場合、スナップショットを取得して二重化を停止している時間が長く、通常アクセスの性能が低下するミラー再同期化時間が長くなるという課題がある。
【0012】
本発明の第1の目的は、スナップショット取得のために二重化運用しているディスクアレイにおいて、ディスク交換後のパリティ再構築時の通常アクセス性能低下を抑止するディスク障害復旧方法を提供することである。
【0013】
本発明の第2の目的は、スナップショット取得のために二重化運用しているディスクアレイにおいて、二重化を停止している期間におけるディスク交換後のパリティ再構築時間を短縮することで、ミラー再同期化中の更新データのコピー量を削減し、性能が低下するミラー再同期化時間を短縮するディスク障害復旧方法を提供することである。
【0014】
本発明の第3の目的は、第1、第2の目的に加えて、パリティグループを形成するRAID5などのディスク構成を表すnD+1Pにおいて、データドライブ数nの増加による性能低下を抑止するディスク障害復旧方法を提供することである。
【0015】
【課題を解決するための手段】
前記第1の目的を達成するために本発明は、スナップショット取得のために二重化運用しているディスクアレイにおいて、障害ディスクの復旧時に行うパリティ再構築を、パリティ冗長性を用いたパリティ生成に代えて、スナップショット用ミラー構成の同じ位置にあるディスクからのデータコピーによって実施するディスク障害復旧サブプログラムを設ける。ディスク交換後のパリティ再構築に関わるディスクアクセス回数を削減することで、通常アクセス性能の低下を抑止することができる。
【0016】
また、前記第2の目的を達成するために本発明は、スナップショット取得のために二重化運用しているディスクアレイにおいて、前記同様のディスク障害復旧サブプログラムを設ける。二重化を停止している期間におけるディスク交換後のパリティ再構築時間を短縮することで、ミラー再同期化中の更新データのコピー量を削減し、性能が低下するミラー再同期化時間を短縮することができる。
【0017】
また、前記第2の目的を達成するために本発明は、スナップショット取得のために二重化運用しているディスクアレイにおいて、前記同様のディスク障害復旧サブプログラムを設ける。パリティグループを形成するRAID5などのディスク構成を表すnD+1Pにおいて、nの数によらず1台のディスクからのコピーとなるため、データドライブ数nの増加による性能低下を抑止することができる。
【0018】
【発明の実施の形態】
本発明の第1の実施形態は、スナップショット取得のために二重化運用しているディスクアレイにおいて、ディスク交換後のパリティ再構築に関わるディスクアクセス回数を削減することで、通常アクセス性能の低下を抑止するためのものである。
【0019】
また、二重化を停止している期間におけるディスク交換後のパリティ再構築時間を短縮することで、ミラー再同期化中の更新データのコピー量を削減し、性能が低下するミラー再同期化時間を短縮するためのものである。
【0020】
また、ディスク交換後のパリティ再構築に関わるディスクアクセス回数を削減することで、パリティグループを形成するRAID5などのディスク構成を表すnD+1Pでのデータドライブ数nの増加による性能低下を抑止するためのものである。
【0021】
なお、本発明ではスナップショットの利用例として、バックアップをとりあげるが、OLAP(OnLine Analytical Processing)やシステムテスト等の他の目的においても利用が可能である。
【0022】
(1)構成の説明
本発明の第1の実施形態のシステム構成を図1を用いて説明する。図1において、コンピュータ100とディスクアレイ200が、SCSIインタフェース140、240を介してSCSIバス300で接続されている。コンピュータ100のメモリ120には、データベースプログラム126、バックアッププログラム127があり、コンピュータ100を制御するCPU110によって実行される。ディスクアレイ200には、ディスクコントローラ250によって制御されるディスク群251〜252があり、またメモリ220内にはスナップショット管理プログラム221があり、CPU210によって実行される。ディスク群251はディスク271〜275を有し、ディスク群252はディスク281〜282を有し、各ディスク群は各々がパリティ付きのストライピングされたアレイ構成をとる。本実施形態では、ディスク群251〜252内のディスク数を5としているが、それぞれ3つ以上のディスクから構成されていればよい。
【0023】
各ディスク群251〜252内の記憶領域は、SCSIの論理ユニットであるLU(Logical Unit)としてコンピュータ100からアクセスされる。各ディスク群251〜252に対応する各記憶領域をそれぞれLU261〜262とする。各ディスク群251〜252内のLUはそれぞれ複数であってもよい。本実施形態では、ディスクアレイ220内のスナップショット管理プログラム221が、LU261とLU262を二重化して管理し、LU261をオリジナルデータを持ったミラー元LUとし、LU262をオリジナルデータのミラーであるミラー先LUとする。LU262が、スナップショットとして使用するLUである。
【0024】
次に、コンピュータ100内のプログラムについて説明する。
【0025】
データベースプログラム126は、実行中にミラー元LUであるLU261にアクセスし、また、データ更新を制御してLU261内のデータの整合性を保証するバックアップモードに切替える機能を持つ。バックアップモードへはユーザまたはバックアッププログラム127からの指示により遷移する。バックアッププログラム127は、ユーザからの指示によってスナップショットを保存したLU262からテープ等にバックアップするためのデータを読み出す機能と、ディスクアレイ200にSCSIのModeSelectコマンドを発行する機能と、データベースプログラム126にバックアップモードの有効化、無効化を指示する機能を持つ。
【0026】
次に、ディスクアレイ200内のプログラム、および、管理表について説明する。
【0027】
ディスクアレイ200のスナップショット管理プログラム221は、コンピュータ100からの要求に応じてディスクコントローラ250にディスクアクセスを指示するディスクアクセスサブプログラム230と、1つのLUに対する更新を二重化してあらかじめ指定された別のLUにも適用し、2つのLUに同じ内容を書き込むLUミラーサブプログラム231を持つ。ディスクアクセスサブプログラム230は、コンピュータ100からのリード/ライト要求を各ディスク271〜275、281〜285へのリード/ライト要求に変換するディスクアレイ制御を行う。LUミラーサブプログラム231は、LU261に対するアクセスをLU262に二重化する。
【0028】
また、スナップショット管理プログラム221は、二重化を停止しているとき(非ミラー時)にミラー元LUに対する更新を検出する非ミラー時更新監視サブプログラム234と、その更新位置を後述する更新/不整合位置管理表222に記録する非ミラー時更新位置管理サブプログラム235と、ミラー再同期化を行う際にミラー元LUの更新部分をミラー先LUにコピーするミラー再同期サブプログラム232と、障害ディスクを交換した後にパリティ付きのストライピングされたアレイ構成に復旧するディスク障害復旧サブプログラム233とを持つ。更新/不整合位置管理表222は、ミラー元LUとミラー先LUのデータ内容の管理に用い、非ミラー時に更新されたミラー元LUの更新位置と、ディスク障害後の交換したディスクにおいて同一LU内でのパリティが不整合となっている位置を記録するものである。
【0029】
更新/不整合位置管理表222は、図2に示すようなビットマップとし、ミラー元LU内のすべてのLBAセット番号、および、LBAセット番号に付随する更新ビット、ミラー元不整合ビット、ミラー先不整合ビットから成る。LBAセットは、LUの全領域に対して、1個以上の同数のLBA(Logical Block Address)を単位として先頭から分割していったときの個々の集合であり、LBAセット番号は、LBAの先頭側から各LBAセットに通し番号をつけたものである。
【0030】
ディスクアレイのデータ分散により、LBAセットは各ディスクに対し先頭側から1個ずつ分配されていくものとし、各ディスク内の同じ位置におけるLBAセットの組に対してパリティグループ番号を付記する。図2の例では、パリティグループ番号0は、LBAセット番号0〜4により構成されている。また、本実施形態ではディスク5台に対してデータ分散を行うものとし、各ディスクのLBAセットの組を表すディスクセット番号を付記する。図2の例では、ディスクセット0は、LBAセット番号0、5、10、15により構成されている。
【0031】
更新ビットは、非ミラー時にミラー元LUのLBAセットが更新されたかどうかを示し、「更新」、「非更新」に応じてそれぞれ1、0を指定する。更新ビットの初期設定値は0である。図2の例では、LBAセット番号1の領域のみが非ミラー時に更新されている状態を示す。
【0032】
ミラー元不整合ビットは、ミラー元LUが交換されたときに同一LU内の他のディスクとパリティの整合性がとれているかどうかを示し、「不整合」「整合」に応じてそれぞれ1、0を指定する。ミラー元不整合ビットの式設定値は0である。
【0033】
ミラー先不整合ビットは、ミラー先LUが交換されたときに同一LU内の他のディスクとパリティの整合性がとれているかどうかを示し、「不整合」「整合」に応じてそれぞれ1、0を指定する。ミラー先不整合ビットの式設定値は0である。図2の例では、ミラー先LUにおいて、パリティグループ番号1〜3のディスクセット0の領域が他のディスクとのパリティ不整合となっている状態を示す。パリティグループ番号0のディスクセット0の領域は、後述するディスク障害復旧方法により他のディスクとのパリティ整合性がとれていることを示す。
【0034】
(2)スナップショットの取得/削除
ミラー元LUであるLU261のスナップショットをミラー先LUであるLU262として提供する場合を例にとり、スナップショット取得/削除時におけるバックアッププログラム127とスナップショット管理プログラム221の動作を図3のフローチャートを用いて説明する。
【0035】
まず、コンピュータ100のバックアッププログラム127がデータベースプログラム126に指示を与え、バックアップモードを有効化してスナップショットを取得するデータの整合性を保証する(ステップ2000)。次に、バックアッププログラム127は、ディスクアレイ200にスナップショットを取得するためのModeSelectコマンドを発行する(ステップ2001)。ディスクアレイ200のスナップショット管理プログラム221は、ModeSelectコマンドを受信すると(ステップ3000)、非ミラー時更新監視サブプログラム234と非ミラー時更新位置管理サブプログラム235を有効化し、LU261の更新位置記録を開始する(ステップ3001)。以降、LU261が更新されると、更新/不整合位置管理表222における更新されたLBAを含むLBAセットの更新ビットに1を設定し、更新があったことを記録する。次に、スナップショット管理プログラム221は、LUミラーサブプログラム231を無効化し、LU261とLU262の二重化を停止する(ステップ3002)。これにより、ミラー元LUであるLU261に対する更新がミラー先LUであるLU262に反映されなくなる。次に、スナップショット管理プログラム221は、ModeSelectコマンドの終了ステータスをコンピュータ100のバックアッププログラム127に送信する(ステップ3003)。バックアッププログラム127は、ModeSelectコマンドの終了ステータスを受信すると(ステップ2002)、データベースプログラム126に指示を与え、バックアップモードを無効化する(ステップ2003)。
【0036】
次に、バックアッププログラム127は、ディスクアレイ200に対し、LU263にスナップショット削除を指示するModeSelectコマンドを発行する(ステップ2004)。ディスクアレイ200のスナップショット管理プログラム221は、ModeSelectコマンドを受信すると(ステップ3005)、LUミラーサブプログラム231を有効化し、LU261とLU262の二重化を再開する(ステップ3006)。これにより、LU261に対する更新がLU262にも反映される。次に、スナップショット管理プログラム221は、非ミラー時更新監視サブプログラム234と非ミラー時更新位置管理サブプログラム235を無効化し、LU261の更新位置記録を停止する(ステップ3007)。以降、更新/不整合位置管理表222の更新ビットを非ミラー時更新位置管理サブプログラム235が変更しなくなる。次に、スナップショット管理プログラム221は、ミラー再同期サブプログラム232を有効化し、更新/不整合位置管理表222を参照して、LU261とLU262で内容が一致しない部分をLU261からLU262にコピーする(ステップ3008)。次に、スナップショット管理プログラム221は、ミラー再同期サブプログラム232を無効化し(3009)、ModeSelectコマンドの終了ステータスをコンピュータ100のバックアッププログラム127に送信する(ステップ3010)。バックアッププログラム127は、ModeSelectコマンドの終了ステータスを受信し動作を終了する(ステップ2005)。
【0037】
ここで、ステップ3008でLU261からLU262へのデータコピーを行うミラー再同期サブプログラム232の動作を図4のフローチャートを用いて説明する。まず、ミラー再同期サブプログラム232が、更新/不整合位置管理表222の更新ビットに更新記録として1があるかどうかを調べる(ステップ1001)。もし、更新記録である1がなければミラー再同期化が完了したので処理を終了する(ステップ1002)。更新記録があれば、該当記録位置の更新を抑止し(ステップ1003)、該当記録位置のデータを
ミラー元LUであるLU261からミラー先LUであるLU262にコピーする(ステップ1004)。データのコピーは、LU261を含むディスク群251のディスク271〜275のいずれかにREADコマンドを発行して指定したLBAのデータを読み出し、LU262を含むディスク群252のうちディスク群251のREADコマンドを発行したディスクに対応するディスク281〜285のいずれかにWRITEコマンドを発行してLU261に指定したLBAと同じLBAに読み出したデータを書きこむことで実施する。データのコピーは、COPYコマンドを用いてもよい。次に、ミラー再同期サブプログラム232は、該当記録位置の更新抑止を解除し(ステップ1005)、更新/不整合位置管理表222の該当する更新ビットに0を設定して更新記録を削除し(ステップ1006)、ステップ1001に戻る。
【0038】
以上が、スナップショット取得/削除時におけるバックアッププログラム127とスナップショット管理プログラム221の動作である。コンピュータ100のバックアッププログラム127は、ステップ2003〜ステップ2004の間でスナップショットを取得したLU262の読み出しを行うことができる。
【0039】
(3)ディスク障害復旧方法
本発明では、障害ディスクを交換して新しくセットしたディスクに対するパリティ再構築を、パリティの冗長性を利用して行うことに代えて、ミラー化された対となるディスクからコピーすることで行う。対となるディスクとは、例えば、図1のディスク271〜275とディスク281〜285がこの順番でディスク群を形成していると想定するとディスク271とディスク281の関係が該当する。
【0040】
本実施形態では、障害ディスクを交換した後のパリティ再構築について、スナップショット取得/削除動作のどの段階で行ったかにより、ミラーフェーズ、非ミラーフェーズ、再同期化フェーズの3フェーズに分けて説明する。非ミラーフェーズは、ミラー化がされていない図3のステップ3002開始からステップ3007終了までとする。再同期化フェーズは、更新されたデータをミラー元LUからミラー先LUにコピーしている図3のステップ3008開始からステップ3009終了までとする。ミラーフェーズは、ミラー化されている段階とし、非ミラーフェーズと再同期化フェーズ以外の全範囲とする。
【0041】
また、各フェーズの間に、ミラー元LUとミラー先LUのどちらのディスクを交換したかについても場合分けする。
【0042】
なお、障害ディスクを交換した後のパリティ再構築は、ディスクアレイ200のスナップショット管理プログラム221がディスク障害復旧サブプログラム233を有効化することによって行い、コンピュータ100からの指示とは独立して実施することができる。
【0043】
(3−1)ミラーフェーズ
ミラーフェーズにおけるディスク障害復旧サブプログラム233の動作を図5のフローチャートを用いて説明する。ミラーフェーズにおいては、ミラー元LUとミラー先LUの内容が同じであり、ミラー元LUとミラー先LUのどちらのディスクを交換した場合でもディスク障害復旧サブプログラム233の動作が同じであるので、ミラー先LUのディスクを交換した場合を例にとる。ここで、障害で交換したディスクを図1のミラー先LUであるディスク群252のディスク281と想定する。ミラー化されている場合は、ミラー元LUであるディスク群251のディスク271と同じデータがディスク281に格納されることになる。まず、ディスクが交換されると、ディスク障害復旧サブプログラム233が、交換したディスク281に対応する更新/不整合位置管理表222のミラー先不整合ビットをすべて1に設定する(ステップ4001)。次に、ディスク障害復旧サブプログラム233は、更新/不整合位置管理表222のミラー先不整合ビットに不整合記録として1があるかどうかを調べる(ステップ4002)。もし、不整合記録である1がなければディスク281の障害復旧が完了しディスク群252のパリティは整合性がとれたので処理を終了する(ステップ4003)。不整合記録があれば、該当記録位置の更新を抑止し(ステップ4004)、更新/不整合位置管理表222のミラー元不整合ビットに不整合記録として1があるかどうかを調べる(ステップ4005)。もし、不整合記録である1がなければミラー元LUのパリティ整合性はとれているので、該当位置のデータをディスク271からディスク281にコピーする(ステップ4007)。不整合記録である1があればミラー元LUも障害復旧中でありパリティの整合性はとれていないので、ディスク281と同一ディスク群252の他のディスク282〜285からデータを読み出しパリティ演算によってデータを復元し、ディスク281の該当位置に書き込む(ステップ4006)。ステップ4007、または、ステップ4006終了後、ディスク障害復旧サブプログラム233は、更新/不整合位置管理表222のディスク281に該当する不整合ビットを0に設定して不整合記録を削除し(ステップ4008)、該当記録位置の更新抑止を解除し(ステップ4009)、ステップ4002に戻る。
【0044】
以上が、ミラーフェーズにおけるディスク障害復旧サブプログラム233の動作である。
【0045】
なお、ステップ4007におけるデータのコピーは、ディスク271にREADコマンドを発行して指定したLBAのデータを読み出し、ディスク281にWRITEコマンドを発行してディスク271に指定したLBAと同じLBAに読み出したデータを書きこむことで実施する。データのコピーは、COPYコマンドを用いてもよい。
【0046】
スナップショット管理プログラム221は、ディスク障害復旧サブプログラム233動作中にコンピュータ100からデータ更新要求が来た場合、ミラー元LUとミラー先LUの両方に反映させるものとし、交換したディスクの不整合ビットを0にする。また、コンピュータ100からデータ読み出し要求が来た場合は、不整合ビットが0であるLUからデータを読み出す。両方のLUの不整合ビットが1である場合は、交換したディスク以外の全ディスクからデータを読み出しパリティ演算によって要求されたデータを復元し、コンピュータ100に送信する。
【0047】
(3−2)非ミラーフェーズ
非ミラーフェーズにおけるディスク障害復旧サブプログラム233の動作を図6のフローチャートを用いて説明する。非ミラーフェーズにおいては、ミラー元LUとミラー先LUの内容は一致していないが、ミラー元LUとミラー先LUのどちらのディスクを交換した場合でもディスク障害復旧サブプログラム233の動作が同じであるので、ミラー元LUのディスクを交換した場合を例にとる。ここで、障害で交換したディスクを図1のミラー元LUであるディスク群251のディスク271と想定する。
【0048】
まず、ディスクが交換されると、ディスク障害復旧サブプログラム233が、交換したディスク271に対応する更新/不整合位置管理表222のミラー元不整合ビットをすべて1に設定する(ステップ5001)。次に、ディスク障害復旧サブプログラム233は、更新/不整合位置管理表222のミラー元不整合ビットに不整合記録として1があるかどうかを調べる(ステップ5002)。もし、不整合記録である1がなければディスク271の障害復旧が完了しディスク群251のパリティは整合性がとれたので処理を終了する(ステップ5003)。不整合記録があれば、該当記録位置の更新を抑止し(ステップ5004)、更新/不整合位置管理表222のミラー先不整合ビットに不整合記録として1があるかどうかを調べる(ステップ5005)。もし、不整合記録である1があればミラー先LUも障害復旧中でありパリティの整合性はとれていないので、ディスク271と同一ディスク群251の他のディスク272〜275からデータを読み出しパリティ演算によってデータを復元し、ディスク271の該当位置に書き込む(ステップ5006)。もし、不整合記録である1がなければ、更新/不整合位置管理表222の該当する更新ビットに更新記録として1があるかどうかを調べる(ステップ5007)。もし、更新記録である1があれば、該当位置のディスク271とディスク281のデータは異なるので、ディスク障害復旧サブプログラム233はディスク271と同一ディスク群251の他のディスク272〜275からデータを読み出しパリティ演算によってデータを復元し、ディスク271の該当位置に書き込む(ステップ5006)。もし、更新記録である1がなければ、該当位置のディスク271とディスク281のデータは同一となるべきなので、該当位置のデータをディスク281からディスク271にコピーする(ステップ5008)。
【0049】
ステップ5006、または、ステップ5008終了後、ディスク障害復旧サブプログラム233は、更新/不整合位置管理表222のディスク271に該当する不整合ビットを0に設定して不整合記録を削除し(ステップ5009)、該当記録位置の更新抑止を解除し(ステップ5010)、ステップ5002に戻る。以上が、非ミラーフェーズにおけるディスク障害復旧サブプログラム233の動作である。
【0050】
なお、ステップ5008におけるデータのコピーは、ディスク281にREADコマンドを発行して指定したLBAのデータを読み出し、ディスク271にWRITEコマンドを発行してディスク281に指定したLBAと同じLBAに読み出したデータを書きこむことで実施する。データのコピーは、COPYコマンドを用いてもよい。
【0051】
スナップショット管理プログラム221は、ディスク障害復旧サブプログラム233動作中にコンピュータ100からデータ読み出し要求が来た場合、通常はミラー元LUからデータを読み出すが、更新ビットが0、ミラー先不整合ビットが0であるLBAセットに関してはミラー先LUから読み出してもよい。
【0052】
(3−3)再同期化フェーズ(ミラー先LU復旧)
再同期化フェーズにおけるミラー先LUに関わるディスク障害復旧サブプログラム233の動作を図7のフローチャートを用いて説明する。ここで、障害で交換したディスクを図1のミラー先LUであるディスク群252のディスク281と想定する。
【0053】
まず、ディスクが交換されると、ディスク障害復旧サブプログラム233が、交換したディスク281に対応する更新/不整合位置管理表222のミラー先不整合ビットをすべて1に設定する(ステップ6001)。次に、ディスク障害復旧サブプログラム233は、更新/不整合位置管理表222のミラー先不整合ビットに不整合記録として1があるかどうかを調べる(ステップ6002)。もし、不整合記録である1がなければディスク281の障害復旧が完了しディスク群252のパリティは整合性がとれたので処理を終了する(ステップ6003)。不整合記録があれば、該当記録位置の更新を抑止し(ステップ6004)、更新/不整合位置管理表222のミラー元不整合ビットに不整合記録として1があるかどうかを調べる(ステップ6005)。もし、不整合記録である1がなければミラー元LUのパリティ整合性はとれているので、該当位置のデータをディスク271からディスク281にコピーし(ステップ6007)、更新/不整合位置管理表222の該当する更新ビットに0を設定して更新の有無にかかわらず更新記録を削除する(ステップ6008)。もし、不整合記録である1があればミラー元LUも障害復旧中でありパリティの整合性はとれていないので、ディスク281と同一ディスク群252の他のディスク282〜285からデータを読み出しパリティ演算によってデータを復元し、ディスク281の該当位置に書き込む(ステップ6006)。ステップ6008、または、ステップ6006終了後、ディスク障害復旧サブプログラム233は、更新/不整合位置管理表222のディスク281に該当する不整合ビットを0に設定して不整合記録を削除し(ステップ6006)、該当記録位置の更新抑止を解除し(ステップ6010)、ステップ6002に戻る。
【0054】
以上が、再同期化フェーズにおけるミラー先LUに関わるディスク障害復旧サブプログラム233の動作である。
【0055】
なお、ステップ6007におけるデータのコピーは、ディスク271にREADコマンドを発行して指定したLBAのデータを読み出し、ディスク281にWRITEコマンドを発行してディスク271に指定したLBAと同じLBAに読み出したデータを書きこむことで実施する。データのコピーは、COPYコマンドを用いてもよい。
【0056】
(3−4)再同期化フェーズ(ミラー元LU復旧)
再同期化フェーズにおけるミラー元LUに関わるディスク障害復旧サブプログラム233の動作を図8のフローチャートを用いて説明する。ここで、障害で交換したディスクを図1のミラー元LUであるディスク群251のディスク271と想定する。
【0057】
まず、ディスクが交換されると、ディスク障害復旧サブプログラム233が、交換したディスク271に対応する更新/不整合位置管理表222のミラー元不整合ビットをすべて1に設定する(ステップ7001)。次に、ディスク障害復旧サブプログラム233は、更新/不整合位置管理表222のミラー元不整合ビットに不整合記録として1があるかどうかを調べる(ステップ7002)。もし、不整合記録である1がなければディスク271の障害復旧が完了しディスク群251のパリティは整合性がとれたので処理を終了する(ステップ7003)。不整合記録があれば、該当記録位置の更新を抑止し(ステップ7004)、更新/不整合位置管理表222のミラー先不整合ビットに不整合記録として1があるかどうかを調べる(ステップ7005)。もし、不整合記録である1があればミラー先LUも障害復旧中でありパリティの整合性はとれていないので、ディスク271と同一ディスク群251の他のディスク272〜275からデータを読み出しパリティ演算によってデータを復元し、ディスク271の該当位置に書き込む(ステップ7006)。もし、不整合記録である1がなければ、更新/不整合位置管理表222の該当する更新ビットに更新記録として1があるかどうかを調べる(ステップ7007)。もし、更新記録である1があれば、該当位置のディスク271とディスク281のデータは異なるので、ディスク障害復旧サブプログラム233はディスク271と同一ディスク群251の他のディスク272〜275からデータを読み出しパリティ演算によってデータを復元し、ディスク271の該当位置に書き込む(ステップ7006)。もし、更新記録である1がなければ、該当位置のディスク271とディスク281のデータは同一でよいので、該当位置のデータをディスク281からディスク271にコピーする(ステップ7008)。
【0058】
ステップ7006、または、ステップ7008終了後、ディスク障害復旧サブプログラム233は、更新/不整合位置管理表222のディスク271に該当する不整合ビットを0に設定して不整合記録を削除し(ステップ7009)、該当記録位置の更新抑止を解除し(ステップ7010)、ステップ7002に戻る。以上が、再同期化フェーズにおけるミラー元LUに関わるディスク障害復旧サブプログラム233の動作である。
【0059】
なお、ステップ7008におけるデータのコピーは、ディスク281にREADコマンドを発行して指定したLBAのデータを読み出し、ディスク271にWRITEコマンドを発行してディスク281に指定したLBAと同じLBAに読み出したデータを書きこむことで実施する。データのコピーは、COPYコマンドを用いてもよい。
【0060】
スナップショット管理プログラム221は、ディスク障害復旧サブプログラム233動作中にコンピュータ100からデータ読み出し要求が来た場合、通常はミラー元LUからデータを読み出すが、更新ビットが0、ミラー先不整合ビットが0であるLBAセットに関してはミラー先LUから読み出してもよい。
【0061】
(4)データ読み出しと書きこみ、および、スナップショット読み出しの際のコンピュータ動作
まず、コンピュータ100が、ディスクアレイ200にあるLU261のデータにアクセスする場合のデータベースプログラム126の動作を説明する。データベースプログラム126は、スナップショット取得の有無に関係なく、同じ動作を行う。
【0062】
データベースプログラム126がLU261のデータを読み出す場合、データベースプログラム126はディスクアレイ200に対し、LU261のデータを読み出すREADコマンドを発行する。最後に、データベースプログラム126は、ディスクアレイ200からデータとステータスを受信し動作を終了する。また、データベースプログラム126がLU261にデータを書きこむ場合、データベースプログラム126はディスクアレイ200に対し、LU261にデータを書きこむWRITEコマンドを発行し、データを送信する。最後に、データベースプログラム126は、ディスクアレイ200からステータスを受信し動作を終了する。
【0063】
次に、コンピュータ100が、ディスクアレイ200にあるLU261のスナップショットを読み出す場合のバックアッププログラム127の動作を説明する。
【0064】
バックアッププログラム127がLU261のスナップショットを読み出す場合、バックアッププログラム127はディスクアレイ200に対し、LU261のミラー先LUであるLU262のデータを読み出すREADコマンドを発行する。最後に、バックアッププログラム127は、ディスクアレイ200からデータとステータスを受信し動作を終了する。
【0065】
(5)データ読み出しと書きこみ、および、スナップショット読み出しの際のディスクアレイ動作
まず、コンピュータ100が、ディスクアレイ200にあるLU261のデータにアクセスする場合のスナップショット管理プログラム221の動作を説明する。
【0066】
コンピュータ100がLU261のデータを読み出す場合、スナップショット管理プログラム221がLU261に対するREADコマンドを受信する。次に、LUミラーサブプログラム231が有効で、かつ、ミラー再同期サブプログラム232による更新部分のコピーが終了していれば、LU261、もしくは、ミラー先LUであるLU262からデータを読み出す。そうでなければ、LU261からデータを読み出す。最後に、読み出したデータとステータスをコンピュータ100に送信する。LU261とミラー先LUであるLU262の内容が一致している場合は、両者のいずれかからデータを読み出すことにより負荷を分散させることができる。
【0067】
コンピュータ100がLU261にデータを書きこみ記憶内容を更新する場合、スナップショット管理プログラム221がLU261に対するWRITEコマンドとデータを受信する。次に、LUミラーサブプログラム231が有効であればLU261とミラー先LUであるLU262にデータを書きこみ、無効であればLU261にデータを書きこむ。次に、非ミラー時更新監視サブプログラム234と非ミラー時更新位置管理サブプログラム235が有効であれば、LU261の更新/不整合位置管理表222に対して更新したLBAを含むLBAセットの更新ビットを1に設定し、無効であれば何もしない。最後に、ステータスをコンピュータ100に送信する。
【0068】
次に、コンピュータ100が、ディスクアレイ200にあるLU261のスナップショットを読み出す場合のスナップショット管理プログラム221の動作を説明する。
【0069】
コンピュータ100がLU261のスナップショットを読み出す場合、スナップショット管理プログラム221がLU261のミラー先LUであるLU262に対するREADコマンドを受信する。次に、スナップショット管理プログラム221は、ミラー先LUであるLU262からデータを読み出す。最後に、読み出したデータとステータスをコンピュータ100に送信する。
【0070】
なお、ミラー再同期サブプログラム232による更新部分のコピー中は、コピー処理とコンピュータ100によるLU261へのデータアクセス処理が同じLU261に集中するため、データアクセス性能が低下する。
【0071】
(6)効果
本実施形態によれば、スナップショット取得のために二重化運用しているディスクアレイにおいて、ディスク交換後のパリティ再構築に関わるディスクアクセス回数を削減することで、通常アクセス性能の低下を抑止することができるという効果がある。
【0072】
また、本実施形態によれば、二重化を停止している期間におけるディスク交換後のパリティ再構築時間を短縮することで、ミラー再同期化中の更新データのコピー量を削減し、性能が低下するミラー再同期化時間を短縮できるという効果がある。
【0073】
たとえば、RAID5の5D+1Pの構成を想定し、ミラーフェーズにおいてディスク障害を復旧する場合、パリティの冗長性によるディスク復旧をした場合、4回のディスク読み出しと1回のディスク書き込みが発生する。本発明を適用することで、1回のディスク読み出しと1回のディスク書き込みにすることができ、通常のアクセス性能の低下を抑止できる。非ミラーフェーズにおいても同様のディスクアクセス回数の削減効果が期待でき、スナップショットを取得してバックアップ等をとる際の読み出し性能低下を抑止でき、読み出し時間の増加も抑止できることから二重化停止時間、および、性能が低下するミラー再同期化時間を短縮できる。
【0074】
また、ディスク交換後のパリティ再構築に関わるディスクアクセス回数を削減することで、パリティグループを形成するRAID5などのディスク構成を表すnD+1Pでのデータドライブ数nの増加による性能低下を抑止できるという効果がある。nD+1Pの場合、パリティの冗長性によるディスク復旧をした場合、n回のディスク読み出しと1回のディスク書き込みが発生する。本発明を適用することで、1回のディスク読み出しと1回のディスク書き込みにすることができる。
【0075】
なお、本発明ではコンピュータ100とディスクアレイ200を接続するインターフェースをSCSIバス300としたが、FibreChannel等の他のインターフェースであってもよい。
【0076】
また、本実施形態では、スナップショット取得のためミラー元LUとミラー先LUで二重化しているが、ミラー先LUを複数設けた多重ミラーにおいても本発明は適用可能である。この場合、更新/不整合位置管理表222のミラー先不整合ビットをミラー先LU分だけ設け、ディスク障害復旧サブプログラム233がそれぞれのミラー先LUとミラー元LUに対し二重化の場合と同様の動作をし、LUミラーサブプログラム231がミラー元
LUに対するアクセスを複数のミラー先LUに多重化する動作をすればよい。
【0077】
【発明の効果】
以上述べたように、本発明によれば、スナップショット取得のために二重化運用しているディスクアレイにおいて、ディスク交換後のパリティ再構築に関わるディスクアクセス回数を削減することで、通常アクセス性能の低下を抑止することができるという効果がある。
【0078】
また、本実施形態によれば、二重化を停止している期間におけるディスク交換後のパリティ再構築時間を短縮することで、ミラー再同期化中の更新データのコピー量を削減し、性能が低下するミラー再同期化時間を短縮できるという効果がある。
【0079】
また、ディスク交換後のパリティ再構築に関わるディスクアクセス回数を削減することで、パリティグループを形成するRAID5などのディスク構成を表すnD+1Pでのデータドライブ数nの増加による性能低下を抑止できるという効果がある。
【図面の簡単な説明】
【図1】第1の実施形態におけるシステム構成図である。
【図2】第1の実施形態における更新/不整合位置管理表の説明図である。
【図3】第1の実施形態におけるスナップショット取得/削除フローである。
【図4】第1の実施形態におけるミラー再同期サブプログラムの動作フローである。
【図5】第1の実施形態におけるミラーフェーズのディスク障害復旧サブプログラム動作フローである。
【図6】第1の実施形態における非ミラーフェーズのディスク障害復旧サブプログラム動作フローである。
【図7】第1の実施形態における再同期化フェーズのミラー先LU復旧に関わるディスク障害復旧サブプログラム動作フローである。
【図8】第1の実施形態における再同期化フェーズのミラー元LU復旧に関わるディスク障害復旧サブプログラム動作フローである。
【符号の説明】
100…コンピュータ、200…ディスクアレイ、221…スナップショット管理プログラム、222…更新/不整合位置管理表、233…ディスク障害復旧サブプログラム、271〜275、281〜285…ディスク。
[0001]
BACKGROUND OF THE INVENTION
The present invention mainly relates to a disk failure recovery method in an external storage system of a computer.
[0002]
[Prior art]
(1) Disk failure recovery method for disk array
The disk array system, also called RAID (Redundant Arrays of Inexpensive Disks), has a configuration in which a plurality of disk devices are arranged in an array, and a read request (data read request) from a host device (hereinafter abbreviated as a host). And a write device (data write request) that is processed at a high speed by the parallel operation of the disk device, and the reliability is improved by adding redundant data to the data. Disk array systems are classified into five levels according to the type and configuration of redundant data (Paper: "A Case for Redundant Arrays of Inexpensive Disks (RAID)", David A. Patterson, Garth Gibson, and Randy H. Katz. , Computer Science Division Department of Electrical Engineering and Computer Sciences, University of California Berkeley).
[0003]
In order to realize the disk array as described above, a read / write request from the host is converted into a read / write request to each disk device, data is distributed to each disk device at the time of writing, and each disk device at the time of reading. It is necessary to perform data distribution / set control that collects data from Such control is called disk array control.
[0004]
In the RAID 5 level, for example, where parity is added in the disk array, the contents of the disk can be recovered by guaranteeing parity with other disks even if one disk fails. When recovering a disk, the failed disk is replaced, data is read from the other disks constituting the parity group, subjected to XOR operation (exclusive OR), and the operation result is written to the replaced disk.
[0005]
(2) Duplication for snapshots
In general, data recorded on an external storage device of a computer such as a hard disk is regularly copied to tape so that the lost data can be recovered if the data is lost due to a device failure, software defect or incorrect operation. Backup is required. At this time, if the data is updated during the copying operation and the data is inconsistent, it does not make sense as a backup. Therefore, it is necessary to guarantee the data consistency during the copying operation.
[0006]
In order to guarantee the consistency of the data to be backed up, a program other than the backup program that accesses the data may be stopped. However, in a system that requires high availability, the program cannot be stopped for a long time. Therefore, it is necessary to provide a mechanism for creating a storage image of data at the start of backup without preventing the program from updating data during backup. Here, a storage image of data at a certain time point is called a snapshot, and a mechanism that provides a state in which data can be updated while creating a snapshot at a specified time point is called a snapshot management method. In addition, creating a snapshot by the snapshot management method is called snapshot acquisition, and the data for which the snapshot is acquired is called original data. Also, quitting the state in which the snapshot has been created is called snapshot deletion.
[0007]
One conventional snapshot management method is a data duplication method.
[0008]
In this method, in a normal state where a snapshot is not acquired, a program on a computer duplexes (mirrors) all data in two storage areas. When a snapshot is acquired, duplication is stopped, the two storage areas are separated into independent areas, one area is provided as original data, and the other area is provided as a snapshot.
[0009]
While the snapshot is acquired and duplication is stopped, updating of the data in the storage area of the original data is permitted, and when the data update occurs, the updated position is recorded. When the snapshot was deleted, data duplication was resumed, and update data whose contents did not match between the two storage areas were provided as a snapshot from the storage area of the original data based on the record of the update position Copy to storage area (mirror resynchronization). A method of duplicating data by a program on a computer is shown in US Pat. No. 5,051,887, for example.
[0010]
[Problems to be solved by the invention]
At the time of parity reconstruction after disk replacement, there is a problem in that normal access performance deteriorates because it is necessary to read data from all disks in the same parity group other than the replaced disk. Further, in nD + 1P representing a configuration such as RAID 5 forming a parity group, there is a problem that the performance is further deteriorated when the number n of data drives is increased.
[0011]
In the snapshot management method based on data duplication, during mirror resynchronization, normal access for updating / referencing and copy access for updated data are concentrated in the storage area of the original data, and the performance of normal access deteriorates. Since the time required for mirror resynchronization is proportional to the amount of data updated while taking a snapshot and stopping duplexing, assuming that update access occurs the same number of times per unit time, mirror resynchronization The time required for conversion increases in proportion to the stoppage time of duplexing. When backup is performed in parallel with parity reconstruction after disk replacement, it takes a long time to stop the duplication after taking a snapshot, resulting in longer mirror resynchronization time, which reduces normal access performance. is there.
[0012]
A first object of the present invention is to provide a disk failure recovery method that suppresses a decrease in normal access performance at the time of parity reconstruction after disk replacement in a disk array that is duplicated for snapshot acquisition. .
[0013]
The second object of the present invention is to perform mirror resynchronization by shortening the parity rebuilding time after disk replacement in a period when the duplexing is stopped in a disk array that is duplexed for snapshot acquisition. It is to provide a disk failure recovery method that reduces the amount of copy of update data in the disk and shortens the mirror resynchronization time when the performance deteriorates.
[0014]
In addition to the first and second objects, the third object of the present invention is a disk failure recovery which suppresses performance degradation due to an increase in the number of data drives n in nD + 1P representing a disk configuration such as RAID 5 forming a parity group Is to provide a method.
[0015]
[Means for Solving the Problems]
In order to achieve the first object, the present invention replaces parity rebuilding performed at the time of recovery of a failed disk with parity generation using parity redundancy in a disk array that is duplicated for snapshot acquisition. Thus, a disk failure recovery subprogram that is implemented by copying data from a disk at the same position in the snapshot mirror configuration is provided. By reducing the number of disk accesses related to parity reconstruction after disk replacement, it is possible to suppress a decrease in normal access performance.
[0016]
In order to achieve the second object, according to the present invention, a disk failure recovery subprogram similar to the above is provided in a disk array that is duplicated for snapshot acquisition. By shortening the parity rebuild time after disk replacement in the period when duplexing is stopped, the copy amount of update data during mirror resynchronization is reduced, and the mirror resynchronization time when performance is degraded is shortened. Can do.
[0017]
In order to achieve the second object, according to the present invention, a disk failure recovery subprogram similar to the above is provided in a disk array that is duplicated for snapshot acquisition. In nD + 1P representing a disk configuration such as RAID 5 that forms a parity group, copying is performed from one disk regardless of the number of n, so that a decrease in performance due to an increase in the number of data drives n can be suppressed.
[0018]
DETAILED DESCRIPTION OF THE INVENTION
The first embodiment of the present invention suppresses a decrease in normal access performance by reducing the number of disk accesses related to parity reconstruction after disk replacement in a disk array that is duplicated for snapshot acquisition. Is to do.
[0019]
In addition, by shortening the parity rebuild time after disk replacement during the period when duplexing is stopped, the amount of update data copied during mirror resynchronization is reduced, and the mirror resynchronization time when performance is degraded is shortened. Is to do.
[0020]
Also, by reducing the number of disk accesses related to parity reconstruction after disk replacement, it is possible to suppress performance degradation due to an increase in the number n of data drives in nD + 1P representing a disk configuration such as RAID 5 forming a parity group It is.
[0021]
In the present invention, a backup is taken as an example of using a snapshot, but it can also be used for other purposes such as OLAP (OnLine Analytical Processing) and system testing.
[0022]
(1) Description of configuration
The system configuration of the first embodiment of the present invention will be described with reference to FIG. In FIG. 1, a computer 100 and a disk array 200 are connected by a SCSI bus 300 via SCSI interfaces 140 and 240. The memory 120 of the computer 100 includes a database program 126 and a backup program 127 that are executed by the CPU 110 that controls the computer 100. The disk array 200 includes disk groups 251 to 252 controlled by the disk controller 250, and a snapshot management program 221 is stored in the memory 220 and is executed by the CPU 210. The disk group 251 has disks 271 to 275, the disk group 252 has disks 281 to 282, and each disk group has a striped array configuration with parity. In the present embodiment, the number of disks in the disk groups 251 to 252 is five, but each disk group 251 to 252 only needs to be composed of three or more disks.
[0023]
Storage areas in the disk groups 251 to 252 are accessed from the computer 100 as LUs (Logical Units) which are SCSI logical units. The storage areas corresponding to the disk groups 251 to 252 are referred to as LUs 261 to 262, respectively. There may be a plurality of LUs in each of the disk groups 251 to 252. In this embodiment, the snapshot management program 221 in the disk array 220 manages the LU 261 and LU 262 by duplicating the LU 261 as a mirror source LU having original data, and the LU 262 is a mirror destination LU which is a mirror of the original data. And The LU 262 is an LU used as a snapshot.
[0024]
Next, a program in the computer 100 will be described.
[0025]
The database program 126 has a function of accessing the LU 261 that is the mirror source LU during execution and switching to a backup mode that controls data update and ensures data consistency in the LU 261. Transition to the backup mode is made in accordance with an instruction from the user or the backup program 127. The backup program 127 has a function of reading data to be backed up to a tape or the like from the LU 262 storing a snapshot according to an instruction from the user, a function of issuing a SCSI ModeSelect command to the disk array 200, and a backup mode to the database program 126. It has a function to instruct to enable / disable.
[0026]
Next, programs and management tables in the disk array 200 will be described.
[0027]
The snapshot management program 221 of the disk array 200 has a disk access subprogram 230 for instructing disk access to the disk controller 250 in response to a request from the computer 100 and another update designated in advance by duplicating updates to one LU. This also applies to LUs, and has an LU mirror subprogram 231 that writes the same contents to two LUs. The disk access subprogram 230 performs disk array control for converting read / write requests from the computer 100 into read / write requests to the disks 271 to 275 and 281 to 285. The LU mirror subprogram 231 duplicates access to the LU 261 to the LU 262.
[0028]
The snapshot management program 221 also includes a non-mirror time update monitoring subprogram 234 that detects an update to the mirror source LU when duplexing is stopped (non-mirror time), and an update / inconsistency whose update position will be described later. Non-mirrored update location management subprogram 235 recorded in the location management table 222, mirror resynchronization subprogram 232 for copying the update part of the mirror source LU to the mirror destination LU when mirror resynchronization is performed, and the failed disk And a disk failure recovery subprogram 233 for recovering to a striped array configuration with parity after replacement. The update / inconsistency position management table 222 is used to manage the data contents of the mirror source LU and the mirror destination LU. The update position of the mirror source LU updated at the time of non-mirror and the same LU in the replaced disk after the disk failure The position at which the parity is inconsistent is recorded.
[0029]
The update / inconsistency position management table 222 is a bitmap as shown in FIG. 2 and includes all LBA set numbers in the mirror source LU, update bits associated with the LBA set numbers, mirror source inconsistency bits, and mirror destinations. Consists of inconsistent bits. An LBA set is an individual set when the entire area of an LU is divided from the top in units of one or more equal numbers of LBAs (Logical Block Address), and the LBA set number is the top of the LBA. A serial number is assigned to each LBA set from the side.
[0030]
It is assumed that one LBA set is distributed to each disk from the head side by data distribution of the disk array, and a parity group number is added to a set of LBA sets at the same position in each disk. In the example of FIG. 2, the parity group number 0 is composed of LBA set numbers 0 to 4. In this embodiment, data distribution is performed for five disks, and a disk set number representing a set of LBA sets for each disk is added. In the example of FIG. 2, the disk set 0 is configured with LBA set numbers 0, 5, 10, and 15.
[0031]
The update bit indicates whether or not the LBA set of the mirror source LU has been updated at the time of non-mirroring, and designates 1 and 0 according to “update” and “non-update”, respectively. The initial value of the update bit is 0. The example of FIG. 2 shows a state in which only the area of LBA set number 1 is updated at the time of non-mirroring.
[0032]
The mirror source inconsistency bit indicates whether or not the parity is consistent with other disks in the same LU when the mirror source LU is exchanged, and is 1 and 0 in accordance with “inconsistency” and “match”, respectively. Is specified. The formula setting value of the mirror source mismatch bit is 0.
[0033]
The mirror destination inconsistency bit indicates whether the parity is consistent with other disks in the same LU when the mirror destination LU is exchanged, and is 1 or 0 in accordance with “inconsistency” or “match”, respectively. Is specified. The setting value of the mirror destination mismatch bit is 0. The example of FIG. 2 shows a state in which the area of the disk set 0 with the parity group numbers 1 to 3 is in a parity mismatch with other disks in the mirror destination LU. The area of disk set 0 with parity group number 0 indicates that parity consistency with other disks is achieved by a disk failure recovery method described later.
[0034]
(2) Snapshot acquisition / deletion
Taking the case of providing a snapshot of LU 261 as a mirror source LU as LU 262 as a mirror destination LU as an example, the operations of backup program 127 and snapshot management program 221 at the time of snapshot acquisition / deletion will be described with reference to the flowchart of FIG. explain.
[0035]
First, the backup program 127 of the computer 100 gives an instruction to the database program 126, and validates the backup mode to guarantee the consistency of the data for acquiring the snapshot (step 2000). Next, the backup program 127 issues a ModeSelect command for acquiring a snapshot to the disk array 200 (step 2001). Upon receipt of the ModeSelect command (step 3000), the snapshot management program 221 of the disk array 200 enables the non-mirror update monitoring subprogram 234 and the non-mirror update location management subprogram 235, and starts recording the update location of the LU 261. (Step 3001). Thereafter, when the LU 261 is updated, 1 is set in the update bit of the LBA set including the updated LBA in the update / inconsistent position management table 222, and the fact that there has been an update is recorded. Next, the snapshot management program 221 invalidates the LU mirror subprogram 231 and stops duplication of the LU 261 and LU 262 (step 3002). As a result, the update to the LU 261 that is the mirror source LU is not reflected in the LU 262 that is the mirror destination LU. Next, the snapshot management program 221 transmits the completion status of the ModeSelect command to the backup program 127 of the computer 100 (step 3003). When the backup program 127 receives the completion status of the ModeSelect command (step 2002), it gives an instruction to the database program 126 and invalidates the backup mode (step 2003).
[0036]
Next, the backup program 127 issues a ModeSelect command that instructs the LU 263 to delete the snapshot to the disk array 200 (step 2004). When receiving the ModeSelect command (step 3005), the snapshot management program 221 of the disk array 200 validates the LU mirror subprogram 231 and resumes duplication of the LU 261 and LU 262 (step 3006). Thereby, the update to the LU 261 is reflected in the LU 262. Next, the snapshot management program 221 invalidates the non-mirror time update monitoring subprogram 234 and the non-mirror time update position management subprogram 235, and stops the LU 261 update position recording (step 3007). Thereafter, the update bit in the update / inconsistent position management table 222 is not changed by the non-mirrored update position management subprogram 235. Next, the snapshot management program 221 activates the mirror resynchronization subprogram 232, refers to the update / inconsistency position management table 222, and copies the portion where the contents do not match between the LU 261 and LU 262 from the LU 261 to the LU 262 ( Step 3008). Next, the snapshot management program 221 invalidates the mirror resynchronization subprogram 232 (3009), and transmits the completion status of the ModeSelect command to the backup program 127 of the computer 100 (step 3010). The backup program 127 receives the end status of the ModeSelect command and ends the operation (step 2005).
[0037]
Here, the operation of the mirror resynchronization subprogram 232 for copying data from the LU 261 to the LU 262 in step 3008 will be described with reference to the flowchart of FIG. First, the mirror resynchronization subprogram 232 checks whether there is 1 as an update record in the update bit of the update / mismatch position management table 222 (step 1001). If there is no update record 1, mirror resynchronization is complete and the process ends (step 1002). If there is an update record, the update of the corresponding recording position is suppressed (step 1003), and the data of the corresponding recording position is stored.
Copying from the LU 261 that is the mirror source LU to the LU 262 that is the mirror destination LU (step 1004). Data is copied by issuing a READ command to one of the disks 271 to 275 of the disk group 251 including the LU 261 to read the specified LBA data, and issuing a READ command for the disk group 251 of the disk group 252 including the LU 262. The WRITE command is issued to any of the disks 281 to 285 corresponding to the selected disk, and the read data is written in the same LBA as the LBA designated in the LU 261. The COPY command may be used to copy the data. Next, the mirror resynchronization subprogram 232 cancels the update suppression of the corresponding recording position (step 1005), sets the corresponding update bit of the update / inconsistent position management table 222 to 0 and deletes the update record ( Step 1006) and return to Step 1001.
[0038]
The above is the operation of the backup program 127 and the snapshot management program 221 when acquiring / deleting a snapshot. The backup program 127 of the computer 100 can read the LU 262 that acquired the snapshot between step 2003 and step 2004.
[0039]
(3) Disk failure recovery method
In the present invention, parity reconstruction for a newly set disk by replacing a failed disk is performed by copying from a mirrored paired disk instead of using parity redundancy. The pair of disks corresponds to the relationship between the disk 271 and the disk 281 assuming that the disks 271 to 275 and the disks 281 to 285 in FIG. 1 form a disk group in this order, for example.
[0040]
In the present embodiment, parity reconstruction after replacing a failed disk will be described in three phases: a mirror phase, a non-mirror phase, and a resynchronization phase, depending on which stage of the snapshot acquisition / deletion operation is performed. . The non-mirror phase is from the start of step 3002 to the end of step 3007 in FIG. The resynchronization phase is from the start of step 3008 to the end of step 3009 in FIG. 3 in which the updated data is copied from the mirror source LU to the mirror destination LU. The mirror phase is the stage where it is mirrored, and the entire range other than the non-mirror phase and the resynchronization phase.
[0041]
Also, it is classified according to whether the disk of the mirror source LU or the mirror destination LU was replaced during each phase.
[0042]
The parity reconstruction after the replacement of the failed disk is performed by the snapshot management program 221 of the disk array 200 enabling the disk failure recovery subprogram 233, and is performed independently of the instruction from the computer 100. be able to.
[0043]
(3-1) Mirror phase
The operation of the disk failure recovery subprogram 233 in the mirror phase will be described with reference to the flowchart of FIG. In the mirror phase, the contents of the mirror source LU and the mirror destination LU are the same, and the operation of the disk failure recovery subprogram 233 is the same regardless of whether the mirror source LU or the mirror destination LU is replaced. Take the case where the disk of the destination LU is replaced as an example. Here, it is assumed that the disk replaced due to the failure is the disk 281 of the disk group 252 which is the mirror destination LU in FIG. When mirrored, the same data as the disk 271 of the disk group 251 that is the mirror source LU is stored in the disk 281. First, when a disk is replaced, the disk failure recovery subprogram 233 sets all the mirror destination inconsistency bits in the update / inconsistency position management table 222 corresponding to the replaced disk 281 to 1 (step 4001). Next, the disk failure recovery subprogram 233 checks whether there is 1 as the inconsistent record in the mirror destination inconsistent bit of the update / inconsistent position management table 222 (step 4002). If there is no inconsistent record 1, the failure recovery of the disk 281 is completed, and the parity of the disk group 252 is consistent, so the process ends (step 4003). If there is inconsistent recording, update of the corresponding recording position is suppressed (step 4004), and it is checked whether or not there is 1 as inconsistent recording in the mirror source inconsistent bit of the update / inconsistent position management table 222 (step 4005). . If there is no inconsistent record 1, the mirror source LU has parity consistency, and the data at the corresponding position is copied from the disk 271 to the disk 281 (step 4007). If there is 1 that is inconsistent recording, the mirror source LU is also recovering from the failure and the consistency of the parity is not taken. Is written in the corresponding position of the disk 281 (step 4006). After step 4007 or step 4006, the disk failure recovery subprogram 233 sets the inconsistency bit corresponding to the disk 281 in the update / inconsistency position management table 222 to 0 and deletes the inconsistency record (step 4008). ) Releases the update inhibition of the corresponding recording position (step 4009), and returns to step 4002.
[0044]
The above is the operation of the disk failure recovery subprogram 233 in the mirror phase.
[0045]
In step 4007, the data is copied by reading the LBA data designated by issuing a READ command to the disk 271 and reading the data read to the same LBA as the LBA designated by the disk 271 by issuing the WRITE command to the disk 281. Implement by writing. The COPY command may be used to copy the data.
[0046]
When a data update request is received from the computer 100 during the operation of the disk failure recovery subprogram 233, the snapshot management program 221 is to reflect both in the mirror source LU and the mirror destination LU. Set to zero. When a data read request is received from the computer 100, data is read from the LU whose inconsistency bit is 0. When the inconsistency bit of both LUs is 1, data is read from all the disks other than the replaced disk, and the requested data is restored by the parity calculation and transmitted to the computer 100.
[0047]
(3-2) Non-mirror phase
The operation of the disk failure recovery subprogram 233 in the non-mirror phase will be described with reference to the flowchart of FIG. In the non-mirror phase, the contents of the mirror source LU and the mirror destination LU do not match, but the operation of the disk failure recovery subprogram 233 is the same when either the mirror source LU or the mirror destination LU is replaced. Therefore, the case where the mirror source LU disk is replaced is taken as an example. Here, it is assumed that the disk replaced due to the failure is the disk 271 of the disk group 251 that is the mirror source LU in FIG.
[0048]
First, when a disk is replaced, the disk failure recovery subprogram 233 sets all the mirror source inconsistency bits in the update / inconsistency position management table 222 corresponding to the replaced disk 271 to 1 (step 5001). Next, the disk failure recovery subprogram 233 checks whether there is 1 as a mismatch record in the mirror source mismatch bit of the update / mismatch position management table 222 (step 5002). If there is no inconsistent record 1, the failure recovery of the disk 271 is completed, and the parity of the disk group 251 is consistent, so the process ends (step 5003). If there is inconsistent recording, update of the corresponding recording position is suppressed (step 5004), and it is checked whether or not there is 1 as inconsistent recording in the mirror destination inconsistent bit of the update / inconsistent position management table 222 (step 5005). . If there is 1 that is inconsistent recording, the mirror destination LU is also recovering from the failure and the parity is not consistent, so data is read from other disks 272 to 275 in the same disk group 251 as the disk 271 and parity calculation is performed. Thus, the data is restored and written in the corresponding position on the disk 271 (step 5006). If there is no inconsistent record 1, it is checked whether or not there is 1 as an update record in the corresponding update bit of the update / inconsistent position management table 222 (step 5007). If there is an update record 1, the data on the disk 271 and the disk 281 at the corresponding positions are different, so the disk failure recovery subprogram 233 reads the data from the other disks 272 to 275 in the same disk group 251 as the disk 271. Data is restored by parity operation and written to the corresponding position on the disk 271 (step 5006). If there is no update record 1, the data on the disk 271 and the disk 281 at the corresponding position should be the same, so the data at the corresponding position is copied from the disk 281 to the disk 271 (step 5008).
[0049]
After step 5006 or step 5008, the disk failure recovery subprogram 233 sets the inconsistency bit corresponding to the disk 271 in the update / inconsistency position management table 222 to 0 and deletes the inconsistency record (step 5009). ) Releases the update inhibition of the corresponding recording position (step 5010), and returns to step 5002. The above is the operation of the disk failure recovery subprogram 233 in the non-mirror phase.
[0050]
In step 5008, the data is copied by reading the LBA data designated by issuing a READ command to the disk 281 and reading the data read to the same LBA as the LBA designated by the disk 281 by issuing the WRITE command to the disk 271. Implement by writing. The COPY command may be used to copy the data.
[0051]
When a data read request is received from the computer 100 during the operation of the disk failure recovery subprogram 233, the snapshot management program 221 normally reads data from the mirror source LU, but the update bit is 0 and the mirror destination mismatch bit is 0. May be read from the mirror destination LU.
[0052]
(3-3) Resynchronization phase (mirror destination LU recovery)
The operation of the disk failure recovery subprogram 233 related to the mirror destination LU in the resynchronization phase will be described with reference to the flowchart of FIG. Here, it is assumed that the disk replaced due to the failure is the disk 281 of the disk group 252 which is the mirror destination LU in FIG.
[0053]
First, when a disk is replaced, the disk failure recovery subprogram 233 sets all the mirror destination inconsistency bits in the update / inconsistency position management table 222 corresponding to the replaced disk 281 to 1 (step 6001). Next, the disk failure recovery subprogram 233 checks whether there is 1 as the inconsistent record in the mirror destination inconsistent bit of the update / inconsistent position management table 222 (step 6002). If there is no inconsistent recording 1, the failure recovery of the disk 281 is completed, and the parity of the disk group 252 is consistent, and the process is terminated (step 6003). If there is inconsistent recording, update of the corresponding recording position is suppressed (step 6004), and it is checked whether or not there is 1 as inconsistent recording in the mirror source inconsistent bit of the update / inconsistent position management table 222 (step 6005). . If there is no inconsistent record 1, the mirror source LU has parity consistency, so the data at the corresponding position is copied from the disk 271 to the disk 281 (step 6007), and the update / inconsistent position management table 222. The corresponding update bit is set to 0 and the update record is deleted regardless of whether or not there is an update (step 6008). If there is 1 inconsistent recording, the mirror source LU is also recovering from the failure and the parity is not consistent, so data is read from other disks 282 to 285 in the same disk group 252 as the disk 281 and parity calculation is performed. Thus, the data is restored and written in the corresponding position on the disk 281 (step 6006). After step 6008 or step 6006, the disk failure recovery subprogram 233 sets the inconsistency bit corresponding to the disk 281 in the update / inconsistency position management table 222 to 0 and deletes the inconsistency record (step 6006). ) Releases the update inhibition of the corresponding recording position (step 6010), and returns to step 6002.
[0054]
The above is the operation of the disk failure recovery subprogram 233 related to the mirror destination LU in the resynchronization phase.
[0055]
In step 6007, the data is copied by reading the LBA data designated by issuing a READ command to the disk 271 and reading the data read to the same LBA as the LBA designated by the disk 271 by issuing the WRITE command to the disk 281. Implement by writing. The COPY command may be used to copy the data.
[0056]
(3-4) Resynchronization phase (mirror source LU recovery)
The operation of the disk failure recovery subprogram 233 related to the mirror source LU in the resynchronization phase will be described with reference to the flowchart of FIG. Here, it is assumed that the disk replaced due to the failure is the disk 271 of the disk group 251 that is the mirror source LU in FIG.
[0057]
First, when a disk is replaced, the disk failure recovery subprogram 233 sets all the mirror source inconsistency bits of the update / inconsistency position management table 222 corresponding to the replaced disk 271 to 1 (step 7001). Next, the disk failure recovery subprogram 233 checks whether there is 1 as the inconsistent record in the mirror source inconsistent bit of the update / inconsistent position management table 222 (step 7002). If there is no inconsistent record 1, the failure recovery of the disk 271 is completed, and the parity of the disk group 251 is consistent, so the process ends (step 7003). If there is inconsistent recording, update of the corresponding recording position is inhibited (step 7004), and it is checked whether or not there is 1 as inconsistent recording in the mirror destination inconsistent bit of the update / inconsistent position management table 222 (step 7005). . If there is 1 that is inconsistent recording, the mirror destination LU is also recovering from the failure and the parity is not consistent, so data is read from other disks 272 to 275 in the same disk group 251 as the disk 271 and parity calculation is performed. Thus, the data is restored and written in the corresponding position on the disk 271 (step 7006). If there is no inconsistent record 1, it is checked whether or not there is 1 as an update record in the corresponding update bit of the update / inconsistent position management table 222 (step 7007). If there is an update record 1, the data on the disk 271 and the disk 281 at the corresponding positions are different, so the disk failure recovery subprogram 233 reads the data from the other disks 272 to 275 in the same disk group 251 as the disk 271. Data is restored by parity calculation and written to the corresponding position on the disk 271 (step 7006). If there is no update record 1, the data on the disk 271 and the disk 281 at the corresponding position may be the same, so the data at the corresponding position is copied from the disk 281 to the disk 271 (step 7008).
[0058]
After step 7006 or step 7008, the disk failure recovery subprogram 233 sets the inconsistency bit corresponding to the disk 271 in the update / inconsistency position management table 222 to 0 and deletes the inconsistency record (step 7009). ) Releases the update inhibition of the corresponding recording position (step 7010), and returns to step 7002. The above is the operation of the disk failure recovery subprogram 233 related to the mirror source LU in the resynchronization phase.
[0059]
In step 7008, the data is copied by reading the LBA data designated by issuing a READ command to the disk 281 and reading the data read to the same LBA as the LBA designated by the disk 281 by issuing the WRITE command to the disk 271. Implement by writing. The COPY command may be used to copy the data.
[0060]
When a data read request is received from the computer 100 during the operation of the disk failure recovery subprogram 233, the snapshot management program 221 normally reads data from the mirror source LU, but the update bit is 0 and the mirror destination mismatch bit is 0. May be read from the mirror destination LU.
[0061]
(4) Computer operation when reading and writing data and reading snapshots
First, the operation of the database program 126 when the computer 100 accesses the data of the LU 261 in the disk array 200 will be described. The database program 126 performs the same operation regardless of whether or not a snapshot is acquired.
[0062]
When the database program 126 reads LU 261 data, the database program 126 issues a READ command for reading the LU 261 data to the disk array 200. Finally, the database program 126 receives data and status from the disk array 200 and ends the operation. When the database program 126 writes data to the LU 261, the database program 126 issues a WRITE command for writing data to the LU 261 to the disk array 200, and transmits the data. Finally, the database program 126 receives the status from the disk array 200 and ends the operation.
[0063]
Next, the operation of the backup program 127 when the computer 100 reads a snapshot of the LU 261 in the disk array 200 will be described.
[0064]
When the backup program 127 reads the snapshot of the LU 261, the backup program 127 issues a READ command for reading the data of the LU 262, which is the mirror destination LU of the LU 261, to the disk array 200. Finally, the backup program 127 receives data and status from the disk array 200 and ends the operation.
[0065]
(5) Disk array operation when reading and writing data and reading snapshots
First, the operation of the snapshot management program 221 when the computer 100 accesses the data of the LU 261 in the disk array 200 will be described.
[0066]
When the computer 100 reads data from the LU 261, the snapshot management program 221 receives a READ command for the LU 261. Next, if the LU mirror subprogram 231 is valid and the copy of the updated portion by the mirror resynchronization subprogram 232 has been completed, data is read from the LU 261 or the LU 262 that is the mirror destination LU. Otherwise, data is read from the LU 261. Finally, the read data and status are transmitted to the computer 100. If the contents of the LU 261 and the LU 262 that is the mirror destination LU match, the load can be distributed by reading data from either of them.
[0067]
When the computer 100 writes data to the LU 261 and updates the stored contents, the snapshot management program 221 receives a WRITE command and data for the LU 261. Next, if the LU mirror subprogram 231 is valid, data is written to the LU 261 and the mirror destination LU 262, and if invalid, data is written to the LU 261. Next, if the non-mirror time update monitoring subprogram 234 and the non-mirror time update position management subprogram 235 are valid, the update bit of the LBA set including the updated LBA for the update / mismatch position management table 222 of the LU 261 Set to 1 and do nothing if disabled. Finally, the status is transmitted to the computer 100.
[0068]
Next, the operation of the snapshot management program 221 when the computer 100 reads a snapshot of the LU 261 in the disk array 200 will be described.
[0069]
When the computer 100 reads the snapshot of the LU 261, the snapshot management program 221 receives a READ command for the LU 262 that is the mirror destination LU of the LU 261. Next, the snapshot management program 221 reads data from the LU 262 that is the mirror destination LU. Finally, the read data and status are transmitted to the computer 100.
[0070]
Note that during the copying of the updated portion by the mirror resynchronization subprogram 232, the copy processing and the data access processing to the LU 261 by the computer 100 are concentrated on the same LU 261, so that the data access performance is degraded.
[0071]
(6) Effect
According to this embodiment, in a disk array that is operated in duplicate for snapshot acquisition, it is possible to suppress a decrease in normal access performance by reducing the number of disk accesses related to parity reconstruction after disk replacement. There is an effect that can be done.
[0072]
In addition, according to the present embodiment, by reducing the parity reconstruction time after disk replacement during the period when duplexing is stopped, the copy amount of update data during mirror resynchronization is reduced, and the performance is degraded. The mirror resynchronization time can be shortened.
[0073]
For example, assuming a RAID 5 5D + 1P configuration, when recovering a disk failure in the mirror phase, or when recovering a disk with parity redundancy, four disk reads and one disk write occur. By applying the present invention, it is possible to perform one disk read and one disk write, and it is possible to suppress a decrease in normal access performance. Even in the non-mirror phase, the same effect of reducing the number of disk accesses can be expected, it is possible to suppress read performance degradation when taking snapshots and taking backups, etc., and it is possible to suppress increase in read time. Mirror resynchronization time that degrades performance can be shortened.
[0074]
In addition, by reducing the number of disk accesses related to parity reconstruction after disk replacement, it is possible to suppress performance degradation due to an increase in the number n of data drives in nD + 1P representing a disk configuration such as RAID 5 forming a parity group. is there. In the case of nD + 1P, when disk recovery is performed by parity redundancy, n disk reads and one disk write occur. By applying the present invention, it is possible to perform one disk read and one disk write.
[0075]
In the present invention, the SCSI bus 300 is used as an interface for connecting the computer 100 and the disk array 200, but another interface such as Fiber Channel may be used.
[0076]
In this embodiment, the mirror source LU and the mirror destination LU are duplicated to obtain a snapshot. However, the present invention can also be applied to a multiple mirror provided with a plurality of mirror destination LUs. In this case, the mirror destination inconsistency bits of the update / inconsistency position management table 222 are provided for the mirror destination LU, and the disk failure recovery subprogram 233 performs the same operation as when the mirror destination LU and the mirror source LU are duplicated. LU mirror subprogram 231 is the mirror source
An operation of multiplexing access to the LU to a plurality of mirror destination LUs may be performed.
[0077]
【The invention's effect】
As described above, according to the present invention, in a disk array that is duplicated for snapshot acquisition, normal access performance is reduced by reducing the number of disk accesses related to parity reconstruction after disk replacement. There is an effect that can be suppressed.
[0078]
In addition, according to the present embodiment, by reducing the parity reconstruction time after disk replacement during the period when duplexing is stopped, the copy amount of update data during mirror resynchronization is reduced, and the performance is degraded. The mirror resynchronization time can be shortened.
[0079]
In addition, by reducing the number of disk accesses related to parity reconstruction after disk replacement, it is possible to suppress performance degradation due to an increase in the number n of data drives in nD + 1P representing a disk configuration such as RAID 5 forming a parity group. is there.
[Brief description of the drawings]
FIG. 1 is a system configuration diagram according to a first embodiment.
FIG. 2 is an explanatory diagram of an update / inconsistency position management table in the first embodiment.
FIG. 3 is a snapshot acquisition / deletion flow according to the first embodiment.
FIG. 4 is an operation flow of a mirror resynchronization subprogram in the first embodiment.
FIG. 5 is an operational flow of a disk failure recovery subprogram in the mirror phase in the first embodiment.
FIG. 6 is a non-mirror phase disk failure recovery subprogram operation flow in the first embodiment.
FIG. 7 is a disk failure recovery subprogram operation flow related to mirror destination LU recovery in the resynchronization phase in the first embodiment.
FIG. 8 is a disk failure recovery subprogram operation flow related to the mirror source LU recovery in the resynchronization phase in the first embodiment.
[Explanation of symbols]
DESCRIPTION OF SYMBOLS 100 ... Computer, 200 ... Disk array, 221 ... Snapshot management program, 222 ... Update / inconsistency position management table, 233 ... Disk failure recovery subprogram, 271-275, 281-285 ... Disk.

Claims (2)

コンピュータと接続される複数のディスクを持つ外部記憶装置のディスク障害復旧方法であって、
第一の複数のディスクを用いてパリティグループを構成し、前記第一の複数のディスクに第一の論理ユニットを配置する第一のステップと、
前記第一の複数のディスクと同じ数のディスクを用い、前記第一の複数のディスクと対を成すように、第二の複数のディスクを用いたパリティグループを構成し、前記第二の複数のディスクに第二の論理ユニットを配置する第二のステップとを有し、
前記コンピュータがデータ書込み要求を行った際、前記第一の論理ユニットと前記第二の論理ユニットの両方に、前記データ書込み要求のデータを書き込む第三のステップと、
前記コンピュータからデータ書込み要求が有った場合、当該データ書込みを前記第一の論理ユニットへ行ない、かつ、前記第二の論理ユニットへ行わないように、前記第一の論理ユニットと前記第二の論理ユニットへのデータ書込みを制御する第四のステップと、
前記第四のステップにおける、第一の論理ユニットへのデータ書込み時の、当該データが書き込まれた前記ディスク上の位置と更新記録を記憶する第5のステップと、
前記第二の複数のディスクの内の一つのディスクが新しいディスクと交換された場合、前記交換されたディスクと対を成す前記第一の複数のディスクの内のディスクを特定する第六のステップと、
前記特定されたディスク上のデータの位置に前記更新記録が無いなら、当該位置のデータを、前記特定されたディスクの当該位置に対応する前記新しいディスクの位置へコピーする第七のステップと、
前記特定されたディスク上のデータの位置に前記更新記録が有るなら、当該位置に対応する前記新しいディスクの位置に、前記新しいディスクの当該位置に対応するデータを、前記第二の複数のディスクのうち前記交換されたディスク以外の他のディスク群からパリティ演算によって求め記録する第八のステップを有することを特徴とする外部記憶装置のディスク障害復旧方法。
A disk failure recovery method for an external storage device having a plurality of disks connected to a computer,
Forming a parity group using the first plurality of disks, and arranging a first logical unit on the first plurality of disks;
Using the same number of disks as the first plurality of disks, and forming a parity group using the second plurality of disks so as to form a pair with the first plurality of disks, the second plurality of disks Having a second step of placing a second logical unit on the disk;
A third step of writing the data write request data to both the first logical unit and the second logical unit when the computer makes a data write request;
When there is a data write request from the computer, the first logical unit and the second logical unit are configured so as to perform the data write to the first logical unit and not to the second logical unit. A fourth step for controlling the writing of data to the logical unit;
A fifth step of storing the position on the disk and the update record at which the data was written when the data was written to the first logical unit in the fourth step;
A sixth step of identifying a disk in the first plurality of disks that is paired with the replaced disk when one of the second plurality of disks is replaced with a new disk; ,
A seventh step of copying the data at the location to the new disc location corresponding to the location of the identified disc if there is no update record at the location of the data on the identified disc;
If the update record exists at the position of the data on the specified disc, the data corresponding to the position of the new disc is transferred to the position of the new disc corresponding to the position of the second plurality of discs. A disk failure recovery method for an external storage device, comprising an eighth step of obtaining and recording from other disk groups other than the replaced disk by parity calculation.
コンピュータと接続される複数のディスクを持つ外部記憶装置のディスク障害復旧方法であって、
第一の複数のディスクを用いてパリティグループを構成し、前記第一の複数のディスクに第一の論理ユニットを配置する第一のステップと、
前記第一の複数のディスクと同じ数のディスクを用い、前記第一の複数のディスクと対を成すように、第二の複数のディスクを用いたパリティグループを構成し、前記第二の複数のディスクに第二の論理ユニットを配置する第二のステップとを有し、
前記コンピュータがデータ書込み要求を行った際、前記第一の論理ユニットと前記第二の論理ユニットの両方に、前記データ書込み要求のデータを書き込む第三のステップと、
前記コンピュータからデータ書込み要求が有った場合、当該データ書込みを前記第一の論理ユニットへ行ない、かつ、前記第二の論理ユニットへ行わないように、前記第一の論理ユニットと前記第二の論理ユニットへのデータ書込みを制御する第四のステップと、
前記第四のステップにおける、第一の論理ユニットへのデータ書込み時の、当該データが書き込まれた前記ディスク上の位置と更新記録を記憶する第5のステップと、
前記第一の複数のディスクの内の一つのディスクが新しいディスクと交換された場合、前記交換されたディスクと対を成す前記第二の複数のディスクの内のディスクを特定する第六のステップと、
前記交換された一つのディスク上のデータの位置に前記更新記録が無いなら、前記交換された一つのディスクの当該位置と対を成していた前記特定されたディスクの位置のデータを、当該位置に対応する前記新しいディスクの位置へコピーする第七のステップと、
前記交換された一つのディスク上のデータの位置に前記更新記録が有るなら、当該位置に対応する前記新しいディスクの位置に、前記新しいディスクの当該位置に対応するデータを、前記第一の複数のディスクのうち前記交換された一つのディスク以外の他のディスク群からパリティ演算によって求め記録する第八のステップを有することを特徴とする外部記憶装置のディスク障害復旧方法。
A disk failure recovery method for an external storage device having a plurality of disks connected to a computer,
Forming a parity group using the first plurality of disks, and arranging a first logical unit on the first plurality of disks;
Using the same number of disks as the first plurality of disks, and forming a parity group using the second plurality of disks so as to form a pair with the first plurality of disks, the second plurality of disks Having a second step of placing a second logical unit on the disk;
A third step of writing the data write request data to both the first logical unit and the second logical unit when the computer makes a data write request;
When there is a data write request from the computer, the first logical unit and the second logical unit are configured so as to perform the data write to the first logical unit and not to the second logical unit. A fourth step for controlling the writing of data to the logical unit;
A fifth step of storing the position on the disk and the update record at which the data was written when the data was written to the first logical unit in the fourth step;
A sixth step of identifying a disk in the second plurality of disks that is paired with the replaced disk if one of the first plurality of disks is replaced with a new disk; ,
If there is no update record at the position of the data on the one exchanged disk , the data on the position of the specified disk paired with the position on the one exchanged disk is changed to the position. A seventh step of copying to the location of the new disk corresponding to
If there is the update record at the position of the data on the one exchanged disk , the data corresponding to the position of the new disk is transferred to the position of the new disk corresponding to the position. A disk failure recovery method for an external storage device, comprising: an eighth step of obtaining and recording by a parity calculation from a disk group other than the replaced one of the disks among the disks.
JP2000297066A 2000-09-26 2000-09-26 Disk array disk failure recovery method Expired - Fee Related JP3832223B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000297066A JP3832223B2 (en) 2000-09-26 2000-09-26 Disk array disk failure recovery method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000297066A JP3832223B2 (en) 2000-09-26 2000-09-26 Disk array disk failure recovery method

Publications (2)

Publication Number Publication Date
JP2002108571A JP2002108571A (en) 2002-04-12
JP3832223B2 true JP3832223B2 (en) 2006-10-11

Family

ID=18779237

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000297066A Expired - Fee Related JP3832223B2 (en) 2000-09-26 2000-09-26 Disk array disk failure recovery method

Country Status (1)

Country Link
JP (1) JP3832223B2 (en)

Families Citing this family (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003223287A (en) 2001-11-22 2003-08-08 Toshiba Corp Storage device, backup method of the same, and program therefor
US7120827B2 (en) 2002-05-07 2006-10-10 Hitachi Ltd. System and method of volume health checking and recovery
GB0227786D0 (en) * 2002-11-29 2003-01-08 Ibm Improved remote copy synchronization in disaster recovery computer systems
JP4564721B2 (en) * 2003-04-22 2010-10-20 Necシステムテクノロジー株式会社 Disk array system
JP4270371B2 (en) 2003-05-09 2009-05-27 インターナショナル・ビジネス・マシーンズ・コーポレーション Storage system, control device, control method, and program
JP4486348B2 (en) * 2003-11-26 2010-06-23 株式会社日立製作所 Disk array that suppresses drive operating time
US7136973B2 (en) * 2004-02-04 2006-11-14 Sandisk Corporation Dual media storage device
US20060080574A1 (en) * 2004-10-08 2006-04-13 Yasushi Saito Redundant data storage reconfiguration
JP4815825B2 (en) * 2005-03-10 2011-11-16 日本電気株式会社 Disk array device and method for reconstructing the same
US7904619B2 (en) 2006-11-24 2011-03-08 Sandforce, Inc. System, method, and computer program product for reducing memory write operations using difference information
US7904672B2 (en) 2006-12-08 2011-03-08 Sandforce, Inc. System and method for providing data redundancy after reducing memory writes
CN102929751B (en) * 2006-12-08 2018-04-20 Lsi公司 Data redundancy in multiple storage devices
WO2010097832A1 (en) * 2009-02-26 2010-09-02 Hitachi, Ltd. Storage system comprising raid group
JP5768587B2 (en) 2011-08-17 2015-08-26 富士通株式会社 Storage system, storage control device, and storage control method
JP5954081B2 (en) 2012-09-26 2016-07-20 富士通株式会社 Storage control device, storage control method, and storage control program
JP6277878B2 (en) 2014-06-16 2018-02-14 富士通株式会社 Storage device control device, storage device control method, and storage device control program

Also Published As

Publication number Publication date
JP2002108571A (en) 2002-04-12

Similar Documents

Publication Publication Date Title
US6886075B2 (en) Memory device system and method for copying data in memory device system
US5579474A (en) Disk array system and its control method
JP3316500B2 (en) Increase the number of drives in a RAID set while maintaining the integrity of the moved data
JP3832223B2 (en) Disk array disk failure recovery method
US7024586B2 (en) Using file system information in raid data reconstruction and migration
US7055058B2 (en) Self-healing log-structured RAID
US7721143B2 (en) Method for reducing rebuild time on a RAID device
US6408400B2 (en) Disk array device
US20050050381A1 (en) Methods, apparatus and controllers for a raid storage system
JP2004118837A (en) Method for storing data in fault tolerance storage sub-system, the storage sub-system and data formation management program for the system
JPH08305500A (en) Storage controller,data storage system containing it and double-pair suppression method
JPH06202817A (en) Disk array device and data updating method for the same
US11287977B1 (en) Storage system and control method of storage system
US20090177916A1 (en) Storage system, controller of storage system, control method of storage system
JP4405421B2 (en) Storage device and program.
US7313724B1 (en) Method and apparatus for synchronizing redundant data with a volume
JP3882467B2 (en) Snapshot management method for storage system
JP2010026812A (en) Magnetic disk device
JP3597349B2 (en) Storage subsystem and fault recovery method thereof
JP4398596B2 (en) Disk array device
US20050081088A1 (en) Array controller for disk array, and method for rebuilding disk array
JP2007334913A (en) Storage device system and data copying method for the same
JP3590015B2 (en) Disk array device and method of restoring consistency of logical drive having redundant data
JP4122724B2 (en) Data replication method and information processing system
JP5598124B2 (en) DATA RECORDING / REPRODUCING DEVICE, DATA RECORDING METHOD, AND DATA RECORDING PROGRAM

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20060119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060124

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060322

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20060411

RD01 Notification of change of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7421

Effective date: 20060418

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060609

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060710

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

Free format text: PAYMENT UNTIL: 20090728

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20100728

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20100728

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20110728

Year of fee payment: 5

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

Free format text: PAYMENT UNTIL: 20120728

Year of fee payment: 6

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

Free format text: PAYMENT UNTIL: 20130728

Year of fee payment: 7

LAPS Cancellation because of no payment of annual fees