(57)【特許請求の範囲】
【請求項１】
複数の記憶領域の管理処理をコンピュータに実行させるストレージ管理プログラムであって、
前記複数の記憶領域の中の各記憶領域について、前記各記憶領域が有効なデータを格納している有効領域であること又は前記各記憶領域が有効なデータを格納していない無効領域であることを示す有効領域判別情報と、前記各記憶領域のタイムスタンプと、を格納するデータ処理装置から、前記各記憶領域の有効領域判別情報と前記各記憶領域のタイムスタンプとを収集するステップと、
前記各記憶領域の有効領域判別情報と前記各記憶領域のタイムスタンプとに基づき、前記複数の記憶領域の中の有効領域の中で、タイムスタンプが最も古い第１記憶領域を選択し、前記複数の記憶領域の中の無効領域の中で、タイムスタンプが最も古い第２記憶領域を選択するステップと、
前記第１記憶領域の全体のデータを前記第２記憶領域の全体へコピーすることを前記データ処理装置へ指示するステップと、
前記第１記憶領域が無効領域であることを示すように前記第１記憶領域の有効領域判別情報を設定することと、前記第２記憶領域が有効領域であることを示すように前記第２記憶領域の有効領域判別情報を設定することと、を前記データ処理装置へ指示するステップと、
を前記コンピュータに実行させ、
前記複数の記憶領域の夫々は、同一のサイズを有し、前記データ処理装置は、前記複数の記憶領域内へのアクセスの指示を前記コンピュータから受けた場合、前記アクセスを行うと共に前記アクセスのチェックを行い、前記アクセスの対象が前記複数の記憶領域の中の一つの記憶領域の全体である場合、前記アクセスの完了時に前記アクセスの対象である記憶領域のタイムスタンプを前記アクセスの時刻に設定し、前記有効領域判別情報の変更の指示を前記コンピュータから受けた場合、前記有効領域判別情報を変更することを特徴とする、
ストレージ管理プログラム。
【請求項２】
請求項１に記載のストレージ管理プログラムにおいて、
外部から要求されたデータが読み出される有効領域である主領域と、該主領域以外の有効領域である副領域と、が二重化される、
ストレージ管理プログラム。
【請求項３】
請求項２に記載のストレージ管理プログラムにおいて、
更に、
前記第１記憶領域が主領域である場合、前記コピー前に前記第１記憶領域を副領域に設定すると共に前記第１記憶領域と二重化された副領域を前記第１記憶領域と二重化された主領域に設定するステップを、
前記コンピュータに実行させるストレージ管理プログラム。
【請求項４】
請求項１乃至請求項３のいずれかに記載のストレージ管理プログラムにおいて、
更に、
前記有効領域判別情報に基づき、前記複数の記憶領域の中で最も古いタイムスタンプを有する記憶領域が無効領域であるか否かの判断を行い、該記憶領域が無効領域であると判断された場合、該記憶領域の初期化を、前記データ処理装置へ指示するステップを、
前記コンピュータに実行させるストレージ管理プログラム。
【請求項５】
複数の記憶領域の管理処理を行うストレージ管理装置であって、
前記複数の記憶領域の中の各記憶領域について、前記各記憶領域が有効なデータを格納している有効領域であること又は前記各記憶領域が有効なデータを格納していない無効領域であることを示す有効領域判別情報と、前記各記憶領域のタイムスタンプと、を格納するデータ処理装置から、前記各記憶領域の有効領域判別情報と前記各記憶領域のタイムスタンプとを収集する収集部と、
前記各記憶領域の有効領域判別情報と前記各記憶領域のタイムスタンプとに基づき、前記複数の記憶領域の中の有効領域の中で、タイムスタンプが最も古い第１記憶領域を選択し、前記複数の記憶領域の中の無効領域の中で、タイムスタンプが最も古い第２記憶領域を選択し、前記第１記憶領域の全体のデータを前記第２記憶領域の全体へコピーすることを前記データ処理装置へ指示し、前記第１記憶領域が無効領域であることを示すように前記第１記憶領域の有効領域判別情報を設定することと、前記第２記憶領域が有効領域であることを示すように前記第２記憶領域の有効領域判別情報を設定することと、を前記データ処理装置へ指示するデータコピー指示部と、
を備え、
前記複数の記憶領域の夫々は、同一のサイズを有し、前記データ処理装置は、前記複数の記憶領域内へのアクセスの指示を前記コンピュータから受けた場合、前記アクセスを行うと共に前記アクセスのチェックを行い、前記アクセスの対象が前記複数の記憶領域の中の一つの記憶領域の全体である場合、前記アクセスの完了時に前記アクセスの対象である記憶領域のタイムスタンプを前記アクセスの時刻に設定し、前記有効領域判別情報の変更の指示を前記コンピュータから受けた場合、前記有効領域判別情報を変更することを特徴とする、
ストレージ管理装置。
【請求項６】
複数の記憶領域の管理処理を行うストレージ管理方法であって、
前記複数の記憶領域の中の各記憶領域について、前記各記憶領域が有効なデータを格納している有効領域であること又は前記各記憶領域が有効なデータを格納していない無効領域であることを示す有効領域判別情報と、前記各記憶領域のタイムスタンプと、を格納するデータ処理装置から、前記各記憶領域の有効領域判別情報と前記各記憶領域のタイムスタンプとを収集するステップと、
前記各記憶領域の有効領域判別情報と前記各記憶領域のタイムスタンプとに基づき、前記複数の記憶領域の中の有効領域の中で、タイムスタンプが最も古い第１記憶領域を選択し、前記複数の記憶領域の中の無効領域の中で、タイムスタンプが最も古い第２記憶領域を選択するステップと、
前記第１記憶領域の全体のデータを前記第２記憶領域の全体へコピーすることを前記データ処理装置へ指示するステップと、
前記第１記憶領域が無効領域であることを示すように前記第１記憶領域の有効領域判別情報を設定することと、前記第２記憶領域が有効領域であることを示すように前記第２記憶領域の有効領域判別情報を設定することと、を前記データ処理装置へ指示するステップと、
をコンピュータにより実行し、
前記複数の記憶領域の夫々は、同一のサイズを有し、前記データ処理装置は、前記複数の記憶領域内へのアクセスの指示を前記コンピュータから受けた場合、前記アクセスを行うと共に前記アクセスのチェックを行い、前記アクセスの対象が前記複数の記憶領域の中の一つの記憶領域の全体である場合、前記アクセスの完了時に前記アクセスの対象である記憶領域のタイムスタンプを前記アクセスの時刻に設定し、前記有効領域判別情報の変更の指示を前記コンピュータから受けた場合、前記有効領域判別情報を変更することを特徴とする、
ストレージ管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データを多数の記憶媒体に分散して記憶させるストレージ制御プログラム、ストレージ制御装置、ストレージ制御方法に関するものである。
【背景技術】
【０００２】
従来、ネットワークに接続されたディスクを制御するネットワークストレージがある。また、大容量化、信頼性の向上のために、複数のディスクを制御するネットワークストレージがある。
【０００３】
なお、本発明の関連ある従来技術として、第１および第２の記憶媒体に同一のデータを書き込み、正常時に第１の記憶媒体から読み出し、異常時に第２の記憶媒体から読み出すコンピュータシステムにおいて、一定周期ごとに第２の記憶媒体から読み出し、読み出したデータの正常性をチェックし、報告する二重化外部記憶装置処理方式がある（例えば、特許文献１参照）。
【特許文献１】特開平４−１６８５２２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、複数のディスク間でデータを移動させるネットワークストレージにおいて、ネットワークストレージ内の記憶領域に対して固定された順番でディスクのパトロールを行う場合、一度パトロールされてから次にパトロールされるまでの時間は、データ毎にばらつくことになる。パトロールされる時間間隔が長いほど、そのデータの危険性は高くなるため、データが長期間パトロールされずに放置されることは避けたい。
【０００５】
本発明は上述した問題点を解決するためになされたものであり、パトロールの信頼性を向上させるストレージ制御プログラム、ストレージ制御装置、ストレージ制御方法を提供することを目的とする。
【課題を解決するための手段】
【０００６】
上述した課題を解決するため、本発明の一態様は、複数の記憶領域の管理処理をコンピュータに実行させるストレージ管理プログラムであって、前記複数の記憶領域それぞれから、各記憶領域がデータを格納している有効領域であるか、又はデータを格納していない無効領域であるかを示す有効領域判別情報と、各記憶領域の全体がアクセスされたタイムスタンプ情報とを収集する収集ステップと、前記収集ステップにより収集された各記憶領域の有効領域判別情報及びタイムスタンプ情報に基づき、前記有効領域のうちタイムスタンプ情報の一番古い記憶領域から前記無効領域のうちタイムスタンプが一番古い記憶領域へのデータのコピーを行うと共に、コピー元及びコピー先のタイムスタンプ情報を更新し、かつ、コピー元の記憶領域の有効領域識別情報を無効領域を示す情報に更新し、コピー先の記憶領域の有効領域識別情報を有効領域を示す情報に更新するデータコピーステップとをコンピュータに実行させる。
【０００７】
また、本発明の一態様は、複数の記憶領域の管理処理を行うストレージ管理装置であって、前記複数の記憶領域それぞれから、各記憶領域がデータを格納している有効領域であるか、又はデータを格納していない無効領域であるかを示す有効領域判別情報と、各記憶領域の全体がアクセスされたタイムスタンプ情報とを収集する収集部と、前記収集部により収集された各記憶領域の有効領域判別情報及びタイムスタンプ情報に基づき、前記有効領域のうちタイムスタンプ情報の一番古い記憶領域から前記無効領域のうちタイムスタンプが一番古い記憶領域へのデータのコピーを行うと共に、コピー元及びコピー先のタイムスタンプ情報を更新し、かつ、コピー元の記憶領域の有効領域識別情報を無効領域を示す情報に更新し、コピー先の記憶領域の有効領域識別情報を有効領域を示す情報に更新するデータコピー指示部とを備える。
【０００８】
また、本発明の一態様は、複数の記憶領域の管理処理を行うストレージ管理方法であって、前記複数の記憶領域それぞれから、各記憶領域がデータを格納している有効領域であるか、又はデータを格納していない無効領域であるかを示す有効領域判別情報と、各記憶領域の全体がアクセスされたタイムスタンプ情報とを収集する収集ステップと、前記収集ステップにより収集された各記憶領域の有効領域判別情報及びタイムスタンプ情報に基づき、前記有効領域のうちタイムスタンプ情報の一番古い記憶領域から前記無効領域のうちタイムスタンプが一番古い記憶領域へのデータのコピーを行うと共に、コピー元及びコピー先のタイムスタンプ情報を更新し、かつ、コピー元の記憶領域の有効領域識別情報を無効領域を示す情報に更新し、コピー先の記憶領域の有効領域識別情報を有効領域を示す情報に更新するデータコピーステップとを実行する。
【発明の効果】
【０００９】
本発明によれば、パトロールの信頼性を向上させることができる。
【発明を実施するための最良の形態】
【００１０】
まず、実施の形態の実施の形態の前提技術について説明する。
【００１１】
前提技術．
まず、自律的に動作する多数の制御装置を備えるネットワークストレージであるオーガニックストレージの概要について説明する。
【００１２】
図１は、本発明の前提技術に係るオーガニックストレージの構成の一例を示すブロック図である。このオーガニックストレージは、ＭＰ（Management Processor）１１、ＡＰ（Access Processor）１２、ＣＰ（Control Processor）１３、ＤＰ（Data Processor）１４、ディスク１５、ネットワーク１６を備える。ＭＰ１１、ＡＰ１２、ＣＰ１３、ＤＰ１４は、それぞれコンピュータであり、ネットワーク１６を介して互いに接続されている。ディスク１５は、ＤＰ１４に接続されている。ＤＰ１４に接続されるディスク１５は複数であっても良い。
【００１３】
ＭＰ１１は、管理者がオーガニックストレージの管理コマンドを発行するためのコンピュータである。ＡＰ１２は、利用者からの要求を受け、それをＤＰ１４へ伝えるコンピュータである。利用者は、ＡＰ１２の論理ボリュームにアクセスすることにより、オーガニックストレージに要求を伝える。ＣＰ１３は、論理ボリューム情報の管理とＤＰ１４の状態監視を行う。ＤＰ１４は、ＡＰ１２からのデータ書き込み要求・読み出し要求を受け取って処理する。更に、ＤＰ１４は、データの二重化を構成・回復するためにＤＰ１４間でデータのやり取りを行う。
【００１４】
論理ボリュームは、一定のサイズ（例えば１Ｇバイト）のセグメントに分割されて管理されている。また、ＤＰ１４は、接続されたディスク１５をセグメントと同サイズのスライス（記憶領域）に分割して管理する。全てのセグメントは、二重化され、スライスのペアが割り当てられる。スライスには、Ｐｒｉｍａｒｙスライス、Ｓｅｃｏｎｄａｒｙスライス、その他のスライスがある。二重化されたセグメントのデータのうち、主データは、Ｐｒｉｍａｒｙスライスに保存され、副データは、Ｓｅｃｏｎｄａｒｙスライスに保存される。
【００１５】
この例において、各ディスク１５は、６つのスライスを有する。Ｐ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６は、それぞれＰｒｉｍａｒｙスライスを示し、Ｓ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６は、それぞれＳｅｃｏｎｄａｒｙスライスを示す。ＰｒｉｍａｒｙスライスとＳｅｃｏｎｄａｒｙスライスに付された番号は、セグメント番号を示し、Ｐ１とＳ１のように同一のセグメント番号を持つＰｒｉｍａｒｙスライスとＳｅｃｏｎｄａｒｙスライスが二重化されていることを示す。
【００１６】
ＤＰ１４は、論理ボリュームとスライスに関するメタデータを保持する。ＣＰ１３は、全てのＤＰ１４からメタデータを集め、保持する。論理ボリュームに変更がある場合やＤＰ１４に以上が検出された場合、ＣＰ１３は、関係するＤＰ１４へメタデータ変更の指示を送る。ＡＰ１２は、ＣＰ１３に問い合わせて取得した論理ボリューム情報に基づいて、データの書き込み要求・読み出し要求をＤＰ１４へ送る。
【００１７】
データの書き込み時、利用者のコンピュータは、ＡＰ１２に書き込み要求とデータを送る。ＡＰ１２は、データを決められた単位に分割し、書き込み要求をＤＰ１４へ送る。書き込み要求を受け取ったＤＰ１４は、論理ボリューム情報から二重化を行うべき相手のＤＰ１４を判断し、そのＤＰ１４へ書き込み要求を送る。ここで、ＡＰ１２からの書き込み要求を受け取ったＤＰ１４をＰｒｉｍａｒｙＤＰとし、ＰｒｉｍａｒｙＤＰからの書き込み要求を受け取ったＤＰ１４をＳｅｃｏｎｄａｒｙＤＰと呼ぶことにする。
【００１８】
書き込み要求を受け取ったＳｅｃｏｎｄａｒｙＤＰは、自己の管理するディスク１５にデータの書き込みをスケジューリングし、ＰｒｉｍａｒｙＤＰに応答を返す。ＳｅｃｏｎｄａｒｙＤＰからの応答を受け取ったＰｒｉｍａｒｙＤＰは、自己の管理するディスク１５にデータの書き込みをスケジューリングし、ＡＰ１２に応答を返す。ＰｒｉｍａｒｙＤＰからの応答を受け取ったＡＰ１２は、書き込み要求を発行した利用者のコンピュータに応答を返す。
【００１９】
データの読み出し時、利用者のコンピュータは、ＡＰ１２へ読み出し要求を送る。ＡＰ１２は、主データを書き込んだＤＰ１４へその読み出し要求を送る。ＡＰ１２からの読み出し要求を受け取ったＤＰ１４は、自己の管理するディスク１５からデータを読み出し、そのデータをＡＰ１２へ送る。データを受け取ったＡＰ１２は、データを組み立て、データを利用者のコンピュータへ送る。
【００２０】
また、設定済みのＤＰ１４をネットワークに組み込むと、新規ＤＰ１４は、ＣＰ１３へ生存情報を送る。生存情報を受け取ったＣＰ１３は、新規追加されたＤＰ１４に対して論理ボリューム情報を問い合わせる。新規ＤＰ１４は、自己の管理する論理ボリューム情報をＣＰ１３へ送る。ＣＰ１３は、論理ボリューム情報に組み込み、新規ＤＰ１４の管理するディスク１５をオーガニックストレージの論理ボリュームの一部として利用することが可能になる。
【００２１】
また、ＭＰ１１において管理者が任意のＤＰ１４を切り離すための管理コマンドを実行すると、データの二重化構成が損なわれないように、データの複写が行われる。ＣＰ１３は、システム全体の空き容量を計算し、二重化されたデータが同じＤＰ１４にあることがないように、切り離し対象のＤＰ１４とその他のＤＰ１４にデータ複写を指示する。複写処理及び二重化の再構成が完了したら、ネットワークからＤＰ１４を切り離すことができる。
【００２２】
また、ＤＰ１４の追加や入れ替えなどのメンテナンスにより、各ＤＰ１４の使用量に偏りが生じると、特定のＤＰ１４へのアクセスが集中し、オーガニックストレージのパフォーマンスが低下してしまうと共に、ＤＰ１４が故障したときのデータの二重化の回復が困難になる。これを解決するために、各ＤＰ１４の使用量を平均化するデータ再配置の機能がある。ＡＰ１２において管理者が再配置のコマンドを実行すると、ＣＰ１３は、ＤＰ１４に使用量を問い合わせ、使用量が平均的になるようにデータの移動を指示する。
【００２３】
また、ＤＰ１４が故障すると、データの二重化構成が損なわれる。このような場合、オーガニックストレージは、自動的にリカバリを実行し、二重化を回復する。ＣＰ１３は、全てのＤＰ１４とハートビート通信を行っている。このハートビート通信が途絶える、もしくはエラー情報を含んだハートビート通信を受け取ることによって、ＣＰ１３は、ＤＰ１４の故障を検知する。
【００２４】
ＣＰ１３は、あるＤＰ１４が故障したと判断すると、保持している論理ボリューム情報から、どのデータの二重化の回復が必要であるかを判断する。次に、ＣＰ１３は、データを再び二重化するための空き領域を別のＤＰ１４に確保する。次に、ＣＰ１３は、二重化されていないデータを持つＤＰ１４から空き領域を持つＤＰ１４へデータの複写を指示する。指示されたＤＰ１４は、指示に従ってデータを複写し、二重化情報を再構成してリカバリを終了する。
【００２５】
また、ディスク１５には、バッドブロックが発生する。そこで、上述したオーガニックストレージは、スライス毎のパトロールを行う。全てのスライスには予めパトロールの順番が振られ、この順番に従って全てのスライスに対するパトロールが行われる。
【００２６】
しかしながら、上述した前提技術に係るオーガニックストレージはスライス間でデータを移動させるため、上述したように固定された順番でスライスのパトロールを行う場合、一度パトロールされてから次にパトロールされるまでの時間は、データ毎にばらつくことになる。パトロールされる時間間隔が長いほど、そのデータの危険性は高くなるため、データが長期間パトロールされずに放置されることは避けたい。
【００２７】
また、上述したオーガニックストレージにおけるパトロールは、ＰｒｉｍａｒｙスライスとＳｅｃｏｎｄａｒｙスライスを読み出して比較する処理を行うため、パトロールの対象となっているＰｒｉｍａｒｙスライスを読み出す場合に性能の劣化が生じていた。
【００２８】
以下、本発明の実施の形態について図面を参照しつつ説明する。
【００２９】
実施の形態．
まず、本実施の形態に係るオーガニックストレージの構成について説明する。
【００３０】
図２は、本実施の形態に係るオーガニックストレージの構成の一例を示すブロック図である。この図において、図１と同一符号は図１に示された対象と同一又は相当物を示しており、ここでの説明を省略する。この図は、図１と比較すると、ＣＰ１３の代わりにＣＰ５３（ストレージ管理装置）を備え、ＤＰ１４の代わりにＤＰ５４を備える。
【００３１】
図３は、本実施の形態に係るＤＰの構成の一例を示すブロック図である。このＤＰ５４は、内部時計６１、スライス管理情報テーブル６２、スライス管理情報操作部６３、スライスデータコピー制御部６４、スライスデータ初期化部６５、データアクセス部６６、ネットワーク通信部６７を備える。
【００３２】
内部時計６１は、自ノード（ＤＰ５４）の時刻を管理する。スライス管理情報テーブル６２は、自ノードのスライス管理情報を格納する。スライス管理情報操作部６３は、自ノードあるいはネットワーク１６からの指示によりスライス管理情報の参照や更新を行う。スライスデータコピー制御部６４は、自ノードあるいはネットワーク１６からの指示によりスライス内の全データを他のスライスへコピーする。スライスデータ初期化部６５は、スライス内の全データの初期化を行う。データアクセス部６６は、自ノードの管理するディスク１５へのアクセスを制御する。ネットワーク通信部６７は、ネットワーク１６に接続され、他ノードとの通信を行う。
【００３３】
図４は、本実施の形態に係るＣＰの構成の一例を示すブロック図である。このＣＰ５３は、内部時計７１、全スライス管理情報テーブル７２、全スライス管理情報収集部７３、全スライス管理情報操作部７４、スライス管理情報更新指示部７５、スライスデータコピー指示部７６、スライスデータ初期化指示部７７、ネットワーク通信部７８を備える。
【００３４】
内部時計７１は、自ノードの時刻を管理する。全スライス管理情報テーブル７２は、全てのＤＰ５４に管理されたスライス管理情報を格納する。全スライス管理情報収集部７３は、全てのＤＰ５４からスライス管理情報を集める。全スライス管理情報操作部７４は、全スライス管理情報テーブル７２上のデータを元に様々な処理を行う。スライス管理情報更新指示部７５は、ＤＰ５４に対してスライス管理情報の更新を指示する。スライスデータコピー指示部７６は、特定のスライスに対して更新を指示する。スライスデータ初期化指示部７７は、特定のスライスに対してスライスデータ初期化を指示する。ネットワーク通信部７８は、ネットワーク１６に接続され、他ノードとの通信を行う。
【００３５】
次に、スライス管理情報について説明する。
【００３６】
スライス管理情報は、スライス毎に、スライスＩＤ、ＦＬＡＧ、ＬＶＯＬ−ｉｎｆｏ、Ｐａｉｒ−ｉｎｆｏ、ＴｉｍｅＳｔａｍｐ、ａｔｔｒの値を有する。
【００３７】
スライスＩＤは、スライスのＩＤである。ＦＬＡＧは、Ｐ（Ｐｒｉｍａｒｙ），Ｓ（Ｓｅｃｏｎｄａｒｙ），Ｆ（Ｆｒｅｅ），Ｄ（Ｄｉｒｔｙ）のいずれかの値を取る。Ｐｒｉｍａｒｙは、Ｐｒｉｍａｒｙスライスを示し、Ｓｅｃｏｎｄａｒｙは、Ｓｅｃｏｎｄａｒｙスライスを示す。Ｆｒｅｅは、初期化済のスライスであり、全て初期値が書き込まれて初期化されているスライスを示す。Ｄｉｒｔｙは、初期化後に何らかのデータが書き込まれてＰｒｉｍａｒｙまたはＳｅｃｏｎｄａｒｙになり、その後の処理によりＰｒｉｍａｒｙでもＳｅｃｏｎｄａｒｙでもなくなったスライスを示す。また、ＰｒｉｍａｒｙスライスやＳｅｃｏｎｄａｒｙスライスのように有効なデータが存在するスライスを有効スライスと呼び、ＦｒｅｅスライスやＤｉｒｔｙスライスのように有効なデータが存在しないスライスを無効スライスと呼ぶことにする。
【００３８】
ＬＶＯＬ−ｉｎｆｏは、論理ボリューム情報であり、例えば、論理ボリューム識別子とセグメントＩＤである。Ｐａｉｒ−ｉｎｆｏは、セグメントを組んでいる相手スライスの情報であり、例えば、相手ＤＰ５４の番号とスライスＩＤである。ＴｉｍｅＳｔａｍｐは、スライス全体へのアクセスが行われた時刻を示すタイムスタンプである。ａｔｔｒは、その他の属性である。
【００３９】
タイムスタンプの更新のタイミングは、スライス初期化完了時、全面ｒｅａｄ完了時、全面ｗｒｉｔｅ完了時、スライスデータコピー完了時のようにスライス全体へのアクセスが完了した時である。ここで、ｒｅａｄ及びｗｒｉｔｅがチェックを伴うため、スライス全体へのアクセスは、スライスのパトロールと等価になる。
【００４０】
図５は、本実施の形態に係るスライス管理情報の一例を示す概念図である。この例において、ＤＰ５４は、４台であり、それらをＤＰ＃０，ＤＰ＃１，ＤＰ＃２，ＤＰ＃３とする。また、ＤＰ５４は、それぞれ６スライスを管理しており、これらのスライスのスライスＩＤを、上から順に０００，００１，００２，００３，００４，００５とする。また、論理ボリュームは１つであり、その論理ボリューム識別子をＬＶＯＬＡとする。また、その論理ボリュームは６つのセグメントで構成され、それらのセグメントＩＤを１，２，３，４，５，６とする。セグメントＩＤに対応して、ＰｒｉｍａｒｙスライスをＰ１，Ｐ２，Ｐ３，Ｐ４，Ｐ５，Ｐ６で示し、ＳｅｃｏｎｄａｒｙスライスをＳ１，Ｓ２，Ｓ３，Ｓ４，Ｓ５，Ｓ６で示す。
【００４１】
図６は、本実施の形態に係るスライス管理情報テーブルの一例を示す表である。ここでは、ＤＰ＃０，ＤＰ＃１，ＤＰ＃２，ＤＰ＃３のそれぞれのスライス管理情報テーブルを示す。また、タイムスタンプをｔ０００，ｔ１００，ｔ２００，ｔ３００，ｔ４００，ｔ５００で表す。
【００４２】
次に、パトロール処理について説明する。
【００４３】
ここでは、パトロール処理の設定として、タイムスタンプを最優先するタイムスタンプ最優先設定、データ保護を優先するデータ保護優先設定について説明する。
【００４４】
まず、タイムスタンプ最優先設定時のパトロール処理について説明する。
【００４５】
図７は、本実施の形態に係るＣＰによるタイムスタンプ最優先設定時のパトロール処理の一例を示すフローチャートである。まず、全スライス管理情報収集部７３は、全てのＤＰ５４からスライス管理情報を収集する（Ｓ３１）。次に、全スライス管理情報操作部７４は、タイムスタンプをキーとして古い順にソートし（Ｓ３２）、全てのスライスの中でタイムスタンプが最も古いスライスを選択して対象スライスとする（Ｓ３３）。次に、全スライス管理情報操作部７４は、対象スライスのタイムスタンプと現時刻との時間差が予め定められた許容範囲内であるか否かの判断を行う（Ｓ３４）。
【００４６】
許容範囲内である場合（Ｓ３４，ｙｅｓ）、全スライス管理情報操作部７４は、一定時間待機し（Ｓ３５）、このフローは終了する。つまり、前回の対象スライスのパトロール（スライス全体へのアクセスを含む）からあまり時間が経過していない場合、パトロールは直ちには開始されない。
【００４７】
許容範囲内でない場合（Ｓ３４，ｎｏ）、全スライス管理情報操作部７４は、対象スライスが無効スライス（ＦｒｅｅスライスまたはＤｉｒｔｙスライス）であるか否かの判断を行う（Ｓ３６）。
【００４８】
無効スライスである場合（Ｓ３６，ｙｅｓ）、対象スライスに対する無効スライスメディアチェック処理を行い、このフローは終了する（Ｓ３７）。
【００４９】
無効スライスでない場合（Ｓ３６，ｎｏ）、対象スライスに対する有効スライスメディアチェック処理を行い、このフローは終了する（Ｓ３８）。
【００５０】
次に、無効スライスメディアチェック処理について説明する。
【００５１】
図８は、本実施の形態に係るＣＰによる無効スライスメディアチェック処理の一例を示すフローチャートである。まず、スライスデータ初期化指示部７７は、対象スライスを管理するＤＰ５４へスライスデータ初期化指示を送信し（Ｓ４１）、そのＤＰ５４からの応答を受信待機し（Ｓ４２）、応答を受信すると、このフローは終了する。
【００５２】
図９は、本実施の形態に係るＤＰによる無効スライスメディアチェック処理の一例を示すフローチャートである。まず、スライスデータ初期化部６５は、ＣＰ５３から対象スライスのスライスＩＤを含むスライスデータ初期化指示を受信し（Ｓ４５）、対象スライス内のデータ領域に初期値を書き込む（Ｓ４６）。次に、スライス管理情報操作部６３は、対象スライスのスライス管理情報において、フラグをＦｒｅｅに更新し、タイムスタンプを更新する（Ｓ４７）。次に、ネットワーク通信部６７は、ＣＰ５３へ応答を返し（Ｓ４８）、このフローは終了する。その後、ＣＰ５３は、再びパトロール処理を開始する。
【００５３】
次に、有効スライスメディアチェック処理について説明する。
【００５４】
図１０は、本実施の形態に係るＣＰによる有効スライスメディアチェック処理の一例を示すフローチャートである。まず、全スライス管理情報操作部７４は、対象スライスがＰｒｉｍａｒｙスライスであるか否かの判断を行う（Ｓ６１）。
【００５５】
Ｐｒｉｍａｒｙスライスでない場合（Ｓ６１，ｎｏ）、処理Ｓ６３へ移行する。一方、Ｐｒｉｍａｒｙスライスである場合（Ｓ６１，ｙｅｓ）、スライス管理情報更新指示部７５は、ＰｒｉｍａｒｙスライスとＳｅｃｏｎｄａｒｙスライスの交換をそれぞれのＤＰに指示する（Ｓ６２）。
【００５６】
次に、全スライス管理情報操作部７４は、無効スライスの中でタイムスタンプが最も古いスライスを選択してＲｅｓｅｒｖｅスライスとする（Ｓ６３）。ここで、Ｐｒｉｍａｒｙスライスを管理するＤＰ５４をＰｒｉｍａｒｙＤＰと呼び、Ｓｅｃｏｎｄａｒｙスライスを管理するＤＰ５４をＳｅｃｏｎｄａｒｙＤＰと呼び、Ｒｅｓｅｒｖｅスライスを管理するＤＰ５４をＲｅｓｅｒｖｅＤＰと呼ぶ。
【００５７】
次に、スライスデータコピー指示部７６は、ＳｅｃｏｎｄａｒｙＤＰに対して、Ｓｅｃｏｎｄａｒｙスライスをコピー元スライスとしＲｅｓｅｒｖｅスライスをコピー先スライスとするスライスデータコピー指示を行う（Ｓ６４）。次に、スライスデータコピー指示部７６は、ＳｅｃｏｎｄａｒｙＤＰからのスライスデータコピー完了の応答を待つ（Ｓ６５）。次に、スライス管理情報更新指示部７５は、ＳｅｃｏｎｄａｒｙＤＰへＳｅｃｏｎｄａｒｙスライスをＤｉｒｔｙスライスに更新する指示を行い、ＲｅｓｅｒｖｅＤＰへＲｅｓｅｒｖｅスライスをＳｅｃｏｎｄａｒｙスライスに更新する指示を行い、ＰｒｉｍａｒｙＤＰへＳｅｃｏｎｄａｒｙスライスを更新する指示を行い（Ｓ６６）、このフローは終了する。
【００５８】
図１１は、本実施の形態に係るＳｅｃｏｎｄａｒｙＤＰによるスライスデータコピー処理の一例を示すフローチャートである。まず、ＳｅｃｏｎｄａｒｙＤＰにおいて、スライスデータコピー制御部６４は、ＣＰ５３からコピー元スライスの指定及びコピー先スライスの指定を含むスライスデータコピー指示を受信する（Ｓ７１）。次に、スライスデータコピー制御部６４は、指定されたコピー元スライスのデータを読み込み、ＲｅｓｅｒｖｅＤＰへ送信し（Ｓ７２）、全データの送信完了後、コピー元スライスのタイムスタンプを更新し（Ｓ７３）、ＣＰ５３へスライスデータコピー指示に対する応答を送信し（Ｓ７４）、このフローは終了する。
【００５９】
図１２は、本実施の形態に係るＲｅｓｅｒｖｅＤＰによるスライスデータコピー処理の一例を示すフローチャートである。まず、ＲｅｓｅｒｖｅＤＰにおいて、スライスデータコピー制御部６４は、ＳｅｃｏｎｄａｒｙＤＰからのデータを受信すると、コピー先スライスへのコピーを行い（Ｓ７５）、スライス全体のコピー完了後、コピー先スライスのタイムスタンプを更新し（Ｓ７６）、このフローは終了する。
【００６０】
以上に述べたタイムスタンプ最優先設定時のパトロール処理によれば、有効スライスか無効スライスかに関わらず、全てのスライスの中で最もタイムスタンプが古いスライスが対象スライスとして選択されることにより、全てのスライスに対するパトロールの時間間隔を平等に保つことができる。つまり、全てのスライスについて長期間パトロールされない状態を防ぐことができる。
【００６１】
次に、データ保護優先設定時のパトロール処理について説明する。
【００６２】
図１３は、本実施の形態に係るＣＰによるタイムスタンプ最優先設定時のパトロール処理の一例を示すフローチャートである。まず、全スライス管理情報収集部７３は、まず、全スライス管理情報収集部７３は、全てのＤＰ５４からスライス管理情報を収集する（Ｓ８１）。次に、全スライス管理情報操作部７４は、タイムスタンプをキーとして古い順にソートし（Ｓ８２）、有効スライスの中でタイムスタンプが最も古いスライスを選択して対象スライスとする（Ｓ８３）。次に、全スライス管理情報操作部７４は、対象スライスのタイムスタンプと現時刻との時間差が予め定められた許容範囲内であるか否かの判断を行う（Ｓ８４）。
【００６３】
許容範囲内である場合（Ｓ８４，ｙｅｓ）、全スライス管理情報操作部７４は、一定時間待機し（Ｓ８５）、このフローは終了する。
【００６４】
許容範囲内でない場合（Ｓ８４，ｎｏ）、対象スライスに対する有効スライスメディアチェック処理を行い（Ｓ８７）、このフローは終了する。その後、ＣＰ５３は、再びパトロール処理を開始する。
【００６５】
有効スライスメディアチェック処理は、上述した通りである。
【００６６】
以上に述べたデータ優先設定時のパトロール処理によれば、有効スライスの中で最もタイムスタンプが古いスライスが対象スライスとして選択されることにより、全ての有効スライスに対するパトロールの時間間隔を平等に保つことができる。つまり、全ての有効スライスについて長期間パトロールされない状態を防ぐことができる。
【００６７】
また、本実施の形態によれば、対象スライスが有効スライスである場合、スライスデータコピー処理を行うことにより、コピー元の有効スライスとコピー先の無効スライスの両方のパトロールを行うことができる。
【００６８】
スライス全体へのアクセスが完了した時にスライスのタイムスタンプが更新され、タイムスタンプに基づいて対象スライスを選択することにより、スライス全体へのアクセスはパトロールと等価と見なし、そのスライスのパトロールの優先順位を下げることができる。
【００６９】
また、対象スライスがＰｒｉｍａｒｙスライスである場合でもＰｒｉｍａｒｙスライスとＳｅｃｏｎｄａｒｙスライスを交換し、常にＳｅｃｏｎｄａｒｙスライスからＲｅｓｅｒｖｅスライスへのスライスデータコピーを行い、ｒｅａｄはＰｒｉｍａｒｙスライスから行うことにより、パトロール処理によるｒｅａｄ性能の劣化を防ぐことができる。
【００７０】
また、対象スライスが無効スライスである場合、対象スライスのスライスデータ初期化を行うことにより、対象スライスの検査を行うことができる。また、対象スライスが有効スライスである場合、対象スライスから無効スライスの１つであるＲｅｓｅｒｖｅスライスへスライスデータコピーを行うことにより、対象スライスとＲｅｓｅｒｖｅスライスの両方の検査を行うことができる。
【００７１】
なお、収集ステップは、実施の形態における処理Ｓ３１，Ｓ８１に対応する。また、決定ステップは、実施の形態における処理Ｓ３３，Ｓ８３に対応する。また、指示ステップは、実施の形態における処理Ｓ６３，Ｓ６４，Ｓ４１に対応する。
【００７２】
また、収集部は、実施の形態における全スライス管理情報収集部に対応する。また、決定部は、実施の形態における全スライス管理情報操作部に対応する。また、指示部は、実施の形態におけるスライスデータコピー指示部及びスライスデータ初期化指示部に対応する。
【００７３】
更に、ストレージ制御装置を構成するコンピュータにおいて上述した各ステップを実行させるプログラムを、ストレージ制御プログラムとして提供することができる。上述したプログラムは、コンピュータにより読取り可能な記録媒体に記憶させることによって、ストレージ制御装置を構成するコンピュータに実行させることが可能となる。ここで、上記コンピュータにより読取り可能な記録媒体としては、ＲＯＭやＲＡＭ等のコンピュータに内部実装される内部記憶装置、ＣＤ−ＲＯＭやフレキシブルディスク、ＤＶＤディスク、光磁気ディスク、ＩＣカード等の可搬型記憶媒体や、コンピュータプログラムを保持するデータベース、或いは、他のコンピュータ並びにそのデータベースや、更に回線上の伝送媒体をも含むものである。
【００７４】
本発明は、その精神または主要な特徴から逸脱することなく、他の様々な形で実施することができる。そのため、前述の実施の形態は、あらゆる点で単なる例示に過ぎず、限定的に解釈してはならない。本発明の範囲は、特許請求の範囲によって示すものであって、明細書本文には、何ら拘束されない。更に、特許請求の範囲の均等範囲に属する全ての変形、様々な改良、代替および改質は、全て本発明の範囲内のものである。
【００７５】
（付記１）  複数の記憶領域の管理処理をコンピュータに実行させるストレージ管理プログラムであって、
前記複数の記憶領域それぞれから、各記憶領域がデータを格納している有効領域であるか、又はデータを格納していない無効領域であるかを示す有効領域判別情報と、各記憶領域の全体がアクセスされたタイムスタンプ情報とを収集する収集ステップと、
前記収集ステップにより収集された各記憶領域の有効領域判別情報及びタイムスタンプ情報に基づき、前記有効領域のうちタイムスタンプ情報の一番古い記憶領域から前記無効領域のうちタイムスタンプが一番古い記憶領域へのデータのコピーを行うと共に、コピー元及びコピー先のタイムスタンプ情報を更新し、かつ、コピー元の記憶領域の有効領域識別情報を無効領域を示す情報に更新し、コピー先の記憶領域の有効領域識別情報を有効領域を示す情報に更新するデータコピーステップと、
をコンピュータに実行させるストレージ管理プログラム。
（付記２）  付記１に記載のストレージ管理プログラムにおいて、
更に、コンピュータに、
前記有効領域を示す有効領域識別情報が示される記憶領域に対しては、主領域と該主領域と異なる前記有効領域である副領域とに二重化する処理を行わせることを特徴とするストレージ管理プログラム。
（付記３）  付記２に記載のストレージ管理プログラムにおいて、
データは、外部からの要求に従って前記主領域から読み出されると共に、
前記データコピーステップにおいて、前記コピー元が、二重化された領域のうち主領域である場合、該記憶領域を前記副領域に更新すると共に、該記憶領域と二重化された記憶領域を前記主領域に設定するストレージ管理プログラム。
（付記４）  付記１に記載のストレージ管理プログラムにおいて、
前記データコピーステップにおいて、前記有効領域判別情報に基づき、記憶領域に有効領域が無い場合、一番古いタイムスタンプ情報を有する記憶領域の初期化処理を行うストレージ管理プログラム。
（付記５）  付記１に記載のストレージ管理プログラムにおいて、
前記複数の記憶領域それぞれのサイズは、同一であるストレージ管理プログラム。
（付記６）  複数の記憶領域の管理処理を行うストレージ管理装置であって、
前記複数の記憶領域それぞれから、各記憶領域がデータを格納している有効領域であるか、又はデータを格納していない無効領域であるかを示す有効領域判別情報と、各記憶領域の全体がアクセスされたタイムスタンプ情報とを収集する収集部と、
前記収集部により収集された各記憶領域の有効領域判別情報及びタイムスタンプ情報に基づき、前記有効領域のうちタイムスタンプ情報の一番古い記憶領域から前記無効領域のうちタイムスタンプが一番古い記憶領域へのデータのコピーを行うと共に、コピー元及びコピー先のタイムスタンプ情報を更新し、かつ、コピー元の記憶領域の有効領域識別情報を無効領域を示す情報に更新し、コピー先の記憶領域の有効領域識別情報を有効領域を示す情報に更新するデータコピー指示部と、
を備えるストレージ管理装置。
（付記７）  付記６に記載のストレージ管理装置において、
更に、前記有効領域を示す有効領域識別情報が示される記憶領域に対しては、主領域と該主領域と異なる前記有効領域である副領域とに二重化する二重化部を備えるストレージ管理装置。
（付記８）  付記７に記載のストレージ管理装置において、
データは、外部からの要求に従って前記主領域から読み出されると共に、
前記データコピー部は、前記コピー元が、二重化された領域のうち主領域である場合、該記憶領域を前記副領域に更新すると共に、該記憶領域と二重化された記憶領域を前記主領域に設定するストレージ管理装置。
（付記９）  付記６に記載のストレージ管理装置において、
前記データコピー部は、前記有効領域判別情報に基づき、記憶領域に有効領域が無い場合、一番古いタイムスタンプ情報を有する記憶領域の初期化処理を行うストレージ管理装置。
（付記１０）  付記６に記載のストレージ管理装置において、
前記複数の記憶領域それぞれのサイズは、同一であるストレージ管理装置。
（付記１１）  複数の記憶領域の管理処理を行うストレージ管理方法であって、
前記複数の記憶領域それぞれから、各記憶領域がデータを格納している有効領域であるか、又はデータを格納していない無効領域であるかを示す有効領域判別情報と、各記憶領域の全体がアクセスされたタイムスタンプ情報とを収集する収集ステップと、
前記収集ステップにより収集された各記憶領域の有効領域判別情報及びタイムスタンプ情報に基づき、前記有効領域のうちタイムスタンプ情報の一番古い記憶領域から前記無効領域のうちタイムスタンプが一番古い記憶領域へのデータのコピーを行うと共に、コピー元及びコピー先のタイムスタンプ情報を更新し、かつ、コピー元の記憶領域の有効領域識別情報を無効領域を示す情報に更新し、コピー先の記憶領域の有効領域識別情報を有効領域を示す情報に更新するデータコピーステップと、
を実行するストレージ管理方法。
（付記１２）  付記１１に記載のストレージ管理方法において、
更に、前記有効領域を示す有効領域識別情報が示される記憶領域に対しては、主領域と該主領域と異なる前記有効領域である副領域とに二重化する処理を行うことを特徴とするストレージ管理方法。
（付記１３）  付記１２に記載のストレージ管理方法において、
データは、外部からの要求に従って前記主領域から読み出されると共に、
前記データコピーステップにおいて、前記コピー元が、二重化された領域のうち主領域である場合、該記憶領域を前記副領域に更新すると共に、該記憶領域と二重化された記憶領域を前記主領域に設定するストレージ管理方法。
（付記１４）  付記１１に記載のストレージ管理方法において、
前記データコピーステップにおいて、前記有効領域判別情報に基づき、記憶領域に有効領域が無い場合、一番古いタイムスタンプ情報を有する記憶領域の初期化処理を行うストレージ管理方法。
【図面の簡単な説明】
【００７６】
【図１】本発明の実施の形態の前提技術に係るオーガニックストレージの構成の一例を示すブロック図である。
【図２】本実施の形態に係るオーガニックストレージの構成の一例を示すブロック図である。
【図３】本実施の形態に係るＤＰの構成の一例を示すブロック図である。
【図４】本実施の形態に係るＣＰの構成の一例を示すブロック図である。
【図５】本実施の形態に係るスライス管理情報の一例を示す概念図である。
【図６】本実施の形態に係るスライス管理情報テーブルの一例を示す表である。
【図７】本実施の形態に係るＣＰによるタイムスタンプ最優先設定時のパトロール処理の一例を示すフローチャートである。
【図８】本実施の形態に係るＣＰによる無効スライスメディアチェック処理の一例を示すフローチャートである。
【図９】本実施の形態に係るＤＰによる無効スライスメディアチェック処理の一例を示すフローチャートである。
【図１０】本実施の形態に係るＣＰによる有効スライスメディアチェック処理の一例を示すフローチャートである。
【図１１】本実施の形態に係るＳｅｃｏｎｄａｒｙＤＰによるスライスデータコピー処理の一例を示すフローチャートである。
【図１２】本実施の形態に係るＲｅｓｅｒｖｅＤＰによるスライスデータコピー処理の一例を示すフローチャートである。
【図１３】本実施の形態に係るＣＰによるタイムスタンプ最優先設定時のパトロール処理の一例を示すフローチャートである。
【符号の説明】
【００７７】
１１  ＭＰ、１２  ＡＰ、５３  ＣＰ、５４  ＤＰ、１５  ディスク、１６  ネットワーク、６１  内部時計、６２  スライス管理情報テーブル、６３  スライス管理情報操作部、６４  スライスデータコピー制御部、６５  スライスデータ初期化部、６６  データアクセス部、６７  ネットワーク通信部、７１  内部時計、７２  全スライス管理情報テーブル、７３  全スライス管理情報収集部、７４  全スライス管理情報操作部、７５  スライス管理情報更新指示部、７６  スライスデータコピー指示部、７７  スライスデータ初期化指示部、７８  ネットワーク通信部。
【図１】
0004414451.tif 000002
【図２】
0004414451.tif 000003
【図３】
0004414451.tif 000004
【図４】
0004414451.tif 000005
【図５】
0004414451.tif 000006
【図６】
0004414451.tif 000007
【図７】
0004414451.tif 000008
【図８】
0004414451.tif 000009
【図９】
0004414451.tif 000010
【図１０】
0004414451.tif 000011
【図１１】
0004414451.tif 000012
【図１２】
0004414451.tif 000013
【図１３】
0004414451.tif 000014