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

ディスクアレイ装置 Download PDF

Info

Publication number
JP5391993B2
JP5391993B2 JP2009240042A JP2009240042A JP5391993B2 JP 5391993 B2 JP5391993 B2 JP 5391993B2 JP 2009240042 A JP2009240042 A JP 2009240042A JP 2009240042 A JP2009240042 A JP 2009240042A JP 5391993 B2 JP5391993 B2 JP 5391993B2
Authority
JP
Japan
Prior art keywords
data
restoration
raid
disk
raid group
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
JP2009240042A
Other languages
English (en)
Other versions
JP2011086214A (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
Priority to JP2009240042A priority Critical patent/JP5391993B2/ja
Priority to US12/906,238 priority patent/US8392752B2/en
Publication of JP2011086214A publication Critical patent/JP2011086214A/ja
Application granted granted Critical
Publication of JP5391993B2 publication Critical patent/JP5391993B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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 OR CALCULATING; 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
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; 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/1057Parity-multiple bits-RAID6, i.e. RAID 6 implementations

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)

Description

本発明は、RAID(Redundant Arrays of Independent Disks)システムであるディスクアレイ装置に関する。
コンピュータシステムのストレージ(外部記憶装置)として、ディスクアレイ装置が知られている。ディスクアレイ装置は、RAIDにより、データアクセスの高速化とシステムとしての信頼性を実現している。RAIDにはRAID0からRAID6までの複数レベルがある。これらのRAIDレベルの中で、ディスクアレイ装置に主に使用されているのは、RAID0、RAID1、RAID5、RAID6である。
RAID0は、ストライピングとも呼ばれる。RAID0は、複数のディスク装置にデータを分散して読み書きすることで、ホスト装置との間で高速なデータI/Oを実現する。この複数のディスク装置に対してデータを分散して読み書きする操作は“ストライピング”と呼ばれる。ストライピングのデータ単位(各ディスク装置に書き込まれるデータの単位)は、ブロックもしくはストレイプと呼ばれる。また、1回のストライピングによって複数のディスク装置に書き込まれるデータ全体は“ストライプ”と呼ばれる。RAID0は、冗長性がなく、全てのディスク装置をストライピングに使用する。このため、RAID0においては、一台のディスク装置が故障すると全てのデータが失われる。つまり、RAID0は耐障害性がない。
RAID1は、ミラーリングとも呼ばれ、複数のディスク装置に同時に同じデータを書き込む方式である。RAID1は、全てのディスク装置が故障しない限りデータが失われることはないので、耐障害性が高い。
RAID5は、パリティ付きストライプセットとも呼ばれる。RAID5は、データとそのデータの誤り訂正符号であるパリティを、複数のディスク装置に分散して書き込む。RAID5は、パリティを、各ディスク装置に所定の順番で分散して書き込む。このように、RAID5は、パリティを複数のディスク装置に分散して記録するので、“分散データガーディング”とも呼ばれる。RAID5は、ストライピングの際、データだけでなく、パリティもディスク装置に記録するので、1台のディスク装置が故障しても、故障したディスク装置のデータを復旧することが可能である。このため、RAID5は、1台のディスク装置が故障しても、故障したディスク装置を論理的にシステムから切り離すことで、運転を継続することができる。RAID5において1台のディスク装置が故障したままで運転している状態は、“縮退状態”と呼ばれる(例えば、特開2002−297322号公報参照)。RAID5を採用しているディスクアレイ装置は、通常、スペアディスクドライブと呼ばれる予備のディスク装置を備えており、縮退状態に移行した後、正常なディスク装置に記録されているデータを用いて故障したディスク装置のデータを復元する作業を開始する。そして、故障したディスク装置のデータをスペアディスクドライブに復元する(例えば、特開2002−297322号公報参照)。スペアディスクドライブには、データの自動復旧のために、ホットスペア(ホットスペアディスクドライブ)と呼ばれる、通電されて待機状態にある予備のディスク装置が使用されるのが一般的である(例えば、特開2003−108316号公報)。
RAID6は、RAID5を、より障害性が高くなるように拡張したものである。RAID6は、ストライピングによりデータを複数台のディスク装置に分散して書き込む際に2種類のパリティを生成し、これら2種類のパリティを、それぞれ、別個のディスク装置に書き込む。このように、RAID6は、2つのパリティを分散データガーディングにより別個のディスク装置に書き込むので、冗長ディスク装置を2台必要とする。RAID6の2種類のパリティの生成方式としては、「2D−XOR」と「P+Q」の2つの方式が提案されているが、ディスクアレイ装置には、主に、「P+Q」方式が採用されている。「P+Q」方式においては、PパリティとQパリティの2つのパリティを生成・使用する。Pパリティは、RAID5で使用されるパリティと同じパリティである。Qパリティは、Pパリティとは異なる計算方式(アルゴリズム)により生成される。RAID6は、PパリティとQパリティという2つのパリティを、分散データガーディングにより、それぞれ別々のディスク装置に記録することで、同時に2台のディスク装置が故障しても継続して運転することが可能である。換言すれば、同時に2台のディスク装置が故障しても、正常に稼動している残りのディスク装置に格納されているデータを用いて、それら2台のディスク装置に格納されていたデータを復元することができる。RAID6においても、故障したディスク装置のデータの復元には、RAID5と同様に、ホットスペアと呼ばれる予備ディスク装置を用いるのが一般的である。
一般に、各RAID構成の実装形態は、RAIDグループと呼ばれる。また、RAID0、RAID5、RAID6などのような、データをストライピングにより複数のディスク装置に分割して記録する形態のRAID構成における1つのストライプ内でのパリティブロックの個数は、冗長度と呼ばれる(例えば、特開平7−306758号公報参照)。
この定義に従えば、RAID0構成のRAIDグループの冗長度は“0”である。また、RAID5構成のRAIDグループの冗長度は“1”である。RAID6構成のRAIDグループの冗長度は“2”である。
ここで、RAID6構成のディスクアレイ装置において2台のディスク装置が故障した場合の従来のデータ復旧方法を説明する。従来のRAID6構成のディスクアレイ装置は、2台のディスク装置が故障すると、縮退状態のまま運転を継続しながら、2台のホットスペアに2台の故障ディスク装置のデータを復旧するようにしていた。この場合のデータ復旧は、下記(1)、(2)のいずれかの方法により行われていた。
(1)2台の故障ディスク装置のデータを、1台ずつ、順番にホットスペアに復旧する。この場合、1台の故障ディスク装置のデータ復旧には1台のホットスペアを使用する。
(2)2台の故障ディスク装置のデータ復旧を並行して行い、2台の故障ディスク装置のデータを纏めて、それぞれ、別個のホットスペアに復旧する。この場合、(1)の方法と同様に1台の故障ディスク装置のデータ復旧には1台のホットスペアを使用するが、2台のホットスペアを同時並行的に使用することで、2台の故障ディスク装置のデータ復旧を同時並行的に行う。
図13は、RAID6構成のディスクアレイ装置において2台のディスク装置が故障した場合における従来のデータ復旧方法を示す摸式図である。
図13は、RAID6を構成する5台のディスク装置1001d−1〜1001d−5の内、2台のディスク装置1001d−3、1001d−4に故障が発生した場合に、ディスク装置1001d−3、1001d−4のデータを、それぞれ、ホットスペア1002s−1,1002s−2に復旧する例を示している。従来は、2台のディスク装置1001d−3、1001d−4がほぼ同時に故障した場合、まず、ディスク装置1001d−3のデータをホットスペア1002s−1に復元し、続いて、ディスク装置1001d−4のデータをホットスペア1002s−2に復元するか(上記(1)の手法)、または、ディスク装置1001d−3のデータをホットスペア1002s−1に復元する処理と、ディスク装置1001d−4のデータをホットスペア1002s−1に復元する処理を並行して行なうか(上記(2)の手法)のいずれかの方法により、RAID6構成の復旧をおこなっていた。
ところで、RAID1またはRAID5構成のディスクアレイ装置において、RAIDを構成するディスク装置と同数のホットスペア(スペアドライブ)を備えるスペアパリティグループを利用して、故障ディスク装置のデータを復元する方法が知られている(例えば、特許文献3参照)。また、故障する可能性が高い2台のディスク装置(ディスクドライブ)のデータを、分割しながら、2台のホットスペア(スペアディスク)にコピーしていくことでダイナミックスペアリングを実現する方法が知られている(例えば、特開2005−122338号公報参照)。ここで、ダイナミックスペアリングとは、ディスク装置(ディスクドライブ)の故障の可能性を予測し、故障する可能性が高いディスク装置のデータを、故障発生前にホットスペア(スペアディスクドライブ)へコピーする手法である。また、ディスクアレイを構成するディスク装置に故障が生じた場合、故障したディスク装置の復元データを、複数のスペアディスク装置にストライピングにより分散して格納する技術が知られている(例えば、特開2008−40687号公報参照)
特開平7−306758号公報 特開2002−297322号公報 特開2003−108316号公報 特開2005−149374号公報 特開2005−122338号公報 特開2008−40687号公報
RAID6においては、ディスク装置が2台故障した場合、上述した方法により、2台の故障ディスク装置のデータ復旧を行うが、1台の故障ディスク装置のデータの復旧が完了しない状態で、さらに別のディスク装置の故障が発生すると、データが喪失する。これは、RAID6は、3台以上のディスク装置が故障すると、データ復旧は不可能となるためである。したがって、RAID6においては、2台のディスク装置が故障した場合、速やかに、1台の故障ディスク装置のデータをホットスペアに復旧させる必要がある。
しかしながら、上記従来の故障ディスク装置のデータ復旧方法では、1台の故障ディスク装置のデータを復旧させるまでに時間を要し、データ喪失(データロスト)となる危険性が高かった。
本発明の目的は、2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置において前記RAIDグループにおいて失われた冗長度と同数の記憶装置が故障した場合、冗長性の無い状態から冗長性のある状態に、従来よりも速やかに復帰できようにすることである。
本発明は、2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置を前提とする。
本発明のディスクアレイ装置は、データ復旧方式選択手段、データ復元手段、及び復元データ集約手段を備える。
前記データ復旧方式選択手段は、前記RAIDグループにおいて失われた冗長度と同数の記憶装置が故障したとき、先にデータ復旧を行う第1の故障記憶装置のデータ復旧方式を、前記RAIDグループを構成する記憶装置の種類と前記RAIDグループに対するI/O状況に基づいて複数の方式の中から選択する。
前記データ復元手段は、前記データ復旧方式選択手段により選択されたデータ復旧方式により、前記第1の故障記憶装置の復元データを2台の復元先記憶装置に分割して書き込む。
前記復元データ集約手段は、前記データ復元手段により前記2台の復元先記憶装置に分割して書き込まれた前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する。
開示のディスクアレイ装置によれば、2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置において、前記RAIDグループにおいて失われた冗長度と同数の記憶装置が故障して冗長性の無い状態になった場合、前記RAIDグループを冗長性の有る状態へ速やかに復帰することができる。
本発明の実施形態のディスクアレイ装置(ディスクアレイサブシステム)を備えたコンピュータシステムの全体構成図である。 I/O管理テーブルの一例を示す図である。 構成情報の一例を示す図である。 本実施形態のディスクアレイサブシステムによるRAID6のRAIDグループのデータ復旧処理の概要を示す摸式図である。 単純2分割データリカバリ方式の処理手順のイメージを示す模式図である。 同一領域2分割データリカバリ方式の処理手順のイメージを示す模式図である。 ストライプ2分割データリカバリ方式の処理手順のイメージを示す模式図である。 RAID6のRAIDグループにおいて2台のディスク装置に故障が発生した場合におけるデータ復旧処理の全体的な手順を示すフローチャートである。 データ復旧方式の自動選択処理の詳細を示すフローチャートである。 単純2分割データリカバリ方式の処理を示すフローチャートである。 同一領域2分割データリカバリ方式の処理を示すフローチャートである。 ストライプ2分割データリカバリ方式の処理を示すフローチャートである。 RAID6構成のディスクアレイ装置において2台のディスク装置が故障した場合における従来のデータ復旧方法を示す模式図である。
以下、本発明の実施形態を、図面を参照しながら説明する。
[システム構成]
図1は、本発明の実施形態のディスクアレイ装置(ディスクアレイサブシステム)を備えたコンピュータシステムの全体構成図である。
図1に示すコンピュータシステム1は、ホスト装置10とディスクアレイサブシステム20を備えている。ホスト装置10は、例えば、サーバなどのコンピュータである。ディスクアレイサブシステム20はディスクアレイ装置である。
ホスト装置10とディスクアレイサブシステム20は、伝送媒体30によって接続されている。この伝送媒体30は、例えば光ファイバなどである。ホスト装置10とディスクアレイサブシステム20間のインターフェースは、例えばファイバチャネルである。
ディスクアレイサブシステム20は、3つのCM(Controller Module)210−0〜210−2(CM#0〜CM#2)、2つのRT(Router)220−0、220−1、及び3つのRLU(Raid Logical Unit)230−0〜230−2(RLU#0〜RLU#2)を備えている。尚、図1に示すディスクアレイサブシステム20はあくまでも一例にすぎず、本発明が適用されるディスクアレイサブシステムが備えるCM、CA等の各構成要素の数は図1に示す個数に限定されるものではない。ディスクアレイサブシステム20は、複数のHDD(Hard Disk Drive)231と複数のSSD(Solid State Drive)233を備えている。SSDは、通常、フラッシュメモリから構成されている。したがって、以後の本実施形態の説明では、SSD233を、便宜上、「ディスク装置」と呼ぶことにする。各HDD231と各SSD233には、個別のディスク装置番号(ディスク番号)が割り当てられている。個々のディスク装置(HDD231またはSSD233)は、ディスク装置番号によって管理される。
RLU230−0〜230−2(RLU#0〜#2)は、RAID6のRAIDグループの論理空間である。RLU230−0、230−1は、複数のHDD231から構成されるRAID6のRAIDグループの論理空間である。また、RLU230−2は、複数のSSD233から構成されるRAID6のRAIDグループの論理空間である。RLU230−0〜230−2が有する各RAID6のRAIDグループには個別のRAIDグループ番号が割り当てられており、各RAID6のRAIDグループはRAIDグループ番号によって識別・管理される。本実施形態では、RLU230−0が有するRAID6のRAIDグループのRAIDグループ番号は“0”であり、RLU230−1が有するRAID6のRAIDグループのRAIDグループ番号は“1”である。また、RLU230−3が有するRAID6のRAIDグループのRAIDグループ番号は“2”である。
ディスクアレイサブシステム20が備えるHDD231とSSD233は、データ格納用(パリティ格納用も含む)とホットスペア用に分類される。ホットスペア用のHDD231またはSSD233は、予めRLU230−0〜230−2内に組み込まれるか、または、全てのRLU230(230−0〜230−2)に共有される。
CM210−0とCM210−1は、RT220−0を介して接続されている。また、CM210−1とCM210−2は、RT220−1を介して接続されている。RT220−0はCM210−0とCM210−1間の通信を中継制御し、RT220−1はCM210−1とCM210−2間の通信を制御する。
本実施形態のディスクアレイサブシステム20は、ホスト装置10に対して、RLU230(230−1〜230−2)毎に担当のCM210−iを1対1に配置するようになっており、各CM210−i(i=0〜2)は、通常動作時には、RLU230−iの管理・制御を担当する(担当LUN制御)。このような担当LUN制御を用いたRLU制御を行なうディスクアレイサブシステムの構成・動作は、例えば、特開2008−40612号公報に開示されている。
各CM210−i(iは“0”〜“2”のいずれかの整数)は、ハードウェア部品として、CA(Channel Adaptor)211−i、CPU(Central Processing Unit)212−i、キャッシュメモリ213−i、Firm管理メモリ214−i、DI(Device Interface)219−iを備えている。
Firm管理メモリ214−iは、ファームウェアやそのファームウェアが制御に使用するテーブルなどを格納するメモリである。Firm管理メモリ214−iは、I/O管理テーブル215−i、構成情報216−i、リカバリ処理部217−i及びデータ集約部218−iを備えている。I/O管理テーブル215−iと構成情報216−iは、それそれ、テーブルと情報である。リカバリ処理部217−iとデータ集約部218−iは、CPU212−iによって実行されるファームウェアである。Firm管理メモリ214は、例えば、フラッシュメモリ(もしくはROM(Read Only Memory))やRAM(Random Access Memory)などを含んでいる。
I/O管理テーブル215−iは、ディスクアレイサブシステム20が備えるRAIDグループ毎のI/O処理要求数を格納しているテーブルである。I/O管理テーブル215に格納される情報は、CPU212−iやDI219−iなどによって設定される。
構成情報216−iは、ディスクアレイサブシステム20が備える各RAIDグループの状態及び各RAIDグループを構成するディスク装置に関する情報である。
リカバリ処理部217−iは、RAIDグループの故障ディスク装置のデータを後述する各種方式で復元する機能コンポーネント(ソフトウェア・モジュール)である。
データ集約部218−iは、リカバリ処理部217−iによって、2台の予備ディスク装置(ホットスペアまたは交換ディスク装置)に分散した故障ディスク装置の復元データを、上記2台の予備ディスク装置のいずれか一方に集約する機能コンポーネント(ソフトウェア・モジュール)である。ここで、交換ディスク装置とは、故障ディスク装置と交換した正常なディスク装置である。この故障ディスク装置から正常ディスク装置への交換は、通常、ホットスワップにより実施される。尚、予備ディスク装置とは、ホットスペアと交換ディスク装置の総称である。
CA211−iは、ホスト装置10とのインターフェース回路である。CA211−iは、例えばファイバチャネルにより、ホスト装置10との間でコマンドやデータの送受信を行なう。
CPU212−iは、CM210−i内の他の構成要素を制御して、CM210−iのシステム全体を制御する。
キャッシュメモリ213−iは、CM210−iが担当するRLU230−iに対するRead/Writeデータを格納するメモリである。キャッシュメモリ213−iは、CM210−iがホスト装置10から受け取るI/O命令によって指示されるRLU230−iに対する書込みデータを一時的に保持する。また、DI219−iがRLU230−iから読み出したデータを一時的に格納する。
DI219−iは、CM210−iが担当するRLU230−iを制御するインターフェース回路である。各CM210−i内のDI219−iは、例えば、銅配線や光ファイバ等の伝送媒体により、RLU230−0〜230−2に接続されている。DI219−iは、RLU230−iとの間でコマンドやデータをやり取りし、RLU230−iに含まれるRAID6のRAIDグループに対するデータのRead/Writeなどを実行する。CM210−iとDI219−i間のインターフェースは、例えばファイバチャネルである。
<I/O管理テーブル>
図2は、I/O管理テーブル215(215−0〜2)の一例を示す図である。
図2に示すI/O管理テーブル215は、(n+1)個のエントリを有している。I/O管理テーブル215の各エントリ215Eは、「RAIDグループ番号」と「I/O処理中数」の2つのフィールドを有している。RAIDグループ番号は、上述した各RLU230−0〜3が有するRAIDグループのRAIDグループ番号である。I/O処理中数は、同一エントリ215Eに格納されているRAIDグループ番号を有するRAIDグループが現在処理中のI/O処理の個数である。I/O管理テーブル215は、このような構成により、ディスクアレイサブシステム20が備える全てのRAIDグループについて、現在処理中のI/Oの個数を管理している。図2に示すI/O管理テーブル215の「RAIDグループ番号」フィールドには、エントリ順に“0”〜“n”のRAIDグループ番号が格納されている。図2に示すI/O管理テーブル215最初のエントリ215Eには、“0”のRAIDグループ番号と“10”のI/O処理中数が格納されている。これは、“0”のRAIDグループ番号を有するRAIDグループの現在のI/O処理の個数が10であることを示している。また、次のエントリ215Eには、“1”のRAIDグループ番号と“25”のI/O処理中数が格納されている。また、最終エントリ215Eには、“n”のRAIDグループ番号と“0”のI/O処理中数が格納されている。
<構成情報>
図3は、構成情報216(216−0〜2)の一例を示す図である。
図3に示す構成情報216は、ディスクアレイサブシステム20が備える個々のRAIDグループの構成情報であり、「RAIDグループ番号」、「状態」、「構成ディスク装置の種別(構成Diskの種別)」、「構成ディスク装置数(構成Disk数)」、「構成ディスク装置番号1(構成Disk番号1)」、・・・、「構成ディスク装置番号n(構成Disk番号n)」の各情報を含んでいる。RAIDグループ番号は、上述したI/O管理テーブル215の「RAIDグループ番号」フィールドに格納されるRAIDグループ番号と同じものである。状態は、RAIDグループの現在の状態(“正常”、“故障”、・・・、“1台のディスク装置リカバリ中(1Diskリカバリ中)”など)を示す情報である。構成ディスク装置の種別は、RAIDグループを構成するディスク装置が「HDD」または「SSD」のいずれであるかを示す情報である。構成ディスク装置数は、対応するRAIDグループ番号を有するRAIDグループが備えるディスク装置の台数である。構成ディスク装置番号1〜nは、対応するRAIDグループが備える各ディスク装置のディスク装置番号である。このディスク装置番号i(i=1〜n)は、構成ディスク装置数に設定されている台数の値と同じ個数だけ、「構成ディスク装置数」のフィールドに続いて格納されている。
図3に示す構成情報216には、それぞれ“0”と“1”のRAIDグループ番号を有する各RAIDグループの構成情報が示されている。“0”のRAIDグループ番号を有するRAIDグループの構成情報216aは、「“0”のRAIDグループ番号」、「“正常”という状態」、「構成ディスク装置が「HDD」であるという情報」、「“2”という構成ディスク装置数」、「“0010”のディスク装置番号」及び「“0020”のディスク装置番号」を含んでいる。この構成情報216aは、“0”のRAIDグループ番号を有するRAIDグループが、“0010”のディスク装置番号を有するディスク装置と“0020”のディスク装置番号を有するディスク装置の2台のディスク装置(HDD)から構成され、現在、それら2台のディスク装置(HDD)が正常に稼動していることを示している。また、“1”のRAIDグループ番号を有するRAIDグループの構成情報216bは、「“1”のRAIDグループ番号」、「“1Diskリカバリ中”という状態」、「構成ディスク装置が「SSD」であるという情報」、「“4”という構成ディスク装置数」、「“0030”のディスク装置番号」、「“0040”のディスク装置番号」、「“0050”のディスク装置番号」及び「“0060”のディスク装置番号」を含んでいる。この構成情報216bは、“1”のRAIDグループ番号を有するRAIDグループが、0030”のディスク装置番号を有するディスク装置と“0040”のディスク装置番号、0050”のディスク装置番号を有するディスク装置と“0060”のディスク装置番号を有するディスク装置の4台のディスク装置(SSD)から構成され、現在、1台のディスク装置(SSD)がデータ復旧中であることを示している。
{本実施形態におけるRAID6のRAIDグループの修復方法の概要}
本実施形態は、RAID6のRAIDグループの複数のディスク装置の内、2台のディスク装置が故障し、RAID6のRAIDグループが冗長性の無い縮退状態になると、以下に述べる処理手順を実行して、RAID6のRAIDグループの修復を行う。
(1)RAID6のRAIDグループにおいて2台のディスク装置の故障が発生したタイミングで、まず、先に故障したディスク装置(第1のディスク装置)におけるデータ復元が必要な領域を二分割し、第1のディスク装置のリカバリ未完了領域の一方の分割領域(第1の分割領域)の復元データと他方の分割領域(第2の分割領域)の復元データを、2台のホットスペア(または交換ディスク装置)に分割して書き込む。
(2)次に、2台のホットスペア(または交換ディスク装置)に分割して格納されている第1のディスク装置のリカバリ未完了領域の復元データを、一方のホットスペア(または交換ディスク装置)に集約する。この場合、第1のディスク装置のリカバリ未完了領域の復元データを集約するホットスペア(または交換ディスク装置)を、第1のリカバリ完了領域の復元データを格納していたホットスペア(または交換ディスク装置)とすることで、RAID6のRAIDグループを冗長性のある状態に復帰させることができる。
(3)続いて、後に故障したディスク装置(第2のディスク装置)のデータを復元し、その復元データを、ホットスペア(または交換ディスク装置)に書き込む。
上記処理手順において、(2)の復元データの集約処理と(3)の第2のディスク装置データの復元処理は、同時並行的に行ってもよい。
<本実施形態によるRAID6のRAIDグループの復旧方法>
図4は、本実施形態のディスクアレイサブシステム20によるRAID6のRAIDグループの復旧処理の概要を示す摸式図である。
図1に示すRLU230(230−0〜230−2)が、例えば、図4(a)に示すように、5台のディスク装置(HDD231またはSSD233)から成るRAID6構成であったと仮定する。このRAID6構成において、2台のディスク装置(HDD231またはSSD233)が故障した場合、本実施形態では、2台のホットスペアHS1、HS2(または二台の交換ディスク装置)を用いて、1台の故障ディスク装置のデータを復旧する。図4を参照しながら、より詳細に説明すると、故障したディスク装置(この場合、HDD4)のデータを、正常な残りのディスク装置(この場合、HDD1、HDD2、HDD5)に格納されているデータを基にして、1台ずつ順次ストライピング単位で復元していく。例えば、HDD4、HDD5の順でそれらのHDDのデータを復元していく。このとき、1台のHDDの復元データを二分割し、半分の復元データはホットスペアHS1に、残り半分の復元データはホットスペアHS2に書き込む。ディスク装置は、一般にリード性能に比べてライト性能が低く、データの書込み速度はデータの読出し速度よりも遅い。このため、故障したディスク装置の復元データを、ストライピング単位で、二台のホットスペアに分散して並列に書き込むようにすることで、1台の故障ディスク装置のデータの復元・格納処理を高速化する。この結果、RAID6のRAIDグループを冗長性の無い状態(2台のディスク装置のデータが同時に喪失している状態)から冗長性の有る状態(1台のディスク装置のデータのみが喪失している状態)へと復旧させる処理の高速化が可能となる。換言すれば、RAID6のRAIDグループが冗長性の無い状態となったとき、そのRAID6のRAIDグループを修復する処理を、冗長性が無い状態となっている期間を短縮しながら実現することができる。
{本実施形態におけるRAID6のRAIDグループの修復方法}
以下では、本実施形態のディスクアレイサブシステム20におけるRAID6のRAIDグループの3種類の修復手法を説明する。
本実施形態では、RAID6のRAIDグループにおいて二台のディスク装置が故障した状態(冗長性の無い縮退状態)になった場合、ホットスペアまたは交換ディスク装置に故障ディスク装置のデータを復元することで、RAID6のRAIDグループを修復する。本実施形態では、RAID6のRAIDグループを修復する際、(1)単純2分割データリカバリ方式、(2)同一領域2分割データリカバリ方式、(3)ストライプ2分割データリカバリ方式の3種類の方式のいずれかを使用する。RAID6のRAIDグループの修復に用いる方式は、RAID6のRAIDグループを構成するディスク装置の種類(HDDまたはSSD)、または、RAID6のRAIDグループがHDDで構成されている場合のI/O状況にしたがって自動選択される。
次に、上記3種類の方式を、図4(a)に示す縮退状態のRAID6のRAIDグループを具体例として取り上げながら説明する。
<単純2分割データリカバリ方式>
単純2分割データリカバリ方式は、先に故障した1台の故障ディスク装置のデータ(以下、1台の故障データと記載)を復元する際、その1台の故障データを上半分と下半分に2分割し、上半分の故障データと下半分の故障データを2多重で復元する。復元した上半分の故障データと下半分の故障データは、2多重で、それぞれ、一方のホットスペア(または故障ディスク装置)と他方のホットスペア(または交換ディスク装置)に書き込む。
ここで、1多重とはRAIDグループを構成する1つのディスク装置に対する1回の同時アクセスのことである。また、2多重とはRAIDグループを構成する1つのディスク装置に対する2回の同時アクセスのことである。単純2分割データリカバリ方式では、1台の故障ディスク装置のデータを半分に分けて2台のホットスペア(または交換ディスク装置)へ復元する。したがって、1台の故障ディスク装置のデータ復元には上半分と下半分それぞれの復元の為に2多重Readアクセスが必要となる。また、復元データの2台のホットスペア(または交換ディスク装置)への書込みは、1多重Writeアクセスによって実施される。上記データ復元は、1台の故障データを復元するために、2多重のReadアクセスが必要であること意味している。また、上記1多重の書込みは、2台のホットスペア(または交換ディスク装置)に1台の故障データを書き込むために、1多重のWriteアクセスが必要であることを意味している。
2台のホットスペア(または交換ディスク装置)への書き込みが完了した時点で、RAID6のRAIDグループは冗長性のある状態に復帰する。
次に、他方のホットスペア(または交換ディスク装置)から下半分の故障データを読出し、その下半分の故障データを一方のホットスペア(または交換ディスク装置)に書き込み、一方のホットスペア(または交換ディスク装置)に、先に故障したディスク装置の復元データを集約する。続いて、後に故障したディスク装置のデータを、通常の方式で、ホットスペア(または交換ディスク装置)に復元させる。
単純2分割データリカバリ方式は、2台のホットスペア(または交換ディスク装置)に分散して書き込まれた1台の故障データを、1台のホットスペア(または交換ディスク装置)に集約する処理をシーケンシャルなデータのRead/Writeで高速に実行できる。
図5は、単純2分割データリカバリ方式の処理手順のイメージを示す模式図である。
図4(a)と図5を参照しながら、単純2分割データリカバリ方式によるデータ復旧処理手順を詳細に説明する。尚、以後の説明では、ディスク装置がHDDである場合を例にして説明するが、単純2分割データリカバリ方式はHDD以外のディスク装置にも適用可能である。
図4(a)に示すように、5台のHDD231で構成されるRAID6のRAIDグループにおいて二台のHDD231(HDD3、4)が故障したものとする。この場合、HDD3がHDD4よりも先に故障したものとする。
この場合、HDD3、HDD4の順でデータ復旧を行なっていくが、HDD3のデータを復旧する際には、HDD3のデータを2分割し、HDD3の上半分データUR#3の復元データをホットスペアHS1に、下半分データLR#3の復元データをホットスペアHS2に書き込むようにする(図5(a)参照)。HDD3の上半分データUR#3と下半分データLR#3は、RAID6のRAIDグループにおいて正常に稼動しているHDD231(HDD1、2、5)に格納されているデータを基にして、ストライピング単位で復元する。このストライピング単位でのデータ復元処理において、上半分データUR#3のストライプデータと下半分データLR#3のストライプデータは、同時並行的に、それぞれ、ホットスペアHS1、HS2に書き込む。このとき、上半分データUR#3はホットスペアHS1の上半分領域に書込み、下半分データLR#3はホットスペアHS2の下半分領域に書き込む。図5(b)は、ホットスペアHS1、HS2に、故障ディスク装置HDD4の全ての復元データが書き込まれた状態を示している。図5(b)に示すように、ホットスペアHS1の上半分領域に故障ディスク装置HDD3の上半分データUR#3の復元データが格納され、ホットスペアHS2の下半分領域に故障ディスク装置HDD3の下半分データLR#3の復元データが格納される。
次に、ホットスペアHS2から故障ディスク装置HDD3の下半分データLR#3の復元データをシーケンシャルに読出し、その復元データをホットスペアHS1に格納されている上半分データUR#3の復元データに続けてシーケンシャルに書き込んでいく(図5(c)参照)。このようにして、ホットスペアHS2に格納されている故障ディスク装置HDD3の下半分データLR#3の復元データを、ストライピング単位で、ホットスペアHS1にコピーしていくことで、最終的に、ホットスペアHS1に格納されているデータとホットスペアHS2に格納されているデータがホットスペアHS1に集約される(図5(d)参照)。ホットスペアHS1に故障ディスク装置HDD3の復元データが集約されると、ホットスペアHS1をRAID6のRAIDグループに論理的に組み込む。これにより、RAID6のRAIDグループは冗長状態に回復する。
次に、故障ディスク装置HDD4のデータの復旧処理に移る。故障ディスク装置HDD4のデータ復旧においては、故障ディスク装置HDD4の復元データをストライピング単位で復元し、その復元したストライプデータをホットスペアHS2にシーケンシャルに書き込んでいく(図5(e)参照)。
ホットスペアHS2への故障ディスク装置HDD4の復元データの書込みが完了すると、ホットスペアHS2をRAID6のRAIDグループに論理的に組み込む。これにより、RAID6のRAIDグループは正常な状態に戻る。
以上述べたように、単純2分割データリカバリ方式は、2つのホットスペア(または交換ディスク装置)に分散記録した先に故障したディス装置の復元データを一方のホットスペア(または交換ディスク装置)に集約する処理を、シーケンシャルなデータのRead/Writeで実現できる。
<同一領域2分割データリカバリ方式>
同一領域2分割データリカバリ方式は、先に故障したディスク装置のデータを復元する処理を、RAID6のRAIDグループの正常なディスク装置からの1多重のシーケンシャルな読み出しで実施し、1回の読出しデータから生成した復元したデータを2分割して、各2分割復元データを2台のホットスペア(または交換ディスク装置)に分散して書き込む。例えば、復元データの上半分をホットスペア(または交換ディスク装置)に、下半分をホットスペア(または交換ディスク装置)に書き込む。そして、2台のホットスペア(または交換ディスク装置)への2分割復元データの書込みが完了すると、その時点で、RAID6のRAIDグループは冗長性のある状態に復帰した事になり、その後、2台のホットスペア(または交換ディスク装置)から2分割復元データを読出し、一方のホットスペア(または交換ディスク装置)に、それら読み出した2分割復元データを書き込むことで、先に故障したディスク装置のデータを一方のホットスペア(または交換ディスク装置)に復元する。続いて、後に故障したディスク装置のデータを、通常の方式で、ホットスペア(または交換ディスク装置)に復元させる。
図6は、同一領域2分割データリカバリ方式の処理手順のイメージを示す模式図である。
図4(a)と図5を参照しながら、同一領域2分割データリカバリ方式によるデータ復旧処理手順を詳細に説明する。尚、以後の説明では、ディスク装置がHDDである場合を例にして説明するが、単純2分割データリカバリ方式はHDD以外のディスク装置にも適用可能である。
図4(a)に示す5台のHDD231で構成されるRAID6のRAIDグループにおいて二台のHDD231(HDD3、4)が故障したものとする。この場合、HDD3がHDD4よりも先に故障したものとする。
同一領域2分割データリカバリ方式においても、単純2分割データリカバリ方式と同様に、HDD3、HDD4の順でデータ復旧を行なう。HDD3のデータを復旧する際には、RAID6のRAIDグループの正常なHDD(HDD1、2、5)から1回の1多重で読み出したデータを基にして復元されたデータを2分割し、一方(上半分)の分割復元データ(第1の分割復元データ)をホットスペアHS1に、他方(下半分)の分割復元データ(第2の分割復元データ)をホットスペアHS2に2多重で書き込む(図6(a)参照)。以上のような処理を、HDD3の全てのデータについて、先頭からシーケンシャルに実施し、ホットスペアHS1にHDD3の全データの第1の分割復元データUD#3を格納し、ホットスペアHS2にHDD3の全データの第2の分割復元データLD#3を格納する(図6(b)参照)。
次に、ホットスペアHS1、HS2から、それぞれ、第1の分割復元データと第2の分割復元データを書込みデータ単位でシーケンシャルに読出し、ホットスペアHS1に第1の分割復元データと第2の分割復元データを交互にシーケンシャルに書き込む集約処理を行う(図6(c)参照)。図6(d)は、上記集約処理が完了した状態示す。この例では、ホットスペアHS1に、故障ディスク装置HDD3のデータが復旧される。続いて、HDD4のデータを、RAID6のRAIDグループの正常なHDD(HDD1、2、5)に格納されているデータを基に復元し、その復元データをホットスペアHS2にシーケンシャルに書き込み(図6(e)参照)、ホットスペアHS2に故障ディスク装置HDD4のデータを復旧する。
以上述べたように、同一領域2分割データリカバリ方式は、1台のディスク装置(例えば、先に故障したディスク装置)のデータ復旧処理を、1多重のシーケンシャルなデータ読出し(RAID6のRAIDグループの正常なディスク装置からのデータ読み出し)と、2多重のシーケンシャルなデータ書込み(ホットスペアHS1、HS2への各分割復元データの分散書込み)で実現できる。
<ストライプ2分割データリカバリ方式>
ストライプ2分割データリカバリ方式は、先に故障したディスク装置のデータを復元する処理を、同一領域2分割データリカバリ方式と同様に、RAID6のRAIDグループの正常なディスク装置からの1多重のシーケンシャルな読み出しで実施し、1回の読出しデータから生成した復元したデータを2分割して、各2分割復元データを2台のホットスペア(または交換ディスク装置)に分散して書き込む。但し、2分割復元データのホットスペア(または交換ディスク装置)への書込み位置が同一領域2分割データリカバリ方式とは異なる。ストライプ2分割データリカバリ方式は、2分割復元データを、2分割復元データのサイズだけ空けながら、ホットスペア(または交換ディスク装置)に飛び飛びに書き込む。このとき、一方のホットスペア(または交換ディスク装置)と他方のホットスペア(または交換ディスク装置)とで、2分割復元データの配置位置が、2分割復元データのサイズ分だけずれるようにする。すなわち、一方のホットスペア(または交換ディスク装置)における空隙領域の位置が他方のホットスペア(または交換ディスク装置)の分割復元データの格納領域の位置となるような分割復元データの書込みを行う。このような分割復元データの書込みを行うことで、2台のホットスペア(または交換ディスク装置)に分散した復元データを一方のホットスペア(または交換ディスク装置)に集約する際、復元データが集約される側のホットスペア(または交換ディスク装置)に格納されている分割復元データを再配置する処理が不要になる。つまり、復元データが集約される側のホットスペア(または交換ディスク装置)に格納されている分割復元データは移動する必要がない。2台のホットスペア(または交換ディスク装置)への書き込みが完了した時点で、RAID6のRAIDグループは冗長性のある状態に復帰する。
次に、先に故障したディスク装置のデータをホットスペア(または交換ディスク装置)に復旧させる処理を行い、続いて、後に故障したディスク装置のデータを、通常の方式で、ホットスペア(または交換ディスク装置)に復元する。
ストライプ2分割データリカバリ方式は、1台のディスク装置(例えば、先に故障したディスク装置)のデータ復旧処理を、1多重のシーケンシャルなデータ読出し(RAID6のRAIDグループの正常なディスク装置からのデータ読み出し)と、ランダムなデータ書込み(ホットスペアHS1、HS2への各分割復元データの分散書込み)で実現できる。また、分散した復元データを1台のホットスペア(または交換ディスク装置)に集約する処理は、ランダムなデータのRead/Writeで行われる。
図7は、ストライプ2分割データリカバリ方式の処理手順のイメージを示す模式図である。図7において、ホットスペアHS1、HS2はSSDである。
図4(a)と図7を参照しながら、ストライプ2分割データリカバリ方式によるデータ復旧処理手順を詳細に説明する。尚、以後の説明では、ディスク装置がSSDである場合を例にして説明するが、ストライプ2分割データリカバリ方式はSSD以外のディスク装置にも適用可能である。
図4(a)に示す5台のSSD233で構成されるRAID6のRAIDグループにおいて二台のSSD233(SSD3、4)が故障したものとする。この場合、SSD3がSSD4よりも先に故障したものとする。
図4(a)に示す5台のSSD233で構成されるRAID6のRAIDグループにおいて二台のSSD233(SSD3、4)が故障したものとする。この場合、SSD3がSSD4よりも先に故障したものとする。
ストライプ2分割データリカバリ方式においても、単純2分割データリカバリ方式と同様に、故障したディスク装置から順にデータ復旧を行なう。すなわち、SSD3、SSD4の順にデータ復旧を行う。SSD3のデータを復旧する際には、RAID6のRAIDグループの正常なSSD(SSD1、2、5)から1回の1多重で読み出したデータを基にして復元されたデータを2分割し、一方(上半分)の分割復元データ(第1の分割復元データ)をホットスペアHS1に、他方(下半分)の分割復元データ(第2の分割復元データ)をホットスペアHS2に書き込む(図7(a)参照)。このとき、同一領域2分割データリカバリ方式と同様に、第1の分割復元データをホットスペアHS1に、第2の分割復元データをホットスペアHS2に書き込むが、ホットスペアHS1とホットスペアHS2において、第1の分割復元データと第2の分割復元データの書込み位置(書き込みアドレス)が交差するようにする。すなわち、最初の第1の分割復元データをホットスペアHS1のアドレス1に、最初の第2の分割復元データをホットスペアHS2のアドレス2に書き込む。以後同様にして、n(n=2,3,4,・・・)番目以降の第1の分割復元データをホットスペアHS1のアドレス(2n−1)に、第2の分割復元データをホットスペアHS2のアドレス2nに書き込んでいく。以上のような処理を、SSD3の全てのデータについて、先頭からシーケンシャルに実施することで、ホットスペアHS1にSSD3の全復元データの上半分を格納し、ホットスペアHS2にSSD3の全復元データの下半分を格納する。図7(b)は、故障ディスク装置HDD3のデータ復元完了後のホットスペアHS1、HS2の状態を示している。
次に、ホットスペアHS2から、第2の分割復元データを先頭から順に読出し、その読み出した第2の分割復元データを、ホットスペアHS1のアドレス2、4、6・・・に順次書き込んでいく(図7(c)参照)。ホットスペアHS2に格納されている全ての第2の分割復元データをホットスペアHS1に書き込んだ時点で、ホットスペアHS1にSSD3の復元データを集約する処理が完了する(図7(d)参照)。この集約処理において、ホットスペアHS2からの第2の分割復元データの読出しと該2分割復元データのホットスペアHS1への書込みは、ホットスペアHS1、HS2に対するランダムアクセス(アドレスを1アドレス分だけずらしていくアクセス)により実行される。
続いて、SSD4のデータを、RAID6のRAIDグループの正常なSSD(SSD1、2、5)に格納されているデータを基に復元し、その復元データをホットスペアHS2にシーケンシャルに書き込み(図6(e)参照)、ホットスペアHS2に故障ディスク装置SSD4のデータを復旧する。
以上述べたように、ストライプ2分割データリカバリ方式は、1台のディスク装置(例えば、先に故障したディスク装置)のデータ復旧処理を、1多重のシーケンシャルなデータ読出し(RAID6のRAIDグループの正常なディスク装置からのデータ読み出し)で実現できる。また、2台のディスク装置(または交換ディスク装置)に分散記録した1台のディスク装置(例えば、先に故障したディスク装置)の復元データを1台のディスク装置(または交換ディスク装置)に集約する処理において、復元データが集約される側のディスク装置(または交換ディスク装置)のデータ配置を変更する処理が不要である。換言すれば、復元データが集約される側のディスク装置(または交換ディスク装置)のデータ配置をそのまま利用できる。
{HDDとSSDが混在して搭載されているRAID6のRAIDグループを有するディスクアレイサブシステム(ディスクアレイ装置)におけるデータ復旧方式の自動選択方法}
上記3種類のデータ復旧方式によるデータ復旧機能を実装しているディスクアレイサブシステム(ディスクアレイ装置)においてRAID6のRAIDグループの2台のディスク装置が故障した場合におけるデータ復旧方式の自動選択方法について考察する。
RAID6のRAIDグループのディスク装置全てSSDから構成されている場合には、ストライプ2分割データリカバリ方式を選択する。これは、SSDの場合にはシーケンシャルアクセスの利点があまりなく、読み出し元のディスク装置に対するReadコマンドを1多重で実行できるからである。
RAID6のRAIDグループのディスク装置がHDDから構成されており、I/Oが無い状況の場合には、同一領域2分割データリカバリ方式を選択する。これは、上記状況時には、同一領域2分割データリカバリ方式が1台の故障ディスク装置のデータ復旧(先に復旧する故障ディスク装置のデータ復旧)において、読み出し元のディスク装置と書き込み先のディスク装置(ホットスペアまたは交換ディスク装置)に対するデータのRead/Writeのシーケンシャル性を最大限に発揮できるからである。
RAID6のRAIDグループのディスク装置がHDDから構成されており、一定量のI/Oが有る状況の場合には、単純2分割データリカバリ方式を選択する。これは、このような状況においては、読み出し元のディスク装置並びに書き込み先のディスク装置に対するシーケンシャルアクセスを活かせる単純2分割データリカバリ方式と同一領域2分割データリカバリ方式との間で、1台の故障ディスク装置のデータ復旧(先に復旧する故障ディスク装置のデータ復旧)の性能差があまりないので、2台のホットスペア(または交換ディスク装置)に分散記録されている1台の故障ディスク装置の復元データを集約する処理を、より高速に実行できる単純2分割データリカバリ方式を選択する。
{RAID6のRAIDグループにおいて2台のディスク装置に故障が発生した場合におけるデータ復旧の全体処理}
図8は、本実施形態のディスクアレイサブシステム20において、RAID6のRAIDグループにおいて2台のディスク装置に故障が発生した場合におけるデータ復旧処理の全体的な手順を示すフローチャートである。図8に示す処理は、主に、CM210(CM210−0〜2)の制御によって行われる。
ディスクアレイサブシステム20のいずれかのRAID6のRAIDグループにおいて2台のディスク装置(HDD231またはSSD233)が故障し、RAID6のRAIDグループが冗長性の無い縮退状態になると(ステップS1)、そのRAID6のRAIDグループを管理しているCM210は縮退した2台のディスク装置の内、先にデータ復旧を行うディスク装置のデータ復旧方式を自動選択する(ステップS2)。このステップS2のデータ復旧方式の自動選択処理の詳細は後述する。
CM210は、ステップS2で選択したデータ復旧方式による縮退した1台目のディスク装置のデータ復旧処理を開始する(ステップS3)。そして、CM210は、縮退した1台のディスク装置のデータの2台の予備ディスク装置(ホットスペアHS1、HS2)への復元を完了する(ステップS4)。ここで、縮退したディスク装置とは、RAID6のRAIDグループから論理的に切り離された状態にある故障したディスク装置のことである。
続いて、CM210は、ステップS2で選択した方式により、縮退した1台目のディスク装置の復元データを、2台の予備ディスク装置(ホットスペアHS1、HS2)から1台の予備ディスク装置(ホットスペアHS1)に集約する(ステップS5)。
以上の処理により、故障した1台目のディスク装置のデータが1台の予備ディスク装置(ホットスペアHS1)に復旧される。CM210は、その1台の予備ディスク装置をRAID6のRAIDグループに論理的に組み込む。これにより、RAID6のRAIDグループは、冗長性の有る縮退状態になる。
次に、CM210は、縮退した2台目のディスク装置のデータを予備ディスク装置(ホットスペアHS2)に復元する処理を開始する(ステップS6)。そして、CM210は、縮退した2台目の全てのデータを予備ディスク装置(ホットスペアHS2)に書込み、2台目の縮退したディスク装置のデータを予備ディスク装置(ホットスペアHS2)に復旧させ、その予備ディスク装置をRAID6のRAIDグループに論理的に組み込むことで、2台の縮退したディスク装置の復旧処理を完了させる(ステップS7)。
ステップS7の処理が終了した時点で、RAID6のRAIDグループは正常な状態に復帰する。
{データ復旧方式の自動選択処理}
図9は、図8のステップS2のデータ復旧方式の自動選択処理の詳細を示すフローチャートである。図9において、ステップS21〜S26が、ステップS2の処理に該当する。図9のフローチャートに示す処理は、例えば、CPU212(212−0〜2)のよって実行されるプログラムによって実現される。この場合、このプログラムは、図8のフローチャートのステップS1において、サブルーチンとして呼び出される。
図9のフローチャートに示すデータ復旧方式の自動選択処理の手順を説明する。
CM210は、まず、構成情報216−iを参照して、全てをSSD233で構成されたRAID6のRAIDグループの縮退であるか判断する(ステップS21)。そして、縮退したRAID6のRAIDグループが全てSSD233でいないと判断すれば(ステップS21、No)、データ復旧の処理方式として「ストライプ2分割データリカバリ方式」を選択し(ステップS22)、ステップS26に移行する。
一方、CM210は、ステップS21において、縮退したRAID6のRAIDグループ(該当RAIDグループ)を構成するディスク装置が全てSSDでないと判断すれば(ステップS21、No)、次に、I/O管理テーブル215を参照して、該当RAIDグループへのI/Oの有無を判別する(ステップS23)。CM210は、ステップS23において、該当RAIDグループへのI/Oが有ると判断すれば(ステップS23、Yes)、データ復旧の処理方式として「単純2分割データリカバリ方式」を選択し(ステップS24)、ステップS26に移行する。一方、CM210は、ステップS23において、該当RAIDグループへのI/Oが無いと判断すれば(ステップS23、No)、データ復旧の処理方式として「同一領域2分割データリカバリ方式」を選択し、ステップS26に移行する。尚、本実施形態のステップS23は「該当RAIDグループへのI/Oの有無」による判別処理を行っているが、ステップS23の判別処理を、「該当RAIDグループへのI/Oが一定量以上であるか否か」に変えてもよい。
CM210は、ステップS26において、選択したデータ復旧の処理方式を(図8のフローチャートに示す処理を実行するメインルーチンに)応答する。そして、図8のフローチャートのステップS2の処理を終了する。
{単純2分割データリカバリ方式の処理手順}
図10は、単純2分割データリカバリ方式の処理手順を示すフローチャートである。
図10のフローチャートに示す処理は、図8のフローチャートのステップS2において、データリカバリ方式として単純2分割データリカバリ方式が選択された場合の処理SA(ステップS3〜S7の処理)に該当する。
図10のフローチャートの処理を説明する。
CM210は、縮退した1台目のディスク装置のデータの上半分をホットスペアHS1へ、下半分をホットスペアHS2へ、同時並行的に復元する(ステップS4A−1)。CM210は、ステップ4A−1の処理を、縮退した1台目のディスク装置の全てのデータについて実施することで、ホットスペアHS1、HS2へ縮退した1台目のディスク装置のデータを復元する処理を完了する(ステップ4A−2)。
CM210は、ホットスペアHS2の下半分に格納されているデータを読み出し、その読み出したデータをホットスペアHS1の下半分に書込む処理を実施し(ステップ5A−1)、1台目の縮退したディスク装置の全データをホットスペアHS1に集約する処理を完了する(ステップ5A−2)。
CM210は、縮退した2台目のディスク装置のデータをホットスペアHS2に復元する処理を開始する(ステップ6A)。そして、その縮退した2台目のディスク装置のデータをホットスペアHS2に復元することで、ホットスペアHS1、HS2に、それぞれ、縮退した1台目のディスク装置のデータ、縮退した2台目のディスク装置のデータを復元し、縮退した2台のディスク装置のデータのホットスペアHS1、HS2への復旧を完了する(ステップ7A)。
{同一領域2分割データリカバリ方式の処理手順}
図11は、同一領域2分割データリカバリ方式の処理手順を示すフローチャートである。図11のフローチャートに示す処理は、図8のフローチャートのステップS2において、データリカバリ方式として同一領域2分割データリカバリ方式が選択された場合の処理SA(ステップS3〜S7の処理)に該当する。
図11のフローチャートの処理を説明する。
CM210は、縮退した1台目のディスク装置のデータをホットスペアHS1、HS2に復元する処理を開始する(ステップS3B)。
縮退した1台目のディスク装置のデータ復元は1回または複数回に分けて行う。複数回に分けてデータ復元を行う際には、RAID6のRAIDグループで正常に稼動しているディスク装置から複数回に分けてデータを読み出す必要がある。この場合、RAID6のRAIDグループで正常に稼動している複数のディスク装置から1多重でデータ読み出しを行うが、各正常なディスク装置から1回のReadアクセスで読み出すデータの単位はストライピング単位の2の倍数である。CM210は、縮退した1台目のディスク装置の1回目の復元データの内、その復元データの上半分をホットスペアHS1に、下半分をホットスペアHS2に分割して書き込む。以後、2回目以降の復元データについても同様の処理を行う。ホットスペアHS1、HS2への復元データの書込みは、ホットスペアHS1、HS2に復元データが連続して格納されるようにして行う(ステップS4B−1)。ここで、縮退した1台目のディスクアレイ装置のデータは、RAID6のRAIDグループで正常に稼動しているディスクアレイ装置に格納されているデータを基にストライピング単位で復元される。したがって、各回の復元データの最小単位はストライプデータである。CM210は、RAID6のRAIDグループにおいて正常に稼動している全てのディスク装置から同時並行的に読み出したデータを基にして、縮退した1台目のディスク装置のデータを復元する。
CM210は、ステップS4B−1の処理により、縮退した1台目のディスク装置の全データをホットスペアHS1、HS2に分割・復元する処理を完了する(ステップS4B−2)。
次に、CM210は、ホットスペアHS1に格納されているデータを、縮退した1台目のディスク装置と同じ配置となるように再配置する。このとき、同時に、ホットスペアHS2に格納されているデータについても、縮退した1台目のディスク装置のデータと同じ配置となるように、ホットスペアHS1にコピーする(ステップS5B−2)。
CM210は、ステップS5B−2の処理により、縮退した1台目のディスク装置のデータをホットスペアHS1に集約する処理を完了する(ステップS5B−2)。この段階で、縮退した1台目のディスク装置のデータがホットスペアHS1に復旧される。
CM210は、縮退した2台目のディスク装置のデータをホットスペアHS2へ回復する処理を開始する(ステップS6B)。CM210は、縮退した2台目のディスク装置の全データをホットスペアHS2に復元し、ホットスペアHS1、HS2に、2台の縮退したディスク装置のデータを復旧する処理を完了する(ステップS7B)。
{ストライプ2分割データリカバリ方式の処理手順}
図12は、ストライプ2分割データリカバリ方式の処理手順を示すフローチャートである。図12のフローチャートに示す処理は、図8のフローチャートのステップS2でストライプ2分割データリカバリ方式が自動選択された場合における図8のフローチャートのステップS3〜S7の処理に該当する。
図12のフローチャートを説明する。
CM210は、縮退した1台目のディスク装置のデータをホットスペアHS1、HS2に復元する処理を開始する(ステップS3C)。
縮退した1台目のディスク装置の1回目の復元データの内、その復元データの上半分をホットスペアHS1に、下半分をホットスペアHS2に分割して書き込む。このとき、ホットスペアHS1、HS2への復元データ書込み位置が、縮退した1台目のディスク装置の配置位置と同じ位置となるようにする。以後、2回目以降の復元データについても同様の処理を行う。ホットスペアHS1、HS2への復元データの書込みは、ホットスペアHS1、HS2に復元データが連続して格納されるようにして行う(ステップS4C−1)。ここで、縮退した1台目のディスクアレイ装置のデータは、RAID6のRAIDグループで正常に稼動しているディスクアレイ装置に格納されているデータを基にストライピング単位で復元されるの。したがって、各回の復元データの最小単位はストライプデータである。CM210は、RAID6のRAIDグループにおいて正常に稼動している全てのディスク装置から同時並行的に読み出したデータを基にして、縮退した1台目のディスク装置のデータを復元する。このとき、RAID6のRAIDグループにおいて正常に稼動しているディスク装置から1回のReadコマンドで読み出すデータの単位は、ストライプデータの倍数とする。
CM210は、ステップS4C−1の処理により、ホットスペアHS1、HS2への縮退した1台目のディスク装置の全データの復元を完了する(ステップS4C−2)。
CM210は、次に、ホットスペアHS2に格納されているデータを、縮退した1台目のディスク装置のデータ配置と同じになるように、ホットスペアHS1にコピーし(ステップS5C−1)、縮退した1台目のディスク装置の復元データをホットスペアHS1へ集約する(ステップS5C−2)。この段階で、縮退した1台目のディスク装置のデータがホットスペアHS1に復旧される。
CM210は、続いて、縮退した2台目のディスク装置のデータをホットスペアHS2へ回復する処理を開始する(ステップS6C)。そして、縮退した2台目の全データをホットスペアHS2に復旧することで、縮退した2台のディスク装置のデータのホットスペアHS1、HS2への復旧を完了する(ステップS7C)。
[本実施形態の効果]
上述した本実施形態のディスクアレイサブシステム20によれば、以下のような効果が得られる。
(1)RAID6のRAIDグループにおいて2台のディスク装置が故障した場合、1台目の故障ディスク装置の復元データを2台の予備ディスク装置に同時並行的に書き込むようにするため、1台目の故障ディスク装置のデータ復旧に要する時間を短縮できる。
このため、さらなるディスク装置の故障発生によるデータ喪失の可能性がある時間を減少でき、RAID6のRAIDグループの信頼性を向上できる。また、2台のディスク装置が故障した縮退状態から1台のディスク装置が故障した縮退状態(冗長性の有る縮退状態)への復旧を早くできるため、RAID6のRAIDグループの性能低下時間を減少できる。
(2)前記特許文献5に開示されている故障ディスク装置の復元データを複数のホットスペア(スペアディスク装置)にストライピングして格納する方法と比較した場合、以下のような利点を有する。
(2−1)復元データを予備ディスク装置に書き込む際、縮退したディスク装置と同数の予備ディスク装置しか使用しないので、ディスク装置の資源は最低限で済む。
(2−2)1台目の故障ディスク装置のデータを2台の予備ディスク装置に復旧した後、それら2台の予備ディスク装置に分散している1台目の故障ディスク装置の復元データを自動的に一方の1台の予備ディスク装置に集約する。このため、1台目の故障ディスク装置のデータ復旧を完了した時点で、RAID6のRAIDグループを、その故障ディスク装置が故障する前と同じ性能特性に戻すことができる。
(3)RAID6のRAIDグループにおいて2台のディスク装置が故障した場合の復旧方式として、「単純2分割データリカバリ方式」、「同一領域2分割データリカバリ方式」及び「ストライプ2分割データリカバリ方式」の3種類の方式の中からいずれか1つを選択可能である。このため、I/O負荷状況やRAID6のRAIDグループを構成するディスク装置の種類に応じて、常に最適な復旧方式を選択して2台の故障ディスク装置のデータを復元することで、高度なデータ復旧処理性能を提供できる。
本発明は、上述した実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内で種々に変形して実施することができる。例えば、図1のディスクアレイサブシステム20は担当LUN制御方式のディスクアレイ装置であるが、本発明は、担当LUN制御方式以外のアーキテクチャを有するディスクアレイ装置にも適用可能である。また、本発明の技術は、RAID6のRAIDグループを有するディスクアレイ装置に限定されるものではなく、3台以上のディスク装置が故障しても縮退状態での動作を継続できるRAID構成のRAIDグループを有するディスクアレイ装置にも応用可能である。これは、当業者であれば容易に理解できるであろう。
上述した実施形態に関し、さらに以下の付記を開示する。
(付記1)
2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置であって、
前記RAIDグループにおいて失われた冗長度と同数の記憶装置が故障したとき、先にデータ復旧を行う第1の故障記憶装置のデータ復旧方式を、前記RAIDグループを構成する記憶装置の種類と前記RAIDグループに対するI/O状況に基づいて複数の方式の中から選択するデータ復旧方式選択手段と、
該データ復旧方式選択手段により選択されたデータ復旧方式により、前記第1の故障記憶装置の復元データを2台の復元先記憶装置に分割して書き込むデータ復元手段と、
該データ復元手段により前記2台の復元先記憶装置に分割して書き込まれた前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
を備えることを特徴とするディスクアレイ装置。
(付記2)
付記1記載のディスクアレイ装置であって、
前記複数のデータ復旧方式は、前記第1の故障記憶装置の復元データの上半分と下半分の復元データを、前記2台の復元先記憶装置に分けて書き込む第1のデータ復旧方式と、前記RAIDグループに属している正常稼動の記憶装置に対する1回のReadアクセスにより前記第1の故障記憶装置の復元データを生成する毎に該生成された復元データを2分割し、該2分割により得られた2つの分割復元データを、前記2台の復元先記憶装置に分けて書き込む第2のデータ復旧方式を含むことを特徴とする。
(付記3)
付記2記載のディスクアレイ装置であって、
請求項2記載のディスクアレイ装置であって、
前記第1のデータ復旧方式は、前記2台の復元先記憶装置において、前記第1の故障記憶装置の上半分の復元データの格納領域と下半分の復元データの格納領域が互いに重ならない位置となるように、前記第1の故障記憶装置の復元データの書き込みを行う方式であり、前記第2のデータ復旧方式には、前記2つの分割復元データを前記2台の復元先記憶装置の連続領域にシーケンシャルに書き込む方式が含まれ、
前記データ復旧方式選択手段は、前記RAIDグループを構成する記憶装置がHDDである場合において、該RAIDグループに対するI/Oが無いときには前記第1のデータ復旧方式を選択し、該RAIDグループに対してI/Oが有るときには前記第2のデータ復旧方式を選択することを特徴とする。
(付記4)
付記3記載のディスクアレイ装置であって、
前記第2のデータ復旧方式には、前記2台の復元先記憶装置においてそれぞれの空き領域が交差するように、前記2つの分割復元データを前記2台の復元先記憶装置の飛び飛びの領域に分けて書き込む第3のデータ復旧方式が含まれ、
前記データ復旧方式選択手段は、前記RAIDグループを構成する記憶装置がSSDである場合には前記第3のデータ復旧方式を選択することを特徴とする。
(付記5)
2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置であって、
前記RAIDグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、先にデータ復旧を行う第1の故障記憶装置のデータを復元し、前記第1の故障記憶装置の復元データの上半分と下半分を、2台の復元先記憶装置に分けて書き込むデータ復元手段と、
該データ復元手段により前記2台の復元先記憶装置に分離して格納された前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
を備えることを特徴とするディスクアレイ装置。
(付記6)
2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置であって、
前記RAIDグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、先にデータ復旧を行う第1の故障記憶装置のデータを、該RAIDグループの正常稼動の複数の記憶装置に対する多重Readアクセスにより所定サイズ単位で順次復元し、復元する毎に前記第1の故障記憶装置の所定サイズの復元データを2分割し、該2分割により得られた2つの分割復元データを、2台の復元先記憶装置の連続領域に分けて書き込むデータ復元手段と、
該データ復元手段により前記2台の復元先記憶装置に分散して格納された前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
を備えることを特徴とするディスクアレイ装置。
(付記7)
2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置であって、
前記RAIDグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、先にデータ復旧を行う第1の故障記憶装置のデータを、該RAIDグループに属する正常稼動の複数の記憶装置に対する多重Readアクセスにより所定サイズ単位で順次復元し、復元する毎に該所定サイズの復元データを2分割し、該2分割により得られた2つの分割復元データを2台の復元先記憶装置に分けて書き込むデータ復元手段と、
該データ復元手段により前記2台の復元先記憶装置に分散して格納されている前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
を備え、
前記データ復元手段は前記第1の故障記憶装置の分割復元データを前記所定サイズの間隔を空けながら前記2台の復元先記憶装置に飛び飛びに書き込み、前記2台の復元先記憶装置の前記第1の故障記憶装置の分割復元データの書込み領域は交差していることを特徴とするディスクアレイ装置。
(付記8)
2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置において2台の記憶装置が故障した場合のデータ復旧方法であって、
前記RAIDグループにおいて失われた冗長度と同数の記憶装置が故障したとき、先にデータ復旧を行う第1の故障記憶装置のデータ復旧方式を、前記RAIDグループを構成するディスク装置の種類と前記RAIDグループに対するI/O状況に基づいて複数の方式の中から選択するデータ復旧方式選択ステップと、
該データ復旧方式選択ステップにより選択されたデータ復旧方式により、前記第1の故障記憶装置の復元データを2台の復元先記憶装置に分割して書き込むデータ復元ステップと、
該データ復元ステップにおいて前記2台の復元先記憶装置に分割して書き込まれた前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する復元データ集約ステップと、
を備えることを特徴とするディスクアレイ装置のデータ復旧方法。
(付記9)
付記5記載のディスクアレイ装置のデータ復旧方法であって、
前記複数のデータ復旧方式は、前記第1の故障記憶装置の復元データを上半分と下半分に分割し、上半分の復元データと下半分の復元データを、前記2台の復元先記憶装置に分けて書き込む第1のデータ復旧方式と、前記RAIDグループに属している正常稼動の記憶装置から1回のReadアクセスにより読み出したデータから生成した前記第1の故障記憶装置の復元データを2分割し、該2分割により得られた2つの分割復元データを、前記2台の復元先記憶装置に分けて書き込む第2のデータ復旧方式を含むことを特徴とする。
(付記10)
付記9記載のディスクアレイ装置のデータ復旧方法であって、
前記第1のデータ復旧方式は、前記2台の復元先記憶装置において、前記第1の故障記憶装置の上半分の復元データの格納領域と下半分の復元データの格納領域が互いに重ならない位置となるように、前記第1の故障記憶装置の復元データの書き込みを行う方式であり、前記第2のデータ復旧方式には、前記2つの分割復元データを、前記2台の復元先記憶装置の連続領域にシーケンシャルに書き込む方式が含まれ、
前記データ復旧方式選択ステップにおいて、前記RAIDグループを構成する記憶装置がHDDである場合、該RAIDグループに対するI/Oが無いときには前記第1のデータ復旧方式を選択し、該RAIDグループに対してI/Oが有るときには前記第2のデータ復旧方式を選択することを特徴とする。
(付記11)
付記10記載のディスクアレイ装置のデータ復旧方法であって、
前記第2のデータ復旧方式には、前記2つの分割復元データを、前記2台の復元先記憶装置の空き領域が交差した位置関係となるように、前記2台の復元先記憶装置の飛び飛びの領域に書き込む第3のデータ復旧方式が含まれ、
前記データ復旧方式選択ステップにおいて、前記RAIDグループを構成する記憶装置がSSDである場合には前記第3のデータ復旧方式を選択することを特徴とする。
(付記12)
2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置のデータ復旧方法であって、
前記RAIDグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、2台の故障記憶装置の内、先にデータ復旧を行う第1の故障記憶装置のデータを復元し、前記第1の故障記憶装置の上半分の復元データと下半分の復元データを、前記2台の復元先記憶装置の連続領域に分散して書き込むデータ復元ステップと、
該データ復元ステップにおいて前記2台の復元先記憶装置に分散して格納された前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する復元データ集約ステップと、
を備えることを特徴とするディスクアレイ装置のデータ復旧方法。
(付記13)
2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置のデータ復旧方法であって、
前記RAIDグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、2台の故障記憶装置の内、先にデータ復旧を行う第1の故障記憶装置のデータを、該RAIDグループ正常稼動の複数の記憶装置に対する多重Readアクセスにより得られるデータを基に所定サイズ単位で順次復元し、前記第1の故障記憶装置のデータを所定サイズで復元する毎に該所定サイズの復元データを2分割し、該2分割により得られた2つの分割復元データを、2台の復元先記憶装置の連続領域に分散して書き込むデータ復元ステップと、
該データ復元ステップによって前記2台の復元先記憶装置に分散して格納された前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する復元データ集約ステップと、
を備えることを特徴とするディスクアレイ装置のデータ復旧方法。
(付記14)
2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置のデータ復旧方法であって、
前記RAIDグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、2台の故障記憶装置の内、先にデータ復旧を行う第1の故障記憶装置のデータを、該RAIDグループに属している正常に稼動している複数の記憶装置に対する多重Readアクセスにより得られるデータを基に所定サイズ単位で順次復元し、前記第1の故障記憶装置のデータを所定サイズで復元する毎に、該所定サイズの復元データを2分割し、該2分割により得られた2つの分割復元データを、2台の復元先記憶装置に、前記所定サイズの間隔を空けながら飛び飛びの領域に分散して書き込んでいくデータ復元ステップと、
該データ復元ステップにおいて前記2台の復元先記憶装置に分散して格納された前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する復元データ集約ステップと、
を備え、
前記2台の復元先記憶装置の飛び飛びの領域は、互いに前記所定サイズの分だけずれた位置に配置されることを特徴とするディスクアレイ装置のデータ復旧方法。
20 ディスクアレイサブシステム(ディスクアレイ装置)
210(210−0〜210−2) CM(Controller Module)
211(211−0〜211−2) CA(Cannel Adaptor)
212(212−0〜212−2) CPU(Central Processing Unit)
213(213−0〜213−2) キャッシュメモリ
214(214−0〜214−2) Firm管理メモリ
215(215−0〜215−2) I/O管理テーブル
216(216−0〜216−2) 構成情報
217(217−0〜217−2) リカバリ処理部
218(218−0〜218−2) データ集約部
219(219−0〜219−2) DI(Device Interface)
230(230−0〜230−2)
RLU(Raid Logical Unit)
231 HDD(Hard Disk Drive)
233 SSD(Solid State Drive)

Claims (6)

  1. 2以上の冗長度のRAID構成のRAIDグループを備えるディスクアレイ装置であって、
    前記RAIDグループにおいて失われた冗長度と同数の記憶装置が故障したとき、前記RAIDグループを構成する記憶装置がシーケンシャルアクセスの性能を活用できる記憶装置である場合には、先にデータ復旧を行う第1の故障記憶装置の復元データを2分割することで得られる2つの分割復元データを2台の復元先記憶装置の連続領域にシーケンシャルに書き込む第1のデータ復旧方式を選択し、前記RAIDグループを構成する記憶装置がシーケンシャルアクセスの性能を活用できない記憶装置である場合には、前記2つの分割復元データを前記2台の復元先記憶装置の飛び飛びの領域に書き込む第2のデータ復旧方式を選択するデータ復旧方式選択手段と、
    該データ復旧方式選択手段により選択されたデータ復旧方式により、前記第1の故障記憶装置の復元データを2台の復元先記憶装置に分割して書き込むデータ復元手段と、
    該データ復元手段により前記2台の復元先記憶装置に分割して書き込まれた前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
    を備えることを特徴とするディスクアレイ装置。
  2. 請求項1記載のディスクアレイ装置であって、
    前記第1のデータ復旧方式は、前記第1の故障記憶装置の復元データの上半分と下半分の復元データを、前記2台の復元先記憶装置に分けて書き込む第3のデータ復旧方式、又は、前記RAIDグループに属している正常稼動の記憶装置に対する1回のReadアクセスにより前記第1の故障記憶装置の復元データを生成する毎に該生成された復元データを2分割し、該2分割により得られた前記2つの分割復元データを、前記2台の復元先記憶装置に分けて書き込む第4のデータ復旧方式のいずれかであることを特徴とする。
  3. 請求項2記載のディスクアレイ装置であって、
    前記第3のデータ復旧方式は、前記2台の復元先記憶装置において、前記第1の故障記憶装置の上半分の復元データの格納領域と下半分の復元データの格納領域が互いに重ならない位置となるように、前記第1の故障記憶装置の復元データの書き込みを行う方式であり、前記シーケンシャルアクセスの性能を活用できる記憶装置はHDDであり、
    前記データ復旧方式選択手段は、前記RAIDグループを構成する記憶装置がHDDである場合において、該RAIDグループに対するI/Oが有るときには前記第3のデータ復旧方式を選択し、該RAIDグループに対してI/Oが無いときには前記第4のデータ復旧方式を選択することを特徴とする。
  4. 請求項3記載のディスクアレイ装置であって、
    前記第2のデータ復旧方式は、前記2台の復元先記憶装置においてそれぞれの空き領域が交差するように、前記2つの分割復元データを前記2台の復元先記憶装置の飛び飛びの領域に分けて書き込むデータ復旧方式であり、前記シーケンシャルアクセスの性能を活用できない記憶装置はSSDであり、
    前記データ復旧方式選択手段は、前記RAIDグループを構成する記憶装置がSSDである場合には前記第2のデータ復旧方式を選択することを特徴とする。
  5. 2以上の冗長度のRAID構成のRAIDグループを備え、該RAIDグループを構成する記憶装置がシーケンシャルアクセスの性能を活用できる記憶装置であるディスクアレイ装置であって、
    前記RAIDグループに含まれる失われた冗長度と同数の記憶装置に故障が発生した場合、先にデータ復旧を行う第1の故障記憶装置のデータを、該RAIDグループの正常稼動の複数の記憶装置に対する多重Readアクセスにより所定サイズ単位で順次復元し、復元する毎に前記第1の故障記憶装置の所定サイズの復元データを2分割し、該2分割により得られた2つの分割復元データを、2台の復元先記憶装置の連続領域に分けて書き込むデータ復元手段と、
    該データ復元手段により前記2台の復元先記憶装置に分散して格納された前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
    を備えることを特徴とするディスクアレイ装置。
  6. 2以上の冗長性を有するRAIDグループを備え、該RAIDグループを構成する記憶装置がシーケンシャルアクセスの性能を活用できない記憶装置であるディスクアレイ装置であって、
    前記RAIDグループに含まれる失われた冗長性と同数の記憶装置に故障が発生した場合、先にデータ復旧を行う第1の故障記憶装置のデータを、該RAIDグループに属する正常稼動の複数の記憶装置に対する多重Readアクセスにより所定サイズ単位で順次復元し、復元する毎に該所定サイズの復元データを2分割し、該2分割により得られた2つの分割復元データを2台の復元先記憶装置に分けて書き込むデータ復元手段と、
    該データ復元手段により前記2台の復元先記憶装置に分散して格納されている前記第1の故障記憶装置の復元データを、前記2台の復元先記憶装置のいずれか一方に集約する復元データ集約手段と、
    を備え、
    前記データ復元手段は前記第1の故障記憶装置の分割復元データを前記所定サイズの間隔を空けながら前記2台の復元先記憶装置に飛び飛びに書き込み、前記2台の復元先記憶装置の前記第1の故障記憶装置の分割復元データの書込み領域は交差していることを特徴とするディスクアレイ装置。
JP2009240042A 2009-10-19 2009-10-19 ディスクアレイ装置 Expired - Fee Related JP5391993B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2009240042A JP5391993B2 (ja) 2009-10-19 2009-10-19 ディスクアレイ装置
US12/906,238 US8392752B2 (en) 2009-10-19 2010-10-18 Selective recovery and aggregation technique for two storage apparatuses of a raid

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009240042A JP5391993B2 (ja) 2009-10-19 2009-10-19 ディスクアレイ装置

Publications (2)

Publication Number Publication Date
JP2011086214A JP2011086214A (ja) 2011-04-28
JP5391993B2 true JP5391993B2 (ja) 2014-01-15

Family

ID=44079094

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009240042A Expired - Fee Related JP5391993B2 (ja) 2009-10-19 2009-10-19 ディスクアレイ装置

Country Status (2)

Country Link
US (1) US8392752B2 (ja)
JP (1) JP5391993B2 (ja)

Families Citing this family (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959307B1 (en) 2007-11-16 2015-02-17 Bitmicro Networks, Inc. Reduced latency memory read transactions in storage devices
US8665601B1 (en) 2009-09-04 2014-03-04 Bitmicro Networks, Inc. Solid state drive with improved enclosure assembly
US8447908B2 (en) 2009-09-07 2013-05-21 Bitmicro Networks, Inc. Multilevel memory bus system for solid-state mass storage
US8560804B2 (en) 2009-09-14 2013-10-15 Bitmicro Networks, Inc. Reducing erase cycles in an electronic storage device that uses at least one erase-limited memory device
US9372755B1 (en) 2011-10-05 2016-06-21 Bitmicro Networks, Inc. Adaptive power cycle sequences for data recovery
JP2013125437A (ja) * 2011-12-15 2013-06-24 Fujitsu Ltd 制御装置、プログラムおよびストレージ装置
US9009524B2 (en) 2012-04-30 2015-04-14 Hewlett-Packard Development Company, L.P. Prioritizing recovery in a storage system implementing raid
US9043669B1 (en) 2012-05-18 2015-05-26 Bitmicro Networks, Inc. Distributed ECC engine for storage media
JP2014056445A (ja) * 2012-09-12 2014-03-27 Fujitsu Ltd ストレージ装置、ストレージ制御プログラムおよびストレージ制御方法
US8464095B1 (en) * 2012-11-15 2013-06-11 DSSD, Inc. Method and system for multi-dimensional raid reconstruction and defect avoidance
JP2014119831A (ja) * 2012-12-13 2014-06-30 Fujitsu Ltd ストレージ装置、制御方法及び制御プログラム
US9423457B2 (en) 2013-03-14 2016-08-23 Bitmicro Networks, Inc. Self-test solution for delay locked loops
US9875205B1 (en) 2013-03-15 2018-01-23 Bitmicro Networks, Inc. Network of memory systems
US9858084B2 (en) 2013-03-15 2018-01-02 Bitmicro Networks, Inc. Copying of power-on reset sequencer descriptor from nonvolatile memory to random access memory
US10489318B1 (en) 2013-03-15 2019-11-26 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9734067B1 (en) 2013-03-15 2017-08-15 Bitmicro Networks, Inc. Write buffering
US9934045B1 (en) 2013-03-15 2018-04-03 Bitmicro Networks, Inc. Embedded system boot from a storage device
US9798688B1 (en) 2013-03-15 2017-10-24 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9501436B1 (en) 2013-03-15 2016-11-22 Bitmicro Networks, Inc. Multi-level message passing descriptor
US9400617B2 (en) 2013-03-15 2016-07-26 Bitmicro Networks, Inc. Hardware-assisted DMA transfer with dependency table configured to permit-in parallel-data drain from cache without processor intervention when filled or drained
US9430386B2 (en) 2013-03-15 2016-08-30 Bitmicro Networks, Inc. Multi-leveled cache management in a hybrid storage system
US9971524B1 (en) 2013-03-15 2018-05-15 Bitmicro Networks, Inc. Scatter-gather approach for parallel data transfer in a mass storage system
US9672178B1 (en) 2013-03-15 2017-06-06 Bitmicro Networks, Inc. Bit-mapped DMA transfer with dependency table configured to monitor status so that a processor is not rendered as a bottleneck in a system
US9916213B1 (en) 2013-03-15 2018-03-13 Bitmicro Networks, Inc. Bus arbitration with routing and failover mechanism
US9842024B1 (en) * 2013-03-15 2017-12-12 Bitmicro Networks, Inc. Flash electronic disk with RAID controller
US9720603B1 (en) 2013-03-15 2017-08-01 Bitmicro Networks, Inc. IOC to IOC distributed caching architecture
US9280431B2 (en) * 2013-04-17 2016-03-08 Globalfoundries Inc. Prioritizing backups on a disk level within enterprise storage
US9811461B1 (en) 2014-04-17 2017-11-07 Bitmicro Networks, Inc. Data storage system
US9952991B1 (en) 2014-04-17 2018-04-24 Bitmicro Networks, Inc. Systematic method on queuing of descriptors for multiple flash intelligent DMA engine operation
US10042792B1 (en) 2014-04-17 2018-08-07 Bitmicro Networks, Inc. Method for transferring and receiving frames across PCI express bus for SSD device
US10055150B1 (en) 2014-04-17 2018-08-21 Bitmicro Networks, Inc. Writing volatile scattered memory metadata to flash device
US10025736B1 (en) 2014-04-17 2018-07-17 Bitmicro Networks, Inc. Exchange message protocol message transmission between two devices
US10078604B1 (en) 2014-04-17 2018-09-18 Bitmicro Networks, Inc. Interrupt coalescing
US9400724B2 (en) * 2014-05-29 2016-07-26 Dell Products, Lp Federating and protecting multiple big data sources combined with enterprise data sources for BI
US9552263B2 (en) 2014-08-12 2017-01-24 International Business Machines Corporation System, apparatus, and method to dynamically change system recoveries based on system load
US10275171B2 (en) 2014-09-16 2019-04-30 Kove Ip, Llc Paging of external memory
US9626108B2 (en) 2014-09-16 2017-04-18 Kove Ip, Llc Dynamically provisionable and allocatable external memory
US9690660B1 (en) * 2015-06-03 2017-06-27 EMC IP Holding Company LLC Spare selection in a declustered RAID system
JP2017084230A (ja) * 2015-10-30 2017-05-18 アドバンス・デザイン株式会社 データ複製方法
CN106933494B (zh) * 2015-12-31 2019-10-18 伊姆西公司 混合存储设备的操作方法和装置
US10191668B1 (en) * 2016-06-27 2019-01-29 EMC IP Holding Company LLC Method for dynamically modeling medium error evolution to predict disk failure
US10180875B2 (en) 2016-07-08 2019-01-15 Toshiba Memory Corporation Pool-level solid state drive error correction
US10552050B1 (en) 2017-04-07 2020-02-04 Bitmicro Llc Multi-dimensional computer storage system
US10365983B1 (en) * 2017-04-27 2019-07-30 EMC IP Holding Company LLC Repairing raid systems at per-stripe granularity
US10719398B1 (en) * 2017-07-18 2020-07-21 EMC IP Holding Company LLC Resilience of data storage systems by managing partial failures of solid state drives
US11086525B2 (en) * 2017-08-02 2021-08-10 Kove Ip, Llc Resilient external memory
US20190163374A1 (en) * 2017-11-28 2019-05-30 Entit Software Llc Storing data objects using different redundancy schemes
CN111124263B (zh) * 2018-10-31 2023-10-27 伊姆西Ip控股有限责任公司 用于管理多个盘的方法、电子设备以及计算机程序产品
RU2707940C1 (ru) * 2019-02-11 2019-12-02 федеральное государственное казенное военное образовательное учреждение высшего образования "Краснодарское высшее военное училище имени генерала армии С.М. Штеменко" Министерства обороны Российской Федерации Способ многоуровневого контроля и обеспечения целостности данных
US11586503B2 (en) * 2019-07-02 2023-02-21 Dell Products L.P. Faster rebuilding of 2-disk failure in raid by efficient, modular, diagonal, concurrent parity
JP2021099624A (ja) * 2019-12-20 2021-07-01 株式会社日立製作所 ストレージシステム及びストレージシステムのリビルド処理方法
US11694721B2 (en) * 2021-09-30 2023-07-04 Western Digital Technologies, Inc. Methods for writing HDD metadata in NAND flash

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5258984A (en) * 1991-06-13 1993-11-02 International Business Machines Corporation Method and means for distributed sparing in DASD arrays
GB2278228B (en) * 1993-05-21 1997-01-29 Mitsubishi Electric Corp An arrayed recording apparatus
JPH07306758A (ja) 1994-05-16 1995-11-21 Hitachi Ltd ディスクアレイ装置及びその制御方法
JP2000200157A (ja) 1999-01-08 2000-07-18 Nec Corp ディスクアレイ装置およびディスクアレイ装置におけるデ―タ復旧方法
JP2002297322A (ja) 2001-03-30 2002-10-11 Hitachi Ltd 冗長性を有するディスク記憶装置
GB2379046B (en) * 2001-08-24 2003-07-30 3Com Corp Storage disk failover and replacement system
JP2003108316A (ja) 2001-09-26 2003-04-11 Toshiba Corp ディスクアレイ装置およびホットスペア制御方法
JP4307777B2 (ja) * 2002-01-28 2009-08-05 インターナショナル・ビジネス・マシーンズ・コーポレーション データ処理方法、データ処理システムおよびプログラム
JP2005122338A (ja) 2003-10-15 2005-05-12 Hitachi Ltd スペアディスクドライブをもつディスクアレイ装置及びデータスペアリング方法
JP4493321B2 (ja) 2003-11-19 2010-06-30 株式会社日立製作所 ディスクアレイ装置及びデータ退避方法
US7743308B2 (en) * 2005-02-09 2010-06-22 Adaptec, Inc. Method and system for wire-speed parity generation and data rebuild in RAID systems
JP4754852B2 (ja) * 2005-03-15 2011-08-24 富士通株式会社 ストレージ制御装置および方法
US7484039B2 (en) * 2005-05-23 2009-01-27 Xiaogang Qiu Method and apparatus for implementing a grid storage system
JP4830698B2 (ja) 2006-08-02 2011-12-07 富士通株式会社 担当lun制御を用いたraid制御を行うディスクコントローラおよび診断制御方法
JP2008040687A (ja) 2006-08-03 2008-02-21 Fujitsu Ltd データ復元制御装置
US9734086B2 (en) * 2006-12-06 2017-08-15 Sandisk Technologies Llc Apparatus, system, and method for a device shared between multiple independent hosts
JP2008217624A (ja) * 2007-03-07 2008-09-18 Nec Corp ディスクアレイ装置及びその制御方法

Also Published As

Publication number Publication date
JP2011086214A (ja) 2011-04-28
US20110264949A1 (en) 2011-10-27
US8392752B2 (en) 2013-03-05

Similar Documents

Publication Publication Date Title
JP5391993B2 (ja) ディスクアレイ装置
JP5285610B2 (ja) グローバルホットスペアディスクが存在するときに、故障したドライブを復元、及びコピーバックする最適化された方法
US8843782B2 (en) Method and apparatus for reconstructing redundant array of inexpensive disks, and system
US5566316A (en) Method and apparatus for hierarchical management of data storage elements in an array storage device
TWI450087B (zh) 複數個磁碟陣列系統之資料儲存方法及資料儲存系統
US7529965B2 (en) Program, storage control method, and storage system
JP4815825B2 (ja) ディスクアレイ装置及びその再構築方法
JP5285611B2 (ja) グローバルホットスペアディスクが存在するときに、切断されたドライブを復元、及びコピーバックする最適化された方法
CN102081559A (zh) 一种独立磁盘冗余阵列的数据恢复方法和装置
US7640452B2 (en) Method for reconstructing data in case of two disk drives of RAID failure and system therefor
US8402213B2 (en) Data redundancy using two distributed mirror sets
JP2018508073A (ja) データ除去、割り当て、及び再構築
JP4862847B2 (ja) ディスクアレイのデータ復旧方法、ディスクアレイシステム及び制御プログラム
CN100368976C (zh) 盘阵列设备和数据备份方法
JP2010267037A (ja) ディスクアレイ装置
JP5586712B2 (ja) ディスクアレイ制御装置およびディスクアレイ装置
JP2005099995A (ja) 磁気ディスク装置のディスク共有方法及びシステム
JP2010026812A (ja) 磁気ディスク装置
JP2008217395A (ja) ディスクアレイ装置
JP2010286887A (ja) ディスクアレイ装置および処理方法ならびにそのプログラム
JP6734305B2 (ja) ディスクアレイコントローラ、ストレージ装置、ストレージ装置の復旧方法、及びディスクアレイコントローラの復旧プログラム
JP2008197886A (ja) ストレージ装置及びその制御方法
JP2005258866A (ja) ディスクアレイ装置およびプログラム
JP2010224803A (ja) ディスクアレイ装置
JP2010257254A (ja) 磁気ディスク装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120720

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130220

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130226

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130430

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130723

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130930

R150 Certificate of patent or registration of utility model

Ref document number: 5391993

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees