[go: up one dir, main page]
More Web Proxy on the site http://driver.im/

JP6693181B2 - ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム - Google Patents

ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム Download PDF

Info

Publication number
JP6693181B2
JP6693181B2 JP2016046200A JP2016046200A JP6693181B2 JP 6693181 B2 JP6693181 B2 JP 6693181B2 JP 2016046200 A JP2016046200 A JP 2016046200A JP 2016046200 A JP2016046200 A JP 2016046200A JP 6693181 B2 JP6693181 B2 JP 6693181B2
Authority
JP
Japan
Prior art keywords
group
sector
storage
error
lbas
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.)
Active
Application number
JP2016046200A
Other languages
English (en)
Other versions
JP2017162202A (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 JP2016046200A priority Critical patent/JP6693181B2/ja
Priority to US15/395,890 priority patent/US10366724B2/en
Publication of JP2017162202A publication Critical patent/JP2017162202A/ja
Application granted granted Critical
Publication of JP6693181B2 publication Critical patent/JP6693181B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1883Methods for assignment of alternate areas for defective areas
    • G11B20/1889Methods for assignment of alternate areas for defective areas with discs
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • 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
    • 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/0604Improving or facilitating administration, e.g. storage management
    • 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
    • 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/0644Management of space entities, e.g. partitions, extents, pools
    • 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
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B20/00Signal processing not specific to the method of recording or reproducing; Circuits therefor
    • G11B20/10Digital recording or reproducing
    • G11B20/18Error detection or correction; Testing, e.g. of drop-outs
    • G11B20/1816Testing
    • G11B2020/1826Testing wherein a defect list or error map is generated

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)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Quality & Reliability (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Debugging And Monitoring (AREA)

Description

本発明は、ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムに関する。
従来、記憶装置における最小のアクセス単位となるセクタからエラーが発生した場合、エラーが発生したセクタの位置を、ストレージ制御装置のメモリに記憶する技術がある。
関連する先行技術として、例えば、複数のブロックに束ねて管理する基本テーブルとブロック間の差分情報とに分割された管理情報に基づいて不揮発性メモリを管理するコントローラが、束ねられた範囲で異なる部分を、差分情報を用いて管理するものがある。また、記録媒体の各セクタに対して連続してデータを記録するとき、複数のブロックの中の所定数のブロックを交替ブロックとし、二次欠陥のあるセクタを含むブロックをブロック単位で交替ブロックと交替する技術がある。また、互いに重複しない第1物理アドレスが個々に割り当てられる複数の第1ブロックのうちの初期欠陥ブロックを記憶する第2ブロックの情報と、後発欠陥ブロックを記憶する第3ブロックの情報と、論理アドレスとに基づき第1物理アドレスを求める技術がある。
特開2007−241896号公報 特開平9−259538号公報 特開2010−146495号公報
しかしながら、従来技術によれば、ストレージにおけるエラー領域を管理する管理情報に費やされるメモリの記憶容量が増大する場合がある。具体的には、ストレージの記憶領域が増大するにつれて、管理情報に費やされるメモリの記憶容量が増大することになる。そして、管理情報に費やされるメモリの記憶容量が、ストレージ制御装置のメモリの記憶容量を超えてしまう場合がある。
1つの側面では、本発明は、ストレージにおけるエラー領域を管理する管理情報に費やされるメモリの記憶容量を低減することができるストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムを提供することを目的とする。
本発明の一側面によれば、ストレージの記憶領域に論理的に割り当てられた複数の単位領域をグループ化し、グループ毎に、エラーが発生したエラー領域が含まれるか否かを示すビット情報を管理し、各グループのビット情報を参照して、記憶領域からエラー領域が含まれるグループを特定し、特定したグループに含まれる単位領域におけるデータの読み出し結果に基づいて、グループにおけるエラー領域を特定するストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムが提案される。
本発明の一態様によれば、ストレージにおけるエラー領域を管理する管理情報に費やされるメモリの記憶容量を低減することができるという効果を奏する。
図1は、本実施の形態にかかるストレージ制御装置101の動作例を示す説明図である。 図2は、ストレージシステム200の構成例を示す説明図である。 図3は、CM201のハードウェア構成例を示す説明図である。 図4は、装置管理用PC203のハードウェア構成例を示す説明図である。 図5は、CM201の機能構成例を示す説明図である。 図6は、リビルド処理内の不良セクタ作成例を示す説明図である。 図7は、セクタ内に付与する不良セクタフラグの一例を示す説明図である。 図8は、不良セクタ情報510の記憶内容の一例を示す説明図である。 図9は、不良セクタ情報登録処理手順の一例を示すフローチャートである。 図10は、不良セクタ一覧参照処理手順の一例を示すフローチャートである。 図11は、ホスト装置202からの書き込み処理手順の一例を示すフローチャートである。 図12は、ビットオフ制御処理手順の一例を示すフローチャートである。
以下に図面を参照して、開示のストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラムの実施の形態を詳細に説明する。
図1は、本実施の形態にかかるストレージ制御装置101の動作例を示す説明図である。ストレージ制御装置101は、記憶装置102の記憶領域を制御するコンピュータである。例えば、ストレージ制御装置101は、複数の記憶装置102の記憶領域を制御して、RAID(Redundant Arrays of Inexpensive Disks)技術によるRAIDグループにより形成された仮想的なボリュームを利用者に提供する。
RAID技術は、複数の記憶装置102を組み合わせて仮想的なボリュームとして運用する技術である。ここで、RAIDには、仮想的なディスクの形成の仕方を表すRAIDレベルが存在する。RAIDレベルは、RAID0〜RAID6までのRAIDレベルが存在する。また、RAIDには、RAID0+1というように、複数のRAIDレベルを組み合わせたレベルも存在する。本実施の形態は、どのRAIDレベルであっても適用することができる。
記憶装置102は、不揮発性の記憶媒体を有する記憶装置であれば、どのような記憶装置でもよい。例えば、記憶装置102として、HDD(Hard Disk Drive)、SSD(Solid State Drive)、光ディスクドライブ等を採用することができる。
ここで、RAIDグループを形成するストレージの記憶装置102の1つが故障したとする。この場合、ストレージ制御装置101は、リビルド処理を行い、冗長性を復旧させる。具体的には、ストレージ制御装置101は、故障した記憶装置102を交換した記憶装置102に対して、または、ホットスペアに設定された記憶装置102に対して、故障した記憶装置102が記憶していたデータを復元する。
リビルド処理の内容として、ストレージ制御装置101は、RAIDグループに含まれる、故障した記憶装置102以外の他の記憶装置102からデータを読み出す。そして、ストレージ制御装置101は、読み出したデータに基づいて、故障した記憶装置102が記憶していたデータを復元する。読み出したデータに基づき故障した記憶装置102が記憶していたデータを復元する方法は、RAIDレベルによって異なる。例えば、RAIDレベルが1であれば、読み出したデータそのものが、故障した記憶装置102が記憶していたデータとなる。また、RAIDレベルが5であれば、各記憶装置102から読み出したデータの排他的論理和により得られた値が、故障した記憶装置102が記憶していたデータとなる。
ここで、リビルド処理の過程で、RAIDグループに含まれる他の記憶装置102から、あるセクタのデータを読み出した際に、あるセクタが媒体エラー等の要因で、失敗し、エラーが発生する場合がある。ここで、セクタとは、記憶装置102の記憶領域を、記憶装置102における最小のアクセス単位で分割した領域である。また、セクタを特定するアドレスの指定方法としては、LBA(Logical Block Addressing)方式やCHS(Cylinder Head Sector)方式がある。本実施の形態では、セクタを特定するアドレスの指定方法が、LBA方式であるとする。
ここで、1つのLBAが示す記憶領域は、ホストからのアクセスの最小の単位領域となる。また、セクタとLBAとが1対1対応となる場合もあるし、セクタとLBAとが1対複数となる場合もある。セクタとLBAとが1対1対応となる場合には、例えば、1セクタのサイズ=1LBAのサイズ=512[Byte]となる。また、セクタとLBAとが1対複数となる場合には、例えば、1セクタのサイズ=4LBAのサイズ=2048[Byte]となる。また、エラーが発生したエラー領域を、「不良セクタ」と呼称する。ここで、リビルド処理の過程でエラーとなったLBAについて、セクタとLBAとが1対1対応となる場合には、エラーが発生したLBAに1対1で対応するセクタが、不良セクタとなる。また、セクタとLBAとが1対複数の対応となる場合には、エラーが発生したLBAに対応するセクタが、不良セクタとなる。
不良セクタが発生した場合、不良セクタに記憶されていたデータは失われたため、ストレージ制御装置101は、読み出した記憶装置102と、復元したデータを書き込む予定の記憶装置102に対して、該当のセクタのデータを0で初期化する。さらに、ストレージ制御装置101は、該当のセクタが不良セクタであるか否かを示す情報を有効に設定し、該当のセクタ内に設定した情報を書き込む。リビルド処理の一例については、図6で示す。また、セクタの具体的なデータ構造については、図7で示す。
以下、該当のセクタ内に書き込む、該当のセクタが不良セクタであるか否かを示す情報を、「不良セクタフラグ」と呼称する。このように、各セクタは、セクタ自身が不良セクタか否かを、セクタ自身の不良セクタフラグで管理する。不良セクタフラグが無効であれば、該当のセクタは不良セクタではないことを示し、不良セクタフラグが有効であれば、該当のセクタは不良セクタであることを示す。
ここで、不良セクタが発生した際に、不良セクタのLBAをストレージ制御装置101のメモリに記憶することが考えられる。このように、不良セクタの一覧をメモリに記憶することにより、記憶装置102の利用者が、どの記憶装置102やどのLBAに不良セクタが存在するのかを閲覧することを容易にすることができる。
しかしながら、ストレージにおける不良セクタを管理する管理情報に費やされるメモリの記憶容量が増大する場合がある。具体的には、ストレージの記憶領域が増大するにつれて、管理情報に費やされるメモリの記憶容量が増大することになる。そして、ストレージ制御装置101のメモリの空き領域を大量に消費したり、管理情報に費やされるメモリの記憶容量が、ストレージ制御装置101のメモリの記憶容量を超えてしまったりする場合がある。例えば、256[TByte]の全不良セクタを管理する場合、256[TByte]/512(Byte/LBA)*8(1LBAのサイズ)=4[TByte]の空き容量を消費することになる。
また、メモリの空き領域を大量に消費することを避けるため、メモリ上に保持する不良セクタの一覧を、1つの記憶装置102あたり有限個、例えば数個までとすることが考えられる。しかし、有限個を上回る不良セクタが発生した場合、記憶装置102に不良セクタは存在するが、記憶装置102のどこにあるかはわからない、いわゆる離散状態となる。ここで、不良セクタの存在するLBAが明確であれば、記憶装置102の利用者の装置からの不良セクタの上書きにより、メモリ上に保持している不良セクタの一覧から、上書きしたセクタを消去することができる。しかし、離散状態となった場合には、不良セクタの上書きにより、記憶装置102の不良セクタを削除できたとしても、記憶装置102の全ての不良セクタが消去されたか不明であるため、不良セクタの一覧から消去することができない。
1つの記憶装置102あたりに保持する不良セクタの個数を増やせば、上述した状況に陥る可能性が減少するが、メモリの消費量とのトレードオフとなる。
そこで、本実施の形態では、記憶装置102の記憶領域において、グループ毎に不良セクタを含むか否かを示すビットから不良セクタを含むグループを特定し、特定したグループを読み出して不良セクタを特定することについて説明する。
図1を用いて、ストレージ制御装置101の動作例について説明する。図1の例では、説明の簡略化のため、1つの記憶装置102を表示する。図1で示す記憶装置102は、リビルド処理の過程でエラーが発生した記憶装置102か、復元したデータを書き込む予定の記憶装置102のいずれかである。
ストレージ制御装置101は、ビット情報122を、ビット情報記憶部120に記憶する。ここで、ビット情報122は、ボリューム111に割り当てられたストレージに論理的に割り当てられたLBAをグループ化した各グループ112のビットであって、不良セクタが含まれるか否かを示すビットである。
ここで、グループ112に含まれるLBAは、複数であればどのようなものでもよい。例えば、グループ112は、ボリューム111を2以上のLBAのデータ長で分割した領域である。また、グループ112は、ボリューム111のLBAの下位数ビットに応じて、LBAをグループ分けされたものでもよい。ただし、後の工程でグループ112に含まれる各LBAを読み出すため、特に記憶装置が、シーケンシャルアクセスが高性能でありランダムアクセスが低性能なHDD等であれば、グループ112に含まれるLBAは、連続することが好ましい。また、あるLBAが、複数のグループ112に含まれるようにしてもよいが、ビット情報122の全体のデータ量が増えることになるため、1つのLBAは、1つのグループだけに含まれることが好ましい。
図1の例では、ボリューム111を2以上のLBAのデータ長で5分割したグループ112−1〜5のいずれかに、各LBAが含まれる。図1の例では、実線で区切られた横長の矩形が、1つのグループ112を示す。また、実線と破線とで区切られた矩形が、1つのLBAを示す。また、図1の例では、グループ112−1〜5は、それぞれ、ビット情報122−1〜5に対応する。ここで、グループ112−3は、不良セクタであるLBA1002を含み、グループ112−5は、不良セクタであるLBA20XX、20YYを含むものとする。図1の例では、不良セクタを×の記号で示す。
このように、グループ112−3、5には不良セクタが含まれるため、グループ112−3、5に対応するビット情報122−3、5は、対応するグループに不良セクタが含まれることを示す値を有する。これに対し、グループ112−1、2、4に対応するビット情報122−1、2、4は、対応するグループに不良セクタが含まれないことを示す値を有する。以下の説明では、対応するグループに不良セクタが含まれることを示す値を、「オン」とし、対応するグループに不良セクタが含まれないことを示す値を、「オフ」とする。例えば、ビットの値が1であればオンとし、ビットの値が0であればオフとする。また、ビットの値が1であればオフとし、ビットの値が0であればオンとしてもよい。図1の例では、オンに設定されたビットを、墨塗りで示す。
また、複数のビット情報122は、ストレージ制御装置101のメモリ上にどのように記憶されてもよいが、管理のし易さといった点で、ビットマップとして記憶されることが好ましい。ここで、ビットマップとは、複数のビット情報122から構築される配列のことである。以下、複数のビット情報122から構築される配列を、ビットマップ121とする。ビットマップ121が、ストレージにおけるエラー領域を管理する管理情報となる。ビットマップ121の内部におけるビット情報122の順序も、どのビット情報122がどのグループ112に対応しているかさえ特定できればどのような順序でもよい。例えば、管理をし易くするため、ビットマップ121の内部におけるビット情報122の順序は、ビット情報122に含まれるLBAの昇順としてもよいし、降順としてもよい。図1の例では、ビットマップ121の内部におけるビット情報122の順序は、ビット情報122に含まれるLBAの昇順とする。また、ボリューム111に一切不良セクタが存在しない状態でビットマップ121を保持するのは無駄なので、ストレージ制御装置101は、初めて不良セクタが発生した場合にビットマップ121を獲得する。
ストレージ制御装置101は、図1の(1)で示すように、ビット情報記憶部120に記憶されたビットマップ121を参照して、ボリューム111から不良セクタが含まれるグループを特定する。図1の例では、ストレージ制御装置101は、オンに設定されたビット情報122−3、5から、グループ112−3、5を特定する。
次に、ストレージ制御装置101は、図1の(2)で示すように、特定したグループに含まれるLBAにおけるデータを読み出す。図1の例では、ストレージ制御装置101は、グループ112−3に含まれる全LBAのデータと、グループ112−5に含まれる全LBAのデータとを読み出す。
そして、ストレージ制御装置101は、図1の(3)で示すように、特定したグループ112に含まれるLBAのデータに対する読み出し結果に基づいて、特定したグループ112における不良セクタを特定する。図1の例では、グループ112−3に含まれる全セクタに対する読み出しの過程でLBA1002を読み出した際に、LBA1002には不良セクタフラグが有効に設定されているため、エラーが発生する。ストレージ制御装置101は、LBA1002への読み出しに対するエラーにより、LBA1002が不良セクタであることを特定する。同様に、ストレージ制御装置101は、LBA20XX、20YYが不良セクタであることを特定する。なお、図1の(3)において、セクタとLBAとが1対複数の対応となる場合には、ストレージ制御装置101は、特定したグループ112における不良セクタに対応する複数のLBAを出力する。
以上により、ストレージ制御装置101は、ボリューム111の不良セクタを最大数まで管理できるとしたときに、不良セクタのLBAを一つずつ記憶する方式に比べ、不良セクタを特定するために用いるデータサイズを削減することができる。例えば、一つのグループのデータ量を1[MByte]とし、256[TByte]の記憶装置102の全不良セクタを管理する場合、データサイズは、256[TByte]/1[MByte]/8[Bit/Byte]=32[MByte]となる。同一の条件で、不良セクタのLBAを一つずつ記憶する方式では、データサイズは4[TByte]であったため、本実施の形態にかかる方式は、不良セクタのLBAを一つずつ記憶する方式に比べデータサイズを削減することができる。
なお、図1では、ストレージ制御装置101は、複数の記憶装置102の記憶領域を制御して、RAIDグループを形成する例を説明したが、これに限らない。例えば、本実施の形態は、ストレージ制御装置101が、1つの記憶装置102の記憶領域を制御し、利用者に1つの記憶装置102の記憶領域を提供してもよい。
図2は、ストレージシステム200の構成例を示す説明図である。ストレージシステム200は、CM(Controller Module)201#0、#1と、ホスト装置202と、装置管理用PC(Personal Computer)203と、DE(Device Enclosure)204とを有する。CM201は、図1で示したストレージ制御装置101に相当する。
CM201は、ディスクアクセスを制御するコントローラである。また、CM201#0、#1は、CM間通信により接続される。CM201は、図2の例で示すように、複数個のCM201を有して、CM201を冗長構成としてもよい。CM201の内部のハードウェアについては、図3で説明する。ホスト装置202は、ストレージシステム200が提供するボリュームを利用する装置である。例えば、ホスト装置202は、Webサーバや、DB(DataBase)サーバである。装置管理用PC203は、Webブラウジング機能を有するコンピュータである。装置管理用PC203のハードウェアについては、図4で説明する。
DE204は、複数のディスク211を格納する筐体である。ディスク211は、図1で示した記憶装置102に相当する。図2の例では、CM201#0は、ディスク211#0〜#2により、RAID5のRAIDグループを構築し、ボリューム#0の記憶領域として割り当てられる。また、CM201#1は、ディスク211#3〜#7により、RAID6のRAIDグループを構築し、ボリューム#1の記憶領域として割り当てられる。RAIDグループにより形成されたボリュームが、図1で示したボリューム111に相当する。ホスト装置202は、ボリューム#0、#1にアクセスする。
(CM201のハードウェア構成例)
図3は、CM201のハードウェア構成例を示す説明図である。CM201は、CPU(Central Processing Unit)301と、フラッシュROM(Read Only Memory)302と、キャッシュメモリ303と、CA(Channel Adaptor)304と、装置管理GUI(Graphical User Interface)モジュール305と、LAN(Local Area Network)ポート306と、DI(Disk Interface)307とを有する。
CPU301は、CM201の全体の制御を司る演算処理装置である。フラッシュROM302は、本実施の形態にかかるストレージ制御プログラムを記憶する不揮発性メモリである。フラッシュROM302の記憶媒体としては、例えば、NANDフラッシュを採用することができる。キャッシュメモリ303は、CPU301のワークエリアとして使用される揮発性メモリである。キャッシュメモリ303は、ビットマップ121を含む不良セクタ情報を記憶する。不良セクタ情報については、図5で説明する。従って、キャッシュメモリ303が、図1で示したビット情報記憶部120に相当する。また、キャッシュメモリ303は、フラッシュROM302から読み出したストレージ制御プログラムを記憶する。
CA304は、ホスト装置202と通信する通信インターフェースである。装置管理GUIモジュール305は、Webブラウザによる装置の状態表示や管理機能を提供するモジュールである。LANポート306は、装置管理用PC203と接続する通信インターフェースである。DI307は、ディスク211と通信する通信インターフェースである。
(装置管理用PC203のハードウェア構成例)
図4は、装置管理用PC203のハードウェア構成例を示す説明図である。装置管理用PC203は、CPU401と、ROM402と、RAM(Random Access Memory)403と、を含む。また、装置管理用PC203は、ディスクドライブ404と、ディスク405と、通信インターフェース406と、を含む。また、装置管理用PC203は、ディスプレイ407と、キーボード408と、マウス409とを含む。また、CPU401〜ディスクドライブ404と、通信インターフェース406〜マウス409とは、バス410によってそれぞれ接続される。
CPU401は、装置管理用PC203の全体の制御を司る演算処理装置である。ROM402は、ブートプログラムなどのプログラムを記憶する不揮発性メモリである。RAM403は、CPU401のワークエリアとして使用される揮発性メモリである。
ディスクドライブ404は、CPU401の制御に従ってディスク405に対するデータのリードおよびライトを制御する制御装置である。ディスクドライブ404には、例えば、磁気ディスクドライブ、光ディスクドライブ、ソリッドステートドライブなどを採用することができる。ディスク405は、ディスクドライブ404の制御で書き込まれたデータを記憶する不揮発性メモリである。例えばディスクドライブ404が磁気ディスクドライブである場合、ディスク405には、磁気ディスクを採用することができる。また、ディスクドライブ404が光ディスクドライブである場合、ディスク405には、光ディスクを採用することができる。また、ディスクドライブ404がソリッドステートドライブである場合、ディスク405には、半導体素子によって形成された半導体メモリ、いわゆる半導体ディスクを採用することができる。
通信インターフェース406は、ネットワークと内部のインターフェースを司り、外部装置からのデータの入出力を制御する制御装置である。具体的に、通信インターフェース406は、通信回線を通じてネットワークを介して他の装置に接続される。通信インターフェース406には、例えば、モデムやLANアダプタなどを採用することができる。
ディスプレイ407は、マウスカーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する装置である。ディスプレイ407には、例えば、CRT(Cathode Ray Tube)、TFT(Thin Film Transistor)液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
キーボード408は、文字、数字、各種指示などの入力のためのキーを有し、データの入力を行う装置である。また、キーボード408は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス409は、マウスカーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う装置である。マウス409は、ポインティングデバイスとして同様に機能を有するものであれば、トラックボールやジョイスティックなどであってもよい。
また、ホスト装置202のハードウェアは、CPUと、ROMと、RAMと、ディスクドライブと、ディスクと、通信インターフェースとを有する。次に、CM201の機能構成図を、図5を用いて説明する。
(CM201の機能構成例)
図5は、CM201の機能構成例を示す説明図である。CM201は、制御部500を有する。制御部500は、第1特定部501と、第2特定部502と、抽出部503と、判定部504と、設定部505と、を含む。制御部500は、記憶装置に記憶されたプログラムをCPU301が実行することにより、各部の機能を実現する。記憶装置とは、具体的には、例えば、図3に示したフラッシュROM302などである。また、各部の処理結果は、CPU301のレジスタや、キャッシュメモリ303等に格納される。
また、CM201は、キャッシュメモリ303に含まれる不良セクタ情報510にアクセス可能である。不良セクタ情報510は、ボリューム単位の不良セクタの有無、およびLBAを管理する情報である。不良セクタ情報510は、不良セクタ管理情報511と、ビットマップ121とを含む。不良セクタ情報510の記憶内容の一例を、図8で示す。
第1特定部501は、ビットマップ121を参照して、ボリュームから不良セクタが含まれるグループ112を特定する。
第2特定部502は、第1特定部501が特定したグループ112に含まれるセクタに対する読み出し結果に基づいて、第1特定部501が特定したグループ112における不良セクタを特定する。
次に、ビット情報122をオンに設定する機能について説明する。ビット情報122をオンに設定する機会は、図1で説明したように、リビルド処理の過程の読み出しによりエラーが発生した場合である。設定部505は、ボリュームのいずれかのセクタからエラーが発生した場合、いずれかのセクタを含むグループ112に対応するビット情報122を、オンに設定する。
次に、ビット情報122をオフに設定する機能について説明する。ビット情報122をオフに設定する機会は、ホスト装置202からの書き込みが発生した場合である。ビット情報122をオフに設定する方法としては、大きく分けて2つある。まず、1つ目の方法について説明する。
判定部504は、ボリュームに対する書き込み要求を受け付けた場合、第2特定部502が特定したセクタが書き込み要求の書き込みの範囲に含まれるか否かを判定する。ここで、判定部504は、第2特定部502が特定した不良セクタの全てが、書き込みの範囲に含まれているか否かを判定してもよい。または、判定部504は、第2特定部502が特定した不良セクタの最小のLBAと最大のLBAを特定し、特定した最小のLBAが書き込みの範囲の最小値以上であり、かつ、特定した最大のLBAが書き込みの範囲の最大値以下であるかを判定してもよい。次に、設定部505は、第2特定部502が特定した不良セクタが書き込みの範囲に含まれると判定部504が判定した場合、第2特定部502が特定した不良セクタを含むグループ112に対応するビット情報122を、オフに設定する。
例えば、グループ112−1が、LBA0〜9を有し、グループ112−2が、LBA10〜19を有するものとする。書き込みの範囲のLBAがLBA5〜15であり、第2特定部502が特定した不良セクタが、LBA7、12であるとする。この場合、判定部504は、第2特定部502が特定した不良セクタが書き込み要求の書き込みの範囲に含まれると判定する。そして、設定部505は、グループ112−1、2に対応するビット情報122−1、2を、オフに設定する。
次に、ビットをオフに設定する機能の2つ目の方法について説明する。抽出部503は、ボリュームに対する書き込み要求を受け付けた場合、書き込み要求の書き込みの範囲に含まれるセクタを含むグループ112のうち、オンに設定されたビット情報122に対応するグループ112を抽出する。次に、判定部504は、抽出部503が抽出したグループ112に対応して、抽出したグループ112に含まれており、第2特定部502が特定した不良セクタが、書き込みの範囲に含まれるか否かを判定する。そして、設定部505は、第2特定部502が特定した不良セクタが書き込みの範囲に含まれると判定したグループがある場合、該当のグループ112に対応するビットを、オフに設定する。
例えば、グループ112−1が、LBA0〜9を有し、グループ112−2が、LBA10〜19を有し、グループ112−3が、LBA20〜29を有するものとする。このうち、グループ112−1、2、3に対応するビット情報122−1、2、3がオンであるとする。そして、書き込みの範囲のLBAがLBA5〜25であり、第2特定部502が特定した不良セクタが、LBA2、12、28であるとする。
この場合、抽出部503は、グループ112−1、2、3を抽出する。次に、判定部504は、グループ112−1について、グループ112−1に含まれる不良セクタLBA2が、書き込みの範囲に含まれないと判定する。また、判定部504は、グループ112−2について、グループ112−2に含まれる不良セクタLBA12が、書き込みの範囲に含まれると判定する。また、判定部504は、グループ112−3について、グループ112−3に含まれる不良セクタLBA28が、書き込みの範囲に含まれないと判定する。そして、設定部505は、グループ112−2に対応するビット情報122−2を、オフに設定する。
(リビルド処理の一例)
図6は、リビルド処理内の不良セクタ作成例を示す説明図である。図6では、DE204に含まれるディスク211#x、#yによりRAID1のRAIDグループを形成しているとする。さらに、DE204に含まれるディスク211#zが、ディスク211#x、#yのホットスペアディスクとして存在するものとする。
図6の例では、ディスク211#yが故障したため、CM201は、リビルド処理として、ディスク211#zにディスク211#xが記憶していたデータを復元し、冗長性を復旧させる。具体的には、図6の例では、ディスク211#yはRAID1のRAIDグループに属するため、CM201は、ディスク211#yのペアとなるディスク211#xからデータを読み出し、読み出したデータを、ディスク211#zに書き込む。
そして、図6の例では、CM201が、ディスク211#xからデータを読み出した際に、あるLBAで媒体エラーの要因で失敗したとする。この場合、CM201は、ディスク211#xにおける不良セクタの不良セクタフラグを有効に設定し、ディスク211#xにおける読み出しに失敗したセクタを書き込む予定であったセクタの不良セクタフラグを有効に設定する。また、不良セクタのデータは失われたため、読み出しに失敗したLBAのデータを0データで初期化する。セクタの具体的なデータ構造については、図7で説明する。図6の例では、不良セクタを×の記号で示す。
図7は、セクタ内に付与する不良セクタフラグの一例を示す説明図である。図7では、セクタのデータ構造を用いて、セクタ内に付与する不良セクタフラグの一例について説明する。
1セクタとなる1つのLBAが示す記憶領域700は、520[Byte]の記憶領域である。記憶領域700のうち、データを記憶する記憶領域701の記憶容量が512[byte]であり、チェックコードを記憶する記憶領域702の記憶容量が8[Byte]である。
記憶領域702のうち、CRC(Cyclic Redundancy Check)を記憶する記憶領域703の記憶容量が2[Byte]であり、Block IDを記憶する記憶領域704の記憶容量が6[Byte]である。
記憶領域704のうち、不良セクタフラグを記憶する記憶領域705の記憶容量が[1bit]であり、LUN(Logical Unit Number)番号とLBAの一部とにより作成された値を記憶する記憶領域706の記憶容量が[47bit]である。
図8は、不良セクタ情報510の記憶内容の一例を示す説明図である。不良セクタ情報510に含まれる不良セクタ管理情報511は、ボリューム番号と、ビットマップ121のアドレスとを記憶する情報である。ボリューム番号は、RAIDグループにより形成されたボリュームを識別する番号である。ビットマップ121のアドレスは、ビットマップ121が確保された領域の先頭アドレスである。
また、不良セクタ情報510に含まれるビットマップ121は、グループ112に不良セクタが含まれるか否かを示すビット情報122の配列である。
次に、図9〜図12を用いて、フローチャートとして示したCM201が実行する処理を説明する。
図9は、不良セクタ情報登録処理手順の一例を示すフローチャートである。不良セクタ情報登録処理は、リビルド処理中に媒体エラー等により読み出せなかった不良セクタを検出した際に行う処理である。
CM201は、不良セクタが発生したボリュームのビットマップ121が存在するか否かを判断する(ステップS901)。不良セクタが発生したボリュームのビットマップ121が存在しない場合(ステップS901:No)、CM201は、キャッシュメモリ303から、不良セクタが発生したボリュームのビットマップ121を獲得する(ステップS902)。
ステップS902の処理終了後、または、不良セクタが発生したボリュームのビットマップ121が既に存在する場合(ステップS901:Yes)、不良セクタが発生したボリュームのビットマップ121のうち、不良セクタに対応するビット情報122をオンに設定する(ステップS903)。そして、CM201は、不良セクタ管理情報を終了する。
図10は、不良セクタ一覧参照処理手順の一例を示すフローチャートである。不良セクタ一覧参照処理は、装置管理用PC203から、不良セクタの一覧を送信する要求を受け付けた際に実行する処理である。
CM201は、ビットマップ121が存在するか否かを判断する(ステップS1001)。例えば、不良セクタ情報を参照する要求に、対象のボリューム番号が含まれる場合には、CM201は、該当のボリューム番号が設定された不良セクタ管理情報511を検索する。そして、CM201は、検索してみつかった不良セクタ管理情報511のビットマップ121のアドレスに、有効なアドレスが設定されていれば、ビットマップ121が存在すると判断する。
ビットマップ121が存在する場合(ステップS1001:Yes)、CM201は、存在したビットマップ121のうちのオンに設定されたビットに対応するグループ112を特定する(ステップS1002)。
次に、CM201は、特定したグループ112の各LBAの読み出し結果から、不良セクタLBAリストを作成する(ステップS1003)。そして、CM201は、作成した不良セクタLBAリストを、装置管理用PC203に送信する(ステップS1004)。不良セクタLBAリストには、例えば、不良セクタとなったLBAの一覧が含まれる。また、例えば、CM201は、不良セクタLBAリストに基づいて、不良セクタLBAを表示するWebページを生成し、生成したWebページを装置管理用PC203に送信してもよい。装置管理用PC203は、受信した不良セクタLBAリストやWebページを、ディスプレイ407に表示する。
一方、ビットマップ121が存在しない場合(ステップS1001:No)、CM201は、「不良セクタなし」を示す情報を装置管理用PC203に送信する(ステップS1005)。ステップS1004と同様に、装置管理用PC203は、「不良セクタなし」を示す情報をディスプレイ407に表示する。ステップS1004またはステップS1005の処理終了後、CM201は、不良セクタ一覧参照処理を終了する。
図11は、ホスト装置202からの書き込み処理手順の一例を示すフローチャートである。ホスト装置202からの書き込み処理は、ホスト装置202から書き込み要求を受け付けた際に行う処理である。
CM201は、書き込み対象のボリュームのビットマップ121が存在するか否かを判断する(ステップS1101)。書き込み対象のボリュームのビットマップ121が存在する場合(ステップS1101:Yes)、CM201は、存在したビットマップ121を参照して、書き込むLBAの範囲を含むグループ112に対応するビットのうち、オンに設定されたビットがあるか否かを判断する(ステップS1102)。
オンに設定されたビットがある場合(ステップS1102:Yes)、CM201は、オンに設定されたビットに対応するグループ112を特定する(ステップS1103)。そして、CM201は、特定したグループ112の各LBAの読み出し結果から、不良セクタLBAリストを作成する(ステップS1104)。次に、CM201は、書き込み対象のボリュームに対して書き込み処理を実行する(ステップS1105)。そして、CM201は、ビットオフ制御処理を実行する(ステップS1106)。ビットオフ制御処理については、図12で説明する。
一方、書き込み対象のボリュームのビットマップが存在しない場合(ステップS1101:No)、または、オンに設定されたビットがない場合(ステップS1102:No)、CM201は、書き込み対象のボリュームに対して書き込み処理を実行する(ステップS1107)。ステップS1106またはステップS1107の処理終了後、CM201は、ホスト装置202からの書き込み処理を終了する。
なお、ホスト装置202からの読み出し処理について、CM201は、読み出し対象のボリュームからデータを読み出すだけであり、不良セクタ管理情報511やビットマップ121を用いることはないので、説明を省略する。
図12は、ビットオフ制御処理手順の一例を示すフローチャートである。ビットオフ制御処理は、ホスト装置202からの書き込み処理により、不良セクタを上書きできたLBAに対応するビットをオフにする処理である。
CM201は、全グループ112の中から、書き込むLBAの範囲を含むグループを抽出する(ステップS1201)。そして、CM201は、書き込むLBAの範囲を含むグループ112に対応するビット情報122のうち、未評価のビット情報を選択する(ステップS1202)。次に、CM201は、作成した不良セクタLBAリストの選択したビットに対応するグループ112のLBAの範囲と、書き込むLBAの範囲とを比較する(ステップS1203)。そして、CM201は、書き込むLBAの範囲が選択したビット情報122に対応するグループ112のLBAの範囲を全て包含するか否かを判断する(ステップS1204)。書き込むLBAの範囲が選択したビット情報122に対応するグループ112のLBAの範囲を全て包含する場合(ステップS1204:Yes)、CM201は、選択したビット情報122をオフに設定する(ステップS1205)。
ステップS1205の処理終了後、CM201は、書き込むLBAの範囲を含むグループ112に対応するビット情報122に未評価のビット情報122がないか否かを判断する(ステップS1206)。また、書き込むLBAの範囲が選択したビット情報122に対応するグループ112のLBAの範囲を包含しない場合(ステップS1204:No)も、CM201は、ステップS1206の処理を実行する。書き込むLBAの範囲を含むグループ112に対応するビット情報122に未評価のビット情報122がある場合(ステップS1206:No)、CM201は、ステップS1202の処理に移行する。
一方、書き込むLBAの範囲を含むグループ112に対応するビット情報122に未評価のビットがない場合(ステップS1206:Yes)、CM201は、書き込み対象のボリュームのビットマップ121の各ビット情報122が全てオフか否かを判断する(ステップS1207)。書き込み対象のボリュームのビットマップ121の各ビット情報122が全てオフである場合(ステップS1207:Yes)、CM201は、書き込み対象のボリュームのビットマップ121を解放する(ステップS1208)。
ステップS1208の処理終了後、書き込み対象のボリュームのビットマップ121の各ビット情報122のうちオンのビット情報122がある場合(ステップS1207:No)、CM201は、ビットオフ制御処理を終了する。
また、ビットオフ制御処理は、図12で示した処理に限られない。例えば、CM201は、図12で示すフローチャートの代わりに、作成した不良セクタLBAリストの全てのLBAが、書き込むLBAの範囲に含まれていれば、作成した不良セクタLBAリストの全てのLBAに対応するビット情報122をオフにしてもよい。そして、ビットをオフにした結果、ビットマップ121の各ビットが全てオフとなった場合、CM201は、該当のビットマップ121を解放する。この処理は、図12で示したフローチャートに比べて簡素であるため、図12で示したフローチャートに比べてCM201にかかる負荷を抑制することができる。
以上説明したように、CM201は、グループ112毎に不良セクタを含むか否かを示すビットから不良セクタを含むグループ112を特定し、特定したグループ112を読み出して不良セクタを特定する。これにより、CM201は、不良セクタを特定するために用いる不良セクタ情報510のデータサイズについて、1グループにつき1ビットで済み、不良セクタ情報510のデータサイズを抑えることができる。従って、CM201は、ボリュームに存在する不良セクタを、キャッシュメモリ303の容量を抑えつつ、理論上の最大数までLBA単位で管理することができる。
また、CM201は、ボリュームのいずれかのセクタからエラーが発生した場合、いずれかのセクタを含むグループ112に対応するビット情報122を、オンに設定する。これにより、不良セクタ情報510のデータサイズを抑えた状態でも、CM201は、オンに設定されたビット情報122に対応するグループ112から不良セクタを特定すればよく、不良セクタの一覧を正しく提供することができる。
また、CM201は、書き込み要求の書き込みの範囲に含まれ、かつ、オンに設定されたビット情報122が、特定した不良セクタが書き込みの範囲にあると判定したグループ112に対応するビット情報122を、オフに設定する。これにより、CM201は、上書きにより不良セクタが消去された場合でも、CM201は、不良セクタ情報510が示す不良セクタの有無と、ボリュームに含まれる不良セクタの有無とを一致させることができる。
また、CM201は、書き込み要求の書き込みの範囲に含まれ、かつ、オンに設定されたビット情報122に対応するグループ112のうち、特定した不良セクタが書き込みの範囲にあると判定したグループ112に対応するビット情報122を、オフに設定する。このように、上書きにより不良セクタが複数消去された場合でも、CM201は、複数の不良セクタの各不良セクタに対応する各グループ112で、ビット情報の値を設定する。これにより、CM201は、上書きにより不良セクタが複数消去された場合でも、不良セクタ情報510が示す不良セクタの有無と、ボリュームに含まれる不良セクタの有無とを一致させることができる。
なお、本実施の形態で説明したストレージ制御方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本ストレージ制御プログラムは、ハードディスク、フレキシブルディスク、CD−ROM(Compact Disc−Read Only Memory)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本ストレージ制御プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)ストレージの記憶領域に論理的に割り当てられた複数の単位領域に対するアクセスを制御するストレージ制御装置において、
前記複数の単位領域をグループ化した各グループのビット情報であって、エラーが発生したエラー領域が含まれるか否かを示すビット情報を記憶するビット情報記憶部と、
前記ビット情報記憶部に記憶された各グループのビット情報を参照して、エラー領域が含まれるグループを特定し、特定した前記グループに含まれる複数の単位領域におけるデータの読み出し結果に基づいて、前記グループにおけるエラー領域を特定する制御部と、
を有することを特徴とするストレージ制御装置。
(付記2)前記制御部は、
いずれかの単位領域においてエラーが発生した場合、前記いずれかの単位領域を含むグループに対応するビット情報を、当該グループにエラー領域が含まれることを示す値に設定する、
ことを特徴とする付記1に記載のストレージ制御装置。
(付記3)前記制御部は、
前記記憶領域に対する書き込み要求を受け付けた場合、特定した前記単位領域が前記書き込み要求の書き込みの範囲に含まれるか否かを判定し、
特定した前記単位領域が前記書き込みの範囲に含まれると判定した場合、特定した前記単位領域を含むグループに対応するビット情報を、当該グループにエラー領域が含まれないことを示す値に設定する、
ことを特徴とする付記1または2に記載のストレージ制御装置。
(付記4)前記制御部は、
前記記憶領域に対する書き込み要求を受け付けた場合、前記書き込み要求の書き込みの範囲に含まれる単位領域を含むグループのうち、エラー領域が含まれることを示す値に設定されたビット情報に対応するグループを抽出し、
抽出した前記グループに対応して、前記グループに含まれる単位領域であってエラー領域が、前記書き込みの範囲に含まれるか否かを判定し、
抽出した前記グループに含まれる当該単位領域が前記書き込みの範囲に含まれると判定したグループがある場合、当該グループに対応するビットを、当該グループにエラー領域が含まれないことを示す値に設定する、
ことを特徴とする付記1または2に記載のストレージ制御装置。
(付記5)前記エラー領域は、前記ストレージの記憶装置における最小のアクセス単位の記憶容量を有する領域で管理されることを特徴とする付記1〜4のいずれか一つに記載のストレージ制御装置。
(付記6)前記ストレージは、RAIDで構成された記憶装置のグループを含むことを特徴とする付記1〜5のいずれか一つに記載のストレージ制御装置。
(付記7)コンピュータが、
ストレージの記憶領域に論理的に割り当てられた複数の単位領域をグループ化し、グループ毎に、エラーが発生したエラー領域が含まれるか否かを示すビット情報を管理し、
各グループのビット情報を参照して、前記記憶領域からエラー領域が含まれるグループを特定し、
特定した前記グループに含まれる単位領域におけるデータの読み出し結果に基づいて、前記グループにおけるエラー領域を特定する、
処理を実行することを特徴とするストレージ制御方法。
(付記8)コンピュータに、
ストレージの記憶領域に論理的に割り当てられた複数の単位領域をグループ化し、グループ毎に、エラーが発生したエラー領域が含まれるか否かを示すビット情報を管理し、
各グループのビット情報を参照して、前記記憶領域からエラー領域が含まれるグループを特定し、
特定した前記グループに含まれる単位領域におけるデータの読み出し結果に基づいて、前記グループにおけるエラー領域を特定する、
処理を実行させることを特徴とするストレージ制御プログラム。
101 ストレージ制御装置
102 記憶装置
111 ボリューム
120 ビット情報記憶部
112 グループ
121 ビットマップ
122 ビット情報
201 CM
211 ディスク
500 制御部
501 第1特定部
502 第2特定部
503 抽出部
504 判定部
505 設定部
510 不良セクタ情報

