(57)【要約】  本発明のストレージシステム１は、コマンド発行装置４０からのコマンドを受領する第１ストレージ装置１０−１と、コマンドの対象データを管理する第２ストレージ装置１０−２と、対象データについて第２ストレージ装置とコピーペアを形成し、対象データを記憶する第３ストレージ装置１０−３と、を備え、第２ストレージ装置は、対象データを第１ストレージ装置から第２ストレージ装置を介して第３ストレージ装置へ転送して記憶させる場合に、第２ストレージ装置にも対象データを記憶させることで、第２ストレージ装置と第３ストレージ装置とで対象データを冗長記憶する。
2017149674.tif 000002
【特許請求の範囲】
【請求項１】
コマンド発行装置からのコマンドを処理するストレージシステムであって、
前記コマンド発行装置に接続される複数のストレージ装置を有し、
前記コマンド発行装置からのコマンドを受領する第１ストレージ装置であって、前記複数のストレージ装置に含まれる第１ストレージ装置と、
前記コマンドの対象データを管理する第２ストレージ装置であって、前記複数のストレージ装置に含まれる第２ストレージ装置と、
前記対象データについて前記第２ストレージ装置とコピーペアを形成し、前記対象データを記憶する第３ストレージ装置であって、前記複数のストレージ装置に含まれる第３ストレージ装置と、
を備え、
前記第２ストレージ装置は、前記対象データを前記第１ストレージ装置から前記第２ストレージ装置を介して前記第３ストレージ装置へ転送して記憶させる場合に、前記第２ストレージ装置にも前記対象データを記憶させることで、前記第２ストレージ装置と前記第３ストレージ装置とで前記対象データを冗長記憶する、
ストレージシステム。
【請求項２】
前記第３ストレージ装置は、前記第２ストレージ装置から受領した前記対象データを検査し、
前記第３ストレージ装置が前記対象データを正常データであると判定した場合、前記第２ストレージ装置に記憶された前記対象データも正常データであるとして扱う、
請求項１に記載のストレージシステム。
【請求項３】
前記複数のストレージ装置は、前記対象データを格納するメモリと、前記メモリと他のストレージ装置のメモリとの間でデータを転送するデータ転送部と、前記データ転送部へ転送指示を与えて動作させる制御部とを備えており、
前記第２ストレージ装置は、
前記第２ストレージ装置の制御部から前記第２ストレージ装置のデータ転送部へ転送指示を一回与えることで、前記対象データを前記第１ストレージ装置のメモリから前記第２ストレージ装置のメモリを介して前記第３ストレージ装置のメモリに転送し、
前記第２ストレージ装置のメモリに記憶された前記対象データと前記第３ストレージ装置のメモリに記憶された前記対象データとでペアを形成することで、前記対象データを冗長記憶する、
請求項２に記載のストレージシステム。
【請求項４】
前記複数のストレージ装置は、前記対象データを格納するメモリと、前記メモリと他のストレージ装置のメモリとの間でデータを転送するデータ転送部と、前記データ転送部へ転送指示を与えて動作させる制御部とを備えており、
前記第２ストレージ装置は、
前記第２ストレージ装置の制御部から前記第２ストレージ装置のデータ転送部へ第１転送指示を与えることで、前記対象データを前記第１ストレージ装置のメモリから前記第２ストレージ装置のメモリへ転送して記憶させ、
前記第２ストレージ装置の前記制御部から前記第２ストレージ装置の前記データ転送部へ第２転送指示を与えることで、前記対象データを前記第２ストレージ装置の前記メモリから前記第３ストレージ装置のメモリへ転送して記憶させ、
前記第２ストレージ装置の前記メモリに記憶された前記対象データと前記第３ストレージ装置の前記メモリに記憶された前記対象データとでペアを形成することで、前記対象データを冗長記憶する、
請求項２に記載のストレージシステム。
【請求項５】
前記複数のストレージ装置は、共通の複数の記憶装置に接続されており、
前記複数のストレージ装置のうち前記コマンド発行装置からのコマンドを受領したストレージ装置が前記第１ストレージ装置となり、
前記複数のストレージ装置のうち前記対象データを記憶する記憶装置を管理するストレージ装置が、前記第２ストレージ装置となり、
前記複数のストレージ装置のうち前記第２ストレージ装置とコピーペアを形成することが予め決定されているストレージ装置が前記第３ストレージ装置となる、
請求項３または４のいずれか一項に記載のストレージシステム。
【請求項６】
前記複数のストレージ装置は、前記各メモリ間でデータ転送可能な共通の接続装置を介して相互接続されてクラスタを構成しており、
前記複数のストレージ装置は、前記メモリを１つ備える、
請求項５に記載のストレージシステム。
【請求項７】
前記複数のストレージ装置は、前記共通の接続装置を介して双方向通信するためのスイッチインターフェース部をさらに備えており、
前記各スイッチインターフェース部に前記データ転送部が設けられている、
請求項６に記載のストレージシステム。
【請求項８】
ストレージシステムに使用されるストレージ装置であって、
コマンド発行装置からのコマンドを受信するコマンド受信側ストレージ装置と、前記コマンドの対象データのコピーを記憶するコピーペア側ストレージ装置とに、それぞれ双方向通信可能に接続される装置間通信部と、
データを格納するメモリと、
前記メモリと前記コマンド受信側ストレージ装置のメモリおよび前記コピーペア側ストレージ装置のメモリとの間でデータを転送するデータ転送部と、
前記データ転送部へ転送指示を与えて動作させる制御部と、
を備え、
前記制御部は、前記データ転送部により、前記対象データを前記コマンド受信側ストレージ装置の前記メモリから前記メモリを介して前記コピーペア側ストレージ装置の前記メモリへ転送して記憶させる場合に、前記メモリにも前記対象データを記憶させることで、前記コピーペア側ストレージ装置との間で前記対象データを冗長記憶する、
ストレージ装置。
【請求項９】
前記制御部は、前記コピーペア側ストレージ装置の前記メモリに格納された前記対象データの検査結果を受領し、前記検査結果が正常を示す場合、前記メモリに格納された前記対象データも正常データであるとして扱う、
請求項８に記載のストレージ装置。
【請求項１０】
前記制御部は、
前記データ転送部へ転送指示を一回与えることで、前記メモリを介して、前記対象データを前記コマンド受信側ストレージ装置の前記メモリから前記コピーペア側ストレージ装置の前記メモリに転送し、
前記メモリに記憶された前記対象データと前記コピーペア側ストレージ装置の前記メモリに記憶された前記対象データとでペアを形成することで、前記対象データを冗長記憶する、
請求項９に記載のストレージ装置。
【請求項１１】
前記制御部は、
前記データ転送部へ第１転送指示を与えることで、前記対象データを前記コマンド受信側ストレージ装置の前記メモリから前記メモリへ転送して記憶させ、
前記データ転送部へ第２転送指示を与えることで、前記メモリから前記コピーペア側ストレージ装置の前記メモリへ前記対象データを転送して記憶させ、
前記メモリに記憶された前記対象データと前記コピーペア側ストレージ装置の前記メモリに記憶された前記対象データとでペアを形成することで、前記対象データを冗長記憶する、
請求項９に記載のストレージ装置。
【請求項１２】
ストレージシステムの制御方法であって、
前記ストレージシステムは、
コマンドを発行するコマンド発行装置に接続される複数のストレージ装置と、
前記コマンド発行装置からのコマンドを受領する第１ストレージ装置であって、前記複数のストレージ装置に含まれる第１ストレージ装置と、
前記コマンドの対象データを管理する第２ストレージ装置であって、前記複数のストレージ装置に含まれる第２ストレージ装置と、
前記対象データについて前記第２ストレージ装置とコピーペアを形成し、前記対象データを記憶する第３ストレージ装置であって、前記複数のストレージ装置に含まれる第３ストレージ装置と、
を備え、
前記第２ストレージ装置は、前記対象データを前記第１ストレージ装置から前記第２ストレージ装置を介して前記第３ストレージ装置へ転送して記憶させる場合に、前記第２ストレージ装置にも前記対象データを記憶させることで、前記第２ストレージ装置と前記第３ストレージ装置とで前記対象データを冗長記憶する、
ストレージシステムの制御方法。
【請求項１３】
前記第３ストレージ装置は、前記第２ストレージ装置から受領した前記対象データを検査し、
前記第３ストレージ装置が前記対象データを正常データであると判定した場合、前記第２ストレージ装置に記憶された前記対象データも正常データであるとして扱う、
請求項１２に記載のストレージシステムの制御方法。
【請求項１４】
前記複数のストレージ装置は、前記対象データを格納するメモリと、前記メモリと他のストレージ装置のメモリとの間でデータを転送するデータ転送部と、前記データ転送部へ転送指示を与えて動作させる制御部とを備えており、
前記第２ストレージ装置は、
前記第２ストレージ装置の制御部から前記第２ストレージ装置のデータ転送部へ転送指示を一回与えることで、前記対象データを前記第１ストレージ装置のメモリから前記第２ストレージ装置のメモリを介して前記第３ストレージ装置のメモリに転送し、
前記第２ストレージ装置のメモリに記憶された前記対象データと前記第３ストレージ装置のメモリに記憶された前記対象データとでペアを形成することで、前記対象データを冗長記憶する、
請求項１３に記載のストレージシステムの制御方法。
【請求項１５】
前記複数のストレージ装置は、前記対象データを格納するメモリと、前記メモリと他のストレージ装置のメモリとの間でデータを転送するデータ転送部と、前記データ転送部へ転送指示を与えて動作させる制御部とを備えており、
前記第２ストレージ装置は、
前記第２ストレージ装置の制御部から前記第２ストレージ装置のデータ転送部へ第１転送指示を与えることで、前記対象データを前記第１ストレージ装置のメモリから前記第２ストレージ装置のメモリへ転送して記憶させ、
前記第２ストレージ装置の前記制御部から前記第２ストレージ装置の前記データ転送部へ第２転送指示を与えることで、前記対象データを前記第２ストレージ装置の前記メモリから前記第３ストレージ装置のメモリへ転送して記憶させ、
前記第２ストレージ装置の前記メモリに記憶された前記対象データと前記第３ストレージ装置の前記メモリに記憶された前記対象データとでペアを形成することで、前記対象データを冗長記憶する、
請求項１３に記載のストレージシステムの制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージシステム、ストレージ装置、およびストレージシステムの制御方法に関する。
【背景技術】
【０００２】
複数の装置間でＤＭＡ（Direct Memory Access）などを用いて転送するストレージシステムは、知られている（特許文献１〜４）。データを異なる装置へ書き込むことで、データを二重化して管理する方法も知られている（特許文献２，４）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特表２０１３−５１５９７８号公報
【特許文献２】国際公開第２０１５／０１１８３５号公報
【特許文献３】特表２０１４−５０４７４９号公報
【特許文献４】国際公開第２０１３／１４０４５９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
従来技術では、異なる複数の装置でデータを冗長記憶し、データ保存の信頼性を高めることができる。しかし、従来技術では、異なる複数の装置へデータをそれぞれ書き込むため、データ書き込み時の応答性能を高めるのが難しい。【０００５】
さらに従来技術では、データ書込みが正常終了したことを確認する場合、装置ごとに確認する必要がある。従来技術では、書込みの確認作業を装置ごとに行う必要があるため、応答性能を高めるのがますます難しい。【０００６】
さらに従来技術では、データを受領した装置から、データを二重化して記憶するための２つの装置へそれぞれデータを転送する必要があり、データ転送の起動回数が２回となるため、データ書き込み時の応答性能を高めるのが難しい。【０００７】
本発明は、上記課題に鑑みてなされたもので、その目的は、データ保護の信頼性とデータ書き込み時の応答性能向上とを両立できるようにしたストレージシステム、ストレージ装置およびストレージシステムの制御方法を提供することにある。本発明の他の目的は、第１ストレージ装置の受領したデータを、第２ストレージ装置を経由して第３ストレージ装置へ転送することで、第２ストレージ装置にもデータを残し、第２ストレージ装置と第３ストレージ装置とでデータを速やかに冗長記憶できるようにしたストレージシステム、ストレージ装置およびストレージシステムの制御方法を提供することにある。
【課題を解決するための手段】
【０００８】
上記課題を解決すべく、本発明に従うストレージシステムは、コマンド発行装置からのコマンドを処理するストレージシステムであって、コマンド発行装置に接続される複数のストレージ装置を有し、コマンド発行装置からのコマンドを受領する第１ストレージ装置であって、複数のストレージ装置に含まれる第１ストレージ装置と、コマンドの対象データを管理する第２ストレージ装置であって、複数のストレージ装置に含まれる第２ストレージ装置と、対象データについて第２ストレージ装置とコピーペアを形成し、対象データを記憶する第３ストレージ装置であって、複数のストレージ装置に含まれる第３ストレージ装置と、を備え、第２ストレージ装置は、対象データを第１ストレージ装置から第２ストレージ装置を介して第３ストレージ装置へ転送して記憶させる場合に、第２ストレージ装置にも対象データを記憶させることで、第２ストレージ装置と第３ストレージ装置とで対象データを冗長記憶する。
【発明の効果】
【０００９】
本発明によれば、第２ストレージ装置は、コマンド発行装置からの対象データを受領した第１ストレージ装置から第２ストレージ装置を介して、第３ストレージ装置へ対象データを転送させて記憶させる際に、対象データを第２ストレージ装置にも記憶する。これにより、第２ストレージ装置と第３ストレージ装置とで対象データを冗長記憶できる。
【図面の簡単な説明】
【００１０】
【図１】本実施形態に係るストレージシステムの全体概要を示す説明図。
【図２】ストレージシステムのハードウェア構成図。
【図３】ストレージ装置の構成図。
【図４】論理的記憶装置（LDEV）とマイクロプロセッサ（MP）との対応関係を示すテーブルの例。
【図５】オーナー装置とペア装置の対応関係を示すテーブルの例。
【図６】ライト処理の全体を示すフローチャート。
【図７】図６に続くフローチャート。
【図８】オーナー装置のマイクロプロセッサからデータ転送部へ送られる転送指示の内容を示す説明図。
【図９】図７に続くフローチャート。
【図１０】データ転送の様子を示す説明図。
【図１１】図６の全体処理を装置ごとの処理に分けて示すフローチャート。
【図１２】図９の処理を装置ごとの処理に分けて示すフローチャート。
【図１３】第２実施例に係り、ライト処理の一部を示すフローチャート。
【図１４】オーナー装置のマイクロプロセッサからデータ転送部へ送られる転送指示の内容を示す説明図。
【図１５】図１３の処理を装置ごとに分けて示すフローチャート。
【図１６】データ転送の様子を示す説明図。
【発明を実施するための形態】
【００１１】
以下、図面に基づいて、本発明の実施の形態を説明する。以下に述べるように、本実施形態では、データを受信した第１ストレージ装置から第２ストレージ装置を介して第３ストレージ装置へデータを転送する場合に、第２ストレージ装置にもデータを残す。これにより、第２ストレージ装置のデータと第３ストレージ装置のデータとでコピーペアを形成し、データを冗長記憶する。さらに、本実施形態では、データ転送先である第３ストレージ装置においてデータを検査し、その結果第３ストレージ装置が正常データであると判定した場合は、第２ストレージ装置においても、第２ストレージ装置に記憶されたデータが正常であるとして扱う。
【００１２】
図１は、本実施形態のストレージシステムの全体概要を示す。図１は、本発明の理解および実施に必要な程度で実施形態の概要を示しており、本発明の範囲は図１に示す構成に限定されない。
【００１３】
ストレージシステム１は、複数のストレージ装置１０−１，１０−２，１０−３，１０−４を備える。各ストレージ装置１０−１〜１０−４は、「共通の接続装置」の例であるスイッチ２０を介して、双方向通信可能に接続されている。
【００１４】
各ストレージ装置１０−１〜１０−４は、物理パス５２を介してホストコンピュータ４０に接続されている。各物理パス５２は同一の論理パス５１に属する。従って、ホストコンピュータ（以下、ホスト）４０からは、各ストレージ装置１０−１〜１０−４が一つのストレージ装置に見える。以下、特に区別しない場合、ストレージ装置１０−１〜１０−４をストレージ装置１０と呼ぶ。
【００１５】
ホスト４０は、「コマンド発行装置」の例である。ホスト４０は、メインフレームでもよいし、いわゆるオープン系サーバでもよい。ホストがメインフレームの場合、例えば、ＦＩＣＯＮ（Fibre Connection：登録商標）、ＥＳＣＯＮ（Enterprise System Connection：登録商標）、ＡＣＯＮＡＲＣ（Advanced Connection Architecture：登録商標）、ＦＩＢＡＲＣ（Fibre Connection Architecture：登録商標）等の通信プロトコルが、ホスト４０と各ストレージ装置１０の間で使用される。ホスト４０がオープン系サーバの場合は、例えば、ＴＣＰ／ＩＰ（Transmission Control Protocol/Internet Protocol ）、ｉＳＣＳＩ（Internet Small Computer System Interface ）のような通信プロトコルがホスト４０と各ストレージ装置１０の間で使用される。
【００１６】
記憶部３０は、各ストレージ装置１０とは別体に構成されており、筐体内には複数の記憶装置３１が設けられている。記憶部３０は、各ストレージ装置１０と物理パス５３を介して接続されている。
【００１７】
記憶装置３１としては、例えば、ハードディスクデバイス、半導体メモリデバイス、光ディスクデバイス、光磁気ディスクデバイス等のデータを読み書き可能な種々のドライブを利用可能である。ハードディスクデバイスを用いる場合、例えば、ＦＣ（Fibre Channel）ディスク、ＳＣＳＩ（Small Computer System Interface）ディスク、ＳＡＴＡディスク、ＡＴＡ（AT Attachment）ディスク、ＳＡＳ（Serial Attached SCSI）ディスク等を用いることができる。また、例えば、フラッシュメモリ（SSD）、ＭＲＡＭ（Magnetoresistive Random Access Memory）、相変化メモリ（Phase-Change Memory）、ＲｅＲＡＭ（Resistive random-access memory）、ＦｅＲＡＭ（Ferroelectric Random Access Memory）等の種々の記憶装置を用いることもできる。さらに、例えば、種類の異なる記憶装置を混在させる構成でもよい。図１中では、ハードディスクとフラッシュメモリを例に挙げて示す。
【００１８】
少なくとも一つの（通常は複数の）記憶装置３１の有する物理的記憶領域から、論理的記憶装置である論理ボリューム３２が少なくとも一つ生成される。図中では、論理ボリューム３２をLDEV（Logical DEVice）と表示する。
【００１９】
論理ボリューム３２は、プール３３で管理される。プール３３内の複数の論理ボリューム３２を用いて、仮想的論理ボリュームを生成することもできる。仮想的論理ボリュームには、ホスト４０から新たにデータを書き込まれるたびに、論理ボリューム３２の記憶領域が割り当てられる。仮想的論理ボリュームは、実際に必要な分だけ論理ボリューム３２の記憶領域を使用するため、プール３３内の記憶資源を無駄なく使用できる。以下、データを入出力する記憶装置として、論理ボリューム３２を例に挙げて説明する。
【００２０】
ストレージ装置１０の概略構成を説明する。各ストレージ装置１０は、例えば、ＣＰＵ（Central Processing Unit）１０２と、メモリ１０３と、チェック部１０１２と、ＤＭＡ転送回路（以下、ＤＭＡ）１０５１とを備える。
【００２１】
「制御部」としてのＣＰＵ１０２は、複数のマイクロプロセッサ１０２１（図３のＭＰ１０２１参照）を備えており、ストレージ装置１０の動作を制御する。メモリ１０３は、例えば、揮発メモリまたは不揮発メモリ、あるいは揮発メモリと不揮発メモリの組合せから構成されている。メモリ１０３は、ホスト４０または他のストレージ装置１０から受領したデータ、または、論理ボリューム３２から読み出したデータを記憶する。
【００２２】
チェック部１０１２は、例えば、ハードウェア回路として構成してもよいし、ソフトウェアとして生成してもよい。図１では、チェック部１０１２をハードウェア回路として構成する場合を例に挙げる。チェック部１０１２は、データに付加されている保証コードに基づいて、そのデータが正しいデータであるか否かを検査する。ストレージシステム内では、データを論理ブロックに区切って管理している。各論理ブロックには、保証コードが付加されている。保証コードは、例えば、論理ブロックの内容の誤りを検出するための情報（LRC：Longitudinal Redundancy Check）および論理ブロックの書込み先の誤りを検出するための情報（LA）などを含むことができる。
【００２３】
ＤＭＡ１０５１は、ストレージ装置１０の間で、データをＤＭＡ転送するための回路である。ＤＭＡ１０５１は、ＣＰＵ１０２からの指示で起動し、転送元のメモリ１０３から転送先のメモリ１０３へデータを転送する。
【００２４】
ストレージシステム１の概略動作を説明する。ホスト４０は、ストレージ装置１０へ向けてライトコマンドを発行し、データｄ１の書込みを要求する（Ｓ１）。そのライトコマンドおよびデータｄ１は、各ストレージ装置１０のいずれかにより受信される。ここでは、各ストレージ装置１０のうち第１ストレージ装置１０−１がライトコマンドおよびデータｄ１を受領したものとして説明する。
【００２５】
第１ストレージ装置１０−１は、ライトコマンドおよびデータｄ１を、第１ストレージ装置１０−１内のメモリ１０３へ記憶する（Ｓ２）。ライトコマンドおよびデータｄ１を受領したストレージ装置１０−１は、受領ストレージ装置と呼ぶことができる。
【００２６】
ライトコマンドには、データｄ１の書込先アドレス（LBA：Logical Block Address）が指定されている。書込先アドレスから、データｄ１を書き込む論理ボリューム３２を特定できる。記憶部３０に格納されている各論理ボリューム３２は、その管理権限を持つストレージ装置１０が決定されている。ここでは、各ストレージ装置１０のうち第２ストレージ装置１０−２が、データｄ１の書込先である論理ボリューム３２の管理権限を有するものとして説明する。データｄ１の書込先ボリューム３２を管理するストレージ装置１０−２は、オーナーストレージ装置と呼ぶことができる。
【００２７】
本実施形態のストレージシステム１は、ホスト４０の書き込むデータｄ１を異なるストレージ装置１０でそれぞれ記憶することで、データ保存の信頼性を高めている。具体的には、データｄ１の書込先ボリューム３２について管理権限を有する第２ストレージ装置１０−２のメモリ１０３と、第２ストレージ装置１０−２とコピーペアを形成する第３ストレージ装置１０−３のメモリ１０３との両方にデータｄ１を記憶する。第３ストレージ装置１０−３は、ペアストレージ装置と呼ぶこともできる。
【００２８】
ライトコマンドおよびデータｄ１を受領した第１ストレージ装置１０−１は、データｄ１についてのオーナーストレージ装置である第２ストレージ装置１０−２に対して、ライトコマンドを受領した旨を通知する（Ｓ３）。
【００２９】
第２ストレージ装置１０−２は、第１ストレージ装置１０−１からの通知により（Ｓ３）、自装置の管理下の論理ボリューム３２を書込先とするデータｄ１の書込みを検知すると、第２ストレージ装置１０−２のＤＭＡ１０５１に転送指示を与える（Ｓ４）。
【００３０】
第２ストレージ装置１０−２のＤＭＡ１０５１は、第１ストレージ装置１０−１のメモリ１０３からデータｄ１を読み出し（Ｓ５）、読み出したデータｄ１を第２ストレージ装置１０−２のメモリ１０３を介して、第３ストレージ装置１０−３のメモリ１０３へ転送する（Ｓ６）。この際、第２ストレージ装置１０−２のメモリ１０３にもデータｄ１が記憶されるが、第２ストレージ装置１０−２は、そのデータｄ１をメモリ１０３に残したままにしておき、消去しない。
【００３１】
データｄ１の最終的な転送先である第３ストレージ装置１０−３では、チェック部１０１２を用いて、データｄ１が正常であるか否か検査する（Ｓ７）。すなわち、チェック部１０１２は、データｄ１に付加されている保証コードに基づいて、データｄ１にビットエラーなどが生じていないことを確認する。チェック部１０１２は、その検査結果を第２ストレージ装置１０−２へ通知する（Ｓ８）。
【００３２】
第２ストレージ装置１０−２は、第３ストレージ装置１０−３での検査結果（正常）を用いて、第２ストレージ装置１０−２内のメモリ１０３に記憶されたデータｄ１が正常であるとして扱う。第２ストレージ装置１０−２では、データｄ１の保証コードを用いてデータｄ１をチェックしない。データｄ１が正常であるか否かのチェックは、最終転送先である第３ストレージ装置１０−３でのみ行う。
【００３３】
このように、第１ストレージ装置１０−１のメモリ１０３に格納されたデータｄ１が、第２ストレージ装置１０−２のメモリ１０３を経由して、第３ストレージ装置１０−３のメモリ１０３へ格納される。データｄ１は、第３ストレージ装置１０−３と第２ストレージ装置１０−２とにより冗長記憶される。
【００３４】
その後、所定タイミングでデステージ処理が起動し、第２ストレージ装置１０−２のメモリ１０３に格納されたデータは、ライトコマンドで指定されたアドレスを持つ論理ボリューム３２へ書き込まれる（Ｓ９）。
【００３５】
本実施形態では、発明の理解のために、ライトコマンドおよびデータｄ１を受領するストレージ装置１０−１と、データｄ１の格納先である論理ボリューム３２を管理するストレージ装置１０−２と、管理権限を持つストレージ装置１０−２とは別にデータｄ１を記憶するストレージ装置１０−３とは、それぞれ異なる場合を例に挙げて説明した。これに限らず、例えば、受領ストレージ装置とオーナーストレージ装置とが一致する場合、あるいは、受領ストレージ装置とペアストレージ装置とが一致する場合もあり得る。本実施形態のストレージシステムでは、データを二重記憶して保存の信頼性を高めるものであるため、オーナーストレージ装置とペアストレージ装置とが一致することはない。
【００３６】
このように構成される本実施形態によれば、データｄ１の検査を一回にすることができるため、ホスト４０がデータｄ１を書き込む場合の応答性能を向上できる。従来技術では、データｄ１を転送するたびに検査するが、本実施形態では最終転送先である第３ストレージ装置１０−３でのみデータｄ１を検査するため、検査に要する時間を短縮することができる。第２ストレージ装置１０−２のメモリ１０３は、データｄ１を第３ストレージ装置１０−３のメモリ１０３へ転送するために使用された中継場所にすぎないため、第３ストレージ装置１０−３でデータｄ１が正常と判断された場合は、第２ストレージ装置１０−２のメモリ１０３に残されたデータｄ１も正常であるとみなすことができる。
【００３７】
本実施形態によれば、第２ストレージ装置１０−２がＤＭＡ１０５１に対して転送指示を一回与えるだけで、第１ストレージ装置１０−１に受領されたデータｄ１を第２ストレージ装置１０−２を介して第３ストレージ装置１０−３へＤＭＡ転送できる。本実施形態では、ＤＭＡ転送の起動を一回だけ指示すればよいため、上述したデータｄ１のチェック回数を半減することと相まって、さらにライト処理時の応答性能を向上できる。
【実施例１】
【００３８】
図２は、ストレージシステム１のハードウェア構成図である。図１で述べたように、ストレージシステム１は、複数のストレージ装置１０−１〜１０−４を備えており、それらストレージ装置１０−１〜１０−４はクラスタを構成している。本実施例では、４台のストレージ装置１０−１〜１０−４を示すが、ストレージシステム１を構成するストレージ装置の台数は４に限らない。以下、ストレージ装置１０−１〜１０−４を区別しない場合、ストレージ装置１０と呼ぶ。【００３９】
各ストレージ装置１０は、通信ネットワーク５０−１〜５０−４を介して、ホスト４０−１〜４０−４に双方向通信可能に接続されている。なお、通信ネットワーク５０−１〜５０−４の少なくとも一部は共通してもよく、通信ネットワーク５０−１〜５０−４の全てが同一通信ネットワークであってもよい。同様に、ホスト４０−１〜４０−４の少なくとも一部は共通してもよく、ホスト４０−１〜４０−４の全てが同一のホストであってもよい。区別しない場合、ホスト４０−１〜４０−４をホスト４０と呼び、通信ネットワーク５０−１〜５０−４を通信ネットワーク５０と呼ぶ。【００４０】
各ストレージ装置１０は、例えば、フロントエンドインターフェース１０１と、ＣＰＵ１０２と、メモリ１０３と、バックエンドインターフェース１０４と、スイッチインターフェース１０５を備えている。スイッチインターフェース１０５は、図３で述べるようにＤＭＡ１０５１を内蔵している。各ストレージ装置１０は、ＤＭＡ転送が可能なスイッチ２０を介して、双方向通信可能に接続されている。【００４１】
フロントエンドインターフェース１０１は、通信ネットワーク５０を介してホスト４０と双方向通信するための装置である。以下、フロントエンドインターフェース１０１をＦＥ１０１と略記する場合がある。ＦＥ１０１は、ホスト４０からコマンドやデータを受信したり、ホスト４０へデータや通知を送信したりする。【００４２】
バックエンドインターフェース１０４は、記憶装置３１へデータを入出力するための装置である。上述の通り、物理的な記憶装置３１の記憶領域を仮想化することで論理的な記憶装置である論理ボリューム３２を生成できる。ＣＰＵ１０２は、バックエンドインターフェース１０４を介して、論理ボリューム３２にデータを読み書きする。図２では、記憶部３０を省略している。【００４３】
スイッチインターフェース１０５は、スイッチ２０を介して他のストレージ装置１０と双方向通信する装置である。【００４４】
図３を用いて、ストレージ装置１０の詳細構成を説明する。ＣＰＵ１０２は、複数のマイクロプロセッサ１０２１を含む。以下、マイクロプロセッサ１０２１をＭＰ１０２１と略記することがある。ＣＰＵ１０２は、内蔵する各ＭＰ１０２１のうちいずれかのＭＰ１０２１にコマンド処理などを割り当てる。ＣＰＵ１０２は、複数のコマンドを並行処理することができる。ＣＰＵ１０２が担当する処理は、実際にはいずれかのＭＰ１０２１が実行しているため、ＣＰＵ１０２とＭＰ１０２１とを厳密に区別する必要はない。【００４５】
フロントエンドインターフェース１０１は、通信制御を担当する機能（図示せず）以外に、例えば、内蔵メモリ１０１１と、チェック部１０１２を備える。内蔵メモリ１０１１には、論理ボリューム３２とＭＰ１０２１との対応関係を示すＬＤＥＶ−ＭＰ対応テーブルＴ１０が格納されている。このテーブルＴ１０は、メモリ１０３内のテーブルＴ１１の一部である。後述するテーブルＴ１１の持つデータ群のうち、フロントエンドインターフェース１０１での処理に必要な範囲のデータがテーブルＴ１０へコピーされる。【００４６】
チェック部１０１２は、ホスト４０から受信したデータについて、論理ブロックごとに保証コードを付加したり、論理ブロックに付加された保証コードに基づいて当該論理ブロックのデータが正常であるか検査したりする。チェック部１０１２は、ハードウェア回路として構成してもよいし、ソフトウェアとして実現してもよい。また、チェック機能をフロントエンドインターフェース１０１に設けるのではなく、ＣＰＵ１０２側に設ける構成でもよい。ＣＰＵ１０２は、チェックプログラムＰ１０を実行することで、データの正否をチェックすることができる。【００４７】
メモリ１０３は、例えば、ＣＰＵ１０２へ提供する作業領域と、ホスト４０や他のストレージ装置１０から受信したデータを記憶するキャッシュ領域と、ＣＰＵ１０２が使用するテーブルを格納する管理情報領域と、ＣＰＵ１０２が実行するコンピュータプログラムを格納するプログラム領域とを備える。領域ごとにメモリを用意する構成でもよい。【００４８】
プログラム領域には、例えば、オペレーティングシステムやドライバソフトウェアなどのほかに（いずれも図示せず）、チェックプログラムＰ１０を格納できる。管理情報領域には、例えば、ＬＤＥＶ−ＭＰ対応テーブルＴ１１と、オーナー／ペア対応テーブルＴ１２を格納できる。各テーブルＴ１０，Ｔ１１，Ｔ１２の詳細は後述する。【００４９】
スイッチインターフェース１０５は、スイッチ２０を介して他のストレージ装置１０内のスイッチインターフェース１０５に接続されている。スイッチインターフェース１０５は、ＤＭＡ１０５１を内蔵している。各スイッチインターフェース１０５は、スイッチ２０を介して、メモリ１０３間でデータをＤＭＡ転送することができる。【００５０】
図４は、フロントエンドインターフェース１０１内のＬＤＥＶ−ＭＰ対応テーブルＴ１０とメモリ１０３内のＬＤＥＶ−ＭＰ対応テーブルＴ１１の構成を比較して示す説明図である。【００５１】
先に、メモリ１０３内のＬＤＥＶ−ＭＰ対応テーブルＴ１１の構成を説明する。このテーブルＴ１１は、例えば、ボリューム番号（ＬＤＥＶ＃）と、ストレージ番号と、ＭＰ番号とを対応付けて管理する。【００５２】
ボリューム番号は、ストレージシステム１内の各論理ボリューム３２を識別するための情報である。ストレージ番号は、ストレージシステム１内の各ストレージ装置１０を識別するため情報である。ＭＰ番号は、ＣＰＵ１０２のＭＰ１０２１を識別するための情報である。つまり、テーブルＴ１１は、ストレージシステム１内の各論理ボリューム３２が、どのストレージ装置１０のどのＭＰ１０２１で管理されているかを示す。【００５３】
フロントエンドインターフェース１０１内のテーブルＴ１０について説明する。このテーブルＴ１０は、ボリューム番号とＭＰ番号を対応付けて管理する。テーブルＴ１０は、フロントエンドインターフェース１０１の設けられているストレージ装置１０に関しての、ＭＰ１０２１と論理ボリューム３２との対応関係のみ記憶するため、ストレージ番号を含まない。他のストレージ装置の管理下にある論理ボリューム３２については、テーブルＴ１０の管轄外である。ただし、テーブルＴ１０では、他のストレージ装置１０の管理下にある論理ボリューム３２であることを認識できるように、管轄外の論理ボリューム３２に対応するＭＰ番号には「他ストレージ」という値を設定する。【００５４】
フロントエンドインターフェース１０１が管轄外の論理ボリューム３２を対象とするコマンドを受領した場合、ＣＰＵ１０２は、その論理ボリューム３２を管理下においているストレージ装置１０に前記コマンドを通知する。【００５５】
図５は、オーナーとペアの対応関係を管理するテーブルＴ１２を示す。オーナーとは、コマンドの処理対象の論理ボリューム３２を管理するストレージ装置である。すなわち、コマンドの処理対象となっているデータを管理するストレージ装置である。ペアとは、コマンドの処理対象のデータについて、オーナーのストレージ装置とコピーペアを形成するストレージ装置である。オーナーとなるストレージ装置をオーナー装置またはオーナー側ストレージ装置と呼び、オーナー装置とペアを形成するストレージ装置をペア装置またはペア側ストレージ装置と呼び、コマンドを受領したストレージ装置を受領装置または受領ストレージ装置と呼ぶ場合がある。図５の例では、ストレージ装置１０−１とストレージ装置１０−３が一方のペアを、ストレージ装置１０−２とストレージ装置１０−４が他方のペアを、それぞれ形成している。ただし、図５に示す組合せは固定されたものではなく、ストレージシステム１の状況に応じて動的に変更可能である。【００５６】
図６〜図９を用いて、ストレージシステム１の全体動作を説明する。各ストレージ装置１０のうちいずれかのストレージ装置１０のフロントエンドインターフェース１０１は、ホスト４０から発行されたライトコマンドとライトデータを受領する（Ｓ１１）。【００５７】
受領装置のフロントエンドインターフェース１０１は、ライトコマンドの対象データを格納する論理ボリューム３２を特定する。フロントエンドインターフェース１０１は、テーブルＴ１０を用いて、ライトコマンドの対象データを記憶している論理ボリューム３２を特定し、その論理ボリューム３２に対応するＭＰ１０２１が自装置（受領装置）に存在するか判定する（Ｓ１２）。【００５８】
フロントエンドインターフェース１０１は、対象データに対応するＭＰ１０２１が自装置に存在しないと判定すると（Ｓ１３：ＮＯ）、ライトコマンドおよびライトデータを受領装置のメモリ１０３へ格納し、受領装置のＭＰ１０２１へ通知する（Ｓ１４）。【００５９】
通知を受けたＭＰ１０２１は、メモリ１０３内のテーブルＴ１１を参照して、オーナー装置を特定し（Ｓ１５）、オーナー装置のＭＰ１０２１に対してライトコマンドが発行されたことを通知する（Ｓ１６）。詳しくは、受領装置のＭＰ１０２１は、受領装置のＤＭＡ１０５１を用いて、受領装置のメモリ１０３に格納されたライトコマンドをオーナー装置のメモリ１０３へＤＭＡ転送する。ここでは、ライトコマンドのみを転送し、ライトデータは転送しない。ライトデータのＤＭＡ転送は、オーナー装置が主導する。なお、オーナー装置において、ライトコマンドの対象データの処理担当となっているＭＰ１０２１をオーナーＭＰと呼ぶ。ペア装置において、対象データ（ライトデータ）の冗長記憶を担当するＭＰ１０２１をペアＭＰと呼ぶ。【００６０】
一方、ライトコマンドの対象データに対応するＭＰ１０２１が受領装置内に存在する場合（Ｓ１３：ＹＥＳ）、受領装置とオーナー装置とが一致する。受領装置のフロントエンドインターフェース１０１は、ライトコマンドおよびライトデータを受領装置のメモリ１０３へ格納し、ライトコマンドを処理すべきＭＰ１０２１へ通知する（Ｓ１７）。【００６１】
ライトデータの管理を担当するオーナー装置のＭＰ１０２１は、オーナー装置内のメモリ１０３にライトデータを格納するための記憶領域を用意する（Ｓ１８）。オーナー装置のＭＰ１０２１は、オーナー装置のメモリ１０３内のテーブルＴ１１を参照して、データの二重化を担当するペア装置の状態を確認する（Ｓ１９）。【００６２】
続いて、オーナー装置のＭＰ１０２１は、ペア装置の状態が正常であるか判定する（Ｓ２０）。オーナー装置のＭＰ１０２１は、ペア装置の状態が正常であると判定すると（Ｓ２０：ＹＥＳ）、結合子１を介して図７のステップＳ２２へ移る。これに対し、オーナー装置のＭＰ１０２１は、ペア装置の状態が正常ではないと判定すると（Ｓ２０：ＮＯ）、ストレージシステム１内の他のストレージ装置１０の中から、新たなペア装置を選択し、オーナー／ペア対応テーブルＴ１２を更新する（Ｓ２１）。なお、ステップＳ２１でテーブルＴ１２を更新すると、その更新は各ストレージ装置１０へ通知され、各ストレージ装置の保持するテーブルＴ１２に反映される。【００６３】
ペア装置の状態が正常でない場合としては、例えば、ペア装置のメモリ１０３に空き領域が所定値以上無い場合、ペア装置のＣＰＵ１０２の処理負荷が所定値以上の場合、ペア装置との間のデータ転送に障害がある場合、ペア装置に障害が発生して停止している場合などをあげることができる。これら以外の場合は、ペア装置の状態が正常であると判断することができる。【００６４】
図７を参照する。オーナー装置のＭＰ１０２１は、ペア装置の状態が正常であると判定すると（Ｓ２０：ＹＥＳ）、ペア装置のＭＰ１０１２に対して、ライトデータの格納準備を依頼する（Ｓ２２）。【００６５】
依頼されたＭＰ１０２１は、ライトデータを格納するための記憶領域をペア装置のメモリ１０３に確保し、ライトデータの格納先アドレスをオーナー装置のＭＰ１０２１へ通知する（Ｓ２３）。【００６６】
オーナー装置のＭＰ１０２１は、ペア装置のＭＰ１０２１からの通知を受けると、オーナー装置のＤＭＡ１０５１へ転送指示を与えることで、データを二重化して記憶するための多段ＤＭＡ転送を起動する（Ｓ２４）。転送指示の内容は、図８で後述する。多段ＤＭＡ転送の方法は、図１０で後述する。【００６７】
なお、図７では省略するが、図１１に示すようにオーナー装置のＤＭＡ１０５１による多段ＤＭＡ転送が完了すると（Ｓ４１）、ペア装置は、オーナー装置から受信したライトデータが正常データであるか否かを保証コードに基づいて検査する（Ｓ２５）。このデータチェックは、ペア装置のフロントエンドインターフェース１０１が有するチェック部１０１２で行ってもよいし、あるいは、ペア装置のチェックプログラムＰ１０により実施してもよい。ここでは、ハードウェア回路またはソフトウェアのいずれでも良いことを明らかにすべく、データチェックの主体はペア装置であるとして説明する。【００６８】
ペア装置は、オーナー装置からＤＭＡ転送で受領したライトデータが正常であると判定すると（Ｓ２６：ＹＥＳ）、オーナー装置のＭＰ１０２１に対してデータ二重化が正常に完了した旨を通知する（Ｓ２７）。【００６９】
正常終了の通知を受けたオーナー装置のＭＰ１０２１は、受領装置のＭＰ１０２１へライトコマンドの処理が完了した旨を通知する。受領装置のＭＰ１０２１は、受領装置のフロントエンドインターフェース１０１を介して、コマンド発行元であるホスト４０にライトコマンドの処理を正常に終了したことを通知する（Ｓ２８）。【００７０】
一方、ペア装置でのデータチェックの結果、受領したライトデータが正常ではないと判定された場合（Ｓ２６：ＮＯ）、ペア装置のＭＰ１０２１は、受領したライトデータに異常がある旨をオーナー装置のＭＰ１０２１へ通知する（Ｓ２９）。【００７１】
オーナー装置のＭＰ１０２１は、ペア装置から異常通知を受領すると、二重化データ異常処理を実行する（Ｓ３０）。二重化データ異常処理の詳細は、図９で説明する。【００７２】
図８は、オーナー装置のＭＰ１０２１がＤＭＡ１０５１へ与える転送指示Ｔ１３の内容を示す。【００７３】
オーナー装置のＭＰ１０２１からＤＭＡ１０５１へ与えられる転送指示Ｔ１３は、例えば、転送元メモリアドレスと、１段目メモリアドレスと、２段目メモリアドレスと、ライトデータ長とを含んでいる。【００７４】
転送元メモリアドレスとは、受領装置のメモリ１０３に格納されたライトデータの先頭アドレスである。１段目メモリアドレスとは、受領装置のメモリ１０３から読み出したライトデータの転送先アドレスである。受領装置のメモリ１０３から読み出されたライトデータは、オーナー装置のメモリ１０３を経由して、ペア装置のメモリ１０３へＤＭＡ転送される。１段目メモリアドレスは、受領装置のメモリ１０３からオーナー装置のメモリ１０３へライトデータを送るために使用される。【００７５】
２段目メモリアドレスとは、オーナー装置のメモリ１０３に記憶されたライトデータの転送先アドレスである。受領装置のメモリ１０３からオーナー装置のメモリ１０３へのデータ転送を１段目の転送（最初の転送）とすると、オーナー装置のメモリ１０３からペア装置のメモリ１０３へのデータ転送が２段目の転送（最後の転送）となる。【００７６】
図９のフローチャートは、図７中のステップＳ３０に示す二重化データ異常処理の詳細である。【００７７】
オーナー装置のＭＰ１０２１は、オーナー装置のメモリ１０３に残されているライトデータを保証コードに基づいてチェックする（Ｓ３１）。オーナー装置のＭＰ１０２１は、オーナー装置の保持するライトデータが正常であるか判定する（Ｓ３２）。オーナー装置のＭＰ１０２１は、オーナー装置内のライトデータが正常であると判定すると（Ｓ３２：ＹＥＳ）、他のストレージ装置１０をペア装置として新たに選択し、オーナー／ペア対応テーブルＴ１２を更新する（Ｓ３３）。そして、オーナー装置のＭＰ１０２１は、新たに選択したペア装置に対して、ライトデータの格納準備を依頼し（Ｓ３４）、図７のステップＳ２３へ戻る。【００７８】
オーナー装置のＭＰ１０２１は、オーナー装置のメモリ１０３に残されているライトデータが正常ではないと判定すると（Ｓ３２：ＮＯ）、受領装置のＭＰ１０２１に対して、受領装置のメモリ１０３に記憶されたライトデータのチェックを依頼する。【００７９】
図９では省略するが、図１２にステップＳ５１で示すように、受領装置は、メモリ１０３に記憶されているライトデータを保証コードに基づいてチェックする。受領装置のＭＰ１０２１は、受領装置のメモリ１０３に記憶されているライトデータが正常データであるか判定する（Ｓ３５）。【００８０】
受領装置のＭＰ１０２１は、受領装置のライトデータが正常である場合（Ｓ３５：ＹＥＳ）、オーナー装置のＭＰ１０２１へ通知する。この通知を受けたオーナー装置のＭＰ１０２１は、受領装置とオーナー装置との間でＤＭＡ転送に使用したパスを他のパスに切り替えて、オーナー装置のＤＭＡ１０５１に転送指示を与える（Ｓ３６）。そして、図７のステップＳ２５へ戻る。【００８１】
これに対し、受領装置のＭＰ１０２１は、受領装置のメモリ１０３に記憶されたライトデータが正常データではないと判定すると（Ｓ３５：ＮＯ）、フロントエンドインターフェース１０１を介して、ホスト４０にライトコマンド処理が異常終了した旨を通知する（Ｓ３７）。【００８２】
図１０は、多段のＤＭＡ転送の例を示す説明図である。図１０では、ライトデータを３つに分けて転送する場合を示す。図１０（１）に実線矢印で示すように、ＤＭＡ１０５１は、ＭＰ１０２１の転送指示で起動すると、第１データ（Word#0）を、受領装置１０−１のメモリ１０３からオーナー装置１０−２のメモリ１０３へスイッチ２０を介して転送する。【００８３】
図１０（２）に点線矢印で示すように、ＤＭＡ１０５１は、第１データをオーナー装置１０−２のメモリ１０３からペア装置１０−３のメモリ１０３へ転送する。ＤＭＡ１０５１は、第１データのペア装置１０−３への転送と同時に、実線矢印で示すように第２データ（Word#1）を受領装置１０−１のメモリ１０３からオーナー装置１０−２のメモリ１０３へ転送する。【００８４】
同様に、図１０（３）に点線矢印で示すように、ＤＭＡ１０５１は、第２データをオーナー装置１０−２のメモリ１０３からペア装置１０−３のメモリ１０３へ転送する。ＤＭＡ１０５１は、第２データのペア装置１０−３への転送と同時に、実線矢印で示すように第３データ（Word#2）を受領装置１０−１のメモリ１０３からオーナー装置１０−２のメモリ１０３へ転送する。【００８５】
そして、ＤＭＡ１０５１は、図１０（４）に点線矢印で示すように、第３データ（Word#2）を受領装置１０−１のメモリ１０３からオーナー装置１０−２のメモリ１０３へ転送する。【００８６】
図１０（５）に示すように、ペア装置１０−３は、受領装置１０−１からオーナー装置１０−２を経由して受領したライトデータ（Word#0，#1，#2）を、ライトデータに付加されている保証コードに基づいてチェックする。チェックの結果、ペア装置１０−３にライトデータが正常に転送されたことが確認されると、ライトデータの二重化（冗長記憶）が完了し、ライトコマンドの処理が終了する。ライトコマンド処理が正常終了すると、受領装置１０−１のメモリ１０３に記憶されたライトデータは不要となる。【００８７】
図１１は、図６および図７で述べた処理を、各ステップの実行主体に分けて示すフローチャートである。図１２も同様に、図９で述べた処理を各ステップの実行主体に分けて示すフローチャートである。図１１，１２の処理内容は、既に図６，７，９で述べているので、それ以上の説明は割愛する。【００８８】
このように構成される本実施例によれば、ライトデータの検査回数を一回にすることができるため、ホスト４０がライトデータを書き込む場合の応答性能を向上できる。本実施形態では最終転送先であるペア装置でのみライトデータを検査するため、検査に要する時間を短縮できる。オーナー装置のメモリ１０３は、ライトデータをペア装置のメモリ１０３へ転送するために使用された中継場所にすぎないため、ペア装置でライトデータが正常と判断された場合は、オーナー装置のメモリ１０３に残されたライトデータも正常であるとみなすことができる。【００８９】
本実施例によれば、オーナー装置がＤＭＡ１０５１に対して転送指示を一回与えるだけで、受領装置に受領されたライトデータをオーナー装置を介してペア装置へＤＭＡ転送できる。本実施例では、ＤＭＡ転送の起動を一回だけ指示すればよいため、上述したライトデータのチェック回数を半減することと結合して、ライト処理時の応答性能をさらに向上できる。
【実施例２】
【００９０】
図１３〜図１６を用いて第２実施例を説明する。本実施例を含む以下の各実施例は、第１実施例の変形例に該当するため、第１実施例との差異を中心に説明する。本実施例では、ＤＭＡ転送を２回に分けて実行する。【００９１】
図１３は、本実施例によるライトコマンド処理の一部を示す。本処理は、図７に示す処理に対応する。図１３のフローチャートは、図７のフローチャートに比べて、ステップＳ２２，Ｓ２３，Ｓ２５〜Ｓ３０を備えており、ステップＳ２５の代わりにステップＳ６１，Ｓ６２，Ｓ６３を備えている。そこで、本実施例に新規なステップＳ６１〜Ｓ６３を説明する。【００９２】
本実施例では、受領装置からオーナー装置を介してペア装置へライトデータを転送するに際して、オーナー装置のＭＰ１０２１は、まず最初に、第１転送指示をオーナー装置のＤＭＡ１０５１へ与えて起動する（Ｓ６１）。これにより、オーナー装置のＤＭＡ１０５１は、受領装置のメモリ１０３からオーナー装置のメモリ１０３へライトデータをＤＭＡ転送する。【００９３】
第１のＤＭＡ転送が完了すると（Ｓ６２）、オーナー装置のＭＰ１０２１は、第２転送指示をオーナー装置のＤＭＡ１０５１へ与えて起動する（Ｓ６３）。これにより、オーナー装置のＤＭＡ１０５１は、オーナー装置のメモリ１０３からペア装置のメモリ１０３へライトデータをＤＭＡ転送する。【００９４】
図１４は、オーナー装置のＭＰ１０２１がオーナー装置のＤＭＡ１０５１へ与える転送指示の内容を示す。図１４（１）に示すように、第１転送指示は、受領装置のメモリ１０３内に位置する転送元メモリアドレスと、オーナー装置のメモリ１０３内に位置する１段目メモリアドレスと、ライトデータ長を含む。図１４（２）に示すように、第２転送指示は、１段目メモリアドレスと、ペア装置のメモリ１０３内に位置する２段目メモリアドレスと、ライトデータ長を含む。【００９５】
図１５は、本実施例のライト処理を各ステップの実行主体に分けて示すフローチャートである。処理内容は、図１３で述べたので、それ以上の説明は割愛する。【００９６】
図１６は、オーナー装置がＤＭＡ１０５１に２回に分けて与える転送指示の例を示す説明図である。図１６（１）に実線矢印で示すように、ＤＭＡ１０５１は、ＭＰ１０２１からの第１転送指示で起動すると、図示する全てのライトデータ（Word#0，Word#1，Word#2）を、受領装置１０−１のメモリ１０３からオーナー装置１０−２のメモリ１０３へスイッチ２０を介してＤＭＡ転送する。【００９７】
図１６（２）に点線矢印で示すように、ＤＭＡ１０５１は、ライトデータをオーナー装置１０−２のメモリ１０３からペア装置１０−３のメモリ１０３へ全て転送する。【００９８】
図１６（３）に示すように、ペア装置１０−３は、受領装置１０−１からオーナー装置１０−２を経由して受領したライトデータをチェックする。チェックの結果、ペア装置１０−３にライトデータが正常に転送されたことが確認されると、ライトデータの二重化（冗長記憶）が完了し、ライトコマンドの処理が終了する。【００９９】
このように構成される本実施例も、転送が正常に終了したかの検査は、最後の転送先であるペア装置でのみ実行するため、検査に要する時間を短縮でき、ライト処理の応答性能を向上することができる。【０１００】
なお、本発明は、上述した実施形態に限定されない。当業者であれば、本発明の範囲内で、種々の追加や変更等を行うことができる。
【符号の説明】
【０１０１】
１：ストレージシステム、１０：ストレージ装置、２０：スイッチ、３０：記憶部、３１：記憶装置、３２：論理ボリューム、４０：ホストコンピュータ、５０：通信ネットワーク、１０２：ＣＰＵ、１０３：メモリ、１０５：スイッチインターフェース、１０５１：ＤＭＡ転送部
【図１】
2017149674.tif 000003
【図２】
2017149674.tif 000004
【図３】
2017149674.tif 000005
【図４】
2017149674.tif 000006
【図５】
2017149674.tif 000007
【図６】
2017149674.tif 000008
【図７】
2017149674.tif 000009
【図８】
2017149674.tif 000010
【図９】
2017149674.tif 000011
【図１０】
2017149674.tif 000012
【図１１】
2017149674.tif 000013
【図１２】
2017149674.tif 000014
【図１３】
2017149674.tif 000015
【図１４】
2017149674.tif 000016
【図１５】
2017149674.tif 000017
【図１６】
2017149674.tif 000018
【国際調査報告】
2017149674.tif 000019
2017149674.tif 000020
2017149674.tif 000021
2017149674.tif 000022