JPWO2018131067A1 - 記憶ドライブの故障により消失したデータを復元する装置 - Google Patents

記憶ドライブの故障により消失したデータを復元する装置 Download PDF

Info

Publication number
JPWO2018131067A1
JPWO2018131067A1 JP2018561116A JP2018561116A JPWO2018131067A1 JP WO2018131067 A1 JPWO2018131067 A1 JP WO2018131067A1 JP 2018561116 A JP2018561116 A JP 2018561116A JP 2018561116 A JP2018561116 A JP 2018561116A JP WO2018131067 A1 JPWO2018131067 A1 JP WO2018131067A1
Authority
JP
Japan
Prior art keywords
data
area
storage
logical
target
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
JP2018561116A
Other languages
English (en)
Other versions
JP6605762B2 (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Publication of JPWO2018131067A1 publication Critical patent/JPWO2018131067A1/ja
Application granted granted Critical
Publication of JP6605762B2 publication Critical patent/JP6605762B2/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/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
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • G06F3/0619Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0683Plurality of storage devices
    • G06F3/0689Disk arrays, e.g. RAID, JBOD

Landscapes

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

Abstract

記憶ドライブの故障により消失したデータを復元する方法であって、故障した第1の記憶ドライブの第1の論理領域を選択し、前記第1の論理領域を含み、異なる記憶ドライブの論理領域ブロックからなり、消失した内部データを復元可能な冗長構成を有するデータセットを格納する、第1の論理領域ラインを特定し、前記第1の論理領域ラインから、前記第1の論理領域のデータを復元するためにアクセスする1以上の第2の論理領域を選択し、前記1以上の第2の論理領域をそれぞれ提供する1以上の第2の記憶ドライブのそれぞれに対して、前記第2の論理領域を指定して、有効なデータが格納されているかを問い合わせるデータ格納情報要求を発行する、ことを含む。

Description

本発明は、記憶ドライブの故障により消失したデータを復元する装置に関する。
装置コスト削減のため、記憶ドライブに対するビットコスト削減の要求が続いている。この要求を実現するために、記憶ドライブ1台当たりのデータ集約度が増加していく、即ち記憶ドライブ当たりの容量が増加していくと予想される。それに伴い、記憶ドライブ故障時のリビルド時間が長大化する。リビルドは、障害ドライブのデータを、RAID(Redundant Arrays of Inexpensive Disks)グループを構成している他の正常な複数のドライブから生成し、スペアドライブに格納することで、正常なRAID構成を再構成する。
例えば、特開2009−116783号公報は、物理記憶デバイスが故障したことによる信頼性の低い状態が続く時間を短縮する技術を開示する。より具体的には、特開2009−116783号公報は、以下の事項を開示する。
「動的に容量が拡張される仮想ボリュームに関し、どの仮想領域にどの実領域が割り当てられているかを表すマッピング情報が保持される。また、どの実領域がどの仮想領域に割り当てられているかを表す実領域管理情報が保持される。或る物理記憶デバイスで障害が生じたことにより信頼性の低下した実領域であって、その或る物理記憶デバイスを備えるRAIDグループに属する低信頼実領域が、仮想領域に割り当てられているか否かを、実領域管理情報を参照することにより判断する。仮想領域に割り当てられていない低信頼実領域については、データのリストア処理を行わず、割り当てられている低信頼実領域について、データのリストア処理を行う。」(要約)。
特開2009−116783号公報
例えば、上記従来技術は、仮想ボリュームへの実記憶領域の割り当て単位であるページ毎に、消失データを復元する。上記従来技術は、ページ内の全領域に有効なデータが格納されているとの前提において、0データを含むページ内の全データを読み出し、消失データを復元する。
しかし、ページ内には、有効データが格納されていない領域も存在し得る。領域に有効データが格納されていない、つまり0データが格納されている場合、その領域のデータは、消失データを復元する際の排他的論理和演算の結果に影響を与えない。0データの不要な演算処理により、消失データの復元時間及びリビルド時間が増加する。従って、消失データをより効率的に復元することができる技術が望まれる。
本開示の代表的な一例は、記憶ドライブの故障により消失したデータを復元する装置であって、メモリと、前記メモリに格納されているプログラムに従って動作するプロセッサと、を含み、前記プロセッサは、故障した第1の記憶ドライブの第1の論理領域を選択し、前記第1の論理領域を含み、異なる記憶ドライブの論理領域ブロックからなり、消失した内部データを復元可能な冗長構成を有するデータセットを格納する、第1の論理領域ラインを特定し、前記第1の論理領域ラインから、前記第1の論理領域のデータを復元するためにアクセスする1以上の第2の論理領域を選択し、前記1以上の第2の論理領域をそれぞれ提供する1以上の第2の記憶ドライブのそれぞれに対して、前記第2の論理領域を指定して、有効なデータが格納されているかを問い合わせるデータ格納情報要求を発行し、前記データ格納情報要求に対して有効なデータが格納されていることを示す応答が返された場合に、前記第2の論理領域を指定したリード要求を発行し、前記データ格納情報要求に対して、有効なデータが格納されていないことを示す応答が返された場合に、リード要求を省略し、前記1以上の第2の記憶ドライブから読み出したデータを使用して、前記第1の論理領域のデータを復元する。
本発明の一例によれば、消失データの復元を効率化することができる。
実施例の概要を示す。 実施例1に係る計算機システムの構成を示す。 実施例1に係る、論理ボリューム(仮想ボリューム)、仮想ページ、実ページ、RAIDグループの関係を示す。 実施例1に係る記憶ドライブの論理セグメント及び物理セグメントの構成例を示す。 実施例1に係るドライブ構成管理情報の構成例を示す。 実施例1に係るホスト計算機からのリード要求に対する処理のフローチャートを示す。 実施例1に係る図5Aにおけるステージングの詳細のフローチャートを示す。 実施例1に係るホスト計算機からのライト要求に対する処理のフローチャートを示す。 実施例1に係るホスト計算機からの領域解放要求に対する処理のフローチャートを示す。 実施例1に係る記憶ドライブの故障に対するリビルド処理のフローチャートを示す。 実施例2に係るページ割り当て管理情報の構成例を示す。 実施例2に係るリビルド処理のフローチャートを示す。 実施例3に係るボリューム構成を示す。 実施例3に係る計算機システムの構成を示す。 実施例3に係るコピー制御プログラムによる形成コピー処理のフローチャートを示す。 実施例3に係るリモートコピーペアの構成例を示す。
以下、本発明のいくつかの実施例を、図面を用いて説明する。なお、これらの実施例は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではない。
以下において、記憶ドライブ(記憶デバイス又はドライブとも呼ぶ)の故障に起因する消失データの回復を開示する。図1は、実施例の概要を示す。ストレージ装置100は、コントローラ110と、記憶ドライブ121A〜121D、121Sを含む。記憶ドライブ121A〜121Dは、RAID(Redundant Arrays of Inexpensive Disks)グループを構成する。記憶ドライブ121Sはスペアドライブである。記憶ドライブ121A〜121D、121Sは、例えば、フラッシュメモリを含むフラッシュドライブである。
RAIDグループを構成する記憶ドライブ121A〜121Dそれぞれの論理アドレス空間は、ストライプブロックと呼ばれる複数の固定サイズ(例えば256KB)の記憶領域131に分割して管理される。ストライプブロック131は、ホスト計算機から書き込まれるホストデータ又は0でデータが格納されるデータストライプブロック、若しくは、冗長データ又は0データが格納されるパリティストライプブロックである。
パリティストライプブロックと、当該パリティストライプブロックに格納される冗長データを生成するために用いられるデータストライプブロックとは、ストライプライン130を構成する。ストライプラインは論理領域ラインであって、ストライプラインに格納されるデータセットは、冗長構成を有し、一部の内部データが消失した場合に、他の内部データから消失データを復元できる。
図1において、記憶ドライブ121Aが故障し、記憶ドライブ121Aに格納されているデータが消失している。コントローラ110は、RAIDグループ内の他の記憶ドライブ121B〜121Dから収集したデータから、消失データを復元し、復元した消失データをスペアドライブ121Sに格納する(コレクションコピー)。なお、消失データを複数のスペアドライブに分散して格納してもよい。
消失データは、収集したデータの排他的論理和演算により復元される。従って、消失データの復元のために、0データを読み出す必要はない。コントローラ110は、消失データの復元において、復元のために必要な有効データ(ホストデータ又はパリティデータ)を格納している記憶ドライブのみからデータを読み出し、消失データを復元する。有効データは、0データ以外のデータである。
例えば、コントローラ110は、記憶ドライブ121Aのストライプブロック131に格納されていた消失データの復元において、対応のストライプライン130を構成する他のストライプブロック131のうち、有効データを格納するストライプブロックのみからデータを読み出す。
コントローラ110は、記憶ドライブに対して、データ格納情報要求を発行することで、指定した論理アドレスに有効データが格納されているか、確認する。データ格納情報要求を受けた記憶ドライブは、指定された論理アドレスに有効データが格納されているかを示す応答を、返す。データ格納情報要求の例は、SCSIコマンドにおけるGET LBA STATUSコマンドである。
記憶ドライブは、データ格納情報要求に対して、例えば、指定された論理アドレス領域に、記憶ドライブの物理領域がマッピングされている領域を通知することが可能である。物理領域がマッピングされている場合、その論理アドレス領域は有効データを格納しており、マッピングされていなければ、その論理アドレス領域は0データを格納している。
0データを格納する領域からのデータの読み出しを省略することで、データアクセスに伴う、ドライブ負荷及びストレージ装置内部のネットワーク帯域消費を、低減することができる。その結果、消失データの復元及びリビルドが高速化されると共に、処理負荷が低減される。
図2は、実施例1に係る計算機システムの構成を示す。計算機システムは、ストレージ装置100と、1以上のホスト計算機500と、を含む。ホスト計算機500は、例えば、SAN(Storage Area Network)を介して、ストレージ装置100に接続される。
ストレージ装置100は、複数のコントローラ110A、110Bと、複数の記憶ドライブ121A〜121D、121Sとを含む。コントローラの数は一つでもよい。記憶ドライブ121A〜121D、121Sは、例えば、フラッシュメモリを含むフラッシュメモリストレージドライブである。記憶ドライブ121A〜121D、121Sは、他のタイプの記憶ドライブでもよい。
コントローラ110は例えば、複数の記憶ドライブをRAIDグループとして制御する。コントローラ110は、コントローラ110A、110Bの内の任意の一方を示す。コントローラ110は、プロセッサ111、メモリ112、チャネルIF(Interface)121、ストレージIF122、を含む。
コントローラ110内の各部は、バスを介して接続される。メモリ112は、ストレージ装置100を制御するためのプログラム及び情報を格納する領域並びにデータを一時的に格納するキャッシュ領域211を含む。図2において、構成情報212、I/O制御プログラム213、ドライブ制御プログラム214、リビルド制御プログラム215が、メモリ112に格納されている。
構成情報212は、ストレージ装置100の論理構成及び物理構成についての情報を含み、例えば、ホスト計算機500に提供されるボリューム、ボリュームの仮想ページに割り当てられる実ページ(ページについては後述)、キャッシュ領域、記憶ドライブ、RAIDグループ等についての情報を含む。
I/O制御プログラム213は、ホスト計算機500からのI/O要求を処理する。ドライブ制御プログラム214は、記憶ドライブを制御する。リビルド制御プログラム215は、記憶ドライブの障害発生時にリビルド処理を実行する。
プロセッサ111は、メモリ112に格納されたプログラムに従ってストレージ装置100を制御する。プロセッサ111は、プログラムに従って、所定の機能部として動作する。従って、プログラムを主語とする説明において、その主語を、プロセッサ111、又は、プロセッサ111を含むコントローラ110もしくはストレージ装置100に、代えることができる。
チャネルIF123は、ホスト計算機500との通信を行うインタフェイスである。ストレージIF122は、記憶ドライブ121A〜121D、121Sとの通信を行うインタフェイスである。なお、管理者は、不図示の管理端末からストレージ装置100の管理やメンテナンスを行う。管理者は、ストレージ装置100の管理やメンテナンスなどを、例えば、ホスト計算機500から行ってもよい。
図2の計算機システムでは、ホスト計算機500と記憶ドライブ121A〜121D,121Sとが、コントローラ110A、110Bを介して接続されている。これに代えて、例えば、コントローラ1110A、110Bを省き、ホスト計算機500と記憶ドライブ121A〜121D,121Sとが、直接接続されてもよい。
なお、本開示の技術は、ストライプラインが複数のドライブで構成されるシステムに適用でき、記憶ドライブとストレージコントローラとがネットワークを介して接続されるシステムに適用できる。また、2つのストライプラインを抽出した時、一部のストライプブロックが異なるドライブに属す特開2010−102695のような形態をとってもよい。
本開示の技術は、例えば、ストレージ装置、及び、ハイパーコンバージドシステムに適用することができる。ハイパーコンバージドシステムは、内部にローカル記憶ドライブを含む複数サーバ(ノード)を連結してクラスタを構成する、システムである。仮想化機能を有するハイパーバイザがサーバ内で動作し、ハイパーバイザがソフトウェアで定義した、サーバ仮想マシンとストレージ仮想マシンを動作させる。
図3Aを用いて、論理ボリューム(仮想ボリューム)、仮想ページ、実ページ、RAIDグループの関係について説明する。ストレージコントローラ110は、1以上の論理ボリュームを定義して、ホスト計算機500に提供する。なお、これらの関係(マッピング)について情報は、構成情報212に含まれる。
論理ボリュームの空間は、所定サイズ(例えば42MB)の仮想ページを単位として分割されている。RAIDグループ204の論理アドレス空間(論理記憶領域)は、所定サイズの実ページを単位として分割されている。仮想ページに対して、実ページが動的に割り当てられる。
ストレージコントローラ102は、各論理ボリュームの空間を、複数の仮想ページに分割して管理する。図3Aは、仮想ページ202A、202B、202Cを例示する。本実施例において仮想ページの容量は共通とするが、ストレージ装置100内に異なるサイズの仮想ページが存在してもよい。
仮想ページは、ストレージコントローラ110内部で論理ボリューム201の空間の管理のために用いられる。ホスト計算機500は、論理ボリューム201の記憶領域にアクセスする際、論理アドレス(例えばLBA(Logical Block Address))を用いて、アクセス対象の記憶領域を指定する。コントローラ110は、ホスト計算機500が指定したLBAを、仮想ページ番号及び仮想ページ内の相対アドレスに変換する。
コントローラ110が論理ボリュームを定義した直後、各仮想ページに実ページは割り当てられていない。コントローラ110は、ホスト計算機500から仮想ページに対するライト要求を受け付けた時点で、当該仮想ページに対して実ページを割り当てる。図3Aにおいて、仮想ページ#0(202A)に実ページ203Aが割り当てられている。実ページは、RAIDグループ204の複数の記憶ドライブの論理記憶領域を用いて形成される。図3Aにおいて、RAIDグループ204は、RAID4の3D+1P構成を有する。
図3Aにおいて、記憶ドライブ121A〜121DがRAIDグループを構成する。スペアドライブ121Sは、RAIDグループ204の一つの故障時に、故障したドライブに格納されたデータを格納し、RAIDグループ204に格納されたデータの冗長性を担保するための記憶ドライブである。
ストレージコントローラ102は、RAIDを構成する記憶ドライブの論理アドレス空間を、複数の固定サイズの記憶領域に分割して管理する。固定サイズの記憶領域は、ストライプブロックである。例えば、図3Aにおいて、0(D)、1(D)、2(D)…、またはP0、P1…と表わされている領域が、それぞれ、ストライプブロックである。
図3Aで、ストライプブロックのうち、P0、P1…と表わされているストライプブロックは、RAID機能により生成される冗長データ(パリティ)が格納されるパリティストライプブロックである。0(D)、1(D)、2(D)…と表わされているストライプブロックは、ホスト計算機500から書き込まれるデータ(ホストデータ)が格納されるデータストライプブロックである。
パリティストライプブロックは、複数のデータストライプブロックを用いて生成される冗長データを格納する。なお、RAID1のパリティストライプブロックは、対応する一つのデータストライプブロックと同一データを格納する。
ストライプラインは、パリティストライプブロックと、当該パリティストライプブロックに格納される冗長データを生成するために用いられるデータストライプブロックのセットである。図3Aの例において、データストライプブロック0(D)、1(D)、2(D)とパリティストライプブロックP0は、同一のストライプラインに属する。
図3Aの例において、実ページ(例えば203A、203B)は、1又は複数のストライプラインから構成される。実ページが仮想ページに割り当てられる場合、データストライプブロックが割り当てられ、パリティストライプブロックは割り当てられない。
実ページの先頭ストライプラインからパリティを除いた領域が、仮想ページの先頭領域に割り当てられている。以降同様に、実ページの2番目以降の各ストライプラインからパリティを除いた領域が、順番に仮想ページの領域に割り当てられる。
ストレージ装置100は、ホスト計算機103からのアクセス要求で指定されている論理ボリューム上のアクセス位置(LBA)から、仮想ページ番号及び仮想ページ内の相対アドレスを求める。仮想ページ内の領域と実ページ内の領域とのマッピング規則から、仮想ページ内のアクセス位置に対応付けられている記憶ドライブ及びその記憶ドライブの論理アドレス領域(データストライプブロック)を算出できる。
なお、仮想ページ内の各領域と実ページ内の各領域とのマッピングは、システム設計に拠り変化する。容量仮想化技術は、一般に、実記憶媒体の容量よりも論理ボリュームの合計記憶容量が大きくなるように、論理ボリュームを定義する。このため、仮想ページ数のが、実ページ数より多い。
論理ボリューム中の各仮想ページに割り当てられる実ページは、同一RAIDグループ内の実ページに限定されない。論理ボリューム内の異なる仮想ページに割り当てられる実ページが、異なるRAIDグループ内の実ページであってもよい。仮想ページと実ページとの間のマッピングは、1又は複数のRAIDグループが提供する記憶領域からなる容量プールを介してもよい。
次に、記憶ドライブのアドレス空間について説明する。以下において、記憶ドライブ121は、任意の一つの記憶ドライブを示す。記憶ドライブ121は、記憶ドライブの論理アドレス空間(論理ボリューム)を、上位装置であるコントローラ110に提供する。論理アドレス空間には、記憶ドライブ121内の物理記憶領域が対応付けられる。
論理アドレス空間は、記憶ドライブ121で所定サイズの論理セグメントに分割して管理される。記憶ドライブ121は、コントローラ110から論理アドレス(論理アドレス領域)を指定したリード/ライト要求(I/O要求)を受信すると、論理アドレスから物理セグメントを特定し、データのリード/ライトを実行する。
例えば、フラッシュメモリの物理記憶領域は、複数のブロックを含み、各ブロックは複数の物理セグメントを含む。ブロックはデータの消去の単位であり、物理セグメントはデータの書き込み及び読み出しの単位である。記憶ドライブ121は、ブロック単位でデータを消去し、物理セグメント単位でデータの書き込み及び読み出しを制御する。
図3Bは、記憶ドライブ121の論理セグメント及び物理セグメントの構成例を示す。記憶ドライブ121は、論理アドレス空間1201を、コントローラ110に提供し、論理アドレス空間251を所定サイズ(例えば8KB)の論理セグメント252に分割して管理する。
記憶ドライブ121は、物理ブロック254を、所定サイズ(例えば8KB)の物理セグメント253に分割して管理する。記憶ドライブ121は、容量仮想化機能を有する。記憶ドライブ121は、物理セグメント253を論理セグメント252に動的に割り当てる。
ブロック1204は、所定数(例えば256個)の物理セグメント253を含んで構成される。記憶ドライブ121は、データの読み書きを物理セグメント単位で行い、消去をブロック単位で行う。
記憶ドライブ121は、マッピング情報(論物変換情報)において、論理セグメントと物理セグメントとの間のマッピングを管理する。記憶ドライブ121は、空き論理セグメントへの書き込み時や、領域の割り当て要求時に、論理セグメントに空き物理セグメントを割り当て、新たなライトデータを空き物理セグメントに格納する。記憶ドライブ121は、マッピング情報において、新たな割り当て関係を登録する。
記憶ドライブ121のマッピング情報は、例えば、各論理セグメントのエントリを有する。論理セグメントのエントリは、当該論理セグメントの論理アドレスと、当該論理セグメントに割り当てられている物理セグメントの物理アドレスと、を示す。論理セグメントに物理セグメントが割り当てられていない場合、そのエントリは、物理セグメントが未割り当てであることを示す。
記憶ドライブ121は、物理セグメントの更新データを受信すると、更新データをデータが格納されていない空き物理セグメントへ書き込む。記憶ドライブ121は、マッピングテーブルにおいて、論理セグメントと更新前の物理セグメントの割り当て関係を、その論理セグメントと更新後の物理セグメントの割り当て関係に変更する。従って、コントローラ110のアクセス先論理アドレス(論理セグメント)は、不変である。
記憶ドライブ121は、更新前のデータを無効データ、更新後のデータを有効データとして管理する。無効データが消去されると、無効データが格納されていたセグメントは空きセグメントとなり、データを書き込むことが可能になる。消去はブロック単位で行われる。ブロック内に有効データと無効データが混在している場合、有効データが他の空き物理セグメントにコピーされ、そのブロック内のデータが消去される(ガベッジコレクション)。
記憶ドライブ121は、コントローラ110から論理アドレス(論理アドレス領域)を指定した問い合わせを受信すると、指定された論理アドレスについて問い合わせされた情報を返す。例えば、後述するように、データ格納情報要求を受信すると、記憶ドライブ121は、マッピング情報を参照し、指定された論理アドレス(論理領域)内の有効なデータが格納位置(物理領域が割り当てられている領域)を示す応答を返す。
図4は、構成情報212に含まれる、ドライブ構成管理情報300の構成例を示す。ドライブ構成管理情報300は、各記憶ドライブの状態及び各記憶ドライブが所属するパリティグループの情報を管理する。図3は、RAID5構成の例を示すが、RAIDグループは他のRAIDタイプを有してもよい。ストレージ装置100が、異なるタイプのRAIDグループを含む場合、ストレージ装置100は、各パリティグループの構成を示す情報を保持する。
ドライブ構成管理情報300は、ドライブ番号欄301、RAIDグループ欄302、状態欄303、データ充填率欄304を有する。ドライブ番号欄301は、各記憶ドライブを同定する番号を示す。RAIDグループ欄302は、各記憶ドライブが属するRAIDグループの識別子を示す。スペアドライブのRAIDグループ欄302の値は、「NULL」である。
状態欄303は、各記憶ドライブの状態を示し、各記憶ドライブが正常に動作しているかを示す。コントローラ110は、ドライブ故障を検出した場合、状態欄303において、そのドライブの状態を「故障」に変更し、正常なスペアドライブを選択する。コントローラ110は、故障ドライブに格納されていたデータを復元し、選択したスペアドライブに格納する。
スペアドライブに全てのデータを格納し、リビルドが終了すると、コントローラ110は、RAIDグループ欄302において、スペアドライブの値を、リビルドしたRAIDグループの番号に変更する。さらに、コントローラ110は、RAIDグループ欄302において、故障ドライブの値を「NULL」に変更する。
データ充填率欄304は、各記憶ドライブが提供する論理アドレス空間において上位装置に使用されている論理領域のうち、有効なデータ(0データ以外のデータ)が格納されている領域の割合を示す。例えば、コントローラ110により使用されている論理領域は、仮想ページに割り当てられている実ページである。充填率は、割り当てられている実ページに内、ホストデータ又はパリティデータを格納する領域の割合を示す。
上述のように、仮想ページ、実ページ、及びそれらの間のマッピングは、コントローラ110により管理されている。コントローラ110は、空き実ページと、論理ボリュームに割り当て済みの実ページとを管理する。実ページは、RAIDグループ(記憶ドライブ群)の論理アドレス空間において定義される。物理セグメントに有効なデータが格納されているかを示す情報は、記憶ドライブ121により管理されている。
コントローラ110は、周期的に各記憶ドライブ121から、割り当て済み実ページにおいて有効データを格納する領域の情報を取得して、各記憶ドライブ121の充填率を計算、更新する。
例えば、コントローラ110は、割り当て済み実ページに含まれる論理領域において、所定サイズ(例えば256KB)の複数領域を選択し、選択した領域を指定したデータ格納情報要求それぞれを、記憶ドライブ121に発行する。コントローラ110は、サンプリングした領域の情報から、記憶ドライブ121の充填率を推定する。これにより、充填率決定のための処理負荷を低減する。記憶ドライブ121がデータ格納情報要求をサポートしていない場合、本例において、充填率は100%と仮定される。
図5Aは、ホスト計算機500からのリード要求に対する処理のフローチャートを示す。I/O制御プログラム213(プロセッサ111)は、ホスト計算機500からのリード要求に応答して、本処理を実行する。
I/O制御プログラム213は、受け取ったリード要求で指定されたリード対象領域のアドレスから、リード対象領域に対応する仮想ページ番号及び仮想ページ内の相対アドレスを計算する。
I/O制御プログラム213は、リード対象データが、キャッシュ領域211に格納されているか、構成情報212においてチェックする(S101)。リード対象データがキャッシュ領域211に格納されている場合(S101:YES)、I/O制御プログラム213は、当該データをホスト計算機500に送信する(S104)。
リード対象データがキャッシュ領域211に格納されていない場合(S101:NO)、I/O制御プログラム213は、キャッシュ領域211において、リード対象データを格納するためのスロットを確保する(S102)。I/O制御プログラム213は、ドライブ制御プログラム214を使用して、記憶ドライブ121からリード対象データをキャッシュ領域211にロードする(S103)。I/O制御プログラム213は、当該データをホスト計算機500に送信する(S104)。
図5Bは、図5AにおけるステージングS103の詳細のフローチャートを示す。ドライブ制御プログラム214(プロセッサ111)は、他のプログラムからステージング要求を受け取ると、本処理を実行する。リード要求のアクセス先のドライブが正常である場合、ドライブ制御プログラム214は、当該記憶ドライブからリード対象データを読み出す。リード対象ドライブが故障している場合、ドライブ制御プログラム214は、RAIDグループの他の記憶ドライブから読み出したデータ(同一ストライプライン内のデータ)により、リード対象データを復元する。
ドライブ制御プログラム214は、リード対象データの仮想ページ番号及び仮想ページ内相対アドレスから、構成情報212を参照して、リード対象データに割り当てられている実ページ番号及び実ページ内相対アドレスを同定する。ドライブ制御プログラム214は、さらに、実ページ番号及び実ページ内相対アドレスから、構成情報212を参照して、リード対象データを格納する記憶ドライブ及びその論理アドレスを同定する。
ドライブ制御プログラム214は、ドライブ構成管理情報300を参照し、又は、リード対象ドライブと通信することで、リード対象ドライブの状態をチェックする(S251)。記憶ドライブ121が正常である場合(S251:正常)、ドライブ制御プログラム214は、記憶ドライブ121に対して、論理アドレスを指定してリード要求を発行し、リード対象データを読み出す(S252)。ドライブ制御プログラム214は、リード対象データを、キャッシュ領域211に格納する。
記憶ドライブ121が故障している場合(S251:故障)、ドライブ制御プログラム214は、ステップS254からS259を、対象のストライプブロックが含まれるストライプラインにおいて、消失データ復元のためにデータを読み出すことが必要な各ストライプブロックを含む各正常な記憶ドライブに対して実行する。
ドライブ制御プログラム214は、ドライブ構成管理情報300を参照して、アクセス先の記憶ドライブ(ストライプライン)を特定する。データ復元のためのデータを読み出す記憶ドライブは、RAIDタイプによる。
ドライブ制御プログラム214は、ドライブ構成管理情報300を参照し、対象記憶ドライブの充填率と閾値とを比較する(S254)。閾値は。記憶ドライブに共通でも、記憶ドライブ毎に設定されてもよい。閾値は、一定でもよく、アクセス先のデータ長に応じて決定されてもよい。
充填率が閾値より小さい場合(S254:YES)、ドライブ制御プログラム214は、対象記憶ドライブに、対象データの論理アドレス領域を指定して、データ格納情報要求を発行する(S255)。データ格納情報要求への応答が、指定アドレス領域にデータが格納されていないことを示す場合(S256:NO)、ドライブ制御プログラム214は、対象記憶ドライブについての処理を終了する。
データ格納情報要求への応答が、指定アドレス領域にデータが格納されていることを示す場合(S256:YES)、ドライブ制御プログラム214は、対象データを対象記憶ドライブ121から読み出し(S257)、パリティ計算を実行する(S258)。パリティ計算は、読み出し済みデータとの排他的論理和演算を実行する。必要な全データのパリティ計算により、消失データが復元される。
ステップS254において、充填率が閾値以上である場合(S254:NO)、ドライブ制御プログラム214は、データ格納情報要求を発行することなく、対象記憶ドライブ121から対象データを読み出す(S257)。なお、データ格納情報要求をサポートしていない記憶ドライブの充填率は100%であると見做し、データ格納情報要求を発行しない。データ格納情報要求をサポートしていない記憶ドライブの充填率は、閾値以上であればよい。
以上のように、RAIDグループ内の他の記憶ドライブに、消失データを復元するために必要な有効データを格納しているか問い合わせることで、0データの読み出し及びパリティ計算を省略し、消失データの復元処理を効率化することができる。記憶ドライブの充填率が閾値より小さい場合、対象アドレス領域に有効データが格納されていない可能性が高い。充填率が閾値より小さい場合にデータ格納情報要求を発行することで、不要なデータ格納情報要求の発行を低減することができる。
上記リード要求に対する処理により、記憶ドライブの故障が初めて発見されると、後述するリビルド処理が開始される。また、上記リード要求に対する処理は、リビルド中にも実行され得る。リード要求のアクセス先が復元済みである場合、アクセス先ドライブは、故障ドライブでも、コピー先のスペアドライブでもよい。
図6は、ホスト計算機500からのライト要求に対する処理のフローチャートを示す。I/O制御プログラム213(プロセッサ111)は、ホスト計算機500からライト要求を受信すると、本処理を実行する。
I/O制御プログラム213は、受け取ったライト要求で指定されたリード対象領域のアドレスから、ライト対象領域に対応する仮想ページ番号及び仮想ページ内の相対アドレスを計算する。I/O制御プログラム213は、ライト対象領域のデータが、キャッシュ領域211に格納されているか、構成情報212においてチェックする(S151)。
ライト対象領域のデータが、キャッシュ領域211に格納されていない場合(S151:NO)、I/O制御プログラム213は、キャッシュ領域211において、ライト対象データを格納するためのスロットを確保する(S152)。I/O制御プログラム213は、ライト対象データを、チャネルI/F123のバッファから、キャッシュ領域211に格納する(S153)。その後、I/O制御プログラム213は、完了通知をホスト計算機500に送信する(S154)。
ライト対象領域のデータが、キャッシュ領域211に格納されている場合(S151:YES)、I/O制御プログラム213は、受信した更新データによって、キャッシュ領域211の旧データを上書きする(S153)。
I/O制御プログラム213は、ホスト計算機500にライト処理の完了通知を送信した後、キャッシュ領域211に格納されているライトデータを、記憶ドライブ121に格納する(デステージ)。
I/O制御プログラム213は、構成情報212を参照し、指定され仮想ページに実ページが割り当てられているかをチェックする。実ページが割り当てられていない場合、I/O制御プログラム213は、ライト対象領域を含む仮想ページに空き実ページを割り当てる。
I/O制御プログラム213は、ライトデータに対応するパリティデータを生成し、ライトデータ及びパリティデータを、対応する記憶ドライブ121それぞれに格納する。パリティデータの生成は、新ライトデータ、旧ライトデータ、旧冗長データの排他的論理和を計算する。
ライトデータの格納先ドライブが故障している場合、I/O制御プログラム213は、例えば、スペアドライブにライトデータを格納する。さらに、I/O制御プログラム213は、ライトデータと対応ストライプラインの他のデータとから、新たにパリティデータを生成する。パリティデータの生成において、図5Bを参照して説明した消失データの復元と同様に、データ格納情報要求により0データの読み出しは省略される。
図7は、ホスト計算機500からの領域解放要求に対する処理のフローチャートを示す。I/O制御プログラム213(プロセッサ111)は、ホスト計算機500から領域解放要求を受信すると、本処理を実行する。領域解放要求の例は、例えば、SCISのUNMAPコマンドや、SATAのTRIMコマンドである。
I/O制御プログラム213は、領域を指定する領域解放要求を、ホスト計算機500から受信する。領域解放要求が指定可能なサイズは、予め、ストレージ装置100とホスト計算機500との間で決められており、例えば、仮想ページや仮想ページ内のストライプライン(パリティデータを含まず)が指定される。
I/O制御プログラム213は、領域解放要求が指定するアドレスから、仮想ページ番号及び対応する実ページ番号を特定する。仮想ページが指定されている場合、I/O制御プログラム213は、構成情報212において、指定された仮想ページに割り当てられている実ページの情報を、未割り当てに変更する。ストライプラインが指定される場合、仮想ページ内相対アドレス及び実ページ内相対アドレスも特定される。
I/O制御プログラム213は、実ページについての情報から、各対象ストライプラインの記憶ドライブ及び記憶ドライブの論理アドレスを特定する(S201)。I/O制御プログラム213は、各ストライプライン(パリティデータを含む)のために、ステップS202からS204を実行する。まず、I/O制御プログラム213は、論理セグメントのデータがキャッシュ領域211に格納されているか、構成情報212を参照して、判定する(S202)。
対象データがキャッシュ領域に格納されている場合(S202:有)、I/O制御プログラム213は、当該データをキャッシュ領域211から廃棄する(S203)。対象データがキャッシュ領域に格納されていない場合(S202:無)、ステップS203はスキップされる。
I/O制御プログラム213は、論理アドレス領域を指定して、対象領域の解放要求を、対象記憶ドライブ121に発行する(S204)。解放要求の例は、SCISのUNMAPコマンドや、SATAのTRIMコマンドである。記憶ドライブ121は、指定された論理アドレス領域に割り当てられている物理セグメントを開放する。I/O制御プログラム213は、全てのストライプラインについてステップS202からS204を実行すると、完了通知をホスト計算機500に返す(S205)。本処理により、記憶ドライブにおいて未割り当ての物理セグメントを増加させて、リビルドをより効率的に実行可能とする。
図8は、記憶ドライブ121の故障に対するリビルド処理のフローチャートを示す。リビルド制御プログラム215(プロセッサ111)は、記憶ドライブの故障を検出すると、本処理を実行する。例えば、記憶ドライブの状態は、ホストI/Oに同期してチェックされると共に、定期的にチェックされる。
リビルド制御プログラム215は、故障ドライブのストライプブロックが含まれる各ストライプライン(対称ストライプライン)について、ステップS303からS312を実行する。リビルド制御プログラム215は、ドライブ構成管理情報300を参照して、ストライプブロックの消失データ復元のためにデータを読み出すことが必要な各正常なアクセス先記憶ドライブ(各アクセス先ストライプブロック)を特定し、各アクセス先記憶ドライブに対して、ステップS303からS310を実行する。
ステップS303において、リビルド制御プログラム215は、ストライプブロックのデータが、キャッシュ領域211に格納されているか、構成情報212を参照して判定する。対象データがキャッシュ領域211に格納されている場合(S303:YES)、リビルド制御プログラム215は、そのデータをキャッシュ領域211から読み出してパリティ計算を実行する(S309)。パリティ計算S309は、図5Bに示すパリティ計算S259と同様である。
対象データがキャッシュ領域211に格納されている場合(S303:NO)、リビルド制御プログラム215は、対象記憶ドライブに、対象ストライプブロックの論理アドレス領域を指定して、データ格納情報要求を発行する(S304)。データ格納情報要求への応答が、記憶ドライブ121が当該要求をサポートしていないことを示す場合(S305:YES)、リビルド制御プログラム215は、対象記憶ドライブ121から対象ストライプブロックのデータを読み出す(S310)。
データ格納情報要求への応答が、指定アドレス領域に有効データが格納されていないことを示す場合(S305:NO、S307:NO)、リビルド制御プログラム215は、対象記憶ドライブについての処理を終了する。
データ格納情報要求への応答が、指定アドレス領域に有効データが格納されていることを示す場合(S305:NO、S307:YES)、リビルド制御プログラム215は、対象ストライプブロックのデータを対象記憶ドライブ121から読み出し(S308)、パリティ計算を実行する(S309)。消失したストライプブロックのデータが復元されると、リビルド制御プログラム215は、当該復元したデータを、スペアドライブに格納する(S312)。
指定アドレス領域において有効データを格納している領域が分散している場合(対象領域が断片化している場合)、データ格納情報要求に対する応答は、当該指定アドレス領域がデータを格納していることのみを示してもよく、有効データを格納している領域それぞれを示してもよい。
応答が、有効データを格納している領域それぞれを示す場合、リビルド制御プログラム215は、有効データを格納する領域を全て指定するリード要求(Gathered Read要求)を発行してもよい。これにより、一回の通信で複数領域の有効データを読み出すことができる。
ストライブブロックの復元したデータが、分散した有効データのサブブロックで構成されている場合(復元データが断片化している場合)、リビルド制御プログラム215は、有効データのアドレス領域を全て指定するライト要求(Scattered Write要求)を発行してもよい。これにより、一回の通信で複数領域のデータを書き込むことができる。
リビルド制御プログラム215は、データ格納情報要求を発行することで、消失データの復元に不要な0データの読み出し及びパリティ計算を回避し、リビルド処理を効率化できる。上記リビルド処理は、データ格納情報要求をサポートしない記憶ドライブから応答に応じてデータを読み出すので、データ格納情報要求をサポートする記憶ドライブとサポートしない記憶ドライブが混在するストレージ装置100に適用できる。
リビルド制御プログラム215は、ホストリード要求に対する処理と異なり、充填率に基づきデータ格納情報要求の発行の有無を判定しない。これにより処理が効率化される。リビルドにおいて読み出されるデータのサイズは大きいため(シーケンシャルリード)、有効データが存在しない場合の無用なリードの負荷が大きく、一方で、データの読み出しに対してデータ格納情報要求の発行の処理時間は短いからである。
なお、リビルド制御プログラム215は、充填率に基づいて、データ格納情報要求の発行の有無を決定してもよい。故障ドライブの消失データは複数のドライブに分散されたデータおよびパリティデータから復元される。復元された消失データは、ホストデータを格納する記憶ドライブにスペア領域に格納されてもよい。
本実施例は、実ページが割り当てられていない仮想ページに対応する物理記憶領域からのデータの読み出しを回避する。これにより、リビルド処理をより効率化することができる。
図9は、ページ割り当て管理情報400の構成例を示す。ページ割り当て管理情報400は、構成情報212に含まれる。ページ割り当て管理情報400は、実ページを管理する。図9の例において、一つの実ページは一つのRAIDグループの論理アドレス領域からなるとする。ページ割り当て管理情報400は、各RAIDグループに対して用意される。
ページ割り当て管理情報400は、RAIDグループ内論理アドレス欄401、割当先仮想ボリューム欄402、割当先仮想ページ欄403を有する。RAIDグループ内論理アドレス欄401は、実ページの、RAIDグループが提供する論理アドレス領域におけるアドレスを示す。割当先仮想ボリューム欄402は、実ページが割り当てられている仮想ボリューム番号を示す。割当先仮想ページ欄403は、実ページが割り当てられている仮想ページ番号を示す。割当先仮想ボリューム欄402及び割当先仮想ページ欄403において、割り当てられていない実ページのエントリは、「NULL」を示す。
図10は、本実施例に係るリビルド処理のフローチャートを示す。図8を参照して説明した実施例1のリビルド処理との相違点を説明する。図10において、リビルド制御プログラム215は、対象ストライプラインが含まれる実ページが、仮想ページに割り当て済みであるか判定する(S351)。実ページが割り当てられていない場合(S351:NO)、リビルド制御プログラム215は、対象ストライプラインの処理を終了する。実ページが割り当てられている場合(S351:YES)、リビルド制御プログラム215は、ステップS303に進む。
本実施例は、ボリューム間のデータコピーを効率化する方法を開示する。上記実施例は、ドライブ障害時に、0データの読み出しを回避する。本実施例は、ボリューム間データコピーにおいえ、0データの読み出しを回避する。
図11は、本実施例に係るボリューム構成を示す。ストレージ装置100は、ローカルコピーペアを構成する論理ボリューム124A、122Bを含む。例えば、論理ボリューム124Aがホスト計算機500に提供され、論理ボリューム124Bがバックアップボリュームである。
コピーペアの形成時、ボリューム内データが一致するように、論理ボリューム124A内のデータが論理ボリューム124Bにコピーされる(形成コピー)。ストレージ装置は、この形成コピーにおいて、有効データ(パリティデータを除く)のみをコピーして、コピー処理を効率化する。
図11において、論理ボリューム124Aは、記憶ドライブ121Aから121Dで構成されるRAIDグループの記憶領域が割り当てられ、論理ボリューム124Bは、記憶ドライブ121Eから121Hで構成されるRAIDグループの記憶領域が割り当てられている。論理ボリューム124A、122Bの容量は仮想化されていても、仮想化されていなくてもよい。
図12は、実施例3に係る計算機システムの構成を示す。実施例1の構成との相違点は、ストレージ装置100が、リビルド制御プログラム215に代えて、コピー制御プログラム216を含む点である。
図13は、コピー制御プログラム216による形成コピー処理のフローチャートを示す。まず、コピー制御プログラム216は、コピー先の論理ボリューム124Bをフォーマットする(S401)。コピー制御プログラム216は、コピー元論理ボリューム124Aの各データストライプブロックについて、ステップS402からS408を実行する。
コピー制御プログラム216は、対象データストライプブロックの記憶ドライブ及び論理アドレス領域を、構成情報212を参照して特定する(S402)。コピー制御プログラム216は、対象記憶ドライブ121に、対象データストライプブロックの論理アドレス領域を指定して、データ格納情報要求を発行する(S403)。
データ格納情報要求への応答が、対象記憶ドライブ121が当該要求をサポートしていないことを示す場合(S404:NO)、コピー制御プログラム216は、対象記憶ドライブ121から対象データストライプブロックのデータを読み出し(S405)、コピー先論理ボリューム124Bにコピーする(S408)。
データ格納情報要求への応答が、指定アドレス領域にデータが格納されていないことを示す場合(S406:NO)、コピー制御プログラム216は、対象記憶ドライブ121についての処理を終了する。
データ格納情報要求への応答が、指定アドレス領域にデータが格納されていることを示す場合(S406:YES)、コピー制御プログラム216は、対象データストライプブロックのデータを対象記憶ドライブ121から読み出し(S407)、コピー先論理ボリューム124Bにコピーする(S408)。
上記形成コピーは、異なるストレージ装置の論理ボリュームで構成されるリモートコピーペアにも適用できる。図14はリモートコピーペアの構成例を示す。ストレージ装置100Aが論理ボリューム124Aを含み、ストレージ装置100Bが論理ボリューム124Bを含む。形成コピーは、論理ボリューム124Aの有効データ(パリティデータ除く)を、ストレージ装置100Aからストレージ装置100Bに、ネットワークを介して送信する。
ストレージ装置100A、100Bのコピー制御プログラム216は、通信を行って、図13のフローチャートに従った形成コピーを実行する。ストレージ装置100Bのコピー制御プログラム216は、論理ボリューム124Bをフォーマットする。有効データのみを論理ボリューム124Aから読み出し、ストレージ装置100Bに転送する。ストレージ装置100Bのコピー制御プログラム216は、受信したデータを、論理ボリューム124Bに格納する。
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明したすべての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることが可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
また、上記の各構成・機能・処理部等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード等の記録媒体に置くことができる。
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしもすべての制御線や情報線を示しているとは限らない。実際には殆どすべての構成が相互に接続されていると考えてもよい。

Claims (9)

  1. 記憶ドライブの故障により消失したデータを復元する装置であって、
    メモリと、
    前記メモリに格納されているプログラムに従って動作するプロセッサと、を含み、
    前記プロセッサは、
    故障した第1の記憶ドライブの第1の論理領域を選択し、
    前記第1の論理領域を含み、異なる記憶ドライブの論理領域ブロックからなり、消失した内部データを復元可能な冗長構成を有するデータセットを格納する、第1の論理領域ラインを特定し、
    前記第1の論理領域ラインから、前記第1の論理領域のデータを復元するためにアクセスする1以上の第2の論理領域を選択し、
    前記1以上の第2の論理領域をそれぞれ提供する1以上の第2の記憶ドライブのそれぞれに対して、
    前記第2の論理領域を指定して、有効なデータが格納されているかを問い合わせるデータ格納情報要求を発行し、
    前記データ格納情報要求に対して有効なデータが格納されていることを示す応答が返された場合に、前記第2の論理領域を指定したリード要求を発行し、
    前記データ格納情報要求に対して、有効なデータが格納されていないことを示す応答が返された場合に、リード要求を省略し、
    前記1以上の第2の記憶ドライブから読み出したデータを使用して、前記第1の論理領域のデータを復元する、装置。
  2. 請求項1に記載の装置であって、
    前記プロセッサは、
    前記第1の記憶ドライブの論理アドレス領域から所定サイズの対象領域を順次選択し、
    順次選択された対象領域のデータを復元して、1以上の他の記憶ドライブに格納し、
    前記順次選択された対象領域の少なくとも一部の対象領域のデータの復元において、
    前記対象領域を含み、異なる記憶ドライブの論理領域ブロックからなり、消失した内部データを復元可能な冗長構成を有するデータセットを格納する、対象論理領域ラインを特定し、
    前記対象論理領域ラインから、前記対象領域のデータを復元するためにアクセスする1以上のアクセス先論理領域を選択し、
    前記1以上のアクセス先論理領域をそれぞれ提供する1以上のアクセス先記憶ドライブそれぞれに対して、
    前記アクセス先論理領域を指定して有効なデータが格納されているかを問い合わせるデータ格納情報要求を発行し、
    前記データ格納情報要求に対して有効なデータが格納されていることを示す応答が返された場合に、前記アクセス先論理領域を指定したリード要求を発行し、
    前記データ格納情報要求に対して有効なデータが格納されていないことを示す応答が返された場合に、リード要求を省略し、
    前記1以上のアクセス先記憶ドライブから読み出したデータを使用して、前記対象領域のデータを復元する、装置。
  3. 請求項2に記載の装置であって、
    前記プロセッサは、前記第1の記憶ドライブの論理アドレス領域において、ボリュームに割り当てられていない論理領域のデータの復元をスキップする、装置。
  4. 請求項1に記載の装置であって、
    前記第1の論理領域は、ホスト計算機から受信したリード要求のアクセス先であり、
    前記プロセッサは、復元した前記第1の論理領域のデータを前記ホスト計算機に返す、装置。
  5. 請求項1に記載の装置であって、
    前記プロセッサは、
    前記データ格納情報要求の発行対象の記憶ドライブの充填率が閾値より小さい場合に、前記データ格納情報要求を発行し、
    前記充填率は、前記発行対象の記憶ドライブが提供する論理アドレス空間から割り当て済みの領域において、有効データが物理記憶領域に格納されている領域の割合を示す、装置。
  6. 請求項1に記載の装置であって、
    前記プロセッサは、ホスト計算機から受信した、ボリュームにおける特定領域の領域解放要求に応答して、前記特定領域に割り当てられている論理領域を有する記憶ドライブに、前記割り当てられている論理領域を指定した領域解放要求を発行する、装置。
  7. 請求項1に記載の装置であって、
    前記プロセッサは、
    前記データ格納情報要求の発行対象の記憶ドライブが前記データ格納情報要求をサポートしているか判定し、
    前記発行対象の記憶ドライブが前記データ格納情報要求をサポートしていない場合、前記発行対象の記憶ドライブにリード要求を発行する、装置。
  8. 請求項1に記載の装置であって、
    前記プロセッサは、第1ボリュームから第2ボリュームへのデータコピーにおいて、
    前記第1ボリュームから対象領域を順次選択し、
    前記順次選択される対象領域の少なくとも一部の対象領域のデータの読み出しにおいて、
    前記対象領域を提供する記憶ドライブ対して、
    前記対象領域を指定して有効なデータが格納されているかを問い合わせるデータ格納情報要求を発行し、
    前記データ格納情報要求に対して有効なデータが格納されていることを示す応答が返された場合に、前記対象領域を指定したリード要求を発行し、
    前記データ格納情報要求に対して有効なデータが格納されていないことを示す応答が返された場合に、リード要求を省略する、装置。
  9. 記憶ドライブの故障により消失したデータを復元する方法であって、
    故障した第1の記憶ドライブの第1の論理領域を選択し、
    前記第1の論理領域を含み、異なる記憶ドライブの論理領域ブロックからなり、消失した内部データを復元可能な冗長構成を有するデータセットを格納する、第1の論理領域ラインを特定し、
    前記第1の論理領域ラインから、前記第1の論理領域のデータを復元するためにアクセスする1以上の第2の論理領域を選択し、
    前記1以上の第2の論理領域をそれぞれ提供する1以上の第2の記憶ドライブのそれぞれに対して、
    前記第2の論理領域を指定して、有効なデータが格納されているかを問い合わせるデータ格納情報要求を発行し、
    前記データ格納情報要求に対して有効なデータが格納されていることを示す応答が返された場合に、前記第2の論理領域を指定したリード要求を発行し、
    前記データ格納情報要求に対して、有効なデータが格納されていないことを示す応答が返された場合に、リード要求を省略し、
    前記1以上の第2の記憶ドライブから読み出したデータを使用して、前記第1の論理領域のデータを復元する、ことを含む方法。
JP2018561116A 2017-01-10 2017-01-10 記憶ドライブの故障により消失したデータを復元する装置 Active JP6605762B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2017/000445 WO2018131067A1 (ja) 2017-01-10 2017-01-10 記憶ドライブの故障により消失したデータを復元する装置

Publications (2)

Publication Number Publication Date
JPWO2018131067A1 true JPWO2018131067A1 (ja) 2019-06-27
JP6605762B2 JP6605762B2 (ja) 2019-11-13

Family

ID=62840101

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018561116A Active JP6605762B2 (ja) 2017-01-10 2017-01-10 記憶ドライブの故障により消失したデータを復元する装置

Country Status (3)

Country Link
US (1) US20190205044A1 (ja)
JP (1) JP6605762B2 (ja)
WO (1) WO2018131067A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010271808A (ja) * 2009-05-20 2010-12-02 Fujitsu Ltd ストレージ装置及びデータコピー方法
WO2014010077A1 (ja) * 2012-07-13 2014-01-16 富士通株式会社 ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム
WO2015198412A1 (ja) * 2014-06-25 2015-12-30 株式会社日立製作所 ストレージシステム
JP2016091318A (ja) * 2014-11-05 2016-05-23 日本電気株式会社 ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010271808A (ja) * 2009-05-20 2010-12-02 Fujitsu Ltd ストレージ装置及びデータコピー方法
WO2014010077A1 (ja) * 2012-07-13 2014-01-16 富士通株式会社 ディスクアレイ制御装置、ディスクアレイ制御方法及びディスクアレイ制御プログラム
WO2015198412A1 (ja) * 2014-06-25 2015-12-30 株式会社日立製作所 ストレージシステム
JP2016091318A (ja) * 2014-11-05 2016-05-23 日本電気株式会社 ディスクアレイ装置、ディスク制御装置、ソリッドステートドライブ、ディスク制御方法、及びそのためのプログラム

Also Published As

Publication number Publication date
US20190205044A1 (en) 2019-07-04
WO2018131067A1 (ja) 2018-07-19
JP6605762B2 (ja) 2019-11-13

Similar Documents

Publication Publication Date Title
EP3726364B1 (en) Data write-in method and solid-state drive array
US10073640B1 (en) Large scale implementation of a plurality of open channel solid state drives
US8819338B2 (en) Storage system and storage apparatus
CN107241913B (zh) 信息处理装置
US8539150B2 (en) Storage system and management method of control information using a cache memory with multiple cache partitions
JP2020035300A (ja) 情報処理装置および制御方法
US11928053B2 (en) System garbage collection method and method for garbage collection in solid state disk
WO2015162758A1 (ja) ストレージシステム
US20190205053A1 (en) Storage apparatus and distributed storage system
US11086562B2 (en) Computer system having data amount reduction function and storage control method
US10049042B2 (en) Storage device, semiconductor memory device, and method for controlling same
CN111124262A (zh) 独立盘冗余阵列(raid)的管理方法、设备和计算机可读介质
US10310758B2 (en) Storage system and storage control method
US10846234B2 (en) Storage control system and storage control method
JP6817340B2 (ja) 計算機
WO2018055686A1 (ja) 情報処理システム
JP6605762B2 (ja) 記憶ドライブの故障により消失したデータを復元する装置
US8935488B2 (en) Storage system and storage control method
JP6175566B2 (ja) ストレージシステム及び記憶制御方法
JP6163588B2 (ja) ストレージシステム
US11544005B2 (en) Storage system and processing method
US11221790B2 (en) Storage system

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190218

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190618

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190808

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190912

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191016

R150 Certificate of patent or registration of utility model

Ref document number: 6605762

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150