JP5781716B2 - 計算機システム及び非同期レプリケーション管理方法 - Google Patents

計算機システム及び非同期レプリケーション管理方法 Download PDF

Info

Publication number
JP5781716B2
JP5781716B2 JP2015511826A JP2015511826A JP5781716B2 JP 5781716 B2 JP5781716 B2 JP 5781716B2 JP 2015511826 A JP2015511826 A JP 2015511826A JP 2015511826 A JP2015511826 A JP 2015511826A JP 5781716 B2 JP5781716 B2 JP 5781716B2
Authority
JP
Japan
Prior art keywords
data
journal
indivisible
inseparable
storage system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2015511826A
Other languages
English (en)
Other versions
JPWO2014170983A1 (ja
Inventor
琢紀 佐藤
琢紀 佐藤
知章 掛田
知章 掛田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hitachi Ltd filed Critical Hitachi Ltd
Application granted granted Critical
Publication of JP5781716B2 publication Critical patent/JP5781716B2/ja
Publication of JPWO2014170983A1 publication Critical patent/JPWO2014170983A1/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • G06F16/273Asynchronous replication or reconciliation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2365Ensuring data consistency and integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]

Description

本発明は、正ストレージシステムへのデータの書込みと非同期でそのデータを正ストレージシステムから副ストレージシステムへレプリケーションする非同期レプリケーションに関する。
非同期レプリケーションが行われる計算機システムにおいては、正ストレージシステムが有する正ボリュームにデータが書き込まれてから、副ストレージシステムの有する副ボリュームへのレプリケーションが完了するまでに遅延期間が発生する。このため、正ストレージシステムにおいて障害が発生し、副ストレージシステムが正ストレージシステムに代わって稼働を開始する際は、障害発生時点から遡って、遅延期間の間に正ボリュームへ書き込まれたデータについては、未だ副ボリュームへレプリケーションが完了していないので、このデータは損失されることとなる。計算機システムの管理者は、障害時にどの程度の期間のデータが損失されるかを把握し、この期間を短くすべくストレージシステムの性能を増強したり、ストレージシステムの利用者に対して、この期間をある一定期間以内に収めることを約束したりといった対策を講じる必要がある。ここで、データが損失される期間を「データ損失期間」と呼ぶ。
特許文献1には、ジャーナルと呼ばれるデータの断片毎にデータ損失期間を計測する技術が開示されている。
特許文献1によれば、正ストレージシステムは、副ストレージシステムへレプリケーションすべきデータを、ジャーナルと呼ばれるデータの断片に分割し、正ジャーナルボリュームに保存する。正ジャーナルボリュームに保持されたジャーナルは、作成された順に、順次副ストレージシステムが有する副ジャーナルボリュームへとレプリケーションされる。副ジャーナルボリュームにレプリケーションされたジャーナルは、順次、元のデータの断片へ復元され、副ボリュームに書き込まれる。
特許文献1によれば、ジャーナルに、このジャーナルが正ジャーナルボリュームへ書き込まれた時刻が付与され、データ損失期間は、このジャーナルの副ジャーナルボリュームへのレプリケーションが完了した時刻、またはこのジャーナルから復元されたデータの副ボリュームへの書き込みが完了した時刻から、このジャーナルが正ジャーナルボリュームへ書き込まれた時刻を減算した値である。
特開2009−193208号公報
例えば、特許文献1によれば、1つのジャーナルに含まれるデータが副ボリュームへレプリケーションし終わるまでの期間が、データ損失期間である。特許文献1のデータ損失期間は、データを損失する時間の悪化傾向を計算機システムの管理者が把握し、対策を講じるか否かを判断する指標としては有用ではある。しかしながら、以下に述べる理由により、特許文献1のデータ損失時間は、アプリケーションの利用者に対して、データが損失される期間が一定期間内であることを約束するための指標として使用できるものではない。
正ストレージシステムの正ボリュームに書き込まれるデータは、多くの場合、正ストレージシステムに接続されたホスト計算機上で動作するアプリケーションプログラム(以下、アプリケーション)が使用するデータである。アプリケーションが使用するデータは、一般に、或るデータの全体が揃って初めて整合性を維持できる性質を持っており、このデータの一部でも欠損した場合には、整合性が維持されない。このために、データの一部でも欠損した場合には、整合性を維持するために、そのデータの全体を破棄する必要がある。ここで、このような性質を持つデータを「不可分データ」と呼ぶ。
不可分データのサイズは、固定長であるジャーナルのサイズに比べて大きい場合が多い。このように、不可分データがジャーナルのサイズに比べて大きい場合には、例えば、正ストレージシステムにおいて、不可分データは、複数のジャーナルに分割されて、正ジャーナルボリュームへと書き込まれる。
ここで、1つの不可分データに基づく複数のジャーナルの全てが副ジャーナルボリュームへレプリケーションされる以前に、障害が発生した場合を考える。この場合、不可分データが部分的に副ボリュームへレプリケーションされた状態となる。この障害の発生後、副ストレージシステムに接続された副ボリュームでアプリケーションの稼働を継続するためには、このような部分的にレプリケーションされた不可分データについては、整合性を維持するために破棄しなければならない。このため、アプリケーションの利用者からみた実際のデータ損失期間は、障害発生時点から、不可分データの全てのジャーナルの書き込みが完了するまでの期間を遡った期間であり、特許文献1における各ジャーナルについてのデータ損失期間よりも長い期間となってしまう。このため、特許文献1におけるデータ損失期間は正しくない値となり、アプリケーションの利用者にデータが損失される期間が一定期間内であることを約束するといった目的で使用することはできない。
そこで、本発明は、データ損失期間を示す指標として適切な情報を管理することのできる技術を提供することを目的とする。
正ストレージシステムが、整合性を維持するために不可分なデータのまとまりでありホスト計算機がアプリケーションを実行することにより生成した不可分データをホスト計算機から受信し、受信した不可分データを格納する。正ストレージシステムは、不可分データが所定のサイズに分割された複数のデータをそれぞれ含んだ複数のジャーナルを副ストレージシステムに送信する。また、正ストレージシステムは、複数のジャーナルをそれぞれ送信したことを示すジャーナル情報を管理計算機に送信する。管理計算機が、正ストレージシステムからジャーナル情報を受信し、そのジャーナル情報に基づいて、不可分データに対応する全てのジャーナルが副ストレージシステムへ送信されたか否かを判断する。管理計算機は、その判断結果が真の場合に、不可分データに対応する全てのジャーナルが送信された時刻を、不可分データについて回復することのできるデータが格納されている時刻を示すデータ回復可能時刻として格納する。
アプリケーションで使用されるデータについて、アプリケーションでの整合性を維持するために、データが損失される期間を示す指標として適切な情報(例えば、データ回復時点の時刻)を管理することができる。
図1は、実施例1の概要を説明する図である。 図2は、実施例1に係る計算機システムの構成図である。 図3は、実施例1に係るホスト計算機の構成図である。 図4は、実施例1に係る正ストレージシステムの構成図である。 図5は、実施例1に係る副ストレージシステムの構成図である。 図6は、実施例1に係る管理計算機の構成図である。 図7は、実施例1に係る滞留ジャーナル数テーブルの構成図である。 図8は、実施例1に係るデータ損失期間テーブルの構成図である。 図9は、実施例1に係る管理エージェント処理のフローチャートである。 図10は、実施例1に係るジャーナル情報送信処理のフローチャートである。 図11は、実施例1に係る管理処理のフローチャートである。 図12は、実施例1に係る不可分データジャーナル数算出処理のフローチャートである。 図13は、実施例1に係るデータ損失期間算出処理のフローチャートである。 図14は、実施例1に係るデータ損失期間表示画面の構成図である。 図15は、実施例2に係る管理計算機の構成図である。 図16は、実施例2に係るジャーナルハッシュテーブルの構成図である。 図17は、実施例2に係る管理エージェント処理のフローチャートである。 図18は、実施例2に係るジャーナル情報送信処理のフローチャートである。 図19は、実施例2に係る管理処理のフローチャートである。 図20は、実施例2に係る不可分データ末尾ハッシュ値記録処理のフローチャートである。 図21は、実施例2に係るデータ損失期間算出処理のフローチャートである。
幾つかの実施例を、図面を参照して説明する。なお、以下に説明する実施例は特許請求の範囲にかかる発明を限定するものではなく、また実施例で説明されている諸要素及びその組み合わせの全てが発明の解決手段に必須であるとは限らない。
なお、以後の説明では「aaaテーブル」等の表現にて本発明の情報を説明する場合があるが、これら情報は、テーブル等のデータ構造以外で表現されていてもよい。そのため、データ構造に依存しないことを示すために「aaaテーブル」等について「aaa情報」と呼ぶことがある。
また、以下の説明では、「プログラム」を主語として処理を説明する場合があるが、プログラムは、プロセッサ(例えばCPU(Central Processing Unit))によって実行されることで、定められた処理を、適宜に記憶資源(例えばメモリ)及び/又は通信インターフェース装置(例えばポート)を用いながら行うため、処理の主語がプロセッサとされても良い。プログラムを主語として説明された処理は、プロセッサを含む装置が行う処理としても良い。また、プロセッサが行う処理の一部又は全部を行うハードウエア回路を含んでも良い。コンピュータプログラムは、プログラムソースから装置にインストールされても良い。プログラムソースは、例えば、プログラム配布サーバ、又は、計算機が読み取り可能な記憶メディアであっても良い。
まず、実施例1に係る計算機システムについて説明する。
図1は、実施例1の概要を説明する図である。
アプリケーションプログラム(アプリケーション)121を実行するホスト計算機100は、アプリケーションで使用するデータ(不可分データA、不可分データB)を、正ストレージシステム300の正ボリューム360に格納する。
正ストレージシステム300は、正ボリューム360に格納された不可分データを、所定のサイズのジャーナルに分割して、正ジャーナルボリューム370に格納する。図1の例では、不可分データAは、ジャーナルA−1、A−2、A−3に分割され、不可分データBは、ジャーナルB−1、B−2に分割されて、正ジャーナルボリューム370に格納される。なお、本実施例に係る計算機システムでは、1つの不可分データから作成されるジャーナルが必ず排他的に正ジャーナルボリューム370に書込まれる、すなわち、1つの不可分データから作成される全てのジャーナルが正ジャーナルボリューム370上に連続して書き込まれることが保証されているものとする。
正ストレージシステム300は、正ジャーナルボリューム370に格納されているジャーナルを、順次広域ネットワーク30を介して、副ストレージシステム400に送信する。副ストレージシステム400は、受信したジャーナルを副ジャーナルボリューム440に格納する。
副ストレージシステム400は、副ジャーナルボリューム440に格納されたジャーナルを、順次、元のデータの一部に復元し、副ボリューム450に書込む。このようにして、副ストレージシステム400の副ボリューム450には、正ストレージシステム300の正ボリューム360のデータがレプリケーションされることとなる。
管理計算機200の不可分データ情報受信部222は、ホスト100から、アプリケーション121が正ストレージ360に書き込む不可分データに関する情報(不可分データ情報:例えば、正ボリューム360への不可分データの書き込み完了時刻、不可分データのサイズ)を受信する。また、管理計算機200のジャーナル情報受信部224は、正ストレージシステム300から、送信されたジャーナルに関する情報(ジャーナル情報)を受信する。管理計算機200の不可分データジャーナル数算出部223は、不可分データ情報受信部222から不可分データのサイズを取得し、そのサイズに基づいて、その不可分データが分割されるジャーナルの数を算出し、このジャーナル数と、不可分データの正ボリューム360への書き込み完了時刻とを滞留ジャーナル数テーブル231の先頭へ格納する。管理計算機200のデータ損失期間算出部225は、ジャーナル情報受信部224からジャーナル情報を取得した旨の通知を受け、滞留ジャーナル数テーブル231の末尾のレコードの滞留ジャーナル数231bの値(滞留ジャーナル数)を1減算する。また、データ損失期間算出部225は、そのレコードの滞留ジャーナル数が0となった場合には、1つの不可分データから分割された複数のジャーナルの全てを副ストレージシステム400に送信したことを意味しているので、その時点の時刻から、このレコードの書込み完了時刻231aの時刻を減算した値をデータ損失期間として、データ損失期間テーブル232に格納する。データ損失期間表示部226は、例えば、ユーザ操作に応じて、データ損失期間テーブル232からデータ損失期間を取得し、データ損失期間に関する情報をデータ損失期間情報画面500(図14参照)に表示する。
実施例1に係る計算機システムによると、不可分データに対応する全てのジャーナルを副ストレージシステム400に格納された時刻に基づいて、不可分データに対するデータ損失期間を算出することができる。不可分データに対するデータ損失期間は、アプリケーションにおいて、整合性を維持する際にデータが損失される期間と一致するので、アプリケーションの使用者に対して、データが損失される期間が一定期間内であることを約束する指標として適切である。
図2は、実施例1に係る計算機システムの構成図である。
計算機システムは、ホスト計算機(以下、ホストという)100と、管理計算機200と、正ストレージシステム300と、副ストレージシステム400とを有する。ホスト100と、管理計算機200と、正ストレージシステム200とは、管理用ネットワーク10を介して接続されている。ホスト100と、正ストレージシステム300は、ストレージエリアネットワーク(SAN)20を介して接続されている。正ストレージシステム300と、副ストレージシステム400とは、広域ネットワーク30を介して接続されている。広域ネットワーク30は、例えば、TCP/IPネットワークであっても良く、ファイバーチャネルによるネットワークであっても良い。
図3は、実施例1に係るホスト計算機の構成図である。
ホスト100は、CPU(Central Processing Unit)110と、メモリ120と、SANポート130と、LANポート140とを有する。CPU110と、メモリ120と、SANポート130と、LANポート140とは、内部バスを介して通信可能に接続されている。
CPU110は、メモリ120に格納された各種プログラムを実行することにより、各種処理を実行する。メモリ120は、各種プログラムや、各種情報を記憶する。本実施例では、メモリ120は、アプリケーションプログラム(アプリケーション)121、管理エージェントプログラム122を記憶する。アプリケーションプログラム121は、所定の業務処理を実行し、業務処理により生成されたデータを正ストレージシステム300の正ボリューム360に書込む(具体的には、ホスト100が、正ボリューム360を指定したライト要求を正ストレージシステム300に送信する)。ここで、アプリケーションプログラム121は、整合性を維持する上で不可分である内容をまとめたデータ(不可分データ)を生成する。管理エージェントプログラム122は、アプリケーション121による不可分データの正ボリューム360への書込みを監視し、不可分データ情報を管理計算機200に通知する。管理エージェントプログラム122による処理の詳細については、後述する。なお、管理エージェントプログラム122がCPU110に実行されることにより構成される機能部が、管理エージェント部に相当する。なお、管理エージェント部を、CPU110と異なる別のハードウエアで実現するようにしても良い。
SANポート130は、ストレージエリアネットワーク20を介してホスト100を他の装置に接続するためのインタフェースデバイスである。LANポート140は、管理用ネットワーク10を介してホスト100を他の装置に接続するためのインタフェースデバイスである。
図4は、実施例1に係る正ストレージシステムの構成図である。
正ストレージシステム300は、CPU310と、メモリ320と、SANポート330と、LANポート340と、LANポート350と、正ボリューム360と、正ジャーナルボリューム370とを有する。CPU310と、メモリ320と、SANポート330と、LANポート340と、LANポート350と、正ボリューム360と、正ジャーナルボリューム370とは、内部バスを介して通信可能に接続されている。
CPU310は、メモリ320に格納された各種プログラムを実行することにより、各種処理を実行する。メモリ320は、各種プログラムや、各種情報を記憶する。本実施例では、メモリ320は、ストレージ制御プログラム321、ジャーナル情報送信プログラム322を記憶する。ストレージ制御プログラム321は、ホスト100からのライト要求に従い、データを正ボリューム360に書き込む。また、ストレージ制御プログラム321は、正ボリューム360に書き込んだデータを、非同期で副ボリューム450にレプリケーションする非同期レプリケーション処理を制御する。非同期レプリケーション処理では、例えば、ストレージ制御プログラム321は、正ボリューム360に書き込んだデータ(正確にはそのデータの複製)を含んだジャーナルを正ジャーナルボリューム370に書き込む。ここで、ストレージ制御プログラム321がCPU310に実行されることにより構成される機能部が、ストレージ制御部に相当する。なお、ストレージ制御部を、CPU310と異なる別のハードウエアで実現するようにしても良い。ストレージ制御プログラム321は、正ジャーナルボリューム370から順次ジャーナルを取り出して、副ストレージシステム400に送信し、副ストレージシステム400へのジャーナルの送信が完了すると、そのジャーナルを正ジャーナルボリューム370から削除する。ジャーナル情報送信プログラム322は、送信されたジャーナルに関する情報(ジャーナル情報)を管理計算機200に送信する。ジャーナル情報送信プログラム322は、正ジャーナルボリューム370のジャーナルが消去された場合、すなわち、そのジャーナルが送信された場合に、送信された(消去された)ジャーナルのジャーナル情報を管理計算機200に送信する。ここで、ジャーナル情報送信プログラム322がCPU310に実行されることにより構成される機能部が、ジャーナル情報送信部に相当する。なお、ジャーナル情報送信部を、CPU310と異なる別のハードウエアで実現するようにしても良い。
SANポート330は、ストレージエリアネットワーク20を介して正ストレージシステム200を他の装置(例えば、ホスト100)に接続するためのインタフェースデバイスである。LANポート340は、管理用ネットワーク10を介して正ストレージシステム300を他の装置(例えば、管理計算機200)に接続するためのインタフェースデバイスである。LANポート350は、広域ネットワーク30を介して正ストレージシステム300を他の装置(例えば、副ストレージシステム400)に接続するためのインタフェースデバイスである。
正ボリューム360は、例えば、HDD(Hard Disk Drive)等の記憶デバイスの記憶領域により構成されるボリュームであり、ホスト100のアプリケーションプログラム121に使用されるデータ(例えば、生成されたデータ)が格納される。正ジャーナルボリューム370は、例えば、HDD等の記憶デバイスの記憶領域により構成されるボリュームであり、正ボリューム360に書き込まれたデータに対応するジャーナルが格納される。ジャーナルは、データと管理情報とを含む。データは、正ボリューム360に書き込まれたデータの複製である。管理情報は、そのデータに関する情報を含み、例えば、正ボリューム360におけるデータの書込み先アドレス(例えばLBA(Logical Block Address))と、そのデータが書き込まれた順番を特定するための順番情報(例えば、シーケンシャル番号又はタイムスタンプ)とを含む。
図5は、実施例1に係る副ストレージシステムの構成図である。
副ストレージシステム400は、CPU410と、メモリ420と、LANポート430と、副ボリューム440と、副ジャーナルボリューム450とを有する。CPU410と、メモリ420と、LANポート430と、副ボリューム440と、副ジャーナルボリューム450とは、内部バスを介して通信可能に接続されている。
CPU410は、メモリ420に格納された各種プログラムを実行することにより、各種処理を実行する。メモリ420は、各種プログラムや、各種情報を記憶する。本実施例では、メモリ420は、ストレージ制御プログラム421を記憶する。ストレージ制御プログラム421は、正ボリューム360のデータを、非同期で副ボリューム450にレプリケーションする非同期レプリケーション処理を制御する。具体的には、例えば、ストレージ制御プログラム421は、正ストレージシステム300から送信されるジャーナルを受信して副ジャーナルボリューム450に格納し、副ジャーナルボリューム450に格納されているジャーナルのうちの未反映のジャーナルを、未反映のジャーナルの順番情報から特定される順番通りに、副ジャーナルボリューム450に格納されたジャーナル中のデータを、副ボリューム440に反映する(書き込む)。つまり、ジャーナルの反映とは、正ストレージシステム300からのジャーナル中のデータを副ボリューム440に書き込むことである。正ストレージシステム300から副ストレージシステム400へのジャーナルは、正ストレージシステム300から副ストレージシステム400へのライト要求(レプリケーション要求)に付随して送信されても良いし、副ストレージシステム400から正ストレージシステム300へのリード要求(ジャーナル要求)に応答して送信されても良い。
LANポート430は、広域ネットワーク30を介して副ストレージシステム400を他の装置(例えば、正ストレージシステム300)に接続するためのインタフェースデバイスである。
副ボリューム440は、例えば、HDD等の記憶デバイスの記憶領域により構成されるボリュームであり、正ボリューム360のデータのレプリケーション(レプリケーションデータ)が格納される。副ジャーナルボリューム450は、例えば、HDD等の記憶デバイスの記憶領域により構成されるボリュームであり、正ストレージシステム300から送信されたジャーナルが格納される。
図6は、実施例1に係る管理計算機の構成図である。
管理計算機200は、CPU210と、メモリ220と、2次記憶装置230と、LANポート240と、表示装置250とを有する。CPU210と、メモリ220と、二次記憶装置230と、LANポート240と、表示装置250とは、内部バスを介して通信可能に接続されている。
CPU210は、メモリ220に格納された各種プログラムを実行することにより、各種処理を実行する。メモリ220は、各種プログラムや、各種情報を記憶する。本実施例では、メモリ220は、管理プログラム221を記憶する。管理プログラム221に含まれるプログラムモジュールをCPU210が実行することにより、不可分データ情報受信部222と、不可分データジャーナル数算出部223と、ジャーナル情報受信部224と、データ損失期間算出部225と、データ損失期間表示部226との機能部が構成される。管理プログラム221の各機能部の処理動作については、後述する。なお、本実施例では、管理プログラム221に含まれるプログラムモジュールをCPU210が実行することにより、不可分データ情報受信部222と、不可分データジャーナル数算出部223と、ジャーナル情報受信部224と、データ損失期間算出部225と、データ損失期間表示部226との機能部を構成していたが、本発明はこれに限られず、例えば、少なくとも一部の機能部を、CPU210と異なる別のハードウエアで実現するようにしても良い。
二次記憶装置230は、例えば、HDD等の記憶デバイスであり、各種情報を記憶する。本実施例では、二次記憶装置230は、滞留ジャーナル数テーブル231と、データ損失期間テーブル232とを記憶する。各テーブルの詳細については、後述する。
LANポート240は、管理用ネットワーク10を介して管理計算機200を他の装置(例えば、ホスト100、正ストレージシステム300等)に接続するためのインタフェースデバイスである。表示装置250は、例えば、液晶ディスプレイ等の表示装置であり、各種情報を表示する。
図7は、実施例1に係る滞留ジャーナル数テーブルの構成図である。
滞留ジャーナル数テーブル231は、不可分データ毎に、正ボリュームへの書き込み完了時刻231aと、滞留ジャーナル数231bとのフィールド(カラム)を有するエントリを格納する。
正ボリュームへの書き込み完了時刻231aには、エントリに対応する不可分データの正ボリューム360への書込みが完了した時刻(又は、それに相当する時刻)が格納される。滞留ジャーナル数231bには、エントリに対応する不可分データに基づくジャーナルのうちで、副ストレージシステム400に送信されずに残っている(滞留している)ジャーナルの数(滞留ジャーナル数)が格納される。
図8は、実施例1に係るデータ損失期間テーブルの構成図である。
データ損失期間テーブル232は、不可分データ毎に、副ボリュームへの書き込み完了時刻232aと、データ損失期間232bとのフィールドを有するエントリを格納する。
副ボリュームへの書き込み完了時刻232aには、エントリに対応する不可分データの全てのジャーナルについての副ストレージシステム400への書込みが完了した時刻(または、それに相当する時刻)が格納される。この全てのジャーナルについての副ストレージシステム400への書込みが完了した時刻は、不可分データ(アプリケーションデータ)について回復することのできるデータが格納されている時刻を示すデータ回復可能時刻に相当する。データ損失期間232bには、エントリに対応する不可分データのレプリケーション中に障害が発生した場合に、この不可分データが損失されてしまうこととなる期間(データ損失期間)が格納される。
次に、第1実施例に係る計算機システムにおける処理動作について説明する。
図9は、実施例1に係る管理エージェント処理のフローチャートである。
管理エージェント処理は、ホスト100の管理エージェントプログラム122によって実行される処理である。
管理エージェントプログラム122は、図示しない管理端末からの管理者による処理の終了要求があるまで、ループAの処理(ステップS11〜S15)を繰り返し実行する。
まず、管理エージェントプログラム122は、アプリケーションプログラム121の不可分データの書き込みが開始されたか否かを判断し(ステップS11)、不可分データの書き込みが開始されていない場合(ステップS11:NO)には、再びステップS11を行う。
一方、不可分データの書き込みが開始された場合(ステップS11:YES)には、管理エージェントプログラム122は、アプリケーションプログラム121の不可分データの書き込みが完了したか否かを判断する(ステップS12)。
アプリケーションプログラム121の不可分データの書き込みが完了したか否かの判断は、具体的には、以下のように行われる。
まず、アプリケーションプログラム121が、データベースシステムを利用するアプリケーションプログラムである場合を例に説明する。ここで、アプリケーションプログラム121が、データベースシステムを利用するアプリケーションプログラムである場合には、不可分データは、トランザクション中に更新された全てのデータとなる。トランザクション中に更新されるデータとは、例えば、オンラインショッピングアプリケーションの場合には、商品の代金を引き落としたことを示すデータと、商品を購入したことを示すデータとの組などが挙げられる。上記データの組の一方のみが失われた場合、もう一方を消去しなければ、商取引の整合性が維持できない。
まず、管理エージェントプログラム122は、データベースシステムが出力するトランザクションログを定期的に監視し、トランザクションログのコミットレコードを参照し、最近にコミットされたトランザクションのトランザクション番号を取得する。
次に、管理エージェントプログラム122は、取得したトランザクション番号が、過去に取得して記憶している最終トランザクション番号と異なるか否かを検知し、取得したトランザクション番号と、記憶している最終トランザクション番号とが異なる場合には、新たな不可分データが発生した、すなわち、前の不可分データの書き込みが完了したと判断する。なお、管理エージェントプログラム122は、取得したトランザクション番号を、新たな最終トランザクション番号として記憶する。また、管理エージェントプログラム122は、取得したトランザクション番号と、記憶している最終トランザクション番号とが異なることを検知した場合における、取得したトランザクション番号に対応するコミットから、その前のコミットまでの間に発生した更新レコードの全てをトランザクションログから取得して、各レコードの容量を合算して不可分データのサイズ(不可分データサイズ)として記憶する。これにより、アプリケーションプログラム121が、データベースシステムを利用するアプリケーションプログラムである場合において、不可分データの書き込みが完了したか否かを適切に判断することができる。
次に、アプリケーションプログラム121が、Linux(登録商標)などのOS上のファイルシステムを利用するアプリケーションプログラムである場合を例に説明する。アプリケーションプログラム121がファイルシステムを利用するアプリケーションプログラムである場合、不可分データはファイルシステム上のファイルとなる。ファイルシステム上のファイルは、ファイルのサイズなど、ファイルそのものに関する情報を格納するメタデータと、ファイルの内容である実データとから構成される。ファイルの実データが一部でも損失された場合、メタデータと実データとの不整合が生じ、ファイル全体としての整合性が維持できないため、ファイルシステムはファイル全体を消去する。同様に、ファイルのメタデータが失われた場合でも、ファイルシステムはファイルを認識できず、ファイル全体が消去された場合と同様の状態となる。
管理エージェントプログラム122は、OSのWriteシステムコールの呼び出しを検知し、その際に指定されていたファイルを示すファイルディスクリプタと、ファイルに対する書き込み量とを組にして記憶する。ここで、そのファイルディスクリプタについて既に記憶している場合には、管理エージェントプログラム122は、そのファイルディスクリプタと組になっている書き込み量に対して、今回の呼び出しに対応する書き込み量を加算する。
次いで、管理エージェントプログラム122は、OSのcloseシステムコールの呼び出しを検知し、その際に指定されたファイルディスクリプタと組になって記憶されている書き込み量を、不可分データサイズとして記憶する。この後、OSに対してsyncコマンドの実行が指示されて、メモリ120上にキャッシュされているデータ(不可分データ)が正ストレージシステム300の正ボリューム360に反映されることとなる。
管理エージェントプログラム122は、syncコマンドの実行終了時点を検知し、不可分データの書き込みが完了したと判断する。これにより、アプリケーションプログラム121が、ファイルシステムを利用するアプリケーションプログラムである場合において、不可分データの書き込みが完了したか否かを適切に判断することができる。
ステップS12で、アプリケーションプログラム121の不可分データの書き込みが完了したと判断していない場合(ステップS12:No)には、管理エージェントプログラム122は、再びステップS12を行う。
一方、アプリケーションプログラム121の不可分データの書き込みが完了したと判断した場合(ステップS12:Yes)には、管理エージェントプログラム122は、その時点の現在時刻を取得し、この時刻を不可分データの正ボリューム360への書き込み完了時刻とする(ステップS13)。
次いで、管理エージェントプログラム122は、記憶している不可分データサイズを取得し(ステップS14)、不可分データの正ボリューム360への書き込み完了時刻と、不可分データサイズとを含む不可分データ情報を管理計算機200の不可分データ情報受信部222に送信する(ステップS15)。
この管理エージェント処理により、アプリケーションプログラム121の各不可分データについての不可分データ情報が管理計算機200に送信されることとなる。
図10は、実施例1に係るジャーナル情報送信処理のフローチャートである。
ジャーナル情報送信処理は、正ストレージシステム300のジャーナル情報送信プログラム322によって実行される処理である。
ジャーナル情報送信プログラム322は、管理者の管理端末から処理の終了要求があるまで、ループBの処理(ステップS21〜S23)を繰り返し実行する。
まず、ジャーナル情報送信プログラム322は、正ジャーナルボリューム370の次に消去されるジャーナル(次に副ストレージシステム400に送信されるジャーナル)のジャーナルIDを記憶する(ステップS21)。なお、正ジャーナルボリューム370にジャーナルが保存されていない場合には、ジャーナル情報送信プログラム322は、何もしない。
次いで、ジャーナル情報送信プログラム322は、正ジャーナルボリューム370から記憶したジャーナルIDのジャーナルが消去されたか否かを判断する(ステップS22)。この結果、正ジャーナルボリューム370から記憶したジャーナルIDのジャーナルが消去されていない場合(ステップS22:No)には、ジャーナル情報送信プログラム322は、処理をステップS21に進める。
一方、正ジャーナルボリューム370から記憶したジャーナルIDのジャーナルが消去された場合(ステップS22:Yes)には、ストレージ制御プログラム321がそのジャーナルIDのジャーナルを副ストレージシステム400に送信して、正ジャーナルボリューム370から削除したことを意味しているので、ジャーナル情報送信プログラム322は、記憶したジャーナルIDを含むジャーナル情報を管理計算機200のジャーナル情報受信部224に送信する(ステップS23)。これにより、ジャーナルが副ストレージシステム400に送信されたことを適切に判断し、そのジャーナルに対応するジャーナル情報を適切に管理計算機200に送信することができる。
このジャーナル情報送信処理により、副ストレージシステム400に送信された各ジャーナルのジャーナルIDを含むジャーナル情報が管理計算機200に送信されることとなる。
図11は、実施例1に係る管理処理のフローチャートである。
管理処理は、管理計算機200の管理プログラム221によって実行される処理である。
管理プログラム221は、管理者の管理端末から処理の終了要求があるまで、ループCの処理(ステップS31〜S34)を繰り返し実行する。
まず、管理プログラム221は、不可分データ情報受信部222が新たに不可分データ情報を受信したか否かを判断する(ステップS31)。この結果、不可分データ情報受信部222が新たに不可分データ情報を受信した場合(ステップS31:Yes)には、管理プログラム221は、不可分データジャーナル数算出部223による不可分データジャーナル数算出処理(図12参照)を実行させる(ステップS32)。この不可分データジャーナル数算出処理によると、不可分データに基づいて生成されたジャーナルの数が算出されて、滞留ジャーナル数テーブル231に登録される。
一方、不可分データ情報受信部222が新たに不可分データ情報を受信していない場合(ステップS31:No)、又は、不可分データジャーナル数算出処理が終了した場合には、管理プログラム221は、ジャーナル情報受信部224が新たにジャーナル情報を受信したか否かを判断する(ステップS33)。
この結果、ジャーナル情報受信部224が新たにジャーナル情報を受信した場合(ステップS33:Yes)には、管理プログラム221は、データ損失期間算出部225によるデータ損失期間算出処理(図13参照)を実行させる(ステップS34)。
一方、ジャーナル情報受信部224が新たにジャーナル情報を受信していない場合(ステップS33:No)、又は、データ損失期間算出処理が終了した場合には、管理プログラム221は、処理をステップS31に進める。
図12は、実施例1に係る不可分データジャーナル数算出処理のフローチャートである。
不可分データジャーナル数算出処理は、図11のステップS32に対応する処理であり、管理計算機200の管理プログラム221の不可分データジャーナル数算出部223によって実行される。
まず、不可分データジャーナル数算出部223は、不可分データ情報受信部222により受信された不可分データ情報中の不可分データサイズを、予め決まっているジャーナルのサイズ(ジャーナルサイズ)で除算することにより、不可分データに基づいて作成されるジャーナルの数(ジャーナル数)を算出する(ステップS41)。
次いで、不可分データジャーナル数算出部223は、受信された不可分データ情報中の不可分データの正ボリューム360への書込みが完了した時刻と、算出したジャーナル数とを含むレコードを作成し、そのレコードを滞留ジャーナル数テーブル231の先頭に追加し(ステップS42)、処理を終了する。
この不可分データジャーナル数算出処理によると、新たに正ボリューム360に書込まれた不可分データについてのジャーナル数を滞留ジャーナル数テーブル231に登録することができる。
図13は、実施例1に係るデータ損失期間算出処理のフローチャートである。
データ損失期間算出処理は、図11のステップS34に対応する処理であり、管理計算機200のデータ損失期間算出部225によって実行される。
まず、データ損失期間算出部225は、滞留ジャーナル数テーブル231の末尾のレコードを取得し(ステップS51)、そのレコードの滞留ジャーナル数231bの滞留ジャーナル数を1減算する(ステップS52)。
次いで、データ損失期間算出部225は、そのレコードの滞留ジャーナル数が0になったか否かを判断する(ステップS53)。
この結果、そのレコードの滞留ジャーナル数が0になっていない場合(ステップS53:No)には、そのレコードに対応する不可分データの全てのジャーナルについての副ストレージシステム400への送信が完了していないことを示しているので、データ損失期間算出部225は、処理を終了する。
一方、そのレコードの滞留ジャーナル数が0になっている場合(ステップS53:Yes)には、そのレコードに対応する不可分データの全てのジャーナルについての副ストレージシステム400への送信が完了していることを示しているので、データ損失期間算出部225は、その時点の現在時刻を、不可分データの副ボリューム450への書込み完了時刻とする(ステップS54)。
次いで、データ損失期間算出部225は、不可分データの副ボリューム450への書込み完了時刻から、滞留ジャーナル数テーブル231から取得したレコードの正ボリュームへの書き込み完了時刻231aに格納されている不可分データの正ボリューム360への書込み完了時刻を減算し、得られた期間をその不可分データについてのデータ損失期間とする(ステップS55)。
次いで、データ損失期間算出部225は、不可分データの副ボリュームへの書込み完了時刻と、データ損失期間とを含むレコードを作成し、そのレコードをデータ損失期間テーブル232に追加し(ステップS56)、滞留ジャーナル数テーブル231の末尾のレコードを削除し(ステップS57)、処理を終了する。
このデータ損失期間算出処理によると、送信したジャーナルの数に基づいて、不可分データに対応する全てのジャーナルが送信されたことを適切に判断することができる。また、不可分データの副ボリュームへの書込み完了時刻と、各不可分データについてのデータ損失期間とをデータ損失期間テーブル232に蓄積することができる。これにより、不可分データについての副ボリュームへの書込み完了時刻と、各不可分データについてのデータ損失期間とを把握することができるようになる。
図14は、実施例1に係るデータ損失期間表示画面の構成図である。
データ損失期間表示画面500は、管理計算機200のデータ損失期間表示部226が、データ損失期間テーブル232に基づいて、表示装置250に表示される画面の一例である。
データ損失期間表示画面500は、データ損失期間推移表示領域510と、表示単位選択領域520と、閉じるボタン530とを含む。
データ損失期間推移表示領域510には、表示単位選択領域520で選択された表示単位でデータ損失期間の推移を表示する領域である。データ損失期間推移表示領域510には、例えば、データ損失期間表示部226により、データ損失期間テーブル232に基づいて、横軸に不可分データの副ボリュームへの書込み完了時刻を取り、縦軸にデータ損失期間を取ったグラフ(例えば、折れ線グラフ)が表示される。ここで、表示単位としては、例えば、1つの正ボリューム360に格納される不可分データを単位として1本の線を表示するボリューム単位表示や、1つのアプリケーションに関する不可分データを単位として1本の線として表示するアプリケーション単位表示や、1つのレプリケーショングループに属する複数のボリュームに関する不可分データを単位として1本の線として表示するレプリケーショングループ単位表示等がある。図14に示す例では、データ損失期間推移表示領域510には、アプリケーション単位表示が指定されている場合のグラフが表示されており、アプリケーションAP1、AP2、及びAP3毎に、各アプリケーションに関する不可分データについてデータ損失期間のグラフが表示されている。
ここで、ボリューム単位表示で表示を行うようにする場合には、管理エージェントプログラム122は、不可分データの書き込みの行われた正ボリュームIDを取得し、不可分データ情報にさらに正ボリュームIDを含めて管理計算機200の管理プログラム221に送信する必要がある。また、管理計算機200における滞留ジャーナル数テーブル231及びデータ損失期間テーブル232における各レコードに、対応する正ボリュームIDを管理するためのカラムを追加する必要がある。また、管理プログラム211は、不可分データ情報に含まれている正ボリュームIDについて、滞留ジャーナル数テーブル231及びデータ損失期間テーブル232に格納する必要がある。そして、データ損失期間表示部226は、同一の正ボリュームIDに対応付けられている不可分データに関するデータ損失期間を1つの線とするグラフを表示する。このように、ボリューム単位で表示を行うと、データ損失期間が特に悪化している正ボリュームを容易に特定することができる。
また、アプリケーション単位表示で表示を行うようにする場合には、管理エージェントプログラム122は、不可分データの書き込みを行ったアプリケーションIDと、書き込みの行われた正ボリュームIDとを取得し、不可分データ情報にさらにアプリケーションID及び正ボリュームIDを含めて管理計算機200の管理プログラム221に送信する必要がある。また、管理計算機200における滞留ジャーナル数テーブル231及びデータ損失期間テーブル232における各レコードに、対応するアプリケーションIDを管理するためのカラムを追加する必要がある。また、管理プログラム211は、不可分データ情報に含まれているアプリケーションIDについて、滞留ジャーナル数テーブル231及びデータ損失期間テーブル232に格納する必要がある。また、管理プログラム211は、アプリケーションのアプリケーションIDと、そのアプリケーションが使用しているボリュームのボリュームIDとの対応関係を予め取得しておく必要がある。この対応関係については、例えば、管理者による入力等に基づいて取得しても良い。そして、データ損失期間表示部226は、同一のアプリケーションIDに対応付けられている不可分データに関するデータ損失期間を1つの線とするグラフを表示する。このように、アプリケーション単位で表示を行うと、データ損失期間が特に悪化しているアプリケーションを容易に特定することができる。
表示単位選択領域520は、データ損失期間推移表示領域510に表示させる表示単位の選択を管理者から受け付けるため領域である。閉じるボタン530は、データ損失期間表示画面500を閉じる指示を管理者から受け付けるためのボタンである。
次に、実施例2に係る計算機システムについて説明する。
実施例2に係る計算機システムは、1つの不可分データから作成されるジャーナルが必ず排他的に正ジャーナルボリューム370に書込まれることが保証されていない場合、すなわち、複数の不可分データから作成されるジャーナルが正ジャーナルボリューム370に混在して書き込まれる可能性がある場合であっても、各不可分データの副ボリュームへの書込み完了時刻を特定でき、各不可分データについてのデータ損失期間を適切に算出することができるように構成されている。
実施例2に係る計算機システムの構成は、基本的には、図2に示す実施例1に係る計算機システムの構成と同様である。以下、実施例1に係る計算機システムと違う点を中心に説明する。
図15は、実施例2に係る管理計算機の構成図である。なお、実施例1に係る管理計算機と同様な部分については、同一の符号を付している。
実施例2に係る管理計算機200の二次記憶装置230は、実施例1に係る滞留ジャーナル数テーブル231に代えて、ジャーナルハッシュテーブル233を記憶している。ジャーナルハッシュテーブル233の詳細については後述する。また、実施例2に係る管理計算機200の管理プログラム221は、実施例1に係る不可分データジャーナル数算出部223に代えて、不可分データ末尾ハッシュ値記録部227を備えている。不可分データ末尾ハッシュ値記録部227の処理については、後述する。
図16は、実施例2に係るジャーナルハッシュテーブルの構成図である。
ジャーナルハッシュテーブル233は、不可分データ毎に、正ボリュームへの書き込み完了時刻233aと、不可分データ末尾ハッシュ値233bとのフィールドを有するエントリを格納する。
正ボリュームへの書き込み完了時刻233aには、エントリに対応する不可分データの正ボリューム360への書き込みが完了した時刻が格納される。不可分データ末尾ハッシュ値233bには、エントリに対応する不可分データに基づいて生成される複数のジャーナルの中の末尾のジャーナルの基となる、不可分データ中のデータに基づくハッシュ値が格納される。
次に、実施例2に係る計算機システムの処理動作について説明する。
図17は、実施例2に係る管理エージェント処理のフローチャートである。
管理エージェント処理は、ホスト100の管理エージェントプログラム122によって実行される処理である。
管理エージェントプログラム122は、管理者の管理端末から処理の終了要求があるまで、ループDの処理(ステップS61〜S66)を繰り返し実行する。
まず、管理エージェントプログラム122は、アプリケーションプログラム121の不可分データの書き込みが行われたか否かを判断し(ステップS61)、不可分データの書き込みが行われていない場合(ステップS61:NO)には、処理をステップS63に進める。
一方、不可分データの書き込みが行われた場合(ステップS61:YES)には、管理エージェントプログラム122は、書き込みが行われた不可分データの識別情報(ID)と、正ボリューム360へ書き込みを行う不可分データ中の所定の単位であるライトデータ(Writeデータ)との組を記憶する(ステップS62)。ここで、本実施例の正ストレージシステム300では、このWriteデータに対して、一つのジャーナルが生成される。なお、ステップS62では、書き込みが行われた不可分データのIDについての組が既に記憶されている場合には、管理エージェントプログラム122は、その組については削除する。これにより、書き込みが行われた不可分データのIDと、その不可分データ中の最後に送信されたWriteデータとの組が記憶されることとなる。
ステップS63では、管理エージェントプログラム122は、不可分データの全体の書込みが完了したか否かを判断する(ステップS63)。なお、アプリケーションプログラム121の不可分データの書み込みが完了したか否かの判断は、実施例1と同様な方法により実現できる。
この結果、アプリケーションプログラム121の不可分データの書き込みが完了したと判断していない場合(ステップS63:No)には、管理エージェントプログラム122は、処理をステップS61に進める。
一方、アプリケーションプログラム121の不可分データの書き込みが完了したと判断した場合(ステップS63:Yes)には、管理エージェントプログラム122は、その時点の現在時刻を取得し、この時刻を不可分データの正ボリュームへの書き込み完了時刻とする(ステップS64)。
次いで、管理エージェントプログラム122は、書き込み完了した不可分データのIDと組にされて保存されているWriteデータに対応するハッシュ値を算出し、不可分データ末尾ハッシュ値とする(ステップS65)。ここで、書き込み完了した不可分データのIDと組にされて保存されているWriteデータは、不可分データについての末尾のジャーナルの基となるWriteデータ(末尾Writeデータ)である。
次いで、管理エージェントプログラム122は、不可分データの正ボリュームへの書き込み完了時刻と、不可分データ末尾ハッシュ値とを含む不可分データ情報を管理計算機200の不可分データ情報受信部222に送信する(ステップS66)。
この管理エージェント処理により、アプリケーションプログラム121の各不可分データのIDと、その不可分データの末尾Writeデータのハッシュ値とを含む不可分データ情報が、管理計算機200に送信されることとなる。
図18は、実施例2に係るジャーナル情報送信処理のフローチャートである。
ジャーナル情報送信処理は、正ストレージシステム300のジャーナル情報送信プログラム322によって実行される処理である。
ジャーナル情報送信プログラム322は、管理者の管理端末から処理の終了要求があるまで、ループEの処理(ステップS71〜S75)を繰り返し実行する。
まず、ジャーナル情報送信プログラム322は、正ジャーナルボリューム370の次に消去されるジャーナル(次に副ストレージシステム400に送信されるジャーナル)を記憶する(ステップS71)。なお、正ジャーナルボリューム370にジャーナルが保存されていない場合には、ジャーナル情報送信プログラム322は、何もしない。
次いで、ジャーナル情報送信プログラム322は、正ジャーナルボリューム370から、記憶したジャーナルが消去されたか否かを判断する(ステップS72)。この結果、正ジャーナルボリューム370から、記憶したジャーナルが消去されていない場合(ステップS72:No)には、ジャーナル情報送信プログラム322は、処理をステップS71に進める。
一方、正ジャーナルボリューム370から、記憶したジャーナルが消去された場合(ステップS72:Yes)には、ジャーナル情報送信プログラム322は、記憶しているジャーナルをWriteデータに復元し(ステップS73)、復元したWriteデータのハッシュ値を算出し、このハッシュ値をジャーナルハッシュ値とする(ステップS74)。
次いで、ジャーナル情報送信プログラム322は、ジャーナルハッシュ値を含むジャーナル情報を管理計算機200のジャーナル情報受信部224に送信する(ステップS75)。
このジャーナル情報送信処理により、副ストレージシステム400に送信されたジャーナルの基となるWriteデータのハッシュ値を含むジャーナル情報が管理計算機200に送信されることとなる。
図19は、実施例2に係る管理処理のフローチャートである。
管理処理は、管理計算機200の管理プログラム221によって実行される処理である。
管理プログラム221は、管理者の管理端末から処理の終了要求があるまで、ループFの処理(ステップS81〜S84)を繰り返し実行する。
まず、管理プログラム221は、不可分データ情報受信部222が新たに不可分データ情報を受信したか否かを判断する(ステップS81)。この結果、不可分データ情報受信部222が新たに不可分データ情報を受信した場合(ステップS81:Yes)には、管理プログラム221は、不可分データ末尾ハッシュ値記録部227による不可分データ末尾ハッシュ値記録処理(図20参照)を実行させる(ステップS82)。この不可分データ末尾ハッシュ値記録処理によると、不可分データの末尾のWriteデータのハッシュ値がジャーナルハッシュテーブル233に登録される。
一方、不可分データ情報受信部222が新たに不可分データ情報を受信していない場合(ステップS81:No)、又は、不可分データ末尾ハッシュ値記録処理が終了した場合には、管理プログラム221は、ジャーナル情報受信部224が新たにジャーナル情報を受信したか否かを判断する(ステップS83)。
この結果、ジャーナル情報受信部224が新たにジャーナル情報を受信した場合(ステップS83:Yes)には、管理プログラム221は、データ損失期間算出部225によるデータ損失期間算出処理(図21参照)を実行させる(ステップS84)。
一方、ジャーナル情報受信部224が新たにジャーナル情報を受信していない場合(ステップS83:No)、又は、データ損失期間算出処理が終了した場合には、管理プログラム221は、処理をステップS81に進める。
図20は、実施例2に係る不可分データ末尾ハッシュ値記録処理のフローチャートである。
不可分データ末尾ハッシュ値記録処理は、図19のステップS82に対応する処理であり、管理計算機200の不可分データ末尾ハッシュ値記録部227によって実行される。
まず、不可分データ末尾ハッシュ値記録部227は、不可分データ情報受信部222により受信された不可分データ情報中の不可分データの正ボリューム360への書き込みが完了した時刻と、不可分データ末尾ハッシュ値とを含むレコードを作成し、そのレコードをジャーナルハッシュテーブル233に追加し(ステップS91)、処理を終了する。
この不可分データ末尾ハッシュ値記録処理によると、新たに正ボリューム360に書込まれた不可分データの末尾のWriteデータのハッシュ値をジャーナルハッシュテーブル233に登録することができる。
図21は、実施例2に係るデータ損失期間算出処理のフローチャートである。
データ損失期間算出処理は、図19のステップS84に対応する処理であり、管理計算機200のデータ損失期間算出部225によって実行される。
まず、データ損失期間算出部225は、ジャーナルハッシュテーブル233の不可分データ末尾ハッシュ値233bについて、ジャーナル情報受信部224により受信されたジャーナル情報中のジャーナルハッシュ値で検索する(ステップS101)。
次いで、データ損失期間算出部225は、検索の結果、対応するレコードが見つかったか否かを判断する(ステップS102)。
この結果、対応するレコードが見つかっていない場合(ステップS102:No)には、そのジャーナルハッシュ値に対応するWriteデータが、不可分データの末尾のWriteデータでないこと、すなわち、その不可分データの全てのジャーナルを副ストレージシステム400に送信していないことを示しているので、データ損失期間算出部225は、処理を終了する。
一方、対応するレコードが見つかった場合(ステップS102:Yes)には、そのレコードに対応する不可分データの全てのジャーナルについて副ストレージシステム400に送信していることを示しているので、データ損失期間算出部225は、その時点の現在時刻を、不可分データの副ボリュームへの書き込み完了時刻とする(ステップS103)。
次いで、データ損失期間算出部225は、不可分データの副ボリュームへの書き込み完了時刻から、ジャーナルハッシュテーブル233から見つかったレコードの正ボリュームへの書き込み完了時刻233aに格納されている不可分データの正ボリュームへの書き込み完了時刻を減算し、得られた期間をその不可分データについてのデータ損失期間とする(ステップS104)。
次いで、データ損失期間算出部225は、不可分データの副ボリュームへの書き込み完了時刻と、データ損失期間とを含むレコードを作成し、そのレコードをデータ損失期間テーブル232に追加し(ステップS105)、処理を終了する。
このデータ損失期間算出処理によると、ハッシュ値に基づいて、不可分データの全てのジャーナルが副ストレージシステム400に送信されたか否を適切に判断することができ、各不可分データについてのデータ損失期間をデータ損失期間テーブル232に蓄積することができる。なお、データ損失期間テーブル232に蓄積された情報に基づいて、データ損失期間表示部226が実施例1と同様な処理を行うことにより、図14に示すデータ損失期間表示画面500を表示させることができる。これにより、管理者は、不可分データについてのデータ損失期間を容易且つ適切に把握することができる。
以上、幾つかの実施例を説明したが、本発明は、これらの実施例に限定されるものでなく、その要旨を逸脱しない範囲で種々変更可能であることはいうまでもない。
例えば、実施例1において、正ストレージシステム300のジャーナル情報送信プログラム323が、不可分データに対応する最後のジャーナルが副ストレージシステム400に送信されたときに、不可分データの全てのジャーナルを送信したことを示すジャーナル情報(例えば、全てのジャーナルを送信した時刻情報を含む)を管理計算機200に送信し、管理計算機200のデータ損失期間算出部225が、ジャーナル情報に基づいて、不可分データに対応する全てのジャーナルが送信された時刻を、データ回復可能時刻として記憶するようにしても良い。このようにすると、管理計算機200は、不可分データの全てのジャーナルが送信されたことを容易に判断することができる。
また、正ボリューム、正ジャーナルボリューム、副ジャーナルボリューム及び副ボリュームのうちの少なくとも1つの論理ボリュームは、ストレージシステムが有する物理的な記憶デバイスに基づく実体的な論理ボリュームに代えて、仮想的な論理ボリューム(例えば、シンプロビジョニング技術に従う論理ボリューム、或いは、外部のストレージシステムの記憶資源が仮想化された論理ボリューム)であっても良い。
また、正ジャーナルボリューム及び副ジャーナルボリュームのうちの少なくとも1つに代えて、他種の記憶領域、例えば、ストレージシステムが有するメモリの一部領域がジャーナルの記憶領域とされても良い。
また、管理計算機200が行う情報表示は、表示装置250に情報を表示することに代えて、遠隔の計算機に表示される情報を送信することであっても良い。
100:ホスト計算機、200:管理計算機、300:正ストレージシステム、400:副ストレージシステム。

Claims (15)

  1. ホスト計算機と、
    前記ホスト計算機に接続された正ストレージシステムと、
    前記正ストレージシステムに接続された副ストレージシステムと、
    前記ホスト計算機及び前記正ストレージシステムに接続された管理計算機と
    を有し、
    前記ホスト計算機は、整合性を維持するために不可分なデータのまとまりである不可分データを、アプリケーションを実行することにより生成し、前記不可分データを前記副ストレージシステムに送信し、
    前記正ストレージシステムは、正ストレージ制御部を有し、
    前記正ストレージ制御部が、
    前記不可分データを受信し、前記受信した不可分データを格納し、
    前記不可分データが所定のサイズに分割された複数のデータをそれぞれ含んだ複数のジャーナルを前記副ストレージシステムに送信し、
    前記複数のジャーナルをそれぞれ送信したことを示すジャーナル情報を前記管理計算機に送信し、
    前記副ストレージシステムは、副ストレージ制御部を有し、
    前記副ストレージ制御部が、
    前記複数のジャーナルを受信し、
    前記複数のジャーナルがそれぞれ含む前記複数のデータを格納し、
    前記管理計算機は、
    前記正ストレージシステムから前記ジャーナル情報を受信するジャーナル情報受信部と、
    前記ジャーナル情報に基づいて、前記不可分データに対応する全てのジャーナルが前記副ストレージシステムへ送信されたか否かを判断し、前記不可分データに対応する全てのジャーナルが前記副ストレージシステムへ送信されたと判断した場合に、前記不可分データに対応する全てのジャーナルが送信された時刻を、前記不可分データについて回復することのできるデータが格納されている時刻を示すデータ回復可能時刻として格納するデータ損失期間算出部と
    を有する
    計算機システム。
  2. 前記ホスト計算機は、前記不可分データのデータサイズを含む不可分データ情報を前記管理計算機に送信する不可分データ情報送信部を有し、
    前記管理計算機は、
    前記ホスト計算機から前記不可分データ情報を受信する不可分データ情報受信部と、
    前記不可分データ情報に基づいて、前記不可分データが分割されるジャーナルの数を算出する不可分データジャーナル数算出部と
    を更に有し、
    前記データ損失期間算出部は、前記ジャーナル情報に基づいて、算出された前記不可分データが分割されるジャーナルの数のジャーナルが送信されたことを特定することにより、前記不可分データに対応する全てのジャーナルが送信されたと判断する
    請求項1に記載の計算機システム。
  3. 前記不可分データ情報は、前記不可分データを前記正ストレージシステムに格納した不可分データ格納時刻を含み、
    前記データ損失期間算出部は、前記不可分データ情報の前記不可分データ格納時刻と、前記データ回復可能時刻との差分であるデータ損失期間を算出し、
    前記管理計算機は、前記データ損失期間に関する情報を表示するデータ損失期間表示部を更に有する
    請求項2に記載の計算機システム。
  4. 前記正ストレージシステムは、前記不可分データの格納先となる正ボリュームを有し、
    前記副ストレージシステムは、前記複数のジャーナルがそれぞれ含む前記複数のデータの格納先となる副ボリュームを有し、
    前記ホスト計算機が1又は複数存在し、前記1又は複数のホスト計算機が、1又は複数のアプリケーションを実行するようになっており、
    前記データ損失期間表示部は、アプリケーション単位又はボリューム単位で、アプリケーション又はボリュームに関連する複数の前記不可分データについての前記データ損失期間を時系列に表示する
    請求項3に記載の計算機システム。
  5. 前記正ストレージ制御部は、前記複数のジャーナルのうち前記副ストレージシステムへ送信したジャーナルを前記正ストレージシステムから削除し、
    前記管理計算機に送信されるジャーナル情報は、前記削除されたジャーナルに対応するジャーナル情報である
    請求項1に記載の計算機システム。
  6. 前記正ストレージ制御部は、前記不可分データに対応する最後のジャーナルが前記副ストレージシステムに送信されたときに、前記不可分データの全てのジャーナルを送信したことを示すジャーナル情報を前記管理計算機に送信し、
    前記データ損失期間算出部は、前記ジャーナル情報に基づいて、前記不可分データに対応する全てのジャーナルが送信された時刻を、前記データ回復可能時刻として格納する
    請求項1に記載の計算機システム。
  7. 前記アプリケーションは、データベースシステムを利用するアプリケーションであり、前記不可分データは、或るトランザクションにおいて更新された全ての内容についてのデータである
    請求項1に記載の計算機システム。
  8. 前記アプリケーションは、ファイルシステムを利用するアプリケーションであり、前記不可分データは、前記ファイルシステムにおける1つのファイルのデータである
    請求項1に記載の計算機システム。
  9. 前記ホスト計算機は、
    前記不可分データを、所定のサイズの複数のライトデータに分割して前記正ストレージシステムへ送信し、前記不可分データの最後のライトデータについての第1ハッシュ値を算出し、前記第1ハッシュ値と、前記不可分データを構成する全てのライトデータを前記正ストレージシステムへ送信した時刻とを含む不可分データ情報を前記管理計算機に送信する管理エージェント部
    を有し、
    前記正ストレージ制御部は、
    前記ホスト計算機からのライトデータを含んだジャーナルを作成し、
    前記ジャーナルが含むライトデータの第2ハッシュ値を算出し、
    前記ジャーナルが前記副ストレージシステムに送信された場合に、前記ジャーナルが含むライトデータの前記第2ハッシュ値を含む前記ジャーナル情報を前記管理計算機に送信し、
    前記データ損失期間算出部は、前記不可分データ情報の前記第1ハッシュ値と、前記ジャーナル情報の前記第2ハッシュ値とが一致する場合に、その時点の時刻を、前記不可分データについて回復することのできるデータが格納されている時刻を示す前記データ回復可能時刻として格納する
    請求項1に記載の計算機システム。
  10. 前記不可分データ情報は、前記不可分データを前記正ストレージシステムに格納した不可分データ格納時刻を含み、
    前記データ損失期間算出部は、前記不可分データ情報の前記不可分データ格納時刻と、前記データ回復可能時刻との差分であるデータ損失期間を算出し、
    前記管理計算機は、前記データ損失期間に関する情報を表示するデータ損失期間表示部を更に有する
    請求項9に記載の計算機システム。
  11. 整合性を維持するために不可分なデータのまとまりでありホスト計算機がアプリケーションを実行することにより生成した不可分データを前記ホスト計算機から受信し、前記受信した不可分データを格納し、前記不可分データが所定のサイズに分割された複数のデータをそれぞれ含んだ複数のジャーナルを、前記複数のジャーナルを受信しそれら複数のジャーナルがそれぞれ含む複数のデータを格納するようになっている副ストレージシステムに送信し、且つ、前記複数のジャーナルをそれぞれ送信したことを示すジャーナル情報を管理計算機に送信するようになっている正ストレージシステム、から、前記ジャーナル情報を受信し、
    前記ジャーナル情報に基づいて、前記不可分データに対応する全てのジャーナルが前記副ストレージシステムへ送信されたか否かを判断し、前記不可分データに対応する全てのジャーナルが前記副ストレージシステムへ送信されたと判断した場合に、前記不可分データに対応する全てのジャーナルが送信された時刻を、前記不可分データについて回復することのできるデータが格納されている時刻を示すデータ回復可能時刻として格納する
    非同期レプリケーション管理方法。
  12. 前記不可分データのデータサイズを含む不可分データ情報を前記ホスト計算機から受信し、
    前記不可分データ情報に基づいて、前記不可分データが分割されるジャーナルの数を算出し、
    前記ジャーナル情報に基づいて、算出された前記不可分データが分割されるジャーナルの数のジャーナルが送信されたことを特定することにより、前記不可分データに対応する全てのジャーナルが送信されたと判断する
    請求項11に記載の非同期レプリケーション管理方法。
  13. 前記不可分データ情報は、前記不可分データを前記正ストレージシステムに格納した不可分データ格納時刻を含んでおり、
    前記不可分データ情報の前記不可分データ格納時刻と、前記データ回復可能時刻との差分であるデータ損失期間を算出し、
    前記データ損失期間に関する情報を表示する
    請求項12に記載の非同期レプリケーション管理方法。
  14. アプリケーション単位、又はボリューム単位で、アプリケーション又はボリュームに関連する複数の前記不可分データについての前記データ損失期間を時系列に表示し、
    前記正ストレージシステムは、前記不可分データの格納先となる正ボリュームを有しており、
    前記副ストレージシステムは、前記複数のジャーナルがそれぞれ含む前記複数のデータの格納先となる副ボリュームを有しており、
    前記ホスト計算機が1又は複数存在し、前記1又は複数のホスト計算機が、1又は複数のアプリケーションを実行するようになっている、
    請求項13に記載の非同期レプリケーション管理方法。
  15. 前記受信したジャーナル情報は、前記複数のジャーナルのうち前記副ストレージシステムへ送信したジャーナルを削除するようになっている前記正ストレージシステムによって削除されたジャーナルに対応するジャーナル情報である
    請求項11に記載の非同期レプリケーション管理方法。
