(57)【特許請求の範囲】
【請求項１】
データを格納する第１の論理ボリュームが設定された第１のディスク装置と、前記第１
のディスク装置へのデータ更新を制御する第１の制御部とを備えた第１のディスク制御装
置と、
前記第１のディスク装置へのデータの入出力を要求するホスト計算機と、
データを格納する第２の論理ボリュームが設定された第２のディスク装置と、前記第２
のディスク装置へのデータ更新を制御する第２の制御部とを備えた第２のディスク装置と
を有する情報処理システムにおけるデータ入出力方法であって、
前記ホスト計算機は、プロセス起動要求を受けて更新要求データが属するグループを示す更新データグループの識別情報を生成し、該プロセス配下で行われるアプリケーションからの一連の入出力要求に対して一つのグループとして扱うための該更新データグループの識別情報を付与して入出力要求を実行し、該アプリケーションの入出力が終了し、該プロセスが次の起動要求を受けるために実行状態から起動要求待ちに遷移したのを契機に、該更新データグループの識別情報を付与する範囲を終了し、
前記ホスト計算機から前記第１の制御部に、前記プロセス単位に前記更新データグループの識別情報を付与した更新要求、またはグループ解除要求を送信し、
前記第１の制御部から前記第２の制御部へ前記更新要求またはグループ解除要求を送信
し、
前記第２の制御部は、更新要求に前記更新データグループの識別情報が付与されて
いる場合は、前記更新要求に係る更新データを第２の制御部に一次的に蓄積し、前記グループ解除要求である場合には、前記更新データグループの識別情報が同一である前記一時的に蓄積した更新データを、前記第２の論理ボリュームに格納することを特徴とするデータの入出力方法。
【請求項２】
一つの前記プロセスにおいて、異なった論理ボリュームに対する複数の更新要求が生成され、複数の前記更新要求に同一の前記更新データグループの識別情報が付与されていることを特徴とする請求項１記載のデータ入出力方法。
【請求項３】
更新データのグループを示す情報の登録または解除を規定した定義ファイルに基づいて
前記ホスト計算機は、更新要求に前記更新データグループの識別情報を付与した更新要求又は、グループ解除要求を送ることを特徴とする請求項１記載のデータ入出力方法。
【請求項４】
前記第２の制御部は、前記更新要求に前記更新データグループの識別情報が含まれていない場合、更新要求に係る更新データを前記第２の論理ボリュームに格納することを特徴とする請求項１記載のデータ入出力方法。
【請求項５】
前記更新データグループの識別情報は、プロセスを特定するためのプロセスの識別情報及びアドレス空間情報であることを特徴とする請求項１記載のデータ入出力方法。
【請求項６】
プロセス起動要求を受けて更新要求データが属するグループを示す更新データグループの識別情報を生成し、該プロセス配下で行われるアプリケーションからの一連の入出力要求に対して一つのグループとして扱うための該更新データグループの識別情報を付与して入出力要求を実行し、該アプリケーションの入出力が終了し、該プロセスが次の起動要求を受けるために実行状態から起動要求待ちに遷移したのを契機に、該更新データグループの識別情報を付与する範囲を終了し、
該更新データグループの識別情報を付した更新要求、またはグループ解除要求を発行するオペレーティングシステムを有するホスト計算機と、
データを格納する第２の論理ボリュームが設定された第２のディスク装置と、更新要求
に更新データが属するグループを示す情報が付与されている場合は、前記更新要求に係る
更新データを一次的に蓄積し、グループ解除要求である場合には、前記更新データが属するグループを示す情報が同一である前記一時的に蓄積した更新データを、前記第２の論理ボリュームに格納する前記第２のディスク装置へのデータ更新を制御する第２の制御部とを備えた第２のディスク装置と、
データを格納する第１の論理ボリュームが設定された第１のディスク装置と、ホスト計
算機から送られてきた更新要求に係る更新データを前記第１の論理ボリュームに格納する
とともに、ホスト計算機から送られてきた更新要求と、グループ解除要求とを前記第２のディスク装置へ送る第１の制御部とを備えた第１のディスク制御装置と、
を有する情報処理システム。
【請求項７】
前記ホスト計算機の前記オペレーティングシステムは、複数の更新要求が異なったボリ
ュームに対する更新要求であっても、同一のプロセスで発行された複数の前記更新要求に
対して同一の前記更新データグループの識別情報を付与することを特徴とする請求項６記載の情報処理システム。
【請求項８】
前記ホスト計算機の前記オペレーティングシステムは、前記更新データグループの識別情報の登録または解除を規定した定義ファイルに基づいて、更新要求に前記更新データグループの識別情報を付与した更新要求又は、グループ解除要求を生成することを特徴とする請求項６記載のデータ入出力方法。
【請求項９】
前記第２の制御部は、前記更新要求に前記更新データグループの識別情報が含まれていない場合、更新要求に係る更新データを前記第２の論理ボリュームに格納することを特徴とする請求項６記載の情報処理システム。
【請求項１０】
前記更新データグループの識別情報は、プロセスを特定するためのプロセスの識別情報及びアドレス空間情報であることを特徴とする請求項６記載のデータ入出力方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はストレージサブシステム間のリモートコピー技術に関する。
【背景技術】
【０００２】
インターネットの急速な普及と、ブロードバンドの登場、企業同士の合併等でシステム
の運用、管理も複雑化し、膨大なデータ量を扱う情報社会となった今では、２４時間３６５日の連続稼動の中で、万が一の災害でも災害復旧可能なシステムが求められている。この要求に応える技術として、遠隔地に配置されたストレージサブシステムに通信回線を経由して複製ボリューム（以降、副ボリュームと呼ぶ）を作成することが可能な技術がある。この技術を使うことで、遠隔地から速やかにデータを回復して業務再開が可能となる。このような技術は例えば、特許文献１に記載されている。
【０００３】
【特許文献１】特開平１１−８５４０８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
現在のリモートコピーは、計算機からローカルサイトへ更新データが送られ、同様にリモートサイトへも更新データが送られるが、これは入出力単位でのデータ更新の保証しか行なわれない。
【０００５】
このため、計算機上のアプリケーションプログラムから、複数のボリュームに格納されているデータファイルの更新を行う場合、その論理的に意味のあるデータ更新の途中で通信回線の障害などで複製処理が中断した場合、入出力単位でのデータ更新を保証しても、複製先である副ボリュームのデータはアプリケーションプログラムから見て不完全なデータとなることがある。
【０００６】
このように不正なデータを持ったリモートサイトで副ボリュームを用いて業務を再開するためには、アプリケーションプログラム側のジャーナルを用いて副ボリュームのデータを回復してから業務を再開する必要があった。
【０００７】
そこで本発明では、リモートコピーにおいて、プロセス又はタスク単位にデータ更新状態の整合性を取ることができる情報処理システムを提供する。
【課題を解決するための手段】
【０００８】
ホスト計算機で実行されているアプリケーションプログラムから論理ボリュームに格納されたデータを更新する場合に、処理の実行単位であるプロセスによって生成されたデータ更新要求を一つの更新グループとして、更新要求にグループを示す情報を付与する。
【０００９】
リモートサイトのストレージサブシステムは、更新データにグループを示す情報が付与されていた場合には、更新要求に係る更新データをリモートサイトのディスク制御装置内で蓄積し、グループ解除指示が到着した時点で蓄積された更新データをボリュームへ反映する。
【発明の効果】
【００１０】
通信障害でリモートコピーが中断しても、複数ボリュームに対するデータ更新状態の整合性を保証できる。これにより、アプリケーションプログラムから見て整合性の取れた状態に維持することができる。
【発明を実施するための最良の形態】
【００１１】
以下に、本発明の実施形態を説明する。尚本発明は以下に示す実施形態によって限定されるものではない。
【００１２】
以下、説明する実施形態の一部をとることで、リモートサイトにてプロセス又はタスク単位でデータが保証されるリモートコピーを実現することができる。また、実施形態の一部をとることでプロセス又はタスクが複数のボリュームに対してデータを更新する場合においても、複数のボリュームに対してデータを保証することが可能となる。その他、本システムで実現できる効果等については、以下の実施形態で説明する。
【実施例１】
【００１３】
図１は、本発明の第１の実施形態である情報処理システムの構成ブロック図である。
【００１４】
この情報処理システムは、メインサイトのホスト計算機１０Ａ、ホスト計算機１０Ａに接続されたディスク制御装置２０Ａとディスク装置３０Ａとを有するストレージサブシステム４００Ａと、リモートサイトのホスト計算機１０Ｂ、ホスト計算機１０Ｂに接続されたディスク制御装置２０Ｂとディスク装置３０Ｂよりなるストレージサブシステム４００Ｂとを有している。また、ストレージサブシステム４０Ａとストレージサブシステム４００Ｂは、高速な通信回線によって接続されている。
【００１５】
メインサイトのディスク制御装置２０Ａとリモートサイトのディスク制御装置２０Ｂとは高速なデータ送受信が可能である通信回線１５、例えば、ＬＡＮ（Local Area Network）やＳＡＮ(Storage Area Network)などの通信回線で接続されている。
【００１６】
ホスト計算機１０Ａは、ディスク装置３０Ａに格納されるデータの入出力要求を、ディスク制御装置２０Ａに対して発行する。入出力要求を受けたディスク制御装置２０Ａは、要求に基づきディスク装置３０Ａに対してデータの読み出し、或いは書き込みを実施する。
【００１７】
また、同様にホスト計算機１０Ｂは、ディスク装置３０Ｂに格納されるデータの入出力要求を、ディスク制御装置２０Ｂに対して発行する。入出力要求を受けたディスク制御装置２０Ｂは、要求に基づきディスク装置３０Ｂに対してデータの読み出し、或いは書き込みを実施する。
【００１８】
また、メインサイトのディスク制御装置２０Ａとリモートサイトのディスク制御装置２０Ｂとは通信回線で結ばれていることから、リモートサイトにメインサイトのディスク装置の複製ボリュームを作成することもできる。そのため、ディスク災害時の復旧では、メインサイトのホスト計算機１０Ａと、ディスク制御装置２０Ａおよびディスク装置３０Ａからなるストレージサブシステム４００Ａとで行っていた業務を、リモートサイトの計算機１０Ｂと、ディスク制御装置２０Ｂおよびディスク装置３０Ｂからなるストレージサブシステム４００Ｂに切り替えて実行することができる。つまり、メインサイトで行われていた業務やデータをリモートサイトで引き継いで再開することができる。なお、リモートサイトの計算機１０Ｂは、メインサイトの計算機１０Ａと同一の構成である。
【００１９】
ホスト計算機１０Ａは、ＣＰＵ１１，メモリ１２および入出力インタフェース１３を備える。ＣＰＵ１１は、メモリ１２にプログラムを内蔵しており、目的に応じてプログラムを実行する。メモリ１２は、ホスト計算機１０Ａで動作するプログラムやデータを格納する。入出力インタフェース１３はディスク制御装置２０Ａとでデータの送受信を行う。
【００２０】
ディスク制御装置２０Ａは、入出力インタフェース２１、ＣＰＵ２２、メモリ２３及びディスクインタフェース２４を備える。
【００２１】
入出力インタフェース２１は、ホスト計算機１０Ａとの間でデータの送受信、又はディスク制御装置２０Ｂとの間でデータの転送を行う。ＣＰＵ２２は、メモリ２３に格納されているプログラムを実行する。メモリ２３は、ディスク制御装置２０Ａで稼動するプログラムやデータを格納する。
【００２２】
ディスクインタフェース２４は、ディスク装置３０Ａとの間でデータの送受信を行う。
【００２３】
リモートサイトの計算機１０Ｂ，ディスク制御装置２０Ｂ，ディスク装置３０Ｂの構成は、それぞれホスト計算機１０Ａ、ディスク制御装置２０Ａ，ディスク装置３０Ａとほぼ同一構成である。
【００２４】
図２は、前述のように構成された情報処理の機能ブロック図である。
【００２５】
メインサイトのホスト計算機１０Ａは、アプリケーションプログラム１０１とＯＳ１０２とが稼動している。これらは、前述のように、メモリ１２に格納されているプログラムをＣＰＵ１１が読み出して実行することによって、それぞれの機能が実現されている。
【００２６】
アプリケーションプログラム１０１は、ディスク装置３０Ａに設定されている複数の論理ボリュームに配置されたファイルに対してデータの入出力要求を行う。ＯＳ１０２は、アプリケーションプログラム１０１からの処理要求を受けるとプロセス管理プログラム１０５でプロセスを生成してスケジュールする。
【００２７】
ここで、プロセスとは、システム利用者のアプリケーションプログラムの実行やシステム管理の処理を行う単位で、タスクと同義である。また、論理ボリュームとは、磁気ディスク等の記憶媒体の記憶領域を管理する単位であり、ファイルは、関連のあるデータの集合体である。
【００２８】
スケジュールされたプロセスはＣＰＵの資源が割当てられると実行状態となり、アプリケーションプログラムからの入出力要求は入出力アクセス法プログラム１０３に制御が渡り、更に入出力実行管理プログラム１０４に制御が渡され、これをディスク制御装置２０Ａへの入出力要求に変換して、ディスク装置２０Ａに送信する。
【００２９】
ＯＳ１０２は、プロセス管理プログラム１０５及び入出力アクセス法プログラム１０３、入出力実行管理プログラム１０４を含む。これらのプログラムは、アプリケーションプログラム１０１からの処理要求に対して、プロセスの管理（例えばプロセスの生成、スケジュール、消滅）、入出力要求に基づいて、ディスク制御装置２０Ａに対して、論理ボリュームの状態の通知や設定を行う。
【００３０】
外部記憶装置に作成する定義ファイル１４０は、ユーザ定義情報である。本ファイルでは、プロセスから行われる入出力要求に対して更新データのグループを示す情報を付与するための規則情報が定義されている。なお、ここでは、定義ファイル１４０が外部記憶装置に格納されている例を示しているが、ホスト計算機１０Ａ、１０Ｂに格納されるようにしても良い。
【００３１】
ディスク制御装置２０Ａは、入出力要求受付部１１２Ａと入出力制御コンポーネント１１３Ａとデータコピー制御コンポーネント１１４Ａとが稼動している。これらは、前述のようにメモリ２３に格納されているプログラムをＣＰＵ２２が読み出して実行することにより、それぞれの機能が実現されている。
【００３２】
入出力受付部１１２Ａは、ホスト計算機１０Ａから送信された入出力要求を受け取ると、その内容を判定して、入出力制御コンポーネント１１３Ａ又はデータコピー制御コンポーネント１１４Ａに制御を渡す。入出力制御コンポーネント１１３Ａは、受け取った入出力要求に基づいて、ディスク装置３０Ａへのデータの入出力を実行する。データコピー制御コンポーネント１１４Ａは、受け取った入出力要求に基づいて、ディスク制御装置２０Ｂとの間でデータコピーに関する制御を実行する。
【００３３】
転送ポート１１５Ａ及びポート１１５Ｂは、ディスク制御装置２０Ａと、ディスク制御装置２０Ｂの間で入出力要求を通信回線１５０を介してリモートサイトに転送するための接続経路である。
【００３４】
ディスク装置３０Ａには、複数の論理ボリュームが設定されている。ここで、メインサイトのディスク装置３０Ａに設定された論理ボリュームを正ボリューム、メインサイトの正ボリュームに格納されたファイルの複製が格納されているリモートサイトのディスク装置３０Ｂの論理ボリュームを副ボリュームとする。また、正ボリューム１２１Ａ、１２１Ｂは論理的に意味のあるファイルが格納され、そのファイルの複製が副ボリューム１２１Ｂ、１２２Ｂに格納されているとする。論理的に意味があるとは、例えば、金融の預金高を管理するデータベース等において、預金情報のデータと残高情報のデータが別々のボリュームに格納されている場合において、預金情報のデータが格納されたボリュームと残高情報のデータが格納されたボリュームの関係をいう。つまり、預金情報、残高情報のようにデータの内容は異なるが、一つの業務アプリケーション、プロセス又はタスクによって参照、更新が行われる関係にあるものである。
【００３５】
ディスク制御装置２０Ａは、ホスト計算機１０Ａからのデータ書き込み要求を受け取ったときに、その書き込みデータを正ボリューム１２１Ａ、１２２Ａの両方に書き込むと共に、データを制御装置２０Ｂに転送する。データ制御装置２０Ｂは、送られてきたデータを副ボリューム１２１Ｂ、１２２Ｂに書き込む。このように、メインサイトからリモートサイトにデータを送り、リモートサイトに複製を生成することを以降は、リモートコピーと呼ぶ。
【００３６】
なお、リモートサイトのホスト計算機１０Ｂ及びディスク制御装置２０Ｂの構成は、メインサイトのホスト計算機１０Ａ及びディスク制御装置２０Ａとほぼ同一である。
【００３７】
図３は、メインサイトのホスト計算機１０ＡのＯＳ１０２に含まれるプロセス管理プログラム１０５と入出力アクセス法プログラム１０３、入出力実行管理プログラム１０４、更新データグループＩＤ制御規則ファイル１４０の動作を示している。
【００３８】
プロセス管理プログラム１０５は、プロセス状態変化要求受付部２００、プロセス状態制御部２２０、プロセス情報管理部２１０、プロセス状態通知部２３０を有している。
【００３９】
プロセス状態変化要求受付部２００は、ホスト計算機１０Ａからの処理要求を受けてプロセスの状態変化における要求種別をプロセス状態制御部２２０に渡す。プロセスの状態変化における要求種別とは、例えばプロセスの生成、プロセスの消滅があり、また、プロセスやタスクが処理要求を受けて待ち状態から実行状態に変わり、処理を終えるとまた待ち状態にプロセスやタスクの状態が遷移するプロセスの状態遷移も含まれる。
【００４０】
プロセス情報管理部２１０は、プロセスが実行されるアドレス空間の管理情報を管理するためのアドレス空間管理情報２１０Ａ，プロセスの実行状態を管理するためのプロセス管理情報２１０Ｂを有している。
【００４１】
プロセス状態制御部２２０は、プロセス状態変化要求受付部２００より取得した要求種別を解析してプロセスの制御や、アドレス空間の制御を実施し、プロセス状態通知部２３０にプロセスの状態やプロセスの状態遷移情報を渡す。
【００４２】
プロセス状態通知部２３０は、プロセス状態制御部２２０より取得したプロセスの状態やプロセスの状態遷移情報と外部記憶装置に定義されたファイル１４０に作成するファイル（以降、更新データグループＩＤ制御規則と称す。）の定義情報から更新要求に対してグループ化の識別情報を登録または、削除するかを入出力実行管理プログラム１０４の更新データグループ制御部２８０に対して通知する。
【００４３】
入出力アクセス法プログラム１０３は、ＯＳ自身やアプリケーションプログラムからの入出力要求を受け付け、一連の入出力コマンド群を生成する部分である。
【００４４】
入出力実行管理プログラム１０４は、入出力要求受付部２６０、入出力実行制御部２７０、更新データグループ制御部２８０、更新データグループ状態管理部２９０とを有する。
【００４５】
入出力要求受付部２６０は、入出力アクセス法プログラム１０３などからの入出力要求情報２６０Ａを受け付ける部分である。
【００４６】
入出力実行制御部２７０は、入出力要求情報２６０Ａに設定された情報に従って、入出要求の制御や、実行を行う部分であり、ここでは更新データグループＩＤの付与も行っている。
【００４７】
更新データグループ制御部２８０は、入出力実行制御部２６０からの更新データグループＩＤ情報付与の照会、プロセス状態通知部２８０からの要求により、更新データグループＩＤ情報の登録、解除を制御する部分である。
【００４８】
更新データグループ状態管理部２９０は、更新データグループＩＤ情報の管理部であり、登録された更新データグループ情報が管理される部分である。
【００４９】
図４は、複数ボリュームに分散されたファイルの更新要求の実施例を説明したものである。
【００５０】
図４Ａはメインホスト計算機１０Ａにおいて、複数ボリュームに配置されたデータベースファイル４００Ａ、４００Ｂ，４００Ｃに対して一つのプロセスから更新要求が行われた例である。データベースファイル４００Ａ，４００Ｂ，４００Ｃは論理的に意味のある関係にあり、更新状態の同期が取れていないと意味を持たないため、ボリューム１２１Ａ，１２２Ａ，１２３Ａの更新状態はリモートサイトで複製された場合にも同期が取れていなければならない。
【００５１】
ここで、対象となるファイル構成であり、メインサイトの計算機１０Ａでファイル４００Ａ、ファイル４００Ｂ、ファイル４００Ｃの更新状態がリモートサイトでリモートコピーにより複製された場合に更新状態の同期が取れていなければならない。
【００５２】
図４Ｂはメインホスト計算機１０Ａにおいて、複数ボリュームに配置されたデータファイルの論理的に意味のあるファイルの例である。
【００５３】
ボリューム１２１Ａにはデータセットの属性や空き容量情報、増分情報などを管理するファイル４１１，４１２，４１３を持ち、ボリューム１２２Ａにはボリュームの管理情報４０Ｖを持つ。実際のアプリケーションプログラムで更新するのは、データファイル４２１，４２２，４２３にあり、ファイルの管理情報とデータファイルを別のボリュームに持つことで高信頼性を保持している。この場合もリモートサイトで複製された場合に更新状態の同期が必要である。
【００５４】
図５Ａは、プロセス管理プログラム１０５のプロセス情報管理部２１０で管理するアドレス空間管理情報２１０Ａの説明図である。
【００５５】
アドレス空間管理情報２１０Ａは、プロセスが動作する上でメモリ上に割り当てられたアドレス空間を管理している制御情報で、アドレス空間ＩＤ情報５００Ａ、アドレス空間の配下のプロセス管理情報５００Ｂ、アドレス空間の制御情報５００Ｃとを有する。
【００５６】
アドレス空間ＩＤ情報５００Ａは、割り当てられたアドレス空間の識別子情報である。
【００５７】
アドレス空間配下のプロセス管理情報５００Ｂには、割り当てられたアドレス空間配下に作成されたプロセスの管理情報が設定されている。アドレス空間が割り当てられている状態で同じアドレス空間に新たなプロセスを作成する場合には当該管理情報が更新される。
【００５８】
アドレス空間の制御情報５５０Ｃは、アドレス空間で使われるシステムの資源などを管理情報として持つ。
【００５９】
図５Ｂは、プロセス管理プログラム１０５のプロセス情報管理部２１０で管理するプロセス管理情報２１０Ｂの説明図である。プロセス管理情報２１０Ｂは、プロセスの生成や消滅、プロセスの実行状態遷移、例えばプロセス実行、実行可能状態、待ち状態などの遷移を管理し、動作するアドレス空間の制御情報を管理する情報で、プロセスのＩＤ情報５５０Ａ，プロセスの状態管理情報５５０Ｂ、プロセスの優先度情報５５０Ｃ、プロセスの制御情報５５０Ｄ、プロセスのアドレス空間情報５５０Ｅとを有している。プロセスＩＤ情報５５０Ａは、プロセスが生成された場合にそのプロセスを特定できる識別子情報として付与される。
【００６０】
プロセスの状態管理情報５５０Ｂは、プロセスの状態遷移やそのプロセスの状態情報を持つ。プロセスの優先度情報５５０Ｃは、プロセスを実行するためにキューに登録された場合にそのプロセスのキュー実行における優先度が設定されている。
【００６１】
プロセスの制御情報５５０Ｄは、処理要求に対応してプログラムの動作に必要な制御情報が設定される。プロセスのアドレス空間情報５５０Ｅは、そのプロセスが動作するアドレス空間の識別情報が設定される。
【００６２】
図６Ａは、実施例１で表すオンラインプログラムの処理におけるアプリケーションプログラムの制御に関わるプロセスの動作を説明した概略図である。
【００６３】
オンラインのシステムのアドレス空間では、ユーザのアプリケーションプログラム数に応じて処理のプロセス（タスク）が生成された後、トランザクションの起動要求を待っている状態でプロセスが存在する。また、ユーザアプリケーションプログラムのプロセスも生成されたのち、起動要求を待つ状態で存在する。
【００６４】
通常、プロセスが実行待ち状態になる場合、プロセスがメモリ上に用意した事象発生の通知を受けるための事象受領の制御情報領域が存在し、事象の通知を受けて起動される。例えば、ユーザアプリケーションプログラム６０３に対応するトランザクション起動要求が発生した場合、プロセス１の事象受領の制御情報１に事象発生の通知が行われる。プロセス１は事象の通知を受けると、待ち状態から実行状態に遷移する。
【００６５】
次にユーザのアプリケーションプログラム６０３を動かすために、プロセスＵ１のアプリケーションプログラムの起動制御６０２に起動の事象発生を通知した後、プロセス１は終了制御６０４からの終了の事象を受けるために事象受領の制御情報２で終了の報告を待つ。ユーザのアプリケーションプログラムの起動制御６０２は、ユーザのアプリケーションプログラム６０３の起動要求を事象受領の制御情報３で受けた後、ユーザアプリケーションプログラム６０３を起動する。
【００６６】
起動したアプリケーションプログラム６０３は、入出力実行１で論理ボリューム６０５に入出力要求を行うと、入出力要求完了の事象の通知を事象受領の制御情報４で待つ。このときに、複数のファイルで構成された論理的に意味のある情報を更新する場合に、そのファイルが複数のボリュームに配置されている、または複数の論理ボリュームにファイルが跨る場合に、複数の入出力要求が行われる。この場合、入出力要求の完了を待つ事象受領の制御情報４も入出力要求毎に存在する。
【００６７】
論理ボリューム６０５で入出力の実行が完了すると事象受領の制御情報４に完了の通知が行われ、ユーザのアプリケーションプログラム６０３の処理も終了すると、プロセスＵ１のアプリケーションプログラムの終了制御６０４は、終了の事象をプロセス１の事象受領の制御情報２に報告する。その後、プロセスＵ１は、次のアプリケーションプログラム６０３の起動要求に備え、事象受領の制御情報３で起動の事象を待ち、プロセスは、実行状態から待ち状態に遷移する。
【００６８】
アプリケーションプログラムの終了の事象を事象受領の制御情報２で受領したプロセス１は、トランザクションの終了を報告したのち、アプリケーションプログラム６０３の次の起動要求が有れば、再度、アプリケーションプログラム６０３を起動する。次のトランザクションの要求を受けていない場合には、プロセス１も次のトランザクションの起動要求を受けるために事象受領の制御情報１で次の起動要求を待つ状態にプロセスは遷移する。
【００６９】
ここでは、アプリケーションプログラム６０３で行われる入出力要求のグルーピングを実現するためにプロセスＵ１のプロセスの状態遷移（事象受領の制御情報３）を監視して、更新データグループＩＤ制御規則ファイルと照合の上で、グルーピングを実現するものである。
【００７０】
図６Ｂは、図６Aで示したユーザのアプリケーションプログラムのプロセスＵ１がアプリケーションの起動要求を受けてから、アプリケーションプログラムの終了を返すまでのプロセスの状態遷移を表したものである。
【００７１】
プロセス１からの起動要求を受けて、プロセスＵ１のプロセスは起動要求待ちの状態から実行状態に遷移する。この状態遷移を受けて更新データグループの識別情報が生成される。更新データグループの識別情報生成後、プロセスＵ１配下で行われるアプリケーションからの一連の入出力要求に対して、一つのグループとして扱うための識別情報（更新データグループＩＤ）が付与され、入出力要求が実行される。アプリケーションプログラムでの入出力が終わり、アプリケーションプログラムが終了すると、プロセスＵ１のプロセスは、次の起動要求を受けるために実行状態から起動要求待ちに遷移する。この状態遷移を捉えて、更新データグループの識別情報を付与する範囲を終わらせると判断する。
【００７２】
図７Ａは、プロセス管理プログラム１０５におけるプロセス状態変化要求受付部２００の処理を示したフローチャートである。
【００７３】
プロセス状態変化要求受付部２００は、例えばプロセスの生成、消滅などのプロセスの変化を受け付ける（ステップ７Ａ１）。その後、プロセスの要求種別をプロセス状態制御部２２０に渡し（ステップ７Ａ２）、プロセスを実行する。
【００７４】
プロセスの要求種別とは、プロセスが生成された場合に発生する生成要求、プロセスが消滅された場合に発生する消滅要求、プロセスの状態変化としてはプロセスが実行待ち状態から実行状態に遷移する場合に事象受領の制御情報も実行状態に変わるのでこれを捉えての実行要求、実行状態からプロセスが待ち状態に遷移する場合の事象受領の制御情報も待ち状態に変わるのでこれを捉えての待ち要求などを言う。
【００７５】
図７Ｂは、プロセス管理プログラム１０５におけるプロセス状態制御部２２０の処理を示したフローチャートである。
【００７６】
プロセス状態制御部２２０は、プロセス状態変化要求受付部２００よりプロセスの要求種別を受けてプロセスの制御を行う処理である。
【００７７】
プロセス状態変化要求受付部２００よりプロセスの要求種別を取得する（ステップ７０１）。要求種別の判定結果（ステップ７０２）で、プロセス生成の場合、プロセス状態通知部２３０に渡す状態遷移情報１３００のプロセスの状態遷移情報１３０１にプロセス生成の情報を設定する（ステップ７０３）。次にプロセスの管理情報５５０を新規に作成（ステップ７０４）したのち、新たなプロセスを生成した場合にそのプロセスを実行するためのアドレス空間が既に作成されているかを調べる（ステップ７０５）。アドレス空間が作成されていない場合には新規にアドレス空間を作成（ステップ７０６）し、生成したプロセスの制御情報５５０のプロセス状態管理情報５５０Ｂにプロセスが実行可能状態である情報を設定（ステップ７０７）したのち、状態遷移遷移情報１３００のプロセス状態遷移情報１３０１をプロセス状態通知部２３０に通知（ステップ７３２）して終了する。
【００７８】
ステップ７０５で、プロセスが実行するためのアドレス空間が既に作成されていると判断した場合には、そのアドレス空間に新たなプロセスの制御情報を作成（ステップ７０８）し、アドレス空間配下のプロセス管理情報５５０Ｂを更新する。その後、プロセスの状態管理情報５５０Ｂにプロセスが実行可能状態である情報を設定（ステップ７０７）したのち、状態遷移情報１３００のプロセス状態遷移情報１３０１をプロセス状態通知部２３０に通知（ステップ７３２）して終了する。
【００７９】
ステップ７０２で要求種別がプロセスの生成以外である場合、ステップ７０９で更に要求種別の判定を行う。ステップ７０９でプロセス消滅の要求であると判断した場合には、消滅させるプロセスのＣＰＵの割当て状態を解除（ステップ７１０）する。次にプロセス状態通知部２３０に通知する状態遷移情報１３００のプロセスの状態遷移情報１３０１にプロセス消滅の情報を設定（ステップ７１１）した後、消滅させるアドレス空間に他のプロセスが存在するか調べる（ステップ７１２）。存在しないと判断した場合には、アドレス空間を消滅させた後、アドレス空間の管理情報５００も削除する（ステップ７１３）。その後、消滅要求されたプロセス管理情報５５０も削除（ステップ７１４）し、状態遷移遷移情報１３００のプロセス状態遷移情報１３０１をプロセス状態通知部２３０に通知（ステップ７３２）して終了する。
【００８０】
ステップ７１２で消滅させようとしていたアドレス空間に未だ他のプロセスが存在した場合には、アドレス空間を消滅できないので消滅させるプロセスだけを削除（ステップ７１４）して、状態遷移遷移情報１３００のプロセス状態遷移情報１３０１をプロセス状態通知部２３０に通知（ステップ７３２）して終了する。
【００８１】
ステップ７０９でプロセスの消滅以外であると判断した場合に更に要求種別を判定し、待ち状態への状態遷移であれば、ステップ７１７を実行する。ここで言う待ち状態は、例えば、入出力要求を出して、入出力実行結果の割込み待ちを言う。このときに当該プロセスのＣＰＵ割当状態を解除（ステップ７１７）し、プロセス状態通知部２３０に通知する状態遷移情報１３００のプロセスの状態遷移情報１３０１はプロセス実行待ち状態の情報を設定する（ステップ７１８）。また、プロセス制御情報５５０のプロセスの状態管理情報５５０Ｂもプロセス実行待ち状態に設定（ステップ７１９）し、状態遷移遷移情報１３００のプロセス状態遷移情報１３０１をプロセス状態通知部２３０に通知（ステップ７３２）して終了する。
【００８２】
ステップ７１６でプロセスの実行待ちではない場合にはステップ７２０で更に要求種別を判定し、プロセスが実行可能状態である場合にはプロセス７２１を実行する。実行可能状態とは、プロセスの生成が完了し、ＣＰＵが割り当てられれば、いつでも稼動可能な状態にある状態を言う。当該プロセスのＣＰＵ割当は解除（ステップ７２１）し、プロセス状態通知部２３０に通知する状態遷移情報１３００のプロセス状態遷移情報１３０１にプロセス実行可能状態を設定する（ステップ７２２）。次にプロセスの制御情報５５０に設定されているプロセスの優先度情報５５０Ｃに従い、プロセス管理情報５５０を実行可能キューに登録する（ステップ７２３）。プロセス優先度情報５５０Ｃは、システムで定められたプロセスの実行の優先度であり、一般的には優先度が高ければ実行キューの先頭に登録され、即、実行状態に設定される。実行キューに登録されたプロセスが先頭キューに登録されたか判断（ステップ７２４）し、先頭であればプロセスは即、実行されるのでプロセス５５０のプロセス状態管理情報５５０Ｂをプロセス実行中に設定（ステップ７２５）し、状態遷移遷移情報１３００のプロセス状態遷移情報１３０１をプロセス状態通知部２３０に通知（ステップ７３２）して終了する。
【００８３】
ステップ７２４で、実行キューに登録したが実行可能キューの先頭ではない場合にはプロセス５５０のプロセス状態管理情報５５０Ｂはプロセス実行可能に設定（ステップ７２６）し、状態遷移遷移情報１３００のプロセス状態遷移情報１３０１をプロセス状態通知部２３０に通知（ステップ７３２）して終了する。
【００８４】
ステップ７２０で、プロセスの要求種別が実行可能ではない場合には、ステップ７２７で更に要求種別を判定し、プロセスの実行であればプロセスにＣＰＵを割り当てる（ステップ７２８）。プロセス状態通知部２３０に通知する状態遷移情報１３００のプロセス状態遷移情報１３０１は、プロセス実行中に設定(ステップ７２９)し、プロセスの状態管理情報５５０Ｂもプロセス実行中に設定（ステップ７３１）し、状態遷移遷移情報１３００のプロセス状態遷移情報１３０１をプロセス状態通知部２３０に通知（ステップ７３２）して終了する。
【００８５】
図８は、プロセス管理プログラム１０５におけるプロセス状態通知部２３０の処理を示したフローチャートである。
【００８６】
プロセス状態通知部２３０では、プロセス状態制御部２２０からプロセスの状態遷移情報１３００を入力情報として取得する（ステップ８０１）。次にユーザで定義した更新データグループＩＤ制御規則の定義ファイル１４０を読み出す。（ステップ８０２）。ステップ８０２で読み出された更新データグループＩＤ制御規則のファイル１４０の制御規則９００から、対象名称９０３を取り出し、プロセス管理プログラム１０５が対象名称９０３を動作させるアドレス空間ＩＤ情報やプロセスＩＤ情報を取得する（ステップ８０３）。次にプロセス状態制御部２２０から取得した状態遷移情報１３００のプロセスＩＤ情報１３０３とアドレス空間ＩＤ情報１３０４がステップ８０３で求めたアドレス空間ＩＤ情報やプロセスＩＤ情報と一致するか比較して調べる（ステップ８０４）。ステップ８０４で比較して一致するものが無ければ何もせず終了する。なお、更新データグループＩＤ制御規則の定義ファイル１４０に複数の制御規則９００が登録されている場合には登録されている規則数分だけ比較して調べる。
【００８７】
ステップ８０４で比較して一致するものがあれば、プロセス状態制御部２２０から取得した状態遷移情報１３００のプロセス状態遷移情報１３０１が更新データグループＩＤ制御規則の定義ファイル１４０の更新データグループＩＤ登録契機９０１と一致するか調べる（ステップ８０５）。一致する状態とは例えば、プロセス状態遷移情報１３０１にプロセスが「待機状態から実行状態に変わる契機」を意味する情報が設定されており、更新データグループＩＤ制御規則の定義ファイル１４０の更新データグループＩＤ登録契機９０１にも「待機状態から実行状態に変わる契機」を意味する情報が設定されている場合に一致と判断する。尚、比較に使用する情報は、同じコード情報で実現する或いは、異なるコード同士を対応させる処理があって実現するなど「一致」する条件の実現方法は特に規定しない。ステップ８０５で一致した場合には、プロセス状態制御部２２０から取得した状態遷移情報１３００の要求情報１３０２に更新データグループＩＤ登録要求の情報を設定する（ステップ８０６）。
【００８８】
次に入出力実行管理プログラム１０４の更新データグループ制御部２８０に通知（ステップ８０９）し、終了する。ステップ８０５で、一致するものが無ければステップ８０７でプロセスの状態制御部２２０から取得した状態遷移情報１３００のプロセスの状態遷移情報１３０１が更新データグループＩＤ制御規則の定義ファイル１４０の更新データグループＩＤ削除契機９０２と一致するか調べる（ステップ８０７）。ステップ８０７で一致しない場合には何もせず終了する。ステップ８０７で一致した場合には、プロセス状態制御部２２０から取得したプロセスの状態遷移情報１３００の要求情報１３０２に更新データグループＩＤの削除要求を設定（ステップ８０８）して、入出力実行管理プログラム１０４の更新データグループ制御部２８０に通知（ステップ８０９）し、終了する。
【００８９】
図９は、図８で述べたユーザが定義する更新データグループＩＤ制御規則の定義ファイル１４０のデータ構造を説明したものである。
【００９０】
制御規則９００は、更新データグループＩＤ登録契機の定義情報９０１、更新データグループＩＤ解除契機の定義情報９０２、更新データグループＩＤ情報を付与、制御する対象となる対象名称９０３で構成され、複数の対象名称を対象としたい場合には複数の制御規則を登録する。更新データグループＩＤ登録契機の定義情報９０１は、対象名称９０３で示すアプリケーションのプロセスやタスクがどのような状態に遷移した場合に更新データグループＩＤを登録するかを示すための情報領域である。情報の内容については本実施例では特に定めることはしない。更新データグループＩＤ解除契機の定義情報９０２は、対象名称９０３で示すアプリケーションのプロセスやタスクがどのような状態に遷移した場合に更新データグループＩＤを解除するかを示すための情報領域である。情報の内容については本実施例では特に定めることはしない。
【００９１】
対象名称９０３は、更新データグループＩＤの登録／解除の対象となるアプリケーションを特定する名称やアプリケーションを特定できる識別情報を設定する。本ファイルは、更新データグループＩＤ情報の制御を実現する上で必要なファイルであり、更新データグループＩＤの登録、削除を制御し、対象となるプロセスを特定することができる情報定義ファイルである。なお、本ファイルは外部記憶装置に定義ファイルを作成しておく他に、システムのメモリに格納するようにしてもよい。
【００９２】
図１０は入出力実行管理プログラム１０４の更新データグループ状態管理部２９０で管理している更新データグループＩＤ情報２９０Ａを説明したものである。
【００９３】
更新データグループＩＤ情報２９０Ａは、例えば、プログラムが動作するプロセスやアドレス空間を特定できる情報で構成する。プログラムが動作しているプロセスの識別情報であるプロセスＩＤ情報１００１、プログラムが動作しているアドレス空間の識別情報であるアドレス空間ＩＤ情報１００２で構成している。未登録の更新データグループＩＤは、情報領域そのものが存在しない。登録解除の場合は登録情報領域そのものが削除される。なお、更新データグループＩＤの構成については、プログラムのプロセスを特定できる構成であれば限定するものではない。
【００９４】
図１１は、入出力実行管理１０４の更新データグループ制御部２８０の動作を示したフローチャートである。
【００９５】
更新データグループ制御部２８０は、入出力実行制御部２７０またはプロセス状態通知部２３０から送られてくるプロセス状態遷移情報により実行される（ステップ１１０１）。入出力実行制御部２７０から実行される場合と、プロセス状態通知部２３０から実行される場合では処理性質の違いから入力情報が異なるので何れのプログラムから実行されたのか識別する必要がある。ここでは、送られてくるプロセス状態遷移情報に入出力実行制御部２７０又はプロセス状態通知部２３０の識別情報が付されているので、その識別情報に基づいて判断する（１１０２）。
【００９６】
入出力実行制御部２７０からプロセス状態遷移情報を受けた場合には、入出力要求受付部２６０で受け付けた入出力要求情報２６０Ａが更新データグループに登録されているかチェックする（ステップ１１０３）。入出力要求情報２６０Ａには、入出力要求のプロセスＩＤ情報１２０３、入出力要求の実行アドレス空間ＩＤ情報１２０３が格納されているため、この情報と、更新データグループ状態管理部２９０に登録されている更新データグループＩＤ情報２９０Ａが一致するか調べ、一致すれば登録済みと判断する。プロセスＩＤ情報やアドレス空間ＩＤ情報が登録済みの場合には、同一の更新データグループとするために更新データグループＩＤ付与有りの要求と更新データグループＩＤを更新データグループ制御部２８０からのリターン情報１４００に設定して（ステップ１１０４）、入出力実行制御部２７０にリターン情報１４００を送る。
【００９７】
リターン情報１４００は更新データグループＩＤ付与有無の要求１４０１，更新データグループＩＤ情報１４０２で構成している。ステップ１１０３の実行結果で未登録と判断した場合には、更新データグループＩＤ情報２９０Ａを入出力の更新要求に付与する必要がないので更新データグループＩＤを付与しないことを示す情報を更新データグループ制御部からのリターン情報１４００に設定（ステップ１１０５）して、入出力実行制御部２７０にリターン情報１４００を送る。この場合、リターン情報１４００の更新データグループＩＤ情報１４０２には更新データグループＩＤ情報２９０Ａを設定しない。
【００９８】
プロセス状態通知部２３０からプロセス状態遷移情報を受けた場合には、プロセス状態通知部から取得した状態遷移情報１３００の要求情報１３０２が解除要求か判定（ステップ１１０６）し、解除要求であれば、プロセス状態遷移情報１３００のプロセスＩＤ情報１３０３，アドレス空間ＩＤ情報１３０４と一致する更新データグループＩＤ情報が更新データグループ状態管理部２９０に登録されているかチェックする（ステップ１１０７）。登録済みであれば解除要求された更新データグループＩＤ情報を更新データグループ状態管理部２９０より削除（ステップ１１０８）する。次に、解除要求された更新データグループＩＤ情報をディスク制御装置２０Ａに通知するための入出力要求情報２６０Ａを作成（ステップ１１０９）し、更新データグループＩＤ解除指示用のコマンド及び制御情報に更新データグループＩＤ情報を設定して入出力要求を実施する（ステップ１１１０）。
【００９９】
更新データグループ解除指示を行ない、解除指示がリモートサイトのディスク制御装置２０Ｂに到着すると、更新データグループ解除指示の制御情報に設定された更新データグループＩＤ情報とリモートサイトのディスク制御装置２０Ｂに蓄積されていた更新データグループＩＤ付情報きの更新情報で一致する更新情報が一斉に副ボリュームに反映（複製）される。
【０１００】
ステップ１１０７で未登録の場合には何もせずプロセス状態通知部２３０を実行する。ステップ１１０６で要求情報１３０２が登録要求であれば、プロセス状態遷移情報１３００のプロセスＩＤ情報１３０３、アドレス空間ＩＤ情報１３０４で構成される更新データグループＩＤ情報が更新データグループＩＤ情報として登録されているかチェックする（ステップ１１１１）。未登録であれば、状態遷移情報１３００に設定されているプロセスIＩＤ情報１３０３、アドレス空間ＩＤ情報１３０４で構成した更新データグループＩＤを新規に登録する（ステップ１１１２）。ステップ１１１１で登録済であれば、何もせずプロセス状態通知部２３０を実行する。
【０１０１】
図１２Ａは、入出力実行管理部１０４の入出力要求管理部２０７で管理する入出力要求情報２６０Ａを示したものである。入出力要求情報２６０Ａは、入出力制御情報１２０１、入出力装置のアドレス情報１２０２、入出力要求プロセスＩＤ情報１２０３、入出力要求実行アドレス空間ＩＤ情報１２０４、入出力対象ファイルアドレス情報１２０５、入出力コマンド群アドレス情報１２０６とを有している。
【０１０２】
入出力制御情報１２０１は、入出力動作を制御する情報が設定されており、入出力の実行結果や、入出力の動作方法などの制御情報が格納される。入出力装置のアドレス情報１２０２は、例えば入出力要求を行う装置の論理アドレスが設定されており、ディスク装置を特定する情報が格納される。入出力要求プロセスＩＤ情報１２０３は、プロセスが実行されるときのプロセスの識別情報が格納されている。
【０１０３】
入出力要求実行アドレス空間ＩＤ情報１２０４は、プログラムが動作するアドレス空間の識別情報が格納されている。入出力対象ファイルアドレス情報１２０５は、入出力要求の対象となる入出力装置上のファイルのアドレス情報が格納されている。入出力コマンド群アドレス情報１２０６は、入出力アクセス法プログラム１０３からの入出力コマンド群のアドレス２７０Ｂが格納される。
【０１０４】
図１２Ｂは、更新入出力要求のコマンドの一例で、データ書き込みコマンドが一つ若しくは複数連なってデータ更新を行うための入出力コマンド群である。
【０１０５】
図１２Ｃは、図１２Ｂに先立って入出力実行制御部２７０が付与する入出力起動制御用コマンド群であり、制御用コマンドで固有の制御情報２７０Ｄを設定して入出力要求を行う。例えば、図１２Ｂのコマンド群でファイルへの書き込みを行う場合に、入出力起動制御用コマンド群２６０Ｃがディスク制御装置の入出力制御部１６１１に送信される。制御用コマンド群２６０Ｃの制御情報に図１２Ｄで示す更新データグループ情報１２１１が付与されているとデータコピー制御部１６０１で書き込み要求の入出力コマンド群２６０Ｂを受け付けたときに以降のデータ書き込み要求に対して更新データグループ情報を付与して入出力を実行する。
【０１０６】
図１２Ｄは、制御用コマンドに更新データグループ情報を付与する場合の構成例である。制御用コマンド１２０７の制御情報２６０Ｄに対し、既存の制御情報１２１０に加え、更新データグループＩＤ情報１２１１、タイムスタンプ情報１２１２を付与している。
【０１０７】
図１３は、プロセス管理プログラム１０５におけるプロセス状態通知部２３０が作成する状態遷移情報を示したものである。
【０１０８】
状態遷移情報１３００は、プロセスの状態遷移情報１３０１、要求情報１３０２、プロセスＩＤ情報１３０３、アドレス空間ＩＤ情報１３０４とを有している。状態遷移情報１３００は、入出力実行管理プログラム１０４の更新データグループ制御部２８０を実行する場合の入力情報としてプロセス状態通知部２３０が作成する。プロセス状態遷移情報１３０１は、プロセス状態制御部２２０がプロセスの状態遷移に応じて設定するものであり、プロセス状態通知部２３０が参照する。要求情報１３０２は、プロセス状態通知部２３０が設定する情報で、プロセス状態制御部２８０で設定したプロセスの状態遷移情報１３０１とユーザが定義した更新データグループＩＤ制御規則ファイル１４０とで照合したのち、更新データグループＩＤ情報の登録、削除の要求に変換したものが設定される。更新データグループ制御部２８０が参照する。プロセスＩＤ情報１３０３は、更新データグループ状態管理部２９０に登録された更新データグループＩＤとの照合情報で、プロセスの識別子である。アドレス空間ＩＤ情報１３０４は、更新データグループ状態管理部２９０に登録された更新データグループＩＤとの照合情報で、アドレス空間の識別子である。
【０１０９】
図１４は、入出力実行管理プログラム１０４における更新データグループ制御２８０からのリターン情報を示したものである。リターン情報１４００は、更新データグループＩＤ付与有無の要求情報１４０１、更新データグループＩＤ情報１４０２を含む。更新データグループＩＤ付与有無の要求情報１４０１は、入出力実行管理プログラム１０４の更新データグループ制御部２８０で処理した結果、更新データグループＩＤ情報を制御用コマンド１２０７の制御情報２７０Ｄに設定する必要がある場合に更新データグループＩＤの付与が必要を意味する要求情報１４０１が設定される。更新データグループＩＤ情報１４０２は、更新データグループ制御部２８０において更新データグループＩＤ付与が必要と判断した場合にプロセスＩＤ情報、アドレス空間ＩＤ情報に応じた更新データグループＩＤが設定される。
【０１１０】
図１５は、入出力実行管理プログラム１０４における入出力実行制御部２６０の処理を示したフローチャートである。
【０１１１】
入出力実行制御部２６０は、入出力要求の実行に先立ち、入出力の対象となる入出力装置が実行可能な状態かを調べる（ステップ１５０１）。実行可能かどうかは例えば装置を管理している制御情報などで判断する。装置を管理している制御情報には、装置が入出力実行可能状態にあるのか否かを示す情報が設定されており、入出力実行管理部１０４は、その情報を見て入出力の実行を制御している。判定結果が入出力実行不可であった場合には、入出力要求を実行せずに待ち状態もしくはエラーとする（ステップ１５１０）。
【０１１２】
ステップ１５０１で調べた結果、入出力実行可能であった場合には、入出力要求受付部２６０の入出力要求情報２６０Ａに更新データグループ削除の指示があるか調べる（ステップ１５０２）。指示がある場合には、入出力コマンド群（解除要求の場合には制御用コマンドのみ）の制御情報にタイムスタンプを付与（ステップ１５０６）し、入出力コマンド群をディスク制御装置２０Ａに送る（ステップ１５０７）。入出力要求を実行し、入出力要求の完了報告を待ち（ステップ１５０８）、入出力完了報告を受けて入出力要求元へ入出力要求完了の通知を行う(ステップ１５０９)。
【０１１３】
ステップ１５０２で、更新データグループＩＤの解除ではない場合には、入出力要求受付部２６０の入出力要求情報２６０Ａに指定されたプロセスＩＤ情報１２０３及びアドレス空間ＩＤ情報１２０４で更新データグループＩＤ情報を付与する必要があるか調べるために更新データグループ制御部２８０を実行する（ステップ１５０３）。このときに、入力情報として状態遷移情報１３００を作成する。
【０１１４】
更新データグループ制御部２８０を実行した結果（ステップ１５０４）、リターン情報１４００の更新データグループＩＤ付与有無の要求情報１４０１で付与が必要であるというリターン結果であった場合には、リターン情報１４００の更新データグループＩＤ情報１４０２の更新データグループＩＤ情報を入出力起動制御用コマンド１２０７の制御情報２６０Ｄに付与する（ステップ１５０５）。次に入出力コマンド群の制御情報２６０Ｄにタイムスタンプを付与（ステップ１５０６）し、入出力コマンド群をディスク制御装置に送付する（ステップ１５０７）。入出力要求を実行し、入出力要求の完了報告を待ち（ステップ１５０８）、入出力完了報告を受けて入出力要求元へ入出力完了の通知を行う(ステップ１５０９)。
【０１１５】
図１６は、ディスク制御装置２０Ａ／２０Ｂを構成するデータコピー制御コンポーネント１１４と入出力制御コンポーネント１１３を詳細に示したものである。
【０１１６】
データコピー制御コンポーネント１１４はデータコピー制御部１６０１とデータバッファ部１６０２から構成され、入出力制御コンポーネント１１３は入出力制御部１６１１とボリューム状態管理部１６１２から構成される。データバッファ部１６０２はリモートコピーのリモートサイト側のディスク制御装置２０Ｂにおいて、更新データグループＩＤ情報が付与されたデータ更新要求を更新データ情報１６０３に変換して蓄積する部分である。
【０１１７】
ボリューム状態管理部１６１２は、ディスク制御装置が管理しているボリュームの情報（ボリューム情報１６１３）を管理する部分である。データコピー制御部１６０１は、ディスク制御装置間のリモートコピーに関する制御を行う部分であり、メインサイトのディスク制御装置においてはデータ更新要求や更新データグループ終了指示コマンドのリモートサイトのディスク制御装置２０Ｂへの転送を行う。リモートサイトのディスク制御装置２０Ｂにおいてはデータバッファ部１６０２へ更新データ情報１６０３を蓄積し、更新データグループ解除指示コマンドの要求に従いデータバッファ部１６０２の情報をリモートサイトの副ボリュームへ反映する。
【０１１８】
入出力制御部１６１１は、入出力受付部１１２を通してコマンドを受け取り実行する部分であり、メインサイトのディスク制御装置２０Ａにおいてはデータ更新要求や更新データグループ終了指示コマンドのデータコピー制御部１６０１へ転送を行い、リモートサイトのディスク制御装置２０Ｂにおいては、入出力受付部１１２からのデータ更新要求や更新データグループ解除指示コマンドをデータコピー転送部１６０１に転送し、データコピー制御部１６０１からのデータ更新要求をリモートサイトの副ボリュームに対して実行する部分である。  
図１７Ａはデータバッファ部１６０２に蓄積される更新データ情報１６０３を示したものである。更新データ情報１６０３は、更新データシーケンス番号１７０１（メインサイトのディスク制御装置がリモートサイトにおけるデータ更新順序を保証するために付与する通し番号）と、計算機が入出力コマンド群に付与するタイムスタンプを反映したタイムスタンプ１７０２（タイムスタンプをそのまま更新データシーケンス番号として使用する場合もある）と、更新データ情報１７０４がどの更新データグループに属するかを示す更新データグループＩＤ情報１７０３と、更新対象データと更新内容を含むデータ更新情報１７０４とを有する。
【０１１９】
図１７Ｂはボリューム情報管理部１６１２にボリュームごとに管理されているボリューム情報１６１３を詳細に示したものである。ボリューム情報１６１３は、リモートボリューム情報１７１０（メインサイトの正ボリュームに対して設定されているリモートサイトの副ボリュームの情報）と、ボリュームを管理するための様々な情報（例えば、ボリュームの空き容量やボリュームの障害情報）を含むその他ボリューム情報１７１１から構成される。
【０１２０】
図１８はメインサイトのディスク制御装置２０Ａにおけるデータコピー制御コンポーネント１１４Ａのデータコピー制御部１６０１の制御の流れを示したフローチャートである。
【０１２１】
データコピー制御部１６０１は、入出力制御部１１３Ａからコマンドを受け取ったら（ステップ１８０１）、受け取ったコマンドに更新データグループＩＤが付与されているかを判定する（ステップ１８０２）。更新データグループＩＤが付与されている場合には、更新データグループ解除指示コマンドでないかを判定し（ステップ１８０３）、更新データグループ解除指示コマンドでない場合には入出力制御コンポーネント１１３Ａの入出力制御部１６１１から受け取った更新入出力コマンド群を更新データ情報１６０３に変換する（ステップ１８０４）。そして、ディスク制御装置２０Ａで管理している更新データシーケンス番号１７０１を付与し（ステップ１８０５）、ボリューム情報管理部１６１２からリモートボリューム情報１７１０を取得し（ステップ１７０６）、入出力受付部１１２Ａを通してリモートサイトのディスク制御装置２０Ｂに送付する（ステップ１７０７）。
【０１２２】
図１９はリモートサイトのディスク制御装置２０Ｂにおけるデータコピー制御コンポーネント１１４Ｂのデータコピー制御部１６０１の処理を示したフローチャートである。
【０１２３】
データコピー制御部１６０１は、入出力制御部１６１１からコマンドを受け取ったら（ステップ１９０１）、受け取ったコマンドに更新データグループＩＤが付与されているかを判定する（ステップ１９０２）。更新データグループＩＤが付与されている場合には、更新データグループ解除指示コマンドかを判定し（ステップ１９０３）、更新データグループ解除指示コマンドではない場合には、データバッファ部１６０２に更新データ情報１６０３を蓄積する（ステップ１９０４）。更新データグループ解除指示コマンドの場合にはデータバッファ部１６０２に蓄積された更新データ情報１６０３を更新データシーケンス番号順にソートし（ステップ１９０５）、データバッファ部１６０２から更新データグループ解除指示コマンドと同じ更新データグループＩＤを持ち、かつ更新データシーケンス番号が更新データグループ解除指示コマンドに付与されたものより小さい更新データ情報を検索し（ステップ１９０６）、条件に一致した更新データ情報１６０３を入出力制御部１６１１に送付し、データ更新を実行する（ステップ１９０７）。ステップ１９０２において、更新データグループＩＤが付与されていない場合には、更新データ情報を入出力制御部に送付し、データ更新を実行する（ステップ１９０８）。ステップ１９０２において、更新データグループＩＤが付与されてい場合には、データコピー制御部１６０１は、更新データグループＩＤを付与せずに更新データ情報だけを入力制御部１６１１に送信して、データ更新を実行する（ステップ１９０８）。
【０１２４】
図２０はメインサイトのディスク制御装置２０Ａにおける入出力制御コンポーネント１１３Ａの入出力制御部１６１１の制御の流れを示したフローチャートである。
【０１２５】
入出力制御部１６１１からのコマンドの受け付け・分析を行い（ステップ２００１）、受け取ったコマンドが更新データグループ解除指示コマンドかを判定する（ステップ２００２）。更新データグループ解除指示コマンドの場合はデータコピー制御部１６０１へ更新データコピー解除指示コマンドを転送する（ステップ２００３）。
【０１２６】
更新データグループ解除指示コマンドではない場合は、ボリューム情報１６１３から入出力対象ボリュームへの入出力実行可否を判断し（ステップ２００４）、入出力実行可否を判定する（ステップ２００５）。判定の結果入出力が実行不可だった場合には入出力の実行をエラーとし計算機にエラー終了を報告する（ステップ２００６）。判定の結果入出力が実行可能であった場合には、入出力対象ボリュームへ入出力を実行する（ステップ２００７）。そして、入出力の実行が完了するまで待ち、入出力が正常終了したかを判定する（ステップ２００８）。入出力が異常終了した場合には、入出力の実行をエラーとし計算機へエラー終了を報告する（ステップ２００６）。入出力が正常終了した場合には、計算機へ入出力の正常終了を報告する（ステップ２００９）。そして、正常終了した要求がデータ更新要求かを判定し（ステップ２０１０）、データ更新要求の場合にはデータコピー制御部１６０１へデータ更新要求を転送する（ステップ２０１１）。
【０１２７】
図２１はリモートサイトのディスク制御装置２０Ｂにおける入出力制御コンポーネント１１３Ｂの入出力制御部１６１１の制御の流れを示したフローチャートである。
【０１２８】
リモートサイトの入出力受付部１１２Ｂもしくはデータコピー制御部１６０１から更新データ情報・更新データグループ終了指示コマンドの受け付け・分析を行い（ステップ２１０１）、要求・コマンドがデータコピー制御部１６０１からのデータ更新要求かを判定し（ステップ２１０２）、データコピー制御部１６０１からの要求でない場合は、コマンド／更新データ情報をデータコピー制御部１６０１へ転送する（ステップ２１０４）。データコピー制御部１６０１からのデータ更新要求の場合には、ボリューム情報１６１３からデータ更新対象ボリュームの入出力実行可否を判断し（ステップ２１０４、２１０５）、データ更新が可能な場合は対象ボリュームへのデータ更新を実行する（ステップ２１０６）。データ更新が不可能な場合はデータ更新要求をエラーとする（ステップ２１０７）。
【０１２９】
図２２は、メインサイトのディスク制御装置２０Ａの処理の概略を示したフローチャートである。
【０１３０】
入出力制御部１６１１は、入出力インタフェース１１１および入出力受付部１１２Ａを介して受け付けた入出力要求の分析を行い（ステップ２２１０）、要求種別の判定を行う（ステップ２２２０、２２３０）。参照入出力要求の場合には正ボリューム１２１からデータを読み出し、入出力受付部１１２Ａと入出力インタフェース１１１を介して計算機１０Ａにデータを転送する（ステップ２２２５）。また、複数の正ボリュームに対する更新入出力要求の場合には、正ボリューム１２１Ａ，１２２Ａに対してデータの書き込みを行う（ステップ２２５０）。そして、更新入出力要求もしくは更新データグループの解除指示の場合には、データコピー制御部１６０１に要求を渡す（ステップ２２６０）。データコピー制御部１６０１は、受け取った更新入出力要求を入出力受付部１１２Ａおよび転送ポート１１５Ａを介してディスク制御装置２０Ｂに転送する（ステップ２２７０）。
【０１３１】
図２３は、リモートサイトのディスク制御装置２０Ｂの処理の概略を示したフローチャートである。
【０１３２】
入出力制御部１６１１は、入出力インタフェース１１１および入出力受付部１７２を介して受け付けた更新入出力要求もしくは更新データグループ解除指示をデータコピー制御部１６０１に渡す（ステップ２３１０）。データコピー制御部１６０１は渡された情報が更新入出力要求かを判定し（ステップ２３２０）、更新入出力要求の場合には要求に更新データグループＩＤが付与されているかを判定する（ステップ２３３０）。情報が付与されている場合にはデータバッファ部１５０２に更新入出力要求を蓄積し（ステップ２３４０）、付与されていない場合には入出力制御部１６１１に更新入出力要求を送付し、副ボリュームへの反映を行う（ステップ２３５０）。更新データグループの解除指示の場合には、受け付けた時点で同じ更新データグループＩＤを持つ更新要求は完了を意味する。そのため、データバッファ部１６０２から解除指示された更新データグループの更新入出力要求を検索し、入出力制御部１６１１に解除指示された更新データグループの更新入出力要求を送付し、副ボリュームへの反映を一斉に行う。（ステップ２６６０）。尚、解除要求が到着するまで更新データグループＩＤ情報が付与された更新データは反映しない。
【０１３３】
以上のように本発明の第１の実施形態では、メインサイトにおいて、ホスト計算機１０Ａで動作するプロセスからディスク制御装置２０Ａのディスク装置３０Ａの複数の正ボリューム１２１Ａ，１２２Ａに更新の入出力を行う場合に、その更新要求に対して同じ更新データグループに属する識別情報（更新データグループＩＤ）を付与することによって、複数のボリュームに対する更新要求でも一つの更新グループとして扱い、ホスト計算機１０Ａから見て有効な有効な複数ボリュームの更新要求を一つの更新グループとして設定する。リモートサイトのディスク制御装置２０Ｂにおいては、この更新データグループＩＤが同一の要求データを一時的に蓄積して、同一更新データグループＩＤ持つ情報の中で、グループの解除要求が到着するまで更新情報を蓄積したまま副ボリュームへは反映（複製）せず、グループ解除要求が到着した時点で、更新データグループＩＤが同一の要求を一括して副ボリューム１２１Ｂ、１２２Ｂに格納する。このようにすることでホスト計算機１０Ａから見てメインホストで行われた複数ボリュームの更新状態と同様の更新状態の整合性が保証できるため、メインサイトに障害が発生した場合にもリモートサイトの副ボリュームに格納されたデータはプロセス単位に更新状態の同期が取れ、データの回復において不整合が発生しなくなる。また、障害によるデータ障害やボリューム障害を最小限に留めることが可能となる。
【実施例２】
【０１３４】
第２の実施形態における、リモートコピーシステムの構成図の一例は実施例１と同じであり図１で示される。第１の実施形態との違いは、更新グループグループＩＤ制御規則ファイル１４０に定義する対象名称の違いによる制御方法である。
【０１３５】
図２４は、更新データグループＩＤ制御規則ファイル１４０の定義例を説明したものである。
【０１３６】
更新データグループＩＤ制御規則ファイル１４０は、更新データグループＩＤ登録契機の定義２４０１、更新データグループＩＤ解除契機の定義２４０２、更新データグループＩＤ情報の付与を対象とするプロセスを特定できる対象名称２４０３で構成される。実際の定義内容はシステムが認識できる情報コード、あるいは名称を使って定義する。
【０１３７】
実施例１では、オンラインのアドレス空間名称を指定して制御する場合の実施例であった。オンラインのアドレス空間において、トランザクションの起動や終了時のプロセスをプロセス管理プログラム１０５のプロセス状態変化受付部２００が受ける。その後、プロセス状態制御部２２０がトランザクション起動時のプロセスの変化を制御して、ユーザが定義する更新データグループＩＤ制御情報定義ファイル１４０の規則に従い、更新データグループＩＤ情報の登録や削除を行うものである。オンラインのトランザクションの特性により、プロセスの変化で更新データグループＩＤ情報の登録、削除が外部定義により制御できる。
【０１３８】
実施例２では、にジョブ名称を指定した定義方法である。
【０１３９】
システムの運用では、あらかじめ決められた定型的な作業があり、実行するジョブ名称も決められている場合がある。例えば、定型的なバックアップ作業や、回復作業、複製作業など顧客の資産で保持しているジョブを定型的に実行する場合がある。そのような場合、ジョブ名称で指定されたプロセスからの入出力要求からの更新に対して更新データグループＩＤ情報の登録、解除も制御できるのが第２の実施形態である。  
実施例２の場合、更新データグループＩＤ情報制御規則ファイルの対象名称２４０３にジョブ名称を指定して運用で更新データグループＩＤ情報の付与を制御できるもので、狭義の範囲で細かな制御が可能である。ジョブ名称で指定されたジョブが実行された場合にプロセス状態変化受付部２００がプロセスの生成要求を受け、プロセスを生成した際に、更新データグループＩＤ情報を登録する。そのプロセスからの入出力要求に対してはプロセスの生成時に登録した更新データグループＩＤ情報が付与され、ジョブからの入出力が全て終わり、ジョブが終了することによるプロセスの消滅時に、更新データグループのＩＤ解除契機２４０２の定義によって更新データグループＩＤの解除指示をするため、ジョブの実行単位で複数ボリュームへの更新がある場合に更新状態の整合性を保証できる。
【０１４０】
従来技術のリモートコピー技術もしくは実施例１と同様である。
【図面の簡単な説明】
【０１４１】
【図１】計算機システムの構成ブロック図である。
【図２】計算機システムの機能ブロック図である。
【図３】プロセス管理と入出力実行管理との機能関連図である。
【図４Ａ】複数ボリュームに配置されたデータベースファイルのランダムアクセス例を説明したものである。
【図４Ｂ】複数ボリュームに配置されたデータベースファイルのランダムアクセス例を説明したものである。
【図５Ａ】プロセス管理情報（アドレス空間管理情報）の構造例の説明である。
【図５Ｂ】プロセス管理情報（プロセス管理情報）の構造例の説明である。
【図６Ａ】オンラインシステムのアプリケーション制御を示す概略図である。
【図６Ｂ】プロセスＵ１のプロセス状態遷移とグルーピング範囲を示した状態遷移図である。
【図７Ａ】プロセス状態変化受付部の処理の詳細を示すフローチャートである。
【図７Ｂ】プロセス状態制御部の処理の詳細を示すフローチャートである。
【図８】プロセス状態通知部の処理の詳細を示すフローチャートである。
【図９】更新データグループＩＤ制御規則ファイルの構成例である。
【図１０】更新データグループＩＤ情報の説明図である。
【図１１】更新データグループ制御部の処理の詳細を示すフローチャートである。
【図１２Ａ】入出力要求情報の一例を示したものである。
【図１２Ｂ】入出力コマンドの一例を示したものである。
【図１２Ｃ】制御用コマンドの例を示したものである。
【図１２Ｄ】制御用コマンドの制御情報例を示したものである。
【図１３】プロセス状態制御部から出力する状態遷移情報の一例を示したものである。
【図１４】入出力実行管理プログラムにおける更新データ制御部のリターン情報である。
【図１５】入出力実行制御部の処理の詳細を示すフローチャートである。
【図１６】入出力受付部、入出力制御コンポーネント及びデータコピー制御コンポーネントの説明図である。
【図１７Ａ】更新データ情報の説明図である。
【図１７Ｂ】ボリューム情報の説明図である。
【図１８】メインサイトのディスク制御装置におけるデータコピー制御部の処理のフローチャートである。
【図１９】リモートサイトのディスク制御装置におけるデータコピー制御部の処理のフローチャートである。
【図２０】メインサイトのディスク制御装置における入出力制御部の処理のフローチャートである。
【図２１】リモートサイトのディスク制御装置における入出力制御部の処理のフローチャートである。
【図２２】メインサイトのディスク制御装置における処理の概略フローチャートである。
【図２３】リモートサイトのディスク制御装置における処理の概略フローチャートである。
【図２４】更新データグループＩＤ制御規則ファイルの定義例を示したものである。
【符号の説明】
【０１４２】
１０  ホスト計算機  １１  ＣＰＵ
１２  メモリ
１３  入出力インタフェース
２０  ディスク制御装置
２１  入出力インタフェース
２２  ＣＰＵ
２３  メモリ
２４  ディスクインタフェース
３０  ディスク装置
３１  時期ディスク
４０  ストレージサブシステム
【図１】
0004830562.tif 000002
【図２】
0004830562.tif 000003
【図３】
0004830562.tif 000004
【図４Ａ】
0004830562.tif 000005
【図４Ｂ】
0004830562.tif 000006
【図５Ａ】
0004830562.tif 000007
【図５Ｂ】
0004830562.tif 000008
【図６Ａ】
0004830562.tif 000009
【図６Ｂ】
0004830562.tif 000010
【図７Ａ】
0004830562.tif 000011
【図７Ｂ】
0004830562.tif 000012
【図８】
0004830562.tif 000013
【図９】
0004830562.tif 000014
【図１０】
0004830562.tif 000015
【図１１】
0004830562.tif 000016
【図１２Ａ】
0004830562.tif 000017
【図１２Ｂ】
0004830562.tif 000018
【図１２Ｃ】
0004830562.tif 000019
【図１２Ｄ】
0004830562.tif 000020
【図１３】
0004830562.tif 000021
【図１４】
0004830562.tif 000022
【図１５】
0004830562.tif 000023
【図１６】
0004830562.tif 000024
【図１７Ａ】
0004830562.tif 000025
【図１７Ｂ】
0004830562.tif 000026
【図１８】
0004830562.tif 000027
【図１９】
0004830562.tif 000028
【図２０】
0004830562.tif 000029
【図２１】
0004830562.tif 000030
【図２２】
0004830562.tif 000031
【図２３】
0004830562.tif 000032
【図２４】
0004830562.tif 000033