(57)【要約】【課題】複数の論理ボリュームに対して、リビルド処理を効率的に行なう。【解決手段】複数の記憶装置を用いて構成される複数の論理ボリュームに対するアクセス履歴情報６５を取得するアクセス履歴取得部１７１と、アクセス履歴取得部１７１によって取得されたアクセス履歴情報６５に基づき、複数の論理ボリュームのうち、優先して復元処理を行なう優先論理ボリュームを決定する論理ボリューム決定部１７と、復元対象記憶装置における優先論理ボリュームを、複数の記憶装置のうちの復元対象記憶装置以外の記憶装置から読み出した復元用データを用いて、復元先記憶装置に復元する復元部１３とを備える。【選択図】図２
2016057795.tif 000002
【特許請求の範囲】
【請求項１】
冗長構成がなされた複数の記憶装置および予備記憶装置と通信路を介して通信可能に接続されるストレージ制御装置であって、
前記複数の記憶装置を用いて構成される複数の論理ボリュームに対するアクセス履歴情報を取得するアクセス履歴取得部と、
前記アクセス履歴取得部によって取得された前記アクセス履歴情報に基づき、前記複数の論理ボリュームのうち、優先して復元処理を行なう優先論理ボリュームを決定する論理ボリューム決定部と、
復元対象記憶装置における前記優先論理ボリュームを、前記複数の記憶装置のうちの前記復元対象記憶装置以外の記憶装置から読み出した復元用データを用いて、復元先記憶装置に復元する復元部と
を備えることを特徴とする、ストレージ制御装置。
【請求項２】
前記論理ボリューム決定部が、
前記アクセス履歴情報に基づき、重要度が高いと判断される前記論理ボリュームを前記優先論理ボリュームとして決定することを特徴とする、請求項１記載のストレージ制御装置。
【請求項３】
前記論理ボリューム決定部が、
バックアップコピーがされている論理ボリュームであって、そのバックアップ先にリードが発生している論理ボリュームを、前記優先論理ボリュームとして決定することを特徴とする、請求項２記載のストレージ制御装置。
【請求項４】
前記リードがシーケンシャルリードであることを特徴とする、請求項３記載のストレージ制御装置。
【請求項５】
前記論理ボリューム決定部が、
前記復元対象記憶装置における異常検知時よりも前の所定時間帯に行なわれたアクセス回数が多い論理ボリュームを、前記優先論理ボリュームとして決定することを特徴とする、請求項２〜４のいずれか１項に記載のストレージ制御装置。
【請求項６】
前記復元部による前記復元対象記憶装置の復元が行なわれる時間帯を予測する復元時間帯予測部をそなえ、
前記論理ボリューム決定部が、
前記アクセス履歴情報と予測された前記復元が行なわれる時間帯とに基づき、当該時間帯と同時間帯での、前記アクセス履歴情報においてアクセス頻度が高い論理ボリュームを、前記優先論理ボリュームとして決定することを特徴とする、請求項２記載のストレージ制御装置。
【請求項７】
前記復元時間帯予測部が、前記記憶装置に関してデータ復元の所要時間を示す復元時間情報に基づき、前記復元対象記憶装置の復元に要する時間を予測することを特徴とする、請求項６記載のストレージ制御装置。
【請求項８】
冗長構成がなされた複数の記憶装置を備えるとともに、複数の論理ボリュームを備えるストレージシステムにおいて、
各論理ボリュームに対するアクセス履歴情報を取得するアクセス履歴取得部と、
前記アクセス履歴取得部によって取得された前記アクセス履歴情報に基づき、前記複数の論理ボリュームのうち、優先して復元処理を行なう優先論理ボリュームを決定する論理ボリューム決定部と、
復元対象記憶装置における前記優先論理ボリュームを、前記複数の記憶装置のうちの前記復元対象記憶装置以外の記憶装置から読み出した復元用データを用いて、復元先記憶装置に復元する復元部と
を備えることを特徴とする、ストレージシステム。
【請求項９】
冗長構成がなされた複数の記憶装置および予備記憶装置と通信路を介して通信可能に接続されるコンピュータに、
前記複数の記憶装置を用いて構成される複数の論理ボリュームに対するアクセス履歴情報を取得し、
取得された前記アクセス履歴情報に基づき、前記複数の論理ボリュームのうち、優先して復元処理を行なう優先論理ボリュームを決定し、
復元対象記憶装置における前記優先論理ボリュームを、前記複数の記憶装置のうちの前記復元対象記憶装置以外の記憶装置から読み出した復元用データを用いて、復元先記憶装置に復元する
処理を実行させる、ストレージ制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ制御装置，ストレージシステム及びストレージ制御プログラムに関する。
【背景技術】
【０００２】
情報通信技術（Information and Communication Technology；ＩＣＴ）システムの普及に伴い、近年、Hard Disk Drive（ＨＤＤ）に代表される記憶装置（以下、「ディスク」と総称する）を複数使用するディスクアレイ装置が広く用いられるようになっている。このようなディスクアレイ装置では、一般に、Redundant Arrays of Inexpensive Disks（ＲＡＩＤ）技術を用いて、データが２台以上のディスクに冗長化されて記録されることにより、データの安全性が担保されている。
【０００３】
ここで、ＲＡＩＤとは、複数のディスクを組合せて、仮想的な１台のディスク（ＲＡＩＤグループ）として管理する技術を指す。ＲＡＩＤには、各ディスクへのデータ配置及び冗長性に応じて、ＲＡＩＤ０〜ＲＡＩＤ６のレベルが存在する。
ＲＡＩＤ装置では、ＲＡＩＤを構成する複数ディスクにまたがるストライプ内にパリティデータを入れてＲＡＩＤを構成するディスクの故障に対してデータを保護する。そして、このＲＡＩＤ構成上にＬＵＮ（Logical Unit Number）を割り当ててサーバにディスク領域として見せて使用させている。
【０００４】
データが冗長化されたディスクアレイ装置において、ディスクが故障すると、故障したディスクに記憶されていたデータが再構築されて、予備ディスクなどの代替ディスクに格納される。このような処理は、一般にリビルド処理と呼ばれる。リビルド処理が実行されることで、データの冗長性が回復する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平１０−２９３６５８号公報
【特許文献２】特開２００５−７８４３０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、このような従来のディスクアレイ装置において、例えば、ＲＡＩＤ上に複数のＬＵＮがある場合に、ＬＵＮの重要度に関係なくリビルド処理を行なうので、重要なデータを含むＬＵＮであってもデータ復旧に時間がかかる場合がある。また、リビルド処理の途中で他のリビルド元ディスクに障害が発生しリビルド処理が中断する場合には、重要なデータを含むＬＵＮであっても再構築できない場合がある。
【０００７】
１つの側面では、本発明は複数の論理ボリュームに対して、リビルド処理を効率的に行なうことを目的とする。
【課題を解決するための手段】
【０００８】
このため、このストレージ制御装置は、冗長構成がなされた複数の記憶装置および予備記憶装置と通信路を介して通信可能に接続されるストレージ制御装置であって、前記複数の記憶装置を用いて構成される複数の論理ボリュームに対するアクセス履歴情報を取得するアクセス履歴取得部と、前記アクセス履歴取得部によって取得された前記アクセス履歴情報に基づき、前記複数の論理ボリュームのうち、優先して復元処理を行なう優先論理ボリュームを決定する論理ボリューム決定部と、復元対象記憶装置における前記優先論理ボリュームを、前記複数の記憶装置のうちの前記復元対象記憶装置以外の記憶装置から読み出した復元用データを用いて、復元先記憶装置に復元する復元部とを備える。
【発明の効果】
【０００９】
一実施形態によれば、複数の論理ボリュームに対して、リビルド処理を効率的に行なうことができる。
【図面の簡単な説明】
【００１０】
【図１】実施形態の一例としてのストレージ装置を備えるストレージシステムのハードウェア構成を模式的に示す図である。
【図２】実施形態の一例としてのストレージ装置の機能構成を示す図である。
【図３】実施形態の一例としてのストレージ装置におけるリビルド時間情報を例示する図である。
【図４】実施形態の一例としてのストレージ装置におけるＬＵＮ管理テーブルの構成を例示する図である。
【図５】実施形態の一例としてのストレージ装置におけるリビルド処理を説明する図である。
【図６】実施形態の一例としてのストレージ装置におけるアクセス履歴情報の構成を例示する図である。
【図７】実施形態の一例としてのストレージ装置におけるアクセス履歴情報の作成方法を例示するフローチャートである。
【図８】実施形態の一例としてのストレージ装置における第１の優先順位設定方法について説明するための図である。
【図９】実施形態の一例としてのストレージ装置における第２の優先順位設定方法について説明するための図である。
【図１０】実施形態の一例としてのストレージ装置におけるリビルド処理の概要を説明するフローチャートである。
【図１１】実施形態の一例としてのストレージ装置における第１の優先順位設定方法を説明するフローチャートである。
【図１２】実施形態の一例としてのストレージ装置における第２の優先順位設定方法を説明するフローチャートである。
【図１３】実施形態の一例としてのストレージ装置におけるリビルド処理部によるリビルド処理を説明するフローチャートである。
【発明を実施するための形態】
【００１１】
以下、図面を参照して本ストレージ制御装置，ストレージシステム及びストレージ制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１２】
図１は実施形態の一例としてのストレージ装置１を備えるストレージシステム４のハードウェア構成を模式的に示す図、図２は実施形態の一例としてのストレージ装置１の機能構成を示す図である。
図１に例示するストレージシステム４においては、ストレージ装置１と１つ以上（図１に示す例では２つ）のホスト装置２ａ，２ｂとが冗長化された複数のパスを介して接続されている。
【００１３】
ストレージ装置１は、ドライブエンクロージャ（ＤＥ：Drive Enclosure）３０に格納された記憶装置３１を仮想化して、仮想ストレージ環境を形成する。そしてストレージ装置１は、仮想ボリューム（ＬＵＮ）を上位装置であるホスト装置２ａ，２ｂに提供する。
ホスト装置２ａ，２ｂは、例えば、サーバ機能をそなえた情報処理装置であり、本ストレージ装置１との間において、ＮＡＳ（Network Attached Storage）やＳＡＮ（Storage Area Network）のコマンドを送受信する。これらのホスト装置２ａ，２ｂは、同様の構成を有している。
【００１４】
以下、ホスト装置を示す符号としては、複数のホスト装置のうち１つを特定する必要があるときには符号２ａ，２ｂを用いるが、任意のホスト装置を指すときには符号２を用いる。
ホスト装置２は、図示しないＣＰＵ（Central Processing Unit）やメモリを備え、ＣＰＵがメモリ等に格納されたＯＳ（Operating System）やプログラムを実行することで、種々の機能を実行する。
【００１５】
ホスト装置２は、例えば、ストレージ装置１に対してＮＡＳにおけるリード／ライト等のディスクアクセスコマンドを送信することにより、ストレージ装置１が提供するボリュームにデータの書き込みや読み出しを行なう。
そして、本ストレージ装置１は、ホスト装置２からボリュームに対して行なわれる入出力要求（例えば、リードコマンドやライトコマンド）に応じて、このボリュームに対応する実ストレージに対して、データの読み出しや書き込み等の処理を行なう。なお、ホスト装置２からの入出力要求のことをＩＯコマンドという場合がある。
【００１６】
スイッチ３ａ，３ｂは、ホスト装置２ａ，２ｂとストレージ装置１のコントローラ１００との通信を中継する中継装置である。各スイッチ３ａ，３ｂは、それぞれホスト装置２ａ，２ｂに接続されるとともに、コントローラ１００に接続されている。
図１に示す例においては、コントローラ１００に２つのポート１０１ａ，１０１ｂが備えられている。そして、ポート１０１ａにスイッチ３ａが、又、ポート１０１ｂにスイッチ３ｂが、それぞれ接続され、更に、各スイッチ３ａ，３ｂにそれぞれホスト装置２ａ，２ｂが接続されている。
【００１７】
ストレージ装置１は、図１に示すように、１つ以上（本実施形態では１つ）のコントローラ１００及び１つ以上（図１に示す例では１つ）のドライブエンクロージャ（ＤＥ）３０をそなえる。
ドライブエンクロージャ３０には、１以上（図１に示す例では８つ）の記憶装置（物理ディスク）３１ａ−１〜３１ａ−４，３１ｂ−１〜３１ｂ−４が搭載され、これらの記憶装置３１ａ−１〜３１ａ−４，３１ｂ−１〜３１ｂ−４の記憶領域（実ボリューム，実ストレージ）を、本ストレージ装置１に対して提供する。
【００１８】
以下、記憶装置を示す符号としては、複数の記憶装置のうち１つを特定する必要があるときには符号３１ａ−１〜３１ａ−４，３１ｂ−１〜３１ｂ−４を用いるが、任意の記憶装置を指すときには符号３１を用いる。又、記憶装置３１をディスク３１という場合がある。
また、以下、記憶装置３１ａ−１，３１ａ−２，３１ａ−３，３１ａ−４を、disk1，disk2，disk3，disk4とそれぞれ表す場合がある。更に、以下、記憶装置３１ｂ−１，３１ｂ−２，３１ｂ−３，３１ｂ−４を、disk1’，disk2’，disk3’，disk4’とそれぞれ表す場合がある。
【００１９】
記憶装置３１は、ハードディスクドライブ（ＨＤＤ）、ＳＳＤ等の記憶装置であって、種々のデータを格納するものである。
ドライブエンクロージャ３０は、例えば複数段のスロット（図示省略）を備えて構成され、これらのスロットに記憶装置３１を挿入することにより、実ボリューム容量を随時変更することができる。
【００２０】
また、ドライブエンクロージャ３０に備えられた複数の記憶装置３１を用いてＲＡＩＤが構成される。図１に示す例においては、記憶装置３１ａ−１〜３１ａ−４を用いてＲＡＩＤが構成されており、これらの記憶装置３１ａ−１〜３１ａ−４がＲＡＩＤグループ３０ａを構成している。
このＲＡＩＤグループ３０ａを構成する記憶装置３１ａ−１〜３１ａ−４をＲＡＩＤ構成ディスク３１ａという場合がある。
【００２１】
記憶装置３１ｂ−１〜３１ｂ−４は、ＲＡＩＤディスクグループ内のディスク故障にそなえて予備的に設けられた予備ディスクであり、ホットスペア（Hot spare；ＨＳ）として用いられる。これらの記憶装置３１ｂ−１〜３１ｂ−４が予備ディスクグループ３０ｂを構成している。以下、記憶装置３１ｂを予備ディスク３１ｂという場合がある。
ドライブエンクロージャ３０は、コントローラ１００のデバイスアダプタ（Device Adapter：ＤＡ）１０３，１０３とそれぞれ接続されている。
【００２２】
コントローラエンクロージャ４０は、１以上（図１に示す例では１つ）のコントローラ１００を備える。
コントローラ１００は、ストレージ装置１内の動作を制御するストレージ制御装置であり、ホスト装置２から送信されるＩＯコマンドに従って、ドライブエンクロージャ３０の記憶装置３１へのアクセス制御等、各種制御を行なう。
【００２３】
なお、図１に示す例においては、ストレージ装置１に１つのコントローラ１００が備えられているが、これに限定されるものではなく、２つ以上のコントローラ１００を備えてもよい。すなわち、複数のコントローラ１００により冗長化を行ない、通常は、いずれかのコントローラ１００がプライマリとして各種制御を行ない、このプライマリコントローラ１００の故障時には、セカンダリのコントローラ１００がプライマリとしての動作を引き継いでもよい。
【００２４】
コントローラ１００はポート１０１ａ，１０１ｂを介してホスト装置２に接続される。そして、コントローラ１００は、ホスト装置２から送信されるリード／ライト等のＩＯコマンドを受信し、ＤＡ１０３等を介して記憶装置３１の制御を行なう。
コントローラ１００は、図１に示すように、ポート１０１ａ，１０１ｂと複数（図１に示す例では２つ）のＤＡ１０３，１０３とをそなえるとともに、ＣＰＵ１１０，メモリ１０６，フラッシュメモリ１０７及びＩＯＣ（Input Output Controller）１０８をそなえる。
【００２５】
以下、ポートを示す符号としては、複数のポートのうち１つを特定する必要があるときには符号１０１ａ，１０１ｂを用いるが、任意のポートを指すときには符号１０１を用いる。
ポート１０１は、ホスト装置２等から送信されたデータを受信したり、コントローラ１００から出力するデータをホスト装置２等に送信する。すなわち、ポート１０１は、ホスト装置等の外部装置との間でのデータの入出力（ＩＯ）を制御する。
【００２６】
ポート１０１ａは、ＳＡＮを介してホスト装置２と通信可能に接続され、例えば、ＦＣ（Fibre Channel）インタフェース等のネットワークアダプタに備えられるＦＣポートである。
ポート１０１ｂは、ＮＡＳを介してホスト装置２と通信可能に接続され、例えば、ＬＡＮ（Local Area Network）インタフェースのＮＩＣ（Network Interface Card）ポートである。コントローラ１００は、これらのポート１０１により通信回線を介してホスト装置２等と接続され、ＩＯコマンドの受信やデータの送受信等を行なう。
【００２７】
そして、ポート１０１ａにスイッチ３ａが、又、ポート１０１ｂにスイッチ３ｂが、それぞれ接続され、更に、各スイッチ３ａ，３ｂにそれぞれホスト装置２ａ，２ｂが接続されている。
すなわち、ホスト装置２ａ，２ｂは、それぞれスイッチ３ａを介してポート１０１ａに接続されるとともに、スイッチ３ｂを介してポート１０１ｂに接続されている。
【００２８】
なお、図１に示す例においてはコントローラ１００に２つのポート１０１ａ，１０１ｂが備えられているが、これに限定されるものではなく、１つもしくは３つ以上のポートを備えてもよい。
ＤＡ１０３は、ドライブエンクロージャ３０や記憶装置３１等と通信可能に接続するためのインタフェースである。ＤＡ１０３にはドライブエンクロージャ３０の記憶装置３１が接続され、コントローラ１００は、ホスト装置２から受信したＩＯコマンドに基づき、これらの記憶装置３１に対するアクセス制御を行なう。
【００２９】
コントローラ１００は、これらのＤＡ１０３を介して、記憶装置３１に対するデータの書き込みや読み出しを行なう。又、図１に示す例においては、コントローラ１００に２つのＤＡ１０３がそなえられている。そして、コントローラ１００において、各ＤＡ１０３にドライブエンクロージャ３０が接続されている。これにより、ドライブエンクロージャ３０の記憶装置３１には、コントローラ１００からデータの書き込みや読み出しを行なうことができる。
【００３０】
フラッシュメモリ１０７は、ＣＰＵ１１０が実行するプログラムや種々のデータ等を格納する記憶装置である。
また、フラッシュメモリ１０７には、図２に示すように、ディスク情報６７，リビルド時間情報６８およびアクセス履歴データベース（ＤＢ：Data Base）６６が格納される。
ディスク情報６７は、本ストレージ装置１に備えられる各記憶装置３１に関する情報である。このディスク情報６７は、記憶装置３１を特定する識別情報に対して、当該記憶装置３１の性能情報を関連付けることにより構成されている。
【００３１】
性能情報は、記憶装置３１についての、リビルド処理に要する時間（リビルド時間）に影響を与える性能に関する情報である。性能情報は、特にデータアクセスに影響を与える性能を表すものであり、例えば、データ容量，モータの回転速度，ＲＡＩＤ種別，ＳＡＳ（Serial Attached Small Computer System Interface）／ＳＡＴＡ（Serial AT Attachment）等のインタフェース種類，ＨＤＤ／ＳＳＤ等のディスク種類である。
【００３２】
後述する情報取得部１７１等は、このディスク情報６７を参照することで、リビルド先ディスク３１ｂもしくはリビルド元ディスク３１ａの性能情報を取得する。
リビルド時間情報６８は、記憶装置３１に関して、リビルド処理に要する時間を示す。
図３は実施形態の一例としてのストレージ装置１におけるリビルド時間情報６８を例示する図である。
【００３３】
この図３に例示するリビルド時間情報６８は、記憶装置３１の性能情報であるデータ容量及びモータの回転速度に対して、リビルド処理に要する時間（リビルド時間）を関連付けることにより構成されている。
リビルド時間には、例えば、運用実績に基づく実績値や期待値等が予め登録される。
なお、リビルド時間情報６８は、これに限定されるものではなく、例えば、性能情報として上述したＲＡＩＤ種別やインタフェース種類，ディスク種類を関連付ける等、種々変形して実施することができる。
【００３４】
後述する第２決定部１７３は、リビルド先ディスク３１ｂ（もしくは故障ディスク３１ａ）の性能情報に基づいて、このリビルド時間情報６８を参照することでリビルド処理に要する時間を見積もり、予測リビルド時間を決定する。
アクセス履歴ＤＢ６６は、後述するアクセス履歴作成部１８によって作成されたアクセス履歴情報６５（図６参照）を管理するデータベースである。このアクセス履歴ＤＢ６６は、本ストレージ装置１において備えられる各ＬＵＮ毎に作成された、所定時間毎のアクセス履歴であるアクセス履歴情報６５を記録する。そして、例えば、日時やＬＵＮを特定する識別情報等に基づいてこのアクセス履歴ＤＢ６６を参照することで、任意のＬＵＮについての任意の時間のアクセス履歴を取得することができる。
【００３５】
また、このアクセス履歴ＤＢ６６には、本ストレージシステム４に接続された他のストレージ装置のＬＵＮについてのアクセス履歴情報も記録される。
メモリ１０６は、種々のデータやプログラムを一時的に格納する記憶装置であり、図示しないメモリ領域とキャッシュ領域とをそなえる。キャッシュ領域は、ホスト装置２から受信したデータや、ホスト装置２に対して送信するデータを一時的に格納する。メモリ領域には、ＣＰＵ１１０がプログラムを実行する際に、データやプログラムを一時的に格納・展開して用いる。
【００３６】
このメモリ１０６には、後述するＲＡＩＤ制御部１２によるＲＡＩＤ制御に用いられる、仮／実ボリューム変換テーブル６２やディスク構成情報６３，ＲＡＩＤ構成テーブル６４等が格納される。仮／実ボリューム変換テーブル６２は、ホスト装置２に提供する仮想ボリュームのアドレスを、記憶装置３１の物理アドレス（実アドレス）にマッピングしているテーブルである。
【００３７】
ディスク構成情報６３は、本ストレージ装置１に備えられる記憶装置３１を管理する情報である。ディスク構成情報６３において、例えば、各記憶装置３１のディスク種別や、各記憶装置３１がドライブエンクロージャ３０のどのスロットに取り付けられているか、又、どの記憶装置３１が予備ディスク３１であるか等の情報が管理される。
ＲＡＩＤ構成テーブル６４は、後述するＲＡＩＤ制御部１２がＲＡＩＤの管理を行なうために用いる情報であり、例えば、ＲＡＩＤ種別や、ＲＡＩＤグループ３０ａを構成する記憶装置３１ａを特定する情報等が格納される。
【００３８】
なお、これらの仮／実ボリューム変換テーブル６２やディスク構成情報６３，ＲＡＩＤ構成テーブル６４は既知であるので、その詳細な説明は省略する。
また、メモリ１０６には、後述するリビルド処理部１３がリビルド処理を行なう際に、各リビルド元ディスク３１ａから読み出されたデータが一時的に格納される。
さらに、メモリ１０６には、ＬＵＮ管理テーブル６１及びアクセス履歴情報６５ｃ，６５ｂが格納される。これらのＬＵＮ管理テーブル６１及びアクセス履歴情報６５ｃ，６５ｂの詳細は後述する。また、メモリ１０６には、後述するセッション情報も格納される。
【００３９】
ＩＯＣ１０８は、コントローラ１００内におけるデータ転送を制御する制御装置であり、例えば、メモリ１０６に格納されたデータをＣＰＵ１１０を介することなく転送させるＤＭＡ転送（Direct Memory Access）を実現する。
ＣＰＵ１１０は、種々の制御や演算を行なう処理装置であり、例えばマルチコアプロセッサ（マルチＣＰＵ）である。ＣＰＵ１１０は、フラッシュメモリ１０７等に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
【００４０】
図２に示すように、ストレージ装置１は、ＩＯ制御部１１，ＲＡＩＤ制御部１２，リビルド処理部１３，ＬＵＮ選択部１７，アクセス履歴作成部１８及びコピー処理部１９として機能する。
そして、コントローラ１００のＣＰＵ１１０が、プログラム（ストレージ制御プログラム）を実行することにより、これらのＩＯ制御部１１，ＲＡＩＤ制御部１２，リビルド処理部１３，ＬＵＮ選択部１７，アクセス履歴作成部１８及びコピー処理部１９として機能する。
【００４１】
なお、これらのＩＯ制御部１１，ＲＡＩＤ制御部１２，リビルド処理部１３，ＬＵＮ選択部１７，アクセス履歴作成部１８及びコピー処理部１９としての機能を実現するためのプログラム（ストレージ制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００４２】
ＩＯ制御部１１，ＲＡＩＤ制御部１２，リビルド処理部１３，ＬＵＮ選択部１７，アクセス履歴作成部１８及びコピー処理部１９としての機能を実現する際には、内部記憶装置（本実施形態ではフラッシュメモリ１０７やメモリ１０６）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００４３】
ＲＡＩＤ制御部１２は、記憶装置３１ａを用いてＲＡＩＤを実現し、ＲＡＩＤを構成する記憶装置３１ａの制御を行なう。すなわち、ＲＡＩＤ制御部１２は、複数の記憶装置３１ａを用いた冗長構成を設定する。
このＲＡＩＤ制御部１２は、上述したＲＡＩＤ構成テーブル６４を作成・管理して、ＲＡＩＤ構成ディスク３１ａを用いてＲＡＩＤグループ３０ａを設定し、各種ＲＡＩＤ制御を行なう。なお、ＲＡＩＤ制御部１２によるＲＡＩＤの管理は既知の手法で実現することができ、その説明は省略する。
【００４４】
また、ＲＡＩＤ制御部１２は、記憶装置３１を用いてＬＵＮ（論理ボリューム）の設定・管理を行ない、ホスト装置２はこの設定されたＬＵＮに対してデータアクセスを行なう。ＲＡＩＤ制御部１２は、ＬＵＮ管理テーブル６１を用いて、ＬＵＮの管理を行なう。すなわち、ＲＡＩＤ制御部１２は、ＬＵＮの管理を行なうＬＵＮ管理部としての機能を備える。
【００４５】
図４は実施形態の一例としてのストレージ装置１におけるＬＵＮ管理テーブル６１の構成を例示する図である。
ＬＵＮ管理テーブル６１はＬＵＮ毎に備えられる管理情報であり、この図４に例示するＬＵＮ管理テーブル６１はＬＵＮ１についての情報を示す。
ＬＵＮ管理テーブル６１は、項目と内容と備考とを関連付けて構成されている。図４に示す例においては、ＬＵＮ管理テーブル６１に１２個の項目が登録されており、これらの項目を特定するための項番１〜１２が設定されている。
【００４６】
具体的には、項目として、ＬＵＮ名，構成ディスク名リスト，各ディスク上の位置、サイズ，故障ディスク名，ＬＵＮの状態，利用予備ディスク名リスト，ディスクの安定度リスト，リビルド済サイズ，元ディスクのリード／ライト中カウンタ，予備ディスクのリード／ライト中カウンタ，元ディスクのＩＯ禁止フラグ及び予備ディスクのＩＯ禁止フラグが登録されており、これらに対して１〜１２の項（項番）が設定されている。
【００４７】
項１のＬＵＮ名には、ＬＵＮを特定する識別情報が登録され、図４に示す例においては“LUN1”が登録されている。項２の構成ディスク名リストは、そのＬＵＮを構成する記憶装置３１を示す情報が登録される。すなわち、構成ディスク名リストには、ＲＡＩＤ構成ディスク３１ａを示す情報が格納される。図４に示す例においては、構成ディスク名リストにdisk1，disk2，disk3，disk4が登録されている。
【００４８】
項３の各ディスク上の位置、サイズは、そのＬＵＮを構成するＲＡＩＤ構成ディスク３１ａ上における、当該ＬＵＮのデータの格納位置とサイズを示す情報が登録される。なお、位置としては、例えばオフセット（Offset）値が登録される。
項４の故障ディスク名は、そのＬＵＮを構成するＲＡＩＤ構成ディスク３１ａにおいて、故障の発生が検知された記憶装置３１ａを示す情報が登録され、図４に示す例においては“disk2”が登録されている。
【００４９】
項５のＬＵＮの状態は、そのＬＵＮの状態を示す情報８が格納され、図４に示す例においては、正常な状態であることを示す“正常”、リビルド中であることを示す“rebuild中”及び、リビルド済みであることを示す“rebuild済”のいずれかが格納される。
項６の利用予備ディスク名リストは、各ＲＡＩＤ構成ディスク３１ａに対応付けられている予備ディスク３１ｂを示す情報が格納される。
【００５０】
図４に示す例においては、項２の構成ディスク名リストのdisk1，disk2，disk3及びdisk4に対して、disk1’，disk2’，disk3’及びdisk4’が対応付けられている。すなわち、disk1とdisk1’とが対をなし、同様に、disk2，disk3及びdisk4がdisk2’，disk3’及びdisk4’とそれぞれ対をなす。
また、ＲＡＩＤ構成ディスク３１ａの数に対して割り当て可能な予備ディスク３１ｂの数（本数）が少ない場合には、一部のＲＡＩＤ構成ディスク３１ａに対してのみ予備ディスク３１ｂが割り当てられる。図４においては、このように予備ディスク３１ｂの数が少ない場合の例も表示されており、割り当てられた予備ディスク３１ｂのみが示され、割り当てられる予備ディスク３１ｂがない部分には、横線（−）を記している。
【００５１】
項７のディスクの安定度リストには、そのＬＵＮを構成するＲＡＩＤ構成ディスク３１ａを示す情報が、その安定度が高い順に登録される。図４に示す例においては、ＲＡＩＤ構成ディスク３１ａが、disk1，disk4，disk3の順で登録されている。なお、disk2は故障中であるので、このディスクの安定度リストには登録されない。
項８のリビルド済サイズには、項２の故障ディスクに関するリビルド処理が実行された場合に、その復元されたデータの合計値（データサイズ）が進捗状況として登録される。このリビルド済みサイズの初期値は０であり、リビルド処理の進行に伴い、その値が大きくなる。
【００５２】
例えば、上述した項３のＬＵＮのサイズと、この項８のリビルド済サイズとを比較することにより、項５に格納されるＬＵＮの状態として、“rebuild中”であるか“rebuild済”であるかを判断することができる。
項９の元ディスクのリード／ライト中カウンタには、そのＬＵＮを構成する各ＲＡＩＤ構成ディスク（元ディスク）３１ａのそれぞれについて、実行中のリードアクセス及びライトアクセスの数が格納される。すなわち、各ＲＡＩＤ構成ディスク３１ａへのＩＯアクセス状態をリアルタイムに表す。
【００５３】
図４に示す例においては、各ＲＡＩＤ構成ディスク３１ａのそれぞれに対して、リード中カウンタの値ｎとライト中カウンタの値ｎとを、（ｎ，ｎ）の形式で示している。
ホスト装置２からＬＵＮに対するリード要求もしくはライト要求のＩＯコマンドを受信すると、例えば、後述するＩＯ制御部１１が、そのアクセス先のＲＡＩＤ構成ディスク３１ａについてのリード中カウンタもしくはライト中カウンタの値をインクリメントする。又、ＩＯ制御部１１は、リードアクセスもしくはライトアクセスが完了すると、対応するカウンタの値をデクリメントする。
【００５４】
この元ディスクのリード／ライト中カウンタの値を参照することで、各ＲＡＩＤ構成ディスク３１ａがＩＯ処理を実行中であるか否かを判断することができる。
項１０の予備ディスクのリード／ライト中カウンタには、各予備ディスク３１ｂのそれぞれについて、実行中のリードアクセス及びライトアクセスの数が格納される。すなわち、各予備ディスク３１ｂへのＩＯアクセス状態を示す。
【００５５】
図４に示す例においては、各予備ディスク３１ｂのそれぞれに対して、リード中カウンタの値ｎとライト中カウンタの値ｎとを、（ｎ，ｎ）の形式で示している。
例えば、その予備ディスク３１ｂに対してデータのライトを行なう際にライト中カウンタの値がインクリメントされる。又、ライト処理が完了すると、対応するカウンタの値はデクリメントされる。
【００５６】
この予備ディスクのリード／ライト中カウンタの値を参照することで、各予備ディスク３１ｂがＩＯ処理を実行中であるか否かを判断することができる。
項１１の元ディスクのＩＯ禁止フラグは、そのＬＵＮを構成する各ＲＡＩＤ構成ディスク３１ａのそれぞれについて、ＩＯ処理が禁止されているか否かを示す情報が格納される。図４に示す例においては、“０”もしくは“１”が格納され、“１”がフラグとして設定されている場合には、そのＲＡＩＤ構成ディスク３１ａへのＩＯが禁止されていることを示す。
【００５７】
項１２の予備ディスクのＩＯ禁止フラグは、予備ディスク３１ｂのそれぞれについて、ＩＯ処理が禁止されているか否かを示す情報が格納される。図４に示す例においては、“０”もしくは“１”が格納され、“１”がフラグとして設定されている場合には、その予備ディスク３１ｂへのＩＯが禁止されていることを示す。
コピー処理部１９は、ＬＵＮ（コピー元ＬＵＮ）に記憶されたデータのコピーを、他のＬＵＮ（コピー先ＬＵＮ）に転送し、このコピー先のＬＵＮに格納することにより、データのバックアップを行なう。
【００５８】
本実施形態において、コピー処理部１９は、コピー元ＬＵＮからコピー先ＬＵＮへのデータ転送を、例えばＯＰＣ（One Point Copy）を用いて行なう。ＯＰＣとは、バックアップ対象となるデータについて所定時点における、その後の更新等を含まないデータであるスナップショット（Snapshot）を作成するものである。具体的には、バックアップを作成する際に、当該作成時点における対象となるコピー元ＬＵＮ（ボリューム）の全データをバックアップする手法である。
【００５９】
なお、コピー処理部１９によるコピー元ＬＵＮからコピー先ＬＵＮへのバックアップ手法は、ＯＰＣに限定されるものではなく種々の手法を用いて実現してもよい。例えば、バックアップ手法として、ＯＰＣの拡張機能としての、ＳｎａｐＯＰＣ，ＳｎａｐＯＰＣ＋，ＱｕｉｃｋＯＰＣ等の手法を用いて行なってもよく、また、他のデータバックアップ手法を用いてもよい。
【００６０】
なお、これらのＯＰＣ，ＳｎａｐＯＰＣ，ＳｎａｐＯＰＣ＋，ＱｕｉｃｋＯＰＣ等によるコピー元ＬＵＮからコピー先ＬＵＮへのデータのバックアップ手法は既知であり、その詳細な説明は省略する。
以下、コピー処理部１９が、コピー元ＬＵＮからコピー先ＬＵＮへのデータ転送をＯＰＣの手法を用いて行なう例について示す。
【００６１】
１回のＯＰＣ等のコピーの処理の単位をセッションという。以下、コピー元のボリュームからコピー先のボリュームへのデータのコピー処理をコピーセッションもしくは単にセッションという場合がある。
コピー処理部１９は、例えば、セッション情報（図示省略）を用いて、コピーセッションに関する情報を管理する。
【００６２】
セッション情報は、コピーセッションに関する情報であって、例えば、セッションＩＤ（Session ID），コピー元ＬＵＮ（Logical Unit Number）及び開始ＬＢＡ（Logical Block Address），コピー先ＬＵＮ及び開始ＬＢＡ及びＢＣ（Block Count）並びにコピー種別である。このようなセッション情報は、例えば、メモリ１０６の所定の領域に格納される。なお、セッション情報は既知であり、その詳細な説明は省略する。
【００６３】
後述する情報取得部１７１は、このセッション情報を参照することで、ＯＰＣのコピーセッションについて、そのコピー元ＬＵＮ及びコピー先ＬＵＮを把握することができる。
リビルド処理部１３は、例えば、いずれかのディスク３１ａの故障を検出した場合に、リビルド処理を実行制御する。以下、故障が検出されたディスク３１ａを故障ディスク３１ａという場合がある。この故障ディスク３１ａが復元対象記憶装置に相当する。なお、ディスク３１ａの故障は、例えば媒体エラー等の所定のエラーが閾値として設定された頻度以上で生じる場合に発生したと判断される。
【００６４】
リビルド処理は、ＲＡＩＤグループの冗長性を自動回復する処理であり、ＲＡＩＤグループに属する記憶装置３１ａが故障した際に、代理として用いられる予備ディスク（代理ディスク，第１の予備記憶装置，復元先記憶装置）３１ｂに対し、故障ディスク３１ａのデータを、同一ＲＡＩＤグループにおける故障ディスク３１ａ以外の記憶装置３１ａのデータを用いて再構築する処理である。以下、同一ＲＡＩＤグループにおける故障ディスク３１ａ以外の記憶装置（冗長用記憶装置）３１ａをリビルド元ディスク３１ａという場合がある。又、このリビルド元ディスクを単に元ディスクという場合もある。
【００６５】
つまり、リビルド処理部１３は、故障ディスク３１ａの発生を検出すると、故障ディスク３１ａ以外のリビルド元ディスク３１ａのデータ（復元用データ）を用いて、故障ディスク３１ａに代わる代理ディスク（リビルド先ディスク）３１ｂに故障ディスク３１ａのデータを再構築する。
このように、リビルド処理部１３は、複数のＲＡＩＤ構成ディスク３１ａのうち故障ディスク（復元対象記憶装置）３１ａ以外のリビルド元ディスク（冗長用記憶装置）３１ａから読み出した冗長データを用いて、故障ディスク３１ａのデータを、予備ディスク（第１の予備記憶装置，復元先記憶装置）に再構成（復元）する復元部として機能する。
【００６６】
リビルド処理部１３による故障ディスク３１ａのデータの復元は、既知の手法で実現することができる。
同一のＲＡＩＤグループ３０ａを構成する複数の記憶装置３１ａは、各記憶装置３１ａのデータが他の複数の記憶装置（冗長用記憶装置）３１ａに分散してコピーされることにより、冗長化されている。
【００６７】
リビルド処理部１３は、故障ディスク３１ａと同じＲＡＩＤグループを構成する複数の記憶装置（冗長用記憶装置）３１ａにそれぞれ格納された復元用データを読み出して、代替ディスク３１ｂに格納することで、故障ディスク３１ａのデータを代替ディスク３１ｂに復元（データディスク構築）する。
例えば、メモリ１０６の所定の領域に、格納した故障ディスク３１ａ以外の各リビルド元ディスク３１ａから読み出したデータを格納し、このデータに対してパリティを用いたＸＯＲ（排他的論理和）演算を行なうことで、故障ディスク３１ａのデータの復元を行なう。
【００６８】
図５は実施形態の一例としてのストレージ装置１におけるリビルド処理を説明する図である。この図５に示す例においては、ＲＡＩＤグループ３０ａは、４本（３本＋１本）のＲＡＩＤ構成ディスク３１ａ−１〜３１ａ−４によりＲＡＩＤ５を実現している。
以下、本実施形態においては、これらのＲＡＩＤ構成ディスク３１ａ−１〜３１ａ−４のうち、ディスク３１ａ−２の故障が検知された場合を示す。すなわち、ＲＡＩＤグループ３０ａにおいてディスク３１ａ−２の故障が発生したものとし、以下、この故障が発生しているＲＡＩＤグループ３０ａを故障ＲＡＩＤグループ３０ａという場合がある。
【００６９】
また、この図５に示す例においては、ＲＡＩＤグループ３０ａのディスク３１ａ−１〜３１ａ−４を用いて３つのＬＵＮ１〜３が形成されており、これらのうちＬＵＮ１のデータ（Data1-2）を復元する例を示している。
リビルド処理部１３は、ディスク３１ａ−２の故障を検出すると、同一ＲＡＩＤグループ３０ａ内のリビルド元ディスク３１ａ−１，３１ａ−３，３１ａ−４の復元用データ（Data1-1，1-3，1-4）を用いて、故障ディスク３１ａ−２のＬＵＮ１のデータ（復元Date1-2）を作成する（図５中の破線参照）。
【００７０】
そして、この作成した故障ディスク３１ａ−２のＬＵＮ１のデータ（復元Date1-2）を、故障ディスク３１ａ−２に代わる代替ディスク（リビルド先ディスク）３１ｂ−２に格納することで、ＬＵＮ１のデータを復元し、故障ディスク３１ａ−２を再構築する。
ＲＡＩＤグループ３０ａにおいて、複数のＬＵＮが形成されている場合には、リビルド処理部１３はＬＵＮ毎にリビルド処理を行なう。
【００７１】
また、リビルド処理部１３は、ＲＡＩＤグループ３０ａにおいて複数のＬＵＮが形成されている場合には、ＬＵＮ選択部１７によって設定された順番（優先順位）に従って、複数のＬＵＮを順番にリビルドする。すなわち、ＬＵＮ選択部１７によって選択されたＬＵＮ（優先ＬＵＮ；優先論理ボリューム）を優先してリビルド処理を行なう。
また、リビルド処理部１３は、複数のＬＵＮについてリビルドを行なう場合には、これらの複数のＬＵＮの一覧（図示省略）と、当該一覧においてリビルド処理の進捗を示すポインタとを用いて、リビルド処理の進捗状況を管理する。
【００７２】
アクセス履歴作成部１８は、ＲＡＩＤ制御部１２によって管理される各ＬＵＮに対するアクセス履歴を採取し、アクセス履歴情報６５（図６参照）を作成する。
具体的には、アクセス履歴作成部１８は、各ＬＵＮに対するライトアクセスおよびリードアクセスをそれぞれ図示しないカウンタ（アクセスカウンタ）を用いて計数し、そのカウント値をアクセス履歴情報６５ｃに記録する。
【００７３】
図６は実施形態の一例としてのストレージ装置１におけるアクセス履歴情報６５ｃの構成を例示する図である。
この図６に示す例においては、本ストレージ装置１において管理されるＬＵＮ（Ｌ１〜Ｌ６）のそれぞれに対して、計数されたリードのアクセス数とライトのアクセス数とが対応付けられている。また、リードのアクセスに関しては、ランダムリード回数とシーケンシャルリード回数とが管理されており、ライトのアクセスに関しても、ランダムライト回数とシーケンシャルライト回数とが管理されている。
【００７４】
すなわち、アクセス履歴作成部１８は、ランダムリード回数，シーケンシャルリード回数，ランダムライト回数及びシーケンシャルライト回数を、アクセス履歴情報６５ｃを用いて管理する。そして、アクセス履歴作成部１８は、ＬＵＮに対してリードアクセスやライトアクセスが発生すると、対応するカウンタ値を更新する。
また、アクセス履歴作成部１８は、所定期間（例えば、１時間）が経過する毎に、作成したアクセス履歴情報６５ｃを、フラッシュメモリ１０７のアクセス履歴ＤＢ６６に、当該アクセス履歴情報６５ｃに関する日付や時刻の情報（タイムスタンプ）とともに記録する。
【００７５】
なお、アクセス履歴情報６５ｃに関する日時情報は、当該アクセス履歴情報６５ｃを作成した日時であってもよく、当該アクセス履歴情報６５ｃをアクセス履歴ＤＢ６６に記録した日時であってもよく、種々変形して実施することができる。
これにより、アクセス履歴ＤＢ６６には、所定期間毎に作成されたアクセス履歴情報６５ｃがデータ採取時刻の情報とともにエントリとして蓄積される。
【００７６】
以下、上記所定期間、すなわち、先にアクセス履歴情報６５ｃがアクセス履歴ＤＢ６６に記録されてから、次にアクセス履歴情報６５ｃがアクセス履歴ＤＢ６６に記録されるまでの期間を、アクセス履歴採取期間という場合がある。本実施形態においては、アクセス履歴採取期間が１時間である例について示す。
すなわち、アクセス履歴情報６５ｃにおけるランダムリード回数，シーケンシャルリード回数，ランダムライト回数及びシーケンシャルライト回数の各値は、“回数／１時間”の単位で表される。
【００７７】
また、アクセス履歴作成部１８は、上記アクセス履歴採取期間が経過するタイミング、つまり、アクセス履歴情報６５ｃをアクセス履歴ＤＢ６６に記録するタイミングで、メモリ１０６における所定の記憶領域に、先に作成したアクセス履歴情報６５ｃをアクセス履歴情報６５ｂとして記録（複写）する。また、これに伴い、メモリ１０６において、先にアクセス履歴情報６５ｂとして記録されていた情報は破棄される。
【００７８】
すなわち、メモリ１０６において、先に作成されていたアクセス履歴情報６５ｂは、アクセス履歴情報６５ｃにより上書き更新される。以下、アクセス履歴情報６５ｂをアクセス履歴情報６５ｃにより上書き更新することを、アクセス履歴情報６５ｂを更新するという場合がある。
さらに、アクセス履歴作成部１８は、アクセス履歴情報６５ｂをアクセス履歴情報６５ｃにより上書き更新した後に、アクセス履歴情報６５ｃをリセットする。リセットされたアクセス履歴情報６５ｃにおいては、それ以降のＬＵＮに対するアクセス発生時に、アクセス履歴作成部１８により対応するカウンタ値が更新される。
【００７９】
すなわち、アクセス履歴情報６５ｃには、アクセス履歴採取期間に各ＬＵＮに対して行なわれたリード／ライトアクセス回数が記録される。このアクセス履歴情報６５ｃは、各ＬＵＮに対する最新のアクセス履歴を示すものであり、以下、アクセス履歴情報６５ｃを、カレントのアクセス履歴情報６５ｃという場合がある。
一方、アクセス履歴情報６５ｂには、カレントのアクセス履歴情報６５ｃよりも１つ前、すなわち、１世代前に採取されたアクセス履歴が記録される。
【００８０】
したがって、メモリ１０６には、カレントのアクセス履歴情報６５ｃと、その１つ前の世代のアクセス履歴情報６５ｂとの２世代分のアクセス履歴が格納されることになる。
また、アクセス履歴情報６５ｃとアクセス履歴情報６５ｂとは、図５に示すような同様の構成を備える。
以下、アクセス履歴情報というときは、符号６５ｃで示すカレントのアクセス履歴情報のほか符号６５ｂで示す１世代前のアクセス履歴情報も含むが、代表してアクセス履歴情報６５として表記する場合もある。
【００８１】
また、アクセス履歴情報６５ｃはフラッシュメモリ１０７のアクセス履歴ＤＢ６６に記録される。  すなわち、アクセス履歴ＤＢ６６はアクセス履歴情報６５の集合として構成される。これにより、アクセス履歴ＤＢ６６をＬＵＮに対して行なわれたアクセスの統計情報として用いることができる。例えば、後述するリビルド時間予測部１７３が、アクセス履歴ＤＢ６６を日時や曜日等をキーに検索することで、任意のＬＵＮについて所定の時間帯でのアクセス実績（アクセス履歴）を参照することができる。
【００８２】
図７は実施形態の一例としてのストレージ装置１におけるアクセス履歴情報６５の作成方法を例示するフローチャート（ステップＳ０１〜Ｓ０６）である。
本処理は、ホスト装置２からＬＵＮに対するライトアクセスもしくはリードアクセスを受信する毎に実行される。
ホスト装置２からライトアクセスもしくはリードアクセス処理要求を受信すると、この処理要求に応じて、後述するＩＯ制御部１１がＬＵＮに対するＩＯ制御を行なう（ステップＳ０１）。
【００８３】
ステップＳ０２において、アクセス履歴作成部１８は、アクセス履歴情報６５ｃにおいて、対応するアクセス種類に対して、アクセス対象のＬＵＮに対応するカウンタの値を更新する。
ステップＳ０３において、アクセス履歴作成部１８は現時刻の“分”および“秒”を確認する。すなわち、現時刻が０分０秒であるかを確認する（ステップＳ０４）。これにより、アクセス履歴採取期間である１時間が経過したか否かを確認するのである。
【００８４】
確認の結果、０分０秒である場合には（ステップＳ０４のＹｅｓルート参照）、ステップＳ０５において、カレントのアクセス履歴情報６５ｃを日付や時刻の情報とともにアクセス履歴ＤＢ６６に記録する。
また、ステップＳ０６において、メモリ１０６において、アクセス履歴情報６５ｂをアクセス履歴情報６５ｃにより上書き更新するとともに、アクセス履歴情報６５ｃをリセットし、処理を終了する。
【００８５】
一方、ステップＳ０４における確認の結果、０分０秒でない場合（ステップＳ０４のＮｏルート参照）、処理を終了する。
ＬＵＮ選択部１７は、アクセス履歴作成部１８によって作成されたアクセス履歴情報６５に基づき、故障ＲＡＩＤグループ３０ａにおいて形成されている複数のＬＵＮに対して、リビルド処理（復元処理）が行なわれる順番（優先順位）、すなわち、リビルド処理順序を設定する。また、以下、リビルド処理順序をＬＵＮ順番という場合がある。
【００８６】
すなわち、ＬＵＮ選択部１７は、アクセス履歴作成部１８によって作成されたアクセス履歴情報６５に基づき、複数のＬＵＮのうち、優先してリビルド処理を行なう優先ＬＵＮを決定する。
また、ＬＵＮ選択部１７は、リビルド処理順序の決定方法として、第１決定部１７２（後述）による第１の優先順位設定方法と、第２決定部１７３（後述）による第２の優先順位決定方法とを備える。
【００８７】
なお、第１の優先順位設定方法と第２の優先順位設定方法とのいずれを採用するかは、例えば、ユーザがＧＵＩ（Graphical User Interface）を介して入力を行なうことで選択され、その入力結果が設定値としてフラッシュメモリ１０７等の所定の記憶領域に記憶される。また、第１の優先順位設定方法もしくは第２の優先順位設定方法のいずれを採用するかを予め設定情報として登録してもよい。
【００８８】
すなわち、ＬＵＮ選択部１７（第１決定部１７２，第２決定部１７３）は、アクセス履歴取得部１７１によって取得されたアクセス履歴情報６５に基づき、故障ＲＡＩＤグループ３０ａを構成する複数のＬＵＮのうち、優先して復元処理（リビルド処理）を行なう優先論理ボリュームを決定する論理ボリューム決定部として機能する。
また、ＬＵＮ選択部１７（第１決定部１７２，第２決定部１７３）は、上述したアクセス履歴情報６５に基づき、故障ＲＡＩＤグループ３０ａを構成する複数のＬＵＮのうち、重要度が高いと判断されるＬＵＮを優先ＬＵＮとして決定する。
【００８９】
ＬＵＮ選択部１７は、図２に示すように、情報取得部１７１，第１決定部１７２，第２決定部１７３としての機能を備える。
情報取得部１７１は、後述する第１決定部１７２および第２決定部１７３がリビルド処理を行なうＬＵＮの優先順位を決定するために用いる各種情報を取得する。
例えば、情報取得部１７１は、ＲＡＩＤグループ３０ａにおいていずれかのＲＡＩＤ構成ディスク３１ａに異常が検知されると、この故障ＲＡＩＤグループ３０ａ上で形成されているＬＵＮの情報を取得する。
【００９０】
例えば、情報取得部１７１は、ＬＵＮ管理テーブル６１を参照することで、故障ＲＡＩＤグループ３０ａ上で形成されているＬＵＮ名を取得する。ＬＵＮ管理テーブル６１はＬＵＮ毎に作成されるので、例えば、各ＬＵＮ管理テーブル６１の項１を参照することで、ＲＡＩＤグループ３０ａに形成されているＬＵＮを把握することができる。
情報取得部１７１は、故障ＲＡＩＤグループ３０ａ上に形成されているＬＵＮをリストアップし、例えば、メモリ１０６の所定の領域に格納する。
【００９１】
また、情報取得部１７１は、第１決定部１７２による第１の優先順位設定方法に用いられる以下の情報を取得する。ＬＵＮの重要度に基づきリビルド処理順序を決定する場合に、この第１の優先順位設定方法が用いられる。
すなわち、情報取得部１７１は、上述の如くリストアップした各ＬＵＮに基づき、前述したセッション情報を参照することで、各ＬＵＮのＯＰＣにおける関係性を取得する。具体的には、情報取得部１７１は、リストアップされた各ＬＵＮについて、ＯＰＣのコピー元ＬＵＮもしくはコピー先ＬＵＮとなっているか否かをそれぞれ確認する。
【００９２】
さらに、情報取得部１７１は、ＯＰＣのコピー元となっているＬＵＮについて、セッション情報を参照することで、そのコピー先ＬＵＮを確認し、更に、アクセス履歴ＤＢ６６を参照して、このコピー先ＬＵＮに関するアクセス履歴情報６５を取得する。
また、情報取得部１７１は、アクセス履歴ＤＢ６６を参照して、上述したリストアップされたＬＵＮにおいて、ＯＰＣのコピー元ＬＵＮおよびコピー先ＬＵＮのいずれにもなっていないＬＵＮのアクセス履歴情報６５も取得する。
【００９３】
また、情報取得部１７１は、第２決定部１７３による第２の優先順位設定方法に用いられる以下の情報を取得する。本ストレージ装置１が使用される時間帯を考慮したリビルド処理順序を決定する場合に、この第２の優先順位設定方法が用いられる。
すなわち、情報取得部１７１は、ディスク情報６７を参照して、故障ＲＡＩＤグループ３０ａを構成する各記憶装置３１の性能情報を収集する。
【００９４】
また、情報取得部１７１は、収集した記憶装置３１の性能情報に基づいてリビルド時間情報６８を参照して、その記憶装置３１の性能情報に相当するリビルド時間を取得する。
さらに、情報取得部１７１は、アクセス履歴ＤＢ６６を参照して、上述したリストアップされた各ＬＵＮのアクセス履歴情報６５も取得する。
［第１の優先順位設定方法について］
第１決定部１７２は、第１の優先順位設定方法によりリビルド処理を行なうＬＵＮの順番（リビルド処理順序）を決定する。
【００９５】
この第１の優先順位設定方法においては、第１決定部１７２は、以下の優先順位に従ってリビルド処理順序を設定する。
優先順位１：ＯＰＣ対象のＬＵＮ（ＯＰＣ元ＬＵＮ）で、ＯＰＣ先にシーケンシャルリードが発生しているＬＵＮ。
優先順位２：ＯＰＣ対象のＬＵＮ（ＯＰＣ元ＬＵＮ）
優先順位３：異常検知時よりも前の所定時間帯に行なわれたアクセス回数が多いＬＵＮ
優先順位４：ＯＰＣ先のＬＵＮ
（１）優先順位１について
第１の優先順位設定方法においては、第１決定部１７２は、ＯＰＣのコピー元となっているＬＵＮであって、そのコピー先ＬＵＮにシーケンシャルリードアクセスが発生しているものを、リビルド処理の優先度の高いものとして決定する。
【００９６】
ここで、シーケンシャルリードアクセスとは、所定の閾値以上連続するデータが順番に読み出されることをいう。
すなわち、第１の優先順位設定方法においては、所謂Ｄ２Ｄ２Ｔ（Disk to Disk to Tape）のバックアップ構成がされているコピー元ＬＵＮをリビルド処理の優先順位が高いものとして設定する。
【００９７】
図８は実施形態の一例としてのストレージ装置１における第１決定部１７２による第１の優先順位設定方法について説明するための図である。
この図８においては、Ｄ２Ｄ２Ｔの構成を例示している。すなわち、コピー元ＬＵＮ（ＯＰＣ元ＬＵＮ）のデータはコピー先ＬＵＮ（ＯＰＣ先ＬＵＮ）にバックアップされた後、更に、ＬＴ（Linear Tape）にバックアップされている。
【００９８】
このように、ＬＵＮ（ディスクドライブ）とＬＴとの２段階のバックアップがとられるデータはユーザにとって重要なデータであると考えられる。そこで、第１決定部１７２は、Ｄ２Ｄ２Ｔのバックアップ構成がされているコピー元ＬＵＮをリビルド処理の優先順位が高いものとして決定する。
ＬＴにバックアップコピーを行なう場合には、図８に示すように、ＬＴへ書き出すデータを読み出すためにコピー先ＬＵＮにシーケンシャルなリードアクセスが発生する。そこで、第１決定部１７２は、ＯＰＣのコピー元となっているＬＵＮであって、そのコピー先ＬＵＮにシーケンシャルリードアクセスが発生しているもののリビルド処理の優先順位を最も高く設定する。
【００９９】
また、このような、ＯＰＣコピーがされているコピー元ＬＵＮであって、そのＯＰＣ先であるコピー先ＬＵＮにシーケンシャルリードが発生しているものが複数ある場合には、これらの複数の優先ＬＵＮ間においても優先順位を設定する。
例えば、第１決定部１７２は、これらの複数のコピー元ＬＵＮについて、各ＯＰＣ先であるコピー先ＬＵＮをシーケンシャルリードの回数が多い順に順位付けし、その順位に応じて、各コピー元ＬＵＮに優先順位を設定する。つまり、ＯＰＣ先であるコピー先ＬＵＮにおいてシーケンシャルリードの回数が多いコピー元ＬＵＮの優先順位を高く設定する。
【０１００】
なお、本実施形態において、第１決定部１７２は、優先順位１として、ＯＰＣのコピー元となっているＬＵＮであって、そのコピー先ＬＵＮにシーケンシャルリードアクセスが発生しているもののリビルド処理の優先順位を最も高く設定しているが、これに限定されるものではない。
例えば、ＯＰＣ対象のＬＵＮで、ＯＰＣ先に特定の時間にシーケンシャルリードがされているＬＵＮの優先順位を特に高くしてもよい。これにより、定期的なテープバックアップが行なわれているような重要なコピー元ＬＵＮをより確実に特定することができる。
【０１０１】
また、ＯＰＣのコピー元となっているＬＵＮであって、そのコピー先ＬＵＮにシーケンシャルリードアクセスが所定の閾値よりも多く発生しているものリビルド処理の優先順位を最も高く設定してもよい。
すなわち、第１決定部１７２は、ＯＰＣコピーがされているコピー元ＬＵＮであって、そのＯＰＣ先であるコピー先ＬＵＮに閾値以上の回数のリード（シーケンシャルリード）が発生しているものを優先ＬＵＮとして決定してもよい。
【０１０２】
なお、このような、ＯＰＣコピーがされているコピー元ＬＵＮであって、そのＯＰＣ先であるコピー先ＬＵＮに閾値以上の回数のシーケンシャルリードが発生しているものが複数ある場合にも、ＯＰＣ先であるコピー先ＬＵＮにおいてシーケンシャルリードの回数が多いコピー元ＬＵＮの優先順位を高く設定することが望ましい。
（２）優先順位２について
また、ＬＴへのバックアップは行なわれていないがＯＰＣによるバックアップは行なわれているＬＵＮ（コピー元ＬＵＮ）は、ユーザにとって少なくとも１回はバックアップする必要性があると判断されているデータであると考えられる。そこで、第１決定部１７２は、ＬＴへのバックアップは行なわれていないがＯＰＣによるバックアップは行なわれているコピー元ＬＵＮ（ＯＰＣ対象のＬＵＮ）のリビルド処理の優先順位を２番目に高く設定する。
【０１０３】
（３）優先順位４について
一方、ＯＰＣ先ＬＵＮは、バックアップ先であり冗長化されていると考えられ、そのデータの重要度は低いと判断できる。そこで第１決定部１７２は、このようなＯＰＣ先ＬＵＮのリビルド処理の優先順位を最も低く設定する。
（４）優先順位３について
上述した優先順位１，２，４のいずれにも該当しないＬＵＮについては、アクセス履歴が多いものから順番にリビルド処理の優先順位を設定する。例えば、第１決定部１７２は、メモリ１０６に格納されているアクセス履歴情報６５ｃ，６５ｂを参照して、これらのアクセス履歴情報６５においてアクセス回数が多いＬＵＮから順番にリビルド処理の優先順位を設定する。なお、ここで言うアクセス回数とは、例えば、ランダムリード回数，シーケンシャルリード回数，ランダムライト回数及びシーケンシャルライト回数の合計である。
【０１０４】
前述の如く、メモリ１０６に格納されているアクセス履歴情報６５ｃ，６５ｂには、故障ディスク３１ａにおいて異常が検知された時点よりも前の所定の時間帯に行なわれた２世代分のアクセス履歴が格納されている。
すなわち、第１決定部１７２は、復元対象記憶装置である故障ディスク３１ａにおける異常検知時よりも前の所定時間帯（例えば、２時間）に採取されたアクセス履歴に基づき、これらの所定時間帯でのアクセス回数が多いＬＵＮを、優先ＬＵＮとして決定する。
【０１０５】
データアクセスが高速なメモリ１０６に格納されているアクセス履歴情報６５に基づいてリビルド処理の優先順位を設定することで、ＬＵＮの優先順位を短時間で決定することができる。
以上の手法により、第１決定部１７２は、ＲＡＩＤ構成ディスク３１ａに形成された複数のＬＵＮに対するリビルド処理順序を決定する。
【０１０６】
［第２の優先順位設定方法について］
第２決定部１７３は、第２の優先順位設定方法によりリビルド処理を行なうＬＵＮの順番（リビルド処理順序）を決定する。
この第２の優先順位設定方法においては、第２決定部１７３は、リビルド先ディスク（復元先記憶装置）３１ｂへのリビルド処理に要する時間を見積もる。そして、第２決定部１７３は、リビルド処理部１３により故障ディスク（復元対象記憶装置）３１ａのリビルドが行なわれる時間帯（予測リビルド時間帯）を予測する
すなわち、第２決定部１７３は、リビルド処理部１３により故障ディスク（復元対象記憶装置）３１ａのリビルドが行なわれる時間帯を予測する復元時間帯予測部として機能する。
【０１０７】
具体的には、第２決定部１７３は、情報取得部１７１がリビルド先ディスク３１ｂ（故障ディスク３１ａ）の性能情報（仕様）に基づいてリビルド時間情報６８から取得したリビルド時間を、リビルド先ディスク３１ｂへのリビルドに要する時間（予測リビルド時間）とみなす（見積もる）。
そして、第２決定部１７３は、リビルド開始予定時刻と予測リビルド時間とに基づいて予測リビルド時間帯を決定する。すなわち、第２決定部１７３は、リビルド開始予定時刻から予測リビルド時間が経過するまでの期間を予測リビルド時間帯として決定する。
【０１０８】
そして、第２決定部１７３は、アクセス履歴ＤＢ６６に基づいて、この決定した予測リビルド時間帯、すなわち、リビルド開始予定時刻からリビルド完了予測時刻までの時間帯と同時間帯での各ＬＵＮのアクセス実績に応じて各ＬＵＮへのリビルド処理の優先順位を設定する。
なお、一般に、リビルド先ディスク３１ｂとしては故障ディスク３１ａと同じ種類の記憶装置を用いる。従って、本実施形態においては、リビルド先ディスク３１ｂの性能情報と故障ディスク３１ａの性能情報とは一致するものとする。
【０１０９】
図９は実施形態の一例としてのストレージ装置１における第２決定部１７３による第２の優先順位設定方法について説明するための図である。
この図９に示す例においては、リビルド処理の開始時刻が７時であり、第２決定部（復元予測部）１７３が予測リビルド時間を５時間と予測した場合の例を示す。この場合、予測リビルド時間帯は７時〜１２時である。
【０１１０】
本例においては、ＬＵＮ１〜６のそれぞれについて、７時〜１２時の時間帯（期間）における時間毎のアクセス回数小計を示している。
ここで、アクセス回数小計とは、ランダムリード回数，シーケンシャルリード回数，ランダムライト回数及びシーケンシャルライト回数の合計である。これらの値は、情報取得部１７１によりアクセス履歴ＤＢ６６から取得される。
【０１１１】
例えば、７時代においては、ＬＵＮ１に対するアクセス回数小計は10×10^10（単位：回）であり、ＬＵＮ２に対するアクセス回数小計は1×10^10（単位：回）である。
また、第２決定部１７３は、各ＬＵＮについて、予測リビルド時間帯におけるアクセス回数小計の合計をそれぞれ算出する。
例えば、図９に示す例において、ＬＵＮ１についての７時〜１２時の各時間でのアクセス回数小計の合計（ＳＵＭ）は83×10^10（単位：回）であり、ＬＵＮ２については24×10^10（単位：回）である。すなわち、本ストレージ装置１においては、予測リビルド時間帯である７時〜１２時の時間帯では、ＬＵＮ１，ＬＵＮ６，ＬＵＮ５，ＬＵＮ２，ＬＵＮ４，ＬＵＮ３の順でアクセスが多いことが統計的に判明する。従って、予測リビルド時間帯においても、ＬＵＮ１，ＬＵＮ６，ＬＵＮ５，ＬＵＮ２，ＬＵＮ４，ＬＵＮ３の順でアクセスが発生する可能性が高いと考えられる。
【０１１２】
そこで、第２決定部１７３は、過去のアクセス実績の統計情報に基づき、予測リビルド時間帯においてアクセス回数が多いＬＵＮをリビルド処理の優先順位が高いものとして設定する。第２決定部１７３は、このような過去のアクセス実績の統計情報に基づき、予測リビルド時間帯におけるアクセス回数が多い順でリビルド処理を行なうよう、各ＬＵＮへの順番付けを行なう。
【０１１３】
図９に示す例においては、予測リビルド時間帯におけるアクセス回数小計の合計（過去のアクセス実績の統計情報）の多い順に並べると、ＬＵＮ１，ＬＵＮ６，ＬＵＮ５，ＬＵＮ２，ＬＵＮ４，ＬＵＮ３の順となる。従って、第２決定部１７３は、リビルド処理順序を、ＬＵＮ１，ＬＵＮ６，ＬＵＮ５，ＬＵＮ２，ＬＵＮ４，ＬＵＮ３の順に設定する。
従って、例えば、予測リビルド時間帯におけるアクセス回数小計の合計値が最も数値が大きい、すなわち、予測リビルド時間帯において最もアクセス回数が多いＬＵＮ（図９の例ではＬＵＮ１）が最も優先してリビルド処理が行なわれる優先ＬＵＮとなる。
【０１１４】
以上の手法により、第２決定部１７３は、ＲＡＩＤ構成ディスク３１ａに形成された複数のＬＵＮに対するリビルド処理順序を決定する。
ＩＯ制御部１１はＬＵＮに対するＩＯ制御を行なう。このＩＯ制御部１１は、例えば、ＬＵＮに対してＦＣＰ（Fibre Channel Protocol）もしくはＮＡＳのＩＯ制御を行なう。
ＩＯ制御部１１は、上述した仮／実ボリューム変換テーブル６２を用いて、ホスト装置２からのＩＯ要求に応じて実ボリュームである記憶装置３１に対するＩＯ処理を行なう。ＩＯ制御部１１は、ホスト装置２から送信されたＩＯ要求に応じて、ＬＵＮを構成する記憶装置３１に対して、データのリードやライトを行なう。
【０１１５】
なお、リビルド処理部１３によるリビルド処理の実行途中において、リビルド処理が完了していないＬＵＮに対してホスト装置２からＩＯコマンドが発行されると、ＩＯ制御部１１は、ＲＡＩＤグループ３０ａのＲＡＩＤ構成ディスク３１ａのディスクデータ域を用いてＩＯ処理を行なう。
例えば、ＬＵＮ２のデータのリビルド処理が完了していない状態において、ＬＵＮ２のデータに対するリードアクセスが行なわれると、ＩＯ制御部１１は、ＲＡＩＤグループ３０ａのＲＡＩＤ構成ディスク３１ａからリード処理を行なう。又、故障ディスク３１ａ−２に対するリード処理は、この故障ディスク３１ａ−２以外の各リビルド元ディスク（冗長用記憶装置）３１ａ−１，３１ａ−３，３１ａ−４のデータに対して、パリティを用いたＸＯＲ演算を行なって故障ディスク３１ａ−２のデータの復元を行なって対応する。
【０１１６】
また、ＬＵＮ２のデータに対するライトアクセスが行なわれると、ＩＯ制御部１１は、ＲＡＩＤグループ３０ａのＲＡＩＤ構成ディスク３１ａに対してライト処理を行なう。又、故障ディスク３１ａ−２に対するライト処理は、この故障ディスク３１ａ−２以外の各リビルド元ディスク（冗長用記憶装置）３１ａ−１，３１ａ−３，３１ａ−４のデータに対して、パリティを用いたＸＯＲ演算を行なって故障ディスク３１ａ−２のデータの復元を行ない、この復元したデータを用いて、予備ディスクグループ３０ｂの代理ディスク３１ｂ−２に対してライト処理を行なう。
【０１１７】
上述の如く構成された実施形態の一例としてのストレージ装置１におけるリビルド処理の概要を、図１０に示すフローチャート（ステップＳ１１〜Ｓ１８）に従って説明する。
ステップＳ１１において、ＬＵＮ選択部１７は、フラッシュメモリ１０７の所定の記憶領域を参照して、リビルド処理順序の決定方法として、第１の優先順位設定方法と第２の優先順位設定方法とのいずれを用いるかを判断する。すなわち、例えば使用される時間帯を考慮したリビルド処理（第２の優先順位設定方法）でリビルド処理順序を決定するか否かを判断する。
【０１１８】
使用される時間帯を考慮したリビルド処理（第２の優先順位設定方法）でリビルド処理順序を決定する場合には（ステップＳ１１のＹｅｓルート参照）、ステップＳ１３において、第２の優先順位設定方法によるリビルド処理順序の決定処理が行なわれる。すなわち、その時間帯に使用されるデータに基づきリビルドするＬＵＮ順番が決定される。なお、このステップＳ１３における具体的な処理の説明は、図１２を用いて後述する。
【０１１９】
一方、使用される時間帯を考慮したリビルド処理（第２の優先順位設定方法）でリビルド処理順序を決定しない場合には（ステップＳ１１のＮｏ参照）、ステップＳ１２において、第１の優先順位設定方法によるリビルド処理順序の決定処理が行なわれる。すなわち、ＬＵＮの重要度に基づきリビルドするＬＵＮ順番が決定される。なお、このステップＳ１２における具体的な処理の説明は、図１１を用いて後述する。
【０１２０】
ステップＳ１４において、リビルド処理部１３が、故障ディスク３１ａのデータをリビルド先ディスク３１ｂに再構築する。また、この際、リビルド処理部１３は、故障ＲＡＩＤグループ３０ａに備えられていた複数のＬＵＮを、ＬＵＮ選択部１７によって設定されたリビルド処理順序に従って順番に再構築する。なお、このステップＳ１４における具体的な処理の説明は、図１３を用いて後述する。
【０１２１】
ステップＳ１５において、リビルド処理部１３は、リビルド中にエラーが発生したか否かを確認する。例えば、リビルド処理部１３は、リビルド元ディスク３１ａにおいて何等かの故障が検知されたかを確認し、いずれかのリビルド元ディスク３１ａにおいてリビルド処理中に故障が検知された場合に、リビルド中にエラーが発生したと判断する。なお、リビルド元ディスク３１ａに故障が発生したか否かは既知の手法を用いて判断することができ、その詳細な説明は省略する。
【０１２２】
確認の結果、リビルド処理中にエラーが発生していない場合には（ステップＳ１５のＮｏルート参照）、ステップＳ１８においてリビルド処理の終了を図示しない管理端末のディスプレイ等に表示させ、処理を終了する。なお、リビルド処理の終了は、例えば、ホスト装置２等のディスプレイに表示させてもよい。
一方、確認の結果、リビルド処理中にエラーが発生した場合には（ステップＳ１５のＹｅｓルート参照）、ステップＳ１６において、リビルド処理部１３は、リビルド処理が終了しているＬＵＮを確認する。例えば、ＬＵＮ管理テーブル６１や処理中のＬＵＮを示す図示しない処理中ポインタを参照することで、このリビルド処理が終了しているＬＵＮを確認することができる。
【０１２３】
ステップＳ１７において、リビルド処理が終了したＬＵＮを通知する情報を、リビルド処理中にエラーが発生した旨とともに、図示しない管理端末のディスプレイに表示させ、処理を終了する。なお、これらの情報（通知）は、例えば、ホスト装置２等のディスプレイに表示させてもよい。
次に、実施形態の一例としてのストレージ装置１における、ＬＵＮの重要度に基づくリビルド処理順序の決定方法（第１の優先順位設定方法）を、図１１に示すフローチャート（ステップＳ２１〜Ｓ２６）に従って説明する。
【０１２４】
ステップＳ２１において、情報取得部１７１が、ＬＵＮ管理テーブル６１を参照して、故障ＲＡＩＤグループ３０ａにおけるＬＵＮを確認し、故障ＲＡＩＤグループ３０ａ上に形成されているＬＵＮをリストアップする。
以下、故障ＲＡＩＤグループ３０ａにＬ１〜Ｌ６の６つのＬＵＮが形成されている例について示す。
【０１２５】
ステップＳ２２において、情報取得部１７１は、セッション情報を参照して、リストアップされた各ＬＵＮについて、ＯＰＣのコピー元ＬＵＮもしくはコピー先ＬＵＮとなっているか否かをそれぞれ確認する。そして、情報取得部１７１は、各ＬＵＮを、“ＯＰＣ元”，“ＯＰＣ先”及び“その他”の３つのグループに分類する。
図１１に示す例においては、Ｌ１，Ｌ２およびＬ３が“ＯＰＣ元”であり、Ｌ６が“ＯＰＣ先”であり、Ｌ４及びＬ５が“その他”である。
【０１２６】
ステップＳ２３において、情報取得部１７１は、ＯＰＣ元となっているＬＵＮについて、セッション情報を参照することで、そのコピー先ＬＵＮ（ＯＰＣ先ＬＵＮ）を確認する。
図１１に示す例においては、ＯＰＣ元であるＬ１のＯＰＣ先がＬ１′であり、ＯＰＣ元であるＬ２のＯＰＣ先がＬ２′、ＯＰＣ元であるＬ３のＯＰＣ先がＬ３′である。
【０１２７】
ステップＳ２４において、情報取得部１７１は、アクセス履歴ＤＢ６６を参照して、ステップＳ２３において確認したＯＰＣ先のＬ１′，Ｌ２′及びＬ３′のそれぞれについてのシーケンシャルリード回数を取得する。
ＬＵＮ選択部１７の第１決定部１７２は、取得されたシーケンシャルリード回数に応じてその値が多いものから順にＯＰＣ先のＬ１′，Ｌ２′及びＬ３′を順位付けし、更に、その設定された順位に応じてＯＰＣ元のＬ１，Ｌ２及びＬ３の優先順位を設定する（順序付ける）。
【０１２８】
例えば、ＯＰＣ先のＬ１′，Ｌ２′及びＬ３′において、シーケンシャルリード回数が、Ｌ２′，Ｌ１′，Ｌ３′の順で多い場合には、これに従ってＯＰＣ元の優先順位はＬ２，Ｌ１，Ｌ３の順となる。
次に、ステップＳ２５において、第１決定部１７２は、ステップＳ２２において“その他”に分類したＬＵＮ、すなわち、“ＯＰＣ元”及び“ＯＰＣ先”以外のＬＵＮに対して優先順位を設定する。
【０１２９】
具体的には、第１決定部１７２は、メモリ１０６のアクセス履歴情報６５ｃ，６５ｂを参照して、これらの各ＬＵＮについて、アクセス回数が多いＬＵＮから順番にリビルド処理の優先順位を設定する。
例えば、“その他”に分類されたＬ４及びＬ５について、Ｌ５に対するアクセス回数がＬ４よりも多い場合には、これらのＬＵＮの優先順位はＬ５，Ｌ４の順となる。
【０１３０】
その後、ステップＳ２６において、第１決定部１７２は、ステップＳ２４〜Ｓ２５においてそれぞれ設定した優先順位に基づき、故障ＲＡＩＤグループ３０ａにＬ１〜Ｌ６の６つのＬＵＮのリビルド処理順序を設定する。
すなわち、ステップＳ２４において設定したＯＰＣ元の各ＬＵＮ、ステップＳ２５において設定したその他の各ＬＵＮ、ＯＰＣ先のＬＵＮの順にリビルド処理順序が設定される。
【０１３１】
なお、ステップＳ２２において“その他”に分類されたＬＵＮが複数ある場合には、これらのＬＵＮに対して、任意の優先順位を設定してもよく、また、アクセス履歴ＤＢ６６を参照して、アクセス回数が多いものが順に優先順位を設定してもよく、種々変形して実施することができる。
図１１に示す例においては、Ｌ１〜Ｌ６に対して、Ｌ２，Ｌ１，Ｌ３，Ｌ５，Ｌ４，Ｌ６の順にリビルド処理順序が設定される。
【０１３２】
次に、実施形態の一例としてのストレージ装置１における、本ストレージ装置１が使用される時間帯を考慮したリビルド処理順序の決定方法（第２の優先順位設定方法）を、図１２に示すフローチャート（ステップＳ３１〜Ｓ３３）に従って説明する。
ステップＳ３１において、情報取得部１７１が、ＬＵＮ管理テーブル６１を参照して、故障ＲＡＩＤグループ３０ａにおけるＬＵＮを確認し、故障ＲＡＩＤグループ３０ａ上に形成されているＬＵＮをリストアップする。
【０１３３】
以下、故障ＲＡＩＤグループ３０ａにＬ１〜Ｌ６の６つのＬＵＮが形成されている例について示す。
ステップＳ３２において、情報取得部１７１は、ディスク情報６７を参照して、故障ＲＡＩＤグループ３０ａに含まれる故障ディスク３１ａの性能情報を取得する。また、情報取得部１７１は、収集した記憶装置３１の性能情報に基づいてリビルド時間情報６８を参照して、その記憶装置３１の性能情報に相当するリビルド時間を取得する。
【０１３４】
そして、第２決定部１７３は、情報取得部１７１が故障ディスク３１ａの性能情報に基づいてリビルド時間情報６８から取得したリビルド時間を、予測リビルド時間として見積もる。
図１２に示す例においては、故障ディスク３０ａが「データ容量９００ＧＢ、モータの回転速度が１０ＫｒｐｍのＳＡＳディスク」であり、そのリビルド時間が５時間であったものとする。この場合、予測リビルド時間は５時間となる。
【０１３５】
ステップＳ３３において、第２決定部１７３は、リビルド開始予定時刻と予測リビルド時間とに基づいて、予測リビルド時間帯を決定する。そして、第２決定部１７３は、アクセス履歴ＤＢ６６に基づいて、この決定した予測リビルド時間帯での各ＬＵＮのアクセス実績に応じて各ＬＵＮへのリビルド処理の優先順位を設定する。
すなわち、第２決定部１７３は、各ＬＵＮについて、予測リビルド時間帯におけるアクセス回数小計の合計（過去のアクセス実績の統計情報）を算出し、予測リビルド時間帯におけるアクセス回数の合計値が多い順でリビルド処理を行なうよう、各ＬＵＮへの順番付を行なう。
【０１３６】
図１２に示す例においては、リビルド処理順序は、Ｌ１，Ｌ６，Ｌ５，Ｌ２，Ｌ４，Ｌ３の順となる。
次に、実施形態の一例としてのストレージ装置１におけるリビルド処理部１３によるリビルド処理を、図１３に示すフローチャート（ステップＣ１〜Ｃ９）に従って説明する。
ステップＣ１において、リビルド処理部１３は、ＬＵＮ選択部１７によって設定されたリビルド処理順序を取得する。また、リビルド処理部１３は、ＬＵＮ管理テーブル６１を参照することでＬＵＮ数を取得する。ＬＵＮ管理テーブル６１はＬＵＮ毎に作成されるので、例えばＬＵＮ管理テーブル６１の数を参照することで、ＲＡＩＤグループ３０ａに形成されているＬＵＮの数を把握することができる。又、リビルド処理部１３は、処理中のＬＵＮを示す図示しない処理中ポインタに、リビルド処理順序における先頭のＬＵＮ（ＬＵＮ域）を示す情報を記憶する。この処理中ポインタを参照することで、リビルド処理の進捗状況を把握することができる。
【０１３７】
ステップＣ２において、リビルド処理部１３は、処理中ポインタを参照して、未処理のＬＵＮ数を確認する。
未処理のＬＵＮ数が１つ以上ある場合には（ステップＣ２のＮＯルート参照）、ステップＣ３において、処理中ＬＵＮの情報に基づき、生き残っている各リビルド元ディスク３１ａを調べ、この生き残っているリビルド元ディスク３１ａから、ＲＡＩＤストライプ分のデータを読み出し、メモリ１０６の所定の領域に格納する。
【０１３８】
ステップＣ４において、リビルド処理部１３は、各リビルド元ディスク３１ａから読み出したデータを用いて故障ディスク３１ａの復元を行なう（復元データ作成）。
ステップＣ５において、リビルド処理部１３は、故障ディスク３１に対してアサインされた予備ディスク３１ｂの所定位置（元と同じ位置）へ復元データを書き出す。
ステップＣ６において、リビルド処理部１３は、ＬＵＮ管理テーブル６１の項８のリビルド済サイズに、リビルドが完了したデータサイズ（リビルド済サイズ）を加算（ｕｐ）する。
【０１３９】
ステップＣ７において、リビルド処理部１３は、処理中のＬＵＮのリビルド処理が完了したか否かを確認する。この確認の結果（ステップＣ８）、リビルド処理が完了していない場合には（ステップＣ８のＮＯルート参照）、ステップＣ３に戻る。
一方、リビルド処理が完了した場合には（ステップＣ８のＹＥＳルート参照）、ステップＣ９に移行する。
【０１４０】
ステップＣ９において、リビルド処理部１３は、ＬＵＮ管理テーブル６１の項５のＬＵＮの状態に“リビルド済”を設定する。又、リビルド処理部１３は、未処理のＬＵＮ数をデクリメントするとともに、リビルド処理順序における次のＬＵＮを処理中ポインタに記憶する。その後、ステップＣ２に戻る。
ステップＣ２において、未処理のＬＵＮ数が０である場合には（ステップＣ２のＹＥＳルート参照）、処理を終了する。
【０１４１】
このように、実施形態の一例としてのストレージ装置１によれば、ＬＵＮ選択部１７が、故障ＲＡＩＤグループ３０ａに形成されていたＬＵＮに対して、リビルド処理により復元させる順序（リビルド処理順序）を設定する。そして、リビルド処理部１３は、故障ＲＡＩＤグループ３０ａに備えられていた複数のＬＵＮを、ＬＵＮ選択部１７によって設定されたリビルド処理順序に従って順番に再構築する。
【０１４２】
これにより、高い優先順位を設定したＬＵＮを早期に再構築することができ、利便性が高い。また、リビルド処理の途中リビルド元ディスク３１ａに何らかの障害が発生し、リビルド処理を最後まで実行することができない場合でも、高い優先順位を設定したＬＵＮについては、再構築できる可能性が高く、信頼性も向上する。
また、ＬＵＮ選択部１７において、第１決定部１７２がＬＵＮの重要度に基づきリビルド処理順序を決定する。これにより、重要度が高いＬＵＮを早期に再構築することができる。
【０１４３】
例えば、第１決定部１７２が、所謂Ｄ２Ｄ２Ｔのバックアップ構成がされているコピー元ＬＵＮをリビルド処理の優先順位が高いものとして設定することで、ユーザにとって重要なデータを含むＬＵＮを早期に再構築することができる。
また、複数のＬＵＮ間において、アクセス履歴においてアクセス回数が多いＬＵＮをリビルド処理の優先順位が高いものとして設定することでも、ユーザにとって重要なデータを含むＬＵＮを早期に再構築することができる。
【０１４４】
さらに、第２決定部１７３が、本ストレージ装置１が使用される時間帯を考慮したリビルド処理順序を決定する。すなわち、第２決定部１７３が、リビルド先ディスク（復元先記憶装置）３１ｂへのリビルド処理に要する時間を見積もり、予測リビルド時間帯を設定する。そして、第２決定部１７３は、アクセス履歴ＤＢ６６を参照して、予測リビルド時間帯と同時間帯でのアクセス実績に応じて各ＬＵＮへのリビルド処理の優先順位を設定する。
【０１４５】
これにより、予測リビルド時間帯においてアクセス数が高くなると予想されるＬＵＮをリビルド処理の優先順位が高いものとして設定することでも、ユーザにとって重要なデータを含むＬＵＮを早期に再構築することができる。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成及び各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１４６】
例えば、上述した実施形態においては、ＲＡＩＤグループ３０ａが４本（３本＋１本）のＲＡＩＤ構成ディスク３１ａによりＲＡＩＤ５を実現している例を示しているが、これに限定されるものではない。例えば、ＲＡＩＤ２〜４やＲＡＩＤ５０（５＋０）、ＲＡＩＤ６，ＲＡＩＤ１０等、種々変形して実施することができる。
また、上述した実施形態においては、リビルド時間情報６８として、記憶装置３１の性能情報に対してリビルド時間を対応付け、第２決定部１７３が、リビルド先の記憶装置３１ｂの性能情報に基づき、このリビルド時間情報６８を参照することでリビルド時間を取得しているが、これに限定されるものではなく種々変形して実施することができる。
【０１４７】
例えば、リビルド時間情報６８として、記憶装置３１毎にリビルド時間を対応付けたものを用いてもよい。また、記憶装置３１の性能（容量，回転速度，ＲＡＩＤ種別等）を数値化し、これらの数値を用いて演算を行なうことでリビルド時間を求めてもよい。この場合、数値化した記憶装置３１の性能情報や演算式がリビルド時間情報６８として機能する。
【０１４８】
また、上述した実施形態において、第１決定部１７２は、ＯＰＣのコピー元となっているＬＵＮであって、そのコピー先ＬＵＮにシーケンシャルリードアクセスが発生しているもののリビルド処理の優先順位を最も高く設定しているが、これに限定されるものではない。例えば、ＯＰＣのコピー元となっているＬＵＮであって、そのコピー先ＬＵＮにシーケンシャル以外のリードアクセスが多く発生しているもののリビルド処理の優先順位を最も高く設定してもよい。
【０１４９】
さらに、上述した実施形態においては、メモリ１０６にアクセス履歴情報６５ｃ及びアクセス履歴情報６５ｂの２世代分のアクセス履歴情報６５を格納しているが、これに限定されるものではなく種々変形して実施することができる。
例えば、メモリ１０６に１世代分の、すなわちカレントのアクセス履歴情報６５ｃだけを格納してもよく、また、カレントのアクセス履歴情報６５ｃを含む３世代分以上のアクセス履歴情報６５を格納してもよい。第１決定部１７２は、メモリ１０６に格納されているアクセス履歴情報６５に基づいてリビルド処理の優先順位を設定する。
【０１５０】
性能情報は、データ容量，回転速度，ＲＡＩＤ構成に限定されるものではない。例えば、記憶装置３１に備えられたインタフェースの種類やデータ転送速度等であってもよい
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
以上の実施形態に関し、更に以下の付記を開示する。
【０１５１】
（付記１）
冗長構成がなされた複数の記憶装置および予備記憶装置と通信路を介して通信可能に接続されるストレージ制御装置であって、
前記複数の記憶装置を用いて構成される複数の論理ボリュームに対するアクセス履歴情報を取得するアクセス履歴取得部と、
前記アクセス履歴取得部によって取得された前記アクセス履歴情報に基づき、前記複数の論理ボリュームのうち、優先して復元処理を行なう優先論理ボリュームを決定する論理ボリューム決定部と、
復元対象記憶装置における前記優先論理ボリュームを、前記複数の記憶装置のうちの前記復元対象記憶装置以外の記憶装置から読み出した復元用データを用いて、復元先記憶装置に復元する復元部と
を備えることを特徴とする、ストレージ制御装置。
【０１５２】
（付記２）
前記論理ボリューム決定部が、
前記アクセス履歴情報に基づき、重要度が高いと判断される前記論理ボリュームを前記優先論理ボリュームとして決定することを特徴とする、付記１記載のストレージ制御装置。
【０１５３】
（付記３）
前記論理ボリューム決定部が、
バックアップコピーがされている論理ボリュームであって、そのバックアップ先にリードが発生している論理ボリュームを、前記優先論理ボリュームとして決定することを特徴とする、付記２記載のストレージ制御装置。
【０１５４】
（付記４）
前記リードがシーケンシャルリードであることを特徴とする、付記３記載のストレージ制御装置。
（付記５）
前記論理ボリューム決定部が、
前記復元対象記憶装置における異常検知時よりも前の所定時間帯に行なわれたアクセス回数が多い論理ボリュームを、前記優先論理ボリュームとして決定することを特徴とする、付記２〜４のいずれか１項に記載のストレージ制御装置。
【０１５５】
（付記６）
前記復元部による前記復元対象記憶装置の復元が行なわれる時間帯を予測する復元時間帯予測部をそなえ、
前記論理ボリューム決定部が、
前記アクセス履歴情報と予測された前記復元が行なわれる時間帯とに基づき、当該時間帯と同時間帯での、前記アクセス履歴情報においてアクセス頻度が高い論理ボリュームを、前記優先論理ボリュームとして決定することを特徴とする、付記２記載のストレージ制御装置。
【０１５６】
（付記７）
前記復元時間帯予測部が、前記記憶装置に関してデータ復元の所要時間を示す復元時間情報に基づき、前記復元対象記憶装置の復元に要する時間を予測することを特徴とする、付記６記載のストレージ制御装置。
（付記８）
冗長構成がなされた複数の記憶装置を備えるとともに、複数の論理ボリュームを備えるストレージシステムにおいて、
各論理ボリュームに対するアクセス履歴情報を取得するアクセス履歴取得部と、
前記アクセス履歴取得部によって取得された前記アクセス履歴情報に基づき、前記複数の論理ボリュームのうち、優先して復元処理を行なう優先論理ボリュームを決定する論理ボリューム決定部と、
復元対象記憶装置における前記優先論理ボリュームを、前記複数の記憶装置のうちの前記復元対象記憶装置以外の記憶装置から読み出した復元用データを用いて、復元先記憶装置に復元する復元部と
を備えることを特徴とする、ストレージシステム。
【０１５７】
（付記９）
前記論理ボリューム決定部が、
前記アクセス履歴情報に基づき、重要度が高いと判断される前記論理ボリュームを前記優先論理ボリュームとして決定することを特徴とする、付記８記載のストレージシステム。
【０１５８】
（付記１０）
前記論理ボリューム決定部が、
バックアップコピーがされている論理ボリュームであって、そのバックアップ先にリードが発生している論理ボリュームを、前記優先論理ボリュームとして決定することを特徴とする、付記９記載のストレージシステム。
【０１５９】
（付記１１）
前記リードがシーケンシャルリードであることを特徴とする、付記１０記載のストレージシステム。
（付記１２）
前記論理ボリューム決定部が、
前記復元対象記憶装置における異常検知時よりも前の所定時間帯に行なわれたアクセス回数が多い論理ボリュームを、前記優先論理ボリュームとして決定することを特徴とする、付記９〜１１のいずれか１項に記載のストレージシステム。
【０１６０】
（付記１３）
前記復元部による前記復元対象記憶装置の復元が行なわれる時間帯を予測する復元時間帯予測部をそなえ、
前記論理ボリューム決定部が、
前記アクセス履歴情報と予測された前記復元が行なわれる時間帯とに基づき、当該時間帯と同時間帯での、前記アクセス履歴情報においてアクセス頻度が高い論理ボリュームを、前記優先論理ボリュームとして決定することを特徴とする、付記９記載のストレージシステム。
【０１６１】
（付記１４）
前記復元時間帯予測部が、前記記憶装置に関してデータ復元の所要時間を示す復元時間情報に基づき、前記復元対象記憶装置の復元に要する時間を予測することを特徴とする、付記１３記載のストレージシステム。
（付記１５）
冗長構成がなされた複数の記憶装置および予備記憶装置と通信路を介して通信可能に接続されるコンピュータに、
前記複数の記憶装置を用いて構成される複数の論理ボリュームに対するアクセス履歴情報を取得し、
取得された前記アクセス履歴情報に基づき、前記複数の論理ボリュームのうち、優先して復元処理を行なう優先論理ボリュームを決定し、
復元対象記憶装置における前記優先論理ボリュームを、前記複数の記憶装置のうちの前記復元対象記憶装置以外の記憶装置から読み出した復元用データを用いて、復元先記憶装置に復元する
処理を実行させる、ストレージ制御プログラム。
【０１６２】
（付記１６）
前記アクセス履歴情報に基づき、重要度が高いと判断される前記論理ボリュームを前記優先論理ボリュームとして決定する
処理を前記コンピュータに実行させる、付記１５記載のストレージ制御プログラム。
（付記１７）
バックアップコピーがされている論理ボリュームであって、そのバックアップ先にリードが発生している論理ボリュームを、前記優先論理ボリュームとして決定する
処理を前記コンピュータに実行させる、付記１６記載のストレージ制御プログラム。
【０１６３】
（付記１８）
前記復元対象記憶装置における異常検知時よりも前の所定時間帯に行なわれたアクセス回数が多い論理ボリュームを、前記優先論理ボリュームとして決定する
処理を前記コンピュータに実行させる、付記１６又は付記１７記載のストレージ制御プログラム。
【０１６４】
（付記１９）
前記復元対象記憶装置の復元が行なわれる時間帯を予測し、
前記アクセス履歴情報と予測された前記復元が行なわれる時間帯とに基づき、当該時間帯と同時間帯での、前記アクセス履歴情報においてアクセス頻度が高い論理ボリュームを、前記優先論理ボリュームとして決定する
処理を前記コンピュータに実行させる、付記１６記載のストレージ制御プログラム。
【０１６５】
（付記２０）
前記記憶装置に関してデータ復元の所要時間を示す復元時間情報に基づき、前記復元対象記憶装置の復元に要する時間を予測する
処理を前記コンピュータに実行させる、付記１９記載のストレージ制御プログラム。
【符号の説明】
【０１６６】
１    ストレージ装置
２，２ａ，２ｂ    ホスト装置
３，３ａ，３ｂ    スイッチ
１１    ＩＯ制御部
１２    ＲＡＩＤ制御部
１３    リビルド処理部（復元部）
１７    ＬＵＮ選択部
１８    アクセス履歴作成部
１９    コピー処理部
３０    ドライブエンクロージャ
３０ａ    ＲＡＩＤグループ
３０ｂ    予備ディスクグループ
３１    記憶装置
３１ａ，３１ａ−１〜３１ａ−４    リビルド元ディスク，記憶装置
３１ｂ，３１ｂ−１〜３１ｂ−４    リビルド先ディスク，記憶装置
４０    コントローラエンクロージャ
６１    ＬＵＮ管理テーブル
６２    仮／実ボリューム変換テーブル
６３    ディスク構成情報
６４    ＲＡＩＤ構成テーブル
６５，６５ｂ，６５ｃ    アクセス履歴情報
６６    アクセス履歴データベース（アクセス履歴情報）
６７    ディスク情報
６８    リビルド時間情報（復元時間情報）    
１００    コントローラ（ストレージ制御装置）
１０１，１０１ａ，１０１ｂ    ポート
１０３    デバイスアダプタ
１０６    メモリ
１０７    フラッシュメモリ
１０８    ＩＯＣ
１１０    ＣＰＵ
１７１    情報取得部（アクセス履歴取得部）
１７２    第１決定部（論理ボリューム決定部）
１７３    第２決定部（復元時間帯予測部，論理ボリューム決定部）
【図１】
2016057795.tif 000003
【図２】
2016057795.tif 000004
【図３】
2016057795.tif 000005
【図４】
2016057795.tif 000006
【図５】
2016057795.tif 000007
【図６】
2016057795.tif 000008
【図７】
2016057795.tif 000009
【図８】
2016057795.tif 000010
【図９】
2016057795.tif 000011
【図１０】
2016057795.tif 000012
【図１１】
2016057795.tif 000013
【図１２】
2016057795.tif 000014
【図１３】
2016057795.tif 000015