(57)【要約】【課題】ディスクアレイのデータの保全性を維持しながら、ディスクアレイ全体のデータ書き込みに要する時間を短縮できるようにする。【解決手段】ディスクアレイ１０は、それぞれライトキャッシュメモリ１１０ａ乃至１１３ａを有するＨＤＤ１１０乃至１１３から構成される。ＨＤＤ１１０及び１１１はホスト３０から要求されたデータを格納し、ＨＤＤ１１２及び１１３はホスト３０から要求されたデータの冗長データを格納するのに用いられる。アレイコントローラ２０のＷＣ制御部２２は、ディスクアレイ１０のＨＤＤ１１０乃至１１３のうち、冗長データを格納するのに用いられるＨＤＤ１１２及び１１３のみをライトバックモードに設定する。これにより、ＨＤＤ１１２及び１１３へのデータ（冗長データ）書き込みは、当該ＨＤＤ１１２及び１１３のライトキャッシュメモリに冗長データが書き込まれた段階で完了する。【選択図】図１
2006277042.tif 000002
【特許請求の範囲】
【請求項１】
ディスク媒体に書き込むべきライトデータを一時格納するためのライトキャッシュメモリを有する複数のディスクドライブから構成される冗長性を持つ少なくとも１つのディスクアレイを制御するアレイコントローラにおいて、
データ及び当該データの冗長データを前記ディスクアレイの前記複数のディスクドライブに分散して書き込むための制御を行うライト制御手段と、
前記複数のディスクドライブのうち前記冗長データが書き込まれるディスクドライブのみ、前記ライトキャッシュメモリにデータが書き込まれた段階で当該ドライブへの書き込みを完了させるためのライトバックモードに設定するライトキャッシュ制御手段と
を具備することを特徴とするアレイコントローラ。
【請求項２】
前記少なくとも１つのディスクアレイをホストからの書き込み要求で要求されたデータ及び当該データの冗長データが書き込まれるマスタ側ディスクアレイとして、当該マスタ側ディスクアレイのデータを読み出して、ライトキャッシュメモリを有する複数のディスクドライブから構成される冗長性を持つバックアップ側ディスクアレイにコピーするための制御を行うコピー制御手段を更に具備し、
前記ライトキャッシュ制御手段は、前記バックアップ側ディスクアレイの前記複数のディスクドライブの全てを前記ライトバックモードに設定する
ことを特徴とする請求項１記載のアレイコントローラ。
【請求項３】
前記コピー制御手段によって前記マスタ側ディスクアレイから読み出されたデータを一時格納するためのキャッシュメモリを更に具備し、
前記コピー制御手段は、前記バックアップ側ディスクアレイに１回で書き込むことができるデータの最大サイズである１ライトサイズよりも大きいサイズで前記マスタ側ディスクアレイのデータを前記キャッシュメモリに読み込み、当該キャッシュメモリに読み込まれたデータを複数回に分けて前記バックアップ側ディスクアレイにコピーする
ことを特徴とする請求項２記載のアレイコントローラ。
【請求項４】
前記キャッシュメモリは電源の遮断時に当該メモリに格納されているデータが消失しないように構成されており、
前記コピー制御手段は、前記マスタ側ディスクアレイから前記キャッシュメモリに読み込まれたデータを、当該データが前記バックアップ側ディスクアレイの前記複数のディスクドライブの前記ライトキャッシュメモリから当該ディスクドライブのディスク媒体に実際に書き込まれると予測される時間を待ってクリアする
ことを特徴とする請求項３記載のアレイコントローラ。
【請求項５】
前記コピー制御手段が前記時間を待っている期間に電源遮断が発生し、その後電源が復旧した場合、前記キャッシュメモリを利用して、前記バックアップ側ディスクアレイの前記複数のディスクドライブのデータを復元させるデータ復元手段を更に具備することを特徴とする請求項４記載のアレイコントローラ。
【請求項６】
前記キャッシュメモリは電源の遮断時に当該メモリに格納されているデータが消失しないように構成されており、
前記コピー制御手段は、前記マスタ側ディスクアレイから読み出されたデータと当該データのアドレスとを、一定サイズのデータブロック単位に前記キャッシュメモリに格納し、前記キャッシュメモリに格納されたデータを前記バックアップ側ディスクアレイの前記複数のディスクドライブに前記ライトバックモードで書き込んだ後に当該データを前記キャッシュメモリからクリアし、当該データのアドレスのみ前記予測される時間を待ってクリアする
ことを特徴とする請求項３記載のアレイコントローラ。
【請求項７】
前記コピー制御手段が前記時間を待っている期間に電源遮断が発生し、その後電源が復旧した場合、前記キャッシュメモリに格納されているアドレスを利用して前記マスタ側ディスクアレイ及び前記バックアップ側ディスクアレイからデータを読み出して比較し、両データが一致していない場合、前記マスタ側ディスクアレイから読み出されたデータで前記バックアップ側ディスクアレイのデータを復元するデータ復元手段を更に具備することを特徴とする請求項６記載のアレイコントローラ。
【請求項８】
ディスク媒体に書き込むべきライトデータを一時格納するためのライトキャッシュメモリを有する複数のディスクドライブから構成される冗長性を持つ少なくとも１つのディスクアレイを制御するディスクアレイ制御方法において、
データ及び当該データの冗長データを前記ディスクアレイの前記複数のディスクドライブに分散して書き込むための制御を行うステップと、
前記複数のディスクドライブのうち前記冗長データが書き込まれるディスクドライブのみ、前記ライトキャッシュメモリにデータが書き込まれた段階で当該ドライブへの書き込みを完了させるためのライトバックモードに設定するステップと
を具備することを特徴とするディスクアレイ制御方法。
【請求項９】
ディスク媒体に書き込むべきライトデータを一時格納するためのライトキャッシュメモリを有する複数のディスクドライブから構成される冗長性を持つ少なくとも１つのディスクアレイを制御するアレイコントローラに実行させるためのプログラムであって、
前記アレイコントローラに、
データ及び当該データの冗長データを前記ディスクアレイの前記複数のディスクドライブに分散して書き込むための制御を行うステップと、
前記複数のディスクドライブのうち前記冗長データが書き込まれるディスクドライブのみ、前記ライトキャッシュメモリにデータが書き込まれた段階で当該ドライブへの書き込みを完了させるためのライトバックモードに設定するステップと
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ライトキャッシュメモリを有する複数のディスクドライブから構成される冗長性を持つ少なくとも１つのディスクアレイを制御するのに好適な、アレイコントローラ、ディスクアレイ制御方法及びプログラムに関する。
【背景技術】
【０００２】
近年のディスクドライブ、例えばハードディスクドライブ（ＨＤＤ）は、ディスクへのアクセスを制御するコントローラ（ディスクコントローラ）内にキャッシュ（ライトキャッシュメモリ）を有しているのが一般的である（例えば、特許文献１参照）。このキャッシュは、ライトバックモード及びライトスルーモードの中から選択されたモードで用いられる。ライトバックモードとは、ホストシステム（ホストコンピュータ）からＨＤＤのコントローラにデータの書き込みが要求されたときに、当該コントローラが要求されたデータをキャッシュに書き込んだ時点でホストシステムに書き込み完了を通知するモードである。これに対してライトスルーモードとは、要求されたデータをキャッシュに書き込むと共にディスク（ディスク媒体）にも書き込むモードである。ライトスルーモードでは、要求されたデータがディスクに書き込まれた時点で、書き込みが完了する。このため、キャッシュをライトバックモードで使用することにより、ディスクへの書き込みを高速化することができる。キャッシュをライトバックモードで使用することを、ライトバックキャッシュをオンすると呼ぶこともある。
【０００３】
一方、冗長データを持つことによりデータの信頼性を向上させる技術として、複数のディスクドライブ（ＨＤＤ）を用いて構成される冗長性を持つディスクアレイ（冗長化ディスクアレイ）、つまりＲＡＩＤ（Redundant Array of Inexpensive Disks、またはRedundant Array of Independent Disks）が知られている。ＲＡＩＤには幾つかのレベル（ＲＡＩＤレベル）が定義されており、ＲＡＩＤ１（ミラーリング）やＲＡＩＤ５（パリティ付きストライピング）などが知られている。いずれも複数のＨＤＤを用いて構成される冗長化ディスクアレイにデータ及び冗長データを配置することにより、いずれか１台のＨＤＤに障害が発生してもデータの復元を可能にする技術である。
【０００４】
ＲＡＩＤ１レベルで使用されるディスクアレイを構成する複数のＨＤＤは、マスタＨＤＤとスレーブＨＤＤとに分けられる。マスタＨＤＤとスレーブＨＤＤとには同一データが書き込まれる。また、ＲＡＩＤ５レベルで使用されるディスクアレイを構成する複数（３台以上の）のＨＤＤは、いずれもデータ並びにパリティデータ（冗長データ）の格納用に用いられ、パリティデータは各ＨＤＤに分散して格納される。
【０００５】
また最近は、ＨＤＤのコストが下がってきたこともあって、データストレージ装置のより一層の信頼性向上のために、当該ストレージ装置が２組のディスクアレイ（論理ユニット）で構成される場合も多くなってきている。ここでは、２組のディスクアレイの一方がマスタディスクアレイ（マスタ論理ユニット）として、他方がバックアップディスクアレイ（バックアップ論理ユニット）としてそれぞれ定義され、マスタディスクアレイに書き込まれたデータがバックアップディスクアレイにコピーされる。
【特許文献１】特開２００３−２６３２７６号公報（段落００１４）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ディスクアレイ内の各ＨＤＤ（ディスクドライブ）へのデータ書き込みに要する時間は主として、
・ＨＤＤ内のヘッドシーク時間
・回転待ち時間
・ＨＤＤのコントローラにおけるデータ処理時間
・ディスクへのデータ転送時間
で決まる。
【０００７】
これらの時間のうち、シーク時間と回転待ち時間とは、ＨＤＤ間でばらつくため、結果的にＨＤＤ間の処理完了時間の差として表れる。この処理完了時間の差は、ディスクアレイ全体における処理完了までの遅延を招く。
【０００８】
最近、ＨＤＤのディスクへのデータ書き込み時間は、高速化している。仮にディスクへの転送速度を５０ＭＢ／ｓと仮定すると、６４ｋＢのデータの書き込み時間は、１．２８ｍｓとなる。これに対して、ＨＤＤの平均シーク時間は４〜５ｍｓ、平均回転待ち時間は３ｍｓ程度（ＨＤＤの回転速度が１０，０００ｒｐｍクラス）である。このため、ディスクアレイを構成する各ＨＤＤへのアクセスを高速化するためには、当該ＨＤＤのヘッドシーク時間及び回転待ち時間を短くして、ＨＤＤの処理完了時間を短縮すると共にＨＤＤ間の処理完了時間のばらつきを少なくする必要がある。
【０００９】
そこで、各ＨＤＤに実装されているキャッシュ（ライトキャッシュメモリ）をライトバックモードで使用することにより、つまりライトバックキャッシュをＯＮすることにより、上記シーク時間、回転待ち時間、及びＨＤＤ間の処理完了時間のばらつきの影響を回避して、ディスクアレイ全体に対するデータ書き込み時間を短縮することが考えられる。
【００１０】
しかしながら、ＨＤＤへのデータ書き込みは当該ＨＤＤのキャッシュにデータが書き込まれた時点で完了となる。このため、ＨＤＤのディスクへのデータ書き込みが完了する前に電源遮断が発生した場合には、データがＨＤＤへ書き込めていない状態が発生してデータが消失するおそれがある。そこで従来は、このようなデータ消失を招かないように、つまりデータの保全性を確保するために、ディスクアレイを構成するＨＤＤを全てライトスルーモードで使用するのが一般的である。
【００１１】
本発明は上記事情を考慮してなされたものでその目的は、ディスクアレイのデータの冗長性を利用することで、当該ディスクアレイのデータの保全性を維持しながら、ディスクアレイ全体のデータ書き込みに要する時間を短縮することができるアレイコントローラ、ディスクアレイ制御方法及びプログラムを提供することにある。
【課題を解決するための手段】
【００１２】
本発明の１つの観点によれば、ディスク媒体に書き込むべきライトデータを一時格納するためのライトキャッシュメモリを有する複数のディスクドライブから構成される冗長性を持つ少なくとも１つのディスクアレイを制御するアレイコントローラが提供される。このアレイコントローラは、データ及び当該データの冗長データを上記ディスクアレイの上記複数のディスクドライブに分散して書き込むための制御を行うライト制御手段と、上記複数のディスクドライブのうち冗長データが書き込まれるディスクドライブのみ、上記ライトキャッシュメモリにデータが書き込まれた段階で当該ドライブへの書き込みを完了させるためのライトバックモードに設定するライトキャッシュ制御手段とから構成される。
【００１３】
このような構成のアレイコントローラにおいては、冗長データが書き込まれるディスクドライブのライトキャッシュメモリのみがライトバックモードで用いられる。つまり、冗長データが書き込まれるディスクドライブでは、冗長データがライトキャッシュメモリに書き込まれた段階で、当該ディスクドライブへの書き込みが完了する。このため、ディスクアレイ全体のデータ書き込み完了時刻は、他のディスクドライブ、つまり非ライトバックモード（ライトスルーモード）でデータが書き込まれる他のディスクドライブにおけるデータ書き込み完了時刻のみに依存する。したがって、ディスクアレイ全体のデータ書き込み完了時刻が、ディスクアレイを構成する全てのディスクドライブにおけるデータ書き込み完了時刻に依存する従来技術に比べて、ディスクアレイ全体のデータ書き込みに要する時間を短縮することが可能となる。ここで、冗長データが書き込まれるディスクドライブでは、冗長データが当該ディスクドライブのライトキャッシュメモリに書き込まれた後、当該ライトキャッシュメモリに書き込まれた冗長データが実際に当該ディスクドライブのディスク媒体に書き込まれるまでの期間に電源遮断が発生した場合、当該ライトキャッシュメモリに書き込まれた冗長データが消失するおそれがある。しかし、この冗長データは、上記ディスクアレイを構成する他のディスクドライブのデータから復元することができる。なお、冗長データが書き込まれるディスクドライブが予め定められるＲＡＩＤ１、或いはＲＡＩＤ３等を適用するディスクアレイの制御では、上記ライトキャッシュ制御手段によるライトバックモードへの設定は、システム立ち上げ時などにおいて予め行うことが可能となる。これに対し、冗長データが書き込まれるディスクドライブが変更されるＲＡＩＤ５等を適用するディスクアレイの制御では、冗長データの書き込みが発生する都度、当該冗長データの書き込み先のディスクドライブを確認して、当該ディスクドライブのみライトバックモードに設定されるようにすると良い。
【００１４】
また、上記少なくとも１つのディスクアレイをホストからの書き込み要求で要求されたデータ及び当該データの冗長データが書き込まれるマスタ側ディスクアレイとして、当該マスタ側ディスクアレイのデータを読み出して、ライトキャッシュメモリを有する複数のディスクドライブから構成される冗長性を持つバックアップ側ディスクアレイにコピーするための制御を行うコピー制御手段を追加し、このバックアップ側ディスクアレイの上記複数のディスクドライブの全てが上記ライトバックモードに設定される構成とすると良い。
【００１５】
このような構成においては、マスタ側ディスクアレイのデータをバックアップ側ディスクアレイにコピーする処理に要する時間を短縮することが可能となる。ここでは、マスタ側ディスクアレイから読み出されたデータがバックアップ側ディスクアレイの各ディスクドライブのライトキャッシュメモリに書き込まれた後、当該ライトキャッシュメモリに書き込まれたデータが実際に当該ディスクドライブのディスク媒体に書き込まれる前に電源遮断が発生した場合、当該ライトキャッシュメモリに書き込まれたデータが消失するおそれがある。しかし、このデータは、マスタ側ディスクアレイのデータを利用して復元することが可能である。
【００１６】
また、コピー制御手段によってマスタ側ディスクアレイから読み出されたデータを一時格納するためのキャッシュメモリを追加して、バックアップ側ディスクアレイに１回で書き込むことができるデータの最大サイズである１ライトサイズよりも大きいサイズでマスタ側ディスクアレイのデータを上記コピー制御手段がキャッシュメモリに読み込み、当該キャッシュメモリに読み込まれたデータを当該コピー制御手段が複数回に分けてバックアップ側ディスクアレイにコピーする構成とすると良い。
【００１７】
このようにすると、キャッシュメモリに読み込まれたデータがバックアップ側ディスクアレイにコピーされる期間を利用して、ホストから要求されたマスタ側ディスクアレイへのデータ書き込みまたはマスタ側ディスクアレイからのデータ読み出し、更にはマスタ側ディスクアレイからの次にコピーすべきデータの読み出しが効率的に実行できる。換言すれば、ホストから要求されたマスタ側ディスクアレイへのデータ書き込みまたはマスタ側ディスクアレイからのデータ読み出し、更にはマスタ側ディスクアレイからの次にコピーすべきデータの読み出しの期間を利用して、キャッシュメモリに読み込まれたデータをバックアップ側ディスクアレイに効率的にコピーすることが可能となる。
【００１８】
また、上記キャッシュメモリを電源の遮断時にも当該メモリに格納されているデータを保持可能な構成とすると共に、当該キャッシュメモリを有効に利用するために、マスタ側ディスクアレイからキャッシュメモリに読み込まれたデータが、当該データがバックアップ側ディスクアレイの複数のディスクドライブのライトキャッシュメモリから当該ディスクドライブのディスク媒体に実際に書き込まれると予測される時間を待ってコピー制御手段によってクリアされる構成とすると良い。このようにすると、コピー制御手段が上記時間を待っている期間に電源遮断が発生しても、その後電源が復旧した場合に、上記キャッシュメモリを利用して、バックアップ側ディスクアレイの複数のディスクドライブのデータを復元させることが可能となる。
【００１９】
また、マスタ側ディスクアレイから読み出されたデータと当該データのアドレスとが、一定サイズのデータブロック単位にキャッシュメモリに格納される構成とし、キャッシュメモリに格納されたデータをバックアップ側ディスクアレイの複数のディスクドライブに上記ライトバックモードで書き込んだ後に当該データをキャッシュメモリからクリアし、当該データのアドレスのみ上記予測される時間を待ってクリアするならば、キャッシュメモリの領域をより有効に利用できる。しかも、コピー制御手段が上記時間を待っている期間に電源遮断が発生しても、その後電源が復旧した場合に、キャッシュメモリに格納されているアドレスを利用してマスタ側ディスクアレイ及びバックアップ側ディスクアレイからデータを読み出して比較するならば、両データが一致していない場合、マスタ側ディスクアレイから読み出されたデータでバックアップ側ディスクアレイのデータを復元させることが可能となる。
【発明の効果】
【００２０】
本発明によれば、ディスクアレイ内で冗長データが書き込まれるディスクドライブのライトキャッシュメモリのみをライトバックモードで用いることにより、当該ディスクアレイのデータの保全性を維持しながら、当該ディスクアレイ全体のデータ書き込みに要する時間を短縮することができる。
【発明を実施するための最良の形態】
【００２１】
以下、本発明の実施の形態につき図面を参照して説明する。  
［第１の実施形態］
図１は本発明の第１の実施形態に係るコンピュータシステムの構成を示すブロック図である。図１のコンピュータシステムは、ディスクアレイ１０と、このディスクアレイ１０を制御するアレイコントローラ（ディスクアレイコントローラ）２０と、各種アプリケーションを実行するホスト（ホストコンピュータ）３０とから構成される。ホスト３０は、ディスクアレイ１０を外部記憶装置として用いる。
【００２２】
ディスクアレイ１０は、複数のディスクドライブ、例えば４台のＨＤＤ（磁気ディスクドライブ）１１０（＃０），１１１（＃１），１１２（＃３），１１３（＃４）から構成磁気ディスクドライブされるＲＡＩＤである。ここでは、ディスクアレイ１０は、ＲＡＩＤ１レベルのディスクアレイ、いわゆるミラーリングディスクアレイとして用いられる。ディスクアレイ１０は、ＲＡＩＤ１マスタ１１ＭとＲＡＩＤ１スレーブ１１Ｓとから構成される。ＲＡＩＤ１マスタ１１Ｍは、ホスト３０から要求されたデータを書き込むのに用いられる。ＲＡＩＤ１スレーブ１１Ｓは、ホスト３０から要求されたデータと同一のデータを冗長データ（ミラーデータ）として書き込むのに用いられる。つまりＲＡＩＤ１スレーブ１１Ｓは、ＲＡＩＤ１マスタ１１Ｍの複製を格納するのに用いられる。図１の例では、ＲＡＩＤ１マスタ１１ＭはＨＤＤ１１０（＃０），１１１（＃１）から構成され、ＲＡＩＤ１スレーブ１１ＳはＨＤＤ１１２（＃２），１１３（＃３）から構成される。
【００２３】
ＨＤＤ＃０乃至＃３は、それぞれ当該ＨＤＤ＃０乃至＃３のディスク（ディスク媒体）に書き込むべきデータを一時格納するためのライトキャッシュメモリ（ＷＣ）１１０ａ乃至１１３ａを有する。
【００２４】
アレイコントローラ２０は、ライト制御部２１とＷＣ制御部（ライトキャッシュ制御部
）２２とを含む。ライト制御部２１は、ホスト３０からの書き込み要求を受けて、要求されたデータ（要求データ）をＲＡＩＤ１マスタ１１Ｍに書き込むと共に、当該要求データに対応する冗長データ（ここでは、要求データと同一の冗長データ）をＲＡＩＤ１スレーブ１１Ｓに書き込むための制御を行う。ＷＣ制御部２２は、ＨＤＤ＃０乃至＃３が有するライトキャッシュメモリ１１０ａ乃至１１３ａの各々をライトバックモードで使用するか、或いはライトスルーモードで使用するか、つまりライトバックキャッシュＯＮ（ＷＢＣ−ＯＮ）の状態またはライトバックキャッシュＯＦＦ（ＷＢＣ−ＯＦＦ）の状態のいずれで使用するかを制御する。本実施形態において、ライト制御部２１及びＷＣ制御部２２は、アレイコントローラ２０の図示せぬマイクロプロセッサ（コンピュータ）のプログラムメモリにインストールされた制御プログラムを当該マイクロプロセッサが読み取って実行することにより実現される。このプログラムは、コンピュータで読み取り可能な記憶媒体に予め格納して頒布可能である。また、このプログラムが、ネットワークを介してダウンロード（頒布）されても構わない。
【００２５】
次に、図１のシステムにおけるアレイコントローラ２０による制御について図２及び図３を参照して説明する。図２はアレイコントローラ２０のＷＣ制御部２２によるライトキャッシュメモリの制御の手順を示すフローチャート、図３はアレイコントローラ２０のライト制御部２１による書き込み制御に応じて実行されるＨＤＤ＃０乃至＃３の動作を従来と対比して説明するためのタイミングチャートである。
【００２６】
まず、ＷＣ制御部２２は、例えばシステムの立ち上げ時に、ＲＡＩＤ１マスタ１１Ｍ側の各ＨＤＤ、即ちＨＤＤ＃０及び＃１の各々を、ライトスルーモード（ＷＢＣ−ＯＦＦ）に設定する（ステップＳ１）。またＷＣ制御部２２は、ＲＡＩＤ１スレーブ１１Ｓ側の各ＨＤＤ、即ちＨＤＤ＃２及び＃３の各々を、ライトバックモード（ＷＢＣ−ＯＮ）に設定する（ステップＳ２）。以後、ＲＡＩＤ１マスタ１１Ｍ側のＨＤＤ＃０及び＃１が有するライトキャッシュメモリ１１０ａ及び１１１ａはライトスルーモードで使用され、ＲＡＩＤ１スレーブ１１Ｓ側のＨＤＤ＃２及び＃３が有するライトキャッシュメモリ１１２ａ及び１１３ａはライトバックモードで使用される。
【００２７】
今、ホスト３０からアレイコントローラ２０に対して、ディスクアレイ１０にデータＤを書き込むことが要求されたものとする。このデータＤは例えばデータＤ１及びＤ２に分割される。このデータＤ１及びＤ２は、ＲＡＩＤ１マスタ１１ＭのそれぞれＨＤＤ＃０及び＃１に分散して書き込まれる。また、このデータＤ１及びＤ２は、ＲＡＩＤ１スレーブ１１ＳのそれぞれＨＤＤ＃２及び＃３にも書き込まれる。
【００２８】
従来は、ＲＡＩＤ１マスタ１１Ｍ及びＲＡＩＤ１スレーブ１１Ｓへのデータ書き込みは、いずれもライトスルーモードで行われている。この場合、ＲＡＩＤ１マスタ１１ＭのＨＤＤ＃０及び＃１と、ＲＡＩＤ１スレーブ１１ＳのＨＤＤ＃２及び＃３とに対するデータ書き込みに要する時間、即ちＨＤＤ＃ｉ（ｉ＝１，２，３，４）に対するデータ書き込みに要する時間は、図３（ａ）に示すように、ＨＤＤ＃ｉにおけるデータ処理時間（ハッチングが施された棒線の部分の期間）と、ＨＤＤ＃ｉにおけるヘッドシーク時間、回転待ち時間及びデータ転送時間の和（黒で塗りつぶされた棒線の部分の期間）とを加算したものとなる。
【００２９】
データ処理時間とは、アレイコントローラ２０（のライト制御部２１）からの書き込み要求をＨＤＤ＃ｉが受け取って解釈するのに要する時間である。ヘッドシーク時間とは、要求されたデータの書き込みを開始すべきディスク上の先頭トラックにヘッドを移動するのに要する時間である。また回転待ち時間とは、ヘッドが上記先頭トラックに移動された後（つまりシーク完了後）、要求されたデータの書き込みを開始すべき先頭セクタがヘッド位置に到達するまでディスクが回転する時間である。データ転送時間とは、ディスクへのデータ転送に要する時間である。
【００３０】
ここで、データ処理時間及びデータ転送時間はＨＤＤ＃ｉに殆ど依存しない。これに対して、シーク時間及び回転待ち時間はＨＤＤ＃ｉ毎に異なる。このため、図３（ａ）の例のように、ＨＤＤ＃０乃至＃３で時刻ｔ１に同時にデータ書き込み処理が開始されたとしても、データ書き込み処理が完了する時刻はＨＤＤ＃ｉ毎に異なる。
【００３１】
図３（ａ）の例では、ＲＡＩＤ１マスタ１１Ｍのデータ書き込み処理の完了時刻はＨＤＤ＃０のデータ書き込み処理の完了時刻で決まり、時刻ｔ１１である。これに対し、ＲＡＩＤ１スレーブ１１Ｓのデータ書き込み処理の完了時刻はＨＤＤ＃２のデータ書き込み処理の完了時刻で決まり、時刻ｔ１１より時間Ｔ１後の時刻ｔ１２である。つまり、ディスクアレイ１０全体では、データ書き込み処理の完了時刻はＲＡＩＤ１スレーブ１１ＳのＨＤＤ＃２のデータ書き込み処理の完了時刻で決まり、ｔ１２となる。
【００３２】
ところが本実施形態では、ＲＡＩＤ１スレーブ１１Ｓの各ＨＤＤ＃２及び＃３のライトキャッシュメモリ１１２ａ及び１１３ａは、ＲＡＩＤ１マスタ１１Ｍの各ＨＤＤ＃０及び＃１のライトキャッシュメモリ１１０ａ及び１１１ａとは異なり、ライトバックモードで使用される。このライトバックモードでは、各ＨＤＤ＃２及び＃３に書き込むべきデータ（Ｄ１及びＤ２）がライトキャッシュメモリ１１２ａ及び１１３ａに書き込まれた段階で、当該ＨＤＤ＃２及び＃３への書き込みが完了したものとして、当該ＨＤＤ＃２及び＃３からアレイコントローラ２０に書き込み完了が通知される。
【００３３】
このため本実施形態では、図３（ｂ）に示すように、図３（ａ）の場合と同様にＨＤＤ＃０乃至＃３で時刻ｔ１に同時にデータ書き込み処理が開始されたものとすると、ＲＡＩＤ１スレーブ１１ＳのＨＤＤ＃２及び＃３では、ＲＡＩＤ１マスタ１１Ｍの各ＨＤＤ＃０及び＃１と比べて、シーク時間＋回転待ち時間の分だけ早い時刻ｔ１３に書き込みが完了することになる。図３（ｂ）におけるＨＤＤ＃２及び＃３でのデータ書き込み処理に要する時間は、データ処理時間（ハッチングが施された棒線の部分の期間）と、データ転送時間（黒で塗りつぶされた棒線の部分の期間）とを加算したものとなる。この場合、ｔ１２−ｔ１３で表される時間が、ＲＡＩＤ１スレーブ１１Ｓにおいてライトバックモード（ＷＢＣ−ＯＮ）でデータ書き込みを行ったことによる効果である。但し、ＲＡＩＤ１マスタ１１Ｍでは、図３（ｂ）に示すように、時刻ｔ１１まではデータ書き込みは完了しないことから、実際に短縮される時間はｔ１２−ｔ１１＝Ｔ１である。つまり、ディスクアレイ１０全体では、データ書き込み処理の完了時刻はＲＡＩＤ１マスタ１１ＭのＨＤＤ＃０のデータ書き込み処理の完了時刻で決まり、ｔ１１となる。
【００３４】
このように本実施形態では、ＲＡＩＤ１スレーブ１１Ｓ側のＨＤＤ＃２及び＃３のライトキャッシュメモリ１１２ａ及び１１３ａは、ライトバックモードで用いられる。ライトキャッシュメモリ１１２ａ及び１１３ａに書き込まれたデータ（Ｄ１及びＤ２）は、ＨＤＤ＃２及び＃３における処理の空き時間等を利用して、当該ＨＤＤ＃２及び＃３のディスクに書き込まれる（ライトバックされる）。このため、ディスクアレイ１０全体におけるデータ書き込み処理の完了時刻ｔ１１以降、ＨＤＤ＃２及び＃３のライトキャッシュメモリ１１２ａ及び１１３ａのデータが当該ＨＤＤ＃２及び＃３のディスクに実際に書き込まれる前に電源遮断が発生すると、ライトキャッシュメモリ１１２ａ及び１１３ａのデータは消失するおそれがある。
【００３５】
しかし本実施形態では、ＲＡＩＤ１マスタ１１Ｍ側のＨＤＤ＃０及び＃１のライトキャッシュメモリ１１０ａ及び１１１ａは、ライトスルーモードで用いられる。このため、上記時刻ｔ１１の時点では、データ（Ｄ１及びＤ２）はＨＤＤ＃０及び＃１のディスクに書き込まれている。したがって、このＨＤＤ＃０及び＃１のディスクに書き込まれたデータ（Ｄ１及びＤ２）を用いて、ＲＡＩＤ１スレーブ１１Ｓ側のＨＤＤ＃２及び＃３のデータ（冗長データ）を復元できる。
【００３６】
［第２の実施形態］
図４は本発明の第２の実施形態に係るコンピュータシステムの構成を示すブロック図である。図４において、図１と同様の要素には便宜的に同一参照符号を付してある。図４のコンピュータシステムが図１のコンピュータシステムと異なるのは、ＲＡＩＤ１を適用するディスクアレイ１０に代えて、例えばＲＡＩＤ５を適用するディスクアレイ４０が用いられている点にある。ここでは、ディスクアレイ４０が３台のＨＤＤ４１（＃０），４２（＃１），４３（＃２）から構成されるものとする。ＨＤＤ４１（＃０），４２（＃１），４３（＃２）は、それぞれライトキャッシュメモリ４１ａ，４２ａ，４３ａを有する。
【００３７】
ＲＡＩＤ５では、冗長データ（パリティデータ）ＰはＨＤＤ４１（＃０），４２（＃１），４３（＃２）に分散して配置（格納）される。この点で、ＲＡＩＤ５は、冗長データ（パリティデータ）Ｐが常に特定のＨＤＤに配置されるＲＡＩＤ３と異なる。
【００３８】
今、図４のシステムにおいて、ホスト３０から要求されたデータ（要求データ）ＤをデータＤ１及びＤ２に分割して、ディスクアレイ４０に書き込むものとする。この場合、ライト制御部２１はデータＤ１及びＤ２のパリティデータＰを冗長データＰとして生成する。この冗長データＰをＨＤＤ＃０，＃１，＃２のいずれに書き込むかは、要求データＤの格納先アドレスに基づいてライト制御部２１によって決定される。このため第２の実施形態では、ＷＣ制御部２２は第１の実施形態と異なって、ＨＤＤ＃０乃至＃２が有するライトキャッシュメモリ４１ａ乃至４３ａの各々をライトバックモードで使用するか、或いはライトスルーモードで使用するかを、ライト制御部２１によるデータ書き込みの都度設定する必要がある。
【００３９】
そこで、データ書き込み時のＷＣ制御部２２によるライトキャッシュメモリの制御について、図５のフローチャートを参照して説明する。まず、ＷＣ制御部２２は、ライト制御部２１によるデータ書き込みに際し、当該ライト制御部２１に対して冗長データ（パリティデータ）Ｐの書き込み先となるＨＤＤを問い合わせる（ステップＳ１１）。するとライト制御部２１からＷＣ制御部２２に対し、冗長データ書き込み先ＨＤＤが通知される。なお、ライト制御部２１によるデータ書き込みに際し、当該ライト制御部２１からＷＣ制御部２２に対して冗長データ書き込み先ＨＤＤが自動的に通知される構成とすることも可能である。ＷＣ制御部２２は、ライト制御部２１から通知された冗長データ書き込み先ＨＤＤのみライトバックモード（ＷＢＣ−ＯＮ）に設定し、残りのＨＤＤは全てライトスルーモード（ＷＢＣ−ＯＦＦ）に設定する（ステップＳ１２）。図４のシステムの状態は、ライト制御部２１からＷＣ制御部２２に対して、ＨＤＤ＃２が冗長データＰの書き込み先ＨＤＤとして通知された結果、当該ＨＤＤ＃２がライトバックモードに設定され、残りのＨＤＤ＃０及び＃１がライトスルーモードに設定されている様子を示している。なお、ディスクアレイ４０がＲＡＩＤ３を適用するならば、このモード設定を、第１の実施形態と同様に予め（例えばシステムの立ち上げ時に）行うことが可能である。また、ライトバックモード、ライトスルーモードは、ＨＤＤへの書き込みコマンド毎に設定することもできる。
【００４０】
図４のシステムにおいて、ディスクアレイ４０全体におけるデータ書き込み処理の完了時刻以降、ＨＤＤ＃２のライトキャッシュメモリ４３ａのデータ、つまり冗長データＰが当該ＨＤＤ＃２のディスクに実際に書き込まれる前に電源遮断が発生したものとする。このとき、冗長データＰに対応するデータＤ１及びＤ２は、それぞれＨＤＤ＃０及びＨＤＤ＃１のディスクに書き込まれている。したがって、このＨＤＤ＃０及び＃１のディスクに書き込まれたデータＤ１及びＤ２を用いて、ＨＤＤ＃２のディスクに書き込むべき冗長データＰを復元できる。
【００４１】
［第３の実施形態］
図６は本発明の第３の実施形態に係るコンピュータシステムの構成を示すブロック図である。図６において、図１と同様の要素には便宜的に同一参照符号を付してある。図６のコンピュータシステムの特徴は、図１中のディスクアレイ１０に相当する２つのディスクアレイを、それぞれマスタ論理ユニット（マスタＬＵ）５０及びバックアップ論理ユニット（バックアップＬＵ）５１として有している点にある。バックアップＬＵ５１は、マスタＬＵ５０の内容を例えば定期的にバックアップするのに用いられる。マスタＬＵ５０は、図１中のＲＡＩＤ１マスタ１１Ｍ及びＲＡＩＤ１スレーブ１１Ｓに相当する、それぞれＲＡＩＤ１マスタ５００（＃０）及びＲＡＩＤ１スレーブ５０１（＃０）から構成される。同様にバックアップＬＵ５１は、ＲＡＩＤ１マスタ５１０（＃１）及びＲＡＩＤ１スレーブ５１１（＃１）から構成される。
【００４２】
また図６のコンピュータシステムでは、図１中のアレイコントローラ２０に代えてアレイコントローラ２００が用いられる。アレイコントローラ２００は、ライト制御部２１及びＷＣ制御部２２に加えてコピー制御部２３を有している。コピー制御部２３は、マスタＬＵ５０のデータのバックアップをバックアップＬＵ５１に採取するために、マスタＬＵ５０のデータをバックアップＬＵ５１にコピーするための制御を行う。このコピー制御機能は、インボックスレプリケーション（ＩＢＲ）と呼ばれる。アレイコントローラ２０は更に、データ復元部２４、キャッシュメモリ２５及びバックアップ用バッテリ２６を有している。但し、データ復元部２４、キャッシュメモリ２５及びバックアップ用バッテリ２６は、後述する変形例で用いられるため、ここでの説明は省略する。１
次に、図６のシステムにおけるアレイコントローラ２００による制御について図７及び図８を参照して説明する。図７はアレイコントローラ２００のＷＣ制御部２２によるライトキャッシュメモリの制御の手順を示すフローチャート、図８はアレイコントローラ２０のコピー制御部２３によるコピー制御に応じて実行されるＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０並びにＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１の動作を従来と対比して説明するためのタイミングチャートである。
【００４３】
まず、ライト制御部２１は、例えばシステムの立ち上げ時に、マスタＬＵ５０に含まれているＲＡＩＤ１マスタ５００（＃０）側の各ＨＤＤを、ライトスルーモード（ＷＢＣ−ＯＦＦ）に設定する（ステップＳ２１）。またＷＣ制御部２２は、マスタＬＵ５０に含まれているＲＡＩＤ１スレーブ５０１（＃０）側の各ＨＤＤと、バックアップＬＵ５１に含まれている各ＨＤＤ、即ちＲＡＩＤ１マスタ５１０（＃１）側の各ＨＤＤ及びＲＡＩＤ１スレーブ５１１（＃１）側の各ＨＤＤを、ライトバックモード（ＷＢＣ−ＯＮ）に設定する（ステップＳ２２）。以後、ＲＡＩＤ１マスタ＃０側の各ＨＤＤが有するライトキャッシュメモリはライトスルーモードで使用され、ＲＡＩＤ１スレーブ＃０及び＃１並びにＲＡＩＤ１マスタ＃１側の各ＨＤＤが有するライトキャッシュメモリはライトバックモードで使用される。ホスト３０からの書き込み要求に対するデータの書き込みは、マスタＬＵ５０に対してのみ行われる。この場合、要求されたデータの書き込みは、第１の実施形態から理解されるように、マスタＬＵ５０に含まれているＲＡＩＤ１マスタ５００へのデータ書き込みが完了した時点で完了する。
【００４４】
今、ホスト３０からアレイコントローラ２００に対してマスタＬＵ５０のデータのバックアップが要求されたものとする。この場合、アレイコントローラ２００のコピー制御部２３は、マスタＬＵ５０のデータをバックアップＬＵ５１にコピーするデータコピー処理を実行する。このデータコピー処理は、マスタＬＵ５０に含まれているＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０の各ＨＤＤのデータを一定サイズ（ここでは、１回のライトサイズ）毎に読み出す処理と、一定サイズ（１ライトサイズ）のデータの読み出し完了後に、その読み出されたデータを、バックアップＬＵ５１に含まれているＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１の各ＨＤＤに書き込む処理とから構成される。
【００４５】
もし、バックアップＬＵ５１側のＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１の各ＨＤＤが、従来と同様にライトスルーモードに設定されている場合、一定サイズのデータの読み出し処理と書き込み処理とは、図８（ａ）に示すようなタイミングで実行される。図８（ａ）の例では、マスタＬＵ５０側のＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０（の各ＨＤＤ）からのデータ読み出し処理が時刻ｔ２０で開始されて時刻ｔ２１で完了した様子が示されている。また図８（ａ）の例では、ＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０から読み出されたデータをバックアップＬＵ５１側のＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１に書き込むデータ書き込み処理が時刻ｔ２１で開始されて時刻ｔ２２で完了した様子が示されている。図８においてハッチングが施された棒線の長さは、図３と同様にデータ処理時間を表す。また、黒で塗りつぶされた棒線の長さは、図３と同様に、ライトスルーモードではヘッドシーク時間と回転待ち時間とデータ転送時間の和を表し、ライトバックモードではデータ転送時間を表す。
【００４６】
ところが本実施形態では、バックアップＬＵ５１側のＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１の各ＨＤＤがライトバックモードに設定されている。このため、上記一定サイズのデータの読み出し処理と書き込み処理とは、図８（ｂ）に示すようなタイミングで実行される。この図８（ｂ）の例では、ＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０から読み出されたデータをバックアップＬＵ５１側のＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１に書き込むデータ書き込み処理は、図８（ａ）の場合と同様に時刻ｔ２１で開始されるものの、当該データ書き込み処理が完了する時刻は、図８（ａ）の場合より時間Ｔ２だけ短い時刻ｔ２３（ｔ２２−ｔ２３＝Ｔ２）となる。つまり、バックアップＬＵ５１側のＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１の各ＨＤＤをライトバックモードに設定することで、一定サイズのデータのコピーに要する時間を、従来よりも時間Ｔ２だけ短縮することができる。
【００４７】
［第１の変形例］
次に、上記第３の実施形態の第１の変形例について説明する。この第１の変形例では、マスタＬＵ５０のデータをバックアップＬＵ５１にバックアップ（コピー）する処理の期間にホスト３０からデータの書き込み／読み出しが要求された場合に、その要求されたデータ書き込み／読み出しが実行されることを前提としている。第１の変形例の特徴は、この要求されたデータ書き込み／読み出しがマスタＬＵ５０（側のＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０）のみを対象に行われることに着目し、その期間もバックアップＬＵ５１側でのデータコピーのためのデータ書き込みが有効に行われるようにした点にある。
【００４８】
以下、上記第３の実施形態の第１の変形例について図９及び図１０を参照して説明する。図９はアレイコントローラ２００のコピー制御部２３によるコピー制御の手順を示すフローチャート、図１０はアレイコントローラ２０のコピー制御部２３によるコピー制御に応じて実行されるＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０でのデータ読み出し処理並びにＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１でのデータ書き込み処理と、ライト制御部２１による制御に応じて実行されるＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０でのデータ書き込み処理とを従来と対比して説明するためのタイミングチャートである。なお、図１０の例では、ライト制御部２１による制御に応じて実行されるＲＡＩＤ１スレーブ＃０でのデータ書き込み処理は、ＲＡＩＤ１マスタ＃０でのデータ書き込み処理（従来のデータ書き込み処理）と同様にライトスルーモードで行われるものとする。
【００４９】
一般にアレイコントローラ２０は、図６に示すようにキャッシュメモリ２５を有している。ここでは、キャッシュメモリ２５のサイズは、バックアップＬＵ５１（側のＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１）に１回のライト動作でデータを書き込むことができる最大のサイズ（１回のライトサイズ）より十分大きい（例えば２倍以上）ものとする。コピー制御部２３は、マスタＬＵ５０側（のＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０）から読み出すデータ（バックアップＬＵ５１側にコピーすべきデータ）を、バックアップＬＵ５１側（のＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１）に書き込むデータのサイズ（１回のライトサイズ）より大きいサイズ（２倍以上のサイズ、例えば６倍のサイズ）でアレイコントローラ２００内に読み込み、当該アレイコントローラ２００内のキャッシュメモリ２５に一時格納する（ステップＳ３１）。キャッシュメモリ２５には、例えば一定サイズのデータブロック毎に、当該ブロックのデータだけでなく、当該ブロックのデータの書き込み先を示すアドレスが格納される。
【００５０】
コピー制御部２３は、キャッシュメモリ２５に格納されたデータを、１回のライトサイズを単位に取り出して、バックアップＬＵ５１側（のＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１）に書き込む（ステップＳ３２）。コピー制御部２３は、このステップＳ３２を、キャッシュメモリ２５に格納されている全データについて繰り返す（ステップＳ３３）。またコピー制御部２３は、上記ステップＳ３１を、マスタＬＵ５０からバックアップＬＵ５１にコピーすべき全データについて繰り返す（ステップＳ３４）。
【００５１】
このコピー制御部２３の制御により、ホスト３０から要求されたデータをマスタＬＵ５０側に書き込む（またはマスタＬＵ５０側から読み出す）期間を有効に利用できる。もし、マスタＬＵ５０からバックアップＬＵ５１にコピーすべきデータを１ライトサイズ単位でマスタＬＵ５０から読み出した場合、１ライトサイズのデータの読み出し処理と書き込み処理とは、図１０（ａ）に示すようなタイミングで実行される。図１０において右斜め上から左斜め下に向かう方向のハッチングが施された棒線の長さは、図３と同様にデータ処理時間を表す。また、左斜め上から右斜め下に向かう方向のハッチングが施された棒線の長さは、ヘッドシーク時間と回転待ち時間との和を表す。また、黒で塗りつぶされた棒線の長さは、データ転送時間を表す。
【００５２】
図１０（ａ）の例では、マスタＬＵ５０側のＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０からのデータ読み出し処理が時刻ｔ３０で開始されて、それぞれ時刻ｔ３１及びｔ３２（ｔ３１＞ｔ３２）で完了した様子が示されている。この場合、マスタＬＵ５０全体では、当該マスタＬＵ５０からのデータ読み出し処理は時刻ｔ３２で完了したことになる。
【００５３】
すると、マスタＬＵ５０のＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０では図１０（ａ）に示すように、それぞれ時刻ｔ３２及びｔ３１から、ホスト３０により要求されたデータを書き込む処理が開始される。このホスト３０により要求されたデータをＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０に書き込む処理は、それぞれ時刻ｔ３４及びｔ３３（時刻ｔ３４＞ｔ３２）に完了する。この場合、マスタＬＵ５０からバックアップＬＵ５１にコピーすべき次の１ライトサイズのデータをＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０から読み出す処理が、それぞれ時刻ｔ３４及びｔ３３から開始される。この処理は、マスタＬＵ５０全体では、図１０（ａ）の場合、時刻ｔ３５に完了する。
【００５４】
一方、バックアップＬＵ５１のＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１では、ＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０から読み出された１ライトサイズのデータを書き込む処理が、図１０（ａ）に示すように時刻ｔ３２から開始される。この処理はライトバックモードで実行されることから、短時間で完了する、しかし、次の１ライトサイズのデータを書き込む処理は、時刻ｔ３５まで待たないと実行されない。
【００５５】
これに対して第１の変形例では、マスタＬＵ５０からバックアップＬＵ５１にコピーすべきデータが、時刻ｔ３０から開始される読み出し処理で、１回のライトサイズより大きいサイズ（ここでは６倍のサイズ）でアレイコントローラ２００のキャッシュメモリ２５に読み込まれる。このため、キャッシュメモリ２５に読み込まれたデータを、ホスト３０から要求されたデータのマスタＬＵ５０への書き込み（またはマスタＬＵ５０からの読み出し）に必要な時間Ｔ１１と、次にマスタＬＵ５０からバックアップＬＵ５１にコピーすべき、１回のライトサイズより大きいサイズのデータの読み出しに必要な期間Ｔ１２とを利用して、図１０（ｂ）に示すように、時刻ｔ３７から１回のライトサイズ単位で、順次バックアップＬＵ５１に書き込むことが可能となる。ここで、マスタＬＵ５０からキャッシュメモリ２５に読み込むデータのサイズを、当該データを１ライトサイズ単位に分割してバックアップＬＵ５１に書き込むのに要する時間Ｔが上記時間Ｔ１１（＝ｔ３９−ｔ３７）とＴ１２（＝ｔ４０−ｔ３９）との和を超えない最大の時間となるサイズとすると良い。
【００５６】
［第２の変形例］
次に、上記第３の実施形態の第２の変形例について説明する。本実施形態において、アレイコントローラ２００内のキャッシュメモリ２５は、バックアップ用バッテリ２６によってバックアップされる。但し、マスタＬＵ５０からキャッシュメモリ２５に読み出されたバックアップＬＵ５１にコピーすべきデータは、次のデータのために速やかにクリアされることが好ましい。そこで、キャッシュメモリ２５に読み出されたデータが全てバックアップＬＵ５１側のＨＤＤのライトキャッシュメモリにライトバックモードで書き込まれた段階で、当該キャッシュメモリ２５のデータをクリアすることが考えられる。しかし、キャッシュメモリ２５のデータをクリアした後、バックアップＬＵ５１側のＨＤＤのライトキャッシュメモリに書き込まれているデータが当該ＨＤＤのディスクに実際に書き込まれる前に電源遮断が発生すると、当該ライトキャッシュメモリのデータは消失するおそれがある。
【００５７】
このような不具合を防止するため、第３の実施形態の第２の変形例では、アレイコントローラ２００のコピー制御部２３によるコピー制御が、図１１に示すフローチャートに従って実行される。この図１１のフローチャートにおいて、図９のフローチャートと同様の部分には同一参照符号を付してある。
【００５８】
以下、アレイコントローラ２００のコピー制御部２３によるコピー制御について、図１１を参照して、図９のフローチャートと相違する部分について説明する。コピー制御部２３は、マスタＬＵ５０からアレイコントローラ２００のキャッシュメモリ２５に読み出された、１ライトサイズより大きいサイズのデータを全てバックアップＬＵ５１側のＨＤＤのライトキャッシュメモリに書き込むと（ステップＳ３３）、一定時間を待つ（ステップＳ３３ａ）。この一定時間は、バックアップＬＵ５１側のＨＤＤのライトキャッシュメモリにデータが書き込まれた後、当該データを当該ＨＤＤのディスクに実際に書き込むのに必要な時間に設定される。コピー制御部２３は、上記一定時間が経過すると、アレイコントローラ２０のキャッシュメモリ２５に読み出されているデータをクリアする（ステップＳ３３ｂ）。その後、コピー制御部２３はステップＳ３４の判定を行う。
【００５９】
これにより第２の変形例においては、アレイコントローラ２０のキャッシュメモリ２５に読み出されているデータをクリアした後に、システムの電源遮断が発生しても、その時点には、キャッシュメモリ２５から取り出されてバックアップＬＵ５１側の各ＨＤＤのライトキャッシュメモリに書き込まれれたデータは、当該ＨＤＤのディスクに実際に書き込まれている。したがって、データの保全性を確保しながら、アレイコントローラ２０のキャッシュメモリ２５を有効に利用できる。
【００６０】
アレイコントローラ２０のデータ復元部２４は、コピー制御部２３が上記一定時間を待っている期間にシステムの電源遮断が発生した場合、バックアップ用バッテリ２６のバックアップによってキャッシュメモリ２５に保持されているデータを、電源復旧後にバックアップＬＵ５１側の各ＨＤＤにライトスルーモードで書き込む。つまりデータ復元部２４は、キャッシュメモリ２５に保持されているデータを用いて、バックアップＬＵ５１のデータを復旧する。
【００６１】
前記したようにキャッシュメモリ２５には、データブロック毎に当該ブロックのデータの他に書き込み先を示すアドレスが格納される。しかし、キャッシュメモリ２５に保持されているデータをバックアップＬＵ５１のＨＤＤにライトバックモードで書き込んだ後は、アドレスに比較して大きなメモリサイズを必要とするデータを当該キャッシュメモリ２５からクリアして、そのクリアされたキャッシュメモリ２５の領域を速やかに開放するようにしても良い。ここでは、コピー制御部２３が上記一定時間を待っている期間にシステムの電源遮断が発生した場合、データ復元部２４は電源が復旧した後に、キャッシュメモリ２５に保持されているアドレスに基づいて、マスタＬＵ５０及びバックアップＬＵ５１からデータを読み出す必要がある。そしてデータ復元部２４は、両データを比較して両データが一致しているかを判定し、一致していない場合、マスタＬＵ５０側のデータでバックアップＬＵ５１側のデータを復元する。
【００６２】
なお、本発明は、上記実施形態またはその変形例そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、上記実施形態またはその変形例に開示されている複数の構成要素の適宜な組み合せにより種々の発明を形成できる。例えば、実施形態またはその変形例に示される全構成要素から幾つかの構成要素を削除してもよい。更に、異なる実施形態または変形例に亘る構成要素を適宜組み合せてもよい。
【図面の簡単な説明】
【００６３】
【図１】本発明の第１の実施形態に係るコンピュータシステムの構成を示すブロック図。
【図２】同第１の実施形態におけるアレイコントローラ２０のＷＣ制御部２２によるライトキャッシュメモリの制御の手順を示すフローチャート。
【図３】同第１の実施形態におけるアレイコントローラ２０のライト制御部２１による書き込み制御に応じて実行されるＨＤＤ＃０乃至＃３の動作を従来と対比して説明するためのタイミングチャート。
【図４】本発明の第２の実施形態に係るコンピュータシステムの構成を示すブロック図。
【図５】同第２の実施形態におけるデータ書き込み時のＷＣ制御部２２によるライトキャッシュメモリの制御の手順を示すフローチャート。
【図６】本発明の第３の実施形態に係るコンピュータシステムの構成を示すブロック図。
【図７】同第３の実施形態におけるアレイコントローラ２００のＷＣ制御部２２によるライトキャッシュメモリの制御の手順を示すフローチャート。
【図８】同第３の実施形態におけるアレイコントローラ２０のコピー制御部２３によるコピー制御に応じて実行されるＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０並びにＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１の動作を従来と対比して説明するためのタイミングチャート。
【図９】同第３の実施形態の第１の変形例におけるアレイコントローラ２００のコピー制御部２３によるコピー制御の手順を示すフローチャート。
【図１０】同第３の実施形態の第１の変形例におけるアレイコントローラ２０のコピー制御部２３によるコピー制御に応じて実行されるＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０でのデータ読み出し処理並びにＲＡＩＤ１マスタ＃１及びＲＡＩＤ１スレーブ＃１でのデータ書き込み処理と、ライト制御部２１による制御に応じて実行されるＲＡＩＤ１マスタ＃０及びＲＡＩＤ１スレーブ＃０でのデータ書き込み処理とを従来と対比して説明するためのタイミングチャート
【図１１】同第３の実施形態の第２の変形例におけるアレイコントローラ２００のコピー制御部２３によるコピー制御の手順を示すフローチャート。
【符号の説明】
【００６４】
１０，４０…ディスクアレイ、    １１Ｍ，５００，５１０…ＲＡＩＤ１マスタ、 １１Ｓ，５０１，５１１…ＲＡＩＤ１スレーブ、２０，２００…アレイコントローラ、２１…ライト制御部、２２…ＷＣ制御部（ライトキャッシュ制御部）、２３…コピー制御部、２４…データ復元部、２５…キャッシュメモリ、２６…バックアップ用バッテリ、５０…マスタＬＵ（マスタ論理ユニット、マスタ側ディスクアレイ）、５１…バックアップＬＵ（バックアップ論理ユニット、バックアップ側ディスクアレイ）、４１ａ，４２ａ，４３ａ，１１０ａ，１１１ａ，１１２ａ，１１３ａ…ライトキャッシュメモリ（ＷＣ）、４１，４２，４３，１１０，１１１，１１２，１１３…ＨＤＤ（磁気ディスクドライブ）
【図１】
2006277042.tif 000003
【図２】
2006277042.tif 000004
【図３】
2006277042.tif 000005
【図４】
2006277042.tif 000006
【図５】
2006277042.tif 000007
【図６】
2006277042.tif 000008
【図７】
2006277042.tif 000009
【図８】
2006277042.tif 000010
【図９】
2006277042.tif 000011
【図１０】
2006277042.tif 000012
【図１１】
2006277042.tif 000013