(57)【要約】【課題】データ複製中に記憶域の解放を実行可能とする。【解決手段】ネットワークを介して接続される第１のストレージ装置１０から第２のストレージ装置１０にデータを複製するストレージシステム１。第１のストレージ装置は１、第１の記憶域と、上位装置からの指示を受信する受信部と、指示を第２のバッファ２４０に転送する転送部と、第１の記憶域を解放する第１の記憶域解放部と、をそなえ、第２のストレージ装置１０は、データを記憶する第２の記憶域と、指示を時系列で記憶するバッファ２４０と、第１のストレージ装置からバッファに指示を受け取る受領部と、指示を実行する指示処理部と、バッファを解放するバッファ解放部と、第２の記憶域を解放する第２の記憶域解放部と、をそなえる。【選択図】図１
2014032515.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続される他のストレージ装置にデータを複製するストレージ装置であって、
前記データを記憶する記憶域と、
上位装置からの指示を受信する受信部と、
前記上位装置からの前記指示を前記他のストレージ装置に転送する転送部と、
前記記憶域を解放する記憶域解放部と、をそなえ、
前記指示が前記ストレージ装置の前記記憶域の解放指示である場合、前記記憶域解放部による前記記憶域の解放が完了する前に、前記転送部は、前記解放指示を前記他のストレージ装置に転送することを特徴とするストレージ装置。
【請求項２】
ネットワークを介して接続される他のストレージ装置からのデータを複製するストレージ装置であって、
前記データを記憶する記憶域と、
前記他のストレージ装置からバッファに指示を受け取る転送部と、
前記指示を実行する指示処理部と、
前記バッファを解放するバッファ解放部と、
前記記憶域を解放する記憶域解放部と、をそなえ、
前記指示が前記ストレージ装置の前記記憶域の解放指示である場合、前記記憶域解放部による前記記憶域の解放が完了する前に、前記バッファ解放部は、前記ストレージ装置の前記バッファを解放することを特徴とするストレージ装置。
【請求項３】
前記指示が前記ストレージ装置の前記記憶域の更新指示であり、前記更新指示に後続する指示が前記ストレージ装置の前記記憶域の解放指示である場合、前記指示処理部は前記更新指示をスキップすることを特徴とする請求項２記載のストレージ装置。
【請求項４】
ネットワークを介して接続される第１のストレージ装置から第２のストレージ装置にデータを複製するストレージシステムであって、
前記第１のストレージ装置は、
前記データを記憶する第１の記憶域と、
上位装置からの指示を受信する受信部と、
前記上位装置からの前記指示を前記第２のストレージ装置のバッファに転送する転送部と、
前記第１の記憶域を解放する第１の記憶域解放部と、をそなえ、
前記指示が前記ストレージ装置の前記第１の記憶域の解放指示である場合、前記第１の記憶域解放部による前記第１の記憶域の解放が完了する前に、前記転送部は、前記第２のストレージ装置の前記バッファに転送し、
前記第２のストレージ装置は、
前記データを記憶する第２の記憶域と、
前記指示を時系列で記憶する前記バッファと、
前記第１のストレージ装置から前記バッファに前記指示を受け取る受領部と、
前記指示を実行する指示処理部と、
前記バッファを解放するバッファ解放部と、
前記第２の記憶域を解放する第２の記憶域解放部と、をそなえ、
前記指示が前記ストレージ装置の前記第２の記憶域の解放指示である場合、前記バッファ解放部は、前記第２の記憶域解放部による前記第２の記憶域の解放が完了する前に、前記バッファを解放することを特徴とするストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本件は、ストレージ装置及びストレージシステムに関する。
【背景技術】
【０００２】
ストレージ装置においては、複数のストレージをそなえ、一のストレージ（業務ストレージ）を他のストレージ（バックアップストレージ）に複写することにより、バックアップを行なうことが行なわれている。
また、遠隔地に配置された複数のストレージ装置間において、一のストレージ装置のデータを他のストレージ装置に複写するリモートコピー機能も知られている。
【０００３】
ところで、一般に、ストレージ装置の信頼性を高めるために、Redundant Array of Independent Disks（ＲＡＩＤ）技術が普及している。特に、近年では、記憶領域や管理費用を削減するために、ＲＡＩＤ技術にシンプロビジョニング機能を加えたストレージ装置が採用されている。
シンプロビジョニング機能とは、ストレージシステムにおいて、物理ボリューム容量以上の容量をサーバに見せる技術であって、サーバ等の上位装置から見えるボリューム容量を仮想化する機能である。
【０００４】
一般に、ストレージの容量を増設しようとした場合に、ストレージ装置に新規に作成したLogical Unit Number（ＬＵＮ）を上位装置側で認識させようとすると、上位装置側ではOperating System（ＯＳ）の再起動、すなわちサービスの停止が必要となる。しかし、シンプロビジョニング機能を用いた場合、初めからＬＵＮのサイズを実際より大きくＯＳに見せかけることが可能である。これにより、ＬＵＮの使用率が上がってきた時点でストレージ装置内に物理ディスクを無停止で増設することで、ＯＳ側に影響を与えることなく物理ディスク容量の増設が可能である。このように、シンプロビジョニング機能によれば、拡張性に優れるという利点がある。
【０００５】
このようなシンプロビジョニング機能により確保されたボリュームを、シンプロビジョニングボリューム（Thin Provisioning Volume：ＴＰＶ）と呼ぶ。
ホスト装置がＴＰＶにアクセスすると、物理ディスク容量が順次割り当てられていく。例えば、ホスト装置によりＴＰＶ内のファイルが削除されると、ＯＳからはこのファイルは使用されなくなるが、ストレージ装置の物理ディスク容量がこのファイルに割り当てられたまま残り、ディスク容量が無駄に消費されてしまう。
【０００６】
このような無駄をなくすためのコマンドとして、ＶＭｗａｒｅで提供されているストレージアプリケーションプログラムインタフェース（ＡＰＩ）であるvStorage APIs for Array Integration（ＶＡＡＩ）で用いられるＳＣＳＩ標準コマンドであるＵＮＭＡＰコマンドがある。
ＵＮＭＡＰコマンドとは、ホスト装置からストレージ装置内のＴＰＶに、未使用の物理的なディスク容量の解放を指示するコマンドである。ＯＳからファイルの削除を行なうと共に、ストレージ装置にＵＮＭＡＰコマンドを発行することにより、非常に効率の良いシンプロビジョニング運用を実現することができる。
【０００７】
ところで、一部のストレージシステムでは、アドバンストコピー機能におけるセッションが実行されている領域に対しても、ＵＮＭＡＰコマンドをサポートしている。
アドバンストコピー機能とは、ホスト装置のＣＰＵを使用することなく、ストレージ装置側が単独で高速にコピーを作成する機能を指し、ある時点のコピー元ボリュームのデータを、短時間で別のボリュームにコピーする。
【０００８】
アドバンストコピー機能には、常にコピー元ボリュームの更新と同期した複製を作成するEquivalent Copy（ＥＣ）、任意の時点でのコピー元ボリューム全体の複製を作成するOne Point Copy（ＯＰＣ）などの手法が存在する。ＯＰＣの一手法として、ＱｕｉｃｋＯＰＣがあり、ＱｕｉｃｋＯＰＣでは、最初にコピー元ボリュームの全データをコピー先ボリュームにコピーし、その後、更新部分のデータ（差分データ）のみをコピー先ボリュームにコピーする。
【０００９】
図６に、ＱｕｉｃｋＯＰセッションが実行されているコピー元ボリュームの領域にＵＮＭＡＰコマンドが発行された場合の従来の動作を示す。
ステップＳＣ１において、ＱｕｉｃｋＯＰＣセッションのコピーが完了していない領域を含むコピー元装置が、不図示のホスト装置からＵＮＭＡＰコマンドを受信する。
未コピーのデータは、コピー先ボリュームにコピーする必要があるが、ＵＮＭＡＰコマンドと同期して、ＵＮＭＡＰによる物理域の解放ができない。そのため、ステップＳＣ２において、コピー元ボリュームはＵＮＭＡＰ予約を行なう。
【００１０】
ステップＳＣ３において、コピー元装置がホスト装置にＵＮＭＡＰコマンド応答を返す。
ステップＳＣ４において非同期でコピーが行なわれ、コピーの完了後、ステップＳＣ５において、非同期で物理域の解放を行なう。
図７に、ＥＣセッションが実行されているコピー元ボリュームの領域にＵＮＭＡＰコマンドが発行された場合の従来の動作を示す。
【００１１】
ステップＳＤ１において、ＥＣセッションのコピーが完了していない領域を含むコピー元装置が、不図示のホスト装置からＵＮＭＡＰコマンドを受信する。
ステップＳＤ２において、コピー元ボリュームの物理域を解放する。
ステップＳＤ３において、コピー元ボリュームからコピー先ボリュームに対してＵＮＭＡＰ指示を行なう。
【００１２】
ステップＳＤ４において、コピー先ボリュームの物理域を解放する。
ステップＳＤ５において、コピー元ボリュームがホスト装置に対してＵＮコマンド応答を返す。
【先行技術文献】
【特許文献】
【００１３】
【特許文献１】特開２００６−２６０２９２号公報
【発明の概要】
【発明が解決しようとする課題】
【００１４】
異なる筐体内のコピー元ボリュームからコピー先ボリュームへのコピーの手法として、筐体間同期型レプリケーション（Remote Equivalent Copy：ＲＥＣ）がある。ＲＥＣの転送モードの１つに複数の同期処理のデータ反映の順序性を保証するコンシステンシモードがある。
しかしながら、ＲＥＣコンシステンシモードにおいては、コピー元ボリュームからコピー先ボリュームにＵＮＭＡＰコマンド指示を通知する手段がない。
【００１５】
また、コピー元ボリューム或いはコピー先ボリュームの物理域の解放処理に時間がかかると、ＲＥＣバッファの解放ができなくなり、ＲＥＣバッファがオーバーフローするＲＥＣバッファＨＡＬＴが発生する。これにより、ＲＥＣセッションが異常停止してしまう。
上記の理由により、ＲＥＣコンシステンシモードのセッションを有するボリュームにおいてＵＮＭＡＰコマンドを処理することができない。
【００１６】
１つの側面では、本件は、データ複製中に物理域を解放できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の１つとして位置付けることができる。
【課題を解決するための手段】
【００１７】
このため、このストレージ装置は、ネットワークを介して接続される他のストレージ装置にデータを複製するストレージ装置であって、前記データを記憶する記憶域と、上位装置からの指示を受信する受信部と、前記上位装置からの前記指示を前記他のストレージ装置に転送する転送部と、前記記憶域を解放する記憶域解放部と、をそなえ、前記指示が前記ストレージ装置の前記記憶域の解放指示である場合、前記記憶域解放部による前記記憶域の解放が完了する前に、前記転送部は、前記解放指示を前記他のストレージ装置に転送する。
【００１８】
また、このストレージ装置は、ネットワークを介して接続される他のストレージ装置からのデータを複製するストレージ装置であって、前記データを記憶する記憶域と、前記他のストレージ装置からバッファに指示を受け取る転送部と、前記指示を実行する指示処理部と、前記バッファを解放するバッファ解放部と、前記記憶域を解放する記憶域解放部と、をそなえ、前記指示が前記ストレージ装置の前記記憶域の解放指示である場合、前記記憶域解放部による前記記憶域の解放が完了する前に、前記バッファ解放部は、前記ストレージ装置の前記バッファを解放する。
【００１９】
また、このストレージシステムは、ネットワークを介して接続される第１のストレージ装置から第２のストレージ装置にデータを複製するストレージシステムであって、前記第１のストレージ装置は、前記データを記憶する第１の記憶域と、上位装置からの指示を受信する受信部と、前記上位装置からの前記指示を前記第２のストレージ装置のバッファに転送する転送部と、前記第１の記憶域を解放する第１の記憶域解放部と、をそなえ、前記指示が前記ストレージ装置の前記第１の記憶域の解放指示である場合、前記第１の記憶域解放部による前記第１の記憶域の解放が完了する前に、前記転送部は、前記第２のストレージ装置の前記バッファに転送し、前記第２のストレージ装置は、前記データを記憶する第２の記憶域と、前記指示を時系列で記憶する前記バッファと、前記第１のストレージ装置から前記バッファに前記指示を受け取る受領部と、前記指示を実行する指示処理部と、前記バッファを解放するバッファ解放部と、前記第２の記憶域を解放する第２の記憶域解放部と、をそなえ、前記指示が前記ストレージ装置の前記第２の記憶域の解放指示である場合、前記バッファ解放部は、前記第２の記憶域解放部による前記第２の記憶域の解放が完了する前に、前記バッファを解放する。
【発明の効果】
【００２０】
開示の技術によれば、データ複製中に物理域を解放することができる。
【図面の簡単な説明】
【００２１】
【図１】実施形態の一例としてのストレージシステムの構成を示すブロック図である。
【図２】実施形態の一例としての処理部の機能構成を示すブロック図である。
【図３】実施形態の一例としてのストレージシステムにおけるＵＮＭＡＰコマンドの処理を示す図である。
【図４】実施形態の一例としてのストレージシステムにおけるＵＮＭＡＰコマンドとＷｒｉｔｅコマンドとの両方が発行された場合の処理を示す図である。
【図５】実施形態の一例としてのストレージシステムのコピー先装置における処理を示すフローチャートである。
【図６】ＯＰＣ（ＱｕｉｃｋＯＰＣ）セッションが実行されているコピー元の領域にＵＮＭＡＰコマンドが発行された場合の従来の動作を示す。
【図７】ＥＣセッションが実行されているコピー元の領域にＵＮＭＡＰコマンドが発行された場合の従来の動作を示す図である。
【発明を実施するための形態】
【００２２】
以下、図面を参照して本ストレージ装置及びプログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。
（Ａ）システム構成
図１は実施形態の一例としてのストレージシステム１の構成を示すブロック図である。
【００２３】
実施形態の一例としてのストレージシステム１は、図１に示すように、リモート回線（通信回線）５０を介して複数（図１に示す例では２つ）のストレージ装置１０，２０が通信可能に接続されている。
ストレージ装置１０，２０は、それぞれController Module（ＣＭ：情報処理装置）１１１，２１１をそなえる。
【００２４】
また、図１に示す例においては、ストレージ装置１０にホスト装置２（上位装置）が接続され、又、ストレージ装置２０にホスト装置３（上位装置）が接続されている。
ホスト装置２，３は、接続されたストレージ装置１０，２０のボリュームにデータの書き込みや読み出しを行なう。例えば、ホスト装置２はストレージ装置１０のボリューム１３１に対してリードやライトのデータアクセス要求を行なう。ストレージ装置１０は、このデータアクセス要求に応じてボリューム１３１に対するデータアクセスを行ない、ホスト装置２に対して応答を行なう。
【００２５】
なお、ホスト装置２，３は、情報処理装置であり、例えば、図示しない、Central Processing Unit（ＣＰＵ）やRandom Access Memory（ＲＡＭ）、Read Only Memory（ＲＯＭ）等をそなえたコンピュータである。
また、ホスト装置２は、ストレージ装置１０に対し、例えば、ＵＮＭＡＰコマンドやＷｒｉｔｅコマンド等を発行する。
【００２６】
その際、ホスト装置２は、例えば、セッションＩＤ（Session ID）、コピー元のＬＵＮ（Logical Unit Number）及び開始ＬＢＡ（Logical Block Address）、コピー先のＬＵＮ及び開始ＬＢＡ及びＢＣ（Block Count）等を指定する。
本ストレージシステム１は、ストレージ装置１０のボリューム（論理ボリューム）のデータを他のストレージ装置２０にコピーする。
【００２７】
ここでは、ストレージ装置１０をコピー元装置とし、ストレージ装置２０をコピー先装置とする。以下、ストレージ装置１０のディスク装置１３１のデータをストレージ装置２０にコピーして、ストレージ装置２０のディスク装置２３１に格納する例について説明する。
以下、ストレージ装置１０のボリュームを移行元ボリューム＃００といい、ストレージ装置２０のボリュームを移行先ボリューム＃１０という場合がある。更に、ストレージ装置１０とストレージ装置２０との間におけるリモート回線５０を介したデータ転送をリモート転送という場合がある。
【００２８】
リモート回線５０は、データを通信可能に接続する通信回線であって、例えばＴＣＰ／ＩＰ等の規格に基づきデータ転送を実現する。
ストレージ装置１０，２０は、ホスト装置２，３に対して記憶領域を提供するものであり、例えば、ＲＡＩＤ装置である。なお、図１中においては、便宜上、ストレージ装置１０にホスト装置２が、又、ストレージ装置２０にホスト装置３がそれぞれ接続された状態を示しているが、各ストレージ装置１０，２０に２以上のホスト装置が接続されてもよい。
【００２９】
ストレージ装置１０，２０は、前述のＲＥＣコンシステンシモードによるコピーに対応したストレージ装置である。
ストレージ装置１０，２０は、図１に示すように、ＣＭ１１１，２１１及びディスクエンクロージャ１３０，２３０をそなえる。ＣＭ１１１，２１１はストレージ装置１０，２０における種々の制御を行なうものであり、上位装置であるホスト装置２，３からのストレージアクセス要求（アクセス制御信号）に従って、ディスクエンクロージャ１３０，２３０のディスク装置１３１，２３１へのアクセス制御等、各種制御を行なう。
【００３０】
ディスクエンクロージャ１３０，２３０は、１以上のディスク装置１３１，２３１をそなえる。ディスク装置１３１，２３１は、例えば、Hard Disk Drive（ＨＤＤ）である。ストレージ装置１０，２０においては、このＨＤＤ１３１，２３１の記憶領域が論理ボリュームに対して割り当てられる。
ＣＭ１１１，２１１は、Channel Adapter（ＣＡ）１２４，２２４、Remote Adapter（ＲＡ）１２５，２２５、ＣＰＵ１１０，２１０、ＲＯＭ１２２，２２２及びＲＡＭ１２１，２２１をそなえる。なお、図１に示す例においては、各ストレージ装置１０，２０に１つのＣＭ１１１，２１１がそなえられているが、これに限定されるものではなく、それぞれ２以上のＣＭ１１１，２１１をそなえてもよい。
【００３１】
ＣＡ１２４，２２４は、ホスト装置２，３と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。
ＲＡ１２５，２２５は、リモート回線５０を介して他のストレージ装置２０，１０と通信可能に接続するインタフェースコントローラであり、例えば、ファイバチャネルアダプタである。
【００３２】
ＲＡＭ１２１，２２１は、種々のデータやプログラムを一時的に格納するメモリ（記憶領域）である。ＲＡＭ１２１，２２１における所定の領域には、例えば、他のストレージ装置２０，１０に対して送信するデータが一時的に格納され、これによりＲＡＭ１２１，２２１は、ＲＥＣバッファ（バッファ）２００，２４０として機能する。
これらのＲＥＣバッファ２００，２４０は、データの読み書き処理の順序性を保証するため、複数の領域に分割して管理される。分割した個々の領域は世代として管理する。各世代は時系列で管理される。又、各世代はストレージ装置１０，２０間のコピー処理の完了後に解放される。解放とは、当該世代にデータを格納可能な状態であることである。
【００３３】
ＲＥＣバッファ２００，２４０は、ＵＮＭＡＰやＣＯＰＹなどのコマンド（指示）を格納する制御データ部２０１，２４１と、制御データ部２０１，２４１内の指示に対応するデータの内容を格納するデータ部２０２，２４２とを有する。
このように、ＲＡＭ１２１，２２１は、後述するリモート転送時に、他のストレージ装置２０，１０に対して転送するデータを一時的に格納する転送データバッファとして機能する。
【００３４】
また、ＲＡＭ１２１，２２１における他の所定の領域には、ホスト装置２，３から受信したデータや、ホスト装置２，３に対して送信するデータが一時的に格納され、これによりＲＡＭ１２１，２２１はバッファメモリとしても機能する。
さらに、ＲＡＭ１２１，２２１における他の所定の領域には、後述するＣＰＵ１１０，２１０がプログラムを実行する際に、データやプログラムが一時的に格納展開される。
【００３５】
また、ＲＡＭ１２１における他の所定の領域には、コピービットマップ１３２が格納される。
コピービットマップ１３２は、筐体間（本例においては、ストレージ装置１０とストレージ装置２０間）のコピーを行なう際に、コピーの進捗やコピーの結果等を管理するために使用されるビットマップである。コピービットマップ１３２は、ストレージ装置１０，２０の所定のサイズの領域のコピーを行なうべきか否かを、１ビット値で管理する。この１ビットには、対応する領域のコピーを行なう場合は値“１”、コピーを行なわない場合は値“０”が設定される。
【００３６】
つまり、例えば、８ＭＢのサイズのボリュームをコピーする場合は、ボリュームの全範囲に対してビットをアサインする必要があるので、１０２４ビット必要となり、１０２４／８＝１２８バイトのコピービットマップ１３２が必要となる。
ＲＯＭ１２２，２２２は、ＣＰＵ１１０，２１０が実行するプログラムや種々のデータを格納する記憶装置である。
【００３７】
ＣＰＵ１１０，２１０は、種々の制御や演算を行なう処理装置であり、ＲＯＭ１２２等に格納されたプログラムを実行することにより、種々の機能を実現する。
そして、ＣＰＵ１１０，２１０は、図１に示すように、処理部４として機能する。
次に、図２を参照して、この処理部４について説明する。
図２は、実施形態の一例としての処理部４の機能構成を示すブロック図である。
【００３８】
図２に示すように、処理部４は、ホスト送受信部１１，ＲＥＣバッファ処理部１２，指示処理部１３，物理域解放部１４、ＲＥＣバッファ転送部１５、ＲＥＣバッファ解放部１６及びコピービットマップ処理部１７をそなえる。
ホスト送受信部（受信部）１１は、ホスト装置２，３との間でコマンドやデータの送受信を行なう。
【００３９】
ＲＥＣバッファ処理部１２は、ＲＥＣバッファ２００，２４０の作成、世代管理を行なうと共に、ＲＥＣバッファ２００，２４０との間で指示やデータの格納及び取り出しを行なう。
指示処理部１３は、ボリューム１３１，２３１に対するＷｒｉｔｅやＲｅａｄ等のコマンド（指示）を実行する。
【００４０】
物理域解放部（記憶域解放部、第１の記憶域解放部、第２の記憶域解放部）１４は、ＵＮＭＡＰコマンドで指定されたシンプロビジョニングボリューム物理域を解放する。
ＲＥＣバッファ転送部（転送部、受領部）１５は、ストレージ装置１０，２０間でＲＥＣバッファ２００，２４０の内容の転送を行なう。
ＲＥＣバッファ解放部１６は、ＲＥＣバッファ２００，２４０の解放を行なう。
【００４１】
コピービットマップ処理部１７は、後述するように、物理域の解放処理が完了する前に、ＲＥＣ経路の閉塞やＲＥＣバッファＨＡＬＴが発生した場合に、コピー元のＵＮＭＡＰ対象領域をコピービットマップ１３２に転送する。
なお、ホスト送受信部１１，ＲＥＣバッファ処理部１２，指示処理部１３，物理域解放部１４、ＲＥＣバッファ転送部１５、ＲＥＣバッファ解放部１６及びコピービットマップ処理部１７としての機能を実現するためのプログラムは、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置又は外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００４２】
ホスト送受信部１１，ＲＥＣバッファ処理部１２，指示処理部１３，物理域解放部１４、ＲＥＣバッファ転送部１５、ＲＥＣバッファ解放部１６及びコピービットマップ処理部１７としての機能を実現する際には、内部記憶装置（本実施形態ではＲＡＭ１２１，２２１やＲＯＭ１２２，２２２）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１０，２１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００４３】
なお、本実施形態において、コンピュータとは、ハードウェアとＯＳとを含む概念であり、ＯＳの制御の下で動作するハードウェアを意味している。又、ＯＳが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、ＣＭ１１１，２１１がコンピュータとしての機能を有しているのである。
【００４４】
（Ｂ）システム動作
次に、図３〜図５を参照して、ストレージシステム１の動作について説明する。
最初に、図３を参照して、ＵＮＭＡＰコマンドの処理について説明する。
図３は、実施形態の一例としてのストレージシステム１におけるＵＮＭＡＰコマンドの処理を示す図である。
【００４５】
ステップＳＡ１において、コピー元装置１０のホスト送受信部１１が、ホスト装置２からＵＮＭＡＰコマンドを受信する。
次に、ステップＳＡ２において、コピー元装置１０のＲＥＣバッファ処理部１２が、ＲＥＣバッファ２００の制御データ部２０１にＵＮＭＡＰ指示２５０を格納する。その際、ＵＮＭＡＰ対象のＯＬＵＮ、ＬＢＡ、ＢＣ等も格納する。
【００４６】
次に、ステップＳＡ３において、コピー元装置１０の物理域解放部１４が、コピー元ボリューム＃００のＵＮＭＡＰ対象の物理域ＴＰＰＳ２の解放を行なう。
次に、ステップＳＡ４において、コピー元装置１０のホスト送受信部１１が、ホスト装置２に対し、ステップＳＡ１で受信したＵＮＭＡＰコマンドに対する応答を返す。
次に、ステップＳＡ５において、コピー元装置１０のＲＥＣバッファ処理部１２が、コピー元装置１０のＲＥＣバッファ２００からコピー先装置２０のＲＥＣバッファ２４０に、ＲＥＣバッファ転送（制御データのみ）を行なう。ステップＳＡ５における処理はステップＳＡ３の処理と非同期で行なわれる。すなわち、コピー元装置１０のＲＥＣバッファ転送部１５は、コピー元装置１０の物理域ＴＰＰＳ２の解放が終わる前に、ＲＥＣバッファ転送にてコピー元装置１０に対し、物理域解放を指示する。この点は、コピー元装置１０の物理域の解放完了後にＲＥＣバッファ転送を行なう従来の処理とは異なる。
【００４７】
次に、ステップＳＡ６において、コピー先装置２０の指示処理部１３が、コピー先ボリューム＃０１のＵＮＭＡＰ処理を実行する。
次に、ステップＳＡ７において、コピー先装置２０の物理域解放部１４が、コピー先ボリューム＃０１のＵＮＭＡＰ対象の物理域ＴＰＰＳ５の解放を行なう。
最後に、ステップＳＡ８において、コピー先装置２０の通知部１５からコピー元装置１０に対し、ＲＥＣバッファ解放指示を行なう。このステップＳＡ８における処理はステップＳＡ７の処理とは非同期で行なわれる。すなわち、コピー先装置２０のＲＥＣバッファ解放部１６は、コピー先装置２０の対応する物理域ＴＰＰＳ５の解放が終わる前に、ＲＥＣバッファの解放通知をコピー元装置１０に出す。この点は、コピー先装置２０の更新終了後にＲＥＣバッファ解放通知を行なう従来の処理とは対照的である。
【００４８】
次に、図４を参照して、ＵＮＭＡＰコマンドとＷｒｉｔｅコマンドとの両方が発行された場合の処理について説明する。
図４は、実施形態の一例としてのストレージシステム１におけるＵＮＭＡＰコマンドとＷｒｉｔｅコマンドとの両方が発行された場合の処理を示す図である。
ステップＳＢ１において、コピー元装置１０のホスト送受信部１１が、ホスト装置２からＷｒｉｔｅコマンドを受信する。
【００４９】
次に、ステップＳＢ２において、コピー元装置１０のＲＥＣバッファ処理部１２が、Ｗｒｉｔｅ指示２５０を、ＲＥＣバッファ２００の制御データ部２０１に格納する。その際、Ｗｒｉｔｅする範囲のＯＬＵＮ、ＬＢＡ、ＢＣ等も格納する。
次に、ステップＳＢ３において、コピー元装置１０の更新部１５が、コピー元ボリューム＃００に書き込み対象のデータを書き込む。
【００５０】
次に、ステップＳＢ４において、コピー元装置１０のホスト送受信部１１が、ホスト装置２に対し、ステップＳＢ１で受信したＷｒｉｔｅコマンドに対する応答を返す。
次に、ステップＳＢ５において、コピー元装置１０のＲＥＣバッファ処理部１２が、Ｗｒｉｔｅコマンドで書き込み対象として指定されているデータ２５２を、ＲＥＣバッファ２００のデータ部２０２に格納する。なお、ステップＳＢ５における処理はステップＳＢ４の処理と非同期で行なわれる。
【００５１】
次に、ステップＳＢ６において、コピー元装置１０のホスト送受信部１１が、ホスト装置２からＵＮＭＡＰコマンドを受信する。
次に、ステップＳＢ７において、コピー元装置１０のＲＥＣバッファ処理部１２が、ＲＥＣバッファ２００の制御データ部２０１にＵＮＭＡＰ指示２５０を格納する。その際、ＵＮＭＡＰ対象のＯＬＵＮ、ＬＢＡ、ＢＣ等も格納する。
【００５２】
次に、ステップＳＢ８において、コピー元装置１０の物理域解放部１４が、コピー元ボリューム＃００のＵＮＭＡＰ対象の物理域ＴＰＰＳ２の解放を行なう。
次に、ステップＳＢ９において、コピー元装置１０のホスト送受信部１１が、ホスト装置２に対し、ステップＳＢ６で受信したＵＮＭＡＰコマンドに対する応答を返す。
次に、ステップＳＢ１０において、コピー元装置１０のＲＥＣバッファ処理部１２が、コピー元装置１０のＲＥＣバッファ２００からコピー先装置２０のＲＥＣバッファ２４０に、ＲＥＣバッファ転送（制御データ及びデータ）を行なう。ステップＳＢ１０における処理はステップＳＢ８の処理と非同期で行なわれる。すなわち、コピー元装置１０のＲＥＣバッファ転送部１５は、コピー元装置１０の物理域ＴＰＰＳ２の解放が終わる前に、ＲＥＣバッファ転送にてコピー元装置１０に対し、物理域解放を指示する。この点は、コピー元装置１０の物理域の解放完了後にＲＥＣバッファ転送を行なう従来の処理とは異なる。
【００５３】
次に、ステップＳＢ１１において、コピー元装置１０において、ＲＥＣバッファ２００の同一世代にＵＮＭＡＰ指示２５０とＣＯＰＹ指示２５１とが存在し、２つの指示対象が同一領域であり、かつＣＯＰＹ指示２５１の方が時間的に先行するかどうかを判定する（後述する図５のステップＳ３〜Ｓ４参照）。図４の例では、この判定がＹＥＳとなるため、コピー先装置２０の指示処理部１３は、コピー先ボリューム＃０１に対するデータ２５２の展開をスキップする。データ２５２の展開をスキップする理由は、ＵＮＭＡＰ指示２５０により、後から対象の物理域を解放するので、コピーが不要だからである。
【００５４】
次に、ステップＳＢ１２において、コピー先装置２０の指示処理部１３が、コピー先ボリューム＃０１のＵＮＭＡＰ処理を実行する。
次に、ステップＳＢ１３において、コピー先装置２０の物理域解放部１４が、コピー先ボリューム＃０１のＵＮＭＡＰ対象の物理域ＴＰＰＳ５の解放を行なう。
最後に、ステップＳＢ１４において、コピー先装置２０の通知部１５からコピー元装置１０に対し、ＲＥＣバッファ解放指示を行なう。このステップＳＢ１３における処理はステップＳＢ１３７の処理とは非同期で行なわれる。すなわち、コピー先装置２０のＲＥＣバッファ解放部１６は、コピー先装置２０の対応する物理域ＴＰＰＳ５の解放が終わる前に、ＲＥＣバッファの解放通知をコピー元装置１０に出す。この点は、コピー先装置２０の更新終了後にＲＥＣバッファ解放通知を行なう従来の処理とは対照的である。
【００５５】
コピービットマップ１３２への書き戻しにより、ＵＮＭＡＰできず、コピー元とコピー先の間で不整合が生じた領域を再度コピーすることが可能となる。
次に、図５を参照して、図４におけるコピー先装置２０の処理を詳細に説明する。
図５は、実施形態の一例としてのストレージシステム１のコピー先装置２０における処理を示すフローチャートである。
【００５６】
最初に、ステップＳ１において、コピー先装置２０のＲＥＣバッファ処理部１２が、ＲＥＣバッファ転送により、コピー元装置１０から指示及びデータを、ＲＥＣバッファ２４０のデータ部２４２及び制御データ部２４１に受信する（図４のステップＳＢ１０に対応）。
次に、ステップＳ２において、コピー先装置２０のＲＥＣバッファ処理部１２は、ステップＳ１で受信したＲＥＣバッファ２４０の制御データ部２４１の先頭の制御データを取り出す。図４の例の場合、ＲＥＣバッファ２４０の制御データ部２４１の先頭の制御データにＣＯＰＹ指示が格納されている。
【００５７】
次に、ステップＳ３において、コピー先装置２０の指示処理部１３は、ステップＳ２でＲＥＣバッファ２００の制御データ部２０１から取り出した指示がＵＮＭＡＰ指示２５０かどうかを判定する。図４の例では、取り出した指示はＣＯＰＹ指示であるため、判定結果がＹＥＳとなる。
ＣＯＰＹ指示２５１の場合（ステップＳ３のＮＯ（ＣＯＰＹ指示）ルート参照）、ステップＳ４において、コピー先装置２０は、ＲＥＣバッファ２００の同一世代で、かつ後続にＵＮＭＡＰ指示２５０が格納されているどうかを判定する。図４の例では、ＲＥＣバッファ２００の同一世代で、かつ後続にＵＮＭＡＰ指示２５０が存在するため、判定結果がＹＥＳとなる。
【００５８】
一方、ステップＳ３においてＵＮＭＡＰ指示２５０の場合（ステップＳ３のＹＥＳ（ＵＮＭＡＰ指示）ルート参照）、ステップＳ５において、コピー先装置２０は、コピー先装置２０の物理域を解放する。その後、後述するステップＳ６のコピー指示の実行（データの展開）をスキップして（図４のステップＳＢ１１に対応）、後述のステップＳ７に移動する。
【００５９】
ＲＥＣバッファ２００の同一世代で、後続にＵＮＭＡＰ指示２５０がある場合（ステップＳ４のＹＥＳルート参照）、処理が後述するステップＳ７に移動する。
ＲＥＣバッファ２００の同一世代で、後続にＵＮＭＡＰ指示２５０がない場合（ステップＳ４のＮＯルート参照）、ステップＳ６に移動する。ステップＳ６において、コピー先装置２０の指示処理部１３は、該当ＲＥＣバッファ２００の制御データ部２０１に対応するＲＥＣバッファデータ部２０２のデータを、コピー先の領域にコピーする。
【００６０】
ステップＳ７において、コピー先装置２０は、ＲＥＣバッファ２００の制御データ部２０１に制御データが残っているかどうかを判定する。図４の例では、ＵＮＭＡＰ実行指示が残っているので、この判定はＹＥＳとなる。
ＲＥＣバッファ２００の制御データ部２０１に制御データが残っている場合（ステップＳ７のＹＥＳルート）、処理がステップＳ２に戻り、ステップＳ２〜７を繰り返し、残りの指示を処理する（図４のステップＳＢ１２〜ＳＢ１４）。
【００６１】
一方、ＲＥＣバッファ２００の制御データ部２０１に制御データがない場合（ステップＳ７のＮＯルート）、処理を終了する。
このように、本発明の一実施形態としてのストレージシステム１によれば、コピー元装置１０のＲＥＣバッファ転送部１５は、コピー元装置１０の物理域ＴＰＰＳ２の解放が終わる前に、ＲＥＣバッファ転送にてコピー元装置１０に対し、物理域解放を指示する。このため、コピー元装置１０の更新終了を待たずに（非同期で）ＲＥＣバッファ転送を行なうことができ、処理を高速化することができる。更に、ホスト装置１０に対する応答時間も短縮される。
【００６２】
また、コピー先装置２０のＲＥＣバッファ解放部１６は、コピー先装置２０の対応する物理域ＴＰＰＳ５の解放が終わる前に、ＲＥＣバッファの解放通知をコピー元装置１０に出す。このため、コピー先装置２０の更新終了を待たずに（非同期で）ＲＥＣバッファ解放通知を行なうことができ、ＲＥＣバッファオーバーフローの発生を回避することができる。
【００６３】
また、コピー先装置２０に対してＷｒｉｔｅコマンドとＵＮＭＡＰコマンドとが同時に発生した場合、コピー先装置２０の指示処理部１３がＷｒｉｔｅコマンドの実行をスキップするので、処理を更に高速化することができる。更に、ホスト装置１０に対する応答時間も短縮される。
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。
【００６４】
以上の実施形態に関し、更に以下の付記を開示する。
（付記１）
ネットワークを介して接続される他のストレージ装置にデータを複製するストレージ装置であって、
前記データを記憶する記憶域と、
上位装置からの指示を受信する受信部と、
前記上位装置からの前記指示を前記他のストレージ装置に転送する転送部と、
前記記憶域を解放する記憶域解放部と、をそなえ、
前記指示が前記ストレージ装置の前記記憶域の解放指示である場合、前記記憶域解放部による前記記憶域の解放が完了する前に、前記転送部は、前記解放指示を前記他のストレージ装置に転送することを特徴とするストレージ装置。
【００６５】
（付記２）
ネットワークを介して接続される他のストレージ装置からのデータを複製するストレージ装置であって、
前記データを記憶する記憶域と、
前記他のストレージ装置からバッファに指示を受け取る受領部と、
前記指示を実行する指示処理部と、
前記バッファを解放するバッファ解放部と、
前記記憶域を解放する記憶域解放部と、をそなえ、
前記指示が前記ストレージ装置の前記記憶域の解放指示である場合、前記記憶域解放部による前記記憶域の解放が完了する前に、前記バッファ解放部は、前記ストレージ装置の前記バッファを解放することを特徴とするストレージ装置。
【００６６】
（付記３）
前記指示が前記ストレージ装置の前記記憶域の更新指示であり、前記更新指示に後続する指示が前記ストレージ装置の前記記憶域の解放指示である場合、前記指示処理部は前記更新指示をスキップすることを特徴とする付記２記載のストレージ装置。
（付記４）
ネットワークを介して接続される第１のストレージ装置から第２のストレージ装置にデータを複製するストレージシステムであって、
前記第１のストレージ装置は、
前記データを記憶する第１の記憶域と、
上位装置からの指示を受信する受信部と、
前記上位装置からの前記指示を前記第２のストレージ装置のバッファに転送する転送部と、
前記第１の記憶域を解放する第１の記憶域解放部と、をそなえ、
前記指示が前記ストレージ装置の前記第１の記憶域の解放指示である場合、前記第１の記憶域解放部による前記第１の記憶域の解放が完了する前に、前記転送部は、前記解放指示を前記第２のストレージ装置の前記バッファに転送し、
前記第２のストレージ装置は、
前記データを記憶する第２の記憶域と、
前記指示を時系列で記憶する前記バッファと、
前記第１のストレージ装置から前記バッファに前記指示を受け取る受領部と、
前記指示を実行する指示処理部と、
前記バッファを解放するバッファ解放部と、
前記第２の記憶域を解放する第２の記憶域解放部と、をそなえ、
前記指示が前記ストレージ装置の前記第２の記憶域の解放指示である場合、前記第２の記憶域解放部による前記第２の記憶域の解放が完了する前に、前記バッファ解放部は、前記バッファを解放することを特徴とするストレージシステム。
【００６７】
（付記５）
ネットワークを介して接続される他のストレージ装置にデータを送信する方法であって、
上位装置からの指示を受信し、
前記上位装置からの前記指示を前記他のストレージ装置のバッファに転送し、
前記指示が前記ストレージ装置の前記記憶域の解放指示である場合、前記記憶域を解放し、前記解放が完了する前に、前記解放指示を前記他のストレージ装置の前記バッファに転送することを特徴とするデータ送信方法。
【００６８】
（付記６）
ネットワークを介して接続される他のストレージ装置からデータを受信する方法であって、
前記他のストレージ装置からバッファに複数の指示を受け取り、
前記指示が前記ストレージ装置の前記記憶域の解放指示である場合、前記記憶域を解放し、前記解放が完了する前に、前記バッファを解放することを特徴とするデータ受信方法。
【符号の説明】
【００６９】
１              ストレージシステム
２，３          ホスト装置（上位装置）
４              管理装置
１０，２０      ストレージ装置
１１            ホスト送受信部（受信部）
１２            ＲＥＣバッファ処理部
１３            指示処理部
１４            物理域解放部（記憶域解放部、第１の記憶域解放部、第２の記憶域解放部）
１５            ＲＥＣバッファ転送部（転送部、受領部）
１６            ＲＥＣバッファ解放部（バッファ解放部）
１７            コピービットマップ処理部
１１０，２１０  ＣＰＵ
１１１，２１１  ＣＭ
１２１，２２１  ＲＡＭ
２００，２４０  ＲＥＣバッファ
１２２，２２２  ＲＯＭ
１２４，２２４  ＣＡ
１２５，２２５  ＲＡ
１２６，２２６  ＤＡ
１３０，２３０  ディスクエンクロージャ
１３１，２３１  ディスク装置
１３２          コピービットマップ
２００          ＲＥＣバッファ
２４０          ＲＥＣバッファ（バッファ）
２０１，２４１  制御データ部
２０２，２４２  データ部
２５０          ＵＮＭＡＰ指示（記憶域の解放指示）
２５１          コピー指示（記憶域の更新指示）
５０            リモート回線（ネットワーク）
【図１】
2014032515.tif 000003
【図２】
2014032515.tif 000004
【図３】
2014032515.tif 000005
【図４】
2014032515.tif 000006
【図５】
2014032515.tif 000007
【図６】
2014032515.tif 000008
【図７】
2014032515.tif 000009