(57)【特許請求の範囲】
【請求項１】
上位装置に接続し、キャッシュメモリとこのキャッシュメモリを制御するデータコントローラと複数の記憶デバイスとこの記憶デバイスを制御するデバイスコントローラとを含んで構成される記憶装置の制御方法であって、
記憶装置が、前記上位装置から送られてくる、データと記憶デバイスへの前記データの書き込み要求とを受信して、
前記データコントローラが、１つの前記キャッシュメモリ上の二つの領域に前記データを二重化して同時に直接書き込み、
前記データコントローラが、前記キャッシュメモリ上の前記各領域に書き込まれた前記データをそれぞれ読み出して前記デバイスコントローラに転送し、
前記デバイスコントローラが、前記受け取った各データを、前記各領域のそれぞれに対応する前記記憶デバイスに書き込むこと、
を特徴とする記憶装置の制御方法。
【請求項２】
上位装置に接続し、キャッシュメモリとこのキャッシュメモリを制御するデータコントローラと複数のディスクドライブとこのディスクドライブを制御するドライブコントローラとを含んで構成されるディスクアレイ装置の制御方法であって、
前記ディスクアレイ装置が、前記上位装置から送られてくる、データと前記ディスクドライブへの前記データの書き込み要求とを受信して、
前記データコントローラが、１つの前記キャッシュメモリ上の二つの領域に前記データを二重化して同時に直接書き込み、
前記データコントローラが、前記キャッシュメモリ上の前記各領域に書き込まれた前記データをそれぞれ読み出して前記ドライブコントローラに転送し、
前記ドライブコントローラが、前記受け取った各データを、前記各領域のそれぞれに対応する前記ディスクドライブに書き込むこと、
を特徴とするディスクアレイ装置の制御方法。
【請求項３】
前記ディスクアレイ装置が、前記上位装置から送られてくる前記キャッシュメモリ上の領域を指定する領域指定情報を受信して、
前記データコントローラが、前記領域指定情報に基づいて特定される前記キャッシュメモリ上の前記二つの領域に前記データを二重化して同時に直接書き込み、
前記データコントローラが、前記キャッシュメモリ上の前記各領域に書き込まれた前記データをそれぞれ読み出して前記ドライブコントローラに転送し、
前記ドライブコントローラが、前記受け取った各データを、前記各領域のそれぞれに対応する前記ディスクドライブに書き込むこと、
を特徴とする請求項２に記載のディスクアレイ装置の制御方法。
【請求項４】
上位装置に接続し、キャッシュメモリと、このキャッシュメモリを制御するデータコントローラと、このデータコントローラを制御する上位コントローラと、複数のディスクドライブと、このディスクドライブを制御するドライブコントローラとを含んで構成されるディスクアレイ装置の制御方法であって、
前記ディスクアレイ装置が、上位装置から送られてくる、データと前記ディスクドライブへの前記データの書き込み要求とを受信して、
前記上位コントローラが、前記キャッシュメモリ上の領域を指定する領域指定情報を前記データコントローラに送出して、
前記データコントローラが、前記領域指定情報に基づいて特定される、１つの前記キャッシュメモリ上の二つの領域に前記データを二重化して同時に直接書き込み、
前記データコントローラが、前記キャッシュメモリ上の前記各領域に書き込まれた前記データをそれぞれ読み出して前記ドライブコントローラに転送し、
前記ドライブコントローラが、前記受け取った各データを、前記各領域のそれぞれに対応する前記ディスクドライブに書き込むこと、
を特徴とするディスクアレイ装置の制御方法。
【請求項５】
前記領域指定情報が、前記キャッシュメモリ上の領域を指定するアドレスを少なくとも一つ含むことを特徴とする請求項３または４に記載のディスクアレイ装置の制御方法。
【請求項６】
前記領域指定情報が、前記キャッシュメモリ上の領域を指定する第２の領域指定情報を格納している前記キャッシュメモリ上の領域を指定するポインタを、少なくとも一つ含むことを特徴とする請求項３から５のいずれかに記載のディスクアレイ装置の制御方法。
【請求項７】
上位装置に接続し、キャッシュメモリと、このキャッシュメモリを制御するデータコントローラと、複数のディスクドライブと、このディスクドライブを制御するドライブコントローラとを含んで構成されるディスクアレイ装置の制御方法であって、
前記ディスクアレイ装置が、前記上位装置から送られてくる、データと前記ディスクドライブへの前記データの書き込み要求とを受信して、
前記データコントローラが、前記キャッシュメモリ上のアドレスと、このアドレスに基づいて算出される別のアドレスとによって指定される、１つの前記キャッシュメモリ上の二つの領域に前記データを二重化して同時に直接書き込み、
前記データコントローラが、前記キャッシュメモリ上の前記各領域に書き込まれた前記データをそれぞれ読み出して前記ドライブコントローラに転送し、
前記ドライブコントローラが、前記受け取った各データを、前記各領域のそれぞれに対応する前記ディスクドライブに書き込むこと、
を特徴とするディスクアレイ装置の制御方法。
【請求項８】
前記ディスクアレイ装置が、前記キャッシュメモリ上の領域を指定するアドレスを少なくとも一つ含む領域指定情報を、前記上位装置から受信して、
前記データコントローラが、前記アドレスに基づいて、別のアドレスを算出し、これらのアドレスにより指定される前記キャッシュメモリ上の前記二つの領域に前記データを二重化して同時に直接書き込み、
前記データコントローラが、前記キャッシュメモリ上の前記各領域に書き込まれた前記データをそれぞれ読み出して前記ドライブコントローラに転送し、
前記ドライブコントローラが、前記受け取った各データを、前記各領域のそれぞれに対応する前記ディスクドライブに書き込むこと、
を特徴とする請求項７に記載のディスクアレイ装置の制御方法。
【請求項９】
上位装置に接続し、キャッシュメモリと、このキャッシュメモリを制御するデータコントローラと、このデータコントローラを制御する上位コントローラと、複数のディスクドライブと、このディスクドライブを制御するドライブコントローラとを含んで構成されるディスクアレイ装置の制御方法であって、
前記ディスクアレイ装置が、前記上位装置から送られてくる、データと前記ディスクドライブへの前記データの書き込み要求とを受信して、
前記上位コントローラが、前記キャッシュメモリ上の領域を指定するアドレスを少なくとも一つ含む領域指定情報を前記データコントローラに送出して、
前記データコントローラが、前記アドレスに基づいて、別のアドレスを算出し、これらのアドレスにより指定される、１つの前記キャッシュメモリ上の二つの領域に前記データを二重化して同時に直接書き込み、
前記データコントローラが、前記キャッシュメモリ上の前記各領域に書き込まれた前記データをそれぞれ読み出して前記ドライブコントローラに転送し、
前記ドライブコントローラが、前記受け取った各データを、前記各領域のそれぞれに対応する前記ディスクドライブに書き込むこと、
を特徴とするディスクアレイ装置の制御方法。
【請求項１０】
前記データコントローラが、前記アドレスに基づいて別のアドレスを算出する処理は、前記アドレスに前記データのデータ長を加算して別のアドレスを算出するか、前記アドレスを整数倍して別のアドレスを算出するか、前記アドレスにあらかじめ決められた所定値を加算するか、のいずれかであることを特徴とする請求項７〜９のいずれかに記載のディスクアレイ装置の制御方法。
【請求項１１】
上位装置に接続し、
キャッシュメモリと、前記キャッシュメモリ上の二つの領域にデータを二重化して同時に直接書き込む手段を備えたデータコントローラと、複数の記憶デバイスと、
上位装置から送られてくる、データおよび前記記憶デバイスへの書き込み要求を受信する手段と、
前記キャッシュメモリ上の前記各領域に書き込まれた前記各データを前記記憶デバイスに書き込む手段と、
を備えることを特徴とする記憶装置。
【請求項１２】
上位装置に接続し、
キャッシュメモリと、１つの前記キャッシュメモリ上の二つの領域にデータを二重化して同時に直接書き込む手段を備えたデータコントローラと、複数のディスクドライブと、
上位装置から送られてくる、データおよび前記ディスクドライブへの書き込み要求を受信する手段と、
前記キャッシュメモリ上の前記各領域に書き込まれた前記各データを前記ディスクドライブに書き込む手段と、
を備えることを特徴とするディスクアレイ装置。
【請求項１３】
上位装置と複数のディスクドライブに接続し、
キャッシュメモリと、１つの前記キャッシュメモリ上の二つの領域にデータを二重化して同時に直接書き込む手段を備えたデータコントローラと、
上位装置から送られてくるデータおよび前記ディスクドライブへの書き込み要求を受信する手段と、
前記キャッシュメモリ上の前記各領域に書き込まれた前記各データを前記ディスクドライブに書き込む手段と、
を備えることを特徴とするディスクコントローラ。
【請求項１４】
ホストコンピュータなどの上位装置に接続し、
マイクロプロセッサと、
キャッシュメモリと、
前記キャッシュメモリとキャッシュバスにより接続され、このキャッシュメモリを制御するデータコントローラと、
前記データコントローラとＰＣＩバスにより接続され、前記上位装置や前記データコントローラとの間でデータの入出力制御を行う上位コントローラと、
複数のディスクドライブと、
前記データコントローラとＰＣＩバスにより接続され、このディスクドライブを制御するドライブコントローラと、
を含んで構成されるディスクアレイ装置の制御方法であって、
前記上位コントローラが、前記上位装置から送られてくる、データと前記ディスクドライブへの前記データの書き込み要求とを受信して、
前記上位コントローラが、前記マイクロプロセッサに対して割り込み報告を行い、
前記マイクロプロセッサが、前記上位コントローラに対して、前記データと、このデータが書き込まれる、１つの前記キャッシュメモリ上の２つの領域に対応する領域指定情報と、を前記データコントローラに転送する指示、及び前記領域指定情報を送信し、
前記上位コントローラが、前記キャッシュメモリ上の領域を指定する領域指定情報を前記データコントローラに送出して、
前記データコントローラが、前記領域指定情報に基づいて特定される前記キャッシュメモリ上の前記２つの領域に前記データを二重化して同時に直接書き込み、
前記データコントローラが、前記２つの領域にそれぞれ書き込まれている前記データを読み出して前記ドライブコントローラに転送し、
前記ドライブコントローラが、前記キャッシュメモリ上の各領域に書き込まれた前記データを、前記各領域のそれぞれに対応する前記ディスクドライブに書き込むこと、
を特徴とするディスクアレイ装置の制御方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、記憶装置の制御方法およびこの方法に用いる記憶装置、ディスクアレイ装置、およびディスクコントローラに関する。
【０００２】
【従来の技術】
ディスクアレイ装置などの記憶装置におけるデータセキュリティを確保する技術として、例えば、ＲＡＩＤ１（redundant array of inexpensive disks）に代表されるように、データを複数の記憶デバイス（例えば、ディスクドライブ）に多重化して管理する技術が知られている。また、記憶装置の稼働状態を維持したまま、バックグラウンドでバックアップを行うといった目的で、データの多重化管理が行われることもある。
【０００３】
従来の記憶装置におけるこのようなデータの多重化管理において、複数の記憶デバイスにデータを書き込む際には、一旦、キャッシュメモリ上にデータを多重に書き込んでおいた後、ドライブコントローラなどのデバイスコントローラにより、それぞれのデータを対応する記憶デバイスに書き込む、といった仕組みが一般的である。
【０００４】
図９の概念ブロック図、図１０のフローチャートは、前記の仕組みを具体的に説明したものである。すなわち、まず、データコントローラ１０６が、上位装置から、書き込み対象データとアドレスＡとを取得し（S1002）、キャッシュメモリ１０４上のアドレスＡで指定される領域１１６にデータを書き込む（S1004〜S1008）。つぎに、データコントローラ１０６は、アドレスＡで指定される領域に格納されているデータを読み出し（S1010〜S1014）、読み出したデータをアドレスＢで指定される領域１２０に書き込む（S1016〜S1020）。
【０００５】
【発明が解決しようとする課題】
ところで、図９に示しているように、この処理では、データコントローラ１０６とキャッシュメモリ１０４との間で、データの書き込み処理１２４、データの読み出し処理１１８、読み出したデータの書き込み処理１２２、という、計３回ものＩ／Ｏが発生する。そして、とくにこのうちのアドレスＡからのアドレスＢへのデータコピーに関連して必要となるデータの読み出し処理１１８により生じるＩ／Ｏは、データコントローラ１０６とキャッシュメモリ１０４との間のバス効率を低下させ、記憶装置自体の処理時間を増大させる要因ともなりうる。
【０００６】
本発明は、このような課題に着目してなされたもので、データを多重化して管理する場合に、記憶デバイスへのデータの書き込み処理を効率よく行うことができる、記憶装置の制御方法およびこの方法に用いる記憶装置、ディスクアレイ装置、およびディスクコントローラを提供することを目的とする。
【０００７】
【課題を解決するための手段】
上記目的を達成するための本発明のディスク装置の制御方法は、上位装置に接続し、キャッシュメモリとこのキャッシュメモリを制御するデータコントローラと複数の記憶デバイスとこの記憶デバイスを制御するデバイスコントローラとを含んで構成される記憶装置の制御方法であって、記憶装置が、前記上位装置から送られてくる、データと記憶デバイスへの前記データの書き込み要求とを受信して、前記データコントローラが、１つの前記キャッシュメモリ上の二つの領域に前記データを二重化して同時に直接書き込み、前記データコントローラが、前記キャッシュメモリ上の前記各領域に書き込まれた前記データをそれぞれ読み出して前記デバイスコントローラに転送し、前記デバイスコントローラが、前記受け取った各データを、前記各領域のそれぞれに対応する前記記憶デバイスに書き込むことを特徴とする。
【０００８】
【発明の実施の形態】
図１に、本発明による制御方法の一実施例に用いられるディスクアレイ装置１０１の構成を示す。ディスクアレイ装置１０１は、ホストコンピュータなどの上位装置１００に接続し、ディスクコントローラ１０２と、このディスクコントローラ１０２によって制御される複数台のディスクドライブ１０３とを備える。また、ディスクコントローラ１０２は、マイクロプロセッサ（ＭＰＵ）１１４、キャッシュメモリ１０４、このキャッシュメモリ１０４を制御するデータコントローラ１０６、上位装置１００やデータコントローラ１０６との間でのデータの入出力制御などを行う上位コントローラ１０８、各ディスクドライブ１０３を制御するドライブコントローラ１１０などを備える。データコントローラ１０６は、ＰＣＩバス１２８などにより、上位コントローラ１０８およびドライブコントローラ１１０に接続している。
【０００９】
以下、本発明の一実施例として、以上の構成のディスクアレイ装置１０１において、上位装置１００から送られてくるデータが、ディスクドライブ１０３に書き込まれるまでの処理について詳述する。
【００１０】
＜実施例１＞
図２は、上位装置１００から送信されてきた書き込み対象データが、データコントローラ１０６に送信されるまでのディスクアレイ装置１０１における処理を説明するフローチャートである。上位コントローラ１０８は、上位装置１００から書き込み対象データとその書き込み要求とを受信すると（S202）、ＭＰＵ１１４に対して割り込み報告を行う（S204）。ＭＰＵ１１４は、割り込み信号をデコードしてアクセスの種類を判断し（S206）、上位コントローラ１０８に対して、書き込み対象データとこのデータが書き込まれるキャッシュメモリ１０４上の二つの領域に対応する領域指定情報とをデータコントローラ１０６に転送する指示を送出し(S208)、前記領域指定情報を送信する（S210）。
【００１１】
実施例１においては、この領域指定情報として、キャッシュメモリ１０４上の二つの領域を指定するアドレスを用いている。図３に、その場合のデータコントローラ１０６による書き込み処理の概念ブロック図を、図４に、データコントローラ１０６に送信されたデータが、キャッシュメモリ１０４上の所定の位置に書き込まれるまでのディスクアレイ装置１０１における処理を説明するフローチャートを示す。
【００１２】
データコントローラ１０６は、ＭＰＵ１１４からの指示により上位コントローラ１０８から送信されたアドレスＡおよびアドレスＢを取得する(S402)。データコントローラ１０６は、上位コントローラ１０８から送られてきたアドレスＡおよびアドレスＢを、アドレスレジスタ（図示しない）に設定し(S404)、ライト実行レジスタ（図示しない）にアクセスし(S406)、キャッシュメモリ１０４上の前記アドレスに対応する領域１１６，１２０に、前記書き込み対象データを書き込む(S408)。そして、書き込みが終了した後、上位コントローラ１０８は、ＭＰＵ１１４にデータ転送終了を報告し、キャッシュメモリ１０４へのデータの書き込み処理が完了する。
【００１３】
そして、このようにしてキャッシュメモリ１０４に二重に書き込まれたデータは、さらにつぎの手順を経て、それぞれ対応するディスクドライブ（記憶デバイス）に書き込まれる。
【００１４】
すなわち、まず、データコントローラ１０６は、アドレスＡおよびアドレスＢをアドレスレジスタに設定して、リード実行レジスタ（図示しない）にアクセスする。つぎに、データコントローラ１０６は、キャッシュメモリ１０４上のアドレスＡおよびアドレスＢで指定される領域に書き込まれているデータを読み出し、読み出したそれぞれのデータを、ドライブコントローラ１１０に転送する。データを受け取ったドライブコントローラ１１０は、各々のアドレスに対応するディスクドライブ１０３にデータを書き込む。ここで各アドレスとディスクドライブ１０３との対応づけの管理は、例えば、ディスクコントローラ１０２に実装されている制御メモリに前記対応づけを記載した管理テーブルを用意したり、ＭＰＵに対応づけを導出するアルゴリズムを実行させるといった方法で行う。
【００１５】
ところで、以上に説明した仕組みにおいては、データをキャッシュメモリ１０４上で二重化する際に、データコントローラ１０６がキャッシュメモリ１０４上の二つの領域に同時にデータを書き込むようにしている。このため、従来のように、アドレスＡからのアドレスＢへのデータコピーに関連して必要となるデータの読み出し処理１１８が必要でなく、書き込み対象データを効率よくキャッシュメモリ１０４に書き込むことができる。
【００１６】
＜実施例２＞
ここで説明する実施例は、データコントローラ１０６が、前記領域指定情報として、その全部または一部をポインタにより受領し、このポインタで指定される領域１３０に格納されているアドレスＢをキャッシュメモリ１０４から読み出すことで、データコントローラ１０６が前記書込対象データが書き込まれるキャッシュメモリ１０４上の領域を認知するようにしたものである。以下、図５の概念ブロック図、図６のフローチャートとともにこの仕組みを説明する。
【００１７】
まず、データコントローラ１０６が、上位コントローラ１０８から送信されてくるアドレスＡおよびポインタを取得する(S602)。データコントローラ１０６は、送られてきたポインタ値に従い、指定されたキャッシュメモリ１０４上の領域１３０にアクセスし(S604)、そこに格納されているアドレスＢを取得する(S606)。つぎに、データコントローラ１０６は、アドレスＡと、ポインタによって得られたアドレスＢとをアドレスレジスタに設定して(S608)、ライト実行レジスタにアクセスし(S610)、前記アドレスに対応するキャッシュメモリ１０４上の領域１１６，１２０にデータを書き込む(S612)。そして、書き込みが終了した後、上位コントローラ１０８は、ＭＰＵ１１４にデータ転送終了を報告し、キャッシュメモリ１０４へのデータの書き込み処理が完了する。なお、キャッシュメモリ１０４上のデータがディスクドライブ１０３に書き込まれるまでの処理は、実施例１と同様であるので、ここでは説明を省略する。
【００１８】
ところで、以上は二重に書き込まれる一方の領域指定情報のみがポインタで指定される場合についての説明であったが、双方ともポインタで指定される構成としてもよい。
【００１９】
＜実施例３＞
つぎに説明する実施例は、前記領域指定情報として、データコントローラ１０６が書き込み対象データが二重に書き込まれる一方のアドレスのみを上位装置１００から受領し、受領した前記アドレスに所定のアルゴリズムを適用することでもう一方のアドレスＢを決定するようにしたものである。以下、図７の概念ブロック図、図８のフローチャートとともにこの仕組みを説明する。
【００２０】
まず、データコントローラ１０６は、ＭＰＵ１１４からの指示により上位コントローラ１０８から送信されたアドレスＡを取得する(S802)。つぎに、データコントローラ１０６は、このアドレスＡに所定のアルゴリズムを適用し、もう一方のアドレスＢを決定する(S804)。
【００２１】
ここで所定のアルゴリズムとしては、例えば、アドレスＡに書き込み対象データのデータ長を加算したものをアドレスＢとする、アドレスＡを整数倍したものをアドレスＢとする、アドレスＡにあらかじめ決められた所定値を加算する、といったようなものがあげられる。
【００２２】
そして、データコントローラ１０６は、送られてきたアドレスＡと、これに基づいて決定されたアドレスＢとをアドレスレジスタに設定し(S806)、ライト実行レジスタにアクセスし(S808)、キャッシュメモリ１０４上の前記アドレスＡおよびアドレスＢに対応する領域１１６，１２０にデータを書き込む(S810)。そして、書き込み終了後、上位コントローラ１０８は、ＭＰＵ１１４にデータ転送終了を報告し、キャッシュメモリ１０４へのデータの書き込み処理が完了する。なお、キャッシュメモリ１０４上のデータがディスクドライブ１０３に書き込まれるまでの処理は、実施例１と同様であるので、ここでは説明を省略する。
【００２３】
ところで、以上に述べた実施例１乃至３においては、ディスクコントローラ１０２内に上位コントローラ１０８を設けているが、上位装置１００が直接データをデータコントローラ１０６に送る構成であってもよい。また、上位装置１００がキャッシュメモリ１０４上のデータ書き込み位置を決定する構成でもよい。
【００２４】
また、上位コントローラ１０８が上位装置１００やＭＰＵ１１４から得た領域指定情報に基づいてキャッシュメモリ１０４上の領域を特定し、そのアドレスをデータコントローラ１０６に送るようにしてもよい。
【００２５】
また、以上に説明した実施例では、ディスクコントローラ１０２内において、ＭＰＵ１１４が独立する構成としているが、上位コントローラ１０８やデータコントローラ１０６の機能をＭＰＵ１１４に実行させてもよい。
【００２６】
【発明の効果】
本発明の記憶装置の制御方法およびこの方法に用いる記憶装置、ディスクアレイ装置、およびディスクコントローラにあっては、データを多重化して管理する場合に、記憶デバイスへのデータの書き込み処理を効率よく行うことができる。
【図面の簡単な説明】
【図１】本発明の一実施例による、ハードウエアの全体構成を示す図である。
【図２】本発明の一実施例による、上位装置から送信されたデータがデータコントローラに送信されるまでの処理を説明するフローチャートを示す図である。
【図３】本発明の一実施例による、データコントローラに送信されたデータがキャッシュメモリ上に書き込まれるまでの処理を説明する概念ブロック図である。
【図４】本発明の一実施例による、データコントローラに送信されたデータがキャッシュメモリ上の所定の位置に書き込まれるまでの処理を説明するフローチャートを示す図である。
【図５】本発明の一実施例による、データコントローラに送信されたデータがキャッシュメモリ上に書き込まれるまでの処理を説明する概念ブロック図である。
【図６】本発明の一実施例による、データコントローラに送信されたデータがキャッシュメモリ上に書き込まれるまでの処理を説明するフローチャートを示す図である。
【図７】本発明の一実施例による、データコントローラに送信されたデータがキャッシュメモリ上に書き込まれるまでの処理を説明する概念ブロック図である。
【図８】本発明の一実施例による、データコントローラに送信されたデータがキャッシュメモリ上に書き込まれるまでの処理を説明するフローチャートである。
【図９】従来の記憶装置における、キャッシュメモリにデータを二重に書き込む際の処理を説明する概念ブロック図である。
【図１０】従来の記憶装置における、キャッシュメモリにデータを二重に書き込む際の処理を説明するフローチャートである。
【符号の説明】
１００  上位装置
１０１  ディスクアレイ装置
１０２  ディスクコントローラ
１０３  ディスクドライブ
１０４  キャッシュメモリ
１０６  データコントローラ
１１０  ドライブコントローラ
１２８  ＰＣＩバス
【図１】
0004209108.tif 000002
【図２】
0004209108.tif 000003
【図３】
0004209108.tif 000004
【図４】
0004209108.tif 000005
【図５】
0004209108.tif 000006
【図６】
0004209108.tif 000007
【図７】
0004209108.tif 000008
【図８】
0004209108.tif 000009
【図９】
0004209108.tif 000010
【図１０】
0004209108.tif 000011