JP2009146381A - ストレージシステム群 - Google Patents

ストレージシステム群 Download PDF

Info

Publication number
JP2009146381A
JP2009146381A JP2008151302A JP2008151302A JP2009146381A JP 2009146381 A JP2009146381 A JP 2009146381A JP 2008151302 A JP2008151302 A JP 2008151302A JP 2008151302 A JP2008151302 A JP 2008151302A JP 2009146381 A JP2009146381 A JP 2009146381A
Authority
JP
Japan
Prior art keywords
data
data element
journal
area
vol
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.)
Granted
Application number
JP2008151302A
Other languages
English (en)
Other versions
JP5275692B2 (ja
Inventor
Kentetsu Eguchi
賢哲 江口
Akira Yamamoto
山本  彰
Yasutomo Yamamoto
康友 山本
Manabu Kitamura
学 北村
Ai Satoyama
愛 里山
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
Priority to JP2008151302A priority Critical patent/JP5275692B2/ja
Priority to US12/190,916 priority patent/US9164941B2/en
Publication of JP2009146381A publication Critical patent/JP2009146381A/ja
Application granted granted Critical
Publication of JP5275692B2 publication Critical patent/JP5275692B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】バックアップとして取得されるデータのサイズを削減する。
【解決手段】第一のストレージシステムが、第一の論理ボリュームと、第一のメモリを有した第一のコントローラとを備える。第二のストレージシステムが、第二の論理ボリューム及びジャーナルエリアの基になる第二の物理記憶デバイスと、第二のメモリを有した第二のコントローラとを備える。少なくとも第一のメモリが、ライトデータ要素のサイズであるライト単位サイズを記憶する。ジャーナルエリアは、第一及び/又は第二の論理ボリュームを構成する複数のブロックのうちのいずれかのブロックに記憶されているデータ要素又はそのブロックに書き込まれるデータ要素であるジャーナルデータ要素が記憶される記憶領域である。ジャーナルデータ要素のサイズ、及び、第一及び第二の論理ボリュームの各構成要素として管理される各ブロックのサイズが、ライト単位サイズである。
【選択図】図23

Description

本発明は、一以上のストレージシステムで構成されたストレージシステム群に関し、特に、データのバックアップに関する。
例えば、ストレージシステムが有する機能として、スナップショット機能やジャーナル機能が知られている。
スナップショット機能とは、或る時点(例えばホストからスナップショット取得要求を受けた時点)の或る論理ボリュームのイメージを保持する機能である。定期的にスナップショット機能を実行することにより、論理ボリューム内のデータのレプリケーション(バックアップ)を間欠的に取得しておくことが可能となる。また、スナップショット機能を用いた場合、スナップショット取得時点の論理ボリュームをリストアすることが可能である。
ジャーナル機能とは、ホスト計算機からのライトコマンドで指定されている論理ボリュームにライトデータを書き込む場合に、そのライトデータ及びその書込みに関する制御情報を含んだデータ(ジャーナル)を作成し、作成したジャーナルを保存する機能である。
特許文献1には、スナップショット機能によって取得したスナップショットに、ジャーナル内のライトデータを書き込むことによって、スナップショットを作成したポイント以外のポイントにおいて実行されるリカバリ処理について開示されている。
特許文献2には、スナップショットとジャーナルの切り替えについての開示がある。
特許文献3には、スナップショットのリストアボリュームの運用についての開示がある。
特開2005−18738号公報 特開2007−80131号公報 特開2007−133471号公報
ところで、一般に、バックアップとして取得されるデータ要素(データの一単位)のサイズは、ストレージシステムで管理されている単位記憶領域のサイズである。
しかし、ホストからのライトデータ要素(ライトデータの一単位)のサイズは、ストレージシステムで管理されている単位記憶領域のサイズよりも小さいことがある(或いは、ライトデータ要素が単位記憶領域より大きくても、ライトデータ要素のサイズが単位記憶領域のサイズの倍数になっていないことがある)。この場合、単位記憶領域にライトデータ要素が格納された場合に、単位記憶領域に余りの領域が生じることになる。それ故、バックアップとして取得されるデータ要素は、ホストからのライトデータ要素とその他の情報とを含んだ、そのライトデータ要素よりも大サイズとなる。従って、ストレージシステムには、ホストからのライトデータ要素以外の情報もバックアップデータ要素として保存されてしまうおそれがある。
また、重複したデータ要素が存在し得る場合には、それを排除することが好ましい。
そこで、本発明の一つの目的は、バックアップとして取得されるデータのサイズを削減することにある。
第一の観点として、第一のストレージシステムが、第一の論理ボリュームの基になる第一の物理記憶デバイスと、第一のメモリを有し、ライトコマンドとライトデータの一単位であるライトデータ要素とを上位装置から受け付け、前記ライトコマンドから特定される前記第一の論理ボリュームに前記ライトデータ要素を書き込む前記第一のコントローラとを備える。第一のストレージシステムに接続される第二のストレージシステムが、第二の論理ボリューム及びジャーナルエリアの基になる第二の物理記憶デバイスと、第二のメモリを有し、前記第二の物理記憶デバイスへのアクセスを制御する第二のコントローラとを備える。前記第一及び第二のメモリのうちの少なくとも前記第一のメモリが、前記ライトデータ要素のサイズであるライト単位サイズを記憶する。前記ジャーナルエリアは、前記第一及び/又は第二の論理ボリュームを構成する複数のブロックのうちのいずれかのブロックに記憶されているデータ要素又はそのブロックに書き込まれるデータ要素であるジャーナルデータ要素が記憶される記憶領域である。前記ジャーナルデータ要素のサイズ、及び、前記第一及び前記第二の論理ボリュームの各構成要素として管理される前記各ブロックのサイズが、前記ライト単位サイズである。
第二の観点として、一以上のストレージシステムで構成されるストレージシステム群が、複数のブロックで構成されている論理ボリュームとジャーナルエリアとの基になっている物理記憶デバイスと、メモリを有し、前記論理ボリューム内の或るブロックに更新が発生する場合に前記或るブロックについてのジャーナルデータ要素を取得し、取得されたジャーナルデータ要素を、前記ジャーナルエリアに書き込むコントローラとを備える。前記コントローラが、取得されたジャーナルデータ要素と互いに重複するジャーナルデータ要素が前記ジャーナルエリアに記憶済みか否かを判断する。前記コントローラは、判断の結果が肯定的であれば、前記取得されたジャーナルデータ要素を管理するための要素管理情報を前記ジャーナルエリアに書込み、前記取得されたジャーナルデータ要素を前記ジャーナルエリアに書込まない。前記要素管理情報は、前記ジャーナルデータ要素よりも小さいサイズの情報であり、前記重複するジャーナルデータ要素が記憶されているセグメントのアドレスを表すポインタを含む。
以下、図面を参照して、本発明の幾つかの実施形態を説明する。
図1は、本発明の第一の実施形態に係る計算機システムの構成を示す。
第一のネットワーク121に、一以上のホスト計算機101及び第一のストレージシステム125が接続されている。第二のネットワーク123に、第一及び第二のストレージシステム125及び161が接続されている。第三のネットワーク108に、一以上のホスト計算機101、管理サーバ111、第一及び第二のストレージシステム125及び161が接続されている。ネットワーク121、123及び108は、それぞれ、任意の種類のネットワークを採用することができる。例えば、第一及び第二のネットワーク121及び123は、SAN(Storage Area Network)であって、第三のネットワーク108は、LAN(Local Area Network)である。また、例えば、ストレージシステム125及び161同士は、第二のネットワーク123に代えて専用線で接続されても良い。また、第二ストレージシステム161は、外部接続先のストレージシステムであっても良いし、リモートコピー先のストレージシステムであっても良い。
ホスト計算機101は、第一のストレージシステム125から提供される論理ボリュームにアクセスする計算機である。ホスト計算機101は、CPU(Central Processing Unit)103、メモリ106、補助記憶デバイス104、入力装置(例えばキーボード及びポインティングデバイス)102、出力装置(例えば表示装置)105、第一のネットワーク121に接続されるストレージアダプタ(例えばホストバスアダプタ)109、及び、第三のネットワーク108に接続されるネットワークアダプタ107を備えている。CPU103は、ストレージアダプタ109を介して、アドレスを指定したI/Oコマンド(ライトコマンド又はリードコマンド)を送信する。
管理サーバ111は、第三のネットワーク108に接続されている機器101、111、125及び161を管理する計算機である。管理サーバ111は、CPU(Central Processing Unit)113、メモリ116、補助記憶デバイス114、入力装置(例えばキーボード及びポインティングデバイス)112、出力装置(例えば表示装置)115、及び、第三のネットワーク108に接続されるネットワークアダプタ117を備えている。CPU113は、ネットワークアダプタ117を介して、コマンドを、第三のネットワーク108に接続されている機器101、111、125又は161に送信する。
第一ストレージシステム125は、コントローラと記憶デバイス群とを有する。コントローラは、例えば、複数のフロントエンドインタフェース127と、複数のバックエンドインタフェース137と、第一の内部ネットワーク156と、一以上のキャッシュメモリ147と、一以上の制御メモリ145と、一以上のプロセッサ143とを備える。記憶デバイス群は、複数の物理記憶デバイス(以下、「PDEV」と言う)151で構成されている。
フロントエンドインタフェース127は、第一ストレージシステム125の外部の機器101又は161と通信するためのインタフェース回路である。従って、フロントエンドインタフェース127としては、第一のネットワーク121に接続されるインタフェースと、第二のネットワーク123に接続されるインタフェースがある。フロントエンドインタフェース127は、例えば、ネットワーク121又は123に接続されるポート129と、メモリ131と、ローカルルータ(以下、「LR」と略記する)133とを有する。LR133に、ポート129及びメモリ131が接続されている。LR133は、ポート129を介して受けたデータを任意のプロセッサ143で処理するための振り分けを行う。具体的には、例えば、プロセッサ143から、或るアドレスを指定するI/Oコマンドをそのプロセッサ143で行うようにLR133に対して設定され、その設定に従って、LR133が、I/Oコマンドやデータを振り分ける。
バックエンドインタフェース137は、PDEV151と通信するためのインタフェース回路である。バックエンドインタフェース137は、例えば、PDEV151に接続されるディスクインタフェース141と、メモリ135と、LR139とを有する。LR139に、ディスクインタフェース141及びメモリ135が接続されている。
第一の内部ネットワーク156は、例えば、スイッチ(一例としてクロスバスイッチ)或いはバスで構成される。第一の内部ネットワーク156に、複数のフロントエンドインタフェース127、複数のバックエンドインタフェース137、一以上のキャッシュメモリ147、一以上の制御メモリ145及び一以上のプロセッサ143が接続されている。これらの要素間の通信は、第一の内部ネットワーク156を介して行われる。
キャッシュメモリ147は、ホスト計算機101からのI/Oコマンドに従って読み出される又は書き込まれるデータを一時記憶するメモリである。
制御メモリ145は、種々のコンピュータプログラム及び/又は情報(例えば図4に示すコンピュータプログラム及び情報)を記憶するメモリである。例えば、制御メモリ145には、どのP−VOL(プライマリの論理ボリューム)がどのホスト計算機からアクセスされるVOLであるかを表す情報や、どのP−VOLがどのS−VOL(セカンダリの論理ボリューム)とペアを構成するかを表す情報や、どのP−VOLがどのR−VOL(リストアされた論理ボリューム)に関連するかを表す情報が記憶されている。これらの情報から、どのS−VOL及びR−VOLがどのホスト計算機に関わる論理ボリュームであるかを特定することが可能である。後述するように、或るホスト計算機についてのホストライトサイズを第一のストレージシステム125が受領した場合、制御プロセッサ143は、その或るホスト計算機に関わるP−VOL、S−VOL及びR−VOLを、制御メモリ145に記憶されている情報を参照することで特定し、特定されたP−VOL、S−VOL及びR−VOLについて、ホストライトサイズを設定することができる。
プロセッサ143は、制御メモリ145に記憶されている種々のコンピュータプログラムを実行することで、後述する処理を行う。
PDEV151は、不揮発性の記憶デバイスであり、例えば、ハードディスクドライブ或いはフラッシュメモリデバイスである。二以上のPDEV151で、RAIDの規則に従うPDEVグループであるRAID(Redundant Array of Independent Disks)グループが構成される。
コントローラの各構成要素127、137、147、145及び143に、第二の内部ネットワーク(例えばLAN)155が接続されており、その第二の内部ネットワーク155に、保守管理端末153が接続されている。保守管理端末153は、第三のネットワーク108にも接続されており、第一のストレージシステム125を保守又は管理する計算機である。第一のストレージシステム125の保守員は、例えば、保守管理端末153(又は、その端末153と通信可能な管理サーバ111)を操作して、制御メモリ145に記憶される種々の情報を定義することができる。
第二のストレージシステム161は、コントローラ165とPDEV163群とを有する。コントローラ165は、例えば、ホストアダプタ164と、ネットワークアダプタ162と、制御メモリ171と、キャッシュメモリ172と、プロセッサ167と、ストレージアダプタ169とを有する。ホストアダプタ164、ネットワークアダプタ162、制御メモリ171、キャッシュメモリ172、プロセッサ167及びストレージアダプタ169の機能は、それぞれ、フロントエンドインタフェース127、ネットワークアダプタ162、制御メモリ145、キャッシュメモリ147、プロセッサ167及びバックエンドインタフェース137の機能とそれぞれ実質的に同じである。
図2は、第一のストレージシステム125における記憶領域構成の概要を示す。
論理的な記憶階層として、下位から上位にかけて順に、VDEV層185、ストレージプール189A及び189B、及びLDEV層183がある。
VDEV層185には、一以上の仮想的なデバイス(VDEV)がある。VDEVは、所定のアドレス範囲が設定された記憶空間である。その記憶空間を構成する複数の記憶空間部分が、それぞれ、論理ボリュームである。
図2の例では、第一のVDEV193Aは、一つのRAIDグループ195が提供する実体的な記憶空間である。第一VDEV193Aは、例えば、第一実VOL187A、プールVOL191A及び191Bの基になっている。従って、これらの論理ボリューム187A、191A及び191Bに書き込まれるデータは、実際には、第一VDEV193Aの基になっているRAIDグループ195に書き込まれる。
一方、第二のVDEV193Bは、仮想的な記憶空間である。第二のVDEV193Bは、第二実VOL187C、プールVOL191C及び191Dの基になっている。従って、これらの論理ボリューム187C、191C及び191Dに書き込まれるデータは、実際には、第二VDEV193Bの基になっている、第二ストレージシステム161内の記憶資源(例えばRAIDグループ)に書き込まれる。具体的には、例えば、第二実VOL187Cに対応した記憶空間部分が、第二ストレージシステム161内のターゲットデバイス181Dに割り当てられており、この場合、仮想VOL187Cに書き込まれるデータは、実際には、第二のストレージシステム161に転送され、ターゲットデバイス181Dに割り当てられている論理ボリュームに書き込まれる。
ストレージプールは、一以上のプールVOLの集合である。図2の例では、第一ストレージプール189Aは、プールVOL191A及び191Cの集合であり、第二ストレージプール189Bは、プールVOL191B及び191Dの集合である。プールVOL191A〜191Dは、ターゲットデバイス181A〜181Cに関連付けられない論理ボリューム(すなわちホスト計算機101に提供されない論理ボリューム)である。なお、第一ストレージシステム125内の全てのプールVOLが、第一ストレージシステム125内のRAIDグループに基づくVDEVを基に形成されていても良いし、反対に、第二ストレージシステム161内の記憶資源に基づくVDEVを基に形成されていても良い。
LDEV層183には、複数の論理ボリューム187A〜187Cと、JNL関連エリア188とがある(“JNL”はジャーナルの略語である)。論理ボリューム187A〜187Cは、いずれも、プールVOLと違って、ホスト計算機101に認識され得る論理ボリュームである。図2の例によれば、論理ボリューム187Aは、実体的な記憶領域が第一ストレージシステム125内にある論理ボリューム(以下、「第一実VOL」と言う)である。論理ボリューム187Bは、ストレージプール189Bに関連付けられている仮想的な論理ボリューム(以下、「仮想VOL」と言う)である。例えば、仮想VOL187Bは、複数の仮想領域で構成されており、ストレージプール189Bが、複数のプール領域で構成されている。仮想VOL187B内の仮想領域にデータが書き込まれることに起因して、その仮想領域にプール領域がストレージプール189Bから割り当てられ、書込み対象のデータが、そのプール領域に書き込まれる。そのプール領域がプールVOL191Bに属していれば、データは第一ストレージシステム125内に保存され、そのプール領域がプールVOL191Dに属していれば、そのデータは第二ストレージシステム161内に保存される。
JNL関連エリア188は、ホスト計算機101に非提供の記憶領域である。このエリア188は、例えば、第一ストレージプール189内に存在する。このエリア188は、後述のJNCBエリアとJNLエリアで構成されている。「JNCB」とは、後述の第二のJNL管理テーブルを意味する文字列である。
ターゲットデバイス181A〜181Cは、ホスト計算機101から見える論理的なデバイスであり、具体的には、例えば、オープンシステムでは“LUN”(Logical Unit Number)であり、メインフレームシステムでは“デバイス”である。ターゲットデバイス181A〜181Cは、ポート129と、LDEV層181における論理ボリューム187A〜187Cとに関連付けられている。図2の例によれば、I/Oコマンドにおいて、ターゲットデバイス181Aが指定されていると、そのデバイス181Aに関連付けられている第一実VOL187AにI/O(ライト又はリード)が発生し、ターゲットデバイス181Bが指定されていると、そのデバイス181Bに関連付けられている仮想VOL187BにI/Oが発生し、ターゲットデバイス181Cが指定されていると、そのデバイス181Cに関連付けられている第二実VOL187CにI/Oが発生する。
図3は、JNLデータ要素の格納の概要を示す。なお、図3では、ライトという言葉を「WR」と略記しており、他の図でも、ライトという言葉をそのように略記することがある。
第一ストレージシステム125に、P−VOL187A及びS−VOL187Sがある。また、R−VOL187Rの構築が可能であるP−VOL187P及びS−VOL187Sは、例えば、前述した第一又は第二実VOL187A又は187Cであり、R−VOL187Rは、前述した仮想VOL187Bである。
P−VOL187Pは、プライマリの論理ボリューム(オンラインの論理ボリューム)である。ホスト計算機101Aからライトデータが書き込まれることで、P−VOL187Pは更新される。
S−VOL187Sは、P−VOL187Pとペアにされたセカンダリの論理ボリュームであり、P−VOL187Pと同じ記憶容量を有する。
R−VOL187Rは、指定された世代のP−VOL187Pの内容を有する論理ボリュームである。R−VOL187Rは、前述したように仮想ボリュームであり、後に説明するように、ユーザ或いは管理者からの要求に応答して作成される。
JNL関連エリア188は、前述したように、JNCBエリア501と、JNLエリア503とで構成されている。JNCBエリア501には、図3に示すように、未確定世代に対応した差分BM(BMは“ビットマップ”の略語である)と、確定した世代毎に対応した差分BMとが格納される。JNLエリア503には、未確定世代に対応したオンライン更新差分データと、確定した世代毎に対応した世代間差分データとが格納される。
ここで、「世代」とは、P−VOL187Pについての或る時点のことである。例えば、世代(N)とは、世代(N−1)を過ぎてP−VOL187Pについて所定の世代確定イベントが発生した時(本実施形態では、ホスト計算機101から後述のマーカを受領した時)のことである。なお、図3の例では、確定している最新の世代が世代(N)のため、未確定世代は、世代(N+1)である。マーカを受領した時のP−VOL187Pのイメージが第一のストレージシステム125で取得されるので、マーカは、スナップショット取得要求と言うこともできる。
「オンライン更新差分データ」とは、オンライン更新差分データ要素の集合である。「オンライン更新差分データ要素」は、P−VOL187PについてのJNLデータ要素である。「JNLデータ要素」とは、P−VOL187Pについての単位記憶領域のサイズ(後述のホストライトサイズ)分のJNLデータのことである。JNLデータ要素は、アフターJNLデータ要素であっても良いしビフォアJNLデータ要素であっても良い。「アフターJNLデータ要素」とは、P−VOL187Pに書き込まれるライトデータ要素である。「ビフォアJNLデータ要素」とは、P−VOL187Pにライトデータ要素が書き込まれることに起因したCOW(Copy On Write)でP−VOL187Pから退避されたデータ要素(ライトデータ要素のライト先記憶領域に記憶されているデータ要素)である。以下の説明では、論理ボリューム内のデータ要素が記憶されている単位記憶領域(後述のホストライトサイズ単位で管理されている単位記憶領域)を、便宜上「ブロック」と言い、JNLエリア503内のデータ要素が記憶されている記憶領域を、便宜上「セグメント」と言うことがある。また、以下の説明では、オンライン更新差分データ要素はアフターJNLデータ要素であるとする。
なお、オンライン更新差分データの最大サイズは、そのデータに対応するP−VOLのサイズと同じである。なぜなら、対応するP−VOLにおける同一のブロックに対応したオンライン更新差分データ要素は、JNLエリア503内で上書きされるからである。従って、後述の世代間差分データの最大サイズも、そのデータに対応するP−VOLのサイズと同じである。言い換えれば、オンライン更新差分データ要素の書込み先のJNLサブエリアのサイズは、最大で、P−VOLと同じサイズとすれば良い(この点は、世代間差分データ及び後述のマージ差分データについても同様である)。
「世代間差分データ」とは、世代間差分データ要素の集合である。「世代間差分データ要素」とは、S−VOL187Sにオンライン更新差分データ要素が書き込まれることに起因したCOWが発生することによりS−VOL187Sから退避されたデータ要素である。具体的には、例えば、未確定世代が世代(N)の場合、第一ストレージシステム125がホスト計算機101からマーカ(特定の電子データ)を受領した時に、世代(N)が確定し、未確定世代が(N+1)となる。その場合、JNLエリア503に蓄積されているオンライン更新差分データ(つまり、世代(N)のP−VOL187Pと世代(N−1)のP−VOL187Pとの差分に相当するデータ)が、S−VOL187Sに書き込まれる。オンライン更新差分データ要素が書き込まれる都度に、COWで、S−VOL187Sからデータ要素が世代間差分データ要素としてJNLエリア503に退避される。これにより、S−VOL187Sは、世代(N)のP−VOL187Pの複製となり、JNLエリア503には、世代(N−1)に対応した世代間差分データ(すなわち、世代(N−1)のS−VOL187Sと世代(N−2)のS−VOL187Sとの差分に相当するデータ)が蓄積される。このため、S−VOL187Sの世代は、P−VOL187Pの世代の一つ前の世代である。
「差分BM」とは、論理ボリュームの世代間での差分を表すビットマップである。具体的には、例えば、図3の例において、世代(N)に対応した差分BMは、世代(N)のP−VOL187Pと世代(N−1)のP−VOL187Pとの差分を表すビットマップである。P−VOL187P内の或るブロックに、世代(N−1)より後の或る時点で初めてライトデータ要素が書き込まれた場合、その或るブロックに対応したビット(世代(N)に対応した差分BM内のビット)が、オンにされ(すなわち、ライト発生を表す値(例えば“1”)に更新され)、そのライトデータ要素に対応するオンライン更新差分データ要素が、JNLエリア503に格納される。なお、差分BMを構成する各ビットは、P−VOL187Pの各ブロックに対応している。各ブロックのサイズは、図7を参照して説明するフォーマット処理によってホストライトサイズとなっている。「ホストライトサイズ」とは、ホスト計算機101から書き込まれるデータの単位サイズ(ライトデータ要素のサイズ)である。
なお、後に図11及び図12を参照して説明するように、複数の世代分の世代間差分データ及び差分BMのマージが可能である。これにより、消費される記憶容量を削減することができる。以下、マージ後の世代間差分データを「マージ差分データ」と言う。
また、図3には、ソート処理と、リストア処理とが示される。各処理の概要は、以下の通りである。
<ソート処理>JNLエリア503には、オンライン更新差分データ要素は、時系列で(すなわち、JNLエリア503に書き込まれた順序で)、並んでいる(敷き詰められている)。JNLエリア503からオンライン更新差分データが読み出されてS−VOL187Sに書き込まれる場合、オンライン更新差分データ要素は、時系列ではなくP−VOL187Pのアドレス順(アドレスの昇順又は降順)に読み出される。このため、S−VOL187Sには、アドレス順にオンライン更新差分データ要素が書き込まれ、故に、COWでS−VOL187SからJNLエリア503に書き込まれた世代間差分データ要素はP−VOL187Pのアドレス順に並ぶことになる(敷き詰められることになる)。このように、時系列に並んでいるオンライン更新差分データ要素をアドレス順でS−VOL187Sに反映することで世代間差分データがアドレス順でJNLエリア503に並ぶようにする処理が、「ソート処理」である。なお、後述の第三の実施形態のように、オンライン更新差分データが無いケースでのソート処理は、世代間差分データがアドレス順でJNLエリア503に並ぶようにする処理である。
<リストア処理>「リストア処理」は、ユーザ又は管理者からの要求に応答してR−VOL187Rを作成する処理である。R−VOL187Rからのリードが可能である。また、それに限らずR−VOL187Rに対するライトも可能であるR−VOL187Rについてのリード及びライトの処理は、後に、図14及び図15を参照して説明する。
図4は、制御メモリ145に記憶されているコンピュータプログラム及び情報を示す。以下の説明において、プログラムが主語になる処理は、実際には、そのプログラムを実行するプロセッサ143が行う処理である。
制御メモリ145には、構成管理テーブル201、JNLエリア管理テーブル203、バックアップ世代管理テーブル205、第一のJNL管理テーブル207、R−VOLアクセス管理テーブル209、R/Wプログラム213、ライトサイズ管理プログラム215、JNLソートプログラム217、JNLマージプログラム219、リストアプログラム221及びマーカ処理プログラム223が記憶されている。また、制御メモリ145には、システム領域211がある。R/Wプログラム213は、ホスト計算機101からのI/Oコマンドに従うI/Oを制御する。ライトサイズ管理プログラム215は、ホストライトサイズの設定を行う。JNLソートプログラム217は、ソート処理を実行する。JNLマージプログラム219は、複数の世代の世代間差分データをマージする。リストアプログラム221はR−VOL187Rを作成する。マーカ処理プログラム223は、ホスト計算機101からのマーカを処理する。制御メモリ145に記憶されている各種プログラム及び情報の詳細は、後に説明する。また、以下の説明では、論理ボリュームを「VOL」と略記することがある。
図5は、図4に示した構成管理テーブル201、JNLエリア管理テーブル203、バックアップ世代管理テーブル205及び第一のJNL管理テーブル207の例を示す。なお、図5には、図4に示されていない第二のJNL管理テーブル(JNCB)307と、JNCB307で管理されているJNLデータとが示されているが、JNCB307及びJNLデータは、制御メモリ145には記憶されず、PDEV群(前述の例ではストレージプール)に記憶される。
構成管理テーブル201は、P−VOL毎に用意されるテーブルであって、P−VOL及びそれに関したS−VOL及びR−VOLを管理するためのテーブルである。構成管理テーブル201には、例えばP−VOLと、それに関連したS−VOL及びP−VOLとのそれぞれのVOLについて、[ポート#](VOLに対応したターゲットデバイスに割り当てられているポートの番号)、[ターゲットデバイス#](VOLに対応したターゲットデバイスの番号)、[LDEV#](VOLを同定するための番号)、[JNLエリア#](複数のJNLエリアのうちVOLに対応付けられたJNLエリアの番号)、[状態](VOLの状態、例えば、R/W不可、Rのみ可といったアクセス制限状態)、[容量](VOLの容量)、[I/Oサイズ](前述したホストライトサイズ)、及び[プール#](VOLに割り当てられているストレージプールの番号)が記録される。
JNLエリア管理テーブル203は、P−VOL毎に用意されP−VOLに対応するオンライン更新差分データ、世代間差分データ及びマージ差分データの在り処を管理するためのテーブルである。具体的には、オンライン更新差分データ、世代間差分データ及びマージ差分データのそれぞれについて、[JNLサブエリア先頭アドレス](JNLサブエリアの先頭を表すアドレス)、[容量](データに対応したJNLサブエリアの容量)、[使用容量](データが占める容量)、[状態](例えば、JNLサブエアリアが普通に使える状態であれば“ノーマル”、JNLサブエリアが何らかの理由で使えなければ“閉塞”、JNLの空き容量(容量と使用容量との差分)が所定の閾値より少なければ“容量不足”など)、[JNCB先頭アドレス](JNCBの先頭を表すアドレス)、[容量](JNCBの容量)、及び、[使用容量](JNCB群が占める容量)がある。なお、「JNLサブエリア」とは、JNLエリア503の一部分である。また、世代間差分データ及びマージ差分データについては、世代毎に、[JNLサブエリア先頭アドレス]、[容量]、[使用容量]、[状態]、[JNCB先頭アドレス]、[容量]及び[使用容量]が登録される。
バックアップ世代管理テーブル205は、P−VOL毎に用意されており、P−VOLに関するバックアップデータを管理するためのテーブルである。バックアップ世代管理テーブル205には、例えば、[P−VOL#](P−VOLの番号)、[世代#](最新世代を表す番号)、[S−VOL#](P−VOLとペアを構成するS−VOLの番号)、[世代#](S−VOLの最新世代を表す番号)、[取得世代数](P−VOLについてのバックアップの世代の個数)、[バックアップ期間]及び[マージ世代数](何世代分の世代間差分データが溜まったときにマージ処理を実行するか)が記録される。また、バックアップ世代管理テーブル205には、P−VOLについての世代毎に、[世代#](世代を表す番号)、[バックアップ取得時間](いつバックアップが取得されたか(言い換えれば、その世代の確定の原因となったマーカ受領の日時))、[ユーザコメント](ユーザがバックアップを管理するためのユーザ任意の情報)、バックアップの[状態](例えば、バックアップに成功又は失敗した等)がある。
第一のJNL管理テーブル207は、P−VOL毎に用意され、P−VOLに対応したオンライン更新差分データ、世代間差分データ及びマージ差分データを管理するためのテーブルである。オンライン更新差分データについては、例えば、[先頭アドレス](JNCBの先頭アドレス)、[長さ](オンライン更新差分データのサイズ、例えば、オンライン更新差分データ要素の数)、[作成時刻](オンライン更新差分データ要素を記憶することになった時刻(例えば、最新世代の確定の原因となったマーカの受領時刻))が記録される。また、世代間差分データについては、[先頭アドレス]、[長さ]及び[作成時刻]が、世代毎に記録される。なお、ここでの[作成時刻]は、対応する世代間差分データがJNLサブエリアに格納された時刻である。同様に、マージ差分データについても、世代毎に、[先頭アドレス]、[長さ]及び[作成時刻]が、世代毎に記録される。なお、ここでの「世代」は、マージ差分データに対応する複数世代のうちの或る世代(例えば、最新又は最古の世代)であり、[作成時刻]は、対応するマージ差分データがJNLサブエリアに格納された時刻である。オンライン更新差分データなどのJNLデータに対応した[先頭アドレス]を参照することで、そのJNLデータに対応したJNCBを参照することが可能となる。
JNCB307は、世代間差分データ及びマージ差分データのそれぞれについて、世代毎に存在する。JNCB307は、世代に対応した差分BMとデータ要素の在り処とを管理するためのテーブルである。具体的には、例えば、JNCBテーブル307には、[デバイス#](対応するP−VOLの番号)、[長さ](対応するJNLデータ(オンライン更新差分データ、世代間差分データ又はマージ差分データ)の長さ)、差分BM(世代に対応した差分BM)、及び、対応するJNLデータを構成する各JNLデータ要素に対応したデータ格納アドレスが記録される。
図6は、オンライン更新差分データ、世代間差分データ及びマージ差分データのうちの世代間差分データを例に採ったデータ管理方式を示す。
図6に示すように、JNCBエリア501には、複数の世代に対応した複数のJNCBが記憶され、JNLエリア503には、それら複数の世代に対応した複数のJNLサブエリアが存在する。
指定された世代(例えば世代(i))に対応したJNCB307内の差分BMから、その世代のP−VOLのどこに更新があったかを知ることができる。また、その世代に対応したJNCB307に記録されている各データ格納アドレスを参照することで、その世代に対応した世代間差分データを構成する各データ要素がJNLエリア503内のどこに存在するのかを知ることができる。
図7は、ホストライトサイズ設定処理のフローを示す。
管理サーバ111が、ホスト計算機101に、ホストライトサイズの問合せを発行する(ステップ7001)。ホスト計算機101内の所定のコンピュータプログラム(上記問合せに応答してホストライトサイズを回答する機能を有したコンピュータプログラム)がCPU103で実行されることで、ホスト計算機101からホストライトサイズが回答される(ステップ7002)。その所定のコンピュータプログラムとしては、例えば、ファイルシステム或いはデータベース管理システム(DBMS)がある。
管理サーバ111は、回答されたホストライトサイズと、そのホストライトサイズに対応したホスト識別子(又はP−VOLの番号など)とを、第一ストレージシステム125(及び第二ストレージシステム161)に送信する。
ライトサイズ管理プログラム215(図4参照)が、管理サーバ111からのホスト識別子(又はP−VOLの番号)に対応した各P−VOLを特定し、その各P−VOLに対応した構成管理テーブル201に、管理サーバ111からのホストライトサイズを、I/Oサイズとして設定する(ステップ7004)。
そして、ライトサイズ管理プログラム215は、そのホストライトサイズを基に、フォーマット処理を実行する(ステップ7005)。フォーマット処理では、例えば、上記特定された各P−VOLに対応したJNLエリア管理テーブル203、バックアップ世代管理テーブル205、第一JNL管理テーブル207及びJNCB307が作成される。具体的には、例えば、P−VOLを構成するブロックのサイズや、JNLエリア503を構成するセグメントのサイズが、ホストライトサイズと同じサイズとして管理される。従って、JNCB307内の差分BMを構成するビットの数は、P−VOLがホストライトサイズで区切られることにより得られたブロックの数となる。これにより、例えば、オンライン更新差分データ要素のサイズ、S−VOLから退避されるデータ要素のサイズ、或いは、P−VOLからS−VOLへとコピーされるデータ要素のサイズは、それぞれ、ホストライトサイズとなる。
なお、I/Oサイズとしてホストライトサイズが設定されない場合、作成されるJNLデータ要素のサイズは、I/Oサイズの初期値(例えば、キャッシュメモリ147の単位管理サイズ、或いは、ファイルシステムの単位管理ブロックサイズ)である。また、ライトサイズ管理プログラム215が、ホスト計算機101からホストライトサイズを受けても良い。また、P−VOL毎に、ブロックのサイズや、P−VOLとペアを構成するS−VOLのブロックのサイズや、P−VOLに関わるJNLサブエリアのセグメントのサイズが異なることがある。なぜなら、P−VOLを使用するホスト計算機101(又はオペレーティングシステム)が異なれば、ホストライトサイズも異なることがあるためである。具体的には、例えば、第一種のホスト計算機からアクセスされるP−VOLのブロックのサイズは、その第一種のホスト計算機に対応した第一のホストライトサイズであり、第二種のホスト計算機からアクセスされるP−VOLのブロックのサイズは、その第二種のホスト計算機に対応した、第一のホストライトサイズとは異なる第二のホストライトサイズとなることがある。
図8は、P−VOLにライトデータ要素を書き込むライト処理のフローを示す。以下、ライトコマンドで指定されているP−VOLを、それぞれ、図8の説明において「対象P−VOL」と言う。また、以下の説明では、説明が冗長になるのを防ぐ観点から、世代Kに対応した対象のことを、その対象の名称の後に(K)を付けて表すことがある。具体的には、例えば、世代(j)に対応したJNCBを「JNCB(j)」と表し、世代(j−1)に対応したS−VOLのことを「S−VOL(j−1)」と表すことがある。
フロントエンドインタフェース127が、ホスト計算機101から、ライトコマンド及びライトデータ要素を受信し、メモリ137でライトデータ要素を記憶する(ステップ8001)。ライトコマンドは、プロセッサ143に転送される。
R/Wプログラム213(図4参照)が、ライトコマンドの受領に応答して、キャッシュメモリ147から第一のスロットを確保する(ステップ8002)。なお、「スロット」とは、キャッシュメモリ147の単位管理領域である。スロットのサイズは、例えば、ホストライトサイズよりも大きい。ホストライトサイズが未設定の場合には、初期値として例えばスロットのサイズでJNLデータ要素が作成される。
R/Wプログラム213が、対象P−VOL187Sの未確定時点に対応する差分BM(最新の差分BM)における、ライトコマンドで指定されているライト先ブロックに対応したビットを参照する(ステップ8003)。
もし、そのビットが更新済みを表していれば、R/Wプログラム213は、そのビットに対応したデータ格納アドレスを参照し、そのアドレスが表すセグメントを特定する(ステップ8004)。
一方、ステップ8003で参照したビットが未更新を表していれば、R/Wプログラム213は、対象P−VOL187Pに対応するJNLエリア管理テーブル203を参照することで、対象P−VOL187Pについてのオンライン更新差分データに対応するJNLサブエリア内の空きセグメントを特定する(ステップ8005)。なお、もし、空きセグメントが無ければ、新たにJNLサブエリアを確保することが可能である。
R/Wプログラム213が、キャッシュメモリ147から、第二のスロットを確保する(ステップ8006)。
R/Wプログラム213が、ライトコマンド完了を、ライトコマンドの送信元のホスト計算機101に報告する(ステップ8007)。それに応答して、ライトデータ要素がホスト計算機101から送られて来て、フロントエンドインタフェース127内のメモリ131に記憶される。
R/Wプログラム213が、フロントエンドインタフェース127内のメモリ131に記憶されたライトデータ要素を、第一及び第二のスロットにそれぞれ書き込む(ステップ8008)。
R/Wプログラム213が、対象P−VOL187Pのオンライン更新差分データに対応したJNCB307を更新する(ステップ8009)。具体的には、例えば、ライトデータ要素がオンライン更新差分データ要素として書き込まれる先のセグメント(図8の説明で「JNL先セグメント」と言う)に対応したデータ格納アドレスが追加される。また、例えば、ライト先ブロックが未更新であったならば、ライト先ブロックに対応したビット(差分BM内のビット)が、オン(更新済みを表す値)に更新される。
R/Wプログラム213が、第一のスロット内のライトデータ要素を、対象P−VOL187P内のライト先ブロックに書き込み、第二のスロット内のライトデータ要素を、上記JNL先セグメント(ステップ8004又は8005で特定されたセグメント)に書き込む(ステップ8010)。第一及び第二のスロット内のライトデータ要素は、同じタイミングで書き込まれてもよいし、異なるタイミングで書き込まれてもよい。
図9は、マーカ受領及びマーカ受領に応答して行われる処理のフローを示す。なお、図9及び次の図10の説明では、マーカで指定されているP−VOLを「対象P−VOL」と言い、対象P−VOLとペアを構成するS−VOLを「対象S−VOL」と言う。
フロントエンドインタフェース127が、ホスト計算機101からマーカを受領する(ステップ9001)。受領したマーカは、プロセッサ143に転送される。
マーカ処理プログラム223は、マーカの受領に応答して、対象P−VOL187P及び対象S−VOL187Sの世代をそれぞれ1インクリメントする(ステップ9002)。例えば、対象P−VOL187Pの世代が、jからj+1に更新され、対象S−VOL187Sの世代が、j−1からjに更新される。具体的には、例えば、バックアップ世代管理テーブル205において、対象P−VOL及び対象S−VOLのそれぞれの世代#が更新される。すなわち、対象P−VOL187Pの世代(j)が確定し、世代(j+1)は、未確定の世代である。
マーカ処理プログラム223は、第一のJNL管理テーブル207に、オンライン更新差分データ(j+1)に対応した[先頭アドレス]、[長さ]及び[作成時刻]を追加する(ステップ9003)。すなわち、オンライン更新差分データ(j+1)が格納されるJNLサブエリアが用意される。これにより、マーカ受領直のオンライン更新差分データ(j)が、オンライン更新差分データ(j+1)で上書きされないようにすることができる。
マーカ処理プログラム223は、バックアップ世代管理テーブル205に、確定した世代(j)の行を追加し、その行に、バックアップ取得時間(マーカ受領時刻)や、マーカ受領時に同時に受領したユーザコメントなどを登録する(ステップ9004)。
マーカ処理プログラム223は、第一のJNL管理テーブル207に、世代間差分データについて世代(j−1)の行を追加する(ステップ9005)。その際、S−VOLの[I/Oサイズ](つまりホストライトサイズ)に基づいて、JNCB(j−1)が作成される(具体的には、例えば、差分BM(j−1)を構成するビットの数が、その[I/Oサイズ]のブロックの数とされる)。追加された行には、JNCB(j−1)の先頭位置を[先頭アドレス]が書かれる。JNCB(j−1)は、ソート処理に基づき更新される。そのソート処理を、図10を参照して説明する。
図10は、ソート処理のフローを示す。なお、図10に示すオンライン更新差分データ及びそれに対応する差分BMは、世代(j)に対応している。
マーカ受領に応答して、JNLソートプログラム217(図4参照)が起動する。JNLソートプログラム217が、図10に示す流れで、ソート処理を実行する。
すなわち、JNLソートプログラム217は、対象P−VOL187Pに対応した差分BM(j)におけるビットを、先頭ビットから順次参照する(ステップ10001)。参照したビットがオンであれば(更新済みを表していれば)、そのビットについて、ステップ10003が行われ、参照したビットがオフであれば(未更新を表していれば)、次のビットが参照される(ステップ10002)。
JNLソートプログラム217は、差分BM(j)におけるオンのビットに対応した、差分BM(j−1)におけるビットをオンにする(ステップ10003)。
JNLソートプログラム217は、JNCB(j−1)内に、ステップ10003でオンにしたビットに対応するデータ格納アドレスを追加する(ステップ10004)。そのデータ格納アドレスは、ステップ10005での退避先のセグメント(JNLサブエリア(j−1)内のセグメント)を表す。その退避先のセグメントは、直前回の退避先セグメントの次のセグメントである。これにより、対象S−VOL(j)から退避された各データ要素がJNLサブエリア(j−1)内の連続したセグメントに書き込まれることになる。
JNLソートプログラム217は、差分BM(j−1)におけるオンにされたビットに対応したブロック(対象S−VOL187S内のブロック)に記憶されているデータ要素“A”を、そのブロックから上記退避先のセグメントに退避する(ステップ10005)。
JNLソートプログラム217は、退避元のブロック(対象S−VOL(j)内のブロック)に、差分BM(j)におけるオンのビットに対応したデータ格納アドレスが表すセグメント(JNLサブエリア(j)内のセグメント)に記憶されているデータ要素“B”を書き込む(ステップ10006)。
以上のステップ10005及び10006により、オンライン更新差分データ要素“B”が対象S−VOL(j)内のブロックに書き込まれることに起因したCOWで、そのブロックに記憶されているデータ要素“A”がJNLサブエリア(j−1)内のセグメントに退避され、オンライン更新差分データ要素“B”が、対象S−VOL(j)内のブロックに書き込まれる。
以上のように、差分BM(j)を構成するビットが、ブロックのアドレス順に参照され、オンのビットが検出される都度に、ステップ10003乃至10006が行われることで、JNLデータ要素がソートされる。すなわち、JNLサブエリア(j)に時系列に連続していたオンライン更新差分データ要素が、ブロックのアドレス順に対象S−VOLに反映されることで、JNLサブエリア(j−1)に、世代間差分データ要素がブロックのアドレス順に連続することになる。
なお、以上のソート処理が終了した後、オンライン更新差分データに対応した差分BMを構成する全てのビットがオフとされる(オンライン更新差分データ要素がS−VOLに書き込まれる都度に、そのデータ要素に対応したビットがオフとされても良い)。
図11は、世代間差分データのマージ処理のフローである。図12は、そのマージ処理に関するデータ要素の動きを示す。以下、図11及び図12を参照して、マージ処理を説明する。
図12に示すように、JNLマージプログラム219(図4参照)は、或る世代数分(例えば(m+1)世代(世代(N)〜世代(N+m))の世代間差分データが溜まっていることを検出したときに、(m+1)世代分の世代間差分データをマージ差分データに変換するマージ処理を開始する。なお、マージ処理の開始の契機として、(m+1)世代分の世代間差分データが溜まっていることが検出されたということは一例にすぎず、他の契機、例えば、直前回のマージ処理から所定期間が経過したであっても良い。
JNLマージプログラム219は、バックアップ世代管理テーブル205でマージ対象の世代(N)〜世代(N+m)の[状態]を“マージ中”にする。そして、JNLマージプログラム219は、マージ対象の最古の世代(N)の世代間差分データを、対象として選択する(ステップ11001)。
JNLマージプログラム219は、対象の世代間差分データに対応した差分BM(N)の先頭ビットを参照位置として決定する(ステップ11002)。
JNLマージプログラム219は、差分BM(N)について参照位置とされているビットがオンであれば、ステップ11004を実行し、そのビットがオフであれば、ステップ11009を実行する。以下、図11及び図12の説明において、その参照位置とされているビットを「対象ビット」と言い、そのビットがオンであれば「対象オンビット」と言い、そのビットがオフであれば「対象オフビット」と言う。
JNLマージプログラム219は、今回作成するマージ差分データに対応した差分BM(以下、図11及び図12の説明において、「マージ差分BM」と言う)について、上記対象ビットと同じ位置にあるビットがオフであれば、ステップ11005を実行し、そのビットがオンであれば、ステップ11009を実行する。
JNLマージプログラム219は、差分BM(N)における対象オンビットに対応したデータ格納アドレスを探し(ステップ11005)、そのアドレスを特定する(ステップ11006)。そして、JNLマージプログラム219は、そのアドレスが示すセグメントに記憶されている世代間差分データ要素を、そのセグメントから、今回作成されるマージ差分データに対応したJNLサブエリア内のセグメント(直前回のコピー先のセグメントの次のセグメント)にコピーする(ステップ11007)。そして、JNLマージプログラム219は、マージ差分BMにおける、上記対象ビットと同じ位置にあるビットを、オンにする(ステップ11008)。
JNLマージプログラム219は、差分BM(N)において、これまでの参照位置の次の位置に未参照のビットがあれば(ステップ11009でY)、次のビットを参照位置として(ステップ11010)、ステップ11003を実行する。次の位置に未参照のビットが無ければ(ステップ11009でN)、その世代(N)についての処理が終了となり(ステップ11011)、次の世代があれば(ステップ11012でY)、次の世代(N+1)について、ステップ11001が行われる。もし、次の世代が無ければ(すなわち、直前回に処理された世代が(N+m)であれば(ステップ11012でN)、マージ処理の終了となる。
以上の流れによれば、図12に示すように、マージ対象の世代(N)〜(N+m)のうちの古い世代に対応した世代間差分データから先に処理される。世代間差分データに対応した差分BMではオンビットであって、マージ差分BMにおいて、そのオンビットに対応したビットがオフであれば、そのオンビットに対応した世代間差分データ要素が、マージ差分データに対応したJNLサブエリアにコピーされる。一方、世代間差分データに対応した差分BMではオンビットであり、マージ差分BMにおいても、そのオンビットに対応したビットがオンであれば、世代間差分データに対応した差分BM内のオンビットに対応したデータ要素はコピーされない。
要するに、古い世代に対応した世代間差分データ要素ほど、優先的に、マージ差分データに対応したJNLサブエリアにコピーされる。具体的には、例えば、図12によれば、世代(N)と世代(N+m)の2つの世代について、P−VOLの先頭ブロックに対応した世代間差分データ要素“A”及び“G”が存在している。この場合、前述したように、古い世代に対応した世代間差分データ要素ほど優先されるので、世代(N)についてのデータ要素“A”は、マージ差分データに対応したJNLサブエントリにコピーされるが、その世代(N)よりも新しい世代についてのデータ要素“G”は、そのJNLサブエントリにはコピーされない。
なお、このマージ処理では、古い世代から先に処理されるが、新しい世代から先に処理されても良い。但し、この場合、世代間差分データに対応した差分BMではオンビットであり、マージ差分BMにおいても、そのオンビットに対応したビットがオンであれば、世代間差分データに対応した差分BM内のオンビットに対応したデータ要素が、マージ差分データに対応したJNLサブエリアに記憶されている、オンビットに対応したマージ差分データ要素に上書きされても良い。また、マージ差分データが作成された場合、そのマージ差分データの基になった複数世代分の世代間差分データは、マージ差分データの作成完了の直後に、又は計算機(例えば、ホスト計算機101又は管理サーバ111)からの指示に応答して、削除されても良い。
また、世代間差分データやマージ差分データが古い世代から削除されて良い。この場合、例えば、図示しないJNL削除プログラムが、削除対象の世代に対応したJNCB及びJNLデータを解放し空きの領域として管理する。また、JNL削除プログラムは、第一のJNL管理テーブル207及びバックアップ世代管理テーブル205から、削除対象の世代に対応したエントリを削除する。
図13は、リストア処理のフローを示す。
ユーザによって指定されたリストア対象世代を有するリストア要求を、リストアプログラム221(図4参照)が、ホスト計算機101又は管理サーバ111から受領する。具体的には、例えば、リストアプログラム221が、ホスト計算機101又は管理サーバ111からの要求に応答して、バックアップ世代管理テーブル205などの情報を、ホスト計算機101又は管理サーバ111に送信する。ユーザは、そのテーブル205などにある[世代#]、[バックアップ取得時間]及び[ユーザコメント]などを参照して、リストア対象世代を決定し、決定したリストア対象世代をホスト計算機101又は管理サーバ111に指定する。その指定されたリストア対象世代(N)を有するリストア要求が、ホスト計算機101又は管理サーバ111からリストアプログラム221に送られる。
リストアプログラム221は、リストア要求に応答して、リストア処理を実行する。リストア処理では、R−VOLアクセス管理テーブル209が作成されるR−VOLアクセス管理テーブル209は、複数のアドレスレコードで構成される。各アドレスレコードはR−VOLを構成する各ブロック(仮想的なブロック)に対応し、故に、差分BMにおける各ビットに対応する。
リストアプログラム221は、リストア要求に応答して、世代間差分データ(もしくはマージ差分データ)の差分BMを、リストア対象世代(N)から順次新しい世代(N+1)、(N+2)へと参照する(ステップ12001)。以下、参照先の差分BMがリストア対象世代(N)である場合を例に採り説明する。
リストアプログラム221は、差分BM(N)の先頭ビットから、オンかオフかの判定を行う(ステップ12002)。参照したビットがオンだった場合、リストアプログラム221は、そのオンビットに対応したアドレスレコードを参照する(ステップ12003)。そのレコードに無効なアドレス(例えばNull)があれば、リストアプログラム221は、参照したオンビットに対応するデータ格納アドレスを、JNCB(N)内から読み出して(ステップ12004)、そのレコードに登録し(ステップ12005)、一方、そのレコードに有効なアドレスが登録済みであれば、次のビットを参照する(ステップ12006)。
以上のステップ12002乃至12006が、リストア対象世代(N)だけでなく、それよりも新しい世代(N+1)及び(N+2)についても行われることでR−VOLアクセス管理テーブル209が完成する。すなわち、例えば、ステップ12006において、参照先となる次のビットが無ければ、リストア対象世代(N)の次の世代(N+1)について、ステップ12002乃至12006が行われる。
以上のようにしてR−VOLアクセス管理テーブル209が作成されたならばR−VOLへのリード処理(及びライト処理)が可能になる。この場合、構成管理テーブル201において、R−VOLに対応した[状態]が“ノーマル”(つまりR/W可)となる(それ以前は、その[状態]は、“R/W不可”である)。
ちなみに、R−VOLアクセス管理テーブル209を作成することに代えて、実VOLとしてのR−VOLが用意されても良い。この場合は、例えば、R−VOLアクセス管理テーブル209を作成する方法と同じ方法でデータ格納アドレスが特定され、特定されたアドレスが表すセグメントから、R−VOL(実VOL)内の、そのアドレスが対応するビットに対応したブロックに、データ要素がコピーされても良い。
図14は、R−VOL管理テーブル209を利用したリード処理のフローを示す。
R/Wプログラム213(図4参照)が、ホスト計算機101から、図13に示すR−VOL187Rを指定したリードコマンドを受信する(ステップ14001)。
R/Wプログラム213は、そのリードコマンドで指定されているリード元ブロックに対応したレコード(R−VOLアクセス管理テーブル209内のレコード)を参照する(ステップ14002)。
ステップ14002の結果、参照先のレコードに有効なアドレスが登録されていれば、R/Wプログラム213は、そのアドレスが表すセグメントからデータ要素を読出し、そのデータ要素をホスト計算機101に送信する(ステップ14003)。
一方、ステップ14003の結果、参照先のレコードに無効なアドレスが登録されていれば、R/Wプログラム213は、R−VOLに対応するS−VOL(フルバックアップボリューム)内の、上記リード元ブロックと同じアドレスのブロックから、データ要素を読出し、そのデータ要素をホスト計算機101に送信する(ステップ14004)。
図15は、R−VOL管理テーブル209を利用したライト処理のフローを示す。
R/Wプログラム213が、ホスト計算機101から、図13に示すR−VOL187Rを指定したライトコマンドを受信する(ステップ15001)。R/Wプログラム213は、そのライトコマンドで指定されているライト先ブロックに対応したレコード(R−VOLアクセス管理テーブル209内のレコード)を参照する。
参照先のレコードに有効なアドレス“アドレス3”が登録されていれば、R/Wプログラム213は、ストレージプール189A又は189Bから、ホストライトサイズ分の領域を確保し(ステップ15002)、上記の有効なアドレス“アドレス3”を、その確保された領域を表すアドレス“アドレスP1”に変更する(ステップ15003)。そして、R/Wプログラム213は、その確保されている領域に、ライトデータ要素を書き込む(ステップ15004)。
なお、参照先のレコードに無効なアドレスが登録されていれば、その無効なアドレスが、ストレージプール189A又は189B内の確保された領域を表すアドレスに変更される。
図20は、R−VOL有りでのソート処理のフローを示す。
マーカを受領すると、オンライン更新差分データがS−VOLにコピーされることで、S−VOLに格納されていたデータ要素が退避される。このため、R−VOLが有る状態でマーカが受領されると、R−VOLアクセス管理テーブルに格納されている各アドレスと各データ要素との対応関係が変わってしまうおそれがある。具体的には、例えば、R−VOLアクセス管理テーブルにおける参照先レコードに無効なアドレスが登録されているが故に、その参照先レコードに対応したブロック(S−VOL内のブロック)に記憶されているデータ要素のリードが期待できるが、上記マーカ受領によりそのブロックにオンライン更新差分データ要素がコピーされることになると、そのデータ要素がJNLサブエリアに退避されるため、期待されるデータ要素をS−VOLから取得できなくなる。
そのため、図20を参照して説明する処理が行われる。
まず、ステップ10001〜10002が行われる(ステップ20001)。
次に、JNLソートプログラム217は、R−VOLにアクセスがあった場合に、対応するS−VOLにアクセスすることになるかどうかを判断する(ステップ20002)。具体的には、JNLソートプログラム217は、R−VOLアクセス管理テーブル209に、無効なアドレスが登録されているか否かを判断する。
その結果、無効なアドレスが見つかれば、JNLソートプログラム217は、無効なアドレスが登録されているレコードに対応したブロックを特定し、特定したブロックに対応するデータ各要素アドレス(差分BM(j−1)内のビットに対応したデータ格納アドレス)“アドレス3”を参照する。そして、JNLソートプログラム217は、そのアドレス“アドレス3”が表すセグメントに、無効なアドレスが登録されているレコードに対応したブロック(S−VOL内のブロック)に記憶されているデータ要素“A”を退避する(ステップ20003)。JNLソートプログラム217は、R−VOLアクセス管理テーブル209において、無効なアドレス“Null”を、データ要素“A”の退避先セグメントを表すアドレス“アドレスP1”に変更する(ステップ20004)。そして、JNLソートプログラム217は、退避元のブロックに、そのブロックに対応したオンライン更新差分データ要素“B”を書き込む(ステップ20005)。
以上の処理により、R−VOL有りの状態でマーカを受領しても、R−VOL内の各ブロックと各データ要素との対応関係を維持したソート処理を行うことができる。
以下、本発明の第二の実施形態を説明する。その際、第一の実施形態との共通点については、説明を省略或いは簡略し、第一の実施形態との相違点を主に説明する(なお、この点は、第二の実施形態に限らず、第三の実施形態以降も同様である)。
第二の実施形態では、オンライン更新差分データ要素は、P−VOLのビフォアJNLデータ要素である。
図16は、第二の実施形態においてP−VOLにライトデータ要素を書き込むライト処理のフローを示す。
R/Wプログラム213は、ホスト計算機101からライトコマンドを受領すると(ステップ16001)、ライトデータ要素を格納するためのスロットを確保する(ステップ16002)。さらに、R/Wプログラム213は、オンライン更新差分データに対応した差分BM内の、ライトコマンドで指定されているライト先ブロックに対応したビットを参照する(ステップ16003)。
ステップ16003の結果、参照先がオンビットの場合、R/Wプログラム213は、ステップ16008以降を実行する(ステップ16004)。すなわち、ライト先ブロックに記憶されているデータ要素がオンライン更新差分データ要素としてJNLサブエントリに退避されることは行われない。
一方、ステップ16003の結果、参照先がオフビットの場合、R/Wプログラム213は、対象P−VOL(ライトコマンドで指定されているP−VOL)187Pに対応するJNLエリア管理テーブル203を参照することで、対象P−VOL187Pについてのオンライン更新差分データに対応するJNLサブエリア内の空きセグメントを特定する(ステップ16005)。なお、もし、空きセグメントが無ければ、新たにJNLサブエリアを確保することが可能である。
ステップ16005の次に、R/Wプログラム213は、ライト先ブロックに記憶されているデータ要素を、上記特定された空きセグメントに退避する(ステップ16006)。そして、R/Wプログラム213は、オンライン更新差分データに対応するJNCBを更新する(ステップ16007)。具体的には、R/Wプログラム213は、ライト先ブロックに対応したビット(差分BM内の上記参照先のオフビット)をオンにし、そのライト先ブロックに対応したデータ格納アドレスとして、上記空きセグメントを表すアドレスを追加する。
その後、R/Wプログラム213が、フロントエンドインタフェース127内のメモリ131に記憶されているライトデータ要素を、ステップ16002で確保されたスロットに書き込む(ステップ16008)。
R/Wプログラム213は、そのスロットに書き込まれているライトデータ要素を、P−VOL内のライト先ブロックに書き込む(ステップ16009)。
図17は、第二の実施形態でのソート処理のフローを示す。
ステップ10001〜10005と同じ処理が行われる(ステップ17001〜17005)。
その後、JNLソートプログラム217は、オンライン更新差分データに対応する差分BM内の各オンビットに対応した、P−VOL内の各ブロックから、S−VOL内の同じアドレスの各ブロックに、データ要素をコピーする(ステップ17006)。
第三の実施形態では、オンライン更新差分データが格納されない。このため、第一及び/又は第二の実施形態と、以下の点で相違する。
例えば、図18のステップ18001〜18005に示すように、P−VOLに対するライト処理では、P−VOLについてのJNLデータ要素がJNLエリアに格納されない。
また、例えば、ソート処理では、図19に示すように、図17と同じソート処理が行われる。すなわち、図19におけるステップ19001〜19006は、図17におけるステップ17001〜17006とそれぞれ同じである。
図21は、第三の実施形態(及び第二の実施形態)におけるマーカ受領直後のP−VOLのライト処理を示す。以下の説明では、S−VOLから退避されるべき全てのデータ要素のうちの一部のデータ要素が未だ退避されていないタイミングが考慮されている。
R/Wプログラム213は、ライトコマンドを受領すると(ステップ21001)、ライトコマンドで指定されているVOLのボリューム属性を確認する(ステップ21002)。R/Wプログラム213は、そのVOLがP−VOLであると判定したら、そのP−VOLについての最新の差分BM内の、ライト先ブロックに対応したビットを参照する(ステップ21003)。
そのビットが、図21に示すようにオンであれば、ライト先ブロックに記憶されているデータ要素がライトデータ要素に上書きされる前に、そのデータ要素が、S−VOLにコピーされなければならない。そのために、R/Wプログラム213は、ライトデータ要素に対応した第一のスロットの確保と、P−VOLから退避されるデータ要素に対応した第二のスロットの確保と、S−VOLから退避されるデータ要素に対応した第三のスロットの確保とを行う(ステップ21004)。
その後、R/Wプログラム213は、ライト先ブロックと同じアドレスのブロック(S−VOL内のブロック)から第三のスロットを介してJNLサブエリアにデータ要素を退避する(ステップ21005)。また、R/Wプログラム213は、ライト先ブロックから第二のスロットを介してライト先ブロックと同じアドレスのブロック(S−VOL内のブロック)にデータ要素を退避する(ステップ21006)。
R/Wプログラム213は、ライトコマンドに対応する応答をホスト計算機101に送信し(ステップ21007)、それに応答してライトデータ要素をホスト計算機101から受領し(ステップ21008)、受領したライトデータ要素を第一のスロットに書き込む(ステップ21009)。第一のスロットに書き込まれたライトデータ要素は、P−VOL内のライト先ブロックに書き込まれる。
なお、これまでの説明では、基本的に、取得された第一のJNLデータ要素(例えばオンライン更新差分データ要素)が、JNLサブエリアに存在する第二のJNLデータ要素と同じブロックに対応しているならば、第二のJNLデータ要素はJNLサブエリアにおいて第一のJNLデータ要素に上書きされ、それ故、JNLデータ(例えばオンライン更新差分データ)の最大サイズは、P−VOLやS−VOLと同じサイズとされていた。しかし、それに限らず、取得されたJNLデータ要素は上書きされることなくJNLサブエリアに蓄積されていっても良い。この場合、オンライン更新差分データ、世代間差分データ及びマージ差分データは、いずれも、P−VOLやS−VOLのサイズを超える可能性がある。
さて、前述したP−VOL、S−VOL、R−VOL及びJNL関連エリアは、複数のストレージシステムに分散して存在しても良い。例えば、P−VOLや、P−VOLに対応した差分BMを記憶するJNL関連エリアは、第一のストレージシステム内に存在し、S−VOLや、S−VOLの各世代に対応した差分BM及び世代間差分データを記憶するJNL関連エリアは、第一のストレージシステムとは別のストレージシステム内に存在しても良い。また、R−VOLは、第一のストレージシステムとその別のストレージシステムのどちらに存在しても良い。また、R−VOLが、第一のストレージシステムに存在し、R−VOL内に存在するデータ要素は、別のストレージシステムに存在しても良い。
以下、幾つかの具体例を説明する。
図22は、本発明の第四の実施形態に係る計算機システムの構成を示す。
第一のストレージシステム125のリモートコピー(以下、「RC」と略すことがある)の相手として、第三のストレージシステム601が存在する。P−VOL187Pが、第一のストレージシステム125に存在し、S−VOL187Sが、第三のストレージシステム601に存在する。第三のストレージシステム601は、第一のネットワーク121に接続されており、例えば第一のストレージシステム125と同様の構成を有する。具体的には、例えば、第三のストレージシステム601は、キャッシュメモリ703を有する。また、第三のストレージシステム601は、フロントエンドインタフェースとして、RC用IF701Rと、ホストIF701Hとを有する(「IF」は、インタフェースの略である)。ホストIF701Hが、第一のネットワーク121に接続されており、RC用IF701Rと、第一のストレージシステム125内のRC用IF127Rが、第三のネットワーク124で接続されている。第三のネットワーク124に、バックアップサーバ501が接続されている。第三のネットワーク124は、第一又は第二のネットワーク121又は123と同じネットワークであっても良いし、ストレージシステム間特有のネットワークであっても良い。また、第一のストレージシステム125と第三のストレージシステム601は、物理的に離れたシステムとするが、物理的には離れていないが論理的に離れていても良い。
制御メモリ145(及び、第三のストレージシステム601内の図示しない制御メモリ)に、リモートコピーを行うための管理情報(RC用管理情報)が記憶される。RC用管理情報は、リモートコピーに関する構成情報を含み、その構成情報は、例えば、どのP−VOLとどのS−VOLがペアを構成しているかなどを表す情報である。その制御情報が制御メモリ145に記憶されていることで、第一のストレージシステム125から第三のストレージシステム601へのリモートコピーが可能となる。
第一のストレージシステム125には、P−VOL187Pの他に、オンライン更新差分データが格納されるJNLエリア503Lがある。具体的には、図23に示すように、そのJNLエリア503Lを含んだJNL関連エリア188Lがある。
第三のストレージシステム601には、S−VOL187Sの他に、JNLエリア503Rがある。具体的には、図23に示すように、そのJNLエリア503Rを含んだJNL関連エリア18Rがある。JNLエリア503Rには、オンライン更新差分データ(第一のストレージシステム125から送られて来たデータ)、世代間差分データ及びマージ差分データが格納される。
図22に示すような計算機システム(リモートコピーが行われるシステム)では、以下の方式1〜方式4、
方式1(転送方式:断続的、JNL取得方法:最新)
方式2(転送方式:断続的、JNL取得方法:全て)
方式3(転送方式:差分 、JNL取得方法:最新)
方式4(転送方式:差分 、JNL取得方法:全て)
のいずれかの方式での管理が可能である。
「転送方式:断続的」とは、第一のストレージシステム125がライトデータ要素をホスト計算機101から受ける都度に、そのライトデータ要素(又はそのライトデータ要素によって更新される更新前データ要素)を第三のストレージシステム601に転送する方式である。
「転送方式:差分」とは、第一のストレージシステム125がホスト計算機101からマーカを受領したことに応答してのみオンライン更新差分データを第三のストレージシステム601に転送する方式である。
「JNL取得方法:最新」とは、JNLエリア503内の或るJNLデータ要素に対応した或るブロックについて新たなJNLデータ要素が取得された場合には、その或るJNLデータ要素がその新たなJNLデータ要素によって上書きされる方法である。
「JNL取得方法:全て」とは、或るJNLデータ要素に対応した或るブロックについて新たなJNLデータ要素が取得された場合には、その或るJNLデータ要素の他にその新たなJNLデータ要素もJNLエリアに記憶される方法である。
以下、幾つかの具体例を説明する。
図23は、第四の実施形態においてP−VOLにライトデータ要素を書き込むライト処理の、方式1が採用されたフローを示す。図23では、P−VOLのJNLデータ要素は、アフターJNLデータ要素である。以下の説明では、図には示していないが、混同を避けるために、第一のストレージシステム125内の制御プロセッサ143で実行されるR/Wプログラム213を、「R/Wプログラム213L」と言い、第三のストレージシステム601内のプロセッサで実行されるR/Wプログラム213を「R/Wプログラム213R」と言う。
R/Wプログラム213Lが、P−VOL187Pを指定したライトコマンドをホスト計算機101から受信すると(ステップ23001)、キャッシュメモリ147上に、ライトコマンドが表すデータ量に応じたサイズ分の第一のスロットを確保する(ステップ23002)。次に、R/Wプログラム213Lは、差分BM(最新)内の、ライトコマンドから特定されるライト先ブロックに対応したビットを参照する(ステップ23003)。
参照したビットがオンビットであれば、R/Wプログラム213Lは、ステップ8004(図8参照)と同じ方法で、そのオンビットに対応したデータ格納アドレスが表すセグメントを特定し(ステップ23004)、一方、参照したビットがオフビットであれば、ステップ8005(図8参照)と同じ方法で、空きセグメントを特定する(ステップ23005)。そして、R/Wプログラム213Lは、ステップ8008(図8参照)と同様に、第二のスロットを確保して(ステップ23006)、ホスト計算機101に、ライトコマンドに対する応答を返す(ステップ23007)。
そのあと、ホスト計算機101からライトデータ要素が送信され、そのライトデータ要素が、ホストIF127H内のメモリ131に記憶される。R/Wプログラム213Lは、メモリ131に記憶されているライトデータ要素を、第一のスロット及び第二のスロットに書き込み(ステップ23008)、ホストにライト処理完了を応答する。R/Wプログラム213Lは、ステップ8009(図8参照)と同様に、JNCB(最新)を必要に応じて更新する(ステップ23009)。また、R/Wプログラム213Lは、第一のスロット内のライトデータ要素を、P−VOL187P内のライト先ブロックに書き込み、第二のスロット内のライトデータ要素を、ステップ23004又は23005で特定されたセグメントに書き込む(ステップ23010)。
ステップ23008の後、R/Wプログラム213Lは、第三のストレージシステム601に対して、ホスト計算機101からのライトコマンドを転送する。第三のストレージシステム601では、R/Wプログラム213Rが、そのライトコマンドを受けたことに応答して、キャッシュメモリ703から第三のスロットを確保し(ステップ23011)、第そのライトコマンドに対する応答を第一のストレージシステム125に返す。
R/Wプログラム213Lは、第三のストレージシステム601から応答を受領したら、第二(又は第一)のスロットにあるデータ要素を、第三のストレージシステム601に転送する(ステップ23012)。
R/Wプログラム213Lは、RC用管理情報を更新する(ステップ23013)。
データ要素を受領した第三のストレージシステム601では、R/Wプログラム213Rが、ステップ23003〜23005、及びステップ23009〜23010と同様の処理を行い、最後に、第一のストレージシステム125に、ライト処理完了報告を返す(ステップ23014)。
ここでは、ホスト計算機101からのライトデータ要素の書込みと非同期にライトデータ要素(オンライン更新差分データ要素)が第一のストレージシステム125から第三のストレージシステム601に転送される例を説明したが、それとは異なるタイミングでそのライトデータ要素が転送されても良い。例えば、ライトコマンドの転送と同じタイミングでライトデータ要素が第一のストレージシステム125から第三のストレージシステム601に送信されても良い。
図24は、第四の実施形態においてP−VOLにライトデータ要素を書き込むライト処理の、方式2が採用されたフローを示す。
図23に記載の各ステップと図23に記載の各ステップとの対応関係は、以下の通りである。
図23 図24
ステップ23001 ステップ24001
ステップ23002 ステップ24002
ステップ23003 (無し)
ステップ23004 (無し)
ステップ23005 ステップ24005
ステップ23006 ステップ24002
ステップ23007 ステップ24004
ステップ23008 ステップ24003
ステップ23009 ステップ24006
ステップ23010 ステップ24007
ステップ23011 ステップ24008
ステップ23012 ステップ24009
ステップ23013 ステップ24010
ステップ23014 ステップ24011
上述のように、図24のフローでは、方式2ではJNLデータ要素は上書きされることなく全て保存されるため、図23に示したステップ23003及びステップ23004は不要となる。また、第三のストレージシステム601では、ステップ24011として、図24に示すように、ステップ24005〜ステップ24007が行われる。
図27は、第四の実施形態での構成管理テーブル、JNLエリア管理テーブル、バックアップ世代管理テーブル、第一のJNL管理テーブル及びJNCBの例を示す。
図27に示すように、基本的には図5に示した各テーブルと同様であるが、図5と基本的には、変わらないが、リモート構成のための情報が追加される。具体的には、下記の通りである。
すなわち、構成管理テーブル1201は、図5に示した構成管理テーブル201に、各VOLについて[ストレージ#]が追加されている。[ストレージ#]は、対応するVOLを有するストレージシステムを表す番号である。
JNLエリア管理テーブル1203Pは、図5に示したJNLエリア管理テーブル203と同じである。JNLエリア管理テーブル1203Sは、JNLエリア管理テーブル1203Pと違い、S−VOLに対応したテーブルである。
バックアップ管理テーブル1205は、図5に示したバックアップ管理テーブル205と同様である。
第一のJNL管理テーブル1207Pは、図5に示したJNL管理テーブル207と同じである。第一のJNLエリア管理テーブル1207Sは、JNL管理テーブル1207Pと違い、S−VOLに対応したテーブルである。
JNCB1307は、図5に示したJNCB307と同様である。
図27に示した各テーブルは、第一及び第三のストレージシステム125及び601の両方に記憶される。なお、ホストライトサイズは、例えば、第一のストレージシステム125が受けても良いし第三のストレージシステム601のいずれか一方が受けて、受けた一方のストレージシステム内に設定され、他方に転送され、他方のストレージシステム内でも設定される。或いは、例えば、ホストライトサイズは、第一及び第三のストレージシステム125及び601の両方が受けても良い。
図28は、図23及び図24における、マーカ受領及びマーカ受領に応答して行われる処理、のフローを示す。以下の説明では、図には示していないが、混同を避けるために、第一のストレージシステム125内の制御プロセッサ143で実行されるマーカ処理プログラム223を、「マーカ処理プログラム223L」と言い、第三のストレージシステム601内のプロセッサで実行されるマーカ処理プログラム223を「マーカ処理プログラム223R」と言う。
基本的な動作は、図9に示した、ステップ9001〜ステップ9005と同じである。但し、リモートコピー構成となっているため、第一のストレージシステム125から第三のストレージシステム601へマーカの転送が必要となる。
第一のストレージシステム125が、ホスト計算機101からマーカを受領すると(ステップ28001)、マーカ処理プログラム223Lが、マーカを、第三のストレージシステム601に転送し、P−VOLの世代を1インクリメントし、同様に、転送されて来たマーカを受けたことに応答して、マーカ処理プログラム223Rが、S−VOLの世代を1インクリメントする(ステップ28002)。
マーカ処理プログラム223L及び223Rは、図9のステップ9003と同様に、第一のJNL管理テーブル1207Pに、オンライン更新差分データ(j+1)に対応した[先頭アドレス]、[長さ]及び[作成時刻]を更新する(ステップ28003)。
マーカ処理プログラム223L及び223Rは、ステップ9004と同様に、バックアップ世代管理テーブル1205に、確定した世代(j)の行を追加し(ステップ28004)、ステップ9005と同様に、第一のJNL管理テーブル1207Pに、世代間差分データについて世代(j−1)の行を追加する(ステップ28005)。
すなわち、図28では、第一及び第三のストレージシステム125及び601の両方で、バックアップ世代管理テーブル205及び第一のJNL管理テーブル1207Pが更新される。また、構成管理テーブル1201が、第一及び第三のストレージシステム125及び601のうちの少なくとも第三のストレージシステム601で保持される。
マーカ受領時のソート処理としては、図23と図24では、JNLデータ要素の数が異なっているが、基本的には同じである。例えば、図24の場合は、同じブロックに対応した複数のオンライン更新差分データ要素があるため、例えば、第三のストレージシステム601内のJNLソートプログラム217は、差分BM(最新)の先頭から順番にオンビットを検索し、オンビットがあれば、以下の(1)又は(2)、
(1)そのオンビットの位置に対応する複数のオンライン更新差分データ要素のうち、最新のオンライン更新差分データ要素をJNLサブエリアから読み出して、S−VOLに書き込む、
(2)そのオンビットの位置に対応する複数のオンライン更新差分データ要素を、JNLサブエリアに書き込まれた順に読み出してS−VOLに書き込んでいく、
を行う。(1)の場合、JNCBが、最新のオンライン更新差分データ要素の検索が可能な構成となっている必要がある。例えば、差分BMの各ビットについて、複数のデータ格納アドレスが存在し得るが、各データ格納アドレスに、それら複数のデータ格納アドレスのうち最新のデータ格納アドレスか否かを表すフラグが設定されていて、最新を意味するフラグが設定されているデータ格納アドレスを検索することで、どこのセグメントに記憶されているオンライン更新差分データ要素が最新のデータ要素であるかを調べることが可能である。
図25は、方式3又は方式4が採用されている環境における、マーカ受領及びマーカ受領に応答して行われる処理、のフローを示す。
第一のストレージシステム125がマーカを受領すると(ステップ25011)、マーカ処理プログラム223Lが、第三のストレージシステム601にマーカを転送し、オンライン更新差分データに対応した新しいJNLサブエリアを確保し、ステップ28003〜28005と同様の処理を行う(ステップ25012)。
マーカ処理プログラム223Lが、差分BM(最新)におけるビットを、先頭ビットから順次参照し、参照したビットがオンであれば、そのオンビットについてステップ25014以降を実行して次のビットを参照し、参照したビットがオフであれば、ステップ25014を行わずに次のビットを参照する(ステップ25013)。
マーカ処理プログラム223Lが、スロットに書かれたオンライン更新差分データ要素(マーカ受領前のデータ要素)を転送するために、第三のストレージシステム601に対して、マーカ、及び、オンライン更新差分データ要素の転送要求(例えば、P−VOLのどこのブロックに対応したデータ要素かを表すアドレスを含む)を送る。第三のストレージシステム601内のマーカ処理プログラム223Rは、第一のストレージシステム125からのマーカ及び転送要求の受信に応答して、オンライン更新差分データに対応した新たなJNLサブエリアを確保し、キャッシュメモリ703にスロットを確保し(ステップ25016)、第一のストレージシステム125に対して、データ受領準備ができたことを知らせる。マーカ処理プログラム223Lは、第三のストレージシステム601から、データ受領準備ができたことの知らせを受けたら、オンライン更新差分データ要素を転送するためのスロットをキャッシュメモリ147上に確保し(ステップ25014)、JNLサブエリアからオンライン更新差分データ要素を読み出してそのスロットに書く(ステップ25015)。その処理と並行して、マーカ処理プログラム223Lが、スロットに書かれたオンライン更新差分データ要素を第三のストレージシステム601に転送し(ステップ25017)、必要に応じてRC用管理情報を更新する(ステップ25018)。第三のストレージシステム601内のマーカ処理プログラム223Rは、転送されて来たオンライン更新差分データ要素を、ステップ25016で確保したスロットに書く。マーカ処理プログラム223Rは、JNCB(最新)を参照して、JNLサブエリア(最新)の空きセグメントを特定する(ステップ25019)。また、マーカ処理プログラム223Rは、転送要求から特定されるブロックに対応したビット(差分BM(最新)内のビット)をオンに更新し、そのビットに対応するアドレスとして、上記特定された空きセグメントを表すデータ格納アドレスを追加する(ステップ25020)。そして、マーカ処理プログラム223Rは、スロットに記憶されているオンライン更新差分データ要素を、JNLサブエリア(最新)内の上記空きセグメントに書き込む(ステップ25021)。
図26は、図25に示した処理中にライトデータ要素を第一のストレージシステム125が受けた場合に行われるライト処理のフローを示す。
先に記したように、第一及び第三のストレージシステム125及び601は、マーカ受領後に新たなJNLサブエリア(最新)を設けることで、それ以降にホスト計算機101からライトデータ要素を受けても、そのライトデータ要素が、マーカ受領前のオンライン更新差分データに上書きされないようになっている。
このため、R/Wプログラム213Lは、マーカ受領後にライトデータ要素を受けた場合、新たなJNLサブエリア(最新)に、ライトデータ要素を書き込む。マーカ受領前のオンライン更新差分データは、図25に示したように、ホスト計算機からのライトコマンドに応答したライト処理とは非同期に、第三のストレージシステム601に転送される。
以上の図23〜図28では、オンライン更新差分データ要素がアフターJNLデータ要素である。以下、図29及び図30を参照して、オンライン更新差分データ要素がビフォアJNLデータ要素である場合に第四の実施形態で行われる処理を説明する。
図29は、第四の実施形態においてP−VOLにライトデータ要素を書き込むライト処理の、方式1が採用されたフローを示す。但し、前述したように、取得されるオンライン更新差分データ要素は、ビフォアJNLデータ要素である。
第一のストレージシステム125内のR/Wプログラム213Lは、オンライン更新差分データ要素を作成するために、ステップ16001〜ステップ16009(図16参照)と同様の処理を行う(ステップ29001〜29009)。その後、ライト完了報告が第一のストレージシステム125からホスト計算機101に送られる(ステップ29010)。さらに、第一のストレージシステム125から第三のストレージシステム601にオンライン更新差分データ要素を送るために、ステップ23011〜ステップ23014(図23参照)と同様の処理が行われる(ステップ29011〜29014)。
なお、図36に示すように、第四の実施形態でも、オンライン更新差分データ要素(ビフォアJNLデータ要素又はアフターJNLデータ要素)は取得されなくても良い。この場合、例えば、ステップ18001〜18005(図18参照)と同様の処理が行われる(ステップ36001〜36005)。その後、例えばR/Wプログラム213Lが、差分BM(最新)におけるオンとなったビットの位置を表す情報を、第三のストレージシステム601に転送し(ステップ36007)、必要に応じてRC用管理情報を更新する(ステップ36008)。R/Wプログラム213Rは、受けた情報が表す位置にあるビット(差分BM(最新)内のビット)を、オンに更新する。この場合、オンビットに対応したブロック(P−VOL内のブロック)に対応したデータ要素が、第一のストレージシステム125から第三のストレージシステム601に転送され、そのブロックと同じ位置にある、S−VOL内のブロックに、そのデータ要素が書込まれても良い。
図30は、第四の実施形態においてP−VOLにライトデータ要素を書き込むライト処理の、方式2が採用されたフローを示す。但し、前述したように、取得されるオンライン更新差分データ要素は、ビフォアJNLデータ要素である。
図29に記載の各ステップと図30に記載の各ステップとの対応関係は、以下の通りである。
図29 図30
ステップ29001 ステップ30001
ステップ29002 ステップ30002
ステップ29003 (無し)
ステップ29004 (無し)
ステップ29005 ステップ30003
ステップ29006 ステップ30004
ステップ29007 ステップ30007
ステップ29008 ステップ30005
ステップ29009 ステップ30006
ステップ29010 ステップ30008
ステップ29011 ステップ30009
ステップ29012 ステップ30011
ステップ29013 ステップ30012
ステップ29014 ステップ30010
上述のように、図30のフローでは、方式2ではJNLデータ要素は上書きされることなく全て保存されるため、図29に示したステップ29003及びステップ29004は不要となる。また、第三のストレージシステム601では、ステップ30010として、図30に示すように、ステップ30005〜ステップ30007が行われる。
なお、第四の実施形態においてP−VOLにライトデータ要素を書き込むライト処理の、方式3又は方式4が採用されたフローとして、下記の通りにすることができる。
すなわち、方式3の場合、ステップ31001〜ステップ31021が考えられる。そのうちのステップ31001〜ステップ31010を、図29のステップ29001〜29010と同じにすることができる。また、残りのステップ31011〜31021を、図25に示したステップ25011〜25021と同じにすることができる。
一方、方式4の場合、ステップ30001´〜ステップ31018´が考えられる。そのうちのステップ30001´〜ステップ30007´を、ステップ30001〜ステップ30007と同じにすることができる。残りのステップ31008´〜31018´を、ステップ25011〜25021と同じにすることができる。
図37は、リモート側へデータ要素を転送できないことが検出された場合に行われる処理のフローを示す。
RC用IF(及び後述の外部接続IF)は、ネットワーク転送不可(すなわち、データ要素を転送できないこと)を検出する場合がある。ネットワーク転送不可の原因は、例えば、転送経路上にあるスイッチの障害、ケーブルの断裂、及び第三のストレージシステム601(又は外部接続されている第二のストレージシステム161)が障害になったような場合である。
この場合、制御プロセッサ143(図1参照)、バックアップサーバ501(図22参照)又は管理サーバ111が、バックアップサーバ501を使う方式Aとローカルサイトのみを使う方式Bのどちらかを選択する(ステップ37001)。
方式Aが選択された場合、第一のストレージシステム125の制御メモリ145に記憶されている種々の情報が、バックアップサーバ501又は管理サーバ111に転送される。バックアップサーバ501又は管理サーバ111は、その種々の情報を基に、第一のストレージシステム125内のJNL関連エリア188Lや、第三のストレージシステム601内のS−VOLなどを認識する。バックアップサーバ501又は管理サーバ111は、オンライン更新差分データ要素を第一のストレージシステム125から読出し、そのオンライン更新差分データ要素を、第三のストレージシステム601内のS−VOLに書込んだりする(ステップ37006)。
方式Bが選択された場合、バックアップサーバ501又は管理サーバ111は、第一のストレージシステム125に、第一のストレージシステム125からの障害検出報告(ネットワーク転送不可の報告)に対する応答として、バックアップの継続を指示する。ネットワーク転送不可の検出以降、オンライン更新差分データ要素は、P−VOLの更新に応じて適宜に取得される。
バックアップの継続を受領した第一のストレージシステム125内の制御プロセッサ143は、P−VOL(及び、必要に応じてオンライン更新差分データ要素)から、S−VOLを作成する(ステップ37002)。
その間、制御プロセッサ143は、一定時間ごとに(ステップ37003)、上記転送経路の状態を監視して、ネットワークが復活したか否かを判定する(ステップ37004)。復活したと判定された場合は、制御プロセッサ143は、自発的に、或いは、復活したことをバックアップサーバ501又は管理サーバ111に通知してそのサーバ501又は111から転送開始指示を受けたときに、第一のストレージシステム125内に滞留したオンライン更新差分データ要素を第三のストレージシステム601に転送する(ステップ37005)。
図38は、第四の実施形態でのリストア処理の3つの例のフローを示す。以下の説明では、図には示していないが、混同を避けるために、第一のストレージシステム125内の制御プロセッサ143で実行されるリストアプログラム221を、「リストアプログラム221L」と言い、第三のストレージシステム601内のプロセッサで実行されるリストアプログラム221を「リストアプログラム221R」と言う。
図38(a)は、制御プロセッサ143が、第三のストレージシステム601にあるバックアップデータ要素(世代間差分データ要素、S−VOL内のデータ要素)を利用して、第一のストレージシステム125内にR−VOLを作成するケースを示す。具体的には、例えば、リストアプログラム221Lが、ホスト計算機101(又は、外部の他の計算機)からリストア要求を受けると(ステップ38101)、第三のストレージシステム601に当該リストア要求を転送する(ステップ38102)。リストアプログラム223Rが、そのリストア要求に応答して、リストア対象世代のP−VOLに対応したR−VOLを構成するデータ要素(S−VOL内のデータ要素、及び/又は、図13及び14を参照して説明した方法により特定可能な世代間差分データ要素)を、第一のストレージシステム125に転送する(ステップ38103)。転送されたデータ要素は、第一のストレージシステム125内のストレージプールに記憶される。各データ要素の記憶先のセグメントを表すアドレスが、リストアプログラム223Lによって作成されるR−VOLアクセス管理テーブルに登録される(ステップ38104)。そのR−VOLアクセス管理テーブルを用いて、第一のストレージシステム125内のR−VOLに対するアクセス(例えばリード)が制御される。
図38(b)は、図38(a)の処理で、R−VOLアクセス管理テーブルが、第三のストレージシステム601内のリストアプログラム223Rによって作成され、第一のストレージシステム125に転送されるケースを示す。具体的には、ステップ38101及び38102と同じ処理が行われる(ステップ38201及び38202)。リストアプログラム223Rは、リストア対象世代のP−VOLに対応したR−VOLを構成するデータ要素の各在り処を表すアドレスを含んだR−VOLアクセス管理テーブルを作成する(ステップ38203)。そして、リストアプログラム223Rは、そのR−VOLアクセス管理テーブルを、第一のストレージシステム125に転送する。このケースでは、図38(a)のケースと違って、R−VOLを構成するデータ要素は、第三のストレージシステム601内にある。このため、第一のストレージシステム125が、R−VOLを指定したリードコマンドを受けた場合、そのリードコマンドに従うデータ要素は、第三のストレージシステム601から取得されて、リードコマンドの送信元に送られる。
図38(c)は、第三のストレージシステム601が、リストア要求を受けるケースである。すなわち、このケースでは、リストアプログラム223Rが、リストア要求を受け(ステップ38301)、図13を参照して説明した方法で、R−VOLアクセス管理テーブルを作成する(ステップ38302)。
上述したいずれのケースでも、R−VOLに対応したプール領域は、第一及び第三のストレージシステム125及び601のどちらに存在しても良い。図38(a)乃至(c)に示した例では、S−VOLが存在するストレージシステム内に、R−VOLに対応したプール領域が存在する。リストア処理中に、R−VOLを指定したライトコマンドを受けることが可能であり、そのライトコマンドに従うライトデータ要素は、そのプール領域に退避される。
本発明の第五の実施形態では、第三のストレージシステム601に代えて、第二のストレージシステム161が採用される。第三のストレージシステム601は、第一のストレージシステム125に対していわゆるリモートコピー構成で接続されていたが、第二のストレージシステム161は、第一のストレージシステム125に対していわゆる外部接続構成で接続されている。「リモートコピー構成」での接続によれば、第一のストレージシステム125内の書込み先にデータ要素が書き込まれる場合、第一のストレージシステム125内のPDEVと第三のストレージシステム601内のPDEVの両方にそのデータ要素が記憶されるが、「外部接続構成」での接続によれば、第一のストレージシステム125内の書込み先にデータ要素が書き込まれる場合、第一のストレージシステム125内のPDEVにはそのデータ要素は記憶されず、その書込み先を含んだ領域にマッピングされている、第二のストレージシステム161内の記憶領域の基になっているPDEVに、そのデータ要素が記憶される。
図32は、本発明の第五の実施形態に係る計算機システムの構成を示す。
第二のストレージシステム161内の記憶資源が、第一のストレージシステム125内の記憶資源であるかのように利用される。具体的には、例えば、特開2006−331458号公報等に開示の技術を利用して、第一のストレージシステム125に第二のストレージシステム161が接続される。
第二のストレージシステム161内の複数のターゲットデバイスが、第一のストレージシステム125内のS−VOL、オンライン更新差分データ用のJNLサブエリア(プール領域)、世代間差分データ用のJNLサブエリア(プール領域)及びマージ差分データ用のJNLサブエリア(プール領域)に、例えば1対1で関連付けられている。この場合、例えば、世代間差分データ用のJNLサブエリアに格納されるデータ要素は、第一のストレージシステム121から第二のストレージシステム161に転送されて、そのJNLサブエリアに関連付けられているターゲットデバイス(第二のストレージシステム内のターゲットデバイス)に関連付いた論理ボリュームに格納される。
図43に、第五の実施形態でのデバイスマッピングの関係の一例を示す。
第一のストレージシステム125のVDEV193B内の記憶領域193B−1及び193B−2に、それぞれ、第二のストレージシステム161内のターゲットデバイスがマッピングされている。本実施形態では、各記憶領域193B−1及び193B−2にマッピングされるターゲットデバイスの切り替えが可能である。
また、ターゲットデバイスに関連付ける論理ボリュームの基として、テープが採用されても良い。具体的には、世代間差分データを構成する複数のデータ要素や、マージ差分データを構成する複数のデータ要素は、既に説明したソート処理によってアドレス順に書き込まれるため、テープが採用されても良い。ただし、この場合、JNLサブエリアの割り当てを、第二のストレージシステム161のターゲットデバイス単位に分けておく方が制御しやすい。そうすると、1つ以上の世代間差分データやマージ差分データを第二のストレージシステム161に記憶させておき、必要に応じて、ターゲットデバイスを介して、データアクセスが可能となる。加えて、古くなった差分データ(JNLデータ)から順に、第二のストレージシステム161から切り離していくことが可能となる。具体的には、例えば、制御プロセッサ143が、JNLエリア管理テーブル203を参照して、古い世代に対応したJNLサブエリアの位置を特定し、そのJNLサブエリアと、それにマッピングされているターゲットデバイス(第二のストレージシステム内のターゲットデバイス)との関係を切ることで(一例として、JNLサブエリアにマッピングされているターゲットデバイスの識別子を削除する)、ターゲットデバイスの切り離しが可能となる。具体的には、例えば、第一の期間の次の第二の期間(2月)になったならば、第一の期間(例えば1月)に取得されたJNLデータが記憶されている領域に対応した第一のターゲットデバイスが、VDEV193Bから切り離され、第二の期間に取得されるJNLデータが記憶される領域に対応した第二のターゲットデバイスが、VDEV193Bに接続される。
また、バックアップ世代管理テーブル205において、世代毎に、[状態]として、下記(1)又は(2)の情報、
(1)対応するJNLデータ(例えば世代間差分データ)が第二のストレージシステム161に格納されていることを表す情報、
(2)第一のストレージシステム125内のVDEVとターゲットデバイスとの間に張られたパスがオフラインであることを表す情報(そのパスをオンラインにして、第一のストレージシステムから参照可能になるように指示が必要なことを意味する情報)
が管理されても良い。
図33は、第五の実施形態においてP−VOLにライトデータ要素を書き込むライト処理のフローを示す。なお、図33では、オンライン更新差分データ要素は、ビフォアJNLデータ要素である。また、以下の説明では、図には示していないが、混同を避けるために、第一のストレージシステム125内の制御プロセッサ143で実行されるR/Wプログラム213を、「R/Wプログラム213L」と言い、第二のストレージシステム161内のプロセッサ167で実行されるR/Wプログラム213を「R/Wプログラム213E」と言う。
図33に示すステップ33001〜33008は、図30に示すステップ30001〜30008と同様である(ステップ番号の対応関係は一部違っているが、全体として行われる処理は同様である)。但し、ステップ33004での更新前データ要素の格納先は、JNLサブエリアではなく、キャッシュメモリ147に確保されているスロットである。また、ステップ33009及び33010が行われる。
概要としては、次の通りである。すなわち、R/Wプログラム213Lは、ホスト計算機101からのライトコマンドに応答して、P−VOL内のライト先ブロックから更新前データ要素を読み出してキャッシュメモリ147に書く。そして、R/Wプログラム213Lは、第二のストレージシステム161に、ライト準備要求を送信する。R/Wプログラム213Eは、そのライト準備要求に応答して、キャッシュメモリ上にスロットを確保し、準備完了を第一のストレージシステム125に応答する(ステップ33009)。R/Wプログラム213Lは、その応答を受けたら、キャッシュメモリ147内にある更新前データ要素とライトコマンド(第一のストレージシステム125内のJNLサブエリア(最新)にマッピングされているターゲットデバイスを指定したコマンド)を第二のストレージシステム161に転送する。R/Wプログラム213Eは、その更新前データ要素を、キャッシュメモリに一時書込み、そのコマンドで指定されているターゲットデバイスに関連付いたJNLサブエリアに、その更新前データ要素を書き込む。また、R/Wプログラム213Eは、ライトの完了報告を、第一のストレージシステム125に送る(ステップ33010)。
図34は、図33のライト処理中にマーカを受領した際に行われる処理のフローを示す。なお、このマーカ受領によって、世代(j)が確定したとする。
JNLソートプログラム217は、マーカ受領に応答して(ステップ34001)、差分BM(j)の先頭から順に参照し(ステップ34002)、オンビットであれば、コピー処理を、第二のストレージシステム161に指示する(ステップ34003)。JNLソートプログラム217は、第二のストレージシステム161内のS−VOLに記憶されているデータ要素(上記オンビットに対応したブロックに記憶されているデータ要素)を読出し(ステップ34004)、第二のストレージシステム161内にある、世代間差分データ(j−1)に対応したJNLサブエリア(j−1)に書き込む(ステップ34005)。そのあとで、JNLソートプログラム217は、P−VOL内のブロックにおけるデータ要素(上記オンビットに対応したブロック内のデータ要素)を、S−VOL内のブロック(コピー元のブロックと同じアドレスのブロック)にコピーする(ステップ34006、34007)。その後、JNLソートプログラム217は、JNCB(j−1)を更新する(ステップ340089)。更新後のJNCB(j−1)内のデータ格納アドレスは、第二のストレージシステム161内の、更新前データ要素の格納先セグメント(JNLサブエリア(j−1)内のセグメント)を示す。
なお、P−VOLからS−VOLへのデータ要素のコピーの進捗より先のブロック(コピーが済んでいないブロック)を指定したライトコマンドを受けた場合には、R/Wプログラム213Lが、キャッシュメモリ147上にバッファ領域を用意し、そのバッファ領域に、受けたライトコマンドに従うライトデータ要素を書込む。コピー元のアドレスがより先のアドレスにシフトしていき、上記ライトコマンドで指定されているライト先ブロックのアドレスになった場合、R/Wプログラム213Lが、そのライト先ブロックに記憶されている更新前データ要素(旧データ要素)をS−VOLにコピーし、その後、P−VOL内のライト先ブロックに、バッファ領域にあるライトデータ要素を書き込む。
図35は、第五の実施形態においてP−VOLにライトデータ要素を書き込むライト処理のフローを示す。なお、図35では、オンライン更新差分データ要素は、アフターJNLデータ要素である。
図33のステップ33001〜33010と略同様の処理が行われる(ステップ35001〜35010)。但し、オンライン更新差分データ要素は、アフターJNLデータ要素なので、ステップ33040に相当する処理に代えて、ライトデータ要素がオンライン更新差分データ要素としてキャッシュメモリ147に格納される。キャッシュメモリ147に格納されたそのオンライン更新差分データ要素が、第二のストレージシステム161に転送される。
図44は、第一のストレージシステム125に障害が発生した場合に行われる回復処理のフローを示す。図44では、オンライン更新差分データ要素は、アフターJNLデータ要素である。
第二のストレージシステム161において、プロセッサ167(図1参照)は、第一のストレージシステム125内のP−VOLとペアを構成するS−VOLを、制御メモリ171(図1参照)に記憶されている構成管理テーブルを参照することで、特定する。そして、プロセッサ167は、そのS−VOLの複製となるVOL(例えば、未使用のVOLであってS−VOL以上の記憶容量を有するVOL)を選択する。プロセッサ167は、S−VOLをP−VOLとし、S−VOLの複製をS−VOLとしたペアを形成する。プロセッサ167は、P−VOLに記憶されているデータをS−VOLにコピーする(ステップ43001)。
プロセッサ167は、第二のストレージシステム161内の差分BM(最新)におけるオンビットに対応したオンライン更新差分データ要素を、JNLサブエリア(最新)から読出し、読み出したデータ要素を、オンビットに対応したブロック(P−VOL内のブロック)に書き込む(ステップ43002)。全てのオンライン更新差分データ要素はP−VOLに反映された場合に、そのP−VOLの内容が、第一のストレージシステム125内のP−VOLと同じ内容になる。
なお、以下のような回復も可能である。
すなわち、図示しない第四のストレージシステムが第二のストレージシステム161に接続されている。第四のストレージシステムは、第一のストレージシステム125と同じ機能を有する。
第四のストレージシステム内のプロセッサ(以下、「プロセッサA」と言う)が、管理サーバ111経由で、第二のストレージシステム161内の、外部接続の構成を表す情報(どのターゲットデバイスがどのVDEVにマッピングされているかを表す情報)(例えば、構成管理テーブル及び/又は外部接続用管理情報)を取得する。プロセッサAが、第四のストレージシステム内のVOLに、第二のストレージシステム内のS−VOLをマッピングする。そのあとで、第二のストレージシステム161内のプロセッサ167が、ステップ43001及び43002を実行する。
図45は、第五の実施形態でのリストア処理の一例のフローを示す。
リストアプログラム223は、リストア要求を受けた場合(ステップ38401)、R−VOLアクセス管理テーブルの基になるJNCBを第二のストレージシステム161から読出し、そのJNCBを用いて、図13を参照して説明した方法と同様の方法で、R−VOLアクセス管理テーブルを作成する(ステップ38402)。
もし、第二のストレージシステム161内のS−VOLにライトデータ要素が書き込まれる場合には、リストアプログラム223が、そのライト先のブロックにある更新前データ要素を第二のストレージシステム161に要求する(ステップ38403)。第二のストレージシステム161内のプロセッサ167が、その要求に応答して、その更新前データ要素を、第一のストレージシステム125に送る(ステップ38404)。リストアプログラム223は、その更新前データ要素を、例えば、R−VOLに対応したプール領域に格納し、R−VOLアクセス管理テーブルにおける、上記ライト先のブロックと同じ位置にあるブロックに対応したアドレスを、そのプール領域の格納先のセグメントのアドレスに変更する。
また、もし、R−VOLを構成するデータ要素や、R−VOLアクセス管理テーブルの基になるJNCBが、第二のストレージシステム161内の、マッピングが解除されたターゲットデバイスに関連付けられている記憶領域(例えば論理ボリューム)にある場合、制御プロセッサ143又は管理サーバ111が、そのターゲットデバイスを、第一のストレージシステム125内のVDEVにマッピングする。その後、制御プロセッサ143が、その記憶領域からJNCBを読み出し、R−VOLアクセス管理テーブルを作成する。また、必要に応じて、制御プロセッサ143が、R−VOLを構成するデータ要素を第二のストレージシステム161から読出し、R−VOLに対応したプール領域に保存しておく。
第六の実施形態では、マージ処理において、重複排除処理が行われる。重複排除処理では、重複した世代間差分データ要素の有無が判断され、有りとの判断結果が得られた場合に、重複する世代間差分データ要素は、JNLサブエリアに格納されない。重複排除処理では、マージ処理と同様に、ホスト計算機101からアクセスされる論理ボリュームとは異なる領域であって、ホスト計算機101からアクセスされない記憶領域(JNL関連エリアや後述の退避用エリア)が利用される。このため、ホスト計算機101からのI/Oコマンドの処理に影響を実質的に与えずに重複排除処理を行うことが可能である。
以下、詳述する。
図39は、本発明の第六の実施形態で行われる重複排除処理の説明図である。
JNLマージプログラム219が、重複排除機能を有する。重複排除機能によれば、世代間差分データ要素のハッシュ値が産出される。
本実施形態では、マージ差分データには、マージ差分データ要素毎に、要素管理情報が付加される。要素管理情報は、マージ差分データ要素の管理に関わる情報である。また、或る世代間差分データ要素が、或るマージ差分データ要素と重複することが検出された場合、その或る世代間差分データ要素は、マージ差分データには含められず、その或る世代間差分データ要素に対応した要素管理情報のみが、マージ差分データに含められる。要素管理情報のサイズは、例えば、JNLデータ要素のサイズ(つまりホストライトサイズ)よりも小さい。
要素管理情報は、例えば、ハッシュ値、ハッシュテーブル682へのポインタ(以下、「第一種のポインタ」という)、同一ハッシュ値を持つマージ差分データ要素へのポインタ(以下、「第二種のポインタ」という)、及び、重複マージデータ要素へのポインタ(以下、「第三種のポインタ」という)を含む。要素管理情報に含まれる[ハッシュ値]は、その要素管理情報に対応したデータ要素のハッシュ値である。ハッシュテーブル682は、JNLデータ要素から算出され得る複数種類のハッシュ値と、各種ハッシュ値に対応したポインタとで構成される。ポインタとしては、マージ差分データ要素が記憶されているセグメントのアドレスが記録されることになる(“NULL”は有効なアドレスが登録されていないことを意味する)。ハッシュテーブル682は、たとえば制御メモリ145に記憶されるが、PDEVなど他の記憶資源に記憶されてもよい。第二種及び第三種のポインタは、それぞれ、双方向のポインタである。従って、要素管理情報には、各種ポインタとして、関連先のアドレスだけでなく、関連元のアドレスを登録することが可能である。第一種〜第三種のポインタは、それぞれ下記の条件に該当した場合、
第一種のポインタ:算出されたハッシュ値に対応したポインタとして、ハッシュテーブル682に“NULL”が記録されている、
第二種のポインタ(関連先):算出されたハッシュ値に対応したポインタとして、ハッシュテーブル682に有効なアドレスが記録されているが、そのアドレスから辿ることが可能なマージ差分データ要素に、対象データ要素と重複するマージ差分データ要素が無い、
第三種のポインタ(関連先):算出されたハッシュ値に対応したポインタとして、ハッシュテーブル682に有効なアドレスが記録されており、そのアドレスから辿ることが可能なマージ差分データ要素に、対象データ要素と重複するマージ差分データ要素が有る、
に登録される。
具体的には、例えば、図31(a)に示すように、ハッシュ値“k”に対応した有効なアドレスがハッシュテーブル682に無い場合に、第一のブロックについて、ハッシュ値“k”に対応した対象データ要素“A”が取得された場合、対象データ要素“A”及びそれに対応した要素管理情報a1が、マージ差分データに含められる。また、ハッシュテーブル682には、ハッシュ値“k”に対応した有効なアドレスとして、対象データ要素“A”が格納された領域x1(マージ差分データに対応したJNLサブエリア内の領域)のアドレスが記録される。さらに、要素管理情報a1には、ハッシュ値として“k”が含まれ、第一種のポインタとして、ハッシュテーブル682における、ハッシュ値“k”に対応したエントリ(“x1”)を表すアドレスが含まれ、第二種及び第三種のポインタとしては、有効なアドレスが含まれない(図31(a)乃至(d)では、●が、関連元を意味し、矢印の向きが、関連先を意味する)。
次に、例えば、図31(b)に示すように、第二のブロックについて、ハッシュ値“k”に対応した対象データ要素“A”が取得された場合、ハッシュ値“k”に対応した、ハッシュテーブル682におけるポインタから、領域x1が特定される。領域xには、ハッシュ値だけでなく中身が全く同じであるデータ要素“A”(つまり重複したマージ差分データ要素)が存在する。このため、今回は、図31(b)に示すように、対象データ要素“A”は、マージ差分データには含められず、そのデータ要素“A”に対応した要素管理情報a2が、マージ差分データに含められる。要素管理情報a2には、ハッシュ値として“k”が含まれ、第三種のポインタ(関連先)として、領域x1を表すアドレスが含まれ、第一種及び第二種のポインタとして、有効なアドレスがふくまれない。また、要素管理情報a2の関連先のデータ要素“A”に対応した要素管理情報a1には、第三種のポインタ(関連元)として、要素管理情報a2が格納された領域x2を表すアドレスが含められる。これにより、要素管理情報a1を経由して要素管理情報a2を参照することが可能となる。なお、この後に、再び対象データ要素“A”が取得された場合、それに対応する要素管理情報a3は、要素管理情報a2に関連付けられる。これにより、要素管理情報a1及びa2を経由して要素管理情報a3を参照することが可能となる。なお、この図31(b)では、含められないデータ要素“A”に対応したビット(差分BMにおけるビット)に対応するデータ格納アドレスとして、要素管理情報a2が格納された領域x2を表すアドレス(又は、データ要素“A”が記憶されている領域x1を表すアドレス)を表す情報が採用される。
次に、例えば、図31(c)に示すように、第三のブロックについて、ハッシュ値“k”に対応した対象データ要素“B”が取得された場合、ハッシュ値“k”に対応した、ハッシュテーブル682におけるポインタから、領域x1が特定される。領域x1には、ハッシュ値は同じであるが中身が異なるデータ要素“A”(つまり非重複のマージ差分データ要素)が存在する。すなわち、重複したマージ差分データ要素が無い。このため、図31(c)に示すように、対象データ要素“B”及びそれに対応した要素管理情報b1が、マージ差分データに含められる。ハッシュテーブル682には、ハッシュ値“k”に対応した有効なアドレスとして、既に、領域x1が記録されているので、対象データ要素“B”が格納された領域y1を表すアドレスは記録されない。要素管理情報b1には、ハッシュ値として“k”が含まれ、第二種のポインタ(関連先)として、領域x1を表すアドレスが含められ、第一種及び第三種のポインタとしては、有効なアドレスが含められない。要素管理情報a1内の第二種のポインタ(関連元)として、領域y1を表すアドレスが追加される。
次に、例えば、図31(d)に示すように、第四のブロックについて、ハッシュ値“k”に対応した対象データ要素“B”が取得された場合、ハッシュ値“k”に対応した、ハッシュテーブル682におけるポインタから、領域x1が特定される。領域x1には、ハッシュ値は同じだが中身が異なるデータ要素“A”が存在する。このデータ要素“A”に対応した要素管理情報a1内の第二種のポインタ(関連元)として、領域y1を表すアドレスがある。このため、領域y1にあるデータ要素“B”が特定される。このデータ要素“B”は、対象データ要素“B”と重複するデータ要素である。このため、今回は、図31(d)に示すように、対象データ要素“B”は、マージ差分データには含められず、そのデータ要素“B”に対応した要素管理情報b2が、マージ差分データに含められる。要素管理情報b2には、ハッシュ値として“k”が含められ、第三種のポインタ(関連先)として、領域y1を表すアドレスが含められ、第一種及び第二種のポインタとして、有効なアドレスが含められない。また、要素管理情報b1には、第三種のポインタ(関連元)として、要素管理情報b2が格納された領域y2を表すアドレスが含められる。これにより、要素管理情報a1及びb1を経由して要素管理情報b2を参照することが可能となる。
以上のような重複排除処理を、JNLマージプログラム219は、たとえば、図40に示すように、ステップ11006とステップ11007(図11参照)との間に実行する。具体的には、JNLマージプログラム219は、ステップ11020の判断(或るデータ要素と重複したマージ差分データ要素の有無の判断)を行う。重複したマージ差分データ要素がある場合に、JNLマージプログラム219は、その或るデータ要素をマージ差分データに含めず、その或るデータ要素に対応した要素管理情報のみをマージ差分データに含める。また、JNLマージプログラム219は、その或るデータ要素に対応したブロック(ビット)に対応するデータ格納アドレス(マージ差分データに対応したJNCBに含められるデータ格納アドレス)として、重複したマージ差分データ要素が格納されているセグメントを示すアドレスを、そのJNCBに追加する(ステップ11021)。ステップ11021は、図39に示すステップ39004と同じ処理である。以下、図39を参照して、重複排除処理を説明する。
JNLマージプログラム219は、取得された世代間差分データ要素(以下、図39の説明において「対象データ要素」という)のハッシュ値を算出する(ステップ39001)。
次に、JNLマージプログラム219は、算出されたハッシュ値と同一ハッシュ値のデータ要素が格納されている領域を検索する(ステップ39002)。図31を参照した具体例によれば、(b)乃至(d)のケースで、当該領域が見つかる。
次に、JNLマージプログラム219は、対象データ要素と重複するマージ差分データ要素があるか否かを判断する(ステップ39003)。重複するマージ差分データ要素があれば(図31(b)及び(d)のケース)、対象データ要素がマージ差分データに含められず、その対象データ要素に対応した要素管理情報内に、第三種のポインタ(関連先)として、重複するマージ差分データ要素が存在する領域のアドレスが含められる(ステップ39004)。一方、重複するマージ差分データ要素がなければ(図31(c)のケース)、対象データ要素及びそれに対応した要素管理情報が、マージ差分データに含められる(ステップ39005)。その際、その要素管理情報内に、第二種のポインタ(関連先)として、同一のハッシュ値が得られるデータ要素が存在する領域のアドレスが含められる。
以上の処理は、一つのマージ差分データ毎に独立して行われてもよいし(すなわち、ハッシュテーブル682が、マージ差分データ毎に用意されてもよいし)、図39に示すように、複数のマージ差分データにまたがって行われてもよい(すなわち、ハッシュテーブル682が、複数のマージ差分データに共通であってもよい)。図39の例によれば、マージ差分データ(M)についての或る対象データ要素と重複するデータ要素が、マージ差分データ(M)には無いがマージ差分データ(N)に存在することが、共通のハッシュテーブル682を用いて複数の要素管理情報を辿ることで特定できたため、その対象データ要素に対応した要素管理情報内に、第三種のポインタ(関連先)として、マージ差分データ(N)内の重複データ要素が存在する領域を表すアドレスが含められ、その対象データ要素は、マージ差分データ(M)に含められない(“NULL”は対象データ要素が含まれていないことを意味する)。このように、複数のマージ差分データにハッシュテーブル682が共通であれば、後から作成されるマージ差分データには、JNLデータ要素が含められる可能性がより下がることが期待できる。
図41は、第六の実施形態におけるマージ差分データの削除処理の概要を示す。
例えば、マージ差分データ(N)が削除されるとし、マージ差分データ(N)よりも後にマージ差分データ(M)が作成されたとする(世代(N)と世代(M)は、どちらが新しい世代であっても良い)。このため、例えば、マージ差分データ(N)におけるデータ要素“D”が、マージ差分データ(M)における要素管理情報d2からリンクが張られているとする(具体的には、要素管理情報d2に、第三種のポインタとして、マージ差分データ(N)におけるデータ要素“D”が存在する領域のアドレスが含まれているとする)。
この場合、マージ差分データ(N)が単純に削除されてしまうと、マージ差分データ(M)を用いて、要素管理情報d2に対応するデータ要素“D”を復元することができなくなる。
そこで、本実施形態では、削除対象のマージ差分データ(N)におけるデータ要素が他のマージ差分データ内の要素管理情報からリンクが張られているか否かの判断が行われる。リンクが張られているとの判断結果が得られた場合、以下の(41−1)乃至(41−4)の処理、
(41−1)データ要素“D”及びそれに対応する要素管理情報d1が、退避用エリア642に退避される、
(41−2)ハッシュテーブル682における、ハッシュ値“k”に対応したポインタが、JNLサブエリアにおける、データ要素“D”が記憶されている領域を表すアドレスから、退避用エリア642における、データ要素“D”が記憶されている領域を表すアドレスに変更される、
(41−3)要素管理情報d2内の第三種のポインタ(関連先)が、JNLサブエリアにおける、データ要素“D”が記憶されている領域を表すアドレスから、退避用エリア642における、データ要素“D”が記憶されている領域を表すアドレスに変更される、
(41−4)マージ差分データ(N)が削除される、
が、図示しないJNLマージプログラム219により、行われる。退避用エリア642とは、PDEVを基に作成された論理ボリューム(例えばプールVOL)であっても良いし、キャッシュメモリ147における一領域であっても良いし、第一のストレージシステム125の外にある記憶資源内の領域であっても良い。
図42は、マージ差分データの削除処理のフローを示す。
JNLマージプログラム219は、削除対象のマージ差分データに対応した差分BMにおける初めのオンビットを検索する(ステップ42001)。
次に、JNLマージプログラム219は、そのオンビットに対応したデータ格納アドレス(JNCB内のデータ格納アドレス)を用いて、そのオンビットに対応した要素管理情報を参照することで、そのオンビットに対応したデータ要素が記憶されている領域を表すアドレスが、他の要素管理情報内に第二種又は第三種のポインタ(関連先)として含まれているか否かを判断する(ステップ42002)。ここでは、例えば、そのオンビットに対応した要素管理情報内に、第二種又は第三種のポインタ(関連元)として有効なアドレスがあれば、肯定的な判断結果となり、第二種又は第三種のポインタ(関連元)として有効なアドレスがなければ、否定的な判断結果となる。
ステップ42002において、肯定的な判断結果が得られた場合、JNLマージプログラム219は、その要素管理情報及びそれに対応したデータ要素を、退避用エリア642に退避する(ステップ42003)。JNLマージプログラム219は、その要素管理情報内に第一種のポインタとして有効なアドレスがあれば、退避したデータ要素のハッシュ値に対応する、ハッシュテーブル682におけるポインタを、データ要素の退避先の領域を表すアドレスに変更する(ステップ42004)。JNLマージプログラム219は、上記他の要素管理情報内に第二種又は第三種のポインタ(関連先)を、データ要素の退避先の領域を表すアドレスに変更する(ステップ42005)。
一方、ステップ42002において、否定的な判断結果が得られた場合、JNLマージプログラム219は、削除対象のマージ差分データが削除されることによりどの要素管理情報にも関連付けられなくなるデータ要素及び要素管理情報が退避用エリア642にあるか否かを調べる(ステップ42006)。有れば、JNLマージプログラム219は、そのデータ要素及び要素管理情報を、退避用エリア642から削除する(ステップ42007)。
以上のS42002乃至ステップ42007を、削除対象のマージ差分データに対応した差分BMにおける各オンビットについて実行する。すべてのオンビットについて行われたならば(ステップ42008でY)、JNLマージプログラム219は、削除対象のマージ差分データ及びそれに対応したJNCBをJNL関連エリア188から削除する(ステップ42009)。その際、JNLマージプログラム219は、削除対象のマージ差分データに対応した世代に関する情報を、JNLエリア管理テーブル203、バックアップ世代管理テーブル205及び第一のJNL管理テーブル207から削除する。
以上が、第六の実施形態についての説明である。なお、重複排除処理は、マージ差分データを作る時に限らず、世代差分データ要素をJNLエリアに格納するとき、及び/又は、オンライン更新差分データ要素をJNLエリアに格納するときに行われてもよい。このため、削除処理は、マージ差分データに限らず、世代間差分データについても行うことが可能である。
図46は、本発明の第七の実施形態でのリストア処理の概要を示す。図47は、本実施形態でのP−VOL、R−VOL及びJNL関連エリアの構成例を示す。図48は、そのリストア処理でのキャッシュメモリ147の使い方を示す。なお、図46〜図48を参照した説明では、JNLデータ要素は、ビフォアJNLデータ要素である。また、リストア対象世代を世代(N)とする。
本実施形態では、図46及び図47に示すように、R−VOL187Rからバックアップサーバ501にデータが読み出され、バックアップサーバ501に接続されている記憶装置(例えばテープライブラリ)502に、そのデータが書き込まれる。データは、例えば、R−VOLの先頭アドレスからシーケンシャルに読み出され、記憶装置502にシーケンシャルに書き込まれる。
図46に示すように、リストアプログラム221が、P−VOL(又はS−VOL)内の各スロットサイズ領域からデータをキャッシュメモリ147に読み出す(符号46001)。スロットのサイズは、例えば、ホストライトサイズよりも大きい。従って、スロットサイズ領域は、例えば、複数個のブロックで構成されている。
次に、リストアプログラム221が、リストア対象世代(N)から最新世代までのJNCBを基に(符合46002)、リストア対象世代(N)のP−VOLにあった世代間差分データ要素をJNLエリアから読み出し、キャッシュメモリ147内のスロットサイズのデータにおける、JNCB内のデータ格納アドレスに従う箇所に、その世代間差分データ要素を上書きする(符号46003)。こうすることで、キャッシュメモリ147内で、世代(N)に対応した或るスロットサイズ分のデータが確定した後に、キャッシュメモリ147内の確定したスロットサイズ分のデータが、バックアップサーバ501に転送される。
図47に示すように、本実施形態では、P−VOL(及び/又はS−VOL)、R−VOL(実質的にはキャッシュメモリ)、JNCBエリア及びJNLエリアは、複数のサブ領域に分割されている。以下、そのサブ領域を「分割領域」と言い、個々の分割領域に通し番号p(pは自然数)を付して説明する。P−VOL、R−VOL、JNCBエリア及びJNLエリア内のそれぞれの分割領域pは、互いに対応している。また、例えば、一つの世代に対応したJNCBは、JNCBエリアにおける複数の分割領域1〜Mに分割して格納され、同様に、一つの世代に対応したJNLデータ(例えば世代間差分データ)も、JNLエリアにおける複数の分割領域1〜Mに分割して格納される。
本実施形態では、複数の制御プロセッサ143があり、一又は二以上の分割領域毎に、個々の制御プロセッサ143が割り当てられている。各制御プロセッサ143は、それぞれ、自身が担当する分割領域について、図46を参照して説明した処理を実行する。複数の制御プロセッサ143が、並行して図46を参照して説明した処理を実行する。
一つの分割領域について、例えば下記の処理が行われる。
すなわち、図48に示すように、その分割領域を担当する制御プロセッサ143が、キャッシュメモリ147における分割領域に、世代(N)から最新世代に対応した複数のスロットと、R−VOLに対応したスロットとを確保する。
次に、制御プロセッサ143が、世代(N)から最新世代までの差分BM部分(分割領域に対応した差分BM部分)をマージし(符号48000)、マージされた差分BM部分におけるオンビットに対応したデータ要素を含むスロットサイズ分のデータを、P−VOL187P(又はS−VOL)から、R−VOLに対応したスロットに読み出す(符号48001)。その際、各データ要素は、スロット内の、JNCB内のデータ格納アドレスに基づく位置に記憶される。
次に、制御プロセッサ143は、世代(N)に対応した差分BM部分におけるオンビットに対応したデータ要素(N)を、スロット(N)に読み出す(符号48002)。制御プロセッサ143は、世代(N)よりも新しい各世代についても同様の処理を行う(符号48003)。
制御プロセッサ143は、世代(N)から最新世代にかけて、スロット内のデータ要素を、R−VOLに対応したスロットにコピーする(符号48004)。その際、コピー先にデータ要素が存在する場合には、より新しい世代に対応したデータ要素が上書きされる(符号48005)。世代(N)から最新世代にかけてこのようなコピーが完了した場合に、世代(N)に対応したスロットサイズのデータが確定する。
なお、制御プロセッサ143は、キャッシュメモリ147にスロットが確保できない場合、キャッシュメモリ147における確定済のスロットサイズのデータを、R−VOL用退避領域(例えば、ストレージプールの一部分(例えばプールVOL))699に退避する。或いは、例えば、制御プロセッサ143は、R−VOLに対するライトデータ要素を受領した場合、そのライトデータ要素を、R−VOL用退避領域699に退避する。
また、制御プロセッサ143は、図48を参照して説明した方法に代えて、図49を参照して説明する方法で、R−VOL187Rに対応したスロットサイズ分のデータをキャッシュメモリ147上に確定することが可能である。すなわち、図49に示すように、制御プロセッサ143は、差分BM部分(N)におけるオンビットに対応したデータ要素を対象スロットに読み出す。次に、制御プロセッサ143は、差分BM部分(N+1)におけるオンビットに対応したデータ要素を、上記対象スロットに読み出す。その際、前の世代で既にデータ要素が読み出されていれば、差分BM部分(N+1)におけるオンビットに対応したデータ要素は、対象スロットに書き込まれない。このような処理が、世代(N)から最新世代について行われることで、R−VOL187Rに対応したスロットサイズ分のデータが確定される。
図50は、本発明の第八の実施形態で行われる圧縮処理と解凍処理の概要を示す。これらの処理は、例えば、図示しない圧縮/解凍プログラムが制御プロセッサ143で実行されることにより行われる。
制御プロセッサ143が、ホスト計算機101又は管理サーバ111から圧縮対象世代の指定を受け付ける。制御プロセッサ143は、圧縮対象世代の指定を受けた場合、圧縮対象世代に対応したJNLデータ(世代間差分データまたはマージ差分データ)の位置及びデータサイズを、圧縮対象世代に対応した[先頭アドレス]及び[長さ](第一のJNL管理テーブル207に記録されている情報要素)を参照することにより、特定する。また、制御プロセッサ143は、圧縮方式(例えば圧縮率を含む)を基に、特定されたデータサイズに基づくサイズの空き領域を、JNL関連エリア188から確保する。
そして、制御プロセッサ143は、圧縮対象世代に対応したJNCB及びJNLデータをJNL関連エリア188から読み出して圧縮し、圧縮後のJNCB及びJNLデータを、確保した空き領域に格納する。その後、制御プロセッサ143は、読出し元の領域(JNCB及びJNLデータが記憶されている記憶領域)を解放する。これにより、その領域は空き領域として管理されることになる。
制御プロセッサ143は、世代毎に、圧縮の有無と、圧縮後のJNCB及びJNLデータの在り処を示す情報と、圧縮後及び圧縮前のJNCB及びJNLデータのサイズ(圧縮後サイズ及び圧縮前サイズ)とを、所定の記憶資源(例えば制御メモリ145)で管理する。
制御プロセッサ143は、解凍対象世代の指定を受け付けた場合、解凍対象世代に対応した圧縮前サイズ分の空き領域を、JNL関連エリア188から確保する。制御プロセッサ143は、解凍対象世代に対応した圧縮後のJNCB及びJNLデータの在り処を上記所定の記憶資源で管理されている情報を参照することにより特定し、特定された在り処にある圧縮後のJNCB及びJNLデータを読み出す。そして、制御プロセッサ143は、その圧縮後のJNCB及びJNLデータを伸張し、解凍後のJNCB及びJNLデータを、上記確保した空き領域に格納する。その後、制御プロセッサ143は、読出し元の領域(圧縮後のJNCB及びJNLデータが記憶されている記憶領域)を解放する。これにより、その領域は空き領域として管理されることになる。
以上が、第八の実施形態についての説明である。なお、圧縮及び/又は解凍は、制御プロセッサ143に代えて又は加えて、ハードウェア回路で行われてもよい。
以上、本発明の幾つかの実施形態を説明したが、これらは本発明の説明のための例示であって、本発明の範囲をこれらの実施形態にのみ限定する趣旨ではない。本発明は、他の種々の形態でも実施することが可能である。
例えば、第一乃至第八のいずれの実施形態でも、計算機システムは、オープンシステムであってもメインフレームシステムであっても良い。
また、例えば、ストレージシステム125、161及び/又は601は、NAS(Network Attached Storage)であっても良い。
また、S−VOLは、無くても良い。その場合、R−VOLにアクセスがあった場合の参照先は、S−VOL内のブロックに代えて、P−VOL内のブロック、又は、オンライン更新差分データ要素が記憶されているセグメントである。また、この場合、マーカが受領された時に、オンライン更新差分データが、世代間差分データになることになる。その際、ソート処理として、オンライン更新差分データ要素が、アドレス順にJNLサブエリアから読み出され、別のJNLサブエリアにアドレス順に書き込まれる。S−VOLが有れば、ソート処理がやり易く、S−VOLが無ければ、S−VOLのサイズ分の記憶容量の消費を削減することができる。
本発明の第一の実施形態に係る計算機システムの構成を示す。 第一のストレージシステムにおける記憶領域構成の概要を示す。 JNLデータ要素の格納の概要を示す。 第一のストレージシステム内の制御メモリに記憶されているコンピュータプログラム及び情報を示す。 図4に示した構成管理テーブル、JNLエリア管理テーブル、バックアップ世代管理テーブル及び第一のJNL管理テーブルの例を示す。 オンライン更新差分データ、世代間差分データ及びマージ差分データのうちの世代間差分データを例に採ったデータ管理方式を示す。 ホストライトサイズ設定処理のフローを示す。 P−VOLにライトデータ要素を書き込むライト処理のフローを示す。 マーカ受領及びマーカ受領に応答して行われる処理のフローを示す。 第一の実施形態でのソート処理のフローを示す。 第一の実施形態でのマージ処理のフローである。 第一の実施形態でのマージ処理に関するデータ要素の動きを示す。 リストア処理のフローを示す。 R−VOL管理テーブルを利用したリード処理のフローを示す。 R−VOL管理テーブルを利用したライト処理のフローを示す。 本発明の第二の実施形態においてP−VOLにライトデータ要素を書き込むライト処理のフローを示す。 第二の実施形態でのソート処理のフローを示す。 本発明の第三の実施形態においてP−VOLにライトデータ要素を書き込むライト処理のフローを示す。 第三の実施形態でのソート処理のフローを示す。 R−VOL有りでのソート処理のフローを示す。 第二、第三の実施形態におけるマーカ受領直後のP−VOLのライト処理を示す。 本発明の第四の実施形態に係る計算機システムの構成を示す。 第四の実施形態においてP−VOLにライトデータ要素を書き込むライト処理の、方式1が採用されたフローを示す(取得されるオンライン更新差分データ要素は、アフターJNLデータ要素である)。 第四の実施形態においてP−VOLにライトデータ要素を書き込むライト処理の、方式2が採用されたフローを示す(取得されるオンライン更新差分データ要素は、アフターJNLデータ要素である)。 方式3又は方式4が採用されている環境における、マーカ受領及びマーカ受領に応答して行われる処理、のフローを示す。 図25に示した処理中にライトデータ要素を第一のストレージシステム125が受けた場合に行われるライト処理のフローを示す(取得されるオンライン更新差分データ要素は、アフターJNLデータ要素である)。 第四の実施形態での構成管理テーブル、JNLエリア管理テーブル、バックアップ世代管理テーブル、第一のJNL管理テーブル及びJNCBの例を示す。 図23及び図24における、マーカ受領及びマーカ受領に応答して行われる処理、のフローを示す。 第四の実施形態においてP−VOLにライトデータ要素を書き込むライト処理の、方式1が採用されたフローを示す(取得されるオンライン更新差分データ要素は、ビフォアJNLデータ要素である)。 第四の実施形態においてP−VOLにライトデータ要素を書き込むライト処理の、方式2が採用されたフローを示す(取得されるオンライン更新差分データ要素は、ビフォアJNLデータ要素である)。 第六の実施形態における、要素管理情報とデータ要素との関連付けの例を一示す。 本発明の第五の実施形態に係る計算機システムの構成を示す。 第五の実施形態においてP−VOLにライトデータ要素を書き込むライト処理のフローを示す。 図33のライト処理中にマーカを受領した際に行われる処理のフローを示す。 第五の実施形態においてP−VOLにライトデータ要素を書き込むライト処理のフローを示す。 第四の実施形態での、オンライン更新差分データ要素が取得されない場合の一つのリモートコピー処理を示す。 リモート側へデータ要素を転送できないことが検出された場合に行われる処理のフローを示す。 第四の実施形態でのリストア処理の3つの例のフローを示す。 本発明の第六の実施形態で行われる重複排除処理の説明図である。 第六の実施形態における、重複排除処理を有したマージ処理のフローを示す。 第六の実施形態におけるマージ差分データの削除処理の概要を示す。 第六の実施形態における、マージ差分データの削除処理のフローを示す。 第五の実施形態でのデバイスマッピングの関係の一例を示す。 第一のストレージシステムに障害が発生した場合に行われる回復処理のフローを示す。 第五の実施形態でのリストア処理の一例のフローを示す。 本発明の第七の実施形態でのリストア処理の概要を示す。 第七の実施形態でのP−VOL、R−VOL及びJNL関連エリアの構成例を示す。 第七の実施形態のキャッシュメモリの使い方を示す。 第七の実施形態の一変形例の説明図である。 本発明の第八の実施形態で行われる圧縮処理と解凍処理の概要を示す。
符号の説明
101…ホスト計算機、111…管理サーバ、125…第一のストレージシステム、161…第二のストレージシステム

Claims (19)

  1. 第一のストレージシステムと
    前記第一のストレージシステムに接続された第二のストレージシステムと
    を備え、
    前記第一のストレージシステムが、
    第一の論理ボリュームの基になる第一の物理記憶デバイスと、
    第一のメモリを有し、ライトコマンドとライトデータの一単位であるライトデータ要素とを上位装置から受け付け、前記ライトコマンドから特定される前記第一の論理ボリュームに前記ライトデータ要素を書き込む前記第一のコントローラと
    を備え、
    前記第二のストレージシステムが、
    第二の論理ボリューム及びジャーナルエリアの基になる第二の物理記憶デバイスと、
    第二のメモリを有し、前記第二の物理記憶デバイスへのアクセスを制御する第二のコントローラと
    を備え、
    前記第一及び第二のメモリのうちの少なくとも前記第一のメモリが、前記ライトデータ要素のサイズであるライト単位サイズを記憶し、
    前記ジャーナルエリアは、前記第一及び/又は第二の論理ボリュームを構成する複数のブロックのうちのいずれかのブロックに記憶されているデータ要素又はそのブロックに書き込まれるデータ要素であるジャーナルデータ要素が記憶される記憶領域であり、
    前記ジャーナルデータ要素のサイズ、及び、前記第一及び前記第二の論理ボリュームの各構成要素として管理される前記各ブロックのサイズが、前記ライト単位サイズである、
    ストレージシステム群。
  2. 前記第一の物理記憶デバイス及び/又は前記第二の物理記憶デバイスが、第一のジャーナル管理エリアの基になっており、
    前記第二の物理記憶デバイスが、第二のジャーナル管理エリアの基になっており、
    前記第二の論理ボリュームが、前記第一の論理ボリュームとペアを構成する論理ボリュームであり、
    前記第一の論理ボリュームについて、第一のサブ管理情報が前記第一のジャーナル管理エリアに記憶され、
    前記第二の論理ボリュームについて、世代毎の第二のサブ管理情報が前記ジャーナル管理エリアに記憶され、
    前記第一のサブ管理情報は、前記第一の論理ボリュームを構成する各ブロックに対応した各情報要素を有する第一の差分管理情報を含み、前記各情報要素は、その情報要素に対応するブロックに更新が発生したか否かを表し、
    前記第二のサブ管理情報は、前記第二の論理ボリュームを構成する各ブロックに対応した各情報要素を有する第二の差分管理情報と、データ格納アドレス情報とを含み、前記各情報要素は、その情報要素に対応するブロックに更新が発生したか否かを表し、前記データ格納アドレス情報は、前記ジャーナルエリアにおけるセグメントのアドレスを表し、
    前記第一及び/又は第二のメモリが、前記第一のサブ管理情報と世代毎の前記第二のサブ管理情報とのそれぞれの情報の在り処を表すジャーナル管理情報を記憶する、
    請求項1記載のストレージシステム群。
  3. 前記第一又は前記第二のコントローラが、前記第一の差分管理情報における、前記第一の論理ボリューム内のライト先ブロックに対応した情報要素が未更新を表していれば更新済みに更新し、
    世代確定イベントが発生したことによって前記第一の論理ボリュームの世代(j)が確定した時に、
    (3−1)前記第一及び/又は前記第二のコントローラが、前記第二の論理ボリュームの世代(j−1)に対応した前記第二の差分管理情報(j−1)を含んだ前記第二のサブ管理情報(j−1)を、前記第二のジャーナル管理エリア内に追加し、
    (3−2)前記第一及び/又は前記第二のコントローラが、前記第一の差分管理情報において更新済みを表す各情報要素について、以下の(3−2−1)乃至(3−2−4)を実行する、
    (3−2−1)前記第一の差分管理情報において更新済みを表す情報要素に対応した、前記第二の差分管理情報(j−1)内の情報要素を、更新済みを表す情報要素に更新する、
    (3−2−2)前記第二のサブ管理情報に、データ格納アドレス情報を追加し、前記追加されたデータ格納アドレス情報は、前記第一の差分管理情報において更新済みを表す情報要素に対応したブロックと同じ位置にある、前記第二の論理ボリューム内のブロック、に記憶されているデータ要素の、前記ジャーナルエリアにおける退避先のセグメントのアドレスを表している、
    (3−2−3)前記第一の差分管理情報において更新済みを表す情報要素に対応したブロックと同じ位置にある、前記第二の論理ボリューム内のブロック、に記憶されているデータ要素を、前記追加されたデータ格納アドレス情報が表す、前記ジャーナルエリア内のセグメントに、退避する、
    (3−2−4)前記データ要素の退避元のブロックに、前記第一の差分管理情報において更新済みを表す情報要素に対応した、前記第一の論理ボリュームに関連するデータ要素を、書込む、
    前記(3−2−3)で前記ジャーナルエリアに退避されたデータ要素の集合が、世代(j−1)の前記第二の論理ボリュームと世代(j−2)の前記第二の論理ボリュームとの差分を表す世代間差分データ(j−1)である、
    請求項2記載のストレージシステム群。
  4. 前記(3−2−2)において、前記ジャーナルエリアにおける、前記退避先のセグメントは、直前回に退避先とされたセグメントに連続したセグメントであり、
    前記第一又は第二のコントローラは、前記(3−2−1)乃至(3−2−4)を、前記第一の論理ボリュームのブロックのアドレス順に実行する、
    請求項3記載のストレージシステム群。
  5. 前記(3−2−4)における、前記第一の論理ボリュームに関連するデータ要素は、以下の(5−1)又は(5−2)である、
    (5−1)前記第一又は前記第二の物理記憶デバイスに基づくジャーナルエリアに記憶された、前記第一の論理ボリュームについてのジャーナルデータ要素であって、前記第一の論理ボリュームに書き込まれるライトデータ要素であるアフタージャーナルデータ要素、
    (5−2)前記第一の差分管理情報において更新済みを表す情報要素に対応した、前記第一の論理ボリューム内の記憶領域、に記憶されているデータ要素、
    請求項3又は4記載のストレージシステム群。
  6. 前記第一及び/又は前記第二のコントローラが、複数の世代の前記第二のサブ管理情報及び世代間差分データをマージすることでマージ後の第二のサブ管理情報及び世代間差分データを作成するマージ処理部を有し、
    前記マージ後の第二のサブ管理情報及び世代間差分データには、同一のブロックに対応した情報要素及び世代間差分データ要素については、より古い世代の情報要素及び世代間差分データ要素が含まれ、その世代より新しい情報要素及び世代間差分データ要素が含まれていない、
    請求項3乃至5のうちのいずれか1項に記載のストレージシステム群。
  7. 前記第一及び/又は第二のコントローラが、リストア対象世代の前記第一の論理ボリュームを表す第三の論理ボリュームを準備するリストア処理部を有する、
    請求項3乃至6のうちのいずれか1項に記載のストレージシステム群。
  8. 前記リストア処理部が、リストア対象世代から最新世代までの前記第二のサブ管理情報を用いて、仮想的な論理ボリュームである前記第三の論理ボリュームを構成する各ブロックに対応した各参照先アドレスを有したリストア管理情報を作成し、前記第三の論理ボリュームの或るブロックを指定したリードの要求を上位装置から受けた場合、前記或るブロックについて有効な参照先アドレスがあれば、その参照先アドレスが示すセグメントからデータ要素を読み出して、前記上位装置に提供し、前記或るブロックについて有効な参照先アドレスがなければ、前記第一又は第二の論理ボリュームにおける、前記或るブロックと同じ位置にあるブロック、からデータ要素を読み出して、前記上位装置に提供する、
    請求項7記載のストレージシステム群。
  9. 前記第三の論理ボリュームに記憶されているデータが、前記ライト単位サイズよりも大きいスロットサイズ単位がバックアップされるようになっており、
    前記第一及び/又は第二のメモリには、キャッシュメモリが含まれており、
    前記リストア処理部が、前記キャッシュメモリに、前記スロットサイズ分の領域であるスロットを確保し、前記確保したスロットに、前記リストア対象世代に該当する複数のデータ要素を格納し、スロットに格納されたデータ要素群である前記スロットサイズ分のデータを、バックアップする、
    請求項7記載のストレージシステム群。
  10. 前記第一及び/又は第二のコントローラが、圧縮対象世代に属する前記第二のサブ管理情報及び世代間差分データが圧縮された圧縮後情報を記憶するための第一の領域を、前記第一又は第二の物理記憶デバイスから確保し、圧縮対象世代に属する前記第二のサブ管理情報及び世代間差分データが記憶されている第二の領域から、前記圧縮対象世代に属する前記第二のサブ管理情報及び世代間差分データを読み出し、読み出された第二のサブ管理情報及び世代間差分データを圧縮することで前記圧縮後情報を生成し、生成された圧縮後情報を前記第二の領域に格納し、前記第二の領域を空き領域として管理する、
    請求項3乃至7のうちのいずれか1項に記載のストレージシステム群。
  11. 前記第一及び/又は第二のコントローラが、前記第二の論理ボリュームの各世代について、第二のサブ管理情報の在り処を表すジャーナル管理情報を前記第一及び/又は第二のメモリに記憶し、前記第二の物理記憶デバイスが基になっているジャーナル管理エリアに、第二のサブ管理情報を記憶し、
    前記第二のサブ管理情報は、前記第二の論理ボリュームを構成する各ブロックに対応した各情報要素を有する第二の差分管理情報と、データ格納アドレス情報とを含み、前記各情報要素は、その情報要素に対応するブロックに更新が発生したか否かを表し、前記データ格納アドレス情報は、対応するジャーナルデータ要素が記憶されている、前記ジャーナルエリアにおけるセグメント、のアドレスを表す、
    請求項1記載のストレージシステム群。
  12. 前記第一及び/又は第二のコントローラが、世代確定イベントが発生した時に、前記第二の論理ボリューム内の複数の更新対象ブロックに記憶されている複数のデータ要素をブロックのアドレス順に前記ジャーナルエリアに退避し、その際、退避先のセグメントを、直前回に退避先とされたセグメントに連続したセグメントとする、
    請求項1又は11記載のストレージシステム群。
  13. 前記第一及び/又は第二のコントローラが、リストア対象世代から最新世代までの第二のサブ管理情報を用いて、仮想的な論理ボリュームである前記第三の論理ボリュームを構成する各ブロックに対応した各参照先アドレスを有したリストア管理情報を作成し、前記第三の論理ボリュームの或るブロックを指定したリードの要求を上位装置から受けた場合、前記或るブロックについて有効な参照先アドレスがあれば、その参照先アドレスが示すセグメントからデータ要素を読み出して、前記上位装置に提供し、前記或るブロックについて有効な参照先アドレスがなければ、前記第一又は第二の論理ボリュームにおける、前記或るブロックと同じ位置にあるブロック、からデータ要素を読み出して、前記上位装置に提供し、
    前記第二のサブ管理情報は、前記第二の論理ボリュームを構成する各ブロックに対応した各情報要素を有する第二の差分管理情報と、データ格納アドレス情報とを含み、前記各情報要素は、その情報要素に対応するブロックに更新が発生したか否かを表し、前記データ格納アドレス情報は、対応するジャーナルデータ要素が記憶されている、前記ジャーナルエリアにおけるセグメント、のアドレスを表す、
    請求項1又は11及び12のうちのいずれか1項に記載のストレージシステム群。
  14. 一以上のストレージシステムで構成されるストレージシステム群であって、
    複数のブロックで構成されている論理ボリュームとジャーナルエリアとの基になっている物理記憶デバイスと、
    メモリを有し、前記論理ボリューム内の或るブロックに更新が発生する場合に前記或るブロックについてのジャーナルデータ要素を取得し、取得されたジャーナルデータ要素を、前記ジャーナルエリアに書き込むコントローラと
    を備え、
    前記コントローラが、
    取得されたジャーナルデータ要素と互いに重複するジャーナルデータ要素が前記ジャーナルエリアに記憶済みか否かを判断し、
    判断の結果が肯定的であれば、前記取得されたジャーナルデータ要素を管理するための要素管理情報を前記ジャーナルエリアに書込み、前記取得されたジャーナルデータ要素を前記ジャーナルエリアに書込まず、
    前記要素管理情報は、前記ジャーナルデータ要素よりも小さいサイズの情報であり、前記重複するジャーナルデータ要素が記憶されているセグメントのアドレスを表すポインタを含む、
    ストレージシステム群。
  15. 前記メモリが、複数種類のハッシュ値にそれぞれ対応した複数のアドレス値が記録されるハッシュテーブルを記憶し、
    前記コントローラが、前記取得されたジャーナルデータ要素のハッシュ値を算出し、前記判断では、算出されたハッシュ値に対応したアドレス値を基に特定されるセグメントに前記取得されたジャーナルデータ要素と重複するジャーナルデータ要素が存在するか否かを判断する、
    請求項14記載のストレージシステム群。
  16. 前記コントローラが、前記判断の結果が否定的であっても、前記算出されたハッシュ値と同じハッシュ値を有するジャーナルデータ要素が、算出されたハッシュ値に対応したアドレス値を基に特定されるセグメントに存在すれば、前記取得されたジャーナルデータ要素と、前記算出されたハッシュ値と同じハッシュ値を有するジャーナルデータ要素が記憶されているセグメントのアドレスを示すポインタを含んだ要素管理情報とを、前記ジャーナルエリアに書き込む、
    請求項15記載のストレージシステム群。
  17. 前記メモリ及び/又は前記物理記憶デバイスが、退避用エリアの基になっており、
    前記コントローラが、削除対象のジャーナルデータに含まれるジャーナルデータ要素が記憶されているセグメントのアドレスを示すポインタを含んだ要素管理情報が前記ジャーナルエリアに存在すれば、そのジャーナルデータ要素を前記退避用エリアに退避し、その要素管理情報内のポインタを、退避先のセグメントのアドレスに変更し、その後、前記削除対象のジャーナルデータを削除する、
    請求項14乃至16のうちのいずれか1項に記載のストレージシステム群。
  18. 前記ジャーナルエリアには、世代毎の世代間差分データが記憶され、各世代間差分データは、その世代より1つ前の世代からその世代までの間に前記論理ボリュームに更新が発生したブロックについてのジャーナルデータ要素で構成されており、
    前記コントローラが、複数の世代の世代間差分データをマージすることでマージ差分データを作成し、その際、同一のブロックに対応したジャーナルデータ要素については、より古い世代の世代間差分データ要素をマージ差分データに含めその世代より新しい世代間差分データ要素をマージ差分データに含めず、且つ、前記判断では、取得されたジャーナルデータ要素と互いに重複するジャーナルデータ要素が前記マージ差分データが記憶される領域に記憶済みか否かを判断し、判断の結果が肯定的であれば、前記取得されたジャーナルデータ要素に代えて前記要素管理情報を前記マージ差分データに含める、
    請求項14乃至17のうちのいずれか1項に記載のストレージシステム群。
  19. 前記ブロック及びジャーナルデータ要素のサイズが、上位装置からのライトデータの一単位であるライトデータ要素のサイズである、
    請求項14乃至18のうちのいずれか1項に記載のストレージシステム群。
JP2008151302A 2007-10-24 2008-06-10 ストレージシステム群 Expired - Fee Related JP5275692B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2008151302A JP5275692B2 (ja) 2007-10-24 2008-06-10 ストレージシステム群
US12/190,916 US9164941B2 (en) 2007-10-24 2008-08-13 Storage system group

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
JP2007276254 2007-10-24
JP2007276254 2007-10-24
JP2007303743 2007-11-22
JP2007303743 2007-11-22
JP2008151302A JP5275692B2 (ja) 2007-10-24 2008-06-10 ストレージシステム群

Publications (2)

Publication Number Publication Date
JP2009146381A true JP2009146381A (ja) 2009-07-02
JP5275692B2 JP5275692B2 (ja) 2013-08-28

Family

ID=40916876

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008151302A Expired - Fee Related JP5275692B2 (ja) 2007-10-24 2008-06-10 ストレージシステム群

Country Status (1)

Country Link
JP (1) JP5275692B2 (ja)

Cited By (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011118712A (ja) * 2009-12-04 2011-06-16 Fujitsu Ltd データ管理プログラム、データ管理装置、およびデータ管理方法
JP2011175642A (ja) * 2010-02-24 2011-09-08 Iron Mountain Inc 前進および後退デルタを利用するデータの復元
JP2011209874A (ja) * 2010-03-29 2011-10-20 Nec Corp ストレージ装置及びこれを用いたデータ転送方法
WO2012029256A1 (en) * 2010-08-31 2012-03-08 Nec Corporation Storage system
JP2013543198A (ja) * 2010-11-16 2013-11-28 アクティフィオ インコーポレイテッド データ管理仮想化のためのシステムおよび方法
JP2015212971A (ja) * 2011-04-08 2015-11-26 マイクロン テクノロジー, インク. データ重複排除
KR101686340B1 (ko) * 2015-08-06 2016-12-29 성균관대학교산학협력단 대용량 스토리지 장치를 위한 효율적인 비휘발성 캐시 부하 관리 방법
US9575827B2 (en) 2013-12-27 2017-02-21 Fujitsu Limited Memory management program, memory management method, and memory management device
JP2017062636A (ja) * 2015-09-25 2017-03-30 富士通株式会社 ストレージ装置およびストレージ制御プログラム

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011118712A (ja) * 2009-12-04 2011-06-16 Fujitsu Ltd データ管理プログラム、データ管理装置、およびデータ管理方法
JP2011175642A (ja) * 2010-02-24 2011-09-08 Iron Mountain Inc 前進および後退デルタを利用するデータの復元
JP2011209874A (ja) * 2010-03-29 2011-10-20 Nec Corp ストレージ装置及びこれを用いたデータ転送方法
US9110839B2 (en) 2010-08-31 2015-08-18 Nec Corporation Storage system for storing target data and address data
JP2013514557A (ja) * 2010-08-31 2013-04-25 日本電気株式会社 ストレージシステム
WO2012029256A1 (en) * 2010-08-31 2012-03-08 Nec Corporation Storage system
JP2013543198A (ja) * 2010-11-16 2013-11-28 アクティフィオ インコーポレイテッド データ管理仮想化のためのシステムおよび方法
JP2015212971A (ja) * 2011-04-08 2015-11-26 マイクロン テクノロジー, インク. データ重複排除
US9778874B2 (en) 2011-04-08 2017-10-03 Micron Technology, Inc. Data deduplication
US10282128B2 (en) 2011-04-08 2019-05-07 Micron Technology, Inc. Data deduplication
US9575827B2 (en) 2013-12-27 2017-02-21 Fujitsu Limited Memory management program, memory management method, and memory management device
KR101686340B1 (ko) * 2015-08-06 2016-12-29 성균관대학교산학협력단 대용량 스토리지 장치를 위한 효율적인 비휘발성 캐시 부하 관리 방법
JP2017062636A (ja) * 2015-09-25 2017-03-30 富士通株式会社 ストレージ装置およびストレージ制御プログラム
US10303395B2 (en) 2015-09-25 2019-05-28 Fujitsu Limited Storage apparatus

Also Published As

Publication number Publication date
JP5275692B2 (ja) 2013-08-28

Similar Documents

Publication Publication Date Title
JP5275692B2 (ja) ストレージシステム群
JP5366480B2 (ja) 計算機システム及びそのバックアップ方法
US8260746B2 (en) Computer system for hierarchically managing a journal and method therefor
JP6009095B2 (ja) ストレージシステム及び記憶制御方法
US7802131B2 (en) Information system and data transfer method
US7739540B2 (en) Information system, data transfer method and data protection method
JP5367086B2 (ja) 計算機システムとそのデータ制御方法
US8607012B2 (en) Storage system group
US20070198604A1 (en) Computer system, computer system management console, and data recovery management method
JP2008065525A (ja) 計算機システム、データ管理方法及び管理計算機
JP2009146389A (ja) バックアップシステム及び方法
US10817209B2 (en) Storage controller and storage control method
US9164941B2 (en) Storage system group
US20130138916A1 (en) Storage apparatus and its control method
US7152147B2 (en) Storage control system and storage control method
JP5275691B2 (ja) ストレージシステム
US11308122B2 (en) Remote copy system
US11256586B2 (en) Remote copy system and remote copy management method

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20100723

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120329

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120410

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120611

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120821

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121017

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: 20130507

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130516

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 5275692

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees