(57)【要約】【課題】複数のストレージ装置間で非同期リモートコピーを行うストレージシステムにおいて、メインフレーム技術以外にも適用可能で、監視誤差を所定範囲内に抑えながらデータ復旧可能時刻を監視する技術を提供することを課題とする。【解決手段】本発明のストレージシステムＳにおいて、管理計算機１１００は、第１のサイトのストレージ装置のバッファに滞留しているデータに関し、最新あるいはそれに準ずるデータを所定の時間間隔で時刻情報とともに蓄積しておき、当該蓄積した情報と、所定時刻における、最古あるいはそれに準ずるデータ、および、滞留しているデータ数のうち少なくとも１つの情報と、に基づき、所定時刻を基準にして、第２のサイトのストレージ装置に記憶されたデータを用いて復旧することのできる時刻であるデータ復旧可能時刻の推定値を算出し、表示部に表示する。【選択図】図１
2010146198.tif 000002
【特許請求の範囲】
【請求項１】
１台以上のストレージ装置、および、前記１台以上のストレージ装置へデータのリード／ライトを行なう１台以上のホスト計算機を有する第１のサイトと、
１台以上のストレージ装置、および、前記１台以上のストレージ装置へデータのリード／ライトを行なう１台以上のホスト計算機からなる第２のサイトと、
前記第１のサイトのホスト計算機を管理する管理計算機と、を含み、
前記第１のサイトのストレージ装置から前記第２のサイトのストレージ装置に対して非同期リモートコピーを行うストレージシステムであって、
前記管理計算機は、
前記第１のサイトのストレージ装置のバッファに滞留しているデータに関し、最新あるいはそれに準ずるデータを所定の時間間隔で時刻情報とともに蓄積しておき、
当該蓄積した情報と、所定時刻における、最古あるいはそれに準ずるデータ、および、滞留しているデータ数のうち少なくとも１つの情報と、に基づき、所定時刻を基準にして、前記第２のサイトのストレージ装置に記憶されたデータを用いて復旧することのできる時刻であるデータ復旧可能時刻の推定値を算出し、表示部に表示する
ことを特徴とするストレージシステム。
【請求項２】
前記管理計算機は、
前記所定時刻と前記データ復旧可能時刻との差分をデータ損失時間の推定値として算出し、前記表示部に表示することを特徴とする請求項１に記載のストレージシステム。
【請求項３】
前記所定の監視間隔は、
予めユーザによって設定された値であることを特徴とする請求項１に記載のストレージシステム。
【請求項４】
前記管理計算機は、
前記第１のサイトのストレージ装置のバッファに滞留しているデータに関し、最新あるいはそれに準ずるデータの情報をそのシーケンス番号とともに蓄積し、
当該蓄積した情報と、所定時刻における最古あるいはそれに準ずるデータのシーケンス番号とに基づいて、所定時刻を基準にして、前記データ復旧可能時刻の推定値を、前記最古あるいはそれに準ずるデータが前記バッファに格納された時刻を推定することで、算出し、前記表示部に表示する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項５】
前記管理計算機は、
所定時刻を基準にして、前記データ復旧可能時刻の推定値を、そのときの最古あるいはそれに準ずるデータが前記バッファに格納された時刻を推定することで、算出し、前記表示部に表示する
ことを特徴とする請求項１に記載のストレージシステム。
【請求項６】
１台以上のストレージ装置、および、前記１台以上のストレージ装置へデータのリード／ライトを行なう１台以上のホスト計算機を有する第１のサイトと、
１台以上のストレージ装置、および、前記１台以上のストレージ装置へデータのリード／ライトを行なう１台以上のホスト計算機からなる第２のサイトと、
前記第１のサイトのホスト計算機を管理する管理計算機と、を含み、
前記第１のサイトのストレージ装置から前記第２のサイトのストレージ装置に対して非同期リモートコピーを行うストレージシステムによるデータ復旧可能時刻の推定値の算出方法であって、
前記管理計算機は、
前記第１のサイトのストレージ装置のバッファに滞留しているデータに関し、最新あるいはそれに準ずるデータを所定の時間間隔で時刻情報とともに蓄積しておき、
当該蓄積した情報と、所定時刻における、最古あるいはそれに準ずるデータ、および、滞留しているデータ数のうち少なくとも１つの情報と、に基づき、所定時刻を基準にして、前記第２のサイトのストレージ装置に記憶されたデータを用いて復旧することのできる時刻であるデータ復旧可能時刻の推定値を算出し、表示部に表示する
ことを特徴とするデータ復旧可能時刻の推定値の算出方法。
【請求項７】
前記管理計算機は、
前記所定時刻と前記データ復旧可能時刻との差分をデータ損失時間の推定値として算出し、前記表示部に表示することを特徴とする請求項６に記載のデータ復旧可能時刻の推定値の算出方法。
【請求項８】
前記所定の監視間隔は、
予めユーザによって設定された値であることを特徴とする請求項６に記載のデータ復旧可能時刻の推定値の算出方法。
【請求項９】
前記管理計算機は、
前記第１のサイトのストレージ装置のバッファに滞留しているデータに関し、最新あるいはそれに準ずるデータの情報をそのシーケンス番号とともに蓄積し、
当該蓄積した情報と、所定時刻における最古あるいはそれに準ずるデータのシーケンス番号とに基づいて、所定時刻を基準にして、前記データ復旧可能時刻の推定値を、前記最古あるいはそれに準ずるデータが前記バッファに格納された時刻を推定することで、算出し、前記表示部に表示する
ことを特徴とする請求項６に記載のデータ復旧可能時刻の推定値の算出方法。
【請求項１０】
前記管理計算機は、
所定時刻を基準にして、前記データ復旧可能時刻の推定値を、そのときの最古あるいはそれに準ずるデータが前記バッファに格納された時刻を推定することで、算出し、前記表示部に表示する
ことを特徴とする請求項６に記載のデータ復旧可能時刻の推定値の算出方法。
【請求項１１】
１台以上のストレージ装置、および、前記１台以上のストレージ装置へデータのリード／ライトを行なう１台以上のホスト計算機を有する第１のサイトと、
１台以上のストレージ装置、および、前記１台以上のストレージ装置へデータのリード／ライトを行なう１台以上のホスト計算機からなる第２のサイトと、
前記第１のサイトのホスト計算機を管理する管理計算機と、を含み、前記第１のサイトのストレージ装置から前記第２のサイトのストレージ装置に対して非同期リモートコピーを行うストレージシステムにおける前記管理計算機であって、
前記第１のサイトのストレージ装置のバッファに滞留しているデータに関し、最新あるいはそれに準ずるデータを所定の時間間隔で時刻情報とともに蓄積しておき、
当該蓄積した情報と、所定時刻における、最古あるいはそれに準ずるデータ、および、滞留しているデータ数のうち少なくとも１つの情報と、に基づき、所定時刻を基準にして、前記第２のサイトのストレージ装置に記憶されたデータを用いて復旧することのできる時刻であるデータ復旧可能時刻の推定値を算出し、表示部に表示する
ことを特徴とする管理計算機。
【請求項１２】
前記所定時刻と前記データ復旧可能時刻との差分をデータ損失時間の推定値として算出し、前記表示部に表示することを特徴とする請求項１１に記載の管理計算機。
【請求項１３】
前記所定の監視間隔は、
予めユーザによって設定された値であることを特徴とする請求項１１に記載の管理計算機。
【請求項１４】
前記第１のサイトのストレージ装置のバッファに滞留しているデータに関し、最新あるいはそれに準ずるデータの情報をそのシーケンス番号とともに蓄積し、
当該蓄積した情報と、所定時刻における最古あるいはそれに準ずるデータのシーケンス番号とに基づいて、所定時刻を基準にして、前記データ復旧可能時刻の推定値を、前記最古あるいはそれに準ずるデータが前記バッファに格納された時刻を推定することで、算出し、前記表示部に表示する
ことを特徴とする請求項１１に記載の管理計算機。
【請求項１５】
所定時刻を基準にして、前記データ復旧可能時刻の推定値を、そのときの最古あるいはそれに準ずるデータが前記バッファに格納された時刻を推定することで、算出し、前記表示部に表示する
ことを特徴とする請求項１１に記載の管理計算機。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、複数のストレージ装置間で非同期リモートコピーを行うストレージシステムにおいて、データ復旧可能時刻を監視する技術に関する。
【背景技術】
【０００２】
近年、企業情報システムにおける無停止運用やデータ保護の重要性は、マーケットのグローバル化や、Ｗｅｂによる２４時間３６５日のサービス提供などを背景に、高まる一方である。ところが、テロや自然災害など、企業情報システムの停止やデータ損失に繋がりかねないリスクは数多く存在する。
【０００３】
これらのリスクを軽減する技術の一つが、ストレージシステムにおける非同期リモートコピーである。ここで、リモートコピーとは、ストレージ装置におけるあるボリュームのデータを別のストレージ装置のボリュームにコピーすることにより、データを二重化する技術である。
【０００４】
また、リモートコピーのタイプとしては、大きく、ホストの書き込みの延長でデータのコピーをリアルタイムに行う同期（ＲＣＳ(Remote Copy Synchronous)）と、ホストの書き込みとは別の処理でデータのコピーを行う非同期の２つの型がある。さらに、非同期リモートコピーの場合は、変更したデータ履歴を、メモリに格納する方法（ＲＣＡ(Remote Copy Asynchronous)）と、メモリとボリュームを併用して格納する方法（ＲＣＤ(Remote Copy asynchronous with Disk)：ディスク利用非同期リモートコピー）がある。本発明は、非同期リモートコピー（ＲＣＡとＲＣＤの両方）を対象とする。
【０００５】
なお、一般に、通信性能などの都合上、プライマリサイト（本来、業務を行っている場所）とリモートサイト（業務継続支援のための別の場所）の間が近距離（例えば１００ｋｍ未満）であれば同期リモートコピーを無理なく採用できるが、遠距離（例えば１００ｋｍ以上）であれば非同期リモートコピーを採用するのが望ましいとされている。つまり、テロ対策だけならともかく、大地震などの自然災害を想定すると、プライマリサイトとリモートサイトの間を遠距離とする必要があり、その場合、非同期リモートコピーを採用するのが望ましいことになる。
【０００６】
すなわち、非同期リモートコピーを用いることで、プライマリサイトとリモートサイトの間が遠距離の場合でも、プライマリサイトがテロや自然災害などで被災したとき、リモートサイトでの業務継続を支援することができる。このため、非同期リモートコピーでは、いつ発生するか予測できないテロや自然災害に対し、プライマリサイトとリモートサイトの両方にストレージ装置を配置する。その上で、プライマリサイトとリモートサイトに格納されているデータの内容を極力一致させることによって被災時にデータの損失を最小限に抑えつつ、業務継続を実現することができる。
【０００７】
例えば、従来から、プライマリサイトとリモートサイトに配置されたストレージ装置間で、物理ボリュームまたは論理ボリュームの内容を、非同期リモートコピーを用いて二重化し、プライマリサイトが被災した場合に、業務をリモートサイト側のストレージ装置を使用して継続する技術が実用化されている。
【０００８】
非同期リモートコピーを行う場合、プライマリサイトとリモートサイトのストレージ装置へのそれぞれのデータ書き込みにタイムラグがある。そのため、プライマリサイトで障害が発生した場合に備え、リモートサイトのストレージ装置に格納したデータがプライマリサイトのどの時点のデータに相当するかを監視する必要がある。ここで、所定の時刻を基準にして、リモートサイトのストレージ装置に格納されている最新のデータがプライマリサイトのストレージ装置に書き込まれていた時刻をデータ復旧可能時刻と呼ぶ。また、プライマリサイトのストレージ装置と、リモートサイトのストレージ装置に格納されているデータの時刻のずれをデータ損失時間と呼ぶ。
【０００９】
例えば、プライマリサイトのストレージ装置には、２１時００分００秒に発行されたライトデータが書き込まれているとする。リモートサイトのストレージ装置には、プライマリサイトで２０時５９分２０秒に発行されたライトデータは書き込まれているが、それ以降のライトデータは書き込まれていないものとする。このとき、データ復旧可能時刻は２０時５９分２０秒であり、データ損失時間は４０秒である。
【００１０】
例えば、特許文献１には、メインフレーム環境において、ホストがライトＩ／Ｏ（Input/Output）（ライト要求）に埋め込んだタイムスタンプ（時刻情報）を利用して、データ復旧可能時刻の監視を行う技術が開示されている。
特許文献２には、ＳＡＮ（Storage Area Network）環境においてデータ復旧可能時刻の監視を行う技術が開示されている。
【特許文献１】米国特許出願公開第２００２／０１０３９８０号明細書
【特許文献２】米国特許出願公開第２００６／０２７７３８４号明細書
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１では、ライトＩ／Ｏに時刻情報を付与できるメインフレーム技術を前提としている。ＳＡＮ環境において用いられているFibre Channel Protocolでは、ライトＩ／Ｏに時刻情報が付与されていないため、メインフレーム以外の環境に特許文献１の技術を適用することは難しい。
【００１２】
また、特許文献２には、プライマリサイトとリモートサイトのストレージ装置へのそれぞれのデータ書き込みのタイムラグであるデータ損失時間を表示する技術が開示されている。しかし、データ復旧可能時刻を表示する技術は開示されておらず、また、データ損失時間を監視する場合の精度について開示されていない。
【００１３】
本発明は、前記問題に鑑みてなされたものであり、複数のストレージ装置間で非同期リモートコピーを行うストレージシステムにおいて、メインフレーム技術以外にも適用可能で、監視誤差を所定範囲内に抑えながらデータ復旧可能時刻を監視する技術を提供することを課題とする。
【課題を解決するための手段】
【００１４】
本発明は、１台以上のストレージ装置、および、１台以上のストレージ装置へデータのリード／ライトを行なう１台以上のホスト計算機を有する第１のサイトと、１台以上のストレージ装置、および、１台以上のストレージ装置へデータのリード／ライトを行なう１台以上のホスト計算機からなる第２のサイトと、第１のサイトのホスト計算機を管理する管理計算機と、を含み、第１のサイトのストレージ装置から第２のサイトのストレージ装置に対して非同期リモートコピーを行うストレージシステムである。
管理計算機は、第１のサイトのストレージ装置のバッファに滞留しているデータに関し、最新あるいはそれに準ずるデータを所定の時間間隔で時刻情報とともに蓄積しておき、当該蓄積した情報と、所定時刻における、最古あるいはそれに準ずるデータ、および、滞留しているデータ数のうち少なくとも１つの情報と、に基づき、所定時刻を基準にして、第２のサイトのストレージ装置に記憶されたデータを用いて復旧することのできる時刻であるデータ復旧可能時刻の推定値を算出し、表示部に表示することを特徴とする。
その他の手段については後記する。
【発明の効果】
【００１５】
本発明によれば、複数のストレージ装置間で非同期リモートコピーを行うストレージシステムにおいて、メインフレーム技術以外にも適用可能で、監視誤差を所定範囲内に抑えながらデータ復旧可能時刻を監視する技術を提供することができる。
【発明を実施するための最良の形態】
【００１６】
以下、図面を参照（言及図以外の図も適宜参照）して、本発明を実施するための最良の形態（以下、「実施形態」という。）について説明する。理解を容易にするために、まず、本発明の概要について説明する。
【００１７】
１．本発明の概要
１．１  非同期リモートコピー
本発明が対象とする非同期リモートコピーについて、図１を用いて説明する。図１は、本発明の概要を示す説明図である。本発明に係るストレージシステムＳは、管理計算機１１００と、この管理計算機１１００と接続する一つ以上のホスト計算機１２００Ａと、この一つ以上のホスト計算機１２００Ａと接続するストレージ装置１３００Ａと、このストレージ装置１３００Ａと接続するストレージ装置１３００Ｂと、このストレージ装置１３００Ｂと接続するホスト計算機１２００Ｂと、を備えて構成される。
【００１８】
プライマリサイト１７００（第１のサイト）は、業務が行われているサイトである。リモートサイト１８００（第２のサイト）は、プライマリサイト１７００が被災した場合に業務を継続するサイトである。各サイトには、業務を行うホスト計算機１２００（１２００Ａ，１２００Ｂの総称。以下、他の符号についても同様）と、業務データを格納するストレージ装置１３００が配置されている。
【００１９】
プライマリサイト１７００に配置されたホスト計算機１２００Ａ上で実行されている業務は、ストレージ装置１３００Ａ上の論理ディスク１３１５Ａを使用している。ホスト計算機１２００Ａは、業務遂行に伴い、ライトＩ／Ｏ（ライト要求）を発行する。ライトＩ／Ｏは、ライトコマンドとライトデータとから構成される。本実施形態において、ＯＳ（Operating System）やアプリケーションが発行したライトデータがネットワーク上を転送するための転送単位に分割されたものを、フレーム１００（以下、単に「フレーム」ともいう。）と呼ぶ。フレーム１００は、例えば、ＳＡＮ環境においては、ＦＣＰ（Fibre Channel Protocol）のフレームである。
【００２０】
ここで、プライマリサイト１７００に配置されたストレージ装置１３００Ａはバッファ１３１８を持つ。ホスト計算機１２００Ａから発行されたフレーム１００は、プライマリサイトのストレージ装置１３００Ａ上の論理ディスク１３１５Ａとバッファ１３１８の両方に書き込まれる。ストレージ装置１３００Ａは、フレーム１００に対応するライトデータが論理ディスク１３１５Ａに書き込まれた時点で、ホスト計算機１２００Ａに対して書き込み完了の応答を返す。バッファ１３１８に書き込まれたフレーム１００に対応するライトデータは、論理ディスク１３１５Ａへの書き込みとは非同期に（別の処理によって）リモートサイト１８００に転送される。そして、リモートサイト１８００のストレージ装置１３００Ｂは当該装置が有する論理ディスク１３１５Ｂに受信したライトデータを書き込む。
【００２１】
または、ストレージ装置１３００Ａはホスト計算機１２００Ａから受信したライトデータをストレージ装置１３００Ａのキャッシュメモリに格納し、格納完了後にキャッシュメモリに格納したデータをバッファ１３１８に格納されたものと管理することで、キャッシュメモリ上のライトデータをストレージ装置１３００Ｂに転送してもよい。このとき、キャッシュメモリから論理ディスク１３１５Ａに対応するディスク装置への書き戻しは当該ストレージ装置間の転送とは別なタイミングで行ってもよい。
【００２２】
なお、論理ディスク１３１５Ｂを用いてホスト計算機１２００Ｂが業務を再開するためには、ホスト計算機１２００Ｂが読み出しを行う時点の論理ディスク１３１５Ｂはコンシステンシ（整合性）が保たれている必要がある。ここで、コンシステンシとは論理ディスク１３１５に対して書き込まれたデータの順序に関する概念である。
【００２３】
一般に、ホスト計算機が、最初のデータＡとその次のデータＢを論理ディスク１３１５へ書き込む場合、ストレージ装置からデータＡの書き込み完了通知を受けてからデータＢを書き込むようにすれば、コンシステンシがあるとみなすことができる。
【００２４】
当該コンシステンシ確保のための最も簡単な処理は、全てのフレーム１００を、ホスト計算機１２００Ａから発行された順序を保ったまま、論理ディスク１３１５Ｂに書き込むことである。しかし、フレームに付与された順序情報を参照しつつライトデータを格納することで、論理ディスク１３１５Ｂにアクセスする時点の当該ディスクのデータのコンシステンシが保証されているのであれば、どのような方法でライトデータを論理ディスク１３１５Ｂに書き込んでもよい。
【００２５】
このように、プライマリサイト１７００への書き込みと、リモートサイト１８００への書き込みを非同期に行うことによって、ホスト計算機１２００Ａに対する応答性能に影響を及ぼさずに、プライマリサイト１７００とリモートサイト１８００の論理ディスク１３１５のデータの内容を極力一致させることが可能となる。また、リモートコピーの処理をストレージ装置１３００にて行うため、ホスト計算機１２００の負荷を軽減可能である。
【００２６】
なお、ホスト計算機１２００Ａは必ずしも一つである必要はなく、複数存在してもよい。複数のホスト計算機１２００Ａが連携して所定の処理を実現する場合、ストレージ装置１３００がリモートコピーを行うことで、複数のホスト計算機１２００Ａが用いるデータ全体にわたってコンシステンシが確保されたデータを提供可能となる。
ホスト計算機１２００Ｂの構成についてもホスト計算機１２００Ａと同様に複数存在してもよい。
【００２７】
１．２  データ復旧可能時刻
本発明によって監視されるデータ復旧可能時刻について説明する。
非同期リモートコピーでは、前記したようにプライマリサイト１７００とリモートサイト１８００へのフレーム１００の書き込みにタイムラグが存在する。プライマリサイト１７００が被災した際には、リモートサイト１８００においてこのタイムラグの分だけデータを失った状態で回復しなければならない。したがって、どれくらいのタイムラグがあるのか、すなわち、被災時にはいつのデータを使って回復できるかを監視する必要がある。前記したように、データ復旧可能時刻とは、所定の時刻（例えば２１時００分００秒）を基準にして（例えば、所定の時刻にプライマリサイト１７００で障害が発生したと仮定した場合）、リモートサイト１８００のストレージ装置１３００Ｂに格納されている最新のデータがプライマリサイト１７００のストレージ装置１３００Ａに書き込まれた時刻（例えば２０時５９分２０秒）のこと、つまり、データの復旧が可能となる最新の時刻のことである。
【００２８】
１．３  処理概要
プライマリサイト１７００からリモートサイト１８００へのフレーム１００の転送に要する時間は、サイト間のネットワークに大規模なストレージシステムで一般的に用いられるFibre Channelを使用した場合、通常ミリ秒オーダである。また、リモートサイト１８００におけるフレーム１００の論理ディスク１３１５Ｂへの書き込みも、通常ミリ秒オーダである。一方、フレーム１００がバッファ１３１８に滞留している時間は、最長５分程度である。したがって、データ復旧可能時刻の監視精度は秒単位で充分である。つまり、データ復旧可能時刻は、フレーム１００がバッファ１３１８に滞留している時間にほぼ依存すると考えることができる。
【００２９】
そこで、本発明では、下記に示す方法でデータ復旧可能時刻を監視する。その際、下記の二点を前提とする。
一点目は、ホスト計算機１２００Ａは、発行するフレーム１００にシーケンス番号を埋め込んでいることである。この前提は、Fibre Channelを用いる場合に一般的に実現されている。
【００３０】
二点目は、ストレージ装置１３００Ａが、バッファ１３１８の入口と出口それぞれに存在している前記フレーム１００のシーケンス番号を取得する機能を持つことである。例えば、図１において、バッファ１３１８の入口でシーケンス番号「３７４５」のフレーム１００（最新あるいはそれに準ずるデータ）を、また、バッファ１３１８の出口でシーケンス番号「１１５０」のフレーム１００（最古あるいはそれに準ずるデータ）を取得できるものとする。なお、ここで、バッファ１３１８にはＦＩＦＯ（First In First Out：先入れ先出し方式）が採用されているものとする。
【００３１】
前記二つの前提が成り立つときに、管理計算機１１００は、繰り返し（好適には定期的に）、ホスト計算機１２００Ａを介して、ストレージ装置１３００Ａ内のバッファ１３１８の入口に存在しているフレーム１００のシーケンス番号を取得し、また、合わせて、その取得した時点でのホスト計算機１２００Ａの時刻を取得し、これらの組を配列として保持しておく。
【００３２】
ある時点において、データ復旧可能時刻を取得したい場合、ホスト計算機１２００Ａを介して、ストレージ装置１３００Ａ内のバッファ１３１８の出口に存在しているフレーム１００（リモートサイト１８００のストレージ装置１３００Ｂに格納されている最新のフレームの隣のフレームであり、バッファ１３１８の入口に存在していた時刻は当該最新のフレームとほぼ同時刻）のシーケンス番号を取得する。このシーケンス番号を持つフレーム１００がバッファ１３１８の入口に存在していた時刻がデータ復旧可能時刻になる。この時刻は、前記配列を用いて近似的に求めることができる（詳細は後記）。
【００３３】
以上により、非同期リモートコピーにおいて、ホスト計算機１２００Ａが管理している時刻でデータ復旧可能時刻を監視することが可能になる。さらには、図１１に示す監視画面１０６００のように、その結果をＧＵＩ(Graphical User Interface）に表示することも可能である。
【００３４】
２．ストレージシステムの構成
２．１  構成の概要
図２〜図５を参照して、ストレージシステムＳの構成について説明する。図２は、本実施形態のストレージシステムの構成を示すブロック図である。ストレージシステムＳは、管理計算機１１００、プライマリサイト１７００のホスト計算機１２００Ａとストレージ装置１３００Ａ、リモートサイト１８００のホスト計算機１２００Ｂとストレージ装置１３００Ｂを備えて構成される。
【００３５】
ストレージシステムＳでは、ストレージ装置１３００（１３００Ａ，１３００Ｂ）とホスト計算機１２００（１２００Ａ，１２００Ｂ）がデータネットワーク１５００（１５００Ａ，１５００Ｂ）で互いに接続される。なお、本実施形態では、データネットワーク１５００はＳＡＮとするが、ＩＰ（Internet Protocol）ネットワークであっても、あるいはこれら以外のデータ通信用ネットワークであってもよい。
【００３６】
ホスト計算機１２００と管理計算機１１００は管理ネットワーク１４００を介して接続される。本実施形態では、管理ネットワーク１４００はＩＰネットワークとするが、ＳＡＮであっても、あるいはこれら以外のデータ通信用ネットワークであってもよい。また、本実施形態では、管理計算機１１００はストレージ装置１３００と直接接続されず、ホスト計算機１２００を介して情報を取得するものとするが、直接接続するような構成でも本発明を実施可能である。さらに、本実施形態では、データネットワーク１５００と管理ネットワーク１４００は別ネットワークであるとしたが、これらが同一ネットワークであってもよいし、管理計算機１１００とホスト計算機１２００は同一計算機であっても構わない。
【００３７】
なお、説明の都合上、図２では、ストレージ装置１３００を２台、ホスト計算機１２００を２台、管理計算機１１００を１台としたが、本発明はこれらの数に限定されない。また、本実施形態では、管理計算機１１００は、ホスト計算機１２００Ａ，１２００Ｂに接続されているものとした。しかし、プライマリサイト１７００のホスト計算機１２００Ａだけに接続されていても、本発明を実施可能である。本実施形態において、管理計算機１１００が、ホスト計算機１２００Ｂに接続されている理由は、プライマリサイト１７００とリモートサイト１８００の役割が入れ替わる場合があるためである。具体的には、後記するように、プライマリサイト１７００が被災した場合、正副逆転指示により、データの転送の向きがリモートサイト１８００からプライマリサイト１７００の方向に変更される。
【００３８】
ホスト計算機１２００とストレージ装置１３００とこれらを接続するデータネットワーク１５００の組を本実施形態ではサイトと呼ぶ。複数のサイトは、一般的にお互い地理的に離れた位置に配置される。あるサイトが被災した場合でも他のサイトで業務を継続できるようにするためである。図２では、業務を行うプライマリサイト１７００と、そのバックアップサイトであるリモートサイト１８００からなる。このような構成を２データセンタ（以下、２ＤＣとする。）構成と呼称する。
【００３９】
２ＤＣ構成では、プライマリサイト１７００とリモートサイト１８００の間で、リモートネットワーク１６００を介してリモートコピーが行われる。リモートコピー技術によれば、一方のサイトのボリュームに障害が発生して動作不可能な状態に陥っても、他方のサイトのボリュームに格納されているデータを用いてシステム動作を続行することが可能である。リモートコピーの関係にあるコピー元とコピー先の２つのボリュームのペアをコピーペアと呼ぶ。
【００４０】
以下、管理計算機１１００、ホスト計算機１２００、ストレージ装置１３００の構成について説明する。
【００４１】
２．２  管理計算機の構成
図３は、管理計算機１１００の構成を示す図である。管理計算機１１００は、キーボードやマウスなどの入力装置１１３０、ＣＰＵ（Central Processing Unit）１１４０、ＣＲＴ（Cathode Ray Tube）などの表示装置１１５０（表示部）、メモリ１１２０、ローカルディスク１１１０、システム管理のためにホスト計算機１２００とデータや制御命令を送受信する管理Ｉ／Ｆ（Interface）１１６０を有している。
【００４２】
ローカルディスク１１１０は、管理計算機１１００に接続された（あるいは、管理計算機１１００の内部に搭載された）ハードディスクなどのディスク装置であり、データ復旧可能時刻監視プログラム１１１２が記憶されている。
データ復旧可能時刻監視プログラム１１１２は、管理計算機１１００のメモリ１１２０にロードされ、ＣＰＵ１１４０によって実行される。データ復旧可能時刻監視プログラム１１１２は、非同期リモートコピーのデータ復旧可能時刻の監視を行うための機能をキーボードやマウスなどの入力装置１１３０やグラフィカルユーザインターフェース（ＧＵＩ：Graphical User Interface）などの表示装置１１５０を介して提供するプログラムである。
【００４３】
メモリ１１２０上の流入部Ｉ／Ｏテーブル１１２４および流出部Ｉ／Ｏテーブル１１２６については後記する。
管理Ｉ／Ｆ１１６０は、管理ネットワーク１４００に対するインターフェースであって、ホスト計算機１２００とデータや制御命令の送受信を行う。
【００４４】
２．３  ホスト計算機の構成
図４は、ホスト計算機１２００の構成を示す図である。ホスト計算機１２００は、キーボードやマウスなどの入力装置１２４０、ＣＰＵ１２２０、ＣＲＴなどの表示装置１２５０、メモリ１２３０、ストレージＩ／Ｆ１２６０、ローカルディスク１２１０および時刻生成装置１２７０を有している。
【００４５】
ストレージＩ／Ｆ１２６０は、データネットワーク１５００に対するインターフェースであって、ストレージ装置１３００とデータや制御命令の送受信を行う。ローカルディスク１２１０は、ホスト計算機１２００に接続された（あるいは、ホスト計算機１２００の内部に搭載された）ハードディスクなどのディスク装置であり、アプリケーション１２１２、リモートコピー操作要求プログラム１２１４、リモートコピー状態取得プログラム１２１５、シーケンス番号取得要求プログラム１２１６および時刻取得プログラム１２１７を格納している。
【００４６】
アプリケーション１２１２は、ホスト計算機１２００のメモリ１２３０上にロードされ、ＣＰＵ１２２０によって実行される。アプリケーション１２１２は、ストレージ装置１３００上のボリュームに対してデータを読み書きすることにより処理を実行するプログラムであり、例えば、ＤＢＭＳ（Data Base Management System）やファイルシステムなどである。なお、説明の都合上、図４ではアプリケーション１２１２を１つとしたが、本発明はこの数に限定されない。
【００４７】
時刻取得プログラム１２１７は、ユーザや他プログラムからの指示に基づき、ホストが管理している時刻を取得し、要求元に返すプログラムである。
リモートコピー操作要求プログラム１２１４、リモートコピー状態取得プログラム１２１５、シーケンス番号取得要求プログラム１２１６および時刻取得プログラム１２１７は、各々ホスト計算機１２００のメモリ１２３０上にロードされ、ＣＰＵ１２２０によって実行される。
【００４８】
リモートコピー操作要求プログラム１２１４は、ユーザや他プログラムからの指示に基づき、ストレージ装置１３００上の指定されたリモートコピーの操作を要求するプログラムである。どのような操作を要求することができるかについては後記する。
リモートコピー状態取得プログラム１２１５は、ユーザや他プログラムからの指示に基づき、ストレージ装置１３００からリモートコピーの状態を取得し、要求元に返すプログラムである。どのような状態が取得可能であるかについては後記する。
【００４９】
シーケンス番号取得要求プログラム１２１６は、ユーザや他プログラムからの指示に基づき、ストレージ装置１３００上のシーケンス番号取得プログラム１３４０（図５参照）を呼び出す。さらに、シーケンス番号取得要求プログラム１２１６は、時刻取得プログラム１２１７を呼び出し、現在時刻を取得する。シーケンス番号取得要求プログラム１２１６は、ストレージ装置１３００上のシーケンス番号取得プログラム１３４０（図５参照）からの返り値と、時刻取得プログラム１２１７から取得した現在時刻を呼び出し元に返す。
【００５０】
２．４  ストレージ装置の構成
図５は、ストレージ装置１３００の構成を示す図である。ストレージ装置１３００は、データを格納するディスク装置１３１０、ストレージ装置１３００の制御を行うディスクコントローラ１３２０を備えて構成されている。
【００５１】
ディスクコントローラ１３２０には、ホストＩ／Ｆ１３２８、リモートＩ／Ｆ１３２６、ディスクＩ／Ｆ１３２５、メモリ１３２１、ＣＰＵ１３２３、ローカルディスク１３２７が設けられている。
ホストＩ／Ｆ１３２８は、データネットワーク１５００に対するインターフェースであって、ホスト計算機１２００とデータや制御命令の送受信を行う。
【００５２】
リモートＩ／Ｆ１３２６は、リモートネットワーク１６００に対するインターフェースであって、サイト間にまたがって行われるリモートコピーのデータ転送に使用される。
ディスクＩ／Ｆ１３２５は、ディスク装置１３１０に対するインターフェースであってデータや制御命令の送受信を行う。
メモリ１３２１上のリモートコピー定義テーブル１３２２については後記する。
【００５３】
ローカルディスク１３２７は、ディスクコントローラ１３２０に接続されたハードディスクなどのディスク装置であり、Ｉ／Ｏ処理プログラム１３３４、リモートコピー制御プログラム１３３６、ディスクアレイ制御プログラム１３３８およびシーケンス番号取得プログラム１３４０が格納されている。
【００５４】
Ｉ／Ｏ処理プログラム１３３４は、ディスクコントローラ１３２０のメモリ１３２１にロードされ、ＣＰＵ１３２３によって実行される。Ｉ／Ｏ処理プログラム１３３４は、ホスト計算機１２００や他のストレージ装置１３００からの書き込み要求、読み出し要求を受け付け、書き込み要求であればディスク装置１３１０への書き込みを、読み出し要求であればディスク装置１３１０から要求されたデータの読み出しを行う。
【００５５】
リモートコピー制御プログラム１３３６は、ディスクコントローラ１３２０のメモリ１３２１にロードされ、ＣＰＵ１３２３によって実行される。
リモートコピー制御プログラム１３３６は、ユーザ、ホスト計算機１２００もしくは他プログラムからの指示に基づき、リモートコピー定義テーブル１３２２を参照してリモートコピーの制御およびリモートコピーの状態取得を行う。コピーペアの制御として、コピーペアを新規に作成するコピーペアの形成、同期の関係を中断するコピーペアの一時停止、一時停止状態から副側のボリュームの内容を正側のボリュームの内容と一致させるコピーペアの再同期といった制御がある。コピーペアの状態の取得とは、それぞれのコピーペアが上記のどの制御によりどの状態になっているかを取得することである。コピーペアの状態遷移については後記する。
【００５６】
ディスクアレイ制御プログラム１３３８は、ディスクコントローラ１３２０のメモリ１３２１にロードされ、ＣＰＵ１３２３によって実行される。ディスクアレイ制御プログラム１３３８は、ディスクコントローラ１３２０に接続されている複数のハードディスクドライブ１３１２Ａ、１３１２Ｂ、１３１２Ｃを制御して、例えば、論理ディスク１３１５として示すような形で再構成する機能を持つ。ディスクアレイの制御方法は、例えば、ＲＡＩＤ（Redundant Array of Independent Disks）のようなものであってもよいが、これに限定されない。
【００５７】
シーケンス番号取得プログラム１３４０は、ディスクコントローラ１３２０のメモリ１３２１にロードされ、ＣＰＵ１３２３によって実行される。シーケンス番号取得プログラム１３４０は、ユーザ、ホスト計算機１２００もしくは他プログラムからの指示に基づき、ストレージ装置１３００上のバッファ１３１８に滞留しているフレーム１００のうち、入口に滞留しているフレーム１００のシーケンス番号と、出口に滞留しているフレーム１００のシーケンス番号を取得し、要求元に返すプログラムである。シーケンス番号とは、フレーム１００に付与されるＩＤである。例えば、Fibre Channel Protocolを用いたストレージシステムにおいて、ホスト計算機からフレーム１００が発行される際、個々のフレーム１００に対してシーケンス番号が付与されている。
【００５８】
なお、本実施形態では、プログラム１３３４，１３３６，１３３８および１３４０がディスクコントローラ１３２０上のローカルディスク１３２７に記憶されているものとしたが、本発明はこれに限定されない。例えば、これらのプログラム１３３４，１３３６，１３３８および１３４０を、ディスクコントローラ１３２０上にフラッシュメモリなどを設けて、そのフラッシュメモリに記憶することも、ディスク装置１３１０内の任意のディスクに記憶することも可能である。
【００５９】
ディスク装置１３１０は、複数のハードディスクドライブ（ＨＤＤ）である１３１２Ａ、１３１２Ｂ、１３１２Ｃから構成される。なお、ディスク装置は、ソリッドステートドライブ（ＳＳＤ）などハードディスクドライブ以外のものから構成されていても構わない。なお、説明の都合上、図５ではボリュームの数を３個としたが、本発明はこれに限定されない。なお、前記したように、ディスク装置１３１０内には論理ディスク１３１５が構成される。
【００６０】
ディスク装置１３１０内の論理ディスク１３１５には、バッファ１３１８（１３１８Ａ、１３１８Ｂ）が構成される。非同期リモートコピーでは、プライマリサイト１７００のストレージ装置１３００Ａ内のディスク装置１３１０への書き込みとは非同期に、リモートサイト１８００のストレージ装置１３００Ｂ内のディスク装置１３１０への書き込みが行われる。バッファ１３１８は、リモートサイト１８００のストレージ装置１３００Ｂ内のディスク装置１３１０への書き込みを非同期に行うために、データを一時蓄積する用途で使用される。
【００６１】
なお、図５には図示していないが、ストレージ装置１３００Ａおよびストレージ装置１３００Ｂは各ホスト計算機１２００からのライトデータの一部または全てや、過去に読み出し要求で各ホスト計算機１２００に転送したリードデータの一部または全てを一時格納するキャッシュメモリを有する。ストレージ装置１３００は、当該ホスト計算機１２００からの読み出し要求に応じてキャッシュメモリに格納したデータ（すなわち、過去のライトデータの一部または全てや、過去のリードデータの一部または全て）をホスト計算機１２００に転送する。なお、当該キャッシュメモリの役割をメモリ１３２１が担ってもよい。
【００６２】
なお、バッファ１３１８は複数の論理ディスク１３１５にまたがっていても構わない。また、バッファ１３１８は必ずしもディスク装置１３１０内に配置されている必要はない。すなわち、バッファ１３１８は、ディスクコントローラ１３２０上のローカルディスク１３２７やメモリ１３２１上、またはキャッシュメモリに配置されていても構わず、またこれら記憶領域を併用してもよい。特にキャッシュメモリの場合は、当該非同期リモートコピーのバッファとして使用される領域が物理的に区切られている必要もなく、連続したアドレスである必要もなく、単にリモートコピー対象のデータが格納されていればよい。
また、説明の都合上、図５ではバッファ１３１８の数を２つとしたが、本発明はこれに限定されない。
【００６３】
３．非同期リモートコピー
図６、図７を参照して、本実施形態が対象としている非同期リモートコピーの具体例について説明する。
【００６４】
３．１  リモートコピー定義テーブル
図６は、ストレージ装置１３００内のディスクコントローラ１３２０上のメモリ１３２１に作成されるリモートコピー定義テーブル１３２２の一例を示す図である。
【００６５】
リモートコピー定義テーブル１３２２は、プライマリサイトフィールド６１００とリモートサイトフィールド６２００に大別される。各々のフィールドには、コピーペアを構成するプライマリサイト１７００側の論理ディスク１３１５とリモートサイト１８００側の論理ディスク１３１５の情報が格納される。
【００６６】
プライマリサイトフィールド６１００およびリモートサイトフィールド６２００は、ストレージ装置フィールド６１１０（６１１０Ａ，６１１０Ｂ）および論理ディスク番号フィールド６１２０（６１２０Ａ，６１２０Ｂ）を持つ。ストレージ装置フィールド６１１０には、論理ディスク１３１５が格納されているストレージ装置１３００のＩＤが格納される。ストレージ装置１３００はＩＤにより一意に識別できる。ＩＤは、例えばＩＰアドレスなどである。論理ディスク番号フィールド６１２０には、論理ディスク１３１５の番号が格納される。この番号は、そのストレージ装置１３００内で一意である。
【００６７】
行６０１０〜６０５０は、それぞれ、コピーペアの情報を示す。例えば、行６０１０は、プライマリサイト１７００のストレージ装置１３００Ａに格納されている論理ディスク１３１５「ＬＤＥＶ０１」と、リモートサイト１８００のストレージ装置１３００Ｂに格納されている論理ディスク１３１５「ＬＤＥＶ０１」がコピーペアを構成していることを示している。したがって、リモートコピー定義テーブル１３２２は、プライマリサイト１７００のストレージ装置１３００Ａに格納されている５つの論理ディスク１３１５とリモートサイト１８００のストレージ装置１３００Ｂに格納されている５つの論理ディスク１３１５が、５つのコピーペアを構成していることを示している。これら、５つのコピーペアは、グループとして扱われる。これをコピーグループと呼ぶ。
【００６８】
なお、本実施形態では、プライマリサイト１７００とリモートサイト１８００にそれぞれ１台しかストレージ装置１３００がない構成を例に挙げているが、２台以上あっても構わない。この場合、プライマリサイト１７００の複数のストレージ装置１３００Ａにまたがってリモートコピー定義テーブル１３２２が定義されていても構わないし、リモートサイト１８００の複数のストレージ装置１３００Ｂにまたがってリモートコピー定義テーブル１３２２が定義されていても構わない。また、本実施形態では、ストレージ装置１３００が、リモートコピー定義テーブル１３２２を１つ持つものとした。しかし、ストレージ装置１３００は、リモートコピー定義テーブル１３２２を複数持っていても構わない。すなわち、コピーグループを複数持つことができる。
【００６９】
３．２  コピーペアの状態遷移
図７は、非同期リモートコピーのコピーペアの状態遷移図である。
図７の下方に示した凡例のとおり、四角形がコピーペアの状態を表し、六角形がユーザやプログラムからの操作および前記操作によって発生するコピーペアの動作を表す。
【００７０】
非同期リモートコピーのコピーペアの状態は４つ存在する。
Ｐａｉｒ７１１０は、プライマリサイト１７００の論理ディスク１３１５とリモートサイト１８００の論理ディスク１３１５の間で非同期リモートコピーが行われている状態である。すなわち、プライマリサイト１７００の論理ディスク１３１５に書き込まれたフレーム１００が、非同期に（別の処理によって）リモートサイト１８００の論理ディスク１３１５に書き込まれる。
【００７１】
Ｓｉｍｐｌｅｘ７１２０は、プライマリサイト１７００の論理ディスク１３１５とリモートサイト１８００の論理ディスク１３１５の間にコピーペアの関係がない状態を表す。すなわち、プライマリサイト１７００の論理ディスク１３１５に書き込まれたフレーム１００は、リモートサイト１８００には書き込まれない。
【００７２】
Ｓｕｓｐｅｎｄ７１３０は、プライマリサイト１７００の論理ディスク１３１５とリモートサイト１８００の論理ディスク１３１５の間の非同期リモートコピーを一時中断している状態である。すなわち、プライマリサイト１７００の論理ディスク１３１５に書き込まれたフレーム１００は、リモートサイト１８００には書き込まずに差分情報として管理される。
【００７３】
正副逆転Ｐａｉｒ７１４０は、プライマリサイト１７００の論理ディスク１３１５とリモートサイト１８００の論理ディスク１３１５の役割が入れ替わった状態で、非同期リモートコピーが行われている状態である。すなわち、リモートサイト１８００の論理ディスク１３１５に書き込まれたフレーム１００が、非同期に（別の処理によって）プライマリサイト１７００の論理ディスク１３１５に書き込まれる。
【００７４】
なお、データ復旧可能時刻を取得できるのは、Ｐａｉｒ７１１０および正副逆転Ｐａｉｒ７１４０の状態のときのみである。すなわち、Ｓｉｍｐｌｅｘ７１２０およびＳｕｓｐｅｎｄ７１３０のときには、プライマリサイト１７００からリモートサイト１８００への非同期リモートコピーが行われないため、データ復旧可能時刻を監視する意味がない。
【００７５】
次に、ユーザやプログラムからの操作および前記操作により発生するコピーペアの状態遷移を説明する。
Ｓｉｍｐｌｅｘ７１２０のときに、コピーペアの形成指示を行うと、Initial Copyが開始される（７２１０）。Initial Copyとは、非同期リモートコピーを開始する前に、プライマリサイト１７００の論理ディスク１３１５のデータをリモートサイト１８００の論理ディスク１３１５に全てコピーすることである。Initial Copyが終了すると、プライマリサイト１７００の論理ディスク１３１５とリモートサイト１８００の論理ディスク１３１５の内容が一致してＰａｉｒ７１１０となる。さらに、この際、バッファ１３１８が割り当てられる。なお、バッファ１３１８は前記コピーグループの単位で割り当てられる。
【００７６】
Ｐａｉｒ７１１０のときに、一時停止指示を行うと、Suspendingが開始される（７２４０）。Suspendingとは、非同期リモートコピーを一時中断するための動作である。具体的には、Ｓｕｓｐｅｎｄ７１３０の間、論理ディスク１３１５内のどのアドレスに書き込みがあったかを管理する差分管理テーブルをディスクコントローラ１３２０内のメモリ１３２１に用意することである。この差分管理テーブルは、フレーム１００によって変更されたディスク装置１３１０内のアドレスを管理する。なお、差分管理テーブルは、ディスク装置１３１０に作成してもよい。
【００７７】
Ｓｕｓｐｅｎｄ７１３０のときに、再同期指示を行うと、Differential Copyが開始される（７２３０）。Differential Copyとは、前記差分管理テーブルに基づき、Ｓｕｓｐｅｎｄ７１３０の間に発生した差分をプライマリサイト１７００の論理ディスク１３１５からリモートサイト１８００の論理ディスク１３１５に転送することである。転送が終了すると、プライマリサイト１７００の論理ディスク１３１５とリモートサイト１８００の論理ディスク１３１５の内容が一致してＰａｉｒ７１１０となる。
【００７８】
Ｐａｉｒ７１１０もしくは正副逆転Ｐａｉｒ７１４０のときに、正副逆転指示を行うと、Swappingが開始される（７２５０）。Swappingとは、サイト間のデータの転送の向きを逆転させる動作である。Ｐａｉｒ７１１０のときに、正副逆転指示を行うと、データの転送の向きがリモートサイト１８００からプライマリサイト１７００の方向に変更される。正副逆転Ｐａｉｒ７１４０のときに、正副逆転指示を行うと、データの転送の向きがプライマリサイト１７００からリモートサイト１８００の方向に変更される。この操作は、例えばプライマリサイト１７００で障害が発生したときに使用される。この操作により、業務を行うサイトをプライマリサイト１７００から、リモートサイト１８００に切り替えることができる。
【００７９】
Ｐａｉｒ７１１０もしくはＳｕｓｐｅｎｄ７１３０のときに、解除指示を行うと、Deletingが開始される（７２２０）。Deletingとは、非同期リモートコピーの関係を解除することである。Deletingが終了すると、Ｓｉｍｐｌｅｘ７１２０となり、プライマリサイト１７００の論理ディスク１３１５に対するフレーム１００はリモートサイト１８００に転送されなくなる。なお、この際、Initial Copy時に割り当てられたバッファ１３１８が解放される。
【００８０】
３．３  Ｐａｉｒ中のリモートコピーの処理
本実施形態における非同期リモートコピーは、以下の処理によって論理ディスク１３１５のデータ複製を実現する。なお、これ以外の方法で非同期リモートコピーを実現してもよい。
【００８１】
ホスト計算機１２００Ａは、プライマリサイト１７００のストレージ装置１３００Ａに対してフレーム１００を送信する。この際、フレーム１００にシーケンス番号を付与する。
ホスト計算機１２００Ａからフレーム１００を受信したプライマリサイト１７００のストレージ装置１３００Ａは、受信したフレーム１００をメモリに格納し、さらにストレージ装置１３００Ａ内部のメモリ１３２１や論理ディスク１３１５Ａに格納し、ホスト計算機１２００Ａに対してフレーム１００の受信完了の応答を送信する。
【００８２】
一方、プライマリサイト１７００のストレージ装置１３００Ａは、メモリ１３２１または論理ディスク１３１５に格納したフレーム１００を、その付与されたシーケンス番号とともにリモートサイト１８００のストレージ装置１３００Ｂへ送信する。
フレーム１００を受信したリモートサイト１８００のストレージ装置１３００Ｂは、そのフレーム１００に付与されたシーケンス番号を参照することで論理ディスク１３１５へフレーム１００を書き込む。これによってプライマリサイト１７００のストレージ装置１３００Ａの論理ディスク１３１５のデータが消失した場合にリモートサイト１８００のストレージ装置１３００Ｂの論理ディスク１３１５に格納されたデータのコンシステンシを確保することができる。
【００８３】
４．管理計算機
図８〜図１４を参照して、本実施形態の管理計算機１１００が管理するテーブルおよび処理について説明する。
【００８４】
４．１  テーブル
図８は、データ復旧可能時刻監視プログラム１１１２が管理計算機１１００のメモリ１１２０上に作成する流入部Ｉ／Ｏテーブル１１２４の一例を示す図である。流入部Ｉ／Ｏテーブル１１２４は、時刻フィールド８１００およびシーケンス番号フィールド８２００からなる。流入部Ｉ／Ｏテーブル１１２４は、複数の行（８０１０〜８０５０）を持ちうる。
【００８５】
時刻フィールド８１００には、シーケンス番号取得要求プログラム１２１６の返り値の１つである、現在時刻が格納される。シーケンス番号フィールド８２００には、シーケンス番号取得要求プログラム１２１６の返り値の１つである、ストレージ装置１３００上のバッファ１３１８に滞留しているフレーム１００のうち、入口に滞留しているフレーム１００のシーケンス番号が格納される。
【００８６】
図９は、データ復旧可能時刻監視プログラムが管理計算機１１００のメモリ１１２０上に作成する流出部Ｉ／Ｏテーブル１１２６の一例を示す図である。
流出部Ｉ／Ｏテーブル１１２６は、時刻フィールド９１００およびシーケンス番号フィールド９２００からなる。流出部Ｉ／Ｏテーブル１１２６、単一の行（９０１０）から構成される。
【００８７】
時刻フィールド９１００には、シーケンス番号取得要求プログラム１２１６の返り値の１つである、現在時刻が格納される。シーケンス番号フィールド９２００には、シーケンス番号取得要求プログラム１２１６の返り値の１つである、ストレージ装置１３００上のバッファ１３１８に滞留しているフレーム１００のうち、出口に滞留しているフレーム１００のシーケンス番号が格納される。
【００８８】
４．２  ＧＵＩ
管理計算機１１００が、データ復旧可能時刻の監視間隔をユーザに設定させ、その結果を表示するＧＵＩについて、図１０および図１１を用いて説明する。
図１０は、管理計算機１１００がデータ復旧可能時刻の監視間隔をユーザに設定させるために表示装置１１５０に表示する監視条件設定画面１０５００を示す図である。監視条件設定画面１０５００は、メッセージ部１０５１０、監視間隔入力部１０５２０およびボタン１０５３０から構成される。
【００８９】
メッセージ部１０５１０は、監視間隔入力を促すメッセージをユーザに表示する。
監視間隔入力部１０５２０は、ユーザからの監視間隔の入力を受け付けるテキストボックスを表示する。
ボタン１０５３０は、ユーザが監視間隔の入力後にクリックする操作部である。これにより、データ復旧可能時刻監視プログラム１１１２は、監視間隔入力部１０５２０にユーザが入力した監視間隔を保持する。
【００９０】
図１１は、管理計算機１１００がデータ復旧可能時刻を表示装置１１５０に表示する監視画面１０６００を示す図である。監視画面１０６００は、現在時刻１０６１０、データ復旧可能時刻１０６２０、データ損失時間１０６３０およびボタン１０６４０から構成される。
【００９１】
現在時刻１０６１０は、データ復旧可能時刻監視プログラム１１１２が返す時刻を表示する。
データ復旧可能時刻１０６２０は、データ復旧可能時刻監視プログラム１１１２によって計算されるデータ復旧可能時刻を表示する。
データ損失時間１０６３０は、データ復旧可能時刻監視プログラム１１１２によって計算されるデータ損失時間を表示する。
ボタン１０６４０は、クリックされることにより、監視画面１０６００を閉じる。
【００９２】
なお、本実施形態では、監視条件設定画面１０５００および監視画面１０６００は、管理計算機１１００の表示装置１１５０に表示されるものとした。しかし、Ｗｅｂサーバなど、一般的に知られている技術を用いて、これらのＧＵＩを別の計算機の表示装置に表示しても構わない。
【００９３】
４．３  フローチャート
管理計算機１１００が、データ復旧可能時刻を取得し、表示するために実行するデータ復旧可能時刻監視プログラム１１１２の処理手順を、図１２のフローチャートを用いて説明する。図１２は、データ復旧可能時刻監視プログラム１１１２の処理手順を示すフローチャートである。
管理計算機１１００のＣＰＵ１１４０（以下、動作主体を「管理計算機１１００」と表記する。）は、ユーザや他プログラムからの指示により、データ復旧可能時刻監視プログラム１１１２の処理を開始する。
【００９４】
管理計算機１１００は、初期化処理として、流入部Ｉ／Ｏテーブル１１２４と流出部Ｉ／Ｏテーブル１１２６の領域を、メモリ１１２０上に確保する（ステップＳ１）。
次に、管理計算機１１００は、ホスト計算機１２００Ａ上のシーケンス番号取得要求プログラム１２１６を呼び出す（ステップＳ２）。この結果、管理計算機１１００は、返り値として、ストレージ装置１３００Ａ上のバッファ１３１８に滞留しているフレーム１００のうち、バッファ１３１８の入口に滞留しているフレーム１００のシーケンス番号と、バッファ１３１８の出口に滞留しているフレーム１００のシーケンス番号と、現在時刻の３つの情報を受け取る。
【００９５】
次に、管理計算機１１００は、流入部Ｉ／Ｏテーブル１１２４および、流出部Ｉ／Ｏテーブル１１２６の更新を行う（ステップＳ３）。具体的には、管理計算機１１００は、流入部Ｉ／Ｏテーブル１１２４の最後の行に、現在時刻と、ストレージ装置１３００Ａ上のバッファ１３１８に滞留しているフレーム１００のうち、バッファ１３１８の入口に滞留しているフレーム１００のシーケンス番号とを追加する。また、管理計算機１１００は、流出部Ｉ／Ｏテーブル１１２６を、現在時刻と、ストレージ装置１３００上のバッファ１３１８に滞留しているフレーム１００のうち、バッファ１３１８の出口に滞留しているフレーム１００のシーケンス番号とで更新する。
【００９６】
次に、管理計算機１１００は、流入部Ｉ／Ｏテーブル１１２４および流出部Ｉ／Ｏテーブル１１２６を利用してデータ復旧可能時刻の計算を行う（ステップＳ４）。
前記したように、データ復旧可能時刻は、フレーム１００がバッファ１３１８に滞留している時間を計測することにより計算できる。
【００９７】
以下、この計算について、図１３を参照して具体的に説明する。図１３は、データ復旧可能時刻の計算の説明のためのグラフである。図１３のグラフにおいて、横軸は時間、縦軸はフレームのシーケンス番号を表している。また、Ｌ１はバッファ１３１８の入口のフレームのシーケンス番号を表す線であり、Ｌ２はバッファ１３１８の出口のフレームのシーケンス番号を表す線である。なお、Ｌ１とＬ２は、連続的な線で表しているが、実際には離散値をとる。
【００９８】
図１３以外の図も参照して説明を続けると、流出部Ｉ／Ｏテーブル１１２６には、バッファ１３１８の出口から取得した最新のフレームのシーケンス番号と取得時刻が格納されている。ここで、現在時刻（現在時刻以外の所定時刻でもよい）をＴＣ、この時刻にバッファ１３１８の出口から取得したシーケンス番号をＳＣとする。このシーケンス番号ＳＣを持つフレームが、バッファ１３１８の入口に到着した時刻の推定値をＴＰとする。つまり、時刻ＴＣにおけるデータ復旧可能時刻がＴＰである。このとき、ＴＣ−ＴＰがデータ損失時間である。
【００９９】
ここで、流入部Ｉ／Ｏテーブル１１２４は、複数の行を持っている。この行の数をＭとし、各行の時刻をＴ［１］、Ｔ［２］、・・・、Ｔ［Ｍ］、各行のシーケンス番号をＳ［１］、Ｓ［２］、・・・、Ｓ［Ｍ］と表す。
このとき、流入部Ｉ／Ｏテーブル１１２４には、Ｓ［Ｘ］≦ＳＣ＜Ｓ［Ｘ＋１］を満たすＳ［Ｘ］、Ｓ［Ｘ＋１］が存在する。
【０１００】
したがって、ＴＰの範囲は、Ｔ［Ｘ］≦ＴＰ＜Ｔ［Ｘ＋１］に絞り込むことができる。
以上の結果、ＴＰは、例えば次の式（１）を用いて、線形補間により近似的に求めることができる。
ＴＰ＝Ｔ［Ｘ］＋（Ｔ［Ｘ＋１］−Ｔ［Ｘ］）×（ＳＣ−Ｓ［Ｘ］）÷
（Ｓ［Ｘ＋１］−Ｓ［Ｘ］）                ・・・式（１）
なお、本実施形態では線形補間を用いたが、多項式補間やスプライン補間といった、一般的に知られている他の近似法を用いてもよい。
【０１０１】
図１２に戻って説明を続けると、次に、管理計算機１１００は、ステップＳ４において求めた現在時刻、データ復旧可能時刻、データ損失時間を、監視画面１０６００に表示する（ステップＳ５）。
ステップＳ４の処理により、流入部Ｉ／Ｏテーブル１１２４において、Ｘ未満の行は、次回以降は参照されなくなる（不要となる）。したがって、流入部Ｉ／Ｏテーブル１１２４におけるＸ未満の行をメモリ１１２０から解放する（不要部分を削除する）処理を行う（ステップＳ６）。
【０１０２】
次に、管理計算機１１００は、ユーザや他プログラムからの終了指示があるか否かをチェックする（ステップＳ７）。
終了指示があった場合（ステップＳ７，Ｙｅｓ）、管理計算機１１００は、流入部Ｉ／Ｏテーブル１１２４と流出部Ｉ／Ｏテーブル１１２６の領域を、メモリ１１２０上から解放し（ステップＳ９）、処理を終了する。
【０１０３】
終了指示が無かった場合（ステップＳ７，Ｎｏ）、管理計算機１１００は、一定時間待機する（ステップＳ８）。なお、この待機の間隔は監視条件設定画面１０５００でユーザにより指定された時間とする。その後、管理計算機１１００は、ステップＳ２に戻る。
【０１０４】
なお、本実施形態では、ユーザに対して、図１０に示す監視条件設定画面１０５００を用い、監視間隔を設定させた。しかし、図１４に示す監視条件設定画面１０７００を用いてもよい。図１４は、管理計算機１１００がデータ復旧可能時刻の許容誤差をユーザに設定させるために表示装置１１５０に表示する監視条件設定画面１０７００を示す図である。図１４に示す監視条件設定画面１０７００について、図１０に示す監視条件設定画面１０５００との相違点を説明する。
【０１０５】
メッセージ部１０７１０は、データ復旧可能時刻監視の許容誤差の入力を促すメッセージをユーザに表示する。前記の方法でデータ復旧可能時刻を推定すると、その時間の誤差を監視間隔以下におさえることが可能である。したがって、監視間隔ではなく、許容誤差をユーザに入力させてもよい。この場合、データ復旧可能時刻監視プログラム１１１２は、ユーザが入力した許容誤差を監視間隔として扱う。許容誤差入力部１０７２０は、ユーザからの許容誤差の入力を受け付けるテキストボックスを表示する。ボタン１０７３０は、ユーザが許容誤差の入力後にクリックする操作部である。処理については図１０の場合と同様であるので説明を省略する。
【０１０６】
このように、本実施形態のストレージシステムＳによれば、管理計算機１１００が、所定の監視間隔で、プライマリサイト１７００のストレージ装置１３００Ａのバッファ１３１８に滞留している入口と出口のデータを保持し、それらのデータに基づいて、データ復旧可能時刻の推定値を算出し、表示装置１１５０に表示する。これにより、複数のストレージ装置１３００間で非同期リモートコピーを行うストレージシステムＳにおいて、メインフレーム技術以外にも適用可能で、監視誤差を所定範囲内に抑えながらデータ復旧可能時刻を監視する技術を提供することができる。また、データ復旧可能時刻の推定値だけでなく、データ損失時間の推定値を算出し、表示装置１１５０に表示することができる。
【０１０７】
また、本実施形態のストレージシステムＳによれば、管理計算機１１００は、リモートサイト１８００のホスト計算機１２００Ｂなどが管理する時刻情報を用いることなく、プライマリサイト１７００のホスト計算機１２００Ａが管理する時刻情報のみを用いて前記監視を行うことができるので、運用や管理が容易になる。また、監視誤差を監視間隔以下に抑えることができるので、バッファ１３１８の空き容量が所定よりも少なくなったときなどに、ユーザは、監視間隔の長さを変更する、バッファ１３１８の容量を増やすなどの対策を適切に講じることができる。そのために、例えば、バッファ１３１８の空き容量が所定量よりも少なくなったときに、管理計算機１１００などで警告表示などを行うようにしてもよい。
【０１０８】
以上で実施形態の説明を終えるが、本発明の態様はこれらに限定されるものではない。本実施形態は、ハードウェア、プログラム等の具体的な構成について、本発明の主旨を逸脱しない範囲で適宜変更が可能であり、以下、そのバリエーションについて説明する。
５．バリエーション
５．１  取得情報
本実施形態では、バッファ１３１８の入口と出口に存在しているフレームのシーケンス番号を取得できるものとした。しかし、バッファ１３１８の入口に存在するフレームのシーケンス番号と、バッファ内に滞留しているフレームの数が取得できる場合にも本発明は適用可能である。前記２つの値を用いて計算することにより、バッファ１３１８の出口に存在しているフレームのシーケンス番号を取得できるためである。同様に、バッファ１３１８の出口に存在するフレームのシーケンス番号と、バッファ内に滞留しているフレームの数が取得できる場合にも本発明は適用可能である。
【０１０９】
５．２  監視間隔の動的変更
本実施形態では、監視間隔をユーザに設定させるものとした。しかし、監視間隔を管理計算機が決定することも可能である。
一般に、データ損失時間が小さい場合、データ復旧可能時刻監視の重要度は低くなる。したがって、例えば、データ損失時間が小さい場合は、監視の間隔を長くし、データ復旧可能時刻が大きくなると、監視の間隔を短くするようにすればよい。これにより、ストレージシステムＳの負荷を低減することが可能である。
【０１１０】
５．３  管理計算機の配置
本実施形態では、管理計算機１１００は、プライマリサイト１７００のホスト計算機１２００Ａおよびリモートサイト１８００のホスト計算機１２００Ｂの両方に接続されるものとした。
【０１１１】
しかし、前記したように、管理計算機１１００を、プライマリサイト１７００のホスト計算機１２００Ａにのみ接続しても本発明を実施可能である。Ｐａｉｒ７１１０の際に、データ復旧可能時刻を監視するためには、プライマリサイト１７００のホスト計算機１２００Ａからのみ情報を取得すればよいためである。この構成は、プライマリサイト１７００とリモートサイト１８００が別々のユーザ（管理者）によって管理されている場合に特に好適である。例えば、エンタープライズシステムでは、プライマリサイト１７００は自社で保有し、リモートサイト１８００はＳＳＰ（Storage Service Provider）が提供する、といった構成が採られることがある。その際、管理計算機１１００は、リモートサイト１８００から情報を収集できなくても、データ復旧可能時刻を監視することができる。
【０１１２】
しかし、前記の構成では、正副逆転Ｐａｉｒ７１４０の際にはデータ復旧可能時刻が監視できない。そこで、例えば、プライマリサイト１７００、リモートサイト１８００の各々に管理計算機１１００Ａ、１１００Ｂを配置する。これにより、Ｐａｉｒ７１１０のときにはプライマリサイト１７００の管理計算機１１００Ａを使用してデータ復旧可能時刻を監視し、正副逆転Ｐａｉｒ７１４０のときにはリモートサイト１８００の管理計算機１１００Ｂを使用してデータ復旧可能時刻を監視することができる。
【０１１３】
５．４  ホスト計算機不要
本実施形態では、管理計算機１１００は、プライマリサイト１７００のホスト計算機１２００Ａ上のシーケンス番号取得要求プログラム１２１６を呼び出すことにより、データ復旧可能時刻を関するために必要な情報を取得する。しかし、ホスト計算機１２００Ａを介さずに、直接、ストレージ装置１３００Ａ上のシーケンス番号取得プログラム１３４０を呼び出しても、本発明を実施可能である。この際、時刻情報は、ストレージ装置１３００Ａに時刻生成装置および時刻取得プログラムを設けて、これを利用してもよいし、管理計算機１１００に、時刻生成装置および時刻取得プログラムを設けて、これを利用してもよい。
【０１１４】
５．５  複数のホスト計算機が存在する場合
なお、ストレージシステムＳに複数のホスト計算機１２００Ａが存在する場合は、個々のホスト計算機１２００Ａによってデータ復旧可能時刻が異なることが考えられる。そのため、管理計算機１１００が複数のホスト計算機に接続される場合は、複数のホスト計算機１２００Ａからデータ復旧可能時刻を取得し、複数のホスト計算機１２００Ａのそれぞれについてのデータ復旧可能時刻を表示してもよい。その際、複数のホスト計算機１２００Ａのそれぞれは、日本国内だけでなく、外国に存在していてもよい。
５．６  その他
データ復旧可能時刻を算出するための基準となる所定時刻は、現在時刻でなくても、過去のある時点での時刻であってもよい。
【図面の簡単な説明】
【０１１５】
【図１】本発明の概要を示す説明図である。
【図２】本実施形態のストレージシステムの構成を示すブロック図である。
【図３】管理計算機１１００の構成を示す図である。
【図４】ホスト計算機１２００の構成を示す図である。
【図５】ストレージ装置１３００の構成を示す図である。
【図６】ストレージ装置１３００内のディスクコントローラ１３２０上のメモリ１３２１に作成されるリモートコピー定義テーブル１３２２の一例を示す図である。
【図７】非同期リモートコピーのコピーペアの状態遷移図である。
【図８】データ復旧可能時刻監視プログラム１１１２が管理計算機１１００のメモリ１１２０上に作成する流入部Ｉ／Ｏテーブル１１２４の一例を示す図である。
【図９】データ復旧可能時刻監視プログラムが管理計算機１１００のメモリ１１２０上に作成する流出部Ｉ／Ｏテーブル１１２６の一例を示す図である。
【図１０】管理計算機１１００がデータ復旧可能時刻の監視間隔をユーザに設定させるために表示装置１１５０に表示する監視条件設定画面１０５００を示す図である。
【図１１】管理計算機１１００がデータ復旧可能時刻を表示装置１１５０に表示する監視画面１０６００を示す図である。
【図１２】データ復旧可能時刻監視プログラム１１１２の処理手順を示すフローチャートである。
【図１３】データ復旧可能時刻の計算の説明のためのグラフである。
【図１４】管理計算機１１００がデータ復旧可能時刻の許容誤差をユーザに設定させるために表示装置１１５０に表示する監視条件設定画面１０７００を示す図である。
【符号の説明】
【０１１６】
１１００  管理計算機
１２００，１２００Ａ，１２００Ｂ  ホスト計算機
１３００，１３００Ａ，１３００Ｂ  ストレージ装置
１４００  管理ネットワーク
１５００，１５００Ａ，１５００Ｂ  データネットワーク
１６００  リモートネットワーク
【図１】
2010146198.tif 000003
【図２】
2010146198.tif 000004
【図３】
2010146198.tif 000005
【図４】
2010146198.tif 000006
【図５】
2010146198.tif 000007
【図６】
2010146198.tif 000008
【図７】
2010146198.tif 000009
【図８】
2010146198.tif 000010
【図９】
2010146198.tif 000011
【図１０】
2010146198.tif 000012
【図１１】
2010146198.tif 000013
【図１２】
2010146198.tif 000014
【図１３】
2010146198.tif 000015
【図１４】
2010146198.tif 000016