(57)【特許請求の範囲】
【請求項１】
ホストマシンから複数の磁気ディスク装置に対する書き込みデータを一時記憶するキャッシュメモリをディスクアレイコントローラに有するディスクアレイ装置において、
第１のキャッシュメモリをディスクアレイコントローラに設け、第２のキャッシュメモリを複数の磁気ディスク装置にそれぞれ設けて、
前記ディスクアレイコントローラは、
前記第２のキャッシュメモリに前記第１のキャッシュメモリのデータを書き込むライトコマンドと、
前記磁気ディスク装置の記憶媒体に前記第２のキャッシュメモリのデータを書き込み、前記記憶媒体及び前記第２のキャッシュメモリの前記データを同一にするシンクロコマンドと、を発行し、
前記ライトコマンドによって、前記第１のキャッシュメモリが保持する前記ホストマシンからの受信データを前記第２のキャッシュメモリに書き込み、前記書き込み完了で前記ホストマシンに転送終了を通知し、前記シンクロコマンドによって、前記第２のキャッシュメモリのデータを前記磁気媒体に書き込み、前記書き込み完了で前記第１のキャッシュメモリのデータを削除することを特徴とするディスクアレイ装置。
【請求項２】
前記ディスクアレイコントローラは、
前記ホストマシンを接続するホストインタフェースと、
ディスクアレイコントローラ自身を制御するマイクロプロセッサと、
複数の磁気ディスク装置をそれぞれに接続する複数のディスクインタフェースと、
前記磁気ディスク装置に対する前記ホストマシンからの書き込みデータを一時記憶する第１のキャッシュメモリと、
前記ホストインタフェース，マイクロプロッセサ，第１のキャッシュ及び複数のディスクインタフェースを接続するＳＣＳＩバスと、
を備えることを特徴とする請求項１記載のディスクアレイ装置。
【請求項３】
前記ディスクアレイコントローラは、
停電時に自身の電源供給を確保するバックアップバッテリを備えることを特徴とする請求項２記載のディスクアレイ装置。
【請求項４】
前記磁気ディスク装置は、
磁気ディスク記憶媒体と、
第２のキャッシュメモリと、
を備えることを特徴とする請求項１記載のディスクアレイ装置。
【請求項５】
前記磁気ディスク装置は、
複数の磁気ディスク装置によるディスクアレイを構成することを特徴とする請求項１記載のディスクアレイ装置。
【請求項６】
前記シンクロコマンドは、
前記ディスクアレイコントローラの前記マイクロプロセッサが発行する第２のキャッシュメモリのデータを前記磁気ディスク記憶媒体に書き込ませるコマンドであることを特徴とする請求項１記載のディスクアレイ装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
この発明は、ディスクアレイ装置に関し、特に、キャッシュメモリを有するディスクアレイコントローラに障害が生じたとき、キャッシュメモリに記憶されたデータを磁気ディスク装置に設けるキャッシュメモリでバックアップするディスクアレイ装置に関する。
【０００２】
【従来の技術】
従来、ライトバック方式では、ディスクアレイコントローラにキャッシュメモリを備えることに起因するダーティデータ消失の問題がある。このダーティデータ消失を防止して信頼性を高めるために、キャッシュメモリのダーティデータを二重に持たせるため、磁気ディスクアレイコントローラを複数台にすることや、データの二重化のためのインタフェースを設けること、が行われている。
【０００３】
特開平９−３１９６５５号公報によれば、ディスクアレイコントローラにキャッシュメモリを２つ設けて、ダーティデータの消失を防止する発明を説明している。同じデータを２つのキャッシュに記憶させることはキャッシュの利用を非効率にする。そこで、ダーティデータとクリーンデータと複合データとを組み合わせて記憶し、相互に復元可能にしてキャッシュメモリの利用を高めている。しかし、信頼性の観点では、ディスクアレイコントローラ自体が障害を起こすと、２つのキャッシュメモリから読み出し不能になる問題がある。
【０００４】
更に、特開２００１−４３０２７号公報によれば、アレイコントローラに有するメモリモジュールに対して、キャッシュデータのミラー化をアレイコントローラ外の保護回路で行う発明を説明している。つまり、アレイコントローラのキャッシュメモリと、それの外に付加したライトキャッシュ保護回路と、でキャッシュデータをミラー化している。ハードディスクに障害が発生したとき、ライトキャッシュ保護回路のデータを用いて、ハードディスクのデータを復旧させる。したがって、このミラー化の目的は、アレイコントローラのメモリモジュールに対する２重化の効果よりも、復旧処理による性能低下を回避するもので、外付けのライトキャッシュ保護回路によるハードウェアを増大させる問題がある。
【０００５】
【発明が解決しようとする課題】
ディスクアレイ装置では高性能化を図るためコントローラにキャッシュメモリを有し、このキャッシュメモリにはライトデータが一時的に蓄積される。通常、ホストマシンからライトコマンドを受ける場合、このキャッシュメモリにライトデータを受信した段階で、ホストマシンに対して、終了報告を行い、磁気ディスク装置に対するデータの書き込みが後で行われる。
【０００６】
このように磁気ディスク記憶媒体とキャッシュメモリのデータを同一にする書き込みが完了していないライトデータをダーティデータと呼ぶ。また、キャッシュメモリと磁気ディスク記憶媒体のデータを同一化するための書き込みを同期化といい、ＳＣＳＩバスにおけるシンクロコマンドを用いて、実行する。
【０００７】
このような仕組みは、磁気ディスク装置の記憶媒体の回転待ち、磁気ヘッドのシーク待ちによる時間のオーバーヘッドをライトコマンド処理中に隠蔽することで、見かけ上の性能が向上することを目的にしている。しかし、ダーティデータを持った状態でコントローラに障害が発生した場合、磁気ディスク記憶媒体のデータと同期化されないまま、ダーティデータが消失してしまうことになる。そのため、従来のディスクアレイ装置ではデータ消失を防ぐため、コントローラを複数台にして、キャッシュメモリのダーティデータを二重に持つことによりデータ消失を回避する仕組みを取り入れている。
【０００８】
以上の例のように、信頼性を高めるためにキャッシュメモリのダーティデータを二重に持つために、ディスクアレイコントローラを複数台にし、データの二重化のためのインタフェースを設ける、ことが必要となり大幅なコスト増が避けられない。
【０００９】
この発明の目的は、磁気ディスク装置のキャッシュメモリを使用し、ディスクアレイコントローラのキャッシュメモリと、磁気ディスク装置のキャッシュメモリと、を同期化することにより、２重化による信頼性を高めて、高性能かつ低価格のディスクアレイ装置を提供して、上記の問題点を解決する。
【００１０】
【課題を解決するための手段】
そのため、この発明の、ホストマシンから複数の磁気ディスク装置に対する書き込みデータを一時記憶するキャッシュメモリをディスクアレイコントローラに有するディスクアレイ装置において、第１のキャッシュメモリをディスクアレイコントローラに設け、第２のキャッシュメモリを複数の磁気ディスク装置にそれぞれ設けて、前記ディスクアレイコントローラは、前記第２のキャッシュメモリに前記第１のキャッシュメモリのデータを書き込むライトコマンドと、前記磁気ディスク装置の記憶媒体に前記第２のキャッシュメモリのデータを書き込み、前記記憶媒体及び前記第２のキャッシュメモリの前記データを同一にするシンクロコマンドと、を発行し、前記ライトコマンドによって、前記第１のキャッシュメモリが保持する前記ホストマシンからの受信データを前記第２のキャッシュメモリに書き込み、前記書き込み完了で前記ホストマシンに転送終了を通知し、前記シンクロコマンドによって、前記第２のキャッシュメモリのデータを前記磁気媒体に書き込み、前記書き込み完了で前記第１のキャッシュメモリのデータを削除することを特徴とする。
【００１１】
更に、前記ディスクアレイコントローラは、前記ホストマシンを接続するホストインタフェースと、ディスクアレイコントローラ自身を制御するマイクロプロセッサと、複数の磁気ディスク装置をそれぞれに接続する複数のディスクインタフェースと、前記磁気ディスク装置に対する前記ホストマシンからの書き込みデータを一時記憶する第１のキャッシュメモリと、前記ホストインタフェース，マイクロプロッセサ，第１のキャッシュ及び複数のディスクインタフェースを接続するＳＣＳＩバスと、を備えることを特徴とする。
【００１２】
更に、前記ディスクアレイコントローラは、停電時に自身の電源供給を確保するバックアップバッテリを備えることを特徴とする。
【００１３】
更に、前記磁気ディスク装置は、磁気ディスク記憶媒体と、第２のキャッシュメモリと、を備えることを特徴とする。
【００１４】
更に、前記磁気ディスク装置は、複数の磁気ディスク装置によるディスクアレイを構成することを特徴とする。
【００１５】
更に、前記シンクロコマンドは、前記ディスクアレイコントローラの前記マイクロプロセッサが発行する第２のキャッシュメモリのデータを前記磁気ディスク記憶媒体に書き込ませるコマンドであることを特徴とする。
【００１６】
【発明の実施の形態】
この発明の実施の形態について図面を参照して説明する。図１を参照すると、この実施例は、ホストマシン１と、プログラム制御により動作するディスクアレイコントローラ２と、ディスクアレイを構成してデータ記憶する複数の磁気ディスク装置３と、電源ユニット４と、バックアップバッテリ５と、を含む。
【００１７】
ディスクアレイコントローラ２は、ホストマシン１に対する接続のホストインタフェース２１と、磁気ディスク装置３に対する接続のディスクインタフェース２４と、データを一時的に保持するキャッシュメモリ２３と、ディスクアレイコントローラ２を制御するマイクロプロセッサ２２と、各部を接続するＳＣＳＩバス２５と、を有している。
【００１８】
磁気ディスク装置３は、実際にデータを記憶する磁気ディスク記憶媒体３１と、データを一時的に保持するキャッシュメモリ３２と、を有している。
【００１９】
電源ユニット４は、ディスクアレイコントローラ２と、磁気ディスク装置３とに対して電源を供給し、バックアップバッテリ５は、停電時にディスクアレイコントローラ２に電源供給する。
【００２０】
次に、この発明の実施の形態の機能作用について図１を参照して説明すると、ディスクアレイコントローラ２は、磁気ディスク装置３のキャッシュメモリ３２を有効に動作するように設定しておき、ホストマシン１からのライトコマンドによって、転送されてきたライトデータを自身のキャッシュメモリ２３に書き込む。その後、ディスクアレイコントローラ２は、磁気ディスク装置３のキャッシュメモリ３２に対して、ライトコマンドを発行し、ライトデータを送信して書き込む。ディスクアレイコントローラ２は、該書き込みの正常終了でもって、ホストマシン１に対して終了報告する。
【００２１】
キャッシュメモリ２３のライトデータを削除する場合、ディスクアレイコントローラ２は、磁気ディスク装置３に対してシンクロコマンドを発行し、キャッシュメモリ３２のライトデータを磁気ディスク記憶媒体３１に書き込み、その正常終了報告を受けて、キャッシュメモリ２３のライトデータを削除する。したがって、キャッシュメモリ２３の中に、ある領域のダーティデータが存在する場合は、磁気ディスク装置３のキャッシュメモリ３２若しくは、磁気ディスク記憶媒体３１の中に必ず同じデータが確保されることになる。
【００２２】
この実施例の動作を図２及び図３を参照して説明する。ホストマシン１からホストインタフェース４がライトコマンドを受け取ると（図３のステップ６１）、マイクロプロセッサ２２は、キャッシュメモリ２３内にライトキャッシュを確保し（ステップ６２）、その領域にホストマシン１からデータを転送する（ステップ６３）。データ転送終了後にそのデータをディスクインタフェース２４を通して磁気ディスク装置３に対してライトコマンドを発行し（ステップ６４）、キャッシュメモリ３２若しくは磁気ディスク記憶媒体３１にデータ書き込みをする（ステップ６５）。データがキャッシュメモリ２３とキャッシュメモリ３２若しくは磁気ディスク記憶媒体３１に二重化された段階で磁気ディスク装置３から正常終了報告を受け（ステップ６６のＹ）、ホストマシン１に対して転送終了の報告を行う（ステップ６７）。
【００２３】
該書き込みが正常終了しないとき（ステップ６６のＮ）、磁気ディスク装置３は、ディスクアレイコントローラ２に対して異常終了を発行し、デイスクアレイコントローラ２は、キャッシュメモリ２３のデータを破棄し（ステップ６８）、ホストマシン１に異常終了を報告してリトライを要求する（ステップ６９）。
【００２４】
ディスクアレイコントローラ２のキャッシュメモリ２３のデータを掃き出す動作を示す図３を参照すると、ディスクアレイコントローラ２は、磁気ディスク装置３にライトデータを既に送信してあるため、シンクロコマンドを磁気ディスク装置３に対して発行する（ステップ７１）。磁気ディスク装置３は、掃き出しデータが未だキャッシュメモリ３２に残っているとき、磁気ディスク記憶媒体３１にデータを書き込んでダーティデータを削除する。既にデータが書き込み済みであったなら、キャッシュメモリ３２にダーティデータは残っていないことになる。ディスクアレイコントローラ２は、磁気ディスク装置３からシンクロコマンドの正常終了報告を受けた段階で（ステップ７２）、キャッシュメモリ２３のダーティデータを削除し、掃き出し完了とする（ステップ７３）。
【００２５】
以上の説明において、データ復旧の場合について説明すると、運用中にディスクアレイコントローラ２が故障したとしても、ホストマシン１から受信したデータは、磁気ディスク装置３のキャッシュ３２に残っているため、データの復旧が可能である。
【００２６】
更に、磁気ディスク装置３が故障した場合や、デファードエラーとなった場合には、ディスクアレイコントローラ２のキャッシュメモリ２３に残っているダーティデータにより、データの復旧が可能である。
【００２７】
更に、停電発生時には、ＡＣ／ＤＣコンバータの電源ユニット４からの電源供給が絶たれる場合、磁気ディスク装置３のキャッシュメモリ３２のデータは消失するが、バックアップバッテリ５の放電を開始することにより、ディスクアレイコントローラ２のキャッシュメモリ２３のデータはバックアップされているため、そのデータをもとに電源回復時にデータの復旧を行うことが可能である。
【００２８】
【発明の効果】
この発明の効果は、ライトバック方式でキャッシュメモリによる性能向上を求めるときに、ディスクアレイコントローラに残るダーティデータの消失を防止する簡易で低価格な装置を実現したことである。その理由は、ディスクアレイコントローラやそれのキャッシュメモリを２重に設けることなく、磁気ディスク装置にキャッシュを設けて、ライト性能を維持しつつ、ディスクアレイコントローラを１台でダーティデータの消失を防止できるからである。
【図面の簡単な説明】
【図１】この発明の実施の形態を示すブロック図である。
【図２】図１に示した磁気ディスク装置におけるホストマシンからのライトデータ受信時の動作を示すフローチャートである。
【図３】図１に示したディスクアレイコントローラにおけるキャッシュメモリのデータ掃き出し時の動作を示すフローチャートである。
【符号の説明】
１    ホストマシン
２    ディスクアレイコントローラ
３    磁気ディスク装置
４    電源ユニット
５    バックアップバッテリ
２１    ホストインタフェース
２２    マイクロプロセッサ
２３    キャッシュメモリ
２４    ディスクインタフェース
３２    キャッシュメモリ
３１    磁気ディスク記憶媒体
【図１】
0003751904.tif 000002
【図２】
0003751904.tif 000003
【図３】
0003751904.tif 000004