(57)【要約】【課題】省電力化すること。【解決手段】記憶装置２２，２４は、バックアップデータの格納用であり、電源オフされている。記憶装置２１，２３は、電源オンされている。制御部１２は、記憶装置２２に対するバックアップデータの書き込み要求を受信すると、バックアップデータを記憶装置２２に対応付けて記憶部１１に格納する。制御部１２は、所定のタイミングで、記憶装置２２の電源をオンにする。制御部１２は、電源をオンにした記憶装置２２に対応付けられたバックアップデータを記憶部１１から読み出して記憶装置２２に書き込む。制御部１２は、書き込みが完了した記憶装置２２の電源をオフにする。【選択図】図１
2016126561.tif 000002
【特許請求の範囲】
【請求項１】
バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能な複数の記憶装置それぞれを書き込み先とする前記バックアップデータを記憶する記憶部と、
前記記憶装置が電源オフされている場合に、何れかの記憶装置に対する前記バックアップデータの書き込み要求を受信すると、前記バックアップデータを前記記憶装置毎に対応付けて前記記憶部に格納させ、
所定のタイミングで、前記記憶部に格納された前記バックアップデータの書き込み先の前記複数の記憶装置のうちの一部の記憶装置の電源を個別にオンにし、
電源をオンにした前記記憶装置に対応付けられた前記バックアップデータを前記記憶部から読み出して該記憶装置に書き込み、
書き込みが完了した前記記憶装置の電源をオフにする、制御を行う制御部と、
を有するストレージ制御装置。
【請求項２】
前記制御部は、前記ストレージ制御装置の起動時に前記複数の記憶装置の電源がオンにされた後、前記複数の記憶装置の電源をオフにする、請求項１記載のストレージ制御装置。
【請求項３】
前記制御部は、一連のバックアップデータを前記複数の記憶装置に分散して格納する場合に、記憶装置毎に格納するバックアップデータを集約して前記記憶部に格納し、電源をオンにした前記記憶装置に、該記憶装置に対して集約したバックアップデータを書き込む、請求項１または２記載のストレージ制御装置。
【請求項４】
前記制御部は、前記記憶装置に対応付けて前記記憶部に格納された前記バックアップデータの合計サイズが閾値以上になったタイミングで、当該バックアップデータに対応する前記記憶装置の電源をオンにする、請求項１乃至３の何れか１項に記載のストレージ制御装置。
【請求項５】
前記制御部は、前記記憶装置に対応付けられた前記バックアップデータが前記記憶部に格納されてから、前記記憶装置に対応付けて設定された時間が経過したタイミングで、当該バックアップデータに対応する前記記憶装置の電源をオンにする、請求項１乃至３の何れか１項に記載のストレージ制御装置。
【請求項６】
前記記憶部には、１つの記憶装置に対して複数のバッファが設けられており、
前記制御部は、前記記憶装置を書き込み先とする第１のバックアップデータを前記記憶装置に対応する第１のバッファに格納し、前記第１のバッファに格納された前記第１のバックアップデータを前記記憶装置に書き込んでいる間に、前記記憶装置を書き込み先とする第２のバックアップデータの書き込み要求を受信すると、前記記憶装置に対応する第２のバッファに前記第２のバックアップデータを格納する、
請求項１乃至５の何れか１項に記載のストレージ制御装置。
【請求項７】
バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能な複数の記憶装置と、
前記記憶装置が電源オフされている場合に、前記バックアップデータを記憶する記憶部と、
前記バックアップデータの書き込み要求を受信すると、前記バックアップデータを前記記憶装置毎に対応付けて前記記憶部に格納し、所定のタイミングで、前記記憶部に格納された前記バックアップデータの書き込みを指示する書き込み制御部と、
前記指示に対応する記憶装置の電源を個別にオンにし、電源をオンにした前記記憶装置に対応付けられた前記バックアップデータを前記記憶部から読み出して該記憶装置に書き込み、書き込みが完了した前記記憶装置の電源をオフにする電源制御部と、
を有するストレージ装置。
【請求項８】
バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能な複数の記憶装置が電源オフされている場合に、何れかの記憶装置に対する前記バックアップデータの書き込み要求を受信すると、前記バックアップデータを前記記憶装置に対応付けて記憶部に格納し、
所定のタイミングで、前記記憶部に格納された前記バックアップデータの書き込み先の前記複数の記憶装置のうちの一部の記憶装置の電源を個別にオンにし、
電源をオンにした前記記憶装置に対応付けられた前記バックアップデータを前記記憶部から読み出して該記憶装置に書き込み、
書き込みが完了した前記記憶装置の電源をオフにする、
処理をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージ制御装置、ストレージ装置およびプログラムに関する。
【背景技術】
【０００２】
現在、データの保存にストレージ装置が利用されている。ストレージ装置は、ＨＤＤ（Hard Disk Drive）やＳＳＤ（Solid State Drive）などの記憶装置を複数搭載して大容量の記憶領域を利用可能とする。例えば、ストレージ装置は、記憶装置へのアクセス制御を行うコントローラに接続される。ストレージ装置は、コントローラを内蔵することもある。コントローラは、ホストコンピュータからのアクセス要求を受け付けて、各記憶装置へのデータの読み書きを制御する。
【０００３】
例えば、複数のコントローラを設けてコントローラの負荷を軽減させる提案がある。この提案では、２台のコントローラそれぞれにキャッシュ機構を設ける。そして、両系統のキャッシュメモリに同一データを格納する信頼性重視モード、両系統のキャッシュメモリに独立にデータを格納する性能重視モード、または、両者を折衷した平均モードの何れかで動作可能とし、運用に応じてディスクキャッシュ機能を最適化する。
【０００４】
ところで、記憶装置の駆動には電力を消費する。そこで、記憶装置では節電が図られている。例えば、ディスクキャッシュをもつコンピュータシステムに装着された１つのローカル・ディスクを省電力化する提案がある。この提案では、前回のフラッシュから所定時間を経過したとき、前回のディスクアクセスから所定時間を経過したとき、または、ディスクアクセス回数が所定値に達したときの何れかに、ディスクキャッシュをフラッシュする。そして、最後のディスクアクセスから一定時間が経過すると、１つのローカル・ディスクの回転モータを停止させる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平７−１１０７８８号公報
【特許文献２】特開平９−４４３１４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
データの消失や破損のリスクに備えて、データの複製をバックアップとして取得することがある。バックアップ処理により生成されたデータ（バックアップデータと称する）はストレージ装置内の複数の記憶装置に格納され得る。この場合、ストレージ装置の省電力化に対して改善の余地がある。
【０００７】
例えば、ストレージ装置内の全ての記憶装置を電源オフにしておき、書き込み時だけ全ての記憶装置を一律に電源オンにすることも考えられる。しかし、複数の記憶装置を一律に電源オンにしてしまうと、書き込み対象のデータが未だ存在していない記憶装置の電源もオンになる可能性があり、当該記憶装置により余計な電力が消費されるおそれがある。特に、バックアップ処理によるストレージ装置への書き込み頻度は、通常の業務処理に比べて少ない。このため、複数の記憶装置を一律に電源オンにすると、バックアップデータの格納用の記憶装置が無駄に電源オンされ、余計な電力が消費される可能性が高い。
【０００８】
１つの側面では、本発明は、省電力化できるストレージ制御装置、ストレージ装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、ストレージ制御装置が提供される。このストレージ制御装置は、記憶部と制御部とを有する。記憶部は、バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能な複数の記憶装置それぞれを書き込み先とするバックアップデータを記憶する。制御部は、記憶装置が電源オフされている場合に、何れかの記憶装置に対するバックアップデータの書き込み要求を受信すると、バックアップデータを記憶装置毎に対応付けて記憶部に格納させ、所定のタイミングで、記憶部に格納されたバックアップデータの書き込み先の複数の記憶装置のうちの一部の記憶装置の電源を個別にオンにし、電源をオンにした記憶装置に対応付けられたバックアップデータを記憶部から読み出して該記憶装置に書き込み、書き込みが完了した記憶装置の電源をオフにする、制御を行う。
【００１０】
また、１つの態様では、ストレージ装置が提供される。このストレージ装置は、複数の記憶装置と記憶部と書き込み制御部と電源制御部とを有する。複数の記憶装置は、バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能である。記憶部は、記憶装置が電源オフされている場合に、バックアップデータを記憶する。書き込み制御部は、バックアップデータの書き込み要求を受信すると、バックアップデータを記憶装置毎に対応付けて記憶部に格納し、所定のタイミングで、記憶部に格納されたバックアップデータの書き込みを指示する。電源制御部は、指示に対応する記憶装置の電源を個別にオンにし、電源をオンにした記憶装置に対応付けられたバックアップデータを記憶部から読み出して該記憶装置に書き込み、書き込みが完了した記憶装置の電源をオフにする。
【００１１】
また、１つの態様では、コンピュータによって実行されるプログラムが提供される。このプログラムは、バックアップデータの格納に用いられるとともに個々に電源のオンオフ制御が可能な複数の記憶装置が電源オフされている場合に、何れかの記憶装置に対するバックアップデータの書き込み要求を受信すると、バックアップデータを記憶装置に対応付けて記憶部に格納し、所定のタイミングで、記憶部に格納されたバックアップデータの書き込み先の複数の記憶装置のうちの一部の記憶装置の電源を個別にオンにし、電源をオンにした記憶装置に対応付けられたバックアップデータを記憶部から読み出して該記憶装置に書き込み、書き込みが完了した記憶装置の電源をオフにする、処理をコンピュータに実行させる。
【発明の効果】
【００１２】
１つの側面では、省電力化できる。
【図面の簡単な説明】
【００１３】
【図１】第１の実施の形態のストレージ制御装置を示す図である。
【図２】第２の実施の形態の情報処理システムを示す図である。
【図３】ストレージ装置のハードウェア例を示す図である。
【図４】管理装置のハードウェア例を示す図である。
【図５】ストレージ装置の機能例を示す図である。
【図６】論理ボリュームとアグリゲート／ＲＡＩＤとの対応の例を示す図である。
【図７】論理ボリュームとバッファとの対応の例を示す図である。
【図８】論理ボリューム管理テーブルの例を示す図である。
【図９】ディスク管理テーブルの例を示す図である。
【図１０】バックアップ設定情報の例を示す図である。
【図１１】ディスク電源管理テーブルの例を示す図である。
【図１２】バッファの例を示す図である。
【図１３】電源投入時処理の例を示すフローチャートである。
【図１４】ディスク故障時処理の例を示すフローチャートである。
【図１５】バックアップデータ書き込み処理の例を示すフローチャートである。
【図１６】論理ボリュームとＨＤＤとの対応関係の例を示す図である。
【図１７】第３の実施の形態のストレージ制御装置のハードウェア例を示す図である。
【発明を実施するための形態】
【００１４】
以下、本実施の形態を図面を参照して説明する。
［第１の実施の形態］
図１は、第１の実施の形態のストレージ制御装置を示す図である。ストレージ制御装置１０は、ストレージ装置２０に接続される。ストレージ装置２０は、ＨＤＤやＳＳＤなどの複数の記憶装置２１，２２，２３，２４を収納する装置である。ストレージ制御装置１０は、複数の記憶装置に対するデータの書き込みや読み出しを制御する。ストレージ制御装置１０は、コントローラと呼ばれることもある。ストレージ制御装置１０は、ストレージ装置２０に内蔵されてもよい。
【００１５】
ストレージ制御装置１０は、例えばネットワーク（図示を省略している）に接続される。ネットワークには、他のストレージ装置を制御する他のストレージ制御装置、および、サーバコンピュータやクライアントコンピュータなどの種々の装置が接続される。ストレージ制御装置１０は、ストレージ装置２０に対するデータの書き込みや読み出しの要求を、ネットワークに接続された他の装置から受け付ける。ストレージ制御装置１０は、要求に応じて、ストレージ装置２０の何れかの記憶装置にデータを書き込んだり、ストレージ装置２０の何れかの記憶装置からデータを読み出したりする。ストレージ制御装置１０は、データの書き込みや読み出しの結果を、要求元の装置に応答する。
【００１６】
ここで、記憶装置２１，２３は、業務処理で扱われるデータの保持に用いられる。記憶装置２２，２４は、業務処理で扱われるデータに対して取得されたバックアップデータの保持に用いられる。記憶装置２２，２４に格納されるデータは、業務処理の実行に応じて直接更新されるわけではなく、バックアップ用である。バックアップデータは、例えば、他のストレージ制御装置によって生成され、ストレージ制御装置１０に送信される。バックアップデータは、サーバコンピュータやクライアントコンピュータなどによって生成され、ストレージ制御装置１０に送信されることもある。なお、記憶装置２１，２２，２３，２４には識別情報が付与されている。記憶装置２１の識別情報は“ａ”である。記憶装置２２の識別情報は“ｂ”である。記憶装置２３の識別情報は“ｃ”である。記憶装置２４の識別情報は“ｄ”である。また、記憶装置２１，２２，２３，２４は、個々に電源のオンオフ制御が可能である。
【００１７】
ストレージ制御装置１０は、記憶部１１および制御部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置でもよいし、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置でもよい。ただし、後述するように記憶部１１はバックアップデータを一時的に格納するバッファとして用いられる。このため、記憶部１１は不揮発性記憶装置であることが好ましい。ストレージ制御装置１０の予期しない電源断などで保持データが喪失されるのを防げるからである。制御部１２は、ＣＰＵ（Central Processing Unit）、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。制御部１２はプログラムを実行するプロセッサであってもよい。ここでいう「プロセッサ」には、複数のプロセッサの集合（マルチプロセッサ）も含まれ得る。
【００１８】
記憶部１１は、記憶装置２２，２４それぞれに格納するバックアップデータを一時的に格納しておくためのバッファ１１ａ，１１ｂを有する。バッファ１１ａは、記憶装置２２に対して書き込みが要求されたバックアップデータを格納するための記憶領域である。バッファ１１ｂは、記憶装置２４に対して書き込みが要求されたバックアップデータを格納するための記憶領域である。
【００１９】
例えば、記憶部１１において、バッファ１１ａに相当するアドレス範囲が記憶装置２２に対応付けて予め確保される。例えば、制御部１２は、記憶部１１の第１のアドレス範囲を記憶装置２２の識別情報“ｂ”に対応付けて管理する。この場合、第１のアドレス範囲に対応する記憶領域がバッファ１１ａである。同様に、制御部１２は、記憶部１１の第２のアドレス範囲を記憶装置２４の識別情報“ｄ”に対応付けて管理する。この場合、第２のアドレス範囲に対応する記憶領域がバッファ１１ｂである。あるいは、記憶装置２２を書き込み先とするバックアップデータは、記憶装置２２の識別情報“ｂ”が（例えば、制御部１２により）付加されて記憶部１１に格納されてもよい。その場合、記憶装置２２の識別情報“ｂ”が付加されたバックアップデータが格納されている記憶領域の集合をバッファ１１ａと考えることができる。バッファ１１ｂもバッファ１１ａと同様である。
【００２０】
制御部１２は、バックアップデータ格納用の記憶装置２２，２４を電源オフにしている。例えば、制御部１２は、ストレージ装置２０の起動時、ストレージ装置２０内の記憶装置２１，２２，２３，２４が電源オン状態になると、記憶装置２１，２２，２３，２４の認識を行う。その後、制御部１２は、バックアップデータの格納用である記憶装置２２，２４の電源をオフにする。バックアップデータの格納用とする記憶装置を示す情報は、ストレージ装置２０の何れかの記憶装置に予め格納されている。制御部１２は、当該情報を参照することで何れの記憶装置がバックアップデータの格納用であるかを判別する。
【００２１】
制御部１２は、電源オフされている記憶装置２２，２３のうちの何れかの記憶装置に対するバックアップデータの書き込み要求を受信すると、書き込み要求先の記憶装置に対応付けて、バックアップデータを記憶部１１に格納する。例えば、制御部１２は、ネットワークに接続された他のストレージ制御装置やクライアントコンピュータなどからバックアップデータの書き込み要求を受信する。書き込み要求には、書き込み先の記憶装置を特定するための情報（例えば、ボリューム名の情報など）が含まれる。制御部１２は、データの書き込み先が記憶装置２２，２４の何れかであれば、書き込み対象のデータがバックアップデータであると判別できる。
【００２２】
例えば、制御部１２は、記憶装置２２に対するバックアップデータの書き込み要求を受信する。すると、制御部１２は、記憶装置２２に対応するバッファ１１ａに、バックアップデータを格納する。すなわち、制御部１２は、記憶装置２２を書き込み先とするバックアップデータをバッファ１１ａ内にマージする。
【００２３】
これにより、記憶装置単位のバックアップデータを集約してバッファ上で管理できる。また、ファイル単位のバックアップデータを分散して記憶装置に格納する場合、記憶装置毎のバックアップデータをバッファ上で管理可能になる。これにより、記憶装置毎の書き込み制御が可能になり、個々の記憶装置の電源オンオフ制御を実現可能にする。
【００２４】
制御部１２は、所定のタイミングで、記憶装置２２，２４のうちの一部の記憶装置（例えば、記憶装置２２）の電源をオンにする。制御部１２は、電源オンにした記憶装置に対応付けられたバックアップデータを、記憶部１１から読み出して当該記憶装置に書き込む。制御部１２は、書き込みが完了した記憶装置の電源をオフにする。
【００２５】
所定のタイミングとしては種々のタイミングが考えられる。第１には、ある記憶装置に対応するバッファに格納されたバックアップデータの合計サイズが閾値以上になった（バッファフルになった）タイミングである。例えば、制御部１２は、バッファ１１ａのバッファフルを検出した場合、バッファ１１ａに対応する記憶装置２２の電源をオンにする。
【００２６】
第２には、あるバッファでバックアップデータを保持した期間が、予め設定された時間を超過したタイミングである。例えば、制御部１２は、バックアップデータが予め設定された時間以上、バッファ１１ａ内に保持されていることを検出した場合、バッファ１１ａに対応する記憶装置２２の電源をオンにする。
【００２７】
第３には、ユーザによる書き込み指示を受け付けたタイミングである。例えば、制御部１２は、バッファ１１ａからのバックアップデータの書き込み、または、記憶装置２２に対するバックアップデータの、ユーザによる書き込み指示を受け付けると、バッファ１１ａに対応する記憶装置２２の電源をオンにする。
【００２８】
上記のタイミングで記憶装置２２の電源をオンにすると、制御部１２は、バッファ１１ａに記憶されたバックアップデータを、記憶装置２２に書き込む。制御部１２は、書き込みが完了した記憶装置２２の電源をオフにする。例えば、制御部１２はバッファ１１ａに格納された情報を上書き可能とすることで、バッファ１１ａを再利用可能にする。
【００２９】
ストレージ制御装置１０によれば、制御部１２により、記憶装置２２に対するバックアップデータの書き込み要求が受信されると、記憶装置２２に対応付けて記憶部１１にバックアップデータが格納される。制御部１２により、所定のタイミングで、記憶装置２２，２４のうちの記憶装置２２の電源がオンにされる。制御部１２により、記憶装置２２に対応付けられたバックアップデータが、記憶部１１から読み出されて記憶装置２２に書き込まれる。制御部１２により、書き込みが完了した記憶装置２２の電源がオフにされる。これにより、ストレージ装置２０を省電力化できる。
【００３０】
ここで、ストレージ装置２０内の記憶装置２１，２２，２３，２４の電源オン／オフを一律に切り替えることで省電力化を図ることも考えられる。しかし、書き込み対象のデータが未だ存在していない記憶装置の電源もオンにしてしまうと、当該記憶装置で余計に電力が消費されてしまう。特に、バックアップ処理の書き込みの頻度は、通常の業務処理に比べて少ない。このため、記憶装置２２，２４を一律に電源オンすると、書き込み対象のバックアップデータが未だ存在していない記憶装置が起動されてしまい、当該記憶装置により余計に電力が消費される可能性が高い。
【００３１】
そこで、ストレージ制御装置１０は、バックアップデータの格納用である記憶装置２２，２４について、通常は電源オフにし、バックアップデータを記憶装置に対応付けてバッファリングする。ストレージ制御装置１０は、記憶装置２２，２４の一部を間欠的に電源オンし、電源オンした記憶装置に対応するバックアップデータを当該記憶装置に書き込む。このようにすれば、記憶装置２２，２４の電源を一律にオンにするよりも、記憶装置２２，２４それぞれを電源オフ状態にする期間を長く取れる（電源オン状態の期間を短縮できる）。よって、記憶装置２２，２４による電力消費を抑えられ、省電力化を図れる。
【００３２】
例えば、バッファ１１ａ，１１ｂを設けずにバックアップデータの転送開始の検出時に記憶装置２２，２４を電源オンすることも考えられる。しかし、この場合、バックアップデータの転送毎に記憶装置２２，２４の電源オン／オフが繰り返され、突入電流による記憶装置２２，２４の故障のリスクが高まるおそれがある。そこで、バックアップデータをバッファ１１ａ，１１ｂにある程度まとまったデータ量で書き込みができるように集約してバッファリングした上で、記憶装置２２，２４に格納することで、記憶装置２２，２４の電源オン／オフが頻繁に行われる可能性を低減でき、記憶装置２２，２４の故障のリスクを低減できる。
【００３３】
バッファ１１ａ，１１ｂを設けない場合、バックアップデータの複数の転送元でのバックアップスケジュールが重なっていると、記憶装置２２，２４を電源オフする期間が比較的短くなるか、電源オフするタイミングが発生しないこともある。バックアップデータをバッファリングすることで、バックアップスケジュールが重なったとしても、バッファフルになるまで記憶装置２２，２４の電源オフ期間を稼げる。
【００３４】
また、バックアップ開始時に記憶装置２２，２４を起動しなくても、バッファ１１ａ，１１ｂを用いてバックアップデータを保持できるので、バックアップの開始時に記憶装置２２，２４の起動を待たずに済む。よって、記憶装置２２，２４の立ち上がりリードタイムに伴うバックアップ開始時のレスポンス低下を抑制できる。
【００３５】
更に、通常業務用の記憶装置２１，２３に対しては、記憶装置２２，２４よりも頻繁にデータの書き込みが発生する。したがって、記憶装置２１，２３に対して上記のようにバッファを設けたとしても、記憶装置２２，２４のバッファと比べて短時間でバッファフルになる可能性が高い。また、記憶装置２１，２３では、電源オン／オフが頻繁に行われる可能性があり、突入電流により記憶装置２１，２３の故障のリスクが高まるおそれもある。そこで、バックアップデータの格納用の記憶装置２２，２４に対してバッファを設け、上記のように個別の電源オン／オフを行うことで、効率的に省電力化を図れる。
【００３６】
なお、ストレージ制御装置１０は、１つの記憶装置に対して複数のバッファ（例えば、２面構成とするなど）を設けてもよい。例えば、記憶装置２２に対しバッファ１１ａに加えて予備のバッファを設けてもよい。ストレージ制御装置１０は、バッファ１１ａから記憶装置２２にバックアップデータを書き込んでいる間に、記憶装置２２を書き込み先とする追加のバックアップデータを転送元の装置から受信しても、追加のバックアップデータを予備のバッファに格納できる。このようにすれば、バックアップデータの転送元でのバックアップ処理を中断させずに済み、バックアップ処理を効率的に行える。
【００３７】
また、ストレージ制御装置１０は、ＲＡＩＤ（Redundant Arrays of Independent Disks）と呼ばれる技術により、複数の記憶装置にデータを分散して格納し、データへのアクセス性能の向上や記憶装置の故障に対する信頼性の向上を図ることもできる。ＲＡＩＤを用いる場合、ＲＡＩＤを組む記憶装置群（ＲＡＩＤグループ）単位にバックアップデータ格納用の記憶装置を定めることができる。例えば、あるＲＡＩＤグループをバックアップデータの格納用とするならば、そのＲＡＩＤグループに属する全ての記憶装置がバックアップデータの格納用として扱われる。この場合も、ＲＡＩＤに属する記憶装置毎に、記憶部１１内にバッファを設けることで、制御部１２は上記と同様の書き込み制御を行うことができ、ストレージ装置２０の省電力化を図れる。
【００３８】
［第２の実施の形態］
図２は、第２の実施の形態の情報処理システムを示す図である。第２の実施の形態の情報処理システムは、ストレージ装置１００，１００ａ，１００ｂ，１００ｃ、ディスクシェルフ２００、管理装置３００およびサーバ４００，４００ａ，４００ｂ，４００ｃを含む。ストレージ装置１００、管理装置３００およびサーバ４００は、ネットワーク３０に接続されている。ストレージ装置１００ａおよびサーバ４００ａは、ネットワーク３１に接続されている。ストレージ装置１００ｂおよびサーバ４００ｂは、ネットワーク３２に接続されている。ストレージ装置１００ｃおよびサーバ４００ｃは、ネットワーク３３に接続されている。ディスクシェルフ２００は、ストレージ装置１００に接続されている。
【００３９】
ネットワーク３０，３１，３２，３３は、例えばＬＡＮ（Local Area Network）である。ネットワーク３１，３２，３３は、ネットワーク３０に接続されている。ネットワーク３０，３１，３２，３３は、インターネットを介して接続されてもよい。
【００４０】
ストレージ装置１００，１００ａ，１００ｂ，１００ｃは、ＨＤＤ（ＳＳＤでもよい）を複数備える。ストレージ装置１００，１００ａ，１００ｂ，１００ｃが備える記憶装置へのデータの書き込みや読み出しは、ネットワークを介して行われる。ストレージ装置１００，１００ａ，１００ｂ，１００ｃは、複数のＨＤＤを用いてＲＡＩＤを形成する（ＲＡＩＤを形成していないＨＤＤもある）。
【００４１】
ストレージ装置１００は、サーバ４００の処理に用いられるデータを記憶する。ストレージ装置１００は、ネットワーク３０を介して、データの書き込みや読み出しの要求をサーバ４００から受信する。ストレージ装置１００は、ネットワーク３０を介して、データの書き込みや読み出しの結果を、要求元のサーバ４００に応答する。
【００４２】
また、ストレージ装置１００は、ストレージ装置１００ａ，１００ｂ，１００ｃからバックアップデータの書き込み要求を受信する。バックアップデータの書き込み要求は、バックアップデータおよびバックアップデータの書き込み先を特定するための情報（例えば、書き込み先のボリューム名など）を含む。ストレージ装置１００は、書き込み要求に応じて、ＨＤＤへのバックアップデータの書き込みを行う。後述するように、ストレージ装置１００は、バックアップデータの書き込み要求を受信すると、バックアップデータをバッファに蓄積する。ストレージ装置１００は、バッファに蓄積されたデータ量がある程度のサイズになると、バッファに格納されているバックアップデータをＨＤＤへ書き込む。
【００４３】
ディスクシェルフ２００は、複数のＨＤＤ（ＳＳＤでもよい）を収納する装置である。ディスクシェルフ２００は、ストレージ装置１００と所定のケーブルで接続されている。ストレージ装置１００は、ディスクシェルフ２００に収納されたＨＤＤに対するアクセスも制御する。ストレージ装置１００は、ストレージ装置１００に収納されたＨＤＤと、ディスクシェルフ２００に収納されたＨＤＤとを用いてＲＡＩＤを実現することもできる。ストレージ装置１００ａ，１００ｂ，１００ｃそれぞれにも同様にディスクシェルフが接続されてもよい。
【００４４】
ストレージ装置１００，１００ａ，１００ｂ，１００ｃのように、ネットワークに接続され、ネットワークを介して使用されるストレージ装置は、ＮＡＳ（Network Attached Storage）と呼ばれることがある。ストレージ装置１００は、ストレージ装置１００ａ，１００ｂ，１００ｃに格納されたデータに対するバックアップデータを取得する機能を有する。ストレージ装置１００は、ストレージ装置１００ａ，１００ｂ，１００ｃに格納されたデータに対するバックアップデータをストレージ装置１００ａ，１００ｂ，１００ｃから取得し、ストレージ装置１００の所定のＨＤＤに格納する。
【００４５】
管理装置３００は、ストレージ装置１００の設定に用いられるクライアントコンピュータである。例えば、システムの管理者は、管理装置３００を操作して、ストレージ装置１００に種々の設定を行える。具体的には、管理者は、ストレージ装置１００によるバックアップ処理のスケジュールやバックアップデータの格納先などの設定を行える。
【００４６】
サーバ４００，４００ａ，４００ｂ，４００ｃは、ユーザの業務用のソフトウェアを実行するサーバコンピュータである。サーバ４００，４００ａ，４００ｂ，４００ｃは、それぞれが異なる地域の異なるユーザによって利用される。
【００４７】
図３は、ストレージ装置のハードウェア例を示す図である。ストレージ装置１００は、プロセッサ１０１、メモリ１０２、バッテリ１０３、ＲＯＭ（Read Only Memory）１０４、ディスク制御部１０５、ＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃ，１０６ｄ，１０６ｅ，・・・および外部ＩＦ（InterFace）１０７を有する。各ユニットは、ストレージ装置１００のバスに接続されている。
【００４８】
プロセッサ１０１は、ストレージ装置１００の情報処理を制御する。プロセッサ１０１は、マルチプロセッサであってもよい。プロセッサ１０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００４９】
メモリ１０２は、ストレージ装置１００の主記憶装置である。メモリ１０２は、プロセッサ１０１に実行させるＯＳ（Operating System）（ストレージ装置１００の管理ＯＳ）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、メモリ１０２は、プロセッサ１０１による処理に用いられる各種データを記憶する。メモリ１０２は、バッテリ１０３によってバックアップされる不揮発性記憶装置（ＮＶＲＡＭ：Non-Volatile RAM）である。
【００５０】
バッテリ１０３は、メモリ１０２に電力を供給する電池である。
ＲＯＭ１０４は、管理ＯＳのプログラムおよびアプリケーションプログラムおよび各種データを記憶する。ＲＯＭ１０４は、書き換え可能なメモリであってもよい。
【００５１】
ディスク制御部１０５は、プロセッサ１０１の指示に応じて、ストレージ装置１００に収納されたＨＤＤに対するデータの書き込み、および、ＨＤＤからのデータの読み出しを行う。ディスク制御部１０５は、所定のケーブルを用いてディスクシェルフ２００とも接続されている。ディスク制御部１０５は、プロセッサ１０１の指示を、ディスクシェルフ２００に送信することもある。ディスク制御部１０５は、プロセッサ１０１の指示に応じて、ＨＤＤ毎の電源のオンおよび電源のオフを行う。ディスク制御部１０５のインタフェースとしては、例えばＳＡＳ（Serial Attached SCSI）インタフェースを用いることができる（ＳＣＳＩはSmall Computer System Interfaceの略である）。ディスク制御部１０５は、内蔵ＨＤＤや外付けディスクシェルフとケーブル接続するための複数のアダプタを有する。
【００５２】
ＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃ，１０６ｄ，１０６ｅ，・・・は、ストレージ装置１００に収納されているＨＤＤである。ＨＤＤは、内蔵した磁気ディスクに対して磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤは、サーバ４００による業務処理に用いられる各種データを記憶する。ストレージ装置１００は、ＨＤＤに代えて、または、ＨＤＤと併せて、ＳＳＤなどの他の種類の記憶装置を備えてもよい。
【００５３】
外部ＩＦ１０７は、ネットワーク３０を介して他の装置（例えば、サーバ４００、他のストレージ装置および管理装置３００など）と通信する通信インタフェースである。
ディスクシェルフ２００は、ディスク制御部２０１およびＨＤＤ２０２，２０２ａ，２０２ｂ，２０２ｃ，２０２ｄ，２０２ｅ，・・・を有する。ディスク制御部２０１は、所定のケーブルを用いてディスク制御部１０５と接続されている。ディスク制御部２０１は、ディスク制御部１０５を介してプロセッサ１０１の指示を受け付け、指示に応じて、ディスクシェルフ２００に収納されたＨＤＤに対するデータの書き込み、およびＨＤＤからのデータの読み出しを行う。ディスク制御部２０１のインタフェースも、ディスク制御部１０５と同様にＳＡＳインタフェースを用いることができる。ＨＤＤ２０２，２０２ａ，２０２ｂ，２０２ｃ，２０２ｄ，２０２ｅ，・・・は、ディスクシェルフ２００に収納されたＨＤＤである。ただし、ディスクシェルフ２００は、ＨＤＤに代えて、または、ＨＤＤと併せて、ＳＳＤなどの他の種類の記憶装置を備えてもよい。
【００５４】
ここで、ストレージ装置１００およびディスクシェルフ２００に収納された各ＨＤＤのうちの幾つかは、バックアップデータの格納に用いられる。以下の説明では、バックアップデータの格納用のＨＤＤを、単にバックアップ用ＨＤＤと称することがある。
【００５５】
図４は、管理装置のハードウェア例を示す図である。管理装置３００は、プロセッサ３０１、ＲＡＭ３０２、ＨＤＤ３０３、画像信号処理部３０４、入力信号処理部３０５、読み取り装置３０６および外部ＩＦ３０７を有する。各ユニットは管理装置３００のバスに接続されている。サーバ４００，４００ａ，４００ｂ，４００ｃも管理装置３００と同様のハードウェアにより実現できる。
【００５６】
プロセッサ３０１は、管理装置３００の情報処理を制御する。プロセッサ３０１は、マルチプロセッサであってもよい。プロセッサ３０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ３０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【００５７】
ＲＡＭ３０２は、管理装置３００の主記憶装置である。ＲＡＭ３０２は、プロセッサ３０１に実行させるＯＳのプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、ＲＡＭ３０２は、プロセッサ３０１による処理に用いる各種データを記憶する。
【００５８】
ＨＤＤ３０３は、管理装置３００の補助記憶装置である。ＨＤＤ３０３は、内蔵した磁気ディスクに対して、磁気的にデータの書き込みおよび読み出しを行う。ＨＤＤ３０３には、ＯＳのプログラム、アプリケーションプログラム、および各種データが格納される。管理装置３００は、フラッシュメモリやＳＳＤなどの他の種類の補助記憶装置を備えてもよく、複数の補助記憶装置を備えてもよい。
【００５９】
画像信号処理部３０４は、プロセッサ３０１からの命令に従って、管理装置３００に接続されたモニタ４１に画像を出力する。モニタ４１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイや液晶ディスプレイなどを用いることができる。
【００６０】
入力信号処理部３０５は、管理装置３００に接続された入力デバイス４２から入力信号を取得し、プロセッサ３０１に出力する。入力デバイス４２としては、例えば、マウス、デジタイザおよびタッチパネルなどのポインティングデバイス、キーボードなどを用いることができる。
【００６１】
読み取り装置３０６は、記録媒体４３に記録されたプログラムやデータを読み取る装置である。記録媒体４３として、例えば、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤなどの磁気ディスク、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）などの光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）を使用できる。また、記録媒体４３として、例えば、フラッシュメモリカードなどの不揮発性の半導体メモリを使用することもできる。読み取り装置３０６は、例えば、プロセッサ３０１からの命令に従って、記録媒体４３から読み取ったプログラムやデータをＲＡＭ３０２またはＨＤＤ３０３に格納する。
【００６２】
外部ＩＦ３０７は、ネットワーク３０を介して他の装置と通信を行う。外部ＩＦ３０７は、有線通信インタフェースでもよいし、無線通信インタフェースでもよい。
図５は、ストレージ装置の機能例を示す図である。ストレージ装置１００は、制御情報記憶部１１０、バッファ用記憶部１２０、電源情報記憶部１３０、管理ＯＳ１４０、バッファ制御部１５０およびディスク電源制御部１６０を有する。制御情報記憶部１１０は、ストレージ装置１００に収納された何れかのＨＤＤ上に確保された記憶領域（制御用領域と称する）により実現される。バッファ用記憶部１２０および電源情報記憶部１３０は、メモリ１０２に確保された記憶領域により実現される。管理ＯＳ１４０、バッファ制御部１５０およびディスク電源制御部１６０は、プロセッサ１０１がプログラムを実行することで実現される。
【００６３】
制御情報記憶部１１０は、ＲＡＩＤやＲＡＩＤを組んでいるＨＤＤの情報およびバックアップ設定の情報を記憶する。バックアップ設定の情報には、バックアップデータの取得元やバックアップデータの格納先、バックアップを実行するスケジュールなどの情報が含まれる。
【００６４】
バッファ用記憶部１２０は、バックアップ用ＨＤＤ毎のバッファを設けるための記憶領域である。バッファには、当該バッファに対応するバックアップ用ＨＤＤを書き込み先とするバックアップデータが一時的に格納される。各バッファは、バッファ制御部１５０によりＨＤＤに対応付けて管理される。
【００６５】
電源情報記憶部１３０は、ディスク電源管理テーブルを記憶する。ディスク電源管理テーブルは、ＨＤＤ毎の電源のオン／オフ状況の管理に用いられるテーブルである。
管理ＯＳ１４０は、ストレージ装置１００全体を管理するＯＳである。管理ＯＳ１４０は、ストレージ装置１００またはディスクシェルフ２００に収納されたＨＤＤに対するデータの書き込み要求や、ＨＤＤからのデータの読み出し要求を受信する。管理ＯＳ１４０は、ＨＤＤに対するデータの書き込みや読み出しを行い、要求元の装置に書き込みや読み出しの結果を応答する。
【００６６】
バッファ制御部１５０は、バッファ用記憶部１２０に設けられた各バッファへのバックアップデータの書き込み、および、各バッファからのバックアップデータの読み出しを制御する。バッファ制御部１５０は、バックアップ用のＨＤＤに対するバックアップデータの書き込み要求を受信した場合、書き込み先のＨＤＤに対応するバッファに、書き込み対象のバックアップデータを格納する。
【００６７】
また、バッファ制御部１５０は、各バッファに格納されたバックアップデータのＨＤＤへの書き込みを制御する。具体的には、バッファ制御部１５０は、所定のタイミングで、バッファに格納されたバックアップデータを、当該バッファに対応するＨＤＤに書き込むよう管理ＯＳ１４０に指示する。所定のタイミングとは、次のタイミングである。
【００６８】
第１には、何れかのバックアップ用ＨＤＤに対応するバッファがフルになったタイミングである。バッファがフル（バッファフル）であるか否かは、バッファに格納されたバックアップデータの合計サイズに応じて定めることができる。例えば、バッファに格納されたバックアップデータの合計サイズが閾値以上になった場合をバッファフルとする。閾値は、バッファの記憶容量の９０％または１００％などのデータサイズとすることができる。あるいは、バッファの残り容量が閾値（例えば、バッファの記憶容量の１０％のデータサイズまたは残り容量０など）よりも少なくなった場合をバッファフルとしてもよい。この場合、バッファ制御部１５０は、バッファフルになったバッファに格納されたバックアップデータを、当該バッファに対応するバックアップ用ＨＤＤへ書き込むよう管理ＯＳ１４０に指示する。
【００６９】
第２には、何れかのバッファにバックアップデータが格納された時点からの経過時間が最大データ保持時間以上となったタイミングである。最大データ保持時間は、バックアップデータをバッファに保持する最大の時間であり、バッファ毎に予め決定することができる。バッファ制御部１５０は、バッファ毎に、バックアップデータが格納された時点からの経過時間を計測する。バッファ制御部１５０は、何れかのバッファについて経過時間が最大データ保持時間に達すると、該当のバッファに格納されたバックアップデータを、当該バッファに対応するバックアップ用ＨＤＤに書き込むよう管理ＯＳ１４０に指示する。バッファ制御部１５０は、書き込みが完了されると、該当のバッファのタイマの計測時間を０にリセットし、次回のバックアップデータの受信まで時間の計測を停止する。
【００７０】
第３には、バックアップ用ＨＤＤへバックアップデータを書き込む旨を指示する入力を受け付けたタイミングである。例えば、システムの管理者は、ネットワーク３０に接続された端末装置を操作して、書き込み元のバッファの情報、または、書き込み先のバックアップ用ＨＤＤを示す情報などを入力できる。バッファ制御部１５０は、管理者による書き込み指示を受け付けると、指示されたバッファに格納されたバックアップデータを、当該バッファに対応するバックアップ用ＨＤＤに書き込むよう管理ＯＳ１４０に指示する。
【００７１】
ここで、バッファとバックアップ用ＨＤＤとは対応関係にある。したがって、バッファ制御部１５０は、バッファの情報から書き込み先のバックアップ用ＨＤＤを特定できる。また、バッファ制御部１５０は、書き込み先のバックアップ用ＨＤＤの情報から書き込み元のバッファを特定できる。
【００７２】
バッファ制御部１５０は、上記の何れかのタイミングで、バッファに格納されたバックアップデータをバックアップ用ＨＤＤに書き込むよう管理ＯＳ１４０に指示する。バッファ制御部１５０は、管理ＯＳ１４０によるバックアップデータの書き込みが完了すると、書き込み元のバッファからバックアップデータを削除し（あるいは上書き可能とし）、バッファの記憶領域を再利用可能とする。
【００７３】
バッファ制御部１５０は、１つのバックアップ用ＨＤＤに対してバッファを２つ用意する（２面構成とする）。バッファ制御部１５０は、２つのうちの一方のバッファに、バックアップ用ＨＤＤの電源オフ中に書き込み要求のあったバックアップデータを格納する。他方のバッファ（予備バッファと称する）には、バックアップ用ＨＤＤにバックアップデータを書き込んでいる最中に、同じバックアップ用ＨＤＤに書き込み要求のあった追加のバックアップデータを格納する。すると、バッファ制御部１５０は、書き込み中のバックアップデータの書き込みが完了した後に続けて、他方のバッファに格納された追加のバックアップデータをバックアップ用ＨＤＤに書き込める。バッファ制御部１５０はバックアップデータのバッファやＨＤＤへの書き込みを制御するため、バッファ制御部１５０を書き込み制御部と呼んでもよい。
【００７４】
ディスク電源制御部１６０は、ディスク制御部１０５を用いて、バックアップ用ＨＤＤ毎の電源オン／オフを制御する。ここで、ストレージ装置１００の起動時、全てのＨＤＤの電源はオンになる。管理ＯＳ１４０により各ＨＤＤを認識するためである。ディスク電源制御部１６０は、ストレージ装置１００内の全てのＨＤＤが管理ＯＳ１４０により認識されると、バックアップ用ＨＤＤの電源をオフにする。
【００７５】
ディスク電源制御部１６０は、何れかのバッファからバックアップ用ＨＤＤへバックアップデータの書き込みを行う際に、書き込み先のバックアップ用ＨＤＤの電源をオンにする。また、ディスク電源制御部１６０は、バックアップデータの書き込みが完了すると、書き込み先のバックアップ用ＨＤＤの電源をオフにする。
【００７６】
ディスク電源制御部１６０およびディスク制御部１０５は、ＨＤＤの電源オン／オフの制御に用いられるので、ディスク電源制御部１６０またはディスク制御部１０５を電源制御部と呼んでもよい。ディスク制御部１０５を電源制御部と呼ぶ場合、プロセッサ１０１を書き込み制御部と呼んでもよい。
【００７７】
図６は、論理ボリュームとアグリゲート／ＲＡＩＤとの対応の例を示す図である。ストレージ装置１００は、ストレージ装置１００が管理する複数のＨＤＤを、アグリゲートと呼ばれるディスクリソースの集合として管理する。ストレージ装置１００は、複数のアグリゲートを作成することもある。アグリゲートＡは、ストレージ装置１００が管理するアグリゲートの１つである。
【００７８】
アグリゲートＡには、ＲＡＩＤグループＲ１，Ｒ２が含まれる。ＲＡＩＤグループＲ１，Ｒ２には、それぞれ４つのＨＤＤが属している（ただし、４以外の複数個のＨＤＤでＲＡＩＤを組むこともある）。具体的には、ＲＡＩＤグループＲ１には、ＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃが属している。ＲＡＩＤグループＲ２には、ＨＤＤ２０２，２０２ａ，２０２ｂ，２０２ｃが属している。
【００７９】
例えば、ストレージ装置１００は、アグリゲートＡから、サーバ４００や他のサーバ上のソフトウェアが利用する記憶領域を確保する。このように確保された記憶領域を論理ボリュームと称する。例えば、管理ＯＳ１４０は、ＲＡＩＤグループＲ１から確保した記憶領域により論理ボリュームＶ１を作成する。管理ＯＳ１４０は、ＲＡＩＤグループＲ２から確保した記憶領域により論理ボリュームＶ２を作成する。管理ＯＳ１４０は、ＲＡＩＤグループＲ１，Ｒ２から確保した記憶領域により論理ボリュームＶ３を作成する。ここで、論理ボリュームＶ１，Ｖ２，Ｖ３は、何れもバックアップデータの格納先となる論理ボリュームである。この場合、ＲＡＩＤグループＲ１，Ｒ２は、バックアップデータを格納するために用いられることになり、通常業務時に読み書きされるデータの格納には用いられない。
【００８０】
図７は、論理ボリュームとバッファとの対応の例を示す図である。バッファ制御部１５０は、ＨＤＤ毎にバッファを用意する。例えば、ＲＡＩＤグループＲ１はＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃを含む。図７の例では、バッファ制御部１５０は、ＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃそれぞれに対応付けられたバッファ１２１，１２１ａ，１２１ｂ，１２１ｃ（バッファ群Ｂ１）を設ける。
【００８１】
また、ＲＡＩＤグループＲ２はＨＤＤ２０２，２０２ａ，２０２ｂ，２０２ｃを含む。同様に、バッファ制御部１５０は、ＨＤＤ２０２，２０２ａ，２０２ｂ，２０２ｃそれぞれに対応付けられたバッファ１２１ｄ，１２１ｅ，１２１ｆ，１２１ｇ（バッファ群Ｂ２）を設ける。この場合、論理ボリュームＶ１は、バッファ群Ｂ１に対応付けられる。論理ボリュームＶ２は、バッファ群Ｂ２に対応付けられる。論理ボリュームＶ３は、バッファ群Ｂ１，Ｂ２に対応付けられる。
【００８２】
図８は、論理ボリューム管理テーブルの例を示す図である。論理ボリューム管理テーブル１１１は、論理ボリュームに対応するアグリゲートやＲＡＩＤグループを管理するための情報である。論理ボリューム管理テーブル１１１は、制御情報記憶部１１０に格納される。論理ボリューム管理テーブル１１１は、論理ボリュームＩＤ（IDentifier）、アグリゲートＩＤおよびＲＡＩＤ番号の項目を含む。
【００８３】
論理ボリュームＩＤの項目には、論理ボリュームの識別子が登録される。アグリゲートＩＤの項目には、アグリゲートの識別子が登録される。ＲＡＩＤ番号の項目には、ＲＡＩＤグループの識別子（ＲＡＩＤ番号と称する）が登録される。
【００８４】
ここで、図８に示す論理ボリュームＩＤ“ｖｏｌ１”は、論理ボリュームＶ１の識別子である。論理ボリューム“ｖｏｌ２”は、論理ボリュームＶ２の識別子である。アグリゲートＩＤ“ａｇｇｒ１”は、アグリゲートＡの識別子である。ＲＡＩＤ番号“ｒｇ０”は、ＲＡＩＤグループＲ１の識別子である。ＲＡＩＤ番号“ｒｇ２”は、ＲＡＩＤグループＲ２の識別子である。
【００８５】
例えば、論理ボリューム管理テーブル１１１には、論理ボリュームＩＤが“ｖｏｌ１”、アグリゲートＩＤが“ａｇｇｒ１”、ＲＡＩＤが“ｒｇ０”という情報が登録される。これは、論理ボリュームＶ１には、アグリゲートＡに属するＲＡＩＤグループＲ１の記憶領域が割り当てられていることを示す。論理ボリューム管理テーブル１１１には、他の論理ボリュームについても同様の情報が登録される。
【００８６】
図９は、ディスク管理テーブルの例を示す図である。ディスク管理テーブル１１２は、ストレージ装置１００およびディスクシェルフ２００内のＨＤＤを管理するための情報である。ディスク管理テーブル１１２は、制御情報記憶部１１０に格納される。ディスク管理テーブル１１２は、ディスクＩＤ、ＲＡＩＤ番号、種別、アダプタＩＤ、シェルフＩＤおよびベイＩＤの項目を含む。
【００８７】
ディスクＩＤの項目には、ＨＤＤの識別子が登録される。ＲＡＩＤ番号の項目には、ＲＡＩＤ番号が登録される。種別の項目には、ＲＡＩＤにおけるＨＤＤの種別が登録される。なお、ＲＡＩＤグループに属さないＨＤＤについては、ＲＡＩＤ番号および種別の項目は、設定なしとなる。アダプタＩＤの項目には、ＨＤＤへのアクセスに用いるアダプタの識別子が登録される。シェルフＩＤの項目には、ＨＤＤを収納するシェルフの識別子が登録される。ベイＩＤの項目には、ＨＤＤを収納しているシェルフにおけるベイの識別子が登録される。ベイは、ストレージ装置１００やディスクシェルフ２００にＨＤＤを据え付けるための収納スペースである。
【００８８】
ここで、ディスク管理テーブル１１２では、ＲＡＩＤの一例として、ＲＡＩＤ−ＤＰ（Double Parity）（“ＲＡＩＤ  ＤＰ”は米国登録商標）が組まれている場合が示されている（ＲＡＩＤ番号“ｒｇ０”および“ｒｇ２”のＲＡＩＤグループ）。ＲＡＩＤ−ＤＰでは、ＲＡＩＤ４グループ（ストライピング用の複数のＨＤＤとパリティ用の１つのＨＤＤを含む）に更にもう１つのパリティ（ダブルパリティと称する）用のＨＤＤを追加したディスク構成となる。この場合、上記種別の項目には、ＲＡＩＤ−ＤＰにおけるＨＤＤの種別が登録されることになる。具体的には、ストライピング用の場合、種別は“ｄａｔａ”である。パリティ用の場合、種別は“ｐａｒｉｔｙ”である。ダブルパリティ用の場合、種別は“ｄｐａｒｉｔｙ”である。ただし、他の種類のＲＡＩＤ（例えば、ＲＡＩＤ０、ＲＡＩＤ１またはＲＡＩＤ５など）を利用することもできる。
【００８９】
また、図９に示すディスクＩＤ“００．０”は、ＨＤＤ１０６の識別子である。ディスクＩＤ“００．１”は、ＨＤＤ１０６ａの識別子である。ディスクＩＤ“００．２”は、ＨＤＤ１０６ｂの識別子である。ディスクＩＤ“００．３”は、ＨＤＤ１０６ｃの識別子である。ディスクＩＤ“００．４”は、ＨＤＤ１０６ｄの識別子である。ディスクＩＤ“１０．０”は、ＨＤＤ２０２の識別子である。ディスクＩＤ“１０．１”は、ＨＤＤ２０２ａの識別子である。ディスクＩＤ“１０．２”は、ＨＤＤ２０２ｂの識別子である。ディスクＩＤ“１０．３”は、ＨＤＤ２０２ｃの識別子である。
【００９０】
例えば、ディスク管理テーブル１１２には、ディスクＩＤが“００．０”、ＲＡＩＤ番号が“ｒｇ０”、種別が“ｄｐａｒｉｔｙ”、アダプタＩＤが“０ｂ”、シェルフＩＤが“０”、ベイＩＤが“０”という情報が登録される。これは、ディスクＩＤ“００．０”で識別されるＨＤＤ１０６が、ＲＡＩＤ番号“ｒｇ０”で識別されるＲＡＩＤグループＲ１に属すること、ダブルパリティの格納用に用いられることを示す。また、ＨＤＤ１０６が、シェルフＩＤ“０”で識別されるシェルフ（ストレージ装置１００に内蔵のシェルフ）に収納されており、ディスク制御部１０５が備える複数のアダプタのうちアダプタＩＤ“０ｂ”で識別されるアダプタを介してアクセスすることを示す。更に、ＨＤＤ１０６は、ストレージ装置１００の内蔵のシェルフのうちベイＩＤ“０”で示されるベイに収納されていることを示す。
【００９１】
他のＲＡＩＤおよびＨＤＤについても同様の情報が登録される。ここで、ディスクＩＤの上位２桁は、ストレージ装置１００に内蔵されているか、外付けのディスクシェルフ２００に収納されているかを示している。すなわち、ディスクＩＤの上位２桁が“００”である場合、ＨＤＤはストレージ装置１００に内蔵されている。ディスクＩＤの上位２桁が“１０”である場合、ＨＤＤはディスクシェルフ２００に内蔵されている。更に、シェルフＩＤ“１”は、ディスクシェルフ２００のシェルフＩＤである。
【００９２】
図１０は、バックアップ設定情報の例を示す図である。バックアップ設定情報１１３は、バックアップ処理の内容およびスケジュールを示す情報である。バックアップ設定情報１１３は、制御情報記憶部１１０に格納される。バックアップ設定情報１１３の左側に付した番号は、行番号である。
【００９３】
バックアップ設定情報１１３には、“バックアップデータ取得元装置名：バックアップデータ取得先装置名：ボリューム名  指定時間  ＊  指定曜日”というフォーマットにより、バックアップ設定が記述されている。ここで、バックアップデータ取得元装置名およびバックアップデータ取得先装置名は、ストレージ装置の識別子によって記述される。ストレージ装置１００の識別子は“ｓｙｓｔｅｍＡ”である。ストレージ装置１００ａの識別子は“ｓｙｓｔｅｍＢ”である。ストレージ装置１００ｂの識別子は“ｓｙｓｔｅｍＣ”である。ストレージ装置１００ｃの識別子は“ｓｙｓｔｅｍＤ”である。
【００９４】
例えば、バックアップ設定情報１１３の１行目には、“ｓｙｓｔｅｍＢ：ｖｏｌ０  ｓｙｓｔｅｍＡ：ｖｏｌ１  −  ０  ２３  ＊  １，３，５”という情報が設定されている。これは、ストレージ装置１００ａの論理ボリューム“ｖｏｌ０”に格納されたデータのバックアップを、ストレージ装置１００の論理ボリューム“ｖｏｌ１”上に取得することを示す。スケジュールの指定は“０  ２３  ＊  １，３，５”の部分であり、毎時０分、毎日午後１１時０分、毎週月曜日午前０時０分（“１”の設定に相当）、毎週水曜日午前０時０分（“３”の設定に相当）、毎週金曜日午前０時０分（“５”の設定に相当）にバックアップを取得することを示している。
【００９５】
２行目および３行目のレコードも同様である。ただし、３行目のレコードでは、スケジュールの指定が“−  ２３  ＊  １，３，５”である。これは、毎日午後１１時０分、毎週月曜日午前０時０分、毎週水曜日午前０時０分、毎週金曜日午前０時０分にバックアップを取得することを示している。
【００９６】
なお、“ｖｏｌ１”、“ｖｏｌ２”、“ｖｏｌ３”の各論理ボリュームは、何れもバックアップ用ＨＤＤを用いて作成された論理ボリュームである。バックアップ設定情報１１３は、システムの管理者などによって予め作成され、制御情報記憶部１１０に格納される。また、上記の例では、論理ボリューム単位にバックアップを取得する場合の設定例を示したが、論理ボリューム配下のディレクトリ単位など、他の単位でバックアップの取得元および取得先を指定することもできる。
【００９７】
図１１は、ディスク電源管理テーブルの例を示す図である。ディスク電源管理テーブル１３１は、電源情報記憶部１３０に格納される。ディスク電源管理テーブル１３１は、ディスクＩＤ、バックアップ、電源状態、ＲＡＩＤ番号および最大データ保持時間の項目を含む。
【００９８】
ディスクＩＤの項目には、ＨＤＤの識別子が登録される。バックアップの項目には、バックアップ用ＨＤＤであるか否かを示す情報（“ｔｒｕｅ”または“ｆａｌｓｅ”）が登録される。“ｔｒｕｅ”はバックアップ用ＨＤＤであることを示す。“ｆａｌｓｅ”はバックアップ用ＨＤＤではないことを示す。電源状態の項目には、電源がオンであるか否かを示す情報（“ｏｎ”または“ｏｆｆ”）が登録される。“ｏｎ”は電源オンであることを示す。“ｏｆｆ”は電源オフであることを示す。ＲＡＩＤ番号の項目には、ＲＡＩＤ番号が登録される。何れのＲＡＩＤグループにも属していない場合、ＲＡＩＤ番号は“０”が設定される。最大データ保持時間の項目には、最大データ保持時間が登録される。例えば、最大データ保持時間の単位は、分である（秒など他の単位でもよい）。最大データ保持時間は、バックアップ用ＨＤＤのバッファに対する設定なので、バックアップ用ＨＤＤではないＨＤＤに対しては“０”が設定される。
【００９９】
例えば、ディスク電源管理テーブル１３１には、ディスクＩＤが“００．０”、バックアップが“ｔｒｕｅ”、電源状態が“ｏｆｆ”、ＲＡＩＤ番号が“ｒｇ０”、最大データ保持時間が“１８０”（分）という情報が登録される。
【０１００】
これは、ディスクＩＤ“００．０”で識別されるＨＤＤがバックアップ用ＨＤＤであり、現在電源オフ状態であることを示す。また、当該ＨＤＤがＲＡＩＤ番号“ｒｇ０”で識別されるＲＡＩＤグループに属しており、最大データ保持時間が１８０分であることを示す。なお、最大データ保持時間の設定値は、同一ＲＡＩＤグループに属する各ＨＤＤでは同じ値とする。同一ＲＡＩＤグループに属する各ＨＤＤは同時にアクセスされるためである。
【０１０１】
また、ディスク電源管理テーブル１３１には、ディスクＩＤが“００．４”、バックアップが“ｆａｌｓｅ”、電源状態が“ｏｎ”ＲＡＩＤ番号が“ｒｇ１”、最大データ保持時間が“０”（分）という情報が登録される。
【０１０２】
これは、ディスクＩＤ“００．４”で識別されるＨＤＤがバックアップ用ＨＤＤではなく、現在電源オン状態であることを示す。また、当該ＨＤＤがＲＡＩＤ番号“ｒｇ１”で識別されるＲＡＩＤに属しており、最大データ保持時間が０分である（ディスクＩＤ“００．４”のＨＤＤはバックアップ用ＨＤＤではないため）ことを示す。ディスク電源管理テーブル１３１には、他のＨＤＤについても同様の情報が登録される。
【０１０３】
図１２は、バッファの例を示す図である。バッファ用記憶部１２０は、記憶領域１２０ａ，１２０ｂ，１２０ｃ，・・・を含む。記憶領域１２０ａ，１２０ｂ，１２０ｃ，・・・は、バックアップ用ＨＤＤにそれぞれ対応付けられた記憶領域である。例えば、記憶領域１２０ａは、ＨＤＤ１０６に対応付けられている。より具体的には、バッファ制御部１５０は、記憶領域１２０ａに相当するメモリアドレスの範囲を、ＨＤＤ１０６用に確保する。同様に、記憶領域１２０ｂは、ＨＤＤ１０６ａに対応付けられている。また、記憶領域１２０ｃは、ＨＤＤ１０６ｂに対応付けられている。バッファ制御部１５０は、何れのアドレス範囲が何れのＨＤＤに対応するかを示す情報をメモリ１０２の所定の記憶領域に格納しておいてもよい。
【０１０４】
前述のように、バッファ制御部１５０は、各バックアップ用ＨＤＤのバッファを２面構成とする。具体的には、バッファ制御部１５０は、記憶領域１２０ａを２つに分けることで、バッファ１２１および予備バッファ１２２を設ける。バッファ１２１は、ＨＤＤ１０６の電源がオフのときに受け付けた書き込み対象のバックアップデータを格納するための記憶領域である。予備バッファ１２２には、ＨＤＤ１０６の電源をオンにして、バックアップデータを書き込んでいる最中に受け付けた追加のバックアップデータを格納するための記憶領域である。
【０１０５】
同様に、バッファ制御部１５０は、記憶領域１２０ｂを２つに分けることで、バッファ１２１ａおよび予備バッファ１２２ａを設ける。バッファ制御部１５０は、記憶領域１２０ｃを２つに分けることで、バッファ１２１ｂおよび予備バッファ１２２ｂを設ける。
【０１０６】
例えば、バッファ制御部１５０は、全ＨＤＤ数に対するバックアップ用ＨＤＤの割り当て数の比率に応じて、記憶領域１２０ａ，１２０ｂ，１２０ｃ，・・・の合計サイズを決定する。より具体的な例として、メモリ１０２で利用可能な記憶容量が３２ＧＢ（Giga Bytes）であり、３０個中１５個のＨＤＤをバックアップ用ＨＤＤとする場合を考える。この場合、バックアップ用ＨＤＤの比率は１５／３０＝０．５（５０％）である。よって、バッファ制御部１５０は、３２ＧＢ×０．５＝１６ＧＢを、記憶領域１２０ａ，１２０ｂ，１２０ｃ，・・・の合計サイズとする。例えば、バッファ制御部１５０は、決定した合計サイズ１６ＧＢの領域を、記憶領域１２０ａ，１２０ｂ，１２０ｃ，・・・に等分に割り当てる。記憶領域１２０ａ，１２０ｂ，１２０ｃ，・・・の合計数（すなわち、バックアップ用ＨＤＤの合計数）が１６個であれば、記憶領域１２０ａ，１２０ｂ，１２０ｃそれぞれの記憶容量のサイズは、１６ＧＢ÷１６＝１ＧＢである。また、バッファ制御部１５０は、記憶領域１２０ａに割り当てたサイズの半分（例えば、０．５ＧＢ）をバッファ１２１、残りの半分（例えば、０．５ＧＢ）を予備バッファ１２２とする。
【０１０７】
なお、図１２の例では、各バックアップ用ＨＤＤに対して、所定のアドレス範囲の記憶領域をバッファとして用意するものとしたが、他の方法を用いてもよい。例えば、書き込み対象のバックアップデータに、書き込み先のバックアップ用ＨＤＤの識別情報を付加して、バッファ用記憶部１２０に格納することも考えられる。すると、バッファ制御部１５０は、バックアップデータに付加されたＨＤＤの識別情報に基づいて、バックアップデータの書き込み先のＨＤＤを特定できる。この場合、メモリ１０２の任意のメモリアドレスに、任意のバックアップ用ＨＤＤを書き込み先とするバックアップデータを格納してよい。また、例えば、ＨＤＤ１０６の識別情報が付加されたバックアップデータが格納された領域の集合を、ＨＤＤ１０６に対応するバッファ１２１と考えることができる。この場合も、各バッファのサイズを予め決定しておくことができる。
【０１０８】
図１３は、電源投入時処理の例を示すフローチャートである。以下、図１３に示す処理をステップ番号に沿って説明する。
（Ｓ１１）ストレージ装置１００の電源がオンにされる。ディスクシェルフ２００の電源もオンにされる。例えば、管理者は、ストレージ装置１００およびディスクシェルフ２００の電源ボタンを押下することで、ストレージ装置１００およびディスクシェルフ２００に対する電源オン操作を行える。ストレージ装置１００およびディスクシェルフ２００は、起動処理を行う。このとき、ストレージ装置１００およびディスクシェルフ２００に収納された全てのＨＤＤの電源がオンになる。
【０１０９】
（Ｓ１２）プロセッサ１０１は、ＲＯＭ１０４に記憶された管理ＯＳ１４０のプログラムを実行することで、管理ＯＳ１４０の機能を発揮する。プロセッサ１０１は、ＲＯＭ１０４に記憶されたバッファ制御部１５０およびディスク電源制御部１６０のプログラムを実行することで、バッファ制御部１５０およびディスク電源制御部１６０の機能を発揮する。
【０１１０】
（Ｓ１３）管理ＯＳ１４０は、ＨＤＤ１０６の制御用領域から論理ボリューム管理テーブル１１１およびディスク管理テーブル１１２を取得する。また、管理ＯＳ１４０は、ディスク制御部１０５，２０１を介して、ディスク管理テーブル１１２に登録された各ＨＤＤが存在していることを認識する。
【０１１１】
（Ｓ１４）ディスク電源制御部１６０は、ディスク管理テーブル１１２に基づいて、ディスク電源管理テーブル１３１を作成し、電源情報記憶部１３０に格納する。具体的には、ディスク電源制御部１６０は、各ＨＤＤのディスクＩＤおよびＲＡＩＤ番号をディスク管理テーブル１１２から取得し、ディスク電源管理テーブル１３１に登録する。バックアップの項目は、ステップＳ１４のタイミングでは設定なしでよい。電源状態の項目は、全て“ｏｎ”である。最大データ保持時間の項目は、ＲＡＩＤ番号またはディスクＩＤ毎に予め指定された設定値（例えば、この指定された設定値もＨＤＤ１０６の制御用領域に予め格納される）を登録する。前述のように、同一ＲＡＩＤグループに属する各ＨＤＤの最大データ保持時間は、同じ設定値とする。
【０１１２】
（Ｓ１５）管理ＯＳ１４０は、ストレージ装置１００に収納された何れかのＨＤＤ（ＨＤＤ１０６でもよい）の制御用領域からバックアップ設定情報１１３を取得する。
（Ｓ１６）ディスク電源制御部１６０は、論理ボリューム管理テーブル１１１、ディスク管理テーブル１１２およびバックアップ設定情報１１３に基づいて、バックアップ用ＨＤＤを判別する。具体的には、ディスク電源制御部１６０は、バックアップ設定情報１１３を参照して、ストレージ装置１００が管理する論理ボリュームのうち、バックアップデータの格納先の論理ボリュームの識別子（例えば、“ｖｏｌ１”など）を取得する。ディスク電源制御部１６０は、当該論理ボリュームの記憶領域を提供するＲＡＩＤグループを、論理ボリューム管理テーブル１１１から取得する。例えば、論理ボリューム管理テーブル１１１によれば、識別子“ｖｏｌ１”に対応する論理ボリュームの記憶領域を提供するＲＡＩＤグループのＲＡＩＤ番号は“ｒｇ０”である。更に、ディスク電源制御部１６０は、ディスク管理テーブル１１２を参照して、取得したＲＡＩＤ番号のＲＡＩＤグループに属するＨＤＤを取得する。例えば、ディスク管理テーブル１１２によれば、ＲＡＩＤ番号“ｒｇ０”のＲＡＩＤグループに属するＨＤＤは、ディスクＩＤ“００．０”、“００．１”、“００．２”、“００．３”のＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃである。ディスク電源制御部１６０は、バックアップ用ＨＤＤとして判別したＨＤＤについて、ディスク電源管理テーブル１３１のバックアップの項目を“ｔｒｕｅ”に設定する。その他のＨＤＤについては、同項目を“ｆａｌｓｅ”に設定する。
【０１１３】
（Ｓ１７）バッファ制御部１５０は、ディスク電源管理テーブル１３１を参照して、バックアップの項目が“ｔｒｕｅ”に設定されているＨＤＤ毎に、バッファを設定する。このとき、バッファ制御部１５０は、前述のように１つのＨＤＤに対してバッファを２面構成とする。バッファのサイズの決定方法は、図１２で例示した通りである。
【０１１４】
（Ｓ１８）ディスク電源制御部１６０は、バックアップ用ＨＤＤの電源をオフにするよう制御する。具体的には、ディスク電源制御部１６０は、ディスク制御部１０５を介して、ＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃを含むバックアップ用ＨＤＤの電源をオフにする。また、ディスク電源制御部１６０は、ディスク制御部１０５，２０１を介して、ＨＤＤ２０２，２０２ａ，２０２ｂ，２０２ｃを含むバックアップ用ＨＤＤの電源をオフにする。
【０１１５】
（Ｓ１９）ディスク電源制御部１６０は、電源をオフにしたＨＤＤについて、ディスク電源管理テーブル１３１の電源状態の項目を“ｏｆｆ”に設定する。
（Ｓ２０）管理ＯＳ１４０は、バックアップデータの受信待機を開始する。
【０１１６】
このように、ストレージ装置１００は、ストレージ装置１００の電源投入時に、ディスク電源管理テーブル１３１を作成し、各ＨＤＤの認識が済むと、バックアップ用ＨＤＤの電源をオフにする。ここで、ＨＤＤは、運用中に生じた故障に応じて交換されることがある。このため、ＲＡＩＤを組むＨＤＤの組み合わせは、ＨＤＤの交換に応じて変更され得る。そこで、ストレージ装置１００は、ＨＤＤの故障／交換に応じてディスク電源管理テーブル１３１を更新する。
【０１１７】
図１４は、ディスク故障時処理の例を示すフローチャートである。以下、図１４に示す処理をステップ番号に沿って説明する。
（Ｓ２１）管理ＯＳ１４０は、ストレージ装置１００またはディスクシェルフ２００に収納された何れかのＨＤＤの故障を検出する。例えば、管理ＯＳ１４０は、バックアップ用ＨＤＤへバックアップデータを書き込んでいる最中に、当該バックアップ用ＨＤＤの故障を検出することがある。あるいは、管理ＯＳ１４０は、電源オフされているバックアップ用ＨＤＤを、定期的に電源オンして故障有無のチェックを行うことも考えられる。
【０１１８】
（Ｓ２２）管理ＯＳ１４０は、ＨＤＤの交換が行われたか否かを判定する。ＨＤＤの交換が行われた場合、処理をステップＳ２４に進める。ＨＤＤの交換が行われない場合、処理をステップＳ２３に進める。
【０１１９】
（Ｓ２３）管理ＯＳ１４０は、ストレージ装置１００またはディスクシェルフ２００に収納されたスペアディスク（ＨＤＤの故障に備えて予め収納されている予備のＨＤＤ）を、故障したＨＤＤの代わりに割り当てる。
【０１２０】
（Ｓ２４）管理ＯＳ１４０は、交換後のＨＤＤ（ステップＳ２２でＹｅｓの場合）またはスペアディスク（ステップＳ２２でＮｏの場合）を用いて、故障したＨＤＤが属していたＲＡＩＤを再構築（リビルド）する。例えば、故障したＨＤＤの種別が“ｄａｔａ”であれば、管理ＯＳ１４０は、ＲＡＩＤに属する他のＨＤＤに格納されたパリティや他のデータから、代替のＨＤＤのデータを復元する。あるいは、故障したＨＤＤの種別が“ｐａｒｉｔｙ”や“ｄｐａｒｉｔｙ”であれば、管理ＯＳ１４０は、ＲＡＩＤに属する他のＨＤＤに格納されたパリティや他のデータから、代替のＨＤＤのパリティデータを復元する。管理ＯＳ１４０は、ディスク管理テーブル１１２を操作して、ＨＤＤとＲＡＩＤとの対応関係を更新する。また、例えば、スペアディスクを代替とするならば、アダプタＩＤ、シェルフＩＤおよびベイＩＤを、スペアディスクの所在に対応する情報に更新する。
【０１２１】
（Ｓ２５）ディスク電源制御部１６０は、ディスク電源管理テーブル１３１を参照して、再構築したＲＡＩＤグループに属するＨＤＤが、バックアップ用ＨＤＤであるかを判別する。
【０１２２】
（Ｓ２６）ディスク電源制御部１６０は、ディスク電源管理テーブル１３１を更新する。例えば、故障したＨＤＤの情報を削除し、再構築したＲＡＩＤグループに対して新たに割り当てたＨＤＤの情報を追加する。また、再構築したＲＡＩＤグループがバックアップ用であれば、新たに割り当てたＨＤＤもバックアップ用として設定する（バックアップ用の項目を”ｔｒｕｅ”に設定する）。
【０１２３】
例えば、ステップＳ２１において、バッファに格納されたバックアップデータをバックアップ用ＨＤＤに書き込んでいる際に書き込み先ＨＤＤの故障が検出された場合、ステップＳ２６の後、バッファ制御部１５０は、当該バックアップデータの書き込みを継続する。そして、ディスク電源制御部１６０は、書き込み完了後、書き込み先のＨＤＤを電源オフする。あるいは、ステップＳ２１でバックアップ故障有無のチェックによりバックアップ用ＨＤＤの故障を検出した場合、ステップＳ２６の後、ディスク電源制御部１６０は、交換後のＨＤＤ（および当該ＨＤＤとＲＡＩＤを組む他のＨＤＤ）の電源をオフにする。
【０１２４】
このように、ストレージ装置１００は、何れかのＨＤＤが故障した場合にも、ＨＤＤの交換やスペアディスクの割り当てに応じて、ディスク電源管理テーブル１３１を更新する。これにより、ＲＡＩＤグループに対するＨＤＤの割り当て状況が変更されても、ディスク電源管理テーブル１３１に変更結果を適切に反映できる。
【０１２５】
図１５は、バックアップデータ書き込み処理の例を示すフローチャートである。以下、図１５に示す処理をステップ番号に沿って説明する。
（Ｓ３１）管理ＯＳ１４０は、何れかのストレージ装置からのバックアップデータの転送を待機する。
【０１２６】
（Ｓ３２）管理ＯＳ１４０は、何れかのストレージ装置からバックアップデータが転送されてきたことを検出する。例えば、データの書き込み要求には、書き込み対象のデータや書き込み先の論理ボリュームＩＤが含まれる。管理ＯＳ１４０は、書き込み先の論理ボリュームが、バックアップデータの格納用の論理ボリュームであれば、書き込み対象のデータをバックアップデータと識別する。バックアップ設定情報１１３の例によれば、書き込み先の論理ボリュームＩＤが“ｖｏｌ１”、“ｖｏｌ２”、“ｖｏｌ３”の場合、バックアップデータである。
【０１２７】
（Ｓ３３）管理ＯＳ１４０は、転送元のストレージ装置からバックアップデータを受信する。
（Ｓ３４）バッファ制御部１５０は、論理ボリューム管理テーブル１１１およびディスク管理テーブル１１２に基づいて、受信したバックアップデータの書き込み先の論理ボリュームに対応するＨＤＤを特定する。例えば、書き込み先の論理ボリュームの論理ボリュームＩＤが“ｖｏｌ１”であれば、対応するＨＤＤのディスクＩＤは“００．０”、“００．１”、“００．２”、“００．３”である。
【０１２８】
（Ｓ３５）バッファ制御部１５０は、特定したＨＤＤに対応するバッファに、受信したバックアップデータを格納する。特定したＨＤＤが複数であれば（ＲＡＩＤの場合）、当該複数のＨＤＤに対応する複数のバッファに分散してバックアップデータを格納する（パリティディスクについては、パリティの計算結果を格納する）。また、バッファ制御部１５０は、今回受信されたバックアップデータを該当のバッファに最初に格納するタイミングで、当該バッファに対応するタイマによる時間の計測を開始する。
【０１２９】
（Ｓ３６）バッファ制御部１５０は、ステップＳ３５でバックアップデータを格納したバッファのバッファ領域がフル（バッファフル）になったか否かを判定する。フルになった場合、処理をステップＳ４０に進める。フルになっていない場合、処理をステップＳ３７に進める。例えば、バッファ制御部１５０は、前述のように、該当のバッファに格納されたバックアップデータの合計サイズが閾値以上であればバッファフルと判定し得る。
【０１３０】
（Ｓ３７）管理ＯＳ１４０は、バックアップデータの転送が終了したか否かを判定する。終了した場合、処理をステップＳ３８に進める。終了していない場合、処理をステップＳ３３に進める。例えば、管理ＯＳ１４０は、バックアップデータの転送元のストレージ装置からバックアップデータの転送が全て終了した旨の通知を受け付けることで、バックアップデータの転送が終了したことを検出する。
【０１３１】
（Ｓ３８）バッファ制御部１５０は、ステップＳ３５で計測を開始したタイマの計測時間が、ディスク電源管理テーブル１３１に登録された最大データ保持時間を経過したか否かを判定する。経過した場合、該当のタイマによる計測時間を０にリセットして、処理をステップＳ４０に進める。経過していない場合、処理をステップＳ３９に進める。
【０１３２】
（Ｓ３９）バッファ制御部１５０は、管理者によるバックアップデータの書き込み指示があったか否かを判定する。書き込み指示があった場合、処理をステップＳ４０に進める。書き込み指示がない場合、処理をステップＳ３１に進める。ここで、管理者は、管理装置３００を操作することで、バッファに格納されたバックアップデータを、論理ボリュームに書き込む旨の指示（書き込み指示）をストレージ装置１００に入力できる。
【０１３３】
（Ｓ４０）ディスク電源制御部１６０は、バックアップデータの書き込み先のＨＤＤの電源をオンにする。ディスク電源制御部１６０は、書き込み先のＨＤＤがＲＡＩＤを組んでいる場合、該当のＲＡＩＤグループに属する全てのＨＤＤの電源をオンにする。ディスク電源制御部１６０は、ディスク電源管理テーブル１３１を更新する。具体的には、ディスク電源制御部１６０は、ディスク電源管理テーブル１３１において、電源オンにしたＨＤＤの電源状態の項目の設定を“ｏｆｆ”から“ｏｎ”に変更する。
【０１３４】
（Ｓ４１）バッファ制御部１５０は、ステップＳ４０で電源オンにされたＨＤＤに対応するバッファからバックアップデータを読み出す。バッファ制御部１５０は、当該バッファに対応するＨＤＤに、読み出したバックアップデータを書き込むよう管理ＯＳ１４０に指示する。管理ＯＳ１４０は、指示されたＨＤＤにバックアップデータを書き込む。ステップＳ４０で電源オンにされたＨＤＤが複数であれば、複数のバッファからバックアップデータが読み出され、複数のＨＤＤにバックアップデータが書き込まれる。書き込みを行っている間、管理ＯＳ１４０は、書き込み要求元のストレージ装置から、追加のバックアップデータを受信することもある。その場合、バッファ制御部１５０は、受信された追加のバックアップデータを、書き込み先のＨＤＤに対応する予備バッファに格納する。
【０１３５】
（Ｓ４２）バッファ制御部１５０は、バックアップデータをＨＤＤへ書き込み済みのバッファを初期化する。具体的には、バッファ制御部１５０は、当該バッファのバッファ領域を再利用可能とする（上書き可能とする）。
【０１３６】
（Ｓ４３）バッファ制御部１５０は、追加のバックアップデータが予備バッファに格納されているか否かを判定する。格納されている場合、処理をステップＳ４１に進める。格納されていない場合、処理をステップＳ４４に進める。本ステップＳ４３の判定後にステップＳ４１に進む場合、バッファ制御部１５０は、ステップＳ４１，Ｓ４２の処理を予備バッファに関して実行する。すなわち、バッファ制御部１５０は、予備バッファに格納された追加のバックアップデータのＨＤＤへの書き込みを、管理ＯＳ１４０に指示する。すると、管理ＯＳ１４０は、追加のバックアップデータを、指示されたＨＤＤへ書き込む。
【０１３７】
（Ｓ４４）ディスク電源制御部１６０は、バックアップデータの書き込みを行ったＨＤＤの電源をオフにする。書き込み先のＨＤＤがＲＡＩＤを組んでいれば、ディスク電源制御部１６０は、複数のＨＤＤの電源をオフにすることになる。ディスク電源制御部１６０は、ディスク電源管理テーブル１３１を更新する。具体的には、ディスク電源制御部１６０は、ディスク電源管理テーブル１３１において、バックアップデータの書き込みを行ったＨＤＤの電源状態の項目の設定を“ｏｎ”から“ｏｆｆ”に変更する。そして、処理をステップＳ３１に進める。
【０１３８】
なお、ステップＳ３８，Ｓ３９において、データ転送終了後にタイマによる計測時間が最大データ保持時間を経過しておらず、かつ、管理者による書き込み指示がない場合は、ステップＳ３１に進むことになる。バッファ制御部１５０は、それ以降も継続して、タイマの監視および管理者によるバックアップデータの書き込み指示の入力の監視を行う。
【０１３９】
例えば、バッファ制御部１５０は、何れかのタイマによる計測時間が、最大データ保持時間を経過した場合、そのタイマの計測時間をリセットし、該当のバッファについてステップＳ４０〜Ｓ４４の処理を実行する。バッファの最大データ保持時間を設けることで、バックアップデータがＨＤＤに書き込まれないままになり、データ保持の信頼性が低下することを防止できる。
【０１４０】
また、バッファ制御部１５０は、論理ボリュームへのバックアップデータの書き込み指示の入力を受け付けると、書き込み先の論理ボリュームに属するＨＤＤに対応するバッファからバックアップデータを読み出し、ステップＳ４０〜Ｓ４４の処理を実行する。管理者による書き込み指示に応じてバックアップデータをＨＤＤに書き込むようにすることで、バックアップデータがＨＤＤに書き込まれないままになり、データ保持の信頼性が低下することを防止できる。
【０１４１】
また、バックアップデータをＨＤＤに書き込んでいる間に受け付けた追加のバックアップデータを予備バッファに格納することで、バックアップ処理を中断させずに済む。例えば、バックアップデータの転送元に対して、バッファへの書き込み不可エラーを通知したり、追加のバックアップデータの再送を要求したりする頻度を低減できる。また、バッファからＨＤＤへのバックアップデータの書き込みと予備バッファへの追加のバックアップデータの格納とを並行して実行でき、バックアップ処理を効率化できる。
【０１４２】
更に、ステップＳ３５では、特定したＨＤＤに対応するバッファにバックアップデータを格納するものとしたが、前述のように、バックアップデータに特定したＨＤＤの識別子を付加して、バッファ用記憶部１２０に格納してもよい。その場合、ステップＳ３６において、バッファ制御部１５０は、同じＨＤＤの識別子が付加されたバックアップデータのサイズの合計値を計算する。バッファ制御部１５０は、計算した合計値が、予め定められたバッファサイズに達しているか否かによって、当該ＨＤＤに対応するバッファがバッファフルであるか否かの判定を行える。
【０１４３】
図１６は、論理ボリュームとＨＤＤとの対応関係の例を示す図である。図１６（Ａ）は、論理ボリュームＩＤ“ｖｏｌ１”の論理ボリュームを転送先とするバックアップデータが格納されるバッファおよびＨＤＤを例示している。バッファ制御部１５０は、前述のように論理ボリューム管理テーブル１１１およびディスク管理テーブル１１２に基づいて、バックアップデータの転送先の論理ボリュームに応じたＨＤＤを特定し、ＨＤＤに対応するバッファを特定する。
【０１４４】
例えば、バッファ制御部１５０は、転送先ボリュームＶ１（ＩＤ“ｖｏｌ１”）を指定したバックアップデータの書き込み要求を受信する。すると、バッファ制御部１５０は、転送先ボリュームＶ１に対応するアグリゲートＡ（アグリゲートＩＤ“ａｇｇｒ１”）のＲＡＩＤグループＲ１（ＲＡＩＤ番号“ｒｇ０”）を特定する。そして、バッファ制御部１５０は、ＲＡＩＤグループＲ１に属するＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃ（ディスクＩＤ“００．０”、“００．１”、“００．２”、“００．３”）を特定する。バッファ制御部１５０は、ＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃそれぞれに対応するバッファ１２１，１２１ａ，１２１ｂ，１２１ｃを特定する。
【０１４５】
バッファ制御部１５０は、バックアップデータ（パリティを含む）をバッファ１２１，１２１ａ，１２１ｂ，１２１ｃに分散して格納する。例えば、バッファ制御部１５０は、バックアップデータを分割した３つの部分データと１つのパリティデータとを、バッファ１２１，１２１ａ，１２１ｂ，１２１ｃに分散して格納する。バッファ制御部１５０は、バッファフルなどのタイミングで、バッファ１２１，１２１ａ，１２１ｂ，１２１ｃに格納されたバックアップデータを各バッファに対応するＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃに書き込む。書き込みを行っていない間は、ＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃの電源をオフにできる。
【０１４６】
図１６（Ｂ）は、１つのアグリゲートＡ（アグリゲートＩＤ“ａｇｇｒ１”）に対応付けられる２つの論理ボリューム（論理ボリュームＩＤ“ｖｏｌ１”、“ｖｏｌ６”）を転送先とするバックアップデータを受信する場合を例示している。この場合も、バッファ制御部１５０は、論理ボリュームＩＤ“ｖｏｌ１”を転送先とするバックアップデータをバッファ１２１，１２１ａ，１２１ｂ，１２１ｃによりバッファリングする。バッファ制御部１５０は、論理ボリュームＩＤ“ｖｏｌ６”を転送先とするバックアップデータをバッファ１２１，１２１ａ，１２１ｂ，１２１ｃによりバッファリングする。そして、バッファ制御部１５０は、バッファフルなどのタイミングで、バッファ１２１，１２１ａ，１２１ｂ，１２１ｃに格納されたバックアップデータを各バッファに対応するＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃに書き込む。書き込みを行っていない間は、ＨＤＤ１０６，１０６ａ，１０６ｂ，１０６ｃの電源をオフにできる。
【０１４７】
上記処理を次のように表してもよい。バッファ制御部１５０は、１つのバックアップデータの複数の部分データおよびパリティデータをバックアップ用ＨＤＤ毎のバッファに格納する。バッファ制御部１５０は、複数のバックアップデータについて、バックアップ用ＨＤＤ毎に格納する部分データまたはパリティデータを集約してバッファリングする。バッファ制御部１５０は、バックアップ用ＨＤＤの電源をオンにしたときには、当該バックアップ用ＨＤＤに対して集約した部分データまたはパリティデータをまとめて書き込む。
【０１４８】
このようにして、ストレージ装置１００は、通常時はバックアップ用ＨＤＤの電源をオフとする。そして、ストレージ装置１００は、バックアップ用ＨＤＤ毎のバッファにバックアップデータを蓄積する。ストレージ装置１００は、バックアップデータの書き込みを行う際に、書き込み先のバックアップ用ＨＤＤの電源をオンにし、書き込みが完了すると、当該ＨＤＤの電源を再度オフにする。これにより、ストレージ装置１００やディスクシェルフ２００を省電力化できる。
【０１４９】
ここで、バックアップ処理は、ユーザの業務に支障のない時間帯に実行されることが多い。例えば、ユーザの業務に支障のない時間帯（例えば、業務終了後の時間帯）にバックアップ処理を行い、バックアップ処理が完了した段階でストレージ装置１００やディスクシェルフ２００の電源をオフにすることで、省電力化を図ることも考えられる。しかし、近年では、異なる地域や異なる業務を行う複数のユーザがストレージ装置１００やディスクシェルフ２００を共用することが多く、ユーザ毎の業務時間帯も異なることが多い。このため、ストレージ装置１００やディスクシェルフ２００は、常時何らかの処理（業務処理やバックアップ処理など）に用いられている可能性が高く、ストレージ装置１００やディスクシェルフ２００単位で定時に電源をオフにすることが難しい。
【０１５０】
そこで、ストレージ装置１００は、バックアップデータ格納用の複数のＨＤＤを通常は電源オフにし、電源オフ中に受け付けたバックアップデータをＨＤＤ毎のバッファに保持する。ストレージ装置１００は、バッファから書き込む時だけＨＤＤ毎に電源オンし、書き込みが完了すると再度電源オフとする。このようにすれば、全てのバックアップ用ＨＤＤを一律に電源オンするよりも、省電力化を図れる。特に、ストレージ装置１００やディスクシェルフ２００単位での電源オフが難しい場合でも、ストレージ装置１００やディスクシェルフ２００の省電力化を図れる。
【０１５１】
［第３の実施の形態］
以下、第３の実施の形態を説明する。前述の第２の実施の形態と相違する事項を主に説明し、共通する事項の説明を省略する。ＨＤＤに対するアクセス制御を行うコントローラを、ＨＤＤを収納する装置とは別個の装置（ストレージ制御装置）として設けてもよい。
【０１５２】
図１７は、第３の実施の形態のストレージ制御装置のハードウェア例を示す図である。ストレージ制御装置５００は、プロセッサ５０１、メモリ５０２、バッテリ５０３、ＲＯＭ５０４、ディスク制御部５０５および外部ＩＦ５０６を有する。各ユニットは、ストレージ制御装置５００のバスに接続されている。
【０１５３】
プロセッサ５０１は、ストレージ制御装置５００の情報処理を制御する。プロセッサ５０１は、マルチプロセッサであってもよい。プロセッサ５０１は、例えばＣＰＵ、ＤＳＰ、ＡＳＩＣまたはＦＰＧＡなどである。プロセッサ１０１は、ＣＰＵ、ＤＳＰ、ＡＳＩＣ、ＦＰＧＡなどのうちの２以上の要素の組み合わせであってもよい。
【０１５４】
メモリ５０２は、ストレージ制御装置５００の主記憶装置である。メモリ５０２は、プロセッサ５０１に実行させるＯＳ（ストレージ制御装置５００の管理ＯＳ）のプログラムやアプリケーションプログラムの少なくとも一部を一時的に記憶する。また、メモリ５０２は、プロセッサ５０１による処理に用いられる各種データを記憶する。メモリ５０２は、バッテリ５０３によってバックアップされる不揮発性記憶装置である。
【０１５５】
バッテリ５０３は、メモリ５０２に電力を供給する電池である。
ＲＯＭ５０４は、管理ＯＳのプログラムおよびアプリケーションプログラムおよび各種データを記憶する。ただし、ＲＯＭ５０４は、書き換え可能なメモリであってもよい。
【０１５６】
ディスク制御部５０５は、所定のケーブルを用いてディスクシェルフ６００に接続されている。ディスクシェルフ６００は、複数のＨＤＤ（ＳＳＤなどの他の記憶装置でもよい）を収納可能な装置である。ディスク制御部５０５のインタフェースとしては、例えばＳＡＳを用いることができる。ディスク制御部５０５は、プロセッサ５０１の指示に応じて、ディスクシェルフ６００に収納されたＨＤＤに対するデータの書き込み、および、ＨＤＤからのデータの読み出しの指示をディスクシェルフ６００に送信する。また、ディスク制御部５０５は、プロセッサ５０１の指示に応じて、ディスクシェルフに収納されたＨＤＤ毎の電源のオンおよびオフの指示を、ディスクシェルフ６００に送信することもある。
【０１５７】
外部ＩＦ５０６は、ネットワーク３０を介して他の装置と通信する通信インタフェースである。他の装置は、例えば、第２の実施の形態で例示した管理装置３００、サーバ４００および他のストレージ装置などである（ただし、図１７では図示を省略している）。
【０１５８】
ディスクシェルフ６００は、ディスク制御部６０１およびＨＤＤ群６１０を有する。ディスク制御部６０１は、所定のケーブルを用いてディスク制御部５０５と接続されている。ディスク制御部６０１は、ディスク制御部５０５を介して、プロセッサ５０１の指示を受け付け、指示に応じて、ディスクシェルフ６００に収納されたＨＤＤに対するデータの書き込み、およびＨＤＤからのデータの読み出しを行う。ディスク制御部６０１のインタフェースも、ディスク制御部５０５と同様にＳＡＳインタフェースを用いることができる。ＨＤＤ群６１０は、ＨＤＤ６１１，６１２，６１３を含む。ＨＤＤ６１１，６１２，６１３は、バックアップ用ＨＤＤである。
【０１５９】
プロセッサ５０１は、ＲＯＭ５０４に格納されたプログラムを実行することで、図５で示した管理ＯＳ１４０、バッファ制御部１５０およびディスク電源制御部１６０の各機能を発揮する。プロセッサ５０１は、これらの機能により、第２の実施の形態と同様にディスクシェルフ６００に収納されたＨＤＤに対するバックアップデータの書き込みを制御する。
【０１６０】
具体的には、プロセッサ５０１は、メモリ５０２の記憶領域に、ＨＤＤ６１１，６１２，６１３それぞれに対応するバッファを設ける。プロセッサ５０１は、ＨＤＤ６１１，６１２，６１３の電源を通常はオフにし、ＨＤＤ６１１，６１２，６１３へのバックアップデータの書き込み要求を受信すると、バックアップデータを各ＨＤＤに対応するバッファに格納する。
【０１６１】
例えば、プロセッサ５０１は、所定のタイミングで、ディスク制御部５０５，６０１を介してＨＤＤ６１１の電源をオンにする。所定のタイミングとしては、バッファフルになったタイミング、バックアップデータをバッファに格納してからの時間が最大データ保持時間を経過したタイミング、バックアップデータのＨＤＤへの書き込み指示の入力を受け付けたタイミングの何れかが考えられる。そして、プロセッサ５０１は、ＨＤＤ６１１に対応するバッファに格納されたバックアップデータを、ディスク制御部５０５，６０１を介してＨＤＤ６１１に書き込む。書き込みが完了すると、プロセッサ５０１は、ディスク制御部５０５，６０１を介してＨＤＤ６１１の電源をオフにする。
【０１６２】
ＨＤＤ６１１，６１２，６１３がＲＡＩＤを組んでいる場合もある。その場合、プロセッサ５０１は、ＨＤＤ６１１，６１２，６１３の電源を同時に（多少の時間差はあってもよい）オンにし、バックアップデータ（あるいは、バックアップデータから計算されるパリティ）をＨＤＤ６１１，６１２，６１３に分散して書き込む。プロセッサ５０１は、書き込みが完了すると、ＨＤＤ６１１，６１２，６１３の電源をオフにする。このようにして、ストレージ制御装置５００は、第２の実施の形態と同様に、ディスクシェルフ６００の省電力化を図れる。
【０１６３】
なお、第１の実施の形態の情報処理は、制御部１２にプログラムを実行させることで実現できる。また、第２，第３の実施の形態の情報処理は、プロセッサ１０１，５０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体４３に記録できる。
【０１６４】
例えば、プログラムを記録した記録媒体４３を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。ストレージ装置１００は、プロセッサ１０１およびメモリ１０２を有するコンピュータを含む。ストレージ制御装置５００は、プロセッサ５０１およびメモリ５０２を有するコンピュータを含む。コンピュータは、例えば、記録媒体４３に記録されたプログラムまたは他のコンピュータ（例えば、管理装置３００や他のサーバ）から受信したプログラムを、メモリ１０２，５０２や不揮発性記憶装置などの記憶装置に格納（インストール）してもよい。この場合、コンピュータは、インストール先の記憶装置からプログラムを読み込んで実行する。
【符号の説明】
【０１６５】
１０  ストレージ制御装置
１１  記憶部
１１ａ，１１ｂ  バッファ
１２  制御部
２０  ストレージ装置
２１，２２，２３，２４  記憶装置
【図１】
2016126561.tif 000003
【図２】
2016126561.tif 000004
【図３】
2016126561.tif 000005
【図４】
2016126561.tif 000006
【図５】
2016126561.tif 000007
【図６】
2016126561.tif 000008
【図７】
2016126561.tif 000009
【図８】
2016126561.tif 000010
【図９】
2016126561.tif 000011
【図１０】
2016126561.tif 000012
【図１１】
2016126561.tif 000013
【図１２】
2016126561.tif 000014
【図１３】
2016126561.tif 000015
【図１４】
2016126561.tif 000016
【図１５】
2016126561.tif 000017
【図１６】
2016126561.tif 000018
【図１７】
2016126561.tif 000019