JP2013200764A - ストレージシステム、ストレージ装置およびデータ復元方法 - Google Patents

ストレージシステム、ストレージ装置およびデータ復元方法 Download PDF

Info

Publication number
JP2013200764A
JP2013200764A JP2012069342A JP2012069342A JP2013200764A JP 2013200764 A JP2013200764 A JP 2013200764A JP 2012069342 A JP2012069342 A JP 2012069342A JP 2012069342 A JP2012069342 A JP 2012069342A JP 2013200764 A JP2013200764 A JP 2013200764A
Authority
JP
Japan
Prior art keywords
storage
disk
restoration
reconstruction
storage device
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2012069342A
Other languages
English (en)
Other versions
JP5891890B2 (ja
Inventor
Satoshi Sonobe
聡 園部
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 JP2012069342A priority Critical patent/JP5891890B2/ja
Priority to US13/778,245 priority patent/US9329944B2/en
Priority to EP13157169.7A priority patent/EP2645250A3/en
Publication of JP2013200764A publication Critical patent/JP2013200764A/ja
Application granted granted Critical
Publication of JP5891890B2 publication Critical patent/JP5891890B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1458Management of the backup or restore process
    • G06F11/1469Backup restoration techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/1088Reconstruction on already foreseen single or plurality of spare disks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3034Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a storage system, e.g. DASD based or network based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Hardware Redundancy (AREA)
  • Debugging And Monitoring (AREA)

Abstract

【課題】データの復元を効率的に行う。
【解決手段】制御装置1fは、記憶装置1aに記憶されたデータの第1の集合に基づいて、記憶装置1bに記憶されたデータの第2の集合を、復元先の記憶装置1d上に復元する処理を実行可能である。記憶装置1eは、制御装置1fによる復元の進捗を示す進捗情報を記憶する。制御装置1gは、制御装置1fが停止したことを検出すると、記憶装置1eに記憶された進捗情報に基づいて、第2の集合のうち未復元の部分の復元を行う。
【選択図】図1

Description

本発明はストレージシステム、ストレージ装置およびデータ復元方法に関する。
現在、データを蓄積・利用するためのストレージシステムが利用されている。ストレージシステムは、複数の記憶装置と複数の記憶装置に格納されたデータへのアクセスを制御する制御装置とを含む。ストレージシステムでは、RAID(Redundant Arrays of Independent Disks)の技術を利用することがある。RAIDでは、データを分割・複製して、複数の記憶装置に分散して配置する。これにより、例えば、アクセスに伴う負荷が複数の記憶装置へ分散されることで高速化を図れる。また、例えば、複数の記憶装置を用いてデータが冗長化されることで高信頼化を図れる。
特に、データを分割して複数の記憶装置に配置する場合、1つのデータを分割した複数の分割データに基づいてデータ復元用のパリティデータを生成することがある。パリティデータは、対応する各分割データとは異なる記憶装置に配置される。これにより、記憶装置の故障などで何れかの分割データを失ったとしても、正常な記憶装置上の他の分割データとパリティデータとに基づいて、失った分割データを復元できる。
ここで、ある記憶装置で障害が発生した場合に、障害のあった記憶装置上のデータを予備の記憶装置などに復元する処理をリコンストラクションと呼ぶことがある。リコンストラクションでは、例えば正常な記憶装置上のパリティデータや各分割データを用いて、障害のあった記憶装置上の分割データやパリティデータを、予備の記憶装置上に復元する。
例えば、パリティデータの記憶装置上の位置を管理するための配置情報を作成することで、記憶装置上の任意の位置にパリティデータを動的に配置可能とする技術がある。各記憶装置に当該記憶装置の配置情報を格納しておき、何れかの記憶装置で障害が起こった場合に、他の記憶装置上の配置情報に基づいて、障害のあった記憶装置上のパリティデータを再作成し、再作成したパリティデータに関する配置情報をも作り直す提案がある。
また、データの再構築を行っている最中に、上位コンピュータからリードまたはライトアクセスが発生すると再構築を保留し、当該アクセスが終了した時点で現在のヘッド位置から最も近傍の対象ブロックから再構築を再開する提案がある。
なお、データを冗長化して記録するアレイ型記録装置において、データの記録要求に対し、当該データの書き込み完了時点で、当該データに対応する冗長データの書き込みが完了しているか否かに関わらず、要求元に記録終了を報告する提案がある。
特開平10−105346号公報 特開平8−221217号公報 特開平4−312146号公報
制御装置がリコンストラクションの実行を制御することがある。この場合、リコンストラクション中に制御装置が障害などで停止すると、リコンストラクションを続行不能になるという問題がある。
例えば、制御装置の交換などの保守作業後に、交換後の制御装置を用いてリコンストラクションを最初からやり直すことが考えられる。しかし、保守作業中はリコンストラクションが中断される。また、リコンストラクションを最初から再度行うため時間がかかる。このため、リコンストラクションの所要時間が増大して非効率的となる。更に、リコンストラクションの所要時間が増大するとリコンストラクション中に他の記憶装置で更に障害が発生する可能性も高まり、データの復元を行えなくなるリスクも高まる。
一側面によれば、本発明は、データの復元を効率的に行うことができるストレージシステム、ストレージ装置およびデータ復元方法を提供することを目的とする。
一実施態様によれば、ストレージシステムが提供される。ストレージシステムは、第1および第2の記憶装置を含む複数の記憶装置と第1の制御装置と第3の記憶装置と第2の制御装置と備える。第1の制御装置は、第1の記憶装置に記憶されたデータの第1の集合に基づいて、第2の記憶装置に記憶されたデータの第2の集合を、複数の記憶装置の何れかである復元先の記憶装置上に復元する処理を実行可能である。第3の記憶装置は、第1の制御装置による復元の進捗を示す進捗情報を記憶する。第2の制御装置は、第1の制御装置が停止したことを検出すると、第3の記憶装置に記憶された進捗情報に基づいて、第2の集合のうち未復元の部分の復元を行う。
また、一実施態様によれば、ストレージ装置が提供される。ストレージ装置は、第1の記憶部と第2の記憶部とを含む複数の記憶部と第3の記憶部と制御部とを備える。第3の記憶部は、第1の記憶部に記憶されたデータの第1の集合に基づいて、第2の記憶部に記憶されたデータの第2の集合を、複数の記憶部の何れかである復元先の記憶部上に復元する処理を実行可能な制御装置による復元の進捗を示す進捗情報を記憶する。制御部は、制御装置が停止したことを検出すると、第3の記憶部に記憶された進捗情報に基づいて、第2の集合のうち未復元の部分の復元を行う。
また、一実施態様によれば、ストレージシステムで実行されるデータ復元方法が提供される。データ復元方法では、第1の記憶装置と第2の記憶装置とを含む複数の記憶装置と、第1の記憶装置に記憶されたデータの第1の集合に基づいて、第2の記憶装置に記憶されたデータの第2の集合を、複数の記憶装置の何れかである復元先の記憶装置上に復元する処理を実行可能な第1および第2の制御装置と、を有するストレージシステムが、第1の制御装置を用いて、第2の集合に属する部分を順次復元するとともに復元の進捗を示す進捗情報を複数の記憶装置以外の第3の記憶装置に格納し、第2の制御装置を用いて、第1の制御装置が停止したことを検出すると、第3の記憶装置に記憶された進捗情報に基づいて、第2の集合のうち未復元の部分の復元を引き継ぐ。
一実施態様によれば、データの復元を効率的に行うことができる。
第1の実施の形態のストレージシステムを示す図である。 第2の実施の形態のストレージシステムを示す図である。 ストレージシステムのハードウェア例を示す図である。 ストレージシステムのソフトウェア例を示す図である。 RAID4の例を示す図である。 ディスク装置の例を示す図である。 RAIDグループ管理テーブルの例を示す図である。 リコンストラクション実行管理テーブルの例を示す図である。 リコンストラクション進捗管理テーブルの例を示す図である。 ストレージシステムの制御例を示すフローチャートである。 リコンストラクションの例を示すフローチャートである。 ディスクシェルフによる監視の例を示すフローチャートである。 コントローラ起動時の処理の例を示すフローチャートである。
以下、本実施の形態を図面を参照して説明する。
[第1の実施の形態]
図1は、第1の実施の形態のストレージシステムを示す図である。ストレージシステム1は、記憶装置1a,1b,1c,1dを含む複数の記憶装置、当該複数の記憶装置以外の記憶装置1eおよび制御装置1f,1gを有する。
記憶装置1a,1b,1cは、ユーザなどが利用するユーザデータを記憶する。記憶装置1dは、スペアであり、他の記憶装置が故障した場合に、故障した記憶装置の代わりとして用いられる。記憶装置1a,1b,1c,1dとしては、例えば、磁気ディスク装置を利用できる。また、SSD(Solid State Drive)など他の種類の記憶装置を用いてもよい。
RAIDの技術により、記憶装置1a,1b,1cを組合せて、1つの論理的な記憶装置として扱える。例えば、1つのデータブロックを分割した分割データを記憶装置1a,1bに分散して格納し、各分割データに応じたパリティデータを記憶装置1cに格納する(RAID4)。分割したデータを複数の記憶装置に分散して配置する手法をストライピング(Striping)と呼ぶことがある。ここで、データブロックは、ストレージシステム1に接続されるアクセス元装置がストレージシステム1に対して書き込み/読み出しなどのアクセス要求を行う1単位である。読み出し時には、各分割データを読み出し、結合してデータブロックを生成しアクセス元装置に応答する。記憶装置1a,1bには、複数のデータブロックに対する複数の分割データが格納され得る。同様に、記憶装置1cには、複数のパリティデータが格納され得る。また、記憶装置1cにも分割データを配置し、記憶装置1a,1b,1cのそれぞれに複数のパリティデータを分散して配置してもよい(RAID5)。記憶装置を4以上用いてRAID5としてもよい。更に、記憶装置1a,1b,1cを含む4以上の記憶装置のそれぞれに分割データおよび二種類のパリティデータを分散して配置してもよい(RAID6)。以下の説明では、分割データを単にデータと呼ぶことがある。
記憶装置1a,1b,1cのそれぞれは、複数のデータ(パリティデータを含む)の集合を記憶するということもできる。なお、記憶装置1a,1bに同一のデータを記憶させ、データの冗長化を図るものでもよい(RAID1)。
記憶装置1eは、制御装置1f,1gの処理に用いる情報を記憶する。記憶装置1eとしては、例えば、フラッシュメモリなどの半導体メモリを利用できる。
制御装置1fは、複数の記憶装置の何れかで障害が発生した場合に、正常な記憶装置に記憶されたデータの集合(以下、第1の集合という)に基づいて、障害が発生した記憶装置に記憶されたデータの集合(以下、第2の集合という)を、記憶装置1d上に復元する処理を実行可能である。なお、第1の集合に属するデータと第2の集合に属するデータとは1対1に対応している。第1および第2の集合は、各記憶装置に記憶された全データの集合でもよいし、各記憶装置に記憶された一部のデータの集合でもよい。
例えば、上記のRAID4のようなデータ配置である場合に、記憶装置1bで障害が発生したとする。制御装置1fは、記憶装置1aに記憶された第1の集合と記憶装置1cに記憶されたパリティデータの集合とを用いて、記憶装置1bに記憶されていた第2の集合を記憶装置1d上に復元できる。また、例えば、上記のRAID1のようなデータ配置である場合に、記憶装置1bで障害が発生したとする。制御装置1fは、記憶装置1aに記憶された第1の集合を複製して記憶装置1d上に格納することで、記憶装置1bに記憶されていた第2の集合を復元できる。
制御装置1fは、記憶装置1dに第2の集合に属する部分(各部分は重複しない)を順次復元するとともに、復元の進捗情報を記憶装置1eに格納する。RAID4〜6であれば、複数の記憶装置に跨る1つの論理的な記憶領域をストライプ(Stripe)と呼ばれる単位で管理することがある。例えば、記憶装置1a,1b,1cに跨る4つのストライプが割り当てられているとする。このとき、記憶装置1bの第1の記憶領域を1つ目のストライプに割り当てる。記憶装置1bの第2の記憶領域を2つ目のストライプに割り当てる。記憶装置1bの第3の記憶領域を3つ目のストライプに割り当てる。記憶装置1bの第4の記憶領域を4つ目のストライプに割り当てる。この場合、第2の集合の第1の部分が第1の記憶領域に、第2の集合の第2の部分が第2の記憶領域に、第2の集合の第3の部分が第3の記憶領域に、第2の集合の第4の部分が第4の記憶領域に、それぞれ格納される。
制御装置1fは、第2の集合の復元を、当該部分単位に行える。例えば、第2の集合の第1の部分に対応する第1の集合の所定の部分に基づいて、当該第2の集合の第1の部分を復元する。例えば、制御装置1fは、第1の記憶領域(第2の集合の第1の部分に相当)の記憶装置1dへの復元を完了すると、第1の記憶領域について復元済であることを進捗情報に登録する。第2の記憶領域以降についても同様である。このように、第2の集合の各部分に対応する記憶領域により、進捗を管理できる。
制御装置1gは、制御装置1fと同様にして、記憶装置1d上に第2の集合を復元する処理を実行可能である。ただし、制御装置1f,1gは、復元の処理を排他的に行う。制御装置1gは、制御装置1fが停止したことを検出すると、記憶装置1eに記憶された進捗情報に基づいて、第2の集合のうち復元が未実行の部分に対する復元を引き継ぐ。
例えば、制御装置1gが制御装置1fの停止を検出した際に、第2の集合のうち第2の部分までが復元済であることが進捗情報に登録されていたとする。すると、制御装置1gは、第2の集合のうち未復元である第3および第4の部分についての復元を引き継ぐ。
第1の実施の形態のストレージシステムによれば、制御装置1fにより、記憶装置1aに記憶されたデータの第1の集合に基づいて、記憶装置1bに記憶されたデータの第2の集合が復元先の記憶装置1d上に復元される。このとき、制御装置1fにより、第2の集合の復元の進捗情報が記憶装置1eに格納される。制御装置1gにより、制御装置1fが停止したことが検出されると、記憶装置1eに記憶された進捗情報に基づいて、第2の集合のうち復元が未実行の部分の復元が引き継がれる。
これにより、データの復元を効率的に行うことができる。例えば、制御装置1fが停止して、復元が中断されたとしても、制御装置1gで復元の処理を引き継げる。このため、制御装置1fの故障などで復元の処理が中断されたとしても、制御装置1fの保守作業の完了を待たずに復元の処理を再開できる。よって、復元の処理の所要時間を短縮できる。このとき、制御装置1gは、制御装置1fが登録した進捗情報に基づいて、復元が未実行の部分に関してのみ復元の処理を行う。復元済の部分に対して再度復元の処理を実行すると、同じ処理を重複して実行することになり非効率的だからである。これにより、最初から処理を再開する場合に比べて所要時間を短縮できる。このようにして、データの復元を効率化できる。
なお、制御装置1gの機能は、RAIDにより束ねた複数の記憶装置へのアクセスを制御するRAIDコントローラに実装してもよい。制御装置1fや記憶装置1eは、複数の記憶装置を収納するためのディスクシェルフに実装してもよい。ディスクシェルフは、複数の記憶装置を備えるストレージ装置と呼ぶこともできる。RAIDコントローラとディスクシェルフとは電源供給を別個に行えることが多い。よって、RAIDコントローラ(制御装置1g)を保守作業などのために停止させたとしても、ディスクシェルフ(制御装置1fおよび記憶装置1e)を動作させることができる。
また、制御装置1gも制御装置1fと同様に、進捗情報を記憶装置1eに登録してもよい。そして、交換などの保守作業により制御装置1fで復元の処理を再開できるようになったときに、当該進捗情報に基づいて制御装置1gから制御装置1fに復元の処理を引き継いでもよい。制御装置1fの方が制御装置1gよりも処理性能が高いことがあるからである。処理性能が高い方に復元の処理を実行させるようにすれば、所要時間をより短縮できる。その結果、データの復元を一層効率化できる。
[第2の実施の形態]
図2は、第2の実施の形態のストレージシステムを示す図である。ストレージシステム100は、コントローラ110およびディスクシェルフ120を有する。
コントローラ110は、ディスクシェルフ120に収納された複数の磁気ディスク装置(以下、単にディスク装置という)を用いてRAIDを構築するRAIDコントローラである。コントローラ110は、複数のディスク装置に対するユーザデータの読み出し(Read)や書き込み(Write)のアクセスを制御する。
ディスクシェルフ120は、複数のディスク装置を収納する。ディスク装置は、HDD(Hard Disk Drive)と呼ばれることもある。
ストレージシステム100は、NAS(Network Attached Storage)として利用される。ストレージシステム100は、ネットワーク10に接続している。ネットワーク10は、イーサネット(登録商標)のネットワーク(例えば、LAN(Local Area Network))である。
サーバ200は、ストレージシステム100に記憶されたユーザデータにアクセスするコンピュータである。サーバ200は、ネットワーク10に接続している。例えば、サーバ200は、NFS(Network File System)、HTTP(HyperText Transfer Protocol)、CIFS(Common Internet File System)などのプロトコルを用いてストレージシステム100にアクセスできる。また、サーバ200は、iSCSI(Internet Small Computer System Interface)、FCIP(Fibre Channel over Internet Protocol)などのIP−SAN(Internet Protocol - Storage Area Network)のためのプロトコルを用いてストレージシステム100にアクセス可能としてもよい。
なお、ストレージシステム100とサーバ200とをファイバチャネル(FC:Fibre Channel)のネットワーク(例えば、SAN)に接続し、サーバ200からストレージシステム100に対し、FCのプロトコルを用いてアクセス可能としてもよい。
管理端末装置300は、ストレージシステム100の運用管理を行うコンピュータである。例えば、コントローラ110はWebサーバの機能を実行し、運用管理用のGUI(Graphical User Interface)を提供してもよい。例えば、管理者は、管理端末装置300上のWebブラウザを用いて当該GUIを操作できる。例えば、管理者は、当該GUIを操作して、ストレージシステム100の稼働状況を監視したり、ストレージシステム100にリコンストラクションの実行を指示したりすることができる。なお、リコンストラクションは、リビルドと呼ばれることもある。
ここで、ストレージシステム100は、ディスクアレイシステム(あるいは、ストレージシステム100を1つの装置とみなしてディスクアレイ装置)と呼ばれることもある。ストレージシステム100はファイルサーバの機能を有してもよく、その場合、ストレージシステム100はファイルサーバと呼ばれることもある。
また、コントローラ110やディスクシェルフ120は、ラックマウント型でもよいし、タワー型でもよい。
図3は、ストレージシステムのハードウェア例を示す図である。コントローラ110は、CPU(Central Processing Unit)111、ROM(Read Only Memory)112、RAM(Random Access Memory)113、FC I/F(InterFace)114、ネットワークI/F115および管理用I/F116を有する。これらの各ユニットはコントローラ110内のバスに接続される。
CPU111は、コントローラ110における情報処理を制御するプロセッサである。CPU111は、ROM112に記憶されているプログラムや処理に用いるデータの少なくとも一部を読み出し、RAM113に展開してプログラムを実行する。
ROM112は、CPU111が実行する所定のOS(Operating System)プログラムやRAID管理用のプログラムなどを記憶する不揮発性メモリである。ROM112は、書き換え可能であってもよい。
RAM113は、CPU111が実行するプログラムや処理に用いるデータを一時的に記憶する揮発性メモリである。
FC I/F114は、ディスクシェルフ120との間でFCによる通信を行う通信インタフェースである。FC I/F114は、CPU111の指示に従って、サーバ200のデータアクセスに伴う通信を行う。
ネットワークI/F115は、ネットワーク10を介してサーバ200と通信を行う通信インタフェースである。
管理用I/F116は、ディスクシェルフ120との間でイーサネットによる通信を行う通信インタフェースである。管理用I/F116は、CPU111の指示に従って、サーバ200のデータアクセスに伴う通信以外の管理用の情報をディスクシェルフ120との間で送受信する。
なお、コントローラ110には、リコンストラクションの実行指示などをCPU111に入力するための操作パネルを設けてもよい。
ディスクシェルフ120は、CPU121、ROM122、RAM123、フラッシュメモリ124、管理用I/F125、FC I/F126およびディスク収納部127を有する。CPU121、ROM122、RAM123、フラッシュメモリ124、管理用I/F125、FC I/F126はディスクシェルフ120内のバスに接続される。FC I/F126は、ディスク収納部127に接続される。
CPU121は、ディスクシェルフ120における情報処理を制御するプロセッサである。CPU121は、ROM122に記憶されているプログラムや処理に用いるデータの少なくとも一部を読み出し、RAM123に展開してプログラムを実行する。
ROM122は、CPU121が実行するプログラムを記憶する不揮発性メモリである。ROM122は、書き換え可能であってもよい。
RAM123は、CPU121が実行するプログラムや処理に用いるデータを一時的に記憶する揮発性メモリである。
フラッシュメモリ124は、CPU121が実行するプログラムの処理に用いるデータを記憶する不揮発性メモリである。
管理用I/F125は、コントローラ110との間でイーサネットによる通信を行う通信インタフェースである。
FC I/F126は、コントローラ110との間でFCによる通信を行う通信インタフェースである。FC I/F126は、コントローラ110から受信したアクセス要求に基づいて、ディスク収納部127に収納されたディスク装置群130へのアクセスを実行する。ディスク収納部127は、コントローラ110へアクセス結果を応答する。また、FC I/F126は、CPU121から命令を受けて、ディスク装置群130に対して命令に応じた処理を実行することもできる。
ディスク収納部127は、ディスク装置群130を収納する収納ユニットである。ディスク収納部127は、ディスク装置群130の個々のディスク装置を挿抜して収納可能な複数のスロットを有している。ディスク装置群130は、ディスク装置131,132,133,134,・・・を含む。ディスク装置131,132,133,134は、1つのRAIDグループ(“RAIDグループ#1”とする)に属する。それ以外のディスク装置は、“RAIDグループ#1”以外の何れかのRAIDグループに属する。
なお、ディスクシェルフ120には、ディスク装置131,132,133,134,・・・の全部または一部に代えて、SSDなどの他の種類の記憶装置を収納可能としてもよい。その場合、コントローラ110は、当該他の種類の記憶装置を用いてRAIDを構築してもよい。
図4は、ストレージシステムのソフトウェア例を示す図である。図4に示すユニット(ディスク装置群130を除く)の一部または全部は、コントローラ110およびディスクシェルフ120が実行するプログラムのモジュールであってもよい。また、図4に示すユニット(ディスク装置群130を除く)の一部または全部は、FPGA(Field Programmable Gate Array)やASIC(Application Specific Integrated Circuit)などの電子回路であってもよい。
コントローラ110は、記憶部111a、アクセス制御部111bおよび復元処理部111cを有する。
記憶部111aは、アクセス制御部111bや復元処理部111cの処理に用いる各種の情報を記憶する。例えば、記憶部111aは、RAID4〜6におけるストライプの物理的な配置を管理するための情報を記憶する。また、リコンストラクションを実行しているか否かを管理するための情報や、リコンストラクションの進捗を管理するための情報を記憶する。記憶部111aは、例えば、RAM113上に実装できる。
アクセス制御部111bは、サーバ200からの要求に基づいて、ディスク装置群130にアクセスする。具体的には、アクセス制御部111bは、サーバ200からユーザデータの書き込み要求を受信すると、ディスク装置群130にユーザデータの書き込みを行わせ、その結果をサーバ200に送信する。また、アクセス制御部111bは、サーバ200からユーザデータの読み出し要求を受信すると、ディスク装置群130からユーザデータを読み出して、読み出したユーザデータをサーバ200に送信する。例えば、サーバ200上のOSは、ユーザデータを複数のデータブロックで管理し、コントローラ110に対する書き込みや読み出しの要求をデータブロック単位で行う。アクセス制御部111bは、ディスク装置群130へのデータアクセスに、FC I/F114を用いる。
また、ディスク装置群130のディスク装置では、故障が発生することがある。アクセス制御部111bは、リコンストラクションの実行指示を受けると、復元処理部111cに処理を委譲する。アクセス制御部111bが、自身の機能により何れかのディスク装置の故障を検知して、復元処理部111cにリコンストラクションを行わせてもよい。
復元処理部111cは、リコンストラクションを実行する。復元処理部111cは、リコンストラクションの実行を制御するための通信を、FC I/F114を用いて行う。復元処理部111cは、リコンストラクションの実行を開始すると、何れのディスク装置に対してリコンストラクションを実行中であるかを示す管理情報を記憶部111aに格納する。また、復元処理部111cは、リコンストラクションの進捗を示す進捗情報を記憶部111aに格納する。具体的には、復元処理部111cは、故障したディスク装置における、リコンストラクションが終了した部分を進捗情報に記録する。更に、復元処理部111cは、記憶部121aにも上記管理情報および進捗情報を格納する。復元処理部111cは、管理情報および進捗情報を管理用I/F116を用いて、ディスクシェルフ120に送信する。
ディスクシェルフ120は、記憶部121a、監視部121bおよび復元処理部121cを有する。
記憶部121aは、復元処理部111c,121cの処理に用いる各種の情報(上記管理情報や進捗情報など)を記憶する。記憶部121aは、例えば、RAM123やフラッシュメモリ124上に実装できる。
監視部121bは、コントローラ110の死活監視を行う。例えば、監視部121bは、管理用I/F125を用いて、コントローラ110に対してpingを送信する。そして、所定時間内にping応答があれば、コントローラ110は起動していると判断する。一方、所定時間内にping応答がなければ、コントローラ110は停止していると判断する。監視部121bは、このようにして死活監視を行う。また、例えば、コントローラ110が停止する直前に、コントローラ110から停止する旨の通知を受信して、コントローラ110の停止を検出してもよい。
監視部121bは、コントローラ110が停止したことを検出すると、復元処理部121cに処理を委譲する。具体的には、CPU121はROM122に記憶されたリコンストラクション実行用のプログラムをRAM123上に読み出して実行し、復元処理部121cの機能を発揮する。
復元処理部121cは、コントローラ110がリコンストラクション中に停止した場合、リコンストラクションの処理を引き継ぐ。復元処理部121cは、FC I/F126を介して、ディスク装置131,132,133,134,・・・に対するリコンストラクションを実行する。このとき、復元処理部121cは、記憶部121aに記憶された管理情報に基づいて、リコンストラクションの対象とするディスク装置を判断する。また、復元処理部121cは、記憶部121aに記憶された進捗情報に基づいて、復元対象のディスクのうちリコンストラクションを引き継ぐ部分を判断する。
復元処理部121cは、リコンストラクションを実行するとともに、記憶部121aに記憶された進捗情報にリコンストラクションの進捗を登録する。
ここで、ストレージシステム100ではRAID4を想定する。ただし、RAID5,6など他のRAIDレベルでもよい。
図5は、RAID4の例を示す図である。図5では、“RAIDグループ#1”を例示している。図5(A)は通常時を示している。
ディスク装置131は、パリティデータを格納するためのディスク装置である(パリティディスクと呼ぶことがある)。ディスク装置131のディスク番号を“1”(図5では“ディスク#1”と表記。以下、同様)とする。
ディスク装置132は、データブロックを分割したデータを格納するためのディスク装置である(データディスクと呼ぶことがある)。ディスク装置132のディスク番号を“2”とする。なお、以下の説明では第1の実施の形態と同様に、データブロックを分割したデータを単にデータと呼ぶことがある。
ディスク装置133は、データディスクである。ディスク装置133のディスク番号を“3”とする。
ディスク装置134は、ディスク装置131,132,133の何れかが故障した際に、故障したディスク装置の代わりに使用するスペアのディスク装置(スペアディスクと呼ぶことがある)である。ディスク装置134のディスク番号を“4”とする。
例えば、ディスク装置131,132,133の記憶領域はストリップ(Strip)と呼ばれる所定サイズの単位で分割されている。具体的には、次のようなストリップが設けられている。ディスク装置131には、“パリティ1−2”、“パリティ3−4”、“パリティ5−6”、・・・という名称のストリップが配置されている。ディスク装置132には“ストリップ1”、“ストリップ3”、“ストリップ5”、・・・という名称のストリップが配置されている。ディスク装置133には“ストリップ2”、“ストリップ4”、“ストリップ6”、・・・という名称のストリップが配置されている。
ここで、“パリティ1−2”は、“ストリップ1”、“ストリップ2”に対応するパリティを格納したストリップであることを示す。例えば、“ストリップ1”、“ストリップ2”の排他的論理和を“ストリップ1”、“ストリップ2”に対応するパリティとする。“パリティ1−2”のサイズは、“ストリップ1”、“ストリップ2”のサイズに等しい。同様に“パリティ3−4”は“ストリップ3”、“ストリップ4”に対応するパリティを格納したストリップである。また、“パリティ5−6”は“ストリップ5”、“ストリップ6”に対応したパリティを格納したストリップである。
“RAIDグループ#1”では、各ストリップを組合せてディスク装置131,132,133に跨る複数のストライプが設けられている。例えば、ストライプ番号“1”(図5では“ストライプ#1”と表記。以下、同様)のストライプは、“パリティ1−2”、“ストリップ1”、“ストリップ2”の組である。“ストライプ#1”は1つのデータブロックに対応し、この場合、当該1つのデータブロックは、ディスク装置132,133上の2つのストリップに分割されて配置されていることになる。ストライプ番号“2”のストライプは、“パリティ3−4”、“ストリップ3”、“ストリップ4”の組である。ストライプ番号“3”のストライプは、“パリティ5−6”、“ストリップ5”、“ストリップ6”の組である。例えば、あるストライプにデータブロックを格納する場合、当該データブロックを分割して、各ストリップに格納する。このように、ディスク装置131,132,133は、各ストリップに対応するデータの集合を記憶しているということができる。
図5(B)ではディスク装置133が故障した場合を想定した復元時(リコンストラクション)の処理を例示している。この場合、例えば、ディスク装置131上の“パリティ1−2”とディスク装置132上の“ストリップ1”に基づいて、スペアディスクであるディスク装置134上に“ストリップ2”を復元する。“ストリップ4”、“ストリップ6”についても同様である。
なお、パリティディスクが故障する場合もある。その場合は、リコンストラクションによって、各データディスクに配置された複数のストリップの排他的論理和を取り直して、パリティを再生成し、スペアディスクに格納する。
図6は、ディスク装置の例を示す図である。ディスク装置133は、ディスク133a,133b,133cを有する。ディスク133a,133b,133cは、それぞれがトラックを複数有している。データの書き込みや読み出しを行うための磁気ヘッドがトラックごとに設けられる。例えば、ディスク133aは、当該トラックの1つとしてトラックTrを有する。ディスク133a,133b,133cのうち、垂直に重なる複数のトラックはシリンダCとして管理される。更に、トラックTrはセクタSctに分かれている。
例えば、ディスク133a上のk(kは1以上の整数)個のセクタ(例えば、0〜k−1個目)を“ストリップ2”とし、次のk個のセクタ(例えば、k〜2k−1個目)を“ストリップ4”とする。kの値は、予め定められる。
例えば、セクタSctの位置は、シリンダCを示す情報、トラックTr上の磁気ヘッドを示す情報およびセクタ番号(図6の例ではセクタ番号“2”)の組により識別できる。
このように、各ストリップに対してディスク133a上の位置を対応付けることができる。また、ストライプと当該ストライプに対応する各ストリップ(ディスク装置131,132,133上の位置)との対応関係を示す情報は、記憶部111aおよび記憶部121aに予め格納される。このような情報は、ディスク装置131,132,133などに格納しておき、CPU111,121がRAM113,123上に適宜読み出してもよい。
図7は、RAIDグループ管理テーブルの例を示す図である。RAIDグループ管理テーブル140は、記憶部111aおよび記憶部121aに格納される。RAIDグループ管理テーブル140は、ディスク装置131,132,133などに格納しておき、CPU111,121がRAM113,123に適宜読み出してもよい。RAIDグループ管理テーブル140は、RAIDグループ番号、ディスク番号およびディスク種別の項目を含む。
RAIDグループ番号の項目には、RAIDグループ番号が登録される。ディスク番号の項目には、ディスク番号が登録される。ディスク種別の項目には、パリティディスク、データディスクおよびスペアディスクを区別するための情報が登録される。
例えば、RAIDグループ番号が“1”、ディスク番号が“1”、ディスク種別が“パリティ”であれば、ディスク番号“1”のディスク装置131が“RAIDグループ#1”に属し、パリティディスクであることを示す。
ここで、ディスク種別“データ”はデータディスクであることを示す。また、ディスク種別“スペア”はスペアディスクであることを示す。
なお、ストレージシステム100は、複数のRAIDグループをまとめたアグリゲートと呼ばれる単位を管理してもよい。
図8は、リコンストラクション実行管理テーブルの例を示す図である。リコンストラクション実行管理テーブル150は、記憶部121aに格納される管理情報である。リコンストラクション実行管理テーブル150は、復元処理部111cの処理に用いるため、記憶部111aにも格納される。リコンストラクション実行管理テーブル150は、ディスク番号および状態の項目を含む。
ディスク番号の項目には、ディスク番号が登録される。状態の項目には、ディスク装置の状態を示す情報が登録される。
例えば、ディスク番号が“1”、状態が“正常”であれば、ディスク番号“1”のディスク装置131が正常に動作していることを示す。
また、ディスク番号が“3”、状態が“異常”であれば、ディスク番号“3”のディスク装置133で異常(故障などの障害)が発生して、データの読み出しや書き出しが不能であることを示す。
また、ディスク番号が“4”、状態が“リコンストラクション中”であれば、異常の発生したディスク装置(ここでは、ディスク装置133)のデータを、当該ディスク番号“4”のディスク装置134上に復元中であることを示す。
図9は、リコンストラクション進捗管理テーブルの例を示す図である。リコンストラクション進捗管理テーブル160は、記憶部121aに格納される進捗情報である。リコンストラクション進捗管理テーブル160は、復元処理部111cの処理に用いるため、記憶部111aにも格納される。リコンストラクション進捗管理テーブル160は、ストライプ番号および状態の項目を含む。
ストライプ番号の項目には、ストライプ番号が登録される。状態の項目には、リコンストラクションの実行状況を示す情報が登録される。
例えば、ストライプ番号が“1”、状態が“完了”であれば、故障したディスク装置のストライプ番号“1”に割り当てられたストリップ(例えば、ディスク装置133でいえば“ストリップ2”)について、復元が完了していることを示す。
また、例えば、ストライプ番号が“3”、状態が“未完了”であれば、故障したディスク装置のストライプ番号“3”に割り当てられたストリップ(例えば、ディスク装置133でいえば“ストリップ6”)について、復元が未完了であることを示す。
ここで、以下の説明では、記憶部111aに記憶されたリコンストラクション実行管理テーブルおよびリコンストラクション進捗管理テーブルを、記憶部121aに記憶された同名の各テーブルと区別するために符号を付さずに示す。
図10は、ストレージシステムの制御例を示すフローチャートである。以下、図10に示す処理をステップ番号に沿って説明する。
(ステップS1)アクセス制御部111bは、復元開始の指示を受け付ける。ここでは、ディスク装置133が故障し、ディスク装置133のデータをスペアディスクであるディスク装置134に復元する場合を想定する。復元開始の指示に、復元元/復元先のディスク装置を示す情報が含まれてもよい。アクセス制御部111bは、復元処理部111cに処理を委譲する。アクセス制御部111bは、復元元/復元先のディスク装置を示す情報を復元処理部111cに通知してもよい。
(ステップS2)復元処理部111cは、記憶部121aに記憶されたリコンストラクション実行管理テーブル150を更新する。具体的には、復元処理部111cは、ディスク装置133(ディスク番号“3”)に“異常”を登録し、ディスク装置134(ディスク番号“4”)に“リコンストラクション中”を登録する。復元処理部111cは、当該更新内容を記憶部111aに記憶されたリコンストラクション実行管理テーブルにも反映させる。復元処理部111cは、記憶部121aに記憶されたリコンストラクション進捗管理テーブル160に故障したディスク装置133に割り当てられていたストライプ番号を登録する。この時点では、リコンストラクション進捗管理テーブル160の状態の項目は、全てのストライプ番号につき“未完了”である。
(ステップS3)監視部121bは、コントローラ110の死活監視を開始する。例えば、監視部121bは、リコンストラクション実行管理テーブル150に“リコンストラクション中”が登録されたことを検出し、これを契機として監視を開始する。あるいは、復元処理部111cからリコンストラクションの実行を開始する旨の通知を受け、これを契機として監視を開始してもよい。
(ステップS4)復元処理部111cは、リコンストラクションを実行する。詳細は後述する。
(ステップS5)監視部121bは、復元処理部111cがリコンストラクションを実行している間、コントローラ110の監視を実行する。詳細は後述する。
(ステップS6)復元処理部111cは、リコンストラクションを完了する。復元処理部121cがリコンストラクションを完了させることもある。
(ステップS7)復元処理部111cは、ディスク装置134についてリコンストラクション実行管理テーブル150に“正常”を登録する。また、復元処理部111cは、リコンストラクション進捗管理テーブル160の登録内容を初期化(例えば、クリア)する。
(ステップS8)監視部121bは、コントローラ110の死活監視を停止する。例えば、監視部121bは、リコンストラクション実行管理テーブル150に“リコンストラクション中”を示す情報がなくなったことを検出し、これを契機として監視を停止する。あるいは、復元処理部111c,121cの何れかからリコンストラクションが完了した旨の通知を受け、これを契機として監視を停止してもよい。
このようにして、コントローラ110はリコンストラクションを行う。その際、ディスクシェルフ120はコントローラ110の死活監視を行う。
なお、ステップS7の後、復元処理部111cは、記憶部111a,121aに記憶されたRAIDグループ管理テーブル140を更新する。具体的には、ディスク番号“4”(ディスク装置134)に“データ”を登録する。
また、ディスク装置133は、例えば管理者などによって新しいディスク装置に交換される。すると、復元処理部111cは、リコンストラクション実行管理テーブル150のディスク番号“3”を“正常”に変更する。その場合、例えば、交換された新しいディスク装置を新たなスペアディスクとして用いる。このため、復元処理部111cは、記憶部111a,121aに記憶されたRAIDグループ管理テーブル140のディスク番号“3”(新しいディスク装置)に“スペア”を登録する。
なお、上記のRAIDグループ管理テーブル140の更新は、アクセス制御部111bまたは復元処理部121cが実行してもよい。
次に、上記ステップS4の具体的な手順を説明する。
図11は、リコンストラクションの例を示すフローチャートである。以下、図11に示す処理をステップ番号に沿って説明する。
(ステップS11)復元処理部111cは、復元対象とするストライプを選択する。具体的には、復元処理部111cは、記憶部111aに記憶されたリコンストラクション進捗管理テーブルを参照して、復元が未完了のストライプ番号を特定し、その中から1つストライプ番号を選択する。例えば、ストライプ番号の昇順に選択することが考えられる。
(ステップS12)復元処理部111cは、選択したストライプ番号に対応するディスク装置131,132上のストリップに基づいてパリティ演算を行い、故障したディスク装置133上のデータを復元する。例えば、ストライプ番号“1”であれば、ディスク装置131上の“パリティ1−2”およびディスク装置132上の“ストリップ1”に基づいて、“ストリップ2”のデータを復元する。
(ステップS13)復元処理部111cは、復元したデータをディスク装置134に書き込む。復元処理部111cは、ディスク装置134に対して、ディスク装置133と同じストリップ位置に、復元したデータを書き込んでもよい。
(ステップS14)復元処理部111cは、選択したストライプについて、ディスク装置134への復元が完了したか否かを判定する。完了した場合、処理をステップS15に進める。完了していない場合、処理をステップS12に進める。
(ステップS15)復元処理部111cは、選択したストライプについてリコンストラクションの“完了”を、記憶部121aに記憶されたリコンストラクション進捗管理テーブル160に登録する。例えば、ストライプ番号“1”について、ディスク装置134上へ“ストリップ2”の復元が完了した場合、ストライプ番号“1”の状態を“完了”とする。復元処理部111cは、記憶部111aに記憶されたリコンストラクション進捗管理テーブルについても同様に更新する。
(ステップS16)復元処理部111cは、全ストライプの復元が完了したか否かを判定する。完了した場合、処理を終了する。復元が完了していないストライプがある場合、処理をステップS11に進める。例えば、復元処理部111cは、記憶部111aに記憶されたリコンストラクション進捗管理テーブルを参照して、全ストライプ番号に対して状態“完了”が登録されていれば、全ストライプの復元が完了したと判断する。一方、何れかのストライプ番号で状態“未完了”が登録されていれば、復元が完了していないストライプがあると判断する。
このようにして、復元処理部111cは、ディスク装置133のデータをディスク装置134に復元する。
次に、図10のステップS5の具体的な手順を説明する。
図12は、ディスクシェルフによる監視の例を示すフローチャートである。以下、図12に示す処理をステップ番号に沿って説明する。
(ステップS21)監視部121bは、コントローラ110の死活監視を行い、コントローラ110が停止したか否かを判定する。コントローラ110が停止した場合、処理をステップS22に進める。コントローラ110が停止していない場合、本ステップS21の処理を継続する。死活監視の方法としては、例えば、上述したようにpingを用いることができる。
(ステップS22)監視部121bは、記憶部121aに記憶されたリコンストラクション実行管理テーブル150に基づいて、リコンストラクション中のディスク装置があるか否かを判定する。リコンストラクション中のディスク装置がある場合、処理をステップS23に進める。リコンストラクション中のディスク装置がない場合、監視を止めて処理を終了する。例えば、リコンストラクション実行管理テーブル150において、“リコンストラクション中”の状態のディスク装置がある場合、リコンストラクション中のディスク装置があると判断する。一方、同テーブルにおいて、“リコンストラクション中”の状態のディスク装置がない場合、リコンストラクション中のディスク装置がないと判断する。
(ステップS23)監視部121bは、リコンストラクション実行用のプログラムをROM122から読み出してRAM123に格納する(ロード)。CPU121は、ロードした当該プログラムを実行することで、復元処理部121cの機能を発揮する。
(ステップS24)復元処理部121cは、リコンストラクション実行管理テーブル150に基づいて、リコンストラクション中のディスク装置134を特定する。復元処理部121cは、記憶部121aに記憶されたリコンストラクション進捗管理テーブル160に基づいて、ディスク装置134のうちリコンストラクションの再開ポイントを取得する。例えば、図9で説明したリコンストラクション進捗管理テーブル160では、ストライプ番号“1”、“2”が“完了”であり、ストライプ番号“3”、“4”が“未完了”である。例えば、復元処理部121cは、ストライプ番号の昇順にリコンストラクションを実行する。その場合、復元処理部121cはストライプ番号“3”を再開ポイントとして取得する。これにより、復元処理部121cは、ディスク装置134上のリコンストラクションを再開する位置を決定できる。
(ステップS25)復元処理部121cは、再開ポイントとして取得したストライプについてリコンストラクションを実行する。
このようにして、監視部121bは、コントローラ110の死活監視を行う。そして、コントローラ110が停止した場合には、復元処理部121cは、リコンストラクション進捗管理テーブル160に基づいて、復元処理部111cが実行途中であったリコンストラクションを引き継ぐ。
なお、復元処理部121cによるリコンストラクションの手順は、図11で説明した復元処理部111cによるリコンストラクションの手順と同様である。ただし、復元処理部121cが初回にステップS11を実行する場合、ステップS24で取得した再開ポイントを選択する。2回目以降にステップS11を実行する場合は、復元処理部111cと同様である。また、ステップS15では、復元処理部121cは、記憶部121aに記憶されたリコンストラクション進捗管理テーブル160の更新を行うのみでよい。すなわち、復元処理部121cは、コントローラ110上のリコンストラクション進捗管理テーブルの更新は行わない。
また、復元処理部121cがリコンストラクションを完了させる場合があることを先に述べた(図10のステップS6の説明)。その場合、復元処理部121cは、記憶部121aに記憶されたリコンストラクション実行管理テーブル150の更新およびリコンストラクション進捗管理テーブル160の初期化を行う。その方法は、図10で説明したステップS7と同様である。
以上のように、コントローラ110が停止してリコンストラクションを続行不能になった場合にもディスクシェルフ120が当該リコンストラクションを引き継ぐことで、リコンストラクションを効率的に行うことができる。
ここで、ストレージシステム100に搭載されるディスク装置の数は年々増大してきている。一方で、ディスク装置の故障率は下げ止まっており、中には故障率の高いディスク装置も存在する。このため、リコンストラクションを実行する頻度が高まってきている。また、ディスク装置単体の容量も増大している。このような要因により、リコンストラクションの所要時間が増大している。リコンストラクションの所要時間が増大することで、リコンストラクションの最中にコントローラ110が故障するリスクが高まっている。更に、リコンストラクションが長引くと、リコンストラクション中にRAIDグループ内の他のディスク装置で更に障害が発生する可能性も高まる。複数のディスク装置で同時に障害が発生すると、リコンストラクションが実行不能になり得る。このため、データの復元を行えなくなるリスクも高まってきている。
これに対し、ストレージシステム100によれば、コントローラ110の保守作業に時間がかかる場合にも、コントローラ110の保守作業の完了を待たずにリコンストラクションを再開できる。このとき、ディスクシェルフ120は、コントローラ110により記憶部121aに登録されたリコンストラクション進捗管理テーブル160に基づいて、故障したディスク装置133のうち復元が未実行の部分に関してのみ復元の処理を行う。これにより、最初からリコンストラクションを再実行する場合に比べて、所要時間を短縮できる。このようにして、リコンストラクションを効率化することができる。
ここで、復元処理部121cによるリコンストラクション実行中に、コントローラ110が交換または修理されて、交換後または修理後のコントローラ(当該コントローラもコントローラ110と同じ符号を用いる)が起動することがある。その場合、交換後または修理後のコントローラ110により、ディスクシェルフ120のリコンストラクションの処理を引き継いでもよい。そこで、コントローラ110の起動時の処理手順を説明する。
図13は、コントローラ起動時の処理の例を示すフローチャートである。以下、図13に示す処理をステップ番号に沿って説明する。
(ステップS31)保守作業後のコントローラ110が起動する。アクセス制御部111bは、ディスク装置群130にアクセスするための準備を完了させる。
(ステップS32)復元処理部111cは、記憶部121aに記憶されたリコンストラクション実行管理テーブル150を読み出して、記憶部111aに格納する。
(ステップS33)復元処理部111cは、記憶部111aに記憶されたリコンストラクション実行管理テーブルに基づいて、ディスクシェルフ120がリコンストラクションを実行中であるか否かを判定する。ディスクシェルフ120がリコンストラクションを実行中である場合、処理をステップS34に進める。ディスクシェルフ120がリコンストラクションを実行中でない場合、処理を終了する。例えば、リコンストラクション実行管理テーブルにおいて、“リコンストラクション中”の状態のディスク装置がある場合、ディスクシェルフ120でリコンストラクション中であると判断する。一方、同テーブルにおいて、“リコンストラクション中”の状態のディスク装置がない場合、ディスクシェルフ120でリコンストラクション中でないと判断する。
(ステップS34)復元処理部111cは、復元処理部121cにリコンストラクションの停止を指示する。
(ステップS35)復元処理部111cは、復元処理部121cからリコンストラクションを停止した旨の応答を受信する。
(ステップS36)復元処理部111cは、記憶部111aに記憶されたリコンストラクション進捗管理テーブルに基づいて、リコンストラクションの再開ポイントを取得する。具体的な方法は、図12のステップS24と同様である。
(ステップS37)復元処理部111cは、リコンストラクションを実行する。
このようにして、コントローラ110が保守作業後に起動した際に、ディスクシェルフ120でリコンストラクションが実行されている場合には、コントローラ110が当該リコンストラクションを引き継ぐ。なお、ステップS37の手順は、図11で説明した手順と同様である。ただし、ステップS11を初回に実行する際には、ステップS36で再開ポイントとしたストライプを選択する。2回目以降にステップS11を実行する場合は、復元処理部111cと同様である。
また、ステップS34,S35において、ディスクシェルフ120はコントローラ110の死活監視を行うため、コントローラ110が起動したことを検出することもできる。ディスクシェルフ120は、コントローラ110が起動したことを検出したことを契機として、自身が実行中のリコンストラクションを自発的に停止してもよい。
ここで、コントローラ110のCPU111は、アクセスなどの制御を行うため、ディスクシェルフ120のCPU121よりも高性能であることがある。この場合、リコンストラクションの処理をCPU121よりもCPU111に実行させた方が、短時間でリコンストラクションを完了できる可能性がある。したがって、コントローラ110の起動後に、ディスクシェルフ120からコントローラ110へリコンストラクションを引き継ぐことで、リコンストラクションを一層効率化できる。
また、ストレージシステム100では、コントローラ110に代替してリコンストラクションを行う機能をディスクシェルフ120に設ける。このようにすれば、既存の筐体に対して別筐体を設けなくてよいので、スペースを節約できる。また、ストレージシステム100とディスクシェルフ120とは電源を個別に供給できることが多い。このため、コントローラ110を保守作業のために電源停止する場合に、ディスクシェルフ120でリコンストラクションを継続するような環境を、既存の装備を利用して低コストで実現できる。
更に、ディスクシェルフ120は複数段設けることができる。その場合、例えば、RAIDグループ管理テーブル140において、ディスクシェルフごとに(例えば、ディスクシェルフの識別情報に対応付けて)RAIDグループを管理する。そして、復元処理部111cは、リコンストラクションの対象となっているディスクシェルフの所定の記憶部に、リコンストラクション実行管理テーブル150やリコンストラクション進捗管理テーブル160を格納する。このようにすれば、ディスクシェルフを複数段設ける場合にも、各ディスクシェルフにおいてリコンストラクションを引き継ぐことができる。したがって、ディスクシェルフを複数段設ける場合にも、リコンストラクションを効率化できる。
なお、RAID1により冗長化された2つのディスク装置のうちの一方が故障した場合に、スペアディスクに正常なディスク装置のデータを複製して、データの復旧を図ることも考えられる。その場合にも、ストレージシステム100と同様にして、当該データ復旧を効率的に行うことができる。なお、ストライプ単位で復元済の部分を管理する代わりに、例えば、セクタ単位、あるいは、セクタの集合(ブロック)単位などで、故障したディスク装置に記憶されていたデータのうち、復元済/未復元の部分を管理してもよい。
1 ストレージシステム
1a,1b,1c,1d,1e 記憶装置
1f,1g 制御装置

Claims (6)

  1. 第1の記憶装置と第2の記憶装置とを含む複数の記憶装置と、
    前記第1の記憶装置に記憶されたデータの第1の集合に基づいて、前記第2の記憶装置に記憶されたデータの第2の集合を、前記複数の記憶装置の何れかである復元先の記憶装置上に復元する処理を実行可能な第1の制御装置と、
    前記第1の制御装置による復元の進捗を示す進捗情報を記憶する第3の記憶装置と、
    前記第1の制御装置が停止したことを検出すると、前記第3の記憶装置に記憶された前記進捗情報に基づいて、前記第2の集合のうち未復元の部分の復元を行う第2の制御装置と、
    を備えるストレージシステム。
  2. 前記第1の制御装置は、前記第2の集合のうち未復元の部分に対応する前記第2の記憶装置上の位置を示す情報を前記進捗情報に登録し、
    前記第2の制御装置は、前記進捗情報に基づいて前記復元先の記憶装置上の復元を開始する位置を決定する、
    請求項1記載のストレージシステム。
  3. 前記第2の制御装置は、前記第2の集合のうち未復元の部分を順次復元するとともに前記第3の記憶装置に記憶された前記進捗情報を更新し、
    前記第1の制御装置は、自身が起動した際に前記第2の制御装置が復元の処理を実行中である場合、前記進捗情報に基づいて、前記第2の集合のうち未復元の部分の復元を前記第2の制御装置から引き継ぐ、
    請求項1または2記載のストレージシステム。
  4. 前記第2の制御装置および前記第3の記憶装置は、前記第1の制御装置と通信可能であり前記複数の記憶装置を収納可能な装置に設けられる、請求項1乃至3の何れか一項に記載のストレージシステム。
  5. 第1の記憶部と第2の記憶部とを含む複数の記憶部と、
    前記第1の記憶部に記憶されたデータの第1の集合に基づいて、前記第2の記憶部に記憶されたデータの第2の集合を、前記複数の記憶部の何れかである復元先の記憶部上に復元する処理を実行可能な制御装置による復元の進捗を示す進捗情報を記憶する第3の記憶部と、
    前記制御装置が停止したことを検出すると、前記第3の記憶部に記憶された前記進捗情報に基づいて、前記第2の集合のうち未復元の部分の復元を行う制御部と、
    を備えるストレージ装置。
  6. ストレージシステムで実行されるデータ復元方法であって、
    第1の記憶装置と第2の記憶装置とを含む複数の記憶装置と、前記第1の記憶装置に記憶されたデータの第1の集合に基づいて、前記第2の記憶装置に記憶されたデータの第2の集合を、前記複数の記憶装置の何れかである復元先の記憶装置上に復元する処理を実行可能な第1および第2の制御装置と、を有する前記ストレージシステムが、
    前記第1の制御装置を用いて、前記第2の集合に属する部分を順次復元するとともに復元の進捗を示す進捗情報を前記複数の記憶装置以外の第3の記憶装置に格納し、
    前記第2の制御装置を用いて、前記第1の制御装置が停止したことを検出すると、前記第3の記憶装置に記憶された前記進捗情報に基づいて、前記第2の集合のうち未復元の部分の復元を引き継ぐ、
    データ復元方法。
JP2012069342A 2012-03-26 2012-03-26 ストレージシステム、ストレージ装置およびデータ復元方法 Active JP5891890B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2012069342A JP5891890B2 (ja) 2012-03-26 2012-03-26 ストレージシステム、ストレージ装置およびデータ復元方法
US13/778,245 US9329944B2 (en) 2012-03-26 2013-02-27 Storage system, storage apparatus, and data restoration method
EP13157169.7A EP2645250A3 (en) 2012-03-26 2013-02-28 Storage system, storage apparatus, and data restoration method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012069342A JP5891890B2 (ja) 2012-03-26 2012-03-26 ストレージシステム、ストレージ装置およびデータ復元方法

Publications (2)

Publication Number Publication Date
JP2013200764A true JP2013200764A (ja) 2013-10-03
JP5891890B2 JP5891890B2 (ja) 2016-03-23

Family

ID=47845733

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012069342A Active JP5891890B2 (ja) 2012-03-26 2012-03-26 ストレージシステム、ストレージ装置およびデータ復元方法

Country Status (3)

Country Link
US (1) US9329944B2 (ja)
EP (1) EP2645250A3 (ja)
JP (1) JP5891890B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200100814A (ko) 2018-01-25 2020-08-26 가부시끼가이샤 도시바 Raid 장치

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9952927B2 (en) * 2016-01-27 2018-04-24 Futurewei Technologies, Inc. Data protection for cold storage system
US10929250B2 (en) * 2018-09-27 2021-02-23 EMC IP Holding Company LLC Method and system for reliably restoring virtual machines
CN113031850A (zh) * 2019-12-24 2021-06-25 伊姆西Ip控股有限责任公司 用于数据处理的方法、电子设备和计算机程序产品
US11868637B2 (en) * 2020-06-15 2024-01-09 Dell Products L.P. Flexible raid sparing using disk splits

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259063A (ja) * 2001-03-02 2002-09-13 Hitachi Ltd バックアップ処理可能な記憶システム
JP2003029933A (ja) * 2001-07-19 2003-01-31 Fujitsu Ltd Raid制御装置及びその制御方法
JP2006259894A (ja) * 2005-03-15 2006-09-28 Fujitsu Ltd ストレージ制御装置および方法
JP2006301714A (ja) * 2005-04-15 2006-11-02 Toshiba Corp アレイコントローラ、当該アレイコントローラを含む情報処理装置及びディスクアレイ制御方法
US20070168706A1 (en) * 2005-12-06 2007-07-19 Humlicek Donald R Method for reducing rebuild time on a RAID device
JP2010186285A (ja) * 2009-02-12 2010-08-26 Fujitsu Ltd ミラーリング制御装置、ストレージ装置、ミラーリング制御方法
JP2012014638A (ja) * 2010-07-05 2012-01-19 Nec Corp ストレージ装置及びストレージ装置のリビルド処理方法

Family Cites Families (34)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4754397A (en) * 1985-02-15 1988-06-28 Tandem Computers Incorporated Fault tolerant modular subsystems for computers
JP2743606B2 (ja) 1991-04-11 1998-04-22 三菱電機株式会社 アレイ型記録装置
US5548711A (en) * 1993-08-26 1996-08-20 Emc Corporation Method and apparatus for fault tolerant fast writes through buffer dumping
DE69521549T2 (de) * 1994-04-04 2001-10-25 Hyundai Electronics America Verfahren zur Verwaltung gemeinsamer Mittel mehrerer Verarbeitungseinheiten
JPH08221217A (ja) 1995-02-17 1996-08-30 Hitachi Ltd ディスクアレイサブシステムのデータ再構築方法
US5848230A (en) 1995-05-25 1998-12-08 Tandem Computers Incorporated Continuously available computer memory systems
US6067635A (en) * 1995-10-27 2000-05-23 Lsi Logic Corporation Preservation of data integrity in a raid storage device
US5819310A (en) * 1996-05-24 1998-10-06 Emc Corporation Method and apparatus for reading data from mirrored logical volumes on physical disk drives
JPH10105346A (ja) 1996-10-01 1998-04-24 Hitachi Ltd ディスク記憶システム
US6341317B1 (en) * 1998-12-30 2002-01-22 Emc Corporation Method and apparatus for managing a log of information in a computer system including an intelligent storage system
US6625750B1 (en) * 1999-11-16 2003-09-23 Emc Corporation Hardware and software failover services for a file server
US6618821B1 (en) * 2000-01-12 2003-09-09 Hewlett-Packard Development Company, L.P. Fault tolerant network server having multiple slideably-mounted processing elements sharing a redundant array of independent disks through SCSI isolators
US6647735B2 (en) * 2000-03-14 2003-11-18 Hussmann Corporation Distributed intelligence control for commercial refrigeration
US7111189B1 (en) * 2000-03-30 2006-09-19 Hewlett-Packard Development Company, L.P. Method for transaction log failover merging during asynchronous operations in a data storage network
US6629264B1 (en) * 2000-03-30 2003-09-30 Hewlett-Packard Development Company, L.P. Controller-based remote copy system with logical unit grouping
US6658540B1 (en) * 2000-03-31 2003-12-02 Hewlett-Packard Development Company, L.P. Method for transaction command ordering in a remote data replication system
US6675258B1 (en) * 2000-06-30 2004-01-06 Lsi Logic Corporation Methods and apparatus for seamless firmware update and propagation in a dual raid controller system
US20030172191A1 (en) * 2002-02-22 2003-09-11 Williams Joel R. Coupling of CPU and disk drive to form a server and aggregating a plurality of servers into server farms
US6728898B2 (en) 2002-03-06 2004-04-27 Marathon Technologies Corporation Producing a mirrored copy using incremental-divergence
US20040078508A1 (en) * 2002-10-02 2004-04-22 Rivard William G. System and method for high performance data storage and retrieval
US7320084B2 (en) * 2003-01-13 2008-01-15 Sierra Logic Management of error conditions in high-availability mass-storage-device shelves by storage-shelf routers
US7634614B2 (en) * 2003-01-13 2009-12-15 Sierra Logic Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves and that support virtual disk formatting
US8281084B2 (en) * 2003-01-13 2012-10-02 Emlilex Design & Manufacturing Corp. Method and interface for access to memory within a first electronic device by a second electronic device
US7167929B2 (en) * 2003-01-13 2007-01-23 Sierra Logic Integrated-circuit implementation of a storage-shelf router and a path controller card for combined use in high-availability mass-storage-device shelves that may be incorporated within disk arrays, and a storage-shelf-interface tunneling method and system
EP1867097B1 (en) * 2005-03-10 2016-11-02 Telecom Italia S.p.A. Disaster recovery architecture
US7536588B2 (en) * 2006-02-08 2009-05-19 International Business Machines Corporation Method for servicing storage devices in a bladed storage subsystem
JP2008046986A (ja) * 2006-08-18 2008-02-28 Hitachi Ltd ストレージシステム
US7644300B1 (en) * 2007-04-20 2010-01-05 3Par, Inc. Fast resynchronization of data from a remote copy
JP4958739B2 (ja) * 2007-11-09 2012-06-20 株式会社日立製作所 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
TWI439856B (zh) * 2010-06-30 2014-06-01 Ibm 具故障備援以管理共享資源之方法與多電腦系統
US8938574B2 (en) * 2010-10-26 2015-01-20 Lsi Corporation Methods and systems using solid-state drives as storage controller cache memory
US8762771B2 (en) * 2011-11-04 2014-06-24 Lsi Corporation Method for completing write operations to a RAID drive pool with an abnormally slow drive in a timely fashion
US8773861B2 (en) * 2011-12-15 2014-07-08 Amazon Technologies, Inc. Reconfigurable shelf for computing modules
WO2013118189A1 (en) * 2012-02-10 2013-08-15 Hitachi, Ltd. Storage device replacement method, and storage sub-system adopting storage device replacement method

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002259063A (ja) * 2001-03-02 2002-09-13 Hitachi Ltd バックアップ処理可能な記憶システム
JP2003029933A (ja) * 2001-07-19 2003-01-31 Fujitsu Ltd Raid制御装置及びその制御方法
JP2006259894A (ja) * 2005-03-15 2006-09-28 Fujitsu Ltd ストレージ制御装置および方法
JP2006301714A (ja) * 2005-04-15 2006-11-02 Toshiba Corp アレイコントローラ、当該アレイコントローラを含む情報処理装置及びディスクアレイ制御方法
US20070168706A1 (en) * 2005-12-06 2007-07-19 Humlicek Donald R Method for reducing rebuild time on a RAID device
JP2010186285A (ja) * 2009-02-12 2010-08-26 Fujitsu Ltd ミラーリング制御装置、ストレージ装置、ミラーリング制御方法
JP2012014638A (ja) * 2010-07-05 2012-01-19 Nec Corp ストレージ装置及びストレージ装置のリビルド処理方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200100814A (ko) 2018-01-25 2020-08-26 가부시끼가이샤 도시바 Raid 장치

Also Published As

Publication number Publication date
EP2645250A2 (en) 2013-10-02
US20130254589A1 (en) 2013-09-26
EP2645250A3 (en) 2014-02-19
JP5891890B2 (ja) 2016-03-23
US9329944B2 (en) 2016-05-03

Similar Documents

Publication Publication Date Title
US10613934B2 (en) Managing RAID parity stripe contention
US20200042388A1 (en) RAID Storage System with Logical Data Group Rebuild
US8839028B1 (en) Managing data availability in storage systems
US9519554B2 (en) Storage system with rebuild operations
TWI450087B (zh) 複數個磁碟陣列系統之資料儲存方法及資料儲存系統
US9823876B2 (en) Nondisruptive device replacement using progressive background copyback operation
JP5147979B2 (ja) データ記憶ライブラリのための重複排除プロトコルを選択する装置および方法
US8392752B2 (en) Selective recovery and aggregation technique for two storage apparatuses of a raid
US8639878B1 (en) Providing redundancy in a storage system
US7231493B2 (en) System and method for updating firmware of a storage drive in a storage network
US20090265510A1 (en) Systems and Methods for Distributing Hot Spare Disks In Storage Arrays
WO2009094052A1 (en) Storage redundant array of independent drives
JP5891890B2 (ja) ストレージシステム、ストレージ装置およびデータ復元方法
JP2012506087A (ja) Maidx及び適応データ配置を用いた電力及び性能の管理
WO2015058542A1 (zh) 独立冗余磁盘阵列的重构方法及装置
US10210062B2 (en) Data storage system comprising an array of drives
US8433949B2 (en) Disk array apparatus and physical disk restoration method
US9256490B2 (en) Storage apparatus, storage system, and data management method
US20170371782A1 (en) Virtual storage
US8751761B2 (en) Snapback-free logical drive duplication
US20110202719A1 (en) Logical Drive Duplication
US20150378622A1 (en) Management of data operations
US20140149787A1 (en) Method and system for copyback completion with a failed drive
JP6734305B2 (ja) ディスクアレイコントローラ、ストレージ装置、ストレージ装置の復旧方法、及びディスクアレイコントローラの復旧プログラム
JP2015197793A (ja) 記憶装置、データ復旧方法およびデータ復旧プログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20151026

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20151110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151228

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160208

R150 Certificate of patent or registration of utility model

Ref document number: 5891890

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150