Claims (7)

  1. ストレージの記憶領域に論理的に割り当てられた複数のLBAに対するアクセスを制御するストレージ制御装置において、
    前記複数のLBAをグループ化した各グループのビット情報であって、エラーが発生したエラー領域が含まれるか否かを示すビット情報を記憶するビット情報記憶部と、
    データの読み出し時にいずれかのLBAにおいてエラーが発生した場合、前記いずれかのLBAに対応するセクタ内に不良セクタであることを示すフラグ情報を書き込み、前記ビット情報記憶部に記憶された前記いずれかのLBAを含むグループに対応するビット情報を、当該グループにエラー領域が含まれることを示す値に設定し、
    前記ビット情報記憶部に記憶された各グループのビット情報を参照して、エラー領域が含まれるグループを特定し、特定した前記グループに含まれる複数のLBAにおけるデータの読み出し結果に基づいて、前記不良セクタであることを示すフラグ情報が書き込まれたセクタを、前記グループにおけるエラー領域として特定する制御部と、
    を有することを特徴とするストレージ制御装置。
  2. 前記制御部は、
    前記記憶領域に対する書き込み要求を受け付けた場合、特定した前記エラー領域が前記書き込み要求の書き込みの範囲に含まれるか否かを判定し、
    特定した前記エラー領域が前記書き込みの範囲に含まれると判定した場合、特定した前記エラー領域を含むグループに対応するビット情報を、当該グループにエラー領域が含まれないことを示す値に設定する、
    ことを特徴とする請求項1に記載のストレージ制御装置。
  3. 前記制御部は、
    前記記憶領域に対する書き込み要求を受け付けた場合、前記書き込み要求の書き込みの範囲に含まれるLBAを含むグループのうち、エラー領域が含まれることを示す値に設定されたビット情報に対応するグループを抽出し、
    抽出した前記グループ毎に、前記グループに含まれるエラー領域が、前記書き込みの範囲に含まれるか否かを判定し、
    前記書き込みの範囲にエラー領域が含まれると判定したグループがある場合、当該グループに対応するビットを、当該グループにエラー領域が含まれないことを示す値に設定する、
    ことを特徴とする請求項1に記載のストレージ制御装置。
  4. 前記制御部は、
    不良セクタ一覧の送信要求を受け付けたことに応じて、前記ビット情報記憶部に記憶された各グループのビット情報を参照して、エラー領域が含まれるグループを特定し、
    特定した前記グループに含まれる複数のLBAにおけるデータの読み出し結果に基づいて、前記不良セクタであることを示すフラグ情報が書き込まれたセクタを特定し、
    特定した前記セクタに対応するLBAを含む不良セクタ一覧を、前記送信要求の要求元に送信する、
    ことを特徴とする請求項1に記載のストレージ制御装置。
  5. コンピュータが、
    ストレージの記憶領域に論理的に割り当てられた複数のLBAをグループ化し、グループ毎に、エラーが発生したエラー領域が含まれるか否かを示すビット情報を管理し、
    データの読み出し時にいずれかのLBAにおいてエラーが発生した場合、前記いずれかのLBAに対応するセクタ内に不良セクタであることを示すフラグ情報を書き込み、前記いずれかのLBAを含むグループに対応するビット情報を、当該グループにエラー領域が含まれることを示す値に設定し、
    各グループのビット情報を参照して、前記記憶領域からエラー領域が含まれるグループを特定し、
    特定した前記グループに含まれるLBAにおけるデータの読み出し結果に基づいて、前記不良セクタであることを示すフラグ情報が書き込まれたセクタを、前記グループにおけるエラー領域として特定する、
    処理を実行することを特徴とするストレージ制御方法。
  6. コンピュータに、
    ストレージの記憶領域に論理的に割り当てられた複数のLBAをグループ化し、グループ毎に、エラーが発生したエラー領域が含まれるか否かを示すビット情報を管理し、
    データの読み出し時にいずれかのLBAにおいてエラーが発生した場合、前記いずれかのLBAに対応するセクタ内に不良セクタであることを示すフラグ情報を書き込み、前記いずれかのLBAを含むグループに対応するビット情報を、当該グループにエラー領域が含まれることを示す値に設定し、
    各グループのビット情報を参照して、前記記憶領域からエラー領域が含まれるグループを特定し、
    特定した前記グループに含まれるLBAにおけるデータの読み出し結果に基づいて、前記不良セクタであることを示すフラグ情報が書き込まれたセクタを、前記グループにおけるエラー領域として特定する、
    処理を実行させることを特徴とするストレージ制御プログラム。
  7. 不良セクタ一覧の送信要求を受け付けたことに応じて、各グループのビット情報を参照して、エラー領域が含まれるグループを特定し、
    特定した前記グループに含まれる複数のLBAにおけるデータの読み出し結果に基づいて、前記不良セクタであることを示すフラグ情報が書き込まれたセクタを特定し、
    特定した前記セクタに対応するLBAを含む不良セクタ一覧を、前記送信要求の要求元に送信する、
    処理を前記コンピュータに実行させることを特徴とする請求項6に記載のストレージ制御プログラム。
