(57)【要約】【課題】ストレージ装置において冗長性を確保しホストへの応答の高速化を図ること。【解決手段】本発明のストレージ装置は、一方のコントローラが備えるコピー元マスタタスクは、ホストから書き込み要求データを受けてコピー元マスタキャッシュに格納し、当該書き込み要求データを他方のコントローラが備えるコピー元スレーブタスクに二重化する前にコピー先マスタタスクに対してコピーし、当該コピー先マスタタスクからコピー完了の通知を受けるとホストに対して書き込み終了を通知する。【選択図】図６
2014186599.tif 000002
【特許請求の範囲】
【請求項１】
コピー元データが記憶されるコピー元ディスクと、コピー先データが記憶されるコピー先ディスクと、各ディスクに対してデータを二重化して記憶する制御を行う各コントローラと、を備え、
一方の前記コントローラは、前記コピー元ディスクに対する記憶制御を行う主系となるコピー元マスタタスクと、当該コピー元マスタタスクにて記憶制御するデータを一時的に格納するコピー元マスタキャッシュと、を備えると共に、
他方の前記コントローラは、前記コピー先ディスクに対する記憶制御を行う主系となるコピー先マスタタスクと、当該コピー先マスタタスクにて記憶制御するデータを一時的に格納するコピー先マスタキャッシュと、を備え、
さらに、前記一方のコントローラは、前記他方のコントローラが備える前記コピー先マスタタスク及び前記コピー先マスタキャッシュの従系となるコピー先スレーブタスク及びコピー先スレーブキャッシュを備え、
前記他方のコントローラは、前記一方のコントローラが備える前記コピー元マスタタスク及び前記コピー元マスタキャッシュの従系となるコピー元スレーブタスク及びコピー元スレーブキャッシュを備え、
前記一方のコントローラが備える前記コピー元マスタタスクは、ホストから書き込み要求データを受けて前記コピー元マスタキャッシュに格納し、当該書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化する前に前記コピー先マスタタスクに対してコピーし、当該コピー先マスタタスクからコピー完了の通知を受けると前記ホストに対して書き込み終了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクは、前記一方のコントローラが備える前記コピー元マスタタスクから書き込み要求データを受けて前記コピー先マスタキャッシュに格納して、前記コピー元マスタタスクに対してコピー完了を通知する、
ストレージ装置。
【請求項２】
請求項１に記載のストレージ装置であって、
前記一方のコントローラが備える前記コピー元マスタタスクは、前記コピー先マスタタスクからコピー完了の通知を受けて前記ホストに対して書き込み終了を通知してから、前記コピー元マスタキャッシュに格納されている書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化し、
前記他方のコントローラが備える前記コピー元スレーブタスクは、前記コピー元スレーブキャッシュに書き込み要求データを格納してから前記一方のコントローラが備える前記コピー元マスタタスクに二重化完了を通知し、
前記一方のコントローラが備える前記コピー元マスタタスクは、前記コピー元スレーブタスクから二重化完了の通知を受けると、前記コピー先マスタタスクに対してコピー元側における書き込み要求データの二重化完了を通知する、
ストレージ装置。
【請求項３】
請求項１又は２に記載のストレージシステムであって、
前記他方のコントローラが備える前記コピー先マスタタスクは、前記コピー元マスタタスクにコピー完了を通知してから、前記コピー先マスタキャッシュに格納されている書き込み要求データを前記一方のコントローラが備える前記コピー先スレーブタスクに二重化し、
前記一方のコントローラが備える前記コピー先スレーブタスクは、前記コピー先スレーブキャッシュに書き込み要求データを格納してから前記他方のコントローラが備える前記コピー先マスタタスクに二重化完了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクは、前記コピー先スレーブタスクから二重化完了の通知を受けると、前記コピー元マスタタスクに対してコピー先側における書き込み要求データの二重化完了を通知する、
ストレージ装置。
【請求項４】
請求項３に記載のストレージ装置であって、
前記一方のコントローラが備える前記コピー元マスタタスクは、前記他方のコントローラが備える前記コピー先マスタタスクからコピー先側における書き込み要求データの二重化完了の通知を受ける前に前記他方のコントローラが縮退した場合に、前記コピー元マスタキャッシュに格納されている書き込み要求データを前記コピー先スレーブタスクにコピーし、当該コピー先スレーブタスクは書き込み要求データを前記コピー先スレーブキャッシュに格納する、
ストレージ装置。
【請求項５】
請求項３又は４に記載のストレージ装置であって、
前記他方のコントローラが備える前記コピー先マスタタスクは、前記一方のコントローラが備える前記コピー元マスタタスクからコピー元側における書き込み要求データの二重化完了の通知を受ける前に前記一方のコントローラが縮退した場合に、前記コピー先マスタキャッシュに格納されている書き込み要求データを前記コピー元スレーブタスクにコピーし、当該コピー元スレーブタスクは書き込み要求データを前記コピー元スレーブキャッシュに格納する、
ストレージ装置。
【請求項６】
コピー元データが記憶されるコピー元ディスクと、コピー先データが記憶されるコピー先ディスクと、各ディスクに対してデータを二重化して記憶する制御を行う各コントローラと、を備え、
一方の前記コントローラは、前記コピー元ディスクに対する記憶制御を行う主系となるコピー元マスタタスクと、当該コピー元マスタタスクにて記憶制御するデータを一時的に格納するコピー元マスタキャッシュと、を備えると共に、
他方の前記コントローラは、前記コピー先ディスクに対する記憶制御を行う主系となるコピー先マスタタスクと、当該コピー先マスタタスクにて記憶制御するデータを一時的に格納するコピー先マスタキャッシュと、を備え、
さらに、前記一方のコントローラは、前記他方のコントローラが備える前記コピー先マスタタスク及び前記コピー先マスタキャッシュの従系となるコピー先スレーブタスク及びコピー先スレーブキャッシュを備え、
前記他方のコントローラは、前記一方のコントローラが備える前記コピー元マスタタスク及び前記コピー元マスタキャッシュの従系となるコピー元スレーブタスク及びコピー元スレーブキャッシュを備えた、ストレージ装置の前記各コントローラに、
前記一方のコントローラが備える前記コピー元マスタタスクが、ホストから書き込み要求データを受けて前記コピー元マスタキャッシュに格納し、当該書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化する前に前記コピー先マスタタスクに対してコピーし、当該コピー先マスタタスクからコピー完了の通知を受けると前記ホストに対して書き込み終了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記一方のコントローラが備える前記コピー元マスタタスクから書き込み要求データを受けて前記コピー先マスタキャッシュに格納して、前記コピー元マスタタスクに対してコピー完了を通知する、
処理を実行させるためのプログラム。
【請求項７】
請求項６に記載のプログラムであって、
前記各コントローラに、さらに、
前記一方のコントローラが備える前記コピー元マスタタスクが、前記コピー先マスタタスクからコピー完了の通知を受けて前記ホストに対して書き込み終了を通知してから、前記コピー元マスタキャッシュに格納されている書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化し、
前記他方のコントローラが備える前記コピー元スレーブタスクが、前記コピー元スレーブキャッシュに書き込み要求データを格納してから前記一方のコントローラが備える前記コピー元マスタタスクに二重化完了を通知し、
前記一方のコントローラが備える前記コピー元マスタタスクが、前記コピー元スレーブタスクから二重化完了の通知を受けると、前記コピー先マスタタスクに対してコピー元側における書き込み要求データの二重化完了を通知すると共に、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記コピー元マスタタスクにコピー完了を通知してから、前記コピー先マスタキャッシュに格納されている書き込み要求データを前記一方のコントローラが備える前記コピー先スレーブタスクに二重化し、
前記一方のコントローラが備える前記コピー先スレーブタスクが、前記コピー先スレーブキャッシュに書き込み要求データを格納してから前記他方のコントローラが備える前記コピー先マスタタスクに二重化完了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記コピー先スレーブタスクから二重化完了の通知を受けると、前記コピー元マスタタスクに対してコピー先側における書き込み要求データの二重化完了を通知する、
処理を実行させるためのプログラム。
【請求項８】
コピー元データが記憶されるコピー元ディスクと、コピー先データが記憶されるコピー先ディスクと、各ディスクに対してデータを二重化して記憶する制御を行う各コントローラと、を備え、
一方の前記コントローラは、前記コピー元ディスクに対する記憶制御を行う主系となるコピー元マスタタスクと、当該コピー元マスタタスクにて記憶制御するデータを一時的に格納するコピー元マスタキャッシュと、を備えると共に、
他方の前記コントローラは、前記コピー先ディスクに対する記憶制御を行う主系となるコピー先マスタタスクと、当該コピー先マスタタスクにて記憶制御するデータを一時的に格納するコピー先マスタキャッシュと、を備え、
さらに、前記一方のコントローラは、前記他方のコントローラが備える前記コピー先マスタタスク及び前記コピー先マスタキャッシュの従系となるコピー先スレーブタスク及びコピー先スレーブキャッシュを備え、
前記他方のコントローラは、前記一方のコントローラが備える前記コピー元マスタタスク及び前記コピー元マスタキャッシュの従系となるコピー元スレーブタスク及びコピー元スレーブキャッシュを備えた、ストレージ装置によるデータ書き込み方法であって、
前記一方のコントローラが備える前記コピー元マスタタスクが、ホストから書き込み要求データを受けて前記コピー元マスタキャッシュに格納し、当該書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化する前に前記コピー先マスタタスクに対してコピーし、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記一方のコントローラが備える前記コピー元マスタタスクから書き込み要求データを受けて前記コピー先マスタキャッシュに格納して、前記コピー元マスタタスクに対してコピー完了を通知し、
前記一方のコントローラが備える前記コピー元マスタタスクが、前記コピー先マスタタスクからコピー完了の通知を受けると前記ホストに対して書き込み終了を通知する、
データ書き込み方法。
【請求項９】
請求項８に記載のデータ書き込み方法であって、
前記一方のコントローラが備える前記コピー元マスタタスクが、前記コピー先マスタタスクからコピー完了の通知を受けて前記ホストに対して書き込み終了を通知してから、前記コピー元マスタキャッシュに格納されている書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化し、
前記他方のコントローラが備える前記コピー元スレーブタスクが、前記コピー元スレーブキャッシュに書き込み要求データを格納してから前記一方のコントローラが備える前記コピー元マスタタスクに二重化完了を通知し、
前記一方のコントローラが備える前記コピー元マスタタスクが、前記コピー元スレーブタスクから二重化完了の通知を受けると、前記コピー先マスタタスクに対してコピー元側における書き込み要求データの二重化完了を通知すると共に、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記コピー元マスタタスクにコピー完了を通知してから、前記コピー先マスタキャッシュに格納されている書き込み要求データを前記一方のコントローラが備える前記コピー先スレーブタスクに二重化し、
前記一方のコントローラが備える前記コピー先スレーブタスクが、前記コピー先スレーブキャッシュに書き込み要求データを格納してから前記他方のコントローラが備える前記コピー先マスタタスクに二重化完了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記コピー先スレーブタスクから二重化完了の通知を受けると、前記コピー元マスタタスクに対してコピー先側の書き込み要求データの二重化完了を通知する、
書き込み方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージ装置にかかり、特に、レプリケーション機能を有するストレージ装置に関する。
【背景技術】
【０００２】
データの読み書きを実施するホスト１００からのデータを保存するストレージ装置は、冗長性を確保するために、複数の論理ディスクにレプリケーションする機能を備えている。このようなストレージ装置では、コピー元ボリューム（以降ＭＶと記載）からコピー先ボリューム（以降ＲＶと記載）へのデータコピー処理を行う場合、ＭＶからＲＶへのデータコピーに加え、ＭＶ又はＲＶによる受信データを複数のコントローラで多重化し、データの冗長性を確保した後、ホストへ正常終了を通知することになる（例えば、特許文献１を参照）。
【０００３】
具体的に、ストレージ装置は、図１に示すように、コピー元であるＭＶデータを保存する論理ディスクであるＭＶ１４１及びコピー先であるＲＶデータを保存する論理ディスクであるＲＶ１４２と、ストレージ装置の制御を行う２つのコントローラ１２０，１３０と、を備えている。そして、一方のコントローラ１２０は、ＭＶ１４１に対するＭＶデータの記憶制御を行うＭＶマスタタスク１２１と、ＭＶキャッシュデータ領域１２２と、ＲＶスレーブタスク１２３と、ＲＶキャッシュデータ領域１２４と、を備えている。また、他方のコントローラ１３０は、ＲＶ１４２に対するＲＶデータの記憶制御を行うＲＶマスタタスク１３３と、ＲＶキャッシュデータ領域１３４と、ＭＶスレーブタスク１３１と、ＭＶキャッシュデータ領域１３２と、を備えている。
【０００４】
上記各コントローラ１２０，１３０では、論理ディスク（ＭＶ，ＲＶ）単位でマスタタスクとスレーブタスク（１２１と１３１、１３３と１２３）が動作し、論理ディスクの情報は、各マスタタスク１２１，１３３で管理される。そして、２つのコントローラでデータを冗長管理することで、障害発生時にもデータ保持可能な構成となっている。
【０００５】
上述したストレージ装置におけるレプリケーション動作を、図２乃至図４を参照して説明する。なお、レプリケーション機能とは、論理ディスクの複製を作成する機能である。同期転送機能利用時には、ホストに正常終了を通知した時点で、ＭＶとＲＶのデータが同期していることを保障する。
【０００６】
まず、ホスト１００からストレージ装置１１０に対して、ＭＶ１４１へのデータライトが実施されると（図２のＹ１０１）、ホストからの書き込み要求データは、ＭＶマスタタスク１２１のＭＶキャッシュ１２２に保存される。その後、データの冗長性を確保するために、ＭＶマスタタスク１２１はＭＶスレーブタスク１３１に対してデータ二重化を実施する（図２のＹ１０２）。そして、ＭＶキャッシュ１３２にデータがコピーされた後、ＭＶスレーブタスク１３１は、ＭＶマスタタスク１２１へデータ二重化完了を通知する（図２のＹ１０３）。
【０００７】
続いて、ＭＶマスタタスク１２１は、データ二重化完了通知（図２のＹ１０３）を受けた後、ＲＶマスタタスク１３３に対して書き込み要求データコピーを実施する（図３のＹ１０４）。これにより、書き込み要求データはＲＶキャッシュ１３４に保存され、その後、ＲＶスレーブタスク１２３へデータの二重化を実施する（図３のＹ１０５）。ＲＶスレーブタスク１２３は、書き込み要求データをＲＶキャッシュ１２４に格納し、ＲＶマスタタスク１３３へデータ二重化完了を通知する（図３のＹ１０６）。
【０００８】
続いて、ＲＶマスタタスク１３３は、上記データ二重化完了通知（図３のＹ１０６）を受けた後、ＭＶマスタタスク１２１へコピー完了を通知する（図４のＹ１０７）。ＭＶマスタタスク１２１は、コピー完了通知（図４のＹ１０７）を受けた後、ホスト１００にデータライトの正常終了を通知する（図４のＹ１０８）。
【先行技術文献】
【特許文献】
【０００９】
【特許文献１】特開２００８−４７０２９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１０】
上述したように、複数のコントローラを実装し、冗長性を確保するストレージ装置では、レプリケーション同期転送機能を利用する際には、複数のコントローラ間でＭＶとＲＶのデータ多重化を行いながら、ＭＶ−ＲＶ間のコピーを実行している。ところが、このようなストレージ装置では、ＭＶ−ＲＶ間のコピー処理完了後に、ホストへ正常終了を通知する必要があるため、ホストへの応答が遅くなってしまう、という課題があった。
【００１１】
このため、本発明の目的は、上述した課題である、複数のコントローラ間で多重化を行うレプリケーション機能を備えたストレージ装置において、ホストへの応答が遅くなる、ことを解決することにある。
【課題を解決するための手段】
【００１２】
本発明の一形態であるストレージ装置は、
コピー元データが記憶されるコピー元ディスクと、コピー先データが記憶されるコピー先ディスクと、各ディスクに対してデータを二重化して記憶する制御を行う各コントローラと、を備え、
一方の前記コントローラは、前記コピー元ディスクに対する記憶制御を行う主系となるコピー元マスタタスクと、当該コピー元マスタタスクにて記憶制御するデータを一時的に格納するコピー元マスタキャッシュと、を備えると共に、
他方の前記コントローラは、前記コピー先ディスクに対する記憶制御を行う主系となるコピー先マスタタスクと、当該コピー先マスタタスクにて記憶制御するデータを一時的に格納するコピー先マスタキャッシュと、を備え、
さらに、前記一方のコントローラは、前記他方のコントローラが備える前記コピー先マスタタスク及び前記コピー先マスタキャッシュの従系となるコピー先スレーブタスク及びコピー先スレーブキャッシュを備え、
前記他方のコントローラは、前記一方のコントローラが備える前記コピー元マスタタスク及び前記コピー元マスタキャッシュの従系となるコピー元スレーブタスク及びコピー元スレーブキャッシュを備え、
前記一方のコントローラが備える前記コピー元マスタタスクは、ホストから書き込み要求データを受けて前記コピー元マスタキャッシュに格納し、当該書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化する前に前記コピー先マスタタスクに対してコピーし、当該コピー先マスタタスクからコピー完了の通知を受けると前記ホストに対して書き込み終了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクは、前記一方のコントローラが備える前記コピー元マスタタスクから書き込み要求データを受けて前記コピー先マスタキャッシュに格納して、前記コピー元マスタタスクに対してコピー完了を通知する、
という構成を取る。
【００１３】
また、本発明の他の形態であるプログラムは、
コピー元データが記憶されるコピー元ディスクと、コピー先データが記憶されるコピー先ディスクと、各ディスクに対してデータを二重化して記憶する制御を行う各コントローラと、を備え、
一方の前記コントローラは、前記コピー元ディスクに対する記憶制御を行う主系となるコピー元マスタタスクと、当該コピー元マスタタスクにて記憶制御するデータを一時的に格納するコピー元マスタキャッシュと、を備えると共に、
他方の前記コントローラは、前記コピー先ディスクに対する記憶制御を行う主系となるコピー先マスタタスクと、当該コピー先マスタタスクにて記憶制御するデータを一時的に格納するコピー先マスタキャッシュと、を備え、
さらに、前記一方のコントローラは、前記他方のコントローラが備える前記コピー先マスタタスク及び前記コピー先マスタキャッシュの従系となるコピー先スレーブタスク及びコピー先スレーブキャッシュを備え、
前記他方のコントローラは、前記一方のコントローラが備える前記コピー元マスタタスク及び前記コピー元マスタキャッシュの従系となるコピー元スレーブタスク及びコピー元スレーブキャッシュを備えた、ストレージ装置の前記各コントローラに、
前記一方のコントローラが備える前記コピー元マスタタスクが、ホストから書き込み要求データを受けて前記コピー元マスタキャッシュに格納し、当該書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化する前に前記コピー先マスタタスクに対してコピーし、当該コピー先マスタタスクからコピー完了の通知を受けると前記ホストに対して書き込み終了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記一方のコントローラが備える前記コピー元マスタタスクから書き込み要求データを受けて前記コピー先マスタキャッシュに格納して、前記コピー元マスタタスクに対してコピー完了を通知する、
処理を実行させるためのプログラムである。
【００１４】
また、本発明の他の形態であるデータ書き込み方法は、
コピー元データが記憶されるコピー元ディスクと、コピー先データが記憶されるコピー先ディスクと、各ディスクに対してデータを二重化して記憶する制御を行う各コントローラと、を備え、
一方の前記コントローラは、前記コピー元ディスクに対する記憶制御を行う主系となるコピー元マスタタスクと、当該コピー元マスタタスクにて記憶制御するデータを一時的に格納するコピー元マスタキャッシュと、を備えると共に、
他方の前記コントローラは、前記コピー先ディスクに対する記憶制御を行う主系となるコピー先マスタタスクと、当該コピー先マスタタスクにて記憶制御するデータを一時的に格納するコピー先マスタキャッシュと、を備え、
さらに、前記一方のコントローラは、前記他方のコントローラが備える前記コピー先マスタタスク及び前記コピー先マスタキャッシュの従系となるコピー先スレーブタスク及びコピー先スレーブキャッシュを備え、
前記他方のコントローラは、前記一方のコントローラが備える前記コピー元マスタタスク及び前記コピー元マスタキャッシュの従系となるコピー元スレーブタスク及びコピー元スレーブキャッシュを備えた、ストレージ装置によるデータ書き込み方法であって、
前記一方のコントローラが備える前記コピー元マスタタスクが、ホストから書き込み要求データを受けて前記コピー元マスタキャッシュに格納し、当該書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化する前に前記コピー先マスタタスクに対してコピーし、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記一方のコントローラが備える前記コピー元マスタタスクから書き込み要求データを受けて前記コピー先マスタキャッシュに格納して、前記コピー元マスタタスクに対してコピー完了を通知し、
前記一方のコントローラが備える前記コピー元マスタタスクが、前記コピー先マスタタスクからコピー完了の通知を受けると前記ホストに対して書き込み終了を通知する、
という構成を取る。
【発明の効果】
【００１５】
本発明は、以上のように構成されることにより、複数のコントローラ間で多重化を行うレプリケーション機能を備えたストレージ装置において、データの冗長性を確保しながら、ホストへの応答時間の短縮化を図ることができる。
【図面の簡単な説明】
【００１６】
【図１】本発明に関連する別の技術によるストレージ装置の構成を示すブロック図である。
【図２】本発明に関連する別の技術によるストレージ装置の動作を説明する図である。
【図３】本発明に関連する別の技術によるストレージ装置の動作を説明する図である。
【図４】本発明に関連する別の技術によるストレージ装置の動作を説明する図である。
【図５】本発明におけるストレージ装置の構成を示すブロックである。
【図６】図５に開示したストレージ装置の動作を説明する図である。
【図７】図５に開示したストレージ装置の動作を説明する図である。
【図８】図５に開示したストレージ装置の動作を説明する図である。
【図９】図５に開示したストレージ装置の動作を説明する図である。
【図１０】図５に開示したストレージ装置の動作を説明する図である。
【図１１】図５に開示したストレージ装置の動作を説明する図である。
【図１２】図５に開示したストレージ装置の動作を説明する図である。
【発明を実施するための形態】
【００１７】
＜実施形態１＞
本発明の第１の実施形態を、図５乃至図１２を参照して説明する。図５は、ストレージ装置の構成を示すブロックである。図６乃至図８は、ストレージ装置によるレプリケーションの動作を示す図であり、図９乃至図１２は、コントローラに障害が生じたときの動作を示す図である。
【００１８】
図５に示すように、ストレージ装置１０は、ホスト１に接続されており、当該ホスト１からの書き込み要求データを受け付けて、冗長性を確保するために、複数の論理ディスクにレプリケーションする機能を備えている。例えば、ストレージ装置１０は、複数の論理ディスクとして、コピー元ボリューム（以降「ＭＶ」と記載）（コピー元ディスク）４１とコピー先ボリューム（以降「ＲＶ」と記載）（コピー先ディスク）４２とを備えており、ＭＶ４１にデータを書き込む際に、ＭＶ４１からＲＶ４２へデータコピーを行ってレプリケーションする制御装置として、２つのコントローラ２０，３０を備えている。
【００１９】
そして、一方のコントローラ２０は、ＭＶ４１に対するＭＶデータの記憶制御を行うＭＶマスタタスク２１と、ＭＶキャッシュ２２と、ＲＶスレーブタスク２３と、ＲＶキャッシュ２４と、を備えている。また、他方のコントローラ３０は、ＲＶ４２に対するＲＶデータの記憶制御を行うＲＶマスタタスク３３と、ＲＶキャッシュ３４と、ＭＶスレーブタスク３１と、ＭＶキャッシュ３２と、を備えている。
【００２０】
ここで、上記各コントローラ２０，３０は、論理ディスク（ＭＶ，ＲＶ）単位でマスタタスクとスレーブタスク（２１と３１、３３と２３）が動作し、論理ディスクの情報は、各マスタタスク２１，３３で管理される。このとき、各マスタタスク２１，３３は、それぞれ異なるコントローラ２０，３０で動作している。つまり、本実施形態では、ＭＶ４１に対する記憶制御を行う主系となるＭＶマスタタスク２１（コピー元マスタタスク）及びＭＶキャッシュ２２（コピー元マスタキャッシュ）が一方のコントローラ２０に設けられており、その従系となるＭＶスレーブタスク３１（コピー元スレーブタスク）及びＭＶキャッシュ３２（コピー元スレーブキャッシュ）が他方のコントローラ３０に設けられている。また、ＲＶ４２に対する記憶制御を行う主系となるＲＶマスタタスク３３（コピー先マスタタスク）及びＲＶキャッシュ３４（コピー先マスタキャッシュ）が他方のコントローラ３０に設けられており、その従系となるＲＶスレーブタスク２３（コピー先スレーブタスク）及びＲＶキャッシュ２４（コピー先スレーブキャッシュ）が一方のコントローラ２０に設けられている。
【００２１】
次に、上述したストレージ装置におけるレプリケーション動作を、図６乃至図８を参照して説明する。まず、ホスト１からストレージ装置１０に対して、ＭＶ４１へのデータライトが実施される（図６のＹ１）。すると、ホスト１からの書き込み要求データは、一方のコントローラ２０に設けられたＭＶマスタタスク２１のＭＶキャッシュ２２に保存される。その後、ＭＶマスタタスク２１は、他方のコントローラ３０に設けられたＲＶマスタタスク３３に対して、ＭＶキャッシュ２２に格納されている書き込み要求データのコピーを実施する（図６のＹ２）。
【００２２】
続いて、コントローラ３０のＲＶマスタタスク３３は、書き込み要求データをＲＶキャッシュ３４に格納した後、コントローラ２０のＭＶマスタタスク２１へコピー完了を通知する（図６のＹ３）。ＭＶマスタタスク２０は、他方のコントローラ３０から送信されたコピー完了通知（図６のＹ３）を受けた後、ホスト１にデータライトの正常終了を通知する（図６のＹ４）。
【００２３】
続いて、ＭＶマスタタスク２１は、ホスト１へデータライトの正常終了を通知した後（図６のＹ４）、他方のコントローラ３０に設けられたＭＶスレーブタスク３１に対して書き込みデータの二重化を実施する（図７のＹ５）。つまり、ＭＶマスタタスク２１は、ＭＶキャッシュ２２に格納された書き込み要求データを、他方のコントローラ３０に設けられたＭＶスレーブタスク３１に送信する。これを受けたＭＶスレーブタスク３１は、書き込み要求データをＭＶキャッシュ３２に格納し、その後、ＭＶマスタタスク２１へデータ二重化完了を通知する（図７のＹ６）。
【００２４】
また、他方のコントローラ３０に設けられたＲＶマスタタスク３３は、上述したようにＭＶマスタタスク２１にコピー完了を通知した後（図６のＹ３）、一方のコントローラ２０に設けられたＲＶスレーブタスク２３に対して書き込み要求データの二重化を実施する（図７のＹ７）。ＲＶスレーブタスク２３は、書き込み要求データをＲＶキャッシュ２４へ格納した後、他方のコントローラ３０に設けられたＲＶマスタタスク３３にデータ二重化完了を通知する（図７のＹ８）。
【００２５】
続いて、一方のコントローラ２０のＭＶマスタタスク２０は、データ二重化が完了した後（図７のＹ６）、他方のコントローラ３０のＲＶマスタタスク３３へＭＶデータ二重化完了を通知する（図８のＹ９）。同様に、他方のコントローラ３０のＲＶマスタタスク３３は、データ二重化が完了した後（図７のＹ８）、一方のコントローラ２０のＭＶマスタタスク２１へＲＶデータ二重化完了を通知する（図８のＹ１０）。
【００２６】
このように、本実施形態におけるストレージ装置１０は、上記背景技術で説明した技術とは異なり、ＭＶ及びＲＶのデータをコントローラ間（２０，３０）で二重化する前に、異なるコントローラ２０，３０にそれぞれ設けられたＭＶマスタタスク２１からＲＶマスタタスク３３に書き込み要求データをコピーし、ホスト１への応答を返却している。これにより、ホストへの応答時間を短縮化することができる。
【００２７】
一方で、本実施形態におけるストレージ装置１０では、データ二重化を行なわずにホストへ正常終了を応答しているため、データ二重化完了前にいずれかのコントローラが縮退してしまった場合には、ＭＶキャッシュ、もしくは、ＲＶキャッシュ上の書き込み要求データが失われてしまう。このため、以下に説明するように、書き込み要求データを保持しているＭＶ／ＲＶキャッシュから、データを保持していないＲＶ／ＭＶキャッシュへのデータコピーが必要になる。これにより、データの冗長性も確保している。
【００２８】
具体的に、データ二重化完了前に、他方のコントローラ３０が縮退した場合の動作を、図９乃至図１０を参照して説明する。まず、図６を参照して説明したように、ホスト１からの書き込み要求データをＭＶマスタタスク２１のＭＶキャッシュ２２に格納すると共に、ＲＶマスタタスク３３のＲＶキャッシュ３４に格納し、ＭＶマスタタスク２１からホスト１にデータライトの正常終了を通知したこととする（図９のＹ１１〜Ｙ１４）。
【００２９】
その後、一方のコントローラ２０が他方のコントローラ３０の縮退を検出すると（図９のＹ１５）、一方のコントローラ２０に設けられたＭＶマスタタスク２１は、他方のコントローラ３０が備えるＲＶマスタタスク３３からＲＶデータ二重化完了通知（図８のＹ１０）を受信していないことから、自コントローラ２０内のＲＶキャッシュ２４に書き込み要求データが格納されていないと判断する。
【００３０】
すると、ＭＶマスタタスク２１は、自コントローラ２０が備えるＲＶスレーブタスク２３に対して、ＭＶキャッシュ２２に保持している書き込み要求データのコピーを実施する（図１０のＹ１６）。そして、コントローラ２０が備えるＲＶスレーブタスク２３は、ＲＶキャッシュ２４へ書き込み要求データを格納した後、ＭＶマスタタスク２１へコピー完了を通知する（図１０のＹ１７）。
【００３１】
以上により、ＭＶ４１に対してはＭＶマスタタスク２１から書き込み要求データを記憶することができると共に、ＲＶ４２に対してはＲＶスレーブタスク２３から書き込み要求データを記憶することができる。従って、冗長性を確保しつつ、上述したようにホスト１への応答時間を短縮化することができる。
【００３２】
次に、データ二重化完了前に、一方のコントローラ２０が縮退した場合の動作を、図１１乃至図１２を参照して説明する。まず、上述同様に、ＭＶマスタタスク２１からホスト１にデータライトの正常終了を通知したこととする（図１１のＹ２１〜Ｙ２４）。
【００３３】
その後、他方のコントローラ３０が一方のコントローラ２０の縮退を検出すると（図１１のＹ２５）、他方のコントローラ３０が備えるＲＶマスタタスク３３は、一方のコントローラ２０が備えるＭＶマスタタスク２１からＭＶデータ二重化完了通知（図８のＹ９）を受信していないことから、自コントローラ３０内のＭＶキャッシュ３２に書き込み要求データが格納されていないと判断する。
【００３４】
すると、ＲＶマスタタスク３３は、自コントローラ３０が備えるＭＶスレーブタスク３１に対して、ＲＶキャッシュ３４に保持している書き込み要求データのコピーを実施する（図１２のＹ２６）。そして、コントローラ３０が備えるＭＶスレーブタスク３１は、ＭＶキャッシュ３２へ書き込み要求データを格納した後、ＲＶマスタタスク３３へコピー完了を通知する（図１２のＹ２７）。
【００３５】
以上により、ＭＶ４１に対しては従系であるＭＶスレーブタスク３１から書き込み要求データを記憶することができると共に、ＲＶ４２に対してはＲＶマスタタスク３３から書き込み要求データを記憶することができる。従って、冗長性を確保しつつ、上述したようにホストへの応答時間を短縮化することができる。
【００３６】
＜付記＞
上記実施形態の一部又は全部は、以下の付記のようにも記載されうる。以下、本発明におけるストレージ装置、プログラム、データ書き込み方法の構成の概略を説明する。但し、本発明は、以下の構成に限定されない。
【００３７】
（付記１）
コピー元データが記憶されるコピー元ディスクと、コピー先データが記憶されるコピー先ディスクと、各ディスクに対してデータを二重化して記憶する制御を行う各コントローラと、を備え、
一方の前記コントローラは、前記コピー元ディスクに対する記憶制御を行う主系となるコピー元マスタタスクと、当該コピー元マスタタスクにて記憶制御するデータを一時的に格納するコピー元マスタキャッシュと、を備えると共に、
他方の前記コントローラは、前記コピー先ディスクに対する記憶制御を行う主系となるコピー先マスタタスクと、当該コピー先マスタタスクにて記憶制御するデータを一時的に格納するコピー先マスタキャッシュと、を備え、
さらに、前記一方のコントローラは、前記他方のコントローラが備える前記コピー先マスタタスク及び前記コピー先マスタキャッシュの従系となるコピー先スレーブタスク及びコピー先スレーブキャッシュを備え、
前記他方のコントローラは、前記一方のコントローラが備える前記コピー元マスタタスク及び前記コピー元マスタキャッシュの従系となるコピー元スレーブタスク及びコピー元スレーブキャッシュを備え、
前記一方のコントローラが備える前記コピー元マスタタスクは、ホストから書き込み要求データを受けて前記コピー元マスタキャッシュに格納し、当該書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化する前に前記コピー先マスタタスクに対してコピーし、当該コピー先マスタタスクからコピー完了の通知を受けると前記ホストに対して書き込み終了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクは、前記一方のコントローラが備える前記コピー元マスタタスクから書き込み要求データを受けて前記コピー先マスタキャッシュに格納して、前記コピー元マスタタスクに対してコピー完了を通知する、
ストレージ装置。
【００３８】
（付記２）
付記１に記載のストレージ装置であって、
前記一方のコントローラが備える前記コピー元マスタタスクは、前記コピー先マスタタスクからコピー完了の通知を受けて前記ホストに対して書き込み終了を通知してから、前記コピー元マスタキャッシュに格納されている書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化し、
前記他方のコントローラが備える前記コピー元スレーブタスクは、前記コピー元スレーブキャッシュに書き込み要求データを格納してから前記一方のコントローラが備える前記コピー元マスタタスクに二重化完了を通知し、
前記一方のコントローラが備える前記コピー元マスタタスクは、前記コピー元スレーブタスクから二重化完了の通知を受けると、前記コピー先マスタタスクに対してコピー元側における書き込み要求データの二重化完了を通知する、
ストレージ装置。
【００３９】
（付記３）
付記１又は２に記載のストレージシステムであって、
前記他方のコントローラが備える前記コピー先マスタタスクは、前記コピー元マスタタスクにコピー完了を通知してから、前記コピー先マスタキャッシュに格納されている書き込み要求データを前記一方のコントローラが備える前記コピー先スレーブタスクに二重化し、
前記一方のコントローラが備える前記コピー先スレーブタスクは、前記コピー先スレーブキャッシュに書き込み要求データを格納してから前記他方のコントローラが備える前記コピー先マスタタスクに二重化完了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクは、前記コピー先スレーブタスクから二重化完了の通知を受けると、前記コピー元マスタタスクに対してコピー先側における書き込み要求データの二重化完了を通知する、
ストレージ装置。
【００４０】
（付記４）
付記３に記載のストレージ装置であって、
前記一方のコントローラが備える前記コピー元マスタタスクは、前記他方のコントローラが備える前記コピー先マスタタスクからコピー先側における書き込み要求データの二重化完了の通知を受ける前に前記他方のコントローラが縮退した場合に、前記コピー元マスタキャッシュに格納されている書き込み要求データを前記コピー先スレーブタスクにコピーし、当該コピー先スレーブタスクは書き込み要求データを前記コピー先スレーブキャッシュに格納する、
ストレージ装置。
【００４１】
（付記５）
付記３又は４に記載のストレージ装置であって、
前記他方のコントローラが備える前記コピー先マスタタスクは、前記一方のコントローラが備える前記コピー元マスタタスクからコピー元側における書き込み要求データの二重化完了の通知を受ける前に前記一方のコントローラが縮退した場合に、前記コピー先マスタキャッシュに格納されている書き込み要求データを前記コピー元スレーブタスクにコピーし、当該コピー元スレーブタスクは書き込み要求データを前記コピー元スレーブキャッシュに格納する、
ストレージ装置。
【００４２】
（付記６）
コピー元データが記憶されるコピー元ディスクと、コピー先データが記憶されるコピー先ディスクと、各ディスクに対してデータを二重化して記憶する制御を行う各コントローラと、を備え、
一方の前記コントローラは、前記コピー元ディスクに対する記憶制御を行う主系となるコピー元マスタタスクと、当該コピー元マスタタスクにて記憶制御するデータを一時的に格納するコピー元マスタキャッシュと、を備えると共に、
他方の前記コントローラは、前記コピー先ディスクに対する記憶制御を行う主系となるコピー先マスタタスクと、当該コピー先マスタタスクにて記憶制御するデータを一時的に格納するコピー先マスタキャッシュと、を備え、
さらに、前記一方のコントローラは、前記他方のコントローラが備える前記コピー先マスタタスク及び前記コピー先マスタキャッシュの従系となるコピー先スレーブタスク及びコピー先スレーブキャッシュを備え、
前記他方のコントローラは、前記一方のコントローラが備える前記コピー元マスタタスク及び前記コピー元マスタキャッシュの従系となるコピー元スレーブタスク及びコピー元スレーブキャッシュを備えた、ストレージ装置の前記各コントローラに、
前記一方のコントローラが備える前記コピー元マスタタスクが、ホストから書き込み要求データを受けて前記コピー元マスタキャッシュに格納し、当該書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化する前に前記コピー先マスタタスクに対してコピーし、当該コピー先マスタタスクからコピー完了の通知を受けると前記ホストに対して書き込み終了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記一方のコントローラが備える前記コピー元マスタタスクから書き込み要求データを受けて前記コピー先マスタキャッシュに格納して、前記コピー元マスタタスクに対してコピー完了を通知する、
処理を実行させるためのプログラム。
【００４３】
（付記７）
付記６に記載のプログラムであって、
前記各コントローラに、さらに、
前記一方のコントローラが備える前記コピー元マスタタスクが、前記コピー先マスタタスクからコピー完了の通知を受けて前記ホストに対して書き込み終了を通知してから、前記コピー元マスタキャッシュに格納されている書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化し、
前記他方のコントローラが備える前記コピー元スレーブタスクが、前記コピー元スレーブキャッシュに書き込み要求データを格納してから前記一方のコントローラが備える前記コピー元マスタタスクに二重化完了を通知し、
前記一方のコントローラが備える前記コピー元マスタタスクが、前記コピー元スレーブタスクから二重化完了の通知を受けると、前記コピー先マスタタスクに対してコピー元側における書き込み要求データの二重化完了を通知すると共に、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記コピー元マスタタスクにコピー完了を通知してから、前記コピー先マスタキャッシュに格納されている書き込み要求データを前記一方のコントローラが備える前記コピー先スレーブタスクに二重化し、
前記一方のコントローラが備える前記コピー先スレーブタスクが、前記コピー先スレーブキャッシュに書き込み要求データを格納してから前記他方のコントローラが備える前記コピー先マスタタスクに二重化完了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記コピー先スレーブタスクから二重化完了の通知を受けると、前記コピー元マスタタスクに対してコピー先側における書き込み要求データの二重化完了を通知する、
処理を実行させるためのプログラム。
【００４４】
（付記８）
コピー元データが記憶されるコピー元ディスクと、コピー先データが記憶されるコピー先ディスクと、各ディスクに対してデータを二重化して記憶する制御を行う各コントローラと、を備え、
一方の前記コントローラは、前記コピー元ディスクに対する記憶制御を行う主系となるコピー元マスタタスクと、当該コピー元マスタタスクにて記憶制御するデータを一時的に格納するコピー元マスタキャッシュと、を備えると共に、
他方の前記コントローラは、前記コピー先ディスクに対する記憶制御を行う主系となるコピー先マスタタスクと、当該コピー先マスタタスクにて記憶制御するデータを一時的に格納するコピー先マスタキャッシュと、を備え、
さらに、前記一方のコントローラは、前記他方のコントローラが備える前記コピー先マスタタスク及び前記コピー先マスタキャッシュの従系となるコピー先スレーブタスク及びコピー先スレーブキャッシュを備え、
前記他方のコントローラは、前記一方のコントローラが備える前記コピー元マスタタスク及び前記コピー元マスタキャッシュの従系となるコピー元スレーブタスク及びコピー元スレーブキャッシュを備えた、ストレージ装置によるデータ書き込み方法であって、
前記一方のコントローラが備える前記コピー元マスタタスクが、ホストから書き込み要求データを受けて前記コピー元マスタキャッシュに格納し、当該書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化する前に前記コピー先マスタタスクに対してコピーし、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記一方のコントローラが備える前記コピー元マスタタスクから書き込み要求データを受けて前記コピー先マスタキャッシュに格納して、前記コピー元マスタタスクに対してコピー完了を通知し、
前記一方のコントローラが備える前記コピー元マスタタスクが、前記コピー先マスタタスクからコピー完了の通知を受けると前記ホストに対して書き込み終了を通知する、
データ書き込み方法。
【００４５】
（付記９）
付記８に記載のデータ書き込み方法であって、
前記一方のコントローラが備える前記コピー元マスタタスクが、前記コピー先マスタタスクからコピー完了の通知を受けて前記ホストに対して書き込み終了を通知してから、前記コピー元マスタキャッシュに格納されている書き込み要求データを前記他方のコントローラが備える前記コピー元スレーブタスクに二重化し、
前記他方のコントローラが備える前記コピー元スレーブタスクが、前記コピー元スレーブキャッシュに書き込み要求データを格納してから前記一方のコントローラが備える前記コピー元マスタタスクに二重化完了を通知し、
前記一方のコントローラが備える前記コピー元マスタタスクが、前記コピー元スレーブタスクから二重化完了の通知を受けると、前記コピー先マスタタスクに対してコピー元側における書き込み要求データの二重化完了を通知すると共に、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記コピー元マスタタスクにコピー完了を通知してから、前記コピー先マスタキャッシュに格納されている書き込み要求データを前記一方のコントローラが備える前記コピー先スレーブタスクに二重化し、
前記一方のコントローラが備える前記コピー先スレーブタスクが、前記コピー先スレーブキャッシュに書き込み要求データを格納してから前記他方のコントローラが備える前記コピー先マスタタスクに二重化完了を通知し、
前記他方のコントローラが備える前記コピー先マスタタスクが、前記コピー先スレーブタスクから二重化完了の通知を受けると、前記コピー元マスタタスクに対してコピー先側の書き込み要求データの二重化完了を通知する、
書き込み方法。
【００４６】
なお、上述したプログラムは、記憶装置に記憶されていたり、コンピュータが読み取り可能な記録媒体に記録されている。例えば、記録媒体は、フレキシブルディスク、光ディスク、光磁気ディスク、及び、半導体メモリ等の可搬性を有する媒体である。
【００４７】
以上、上記実施形態等を参照して本願発明を説明したが、本願発明は、上述した実施形態に限定されるものではない。本願発明の構成や詳細には、本願発明の範囲内で当業者が理解しうる様々な変更をすることができる。
【符号の説明】
【００４８】
１  ホスト
１０  ストレージ装置
２０  コントローラ
２１  ＭＶマスタタスク
２２  ＭＶキャッシュ
２３  ＲＶスレーブタスク
２４  ＲＶキャッシュ
３０  コントローラ
３１  ＭＶスレーブタスク
３２  ＭＶキャッシュ
３３  ＲＶマスタタスク
３４  ＲＶキャッシュ
４１  ＭＶ
４２  ＲＶ
１００  ホスト
１１０  ストレージ装置
１２０  コントローラ
１２１  ＭＶマスタタスク
１２２  ＭＶキャッシュ
１２３  ＲＶスレーブタスク
１２４  ＲＶキャッシュ
１３０  コントローラ
１３１  ＭＶスレーブタスク
１３２  ＭＶキャッシュ
１３３  ＲＶマスタタスク
１３４  ＲＶキャッシュ
１４１  ＭＶ
１４２  ＲＶ
【図１】
2014186599.tif 000003
【図２】
2014186599.tif 000004
【図３】
2014186599.tif 000005
【図４】
2014186599.tif 000006
【図５】
2014186599.tif 000007
【図６】
2014186599.tif 000008
【図７】
2014186599.tif 000009
【図８】
2014186599.tif 000010
【図９】
2014186599.tif 000011
【図１０】
2014186599.tif 000012
【図１１】
2014186599.tif 000013
【図１２】
2014186599.tif 000014