(57)【要約】【課題】不必要な時間にディスクドライブを停止させ、ストレージシステムの消費電力を低減する。【解決手段】ホスト計算機に接続されるインターフェース、前記インターフェースに接続されプロセッサ及びメモリを備える制御部、及び前記ホスト計算機から書き込み要求がされるデータを格納するディスクドライブを備えるストレージ装置であって、前記ホスト計算機から送信される書込要求に係るデータが一時的に格納されるログ記憶領域、及び前記書込要求に係るデータが格納される複数のデータ記憶領域を備え、前記制御部は、複数の前記ディスクドライブで構成されたＲＡＩＤグループによって前記データ記憶領域を提供し、前記ＲＡＩＤグループ毎に、前記ログ記憶領域から前記データ記憶領域にデータを移動する。【選択図】図１
2007156597.tif 000002
【特許請求の範囲】
【請求項１】
ホスト計算機に接続されるインターフェース、前記インターフェースに接続されプロセッサ及びメモリを備える制御部、及び前記ホスト計算機から書き込み要求がされるデータを格納するディスクドライブを備えるストレージ装置であって、
前記ホスト計算機から送信される書込要求に係るデータが一時的に格納されるログ記憶領域、及び前記書込要求に係るデータが格納される複数のデータ記憶領域を備え、
前記制御部は、
複数の前記ディスクドライブで構成されたＲＡＩＤグループによって前記データ記憶領域を提供し、
前記ＲＡＩＤグループ毎に、前記ログ記憶領域から前記データ記憶領域にデータを移動することを特徴とするストレージシステム。
【請求項２】
前記制御部は、
前記ログ記憶領域を構成するディスクドライブは、常にデータの書き込みができるように動作させ、
前記データ記憶領域を構成するディスクドライブは、通常はデータの書き込みができず、前記ログ記憶領域から前記データ記憶領域にデータを移動する際に、データの書き込みができように動作させることを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記ログ記憶領域は、独立にデータを読み書き可能な第１ログ記憶領域及び第２ログ記憶領域を含み、
前記制御部は、前記第１ログ記憶領域から前記データ記憶領域にデータを移動中は、ホスト計算機から送信される書込要求に係るデータを前記第２ログ記憶領域に書き込むことを特徴とする請求項１に記載のストレージシステム。
【請求項４】
前記制御部は、
前記ホスト計算機から書込要求を受けると、当該書込要求に係る前記データ記憶領域のデータ格納位置のデータが前記ログ領域に格納されているか否かを判定し、
当該書込要求に係る前記データ記憶領域のデータ格納位置のデータが前記ログ領域に格納されていれば、当該書込要求に係るデータを前記ログ記憶領域の同一の位置に格納することを特徴とする請求項１に記載のストレージシステム。
【請求項５】
前記制御部は、
前記ログ記憶領域のデータ格納位置と前記データ記憶領域のデータ格納位置との対応を示すログ制御情報を記憶し、
前記ログ制御情報に基づいて、前記ログ記憶領域に格納されたデータと対応する前記ＲＡＩＤグループを特定することを特徴とする請求項１に記載のストレージシステム。
【請求項６】
前記ログ制御情報は、前記ＲＡＩＤグループ毎に分けて記録されていることを特徴とする請求項５に記載のストレージシステム。
【請求項７】
ホスト計算機に接続されるインターフェース、前記インターフェースに接続されプロセッサ及びメモリを備える制御部、及び前記ホスト計算機から書き込み要求がされるデータを格納するディスクドライブを備えるストレージ装置であって、
前記ホスト計算機から送信される書込要求に係るデータが一時的に格納されるログ記憶領域、及び前記書込要求に係るデータが格納されるデータ記憶領域を備え、
前記制御部は、
前記ログ記憶領域を構成するディスクドライブは、常にデータの書き込みができるように動作させ、
前記データ記憶領域を構成するディスクドライブは、通常はデータの書き込みができず、前記ログ記憶領域から前記データ記憶領域にデータを移動する際に、データの書き込みができるように動作させることを特徴とするストレージシステム。
【請求項８】
前記ログ記憶領域は、独立にデータを読み書き可能な第１ログ記憶領域及び第２ログ記憶領域を含み、
前記制御部は、前記第１ログ記憶領域から前記データ記憶領域にデータを移動中は、ホスト計算機から送信される書込要求に係るデータを前記第２ログ記憶領域に書き込むことを特徴とする請求項７に記載のストレージシステム。
【請求項９】
前記制御部は、
前記ホスト計算機から書込要求を受けると、当該書込要求に係る前記データ記憶領域のデータ格納位置のデータが前記ログ領域に格納されているか否かを判定し、
当該書込要求に係る前記データ記憶領域のデータ格納位置のデータが前記ログ領域に格納されていれば、当該書込要求に係るデータを前記ログ記憶領域の同一の位置に格納することを特徴とする請求項７に記載のストレージシステム。
【請求項１０】
前記制御部は、
前記ログ記憶領域のデータ格納位置と前記データ記憶領域のデータ格納位置との対応を示すログ制御情報を記憶し、
前記ログ制御情報に基づいて、前記ログ記憶領域に格納されたデータと対応する前記データ記憶領域のデータ格納位置を特定することを特徴とする請求項７に記載のストレージシステム。
【請求項１１】
ホスト計算機に接続されるインターフェース、前記インターフェースに接続されプロセッサ及びメモリを備える制御部、及び前記ホスト計算機から書き込み要求がされるデータを格納するディスクドライブを備えるストレージ装置における、ディスク制御方法であって、
前記ストレージ装置は、前記ホスト計算機から送信される書込要求に係るデータが一時的に格納されるログ記憶領域、及び前記書込要求に係るデータが格納されるデータ記憶領域を備え、複数の前記ディスクドライブで構成されたＲＡＩＤグループによって前記データ記憶領域を提供し、
前記ディスク制御方法は、
前記ログ記憶領域に格納されているデータが書き込まれるべき前記データ記憶領域が属するＲＡＩＤグループを特定し、
前記特定されたＲＡＩＤグループ毎に、前記ログ記憶領域から前記データ記憶領域にデータを移動することを特徴とするディスク制御方法。
【請求項１２】
前記ログ記憶領域を構成するディスクドライブは、常にデータの書き込みができるように動作させ、
前記データ記憶領域を構成するディスクドライブは、通常はデータの書き込みができず、前記ログ記憶領域から前記データ記憶領域にデータを移動する際に、データの書き込みができるように動作させることを特徴とする請求項１１に記載のディスク制御方法。
【請求項１３】
前記ログ記憶領域は、独立にデータを読み書き可能な第１ログ記憶領域及び第２ログ記憶領域を含み、
前記ディスク制御方法は、前記第１ログ記憶領域から前記データ記憶領域にデータを移動中は、ホスト計算機から送信される書込要求に係るデータを前記第２ログ記憶領域に書き込むことを特徴とする請求項１１に記載のディスク制御方法。
【請求項１４】
前記ホスト計算機から書込要求を受けると、当該書込要求に係る前記データ記憶領域のデータ格納位置のデータが前記ログ領域に格納されているか否かを判定し、
当該書込要求に係る前記データ記憶領域のデータ格納位置のデータが前記ログ領域に格納されていれば、当該書込要求に係るデータを前記ログ記憶領域の同一の位置に格納することを特徴とする請求項１１に記載のディスク制御方法。
【請求項１５】
前記ログ記憶領域のデータ格納位置と前記データ記憶領域のデータ格納位置との対応を示すログ制御情報を記憶し、
前記ログ制御情報に基づいて、前記ログ記憶領域に格納されたデータと対応する前記ＲＡＩＤグループを特定することを特徴とする請求項１１に記載のディスク制御方法。
【請求項１６】
前記ＲＡＩＤグループ毎に分けて、前記ログ制御情報を記録することを特徴とする請求項１５に記載のディスク制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置に関し、特に、ストレージ装置の電力制御技術に関する。
【背景技術】
【０００２】
近年、電子保存の規制緩和、インターネットビジネスの拡大、及び、手続きの電子化など、急速に情報システムが進展する中、計算機システムが扱うデータ量が飛躍的に増加している。さらに、ディスクドライブからディスクドライブへのデータバックアップ、及び、ディスクドライブに格納されたデータの長期保管に対する顧客の要求が高まっている。その結果、ストレージ装置の大容量化が進んでいる。
【０００３】
これに伴い、企業情報システムでは、ストレージ装置の増強が図られている。一方で、ストレージ装置の管理コストを低減への期待が高まっている。大規模ストレージシステムの管理コストを低減する方法の一つとして、ディスクドライブの省電力技術が提案されている。
【０００４】
例えば、米国特許出願公開第２００４／００５４９３９号明細書には、ＲＡＩＤグループ内のディスク単位で電源を制御する技術が開示されている。具体的には、ＲＡＩＤ４構成におけるストライプを１ドライブ分とし、パリティディスクとシーケンシャルライトの書き込みディスク１台のみを起動する。また、常時操作する電源オンディスクドライブを備え、電源オフディスクドライブへのアクセス時に、電源オンディスクドライブをバッファとして利用する。電源オフディスクドライブからデータを読み出すために、データ先頭部分の複製を電源オンディスクドライブに格納しておく。
【０００５】
また、特開２０００−２９３３１４号公報には、アクセスがないＲＡＩＤグループ内のディスク群を電源オフ又は節電状態にする技術が開示されている。
【特許文献１】米国特許出願公開第２００４／００５４９３９号明細書
【特許文献２】特開２０００−２９３３１４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
前述した米国特許出願公開第２００４／００５４９３９号明細書に開示された技術は、シーケンシャルライトに適する技術であり、例えばアーカイブ用途には適する。しかし、ランダムアクセスが主となる、通常のオンライン用途には適さない。
【０００７】
また、特開２０００−２９３３１４号公報に開示された技術では、オンライン用途の場合、ディスクドライブへアクセスがされない時間が一定値を超える場合が少ない可能性がある。
【０００８】
また、ランダムアクセス用に使用する場合であっても、ディスクドライブ一台あたりのIOPSは小さい場合がある。例えば、ディスクドライブ一台あたり１０IOPSである場合、１Ｉ／Ｏあたりのディスクドライブの動作時間が１０ミリ秒とすると、ディスクドライブは、１秒間に１００ミリ秒、すなわち１０％しか実際に動作していない。
【０００９】
本発明は、不必要な時間にディスクドライブを停止させ、ストレージシステムの消費電力を低減することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の代表的な一形態によると、ホスト計算機に接続されるインターフェース、前記インターフェースに接続されプロセッサ及びメモリを備える制御部、及び前記ホスト計算機から書き込み要求がされるデータを格納するディスクドライブを備えるストレージ装置であって、前記ホスト計算機から送信される書込要求に係るデータが一時的に格納されるログ記憶領域、及び前記書込要求に係るデータが格納される複数のデータ記憶領域を備える。前記制御部は、複数の前記ディスクドライブで構成されたＲＡＩＤグループによって前記データ記憶領域を提供し、前記ＲＡＩＤグループ毎に、前記ログ記憶領域から前記データ記憶領域にデータを移動する。
【００１１】
すなわち、本発明の一形態のディスクアレイ装置は、間欠的に動作する通常ドライブ、及びホスト計算機からの書込要求に係るデータを格納するための、常時動作するログドライブを備える。そして、ログドライブから通常ドライブにデータを移動するときに、特定のＲＡＩＤグループを構成するディスクドライブだけを動作させる。そして、特定のＲＡＩＤグループのデータをログドライブから選択し、動作中の通常ドライブに書き込む。
【発明の効果】
【００１２】
本発明によると、ホストデータをいったんログドライブに格納し、格納されたデータをログドライブから通常ドライブに移動する。よって、ディスクドライブの動作時に集中的にログドライブから通常ドライブにデータを移動するので、通常ドライブは一部のみを動作させることができ、ディスクドライブの動作時間を短縮することができる。
【発明を実施するための最良の形態】
【００１３】
以下、本発明の実施の形態を、図面を参照して説明する。
【００１４】
（第１実施形態）
図１は、第１の実施の形態の計算機システムの構成図である。
【００１５】
第１の実施の形態の計算機システムは、ユーザが使用するクライアント端末３００、ホスト計算機２００、及びディスクアレイ装置１００を備える。
【００１６】
クライアント端末３００及びホスト計算機２００は、ネットワーク５００で接続されている。ネットワーク５００は、イーサネット（登録商標）等のデータを通信可能なネットワークである。
【００１７】
ホスト計算機２００及びディスクアレイ装置１００は、通信路５１０で接続されている。通信路５１０は、大容量のデータ通信に適するネットワークであり、例えば、ＦＣ（Fibre Channel）プロトコルによって通信するＳＡＮ（Starage Area Netork）又はｉＳＣＳＩ（Internet SCSI）プロトコルによって通信するＩＰ−ＳＡＮを用いる。
【００１８】
ディスクアレイ装置１００は、ディスクアレイ制御装置１１０及びディスクドライブ１２０を備える。
【００１９】
ディスクアレイ制御装置１１０は、ＭＰＵ１１１及びキャッシュメモリ１１２を備える。また、ディスクアレイ制御装置１１０は、図示を省略する、ホストインタフェース、システムメモリ及びディスクインタフェースを備える。
【００２０】
ホストインタフェースは、ホスト計算機２００と通信する。ＭＰＵ１１１は、ディスクアレイ装置１００全体の動作を制御する。システムメモリは、ＭＰＵ１１１がディスクアレイ装置１００の制御に用いる制御情報及び制御プログラムを格納する。
【００２１】
キャッシュメモリ１１２は、ディスクドライブ１２０に入出力されるデータを一時的に保存する。ディスクドライブ１２０は、不揮発性の記憶媒体であり、ホスト計算機２００が使用するデータを格納する。ディスクインタフェースは、ディスクドライブ１２０と通信し、ディスクドライブ１２０へのでーたの入出力を制御する。
【００２２】
ＭＰＵ１１１は、システムメモリに格納された制御プログラムを実行することによって、ディスクアレイ装置１００を制御する。制御プログラムは通常はフラッシュメモリのような不揮発性の媒体（図示せず）に格納され、ディスクアレイ装置１００の電源投入直後にシステムメモリに転送され、ＭＰＵ１１１によって実行される。なお、制御プログラムは不揮発性のメモリではなくディスクドライブ１２０に保存されてもよい。
【００２３】
本実施の形態のディスクドライブ１２０は、ＲＡＩＤ（Redundant Array of Independent Disks）を構成して、記憶されるデータに冗長性を持たせている。このようにすれば、ディスクドライブ１２０の一部に障害が生じても、格納されたデータが消失せず、ディスクアレイ装置の信頼性を向上することができる。
【００２４】
ホスト計算機２００は、プロセッサ、メモリ、インターフェース、記憶装置、入力装置及び表示装置を備え、これらが内部バスによって接続されている計算機である。ホスト計算機２００は、例えば、ファイルシステムを動作させ、クライアント端末３００にファイルシステムを提供する。
【００２５】
クライアント端末３００は、プロセッサ、メモリ、インターフェース、記憶装置、入力装置及び表示装置を備え、これらが内部バスによって接続されている計算機である。クライアント計算機３００は、例えば、アプリケーションソフトウェアを動作させ、クライアント端末３００によって提供されるファイルシステムを用いて、ディスクアレイ装置１００に格納されたデータを入出力する。
【００２６】
なお、管理者がディスクアレイ装置を操作するために使用する管理計算機がディスクアレイ装置１００に接続されていてもよい。
【００２７】
図２は、第１の実施の形態のディスクアレイ装置１００のディスクドライブ１２０の構成図である。
【００２８】
ディスクドライブ１２０は、通常ドライブ１２１及びログドライブ１２２を含む。
【００２９】
通常ドライブ１２１は、複数のディスクドライブによって、ＲＡＩＤ５による複数のＲＡＩＤグループを構成している。なお、本実施の形態では、ＲＡＩＤ５によるＲＡＩＤグループを構成したが、他のレベルのＲＡＩＤ（ＲＡＩＤ１又は４）によってＲＡＩＤグループを構成してもよい。通常ドライブ１２１は、データの読み書きに必要なときだけ起動し、間欠的に動作する。
【００３０】
ログドライブ１２２は、ホストコンピュータ２００から送信されたホストデータを一時的に記憶するディスクドライブで、ログドライブ１２２は、常時、データの読み書きが可能なように動作している。
【００３１】
ログドライブ１２２は、ＲＡＩＤ１によるＲＡＩＤグループを構成している。すなわち、ホストデータを２台のディスクドライブに書き込むことによってミラーリングをして、ダブルバッファリング構成を提供している。なお、他のレベルのＲＡＩＤ（ＲＡＩＤ４又は５）によってＲＡＩＤグループを構成してもよい。
【００３２】
また、ログドライブ１２２は、二つのＲＡＩＤグループ（バッファ１及びバッファ２）を備える。ホスト計算機から送信されたホストデータは、まず、バッファ１に書き込まれる。そして、バッファ１がいっぱいになったら、バッファ２にホストデータが書き込まれる。
【００３３】
なお、本実施の形態では、二つのＲＡＩＤグループを設けたが、三つ以上のＲＡＩＤグループを設けてもよい。なお、三つのＲＡＩＤグループを、ホストデータが書き込まれる第１ＲＡＩＤグループ、及び、通常ドライブ１２１へデータを移動中の第２ＲＡＩＤグループの他に、もう一つの予備の第３ＲＡＩＤグループとすることができる。よって、ホストデータが一時的に増加して第１ＲＡＩＤグループがいっぱいになったときに、第２ＲＡＩＤグループのデータ移動処理が終了していなくても、第３ＲＡＩＤグループにホストデータを書き込むことができる。よって、ホスト計算機２００に対する応答特性を向上させることができる。
【００３４】
次に、ホストデータの格納動作の概要を説明する。
【００３５】
ホスト計算機２００からデータ書込要求を受信すると、ディスクアレイ制御装置１１０は、受信したホストデータをログドライブ１２２に書き込む。このログドライブ１２２に書き込まれるデータは、まず、バッファ１に書き込まれる。そして、徐々にバッファ１にホストデータが貯まり、バッファ１がいっぱいになったら、ディスクアレイ制御装置１１０はホストデータをバッファ２に書き込む。
【００３６】
ディスクアレイ制御装置１１０は、バッファ２にホストデータを書き込んでいる間に、バッファ１に格納されたホストデータを通常ドライブ１２１のＲＡＩＤグループ毎に選択して、データを通常ドライブ１２１の対応する論理ブロックに移動する。
【００３７】
その後、バッファ２にホストデータが貯まり、バッファ２がいっぱいになったら、ディスクアレイ制御装置１１０は、ホストデータを、データの移動が完了して空になったバッファ１に書き込む。
【００３８】
図３は、第１の実施の形態のログ制御テーブル１３０の構成図である。
【００３９】
ログ制御テーブル１３０は、ログドライブ１２２のＲＡＩＤグループ毎に設けられ、キャッシュメモリ１１２に格納されている。なお、ログドライブ１２２を区別可能に、全ログドライブ１２２のデータを、一つのログ制御テーブル１３０中に記憶してもよい。
【００４０】
ログ制御テーブル１３０は、通常ドライブ１２１のＲＡＩＤグループに対応して設けられた複数のＲＡＩＤグループ番号リスト１３１を含む。
【００４１】
ＲＡＩＤグループ番号リスト１３１は、ログドライブ１２２に格納されたデータの情報を通常ドライブ１２１のＲＡＩＤグループ毎に連結リスト形式としたものであり、ＲＡＩＤグループ番号１３２、先頭ポインタ１３３及びＬＢＡの対応を示すエントリ１３４を含む。
【００４２】
ＲＡＩＤグループ番号１３２は、通常ドライブ１２１のＲＡＩＤグループの一意の識別子である。先頭ポインタ１３３は、当該ＲＡＩＤグループの最初のエントリ１３４へのリンクの情報であり、エントリ１３４が格納されているキャッシュメモリ１１２のアドレスである。なお、当該ＲＡＩＤグループにエントリ１３４が存在しない場合は、先頭ポインタ１３３はＮＵＬＬになる。
【００４３】
各エントリ１３４は、ソースＬＢＡ１３５、サイズ１３６、ターゲットＬＢＡ１３７、論理ユニット番号１３８及び次のエントリへのリンク情報１３９を含む。
【００４４】
ソースＬＢＡ１３５は、データが格納されているログドライブ１２２の論理ブロックのアドレスである。なお、論理ブロックは、ディスクドライブ１２０におけるデータの書き込み単位であり、論理ブロック毎にデータが読み書きされる。
【００４５】
サイズ１３６は、ログドライブ１２２に格納されているデータの大きさである。
【００４６】
ターゲットＬＢＡ１３７は、ホスト計算機２００から送信されたデータ書込要求に含まれる通常ドライブ１２１の論理ブロックのアドレスであり、ログドライブ１２２に格納されたデータが書き込まれるべき通常ドライブ１２１の論理ブロックのアドレスである。
【００４７】
論理ユニット番号１３８は、ホスト計算機２００から送信されたデータ書込要求に含まれる通常ドライブ１２１の論理ユニットの一意の識別子であり、ログドライブ１２２に格納されたデータが通常ドライブ１２１に書き込まれるべき論理ユニットを示す。
【００４８】
次のエントリへのリンク情報１３９は、次のエントリが格納されているキャッシュメモリ１１２のアドレスである。なお、次のエントリが存在しない場合は、リンク情報１３９はＮＵＬＬになる。
【００４９】
すなわち、ログドライブ１２２のデータ格納場所はソースＬＢＡ１３５及びサイズ１３６によって特定される。また、通常ドライブ１２１のデータ格納場所は論理ユニット番号１３８、ターゲットＬＢＡ１３７及びサイズ１３６によって特定される。
【００５０】
なお、第１の実施の形態では、通常ドライブ１２１に格納すべきデータをログドライブ１２２に格納したが、通常ドライブ１２１に対して実行される命令（例えば、データベースシステムにおけるトランザクション）をログドライブ１２２に格納してもよい。
【００５１】
図４は、第１の実施の形態のディスクアレイ装置１００のホストＩ／Ｏ受信処理のフローチャートである。ホストＩ／Ｏ受信処理は、ディスクアレイ制御装置１１０のＭＰＵ１１１によって実行される。
【００５２】
まず、ホスト計算機２００からデータ書込要求を受信する。そして、受信した書込要求から、データを書き込むべき論理ユニット番号（ＬＵＮ）、データを書き込むべき論理ブロック番号（ターゲットＬＢＡ）、及び書き込むデータのサイズを抽出する。そして、抽出した番号の論理ユニットが存在するＲＡＩＤグループの番号を特定する（Ｓ１０１）。
【００５３】
その後、当該書込要求に係るデータを格納するログドライブ１２２の位置（ソースＬＢＡ）を決定する（Ｓ１０２）。ログドライブ１２２には書込要求が順に格納されるので、ホストデータが格納されている最後の論理ユニットの次の論理ユニットを、ソースＬＢＡに決定する。
【００５４】
次に、ステップＳ１０１で特定したＲＡＩＤグループ番号に対応する、ＲＡＩＤグループ番号リスト１３１を取得する。そして、取得したＲＡＩＤグループ番号リスト１３１の先頭ポインタ１３３によって、当該ＲＡＩＤグループのエントリ１３４が格納されているキャッシュメモリ１１２の先頭アドレスを特定する（Ｓ１０３）。
【００５５】
次に、当該書込要求の情報を、ＲＡＩＤグループ番号リスト１３１に格納する。すなわち、当該書込要求に係るソースＬＢＡ、ターゲットＬＢＡ、サイズ、論理ユニット番号（ＬＵＮ）を、ＲＡＩＤグループ番号リスト１３１の末尾に追加する（Ｓ１０４）。
【００５６】
図５は、第１の実施の形態のディスクアレイ装置１００のログドライブ１２２から通常ドライブ１２１へのデータ移動処理のフローチャートである。
【００５７】
このデータ移動処理は、バッファ１がいっぱいになったらディスクアレイ制御装置１１０のＭＰＵ１１１によって実行され、バッファ１に格納されたデータを通常ドライブ１２１に移動する。また、バッファ２がいっぱいになったら実行され、バッファ２に格納されたデータを通常ドライブ１２１に移動する。
【００５８】
まず、ログ制御テーブル１３０に、未移動のＲＡＩＤグループが存在するか否かを判定する（Ｓ１１１）。具体的には、各ＲＡＩＤグループ番号リスト１３１の先頭ポインタ１３３を参照して、先頭ポインタ１３３がＮＵＬＬであれば、当該ＲＡＩＤグループのデータの移動は終了していると判定する。
【００５９】
その結果、全てのＲＡＩＤグループのデータ移動が終了していれば、この移動処理を終了する。
【００６０】
一方、データの移動が終了していないＲＡＩＤグループがあれば、ステップＳ１１２に進む。
【００６１】
ステップＳ１１２では、データの移動が終了していないＲＡＩＤグループの番号をＲＧＮに設定する。そして、データの移動が終了していないＲＡＩＤグループを構成するディスクドライブを起動する。
【００６２】
本発明の実施の形態では、通常ドライブ１２１を構成するディスクドライブは、通常は停止している。なお、ディスクドライブの停止には、ディスクドライブを低消費電力モードで動作させ、ディスクドライブのモータを停止することの他、ディスクドライブへ供給される電源を遮断して、ディスクドライブのモータ及び制御回路を停止することも含む。
【００６３】
すなわち、ステップＳ１１２では、ディスクドライブへ電源を供給し、ディスクドライブの動作モードを低消費電力モードから通常動作モードへ変更して、ディスクドライブのモータ及び制御回路を動作させる。
【００６４】
その後、ＲＧＮに対応するＲＡＩＤグループ番号リスト１３１を、ログ制御テーブル１３０から取得する（Ｓ１１３）。
【００６５】
そして、ＲＡＩＤグループ番号リスト１３１を参照して、先頭ポインタ１３３が指す最初のエントリをＥｎｔｒｙに設定する（Ｓ１１４）。
【００６６】
次に、Ｅｎｔｒｙが示すエントリを参照し、まず、ソースＬＢＡからサイズ分のデータを、ログドライブ１２２から読み出す（Ｓ１１５）。そして、読み出したデータを論理ユニット番号及びターゲットＬＢＡで特定される通常ドライブ１２１の領域に書き込む（Ｓ１１６）。その後、このエントリを連結リストから外し、エントリを無効化する（Ｓ１１７）。
【００６７】
その後、次のエントリをＥｎｔｒｙに設定する（Ｓ１１８）。そして、ＥｎｔｒｙがＮＵＬＬであるか否かを判定する（Ｓ１１９）。
【００６８】
その結果、ＥｎｔｒｙがＮＵＬＬでなければ、次のエントリが存在するので、ステップＳ１１５に戻り、次のエントリについて処理をする。
【００６９】
一方、ＥｎｔｒｙがＮＵＬＬであれば、次のエントリは存在しないので、当該ＲＡＩＤグループのデータの移動処理は終了したと判定し、当該ＲＡＩＤグループを構成するディスクドライブを停止する（Ｓ１２０）。すなわち、ディスクドライブへ供給される電源を遮断する、又は、ディスクドライブの動作モードを通常動作モードから低消費電力モードへ変更して、ディスクドライブのモータを停止する。
【００７０】
そして、ステップＳ１１１に戻り、未移動のＲＡＩＤグループが存在するか否かを判定する。
【００７１】
なお、詳細は省略するが、第１の実施の形態のストレージ装置１００では、ホスト計算機２００からのデータ読み出し時には、まず、ログ制御テーブル１３０の論理ユニット番号１３８及びターゲットＬＢＡ１３７を参照して、ログドライブ１２２に読み出し対象のデータが格納されているかを調べる。
【００７２】
そして、読み出し対象のデータがログドライブ１２２に格納されていれば、ログドライブ１２２に格納されたデータをホスト計算機２００に返送する。一方、読み出し対象のデータがログドライブ１２２に格納されていなければ、通常ドライブ１２１からデータを読み出してホスト計算機２００に返送する。
【００７３】
以上説明したように、本発明の第１の実施の形態では、ホストデータをいったんログドライブ１２２に格納する。そして、ログドライブ１２２に格納されたホストデータを通常
ドライブ１２１のＲＡＩＤグループ毎に選択して、ＲＡＩＤグループ毎にデータを通常ドライブ１２１に移動する。よって、通常ドライブ１２１の動作時に集中的にログドライブ１２２から通常ドライブ１２１にデータを移動するので、通常ドライブ１２１を間欠的に動作させることができ、通常ドライブ１２１の動作時間を短縮することができる。
【００７４】
よって、オンラインデータに対しても効果的にディスクドライブの電源を制御することができる。
【００７５】
また、第１の実施の形態では、ホストデータを二つＲＡＩＤグループに順に書き込むので、データのログドライブ１２２からの読み出しと同時に、データをログドライブ１２２に書き込むことができる。よって、通常ドライブ１２１へのデータの移動中も、ホスト計算機２００からのＩ／Ｏ要求を受けることができ、ホスト計算機２００に対する応答特性を向上させることができる。
【００７６】
（第２実施形態）
次に、本発明の第２の実施の形態について説明する。
【００７７】
第２の実施の形態は、前述した第１の実施の形態と、ログドライブ１２２の構成が異なる。なお、第２の実施の形態では、前述した第１の実施の形態と同じ構成には同じ符号を付し、その説明は省略する。
【００７８】
図６は、第２の実施の形態のディスクアレイ装置１００のディスクドライブ１２０の構成図である。
【００７９】
ディスクドライブ１２０は、通常ドライブ１２１及びログドライブ１２２を含む。
【００８０】
ログドライブ１２２は、一つのＲＡＩＤグループ（バッファ）を備える。
【００８１】
ログドライブ１２２は、ホストコンピュータ２００から送信されたホストデータを一時的に記憶するディスクドライブで、ＲＡＩＤ１によるＲＡＩＤグループを構成している。なお、他のレベルのＲＡＩＤ（ＲＡＩＤ４又は５）によってＲＡＩＤグループを構成してもよい。
【００８２】
次に、ホストデータの格納動作の概要を説明する。
【００８３】
ホスト計算機２００からデータ書込要求を受信すると、ディスクアレイ制御装置１１０は、受信したホストデータをログドライブの１２２の第１領域１２２Ａに書き込む。そして、ログドライブの使用量が所定の閾値を超えると、第１領域１２２Ａがいっぱいになったので、ホストデータはログドライブ１２２の第２領域１２２Ｂに書き込まれる。このとき、ディスクアレイ制御装置１１０は、第１領域に格納されたホストデータを通常ドライブ１２１のＲＡＩＤグループ毎に選択して、データを通常ドライブ１２１の対応する論理ブロックに移動する。。
【００８４】
その後、バッファ２にホストデータが貯まり、第２領域１２２Ｂがいっぱいになったら、ディスクアレイ制御装置１１０は、第２領域１２２Ｂに格納されたホストデータを通常ドライブ１２１に移動しつつ、ホストデータを第１領域１２２Ａに書き込む。
【００８５】
図７は、第２の実施の形態のログ制御テーブル１３０の構成図である。
【００８６】
ログ制御テーブル１３０は、ログドライブ１２２のＲＡＩＤグループに対応して一つ設けられている。
【００８７】
ログ制御テーブル１３０は、通常ドライブ１２１のＲＡＩＤグループ毎に設けられた複数のＲＡＩＤグループ番号リスト１３１を含む。
【００８８】
ＲＡＩＤグループ番号リスト１３１は、通常ドライブ１２１のＲＡＩＤグループを特定する情報であり、ＲＡＩＤグループ番号１３２、先頭ポインタ１３３及びＬＢＡの対応を示すエントリ１３４を含み、連結リスト形式となっている。各エントリ１３４は、ソースＬＢＡ１３５、サイズ１３６、ターゲットＬＢＡ１３７、論理ユニット番号１３８及び次のエントリへのリンク情報１３９を含む。
【００８９】
なお、ログ制御テーブル１３０に格納される情報は、前述した第１の実施の形態と同じである。
【００９０】
以上説明したように、本発明の第２の実施の形態では、前述した第１の実施の形態と同様に、通常ドライブ１２１の動作時に集中的にログドライブ１２２から通常ドライブ１２１にデータを移動するので、通常ドライブ１２１の動作時間を短縮することができる。
【００９１】
また、ホストデータが一時的に書き込まれるＲＡＩＤグループを一つにしたので、少ないディスク容量でログドライブ１２２を構成することができる。
【００９２】
（第３実施形態）
次に、本発明の第３の実施の形態について説明する。
【００９３】
第３の実施の形態は、前述した第１及び第２の実施の形態と異なり、ディスクキャッシュ１２３にデータを一時的に格納する。このディスクキャッシュ１２３は、データの読み書きに必要なときだけ間欠的に動作する通常ディスク１２１と異なり、常時動作している。
【００９４】
第３の実施の形態のディスクキャッシュ１２３と、第１及び第２の実施の形態のログドライブ１２２との違いは以下の通りである。
【００９５】
第１の実施の形態では、同一論理ブロックへの異なる書込要求はログディスク１２２の別領域に格納される。一方、第３の実施の形態では、同一論理ブロックへの異なる書込要求は、通常のキャッシュメモリと同様に、当該論理ブロックのデータがディスクキャッシュ１２３に格納されているかのヒットチェックを行う。そして、当該論理ブロックのデータがディスクキャッシュ１２３に格納されていれば、キャッシュヒットと判定し、通常のキャッシュメモリと同じ動作をする。
【００９６】
このため、ディスクキャッシュ１２３では、ディスクをセグメントに分け、ディスクキャッシュセグメント管理テーブル１７０をキャッシュメモリに格納する。そして、ディスクキャッシュセグメント管理テーブル１７０からディスクキャッシュ１２３のセグメントを指定する。
【００９７】
なお、第３の実施の形態では、前述した第１の実施の形態と同じ構成は同じ符号を付し、その説明は省略する。
【００９８】
図８は、第３の実施の形態のディスクアレイ装置１００のキャッシュメモリ１１２及びディスクドライブ１２０の構成図である。
【００９９】
ディスクドライブ１２０は、通常ドライブ１２１及びディスクキャッシュ１２３を含む。
【０１００】
通常ドライブ１２１は、複数のディスクドライブによって、ＲＡＩＤ５による複数のＲＡＩＤグループを構成している。なお、他のレベルのＲＡＩＤ（ＲＡＩＤ１又は４）によってＲＡＩＤグループを構成してもよい。
【０１０１】
ディスクキャッシュ１２３は、ホストコンピュータ２００から送信されたデータを一時的に記憶するディスクドライブである。なお、ディスクキャッシュ１２３は、ＲＡＩＤを構成してもよい。ディスクキャッシュ１２３は固定サイズ（例えば、１６Ｋバイト）のセグメントに区分されている。
【０１０２】
キャッシュメモリ１１２には、キャッシュメモリ制御テーブル１４０、ディスクキャッシュ制御テーブル１５０、アドレス変換テーブル１６０、ユーザデータ１６５及びディスクキャッシュセグメント管理テーブル１７０が格納されている。
【０１０３】
キャッシュメモリ制御テーブル１４０は、キャッシュメモリ１１２に格納されているデータをＲＡＩＤグループ毎に管理するための情報で、通常ドライブ１２１のＲＡＩＤグループに対応するＲＡＩＤグループ番号リスト１４１を含む。
【０１０４】
ＲＡＩＤグループ番号リスト１４１は、キャッシュメモリ１１２に格納されているデータに関する情報を通常ドライブ１２１のＲＡＩＤグループ毎に連結リスト形式としたものであり、ＲＡＩＤグループ番号１４２、先頭ポインタ１４３及びセグメントポインタ１４４を含む。
【０１０５】
ＲＡＩＤグループ番号１４２は、通常ドライブ１２１によって構成されるＲＡＩＤグループの一意の識別子である。先頭ポインタ１４３は、当該ＲＡＩＤグループの最初のセグメントポインタ１４４へのリンクの情報であり、セグメントポインタ１４４が格納されているキャッシュメモリ１１２のアドレスである。なお、当該ＲＡＩＤグループにセグメントポインタ１４４が存在しない場合は、先頭ポインタ１４３はＮＵＬＬになる。
【０１０６】
セグメントポインタ１４４は、当該データが格納されているキャッシュメモリ１１２のセグメント番号及び次のセグメントポインタへのリンク情報を含む。
【０１０７】
ディスクキャッシュ制御テーブル１５０は、ディスクキャッシュ１２３に格納されているデータをＲＡＩＤグループ毎に管理するための情報で、通常ドライブ１２１のＲＡＩＤグループに対応するＲＡＩＤグループ番号リスト１５１を含む。
【０１０８】
ＲＡＩＤグループ番号リスト１５１は、ディスクキャッシュ１２３に格納されているデータの情報を通常ドライブ１２１のＲＡＩＤグループ毎に連結リスト形式としたものであり、ＲＡＩＤグループ番号１５２、先頭ポインタ１５３及びセグメントポインタ１５４を含む。
【０１０９】
ＲＡＩＤグループ番号１５２は、通常ドライブ１２１によって構成されるＲＡＩＤグループの一意の識別子である。先頭ポインタ１５３は、当該ＲＡＩＤグループの最初のセグメントポインタ１４４へのリンクの情報であり、セグメントポインタ１５４が格納されているキャッシュメモリ１１２のアドレスである。なお、当該ＲＡＩＤグループにセグメントポインタ１５４が存在しない場合は、先頭ポインタ１５３はＮＵＬＬになる。
【０１１０】
セグメントポインタ１５４は、当該データのディスクキャッシュセグメント管理テーブル１７０のエントリが格納されているキャッシュメモリ１１２セグメント番号及び次のセグメントポインタへのリンク情報を含む。
【０１１１】
アドレス変換テーブル１６０は、ホスト計算機２００からのデータ書込要求によって指定された、データを書き込むべき論理ユニット番号（ＬＵＮ）、データを書き込むべき論理ブロック番号（ターゲットＬＢＡ）に対応するキャッシュメモリ１２１のセグメント及びディスクキャッシュ１２３のセグメントが存在するか否かを示すハッシュテーブルである。ＬＵＮ及びターゲットＬＢＡに基づいてテーブルを参照すると、一意のエントリが求められる。エントリには、一つのセグメントが対応するように、キャッシュメモリ上のセグメント１６５や、ディスクキャッシュ１２３のセグメント管理テーブル１７０が記載される。
【０１１２】
なお、エントリが複数のセグメントを対応するようにテーブルを記載してもよい。この場合には、ＬＵＮ及びターゲットＬＢＡのそれぞれを確認して、キャッシュがヒットするか否かを判定する。
【０１１３】
ユーザデータ１６５は、キャッシュメモリ１１２に一時的に格納された、通常ドライブ１２１から読み出された又は通常ドライブ１２１に書き戻されるべきデータである。
【０１１４】
ディスクキャッシュセグメント管理テーブル１７０は、ディスクキャッシュ１２３に格納されたデータと、当該データが通常ドライブ１２１に格納されるべき場所の対応を示す情報であり、その詳細は後述する。
【０１１５】
次に、ホストデータの格納動作の概要を説明する。
【０１１６】
第３の実施の形態のディスクアレイ装置１００のディスクキャッシュ１２３は、通常のキャッシュメモリ１１２と同様に管理される。また、ディスクキャッシュ１２３に格納されたホストデータ及びキャッシュメモリ１１２に格納されたホストデータを、通常ドライブ１２１に移動する場合は、通常ドライブ１２１のＲＡＩＤグループ毎にデータを選択して、当該ＲＡＩＤグループを構成するディスクを起動し、データを通常ドライブ１２１の対応する論理ブロックに移動する。このため、当該ＲＡＩＤグループに対応するＲＡＩＤグループ番号リスト１４１を取得し、ポインタをたどって、当該ＲＡＩＤグループのデータを特定する。
【０１１７】
書込対象の論理ブロックのデータがキャッシュメモリ１１２に格納されている場合、従来通り、データをキャッシュメモリ１１２から通常ドライブ１２１に移動する。
【０１１８】
また、書込対象の論理ブロックのデータがディスクキャッシュ１２３に格納されている場合、当該データをディスクキャッシュ１２３から読み出して、キャッシュメモリ１１２に移動する。
【０１１９】
また、書込対象の論理ブロックのデータがキャッシュメモリ１１２に格納されていないが、当該論理ブロックのエントリがディスクキャッシュセグメント管理テーブル１７０に存在すれば、既にディスクキャッシュが割り当てられているので、管理テーブル１７０によって指定されるディスクキャッシュ１２３のセグメントにデータを格納する。
【０１２０】
また、当該論理ブロックのエントリがディスクキャッシュセグメント管理テーブル１７０に存在しなければ、新たにディスクキャッシュ１２３のセグメントを確保し、当該論理ブロックのエントリを管理テーブル１７０に追加する。
【０１２１】
図９は、第３の実施の形態のディスクキャッシュセグメント管理テーブル１７０の構成図である。
【０１２２】
ディスクキャッシュセグメント管理テーブル１７０は、ディスクセグメント番号１７５、データマップ１７６、ターゲットＬＢＡ１７７、論理ユニット番号１７８及び次のエントリへのリンク情報１７９を含む。
【０１２３】
ディスクセグメント番号１７５は、データが格納されているディスクキャッシュ１２３のセグメントの一意の識別子である。
【０１２４】
データマップ１７６は、ディスクキャッシュ１２３のセグメントのデータが入っている位置を示すビットマップである。例えば、５１２バイトを１ビットであらわすと、１６Ｋバイトのセグメントは４バイトのビットマップで表される。
【０１２５】
ターゲットＬＢＡ１７７は、ホスト計算機２００から送信されたデータ書込要求に含まれる通常ドライブ１２１の論理ブロックのアドレスであり、ディスクキャッシュ１２３に格納されたデータが通常ドライブ１２１に書き込まれるべき論理ブロックのアドレスである。
【０１２６】
論理ユニット番号１７８は、ホスト計算機２００から送信されたデータ書込要求に含まれる通常ドライブ１２１の論理ユニットの一意の識別子であり、ディスクキャッシュ１２３に格納されたデータが通常ドライブ１２１に書き込まれるべき論理ユニットを示す。
【０１２７】
次のエントリへのリンク情報１７９は、次のエントリが格納されているキャッシュメモリ１１２のアドレスである。なお、次のエントリが存在しない場合は、リンク情報１７９はＮＵＬＬになる。
【０１２８】
すなわち、ログドライブ１２２のデータ格納場所はソースＬＢＡ１３５によって特定され、通常ドライブ１２１のデータ格納場所はターゲット論理ユニット番号１３８、ＬＢＡ１３７及びサイズ１３６によって特定される。
【０１２９】
図１０は、第３の実施の形態のディスクアレイ装置１００のホストＩ／Ｏ受信処理のフローチャートである。ホストＩ／Ｏ受信処理は、ディスクアレイ制御装置１１０のＭＰＵ１１１によって実行される。
【０１３０】
まず、ホスト計算機２００からデータ書込要求を受信する。そして、受信した書込要求から、データを書き込むべき論理ユニット番号（ＬＵＮ）、データを書き込むべきＬＢＡ（ターゲットＬＢＡ）、及び書き込むデータのサイズを抽出する。そして、抽出した論理ユニット番号からデータを書き込むべき論理ユニット番号が存在するＲＡＩＤグループ番号を特定する（Ｓ１３１）。
【０１３１】
その後、当該書込要求に係るデータを格納するログドライブ１２２の位置（ソースＬＢＡ）を決定する（Ｓ１０２）。ログドライブ１２２には書込要求が順に格納されるので、ホストデータが格納されている最後の論理ユニットの次の論理ユニットを、ソースＬＢＡに決定する。
【０１３２】
次に、ステップＳ１０１で特定したＲＡＩＤグループ番号に対応する、ＲＡＩＤグループ番号リスト１３１を取得する。そして、取得したＲＡＩＤグループ番号リスト１３１の先頭ポインタ１３３によって、当該ＲＡＩＤグループのエントリ１３４が格納されているキャッシュメモリ１１２の先頭アドレスを特定する（Ｓ１０３）。
【０１３３】
次に、当該書込要求の情報を、ＲＡＩＤグループ番号リスト１３１に格納する。すなわち、当該書込要求に係るソースＬＢＡ、ターゲットＬＢＡ、サイズ、論理ユニット番号（ＬＵＮ）を、ＲＡＩＤグループ番号リスト１３１の末尾に追加する（Ｓ１０４）。
【０１３４】
なお、ステップＳ１０２からＳ１０４は第１の実施の形態（図４）におけるステップＳ１０２からＳ１０４と同じである。
【０１３５】
その後、アドレス管理テーブル１６０を参照して、ライト要求に係るデータがキャッシュメモリ１１２に存在するか否かを判定する（Ｓ１３２）。具体的には、アドレス管理テーブル１６０はＬＵＮ及びＬＢＡをキーとするハッシュテーブルであり、ＬＵＮ及びＬＢＡによって一意にエントリが確定する。このエントリにはセグメント管理テーブルが記載されているので、キャッシュヒットチェック対象のＬＵＮ及びＬＢＡと、ディスクキャッシュセグメント管理テーブル１７０によって管理されているＬＵＮ及びＬＢＡとが同じか否か判定する。
【０１３６】
その結果、キャッシュヒットチェック対象のＬＵＮ及びＬＢＡが、ディスクキャッシュセグメント管理テーブル１７０によって管理されているＬＵＮ及びＬＢＡと同じであれば、ライト要求に係るデータがキャッシュメモリ１１２に存在するので、ライト要求に係るデータをキャッシュメモリ１１２に格納して（Ｓ１３８）、ホストＩ／Ｏ処理を終了する。一方、キャッシュヒットチェック対象のＬＵＮ及びＬＢＡが、ディスクキャッシュセグメント管理テーブル１７０によって管理されているＬＵＮ及びＬＢＡと異なれば、ライト要求に含まれる論理ユニット番号及びＬＢＡのデータがキャッシュメモリ１１２に存在しないので、ステップＳ１３３に進む。
【０１３７】
ステップＳ１３３では、ディスクキャッシュセグメント管理テーブル１７０を参照して、ライト要求に係るデータがディスクキャッシュ１２３に存在するか否かを判定する（Ｓ１３３）。具体的には、管理テーブル１７０から論理ユニット番号１７８及びターゲットＬＢＡ１７７が同一である情報があるかを検索する。
【０１３８】
その結果、ライト要求含まれる論理ユニット番号及びＬＢＡのデータがディスクキャッシュセグメント管理テーブル１７０に存在すれば、ライト要求に係るデータがディスクキャッシュ１２３に存在するので、ライト要求に係るデータをディスクキャッシュ１２３に格納して（Ｓ１３９）、ホストＩ／Ｏ処理を終了する。一方、ライト要求に含まれる論理ユニット番号及びＬＢＡのデータがディスクキャッシュセグメント管理テーブル１７０に存在しなければ、ライト要求に係るデータがディスクキャッシュ１２３に存在しないので、ステップＳ１３４に進む。
【０１３９】
ステップＳ１３４では、ディスクキャッシュキャッシュセグメント管理テーブル１７０を参照して、キャッシュメモリ１１２に空エントリが存在するか否かを判定する（Ｓ１３４）。具体的には、ディスクキャッシュキャッシュセグメント管理テーブル１７０にフリーセグメントが存在するか否かを判定する。
【０１４０】
ディスクキャッシュキャッシュセグメント管理テーブル１７０にはディスクキャッシュ１２３に格納されている全てのセグメントのリストを管理している。セグメントは、使用されていないフリーセグメント、ダーティーセグメント及びクリーンセグメントに分類される。そして、各種類のセグメントは異なるキューによって管理される。
【０１４１】
ダーティーセグメントは、最新データがディスクキャッシュにしか格納されていない（キャッシュに格納されているデータは通常ドライブ１２１に書き込まれていない）セグメントである。ダーティーセグメントは、通常ドライブ１２１に格納されているデータとディスクキャッシュに格納されているデータとが同一であるセグメントである。例えば、ディスクキャッシュに格納されているデータが、既に通常ドライブ１２１に書き込まれている場合や、通常ドライブ１２１から読み出したデータが格納されている場合である。
【０１４２】
その結果、フリーセグメントが存在すれば、キャッシュメモリ１１２に空エントリが存在するので、ライト要求に係るデータをキャッシュメモリ１１２に格納して（Ｓ１４０）、ホストＩ／Ｏ処理を終了する。一方、フリーセグメントが存在しなければ、キャッシュメモリ１１２に空エントリが存在しなければ、ステップＳ１３５に進む。
【０１４３】
その後、ディスクキャッシュセグメント管理テーブルを参照して、ディスクキャッシュ１２３のにデータを書き込む領域（セグメント）を確保し（Ｓ１３５）、確保したセグメントの情報をディスクキャッシュセグメント管理テーブル１７０に登録する（Ｓ１３６）。具体的には、ディスクキャッシュセグメント管理テーブル１７０に存在するフリーセグメントから必要なセグメントを確保して、ディスクキャッシュセグメント管理テーブル１７０に登録する。
【０１４４】
その後、ライト要求に係るデータをディスクキャッシュ１２３の当該セグメントに格納する（Ｓ１３７）。
【０１４５】
図１１は、第３の実施の形態のディスクアレイ装置１００のキャッシュメモリ１１２から通常ドライブ１２１への移動処理のフローチャートである。このデータの移動処理は、キャッシュメモリ１１２に格納されたダーティーデータの量が所定の閾値を超えたらディスクアレイ制御装置１１０のＭＰＵ１１１によって実行され、キャッシュメモリ１１２に格納されたデータを通常ドライブに移動する。例えば、この閾値は、キャッシュメモリ１１２の全記憶容量の５０％に設定する。
【０１４６】
まず、キャッシュメモリ制御テーブル１４０を参照して、移動すべきデータがキャッシュメモリ１１２に存在するか否かを判定する（Ｓ１５１）。具体的には、先頭ポインタ１４３がＮＵＬＬであるかによって、セグメントポインタ１４４が存在するか否かを判定する。
【０１４７】
その結果、先頭ポインタ１４３がＮＵＬＬであれば、セグメントポインタ１４４は存在せず、移動すべきデータがキャッシュメモリ１１２に存在しないので、この移動処理を終了する。一方、先頭ポインタ１４３がＮＵＬＬでなければ、セグメントポインタ１４４が存在し、移動すべきデータがキャッシュメモリ１１２に存在するので、ステップＳ１５２に進む。
【０１４８】
その後、データの移動が終了していないＲＡＩＤグループの番号をＲＧＮに設定する。そして、データの移動が終了していないＲＡＩＤグループを構成するディスクドライブを起動する（Ｓ１５２）。その後、ＲＧＮに対応するＲＡＩＤグループ番号リスト１４１を取得する（Ｓ１５３）。
【０１４９】
そして、ＲＡＩＤグループ番号リスト１４１を参照して、先頭ポインタ１３３が指す最初のエントリをＥｎｔｒｙに設定する（Ｓ１５４）。
【０１５０】
次に、Ｅｎｔｒｙのデータを参照し、Ｅｎｔｒｙが指すデータを通常ドライブ１２１に移動する（Ｓ１５５）。その後、次のエントリをＥｎｔｒｙに設定する（Ｓ１５６）。
【０１５１】
そして、ＥｎｔｒｙがＮＵＬＬであるか否かを判定する（Ｓ１５７）。
【０１５２】
その結果、ＥｎｔｒｙがＮＵＬＬでなければ、次のエントリが存在するので、ステップＳ１５５に戻り、次のエントリについてデータを移動する。
【０１５３】
一方、ＥｎｔｒｙがＮＵＬＬであれば、次のエントリは存在しないので、当該ＲＡＩＤグループのデータの移動処理は終了したと判定し、当該ＲＡＩＤグループを構成するディスクドライブを停止して、ステップＳ１５１に戻る（Ｓ１５８）。そして、未移動のＲＡＩＤグループが存在するか否かを判定する。
【０１５４】
図１２は、第３の実施の形態のディスクアレイ装置１００のディスクキャッシュ１２３から通常ドライブ１２１への移動処理のフローチャートである。このデータの移動処理は、ディスクキャッシュ１２３に格納されたダーティーデータの量が所定の閾値を超えたらディスクアレイ制御装置１１０のＭＰＵ１１１によって実行され、キャッシュメモリ１１２に格納されたデータを通常ドライブに移動する。例えば、この閾値は、キャッシュメモリ１１２の全記憶容量の５０％に設定する。
【０１５５】
まず、ディスクキャッシュ制御テーブル１５０を参照して、移動すべき移動すべきデータがディスクキャッシュ１２３に存在するか否かを判定する（Ｓ１６１）。具体的には、先頭ポインタ１５３がＮＵＬＬであるかによって、セグメントポインタ１５４が存在するか否かを判定する。
【０１５６】
その結果、先頭ポインタ１５３がＮＵＬＬであれば、移動すべきデータがディスクキャッシュ１２３に存在しないので、この移動処理を終了する。一方、先頭ポインタ１５３がＮＵＬＬでなければ、移動すべきデータがディスクキャッシュ１２３に存在するので、ステップＳ１６２に進む。
【０１５７】
その後、データの移動が終了していないＲＡＩＤグループの番号をＲＧＮに設定する。そして、データの移動が終了していないＲＡＩＤグループを構成するディスクドライブを起動する（Ｓ１６２）。その後、ＲＧＮに対応するＲＡＩＤグループ番号リスト１５１を取得する（Ｓ１６３）。
【０１５８】
そして、ＲＡＩＤグループ番号リスト１５１を参照して、先頭ポインタ１３３が指す最初のエントリをＥｎｔｒｙに設定する（Ｓ１６４）。
【０１５９】
次に、Ｅｎｔｒｙが指すディスクキャッシュセグメント管理テーブルのディスクセグメントから、データマップに指定されている部分のデータをキャッシュメモリ１１２にコピーする（Ｓ１６５）。その後、コピーされたデータをディスクキャッシュセグメント管理テーブルに登録されているターゲットＬＢＡ及び論理ユニット番号によって指定される通常ドライブにデータを移動する（Ｓ１６６）。
【０１６０】
その後、次のエントリをＥｎｔｒｙに設定する（Ｓ１６７）。
【０１６１】
そして、ＥｎｔｒｙがＮＵＬＬであるか否かを判定する（Ｓ１６８）。
【０１６２】
その結果、ＥｎｔｒｙがＮＵＬＬでなければ、次のエントリが存在するので、ステップＳ１６５に戻り、次のエントリについてデータを移動する。
【０１６３】
一方、ＥｎｔｒｙがＮＵＬＬであれば、次のエントリは存在しないので、当該ＲＡＩＤグループのデータの移動処理は終了したと判定し、当該ＲＡＩＤグループを構成するディスクドライブを停止して、ステップＳ１６１に戻る（Ｓ１６９）。そして、未移動のＲＡＩＤグループが存在するか否かを判定する。
【０１６４】
以上説明したように、本発明の第３の実施の形態では、キャッシュメモリ１１２に格納されたデータを通常ディスク１２１のＲＡＩＤグループ毎に選択して、データをディスク１２１に移動する。また、常時動作するディスクキャッシュ１２３を備え、ディスクキャッシュ１２３に格納されたデータを通常ディスク１２１のＲＡＩＤグループ毎に選択して、データをディスク１２１に移動する。よって、ディスクキャッシュ１２３は大容量のキャッシュと考えることができる。通常の半導体メモリによるキャッシュのみだと、キャッシュの容量が少ないので、キャッシュから通常ディスク１２１へ頻繁にデータを書き込まなければならず、通常ディスク１２１へのアクセスが頻繁に生じる。しかし、第３の実施の形態では、大容量のディスクキャッシュ１２３を備えるので、通常ディスク１２１へのアクセス頻度を低減することができ、通常ディスク１２１のＲＡＩＤグループを選択的に起動することによって消費電力を低減する本発明の効果を十分に奏することができる。
【０１６５】
すなわち、第３の実施の形態では、大量のデータを格納することができるディスクキャッシュ１２３を用いることによって、ディスクキャッシュ１２３に十分にデータが溜まった段階で、停止している通常ドライブ１２１を選択的に起動するので、通常ドライブ１２１の消費電力をより低減することができる。
【図面の簡単な説明】
【０１６６】
【図１】第１の実施の形態の計算機システムの構成図である。
【図２】第１の実施の形態のディスクアレイ装置のディスクドライブの構成図である。
【図３】第１の実施の形態のログ制御テーブルの構成図である。
【図４】第１の実施の形態のホストＩ／Ｏ受信処理のフローチャートである。
【図５】第１の実施の形態ののログドライブから通常ドライブへの移動処理のフローチャートである。
【図６】第２の実施の形態のディスクアレイ装置のディスクドライブの構成図である。
【図７】第２の実施の形態のログ制御テーブルの構成図である。
【図８】第３の実施の形態のディスクアレイ装置１００のキャッシュメモリ１１２及びディスクドライブ１２０の構成図である。
【図９】第３の実施の形態のディスクキャッシュセグメント管理テーブル１７０の構成図である
【図１０】第３の実施の形態のディスクアレイ装置１００のホストＩ／Ｏ受信処理のフローチャートである。
【図１１】第３の実施の形態のディスクアレイ装置１００のディスクキャッシュ１２３から通常ドライブ１２１への移動処理のフローチャートである。
【図１２】第３の実施の形態のディスクアレイ装置１００のキャッシュメモリ１１２から通常ドライブ１２１への移動処理のフローチャートである。
【符号の説明】
【０１６７】
１００  ディスクアレイ装置
２００  ホスト計算機
３００  クライアント端末
１１０  ディスクアレイ制御装置
１１１  ＭＰＵ
１１２  キャッシュメモリ
１２０  ディスクドライブ
１２１  通常ドライブ
１２２  ログドライブ
１２３  ディスクキャッシュ
１３０  ログ制御テーブル
１４０  キャッシュメモリ制御テーブル
１５０  ディスクキャッシュ制御テーブル
１７０  ディスクキャッシュセグメント管理テーブル
【図１】
2007156597.tif 000003
【図２】
2007156597.tif 000004
【図４】
2007156597.tif 000005
【図５】
2007156597.tif 000006
【図６】
2007156597.tif 000007
【図８】
2007156597.tif 000008
【図９】
2007156597.tif 000009
【図１０】
2007156597.tif 000010
【図１１】
2007156597.tif 000011
【図１２】
2007156597.tif 000012
【図３】
2007156597.tif 000013
【図７】
2007156597.tif 000014