(57)【要約】【解決課題】正ボリュームに対してデータの整合性が保障されるべき副ボリュームが複数あっても、正ボリュームに対するＩ／Ｏ負荷を増大させないトレージ装置を提供すること。【解決手段】ストレージ装置は正ボリュームＰに対するライトアクセスに基づくライトデータを  副ボリュームＳ１に書き込む。ストレージ装置のコントローラはバックグラウンド処理として、副ボリュームＳ１から副ボリュームＳ２及びＳ３にそれぞれコピーをする。ストレージ装置は副ボリュームＳ１と、副ボリュームＳ２及びＳ３との間の共有データをビットマップで管理している。【選択図】図２
2008171032.tif 000002
【特許請求の範囲】
【請求項１】
記憶装置と、上位計算機に前記記憶装置の記憶領域を複数のボリュームとして提供し、前記上位装置の前記ボリュームに対するアクセスを制御する制御装置と、前記ボリュームを管理する管理情報が設定されたメモリと、を備え、前記制御装置は前記管理情報に基づいて前記上位装置から発行されたライトデータを前記ボリュームに書き込むことを制御するように構成されたストレージ装置において、
前記複数のボリュームは、前記上位装置がライトアクセスする正ボリュームと、当該正ボリュームの複製ボリュームとしての複数の副ボリュームと、を有し、前記複数の副ボリュームは、前記正ボリュームに対する前記上位装置からのライトアクセスに基づくライトデータが書き込まれる主ボリュームと、当該主ボリュームに従属する従ボリュームとからなるものとして構成されてなり、
前記制御装置は、前記上位計算機からの前記ライトアクセスを受領すると、前記正ボリュームと前記主ボリュームに前記ライトデータを書き込み、当該主ボリュームに書き込んだライトデータを前記従ボリュームに書き込むように構成されてなる、
ストレージ装置。
【請求項２】
前記管理情報は、前記複数のボリュームに対する管理テーブルであり、当該管理テーブルは、前記正ボリューム、前記副ボリューム、前記主ボリューム、そして前記従ボリュームの区別、さらに、前記複数の副ボリュームが前記正ボリュームに格納されたデータに対する整合性を保障するグループに属すること、を含む情報である、請求項１記載のストレージ装置。
【請求項３】
前記制御装置は、前記従ボリュームが前記主ボリュームと共有するデータを、前記主ボリュームから前記従ボリュームに複写してなる請求項１記載のストレージ装置。
【請求項４】
前記制御装置は、前記正ボリュームに対する前記ライトデータを前記従ボリュームに書き込むことなく、前記共有データとして前記主ボリュームに書き込む請求項３記載のストレージ装置。
【請求項５】
前記制御装置は、前記主ボリュームを前記正ボリュームに同期ペアとして、そして、前記従ボリュームを前記正ボリュームに非同期ペアとして、前記管理情報に設定する請求項4記載のストレージ装置。
【請求項６】
前記制御装置は、前記主ボリュームについて前記同期ペアを解除した際に前記従ボリュームを前記非同期ペアから前記同期ペアに変更する、請求項５記載のストレージ装置。
【請求項７】
前記制御装置は、前記主ボリュームから前記従ボリュームへの前記共有データの複写をバックグランド処理として実行する請求項４記載のストレージ装置。
【請求項８】
前記制御装置は前記従ボリュームが前記共有データの前記主ボリュームにおける所在を識別するための識別情報を前記管理情報として前記メモリに設定してなる請求項５記載のストレージ装置。
【請求項９】
前記制御装置は、前記識別情報をビットマップにフラグとして設定し、このフラグに対応する前記主ボリュームの論理アドレスから前記共有データを読み込んで、当該共有データを前記従ボリュームの当該共有データが格納されるべき論理アドレスに当該共有データを複写する、請求項８記載のストレージ。
【請求項１０】
前記制御装置は、前記主ボリュームについて前記同期ペアを解除する際に、前記主ボリュームから前記共有データを前記従ボリュームに複写し、当該共有データが書き込まれた前記従ボリュームを前記正ボリュームに対して同期ペアとして前記管理情報に設定する、請求項6記載のストレージ装置。
【請求項１１】
前記制御装置は、前記従ボリュームについて前記非同期ペアを解除する際に、前記主ボリュームから前記共有データを当該従ボリュームに複写する請求項５記載のストレージ装置。
【請求項１２】
前記制御装置は、前記従ボリュームが前記正ボリュームに非同期ペアとして設定された後の前記共有データを前記ビットマップで管理し、前記同期ペアが解除された主ボリューム、又は前記非同期ペアが解除された従ボリュームが当該解除の後、前記正ボリュームに対して前記同期ペアが設定されている前記主ボリュームに対して書き込まれたライトデータを差分データとして前記ペアが解除された前記主ボリューム又は従ボリュームに対して設定された差分ビットマップで管理する、
請求項９記載のストレージ装置。
【請求項１３】
前記主ボリュームから前記従ボリュームへの前記共有データの複写が終了する前に、前記正ボリュームに前記同期ぺアとなった当該従ボリュームに対して前記上位計算機から前記正ボリュームにライトアクセスがあった場合、前記制御装置は、前記共有データの複写が終了した後、前記ライトデータを前記同期ペアとなった前記従ボリュームに書き込む、請求項１０記載のストレージ装置。
【請求項１４】
前記主ボリュームから前記従ボリュームへの前記共有データの複写が終了する前に、前記主ボリュームにライトアクセスがあった場合、前記制御装置は、前記共有データの複写が終了した後、前記ライトアクセスに基づくライトデータを前記主ボリュームに書き込む、請求項１０記載のストレージ装置。
【請求項１５】
前記制御装置は、前記従ボリュームを前記正ボリュームに対するペアから解除する際に、前記主ボリュームから当該従ボリュームに前記共有データを複写する、請求項５記載のストレージ装置。
【請求項１６】
前記主ボリュームから前記従ボリュームへ前記共有データの複写が終了する前に、前記従ボリュームへライトアクセスがあった場合、前記制御装置は前記主ボリュームから前記従ボリュームへの前記共有データの複写が終わった後、前記ライトアクセスに基づくライトデータを前記従ボリュームに書き込む、請求項１５記載のストレージ装置。
【請求項１７】
前記主ボリュームから前記従ボリュームへ前記共有データの複写が終了する前に、前記上位計算機から前記正ボリュームにライトアクセスがあった場合、前記制御装置は前記主ボリュームから前記従ボリュームへ前記共有データの複写が終了した後、前記主ボリュームに前記ライトアクセスに基づくライトデータを書き込む、請求項１５記載のストレージ装置。
【請求項１８】
上位計算機に対して記憶ボリュームを提供し、当該記憶ボリュームに対する前記上位計算機のライトアクセスを制御するストレージ装置を用いた記憶制御方法において、
前記ストレージ装置は、
前記記憶ボリュームとして、前記上位計算機がアクセスする正ボリュームと、当該正ボリュームの複製ボリュームとしての複数の副ボリュームと、を作成するステップと、
複数の副ボリュームを、前記正ボリュームに対する前記上位装置からのライトアクセスに基づくライトデータが書き込まれる主ボリュームと、当該主ボリュームに従属する従ボリュームとからなるものとして定義するステップと、
前記上位計算機からの前記ライトアクセスを受領すると、前記正ボリュームと前記主ボリュームに前記ライトデータを書き込み、当該主ボリュームに書き込んだライトデータを前記従ボリュームに書き込むステップと、
を実行してなる、
記憶制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、上位装置が記憶装置にデータを記憶する際の制御を上位装置に対して提供するストレージ装置に係り、特に、副ボリュームに対する上位装置からのライトデータの書き込みに係る制御機能を備えたストレージ装置に関するものである。
【背景技術】
【０００２】
ストレージ装置は上位計算機に接続されて記憶制御システムを構成するものであって、上位計算機に対して大容量の記憶領域を提供する。そこで、ストレージ装置は、ハードディスクドライブなどの複数の記憶デバイスをアレイ状にして筐体内に収容している。ストレージ装置は記憶資源を仮想化して上位装置に提供し、上位計算機は物理的な記憶領域を仮想化したものである論理ボリュームを認識して、この論理ボリュームにライト又はリードアクセスする。この際、ストレージ装置は、複数の記憶デバイスについてＲＡＩＤグループを定義してデータの冗長性を保障している。上位計算機はストレージ装置に直接接続される他、ＳＡＮやＩＰ通信網を介して接続することも可能である。なお、ストレージ装置は、ストレージサブシステム、或いは記憶制御装置とも呼ばれている。
【０００３】
上位計算機上で稼動するアプリケーションプログラムは、ボリュームにリード又はライトアクセスして、物理的なリソースである記憶装置にデータを書き込み、又は記憶装置からデータを読み込む。ストレージ装置に付属している管理装置は、上位計算機がライト及びリードアクセスする正ボリューム（Primarily Volume）に対して副ボリューム（Secondly volume）をストレージ装置に定義する機能を備えている。
【０００４】
正ボリュームは上位計算機がオンラインアクセスするオンラインボリュームであり、副ボリュームは正ボリュームの複製ボリュームである。ストレージ装置のボリューム管理プログラムは、副ボリュームを正ボリュームのペアであって正ボリュームに同期すべきボリュームとして認識し、かつ、ストレージ装置のライト・リード管理プログラムは、上位計算機からのライト命令に伴うライトデータを正ボリュームと副ボリュームの両方に２重書きしている。したがって、正ボリュームのデータと副ボリュームのデータが一致し、ストレージ装置のユーザは副ボリュームをバックアップボリュームとして利用することができる。副ボリュームは複製ボリューム、或いはミラーボリュームとも呼ばれる。
【０００５】
副ボリュームを設定できるストレージ装置において、複数の副ボリュームが必要とされる場合がある。例えば、単独又は複数のユーザが複数の副ボリュームの各々をバックアップ用、テスト用、バッチ処理用などの処理用に使い分けたい場合である。例えば、特開２００６―３１５７９号公報には、一つの正ボリュームに対して複数（Ｎ個）の副ボリュームを作成できる機能を備えたストレージ装置が記載されている。
【特許文献１】特開２００６―３１５７９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
複数の副ボリュームを作成できる機能を有するストレージ装置においては、複数の副ボリューム間でデータの整合性を保障する必要がある。そこで、ストレージ装置は、上位計算機がアクセスする正ボリュームに対して複数ある各副ボリュームを正ボリュームに同期するペアとして設定していた。したがって、上位計算機が正ボリュームにライトアクセスすると、ストレージ装置は、このライトアクセスを処理する際に、正ボリュームばかりでなく複数ある各副ボリュームにもアクセスして各副ボリュームにライトデータを書き込まなくてはならない。よって、ストレージ装置が上位装置にライト処理を完了する応答を返すまでの応答時間が長くなって、ストレージ装置の上位計算機からのライト命令に対する処理効率が低下するおそれがある。特に、一つのプロセッサで正ボリュームばかりでなく複数ある各副ボリュームにライト処理を行なおうとすると、プロセッサの負苛が増大して処理効率の低下が顕著となる。
【０００７】
一方で、高性能なストレージである、いわゆるハイエンドタイプであるストレージ装置では、上位計算機側(フロントエンド)とハードディスク側(バックエンド)それぞれにプロセッサを有している。このようなストレージ装置では、正ボリュームへのデータの書き込みと、正ボリュームから副ボリュームへのデータのコピーを複数あるプロセッサで分担することができる。したがって、ストレージ装置全体としてみればプロセッサに対する負荷が増大することを抑えることができる。
【０００８】
しかしながら、複数ある副ボリュームへ正ボリュームからライトデータをコピーすることに伴って正ボリュームへのストレージ装置内におけるＩ／Ｏアクセスが増大し、上位計算機から正ボリュームへ発行される他のライトアクセスやリードアクセスに影響を及ぼすおそれがある。また、フロントエンド側の処理とバックエンド側の処理とを同一のプロセッサで行なう、いわゆるミッドレンジタイプのストレージ装置において、正ボリュームへのライト処理に同期して全ての副ボリュームにライト処理を行なうとすると、プロセッサに対する負荷が増大することを避けられない。したがって、ミッドレンジタイプのストレージ装置では、正ボリュームに対して同時にペアにできる副ボリュームの数を制限せざるを得なかった。
【０００９】
そこで、本発明は、正ボリュームに対してデータの整合性が保障されるべき副ボリュームが複数あっても、正ボリュームに対するＩ／Ｏ負荷を増大させないトレージ装置及び記憶制御方法を提供することを目的とするものである。さらに、本発明は、同様に副ボリュームが複数あっても、プロセッサに与える負荷を増大させないストレージ装置及び記憶制御方法を提供することを目的とするものである。
【課題を解決するための手段】
【００１０】
本発明はこの目的を達成するために、ストレージ装置が、複数の副ボリュームの中で正ボリュームとペアとなっている主ボリュームから主ボリューム以外の他の副ボリュームである従ボリュームに、上位計算機から発行されたライトデータを正ボリュームにアクセスすることなく複写することによって、正ボリュームへのアクセス頻度を低減させたことを特徴とするものである。特に、ストレージ装置が主ボリュームから従ボリュームへの既述のデータコピーをバックグランドで処理することによって、ストレージ装置のプロセッサ及び正ボリュームに対する負荷が増大しないようにできる。
【００１１】
また、本発明は、記憶装置と、上位計算機に前記記憶装置の記憶領域を複数のボリュームとして提供し、前記上位装置の前記ボリュームに対するアクセスを制御する制御装置と、前記ボリュームを管理する管理情報が設定されたメモリと、を備え、前記制御装置は前記管理情報に基づいて前記上位装置から発行されたライトデータを前記ボリュームに書き込むことを制御するように構成されたストレージ装置において、前記複数のボリュームは、前記上位装置がライトアクセスする正ボリュームと、当該正ボリュームの複製ボリュームとしての複数の副ボリュームと、を有し、前記複数の副ボリュームは、前記正ボリュームに対する前記上位装置からのライトアクセスに基づくライトデータが書き込まれる主ボリュームと、当該主ボリュームに従属する従ボリュームとからなるものとして構成されてなり、前記制御装置は、前記上位計算機からの前記ライトアクセスを受領すると、前記正ボリュームと前記主ボリュームに前記ライトデータを書き込み、当該主ボリュームに書き込んだライトデータを前記従ボリュームに書き込むように構成されてなる、ことを特徴とする。
【００１２】
またさらに、本発明は、上位計算機に対して記憶ボリュームを提供し、当該記憶ボリュームに対する前記上位計算機のライトアクセスを制御するストレージ装置を用いた記憶制御方法において、前記ストレージ装置は、前記記憶ボリュームとして、前記上位計算機がアクセスする正ボリュームと、当該正ボリュームの複製ボリュームとしての複数の副ボリュームと、を作成するステップと、複数の副ボリュームを、前記正ボリュームに対する前記上位装置からのライトアクセスに基づくライトデータが書き込まれる主ボリュームと、当該主ボリュームに従属する従ボリュームとからなるものとして定義するステップと、前記上位計算機からの前記ライトアクセスを受領すると、前記正ボリュームと前記主ボリュームに前記ライトデータを書き込み、当該主ボリュームに書き込んだライトデータを前記従ボリュームに書き込むステップと、を実行してなる、ことを特徴とするものである。
【発明の効果】
【００１３】
以上説明したように、本発明によれば、正ボリュームに対してデータの整合性が保障されるべき副ボリュームが複数あっても、正ボリュームに対するＩ／Ｏ負荷を増大させないトレージ装置を提供することができる。さらに、本発明は、同様に副ボリュームが複数あっても、プロセッサに与える負荷を増大させないストレージ装置及び記憶制御方法を提供することができる。
【発明を実施するための最良の形態】
【００１４】
次に、本発明に係るストレージ装置を備えた記憶制御システムの一例について説明する。図１は記憶制御システムのハードウエアブロック図である。なお、図１に示す、ストレージ装置は、既述したミドルレンジタイプのものであるが、ストレージ装置をハイエンドタイプのものにすることも勿論可能である。
【００１５】
図１において、ストレージ装置１は、制御装置１０と複数の記憶デバイス２０を備えて構成されている。ディスクアレイコントローラ１０が制御装置に対応する。複数のハードディスクドライブ２０が複数の記憶デバイスに対応する。記憶デバイスとしては、ハードディスクドライブに限らず、フラッシュメモリチップなどの半導体メモリであっても良い。
【００１６】
ストレージ装置１は、ＳＡＮ（Storage Area Network）２を介して複数のホスト３(上位計算機に対応する。)に接続されると共に、ＬＡＮ（Local Area Network）４を介して管理用端末装置５に接続されている。ディスクアレイコントローラ１０は、メモリ１０２に記憶された制御プログラム１０３によって、ハードディスクドライブ２０に対するホスト３からのデータの入出力・ボリュームの管理など処理を制御する。
【００１７】
ハードディスクドライブ２０の記憶資源は、ＲＡＩＤ（Redundant Array of Independent Disks）によって定義されホスト３にボリュームとして提供されている。複数の記憶装置の記憶領域が一緒になってあるＲＡＩＤレベルからなるＲＡＩＤグループを構成し、ストレージ装置１は、このＲＡＩＤグループを論理的に分割して、これをホストに論理的に見せるようにしている。
【００１８】
ホストが認識する論理的な単位は、論理ボリューム、論理ユニット、仮想ボリューム、論理ディスク、仮想ディスクなど、ホストがメインフレームかオープンフレームか、あるいは通信プロトコルの相違によって種々定義される。この明細書においては、これらを総称してボリュームと呼んでいる。ホストはボリュームを介して、物理ディスク（ＰＤＥＶ）にアクセスする。
【００１９】
例えば、論理ボリュームは、Ｉ／Ｏコマンドを実行するＳＣＳＩターゲット内のエンテティである。論理ボリュームは、ＬＵＮ（論理ユニット番号）としてホストにより識別される。ディスクアレイコントローラ１０は、制御情報としてＬＵについてこれを管理するための情報、すなわち、論理ボリューム番号（ＬＵＮ）や、論理アドレス範囲、記憶容量、ＲＡＩＤレベル、正ボリューム・副ボリュームに係る制御状態等の情報をボリューム管理情報としてメモリ１０２に格納し、かつこれらを管理する。ディスクアレイコントローラは、また、ＬＵに対応する下位ボリューム（ＬＤＥＶ）の管理のための論理デバイス番号も管理する。ストレージ装置１内で各種制御情報は、必要に応じて動的に変更される。
【００２０】
ディスクアレイコントローラ１０は、制御プログラム１０３を実行するために、メイン処理用コントローラとしてのＣＰＵ１０１と、制御プログラムを格納するメモリ１０２と、を備えている。ＣＰＵ１０１の代わりにマイクロプロセッサーでも良い。制御プログラムがプロセッサーによって実行されることにより、後述の各処理が実現される。ＣＰＵ１０１が制御プログラム１０３を呼び出して実行することによって各種処理が行われる。制御プログラムは、ストレージ装置がホストに対して提供する、記憶制御機能を実現する上で必要な機能を備える。制御プログラムは、特に、ホストからストレージ装置に発行されるライト又はリードアクセスを処理する機能、そして、正ボリューム及び複数の副ボリュームを作成して、これを管理、及び制御するための機能を備えている。
【００２１】
ディスクアレイコントローラ１０は、この制御プログラムに基づいて、ホスト３或いは管理装置５からの命令に基づいて複数の副ボリュームを作成し、これをメモリ１０２に管理テーブルとして格納する。制御プログラムはこの管理テーブルに基づいて副ボリューム間でのデータをコピーすることを管理する。
【００２２】
ディスクアレイコントローラ１０は、ＬＵを単位としてボリュームを設定・ボリュームに対する制御を行なうことが可能である。ボリュームには、ホストがアクセスする正ボリュームと、正ボリュームの複製ボリュームとしての副ボリュームが含まれる。ホストは正ボリュームに対してライトアクセスすると、ライトデータが副ボリュームに反映される。勿論、ホストは正ボリュームにリードアクセスすることもできる。ホストは、正ボリュームから後述のようにスプリットされた副ボリュームに対してライト又はリードアクセスすることもできる。
【００２３】
ディスクアレイコントローラ１０は、データ転送コントローラ１０４、フロントエンドインターフェース１０５、バックエンドインターフェース１０６、キャッシュメモリ１０７、及びＬＡＮインターフェース１０８を備えている。データ転送コントローラ１０４は、ＣＰＵ１０１、フロントエンドインターフェース１０５、バックエンドインターフェース１０６、及びキャッシュメモリ１０７の間でのデータを転送することを制御する。
【００２４】
フロントエンドインターフェース１０５は、ＳＡＮ２に対するインターフェースであって、例えば、ファイバチャネルプロトコルによって、ホスト３との間でデータや制御信号を送受信する。バックエンドインターフェース１０６は、ディスク２０に対するインターフェースであって、例えば、ファイバチャネルプロトコルによって、ディスク２０との間でデータや制御信号を送受信する。
【００２５】
キャッシュメモリ１０７には、フロントエンドインターフェース１０５とバックエンドインターフェース１０６との間で送受信されるデータが一時的に記憶される。すなわち、データ転送コントローラ１０４は、ＳＡＮ４を介してディスクに読み書きされるデータをインターフェース１０５、１０６間で転送する。さらに、これらのディスクに読み書きされるデータをキャッシュメモリ１０７に転送する。
【００２６】
ＬＡＮインターフェース１０８は、ＬＡＮ４に対するインターフェースであって、例えば、ＴＣＰ／ＩＰプロトコルによって、管理用端末装置５とのストレージ装置１との間でデータや制御信号の送受信が可能となる。ＳＡＮ２は、例えばファイバチャネルプロトコルのような、データの転送に適するプロトコルで通信可能なネットワークである。
【００２７】
管理用端末装置５は、ＣＰＵ、メモリ、記憶装置、インターフェース、入力装置及び表示装置が備わるコンピュータ装置である。管理用端末装置５では管理プログラムが動作しており、該管理プログラムによってストレージ装置の動作状態を把握し、ストレージ装置の動作を制御する。管理用端末装置５ではｗｅｂブラウザ等のクライアントプログラムが動作しており、ストレージ装置１からＣＧＩ（Common Gateway Interface）等によって供給される管理プログラムによってストレージ装置の動作を制御してもよい。
【００２８】
管理用端末装置５はメモリ１０２にディスクアレイコントローラ１０の各種制御を実現するためのデータを設定できる機能を備えている。この機能は、ＧＵＩとしてユーザに提供される。既述のように、正ボリューム及び複数の副ボリュームに対する各種管理情報の設定はホスト内のプログラムによってホストが実行すると説明したが、これに代えて管理用端末装置５が実行するようにしてもよい。ホストのこのような管理機能もＧＵＩとしてホストを管理する管理者に提供される。ホスト３は、ＣＰＵ、メモリ、記憶装置、インターフェース、入力装置及び表示装置が備わるコンピュータ装置であり、ホストのクライアントは、ストレージ装置１から提供されるデータを利用して、データベースサービスやウェブサービス等を利用できる。
【００２９】
ホストと記憶装置６の間でのデータ入出力の処理は例えば以下のようになる。例えば、コントローラ１０のＣＰＵ１０１が、あるホスト３から受信したデータ入出力命令をライト命令と認識した場合、ライト命令をメモリ１０２に書き込むと共に、データ転送コントローラ１０４をして、ホストから受信したライトデータをキャッシュメモリ１０７に書き込み、そしてＣＰＵ１０１はホストにライト命令を実行した旨を報告する。
【００３０】
次いで、ＣＰＵ１０１は、データ転送コントローラ１０４をして、キャッシュメモリ１０７からライトデータを読み出してこれを記憶装置２０に書き込む。ホストからのリード命令の場合もこれに類する。すなわち、ＣＰＵ１０１がリード命令を認識すると、リード命令をメモリ１０２に書き込むと共に、読み出し対象となるデータがキャッシュメモリ１０７に存在するかどうか調べる。キャッシュメモリに読み出しデータが存在する場合には、ＣＰＵ１０１はデータ転送コンロトーラにこのデータをフロントエンドインターフェースを介して送信するように命令する。データ転送コントローラ１０４は、読み出しデータがキャッシュメモリ１０７に無い場合には当該データをディスク２０から読み出してこれをホストに転送する。
【００３１】
次に、ストレージ装置１内での正ボリュームと副ボリュームとの関係を図２に示すブロック図に基づいて説明する。図２に示す関係は、管理情報としてメモリ１０２の所定領域に登録されている。すなわち、各ボリュームについて、正ボリューム又は副ボリュームの区別、副ボリュームの中で主ボリュームと従ボリュームとの区別、さらに、正ボリュームと副ボリュームとがペアの関係になっていることが、管理制御テーブルとして図１のメモリ１０２に格納されている。
【００３２】
符合Ｐは正ボリュームを示すものであり、Ｓは副ボリュームを示す。正ボリュームとは、ホスト３がストレージ装置１にリード又はライトする際にアクセスするボリュームである。副ボリュームは正ボリュームの複製としてのボリュームである。副ボリュームはＳ１ないしＳ３の複数がある。
【００３３】
Ｓ１はＰと同期ペアの関係になっている主ボリュームである。ホスト３から正ボリュームＰに対するライトコマンドがストレージ装置１に発行されると、ディスクアレイコントローラ１０は正ボリューム（Ｐ）と副ボリューム（Ｓ１）の両方にライト処理を行う。このライト処理は好適には同期処理される。Ｓ１、Ｓ２、Ｓ３からなる複数の副ボリュームの各々は、正ボリューム（Ｐ）とデータの整合性を保障する同一グループの一員として定義付けられている。
【００３４】
Ｓ２及びＳ３で示される各副ボリュームは、正ボリューム（Ｐ）に対するライト処理に伴ってライトデータが格納される主ボリューム（Ｓ１）とは異なり、ＣＰＵ１０１がバックグランド処理によって主ボリューム（Ｓ１）からライトデータをコピーすべき、主ボリュームＳ１に従属する従ボリュームである。但し、副ボリュームＳ１乃至Ｓ３は正ボリュームＰに対してデータの整合性を保障されるグループとして定義されているので、これらボリュームは正ボリュームに対してペア設定がされている。勿論、主ボリュームＳ１の正ボリュームに対するペア設定の内容と、従ボリュームＳ２及びＳ３の正ボリュームＰに対するペア設定の内容とは区別される。前者のペアが「同期ペア」であり、後者のペアが「非同期ペア」である。ボリューム管理テーブルには、ボリュームＳ１が同期ペアとして設定され、ボリュームＳ２及びＳ３が非同期ペアとして設定される。
【００３５】
図３は、Ｓ１，Ｓ２，及びＳ３の各副ボリュームが正ボリューム（Ｐ）と同期ペアの関係になっている従来の構成に係るブロック図である。図３の場合、ホスト３がストレージ装置１にライト命令を発行すると、ストレージ装置は、正ボリュームに対するライト処理（Ｓ３０）と、三つの副ボリュームそれぞれに対するライト処理（Ｓ３２―Ｓ３６）を行う。即ち、ストレージ装置１はホストからライト命令を受ける都度合計４回のライト処理をフォアグランド処理として行なくてはならない。これでは、ＣＰＵ１０４の負荷が増加すると共に、正ボリュームに対するＩ/Ｏ負荷も増加する。
【００３６】
これに対して、図２に示す本発明に係る実施形態によれば、ＣＰＵ１０４は、ホストからライト命令を受ける都度、正ボリュームＰと主ボリュームＳ１にライト処理を２回行えばよい。主ボリュームＳ１から他の副ボリュームＳ２、Ｓ３へのライトデータのコピーはバックグランド処理で行う。したがって、ＣＰＵ及び正ボリューム（Ｐ）に対する負荷が増大することを共に防止する。ここで、バックグラウンド処理とは、例えば、コントローラがフォアグラウンド処理の背後でコントローラの稼動率が低いときに行う処理をいう。正ボリュームに対して同時にペアとなっている副ボリュームにおいて、バックグランド処理で主ボリュームから従ボリュームへコピーを行なうので、副ボリュームを正ボリュームからスプリット後直ちに副ボリュームをホストが使用することができる。
【００３７】
図２及び図３において、副ボリュームは正ボリュームに対するペアから分割（スプリット）されて、スプリットされた副ボリュームに対するホストからのアクセスが許容される。したがって、図３に係るストレージ装置では、副ボリュームが正ボリュームからスプリットされることに備えて、正ボリュームＰに書き込まれたライトデータを全て副ボリュームに対して同期書き込みするか、同期ではなくとも相当短いタイミングで書き込む必要がある。これに対して、図２では、例えば、副ボリュームがスプリットされたタイミングで、主ボリュームから従ボリュームへライトデータを反映させればよい。したがって、従ボリュームへのライトデータの反映は、コントローラがバックグランド処理として行なえば良い。
【００３８】
主ボリューム（Ｓ１）から従ボリューム（Ｓ２、Ｓ３）へのライトデータを反映することは、ディスクアレイコントローラ１０の負荷を軽減するために、例えば、ビットマップによって制御されている。図２において、符合２０Ａ，Ｂはビットマップを示している。ビットマップは、従ボリュームが主ボリュームに対して主ボリュームのどの領域のデータを共有しているかを示す制御情報である。
【００３９】
ビットマップとは複数のビットに係るマップであり、一つのビットが主ボリュームの論理アドレスのあるサイズのブロック（例えば、６４キロビット/ブロック）に対応している。あるビット（ＢＴ）にフラグ“１”がセットされている場合は、主ボリュームのこのビット（ＢＴ）に対応する領域（Ａ）に対応する従ボリュームの領域（Ｂ）が、主ボリュームの領域（Ａ）に格納されているデータを共有していることを示している。
【００４０】
ホスト３から正ボリューム（Ｐ）にライトがあり、コントローラ１０がこのライトデータを主ボリュームの領域（Ａ）にライトした場合、コントローラは、従ボリュームの領域（Ｂ）にライトデータをライトすることなく、当該従ボリュームのビットマップ２０の特定ビット（ＢＴ）に“１”をセットするだけである。ビットマップは各従ボリュームに対して設定されている。符合２０Ａは従ボリュームＳ２に対するビットマップであり、符合２０Ｂは従ボリュームＳ３に対するビットマップである。
【００４１】
ビットマップはキャッシュメモリ１０７或いは制御メモリ１０２の管理領域に設定されている。ビットマップに対するフラグの設定はＣＰＵ１０１が制御プログラムに基づいてホストから発行されたライトコマンドに基づいて実行する。正ボリュームの論理アドレスと副ボリュームＳ１の論理アドレスとの間の対応関係、副ボリュームＳ１，Ｓ２，Ｓ３の相互間における論理アドレスの対応関係は、メモリ１０２に登録されている。ＣＰＵ１０１は正ボリュームに対するライトアクセス先アドレスに基づいて、ビットマップ上で共有フラグをセットすべきビット位置を求める。
【００４２】
ＣＰＵ１０１は、ホストからライト命令を受領した時、従来の構成(図３)のように、従ボリュームＳ２及びＳ３にライトデータを書き込むのではなく、従ボリュームに対するビットマップの特定ビットに主ボリュームとのデータを共有することを示すフラグをセットする。ＣＰＵ１０１にとって従ボリュームの記憶領域にライトデータを書き込むことと比較して、ビットマップの特定ビットに共有ビット“１”をセットすることは短時間で済む事柄である。したがって、ＣＰＵに与えるＩ／Ｏ負荷増大はほぼ無いといえる。
【００４３】
主ボリュームから従ボリュームへのデータの反映は、コントローラ１０が適宜行う。例えば、主ボリュームを正ボリュームのペアから切り離す（Split）場合である。または、ＣＰＵの稼動率が所定値以下の場合に行うようにしても良い。または、この反映は決められた時刻など時間的要素によって制御されても良い。従ボリュームは主ボリューム同様正ボリュームに対するデータについて整合性が確保されるグループであるために、主ボリュームから従ボリュームへのデータのコピーが必要になる。
【００４４】
主ボリュームが正ボリュームからスプリットされると、メモリの制御テーブルにおいて主ボリュームは従ボリュームへとその特性が変更され、従ボリュームが一つしかない場合にはその従ボリュームが主ボリュームへと、従ボリュームが複数ある場合にはいずれか一つの従ボリュームが主ボリュームへと、それぞれ特性が変更される。
【００４５】
ＣＰＵ１０１は従ボリュームから主ボリュームになった副ボリュームに対して、元の主ボリュームから、ビットマップ情報を参照して、データのコピーを行う。即ち、ビットマップテーブルについて、ＣＰＵは“１”がたっているビットを検出し、先の主ボリュームのこのビットに対応する記憶領域からデータをリードして、このデータを新たに主ボリュームになった従ボリュームの対応する記憶領域に書き込む。
【００４６】
図４はホストのハードウエア構成を示すブロック図である。ホストはＣＰＵ４１、メモリ４２、ポート４３を有するコンピュータであり、キーボードやマウス等の入力装置４４、ディスプレイ等の出力装置４５が接続されている。ホストは例えばパーソナルコンピュータやワークステーション、あるいはメインフレームコンピュータ、サーバ専用コンピュータ等である。メモリ４２内に、正ボリューム及び副ボリュームを管理する管理プログラム４６と、アプリケーションプログラム４７とが格納され、ＣＰＵ４１は、これらプログラムを実行することにより各種機能を実現する。
【００４７】
正ボリューム及び副ボリューム管理プログラム４６は、ストレージ装置に正ボリューム・複数の副ボリュームを作成させるための機能を実現するために、ストレージ装置に対する命令の発行処理とそのためのユーザインターフェイスの提供とを行うプログラムである。アプリケーションプログラム４７は、ホストにおける通常の業務処理等を行うためのプログラムである。業務処理としては例えば銀行の自動預金預け払いシステムの処理等がある。ポート４３は、ネットワーク３に接続されてストレージ装置や他のホスト等と通信を行うための通信インターフェースである。
【００４８】
通常時、ホストは、ストレージ装置に対してリード命令やライト命令等のデータ入出力命令を送信することで、記憶装置に記憶されているデータの読み出しや記憶装置へのデータの書き込みを行う。管理プログラムやアプリケーションプログラムは、図示しないＣＤ−ＲＯＭ等の記憶媒体や外部記憶装置から読み込んで、あるいはネットワークを通じて外部から受信して、メモリに格納される。
【００４９】
ホストのオペレータ（ユーザ）は、入力装置、出力装置、管理プログラム上のユーザインターフェイスを通じて、ストレージ装置に対し、データの記憶や副ボリュームに関する処理を行わせるための指示を入力する。例えば複数の副ボリュームを作成する処理を行わせるための指示を入力する。管理プログラム４６上のユーザインターフェイスは、例えばＷｅｂブラウザ等のＧＵＩや、コマンドユーザインターフェイス（ＣＵＩ）等の形式である。管理プログラム４６は、オペレータによる指示入力に基づき、対応する命令を発行する。ホストは、発行された命令をポート４３、ネットワーク３を経由して処理の要求先となるストレージ装置のコントローラ１０に送信する処理を行う。
【００５０】
送信された命令は、ストレージ装置のポートで受信される。管理プログラム４６は、ＬＵを単位として複数の副ボリュームを作成することをストレージ装置に要求できる。ホストを使用するオペレータ（ユーザ）は、管理プログラム４６上のユーザインターフェイスを通じて、ＬＵ単位で処理を行なう。例えば、複製元となる正ボリュームや複製先となる副ボリュームを指定する場合に、論理ボリューム番号（ＬＵＮ）をストレージ装置に指定する。
【００５１】
管理プログラム４６は、ストレージ装置で管理している各種情報を一覧表示する処理をホストのＣＰＵに行わせる。例えば、ストレージ装置に確保されているユーザが利用可能なＬＵを一覧表示可能であり、ユーザはこの中から複製対象となる正ボリュームや、正ボリュームに対する副ボリュームを選択できる。
【００５２】
次に、ストレージ装置における正ボリューム及び副ボリュームに対して設定されるペアに係る制御状態について説明する。ストレージ装置１では、ホストの管理プログラム４６から発行される命令等に応じて、複数のボリュームについて設定されるペアについての制御状態（ペア制御状態）を遷移させ、ペア制御情報に応じた処理及び制御を正ボリューム及び副ボリュームに対して実行する。
【００５３】
ストレージ装置１のコントローラ１０は、ホストのオペレータに指示された通りに、複数の記憶ボリュームについてのペアが確立される。正ボリュームと副ボリュームとの関係において、両者をペアの関係にする「ペア」状態、ペア状態を切り離す「スプリット」状態がある。
【００５４】
ストレージ装置では、ホストの管理プログラム４６から発行される命令等に応じて、正ボリュームと副ボリュームのペアについてのペア制御状態を前記「ペア」状態及び「スプリット」状態の間で遷移させる。「ペア」状態では、正ボリュームに対するホスト装置からのライトアクセスに同期して、ライトデータを正ボリュームＰと副ボリュームＳ１に２重書きする。
【００５５】
既述した図２に基づくと、複数の副ボリューム（Ｓ１、Ｓ２，Ｓ３）はそれぞれ正ボリュームとペア状態に設定されているが、主ボリュームＳ１と従ボリュームＳ２，Ｓ３のペア状態は区別される。主ボリュームＳ１は正ボリュームに同期ペアであるのに対して、従ボリュームＳ２及びＳ３は非同期ペアである。
【００５６】
従ボリュームに対しての非同期ペア状態では、ストレージ装置は副ボリュームＳ２，Ｓ３の記憶領域にライトデータを書き込むのではなく、ビットマップに主ボリュームに格納されたデータとの共有関係を記録するだけである。
【００５７】
ペアに対する制御では、ホストから発行された命令（ペア作成命令）等に応じて、ストレージ装置は正ボリュームと副ボリュームのペアを確立する処理を行う。例えば、ストレージ装置は、正ボリュームとペアとなるべき記憶ボリュームを新たに設定するか、あるいは既存の設定済み記憶ボリュームの中からこれを指定する。ストレージ装置は、コピー元となる正ボリュームからコピー先となる全ての副ボリュームへとデータをコピーする初期コピー処理を行う。そして、複数の副ボリュームについて、正ボリュームとのペア制御状態を「ペア（同期ペア又は非同期ペア）」として設定する。
【００５８】
「同期ペア」状態の副ボリュームでは、更新データ量や更新経過時間等の条件に基づくタイミングで実行される更新反映処理により、そのデータ内容は正ボリュームのデータ内容に近くなる。「同期又は非同期ペア」状態にある副ボリュームに対して、ホストはアクセスすることが禁止される。副ボリュームの正ボリュームに対するデータの一致性に影響がでるからである。
【００５９】
「ペア」状態において、例えばホストからペアの分割のための命令（スプリット命令）をストレージ装置が受領した場合に、ＣＰＵ１０１によって目的となる副ボリュームが正ボリュームから解除（スプリット）され、これより目的となる副ボリュームについてのペア制御状態が「ペア」状態からスプリット迄の過渡中状態である「コピー中」状態を経由して、「スプリット」状態に遷移される。この遷移の過程では、従リュームと主ボリュームのデータ内容を完全に一致するように、主従の記憶ボリューム間で、共有データについてのデータコピー処理が行われる。スプリットされた以降の正ボリュームに対するライトデータは、差分ビットマップによって管理される。「スプリット」状態にある副ボリュームにおいては、正ボリュームにおけるデータ内容の更新と副ボリュームにおけるデータ内容の更新とが個別に行なわれる。
【００６０】
「スプリット」状態では、「ペア」状態において禁止されていた副ボリュームに対するホストからのアクセスが許可される。「スプリット」状態では、正ボリュームの更新が副ボリュームに反映されない。「スプリット」状態では、正ボリュームとは別に副ボリュームをデータのバックアップ等の処理に利用する。
【００６１】
正ボリュームへの更新がスプリットされた副ボリュームに反映されないので、スプリット状態の間に、正ボリュームへの更新により生じた副ボリュームへ未反映のデータは差分データとして管理される。スプリットがされた以降、正ボリュームに加わった新たな更新は、正ボリュームに対してペア設定されている副ボリュームには反映されている。スプリットされた副ボリュームを正ボリュームに対して再度ペア設定する場合には差分データをこの副ボリュームに反映して、この副ボリュームと正ボリュームとのデータイメージが一致するようにする。差分データは差分ビットマップ或いは差分ボリュームによって管理される。すなわち、副ボリュームを「スプリット」状態から再度「ペア」状態に遷移させる際に、ホスト或いは管理装置からのそのための命令（ペアリシンク命令）に基づき差分ボリュームなどによって、副ボリュームのデータの内容を正ボリュームの内容に一致させる同期化処理が行なわれる。これによりペア制御状態が「スプリット」状態から過渡中状態である「コピー中（リシンク中）」状態を経由して「ペア」状態に遷移される。
【００６２】
図５は、ペア制御状態に関連して、コントローラ１０が管理するペア管理テーブル３１を示す。ペア管理テーブル３１は、ボリュームに対するペア関係を規定するものである。このテーブルにおいて指定されるべきペア管理情報として、ペア番号、正ボリューム番号、副ボリューム番号、主ボリューム又は副ボリュームの区別、ペア制御状態、グループ番号等の情報を保持する。番号を＃で表わす。ペア番号は、ペアを識別する情報であり、ホスト側からこのペア番号を用いて処理対象となる論理ボリュームを指定可能である。主ボリューム又は副ボリュームは、この制御テーブルにおいて、例えば前者が「Main」、後者が「Sub」と設定される。
【００６３】
正ボリューム番号、副ボリューム番号は、それぞれ正ボリューム、副ボリュームを識別する情報である。ペア制御状態は、ストレージ装置１におけるペアについての制御状態を示す情報である。既述のように、「スプリット」、「同期ペア」、「非同期ペア」、「過渡中」がある。図５の例では、同期ペアに設定された副ボリューム（♯２）が主ボリュームであり、非同期ペアに設定された副ボリューム（♯３）が従ボリュームである。グループ番号は、当該ペアが属するコンシステンシグループを識別する情報である。
【００６４】
図５に示す例では、ペア番号＃１のペアは、正ボリューム番号＃１と副ボリューム番号＃１の記憶ボリュームから成り、そのペア制御状態は「スプリット」状態で、グループ番号＃１のコンシステンシグループに属する。ストレージ装置において、＃１〜＃ｎのｎ個のペアは、同一コンシステンシーグループが設定される。コンシステンシグループにあり、ペア制御状態が「同期ペア」又は「非同期ペア」となっている複数の副ボリュームが正ボリュームとデータが一致するボリュームとなる。
【００６５】
「スプリット」状態では、副ボリューム（♯１）への更新アクセスが許可され、正ボリュームと副ボリュームの更新が独立して扱われる。「スプリット」状態の間は、副ボリュームへのアクセスが許可されるので、例えば、ホストが正ボリュームのデータを利用してオンライン業務を継続しながら、それとは別に副ボリュームのデータを利用してバックアップ等の処理を行わせることができる。「スプリット」状態から「ペア」状態に遷移させるための命令（ペアリシンク命令）の受領に応じて、ストレージ装置１で、「スプリット」状態の間に正ボリュームに対して発生した更新に対応する差分データを副ボリュームに反映してデータ内容を一致させる再同期化処理が行われる。
【００６６】
ペア制御状態の設定、変更などは、ホストのオペレータが複製管理プログラムを通じて指示入力して対応する命令を発行することにより実行可能である。ディスクアレイコントローラ１０はペア制御状態の遷移に伴いペア管理テーブル３１のペア制御状態を更新する。なお、ペア制御状態の遷移は、ホストのオペレータからの指示入力に基づき開始される以外にも、所定時刻に自動的に開始されるように複製管理プログラム４６を通じて設定することもできる。また、ホストの複製管理プログラムがネットワーク３を通じて接続される他のホストからの指示を受信してそれに基づき開始させることもできる。
【００６７】
ストレージ装置１における制御情報の一つであるコンシステンシグループについて説明する。正ボリュームとそれに対する複数の副ボリュームとの指定に応じて、一つのコンシステンシグループが形成される。このコンシステンシーグループは、正ボリュームに対するデータ整合性の保障の対象となる複数のペアの集まりである。既述のように、コンシステンシグループを形成する副ボリュームには正ボリュームの同期ペアとなる主ボリュームと、正ボリュームに対して非同期ペアとなる従ボリュームとからなる。
【００６８】
正ボリュームへのデータの書き込み、或いは更新は主ボリュームに反映される。正ボリュームへのデータの書き込み、或いは更新に係るデータは正ボリュームから従ボリュームにコピーされるのではなく、ディスクアレイコントローラは従ボリュームに対して設けられた共有ビットマップに、共有状態識別情報を設定する。ディスクアレイコントローラは、従ボリュームを主ボリュームに変更する、あるいは従ボリュームをコンシステンシグループから解放してホストからの業務処理に提供する際に、共有ビットマップを参照して主ボリュームからデータをコピーする。副ボリュームを正ボリュームに対するペアから解除したり、副ボリュームをコンシステンシグループから解除する際に、複数の副ボリューム間でデータのコピーが実行される。
【００６９】
ディスクアレイコントローラは正ボリュームにホストからのＩ／Ｏアクセスがあると、ボリューム管理テーブルを参照して正ボリュームにペア設定されている主ボリュームにライトデータを２重書きする。ディスクアレイコントローラは、主ボリュームが正ボリュームからスプリットされ従ボリュームが主ボリュームに変更されるなどのイベント発生時あるいは所定時刻、経過時間などのタイミングで、従ボリュームに対して主ボリュームのデータが共有ビットマップを参照して反映される。
【００７０】
図６はホストから正ボリュームに対するライト命令を発行した場合の処理を示すフローチャートである。図２にも基づいてこの処理を説明する。ホスト３はストレージ装置１の正ボリュームＰに対してライト命令を発行する（６００）。ストレージ装置１のコントローラ１０は正ボリュームに対するライト命令及びライトデータを受領し、ライトデータをキャッシュメモリ１０７に書き込む（６０２）。コントローラ１０は、ホストへライト命令を終了した旨を送信する（６０４）。コントローラ１０はキャッシュメモリから正ボリューム及び主ボリュームにライトデータを書き込む（６０６）。ＣＰＵ１０１は図５に示す制御テーブルを参照して、ライトデータを反映させるべき主ボリュームを認識する。図２においては、コントローラは副ボリュームＳ１を主ボリュームとして認識する。
【００７１】
次いで、コントローラ１０は、従ボリュームＳ２に設定された共有ビットマップ上でのライトコマンドによって定まる特定ビットに共有フラグがセットされているか否かをチェックする（６０８）。このフラグがセットされている場合には、ステップ６１２に移行する。このビットがセットされていない場合には、当該ビットに共有フラグをセットする（６１０）。
【００７２】
コントローラはさらに従ボリュームＳ３に設定された共有ビットマップ上で特定ビットに共有フラグがセットされているか否かをチェックする（６１２）。共有フラグがセットされている場合には、ライト処理を完了し、このフラグがセットされていない場合には従ボリュームＳ３に対して設定されているビットマップの特定ビット領域に共有フラグを設定する。以上により、ホストのライトサクセスに対するストレージ装置の処理が完了する。
【００７３】
図７は主ボリュームである副ボリュームＳ１が正ボリューム（Ｐ）からスプリットされ、従ボリュームＳ２が主ボリュームに変更されて正ボリュームにペア形成される過程を示すブロック図である。
【００７４】
ホストはストレージ装置の主ボリュームＳ１に対してスプリット命令を発行する（Ｓ７０）。コントローラ１０は図５に示すテーブルにおいて、ボリュームＳ１に対する制御状態を変更する。この変更は、「過渡中」、次いで「スプリット」になるように行なわれる。「過渡中」の制御状態において、ボリュームＳ１に対する未反映のデータがあればキャッシュメモリからボリュームＳ１に書き込まれ、かつ、主ボリュームＳ１から従ボリュームＳ２及び従ボリュームＳ３に共有データがコピーされる（Ｓ７２，Ｓ７４）。
【００７５】
一方、従ボリュームＳ２に係るペア制御状態を「非同期ペア」から「同期ペア」に変更する。なお、コンシステンシグループ内において、少なくとも一つの副ボリュームが「同期ペア」として設定される。同期ペアが一つもないペア管理情報テーブルに対する変更のリクエストには、コントローラはエラーメッセージをホストに返信する。
【００７６】
主ボリュームがスプリットされた場合で従ボリュームが複数ある場合には、一つの従ボリュームが主ボリュームにとして変更される。この変更はホスト又は管理端末からのリクエストに応じてディスクアレイコントローラ１０が行う。管理者は複数ある従ボリュームから一つの主ボリュームとなるべき副ボリュームを適宜選択する。ディスクアレイコントローラがこの選択を複数ある従ボリュームの特性を比較することによって行なっても良い。
【００７７】
例えば、複数の従ボリュームについて共有ビットマップを走査して、最も共有フラグが少ない従ボリュームを選択する。ストレージ装置がこの選択を行い、この選択を承認するかしないかを管理者が決定してもよい。図７では副ボリュームＳ２が主ボリュームに変更されている。
【００７８】
ディスクアレイコントローラ１０は、主ボリュームＳ１に対するスプリット命令を検出すると、ディスクアレイコントローラは、ホストから正ボリュームに対するライトデータのうち、主ボリュームＳ１に対して未コピー分のデータがあるかをキャッシュメモリをチェックして判定する。未コピー分がある場合には、ディスクアレイコントローラは未コピーに係るデータをキャッシュメモリからリードしてこれを主ボリュームＳ１に書き込む。この処理はボリューム管理テーブルにおいて「過渡中」の際に行なわれる。「過渡中」で必要な処理が終了すると、ボリュームに対するステイタスが「スプリット」に変更される。
【００７９】
ディスアレイコントローラは、副ボリュームＳ２に係る共有ビットマップ２０Ａを参照する。ディスクアレイコントローラは、この共有ビットマップを最初から走査し、セットされた全ての共有フラグに対応する、副ボリュームＳ１の領域のデータを読み出し、これを副ボリュームＳ２の対応領域にコピーする（Ｓ７２）。共有フラグが設定されていない領域に対しては、副ボリュームＳ２には副ボリュームＳ１のデータが既に反映されているか、又は主ボリュームＳ１に対してライトデータの書き込みが行なわれていないので、副ボリュームＳ１からのデータのコピーは行わない。ディスクアレイコントローラはこの処理をビットマップ全体について行う。コントローラは共有データのコピーが終了する都度該当する共有フラグをクリアする。
【００８０】
副ボリュームＳ３に対する共有データのコピーは、副ボリュームＳ３は従ボリュームのまま維持されるので必ずしも必須ではない。共有データのコピーが行なわれない場合、従ボリュームＳ３について主ボリュームＳ２に対する共有ビットマップを新たに設ける。
【００８１】
図７では、副ボリュームＳ２へ共有データのコピーと副ボリュームＳ３への共有データのコピーとをコントローラが共に実行していることを示している。符号２０Ｂは従ボリュームＳ３に対して設定された共有ビットマップであり、Ｓ７４は主ボリュームＳ１からボリュームＳ３に共有データがコピーされていることを示している。
【００８２】
次に、図８に示すように、ホストからストレージ装置へのオンラインアクセスをストレージ装置が維持するために、ディスアレイコントローラは、副ボリュームＳ２への共有データのバックグラウンドコピーの過程でホストからの正ボリュームＰへのライトアクセス（Ｓ８０）を許容する。この際、共有データのコピーが終了する前に、共有データをボリュームＳ１からコピーする必要がある、ボリュームＳ２の領域に対してこのライトデータを書き込むと、ボリュームＳ２のデータが正ボリュームＰと一致しなくなる。そこで、この種の不都合を防止するために、ストレージ装置は以下のようにライトデータの副ボリュームＳ２に対する書き込みを制御する。
【００８３】
ディスクアレイコントローラは、共有データについてのバックグランドコピーが終了する前に、ホストから正ボリュームにライトアクセス（Ｓ８０）があった場合には、このライトアクセスの主ボリュームＳ２に対するアクセス先について、共有データのコピーが必要か否か、かつ必要であればコピーが終わっているか否かをチェックする。
【００８４】
このチェックはコントローラが共有ビットマップ２０Ａを参酌することによって可能である。共有データのコピーが終わっていない場合には、共有フラグがセットされたままとなっている。コントローラはビットマップ２０Ａを参照し、クリアされることなくセットされたままとなっている共有フラグが少なくとも一つあるか否かを、制御プログラムに基づいてチェックする。当該フラグがある場合には、ボリュームＳ２においてライトアクセス先の領域に対する共有フラグであるか否かをチェックする。共有フラグが無い場合には、コントローラはライトデータを正ボリュームに続いて副ボリュームＳ２に書き込む。共有フラグがあった場合でも、ライトアクセス先の領域に対する共有フラグでないならば同様である。
【００８５】
一方、コントローラがビットマップを参照して、ボリュームＳ１からボリュームＳ２へ共有データのコピーが必要な、ボリュームＳ２における領域について共有ビットがクリアされることなくビットマップにおいて残っている場合には共有データのコピー（Ｓ８２）が終了した後正ボリュームに対するライトデータをキャッシュメモリから読み出して書き込む（Ｓ８４）。共有データについてコピーの終了の判定は、コントローラがビットマップ２０Ａを所定タイミングで繰り返し走査して、共有ビットがリセットされたことをチェックすることに基づく。
【００８６】
主ボリュームＳ２へのデータの書き込み先が副ボリュームＳ１からコピーの終わっている領域である場合には、既述のとおり、共有フラグがリセットされているので、コントローラは、正ボリュームへのデータの書き込みに続いて主ボリュームＳ２へのデータの書き込を行なう（Ｓ８４）。
【００８７】
次いで、ディスクアレイコントローラは、従ボリュームＳ３に係る共有ビットマップに対して共有フラグをセットする。この共有ビットマップは新たに主ボリュームになったボリュームＳ２に対するものであるので、図７で説明したように、主ボリュームだったボリュームＳ１が正ボリュームからスプリットされる際に、コントローラはビットマップ２０Ｂを参照してボリュームＳ３にボリュームＳ１から共有データをコピーしておくことが好ましい。
【００８８】
さらに、ディスクアレイコントローラは、従ボリュームＳ１に係る差分ビットマップ２０Ｃに対して差分フラグをセットする。共有フラグ及び差分フラグは、正ボリュームＰに対するライトデータに関連している。共有フラグは正ボリュームＰに対して非同期ペアである副ボリュームＳ３に対して設定され、差分フラグは正ボリュームＰからスプリットされた副ボリュームＳ１に対して設定される。差分フラグは副ボリュームが正ボリュームからスプリットされた以降の差分データに対応している。副ボリュームＳ１が正ボリュームに再度ペア設定される場合には差分ビットマップ及び差分フラグに基づいて差分データが副ボリュームＳ１に対して反映される。
【００８９】
なお、副ボリュームＳ１から副ボリュームＳ２へのコピーの間における正ボリュームへのライトアクセスに伴うライトデータをキャッシュメモリに格納し、このコピー終了後にライトデータを副ボリュームＳ２に反映してもよい。共有フラグの設定及び差分フラグの設定は、正ボリュームに対してライトアクセスがあった都度行う。
【００９０】
ボリュームＳ１から主ボリュームＳ２への共有データのコピーが終わる前に従ボリュームとなったボリュームＳ１に対するホストからのライトアクセスがあった場合の処理について、図９を利用して説明する。コントローラ１０はホスト３からボリュームＳ１に対してライトコマンドを受領し(Ｓ９０)、続いてライトデータを受領する（Ｓ９２）。コントローラはライトデータをキャッシュメモリに格納しておき、ボリュームＳ１からボリュームＳ２への共有データのコピー（Ｓ９４）が終了した後コントローラは、キャッシュメモリからライトデータを読み出しこれを従ボリュームＳ１に書き込む。このようにしないと、ボリュームＳ１のボリュームＳ２に対する共有データ（正ボリュームに対するライトデータ）がボリュームＳ１からボリュームＳ２へのコピー前に変化してしまうからである。
【００９１】
又は、コントローラは共有ビットマップ２０Ａを参照して、共有フラグが立っていない副ボリュームＳ１の領域に対するライトコマンドであれば、ライトデータをボリュームＳ１からボリュームＳ２に対するバックグランドコピーの過程でライトデータ(Ｓ９２)をボリュームＳ１に書き込んでもよい。
【００９２】
次に、正ボリュームと同期ペアの関係でなく、非同期ペアの関係にある従ボリュームＳ２に対して、ホストからスプリット命令がストレージ装置に発行された場合の処理動作を図１０に基づいて説明する。ストレージ装置は、副ボリュームＳ２を正ボリュームＰからスプリットする場合は、副ボリュームＳ１の格納データと同じデータを持つように副ボリュームＳ２を処理する。
【００９３】
ホストから副ボリュームＳ２に正ボリュームからスプリットする命令（Ｓ１００）が発行されると、ストレージ装置はボリューム管理テーブル中の副ボリュームＳ２の特性を「非同期ペア」から「過渡中」に変更する。コントローラは、管理テーブルの更新を契機にして、副ボリュームＳ２の共有ビットマップ２０Ａを参照して、同期ペアである主ボリュームＳ１から共有データを副ボリュームＳ２にコピーする（Ｓ１０２）。
【００９４】
図１１に示すように、このコピーの過程で、ストレージ装置のリード・ライト管理プログラムが、ホストからライトコマンド（Ｓ１１０）を受領すると、ストレージ装置のボリューム管理プログラムに副ボリュームＳ１に対するライト先アドレスを通知する。ストレージ装置のリード・ライト管理プログラムは、ライトデータを副ボリュームＳ１に書き込む(Ｓ１１２)。
【００９５】
ボリューム管理プログラムは副ボリュームＳ２の共有ビットマップ２０Ａを参照して、主ボリュームＳ１におけるライト先アドレスに対して共有フラグがセットされているか否かをチェックしてその結果をリード・ライト管理プログラムに通知する。
【００９６】
リード・ライトコマンド管理プログラムは、共有フラグがセットされている、即ち、副ボリュームＳ１から副ボリュームＳ２に対する共有データのコピー（Ｓ１１４）が必要な場合は、そのコピーが終了するまで、副ボリュームＳ１へのライトデータの書き込みを待つ。なお、ストレージ装置は正ボリュームへのライト処理はライトコマンドの受領に続いて実行する。
【００９７】
一方、ライトデータのボリュームＳ１への書き込みが副ボリュームＳ２に対する共有ビットマップ２０Ａにおける共有フラグがセットされていない領域に対するものである場合には、副ボリュームＳ１から副ボリュームＳ２への共有データのコピーを待つことなく、ライトデータを主ボリュームＳ１に書き込んでよい。副ボリュームＳ２は既に正ボリュームからスプリットされているために、副ボリュームＳ２にライトデータを反映しなければならないということはない。副ボリュームＳ１から副ボリュームＳ２への共有データのコピーが終了すると、共有ビットマップ２０Ａの全フラグがクリアされる。
【００９８】
ストレージ装置は、副ボリュームＳ２が正ボリュームＰからスプリットされている期間中における、正ボリュームに対するライトデータは、差分ビットマップ２０Ｄに差分フラグをセットし、副ボリュームＳ２を正ボリュームに再度ペア設定（同期又は非同期ペア）する際に差分ビットマップを参照してスプリット期間中の差分データが副ボリュームＳ２に反映される。ストレージ装置のコントローラ１０は差分ビットマップ２０Ｄを参照して、差分データを副ボリュームＳ１から副ボリュームＳ２にコピーする。
【００９９】
図１２は、副ボリュームＳ１から副ボリュームＳ２への共有データのバックグラウンドコピー(Ｓ１２４)中において、正ボリュームＰからスプリットされた副ボリュームＳ２に対してホストからライトアクセス（１２０）が生じた際の制御を説明する機能ブロック図である。この場合も、図１１と同様に、副ボリュームＳ１から共有データのコピーが必要な領域に対するライトアクセスか否かをストレージ装置が判定し、この判定が肯定された際には、ボリュームＳ１からのコピーが終了した後ディスクアレイ装置はライトデータを副ボリュームＳ２に書き込む（Ｓ１２２）。一方、副ボリュームＳ１からの共有データのコピーが必要でない領域に対するライトアクセスの場合はライトコマンド及びデータの受領に続いてストレージ装置はライトデータを副ボリュームＳ２に書き込む。
【０１００】
既述の実施形態では、コントローラは正ボリュームへのホストから送られたライトアクセスに基づくライトデータを副ボリュームの一つに書き込み、この副ボリュームに書き込まれたライトデータを副ボリュームの他のものにコピーするようにした。この実施形態の発展例あるいは変更例として、次のものがある。
【０１０１】
コントローラ、あるいはプロセッサが２重化されている場合には、既述のバックグラウンド処理をホストからのライト・リード要求と、を別のコントローラ或いはプロセッサで行なうようにしても良い。
【０１０２】
また、第１のホストから第１のライトアクセスが正ボリュームにあるが、第２以降のホストから第２以降のライトアクセス・リードアクセスが規定時間内に無い場合、コントローラが正ボリュームへのライト処理の際に、正ボリュームから他の全ての副ボリュームへコピーを行なうようにしてしても良い。一方、正ボリュームに対する負荷が高ければ、コントローラがバックグラウンド処理で副ボリュームから他の副ボリュームにライトデータのコピーを行なうようにする。すなわち、正ボリュームに対する、コントローラのアクセスの頻度、程度に応じて、既述のように副ボリュームに対するライトデータのコピーの方法を変えてもよい。また、コントローラに対する負荷に応じて、既述のように副ボリュームに対するライトデータのコピーの方法を変えてもよい。
【０１０３】
また、従ボリュームを正ボリュームからスプリットした後、ホストからこの従ボリュームにリードアクセスがあった場合は、主ボリュームから共有データをリードした後リードデータをホストに返せばよい。あるいは、主ボリュームから共有データを未コピーの領域に対するホストからのリードアクセスの場合は、主ボリュームから共有データをリードしてこれをホストに返しても良い。
【図面の簡単な説明】
【０１０４】
【図１】本発明に係わるストレージ装置を備える記憶制御システムの一例についてのハードウエアブロック図である。
【図２】本発明に係るストレージ装置における、正ボリュームと副ボリュームとの関係を示すブロック図である。
【図３】従来のストレージ装置における、正ボリュームと副ボリュームとの関係を示すブロック図である。
【図４】ホストのハードウエアブロック図である。
【図５】ボリューム管理テーブルの一例である。
【図６】ホストによる正ボリュームへのライトアクセスの処理フローを示す。
【図７】正ボリュームと副ボリュームに対するホストからのライト処理の一例を示す、正ボリューム及び副ボリュームに係るブロック図である。
【図８】図７に続く処理動作を示すブロック図である。
【図９】図８に続く処理動作を示すブロック図である。
【図１０】ホストによる正ボリュームへのライトアクセス処理の他の例を示す、正ボリューム及び副ボリュームに係るブロック図である。
【図１１】図１０に続く処理動作を示すブロック図である。
【図１２】図１１に続き処理動作を示すブロック図である。
【符合の説明】
【０１０５】
１：ストレージ装置、２：ＳＡＮ、３：ホスト、４：ＬＡＮ、５：管理用端末、２０  ハードディスク、１０１  ＣＰＵ、１０２  メモリ、１０４  データ転送コントローラ、１０７  キャッシュメモリ、Ｐ  正ボリューム、Ｓ１〜Ｓ３  副ボリューム
【図１】
2008171032.tif 000003
【図２】
2008171032.tif 000004
【図３】
2008171032.tif 000005
【図４】
2008171032.tif 000006
【図５】
2008171032.tif 000007
【図６】
2008171032.tif 000008
【図７】
2008171032.tif 000009
【図８】
2008171032.tif 000010
【図９】
2008171032.tif 000011
【図１０】
2008171032.tif 000012
【図１１】
2008171032.tif 000013
【図１２】
2008171032.tif 000014