JP2016046200A 2016-03-09 2016-03-09 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム Active JP6693181B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016046200A JP6693181B2 (ja) 2016-03-09 2016-03-09 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
US15/395,890 US10366724B2 (en) 2016-03-09 2016-12-30 Storage control device, storage system and method of controlling a storage device

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016046200A JP6693181B2 (ja) 2016-03-09 2016-03-09 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム

Publications (2)

Publication Number Publication Date
JP2017162202A JP2017162202A (ja) 2017-09-14
JP6693181B2 true JP6693181B2 (ja) 2020-05-13

Family

ID=59787024

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016046200A Active JP6693181B2 (ja) 2016-03-09 2016-03-09 ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム

Country Status (2)

Country Link
US (1) US10366724B2 (ja)
JP (1) JP6693181B2 (ja)

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH01231122A (ja) * 1988-03-11 1989-09-14 Hitachi Ltd データ記憶装置
US5235585A (en) * 1991-09-11 1993-08-10 International Business Machines Reassigning defective sectors on a disk
US5666336A (en) * 1992-02-27 1997-09-09 Kabushiki Kaisha Toshiba Reproduction apparatus for reproducing first and second data regions on a CD-ROM
US5574882A (en) * 1995-03-03 1996-11-12 International Business Machines Corporation System and method for identifying inconsistent parity in an array of storage
JP2848809B2 (ja) 1996-03-25 1999-01-20 株式会社東芝 交替処理方法
JPH11224166A (ja) * 1998-02-05 1999-08-17 Toshiba Corp ログ書き込み方式のディスク記憶装置に於ける記憶領域の障害回避方法、及びディスク記憶装置、同装置に用いられるコンピュータ読込み可能な記憶媒体
US6421284B1 (en) * 2000-05-26 2002-07-16 Hitachi, Limited Semiconductor device
US7155559B1 (en) * 2000-08-25 2006-12-26 Lexar Media, Inc. Flash memory architecture with separate storage of overhead and user data
JP2004013276A (ja) * 2002-06-04 2004-01-15 Victor Co Of Japan Ltd ファイルシステム及び記録媒体
JP2006519444A (ja) * 2003-03-04 2006-08-24 深▲せん▼市朗科科技有限公司 フラッシュメモリーのデータ管理方法
SG151111A1 (en) * 2003-03-08 2009-04-30 Samsung Electronics Co Ltd An apparatus for reproducing and/or recording from and/or to a recording medium
US7523257B2 (en) * 2003-08-27 2009-04-21 Adaptec, Inc. Method of managing raid level bad blocks in a networked storage system
JP4143040B2 (ja) * 2004-03-31 2008-09-03 東芝ソリューション株式会社 ディスクアレイ制御装置、同装置に適用されるデータ欠損検出時の処理方法及びプログラム
JP4946102B2 (ja) 2006-03-10 2012-06-06 ソニー株式会社 不揮発性メモリシステムおよび不揮発性メモリの管理方法
JP2009098996A (ja) * 2007-10-18 2009-05-07 Hitachi Ltd ストレージシステム
JP2009187139A (ja) * 2008-02-04 2009-08-20 Hitachi Ltd ストレージシステム
JP5373382B2 (ja) 2008-12-22 2013-12-18 株式会社メガチップス メモリシステムおよびコンピュータシステム
US8605527B2 (en) * 2011-07-20 2013-12-10 Taiwan Semiconductor Manufacturing Company, Ltd. Mechanisms for built-in self test and repair for memory devices

