(57)【要約】【課題】  複数のストレージ装置における同一時刻の動作結果を信頼性高く取得し得る情報処理装置及びその制御方法を提案する。【解決手段】  複数のストレージ装置と接続された情報処理装置及びその制御方法において、複数のストレージ装置のそれぞれについて、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を検出し、複数のストレージ装置に対して、任意の未来時刻に、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を加算した時刻を所定動作の実行時刻として設定し、未来時刻の経過後に、複数のストレージ装置からそれぞれ所定動作の実行結果を回収するようにした。【選択図】        図１２
2011134152.tif 000002
【特許請求の範囲】
【請求項１】
複数のストレージ装置と接続された情報処理装置において、
前記複数のストレージ装置のそれぞれについて、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を検出する時間差検出部と、
前記複数のストレージ装置に対して、任意の未来時刻に、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を加算した時刻を所定動作の実行時刻として設定する動作実行設定部と、
前記未来時刻の経過後に、前記複数のストレージ装置からそれぞれ前記所定動作の実行結果を回収する実行結果回収部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記所定動作は、
前記実行時刻における前記ストレージ装置の稼働情報を取得する動作であり、
前記実行結果回収部は、
前記複数のストレージ装置からそれぞれ前記所定動作の実行結果として当該ストレージ装置の前記稼働情報を回収し、回収した前記ストレージ装置ごとの前記稼働情報及び又は当該稼働情報に基づき得られる情報を表示する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記複数のストレージ装置は、非同期リモートコピーを実行し、
前記稼働情報は、
前記非同期リモートコピーを実行している正側のストレージ装置においてはデータの最終更新時刻の取得であり、副側のストレージ装置においては正側のストレージ装置から転送される更新データの最終タイムスタンプ時刻の取得である
ことを特徴とする請求項１に記載の情報処理装置。
【請求項４】
前記実行結果回収部は、
回収した前記ストレージ装置ごとの前記稼働情報に基づいて、正側のストレージ装置におけるデータの最終更新時刻と、副側のストレージ装置における更新データの最終タイムスタンプ時刻との差分を、前記非同期リモートコピーにおける正側及び副側の遅延時間として表示する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項５】
前記時間差検出部は、
ストレージ装置に対して当該ストレージ装置における内部時刻を取得し応答すべきコマンドを２回送信し、各前記コマンドの送信によりそれぞれ得られた当該コマンドを受信した時点の前記ストレージ装置の内部時刻と、各前記コマンドをそれぞれ前記ストレージ装置に送信してから当該コマンドの応答を受信するまでの時間間隔とに基づいて、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を検出する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項６】
複数のストレージ装置と接続された情報処理装置の制御方法において、
前記複数のストレージ装置のそれぞれについて、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を検出する第１のステップと、
前記複数のストレージ装置に対して、任意の未来時刻に、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を加算した時刻を所定動作の実行時刻として設定する第２のステップと、
前記未来時刻の経過後に、前記複数のストレージ装置からそれぞれ前記所定動作の実行結果を回収する第３のステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項７】
前記所定動作は、
前記実行時刻における前記ストレージ装置の稼働情報を取得する動作であり、
前記第３のステップでは、
前記複数のストレージ装置からそれぞれ前記所定動作の実行結果として当該ストレージ装置の前記稼働情報を回収し、回収した前記ストレージ装置ごとの前記稼働情報及び又は当該稼働情報に基づき得られる情報を表示する
ことを特徴とする請求項６に記載の情報処理装置の制御方法。
【請求項８】
前記複数のストレージ装置は、非同期リモートコピーを実行し、
前記稼働情報は、
前記非同期リモートコピーを実行している正側のストレージ装置においてはデータの最終更新時刻の取得であり、副側のストレージ装置においては正側のストレージ装置から転送される更新データの最終タイムスタンプ時刻の取得である
ことを特徴とする請求項６に記載の情報処理装置の制御方法。
【請求項９】
前記第３のステップでは、
回収した前記ストレージ装置ごとの前記稼働情報に基づいて、正側のストレージ装置におけるデータの最終更新時刻と、副側のストレージ装置における更新データの最終タイムスタンプ時刻との差分を、前記非同期リモートコピーにおける正側及び副側の遅延時間として表示する
ことを特徴とする請求項６に記載の情報処理装置の制御方法。
【請求項１０】
前記第１のステップでは、
ストレージ装置に対して当該ストレージ装置における内部時刻を取得し応答すべきコマンドを２回送信し、各前記コマンドの送信によりそれぞれ得られた当該コマンドを受信した時点の前記ストレージ装置の内部時刻と、各前記コマンドをそれぞれ前記ストレージ装置に送信してから当該コマンドの応答を受信するまでの時間間隔とに基づいて、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を検出する
ことを特徴とする請求項６に記載の情報処理装置の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置及びその制御方法に関し、特にリモートコピーシステムに適用して好適なものである。
【背景技術】
【０００２】
従来、地震、火災、洪水等の天災やテロなどに対するデータ保護方法として、100〜数100〔km〕程度分離したローカルサイト及びリモートサイトにそれぞれ設置した正側及び副側のストレージ装置間でデータを二重化して保有する、いわゆるリモートコピー機能が搭載された計算機システム（以下、これをリモートコピーシステムと呼ぶ）が実用化されている。
【０００３】
リモートコピーは、同期型と非同期型の２種類に大別される。このうち、同期型は、正側のストレージ装置（以下、これを正ストレージ装置と呼ぶ）及び副側のストレージ装置（以下、これを副ストレージ装置と呼ぶ）の両方にデータを書き込んだことを条件として、ホスト装置にライト完了を報告するようにしてリモートコピーが行われ、非同期型は、正ストレージ装置にデータが書き込まれた段階で、ホスト装置にライト完了を報告し、適当な時期に更新時刻を示すタイムスタンプ等の属性情報を付加してそのデータを副ストレージ装置に転送するようにしてリモートコピーが行われる。
【０００４】
なお、下記特許文献１には、リモートコピー技術に関連して、リモートコピー先において、リモートコピー元の各第１のグループにそれぞれ対応させて、それぞれ１又は複数の第２のボリュームを含む複数の第２のグループを設定すると共に、設定した第２のグループごとに、ジャーナルを定期的にかつ作成された順番で第１のストレージ装置から取得し、取得したジャーナルを対応する第２のグループ内の対応する第２のボリュームに反映する一方、第２のボリュームに未反映の状態で滞留しているジャーナルに含まれる第２のグループごとの最新のタイムスタンプを比較して、最新及び最古のタイムスタンプの時間差を検出し、時間差が予め設定された閾値を超えた場合に、タイムスタンプが最古の第２のグループについてのジャーナルを、他の第２のグループについてのジャーナルに優先して取得することが開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００９−１２３０５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ところで、リモートコピーシステムのホスト装置に搭載される機能として、正ストレージ装置及び副ストレージ装置からその稼働状態を表す稼働情報をそれぞれ収集し、収集した稼働情報自体や当該稼働情報に基づいて算出されたリモートコピーシステム全体としての稼働情報を表示する機能（以下、これを稼働情報表示機能と呼ぶ）がある。
【０００７】
この場合、かかる稼働情報表示機能によりユーザに提示される稼働情報の１つとして、非同期リモートコピーの正側に対する副側の遅延時間がある。この遅延時間は、非同期リモートコピーのペアに設定された正ストレージ装置におけるデータの最終更新時刻と、副ストレージ装置における転送データの最終タイムスタンプ時刻との差分として算出される。
【０００８】
そして、従来のリモートコピーシステムでは、ホスト装置から正ストレージ装置及び副ストレージ装置に状態取得コマンドを発行し、この状態取得コマンドを受信した正ストレージ装置及び副ストレージ装置が、それぞれ状態取得コマンドを受信した時点におけるデータの最終更新時刻や転送データの最終タイムスタンプ時刻をホスト装置に通知することにより、ホスト装置がこれらの情報に基づいてかかる遅延時間を算出して表示していた。
【０００９】
しかしながら、従来、状態取得コマンドの発行は、ホスト装置からの伝送距離や通信岐路の違いを考慮せずに行われていた。この場合において、例えばホスト装置から正ストレージ装置及び副ストレージ装置に同時に状態取得コマンドを発行したとしても、その状態取得コマンドが正ストレージ装置に到達する時刻と、その状態取得コマンドが副ストレージ装置に到達する時刻との間には、ホスト装置からの伝送距離や、通信経路の違いに応じた時間差が生じる。
【００１０】
従って、上述のような従来の手法によると、同一時点での正ストレージ装置におけるデータの最終更新時刻と、副ストレージ装置における転送データの最終タイムスタンプ時刻とを正確に収集できず、信頼性の高い遅延時間をユーザに提供し難い問題があった。
【００１１】
また個々のストレージ装置が保持する内部時間（以下、これをローカルタイムと呼ぶ）には幾らかのずれがあり、例え状態取得コマンドが同一のタイミングで正ストレージ装置及び副ストレージ装置に到達したとしても、正ストレージ装置におけるデータの最終更新時刻と、副ストレージ装置における転送データの最終タイムスタンプ時刻とを同一のローカルタイムにおける稼働情報として取得することができず、信憑性に欠ける問題があった。
【００１２】
以上のような問題は、正ストレージ装置や副ストレージ装置からデータの最終更新時刻又は転送データの最終タイムスタンプ時刻を取得する場合に限らず、同一時点における正ストレージ装置及び副ストレージ装置の動作結果を回収する必要がある場合に生じる問題である。
【００１３】
本発明は以上の点を考慮してなされたもので、複数のストレージ装置における同一時刻の動作結果を信頼性高く取得し得る情報処理装置及びその制御方法を提案しようとするものである。
【課題を解決するための手段】
【００１４】
かかる課題を解決するため本発明においては、複数のストレージ装置と接続された情報処理装置において、前記複数のストレージ装置のそれぞれについて、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を検出する時間差検出部と、前記複数のストレージ装置に対して、任意の未来時刻に、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を加算した時刻を所定動作の実行時刻として設定する動作実行設定部と、前記未来時刻の経過後に、前記複数のストレージ装置からそれぞれ前記所定動作の実行結果を回収する実行結果回収部とを備えることを特徴とする。
【００１５】
また本発明においては、複数のストレージ装置と接続された情報処理装置の制御方法において、前記複数のストレージ装置のそれぞれについて、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を検出する第１のステップと、前記複数のストレージ装置に対して、任意の未来時刻に、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を加算した時刻を所定動作の実行時刻として設定する第２のステップと、前記未来時刻の経過後に、前記複数のストレージ装置からそれぞれ前記所定動作の実行結果を回収する第３のステップとを備えることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、複数のストレージ装置における同一時刻の動作結果を信頼性高く取得し得る情報処理装置及びその制御方法を実現できる。
【図面の簡単な説明】
【００１７】
【図１】本実施の形態によるリモートコピーシステムの全体構成を概略的に示すブロック図である。
【図２】ホスト装置のメモリに格納された制御プログラム及び制御データの説明に供する概念図である。
【図３】ストレージ装置のメモリに格納された制御プログラム及び制御データの説明に供する概念図である。
【図４】時間差管理テーブルの構成を示す概念図である。
【図５】ローカルタイム指定コマンド管理テーブルの構成を示す概念図である。
【図６】本実施の形態による稼働情報収集・表示機能の説明に供する概念図である。
【図７】本実施の形態による稼働情報収集・表示機能の説明に供する概念図である。
【図８】本実施の形態による稼働情報収集・表示機能の説明に供する概念図である。
【図９】ローカルタイム取得コマンドの説明に供する概念図である。
【図１０】ローカルタイム指定コマンドの説明に供する概念図である。
【図１１】戻り値の説明に供する概念図である。
【図１２】稼働情報収集・表示機能に関するホスト装置のＣＰＵの一連の処理の流れを示すフローチャートである。
【図１３】初期設定処理の処理手順を示すフローチャートである。
【図１４Ａ】ローカルタイム取得処理の処理手順を示すフローチャートである。
【図１４Ｂ】ローカルタイム取得処理の処理手順を示すフローチャートである。
【図１５】時間差計算処理の処理手順を示すフローチャートである。
【図１６】実行動作予約処理の処理手順を示すフローチャートである。
【図１７】結果回収・表示処理の処理手順を示すフローチャートである。
【符号の説明】
【００１８】
１……リモートコピーシステム、２……ホスト装置、３Ａ……正ストレージ装置，３Ｂ……副ストレージ装置、１０，２２Ａ，２２Ｂ……ＣＰＵ、１１，２０……物理ディスク、２３Ａ，２３Ｂ……メモリ、３０……リモートコピー管理プログラム、３１……時間差管理テーブル、３２……リモートコピー制御プログラム、３３……ローカルタイム指定コマンド管理テーブル、４０……ローカルタイム取得コマンド、４１……ローカルタイム指定コマンド、４２……戻り値。
【発明を実施するための最良の形態】
【００１９】
以下図面について、本発明の一実施の形態を詳述する。
【００２０】
（１）本実施の形態によるリモートコピーシステムの構成
図１において、１は全体として本実施の形態によるリモートコピーシステムを示す。このリモートコピーシステム１は、ローカルサイトに設置されたホスト装置２と、ローカルサイトに設置された１又は複数の正ストレージ装置３（３Ａ）と、リモートサイトに設置された１又は複数の副ストレージ装置３（３Ｂ）とから構成されている。なお、以下においては、正ストレージ装置３Ａと副ストレージ装置３Ｂとを特に区別する必要がない場合には、これら正ストレージ装置３Ａ及び副ストレージ装置３Ｂをまとめてストレージ装置３と呼ぶ。
【００２１】
ホスト装置２は、ＣＰＵ（Central Processing Unit）１０及びメモリ１１等の情報処理資源を備えたコンピュータ装置であり、例えばパーソナルコンピュータや、ワークステーション、メインフレームなどから構成される。このホスト装置２は、第１のネットワーク５を介して各ストレージ装置３とそれぞれ接続されており、この第１のネットワーク５を介して正ストレージ装置３Ａにデータの読み書きを行うほか、各ストレージ装置３から必要な情報を収集し得るようになされている。
【００２２】
ストレージ装置３は、それぞれ複数の物理ディスク２０と、これら物理ディスク２０に対するデータの読み書きを制御するコントローラ２１とから構成されている。
【００２３】
物理ディスク２０は、例えばＳＣＳＩ（Small Computer System Interface）ディスク等の高価なディスクや、ＳＡＴＡ（Serial AT Attachment）ディスクや光ディスク等の安価なディスクなどから構成される。
【００２４】
各物理ディスク２０は、コントローラ２１によりＲＡＩＤ（Redundant Arrays of Independent Disks）方式で運用される。１又は複数の物理ディスク２０により提供される物理的な記憶領域上に、１又は複数の論理的なボリューム（以下、これを論理ボリュームと呼ぶ）が設定される。そしてデータは、この論理ボリューム内に所定大きさのブロック（以下、これを論理ブロックと呼ぶ）又はファイルを単位として記憶される。
【００２５】
各論理ボリュームには、それぞれ固有の識別子（以下、これをＬＵＮ（Logical Unit number）と呼ぶ）が付与される。本実施の形態の場合、論理ボリュームに対するデータの入出力は、このＬＵＮと、各論理ブロックにそれぞれ付与されるその論理ブロックに固有の番号（ＬＢＡ：Logical Block Address）とを組み合わせたものをアドレスとして、当該アドレスを指定して行われる。
【００２６】
コントローラ２１は、ＣＰＵ２２及びメモリ２３を備えて構成される。ＣＰＵ２２は、ストレージ装置３全体の動作制御を司るプロセッサである。またメモリ２３には、各種制御プログラムが格納される。メモリ２３に格納された各種制御プログラムをＣＰＵ２２が実行することにより、ストレージ装置３全体としての各種処理が行われる。
【００２７】
なお本実施の形態の場合、正ストレージ装置３Ａ及び副ストレージ装置３Ｂには、それぞれ他方の副ストレージ装置３Ａ又は正ストレージ装置３Ａとの間で非同期リモートコピーを行い得る非同期リモートコピー機能が搭載されている。
【００２８】
そして正ストレージ装置３Ａは、当該正ストレージ装置３Ａ内の論理ボリュームに対してホスト装置２からデータが書き込まれたときに、その論理ボリュームに対するデータの書き込みとは非同期に、当該データを、更新時刻を表すタイムスタンプやそのデータの書込み位置などの属性情報を付加して副ストレージ装置３Ｂに転送し、副ストレージ装置３Ｂにおいて、そのデータを当該副ストレージ装置３Ｂ内の対応する論理ボリュームの対応する位置に書き込むようになされている。
【００２９】
（２）ホスト装置における稼働情報表示機能
次に、ホスト装置２に搭載された稼働情報表示機能について説明する。本リモートコピーシステム１の場合、ホスト装置２には、同一時点における正ストレージ装置３Ａ及び副ストレージ装置３Ｂの稼働情報を取得し、取得したこれらの稼働情報や当該稼働情報に基づいて算出したリモートコピーシステム１全体としての稼働情報を表示する稼働情報表示機能が搭載されている。
【００３０】
実際上、ホスト装置２は、自己の内部時間（以下、これをホストタイムと呼ぶ）と、各ストレージ装置３の内部時間（以下、これをローカルタイムと呼ぶ）との間の時間差を取得し、取得したこれらの時間差に基づいて、同一時点における正ストレージ装置３Ａ及び副ストレージ装置３Ｂの稼働情報とを取得できるように、各ストレージ装置３Ｂに対してそれぞれ異なるローカルタイムと、そのローカルタイムに実行すべき動作（例えばデータの最終更新時刻又は転送データの最終タイムスタンプ時刻の取得）とを設定する。
【００３１】
そしてホスト装置２は、その後、かかる動作命令に従って正ストレージ装置３Ａ及び副ストレージ装置３Ｂがそれぞれ取得した稼働情報と回収し、回収したこれらの稼働情報や、当該稼働情報に基づいて計算されたリモートコピーシステム全体としての稼働情報（例えば非同期リモートコピーにおける正側に対する副側の遅延時間）を表示する。
【００３２】
このような稼働情報表示機能を実現するための手段として、ホスト装置２のメモリ１１には、図２に示すように、正ストレージ装置３Ａ及び副ストレージ装置３Ｂ間において実行される非同期リモートコピーを制御するためのリモートコピー管理プログラム３０に加えて、時間差管理テーブル３１が格納され、各ストレージ装置３のメモリ２３には、それぞれ図３に示すように、正ストレージ装置３Ａ及び副ストレージ装置３Ｂ間において非同期リモートコピーを実行するための制御プログラムであるリモートコピー制御プログラム３２に加えて、ローカルタイム指定コマンド管理テーブル３３が格納されている。
【００３３】
時間差管理テーブル３１は、ホストタイムと、ホスト装置２が管理している各ストレージ装置３のローカルタイムとの間の時間差を管理するためのテーブルであり、図４に示すように、エントリ番号欄３１Ａ、ストレージ装置製造番号欄３１Ｂ、ローカル−ホスト間時間差欄３１Ｃ、第１のローカルタイム欄３１Ｄ、第２のローカルタイム欄３１Ｅ、第１のＩ／Ｏ実行時間欄３１Ｆ及び第２のＩ／Ｏ実行時間欄３１Ｇから構成される。
【００３４】
そしてエントリ番号欄３１Ａには、そのエントリ（行）に付与されたエントリ番号が格納される。またストレージ装置製造番号欄３１Ｂには、そのエントリに対応するストレージ装置３の製造番号が格納され、ローカル−ホスト間時間差欄３１Ｃには、そのストレージ装置３のローカルタイムとホストタイムとの間の時間差が格納される。
【００３５】
さらに第１のローカルタイム欄３１Ｄには、後述する１回目のローカルタイムの取得処理により得られた対応するストレージ装置３のローカルタイムが格納され、第２のローカルタイム欄３１Ｅには、２回目のローカルタイムの取得処理により得られたそのストレージ装置３のローカルタイムが格納される。
【００３６】
さらに第１のＩ／Ｏ実行時間欄３１Ｆには、かかる１回目のローカルタイムの取得処理に要した時間が格納され、第２のＩ／Ｏ実行時間欄３１Ｇには、２回目のローカルタイムの取得処理に要した時間が格納される。
【００３７】
一方、ローカルタイム指定コマンド管理テーブル３３は、ホスト装置２から発行されたコマンドをそのストレージ装置３において管理するためのテーブルであり、実行状態欄３３Ａ、動作実行ローカルタイム欄３３Ｂ、サブコマンド欄３３Ｃ、動作指示内容欄３３Ｄ及び結果格納バッファ欄３３Ｅから構成される。
【００３８】
そして実行状態欄３３Ａには、ホスト装置２から与えられたコマンドに応じた動作の現在の実行状態が格納される。なお、この実行状態としては、コマンドに応じた動作を実行中であることを表す「実行中」と、その動作が完了したことを表す「完了」と、その動作の完了後であって、その動作により得られた情報が未だホスト装置２により回収が行われていないことを表す「要求なし」とがある。
【００３９】
また動作実行ローカルタイム欄３３Ｂには、予めホスト装置２により指定された、かかる動作を実行すべきローカルタイム（以下、これを動作実行ローカルタイムと呼ぶ）が格納される。この動作実行ローカルタイムは、後述のようにそのストレージ装置３のローカルタイム及びホストタイム間の時間差を考慮して、所望する複数のストレージ装置３に所望する動作を同一時刻に一斉に実行させるために決定されたローカルタイムである。従って、この動作実行ローカルタイムは、ストレージ装置３ごとに異なる値となる場合が多い。
【００４０】
さらにサブコマンド欄３３Ｃには、ホスト装置２から与えられたコマンドに含まれるサブコマンドが格納される。このサブコマンドは、そのストレージ装置３に実行させるべき動作（例えばデータの最終更新時刻又は転送データの最終タイムスタンプ時刻の取得）を表す情報である。また動作指示内容欄３３Ｄには、サブコマンド欄３３Ｃに格納されている動作を実行する際に必要となる各種のパラメータが格納される。
【００４１】
さらに結果格納バッファ欄３３Ｅには、サブコマンド欄３３Ｃに格納された動作を実行した結果として得られた情報（データの最終更新時刻又は更新データの最終タイムスタンプ時刻）が格納される。
【００４２】
（３）稼働情報表示機能に関する各種処理の概要
次に、稼働情報表示機能に関連してリモートコピーシステム１において実行される各種処理の概要について図６〜図１１を参照して説明する。なお図６は、ローカルサイトに正ストレージ装置３Ａが１台のみ設置され、リモートサイトに副ストレージ装置３Ｂが１台のみ設置された場合の一例である。
【００４３】
ホスト装置２は、最初に、現在のホストタイムHt(0)を取得し、この後、各ストレージ装置３からの１回目のローカルタイムの取得処理を実行する。
【００４４】
具体的にホスト装置２は、図６に示すように、まず、時間差管理テーブル３１（図４）に登録されたストレージ装置３のうち、最もエントリ番号が小さいエントリに対応するストレージ装置３に対して図９に示すようなローカルタイム取得コマンド４０を発行する。
【００４５】
このローカルタイム取得コマンド４０は、ホスト装置２がストレージ装置３に対してそのストレージ装置３の現在のローカルタイムを問い合わせるためのコマンドであり、ストレージ装置３に対して稼働情報を取得すべきことを指示するコマンドが格納されたコマンド欄４０Ａと、そのとき取得すべき稼働情報がそのストレージ装置３の現在のローカルタイムであることを示すサブコマンドが格納されたサブコマンド欄４０Ｂとから構成される。そしてホスト装置２は、この後、ローカルタイム取得コマンド４０に対するストレージ装置３からの応答を待つ。
【００４６】
このローカルタイム取得コマンド４０を受信したストレージ装置３は、そのローカルタイム取得コマンド４０を受信した時点における当該ストレージ装置３のローカルタイム（以下、これを第１のローカルタイムと呼ぶ）Lt1(1)を取得し、取得した第１のローカルタイムLt1(1)をそのローカルタイム取得コマンド４０に対する応答としてホスト装置２に送信する。
【００４７】
そしてホスト装置２は、ストレージ装置３から第１のローカルタイムLt1(1)が送信されると、その第１のローカルタイムLt1(1)を受信した時点のホストタイムHt(1)を取得する。
【００４８】
次いでホスト装置２は、ストレージ装置３にローカルタイム取得コマンド４０を発行してから当該ローカルタイム取得コマンド４０に対するストレージ装置３からの応答を受信するまでの時間Hu1(1)（＝Ht(1)−Ht(0)）を求め、これを時間差管理テーブル３１（図４）の対応するエントリの第１のＩ／Ｏ実行時間欄３１Ｆ（図４）に格納する。なお、以下においては、ストレージ装置３に１回目のローカルタイム取得コマンド４０を発行してから当該ローカルタイム取得コマンド４０に対するストレージ装置３からの応答を受信するまでの時間Hu1(1)を、第１のＩ／Ｏ実行時間と呼ぶものとする。またホスト装置２は、このとき取得した第１のローカルタイムLt1(1)を、そのエントリの第１の取得ローカルタイム欄３１Ｄに格納する。
【００４９】
そしてホスト装置２は、この後、時間差管理テーブル３１に登録されたすべてのストレージ装置３に対して、エントリ番号が小さいものから順番に同様の処理を実行する。これによりホスト装置２は、時間差管理テーブル３１に登録された各ストレージ装置３の第１のＩ／Ｏ実行時間Hu1(i)（ｉ＝１，２，……，Ｎ）と、これらストレージ装置３の第１のローカルタイムLt1（i）（ｉ＝１，２，……，Ｎ）とを順次取得し、取得した第１のＩ／Ｏ実行時間Hu1(i)及び第１のローカルタイムLt1（i）をそれぞれ時間差管理テーブル３１の第１のＩ／Ｏ実行時間欄３１Ｆ及び第１のローカルタイム欄３１Ｄに登録する。なお、変数「ｉ」は、時間差管理テーブル３１（図４）における対応するストレージ装置３のエントリ番号である。
【００５０】
またホスト装置２は、以上のようにして１回目のローカルタイム（第１のローカルタイムLt1(i)）の取得処理を終えると、現在のホストタイムHt(N)（図６ではHt(2)）を取得し、取得したホストタイムをホスト基準時刻Hsとして記憶する。このホスト基準時刻Hsは、１回目のローカルタイムの取得処理と、後述する２回目のローカルタイムの取得処理との中間点であり、後述のようにホストタイムと、各ストレージ装置３のローカルタイムとの差分を求める際の基準となる値である。
【００５１】
そしてホスト装置２は、この後、２回目のローカルタイムの取得処理を実行する。具体的に、ホスト装置２は、１回目のローカルタイムの取得処理と同様に、時間差管理テーブル３１に登録されたストレージ装置３のうち、最もエントリ番号が小さいエントリに対応するストレージ装置３に対して２回目のローカルタイム取得コマンド４０を発行する。
【００５２】
そしてホスト装置２は、やがてかかるローカルタイム取得コマンド４０に対する応答として、ストレージ装置３から当該ストレージ装置３におけるそのローカルタイム取得コマンド４０を受信した時点のローカルタイム（以下、これを第２のローカルタイムと呼ぶ）Lt2(1)が送信されると、その応答を受信した時点のホストタイムHt(N+1)を取得する。
【００５３】
次いでホスト装置２は、ストレージ装置に２回目のローカルタイム取得コマンド４０を発行してから当該ローカルタイム取得コマンド４０に対するストレージ装置３からの応答を受信するまでの時間Hu2(1)（＝Ht(N+1)−Ht(N)）を求め、これを時間差管理テーブル３１における対応するエントリの第２のＩ／Ｏ実行時間欄３１Ｇ（図４）に格納する。なお、以下においては、ストレージ装置３に２回目のローカルタイム取得コマンド４０を発行してから当該ローカルタイム取得コマンド４０に対するストレージ装置３からの応答を受信するまでの時間Hu2(1)を第２のＩ／Ｏ実行時間と呼ぶものとする。またホスト装置２は、このとき取得した第２のローカルタイムLt2(1)を、そのエントリの第２の取得ローカルタイム欄３１Ｅ（図４）に格納する。
【００５４】
そしてホスト装置２は、この後、時間差管理テーブル３１に登録されたすべてのストレージ装置に対して、エントリ番号が小さいものから順番に同様の処理を実行する。これによりホスト装置２は、時間差管理テーブル３１に登録された各ストレージ装置３の第２のＩ／Ｏ実行時間Hu2(i)（ｉ＝１，２，……，Ｎ）と、これらストレージ装置の第２のローカルタイムLt2（i）（ｉ＝１，２，……，Ｎ）とを順次取得し、取得した第２のＩ／Ｏ実行時間Hu2(i)及び第２のローカルタイムLt2（i）をそれぞれ時間差管理テーブル３１の第２のＩ／Ｏ実行時間欄３１Ｇ及び第２のローカルタイム欄３１Ｅに登録する。なお、変数「ｉ」は、時間差管理テーブル３１（図４）における対応するストレージ装置３のエントリ番号である。
【００５５】
この後、ホスト装置２は、各ストレージ装置３について、それぞれ１回目のローカルタイム取得コマンド４０の発行により取得したそのストレージ装置３の第１のローカルタイムLt1(i)と、２回目のローカルタイム取得コマンド４０の発行により取得したそのストレージ装置３の第２のローカルタイムLt1(i)との間の差分Qt（＝Lt2(i)−Lt1(i)）を求める。この際、ホスト装置２は、Ｉ／Ｏ入出力の遅延による変動を平準化するため、次式のように、すべてのストレージ装置（ｉ＝１，２，……，Ｎ）の平均値を用いる。
【数１】
2011134152.tif 000003
【００５６】
この差分Qtは、図７に示すように、第１のローカルタイムLt1(i)と第２のローカルタイムLt2(i)とを取得するために要した合計時間（つまり第１及び第２のＩ／Ｏ実行時間Hu1(i)，Hu2(i)の合計時間）Ttから、ホスト装置２からストレージ装置３へのローカルタイム取得コマンド４０の伝送時間（以下、これをＩ／Ｏコマンド伝送時間と呼ぶ）Tr1と、ストレージ装置３からホスト装置２への応答の転送時間（以下、これを応答転送時間と呼ぶ）Tr2とを引いた値である。
【００５７】
なお、ホスト装置２からストレージ装置３へのＩ／Ｏコマンド伝送時間Tr1及びストレージ装置３からホスト装置２への応答転送時間Tr2と、ホストタイムHt(i)との関係を図８に示す。この図８からも明らかなように、Ｉ／Ｏコマンド伝送時間Tr1及び応答転送時間Tr2と、ホストタイムHt(i)との関係は、次式のように表すことができる。
【数２】
2011134152.tif 000004
【００５８】
ここで、Ｉ／Ｏコマンド伝送時間Tr1と、応答転送時間Tr2とが同じ（Tr1＝Tr2）であると仮定すると、これらＩ／Ｏコマンド伝送時間Tr1及び応答転送時間Tr2は、次式のように、ホストタイムHt(i)からホストタイムHt(i+1)までの時間の半分となる。
【数３】
2011134152.tif 000005
【００５９】
続いてホスト装置２は、上述のようにして求めた各ストレージ装置３の第１及び第２のローカルタイムLt1(i)，Lt2(i)の差分Qtを用いて、ホスト基準時刻Hsに対する各ストレージ装置３のローカルタイムと、ホストタイムとの間の時間差（以下、これをローカル−ホスト間時間差と呼ぶ）Dif(i)を次式により求める。
【数４】
2011134152.tif 000006
【００６０】
なお（４）式において、Ｂは、１回目のローカルタイム（第１のローカルタイムLt1(i)）の取得時において「ｉ」が２よりも大きいときには次式
【数５】
2011134152.tif 000007
で与えられる値であり、「ｉ」がＮのときには次式
【数６】
2011134152.tif 000008
で与えられる値である。
【００６１】
また（４）式において、Ａは、２回目のローカルタイム（第２のローカルタイムLt2(i)）の取得時において「ｉ」の値が２よりも大きいときには次式
【数７】
2011134152.tif 000009
で与えられる値であり、「ｉ」がＮのときには次式
【数８】
2011134152.tif 000010
で与えられる値である。
【００６２】
この後、ホスト装置２は、任意の未来時刻（例えば５分後）Htを決定すると共に、ストレージ装置３ごとに、上述のようにして取得したそのストレージ装置３のローカル−ホスト間時間差Dif(i)を未来時刻Htに加算した時刻を出し、算出した時刻を動作実行時刻（以下、これを動作実行ローカルタイムと呼ぶ）として指定した図１０に示すようなローカルタイム指定コマンド４１をそのストレージ装置３にそれぞれ送信する。
【００６３】
このローカルタイム指定コマンド４１は、ホスト装置２がストレージ装置３に対して所望の動作実行ローカルタイムを指定して所望動作（ここでは稼働情報の取得。以下、同様。）をその動作実行ローカルタイムに実行すべきことを指示するためのコマンドであり、そのコマンドがローカルタイム指定コマンドであることを表す情報が格納されたコマンド欄４１Ａと、動作実行ローカルタイムが格納された動作実行ローカルタイム欄４１Ｂと、そのストレージ装置に実行させようとする動作を表すサブコマンドが格納されたサブコマンド欄４１Ｃと、ストレージ装置がその動作を実行する際に必要となる各種パラメータが格納された動作指示内容欄４１Ｄとから構成される。そしてホスト装置２は、この後、ローカルタイム指定コマンド４１に対するストレージ装置からの応答を待つ。
【００６４】
このローカルタイム指定コマンド４１を受信した各ストレージ装置３は、それぞれそのローカルタイム指定コマンド４１において指定された動作実行ローカルタイム、サブコマンド（動作指示）、動作指示内容を、それぞれローカルタイム指定コマンド管理テーブル３３（図５）の動作実行ローカルタイム欄３３Ｂ、サブコマンド欄３３Ｃ及び動作指示内容欄３３Ｄに格納する。
【００６５】
また各ストレージ装置３は、この後、ローカルタイム指定コマンド管理テーブル３３の動作実行ローカルタイム欄３３Ｂを監視する。そしてストレージ装置３は、やがて自己のローカルタイムが動作実行ローカルタイム欄３３Ｂに格納されている動作実行ローカルタイムとなると、そのローカルタイム指定コマンド管理テーブル３３のサブコマンド欄３３Ｃに格納されている動作を実行する。これにより、かかるローカルタイム指定コマンド４１を受信した複数のストレージ装置３が、同一時刻にローカルタイム指定コマンド４１により指定された動作を一斉に実行することになる。また各ストレージ装置３は、かかる動作により得られた動作結果（ここでは稼働情報）を、ローカルタイム指定コマンド管理テーブル３３の結果格納バッファ欄３３Ｅに格納する。
【００６６】
一方、ホスト装置２は、ホストタイムが上述の未来時刻Htを経過すると、時間差管理テーブル３１に登録されている各ストレージ装置３に対して結果取得コマンドをそれぞれ送信する。そしてこの結果取得コマンドを受信した各ストレージ装置３は、図１１に示すように、対応する動作を実行したローカルタイムを実行ローカルタイム部３２Ａに格納し、ローカルタイム指定コマンド管理テーブル３３の結果格納バッファ欄３３Ｅに格納されている動作結果を動作実行ローカルタイム欄３３Ｂに格納した戻り値４２をホスト装置２に送信する。
【００６７】
かくしてホスト装置２は、各ストレージ装置３から送信される戻り値４２に基づき得られたストレージ装置３ごとの稼働情報や、これらの動作結果に基づき計算されたリモートコピーシステム１全体としての稼働情報を表示する。
【００６８】
（４）稼働情報表示機能に関するホスト装置のＣＰＵの具体的な処理
（４−１）全体の流れ
次に、以上のような稼働情報表示機能に関するホスト装置２のＣＰＵ１０（図１）の具体的な処理の内容について説明する。なお、以下の一連の処理は、ホスト装置２のメモリ１１に格納されている上述のリモートコピー管理プログラム３０（図２）に基づいて実行される。
【００６９】
図１２は、かかる稼働情報表示機能に関するホスト装置２のＣＰＵ１０の一連の処理の流れを示す。ＣＰＵ１０は、ユーザ操作により稼働情報の表示命令が入力されるなどすると、まず、時間差管理テーブル３１（図４）を初期設定し（ＳＰ１）、この後、時間差管理テーブル３１に登録されている各ストレージ装置３について、上述の第１及び第２のＩ／Ｏ実行時間Hu1(i)，Hu2(i)と、上述の第１及び第２のローカルタイムLt1(i)、Lt2(i)とを取得する（ＳＰ２）。
【００７０】
続いてＣＰＵ１０は、ステップＳＰ２の処理により得られたストレージ装置３ごとの第１及び第２のＩ／Ｏ実行時間Hu1(i)，Hu2(i)と、第１及び第２のローカルタイムLt1(i)、Lt2(i)とに基づいて、ストレージ装置３ごとのローカル−ホスト間時間差Dif(i)をそれぞれ計算する（ＳＰ３）。
【００７１】
次いでＣＰＵ１０は、ステップＳＰ３において得られたローカル−ホスト間時間差Dif(i)を任意の未来時刻Htを加算することによりストレージ装置３ごとの動作実行ローカルタイムをそれぞれ決定し、この動作実行ローカルタイムと、実行すべき動作とを指定したローカルタイム指定コマンド４１（図１０）を時間差管理テーブル３１に登録されている各ストレージ装置３にそれぞれ発行する（ＳＰ４）。
【００７２】
この後、ＣＰＵ１０は、未来時刻Htの経過後に、各ストレージ装置３からローカルタイム指定コマンド４１において指定した動作を実行することにより得られた稼働情報を回収し、回収したストレージ装置３ごとの稼働情報や、これらの稼働情報に基づき計算されたリモートコピーシステム１全体としての稼働情報をホスト装置２に表示させる（ＳＰ５）。
【００７３】
（４−２）初期設定処理
図１３は、図１２のステップＳＰ１におけるＣＰＵ１０の具体的な処理手順を示す。ＣＰＵ１０は、この図１３に示す処理手順に従って時間差管理テーブル３１（図４）を初期設定する。
【００７４】
すなわちＣＰＵ１０は、図１２のステップＳＰ１に進むと、この初期設定処理を開始し、まず、空の時間差管理テーブル３１を作成する（ＳＰ１０）。
【００７５】
続いてＣＰＵ１０は、ＯＳ又はリモートコピー管理プログラム３０（図２）が管理しているストレージ装置３であって、ステップＳＰ１３について後述する処理を実行していないストレージ装置３の製造番号をそのＯＳ又はリモートコピー管理プログラム３０に問い合わせる（ＳＰ１１）。
【００７６】
続いてＣＰＵ１０は、ステップＳＰ１１の問い合わせに対していずれかのストレージ装置３の製造番号を取得できたか否かに基づいて、ＯＳ又はリモートコピー管理プログラム３０が管理しているすべてのストレージ装置３についてステップＳＰ１３の処理を実行し終えたか否かを判断する（ＳＰ１２）。
【００７７】
そしてＣＰＵ１０は、この判断において否定結果を得ると、時間差管理テーブル３１に新たなエントリを追加し、そのエントリのストレージ装置製造番号欄３１Ｂ（図４）に、ステップＳＰ１１の問い合わせに対してＯＳ又はリモートコピー管理プログラム３０から得られたストレージ装置３の製造番号を格納する（ＳＰ１３）。またＣＰＵ１０は、ステップＳＰ１１に戻り、この後、ステップＳＰ１２において肯定結果を得るまで同様の処理を繰り返す。
【００７８】
そしてＣＰＵ１０は、やがてステップＳＰ１１の問い合わせに対していずれのストレージ装置３の製造番号をも取得できないことによりステップＳＰ１２において肯定結果を得ると、この初期設定処理を終了して、図１２の処理に戻る。
【００７９】
（４−３）ローカルタイム取得処理
一方、図１４Ａ及び図１４Ｂは、図１２のステップＳＰ２におけるＣＰＵ１０の具体的な処理手順を示す。ＣＰＵ１０は、この図１４Ａ及び図１４Ｂに示す処理手順に従って、時間差管理テーブル３１に登録されている各ストレージ装置３について、第１及び第２のＩ／Ｏ実行時間Hu1(i)，Hu2(i)と、第１及び第２のローカルタイムLt1(i)，Lt2(i)とを取得する。
【００８０】
すなわちＣＰＵ１０は、図１２のステップＳＰ２に進むと、図１４Ａ及び図１４Ｂに示すローカルタイム取得処理を開始し、まず、現在のホストタイムHt(0)を取得し（ＳＰ２０）、この後、変数「ｉ」を「１」にリセットする（ＳＰ２１）。
【００８１】
続いてＣＰＵ１０は、時間差管理テーブル３１におけるエントリ番号が「ｉ」のエントリに対応するストレージ装置３に対して、ローカルタイム取得コマンド４０（図９）を発行し（ＳＰ２２）、この後、このローカルタイム取得コマンド４０に対する対応するストレージ装置３からの応答を受信するのを待ち受ける（ＳＰ２３）。
【００８２】
そしてＣＰＵ１０は、やがてかかる応答を受信すると、現在のホストタイムHt(i)（この段階ではHt(1)）を取得する（ＳＰ２４）。またＣＰＵ１０は、このホストタイムHt(i)と、１つ前に取得したホストタイムHt(i-1)とに基づいて第１のＩ／Ｏ実行時間Hu1(i)（この段階ではHu1(1)）を求め、求めた第１のＩ／Ｏ実行時間Hu1(i)を時間差管理テーブル３１の「ｉ」番目のエントリの第１のＩ／Ｏ実行時間欄３１Ｆ（図４）に格納する（ＳＰ２５）。
【００８３】
次いでＣＰＵ１０は、ステップＳＰ２３において受信した対応するストレージ装置３からの応答に含まれるローカルタイムを第１のローカルタイムLt1(i)（この段階ではLt1(1)）として、時間差管理テーブル３１の「ｉ」番目のエントリの第１のローカルタイム欄３１Ｄ（図４）に格納する（ＳＰ２６）。
【００８４】
この後、ＣＰＵ１０は、時間差管理テーブル３１を参照して、当該時間差管理テーブル３１に登録されているすべてのストレージ装置についてステップＳＰ２２〜ステップＳＰ２６の処理を実行し終えたか否かを判断する（ＳＰ２７）。
【００８５】
ＣＰＵ１０は、この判断において否定結果を得ると、変数「ｉ」をインクリメントした後（ＳＰ２８）、ステップＳＰ２２に戻る。そしてＣＰＵ１０は、この後、ステップＳＰ２７において肯定結果を得るまで、同様の処理を繰り返す。
【００８６】
そしてＣＰＵ１０は、時間差管理テーブル３１に登録されたすべてのストレージ装置３について、第１のＩ／Ｏ実行時間Hu1(i)と、第１のローカルタイムLt1(i)とを時間差管理テーブル３１に登録し終えることによりステップＳＰ２７において肯定結果を得ると、現在のホストタイムHt(N)をホスト基準時刻Hsとして取得する（ＳＰ２９）。そしてＣＰＵ１０は、この後、変数「ｉ」を「１」にリセットする（ＳＰ３０）。
【００８７】
続いてＣＰＵ１０は、時間差管理テーブル３１におけるエントリ番号が「ｉ」のエントリに対応するストレージ装置３に対して、再度、ローカルタイム取得コマンド４０（図９）を発行し（ＳＰ３１）、この後、このローカルタイム取得コマンド４０に対する対応するストレージ装置３からの応答を受信するのを待ち受ける（ＳＰ３２）。
【００８８】
そしてＣＰＵ１０は、やがてかかる応答を受信すると、現在のホストタイムHt(i+N)を取得する（ＳＰ３３）。またＣＰＵ１０は、このホストタイムHt(i+N)と、１つ前に取得したホストタイムHt(i-1+N)とに基づいて第２のＩ／Ｏ実行時間Hu2(i) （この段階ではHu2(1)）を求め、求めた第２のＩ／Ｏ実行時間Hu2(i)を時間差管理テーブル３１の「ｉ」番目のエントリの第２のＩ／Ｏ実行時間欄３１Ｇ（図４）に格納する（ＳＰ３４）。
【００８９】
次いでＣＰＵ１０は、ステップＳＰ３２において受信した対応するストレージ装置３からの応答に含まれるローカルタイムを第１のローカルタイムLt2(i)（この段階ではLt2(1)）として、時間差管理テーブル３１の「ｉ」番目のエントリの第２のローカルタイム欄３１Ｅに格納する（ＳＰ３５）。
【００９０】
この後、ＣＰＵ１０は、時間差管理テーブル３１を参照して、当該時間差管理テーブル３１に登録されているすべてのストレージ装置３についてステップＳＰ３１〜ステップＳＰ３５の処理を実行し終えたか否かを判断する（ＳＰ３６）。
【００９１】
ＣＰＵ１０は、この判断において否定結果を得ると、変数「ｉ」をインクリメントした後（ＳＰ３７）、ステップＳＰ３１に戻る。そしてＣＰＵ１０は、この後、ステップＳＰ３６において肯定結果を得るまで、同様の処理を繰り返す。
【００９２】
そしてＣＰＵ１０は、時間差管理テーブル３１に登録されたすべてのストレージ装置３について、第２のＩ／Ｏ実行時間Hu2(i)と、第２のローカルタイムLt2(i)とを時間差管理テーブル３１に登録し終えることによりステップＳＰ３６において肯定結果を得ると、このローカルタイム取得処理を終了して図１２の処理に戻る。
【００９３】
（４−４）時間差計算処理
他方、図１５は、図１２のステップＳＰ３におけるＣＰＵ１０の具体的な処理手順を示す。ＣＰＵ１０は、この図１５に示す処理手順に従って、時間差管理テーブル３１に登録されている各ストレージ装置３について、そのストレージ装置３のローカル−ホスト間時間差Dif(i)を取得する
【００９４】
すなわちＣＰＵ１０は、図１２のステップＳＰ３に進むと、図１５に示す時間差計算処理を開始し、まず、差分合計値を「０」にリセットすると共に（ＳＰ４０）、変数「ｉ」を「１」にリセットする（ＳＰ４１）。
【００９５】
続いてＣＰＵ１０は、第２のローカルタイムLt2(i)と、第１のローカルタイムLt1(i)との差分（Lt2(i)−Lt1(i)）を現在の差分合計値に加算することにより新たな差分合計値を算出する（ＳＰ４２）。またＣＰＵ１０は、変数「ｉ」の値が時間差管理テーブル３１に登録されているストレージ装置数Ｎよりも小さいか否かを判断する（ＳＰ４３）。
【００９６】
ＣＰＵ１０は、この判断において肯定結果を得ると、変数「ｉ」をインクリメントする（ＳＰ４４）。またＣＰＵ１０は、ステップＳＰ４２に戻り、この後、ステップＳＰ４３において否定結果を得るまで同様の処理を繰り返す。これにより差分合計値として、時間差管理テーブル３１に登録された各ストレージ装置３の第２及び第１のローカルタイムLt2(i)，Lt1(i)の差分を合計した値が求められる。
【００９７】
そしてＣＰＵ１０は、やがて時間差管理テーブル３１に登録されているすべてのストレージ装置３に対するステップＳＰ４２〜ステップＳＰ４４の処理を実行し終えることによりステップＳＰ４３において否定結果を得ると、ステップＳＰ４２〜ステップＳＰ４４の処理により最終的に求められた差分合計値を、時間差管理テーブル３１に登録されているストレージ装置数Ｎで割ることにより上述の差分Qtを求める（ＳＰ４５）。
【００９８】
次いでＣＰＵ１０は、変数「ｉ」を「１」にリセットし（ＳＰ４６）、時間差管理テーブル３１におけるエントリ番号が「ｉ」のエントリの第１のＩ／Ｏ実行時間欄３１Ｆ（図４）に格納されている第１のＩ／Ｏ実行時間Hu1(i)を「２」で割ることにより得られた値を「Ｂ」とする（ＳＰ４７）。
【００９９】
またＣＰＵ１０は、変数「ｉ」に「１」を加えた値を変数「ｊ」として（ＳＰ４８）、この変数「ｊ」の値が時間差管理テーブル３１に登録されているストレージ装置数Ｎ以下であるか否かを判断する（ＳＰ４９）。
【０１００】
ＣＰＵ１０は、この判断において否定結果を得ると、「Ｂ」の値に第１のＩ／Ｏ実行時間Hu1(j)を加えることにより新たな「Ｂ」を算出し（ＳＰ５０）、さらに変数「ｊ」の値をインクリメントした後（ＳＰ５１）、ステップＳＰ４９に戻る。そしてＣＰＵ１０は、この後、ステップＳＰ４９において否定結果を得るまで、ステップＳＰ４９〜ステップＳＰ５１の処理を繰り返す。このステップＳＰ４９〜ステップＳＰ５１の処理により、（４）式における「Ｂ」の値が順次求められることになる。
【０１０１】
そしてＣＰＵ１０は、やがてステップＳＰ４９において否定結果を得ると、時間差管理テーブル３１におけるエントリ番号が「ｉ」のエントリの第２のＩ／Ｏ実行時間欄３１Ｇ（図４）に格納されている第２のＩ／Ｏ実行時間Hu2(i)を「２」で割ることにより得られた値を「Ａ」とする（ＳＰ５２）。
【０１０２】
またＣＰＵ１０は、変数「ｉ」を変数「ｊ」として（ＳＰ５３）、この変数「ｊ」の値が時間差管理テーブル３１に登録されているストレージ装置数Ｎよりも１だけ小さい値（Ｎ−１）以下であるか否かを判断する（ＳＰ５４）。
【０１０３】
ＣＰＵ１０は、この判断において否定結果を得ると、「Ａ」の値に第２のＩ／Ｏ実行時間Hu2(j)を加えることにより新たな「Ａ」を算出し（ＳＰ５５）、さらに変数「ｊ」の値をインクリメントした後（ＳＰ５６）、ステップＳＰ５４に戻る。そしてＣＰＵ１０は、この後、ステップＳＰ５４において否定結果を得るまで、ステップＳＰ５４〜ステップＳＰ５６の処理を繰り返す。このステップＳＰ５４〜ステップＳＰ５６の処理により、（４）式における「Ａ」の値が順次求められることになる。
【０１０４】
そしてＣＰＵ１０は、やがてステップＳＰ５４において否定結果を得ると、（４）式の演算を実行することにより、対応するストレージ装置３のローカル−ホスト間時間差Dif(i)を求める（ＳＰ５７）。
【０１０５】
次いでＣＰＵ１０は、変数「ｉ」の値が時間差管理テーブル３１に登録されたストレージ装置数Ｎ未満であるか否かを判断する（ＳＰ５８）。そしてＣＰＵ１０は、この判断において肯定結果を得ると、変数「ｉ」をインクリメントした後（ＳＰ５９）、ステップＳＰ４７に戻る。
【０１０６】
そしてＣＰＵ１０は、この後、対象とするストレージ装置３を順次他のストレージ装置３に切り替えながらステップＳＰ５８において肯定結果を得るまで、ステップＳＰ４７〜ステップＳＰ５９の処理を繰り返す。これにより時間差管理テーブル３１に登録された各ストレージ装置３について、そのストレージ装置３のローカルタイムと、ホストタイムとの間の時間差であるローカル−ホスト間時間差Dif(i)が順次求められることになる。
【０１０７】
そしてＣＰＵ１０は、やがて時間差管理テーブル３１に登録されたすべてのストレージ装置についてローカル−ホスト間時間差Dif(i)を求め終えることによりステップＳＰ５８において否定結果を得ると、この時間差計算処理を終了して図１２の処理に戻る。
【０１０８】
（４−５）実行動作予約処理
図１６は、図１２のステップＳＰ４におけるＣＰＵ１０の具体的な処理手順を示す。ＣＰＵ１０は、この図１６に示す処理手順に従って、時間差管理テーブル３１に登録されている各ストレージ装置３に対して、動作実行ローカルタイムと、当該動作実行ローカルタイムに実行すべき動作とを設定する。
【０１０９】
すなわちＣＰＵ１０は、まず、上述の未来時刻Htを決定し（ＳＰ６０）、この後、変数「ｉ」の値を「１」にリセットする（ＳＰ６１）。
【０１１０】
続いてＣＰＵ１０は、時間差管理テーブル３１におけるエントリ番号が「ｉ」のエントリに対応するストレージ装置３に対して、ステップＳＰ６０において決定した未来時刻Htに、図１５の時間差計算処理において算出した対応するローカル−ホスト間時間差Dif(i)を加算した値を動作実行ローカルタイムとし、所望する動作（ここでは稼働情報の取得）をサブコマンドとするローカルタイム指定コマンド４１（図１０）を発行する（ＳＰ６２）。
【０１１１】
次いでＣＰＵ１０は、変数「ｉ」の値が時間差管理テーブル３１に登録されているストレージ装置数Ｎ未満であるか否かを判断する（ＳＰ６３）。そしてＣＰＵ１０は、この判断において肯定結果を得ると、変数「ｉ」をインクリメントした後（ＳＰ６４）、ステップＳＰ６２に戻り、この後、ステップＳＰ６３において否定結果を得るまで同様の処理を繰り返す。
【０１１２】
そしてＣＰＵ１０は、やがて時間差管理テーブル３１に登録されているすべてのストレージ装置３に対して上述のローカルタイム指定コマンド４１を発行し終えることによりステップＳＰ６３において否定結果を得ると、この実行動作予約処理を終了する。
【０１１３】
（４−６）結果回収・表示処理
図１７は、図１２のステップＳＰ５におけるＣＰＵ１０の具体的な処理手順を示す。ＣＰＵ１０は、この図１７に示す処理手順に従って、図１６の実行動作予約処理により各ストレージ装置にそれぞれ予約設定した動作の動作結果（稼働情報）を回収し、回収した稼働情報やこの稼働情報に基づいて計算されるリモートコピーシステム１全体としての稼働情報を表示する。
【０１１４】
すなわちＣＰＵ１０は、図１２のステップＳＰ５に進むと、この結果回収・表示処理を開始し、図１６の実行動作予約処理のステップＳＰ６０において決定した未来時刻Htが経過するのを待ち受ける（ＳＰ７０）。そしてＣＰＵ１０は、やがてホストタイムが未来時刻Htを経過すると、変数「ｉ」を「１」にリセットする（ＳＰ７１）。
【０１１５】
続いてＣＰＵ１０は、時間差管理テーブル３１におけるエントリ番号が「ｉ」のエントリに対応するストレージ装置３に対して、結果取得コマンドを発行する（ＳＰ７２）。かくして、この結果取得コマンドを受信したストレージ装置３は、当該ストレージ装置３が保持するローカルタイム指定コマンド管理テーブル３３（図５）の結果格納バッファ欄３３Ｅに格納されている稼働情報をホスト装置２に送信する。
【０１１６】
またＣＰＵ１０は、変数「ｉ」の値が時間差管理テーブル３１に登録されているストレージ装置数Ｎ未満であるか否かを判断し（ＳＰ７３）、肯定結果を得ると、変数「ｉ」をインクリメントした後（ＳＰ７４）、ステップＳＰ７２に戻る。そしてＣＰＵ１０は、この後、ステップＳＰ７３において否定結果を得るまでステップＳＰ７２〜ステップＳＰ７４の処理を繰り返す。
【０１１７】
そしてＣＰＵ１０は、やがて時間差管理テーブル３１に登録されたすべてのストレージ装置３に対して結果取得コマンドを発行し終えることによりステップＳＰ７３において否定結果を得ると、結果取得コマンドに対する各ストレージ装置３からの応答により得られた稼働情報に基づいてリモートコピーシステム１全体としての稼働情報（例えば非同期リモートコピーにおける正側に対する副側の遅延時間）を計算する。またＣＰＵ１０は、計算結果をホスト装置２に表示させ（ＳＰ７５）、この後、この結果回収・表示処理を終了して図１２の処理に戻る。
【０１１８】
（５）本実施の形態の効果
以上のように本実施の形態によるリモートコピーシステム１では、ホスト装置２が、ホストタイムと、ストレージ装置３のローカルタイムとの時間差Dif(i)をストレージ装置３ごとに求め、求めた時間差Dif(i)に任意の未来時刻Htを加算した時刻を動作実行ローカルタイムとして各ストレージ装置３に設定し、未来時刻Htの経過後に、各ストレージ装置３から動作実行ローカルタイムにおいて実行した動作の実行結果を回収するようにしているため、各ストレージ装置３から同一時刻に実行した動作結果を得ることができる。かくするにつき、複数のストレージ装置における同一時刻の動作結果を信頼性高く取得することができる。
【０１１９】
また、かかる未来時刻Htとして業務が稼働していない時間帯を選択することにより、業務に影響を与えることなく、各ストレージ装置３の稼働情報を取得することができる。
【０１２０】
（６）他の実施の形態
なお上述の実施の形態においては、本発明を図１のように構成されたリモートコピーシステム１に適用するようにした場合について述べたが、本発明はこれに限らず、複数のストレージ装置から同一時刻の動作情報を収集する必要があるこの他種々の構成の計算機システムに広く適用することができる。
【０１２１】
また上述の実施の形態においては、本発明による機能をホスト装置２に搭載するようにした場合について述べたが、本発明はこれに限らず、かかる機能をホスト装置２とは別個に設けられた管理サーバ等の他の情報処理装置に搭載するようにしても良い。
【０１２２】
さらに上述の実施の形態においては、ストレージ装置３の内部時間（ローカルタイム）と、ホスト装置２の内部時間（ホストタイム）との間の時間差を検出する時間差検出部と、各ストレージ装置３に対して、任意の未来時刻Htに、当該ストレージ装置３の内部時間と、ホスト装置２の内部時間との間の時間差を加算した時刻を所定動作の実行時刻（動作実行ローカルタイム）として設定する動作実行設定部と、未来時刻Htの経過後に、各ストレージ装置３からそれぞれかかる所定動作の実行結果を回収する実行結果回収部とを、ホスト装置２全体の動作制御を司る１つのＣＰＵ１０により構成するようにした場合について述べたが、本発明はこれに限らず、これら時間差検出部、動作実行設定部及び実行結果回収部としての機能の一部又は全部を、ＣＰＵ１０とは別個に設けられたＣＰＵ等に搭載したり、これら時間差検出部、動作実行設定部及び又は実行結果回収部としての機能を有するハードウェアをＣＰＵ１０とは別個に設けるようにしても良い。
【産業上の利用可能性】
【０１２３】
本発明は、リモートコピーシステムにおけるホスト装置のほか、情報処理装置に広く適用することができる。
【図１】
2011134152.tif 000011
【図２】
2011134152.tif 000012
【図３】
2011134152.tif 000013
【図４】
2011134152.tif 000014
【図５】
2011134152.tif 000015
【図６】
2011134152.tif 000016
【図７】
2011134152.tif 000017
【図８】
2011134152.tif 000018
【図９】
2011134152.tif 000019
【図１０】
2011134152.tif 000020
【図１１】
2011134152.tif 000021
【図１２】
2011134152.tif 000022
【図１３】
2011134152.tif 000023
【図１４Ａ】
2011134152.tif 000024
【図１４Ｂ】
2011134152.tif 000025
【図１５】
2011134152.tif 000026
【図１６】
2011134152.tif 000027
【図１７】
2011134152.tif 000028
【手続補正書】
【提出日】平成23年3月8日(2011.3.8)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のストレージ装置と接続された情報処理装置において、
前記複数のストレージ装置のそれぞれについて、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を検出する時間差検出部と、
前記複数のストレージ装置に対して、任意の未来時刻に、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を加算した時刻を所定動作の実行時刻として設定する動作実行設定部と、
前記未来時刻の経過後に、前記複数のストレージ装置からそれぞれ前記所定動作の実行結果を回収する実行結果回収部と
を備えることを特徴とする情報処理装置。
【請求項２】
前記所定動作は、
前記実行時刻における前記ストレージ装置の稼働情報を取得する動作であり、
前記実行結果回収部は、
前記複数のストレージ装置からそれぞれ前記所定動作の実行結果として当該ストレージ装置の前記稼働情報を回収し、回収した前記ストレージ装置ごとの前記稼働情報及び又は当該稼働情報に基づき得られる情報を表示する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記複数のストレージ装置は、非同期リモートコピーを実行し、
前記稼働情報は、
前記非同期リモートコピーを実行している正側のストレージ装置においてはデータの最終更新時刻の取得であり、副側のストレージ装置においては正側のストレージ装置から転送される更新データの最終タイムスタンプ時刻の取得である
ことを特徴とする請求項１又は請求項２に記載の情報処理装置。
【請求項４】
前記実行結果回収部は、
回収した前記ストレージ装置ごとの前記稼働情報に基づいて、正側のストレージ装置におけるデータの最終更新時刻と、副側のストレージ装置における更新データの最終タイムスタンプ時刻との差分を、前記非同期リモートコピーにおける正側及び副側の遅延時間として表示する
ことを特徴とする請求項１乃至請求項３に記載の情報処理装置。
【請求項５】
前記時間差検出部は、
ストレージ装置に対して当該ストレージ装置における内部時刻を取得し応答すべきコマンドを２回送信し、各前記コマンドの送信によりそれぞれ得られた当該コマンドを受信した時点の前記ストレージ装置の内部時刻と、各前記コマンドをそれぞれ前記ストレージ装置に送信してから当該コマンドの応答を受信するまでの時間間隔とに基づいて、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を検出する
ことを特徴とする請求項１乃至請求項４に記載の情報処理装置。
【請求項６】
複数のストレージ装置と接続された情報処理装置の制御方法において、
前記複数のストレージ装置のそれぞれについて、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を検出する第１のステップと、
前記複数のストレージ装置に対して、任意の未来時刻に、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を加算した時刻を所定動作の実行時刻として設定する第２のステップと、
前記未来時刻の経過後に、前記複数のストレージ装置からそれぞれ前記所定動作の実行結果を回収する第３のステップと
を備えることを特徴とする情報処理装置の制御方法。
【請求項７】
前記所定動作は、
前記実行時刻における前記ストレージ装置の稼働情報を取得する動作であり、
前記第３のステップでは、
前記複数のストレージ装置からそれぞれ前記所定動作の実行結果として当該ストレージ装置の前記稼働情報を回収し、回収した前記ストレージ装置ごとの前記稼働情報及び又は当該稼働情報に基づき得られる情報を表示する
ことを特徴とする請求項６に記載の情報処理装置の制御方法。
【請求項８】
前記複数のストレージ装置は、非同期リモートコピーを実行し、
前記稼働情報は、
前記非同期リモートコピーを実行している正側のストレージ装置においてはデータの最終更新時刻の取得であり、副側のストレージ装置においては正側のストレージ装置から転送される更新データの最終タイムスタンプ時刻の取得である
ことを特徴とする請求項６又は請求項７に記載の情報処理装置の制御方法。
【請求項９】
前記第３のステップでは、
回収した前記ストレージ装置ごとの前記稼働情報に基づいて、正側のストレージ装置におけるデータの最終更新時刻と、副側のストレージ装置における更新データの最終タイムスタンプ時刻との差分を、前記非同期リモートコピーにおける正側及び副側の遅延時間として表示する
ことを特徴とする請求項６乃至請求項８に記載の情報処理装置の制御方法。
【請求項１０】
前記第１のステップでは、
ストレージ装置に対して当該ストレージ装置における内部時刻を取得し応答すべきコマンドを２回送信し、各前記コマンドの送信によりそれぞれ得られた当該コマンドを受信した時点の前記ストレージ装置の内部時刻と、各前記コマンドをそれぞれ前記ストレージ装置に送信してから当該コマンドの応答を受信するまでの時間間隔とに基づいて、当該ストレージ装置の内部時間と、当該情報処理装置の内部時間との間の時間差を検出する
ことを特徴とする請求項６乃至請求項９に記載の情報処理装置の制御方法。