以下、図面を用いて、本発明の第一の実施形態について説明する。尚、これにより本発明が限定されるものではない。以下、「記憶装置システム」には、ディスク装置等の記憶装置、ディスクアレイ等のように複数の記憶装置を有するシステムが含まれるものとする。
図1は、本発明を適用した情報処理システムの第一の実施形態を示す図である。情報処理システムは、ホスト1、記憶装置システム2、管理端末3、ホスト1と記憶装置システム2とを接続するネットワーク4、並びにホスト1、記憶装置システム2及び管理端末3とを接続するネットワーク5を有する。
ホスト1は、パーソナルコンピュータ、ワークステーション、メインフレーム等の計算機である。ホスト1では、その計算機の種類に応じたオペレーティングシステム(以下「OS」)と様々な業務、用途に対応したアプリケーションプログラム(AP)、たとえばデータベース(DB)プログラム等、が動作する。本実施形態では、簡単のため、ホスト1を2つ記載しているが、ネットワーク4及び5に接続されるホスト1は幾つあってもよい。
管理端末3は、記憶装置システム2の障害、保守、構成、性能情報等の管理を行うために使用される計算機である。例えば、情報処理システムの管理者が、記憶装置システム2に論理的な記憶装置を設定する場合、データをバックアップするための記憶領域を設定する場合、又はデータを複製する際の記憶領域の対を設定する場合に、管理端末3が使用される。情報処理システムの管理者は、記憶装置システム2の保守・管理、記憶装置システム2が有する物理記憶装置10の設定、及び記憶装置システム2と接続されるホスト1の設定等を行う場合に、管理端末3に設定したい内容を入力する。管理端末3は、ネットワーク5を介して記憶装置システム2及びホスト1に管理者が入力した内容を送信する。
ネットワーク4は、ホスト1が記憶装置システム2へI/Oの処理要求等を伝送するために使用される。ネットワーク4には、光ケーブルや銅線等が用いられる。又、ネットワーク4で使用される通信プロトコルには、イーサネット(登録商標)、FDDI、ファイバチャネル、SCSI、Infiniband、TCP/IP、iSCSIなどがある。
ネットワーク5は、記憶装置システム2が、自身の障害、保守、構成、性能等の管理情報を管理端末3やホスト1に送信したり、管理端末3やホスト1が、記憶装置システム2から管理情報を取得する際に使用される。ネットワーク5に使用されるケーブル及び通信プロトコルはネットワーク4と同一でも異なっていてもよい。
図2は、本実施形態における記憶装置システム2の構成を示す図である。記憶装置システム2は、ホスト1が使用するデータやプログラムを格納し、ホスト1のI/O処理要求を受信し、I/O処理要求に対応した処理を行い、その結果を所定のホスト1に送信する。
記憶装置システム2は、記憶装置制御装置11、物理記憶装置10、キャッシュメモリ14、共有メモリ19及びLocal Network18とを有する。
物理記憶装置10には、ユーザが使用するデータが格納される。物理記憶装置10は、電気的に不揮発な記憶媒体である磁気ディスクや不揮発性半導体メモリで構成される、シリコンディスク、光ディスク、光磁気ディスク又はハードディスク等である。尚、物理記憶装置10は、物理記憶装置10が有する記憶領域に障害がおきてもデータが損失しないように、冗長性を持つRAID(Redundancy Array Independed Disk)構成になっていてもよい。
記憶装置制御装置11は、ホスト1からのI/O要求の処理及び物理記憶装置10の制御を行う装置である。記憶装置制御装置11は、物理記憶装置10と接続される物理記憶装置アダプタ13、所定のプログラムを実行するプロセッサ12、プロセッサ12で実行されるプログラム、プログラムが動作する上で必要な情報、記憶装置システム2の設定情報及び構成情報等が格納される不揮発性メモリ15、記憶装置システム2とネットワーク5とを接続するためのネットワークアダプタ17、記憶装置システム2とネットワーク4とを接続するためのI/Oネットワークアダプタ16とを有する。
尚、記憶装置制御装置11は記憶装置システム2に複数存在しても良い。また記憶装置システム2の冗長性を確保するために、システム内の各装置、例えば、記憶装置制御装置11内の各構成要素への電源供給のための回路、キャッシュメモリ14、不揮発性メモリ15、Local Network18、物理記憶装置アダプタ13等は、夫々2重化された冗長構成になっていても良い。
キャッシュメモリ14は、記憶装置システム2にホスト1から入力されるデータ又は記憶装置システム2からホスト1へ転送されるデータが一時的に格納される記憶媒体である。
共有メモリ19は、複数の記憶装置制御装置11、複数のプロセッサ12間で共有される情報を格納するための不揮発性メモリである。例えばI/O処理のためにキャッシュメモリ14のある領域へアクセスを行うための排他処理用ビットや物理記憶装置10とキャッシュメモリ14との対応関係を示す情報等が格納される。Local Network18は、記憶装置制御装置11、キャッシュメモリ14、及び物理記憶装置10を相互に接続する。Local Network18は、共有バス型の構成でもよいし、スター型等のネットワーク構成となっても良い。
図3は、ホスト1の構成を示す図である。ホスト1は、所定のプログラムを実行するプロセッサ20、プロセッサ20が実行するOSやAP及びAPが使用するデータを格納するために使用されるメモリ21、OSやAP、APが使用するデータが格納されるローカルディスク装置22、ネットワーク4とホスト1とを接続するホストバスアダプタ23、ネットワーク5とホスト1とを接続するためのネットワークアダプタ24、フロッピー(登録商標)ディスク等の可搬記憶メディアからのデータの読み出し等を制御するリムーバブル記憶ドライブ装置26、及びこれらの構成部品間を接続し、OSやAPのデータや制御データの転送に用いられるLocal I/O Network25とを有する。
リムーバブル記憶ドライブ装置26で使用される可搬記憶媒体としては、CD−ROM、CD−R、CD−RW、DVDやMO等の光ディスク、光磁気ディスクや、ハードディスクやフロッピー(登録商標)ディスク等の磁気ディスク等がある。尚、以下に説明される各プログラムは、可搬記憶媒体からリムーバブル記憶ドライブ装置26を介して読み出されることで、あるいはネットワーク4又は5を経由することで、ホスト1のローカルディスク装置22にインストールされる。
ホスト1は、冗長性確保のために、プロセッサ20等の構成部品を複数有していても良い。
図4は、記憶装置システム2が有するプログラムの構成及びシステムの論理的構成を示す図である。記憶装置システム2では、単数又は複数の物理記憶装置10(図で点線で表示)が組み合わされ、冗長性を有するパリティグループ407が構成される。パリティグループ407は、データを格納する物理記憶装置10及び格納されたデータから作成される冗長データが格納される物理記憶装置10の組である。また、記憶装置システム2は、ホスト1に対して、パリティグループ407を構成する複数の物理記憶装置10が作る記憶領域空間から、論理的な記憶領域を論理記憶装置408として提供する。したがって、ホスト1は、記憶装置システム2には、図4に示すような、記憶装置制御装置11に接続された記憶装置(論理記憶装置408)が存在すると認識する。
記憶装置制御装置11は、記憶装置システム2内の処理を制御するために、I/O処理プログラム403、レプリケーション制御処理プログラム404、ストレージサブシステム構成管理プログラム402、リストア制御処理プログラム406及びジャーナル制御部405の各プログラムを不揮発性メモリ15に有する。記憶装置制御装置11は、これらのプログラムをプロセッサ12で実行することで、以下に説明する処理を制御する。
I/O処理プログラム403は、更に、コマンド処理プログラム415及びリードライト処理プログラム416からなる。記憶装置制御装置11は、ホスト1からのI/O処理要求をネットワークインターフェース17で受信すると、コマンド処理プログラム415を実行して、受信したI/O処理要求の内容を解析する。解析の結果、I/O処理要求の内容がデータの読み出しI/O(以下「リードI/O」)要求やデータの書き込みI/O(以下「ライトI/O」)処理要求であれば、記憶装置制御装置11は、リードライト処理プログラム416を実行する。
ライトI/O処理要求の場合、記憶装置制御装置11は、ホスト1からのライトI/O処理要求に対する応答処理(実際にホスト1から転送されるデータを受領できる状態にあるかどうかの応答)を行い、更に転送されてくる更新用のデータ(以下「ライトデータ」)をキャッシュメモリ14又は物理記憶装置10の所定の箇所への書き込み、またはキャッシュメモリ14に格納されたライトデータを物理記憶装置10に書き込む制御等を行う。リードI/O処理要求の場合、記憶装置制御装置11は、リードI/O処理要求に対応するデータ(以下、「リードデータ」)を、キャッシュメモリ14もしくは物理記憶装置10の所定の箇所から読み出してホスト1に転送したり、物理記憶装置10からリードデータを読み出してキャッシュメモリ14に格納する処理を制御する。
その他の処理の場合、たとえばSCSIのInquiryコマンド(デバイスサーチを指示するコマンド)等の場合、記憶装置制御装置11は、コマンド処理プログラム415を実行することによって、処理内容に対応した動作の制御を行う。
ストレージサブシステム構成管理プログラム402は、デバイス管理情報410及びデバイス管理プログラム409から構成される。デバイス管理情報410は、論理記憶装置408のアドレスと物理記憶装置10のアドレスとの対応関係を示すマッピング情報、パリティグループ407を構成する物理記憶装置10に関する情報、スナップショットペア450に関する情報、及びジャーナルデータ格納対象情報等とを保持するテーブルである。
デバイス管理プログラム409は、記憶装置制御装置11がデバイス管理情報410を管理する際に実行されるプログラムである。記憶装置制御装置11は、デバイス管理プログラム409を実行することによって、管理端末3等から入力される論理記憶装置408の定義やスナップショットが格納される対象となる論理記憶装置408の設定、ジャーナルデータ格納対象情報の登録等を行う。
記憶装置制御装置11がデータのリードライトI/O処理を実行する際は、デバイス管理プログラム409を実行することによって、リードライトI/O処理要求が指定するリード又はライトデータが読み出され又は格納されるべき個所の論理記憶装置408のアドレスがどの物理記憶装置10のアドレスに対応するかを計算し、その結果に基づいて、物理記憶装置10へのアクセスを行う。
ジャーナル制御プログラム405は、記憶装置制御装置11がジャーナルデータを作成する際に実行するジャーナル作成プログラム419、記憶装置制御装置11が作成したジャーナルデータを読み出す際に実行するジャーナル読出しプログラム420、ジャーナル取得の対象となる論理記憶装置408についての情報が登録されたジャーナル管理情報418、及び記憶装置制御装置11がジャーナル管理情報418の設定等を行う際に実行するジャーナル管理プログラム417から構成される。
記憶装置制御装置11は、ジャーナルデータ取得を行うとき(以下、「ジャーナルモード時」)にホスト1からライトI/O処理要求を受信した場合、ジャーナル作成プログラム419を実行することで、ライトデータをキャッシュメモリ14に書き込むとともに、ライトデータの格納される個所に存在している従前のデータ(以下「ライト対象データ」)及びライトデータを、キャッシュメモリ14に確保されたジャーナルデータ作成用の所定の領域に書き込む。
尚、キャッシュメモリ14に格納されたライト対象データ及びライトデータは、更新履歴であるジャーナルデータとして、ジャーナルデータを格納するための論理記憶装置408(以下「ジャーナル論理記憶装置」)に格納される。又、記憶装置制御装置11は、リストアマネージャ406及びジャーナル読み込みプログラム420を実行することで、ホスト1からの指示に基づき、ジャーナル論理記憶装置に格納されたジャーナルデータを順次読み出し、読み出したジャーナルデータが有するアドレスで示される、複製先となる論理記憶装置408又は複製元である論理記憶装置408の記憶領域にデータを上書きする。
スナップショット制御プログラム404は、コピー処理プログラム413、差分情報414、ペア制御管理プログラム411及びペア管理情報412から構成される。記憶装置制御装置11は、ペア制御管理プログラム411を実行することで、ホスト1からの指示に従って、ある論理記憶装置408(以下、「正論理記憶装置」)及び正論理記憶装置に格納されたデータの複製を格納する論理記憶装置408(以下、「副論理記憶装置」)について、ペア形成(Pair Create)、ペア分離(Pair Split)、ペア再結合(Pair Resync)、ペア削除(Pair Delete)の処理を行う。ここで、「ペア」とは、正論理記憶装置と、正論理記憶装置に対応する副論理記憶装置の組(以下「スナップショットペア450」)を指す。
尚、1つの正論理記憶装置に対して、複数の副論理記憶装置を設定・作成することもできる。また、副論理記憶装置を新たな正論理記憶装置とし、新たな正論理記憶装置とペアになる副論理記憶装置を設定・作成することもできる。
ペア管理情報412には、ある論理記憶装置のスナップショットペア450がペア結合状態(Pair Duplex)のペア同期状態(Pair Synchronus)、ペア結合状態(Pair Duplex)のペア非同期状態(Pair Asynchronus)、ペア形成状態(Pair Create)、ペア分離状態(Pair Symplex)にあるかどうかを示す情報が登録される。Pair Synchronus状態とは、ホスト1のライトI/Oによる正論理記憶装置の更新と副論理記憶装置の更新が同期して行われる状態を示す。Pair Asynchronus状態とは、ホスト1のライトI/Oによる正論理記憶装置の更新と副論理記憶装置の更新が非同期に行われる状態を示す。尚、Pair Asynchronus状態の場合は、副論理記憶装置に正論理記憶装置の更新が反映されるまで、ライトデータは、差分情報414で管理される。
差分情報414には、あるペアがペア非同期状態(Pair Asynchronus)又は分離状態(Pair Symplex)の場合に、正論理記憶装置にデータの書き込みが発生することによって生ずる正論理記憶装置と副論理記憶装置との間の差異が有る部分を示すアドレス情報等が保持される。
記憶装置制御装置11は、コピー処理プログラム413を実行することによって、ペア作成(Pair Create)時に正論理記憶装置の先頭アドレスから順次副論理記憶装置にデータを複写することで、正論理記憶装置に格納されたデータを副論理記憶装置にバックアップする。さらに記憶装置制御装置11は、差分情報414を参照して、差異が有る部分のデータを正論理記憶装置から副論理記憶装置にコピーしたり、逆に、差分情報414を参照して、差異があるデータを副論理記憶装置から正論理記憶装置へコピーする。
バックアップ/リストア制御プログラム406は、リストアプログラム421とバックアッププログラム422から構成される。記憶装置制御装置11は、リストアプログラム421を実行することで、ホスト1からのリストア要求に基づいて、指定された論理記憶装置408のデータをリストアする。尚、リストア処理の詳細は後述する。
バックアッププログラム422は、記憶装置制御装置11が、ホスト1の指示等に従って、論理記憶装置408の複製を作成したり、記憶装置システム2のデータを他の記憶装置、例えばテープに転送したりする際に実行される。
図5は、ホスト1で動作するプログラム及び使用されるデータの例を示す図である。これらのプログラムは、ホスト1のローカルディスク装置22又はメモリ21に格納され、プロセッサ20で実行される。ホスト1は、OS500の下で動作するAPとして、データベースマネジメントソフトウエア(以下「DBMS」)501を有する。DBMS501は、OS500、ファイルシステム(FS)530、ボリュームマネージャ(VM)540等を介して記憶装置システム2にアクセスする。また、DBMS501は、ユーザが使用する他のAP520との間で、トランザクション処理等のI/O処理の遣り取りを行う。
DBMS501は、DBファイル505、LOGファイル506、INDEXファイル507、DBバッファ509、LOGバッファ510、デバイス情報ファイル511、状態ファイル508、DB定義ファイル512、トランザクションマネージャ502、ログマネージャ503、バッファマネージャ513、及びリソースマネージャ504から構成されている。
DBバッファ509は、DBMS501の処理性能を上げる目的で、ホスト1のメモリ21に確保されるDBMS501専用の領域である。このバッファ509には、DBMS501によって良くアクセスされるデータが一時的に保持される。ログバッファ510もDBバッファ509と同様にメモリ21上に確保された領域で、DBMS501の処理記録(以下「ログ」)が一時的に格納される。
DBファイル505は、DBのテーブル等DBのデータそのものであり、実際には記憶装置システム2の物理記憶装置10内に格納されている。そして、良く使用されるテーブル等のデータがDBバッファ509に一時格納され、DBMS501は、そのデータでトランザクション処理を行う。DBバッファ509に要求されるデータが無い場合、DBMS501は、データを記憶装置システム2から読み上げる。
ログファイル506も実際には記憶装置システム2の物理記憶装置10に格納されている。ログファイル506には、トランザクション処理等のDBMS501がDBに対して行った処理のログ(処理を行ったAPの識別子、処理順序識別子、処理を行った時間や処理を行ったデータ及び処理対象前データ等を含む)が順次記録される。記録の際には、ログバッファ510を用いて順次追記される。ログファイル506には、AP520が一連の処理を行い整合性が取れた状態でコミットした際及びDBMS501が一定時間間隔やトランザクション数等毎に物理記憶装置10にバッファに格納されたダーティデータを格納するシンク処理を行った際にも、それを示す情報が記録される。
ホスト1は、トランザクションマネージャ502を実行することで、DBに対するトランザクション処理や、ログファイル506に格納されたデータを読出してデータのリカバリを実行したり、チェックポイントの制御を行ったりする。又、ホスト1は、ログマネージャ503を実行することで、DBに対するデータの入出力を制御する。
以下、本実施形態の動作概要について説明する。本実施形態の情報処理システムでは、まず、記憶装置システム2において、正論理記憶装置と正論理記憶装置のある時点に有するデータのバックアップデータ(以下「スナップショットデータ」)を有する副論理記憶装置を作成し保持する。スナップショットが作成された時点以降にホスト1からのライトI/O処理要求がある度に、記憶装置システム2は、ライトI/O処理前後のデータ(ライトデータ及びライト対象データ)をジャーナルデータ(「更新履歴」)として記録する。
さらに、ホスト1は、自身が作成する任意の識別情報であるチェックポイント情報(以下「CP情報」)を記憶装置システム2に対して通知する。具体的には、ホスト1は、任意の時点、例えば記憶装置システム2との間でのデータを一致させる処理(シンク処理)時に、CP情報を記憶装置システム2のジャーナルデータに書込む。これにより、記憶装置システム2は、ホスト1で作成されたものと同一のCP情報を保持する。つまり、従来ホスト1でのみ管理されていたCP情報をホスト1と記憶装置システム2の双方で管理する。これによって、ホスト1が指示するCP情報及び記憶装置システム2内のジャーナルデータに格納されたCP情報を利用して、記憶装置システム2は、ホスト1が意図した時(CP情報作成時)の記憶装置システム2が有していたデータの状態に高速にリストアを行う。
このような処理を実行するために、ホスト1は、あらかじめ、ジャーナルデータを取得する準備指示(ジャーナル取得開始準備指示)、及びジャーナル取得開始指示を記憶装置システム2に送信する。これにより、記憶装置システム2は、ジャーナルデータの取得を開始し、ジャーナルモードとなる。その後、情報処理システムは、上述したCP情報の遣り取りを行う。
以下、ホスト1がジャーナル取得開始準備指示を記憶装置システム2に発行した際に、記憶装置システム2で行われる処理について説明する。
ジャーナル取得開始準備指示指示には、ジャーナル論理記憶装置を指定する情報や、正論理記憶装置及び副論理記憶装置の作成指示等が含まれる。ジャーナル取得開始準備指示を受領した記憶装置システム2は、指示に従い、データ格納領域の割当等を実行する。正副論理記憶装置は、ジャーナル開始準備指示を受領する前からスナップショットペア450になっていても良いが、本実施形態では、記憶装置システム2が、ジャーナル取得開始準備指示に基づいて新たに論理記憶装置408をスナップショットペア450に設定する。
記憶装置システム2は、次に、正論理記憶装置のスナップショットデータを指定された副論理記憶装置に作成する。具体的には、記憶装置システム2がジャーナル取得開始準備指示を受取った時点で正論理記憶装置に格納されているデータを副論理記憶装置に複製し、正論理記憶装置と副論理記憶装置の状態を同期させる。尚、ジャーナル取得開始準備指示以前から正論理記憶装置とスナップショットペア450になっている副論理記憶装置が指定された場合は、記憶装置システム2は、副論理記憶装置と正論理記憶装置とを同期させた状態にするだけで良い。
更に、記憶装置システム2は、ホスト1の指示に基づいて、正論理記憶装置に対応するジャーナル論理記憶装置の設定も行う。
次に、ホスト1は、記憶装置システム2に、ジャーナル取得開始指示を出す。ジャーナル取得開始指示には、ジャーナルデータ取得開始を示す最初のCP情報であるチェックポイント識別子(以下「CPID」)が含まれている。記憶装置システム2は、受信した最初のCPIDを記録し、その後、ジャーナルデータの取得を開始する。尚、その後にホスト1から送信されるチェックポイントコマンドにも最初のCPIDとは別のCPIDが含まれている。CPIDは、記憶装置システム2でジャーナルデータとして記録される。
図6は、ホスト1からジャーナル取得開始準備指示及びジャーナル取得開始指示を受領した記憶装置システム2における処理の詳細手順を示す図である。
ホスト1は、DBMS501を実行することで、記憶装置システム2に対して、ジャーナル取得開始準備指示を送信する。尚、本実施形態では、DBMS501が使用するDBのテーブルが格納された論理記憶装置408が正論理記憶装置として指定される。ジャーナル取得開始準備指示には、正論理記憶装置を示す識別子、ジャーナル取得開始準備指示を記憶装置システム2が受領した瞬間のある正論理記憶装置に格納されたデータのスナップショットデータを格納するための副論理記憶装置を示す識別子、ジャーナル論理記憶装置を示す識別子が含まれる(ステップ601)。
ジャーナルデータは、スナップショットデータが作成された後のライトI/O処理要求に基づくライト対象データ、ライトデータ及びこれらのデータの正論理記憶装置内における格納位置を示すアドレス情報等から構成される。構成の具体例は後述する。
尚、スナップショットデータが格納される副論理記憶装置やジャーナル論理記憶装置の設定は、ジャーナル取得開始準備指示とは別の指示に基づいて、予め行われていても良い。この場合、ジャーナル取得開始準備指示には、これらの論理記憶装置408を示す識別子は含まれなくても良い。
ホスト1からジャーナル取得開始準備指示を受領した記憶装置制御装置11は、指示に含まれていれている副論理記憶装置を示す識別子を用いてデバイス管理情報410を参照し、無効なデバイスの指定の有無、例えば、指定された副論理記憶装置の存在の有無や障害発生の有無、論理記憶装置の状態の確認、例えば指定された副論理記憶装置が、既に他の処理に使用されている等、の確認を行う。確認の結果、指定された副論理記憶装置が使用可能である場合、記憶装置制御装置11は、指定された副論理記憶装置がジャーナル作成中であること示す情報をデバイス管理情報410に設定するとともに、指定された副論理記憶装置に関するジャーナル管理情報をジャーナル管理情報418に設定し、かつPair Create状態と設定する(ステップ602)。
同様に、記憶装置制御装置11は、ジャーナル論理記憶装置を示す識別子を用いてデバイス管理情報410を参照し、指定されたジャーナル論理記憶装置の無効なデバイスの指定の有無及び状態の確認を行う。指定されたジャーナル論理記憶装置が使用できる場合、指定されたジャーナル論理記憶装置がジャーナル作成中とする情報をデバイス管理情報410に登録する(ステップ603)。
次に、記憶装置制御装置11は、副論理記憶装置に正論理記憶装置のスナップショットデータを作成する処理(以下「スナップショット作成処理」)を行う。スナップショット作成処理においては、ジャーナル取得開始準備処理指示のコマンド受領時に正論理記憶装置に格納されていたデータが、副論理記憶装置に順次転送される。尚、ジャーナル取得開始準備処理指示に副論理記憶装置の指示が含まれず、予めDuplex状態のPairである副論理記憶装置が管理端末3で指定されていた場合や、副論理記憶装置の指示が含まれていても、指定された副論理記憶装置が既に正論理記憶装置とDuplex状態にある場合は、スナップショット作成処理は行わなくても良い。
尚、記憶装置システム2がスナップショット作成処理を実行している最中に、ホスト1から正論理記憶装置に格納されたデータに対するライトI/O処理要求があった場合、記憶装置制御装置11は、要求時点でライト対象データが未だ副論理記憶装置にコピーされていなかったら正論理記憶装置にライトデータを書込み、要求時点で既にライト対象データが副論理記憶装置にコピーされていたら、ライトデータを正論理記憶装に書き込むとともに、副論理記憶装置にも書きこむ(ステップ604)。
スナップショット作成処理が終了したら、記憶装置制御装置11は、ペア管理情報をDuplex状態にし(ステップ605)、ジャーナル取得準備処理の完了を、ジャーナル取得開始準備指示を発行したホスト1に報告する。尚、Duplex状態にあるスナップショットペア450では、正論理記憶装置に書き込まれたデータは、副論理記憶装置にも反映される(ステップ606)。
ジャーナル取得準備処理の完了報告を受領したホスト1は、任意のタイミング、例えば情報処理システムの状態が整合性が取れている時、指定時間又はあるトランザクション処理の前や後で、ジャーナル取得開始指示を記憶装置システム2に送信する(ステップ607)。
ジャーナル取得開始指示を受領した記憶装置制御装置11は、先に準備したジャーナル論理記憶装置、正副論理記憶装置に障害が発生していないかを確認して、ジャーナル取得開始指示に対してReady応答を返す(ステップ608)。
その後、記憶装置制御装置11は、正副論理記憶装置をPair Split状態にする。具体的には、ホスト1からライトI/O処理要求を受取っても、正論理記憶装置の更新が副論理記憶装置には一切反映されない状態にする(ステップ609)。
一方、Ready応答を受領したホスト1は、チェックポイントコマンドを用いて、CPIDを含むCP情報を送信する(ステップ610)。
CP情報を受領した記憶装置システム2は、ジャーナル論理記憶装置に、受信したCP情報、具体的には、CPID、記憶装置システム2内の処理シーケンス番号及び処理時間をジャーナルデータとして格納する。もしくは、記憶装置制御装置11にある不揮発性メモリ15又は共有メモリ19にCP情報を格納する(ステップ611)。
チェックポイントコマンドを送信したホスト1は、ホスト1のメモリ21に格納されているライトデータを記憶装置システム2に送信する(ステップ612)。
ライトデータを受領した記憶装置制御装置11は、ライトデータを正論理記憶装置に書き込むと共に、ライト対象データ及びライトデータをジャーナル論理記憶装置に書きこむ(ステップ613)。
チェックポイントコマンド受領以降、記憶装置システム2はジャーナルデータの取得を継続するジャーナルモードとなる。また、これ以降、一定時間毎や一定トランザクション数毎等、DB管理者が設定した間隔で、ホスト1は、その時点にDBバッファ509上のデータ全てを記憶装置システム2に送信する。更に、記憶装置システム2とホスト1とでCP情報を共有するタイミングである場合には、ホスト1は、CP情報を共有するタイミングであることを示すチェックポイントコマンドを送信する。
ジャーナルモード中にチェックポイントコマンドを受領した記憶装置制御装置11は、CP情報をジャーナルデータとして、ジャーナル論理記憶装置、不揮発性メモリ15又は共有メモリ19に格納する。
図7は、ジャーナルモード中の記憶装置システム2が、ホスト1よりリードライトI/O処理要求を受信した場合の処理手順を示す図である。
ホスト1よりリードまたはライトI/O処理要求を受領した記憶装置システム2の記憶装置制御装置11は(ステップ701)、受信した処理要求がライトI/O処理要求であるかどうかを判断する(ステップ702)。ライトI/O処理要求でない場合、記憶装置制御装置11は、デバイス管理情報410を用いて、リードI/O処理要求の対象となっているリードデータを、対応する物理記憶装置10又はキャッシュメモリ14から読み出してI/Oインタフェース16を介してホスト1に転送する(ステップ709)。
ステップ702でライトI/O処理要求と判断した場合は、記憶装置制御装置11は、デバイス管理情報410を参照し、ライトI/O処理要求で指定される論理記憶装置408が、ジャーナルモードである正論理記憶装置であるかを判断する(ステップ703)。ジャーナルモードの正論理記憶装置でなければ、記憶装置制御装置11は、キャッシュメモリ14にライトI/O処理要求に伴うライトデータを格納する領域を確保する(ステップ707)。その後、記憶装置制御装置11は、ライトデータをキャッシュメモリ14の確保された領域に格納して、ライトI/O処理が終了したことをホスト1に通知する(ステップ708)。
尚、記憶装置制御装置11は、キャッシュメモリ14から物理記憶装置10にデータを格納した後にライトI/O処理の終了をホスト1に報告してもよく、又ライトデータをキャッシュメモリ14を介さず直接物理記憶装置10に格納してもよい。
一方、ステップ703でライトI/O処理の対象となる論理記憶装置408がジャーナルモードの正論理記憶装置であった場合、記憶装置制御装置11は、ライトデータを格納するための領域をキャッシュメモリ14に確保し、ホスト1から送信されるライトデータを当該領域に格納する。
尚、通常の論理記憶装置408へのライトデータの書き込みとは違い、記憶装置制御装置11は、同じアドレスが指定される複数のライトデータの連続した書き込みの際は、各々のライトデータをキャッシュメモリ14の異なる領域に格納しなければならない。これは、ライトI/O処理要求の対象となるライト対象データがキャッシュメモリ14に存在するが物理記憶装置10にそのライトデータが反映されていない場合、通常の書き込み処理の様にキャッシュメモリ14に存在するライト対象データを更新してしまうと、更新前のライト対象データが失われ、ライト対象データをジャーナル論理記憶装置に格納することができなくなるからである(ステップ705)。その後、記憶装置制御装置11は、ジャーナルデータの作成処理を行い、処理を終了する(ステップ706)。
図8は、図7のステップ706のジャーナルデータ作成処理の手順を示す図である。ライトデータをキャッシュメモリ14に格納した記憶装置制御装置11は、ジャーナルデータを一時的に格納するための領域をキャッシュメモリ14に確保する(ステップ901)。
その後、記憶装置制御装置11は、キャッシュメモリ14に格納されているライトデータを、CP情報、処理シーケンス番号、処理時間とともに、キャッシュメモリ14に確保されたジャーナルデータ格納用の領域にコピーする(ステップ902、903)。ただし、CP情報のCPID1007エントリには、ホスト1からのチェックポイントコマンド受領時にのみCPIDが格納されるので、それ以外の場合は、CPID1007エントリには無効データが格納される。処理シーケンス番号は、プロセッサ12が処理を行うごとに付ける処理通番号である。
同時に、記憶装置制御装置11は、キャッシュメモリ14に格納されたライトデータによって更新されるライト対象データを格納するための領域をキャッシュメモリ14に確保し、そのライト対象データを物理記憶装置10あるいはキャッシュメモリ14から読みだして、キャッシュメモリ14の確保された記憶領域に格納する(ステップ904、905)。これにより、ライトデータ、ライト対象データ、CP情報、処理シーケンス番号及び処理時間を含むジャーナルデータが作成される。
全ての処理が終了した後、記憶装置制御装置11は、図7の処理に戻る。尚、キャッシュメモリ14で作成されたジャーナルデータは、キャッシュメモリ14にジャーナルデータが作成されるのとは非同期に、キャッシュメモリ14から物理記憶装置10に書き込まれる(ステップ906)。
図9は、ジャーナルデータのデータ形式を示す図である。
ジャーナルデータは、図6で説明したように、ジャーナル取得開始指示受信後、記憶装置システム2が正論理記憶装置に対するライトI/O処理要求を処理する毎にキャッシュメモリ14上に作成され、その後物理記憶装置10に格納される。ジャーナルデータは、ホスト1と記憶装置システム2でシステムの状態を一意に識別するCP情報を格納するエントリ1001、データが更新される箇所を示すブロックアドレスが格納されるエントリ1002、更新に用いられるライトデータの長さが格納されるエントリ1003、データが更新される個所に格納されていたライト対象データが格納されるエントリ1004、及びライトデータが格納されるエントリ1005とから構成される。CP情報エントリ1001には更に、チェックポイントフラグエントリ1006、CPIDが格納されるエントリ1007、処理順序番号エントリ1008、及び時刻エントリ1009が含まれている。
記憶装置システム2がホスト1よりチェックポイントコマンドを受領してCP情報を受信した場合、記憶装置制御装置11は、受信した際に作成されるジャーナルデータのCP情報エントリ1001に含まれるチェックポイントフラグエントリ1006に「ON」を示す情報を登録し、CPIDエントリ1007に、送信されてきたCPIDを格納する。CPIDエントリ1007に格納されるCPIDは、ホスト1が管理するログファイルに記録されているCP情報に含まれる特定のCPIDと対応する一意の値を持っている。したがって、ホスト1があるCPIDを指定すると、指定されたCPIDに対応する、ジャーナルデータに格納されたCPIDを指定することができる。
図10は、ホスト1がCP情報を記憶装置システム2に送信する処理手順を示す図である。ホスト1は、チェックポイントコマンドを発行し記憶装置システム2にCP情報を送信することによって、DBが有するデータの状態を確定しログファイルにチェックポイントを記録した(CPID等の情報が記録される)ことを記憶装置システム2に通知することが出来る。
先ず、ホスト1は、DBバッファ509及びログバッファ510等メモリ21にあるバッファに格納されたデータを、記憶装置システム2へ強制的に書き込むためのライトI/O処理要求を記憶装置システム2に送信する。本処理によって、ホスト1は、これらのバッファにのみ格納されていて記憶装置システム2には格納されていないデータ(以下「ダーティデータ」)を記憶装置システム2に反映して、DBのデータを確定することができる(ステップ1101)。
ライトI/O処理要求を受信した記憶装置制御装置11は、ホスト1から送信されるデータをキャッシュメモリ14に書き込む(ステップ1102)。転送されたデータを全てキャッシュメモリ14に書き込んだら、記憶装置制御装置11は、ライトI/O処理の終了をホスト1に通知する。この際、記憶装置制御装置11は、これらのデータに対応するジャーナルデータの作成も行う(ステップ1103)。
尚、ライトI/O処理の終了の通知を受信したホスト1は、以下のステップで実行されるCPID書き込み処理の完了が記憶装置システム2から報告されるまでは、記憶装置システム2へのデータの書き込みを行わないが、データの読み出しは実行してもよい。
ライトI/O処理の終了が通知されたホスト1は、トランザクションマネージャ502を実行して、CP情報及びCP処理に用いられるログを作成する。具体的には、ログファイル506にCPID等のCP情報をログとして格納する。尚、ログのCP情報には、CPID、リソースマネージャの数、リソースマネージャの状態、動作中のトランザクションの数及び各々のトランザクション記述なども含まれる。尚、リソースマネージャに関しては、詳細を割愛する(ステップ1104〜1105)。同時に、ホスト1は、チェックポイントコマンドを記憶装置システム2に対して発行する。チェックポイントコマンドにはCPIDが含まれている(ステップ1105)。
ホスト1からのチェックポイントコマンドを受信した記憶装置システム2は(ステップ1106)、受信したCPIDをジャーナルデータとしてジャーナル論理記憶装置に記録する。この場合、ジャーナルデータのエントリ1004及び1005に対応するライト対象データ及びライトデータは存在しないので、これらのエントリには、データが格納されないか、無効データ(例えば−1)が格納される(ステップ1107)。記録が完了したら、記憶装置制御装置11は、記録の完了をホスト1に通知する(ステップ1108)。
ホスト1は、記憶装置システム2からCPID記録完了の報告を受領すると、CP情報に関する処理を終了する(ステップ1109)。
図11は、管理端末3やホスト1からリストア指示を受領した記憶装置システム2における処理手順を示す図である。尚、以下の処理は、記憶装置制御装置11が、リストアプログラム421を実行することで行われる。
本実施形態では、DBを使用するAP540のバグやユーザのオペレーションミス等により論理記憶装置408にホスト1にとって論理的不整合等の障害が起き、かつ障害が発生した論理記憶装置408がジャーナルモードの正論理記憶装置であった場合を考える。この場合、管理端末3又はホスト1からは、障害が発生した正論理記憶装置に対応する副論理記憶装置及びジャーナル論理記憶装置に格納されたデータを使用して記憶装置システム2内で正論理記憶装置に格納されたデータをリストアする指示が送信される。
ホスト1は、AP540のログ情報等を参照し、オペミスや誤ったデータを送信したAP等の誤った操作を起こした時点を解析し、その時点の直前のチェックポイントコマンド送信時を検索し、記憶装置システム2でリストアする際に使用されるCPIDを決定する。尚、ホスト1のユーザは、障害発生直前のCPIDではなく、ホスト1からCP情報を記憶装置システム2に送信する際にホスト1に記録されるCPIDのリストから、任意のCPIDを選択することができる。これにより、本システムのユーザは、任意のCPIDを選択することで、選択されたCPIDが作成された時点に記憶装置システム2の正論理記憶装置が格納していたデータの状態まで、正論理記憶装置に格納されたデータをリストアすることができる(ステップ1201)。
次に、ホスト1は、ステップ1201で選択したCPIDまでのデータのリストア処理要求を記憶装置システム2に発行する。リストア処理要求には、リストア処理の対象となる正論理記憶装置の識別子(例えばWWNとLUN等)、正論理記憶装置に対応する副論理記憶装置を指定する識別子、ジャーナル論理記憶装置を指定する識別子、及び選択されたCPIDの情報等が含まれる。尚、正論理記憶装置に対応する副論理記憶装置が複数有る場合は、その内のいずれかを指定する情報もリストア処理要求に含まれる(ステップ1202)。
ホスト1より発行されたリストア処理要求を受領した記憶装置制御装置11は、リストアプログラム421を実行して、リストア処理要求に含まれる副論理記憶装置を示す識別子とペア管理情報412を比較参照し、指定された副論理記憶装置が正論理記憶装置に対する正しい副論理記憶装置であるかを確認する。また同様に、リストア処理要求に含まれるジャーナル論理記憶装置を示す識別子とジャーナル管理情報とを比較参照し、指定されたジャーナル論理記憶装置が正論理記憶装置に対応する正しいジャーナル論理記憶装置であるかを確認する(ステップ1203)。
更に、記憶装置制御装置11は、リストア処理要求の内容から、正論理記憶装置にリストア処理を行うのか、副論理記憶装置にリストア処理を行うのか、もしくは異なった未使用の論理記憶装置408にリストア処理を行うのかを確認する。尚、リストア処理対象に正論理記憶装置が指定されていても、正論理記憶装置が使用不可能であれば、論理記憶装置408の障害により処理続行が出来ない旨をホストに通知し、処理を中止する。また同様に副論理記憶装置やその他の論理記憶装置408にデータをリストアする指示であっても、指定された論理記憶装置408に何らかの障害がある場合は障害により処理続行が出来ない旨をホストに通知し、処理を中止する(ステップ1204)。
正論理記憶装置もしくはその他の空き論理記憶装置408にリストア処理を行う場合、記憶装置制御装置11は、副論理記憶装置に格納されていたスナップショットデータを先頭から順次読み出して正論理記憶装置へコピーし、正論理記憶装置が有するディスクイメージを副論理記憶装置と同一にする。尚、副論理記憶装置にデータをリストアする場合は、本コピー処理は不要である(ステップ1206)。
副論理記憶装置からのコピー処理が終了したら、あるいは副論理記憶装置へデータをリストアする場合、記憶装置制御装置11は、キャッシュメモリ14にデータ格納領域を確保する。その後、記憶装置制御装置11は、正論理記憶装置に対応するジャーナル論理記憶装置の先頭から、具体的には、処理シーケンス番号順に、順次ジャーナルデータをキャッシュメモリ14に確保された領域に読み出す。尚、ジャーナル論理記憶装置からのジャーナルデータの読み出しの先頭は、ホスト1から指定されても、記憶装置システム2が処理シーケンス番号で特定しても良い(ステップ1207)。
その際、読み出されたジャーナルデータにCP情報が含まれるかどうかを確認する。具体的には、ジャーナルデータのチェックポイントフラグ1006がONになっているかどうかを確認する(ステップ1208)。
読み出されたジャーナルデータが、CP情報を含むジャーナルデータである場合、記憶装置制御装置11は更に、読み出されたジャーナルデータのCPID1007に含まれるCPIDがホスト1から指定されたCPIDかどうかを確認する(ステップ1209)。
CPID1007に含まれるCPIDがホスト1から指定されたCPIDでない場合又はCPID1007にCPIDが格納されていない場合(チェックポイントフラグがONになっていない場合)、記憶装置制御装置11は、読み出したジャーナルデータのアドレス1002に格納された情報から、読み出されたジャーナルデータが、指定されたリストア対象である正論理記憶装置に関するジャーナルデータであるかどうかを確認する(ステップ1210)。
読み出されたジャーナルデータがリストア対象の正論理記憶装置に関するジャーナルデータであれば、記憶装置制御装置11は、読み出されたジャーナルデータに含まれるライトデータを、正論理記憶装置又は副論理記憶装置の対応するアドレスに書き込む。ただし、CPIDに対応するジャーナルデータである場合には、ライトデータが存在しないので、データの書き込みは行われない(ステップ1211)。
その後、記憶装置制御装置11は、ステップ1207に戻り次のジャーナルデータの読出し処理を行う。また、ステップ1210で読み出されたジャーナルデータが指定された正論理記憶装置に対応するジャーナルデータでない場合、記憶装置制御装置11は、ジャーナルデータをリストア先である論理記憶装置408に書き込まずに、ステップ1207の処理に戻る。以下、記憶装置制御装置11は、ステップ1207〜1211の処理を繰り返すことで、指示されたCPIDまでのジャーナルデータをリストアする。
ステップ1209で、CPID1007のCPIDが指定されたCPIDと一致した場合、記憶装置制御装置11は、リストアすべきデータをすべて正論理記憶装置、副論理記憶装置や他の論理記憶装置408に書き込んだと判断して、リストア処理の終了をホスト1に通知する。尚、正論理記憶装置以外にリストア処理を行う場合は、ホスト1への通知前に、論理物理マッピング情報を書き換えて、正論理記憶装置と副論理記憶装置またはその他のリストア先となる論理記憶装置408とを交換し、ホスト1からアクセスする論理記憶装置408の識別子(たとえばFCのWWNとLU番号の組合せ)は変わらないようにする(ステップ1212)。
尚、正論理記憶装置毎にジャーナル論理記憶装置が割り当てられている場合には、前記ステップ1210の処理、すなわち、読み出されたジャーナルデータと正論理記憶装置との対応関係の確認は不要である。
ホスト1または管理端末3は、記憶装置システム2から終了報告を受領したら、ホスト1が指定したCPID時点までのデータが回復されたと判断して、他の処理を継続する(1213)。
図12は、デバイス管理情報410の一例を示した図である。
デバイス管理情報410は、論理記憶装置408のアドレス情報を登録するエントリ1301及び物理記憶装置10のアドレス情報を登録するエントリ1304とを有するテーブル1300、ホスト1に提供される論理記憶装置番号を登録するエントリ1331、記憶装置システム2で論理記憶装置408を統一的に識別する記憶装置内論理記憶装置番号を登録するエントリ1332、記憶装置システム2内で管理するParity Groupの通し番号を登録するエントリ1333、論理記憶装置408のペア情報を登録するエントリ1334及びジャーナル情報を登録するエントリ1335を有するテーブル1330並びに、記憶装置システム2内の論理記憶装置番号が登録されるエントリ1351、空き/リザーブ情報が登録されるエントリ1352、Path定義情報が登録されるエントリ1353、Emulation Type/サイズが登録されるエントリ1354及び障害情報が登録されるエントリ1355とを有するテーブル1350とを保持する。
テーブル1300のエントリ1301は、更に、ホスト1に提供される論理記憶装置408の番号が登録されるエントリ1311、その論理記憶装置408に対応する内部アドレスが登録されるエントリ1312、記憶装置システム2内部で論理記憶装置408を統一的に識別する論理記憶装置番号が登録されるエントリ1313及びその内部論理記憶装置アドレスが登録されるエントリ1314を有する。また、テーブル1300のエントリ1304は、更に、エントリ1301に登録された論理記憶装置408に対応する物理記憶装置10のParityGroup407の番号を登録するエントリ1321、物理記憶装置10の番号を登録するエントリ1322及びその物理記憶装置10のアドレス情報を登録するエントリ1323を有する。
テーブル1330のペア情報エントリ1334には、論理記憶装置408がスナップショットペア状態にあるかどうかを示す情報が登録される。ジャーナル対象モードエントリ1335には、論理記憶装置408がジャーナル取得の対象、すなわちジャーナルモードの対象であるかどうかを示す情報が登録される。
テーブル1350の空き/リザーブ情報エントリ1352には、論理記憶装置408が、副論理記憶装置やジャーナル論理記憶装置に用いるために予約されている状態にあるかを示す情報が登録される。リザーブ情報が登録されている論理記憶装置408は、その他の用途、例えば新たに業務用論理記憶装置として割り当てるなどが出来ない。Path定義情報エントリ1353には、論理記憶装置408がホスト1に提供されるために外部に公開されているかを示す情報が登録される。例えばI/O NetworkがFCだったら、論理記憶装置408とFCのPortとの関連付けに関する情報が登録される。
Emulation Typeエントリ1354には、論理記憶装置408がOSが認識できる記憶装置のいずれに擬似化されている(エミュレートされる)かを示す情報及びその記憶容量が登録される。例えば、具体的には、オープン系システムのOSが認識できる記憶装置であることを示す「OPEN」や、メインフレーム系のOSが認識できる記憶装置であることを示す「3990」等の情報が登録される。
障害情報エントリ1355には、論理記憶装置408が何らかの障害になったかどうかを示す情報が登録される。ここで、障害とは、主に論理記憶装置408が存在する物理記憶装置10の物理的障害や管理者が意識的に記憶装置システム2を閉塞状態にした場合等の論理的障害がある。
図13は、ペア管理情報情報412のテーブルの一例を示した図である。
ペア管理情報412は、ホスト1に提供される論理記憶装置番号を登録するエントリ1401、記憶装置システム2内での論理記憶装置番号を登録するエントリ1402、Emulation Type/サイズを登録するエントリ1403、ペア状態を登録するエントリ1404、世代情報を登録するエントリ1405及びペア管理情報を登録するエントリ1406とを有する。
ペア状態エントリ1404には、先に記したペア結合状態等のペアの状態を示す情報が登録される。ペア管理情報エントリ1406には、論理記憶装置408が正論理記憶装置か副論理記憶装置かを示す情報が登録される。論理記憶装置408が正論理記憶装置に指定されていれば、正側エントリ1411には0が登録され、対応する副側エントリ1412にはペアとなる副論理記憶装置の番号を示す値が登録される。一方、論理記憶装置408が副論理記憶装置に指定されていれば、副側エントリ1411には0の値が登録され、対応する正側エントリ1412にはペアとなる正論理記憶装置の番号を示す情報が登録される。
また、論理記憶装置408が正副論理記憶装置として指定されていない場合には、正側エントリ1411及び副側エントリ1412の双方に無意味な値を示す「−1」が登録される。また、論理記憶装置408がスナップショットペア450のカスケード構成の真ん中、すなわち、一つのペアの副論理記憶装置でもあり、同時に他のペアの正論理記憶装置である場合は、正側エントリ1411、副側エントリ1412双方にペアを形成する他方の論理記憶装置408の番号を示す情報が登録される。また、正側エントリ1411、副側エントリ1412に複数の論理記憶装置番号が登録される場合もある。
図14は、ジャーナル管理情報418の一例を示した図である。
ジャーナル管理情報418は、テーブル1500及びCP情報を管理するためのジャーナル管理テーブル1520を有する。テーブル1500は、CPIDを格納するエントリ1501、エントリ1501に格納されたCPIDが記録されたジャーナルデータが格納された位置を示すアドレスが登録される1502及びエントリ1501に格納されたCPIDがジャーナル論理記憶装置に記録された時間を示す時間情報1503とを有する。また、ジャーナル管理テーブル1520は、デバイス番号を登録するエントリ1521ごとに、CPIDを登録するエントリ1522及びチェックポイント管理テーブルの格納アドレスを登録するエントリ1523を有する。
次に、第二の実施形態として、ホスト1ではなく、管理端末3と記憶装置システム2との間でCP情報を共有し、記憶装置システム2に障害が起きた場合のデータのリカバリを行う場合について述べる。
本実施形態では、ホスト1が記憶装置システム2との間のログやチェックポイントを管理するプログラム、例えばDBMS501を有しない場合に、ホスト1にエージェントというプログラムを導入する。以下エージェントが導入されたホストをホスト1’と称する。
図22は、ホスト1’が有するプログラムの構成を例示した図である。ホスト1と異なる点は、DBMS501が存在せず、替わりにAgentプログラム2200が含まれている点である。Agentプログラム2200は、モード情報2210、FS Agent820、I/O制御プログラム2230、チェックポイントAgent2250、VM Agent2240、及び構成管理Agent2260から構成されている。
モード情報2210には、ホスト1’が管理端末3から受信した、スナップショットを取る時期やジャーナルデータを取る期間の状態が、モード情報として保持されている。FS Agent2220は、FS530に対してファイルの排他制御やファイルを閉じる処理を指示し、かつFS530が管理するダーティデータをメモリ21のアドレスとして管理する際に実行される。
VM Agent2240は、VM540に対して、VM540で設定される論理記憶領域への読み出し/書き込みの可否を制御し、かつVM540が管理するダーティデータをメモリ21のアドレスとして管理するために実行される。
I/O制御プログラム2230は、ホスト1’が、記憶装置システム2に強制的にダーティデータを転送する処理を行う際に実行される。構成管理Agent2260は、記憶装置システム2がホスト1’に提供する論理記憶装置408とVM540が構成する論理記憶領域との対応関係、及びVM540が構成する論理記憶領域とFSが構成する論理記憶領域との関係を管理する際に実行される。
チェックポイントAgent2250は、管理端末3からチェックポイントについて指示された際に、ホスト1’が、モード情報2210の設定、FS Agent2220、VM Agent2240、及びI/O制御プログラム2230等に所定の動作を指示する際に実行される。
ホスト1’は、管理端末3からの指示により、エージェントプログラム2200を実行して、ホスト1’のメモリ21に存在するダーティデータを記憶装置システム2に送信する。一方、ホスト1’からのダーティデータの送信に合わせて、管理端末3は、チェックポイントコマンドを記憶装置システム2に送る。記憶装置システム2は、ホスト1’から送信されたダーティデータを処理する。記憶装置システム2は、また、管理端末3から送信されたCP情報を、第一の実施形態で説明したホスト1から送信されたCP情報と同様に扱って、自システム2内で管理する。このようにすることで、正論理記憶装置に論理的な障害が発生した際に、ホスト1にチェックポイント作成等の機能が無い場合でも、管理端末3からCPIDを指示することで記憶装置システム2側で管理しているチェックポイントまで高速にリストアを行い、システムの迅速な復旧を実現する。
図15は、管理端末3の詳細な構成を示した図である。尚、本構成は、他の実施形態で使用されてもよい。
管理端末3は、プロセッサ1601、電気的に不揮発なメモリ1602、ネットワークI/F1605、入力部1604及び表示部1603とを有する。また、各々の構成部品は、データや制御命令等を伝送する伝送路1612で接続されている。
プロセッサ1601は、管理端末3が有するプログラムを実行する。メモリ1602には、プロセッサ1601が実行するプログラムおよびそのプログラムが使用する情報等が格納される。例えば、表示部制御プログラム1610、入力部制御プログラム1611、記憶装置システム2の構成を管理する記憶装置制御情報1606、記憶装置制御情報1606に登録された情報を使用して記憶装置システム2を制御・管理するための記憶装置管理プログラム1607、記憶装置システム2に送信したCP情報が含まれるシステム確定情報1608、及びシステム確定情報1608に登録された情報を用いて記憶装置システム2の状態を所定の時点に復旧する等の制御処理等を行うためのシステム状態管理プログラム1609等がメモリ1602に登録される。
ネットワークI/F1605はネットワーク5に接続されている。管理端末3は、ネットワーク5を介して記憶装置システム2のシステム構成、例えばデバイス管理情報410、ペア管理情報412及びジャーナル管理情報418を取得する。又、管理端末3は、ネットワーク5を介して、構成定義処理(例えばParity Group407に論理記憶装置408を定義し、記憶装置システム2内部の論理記憶装置番号を割り振ることや論理記憶装置408をホスト1’に使用可能にするためにパスを定義してホスト1’が使用する論理記憶装置番号を割り振ること)をしたり、記憶装置システム2のリストア処理の実行を制御したりする。
また、記憶装置システム2のユーザ又は管理者は、入力部1604及び表示部1603を使用して、記憶装置システム2の保守/管理やリストア処理の指示等を行う。
図16は、メモリ1602に格納されるシステム確定情報1608の一例を示す図である。管理端末3は、ホスト1’の状態が確定する時点を記憶装置システム2に指示する際に、管理端末3自身で記憶装置システム2に指示した内容をシステム確定情報1608としてメモリ1602に記録する。システム確定情報1608は、システムの状態が確定する時点のCPIDを登録するエントリ1701、論理記憶装置を示す番号が登録されるエントリ1702及びシステムの状態が確定する時点の時間を登録するエントリ1703を有する。
図17は、表示部1603における表示の一例を示す図である。本図では、表示部1603に、図16に示したシステム確定情報1608の内容がGUIを用いて表示されたものを例示している。このように、表示部1603は、システム状態が確定された時間を複数表示し、表示された複数の時間からユーザがある時間を選択したことを表示することができる。これにより、ユーザの利便性が向上する。
具体的には、表示部1603は、管理情報を表示する領域1802を有する。その領域1802には、論理記憶装置番号を表示する領域1803及び領域1803に表示された論理記憶装置408の状態を確定した時間が表示される領域1804が含まれる。ユーザは、マウス等で操作可能なポインタ1805で、表示された論理記憶装置408について、チェックポイントコマンドによって状態が確定された時間を指定することができる。
又、ユーザは、ある論理記憶装置408に障害が起きた場合、記憶装置システム2に対して、管理端末3のGUI1603を介してリストア処理の指示を行う。例えば、本図では、領域1803に表示された論理記憶装置408の内容を、領域1804で示された時刻中、2002年5月5日14:00の時点にリストアするための指示例を示している。ユーザは、ポインタ1805を用いて2002年5月5日14:00を示す領域1804を選択し、それを領域1803へDrag&Drop等を行うことで、論理記憶装置408のリストア時刻を指示する。
管理端末3は、ユーザによって指定された論理記憶装置408及びリストア時間に基づいて、図16に示されたシステム確定情報1608を検索し、リストアに使用するチェックポイントを特定する。その後、管理端末3は、記憶装置システム2に、検索の結果得られたCP情報をリストアコマンドを用いて送信する。
図18は、ユーザが、管理端末3を介してジャーナルデータ開始準備処理を情報処理システムに指示する処理の流れを示した図である。
まず、ユーザは、管理端末3の表示部1603及び入力部1604を用いて、ジャーナルデータを取得すべき対象となる正論理記憶装置や副論理記憶装置を指定する。管理端末3は、ユーザの指定に基づいて、ジャーナル取得準備指示コマンドを記憶装置システム2にネットワーク5を介し送信する。ジャーナル取得開始準備指示には、ユーザが指定した正論理記憶装置を示す識別子、当該正論理記憶装置と対になる副論理記憶装置を示す識別子、ジャーナル論理記憶装置を示す識別子が含まれる(ステップ1901)。
ジャーナル準備処理指示を受領した記憶装置システム2は(ステップ1961)、ジャーナル準備処理を実行する。本処理は、図6のステップ602〜ステップ606で説明された処理と同様の処理である(ステップ1962)。ジャーナル準備処理を終了した記憶装置システム2は、ネットワーク5を介して、管理端末3に終了報告を送信する(ステップ1963)。
完了報告を受信した管理端末3は(ステップ1902)、ホスト1’にジャーナル開始モード指示のコマンドをネットワーク5を介して送信する(1903)。
ジャーナル開始モード指示のコマンドを受領したホスト1’は、Agent800を実行することで、ジャーナルデータ取得の対象となる正論理記憶装置に対応するモード情報810をジャーナル開始モードに設定する。更に、ホスト1’は、ジャーナル開始モードに設定された正論理記憶装置に格納されるべきダーティデータを確定するために、ファイルの使用を終了する。尚、ジャーナル開始モード中は、ジャーナル開始モードを設定された正論理記憶装置に関連する記憶領域は書き込み禁止となる(ステップ1921)。
次にホスト1’は、FSが管理するメモリ21に格納されたダーティデータをすべて記憶装置システム2に送信するため、記憶装置システム2にライトI/O処理要求を出す(ステップ1922)。
ホスト1’からライトI/O処理要求を受け付けた記憶装置システム2は、ユーザが指定した正論理記憶装置への書き込み処理であれば、ジャーナル作成処理を行う。処理が終了すると、記憶装置システム2は、ホスト1’へ完了を報告する(ステップ1965)。
完了の報告を受取ったホスト1’は、FSが管理する全ダーティデータを記憶装置システム2に書き込んだかどうかを判断する(ステップ1923)。全ダーティデータの書き込みが完了していない場合、ホスト1’は、ステップ1922から処理を繰り返す。全ダーティデータの書き込みが終了した場合、ホスト1’は管理端末3に、完了報告をネットワーク5を介し送信する(ステップ1925)。
ダーティデータのライト完了報告を受領した管理端末3は、記憶装置システム2に対しチェックポイントコマンドを発行するとともに、システム確定情報1608の更新を行う。具体的には、管理端末3は、ジャーナルデータを取得する論理記憶装置408を指定するデバイス番号に対応するエントリに、送信したCPIDと送信した時間を記録する(1905)。
チェックポイントコマンドを受領した記憶装置システム2は(ステップ1966)、受領したチェックポイントコマンド中のCPIDをジャーナルデータとしてジャーナル論理記憶装置に記録する(ステップ1967)。記録が完了したら、記憶装置システム2は、完了報告を管理端末3にネットワーク5を介し送信する(ステップ1968)。
完了報告を受領した管理端末3は(1906)、ホスト1’に対してジャーナル開始モード解除指示をネットワーク5を介し送信する(ステップ1907)。ジャーナル開始モード解除指示を受領したホスト1’は、ステップ1921で設定された、正論理記憶装置に対応するモード情報810のジャーナル開始モードを解除する。その後、ホスト1’は、正論理記憶装置に対応する記憶領域への書き込み禁止も解除する(ステップ1927)。
その後、ユーザは、管理端末3を用いて、所定のタイミングでジャーナルモード開始指示をホスト1’及び記憶装置システム2に送信する。ジャーナルモード開始指示を受信したホスト1’は、指示で指定される正論理記憶装置に対応するモード情報810にジャーナルモードを設定する。一方、ジャーナルモード開始指示を受信した記憶装置システムは、先に指定されたジャーナル論理記憶装置にジャーナルデータの記録を開始する。
図19は、ジャーナルデータを取得している正論理記憶装置の内容を後にリストアできるように、ユーザの指示等に基づいて、ホスト1’の替わりに管理端末3がチェックポイントコマンドを記憶装置システム2に送信し、記憶装置システム2と管理端末3双方で一意のCPIDを格納する際の処理手順を示した図である。
管理端末3は、ユーザの指示もしくは管理端末3自身のプログラムの実行に基づいて、チェックポイントモード指示をホスト1’にネットワーク5を介し送信する。チェックポイントモード指示には、チェックポイント取得の対象となる論理記憶装置408を示す番号が含まれている(ステップ2001)。
チェックポイントモード指示を受け取ったホスト1’は、Agentプログラム800を実行して、指示に含まれる論理記憶装置の番号及びモード情報810に登録された情報とを参照し、指示された論理記憶装置408がジャーナルモードであることを確認する。指示された論理記憶装置408がジャーナルモードである場合、ホスト1’は、メモリ21にあるダーティデータを記憶装置システム2へ強制的に転送する。
具体的には、ホスト1’は、構成定義AgentFS Agent2220を実行して、指定された論理記憶装置408を使用しているファイルが使用されているかを確認する。その後、ホスト1’は、FS Agent820を実行して、使用しているファイルを終了する又は使用しているファイルへの書き込み要求が実行されないようにする。その後、ホスト1’は、メモリ21に格納されたダーティデータの転送を要求するライトI/O処理要求を記憶装置システム2に送信する。尚、ホスト1’がVMを使用している場合は、ホスト1’は、上述と同様の処理を、VM Agent2240を実行して行う(ステップ2022)。
ライトI/O処理要求を受けた記憶装置システム2は、図7で説明したフローに従って、ジャーナルデータをジャーナル論理記憶装置に格納する処理を行う(ステップ2061、ステップ2062)。
ジャーナル作成の完了を受信したホスト1’は、全てのダーティデータが記憶装置システム2に格納されたかどうかを確認する。全てのダーティデータが記憶装置システム2に格納されていない場合、ホスト1’は、ステップ2022からの処理を繰り返す(ステップ2023)。
全てのダーティデータが記憶装置システム2に格納されたと確認した場合、ホスト1’は、管理端末3に、チェックポイントモード指示に対する応答メッセージとしてダーティデータのライト完了報告を送信する(ステップ2025)。
ライト完了報告を受領した管理端末3(ステップ2002)は、記憶装置システム2に対し、チェックポイントコマンドを発行するとともに、システム確定情報1608の更新を行い、処理対象である論理記憶装置を示すデバイス番号に対応するエントリに、送信したCPIDと送信した時間を記録する(ステップ2003)。
チェックポイントコマンドを受領した記憶装置システム2は(ステップ2063)、受領したチェックポイントコマンドに含まれるCPIDをジャーナルデータとして記録する(ステップ2064)。その後、記憶装置システム2は、完了報告を管理端末3にネットワーク5を介し送信する(ステップ2065)。
完了報告を受領した管理端末3は、ホスト1’に対して、チェックポイントモード解除指示をネットワーク5を介し送信する(ステップ2004)。
チェックポイントモード解除指示を受領したホスト1’は、ステップ2021でチェックポイントモードを設定された論理記憶装置408に対応するモード情報810に登録されたチェックポイントモードを解除する(ステップ2026)。その後、ホスト1’は、ファイルへの書き込みを再開するか、ファイルを使用可能状態とする(ステップ2027)。
図21は、ユーザが、管理端末3を介して、記憶装置システム2へリストア指示を出す際の処理手順を示す図である。本実施形態では、スナップショットペア450が既に形成され、副論理記憶装置に正論理記憶装置のスナップショットが取得されていて、ジャーナル論理記憶装置には、副論理記憶装置にスナップショットをとる時点より後もしくは前後のジャーナルデータが格納されているものとする。
この場合において、正論理記憶装置を使用していたホスト1’のAPが、使用しているファイルに誤った編集をした等の理由で、バックアップデータに基づくリストアが必要になった場合を考える。
まず、ユーザは、図17で説明したように、管理端末3の入力部1604及び表示部1603を用いて、リストアの対象となる論理記憶装置408及びどの時点までリストアを行うかを指示する(ステップ2101)。
ユーザの指示を受けた管理端末3は、ユーザが画面上で指定した入力情報が、システム確定情報1608のどのエントリに登録された情報と一致するかを判断し、一致したエントリに登録されているCPIDを決定する(ステップ2102)。その後、管理端末3は、リストアを行う論理記憶装置408を示す識別子(番号)及びCPIDを含むリストアコマンドを、記憶装置システム2に送信する(ステップ2103)。
管理端末3からリストアコマンドを受信した記憶装置システム2は、指定された論理記憶装置408について、図11で説明したリストア処理を実行する。その後、リストア処理完了報告を管理端末3に送信する(ステップ2104)。完了報告を受領した管理端末3は、記憶装置制御情報1606を更新する(ステップ2105)。
本実施形態によれば、第一の実施形態と比較し、ホスト1’がCP情報を管理することが無いので、その分ホスト1’の負荷を低減することが出来る。また、ホスト1等がチェックポイント作成機能を有さない場合でも、CP情報を用いたリストア処理を行うことが出来る。
尚、本実施形態では、管理端末3から記憶装置システム2に対してチェックポイントコマンドを発行する前に、管理端末3は、ホスト1’に格納されているダーティデータを記憶装置システム2に反映させるために、ホスト1’に対してダーティデータをフラッシュさせる指示(ジャーナルモード開始指示、チェックポイントモード指示)を送信した。しかし、この場合、上述したように、ホスト1’にエージェントというプログラムを用意しなければならない。したがって、全てのホスト1’にエージェントを用意するのが困難な場合、本実施形態は採用しづらい。そこで、ホスト1’に存在するダーティデータを無視し、管理端末3と記憶装置システム2のみでジャーナルモードの設定、CP情報の遣り取り及びリストア処理の実行を行う第三の実施形態を考える。
本実施形態は、第二の実施形態と以下の点で異なる。すなわち、図18において、ジャーナル作成準備処理の完了を報告された管理端末3(ステップ1902)は、ステップ1903の処理を行わずに、直接記憶装置システム2に対してチェックポイントコマンドを送付するステップ1904の処理を行う。記憶装置システム2では、受信したチェックポイントコマンドに従って、ステップ1966以降の処理を行う。
また、図19においては、管理端末3は、ステップ2001のチェックポイントモード指定をホスト1’に送信せず、直接チェックポイントコマンドを記憶装置システム2に送信する(ステップ2003)。チェックポイントコマンドを受信した記憶装置システム2は、ステップ2063以降の処理を行う。
尚、本実施形態で使用されるホストは、ホスト1のようにDBのログを有する計算機でも、ホスト1’のようにエージェントを有する計算機でも、あるいは、何ら特別なプログラムを有さない通常の計算機でも良い。他の構成及び処理、例えばリストア処理等は、第二の実施形態と同様である。
本実施形態によれば、ホストの種別に関わらず、管理端末3及び記憶装置システム2との遣り取りだけで、記憶装置システム2の記憶装置を、任意のシステム状態までにリストアすることができる。