JP2015511826A 2013-04-18 2013-04-18 計算機システム及び非同期レプリケーション管理方法 Expired - Fee Related JP5781716B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/061484 WO2014170983A1 (ja) 2013-04-18 2013-04-18 計算機システム及び非同期レプリケーション管理方法

Publications (2)

Publication Number Publication Date
JP5781716B2 true JP5781716B2 (ja) 2015-09-24
JPWO2014170983A1 JPWO2014170983A1 (ja) 2017-02-16

Family

ID=51730954

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015511826A Expired - Fee Related JP5781716B2 (ja) 2013-04-18 2013-04-18 計算機システム及び非同期レプリケーション管理方法

Country Status (3)

Country Link
US (1) US20150213103A1 (ja)
JP (1) JP5781716B2 (ja)
WO (1) WO2014170983A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256586B2 (en) * 2020-04-28 2022-02-22 Hitachi, Ltd. Remote copy system and remote copy management method

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8621275B1 (en) 2010-08-06 2013-12-31 Open Invention Network, Llc System and method for event-driven live migration of multi-process applications
US8584145B1 (en) * 2010-08-06 2013-11-12 Open Invention Network, Llc System and method for dynamic transparent consistent application-replication of multi-process multi-threaded applications
US10180945B2 (en) * 2015-02-02 2019-01-15 Adobe Inc. Data replication from a cloud-based storage resource
JP6951171B2 (ja) * 2017-09-19 2021-10-20 シャープ株式会社 ファイル管理装置、複合機及び情報処理装置、ファイル管理方法並びにファイル管理用プログラム

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3590075B2 (ja) * 1992-01-20 2004-11-17 株式会社東芝 仮想記憶方式のデータ処理装置及び方法
FR2754925B1 (fr) * 1996-10-18 1998-11-20 Bull Sa Operation atomique sur memoire distante et dispositif permettant d'effectuer cette operation
JP2000137638A (ja) * 1998-10-29 2000-05-16 Hitachi Ltd 情報記憶システム
US7072858B1 (en) * 2000-02-04 2006-07-04 Xpensewise.Com, Inc. System and method for dynamic price setting and facilitation of commercial transactions
JP2004078461A (ja) * 2002-08-14 2004-03-11 Access:Kk ログ記録方法、ファイル管理プログラム、および情報機器
FR2849563B1 (fr) * 2002-12-31 2005-02-11 Medialive Marquage personnalise pour la protection de flux audiovisuels numeriques
JP3782398B2 (ja) * 2003-02-19 2006-06-07 株式会社東芝 光ディスク媒体および光ディスク記録装置及び再生装置
JP4476683B2 (ja) * 2004-04-28 2010-06-09 株式会社日立製作所 データ処理システム
US7613787B2 (en) * 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
US7644046B1 (en) * 2005-06-23 2010-01-05 Hewlett-Packard Development Company, L.P. Method of estimating storage system cost
US8078728B1 (en) * 2006-03-31 2011-12-13 Quest Software, Inc. Capacity pooling for application reservation and delivery
US8055852B2 (en) * 2007-08-15 2011-11-08 Micron Technology, Inc. Memory device and method having on-board processing logic for facilitating interface with multiple processors, and computer system using same
CN102754089B (zh) * 2010-02-09 2016-01-20 三菱电机株式会社 传送控制装置、存储器控制装置、以及具有上述传送控制装置的plc
US8989275B2 (en) * 2010-11-10 2015-03-24 Qualcomm Incorporated Video processing architecture
JP2013004067A (ja) * 2011-06-22 2013-01-07 Nippon Telegr & Teleph Corp <Ntt> ストレージシステム、ストレージ制御方法、プログラム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11256586B2 (en) * 2020-04-28 2022-02-22 Hitachi, Ltd. Remote copy system and remote copy management method

