JP5532982B2 - ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法 - Google Patents

ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法 Download PDF

Info

Publication number
JP5532982B2
JP5532982B2 JP2010022533A JP2010022533A JP5532982B2 JP 5532982 B2 JP5532982 B2 JP 5532982B2 JP 2010022533 A JP2010022533 A JP 2010022533A JP 2010022533 A JP2010022533 A JP 2010022533A JP 5532982 B2 JP5532982 B2 JP 5532982B2
Authority
JP
Japan
Prior art keywords
group
storage
raid group
data
raid
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
JP2010022533A
Other languages
English (en)
Other versions
JP2011159241A (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 JP2010022533A priority Critical patent/JP5532982B2/ja
Priority to US13/015,756 priority patent/US8601312B2/en
Publication of JP2011159241A publication Critical patent/JP2011159241A/ja
Application granted granted Critical
Publication of JP5532982B2 publication Critical patent/JP5532982B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • 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/16Error detection or correction of the data by redundancy in hardware
    • G06F11/1658Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit
    • G06F11/1662Data re-synchronization of a redundant component, or initial sync of replacement, additional or spare unit the resynchronized component or unit being a persistent storage device
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/2053Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where persistent mass storage functionality or persistent mass storage control functionality is redundant
    • G06F11/2094Redundant storage or storage space
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/06Addressing a physical block of locations, e.g. base addressing, module addressing, memory dedication

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法に関する。
一般に、ストレージ装置の信頼性を高めるために、RAID(Redundant Array of Independent Disks)技術が普及している。特に、近年では、記憶領域や管理費用を削減するために、RAID技術にシンプロビジョニング機能を加えたストレージ装置が採用されている。
シンプロビジョニング機能とは、ストレージ装置が、上位装置によって認識されるボリューム容量を持つ仮想的な記憶領域として仮想ボリュームを提供する。そして、ストレージ装置は、上位装置から書き込み要求があったとき、書き込み要求があったデータに割り振られる仮想ボリューム内のロケーションだけに、データの容量に応じた物理的な記憶領域を対応付ける。すなわち、ストレージ装置は、仮想ボリューム内のロケーション毎にRAIDグループを特定し、特定したRAIDグループ内のディスクに記憶領域を割り当てる。このロケーション毎に物理的な記憶領域を割り当てる方法には、ストレージ装置が、RAIDグループ間で既に割り当てられた記憶領域の容量が均等になるように制御することがある。
特開2009−116783号公報 特開2005−266933号公報 特開2004−246770号公報
しかしながら、ストレージ装置が、障害のあるディスクを含むRAIDグループ内のディスクの記憶領域を、仮想ボリューム内のロケーションに割り当てると、ストレージ装置全体のアクセス性能が劣化するという問題がある。すなわち、ストレージ装置は、仮想ボリュームに物理的な記憶領域を割り当てる際に、各RAIDグループの状態を確認しないで、割り当て容量が均等になるようにRAIDグループを特定する。このため、ストレージ装置が、仮に障害のあるディスクを含むRAIDグループの記憶領域を仮想ボリュームに割り当てると、その後、このRAIDグループにアクセスがあると、アクセス処理に負荷がかかり、レスポンスが遅くなる。この結果、ストレージ装置全体の平均レスポンスが劣化する。
開示の技術は、上記に鑑みてなされたものであって、ストレージ装置内に障害が発生したディスクを含むRAIDグループがあっても、当該ストレージ装置全体のアクセス性能の劣化を防ぐストレージ装置等の記憶領域割当方法を提供することを目的とする。
本願の開示するストレージ装置は、一つの態様において、データを記憶する記憶領域を備えた複数の物理媒体と、アクセス対象となる仮想ボリュームに対する新規データの書き込み要求を検出すると、複数の物理媒体で構成する複数のストレージグループのうち、障害が発生した物理媒体を含むストレージグループ以外のストレージグループを、記憶領域を割り当てるグループとして決定するストレージグループ決定部と、前記新規データのデータサイズに応じて、前記ストレージグループ決定部によって決定されたストレージグループ内に存在する物理媒体の記憶領域を前記仮想ボリュームに割り当てる記憶領域割当部とを備える。
本願の開示するストレージ装置の一つの態様によれば、ストレージ装置内に障害が発生した物理媒体を含むストレージグループがあっても、当該ストレージ装置全体のアクセス性能の劣化を防止できるという効果を奏する。
図1は、実施例1に係るストレージ装置の構成を示す機能ブロック図である。 図2は、実施例2に係るRAID装置の構成を示す機能ブロック図である。 図3は、RAID管理テーブルのデータ構造の一例を示す図である。 図4は、リストテーブルのデータ構造の一例を示す図である。 図5は、記憶領域割当の具体例について説明する説明図である。 図6は、実施例2に係る記憶領域割当の処理手順を示すフローチャートである。 図7は、実施例3に係るRAID装置の構成を示す機能ブロック図である。 図8は、RAIDグループ復元管理テーブルのデータ構造の一例を示す図である。 図9は、データ復元の具体例について説明する説明図である。 図10は、実施例3に係るデータ復元の処理手順を示すフローチャートである。 図11は、実施例4に係るRAID装置の構成を示す機能ブロック図である。 図12は、データ再復元の具体例について説明する説明図である。 図13は、実施例4に係るデータ再復元の処理手順を示すフローチャートである。
以下に、本願の開示するストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法の実施例を図面に基づいて詳細に説明する。実施例では、ストレージ装置をシンプロビジョニング機能が搭載されたストレージ装置として説明する。なお、実施例によりこの発明が限定されるものではない。
図1は、本実施例1に係るストレージ装置の構成を示す機能ブロック図である。図1に示すように、ストレージ装置1は、ストレージグループ決定部11、記憶領域割当部12、および物理媒体Dを有する。物理媒体Dは、データを記憶する記憶領域を備える。
ストレージグループ決定部11は、アクセス対象となる仮想ボリュームに対する新規データの書き込み要求を検出する。そして、ストレージグループ決定部11は、複数の物理媒体Dで構成する複数のストレージグループGのうち、障害が発生した物理媒体Dを含むストレージグループG以外のストレージグループGを、記憶領域を割り当てるグループとして決定する。
記憶領域割当部12は、書き込み要求がされた新規データのデータサイズに応じて、ストレージグループ決定部11によって決定されたストレージグループG内に存在する物理媒体Dの記憶領域を仮想ボリュームに割り当てる。なお、仮想ボリュームは、シンプロビジョニング型のボリュームであり、書き込み要求をした計算機に対する仮想的な記憶領域である。
このようにして、ストレージ装置1は、仮想ボリュームに物理媒体Dの記憶領域を割り当てる際、新規データに対して障害が発生した物理媒体Dを含むストレージグループGの物理媒体を割り当てないようにした。このため、ストレージ装置1は、障害が発生した物理媒体Dを含むストレージグループGにアクセスする頻度の上昇を抑止できるので、このストレージグループGに対するアクセス処理の負荷を軽減できる。この結果、ストレージ装置1は、アクセス処理の負荷によって要する処理時間の増加を抑止できるので、ストレージ装置1全体のアクセス性能の劣化を防止できる。
ところで、実施例1に係るストレージ装置1は、シンプロビジョニング型の仮想ボリュームを有する装置として説明した。しかしながら、ストレージ装置1は、シンプロビジョニング型の仮想ボリュームを有するRAID(Redundant Array of Independent Disks)装置であっても良い。そこで、実施例2では、シンプロビジョニング型の仮想ボリュームを有するRAID装置について説明する。
[実施例2に係るRAID装置の構成]
図2は、実施例2に係るRAID装置2の構成を示す機能ブロック図である。図2に示すように、RAID装置2は、RAIDコントローラ20、30およびストレージディスク、所謂ストレージとして機能するディスクDを有する。RAIDコントローラ20、30は、それぞれディスクDと接続する。なお、RAID装置2は、2台のRAIDコントローラを持つ小規模なRAID装置を例に示すが、4台の中規模のRAID装置、8台の大規模のRAID装置も同様である。
ここで、RAID装置2が有するディスクDは、RAIDグループとしてグループ化される。図2の例では、ディスクD11〜18の8つのディスクが1つのRAIDグループG0を構成し、ディスクD21〜28の8つのディスクが1つのRAIDグループG1を構成する。また、ディスクD41、D43の2つのディスク、ディスクD42、D44の2つのディスク、ディスクD45、D47の2つのディスク、ディスクD46、D48の2つのディスクがそれぞれRAIDグループG2、G3、G4、G5を構成する。
さらに、RAID装置2が有する複数のディスクDは、シンプロビジョニングプールを構成する。そして、シンプロビジョニングプール毎に、ディスク容量が集約して管理される。図2の例では、RAIDグループG0、G1の2つのグループに含まれる複数のディスクDが1つのシンプロビジョニングプールP0を構成する。また、ディスクD31〜D38、RAIDグループG2〜G5の4つのグループに含まれる複数のディスクDが1つのシンプロビジョニングプールP1を構成する。なお、1つのシンプロビジョニングプールには、2つ以上のRAIDグループGが含まれるものとする。
RAIDコントローラ20は、ホストコンピュータ9との間のデータ転送を制御するためのチャネルアダプタ(CA)200、制御部210およびディスクDとの間のデータ転送を制御するディスクインタフェース(DI)220を有する。また、制御部210は、仮想ボリューム制御部211、仮想ボリューム212、シンプロビジョニング制御部213、記憶部214、RAID制御部215およびリビルド制御部216を有する。さらに、記憶部214は、RAID管理テーブル214aおよびリストテーブル214bを有する。
RAID管理テーブル214aは、RAIDグループ毎の管理情報を記憶する。ここで、RAID管理テーブル214aについて図3を参照しながら説明する。図3は、RAID管理テーブル214aのデータ構造の一例を示す図である。図3に示すように、RAID管理テーブル214aは、RAIDグループ番号214a1毎に、所属プール番号214a2、RAIDレベル214a3、メンバーディスク数214a4およびメンバーディスク214a5を対応付けて記憶する。
RAIDグループ番号214a1は、RAIDコントローラ20内でRAIDグループを識別する番号である。所属プール番号214a2は、そのRAIDグループが所属するプール番号である。RAIDレベル214a3は、そのRAIDグループのRAIDレベルである。メンバーディスク数214a4は、RAIDグループに属するディスクDの数を示す値であり、メンバーディスク214a5は、RAIDグループに属する各ディスクDの番号である。
リストテーブル214bは、ホストからのアクセスに応じてRAIDグループに割り当てられた記憶領域の容量をRAIDグループ毎に管理する。ここで、リストテーブル214bについて図4を参照しながら説明する。ここで、図4は、リストテーブル214bのデータ構造の一例を示す図である。図4に示すように、リストテーブル214bは、所属プール番号214b1、RAIDグループ番号214b2、RAIDグループ状態214b3および割り当て済記憶領域サイズ214b4を、所属プールのRAIDグループ毎に記憶する。
RAIDグループ番号214b2は、RAIDコントローラ20内でRAIDグループを識別する番号である。所属プール番号214b1は、そのRAIDグループが所属するプール番号である。なお、複数のRAIDグループが同一の所属プールに所属することがあるものとする。RAIDグループ状態214b3は、RAIDグループが正常であるか否かを示す。例えば、RAIDグループ状態214b3には、RAIDグループに所属するディスクが全て正常であれば、RAIDグループが正常であることを示す「1」が格納される。また、RAIDグループ状態214b3には、1台でもディスクが故障していれば、RAIDグループが異常であることを示す「0」が格納される。割り当て済記憶領域サイズ214b4は、ホストからのアクセスに応じてRAIDグループ内で仮想ボリュームに割り当て済みとなっている記憶領域のブロック数の総和を示す。
仮想ボリューム制御部211は、ホストコンピュータ9から仮想ボリューム212に対する新規データの書き込み要求を検出すると、この新規データを仮想ボリューム212内の仮想領域に対応付ける。仮想ボリューム212は、ホストコンピュータ9からのアクセス対象となる仮想的な記憶部であり、シンプロビジョニング型のボリュームを指す。なお、仮想ボリューム212は、ホストコンピュータ9に対して1つであっても良いし、2つ以上であっても良い。ここでは、仮想ボリューム212は、ホストコンピュータ9に対して1つであるものとして説明する
シンプロビジョニング制御部213は、RAIDグループ決定部213aおよび記憶領域割当部213bを有する。RAIDグループ決定部213aは、仮想ボリューム制御部211によって新規データに仮想領域が割り当てられると、複数のRAIDグループGのうち、障害が発生したディスクDを含むRAIDグループG以外のRAIDグループGを記憶領域を割り当てるグループとして決定する。具体的には、RAIDグループ決定部213aは、仮想ボリューム212に対するシンプロビジョニングプール(以降、「プール」と略記)を選択する。また、RAIDグループ決定部213aは、選択したプール内におけるRAIDグループG毎の仮想ボリュームに割り当て済みの容量のうち他のRAIDグループGより小さい容量であって、当該RAIDグループG内の全てのディスクDが正常であるRAIDグループGを決定する。
具体的には、RAIDグループ決定部213aは、リストテーブル214bから、割り当て済記憶領域サイズ214b4が小さい順にRAIDグループ番号214b2を選択する。そして、RAIDグループ決定部213aは、選択したRAIDグループ番号214b2のRAIDグループGが正常であるか否かを、リストテーブル214bのRAIDグループ状態214b3を参照して判定する。すなわち、RAIDグループ決定部213aは、選択したRAIDグループGに含まれるいずれのディスクDにも障害が無いか否かを判定する。そして、RAIDグループ決定部213aは、選択したRAIDグループ番号214b2のRAIDグループGが正常である場合には、新規データに記憶領域を割り当てるグループを当該RAIDグループGに決定する。一方、RAIDグループ決定部213aは、選択したRAIDグループ番号214b2のRAIDグループGが正常でない場合には、割り当て済記憶領域サイズ214b4が次に小さいRAIDグループ番号214b2を選択する。かかる一連のRAIDグループを決定する処理を、「RAIDグループ決定処理」というものとする。
記憶領域割当部213bは、新規データのデータサイズに応じて、RAIDグループ決定部213aによって決定されたRAIDグループG内に存在するディスクDの記憶領域を仮想ボリューム212に割り当てる。すなわち、記憶領域割当部213bは、仮想ボリューム212に対応付けられた新規データのデータサイズに応じた記憶領域を、RAIDグループ決定部213aによって決定されたRAIDグループG内に存在するディスクDに確保する。そして、記憶領域割当部213bは、確保した記憶領域を仮想ボリューム212内の新規データの仮想領域に割り当てる。なお、データサイズに応じた記憶領域とは、データサイズ分の記憶領域であっても良いし、データサイズに関わらず例えば32MB単位で割り当てた記憶領域であっても良い。
RAID制御部215は、RAIDグループ毎に定められたRAIDレベルに応じて、RAIDグループ内のディスクDにアクセスする。具体的には、RAID制御部215は、記憶領域割当部213bによって仮想ボリューム212に割り当てられた記憶領域に、新規データを書き込む。このとき、RAID制御部215は、RAID管理テーブル214aからRAIDグループ決定部213aによって決定されたRAIDグループGのRAIDレベル214a3を抽出し、抽出したRAIDレベルに応じて、新規データを記憶領域に書き込む。
また、RAID制御部215は、ディスクDの障害を検知すると、この障害ディスクDの再構築(リビルド)要求をリビルド制御部216に送信する。
リビルド制御部216は、RAID制御部215から障害ディスクDの再構築要求を受信すると、この障害ディスクDの再構築を実行する。具体的には、リビルド制御部216は、予め定められているホットスペア(HS)にデータを再構築する。
次に、シンプロビジョニング制御部213による記憶領域割当の具体例について図5を参照しながら説明する。図5は、記憶領域割当の具体例について説明する説明図である。ここでは、RAIDグループのRAIDレベルがRAID1の場合を例示する。また、RAIDグループG0は障害ディスクを含み、RAIDグループG1は正常なディスクのみのRAIDグループであるものとする。
まず、仮想ボリューム制御部211は、ホストコンピュータ9から仮想ボリューム212に対する新規データの書き込み要求を検出すると、この新規データを仮想ボリューム212内の仮想領域に対応付ける。そして、仮想ボリューム制御部211は、所属プール番号に基づいて、仮想ボリューム212に対応するプールを決定する。そして、RAIDグループ決定部213aは、リストテーブル214bから、決定したプールの中でRAIDグループG毎の仮想ボリューム212への割り当て済記憶領域サイズ214b4が小さい順にRAIDグループ番号214b2を選択する。ここでは、RAIDグループG0の割り当て済記憶領域サイズ214b4が、RAIDグループG1より小さい場合を想定する。この場合、RAIDグループ決定部213aは、RAIDグループG0を選択する。
ところが、RAIDグループ決定部213aは、選択したRAIDグループG0には障害ディスクが含まれるので正常でないと判定し、割り当て済記憶領域サイズ214b4が次に小さいRAIDグループGを選択する。ここでは、RAIDグループ決定部213aは、RAIDグループG1を選択する。すると、RAIDグループ決定部213aは、選択したRAIDグループG1が正常であると判定し、新規データに記憶領域を割り当てるグループをRAIDグループG1に決定する。
次に、記憶領域割当部213bは、仮想ボリューム212に割り当てられた新規データのデータサイズに応じた記憶領域を、決定されたRAIDグループG1内のディスクDに確保する。そして、記憶領域割当部213bは、確保した記憶領域を仮想ボリューム212内の新規データの仮想領域に割り当てる。
さらに、RAID制御部215は、RAIDグループG1内のディスクDに確保された記憶領域に新規データを書き込む。このとき、RAID制御部215は、RAIDグループG1がRAID1であるので、記憶領域が確保されたディスクDと対になるディスクDにも同時に新規データを書き込む。
[実施例2に係る記憶領域割当の処理手順]
次に、実施例2に係る記憶領域割当の処理手順を、図6を参照して説明する。図6は、実施例2に係る記憶領域割当の処理手順を示すフローチャートである。なお、仮想ボリューム制御部211は、ホストコンピュータ9から新規データの書き込み要求を検出したものとする。
まず、仮想ボリューム制御部211は、書き込み要求のあった新規データを仮想ボリューム212内の仮想領域に割り当てる。そして、RAIDグループ決定部213aは、仮想ボリューム212に対するプール番号を選択する。
次に、RAIDグループ決定部213aは、選択したプール番号(「選択プール番号」)に対応するリストテーブル214bのRAIDグループ番号214b2を、割り当て済記憶領域サイズ214b4の小さい順(昇順)に並べ替える(ステップS11)。なお、RAIDグループ決定部213aは、リストテーブル214bにRAIDグループ番号214b2に対応させて順序番号を付加し、割り当て済記憶領域サイズ214b4の小さい順(昇順)に順序番号を保持するようにしても良い。
そして、RAIDグループ決定部213aは、割り当て済記憶領域サイズ214b4の小さい順(昇順)に並べてあるリストテーブル214bの最初のRAIDグループ番号214b2を選択する(ステップS12)。なお、割り当て済記憶領域サイズ214b4の小さい順に順序番号が保持されたリストテーブル214bの場合には、RAIDグループ決定部213aは、順序番号の一番小さい値を持つRAIDグループ番号214b2を選択する。そして、RAIDグループ決定部213aは、選択したRAIDグループ番号214b2のRAIDグループが正常であるか否かを判定する(ステップS13)。
RAIDグループ決定部213aは、RAIDグループが正常でないと判定する場合には(ステップS13否定)、選択プール番号に所属する全てのRAIDグループを選択したか否かを、リストテーブル214bに基づいて判定する(ステップS14)。そして、RAIDグループ決定部213aは、全てのRAIDグループを選択していない場合には(ステップS14否定)、リストテーブル214bの次のRAIDグループ番号214b2を選択し(ステップS15)、ステップS13に移行する。
一方、RAIDグループ決定部213aは、RAIDグループが正常であると判定する場合には(ステップS13肯定)、新規データに記憶領域を割り当てるグループを、選択したRAIDグループに決定する(ステップS16)。また、RAIDグループ決定部213aは、全てのRAIDグループを選択した場合には(ステップS14肯定)、新規データに記憶領域を割り当てるグループを、リストテーブル214bの最初に選択したRAIDグループ番号214b2のRAIDグループに決定する(ステップS17)。
続いて、記憶領域割当部213bは、決定したRAIDグループGに物理空間を割り当てる(ステップS18)。すなわち、記憶領域割当部213bは、仮想ボリューム212に割り当てられた新規データのデータサイズに応じた記憶領域を、RAIDグループ決定部213aによって決定されたRAIDグループG内のディスクDに確保する。その後、RAID制御部215は、記憶領域割当部213bによって割り当てられた物理空間に新規データを書き込む。このとき、RAID制御部215は、RAIDグループ決定部213aによって決定されたRAIDグループGのRAIDレベルに応じて、新規データを記憶領域に書き込む。
[実施例2の効果]
上記実施例2によれば、RAID装置2は、RAIDグループGに割り当てられた記憶領域の容量をRAIDグループG毎に管理するリストテーブル214bを有するようにした。そして、RAID装置2のRAIDグループ決定部213aは、リストテーブル214bによって管理されたRAIDグループG毎の容量のうち他のRAIDグループGより小さい容量のRAIDグループGを選択する。そして、RAIDグループ決定部213aは、選択したRAIDグループG内の全てのディスクDが正常であるRAIDグループGを決定するようにした。さらに、記憶領域割当部213bは、新規データのデータサイズに応じて、RAIDグループ決定部213aによって決定されたRAIDグループG内に存在するディスクDの記憶領域を仮想ボリューム212に割り当てる。
かかる構成によれば、RAIDグループ決定部213aは、全てのディスクDが正常であるRAIDグループの中で、割り当てられた記憶領域の容量が最も小さいRAIDグループGの物理空間を仮想ボリューム212に割り当てる。このため、RAIDグループ決定部213aは、全てのディスクDが正常であるRAIDグループGへのアクセス頻度を特定のRAIDグループGに偏らないようにすることができ、RAID装置2全体のアクセス性能の劣化を防止できる。
なお、RAIDグループ決定部213aは、リストテーブル214bによって管理された、RAIDグループ毎の割り当て記憶領域の容量のうち他のRAIDグループGより小さい容量のRAIDグループGを選択する。そして、RAIDグループ決定部213aは、選択したRAIDグループG内の全てのディスクDが正常であるRAIDグループGを決定するようにした。しかしながら、RAIDグループ決定部213aは、RAIDグループG内の全てのディスクDが正常であるRAIDグループGをリストテーブル214bから抽出する。そして、RAIDグループ決定部213aは、抽出したRAIDグループGの中から最も小さい割り当て記憶領域の容量のRAIDグループGを決定するようにしても良い。
また、RAID装置2は、障害ディスクを含むRAIDグループが復旧した後、障害時に該RAIDグループ以外のRAIDグループ内に記憶されたデータを、復旧したRAIDグループに復元するようにしても良い。
ところで、実施例2に係るRAID装置2では、アクセス対象となる仮想ボリュームに対する新規データの書き込み要求があった場合に、この仮想ボリュームに障害ディスクを含むRAIDグループ以外のRAIDグループの物理空間を割り当てる場合を説明した。RAID装置2は、これに限定されるものではなく、さらに運用中にディスクに障害が発生した場合、障害ディスクを含むRAIDグループのデータをこのRAIDグループ以外のRAIDグループの物理空間に復元しても良い。すなわち、RAID装置2は、障害ディスクを含むRAIDグループのデータをHSへ復元する代わりに、正常なRAIDグループの物理空間に復元するのである。
そこで、実施例3では、RAID装置3が、運用中にディスクに障害が発生した場合、障害ディスクを含むRAIDグループのデータをこのRAIDグループ以外のRAIDグループの物理空間に復元する場合を説明する。
[実施例3に係るRAID装置の構成]
図7は、実施例3に係るRAID装置3の構成を示す機能ブロック図である。なお、図2に示すRAID装置2と同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例2と実施例3とが異なるところは、RAID制御部215に障害ディスク検出部215aを追加し、リビルド制御部216に復元先RAIDグループ決定部216aおよびデータ復元部216bを追加した点にある。さらに、記憶部214にRAIDグループ復元管理テーブル214cを追加した点にある。
障害ディスク検出部215aは、障害が発生したディスクDを検出する。また、障害ディスク検出部215aは、検出した障害ディスクDを含むRAIDグループGが異常であることを示す「0」をリストテーブル214bのRAIDグループ状態214b3に格納する。また、障害ディスク検出部215aは、障害が発生したディスクDが所属するRAIDグループGの復元を指示する。具体的には、障害ディスク検出部215aは、障害が発生したディスクDのディスク番号、所属するプール番号および所属するRAIDグループ番号を含む復元指示を復元先RAIDグループ決定部216aに行う。
復元先RAIDグループ決定部216aは、障害が発生したディスクDが所属するRAIDグループGを障害グループとして、当該障害グループ内のディスクDに記憶されたデータの復元先を、障害グループ以外のRAIDグループGに決定する。具体的には、復元先RAIDグループ決定部216aは、障害ディスク検出部215aから復元指示を受け取ると、RAIDグループ決定部213aに対して、障害グループ内のディスクDに記憶されたデータ毎の復元先の決定を指示する。この際、復元先RAIDグループ決定部216aは、障害が発生したディスクDが所属するプールの番号を含む復元先RAIDグループの決定指示を通知する。なお、データとは、ディスクDに対する読み書き単位の情報をいう。
RAIDグループ決定部213aは、復元先RAIDグループ決定部216aから復元先RAIDグループの決定指示を受け取ると、「RAIDグループ決定処理」を実行し、RAIDグループGを決定する。すなわち、RAIDグループ決定部213aは、復元先RAIDグループの決定指示に含まれたプールに含まれた複数のRAIDグループGのうち、障害が発生したディスクDを含むRAIDグループG以外のRAIDグループGを決定する。
データ復元部216bは、復元先RAIDグループ決定部216aによって決定されたRAIDグループGに、障害グループ内のディスクDに記憶されたデータを復元する。具体的には、データ復元部216bは、障害グループ内のディスクDに記憶されたデータを読み出し、復元先RAIDグループ決定部216aによって決定されたRAIDグループG内のディスクDに書き込む。また、データ復元部216bは、読み出したデータが記憶されていた場所と、書き込まれた場所とを対にし、RAIDグループ復元管理テーブル214cに格納する。
ここで、RAIDグループ復元管理テーブル214cについて図8を参照しながら説明する。図8は、RAIDグループ復元管理テーブル214cのデータ構造の一例を示す図である。図8に示すように、RAIDグループ復元管理テーブル214cは、障害RAIDグループデータ情報214c1および復元先RAIDグループデータ情報214c2をデータ毎に対応付けて記憶する。障害RAIDグループデータ情報214c1は、障害グループ内のデータの記憶場所を示し、障害グループのRAIDグループ番号、データが記憶されているディスクDのディスク番号およびその実アドレスを含む。復元先RAIDグループデータ情報214c2は、データの復元先の記憶場所を示し、復元先RAIDグループGのRAIDグループ番号、データが記憶されるディスクDのディスク番号およびその実アドレスを含む。すなわち、データ復元部216bは、障害グループ内のディスクDから読み出したデータが記憶されていた場所を、障害RAIDグループデータ情報214c1に格納する。また、データ復元部216bは、読み出したデータを書き込んだ場所を、復元先RAIDグループデータ情報214c2に格納する。なお、実アドレスとは、例えばLBA(Logical Block Address)であるが、ディスクD内の位置を特定できるアドレスであれば良い。また、データの復元管理を実アドレスで指定されるデータ毎に行うようにしたが、複数のデータを纏めた単位で行うようにしても良い。この場合、障害RAIDグループデータ情報214c1及び復元先RAIDグループデータ情報214c2の実アドレスに代えて、先頭アドレス及びデータサイズとしても良い。
図7に戻って、データ復元部216bは、データを復元すると、復元先RAIDグループGおよび障害グループ内の割り当て済記憶領域サイズ214b4をリストテーブル214bに更新する。
次に、リビルド制御部216によるデータ復元の具体例について図9を参照しながら説明する。図9は、データ復元の具体例について説明する説明図である。ここでは、RAIDグループのRAIDレベルがRAID1の場合を例示する。
まず、障害ディスク検出部215aは、障害が発生したディスクDをRAIDグループG0内で検出し、復元先RAIDグループ決定部216aにRAIDグループG0の復元を指示する。すると、復元先RAIDグループ決定部216aは、RAIDグループ決定部213aに復元先RAIDグループGの決定を指示する。そして、RAIDグループ決定部213aは、「RAIDグループ決定処理」を実行し、RAIDグループGを決定し、復元先RAIDグループ決定部216aに処理を戻す。すなわち、RAIDグループ決定部213aは、複数のRAIDグループGのうち、障害が発生したディスクDを含むRAIDグループG0以外のRAIDグループG1を決定する。図9の例では、復元先RAIDグループ決定部216aは、RAIDグループG1を決定する。
次に、データ復元部216bは、復元先RAIDグループ決定部216aによって決定されたRAIDグループG1に、RAIDグループG0内のディスクDに記憶されたデータを復元する。すなわち、データ復元部216bは、RAIDグループG0内の正常なディスクDに記憶されたデータを読み出し、RAIDグループG1内のディスクDに書き込む。なお、データ復元部216bは、例えばRAIDグループ毎にディスクDの状態を管理したテーブルに基づいて、RAIDグループG0内の正常なディスクDを選択する。
[実施例3に係るデータ復元の処理手順]
次に、実施例3に係るデータ復元の処理手順を、図10を参照して説明する。図10は、実施例3に係るデータ復元の処理手順を示すフローチャートである。なお、RAID装置3では、運用中にRAIDグループG0のディスクD12が故障したものとする。
まず、障害ディスク検出部215aは、RAIDグループG0のディスクD12の障害を検出し(ステップS21)、復元先RAIDグループ決定部216aにRAIDグループG0の復元を指示する。
そして、復元先RAIDグループ決定部216aは、データ復元カウントを「0」に初期化する(ステップS22)。復元先RAIDグループ決定部216aは、RAIDグループG0内のディスクDに記憶された複数の復元元データのうち、1個の復元元データを選択し、選択した復元元データの記憶領域のアクセスをロックする(ステップS23)。これは、データの復元中に復元元データにアクセスされてデータ内容が変更されるのを防止するためである。なお、選択した復元元データは、読み書き単位の情報を意味する。
続いて、復元先RAIDグループ決定部216aは、選択した復元元データの復元先を、RAIDグループG0以外のRAIDグループGに決定する(ステップS24)。そして、データ復元部216bは、決定された復元元データの復元先のRAIDグループG内のディスクDに、記憶領域を確保する(ステップS25)、当該記憶領域に選択された復元元データをコピーする(ステップS26)。この際、データ復元部216bは、選択された復元元データが記憶された記憶領域から復元元データを削除し、当該記憶領域の確保を解放する(ステップS26)。そして、データ復元部216bは、選択された復元元データの記憶領域のアクセスをアンロックする(ステップS27)。
続いて、復元先RAIDグループ決定部216aは、データ復元カウントが復元元データの最大数であるか否かを判定する(ステップS28)。そして、復元先RAIDグループ決定部216aは、データ復元カウントが復元元データの最大数であると判定する場合には(ステップS28肯定)、データ復元処理を終了する。一方、復元先RAIDグループ決定部216aは、データ復元カウントが復元元データの最大数でないと判定する場合には(ステップS28否定)、データ復元カウントをインクリメントする(ステップS29)。そして、復元先RAIDグループ決定部216aは、次の復元元データの復元をすべく、ステップS23に移行する。
[実施例3の効果]
上記実施例3によれば、復元先RAIDグループ決定部216aは、ディスクDに障害が発生した場合に、障害が発生したディスクDが所属するグループGを障害グループとする。そして、復元先RAIDグループ決定部216aは、この障害グループ内のディスクDに記憶されたデータの復元先を、当該障害グループ以外のRAIDグループGに決定するようにした。そして、データ復元部216bは、復元先RAIDグループ決定部216aによって決定されたRAIDグループGに、障害グループ内のディスクDに記憶されたデータを復元するようにした。
かかる構成によれば、データ復元部216bは、障害グループ内のディスクDに記憶されたデータを、この障害グループ以外のRAIDグループGに復元するので、障害グループへのアクセスを抑止する。このため、RAID装置3は、その後、障害グループにアクセスしないこととなり、障害グループにおけるアクセス負荷を回避できるようになるので、RAID装置3全体のアクセス性能の劣化を防止できる。
ところで、実施例3に係るRAID装置3は、運用中にディスクに障害が発生した場合に、障害ディスクを含むRAIDグループのデータをこのRAIDグループ以外のRAIDグループの物理空間に復元する場合を説明した。すなわち、RAID装置3は、障害ディスクを含むRAIDグループのデータをHSへ復元する代わりに、障害ディスクを含むRAIDグループのデータを正常なRAIDグループに復元した。しかしながら、RAID装置3は、これに限定されるものではなく、障害ディスクを含むRAIDグループのデータを正常なRAIDグループに復元後、復元データを保守により復旧したRAIDグループに再度復元するようにしても良い。
そこで、実施例4では、RAID装置4が、障害ディスクを含むRAIDグループのデータを正常なRAIDグループに復元後、復元データを保守により復旧したRAIDグループに再度復元する場合を説明する。
[実施例4に係るRAID装置の構成]
図11は、実施例4に係るRAID装置4の構成を示す機能ブロック図である。なお、図7に示すRAID装置3と同一の構成については同一符号を示すことで、その重複する構成及び動作の説明については省略する。実施例3と実施例4とが異なるところは、RAID制御部215に障害ディスク復元検出部215bを追加した点にある。
障害ディスク復元検出部215bは、障害が発生したディスクDを含むRAIDグループG(障害グループ)が復旧した旨を検出する。また、障害ディスク復元検出部215bは、復旧したRAIDグループGが正常であることを示す「1」をリストテーブル214bのRAIDグループ状態214b3に格納する。また、障害ディスク復元検出部215bは、復旧したRAIDグループGの復元を復元先RAIDグループ決定部216aに指示する。具体的には、障害ディスク復元検出部215bは、復旧したRAIDグループGの番号および所属するプールPのプール番号を含む再復元指示を復元先RAIDグループ決定部216aに行う。復元先RAIDグループ決定部216aは、障害ディスク復元検出部215bから再復元指示を受け取ると、復元先を、復旧したRAIDグループGに決定する。
データ復元部216bは、復旧したRAIDグループGを復旧グループとして、当該復旧グループに、障害グループ内のディスクDに記憶されていたデータを再度復元する。具体的には、データ復元部216bは、RAIDグループ復元管理テーブル214cの復元先RAIDグループデータ情報214c2に含まれる記憶場所の復元データを、障害RAIDグループデータ情報214c1に含まれる記憶場所にコピーする。
さらに具体的に、データ復元部216bは、RAIDグループ復元管理テーブル214cから、障害RAIDグループデータ情報214c1内のRAIDグループ番号が復旧グループの番号と一致する復元先RAIDグループデータ情報214c2を抽出する。そして、データ復元部216bは、抽出した復元先RAIDグループデータ情報214c2に含まれたデータの復元先の記憶場所(RAIDグループ、ディスク番号、実アドレス)から復元データを読み出し、復旧グループ内のディスクDに書き込む。このとき、データ復元部216bは、読み出した復元データを、この復元データが元にあった記憶場所、すなわち障害RAIDグループデータ情報214c1内の記憶場所に書き込むものとしても良い。
また、データ復元部216bは、データを再復元すると、復元先RAIDグループGおよび復旧グループ内の割り当て済記憶領域サイズ214b4をリストテーブル214bに更新する。
次に、リビルド制御部216によるデータ再復元の具体例について図12を参照しながら説明する。図12は、データ再復元の具体例について説明する説明図である。ここでは、RAIDグループG0は、障害グループであったものとし、RAIDグループG0内のデータは、RAIDグループG1に復元されたものとする。
まず、障害ディスク復元検出部215bは、RAIDグループG0が復旧した旨を検出し、復元先RAIDグループ決定部216aに復旧したRAIDグループG0の復元を指示する。すると、復元先RAIDグループ決定部216aは、RAIDグループG0を復元先として決定する。
次に、データ復元部216bは、復元先RAIDグループ決定部216aによって決定されたRAIDグループG0に、障害グループとしてのRAIDグループG0内のディスクDに記憶されていたデータを再度復元する。すなわち、データ復元部216bは、障害発生時にRAIDグループG1に復元された復元データを、復旧グループとしてのRAIDグループG0に再び復元する。
[実施例4に係るデータ再復元の処理手順]
次に、実施例4に係るデータ再復元の処理手順を、図13を参照して説明する。図13は、実施例4に係るデータ再復元の処理手順を示すフローチャートである。なお、RAID装置4では、運用中にRAIDグループG0のディスクD12が故障し、RAIDグループG0内のデータをRAIDグループG0以外のRAIDグループに復元したものとする。
まず、RAID装置4は、障害ディスクD12を交換する(ステップS31)。なお、この交換時点では、正常となったディスクD12を含むRAIDグループG0には、記憶領域が全く割り当てられていない。障害ディスク復元検出部215bは、RAIDグループG0(障害グループ)が復旧した旨を検出すると、復元先RAIDグループ決定部216aにRAIDグループG0の再復元指示を行う。すると、復元先RAIDグループ決定部216aは、RAIDグループG0を復元先として決定する。
続いて、データ復元部216bは、データ復元カウントを「0」に初期化する(ステップS32)。そして、データ復元部216bは、RAIDグループ復元管理テーブル214cから、障害RAIDグループデータ情報214c1内のRAIDグループ番号がRAIDグループG0(復旧グループ)と一致する復元先RAIDグループデータ情報214c2を抽出する。データ復元部216bは、この抽出された復元先RAIDグループデータ情報214c2のレコード数を「復元元データの最大数」とする。そして、データ復元部216bは、復元先RAIDグループデータ情報214c2内の1個の復元元データの記憶領域(RAIDグループ番号、ディスク番号、実アドレス)を選択し、選択した記憶領域のアクセスをロックする(ステップS33)。これは、データの復元中に復元元データにアクセスされてデータ内容が変更されるのを防止するためである。
続いて、データ復元部216bは、復元先として決定されたRAIDグループG0内のディスクDに記憶領域を割り当て(ステップS34)、当該記憶領域に、選択された復元元データをコピーする(ステップS35)。この際、データ復元部216bは、選択された復元元データが記憶された記憶領域から復元元データを削除し、当該記憶領域の割り当てを解放する。そして、データ復元部216bは、選択された復元元データの記憶領域のアクセスをアンロックする(ステップS36)。
続いて、データ復元部216bは、データ復元カウントが「復元元データの最大数」であるか否かを判定する(ステップS37)。そして、データ復元部216bは、データ復元カウントが「復元元データの最大数」であると判定する場合には(ステップS37肯定)、データ再復元処理を終了する。一方、データ復元部216bは、データ復元カウントが「復元元データの最大数」でないと判定する場合には(ステップS37否定)、データ復元カウントをインクリメントする(ステップS38)。そして、データ復元部216bは、次の復元元データの再復元をすべく、ステップS33に移行する。
[実施例4の効果]
上記実施例4によれば、復元先RAIDグループ決定部216aは、ディスクDに障害が発生した場合に、障害が発生したディスクDが所属するグループGを障害グループとする。そして、復元先RAIDグループ決定部216aは、この障害グループ内のディスクDに記憶されたデータの復元先を、当該障害グループ以外のRAIDグループGに決定する。そして、データ復元部216bは、復元先RAIDグループ決定部216aによって決定されたRAIDグループGに、障害グループ内のディスクDに記憶されたデータを復元する。さらに、データ復元部216bは、障害グループが復旧した場合に、障害グループを復旧グループとして、当該復旧グループに、障害グループ内のディスクDに記憶されていたデータを再度復元するようにした。
かかる構成によれば、データ復元部216bは、障害グループ内に記憶されていたデータであって復元先のRAIDグループ内に復元されたデータを、障害グループが復旧した結果復旧グループとなったRAIDグループに再度復元する。このため、データ復元部216bは、復元先のRAIDグループから復元データを復旧グループに分散できるので、復元先のRAIDグループへのアクセス頻度を軽減でき、RAID装置4全体のアクセス性能の劣化を防止できる。
なお、データ復元部216bは、復元先RAIDグループ内に記憶された全ての復元データを復旧グループに書き込むものとして説明したが、これに限定されない。すなわち、データ復元部216bは、復元データ毎に「RAIDグループ決定処理」によって決定されるRAIDグループGにこれら復元データを書き込むものとしても良い。この場合、復元先RAIDグループ決定部216aが、RAIDグループ復元管理テーブル214cから障害RAIDグループデータ情報214c1内のRAIDグループ番号が復旧グループ番号である復元先RAIDグループデータ情報214c2を抽出する。そして、復元先RAIDグループ決定部216aは、RAIDグループ決定部213aに対して、抽出した復元先RAIDグループデータ情報214c2(復元データ)毎の再復元先の決定を指示する。そして、RAIDグループ決定部213aは、「RAIDグループ決定処理」によって復元データ毎に再復元先を決定する。そして、データ復元部216bは、復元データ毎に決定された再復元先に、復元先RAIDグループデータ情報214c2に含まれたデータの復元先の記憶場所に記憶された復元データを再復元する。これにより、データ復元部216bは、全RAIDグループ内の物理空間の割り当て量を平均化させることができ、さらにRAID装置4全体のアクセス性能の劣化を防止できる。
[その他]
なお、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的態様は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、仮想ボリューム制御部211とシンプロビジョニング制御部213とを1つの部として統合しても良い。一方、実施例4に係るRAID装置4において、復元先RAIDグループ決定部216aを、復元先のRAIDグループを決定する復元先RAIDグループ決定部と、再復元先のRAIDグループを決定する再復元先RAIDグループ決定部とに分散しても良い。この場合、データ復元部216bを、復元先にデータを復元するデータ復元部と、再復元先にデータを復元するデータ再復元部とに分散しても良い。また、記憶部214をRAID装置2〜4の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例では、ディスクをストレージデバイスとして用いるRAID装置を例に説明を行なったが、開示の技術はこれに限定されるものではなく、任意の記録媒体を用いて実施することができるものである。
また、ストレージ装置1およびRAID装置2〜4にて行われる各処理機能は、その全部または任意の一部が、CPU(Central Processing Unit)(またはMPU(Micro Processing Unit)、MCU(Micro Controller Unit)などのマイクロ・コンピュータ)および当該CPU(またはMPU、MCUなどのマイクロ・コンピュータ)にて解析実行されるプログラムにて実現され、あるいは、ワイヤードロジックによるハードウェアとして実現されても良い。
以上の実施例に係る実施形態に関し、さらに以下の付記を開示する。
(付記1)データを記憶する記憶領域を備えた複数の物理媒体と、
アクセス対象となる仮想ボリュームに対する新規データの書き込み要求を検出すると、複数の物理媒体で構成する複数のストレージグループのうち、障害が発生した物理媒体を含むストレージグループ以外のストレージグループを、記憶領域を割り当てるグループとして決定するストレージグループ決定部と、
前記新規データのデータサイズに応じて、前記ストレージグループ決定部によって決定されたストレージグループ内に存在する物理媒体の記憶領域を前記仮想ボリュームに割り当てる記憶領域割当部と
を有することを特徴とするストレージ装置。
(付記2)前記ストレージグループ決定部は、
前記ストレージグループに割り当てられた記憶領域の容量を前記ストレージグループ毎に管理する記憶領域容量管理部を有し、
前記記憶領域容量管理部によって管理されたストレージグループ毎の容量のうち他のストレージグループより小さい容量のストレージグループであって当該ストレージグループ内の全ての物理媒体が正常であるストレージグループを決定することを特徴とする付記1に記載のストレージ装置。
(付記3)前記物理媒体に障害が発生した場合に、障害が発生した物理媒体を含むストレージグループを障害グループとして、当該障害グループ内の物理媒体に記憶されたデータの復元先を、前記障害グループ以外のストレージグループに決定する復元先グループ決定部と、
前記復元先グループ決定部によって決定されたストレージグループに、前記障害グループ内の物理媒体に記憶されたデータを復元するデータ復元部とを有することを特徴とする付記1または付記2に記載のストレージ装置。
(付記4)前記データ復元部は、
前記障害グループが復旧した場合に、前記障害グループを復旧グループとして、当該復旧グループに、前記障害グループ内の物理媒体に記憶されていたデータを再度復元することを特徴とする付記3に記載のストレージ装置。
(付記5)アクセス対象となる仮想ボリュームに対する新規データの書き込み要求を検出すると、複数の物理媒体で構成する複数のストレージグループのうち、障害が発生した物理媒体を含むストレージグループ以外のストレージグループを、記憶領域を割り当てるグループとして決定するストレージグループ決定部と、
前記新規データのデータサイズに応じて、前記ストレージグループ決定部によって決定されたストレージグループ内に存在する物理媒体の記憶領域を前記仮想ボリュームに割り当てる記憶領域割当部と
を有することを特徴とするストレージ装置のコントローラ。
(付記6)アクセス対象となる仮想ボリュームに対する新規データの書き込み要求を検出すると、複数の物理媒体で構成する複数のストレージグループのうち、障害が発生した物理媒体を含むストレージグループ以外のストレージグループを、記憶領域を割り当てるグループとして決定するストレージグループ決定ステップと、
前記新規データのデータサイズに応じて、前記ストレージグループ決定ステップによって決定されたストレージグループ内に存在する物理媒体の記憶領域を前記仮想ボリュームに割り当てる記憶領域割当ステップと
を含むことを特徴とするストレージ装置の記憶領域割当方法。
1 ストレージ装置
2、3、4 RAID装置
9 ホストコンピュータ
11 ストレージグループ決定部
12 記憶領域割当部
212 仮想ボリューム
20、30 RAIDコントローラ
210 制御部
211 仮想ボリューム制御部
213 シンプロビジョニング制御部
213a RAIDグループ決定部
213b 記憶領域割当部
214 記憶部
214a RAID管理テーブル
214b リストテーブル
214c RAIDグループ復元管理テーブル
215 RAID制御部
215a 障害ディスク検出部
215b 障害ディスク復元検出部
216 リビルド制御部
216a 復元先RAIDグループ決定部
216b データ復元部

Claims (5)

  1. データを記憶する記憶領域を備えた複数の物理媒体と、
    アクセス対象となる仮想ボリュームに対する新規データの書き込み要求を検出すると、複数の物理媒体で構成する複数のストレージグループのうち、障害が発生した物理媒体を含むストレージグループ以外のストレージグループであって、前記仮想ボリュームに割り当て済みの容量が他のストレージグループよりも小さいストレージグループを、記憶領域を割り当てるグループとして決定するストレージグループ決定部と、
    前記新規データのデータサイズに応じて、前記ストレージグループ決定部によって決定されたストレージグループ内に存在する物理媒体の記憶領域を前記仮想ボリュームに割り当てる記憶領域割当部と
    を有することを特徴とするストレージ装置。
  2. 前記物理媒体に障害が発生した場合に、障害が発生した物理媒体を含むストレージグループを障害グループとして、当該障害グループ内の物理媒体に記憶されたデータの復元先を、前記障害グループ以外のストレージグループに決定する復元先グループ決定部と、
    前記復元先グループ決定部によって決定されたストレージグループに、前記障害グループ内の物理媒体に記憶されたデータを復元するデータ復元部とを有することを特徴とする請求項1に記載のストレージ装置。
  3. 前記データ復元部は、
    前記障害グループが復旧した場合に、前記障害グループを復旧グループとして、当該復旧グループに、前記障害グループ内の物理媒体に記憶されていたデータを再度復元することを特徴とする請求項2に記載のストレージ装置。
  4. アクセス対象となる仮想ボリュームに対する新規データの書き込み要求を検出すると、複数の物理媒体で構成する複数のストレージグループのうち、障害が発生した物理媒体を含むストレージグループ以外のストレージグループであって、前記仮想ボリュームに割り当て済みの容量が他のストレージグループよりも小さいストレージグループを、記憶領域を割り当てるグループとして決定するストレージグループ決定部と、
    前記新規データのデータサイズに応じて、前記ストレージグループ決定部によって決定されたストレージグループ内に存在する物理媒体の記憶領域を前記仮想ボリュームに割り当てる記憶領域割当部と
    を有することを特徴とするストレージ装置のコントローラ。
  5. アクセス対象となる仮想ボリュームに対する新規データの書き込み要求を検出すると、複数の物理媒体で構成する複数のストレージグループのうち、障害が発生した物理媒体を含むストレージグループ以外のストレージグループであって、前記仮想ボリュームに割り当て済みの容量が他のストレージグループよりも小さいストレージグループを、記憶領域を割り当てるグループとして決定するストレージグループ決定ステップと、
    前記新規データのデータサイズに応じて、前記ストレージグループ決定ステップによって決定されたストレージグループ内に存在する物理媒体の記憶領域を前記仮想ボリュームに割り当てる記憶領域割当ステップと
    を含むことを特徴とするストレージ装置の記憶領域割当方法。
JP2010022533A 2010-02-03 2010-02-03 ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法 Expired - Fee Related JP5532982B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010022533A JP5532982B2 (ja) 2010-02-03 2010-02-03 ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法
US13/015,756 US8601312B2 (en) 2010-02-03 2011-01-28 Storage apparatus, controller, and method for allocating storage area in storage apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2010022533A JP5532982B2 (ja) 2010-02-03 2010-02-03 ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法

Publications (2)

Publication Number Publication Date
JP2011159241A JP2011159241A (ja) 2011-08-18
JP5532982B2 true JP5532982B2 (ja) 2014-06-25

Family

ID=44342676

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010022533A Expired - Fee Related JP5532982B2 (ja) 2010-02-03 2010-02-03 ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法

Country Status (2)

Country Link
US (1) US8601312B2 (ja)
JP (1) JP5532982B2 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2012182788A (ja) * 2011-02-10 2012-09-20 Panasonic Corp 記録システム、記録方法およびコンピュータプログラム
JP5853734B2 (ja) 2012-02-02 2016-02-09 富士通株式会社 仮想ストレージ装置,制御装置及び制御プログラム
US8930745B2 (en) * 2012-04-16 2015-01-06 Hitachi, Ltd. Storage subsystem and data management method of storage subsystem
JP2014182847A (ja) * 2013-03-18 2014-09-29 Toshiba Corp エラー訂正方法、エラー訂正装置、および情報記憶装置。
US20160062832A1 (en) * 2014-09-02 2016-03-03 Netapp. Inc. Wide spreading data storage architecture
US9823969B2 (en) 2014-09-02 2017-11-21 Netapp, Inc. Hierarchical wide spreading of distributed storage
US9767104B2 (en) 2014-09-02 2017-09-19 Netapp, Inc. File system for efficient object fragment access
US10592108B2 (en) * 2014-09-30 2020-03-17 Anthony Tan Secured storage system with temporary external assignable memory
US9431061B1 (en) 2015-04-24 2016-08-30 Netapp, Inc. Data write deferral during hostile events
US9817715B2 (en) 2015-04-24 2017-11-14 Netapp, Inc. Resiliency fragment tiering
US10379742B2 (en) 2015-12-28 2019-08-13 Netapp, Inc. Storage zone set membership
US10514984B2 (en) 2016-02-26 2019-12-24 Netapp, Inc. Risk based rebuild of data objects in an erasure coded storage system
US10055317B2 (en) 2016-03-22 2018-08-21 Netapp, Inc. Deferred, bulk maintenance in a distributed storage system
KR102581479B1 (ko) 2016-05-31 2023-09-21 삼성전자주식회사 스토리지 시스템 및 그의 볼륨 관리 방법
CN110096219B (zh) * 2018-01-31 2022-08-02 伊姆西Ip控股有限责任公司 从驱动器组生成的驱动器区段池的有效容量
CN111813609B (zh) * 2020-07-23 2021-10-15 深圳大普微电子科技有限公司 一种存储介质中数据恢复方法、数据恢复系统及相关设备
KR20220125836A (ko) 2021-03-03 2022-09-15 삼성전자주식회사 스토리지 장치, 스토리지 장치의 동작 방법, 그리고 스토리지 장치를 포함하는 전자 장치
JP2023100301A (ja) * 2022-01-06 2023-07-19 株式会社日立製作所 ストレージ装置及びその制御方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3358687B2 (ja) * 1995-03-13 2002-12-24 株式会社日立製作所 ディスクアレイ装置
US5875456A (en) * 1995-08-17 1999-02-23 Nstor Corporation Storage device array and methods for striping and unstriping data and for adding and removing disks online to/from a raid storage array
WO2002065275A1 (en) * 2001-01-11 2002-08-22 Yottayotta, Inc. Storage virtualization system and methods
JP4236590B2 (ja) * 2002-03-13 2009-03-11 富士通株式会社 Raid装置の制御装置
JP4226350B2 (ja) 2003-02-17 2009-02-18 株式会社日立製作所 データ移行方法
JP4438457B2 (ja) * 2003-05-28 2010-03-24 株式会社日立製作所 記憶領域割当方法、システム及び仮想化装置
EP1668486A2 (en) * 2003-08-14 2006-06-14 Compellent Technologies Virtual disk drive system and method
JP2005266933A (ja) 2004-03-16 2005-09-29 Fujitsu Ltd ストレージ管理システム及びストレージ管理方法
US7386663B2 (en) * 2004-05-13 2008-06-10 Cousins Robert E Transaction-based storage system and method that uses variable sized objects to store data
JP4927408B2 (ja) * 2006-01-25 2012-05-09 株式会社日立製作所 記憶システム及びそのデータ復元方法
JP2007265270A (ja) * 2006-03-29 2007-10-11 Hitachi Ltd ストレージシステム及び記憶領域割当て方法
KR100883651B1 (ko) * 2006-05-18 2009-02-18 삼성전자주식회사 파일을 저장할 디스크의 공간을 할당하는 방법 및 장치
US7886111B2 (en) * 2006-05-24 2011-02-08 Compellent Technologies System and method for raid management, reallocation, and restriping
US20080126839A1 (en) * 2006-09-19 2008-05-29 Satish Sangapu Optimized reconstruction and copyback methodology for a failed drive in the presence of a global hot spare disc
US20090049236A1 (en) 2007-08-15 2009-02-19 Hitachi, Ltd. System and method for data protection management for network storage
JP4958739B2 (ja) * 2007-11-09 2012-06-20 株式会社日立製作所 障害の発生した記憶装置に記憶されているデータを修復するストレージシステム
US8065558B2 (en) * 2009-03-24 2011-11-22 Lsi Corporation Data volume rebuilder and methods for arranging data volumes for improved RAID reconstruction performance
US8370688B2 (en) * 2009-04-23 2013-02-05 Hewlett-Packard Development Company, L.P. Identifying a storage device as faulty for a first storage volume without identifying the storage device as faulty for a second storage volume

Also Published As

Publication number Publication date
US20110191629A1 (en) 2011-08-04
US8601312B2 (en) 2013-12-03
JP2011159241A (ja) 2011-08-18

Similar Documents

Publication Publication Date Title
JP5532982B2 (ja) ストレージ装置、ストレージ装置のコントローラおよびストレージ装置の記憶領域割当方法
US9389975B2 (en) Method and apparatus to utilize large capacity disk drives
US9378093B2 (en) Controlling data storage in an array of storage devices
US10558383B2 (en) Storage system
JP5256149B2 (ja) Hdd障害からの高速データ回復
US8392752B2 (en) Selective recovery and aggregation technique for two storage apparatuses of a raid
US7650480B2 (en) Storage system and write distribution method
US8930745B2 (en) Storage subsystem and data management method of storage subsystem
US8762768B2 (en) Storage system for restoring data stored in failed storage device
JP3753259B2 (ja) 記憶空間を提供する方法およびデータ記憶システム
KR101821001B1 (ko) Raid 어레이에서 장치내 데이터 보호
US7886111B2 (en) System and method for raid management, reallocation, and restriping
KR101824286B1 (ko) 적응적 지오메트리를 구비한 raid 어레이에서의 복원 판독
US7970995B2 (en) Storage system
US20150286531A1 (en) Raid storage processing
US20100306466A1 (en) Method for improving disk availability and disk array controller
CN109725838B (zh) 用于管理多个盘的方法、装置以及计算机可读介质
JP2005122338A (ja) スペアディスクドライブをもつディスクアレイ装置及びデータスペアリング方法
JPWO2008136075A1 (ja) ストレージ管理プログラム、ストレージ管理装置およびストレージ管理方法
US20110167215A1 (en) Storage System Comprising RAID Group
US9547443B2 (en) Method and apparatus to pin page based on server state
JP4740354B2 (ja) ディスク制御装置およびディスク制御方法
US11544005B2 (en) Storage system and processing method
JP7294691B2 (ja) ディスクアレイ装置、情報システム及び記憶領域の構築方法
US20240329853A1 (en) Data regeneration and storage in a raid storage system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20121005

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130911

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130917

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

R150 Certificate of patent or registration of utility model

Ref document number: 5532982

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140414

LAPS Cancellation because of no payment of annual fees