(57)【要約】      （修正有）【課題】ディスク装置への書き込みデータのキャッシュ完了報告の応答時間を短縮する。【解決手段】ホスト装置とディスク装置の間に接続されるストレージ装置であって、第一キャッシュと、第二コントローラからホスト装置の書き込みデータを受信し、第一キャッシュに前記書き込みデータを保持し、ホスト装置にキャッシュ完了報告をする、第一キャッシュ処理手段と、を備える第一コントローラと、第二キャッシュと、一時的にデータを保持するための第三キャッシュと、ホスト装置から書き込みデータを受信し、第三キャッシュに書き込みデータを保持し、その後、第一キャッシュ処理手段に書き込みデータを送信し、その後、書き込みデータを第二キャッシュに格納する、第二キャッシュ処理手段と、を備える第二コントローラとを包含する。第一コントローラ、または、第二コントローラのいずれかが、書き込みデータを前記ディスク装置に書き込む。【選択図】図１
2014191358.tif 000002
【特許請求の範囲】
【請求項１】
ホスト装置とディスク装置の間に接続されるストレージ装置であって、
キャッシュメモリである第一キャッシュと、前記第二コントローラから前記ホスト装置の書き込みデータを受信し、前記第一キャッシュに前記書き込みデータを保持し、前記ホスト装置にキャッシュ完了報告をする、第一キャッシュ処理手段と、を備える第一コントローラと、
キャッシュメモリである第二キャッシュと、一時的にデータを保持するためのキャッシュメモリである第三キャッシュと、前記ホスト装置から前記書き込みデータを受信し、前記第三キャッシュに前記書き込みデータを保持し、その後、前記第一キャッシュ処理手段に前記書き込みデータを送信し、その後、前記書き込みデータを前記第二キャッシュに格納する、第二キャッシュ処理手段と、を備える第二コントローラと、を包含し、
前記第一コントローラ、または、前記第二コントローラのいずれかが、前記書き込みデータを前記ディスク装置に書き込む、ストレージ装置。
【請求項２】
前記第一コントローラが、前記第一キャッシュ、前記第二キャッシュ、及び、前記第三キャッシュにおける前記書き込みデータの保持の有無をデータ世代記憶手段に格納する、データ世代管理手段を更に備え、
前記データ世代管理手段が、前記データ世代記憶手段の情報に基づき、前記第一キャッシュ、及び、前記第三キャッシュにおける前記書き込みデータの前記保持を確認して、前記キャッシュ完了報告をし、前記第一キャッシュ、及び、前記第二キャッシュにおける前記書き込みデータの前記保持を確認して、前記ディスク装置への前記書き込みデータの書き込みを許可する、請求項１のストレージ装置。
【請求項３】
前記第二コントローラを複数台備え、
複数の前記第二コントローラのいずれかが、前記ホスト装置から前記書き込みデータを受信し、
前記第一キャッシュ処理手段が、
前記書き込みデータを受信した前記第二コントローラから前記書き込みデータを受信し、
複数の前記第二コントローラのいずれかの前記第二キャッシュ処理手段が、前記キャッシュ完了報告の後、前記書き込みデータを前記第二キャッシュに格納する、請求項１または２のストレージ装置。
【請求項４】
請求項１乃至３のいずれかに記載のストレージ装置と、前記ディスク装置と、を包含する、ストレージシステム。
【請求項５】
ホスト装置とディスク装置の間に接続されるストレージ装置が包含する、
第二コントローラが、前記ホスト装置から前記書き込みデータを受信し、一時的にデータを保持するためのキャッシュメモリである第三キャッシュに前記書き込みデータを保持し、その後、第一コントローラに前記書き込みデータを送信し、その後、前記書き込みデータをキャッシュメモリである第二キャッシュに格納し、
第一コントローラが、前記第二コントローラから前記書き込みデータを受信し、キャッシュメモリである第一キャッシュに前記書き込みデータを保持し、前記ホスト装置にキャッシュ完了報告をし、
前記第一コントローラ、または、前記第二コントローラのいずれかが、前記書き込みデータを前記ディスク装置に書き込む、方法。
【請求項６】
前記第一コントローラが、前記第一キャッシュ、前記第二キャッシュ、及び、前記第三キャッシュにおける前記書き込みデータの保持の有無を格納し、
前記第一キャッシュ、及び、前記第三キャッシュにおける前記書き込みデータの前記保持を確認して、前記キャッシュ完了報告をし、
前記第一キャッシュ、及び、前記第二キャッシュにおける前記書き込みデータの前記保持を確認して、前記ディスク装置への前記書き込みデータの書き込みを許可する、請求項５の方法。
【請求項７】
前記第二コントローラを複数台備えた、前記ストレージ装置において、
複数の前記第二コントローラのいずれかが、前記ホスト装置から前記書き込みデータを受信し、
前記第一コントローラが、前記書き込みデータを受信した前記第二コントローラから前記書き込みデータを受信し、
複数の前記第二コントローラのいずれかが、前記キャッシュ完了報告の後、前記書き込みデータを第二キャッシュに格納する、請求項５または６の方法。
【請求項８】
ホスト装置とディスク装置の間に接続されるストレージ装置が包含する、
第二コンピュータに、前記ホスト装置から前記書き込みデータを受信し、一時的にデータを保持するためのキャッシュメモリである第三キャッシュに前記書き込みデータを保持し、その後、第一コンピュータに前記書き込みデータを送信し、その後、前記書き込みデータをキャッシュメモリである第二キャッシュに格納する処理を実行させ、
前記第一コンピュータに、前記第二コンピュータから前記書き込みデータを受信し、
キャッシュメモリである第一キャッシュに前記書き込みデータを保持し、前記ホスト装置にキャッシュ完了報告をする処理を実行させ、
前記第一コンピュータ、または、前記第二コンピュータのいずれかに、前記書き込みデータを前記ディスク装置に書き込む処理を実行させる、プログラム。
【請求項９】
前記第一コンピュータに、前記第一キャッシュ、前記第二キャッシュ、及び、前記第三キャッシュにおける前記書き込みデータの保持の有無を格納する処理と、
前記第一キャッシュ、及び、前記第三キャッシュにおける前記書き込みデータの前記保持を確認して、前記キャッシュ完了報告をする処理と、
前記第一キャッシュ、及び、前記第二キャッシュにおける前記書き込みデータが前記保持を確認して、前記ディスク装置への前記書き込みデータの書き込みを許可する処理と、を実行させる請求項８に記載のプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置、方法、及び、プログラムに関する。
【背景技術】
【０００２】
特許文献１には、マスターコントローラを含む複数のコントローラを備えたストレージシステムにおいて、マスターコントローラ以外のコントローラがホスト装置から書き込みデータを受信した場合、マスターコントローラのキャッシュの排他処理が完了するまで書き込みデータを一時的に保持し、その後、マスターコントローラのキャッシュに当該データを格納し、さらに、当該データを冗長先のコントローラに送信して冗長データを作成し、この時点で、ホスト装置にキャッシュ完了を報告する技術について記載されている。
【０００３】
特許文献２には、ディスク装置に書き込むデータを特定の領域に暫定的に書き込み、その時点でＣＰＵに対し書き込み処理を終了と報告し、ＲＡＩＤ等のパリティ作成は後の適当なタイミングで行う技術が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−０４７０２９号公報
【特許文献２】特開平６−３３２６３２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記文献の技術を用いた場合、ディスク装置への書き込みデータのキャッシュ完了報告の応答時間を短縮できない、という課題があった。
【０００６】
特許文献１では、マスターコントローラのキャッシュに書き込みデータを格納した時点で、キャッシュには、一時的に保持された書き込みデータ、及び、正式な書き込みデータが保持されているにもかかわらず、ホスト装置へのキャッシュ完了報告が、冗長データの作成完了まで待たされる。
【０００７】
特許文献２では、キャッシュ完了報告の早期化はできない。
【課題を解決するための手段】
【０００８】
本発明のストレージ装置は、ホスト装置とディスク装置の間に接続されるストレージ装置であって、キャッシュメモリである第一キャッシュと、前記第二コントローラから前記ホスト装置の書き込みデータを受信し、前記第一キャッシュに前記書き込みデータを保持し、前記ホスト装置にキャッシュ完了報告をする、第一キャッシュ処理手段と、を備える第一コントローラと、キャッシュメモリである第二キャッシュと、一時的にデータを保持するためのキャッシュメモリである第三キャッシュと、前記ホスト装置から前記書き込みデータを受信し、前記第三キャッシュに前記書き込みデータを保持し、その後、前記第一キャッシュ処理手段に前記書き込みデータを送信し、その後、前記書き込みデータを前記第二キャッシュに格納する、第二キャッシュ処理手段と、を備える第二コントローラと、を包含し、前記第一コントローラ、または、前記第二コントローラのいずれかが、前記書き込みデータを前記ディスク装置に書き込む。
【０００９】
本発明の方法は、ホスト装置とディスク装置の間に接続されるストレージ装置が包含する、第二コントローラが、前記ホスト装置から前記書き込みデータを受信し、一時的にデータを保持するためのキャッシュメモリである第三キャッシュに前記書き込みデータを保持し、その後、第一コントローラに前記書き込みデータを送信し、その後、前記書き込みデータをキャッシュメモリである第二キャッシュに格納し、第一コントローラが、前記第二コントローラから前記書き込みデータを受信し、キャッシュメモリである第一キャッシュに前記書き込みデータを保持し、前記ホスト装置にキャッシュ完了報告をし、前記第一コントローラ、または、前記第二コントローラのいずれかが、前記書き込みデータを前記ディスク装置に書き込む。
【００１０】
本発明のコンピュータプログラムは、ホスト装置とディスク装置の間に接続されるストレージ装置が包含する、第二コンピュータに、前記ホスト装置から前記書き込みデータを受信し、一時的にデータを保持するためのキャッシュメモリである第三キャッシュに前記書き込みデータを保持し、その後、第一コンピュータに前記書き込みデータを送信し、その後、前記書き込みデータをキャッシュメモリである第二キャッシュに格納する処理を実行させ、前記第一コンピュータに、前記第二コンピュータから前記書き込みデータを受信し、キャッシュメモリである第一キャッシュに前記書き込みデータを保持し、前記ホスト装置にキャッシュ完了報告をする処理を実行させ、前記第一コンピュータ、または、前記第二コンピュータのいずれかに、前記書き込みデータを前記ディスク装置に書き込む処理を実行させる。
【発明の効果】
【００１１】
本発明によれば、ディスク装置への書き込みデータのキャッシュ完了報告の応答時間を短縮できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、ストレージシステムの構成の一例を示す。
【図２】図２は、ストレージシステムの動作の一例を示す。
【図３】図３は、ストレージシステムの動作の一例を示す。
【図４】図４は、データ世代管理部の動作の一例を示す。
【図５】図５は、ストレージシステムの動作の一例を示すフローチャートである。
【図６】図６は、第二の実施形態に係る、ストレージシステムの構成の一例を示す。
【図７】図７は、第二の実施形態に係る、ストレージシステムの動作の一例を示す。
【図８】図８は、第二の実施形態に係る、ストレージシステムの動作の一例を示す。
【図９】図９は、第三の実施形態に係る、ストレージ装置の構成の一例を示す。
【発明を実施するための形態】
【００１３】
発明を実施するための第一の形態について、図面を参照して詳細に説明する。
【００１４】
図１は、ストレージシステム１０の構成の一例を示す。ストレージシステム１０は、ストレージ装置２０、ディスク装置３０、及び、ホスト装置４０を包含する。
【００１５】
ストレージ装置２０は、第一コントローラ２１、及び、第二コントローラ２２を包含する。
【００１６】
第一コントローラ２１は、第一キャッシュ処理部２１０、第一キャッシュ２１１、データ世代管理部２１２、データ世代記憶部２１３、及び、第一ディスク制御部２１４を備える。なお、第一コントローラ２１は、以下、コントローラＭ（Ｍはマスターコントローラを意味する）と記述する。
【００１７】
第一キャッシュ処理部２１０は、第二コントローラ２２から書き込みデータを受信し、第一キャッシュ２１１に書き込みデータを保持し、ホスト装置４０にキャッシュ完了報告をする。第一キャッシュ２１１は、キャッシュメモリである。
【００１８】
データ世代管理部２１２は、第一キャッシュ２１１、第二キャッシュ２２１、及び、第三キャッシュ２２２における書き込みデータの保持の有無をデータ世代記憶部２１３に格納する。
【００１９】
第一ディスク制御部２１４は、ディスク装置３０へのアクセスを実行する。
【００２０】
第二コントローラ２２は、第二キャッシュ処理部２２０、第二キャッシュ２２１、第三キャッシュ２２２、及び、第二ディスク制御部２２３を備える。なお、第二コントローラ２２は、以下、コントローラＳ（Ｓはスレーブコントローラを意味する）と記述する。
【００２１】
第二キャッシュ処理部２２０は、ホスト装置４０から書き込みデータを受信し、第三キャッシュ２２２に書き込みデータを保持し、その後、第一キャッシュ処理部２１０に書き込みデータを送信し、その後、前記書き込みデータを前記第二キャッシュに格納する。
第二キャッシュ２２１は、キャッシュメモリである。また、第三キャッシュ２２２は、一時的にデータを保持するためのキャッシュメモリである。
【００２２】
第二ディスク制御部２２３は、ディスク装置３０へのアクセスを実行する。
【００２３】
なお、第一キャッシュ処理部２１０、及び、第二キャッシュ処理部２２０は、ホスト装置４０、及び、他のコントローラとの間で、コマンド、データ、レスポンスを送受信するポートを備え、例えば、ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ）等に対応したデータの送受信が可能である。
【００２４】
ここで、第一コントローラ２１、及び、第二コントローラ２２は、コンピュータである。
【００２５】
また、第一キャッシュ処理部２１０、データ世代管理部２１２、第一ディスク制御部２１４、第二キャッシュ処理部２２０、及び、第二ディスク制御部２２３は、論理回路等のハードウェアで構成される。
【００２６】
また、データ世代記憶部２１３、第一キャッシュ２１１、第二キャッシュ２２１、及び、第三キャッシュ２２２は、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）等の記憶装置である。また、ディスク装置３０は、物理ディスク等の記憶装置である。
【００２７】
また、第一キャッシュ処理部２１０、データ世代管理部２１２、第一ディスク制御部２１４、第二キャッシュ処理部２２０、及び、第二ディスク制御部２２３は、コンピュータであるストレージ装置２０のプロセッサが、図示されないメモリ上のプログラムを実行することで実現されても良い。
【００２８】
図２は、ストレージシステム１０の動作の一例を示す。コントローラＭ２１、及び、コントローラＳ２２は、ホスト装置４０から送信された、ディスク装置３０への書き込みデータを各々のキャッシュを用いて冗長に保持する。
【００２９】
なお、本発明は、書き込みコマンド（以下、ライトコマンド）に関するものであり、書き込みデータはライトコマンドに連動して送信されるものとする。
【００３０】
また、書き込みデータは、各キャッシュに保持された後、第一ディスク制御部２１４、または、第二ディスク制御部２２３により、ディスク装置３０に書き込まれるが、ディスク装置３０へのデータの書き込みの動作の詳細については、本発明では言及しない。
【００３１】
なお、コントローラＭ２１は、データ世代管理部２１２を有する。データ世代管理部２１２は、全ての書き込みデータを管理する。このため、ストレージ装置２０に送信された書き込みデータは、必ず一旦はコントローラＭ２１のキャッシュに格納される。
【００３２】
図３は、ストレージシステム１０の動作の一例を示す。本発明は、コントローラＳ２２がホスト装置４０からライトコマンドを受信した場合を対象とする。図３は、この場合のストレージシステム１０動作の一例を示す。
【００３３】
まず、図３（ａ）に示すように、コントローラＳ２２は、ホスト装置４０からライトコマンドを受信すると（図中（１））、自コントローラの第三キャッシュ２２２に、ホスト装置４０からの書き込みデータを受け取る。なお、以下の説明では、このデータを「仮データ」と記述する。
【００３４】
なお、ここで、コントローラＳ２２は、次にコントローラＭ２１に書き込みデータを送信し直す前に、一旦、ホスト装置４０からの書き込みデータを受け取って、第三キャッシュ２２２に保持する。これは、コントローラＳ２２が、例えば、コントローラＭ２１の第一キャッシュ２１１への書き込みにおける排他処理等の完了を待って、その後に、書き込みデータを送信する等の動作に基づく。
【００３５】
次に、コントローラＳ２２は、コントローラＭ２１にライトコマンドを送信し直す（図中（２））。コントローラＭ２１は、第一キャッシュ２１１に書き込みデータを保持する。なお、以下の説明では、コントローラＭ２１の第一キャッシュ２１１に作成されたデータを「主データ」と記述する。
【００３６】
次に、この段階で、コントローラＭ２１は、ホスト装置４０に対して、キャッシュ完了報告のレスポンスを送信する（図中（３）及び（４））。
【００３７】
その後、図３（ｂ）に示すように、コントローラＭ２１は、「主データ」と同一のデータを作成し（以下、このデータを「冗長データ」と記述する）、コントローラＳ２２に対して、冗長データを送信する（図中（５））。
【００３８】
なお、ここで、コントローラＭ２１が、コントローラＳ２２に対して、冗長データ作成のコマンドを送信し、コントローラＳ２２が、仮データを基に冗長データを作成する、としてもよい。
【００３９】
コントローラＳ２２は、冗長データ作成のレスポンスをコントローラＭ２１に送信する（図中（６））。また、コントローラＳ２２は、その後、仮データを破棄する（図中（７））。
【００４０】
上記に示したように、本発明のストレージ装置２０は、冗長データ作成の前に、ホスト装置４０にキャッシュ完了報告することにより、ホスト装置４０への応答時間を短縮することが可能になる。
【００４１】
また、本発明のストレージ装置２０は、例えば、冗長データの作成をバックグラウンドで実行することで、装置内の処理の多重度を上げ、ハードウェア資源を効率的に使用することも可能になる。
【００４２】
図４は、データ世代管理部２１２の動作の一例を示す。データ世代管理部２１２は、書き込みデータの各コントローラの各キャッシュでの保持の状態（主データ、仮データ、及び、冗長データの有無）、及び、各々の書き込みデータ同一性を示す、データ世代の情報をデータ世代記憶部２１３に格納する。
【００４３】
また、図４は、例えば、「データＢ」のデータ世代が「１１」で、主データ、及び、冗長データが、キャッシュに保持されていることを示す。
【００４４】
なお、データ世代管理部２１２は、データ世代記憶部２１３の情報において、例えば、主データ、及び、仮データが格納されていることを確認して、ホスト装置４０に、キャッシュデータ作成の完了を報告する。
【００４５】
さらに、データ世代管理部２１２は、データ世代記憶部２１３の情報において、例えば、主データ、及び、冗長データが格納されていることを確認して、ディスク装置３０への当該データの書き込みを許可する。
【００４６】
なお、各書き込みデータは、例えば、図３に示したように、データ世代の情報も同時に保有する、としても良い。
【００４７】
図５は、ストレージシステム１０の動作の一例を示すフローチャートである。
【００４８】
まず、第二キャッシュ処理部２２０は、ホスト装置４０から書き込みデータを受信し、第三キャッシュ２２２上に仮データを保持する（Ｓ１０１）。
【００４９】
次に、第二キャッシュ処理部２２０は、第一キャッシュ処理部２１０に書き込みデータを送信し直し、第一キャッシュ処理部２１０は、第一キャッシュ２１１に書き込みデータを受け取り保持する（Ｓ１０２）。
【００５０】
ここで、データ世代管理部２１２は、第一キャッシュ２１１に受け取った書き込みデータをデータ世代記憶部２１３に追加し、データ世代をインクリメントする（Ｓ１０３）。また、データ世代管理部２１２は、主データの第一キャッシュ２１１での保持情報をデータ世代記憶部２１３に登録する（Ｓ１０４）。さらに、データ世代管理部２２１は、仮データの第三キャッシュ２２２での保持情報をデータ世代記憶部２１３に登録する（Ｓ１０５）。
【００５１】
次に、第一キャッシュ処理部２１０は、第二キャッシュ処理部２２０に、キャッシュ完了報告のレスポンスを送信する（Ｓ１０６）。
【００５２】
また、第二キャッシュ処理部２２０は、ホスト装置４０に、キャッシュ完了報告のレスポンスを送信する（Ｓ１０７）。
【００５３】
なお、（Ｓ１０６）及び（Ｓ１０７）において、第一コントローラ２１が、直接、ホスト装置４０にキャッシュ完了報告のレスポンスをしてもよい。
【００５４】
この後、第一キャッシュ処理部２１０は、第二キャッシュ処理部２２０に、冗長データを送信する（Ｓ１０８）。第二キャッシュ処理部２２０は、第二キャッシュ２２１に冗長データを格納し、レスポンスをデータ世代管理部２１２に送信する（Ｓ１０９）。
【００５５】
データ世代管理部２１２は、冗長データの第二キャッシュ２２１での格納情報をデータ世代記憶部２１３に登録する（Ｓ１１０）。
【００５６】
さらに、第二キャッシュ処理部２２０は、第三キャッシュ２２２の仮データを破棄する（Ｓ１１１）。データ世代管理部２１２は、データ世代記憶部２１３から仮データの情報を削除する（Ｓ１１２）。
【００５７】
なお、この後、データ世代管理部２１２が、ディスク装置３０へのデータの書き込みを許可し、それに基づいて、第一ディスク制御部２１４、または、第二ディスク制御部２２３がディスク装置３０へのアクセスを実行する。
【００５８】
また、本実施形態に記述したストレージシステム１０は、例えば、主データ、及び、仮データがキャッシュに保持された状態で、コントローラＭ２１での故障等により主データに問題が発生した場合、仮データを基に主データを復旧することが可能である。
【００５９】
本実施形態に係るストレージシステム１０は、以下に記載するような効果を奏する。
【００６０】
ホスト装置４０に対する、ディスク装置３０への書き込みデータのキャッシュ完了報告の応答時間を短縮できる。
【００６１】
その理由は、第三キャッシュ２２２に書き込みデータを一時的に保持し、第一キャッシュ２１１に書き込みデータを保持した時点で、書き込みデータの冗長データを作成する前に、ホスト装置４０にキャッシュ完了報告するからである。
＜第二の実施形態＞
図６は、第二の実施形態に係る、ストレージシステム１０の構成の一例を示す。本実施形態は、第一の実施形態において、複数台の第二コントローラ２２が接続される場合の構成である。なお、図６は、例えば、第二コントローラ２２が２台の場合の構成である。
【００６２】
ストレージ装置２０は、第一コントローラ２１、第二コントローラ２２−Ａ、及び、第二コントローラ２２−Ｂを包含する。
【００６３】
複数の第二コントローラ２２のいずれかがホスト装置４０から書き込みデータを受信し、当該コントローラの第二キャッシュ処理部２２０が、当該コントローラの第三キャッシュ２２２に一時的に書き込みデータを保持し、その後、第一コントローラ２１に書き込みデータを送信する。
【００６４】
第一コントローラ２１では、第一キャッシュ処理部２１０が、ホスト装置４０から書き込みデータを受信した第二コントローラ２２から書き込みデータを受信する。さらに、第一キャッシュ２１１に書き込みデータを保持し、ホスト装置４０にキャッシュ完了を報告する。
【００６５】
さらに、キャッシュ完了報告の後、第二コントローラ２２のいずれかの第二キャッシュ処理部２２０は、書き込みデータを当該コントローラの第二キャッシュ２２１に格納する。
【００６６】
なお、本実施形態では、複数のコントローラＳ２２が存在するため、第一キャッシュ処理部２１０は、書き込みデータごとに、冗長データを作成するコントローラを選定する。この際に、第一キャッシュ処理部２１０は、複数のコントローラの候補の中から、例えば、第二コントローラＳ２２の番号の小さい順に選定する、等の方法を任意に設定してよいものとする。
【００６７】
図７は、第二の実施形態に係る、ストレージシステム１０の動作の一例を示す。図７に示す、本実施形態でのストレージシステム１０の動作は、複数のコントローラＳ２２のうち、いずれかのコントローラＳ２２が、仮データ、または、冗長データを作成する点を除き、図３に示した第一の実施形態の動作と同等であるため、動作の詳細な記述は省略する。
【００６８】
まず、図７（ａ）に示すように、ストレージ装置２０は、例えば、コントローラＳ２２−Ｂに仮データを作成し、さらに、コントローラＭ２１に主データを作成した後、ホスト装置４０に対して、キャッシュ完了報告のレスポンスを送信する。
【００６９】
次に、図７（ｂ）に示すように、ストレージ装置２０は、例えば、コントローラＳ２２−Ａに冗長データを作成する。
【００７０】
図８は、第二の実施形態に係る、ストレージシステム１０の動作の一例を示す。図８は、冗長データを作成する対象に選定されたコントローラＳ２２が、冗長データを作成する前に故障した場合のストレージ装置２０の動作を示す。
【００７１】
まず、図８（ａ）は、ストレージ装置２０からホスト装置４０へのキャッシュ完了報告の応答までの動作を示し、ここまでは、図７（ａ）と同じ動作である。
【００７２】
次に、図８（ｂ）は、例えば、第二コントローラ２２−Ａが故障した場合を示す。図に示すように、コントローラＭ２１は、当初、冗長データの作成先として想定していたコントローラＳ２２−Ａの代わりに、コントローラ２２−Ｂに冗長データを作成する。上記を除く動作は、図７と同等であるため、詳細な説明は省略する。
【００７３】
本実施形態に係るストレージシステム１０は、以下に記載するような効果を奏する。
【００７４】
ホスト装置４０に対する、ディスク装置３０への書き込みデータのキャッシュ完了報告の応答時間を短縮できる。
【００７５】
その理由は、第三キャッシュ２２２に書き込みデータを一時的に保持し、第一キャッシュ２１１に書き込みデータを保持した時点で、書き込みデータの冗長データを作成する前に、ホスト装置４０にキッシュ完了報告するからである。
＜第三の実施形態＞
図９は、第三の実施形態に係る、ストレージ装置２０の構成の一例を示す。ストレージ装置２０は、第一コントローラ２１、及び、第二コントローラ２２を包含する。
【００７６】
第一コントローラ２１は、第一キャッシュ処理部２１０、及び、第一キャッシュ２１１を備える。
【００７７】
第一キャッシュ処理部２１０は、第二コントローラ２２から書き込みデータを受信し、第一キャッシュ２１１に書き込みデータを保持し、ホスト装置４０にキャッシュ完了報告をする。第一キャッシュ２１１は、キャッシュメモリである。
【００７８】
第二コントローラ２２は、第二キャッシュ処理部２２０、第二キャッシュ２２１、及び、第三キャッシュ２２２を備える。
【００７９】
第二キャッシュ処理部２２０は、ホスト装置４０から書き込みデータを受信し、第三キャッシュ２２２に一時的に書き込みデータを保持し、その後、第一キャッシュ処理部２１０に書き込みデータを送信し、その後、書き込みデータを第二キャッシュ２２１に格納する。第二キャッシュ２２１は、キャッシュメモリである。第三キャッシュ２２２は、一時的にデータを保持するためのキャッシュメモリである。
【００８０】
本実施形態に係るストレージ装置２０は、以下に記載するような効果を奏する。
【００８１】
ホスト装置４０に対する、ディスク装置３０への書き込みデータのキャッシュ完了報告の応答時間を短縮できる。
【００８２】
その理由は、第三キャッシュ２２２に書き込みデータを一時的に保持し、第一キャッシュ２１１に書き込みデータを保持した時点で、書き込みデータの冗長データを作成する前に、ホスト装置４０にキャッシュ完了報告するからである。
【００８３】
以上、実施形態を参照して本願発明を説明したが、本願発明は上記実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明のスコープ内で当業者が理解し得る様々な変更をすることができる。
【符号の説明】
【００８４】
１０    ストレージシステム
２０    ストレージ装置
２１    第一コントローラ
２１０    第一キャッシュ処理部
２１１    第一キャッシュ
２１２    データ世代管理部
２１３    データ世代記憶部
２１４    第一ディスク制御部
２２    第二コントローラ
２２０    第二キャッシュ処理部
２２１    第二キャッシュ
２２２    第三キャッシュ
２２３    第二ディスク制御部
３０    ディスク装置
４０    ホスト装置
【図１】
2014191358.tif 000003
【図２】
2014191358.tif 000004
【図３】
2014191358.tif 000005
【図４】
2014191358.tif 000006
【図５】
2014191358.tif 000007
【図６】
2014191358.tif 000008
【図７】
2014191358.tif 000009
【図８】
2014191358.tif 000010
【図９】
2014191358.tif 000011