(57)【要約】  ストレージシステムにおいて、プロセッサが、記憶デバイス内の物理的な記憶領域を構成する複数の区画を正区画と副区画とに分け、１の正区画と１の副区画とを対応付けて管理し、正区画にライトしたデータを、その正区画に対応する副区画にもライトする。
2016001962.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサと、記憶デバイスとを備え、
前記プロセッサは、
前記記憶デバイス内の物理的な記憶領域を構成する複数の区画を正区画と副区画とに分け、１の正区画と１の副区画とを対応付けて管理し、
正区画にライトしたデータを、前記正区画に対応する副区画にもライトする
ストレージシステム。
【請求項２】
前記プロセッサは、
前記記憶デバイス内の全体の物理的な記憶領域の一部の記憶領域を、正区画と副区画とに分けて管理する
請求項１に記載のストレージシステム。
【請求項３】
前記プロセッサは、
前記一部の記憶領域に、当該ストレージシステムの構成に関する情報である構成情報を格納し、それ以外の記憶領域に、リード及びライトの処理で用いられるキャッシュデータを格納する
請求項２に記載のストレージシステム。
【請求項４】
前記記憶デバイスは、複数のフラッシュメモリから構成されるＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である
請求項３に記載のストレージシステム。
【請求項５】
前記プロセッサは、
リード先の第１の正区画が不良であった場合、前記第１の正区画に対応する第１の副区画からデータをリードし、そのリードしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第１の正区画を、前記第１の正区画に代えて前記第１の副区画と対応付ける
請求項１に記載のストレージシステム。
【請求項６】
前記プロセッサは、
前記新たな第１の正区画からデータをリードし、そのリードしたデータと、前記第１の副区画からリードしたデータとが一致するか否かを判定する
請求項５に記載のストレージシステム。
【請求項７】
前記プロセッサは、
ライト先の第２の正区画が不良であった場合、前記第２の正区画に対応する第２の副区画にデータをライトし、そのライトしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第２の正区画を、前記第２の正区画に代えて前記第２の副区画と対応付ける
請求項１に記載のストレージシステム。
【請求項８】
前記プロセッサは、
ライト先の第３の正区画が不良であった場合、前記第３の正区画に対応する第３の副区画からデータをリードし、そのリードしたデータにライト対象のデータをオーバーライトした合成データを生成し、その合成データを、ライト可能な空き区画にライトし、その合成データのライトされた空き区画である新たな第３の正区画を、前記第３の正区画に代えて前記第３の副区画と対応付ける
請求項１に記載のストレージシステム。
【請求項９】
前記プロセッサは、
前記複数の副区画の各々の不良を検査し、第４の副区画が不良であった場合、前記第４の副区画に対応する第４の正区画からデータをリードし、そのリードしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第４の副区画を、前記第４の副区画に代えて前記第４の正区画と対応付ける
請求項１に記載のストレージシステム。
【請求項１０】
コントローラと、ユニットとを有し、
前記コントローラには、コントローラＩＤが付与され、前記プロセッサと、着脱可能な前記記憶デバイスとが備えられ、
前記ユニットには、ユニットＩＤが付与され、着脱可能な前記コントローラが備えられ、
前記プロセッサは、
前記記憶デバイスに格納されているコントローラＩＤと、自分のプロセッサが属するコントローラに付与されているコントローラＩＤとが一致せず、且つ、前記記憶デバイスに格納されているユニットＩＤと、自分のプロセッサが属するユニットに付与されているユニットＩＤとが一致しない場合、前記記憶デバイス内の前記一部の記憶領域に格納されている前記構成情報の使用を許可しない
請求項３に記載のストレージシステム。
【請求項１１】
前記プロセッサは、
前記記憶デバイスに格納されているコントローラＩＤと、自分のプロセッサが属するコントローラに付与されているコントローラＩＤとが一致するか、又は、前記記憶デバイスに格納されているユニットＩＤと、自分のプロセッサが属するユニットに付与されているユニットＩＤとが一致する場合、前記記憶デバイス内の前記一部の記憶領域に格納されている前記構成情報の使用を許可する
請求項１０に記載のストレージシステム。
【請求項１２】
前記プロセッサは、
前記構成情報の使用を許可しないとした場合、自分のプロセッサが属するコントローラに付与されているコントローラＩＤと、自分のプロセッサが属するユニットに付与されているユニットＩＤとを、前記記憶デバイスに格納する
請求項１０に記載のストレージシステム。
【請求項１３】
ストレージシステムに備えられているプロセッサと、記憶デバイスとにおいて、
前記記憶デバイス内の物理的な記憶領域を構成する複数の区画を正区画と副区画とに分け、１の正区画と１の副区画とを対応付けて管理し、
正区画にライトしたデータを、前記正区画に対応する副区画にもライトする
記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、概して、記憶制御に関し、例えば、ストレージコントローラの技術に関する。
【背景技術】
【０００２】
従来、ストレージシステムに関する構成情報及びコンピュータプログラム等（以下「構成情報等」という）は、ストレージコントローラ（以下「コントローラ」という）の備えるフラッシュメモリに格納されていた。しかし、ストレージシステムの大容量化及び高性能化に伴い、構成情報等の量が増大し、構成情報等をフラッシュメモリに格納しきれなくなってきた。そこで、フラッシュメモリに代えて、コントローラがキャッシュデータの格納用に備えるＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）（「キャッシュ用ＳＳＤ」という）に構成情報等を格納することが検討されている（特許文献１、２）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００３−１６２３７７号公報
【特許文献２】特開２００８−１６５５７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかし、構成情報等の格納先となるＳＳＤは、或るページが、その性質上、リード及びライトが不可能となってしまう「不良ページ」の発生する確率が高い。また、ＳＳＤがコントローラから着脱可能であり、さらに、そのコントローラがストレージシステムから着脱可能な構成においては、或るストレージシステムに、他のストレージシステムの構成情報等を有するＳＳＤが、誤って装着されてしまうおそれがある。【０００５】
そこで、本発明の目的は、不良ページの発生しやすいＳＳＤのような記憶デバイス内に、信頼性の高い記憶領域を設けることにある。また、本発明の別の目的は、着脱可能な記憶デバイスに構成情報等を格納するような構成において、誤って他のストレージシステムの構成情報等が使用されることを防止することにある。
【課題を解決するための手段】
【０００６】
一実施例に係るストレージシステムは、プロセッサと、記憶デバイスとを備え、プロセッサは、記憶デバイス内の物理的な記憶領域を構成する複数の区画を正区画と副区画とに分け、１の正区画と１の副区画とを対応付けて管理し、正区画にライトしたデータを、その正区画に対応する副区画にもライトする。
【発明の効果】
【０００７】
本発明によれば、不良ページの発生しやすいＳＳＤのような記憶デバイス内に、信頼性の高い記憶領域を設けることができる。また、本発明によれば、着脱可能な記憶デバイスに構成情報等を格納する構成において、誤って他のストレージシステムの構成情報等が使用されることを防止することができる。
【図面の簡単な説明】
【０００８】
【図１】実施例１に係るストレージシステムの構成例を示す。
【図２】キャッシュ用ＳＳＤに対するリード処理時に不良ページを検知した場合の処理概要を示す。
【図３】キャッシュ用ＳＳＤに対するライト処理時に不良ページを検知した場合の処理概要を示す。
【図４】データが格納済みのページに新たなデータをオーバーライトする処理概要を示す。
【図５】キャッシュ用ＳＳＤに対するリード処理の一例のフローチャートを示す。
【図６】キャッシュ用ＳＳＤ２３に対するライト処理の一例のフローチャートを示す。
【図７】副ページの検査処理の一例のフローチャートを示す
【図８】実施例２に係るストレージシステムのコントローラユニットの構成例を示す。
【図９】交換パターンの一例のテーブルを示す。
【図１０】リストア処理の一例のフローチャートを示す。
【発明を実施するための形態】
【０００９】
以下、一実施例を説明する。
以下の説明では、「ｘｘｘテーブル」の表現にて情報を説明することがあるが、情報は、どのようなデータ構造で表現されていてもよい。すなわち、情報がデータ構造に依存しないことを示すために、「ｘｘｘテーブル」を「ｘｘｘ情報」と呼ぶことができる。
また、以下の説明では、コンピュータプログラムは、プロセッサ（例えばＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ））によって実行されることで、定められた処理を、適宜に記憶資源（例えばメモリ）及び通信インターフェイスデバイスのうちの少なくとも１つを用いながら行うため、処理の主語が、プロセッサ、そのプロセッサを有する装置とされてもよい。プロセッサが行う処理の一部又は全部が、ハードウェア回路で行われてもよい。コンピュータプログラムは、プログラムソースからインストールされてよい。プログラムソースは、プログラム配布サーバ又は記憶メディア（例えば可搬型の記憶メディア）であってもよい。
【実施例１】
【００１０】
図１は、実施例１に係るストレージシステムの構成例を示す。【００１１】
ストレージシステム１には、通信ネットワーク３を通じて、ホストコンピュータ２が接続されている。ストレージシステム１は、ホストコンピュータ２に対して、データの記憶領域としての論理ボリュームを提供する。ストレージシステム１は、ホストコンピュータ２から送信されたライト要求に従ってデータを格納する。ストレージシステム１は、ホストコンピュータ２から送信されたリード要求に従って所望のデータをホストコンピュータ２に送信する。通信ネットワーク３の一例としては、ＳＡＮ（Ｓｔｏｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）及びインターネット網などがある。【００１２】
ストレージシステム１は、１又は２以上のコントローラ２０を備えるコントローラユニット１０と、スイッチ３１及び複数の記憶デバイス３２を備えるドライブユニット１１とを有する。【００１３】
ドライブユニット１１において、複数の記憶デバイス３２がスイッチ３１に接続されている。記憶デバイス３２の一例としては、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）又はＳＳＤなどがある。【００１４】
コントローラ２０は、記憶デバイス３２の記憶領域を制御する。コントローラ２０は、ホストコンピュータ２から送信されたライト要求に従って記憶デバイス３２の記憶領域にデータをライトしたり、ホストコンピュータ２から送信されたリード要求に従って記憶デバイス３２の記憶領域から所望のデータをリードしたりする。コントローラ２０は、プロセッサ２１と、メインメモリ２２と、キャッシュ用ＳＳＤ２３と、通信Ｉ／Ｆ（Ｉｎｔｅｒｆａｃｅ）２４と、ドライブＩ／Ｆ２５とを有し、これらの要素２１〜２５は双方向にデータ通信可能な内部バス２６で接続されている。【００１５】
プロセッサ２１は、メインメモリ２２内のコンピュータプログラムを実行し、ストレージシステム１（コントローラ２０）が提供する機能を実現する。【００１６】
メインメモリ２２は、プロセッサ２１、通信Ｉ／Ｆ２４及びドライブＩ／Ｆ２５等から使用されるコンピュータプログラム及びデータ等を保持する。メインメモリ２２の一例としては、ＤＲＡＭ（Ｄｙｎａｍｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）、ＭＲＡＭ（ｍａｇｎｅｔｏｒｅｓｉｓｔｉｖｅ  ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ）又はＦｅＲＡＭ（Ｆｅｒｒｏｅｌｅｃｔｒｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）などがある。【００１７】
通信Ｉ／Ｆ２４は、コントローラ２０を通信ネットワーク３に接続するためのＩ／Ｆである。すなわち、コントローラ２０は、通信Ｉ／Ｆ２４を通じて、ホストコンピュータ２とデータをやり取りする。例えば、通信ネットワーク３がＳＡＮで構成されており、内部バス２６がＰＣＩｅ（ＰＣＩ  Ｅｘｐｒｅｓｓ）で構成されている場合、通信Ｉ／Ｆ２４は、ＦｉｂｒｅＣｈａｎｎｅｌプロトコルとＰＣＩｅプロトコルとを変換するアダプタの機能を有してもよい。【００１８】
ドライブＩ／Ｆ２５は、ドライブユニット１１をコントローラ２０に接続するためのＩ／Ｆである。すなわち、コントローラ２０は、ドライブＩ／Ｆ２５を通じて記憶デバイス３２とデータをやり取りする。【００１９】
キャッシュ用ＳＳＤ２３には、キャッシュデータが格納される。コントローラ２０は、ホストコンピュータ２に対する応答性能を高めるために、リード要求及びライト要求に係るデータを、キャッシュデータとして、キャッシュ用ＳＳＤ２３に格納する。【００２０】
また、キャッシュ用ＳＳＤ２３には、従来フラッシュメモリに格納されていたコンピュータプログラム及び構成情報等（まとめて「構成情報等」という）も格納される。構成情報とは、ストレージシステム１の構成に関する情報である。例えば、構成情報は、複数の記憶デバイス３２に基づくＲＡＩＤグループの構成を表す情報である。例えば、構成情報は、論理ボリュームアドレスと物理ボリュームアドレスとを対応付ける情報である。【００２１】
キャッシュ用ＳＳＤ２３は、例えば、複数のＮＡＮＤ型フラッシュメモリチップによって構成されたＳＳＤである。ＳＳＤの物理的な記憶領域は、複数のブロックで構成されており、各ブロックは複数のページで構成されている。そして、ＳＳＤは、ページ単位でデータをライトする必要があり、ブロック単位でデータを消去する必要がある。また、ＳＳＤは、その性質上、ＨＤＤと比較して、不良ページが発生する確率が高い。不良ページとは、例えば、所定回数以上の何らかの又は所定種類のエラーが生じたページであってよい。所定種類のエラーとは、例えば、読み出したデータに訂正可能な又は不可能なデータ化けが生じたエラーであってよい。【００２２】
ＳＳＤには、高機能のＳＳＤと低機能のＳＳＤとがある。高機能のＳＳＤは、一般に、論理空間を提供し論理空間におけるアクセス先の論理領域に物理ページを割り当てたり、不良の物理ページを管理し不良の物理ページを論理領域に割り当てないようにしたりできる。低機能のＳＳＤは、単純に複数の物理ページを提供し、論理空間の提供や不良の物理ページの管理を行わない。低機能のＳＳＤは、高機能のＳＳＤと比較してコストが安いというメリットがある。本実施例におけるキャッシュ用ＳＳＤ２３は、この低機能のＳＳＤであってよい。【００２３】
キャッシュ用ＳＳＤ２３が有する物理的な記憶領域を構成する複数のページは、正ページの領域（「正面」といってもよい）と、副ページの領域（「副面」といってもよい）とに分けられる。そして、１の正ページと１の副ページとが対応付けられる。例えば、その記憶領域がページ番号「１」から「２０００」までのページで構成されている場合、ページ番号「１」〜「１０００」までが正ページの領域に、ページ番号「１００１」〜「２０００」までが副ページの領域に分けられてよい。そして、ページ番号「１」の正ページと、ページ番号「１００１」の副ページとが対応付けられる。同様に、ページ番号「２」の正ページと、ページ番号「１００２」の副ページとが対応付けられる。そして、対応関係を有する正ページ及び副ページには、同一のデータが格納される。これにより、一方のページに不良が発生しリード不可となったとしても、そのページに対応する他方のページからデータをリードできる。【００２４】
キャッシュ用ＳＳＤ２３が有する物理的な記憶領域の一部の記憶領域のみを、正ページの領域と副ページの領域とに分けてよい。そして、正ページの領域と副ページの領域とに分けた一部の記憶領域には、例えば、構成情報等の重要なデータのみが格納されるとしてもよい。そして、それ以外の記憶領域に、リード及びライトに係るキャッシュデータが格納されるとしてもよい。なぜなら、構成情報等はキャッシュ用ＳＳＤ２３から消えてしまうと、ストレージシステム１の信頼性及び可用性の低下に繋がってしまう。しかし、キャッシュデータはキャッシュ用ＳＳＤ２３から消えたとしても、再度ＲＡＩＤから読めば良いからである。また、正ページと副ページとに分けて管理する記憶領域を小さくすることにより、後述の図７に示す「副ページ検査処理」に要する時間を短くすることができる。【００２５】
図２は、キャッシュ用ＳＳＤ２３に対するリード処理時に不良ページを検知した場合のプロセッサ２１の処理概要を示す。【００２６】
プロセッサ２１は、コンピュータプログラムの一種として、カーネル１０１と、上位ジョブ１０２と、ＳＳＤドライバ１０３と、検査部１０４とを実行することができる。カーネル１０１は、コントローラ２０の動作の基本的な機能（Ｉ／Ｏ機能、リソース制御機能など）を有する。上位ジョブ１０２は、カーネル１０１から受けた指示に基づき、ＳＳＤドライバ１０３を制御する機能を有する。【００２７】
ＳＳＤドライバ１０３は、キャッシュ用ＳＳＤ２３を制御する機能を有する。例えば、ＳＳＤドライバ１０３は、キャッシュ用ＳＳＤ２３にデータをライトしたり、キャッシュ用ＳＳＤ２３からデータをリードする機能を有する。また、ＳＳＤドライバ１０３は、後述するように、不良ページに代えて、空きページを割り当てる機能を有する。空きページとは、データが消去されおり、新たなデータをライト可能なページである。キャッシュ用ＳＳＤ２３には割り当て用の空きページが予め確保されており、ＳＳＤドライバ１０３は、その確保されている何れかの空きページを割り当てるとしてもよい。又は、ＳＳＤドライバ１０３は、割り当ての時点における何れかの空きページを割り当てるとしてもよい。【００２８】
検査部１０４は、キャッシュ用ＳＳＤ２３における正ページ及び副ページについて、不良の有無を検査する機能を有する。検査部１０４の詳細については後述する（図７参照）。【００２９】
次に、図２を参照しながら、ＳＳＤドライバ１０３が、ページ番号「３」の正ページ３００ａからデータをリードする処理について説明する。【００３０】
（Ｓ１１）上位ジョブ１０２からリードコマンドを受けたＳＳＤドライバ１０３は、ページ番号「３」の正ページ３００ａに対してデータのリードを行う。ここで、正ページ３００ａが不良でデータがリードできなかった場合、ＳＳＤドライバ１０３は、次の処理を行う。
（Ｓ１２）ＳＳＤドライバ１０３は、ページ番号「３」に、不良な正ページ３００ａに代えて、予備ページ３００ｃを割り当てる。つまり、この予備ページ３００ｃが、ページ番号「３」の新しい正ページとなる。
（Ｓ１３）ＳＳＤドライバ１０３は、ページ番号「３」に対応する（例えば、ページ番号「１００３」の）副ページ３００ｂからデータ「Ｃ」をリードし、メインメモリ２２に格納する。
（Ｓ１４）ＳＳＤドライバ１０３は、ページ番号「３」の新たな正ページ３００ｃに、メインメモリ２２のデータ「Ｃ」をライトする。
（Ｓ１５）ＳＳＤドライバ１０３は、メインメモリ２２のデータ「Ｃ」を、リードコマンドの応答として上位ジョブ１０２へ返す。【００３１】
なお、上記の処理において、ＳＳＤドライバ１０３は、Ｓ１２の前に、Ｓ１３及びＳ１５を実行してもよい。上位ジョブ１０２に対する応答性能を高めるためである。また、ＳＳＤドライバ１０３は、Ｓ１３及びＳ１５の処理と、Ｓ１２及びＳ１４の処理とを並列に実行してもよい。【００３２】
以上の処理により、正ページが不良であったとしても、ＳＳＤドライバ１０３は、その正ページに対応する副ページからデータをリードし、上位ジョブ１０２へデータを返すことができる。すなわち、ＳＳＤドライバ１０３は、リード先の正ページが不良であったことを上位ジョブ１０２から隠蔽することができる。さらに、ＳＳＤドライバ１０３は、リード処理を通じて、不良ページを検知及び修復することができる。さらに、ＳＳＤドライバ１０３は、リード処理において不良ページを検知した際に、データの二重化も回復させることができる。【００３３】
図３は、キャッシュ用ＳＳＤ２３に対するライト処理時に不良ページを検知した場合のプロセッサ２１の処理概要を示す。【００３４】
ここでは、図３を参照しながら、ＳＳＤドライバ１０３が、ページ番号「３」の正ページ３０１ａにデータをライトする処理について説明する。【００３５】
（Ｓ２１）上位ジョブ１０２からライトコマンドを受けたＳＳＤドライバ１０３は、メインメモリ２２にデータ「Ｘ」を格納する。
（Ｓ２２）ＳＳＤドライバ１０３は、ページ番号「３」の正ページ３０１ａに対して、データ「Ｘ」のライトを行う。ここで、ページ番号「３」の正ページ３０１ａが不良でデータ「Ｘ」がライトできなかった場合、ＳＳＤドライバ１０３は、次の処理を行う。
（Ｓ２３）ＳＳＤドライバ１０３は、ページ番号「３」に、不良な正ページ３０１ａに代えて、予備ページ３０１ｃを割り当てる。つまり、この予備ページ３０１ｃが、ページ番号「３」の新しい正ページとなる。
（Ｓ２４）ＳＳＤドライバ１０３は、ページ番号「３」に対応する副ページ３０１ｂに、メインメモリ２２のデータ「Ｘ」をライトする。
（Ｓ２５）ＳＳＤドライバ１０３は、ページ番号「３」の新たな正ページ３００ｃに、メインメモリ２２のデータ「Ｘ」をライトし、上位ジョブ１０２に完了応答を返す。【００３６】
なお、上記の処理において、ＳＳＤドライバ１０３は、Ｓ２３〜Ｓ２４の前に、Ｓ２５を実行してもよい。上位ジョブ１０２に対する応答性能を高めるためである。また、ＳＳＤドライバ１０３は、Ｓ２３及びＳ２４の処理と、Ｓ２５の処理とを並列に実行してもよい。【００３７】
以上の処理により、正ページが不良であったとしても、ＳＳＤドライバ１０３は、その正ページに対応する副ページにデータをライトし、上位ジョブ１０２へ完了応答を返すことができる。すなわち、ＳＳＤドライバ１０３は、ライト先の正ページが不良であったことを上位ジョブ１０２から隠蔽することができる。さらに、ＳＳＤドライバ１０３は、ライト処理を通じて、不良ページを検知及び修復することができる。さらに、ＳＳＤドライバ１０３は、ライト処理において不良ページを検知した際に、データの二重化も回復させることができる。【００３８】
図４は、データが格納済みのページに新たなデータをオーバーライトする処理概要を示す。【００３９】
フラッシュメモリは、その特性上、データが格納済みのページに直接新しいデータをオーバーライトすることができない。また、ライト対象のデータのサイズが、ページのサイズよりも小さい場合もある。以下、このような場合の処理について説明する。【００４０】
（Ｓ３１）上位ジョブ１０２からライトコマンドを受けたＳＳＤドライバ１０３は、メインメモリ２２にデータ「Ｚ」を格納する。ここで、データ「Ｚ」のサイズは、ページのサイズよりも小さいとする。
（Ｓ３２）ＳＳＤドライバ１０３は、ページ番号「３」の正ページ３０２ａから、格納済みデータのリードを行う。ここで、ページ番号「３」の正ページ３０２ａが不良でデータをリードできなった場合、ＳＳＤドライバ１０３は、次の処理を行う。
（Ｓ３３）ＳＳＤドライバ１０３は、ページ番号「３」に、不良な正ページ３０２ａに代えて、予備ページ３０２ｃを割り当てる。つまり、この予備ページ３０２ｃが、ページ番号「３」の新しい正ページとなる。
（Ｓ３４）ＳＳＤドライバ１０３は、ページ番号「３」に対応する副ページ３０２ｂから格納済みデータをリードし、メインメモリ２２に格納する。
（Ｓ３５）ＳＳＤドライバ１０３は、副ページ３０２ｂからリードした格納済みデータにライト対象のデータ「Ｚ」をオーバーライトし、合成データ３１０を生成する。
（Ｓ３６）ＳＳＤドライバ１０３は、ページ番号「３」の新たな正ページ３０２ｃに、メインメモリ２２の合成データ３１０をライトする。
（Ｓ３７）また、ＳＳＤドライバ１０３は、ページ番号「３」の正ページに対応する例えばページ番号「１００３」に新たな副ページ３０２ｄを割り当て、その副ページ３０２ｄに、メインメモリ２２の合成データ３１０をライトする。【００４１】
以上の処理により、データを、正ページ及び副ページにオーバーライトすることができる。なお、空きページにデータをライトする場合に図４に示す処理を行っても良い。【００４２】
図５は、キャッシュ用ＳＳＤ２３に対するリード処理の一例のフローチャートを示す。この図５は、図２の処理の詳細に相当する。【００４３】
ＳＳＤドライバ１０３は、上位ジョブ１０２からリードコマンドを受けると、次の処理を行う。ＳＳＤドライバ１０３は、リードコマンドが指定するページ番号（「対象ページ番号」という）の正ページからデータのリードを行う（Ｓ１０１）。【００４４】
ここで、正ページが不良でなく（Ｓ１０２：ＮＯ）、正常にデータをリードできた場合、ＳＳＤドライバ１０３は、そのリードしたデータを上位ジョブ１０２に返し（Ｓ１０６）、処理を終了する（ＥＮＤ）。【００４５】
一方、正ページが不良であり（Ｓ１０２：ＹＥＳ）、正常にデータをリードできない場合、ＳＳＤドライバ１０３は、次の処理を行う。【００４６】
ＳＳＤドライバ１０３は、対象ページ番号に、不良な正ページに代えて、空きページを割り当てる（Ｓ１０３）。この新たに割り当てられた空きページを「新たな正ページ」という。【００４７】
ＳＳＤドライバ１０３は、正ページに対応する副ページからデータをリードする（Ｓ１０４）。ここで、副ページも不良であり（Ｓ１０５：ＹＥＳ）、正常にデータをリードできなかった場合、ＳＳＤドライバ１０３は、エラー通知を上位ジョブ１０２へ返して（Ｓ１２０）、処理を終了する（ＥＮＤ）。【００４８】
一方、副ページが不良でなく（Ｓ１０５：ＮＯ）、正常にデータをリードできた場合、ＳＳＤドライバ１０３は、その副ページからリードしたデータを、対象ページ番号の新たな正ページにライトする（Ｓ１０６）。ここで、ＳＳＤドライバ１０３は、新たな正ページに正しくデータがライトされたか否かを確認してもよい。例えば、ＳＳＤドライバ１０３は、新たな正ページからデータをリードし、そのリードしたデータが先ほどライトしたデータと一致する場合、データが正しくライトされたと判定してもよい。【００４９】
ＳＳＤドライバ１０３は、副ページからリードしたデータを、上位ジョブ１０２へ返し（Ｓ１０７）、処理を終了する（ＥＮＤ）。
る。【００５０】
図６は、キャッシュ用ＳＳＤ２３に対するライト処理の一例のフローチャートを示す。この図６は、図３の処理の詳細に相当する。【００５１】
ＳＳＤドライバ１０３は、上位ジョブ１０２からライトコマンド及びライト用のデータを受けると、次の処理を行う。ＳＳＤドライバ１０３は、ライトコマンドが指定するページ番号（「対象ページ番号」という）の正ページからデータのリードを行う（Ｓ２０１）。【００５２】
ここで、正ページが不良でなく（Ｓ２０２：ＮＯ）、正常にデータをリードできた場合、ＳＳＤドライバ１０３は、正ページからリードしたデータとライト対象のデータとを合成（オーバーライト）して合成データを生成する（Ｓ２１０）。そして、ＳＳＤドライバ１０３は、その合成データを、対象ページ番号に対応する新たな正ページ及び新たな副ページにライトし（Ｓ２１１）、処理を終了する（ＥＮＤ）。【００５３】
一方、正ページが不良であり（Ｓ２０２：ＹＥＳ）、正常にデータをリードできなかった場合、ＳＳＤドライバ１０３は、次の処理を行う。【００５４】
ＳＳＤドライバ１０３は、対象ページ番号に、不良な正ページに代えて、空きページを割り当てる（Ｓ２０３）。この新たに割り当てられた空きページを「新たな正ページ」という。【００５５】
ＳＳＤドライバ１０３は、正ページに対応する副ページからデータをリードする（Ｓ２０４）。ここで、副ページも不良であり（Ｓ２０５：ＹＥＳ）、正常にデータをリードできなかった場合、ＳＳＤドライバ１０３は、エラー通知を上位ジョブ１０２へ返して（Ｓ２２０）、処理を終了する（ＥＮＤ）。【００５６】
一方、副ページが不良でなく（Ｓ２０５：ＮＯ）、正常にデータをリードできた場合、ＳＳＤドライバ１０３は、その副ページからリードしたデータと、ライト対象のデータを合成して合成データを生成する（Ｓ２０６）。【００５７】
そして、ＳＳＤドライバ１０３は、その合成データを、対象ページ番号に対応する新たな正ページ及び新たな副ページにライトする（Ｓ２１１）。ここで、ＳＳＤドライバ１０３は、新たな正ページ及び新たな副ページに正しく合成データがライトされたことを確認してもよい。例えば、ＳＳＤドライバ１０３は、新たな正ページ及び新たな副ページから合成データをリードし、先ほどライトした合成データと一致した場合、正しく合成データがライトされたと判定してもよい。そして、ＳＳＤドライバ１０３は、処理を終了する（ＥＮＤ）。【００５８】
図７は、副ページの検査処理の一例のフローチャートを示す。【００５９】
検査部１０４は、副ページの不良の有無を検査するため、所定のタイミングで（例えば、１日１回）、次の副ページ検査処理を行う。ここで、副ページのみを検査の対象としているのは、正ページは、上述のとおり、リード処理及びライト処理のタイミングで不良の有無が検知され修復され得るからである。ただし、検査部１０４は、この副ページと同じように正ページを検査してもよい。【００６０】
検査部１０４は、キャッシュ用ＳＳＤ２３の各副ページに対して、Ｓ３０１〜Ｓ３０６の処理を行う。ここで、各回の処理対象の副ページを「対象副ページ」という。【００６１】
検査部１０４は、対象副ページの不良の有無を判定する（Ｓ３０２）。対象副ページが不良でない場合（Ｓ３０２：ＮＯ）、検査部１０４は、Ｓ３０６へ進む。【００６２】
対象副ページが不良である場合（Ｓ３０２：ＹＥＳ）、検査部１０４は、次の処理を行う。検査部１０４は、この対象副ページに係る対象ページ番号に、不良な対象副ページに代えて、空きページを割り当てる（Ｓ３０３）。この新たなに割り当てられた空きページを「新たな対象副ページ」という。【００６３】
検査部１０４は、対象副ページに対応する正ページからデータをリードする（Ｓ３０４）。【００６４】
検査部１０４は、その正ページからからリードしたデータを、新たな対象副ページにライトする（Ｓ３０５）。ここで、検査部１０４は、新たな対象副ページに正しくデータがライトされたか否かを確認してもよい。例えば、検査部１０４は、新たな対象副ページからデータをリードし、そのリードしたデータが先ほどライトしたデータと一致する場合、データが正しくライトされたと判定してもよい。【００６５】
検査部１０４は、全ての副ページに対してＳ３０１〜Ｓ３０６を行った後（Ｓ３０６）、処理を終了する（ＥＮＤ）。【００６６】
これにより、副ページの不良が修復され、データの二重化が維持される。すなわち、キャッシュ用ＳＳＤ２３の信頼性が向上する。【００６７】
本実施例は、例えば、以下の作用効果を奏する。
（１）本実施例に係る正ページと副ページをそれぞれ異なるＳＳＤに設けた場合、排他処理が必要となったり、他のコントローラにＩ／Ｏ要求が必要となり、正ページと副ページとの間のＩ／Ｏ処理が、システムの性能に大きな影響を及ぼす。これに対し、本実施例は、１つのＳＳＤ内に正ページと副ページを設け、ＳＳＤドライバ１０３上で処理を行うため、正ページと副ページとの間のＩ／Ｏ処理がシステムの性能に及ぼす影響が小さい。【００６８】
（２）キャッシュ用ＳＳＤ２３の全体の記憶領域の内、必要な記憶領域の部分のみを正ページと副ページの２面構成とし、さらに、上記図６に示す修復対象の領域を副ページのみとすることにより、上記図６に示した修復処理に要する時間を短縮すると共に、その修復処理によって発生する処理負荷を低減することができる。
【実施例２】
【００６９】
図８は、実施例２に係るストレージシステム１のコントローラユニット１０の構成例を示す。【００７０】
ストレージシステム１は、コントローラユニット１０からコントローラ２０が着脱可能に構成されている。また、コントローラ２０からキャッシュ用ＳＳＤ２３が着脱可能に構成されている。キャッシュ用ＳＳＤ２３には、プロセッサ２１で実行されるコンピュータプログラム、及び、ストレージシステムに関する構成情報などが格納されている。したがって、コントローラ２０又はキャッシュ用ＳＳＤ２３が交換された場合、キャッシュ用ＳＳＤ２３に格納されている構成情報は、実際のストレージシステム１の構成と整合していないおそれがある。本実施例では、このような不整合な構成情報がリストアされて利用されてしまうことを防止する。【００７１】
コントローラユニット１０は、コントローラユニット１０を識別可能なユニットＩＤ２０１を有する。また、コントローラ２０も、コントローラ２０を識別可能なコントローラＩＤ２０２を有する。そして、コントローラユニット１０に新規にコントローラ２０及びキャッシュ用ＳＳＤ２３が装着された際、コントローラ２０は、自分のコントローラＩＤ２０２と、自分が属するコントローラユニット１０のユニットＩＤ２０１とを、キャッシュ用ＳＳＤ２３に格納しておく（図８に示すユニットＩＤ２１１及びコントローラＩＤ２１２を参照）。【００７２】
プロセッサ２１で実行されるリストア処理部１１０は、ストレージシステム１の起動時に、キャッシュ用ＳＳＤ２３に格納されているコンピュータプログラム及び構成情報等をメインメモリ２２にリストアし、プロセッサ２１が構成情報等を継続して使用することを許可する。ここで、リストア処理部１１０は、コントローラ２０又はキャッシュ用ＳＳＤ２３が交換されていると判断した場合、キャッシュ用ＳＳＤ２３に格納されている構成情報等をメインメモリ２２にリストアせず、この構成情報等の使用を許可しない。実際のストレージシステム１の構成と不整合が生じるおそれがあるからである。【００７３】
すなわち、リストア処理部１１０は、自分のコントローラ２０が有するコントローラＩＤ２０２と、キャッシュ用ＳＳＤ２３に格納されているコントローラＩＤ２１２とを比較することにより、キャッシュ用ＳＳＤ２３が交換されたものであるか否かを判定する。また、リストア処理部１１０は、自分のコントローラ２０が属するコントローラユニット１０が有するユニットＩＤ２０１と、キャッシュ用ＳＳＤ２３に格納されているユニットＩＤ２１１とを比較することにより、自分のコントローラ２０が交換されたものであるか否かを判定する。【００７４】
図９は、交換パターンの一例のテーブル８００を示す。【００７５】
テーブル８００において、例えば、レコード８２１は、自分の属するコントローラユニットのＩＤ（８０３）と、キャッシュ用ＳＳＤに格納されているユニットＩＤ（８０４）とが一致し、且つ、自分のコントローラのＩＤ（８０５）とキャッシュ用ＳＳＤに格納されているコントローラＩＤ（８０６）とが一致する場合、通常の計画的な停止後の再起動であり（８０２）、キャッシュ用ＳＳＤ２３及びコントローラ２０は交換されていないと判断してよいことを表す。よって、リストア処理部１１０は、レコード８２１に該当する場合、キャッシュ用ＳＳＤ２３に格納されている構成情報等を、メインメモリ２２にリストア可能（８０７）と判断してよい。【００７６】
例えば、レコード８２２、８２５、８２６、８２８は、キャッシュ用ＳＳＤ２３内にユニットＩＤ（８０４）及びコントローラＩＤ（８０６）の何れもが格納されていない（ＮＵＬＬである）場合、少なくともキャッシュ用ＳＳＤ２３が交換されたか（８０２）、若しくは、ストレージシステム１の初めての起動である（８０２）と判断してよいことを表す。よって、リストア処理部１１０は、レコード８２２、８２５、８２６、８２８の何れかに該当する場合、キャッシュ用ＳＳＤ２３に格納されている構成情報等を、メインメモリ２２にリストア不可（８０７）と判断してよい。【００７７】
例えば、レコード８２３は、自分の属するコントローラユニットのＩＤ（８０３）とキャッシュ用ＳＳＤ内のユニットＩＤ（８０４）とが一致し、且つ、自分のコントローラのＩＤ（８０５）とキャッシュ用ＳＳＤ内のコントローラＩＤ（８０６）とが一致しない場合、キャッシュ用ＳＳＤ２３は交換されず、コントローラ２０のみの交換である（８０２）と判断してよいことを表す。よって、リストア処理部１１０は、レコード８２３に該当する場合、キャッシュ用ＳＳＤ２３に格納されている構成情報等を、メインメモリ２２にリストア可能（８０７）と判断してよい。【００７８】
例えば、レコード８２４は、自分の属するコントローラユニットのＩＤ（８０３）とキャッシュ用ＳＳＤ２３内のユニットＩＤ（８０４）とが一致せず、且つ、自分のコントローラのＩＤ（８０５）とキャッシュ用ＳＳＤ２３内のコントローラＩＤ（８０６）とが一致する場合、キャッシュ用ＳＳＤ２３は交換されず、コントローラユニット１０のみの交換である（８０２）と判断してよいことを表す。よって、リストア処理部１１０は、レコード８２４に該当する場合、キャッシュ用ＳＳＤ２３に格納されている構成情報等を、メインメモリ２２にリストア可能（８０７）と判断してよい。【００７９】
例えば、レコード８２７は、自分の属するコントローラユニットのＩＤ（８０３）とキャッシュ用ＳＳＤ２３内のユニットＩＤ（８０４）とが一致せず、且つ、自分のコントローラのＩＤ（８０５）とキャッシュ用ＳＳＤ２３内のコントローラＩＤ（８０６）も一致しない場合、コントローラユニット１０及びコントローラ２０が交換された（８０２）と判断してよいことを表す。よって、リストア処理部１１０は、レコード８２７に該当する場合、キャッシュ用ＳＳＤ２３に格納されている構成情報等を、メインメモリ２２にリストア不可（８０７）と判断してよい。【００８０】
図１０は、リストア処理の一例のフローチャートを示す。【００８１】
リストア処理部１１０は、自分のコントローラが有するコントローラＩＤと、自分のコントローラが属するコントローラユニットのＩＤとを取得する（Ｓ４０１）。【００８２】
リストア処理部１１０は、その取得したコントローラＩＤと、キャッシュ用ＳＳＤ内のコントローラＩＤとが一致するか否かを判定する（Ｓ４０２）。【００８３】
その取得したコントローラＩＤと、キャッシュ用ＳＳＤ内のコントローラＩＤとが一致する場合（Ｓ４０２：ＹＥＳ）、リストア処理部１１０は、キャッシュ用ＳＳＤに格納されている構成情報等を、メインメモリ２２にリストアし（Ｓ４０３）、Ｓ４２０へ進む。【００８４】
その取得したコントローラＩＤと、キャッシュ用ＳＳＤ内のコントローラＩＤとが一致しない場合（Ｓ４０２：ＮＯ）、リストア処理部１１０は、次に、その取得したユニットＩＤと、キャッシュ用ＳＳＤ内のユニットＩＤとが一致するか否かを判定する（Ｓ４１０）。【００８５】
その取得したユニットＩＤと、キャッシュ用ＳＳＤ内のユニットＩＤとが一致する場合（Ｓ４１０：ＹＥＳ）、リストア処理部１１０は、キャッシュ用ＳＳＤに格納されている構成情報等を、メインメモリ２２にリストアし（Ｓ４０３）、Ｓ４２０へ進む。【００８６】
その取得したユニットＩＤと、キャッシュ用ＳＳＤ内のユニットＩＤとが一致しない場合（Ｓ４１０：ＮＯ）、リストア処理部１１０は、キャッシュ用ＳＳＤに格納されている構成情報等を破棄（削除）し（Ｓ４１２）、Ｓ４２０へ進む。【００８７】
Ｓ４２０において、リストア処理部１１０は、その取得したコントローラＩＤ及びユニットＩＤを、キャッシュ用ＳＳＤに格納（更新登録）し、処理を終了する（ＥＮＤ）。【００８８】
以上の処理により、リストア処理部１１０は、ストレージシステム１の実際の構成と整合しない構成情報等がリストアされることを防止すると共に、ストレージシステム１の実際の構成と整合する構成情報等についてはリストアすることができる。【００８９】
上述した実施例は、本発明の説明のための例示であり、本発明の範囲をそれらの実施例にのみ限定する趣旨ではない。当業者は、本発明の要旨を逸脱することなしに、他の様々な態様で本発明を実施することができる。【００９０】
上述の本実施例は、以下の様に表現することができる。
＜表現１＞
プロセッサと、記憶デバイスとを備え、
前記プロセッサは、
前記記憶デバイス内の物理的な記憶領域を構成する複数の区画を正区画と副区画とに分け、１の正区画と１の副区画とを対応付けて管理し、
正区画にライトしたデータを、前記正区画に対応する副区画にもライトする
ストレージシステム。
＜表現２＞
前記プロセッサは、
前記記憶デバイス内の全体の物理的な記憶領域の一部の記憶領域を、正区画と副区画とに分けて管理する
表現１に記載のストレージシステム。
＜表現３＞
前記プロセッサは、
前記一部の記憶領域に、当該ストレージシステムの構成に関する情報である構成情報を格納し、それ以外の記憶領域に、リード及びライトの処理で用いられるキャッシュデータを格納する
表現２に記載のストレージシステム。
＜表現４＞
前記記憶デバイスは、複数のフラッシュメモリから構成されるＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である
表現１乃至３の何れか１に記載のストレージシステム。
＜表現５＞
前記プロセッサは、
リード先の第１の正区画が不良であった場合、前記第１の正区画に対応する第１の副区画からデータをリードし、そのリードしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第１の正区画を、前記第１の正区画に代えて前記第１の副区画と対応付ける
表現１乃至４の何れか１に記載のストレージシステム。
＜表現６＞
前記プロセッサは、
前記新たな第１の正区画からデータをリードし、そのリードしたデータと、前記第１の副区画からリードしたデータとが一致するか否かを判定する
表現５に記載のストレージシステム。
＜表現７＞
前記プロセッサは、
ライト先の第２の正区画が不良であった場合、前記第２の正区画に対応する第２の副区画にデータをライトし、そのライトしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第２の正区画を、前記第２の正区画に代えて前記第２の副区画と対応付ける
表現１乃至６の何れか１に記載のストレージシステム。
＜表現８＞
前記プロセッサは、
ライト先の第３の正区画が不良であった場合、前記第３の正区画に対応する第３の副区画からデータをリードし、そのリードしたデータにライト対象のデータをオーバーライトした合成データを生成し、その合成データを、ライト可能な空き区画にライトし、その合成データのライトされた空き区画である新たな第３の正区画を、前記第３の正区画に代えて前記第３の副区画と対応付ける
表現１乃至７の何れか１に記載のストレージシステム。
＜表現９＞
前記プロセッサは、
前記複数の副区画の各々の不良を検査し、第４の副区画が不良であった場合、前記第４の副区画に対応する第４の正区画からデータをリードし、そのリードしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第４の副区画を、前記第４の副区画に代えて前記第４の正区画と対応付ける
表現１乃至８の何れか１に記載のストレージシステム。
＜表現１０＞
コントローラと、ユニットとを有し、
前記コントローラには、コントローラＩＤが付与され、前記プロセッサと、着脱可能な前記記憶デバイスとが備えられ、
前記ユニットには、ユニットＩＤが付与され、着脱可能な前記コントローラが備えられ、
前記プロセッサは、
前記記憶デバイスに格納されているコントローラＩＤと、自分のプロセッサが属するコントローラに付与されているコントローラＩＤとが一致せず、且つ、前記記憶デバイスに格納されているユニットＩＤと、自分のプロセッサが属するユニットに付与されているユニットＩＤとが一致しない場合、前記記憶デバイス内の前記一部の記憶領域に格納されている前記構成情報の使用を許可しない
表現１乃至９の何れか１に記載のストレージシステム。
＜表現１１＞
前記プロセッサは、
前記記憶デバイスに格納されているコントローラＩＤと、自分のプロセッサが属するコントローラに付与されているコントローラＩＤとが一致するか、又は、前記記憶デバイスに格納されているユニットＩＤと、自分のプロセッサが属するユニットに付与されているユニットＩＤとが一致する場合、前記記憶デバイス内の前記一部の記憶領域に格納されている前記構成情報の使用を許可する
表現１０に記載のストレージシステム。
＜表現１２＞
前記プロセッサは、
前記構成情報の使用を許可しないとした場合、自分のプロセッサが属するコントローラに付与されているコントローラＩＤと、自分のプロセッサが属するユニットに付与されているユニットＩＤとを、前記記憶デバイスに格納する
表現１０又は１１に記載のストレージシステム。
＜表現１３＞
ストレージシステムに備えられているプロセッサと、記憶デバイスとにおいて、
前記記憶デバイス内の物理的な記憶領域を構成する複数の区画を正区画と副区画とに分け、１の正区画と１の副区画とを対応付けて管理し、
正区画にライトしたデータを、前記正区画に対応する副区画にもライトする
記憶制御方法。【００９１】
上記表現において、「区画」は本実施例における「ページ」に相当するものであってよい。また、「記憶デバイス」は本実施例における「キャッシュ用ＳＳＤ２３」に相当するものであってよい。
【符号の説明】
【００９２】
１：ストレージシステム  ２：ホストコンピュータ  １０：コントローラユニット  １１：ドライブユニット  ２０：コントローラ  ２１：プロセッサ  ２２：メインメモリ  ２３：キャッシュ用ＳＳＤ  ３２：記憶デバイス
【図１】
2016001962.tif 000003
【図２】
2016001962.tif 000004
【図３】
2016001962.tif 000005
【図４】
2016001962.tif 000006
【図５】
2016001962.tif 000007
【図６】
2016001962.tif 000008
【図７】
2016001962.tif 000009
【図８】
2016001962.tif 000010
【図９】
2016001962.tif 000011
【図１０】
2016001962.tif 000012
【手続補正書】
【提出日】平成27年2月5日(2015.2.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
プロセッサと、複数のフラッシュメモリから構成されるＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）である記憶デバイスとを備えるストレージシステムであって、
前記プロセッサは、
前記記憶デバイス内の物理的な記憶領域を構成する複数の区画の内、所定の一部の記憶領域を構成する複数の区画を、正区画と副区画とに分け、１の正区画と１の副区画とを対応付けて管理し、
前記一部の記憶領域に、当該ストレージシステムの構成に関する情報である構成情報を格納し、それ以外の記憶領域に、リード及びライトの処理で用いられるキャッシュデータを格納し、
正区画にライトしたデータを、前記正区画に対応する副区画にもライトする
ストレージシステム。
【請求項２】
（削除）
【請求項３】
（削除）
【請求項４】
（削除）
【請求項５】
前記プロセッサは、
前記構成情報に係るデータを、前記一部の記憶領域を構成する複数の区画の内の第１の正区画からリードするとき、前記第１の正区画が不良であるか否かを判定し、
前記第１の正区画が不良であると判定した場合、前記第１の正区画に対応する第１の副区画からデータをリードし、そのリードしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第１の正区画を、前記第１の正区画に代えて前記第１の副区画と対応付ける
請求項１に記載のストレージシステム。
【請求項６】
前記プロセッサは、
前記新たな第１の正区画からデータをリードし、そのリードしたデータと、前記第１の副区画からリードしたデータとが一致するか否かを判定する
請求項５に記載のストレージシステム。
【請求項７】
前記プロセッサは、
ライト先の第２の正区画が不良であった場合、前記第２の正区画に対応する第２の副区画にデータをライトし、そのライトしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第２の正区画を、前記第２の正区画に代えて前記第２の副区画と対応付ける
請求項１に記載のストレージシステム。
【請求項８】
前記プロセッサは、
ライト先の第３の正区画が不良であった場合、前記第３の正区画に対応する第３の副区画からデータをリードし、そのリードしたデータにライト対象のデータをオーバーライトした合成データを生成し、その合成データを、ライト可能な空き区画にライトし、その合成データのライトされた空き区画である新たな第３の正区画を、前記第３の正区画に代えて前記第３の副区画と対応付ける
請求項１に記載のストレージシステム。
【請求項９】
前記プロセッサは、
前記複数の副区画の各々の不良を検査し、前記複数の副区画の内の第４の副区画が不良であった場合、前記第４の副区画に対応する第４の正区画から前記構成情報に係るデータをリードし、そのリードしたデータを、ライト可能な空き区画にライトし、そのデータのライトされた空き区画である新たな第４の副区画を、前記第４の副区画に代えて前記第４の正区画と対応付ける
請求項１に記載のストレージシステム。
【請求項１０】
コントローラと、ユニットとを有し、
前記コントローラには、コントローラＩＤが付与され、前記プロセッサと、着脱可能な前記記憶デバイスとが備えられ、
前記ユニットには、ユニットＩＤが付与され、着脱可能な前記コントローラが備えられ、
前記プロセッサは、
前記記憶デバイスに格納されているコントローラＩＤと、自分のプロセッサが属するコントローラに付与されているコントローラＩＤとが一致せず、且つ、前記記憶デバイスに格納されているユニットＩＤと、自分のプロセッサが属するユニットに付与されているユニットＩＤとが一致しない場合、前記記憶デバイス内の前記一部の記憶領域に格納されている前記構成情報の使用を許可しない
請求項１に記載のストレージシステム。
【請求項１１】
前記プロセッサは、
前記記憶デバイスに格納されているコントローラＩＤと、自分のプロセッサが属するコントローラに付与されているコントローラＩＤとが一致するか、又は、前記記憶デバイスに格納されているユニットＩＤと、自分のプロセッサが属するユニットに付与されているユニットＩＤとが一致する場合、前記記憶デバイス内の前記一部の記憶領域に格納されている前記構成情報の使用を許可する
請求項１０に記載のストレージシステム。
【請求項１２】
前記プロセッサは、
前記構成情報の使用を許可しないとした場合、自分のプロセッサが属するコントローラに付与されているコントローラＩＤと、自分のプロセッサが属するユニットに付与されているユニットＩＤとを、前記記憶デバイスに格納する
請求項１０に記載のストレージシステム。
【請求項１３】
ストレージシステムに備えられているプロセッサと、複数のフラッシュメモリから構成される記憶デバイスとにおいて、
前記記憶デバイス内の物理的な記憶領域を構成する複数の区画の内、所定の一部の記憶領域を構成する複数の区画を、正区画と副区画とに分け、１の正区画と１の副区画とを対応付けて管理し、
前記一部の記憶領域に、当該ストレージシステムの構成に関する情報である構成情報を格納し、それ以外の記憶領域に、リード及びライトの処理で用いられるキャッシュデータを格納し、
正区画にライトしたデータを、前記正区画に対応する副区画にもライトする
記憶制御方法。
【国際調査報告】
2016001962.tif 000013
2016001962.tif 000014
2016001962.tif 000015
2016001962.tif 000016