Also Published As

Publication number Publication date
US10366724B2 (en) 2019-07-30
US20170263284A1 (en) 2017-09-14
JP2017162202A (ja) 2017-09-14

Similar Documents

Publication Publication Date Title
US10606491B2 (en) Providing redundancy in a virtualized storage system for a computer system
US9081690B2 (en) Storage system and management method of control information therein
US7831764B2 (en) Storage system having plural flash memory drives and method for controlling data storage
US6898668B2 (en) System and method for reorganizing data in a raid storage system
US20180173632A1 (en) Storage device and method for controlling storage device
JP5914305B2 (ja) データ位置の管理方法および装置
EP2942713B1 (en) Storage system and storage apparatus
US9778986B2 (en) Storage system
KR20150105323A (ko) 데이터 스토리지 방법 및 시스템
US10564865B2 (en) Lockless parity management in a distributed data storage system
US20110202722A1 (en) Mass Storage System and Method of Operating Thereof
US10579540B2 (en) Raid data migration through stripe swapping
CN111124262A (zh) 独立盘冗余阵列(raid)的管理方法、设备和计算机可读介质
WO2015075837A1 (ja) ストレージ装置及びその制御方法
WO2018142622A1 (ja) 計算機
CN110737395B (zh) I/o管理方法、电子设备和计算机可读存储介质
JP6693181B2 (ja) ストレージ制御装置、ストレージ制御方法、およびストレージ制御プログラム
JP2015064685A (ja) ストレージ管理システム、ストレージ管理方法、プログラム、および、情報処理システム
CN117234430B (zh) 一种缓存框架、数据处理方法、装置、设备和存储介质
WO2015118680A1 (ja) ストレージ装置
US20190205044A1 (en) Device for restoring lost data due to failure of storage drive
WO2018051446A1 (ja) オプショナルなデータ処理機能を有するストレージシステムを含んだ計算機システム、および、記憶制御方法
KR20110089972A (ko) 메모리 장치

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20181112

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190820

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191018

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200330

R150 Certificate of patent or registration of utility model

Ref document number: 6693181

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150