(57)【要約】【課題】ＲＡＩＤ装置における複数の記憶装置間でデータの更新状態に齟齬を生じている場合の未更新データの読出しを避けることができるようにする。【解決手段】ＲＡＩＤ装置１は、第１の記憶装置２と第２の記憶装置３をミラーリング用として備え、また第１、第２の各記憶装置についてデータの書込み回数を計数する書込み回数計数部７、書込み回数計数部で得られたデータ書込み回数を管理する書込み回数管理部６、及びデータの読出しに際し、書込み回数管理部で管理のデータ書込み回数に基づいて第１、第２の両記憶装置から読出し先を選択する読出し先選択部８を備えている。【選択図】  図１
2010271773.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置を複数備え、データの保存に際して前記複数の記憶装置に同一のデータを書き込むようになっているＲＡＩＤ装置において、
前記複数の記憶装置それぞれについてデータの書込み回数を計数する書込み回数計数部、及びデータの読出しに際し、前記書込み回数計数部で得られるデータ書込み回数に基づいて前記複数の記憶装置から読出し先を選択する読出し先選択部を備えていることを特徴とするＲＡＩＤ装置。
【請求項２】
前記読出し先選択部は、前記データ書込み回数について判定し、前記複数の記憶装置それぞれのデータ書込み回数に相違があると判定した場合には、前記データ書込み回数がより多い記憶装置を読出し先として選択するようにされていることを特徴とする請求項１に記載のＲＡＩＤ装置。
【請求項３】
前記複数の記憶装置それぞれについて保存中のデータを一致化させる一致化処理に際し、前記データ書込み回数について判定し、前記複数の記憶装置それぞれのデータ書込み回数に相違があると判定した場合には、前記データ書込み回数がより多い記憶装置に保存のデータにより一致化処理を行うようにされていることを特徴とする請求項１又は請求項２に記載のＲＡＩＤ装置。
【請求項４】
前記記憶装置が第１の記憶装置と第２の記憶装置の２台であり、前記読出し先選択部は、前記データ書込み回数について、前記第１の記憶装置が前記第２の記憶装置以上であるかを判定し、前記判定の結果が肯定的であれば前記第１の記憶装置を読出し先として選択し、前記判定の結果が否定であれば前記第２の記憶装置を読出し先として選択するようにされていることを特徴とする請求項１〜請求項３のいずれか１項に記載のＲＡＩＤ装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数の記憶装置に同一のデータを書き込むようになっているＲＡＩＤ装置に関する。
【背景技術】
【０００２】
コンピュータシステムなどで用いられるハードディスク装置（以下ではＨＤＤと略記する）などの記憶装置（外部記憶装置）の安定性や信頼性を高める方式として、ＲＡＩＤ（Redundant Arrays of Inexpensive Disks）と呼ばれる方式があり、そのＲＡＩＤを用いた装置としてＲＡＩＤ装置（レイド装置）がある。
【０００３】
ＲＡＩＤ装置は、ＨＤＤなどの記憶装置を複数台備え、それら複数の記憶装置を１台の記憶装置として管理する。ＲＡＩＤには、ＲＡＩＤ０からＲＡＩＤ６までのレベルがある。その内のＲＡＩＤ１レベルによるＲＡＩＤ装置では、ミラーリング（二重化ないし多重化）を行う。すなわちデータの書込みについては、複数の記憶装置それぞれに同一のデータを同時並行的に書き込んで保存する。一方、データの読出しについては、複数の記憶装置のいずれか１つから行う。それについては、例えば複数の記憶装置に優先度を設け、優先度の高い記憶装置から優先的に行うようにする。例えば記憶装置が２台で二重化を行う場合であれば、一方を優先度の高いプライマリ記憶装置、他方を優先度の低いセカンダリ記憶装置とし、読出しは基本としてプライマリ記憶装置から行い、プライマリ記憶装置に障害（読出しができなかったり、読み出したデータにエラーが発生したりするなどといった障害）が発生した場合にはセカンダリ記憶装置から読出しを行う。
【０００４】
このようなＲＡＩＤ１レベルのＲＡＩＤ装置は、その複数の記憶装置に同時に障害が発生する可能性は格段に小さくなる。このためＲＡＩＤ１レベルのＲＡＩＤ装置は、これを１台の記憶装置としてみた場合、安定性や信頼性が大幅に向上することになる。
【０００５】
なお、以上のようなＲＡＩＤ装置については、例えば特許文献１〜特許文献３などに開示の例が知られている。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００９−５４０５０号公報
【特許文献２】特開２００８−８４２７０号公報
【特許文献３】ＷＯ２００４／１１４１１５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
ＲＡＩＤ装置では、それに用いる複数の記憶装置に個体差などにより書込み性能に差があると、ミラーリングに際して書込みを終えるまでの時間が各記憶装置で異なってしまうという事態を生じ得る。つまり二重化の場合であれば、例えばセカンダリ記憶装置では書込みを完了しているのに、プライマリ記憶装置では書込みが開始されていない、といった事態である。このような事態を発生している状態にあって、電源遮断が発生すると、セカンダリ記憶装置ではデータの更新がなされて更新データを保存しているが、プライマリ記憶装置ではデータの更新がなされず未更新データしか保存していない、といった状態を招くことがあり得る。このことを一般化すると、ＲＡＩＤ装置における複数の記憶装置間でデータの更新状態に齟齬を生じている状態といえる。以下では、このような状態を仮にデータ更新齟齬と呼ぶ。
【０００８】
データ更新齟齬状態では、保存しているデータとしてはエラーでない。そのためＲＡＩＤ装置は、コンピュータやＣＰＵなどであるホストからの命令に応じてなすデータの読出しに際し、プライマリ記憶装置から未更新データを読み出し、それをホストに渡すことになってしまう。このような事態はＲＡＩＤ装置が用いられるシステムの機能性を損なうことになり、したがってそれを効果的に防止できるようにすることが望まれる。
【０００９】
本発明は、このような要望に応えるためになされたもので、ＲＡＩＤ装置について、それに用いられている複数の記憶装置間でデータの更新状態に齟齬を生じている場合の未更新データの読出しを効果的に避けることができるようにすることを課題としている。
【課題を解決するための手段】
【００１０】
本発明では、ＲＡＩＤ装置にデータ更新齟齬が発生した場合の未更新データの読出しを避けるについて、ＲＡＩＤ装置における各記憶装置へのデータの書込み回数に着目する。ＲＡＩＤ装置でのデータ更新齟齬は、例えば二重化の場合であれば、上述のように、セカンダリ記憶装置では書込みを完了しているのに、プライマリ記憶装置では書込みが開始されていないといった事態を招き、そのような事態が発生している場合にあって電源遮断が発生することで、セカンダリ記憶装置ではデータの更新がなされているが、プライマリ記憶装置ではデータの更新がなされていないといった状態として発生する。
【００１１】
このようなデータ更新齟齬では、その発生に各記憶装置の書込み回数の相違を必然的に伴う。つまり上の例の場合、データ更新齟齬発生後では、「セカンダリ記憶装置のデータ書込み回数＞プライマリ記憶装置のデータ書込み回数」ということになる。したがって、データ書込み回数を記憶装置ごとに計数して管理し、データの読出しに際し、そのデータ書込み回数に基づいて複数の記憶装置から読出し先を選択するようにすれば、データ更新齟齬状態にあっても未更新データの読出しを効果的に避けることができる。
【００１２】
本発明では、以上のような考え方に基づいて上記課題を解決する。具体的には、記憶装置を複数備え、データの保存に際して前記複数の記憶装置に同一のデータを書き込むようになっているＲＡＩＤ装置において、前記複数の記憶装置それぞれについてデータの書込み回数を計数する書込み回数計数部、及びデータの読出しに際し、前記書込み回数計数部で得られるデータ書込み回数に基づいて前記複数の記憶装置から読出し先を選択する読出し先選択部を備えていることを特徴としている。
【００１３】
また本発明では、上記のようなＲＡＩＤ装置について、前記読出し先選択部は、前記データ書込み回数について判定し、前記複数の記憶装置それぞれのデータ書込み回数に相違があると判定した場合には、前記データ書込み回数がより多い記憶装置を読出し先として選択するようにされていることを好ましい形態としている。このようにすることにより、データ書込み回数に基づく読出し先選択をより効果的に行うことができる。
【００１４】
また本発明では、上記のようなＲＡＩＤ装置について、前記複数の記憶装置それぞれについて保存中のデータを一致化させる一致化処理に際し、前記データ書込み回数について判定し、前記複数の記憶装置それぞれのデータ書込み回数に相違があると判定した場合には、前記データ書込み回数がより多い記憶装置に保存のデータにより一致化処理を行うようにされていることを好ましい形態としている。
【００１５】
このようにすることにより、書込み回数管理部が管理しているデータ書込み回数を一致化処理にも有効に活用することができる。すなわちデータ更新齟齬がある場合、未更新データで一致化処理がなされて各記憶装置がいずれも未更新データを保存することになる結果を招く可能性があるが、一致化処理で複写する複写元データをデータ書込み回数に基づいて選択することで、そのような可能性を効果的に避けることができる。
【００１６】
ＲＡＩＤ装置は、ミラーリング用の記憶装置を２台とするのが汎用的な形態として一般的である。こうしたことから、また本発明では、上記のようなＲＡＩＤ装置について、前記記憶装置が第１の記憶装置と第２の記憶装置の２台であり、前記読出し先選択部は、前記データ書込み回数について、前記第１の記憶装置が前記第２の記憶装置以上であるかを判定し、前記判定の結果が肯定的であれば前記第１の記憶装置を読出し先として選択し、前記判定の結果が否定であれば前記第２の記憶装置を読出し先として選択するようにされていることを好ましい形態としている。
【発明の効果】
【００１７】
以上のような本発明によれば、ＲＡＩＤ装置について、それに用いられている複数の記憶装置間でデータの更新状態に齟齬を生じている場合の未更新保存データの読出しを効果的に避けることができるようになる。
【図面の簡単な説明】
【００１８】
【図１】第１の実施例によるＲＡＩＤ装置の構成を示す図である。
【図２】データ書込み処理における流れを示す図である。
【図３】データ読出し処理における流れを示す図である。
【図４】第２の実施例によるＲＡＩＤ装置の構成を示す図である。
【図５】一致化処理における流れを示す図である。
【発明を実施するための形態】
【００１９】
以下、本発明を実施するための形態について説明する。本発明によるＲＡＩＤ装置は、ミラーリング用の記憶装置が２台である二重化タイプを好ましい形態の代表的な一つとする。したがって以下では、二重化タイプに関する実施例として説明する。
【実施例１】
【００２０】
図１に、第１の実施例によるＲＡＩＤ装置の構成を機能ブロック図で示す。本実施例のＲＡＩＤ装置１は、第１の記憶装置２と第２の記憶装置３をミラーリング用記憶装置として備えるとともに、ＲＡＩＤコントローラ４を備えている。このＲＡＩＤ装置１は、コンピュータやＣＰＵなどをホスト５とし、ホスト５からの命令を受けてデータの書込みや読出しを行う。
【００２１】
第１の記憶装置２と第２の記憶装置３は、それぞれＨＤＤや不揮発性半導体メモリの一種であるフラッシュメモリを記憶媒体としたフラッシュメモリ方式の記憶装置などで構成され、ＲＡＩＤコントローラ４による制御の下で１台の記憶装置として機能するようにしてデータの書込みや読出しがなされる。
【００２２】
ＲＡＩＤコントローラ４は、ミラーリング環境構築機能とデータ書込み・読出し機能を有している。ミラーリング環境構築機能では、第１の記憶装置２と第２の記憶装置３をミラーリング用として一括的に管理できるようにする環境を構築することを基本とし、これに加えて、データ書込み回数の初期化も行う。データ書込み回数の初期化とは、第１の記憶装置２と第２の記憶装置３のそれぞれについて後述のようにして管理されるデータ書込み回数を０に初期化する処理である。このようなデータ書込み回数の初期化は、ミラーリング環境構築時に行われ、また第１の記憶装置２や第２の記憶装置３が故障して交換された場合になすミラーリング環境の再構築時にも行われる。
【００２３】
データ書込み・読出し機能では、ホスト５からの命令を受けて第１の記憶装置２と第２の記憶装置３に対するデータの書込みと読出しを行う。データの書込みについては、第１の記憶装置２と第２の記憶装置３それぞれに同一の保存すべきデータを同時並行的に書き込む。一方、保存中のデータの読出しについては、第１の記憶装置２と第２の記憶装置３のいずれか一方から行うようにし、それについては、データ書込み回数基準により読出し先の記憶装置を選択する。
【００２４】
そのデータ書込み回数基準による読出し先選択のために、ＲＡＩＤコントローラ４は、書込み回数管理部６、書込み回数計数部７、及び読出し先選択部８を備えている。
【００２５】
書込み回数管理部６は、ＲＡＩＤコントローラ４に設けられている書込み回数保存用メモリ１１に第１の記憶装置２と第２の記憶装置３それぞれのデータ書込み回数を保存して管理するのに機能する。書込み回数保存用メモリ１１は、第１の保存領域１２と第２の保存領域１３を有し、第１の保存領域１２で第１の記憶装置２のデータ書込み回数を保存し、第２の保存領域１３で第２の記憶装置３のデータ書込み回数を保存できるようにされている。
【００２６】
書込み回数計数部７は、第１の記憶装置２と第２の記憶装置３それぞれへのデータの書込み回数を計数するのに機能する。データ書込み回数の計数は、第１の記憶装置２と第２の記憶装置３それぞれについて、一つの単位のデータの書込みが完了するごとに、第１の記憶装置２と第２の記憶装置３それぞれのそれまでのデータ書込み回数値をインクリメントするようにして行われる。
【００２７】
図２、ＲＡＩＤコントローラ４において書込み回数計数部７を用いてなされる書込み回数計数処理の流れを示す。書込み回数計数処理は、ステップＳ１〜ステップＳ８の各処理過程を含む。まずステップＳ１として、ＲＡＩＤコントローラ４がホスト５から書込み命令を受け取る。ステップＳ２では、ＲＡＩＤコントローラ４が第１の記憶装置２と第２の記憶装置３のそれぞれへ同時的に書込み命令を出す。第１の記憶装置２と第２の記憶装置３に書込み命令が出されると、第１の記憶装置２と第２の記憶装置３それぞれについての処理が同時並行的に進み、以降は処理が２つの流れとなる。
【００２８】
１つの流れでは、ステップＳ３として第１の記憶装置２のデータ書込みが開始する。ステップＳ３に続くステップＳ４では、第１の記憶装置２についてデータ書込みが完了したかを判定する。ステップＳ４での処理は、判定結果が肯定的になるまで繰り返される。ステップＳ４の判定結果が肯定的になったら、ステップＳ５に進む。ステップＳ５では、第１の記憶装置２のデータ書込み回数を計数し、その結果を書込み回数保存用メモリ１１の第１の保存領域１２に保存する。より具体的には、まず第１の保存領域１２に保存してあるそれまでのデータ書込み回数値を読み出し、それから読み出したデータ書込み回数値をインクリメントし、そしてインクリメント後のデータ書込み回数値を第１の保存領域１２に保存する。
【００２９】
他の流れでは、ステップＳ６として第２の記憶装置３のデータ書込みが開始する。ステップＳ６に続くステップＳ７では、第２の記憶装置３についてデータ書込みが完了したかを判定する。ステップＳ７での処理は、判定結果が肯定的になるまで繰り返される。ステップＳ７の判定結果が肯定的になったら、ステップＳ８に進む。ステップＳ８では、第１の記憶装置２の場合と同様にして、第２の記憶装置３のデータ書込み回数を計数し、その結果を書込み回数保存用メモリ１１の第２の保存領域１３に保存する。
【００３０】
読出し先選択部８は、書込み回数管理部６で管理しているデータ書込み回数に基づいて第１の記憶装置２と第２の記憶装置３のいずれかを読出し先として選択する。すなわち書込み回数管理部６で管理している第１の記憶装置２と第２の記憶装置３のデータ書込み回数について判定し、第１の記憶装置２と第２の記憶装置３それぞれのデータ書込み回数に相違があると判定した場合には、データ書込み回数が多い記憶装置を読出し先として選択する。
【００３１】
図３に、ＲＡＩＤコントローラ４において読出し先選択部８を用いてなされる読出し先選択処理の流れを示す。読出し先選択処理は、ステップＳ１１〜ステップＳ１６の各処理過程を含む。まずステップＳ１１として、ＲＡＩＤコントローラ４がホスト５から読出し命令を受け取る。それに続いて、読出し先選択部８が第１の記憶装置２と第２の記憶装置３それぞれのデータ書込み回数を書込み回数保存用メモリ１１から取り出し（ステップＳ１２）、さらに第１の記憶装置２と第２の記憶装置３のデータ書込み回数について判定する（ステップＳ１３）。具体的には、第１の記憶装置２のデータ書込み回数が第２の記憶装置３のデータ書込み回数以上であるかを判定する。ステップＳ１３での判定結果が肯定的であれば、第１の記憶装置２が読出し先とし選択されることになるので、ステップＳ１４に進んで第１の記憶装置２からデータの読出しを行い、さらに読み出したデータをＲＡＩＤコントローラ４がホスト５に受け渡す（ステップＳ１６）。一方、ステップＳ１３での判定結果が否定的であれば、第２の記憶装置３が読出し先とし選択されることになるので、ステップＳ１４に進んで第２の記憶装置３からデータの読出しを行い、さらに読み出したデータをＲＡＩＤコントローラ４がホスト５に受け渡す（ステップＳ１６）。
【００３２】
以上のように、データ書込み回数に基づいて読出し先を選択するようにしたことにより、第１の記憶装置２と第２の記憶装置３にデータ更新齟齬状態があっても、未更新データを読出してしまうことを効果的に避けることができる。
【実施例２】
【００３３】
図４に、第２の実施例によるＲＡＩＤ装置の構成を機能ブロック図で示す。ＲＡＩＤ装置２１は、基本的には第１の実施例におけるＲＡＩＤ装置１と同様で、図１における読出し先選択部８に対応する要素として、読出し先・複写元選択部２２を備えている点で相違している。以下では、ＲＡＩＤ装置２１に特徴的な構成について主に説明し、その他の構成については図１におけるのと同一の符号を付して示し、上での説明を援用するものとする。
【００３４】
ＲＡＩＤ装置２１は、一致化処理に際し、書込み回数管理部６が管理しているデータ書込み回数を活用する。一致化処理とは、第１の記憶装置２と第２の記憶装置３について保存中のデータを一致化させる処理で、第１の記憶装置２と第２の記憶装置３のいずれか一方を複写元とし、その複写元の保存データを他方に複写することでなされる。このような一致化処理は、ホスト５から一致化命令を受けてＲＡＩＤコントローラ４が読出し先・複写元選択部２２を用いながら実行する。なお、ホスト５から一致化命令だけではなく、ＲＡＩＤコントローラ４が単独で一致化処理を実施するようにすることができる。
【００３５】
読出し先・複写元選択部２２は、図１における読出し先選択部８と同様な読出し先選択機能を有するのに加えて、一致化処理における複写元の記憶装置を選択する複写元選択機能を有している。
【００３６】
図５に、ＲＡＩＤコントローラ４でなされる一致化処理の流れを示す。一致化処理は、ステップＳ２１〜ステップＳ２７の各処理過程を含む。まずステップＳ２１として、ＲＡＩＤコントローラ４がホスト５から一致化命令を受け取る。それに続いて、ＲＡＩＤコントローラ４が第１の記憶装置２と第２の記憶装置３それぞれから保存中のデータを読み出し（ステップＳ２２）、それから第１の記憶装置２の保存データと第２の記憶装置３の保存データが同一であるかを判定する（ステップＳ２３）。ステップＳ２３での判定結果が肯定的であれば、第１の記憶装置２と第２の記憶装置３で保存データが一致していることになるので、一致化処理は終了となる。一方、ステップＳ２３での判定結果が否定的であれば、ステップＳ２４に進む。
【００３７】
ステップＳ２４では、読出し先・複写元選択部２２が第１の記憶装置２と第２の記憶装置３それぞれのデータ書込み回数を書込み回数保存用メモリ１１から取り出す。これに続くステップＳ２５では、第１の記憶装置２と第２の記憶装置３のデータ書込み回数について判定する。具体的には、第１の記憶装置２のデータ書込み回数が第２の記憶装置３のデータ書込み回数以上であるかを判定する。ステップＳ２５での判定結果が肯定的であれば、第１の記憶装置２が複写元として選択されることになるので、ステップＳ２６に進んでデータ複写を行う。具体的には、第１の記憶装置２からデータを読み出し、それを第２の記憶装置３へ複写する。一方、ステップＳ２５での判定結果が否定的であれば、第２の記憶装置３が複写元として選択されることになるので、ステップＳ２７に進んでデータ複写を行う。具体的には、第２の記憶装置３からデータを読み出し、それを第１の記憶装置２へ複写する。
【００３８】
以上のように、データ書込み回数に基づいて複写元を選択できるようにしたことにより、未更新データによる一致化処理を効果的に避けることができる。すなわち第１の記憶装置２と第２の記憶装置３にデータ更新齟齬がある場合に、未更新データで一致化処理をなしてしまい第１、第２の両記憶装置２、３がいずれも未更新データを保存することになることを効果的に防ぐことができる。
【００３９】
以上、本発明を実施するための形態について説明したが、これらは代表的な例に過ぎず、本発明はその趣旨を逸脱することのない範囲で様々な形態で実施することができる。例えば上記形態は二重化の場合となっていたが、本発明は多重化の場合についても適用することができる。また上記形態では書込み回数管理部を設け、それに書込み回数の管理機能を与えるようにしていたが、書込み回数計数部や読出し先選択部に書込み回数管理機能を兼用させるようにする形態も可能である。
【符号の説明】
【００４０】
１    ＲＡＩＤ装置
２    第１の記憶装置
３    第２の記憶装置
７    書込み回数計数部
８    読出し先選択部
【図１】
2010271773.tif 000003
【図２】
2010271773.tif 000004
【図３】
2010271773.tif 000005
【図４】
2010271773.tif 000006
【図５】
2010271773.tif 000007