Also Published As

Publication number Publication date
JPWO2014170983A1 (ja) 2017-02-16
US20150213103A1 (en) 2015-07-30
WO2014170983A1 (ja) 2014-10-23

Similar Documents

Publication Publication Date Title
US11693740B2 (en) Dynamic triggering of block-level backups based on block change thresholds and corresponding file identities
US11263173B2 (en) Transaction log index generation in an enterprise backup system
KR102240557B1 (ko) 데이터 저장 방법, 장치 및 시스템
US20200218693A1 (en) Data storage system for analysis of data across heterogeneous information management systems
US10949382B2 (en) User-centric interfaces for information management systems
US9921769B2 (en) Making more active use of a secondary storage system
JP5781716B2 (ja) 計算機システム及び非同期レプリケーション管理方法
US11687595B2 (en) System and method for searching backups
US11397749B2 (en) Asynchronous replication of in-scope table data
US11455216B2 (en) Method and system for generating synthetic backups using pseudo-asset backups
US10606709B1 (en) Method and system for intelligently load balancing database backup operations in information technology environments
US11468016B2 (en) Method and system for parallelizing backup generation operations using pseudo-asset backups
US20210240573A1 (en) Method and system for adaptive incrementally updated backups with dynamic data file detection
US11232002B2 (en) Method and system for seamless database backup live-mounting using self-contained database backups
US9183208B1 (en) Fileshot management
JP2006277563A (ja) ファイルを指定日時のバージョンに復帰させるためのバックアップ・システム、バックアップ方法および該方法をコンピュータに実行させるためのプログラム
US11132401B1 (en) Distributed hash table based logging service
US10976959B2 (en) Method and system for accessing virtual machine state while virtual machine restoration is underway
US20240103984A1 (en) Leveraging backup process metadata for data recovery optimization
US20230393948A1 (en) Storage system and method of restoring storage system
US20220043722A1 (en) Method and system for generating backups using pseudo-asset backups
US11803449B2 (en) Method and system for maintaining live database data across hybrid storage
US11953996B1 (en) Method and system for selectively preserving data generated during application access
US20240103973A1 (en) Leveraging file-system metadata for direct to cloud object storage optimization
CN113282238B (zh) 归档数据的存储方法、系统、设备和介质

Legal Events

Date Code Title Description
TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150707

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150715

R150 Certificate of patent or registration of utility model

Ref document number: 5781716

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees