(57)【特許請求の範囲】
【請求項１】
複数の記憶装置を有する記憶装置システムと、
前記記憶装置システムと接続された第一の計算機と、前記記憶装置システムに接続された第二の計算機と、前記記憶装置システムに接続された第二の記憶装置システムとを有する情報処理システムであって、
前記記憶装置システムは、
前記第一の計算機から入力されるデータを前記複数の記憶装置のうちの第一の記憶装置及び第二の記憶装置に記憶する二重化記憶手段と、
前記第二の計算機から入力される信号に応答して、前記二重化記憶手段を停止する手段と、前記第一の記憶装置に記憶されたデータを該記憶記憶装置システムが有する第三の記憶装置に複製する複製手段とを有し、
前記第二の計算機は、
前記記憶装置システムに対して、前記第三の記憶装置を指定する指定手段を有し、
前記記憶装置システムは、
前記指定手段によって指定された前記第三の記憶装置に関する情報を保持する情報保持手段を有し、
前記複製手段は、
前記情報保持手段に保持された前記情報に基づいて、前記第三の記憶装置に前記第一の記憶装置に記憶されたデータを複製し、
前記第二の記憶装置システムは複数の記憶装置を有し、
前記指定手段は、前記第二の記憶装置システムが有する第四の記憶装置を指定し、
前記複製手段は、前記指定手段で指定される前記第四の記憶装置に前記第一の記憶装置からデータを複製することを特徴とする情報処理システム。
【請求項２】
前記記憶装置システム及び前記第二の記憶装置システムとに接続され、
前記指定手段によって指定される前記第四の記憶装置に関する情報を保持する保持手段と、
前記記憶装置システムから転送された情報を前記保持手段に保持された情報に基づいて前記第二の記憶装置システムに転送する転送手段と、
を有する外部モジュールを有することを特徴とする請求項１記載の情報処理システム。
【請求項３】
複数の記憶装置を有する記憶装置システムと、
前記記憶装置システムと接続された第一の計算機、及び前記記憶装置システムに接続された第二の計算機を有する情報処理システムであって、
前記第二の計算機は、
前記記憶装置システムに対して、第三及び第四の記憶装置を指定する指定手段と、
前記第三及び第四の記憶装置に共通する第一の符号を生成する生成手段とを有し、
前記記憶装置システムは、
第二の符号を格納する格納手段と、
前記第一の計算機から入力されるデータを前記複数の記憶装置のうちの第一の記憶装置及び第二の記憶装置に記憶する二重化記憶手段と、
前記第二の計算機から入力される信号に応答して、前記二重化記憶手段を停止する手段と、
前記指定手段によって指定された前記第三及び第四の記憶装置に関する情報及び前記第一の符号の情報を保持する情報保持手段と、
前記第一の記憶装置に記憶されたデータを、前記格納手段に格納された第二の符号及び前記情報保持手段に格納された前記第一の符号が同一である場合のみ、前記第三及び第四の記憶装置に複製する複製手段とを有することを特徴とする情報処理システム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データの複製を行うコンピュータシステム及びデータ複製の方法に関する。
【０００２】
【従来の技術】
コンピュータシステムが有するデータに対して複数の異なる処理が行われる場合、処理対象となるデータが、記憶装置システムが有する複数の記憶装置に複製され、各々の記憶装置の同一内容のデータに対して、異なる処理が行われることがある。また、一つの処理を複数のコンピュータで並列に行う場合、処理の対象となるデータを複数の記憶装置に複製して、アクセス先を複数にする。このようにして、コンピュータシステムにおけるデータへのアクセスの負荷を分散し、システムの処理の高速化を図ることが実用化されている。
【０００３】
２４時間連続して処理を行うシステムでは、システムで使用されるアプリケーションプログラム（ＡＰ）の実行を中断しないでデータの複製を行う必要がある。このような場合、従来は、通常のシステム運用時に複数の記憶装置に同じデータを書き込むことにより、データをあらかじめ多重化（ミラーリング）しておくという技術が使用されてきた。尚、本明細書において、記憶装置とは、物理的な記憶装置及び論理的な記憶装置（Logical Unit：LU）の両方が含まれる。
【０００４】
ミラーリングされたデータが格納された複数の記憶装置の個々を別々の処理に利用する際は、ミラーリングが中止されることにより、個々の記憶装置を独立して利用可能な状態とする。個々の記憶装置に対する独立した処理が終了すると、個々の記憶装置の内容が一致するように、一方の記憶装置のデータを他方の記憶装置へコピーする（以下、「同期を取る」と言う）。
【０００５】
このようなデータの多重化は、従来は、ＡＰが実行されているコンピュータであるサーバ上のソフトウェアや、サーバに接続された記憶装置システムが備えているデータ多重化機能によって実現されていた。
【０００６】
【発明が解決しようとする課題】
従来のデータの多重化の方法では、ミラーリングが行われる記憶装置の数が多い場合には、データを多重化するサーバ、又は記憶装置を有する記憶装置システムに負荷がかかる。したがって、コンピュータシステムの処理能力の多くがミラーリングの処理に使用されることとなり、コンピュータシステムで実行されるＡＰの処理速度が低下する。
【０００７】
また、一方の記憶装置の内容を常に他方の記憶装置に同期させる必要があるため、新たな記憶装置が追加される場合や、複製された記憶装置の論理的な位置が変更される場合には、対象となるデータを新たに追加された記憶装置又は位置が変更された記憶装置に複製する必要がある。
【０００８】
さらに、ミラーリングされる記憶装置の数が増加すると、複製領域の管理が複雑となる。この場合、複製されるべきではない記憶装置に誤ってデータが複製されてしまい、データの破壊を引き起こす可能性もある。
【０００９】
本発明の第一の目的は、データの複製を多数作成する場合にも、複製時にコンピュータシステムで実行されているＡＰの処理速度の低下を防ぐコンピュータシステムを提供することである。
【００１０】
本発明の第二の目的は、新たなデータの複製処理を伴わずに、複製先の記憶装置の追加、及び記憶装置の論理的な位置を変更することができるコンピュータシステムを提供することである。
【００１１】
本発明の第三の目的は、誤った記憶装置にデータの複製を作成することによるデータ破壊を防止するコンピュータシステムを提供することである。
【００１２】
【課題を解決するための手段】
上記目的を達成するために、本発明は、ＡＰから記憶装置システムに転送されるデータを、記憶装置システム内で２つの記憶装置にミラーリングして書き込む。複製を作成する際は、記憶装置システムは、計算機システムからの指示に応じてミラーリングを中断して1つの記憶装置へのアクセスを停止し、アクセスが停止された記憶ブロックの内容を複製先となる記憶ブロックにコピーする。コピーが終了したら、記憶装置システムは、中断していたデータ書き込みのミラーリングを再開し、２つの記憶装置の内容を一致させるという構成とする。
【００１３】
また、複製先の記憶装置を定義する際に、記憶装置が複製先であることを示すマークを複製先の記憶装置を定義する情報に記録し、実際にデータのコピーを開始する前に複製元の記憶装置システムが、その定義情報に含まれるマークを確認して複製を行う構成も考えられる。
【００１４】
さらに、複数の記憶装置システムに複製を作成する場合は、データをあらかじめ定義された複数のコピー先に書き込む機能を持つコピーモジュールを用いる構成とすることもできる。複製元の記憶装置システムは、異なる記憶装置システムの記憶装置に複製を作成する場合、データをコピーモジュールに転送し、コピーモジュールが複数の記憶装置にデータをコピーする構成も考えられる。
【００１５】
【発明の実施の形態】
図１は、本発明を適用した計算機システムの第一の実施形態の構成を示す図である。
【００１６】
本計算機システムは、データベースサーバ１１０、管理コンソール１００、データウエアハウスサーバ１２０、バックアップサーバ１３０、ＦＣハブ１４０、ディスクアレイ１６０、及びディスクアレイ１８０を有する。尚、管理コンソール１００は独立した計算機ではなく、データベースサーバ１１０等がその役目を果たしても良い。
【００１７】
データベースサーバ１１０、データウェアハウスサーバ１２０、及びバックアップサーバ１３０は、各々ＦＣインタフェース１１４、１２２、１３２を有し、ＦＣケーブル１４１〜１４５、及びＦＣハブ１４０を介してそれぞれディスクアレイ１６０及びディスクアレイ１８０と接続される。
【００１８】
管理コンソール１００、データベースサーバ１１０、ディスクアレイ１６０及びディスクアレイ１８０は、各々Local Area Network（以下「LAN」と称する。）インタフェース１０３、１１３、１６４、１８２を有し、LAN１５０を介して相互に接続される。LAN１５０は、システムが動作するために必要な制御情報の伝達に使用される。
【００１９】
管理コンソール１００には、ディスクアレイ管理プログラム１０２及びデータベース連携プログラム１０１が格納されている。
【００２０】
ディスクアレイ管理プログラム１０２は、ディスクアレイ１６０及び１８０の動作を制御するプログラムである。ディスクアレイ管理プログラム１０２は、管理コンソール１００が有する操作盤等のインタフェースから入力されるユーザの指示に基づいて、LAN１５０を介してディスクアレイ１６０等と制御情報の送受信を行い、ディスクアレイ１６０等内部の情報の取得や動作の指示を行う。ディスクアレイ管理プログラム１０２は、データベース連携プログラム１０１を起動する機能を有する。
【００２１】
データベース連携プログラム１０１は、LAN１５０を介し、データベースサーバ１１０内のデータベース制御プログラム１１１にプログラムの実行開始の指示等を送信する。
【００２２】
データベースサーバ１１０には、データベース制御プログラム１１１及びデータベースシステム１１２が格納されている。
データベース制御プログラム１１１は、データベース連携プログラム１０１の指示に基づいて、データベースシステム１１２の動作を制御する。制御の内容には、データベースサーバ１１０のバッファ内にあるデータをディスクアレイ１６０に書き込む（以下「フラッシュする」と称する。）こと、データベースをバックアップモードにする等の、データの複製を行う際に必要なデータベースシステム固有の動作が含まれる。
【００２３】
データベースシステム１１２は、ディスクアレイ１６０内の論理的な記憶装置であるＬＵ１９０に格納されたデータへのアクセスを制御する。データベースシステム１１２は、２４時間無停止で動作する。
【００２４】
データウェアハウスサーバ１２２には、データウエアハウスシステム１２１が格納される。データウェアハウスシステム１２１は、システムに割り当てられたＬＵに格納されたデータへのアクセスを制御する。本実施形態では、ディスクアレイ１６０内のＬＵ１９２に保持されたデータへのアクセスを制御する。
【００２５】
バックアップサーバ１３０には、バックアッププログラム１３１が格納される。バックアッププログラム１３１は、バックアップ用のＬＵに保持されたデータへのアクセスを制御する。本実施形態では、ディスクアレイ１８０内のＬＵ１９３をバックアップ用のＬＵとする。
【００２６】
ディスクアレイ１６０は、演算処理部（ＣＰＵ）１６３、メモリ１７０、ディスクコントローラ１６５、ディスク１６６〜１６８、ＦＣインターフェース１６１、及びＬＡＮインターフェース１６４を有する。又、ディスクアレイ１６０は、ＬＵ１９０〜１９３を有する。ＬＵは、実際には、ディスク１６６〜１６８内で分散した記憶領域で構成されていても良い。本実施形態においては、一つのディスクの中に一つのＬＵが割り当てられているとする。
【００２７】
ＣＰＵ１６３は、LANインタフェース１６４、ＦＣインタフェース１６１、及びディスクコントローラ１６５を制御する。ＣＰＵ１６３は、メモリ１７０に記憶されたプログラムを実行する。ディスクコントローラ１６５は、ディスク１６６等の動作、特にディスク１６６等へのデータの読み書きの制御を行う。
【００２８】
メモリ１７０には、ＬＵミラープログラム１７１、ＬＵ管理表１７２、ＬＵ複製プログラム１７３、複製管理表１７４、及び装置ＩＤ１７５が格納される。ＬＵミラープログラム１７１は、ＬＵのミラーリングを実行するためのプログラムである。具体的には、ＬＵ管理表１７２に記録された内容に基づいて、ＬＵへ書き込まれるデータを異なるＬＵにミラーリングする処理、ユーザからの指示に基づいてミラーリングを停止する処理、ミラーリングを再開し２つのＬＵの内容を一致させる処理等をディスクコントローラ１６５が実行するためのプログラムである。
【００２９】
ＬＵ管理表１７２には、システム全体に存在するＬＵに与えられるＬＵ番号、ＬＵの記憶容量、ミラー先となるＬＵの情報、二重化動作中のディスクアレイ状態など、ディスクアレイのＬＵ管理に必要な情報が記録される。
【００３０】
ＬＵ複製プログラム１７３は、ユーザからの指示及び複製管理表１７４に記録された内容に基づいて、複製元となるＬＵ（複製元ＬＵ）の内容を複製先となるＬＵ（複製先ＬＵ）に複製する処理をディスクコントローラ１６５に実行させるプログラムである。複製管理表１７４には、ディスクアレイ１６０内におけるＬＵの複製状況が記録される。装置ＩＤ１７５には、各ディスクアレイに一意に与えられたＩＤの情報が格納される。
【００３１】
ディスクアレイ１８０は、ＣＰＵ１８３、メモリ１８４、ディスクコントローラ１８５、ディスク１８６、ＦＣインターフェース１８１、及びＬＡＮインターフェース１８２を有する。又、ディスクアレイ１８０は、ＬＵ１９３を有する。ディスクアレイ１８０のメモリ１８４に格納されるプログラムは、ディスクアレイ１６０と同様なので、説明は省略する。
【００３２】
本実施形態では、データベースシステム１１２がアクセスするＬＵ１９０に記録されたデータが、ＬＵ１９２及びディスクアレイ１８０のＬＵ１９３に複製される例を説明する。
前提として、ＬＵ１９０に記録されたデータは、ＬＵミラープログラム１７１によって、ＬＵ１９１にミラーリングされているとする。
【００３３】
データの複製を行う前に、複製元ＬＵ１９０を有するディスクアレイ１６０のメモリ１７０に記録された複製管理表１７４に、複製先となるＬＵのグループ(複製先ＬＵグループ：この場合はＬＵ１９２及びＬＵ１９３)が設定される。
【００３４】
図２は、複製管理表１７４の設定エントリを示す図である。グループＩＤエントリ３００には、複製先ＬＵグループに含まれるＬＵ(この場合、ＬＵ１９２及びＬＵ１９３)に一意に指定されるＩＤの情報が格納される。複製先ＬＵグループの設定や複製の作成等の処理を行う場合、処理の対象となる複製先ＬＵグループの特定は、すべてグループＩＤによって行われる。
【００３５】
グループ状態エントリ３０１には、処理の対象となる複製先ＬＵグループについて、複製処理が実行されている状態であることを示す「コピー中」、又は複製処理が行われていない状態であることを示す「通常」のどちらかの情報が保持される。複製元ＬＵエントリ３０２には、複製元ＬＵ（ここではＬＵ１９０）の情報が保持される。コピー位置エントリ３０３には、複製作成中のある時点で複製元ＬＵ内のどの位置のデータをコピー中かという情報が、例えばLBA(Logical Block Address)形式で保持されている。
【００３６】
複製先ＬＵエントリ３０４には、種別、ＦＣインタフェース(FC I/F)、ＬＵ番号(ＬＵＮ)、状態といった情報が記録される。種別とは、複製先ＬＵが複製元ＬＵと同じディスクアレイ内にあるか否かを示す情報である。ここでは、「ローカル」が同一ディスクアレイ内にある場合を指し（本実施形態ではＬＵ１９２）、それ以外の場合は「リモート」で現される（本実施形態ではＬＵ１９３）。
【００３７】
FC I/Fは、複製先ＬＵの種別が「リモート」の場合に、複製先ＬＵへのアクセスパスとなる複製元及び複製先ディスクアレイが有するFCインターフェースに割り当てられているWorld Wide Nameを表す。ＬＵＮは、複製先ＬＵに一意に指定される番号であるＬＵ番号を示す。状態は、ＬＵがアクセス可能か否かを示す情報である。アクセス可能であれば「通常」、そうでなければ「エラー」という情報が、状態を保持するエントリに格納される。複製先ＬＵエントリ３０４は、複数設定することができる。
【００３８】
複製先ＬＵを設定する場合、ユーザは、ディスクアレイ管理プログラム１０２を介して、複製を作成したいディスクアレイ（ここでは、ディスクアレイ１６０及び１８０）に指示を送り、ディスクアレイのＬＵ管理表１７２に登録されたＬＵのリスト及び装置ＩＤを取得する。
【００３９】
ユーザは、取得したＬＵのリストの中から、複製先とするＬＵを選択（ここではＬＵ１９２及びＬＵ１９３）する。ユーザは、ＬＵＮ及び装置ＩＤのペアからなるすべての複製先ＬＵの情報を、グループＩＤおよび複製元ＬＵのＬＵＮの情報とともに、複製グループ定義命令として複製元ディスクアレイ（ここではディスクアレイ１６０）に送る。グループＩＤは、ユーザが指定するか、ユーザが識別しやすいものをディスクアレイ管理プログラム１０２が生成する。
【００４０】
図３は、複製グループ定義命令を受信したディスクアレイ１６０の動作を示すフロー図である。以下の動作は、ＬＵ複製プログラム１７３に従って、ＣＰＵ１６３によって実行される。
【００４１】
命令を受信したディスクアレイ１６０のＣＰＵ１６３は、指定されたグループＩＤが複製管理表１７４内の既存のグループＩＤと重複していないかを確認する(２０１)。ＣＰＵ１６３は、複製元ＬＵとして指定されたＬＵＮが、ディスクアレイ１６０に存在するか調べる(２０２)。グループＩＤが重複する、又は指定されたＬＵが存在しない場合、ＣＰＵ１６３は、定義エラーとして管理コンソール１００にステータスを返信し、処理を終了する。
【００４２】
定義エラーがない場合、ＣＰＵ１６３は、ディスクアレイ１６０が有するFCインタフェース１６１等からアクセス可能な全てのＬＵについて、ＬＵが属する装置の装置ＩＤを取得する。装置ＩＤを取得するために、ＣＰＵ１６３は、FCインタフェース１６１を介して各ＬＵに対して装置ＩＤ取得のためのModeSense SCSIコマンドを発行する。ModeSenseコマンドを受信したディスクアレイ１８０等のＬＵ複製プログラム１７３は、あらかじめ定義されたパラメータページで装置ＩＤを返信する(２０３、２０４)。
【００４３】
装置ＩＤを取得したＣＰＵ１６３は、複製管理表１７４に新たな複製先ＬＵグループのエントリを作成する。最初は、グループ状態エントリは「通常」と設定される(２０５)。ＣＰＵ１６３は、指定された複製先ＬＵを、複製管理表１７４の新たなエントリに登録する。ＣＰＵ１６３は、各複製先ＬＵについて、ＬＵの装置ＩＤが複製元の装置ＩＤと同一かどうかを比較することにより、複製先ＬＵの種別が「ローカル」か「リモート」か判断し、複製管理表１７４への登録を行う。
【００４４】
リモートであった場合には、ＣＰＵ１６３は、ステップ２０３及び２０４で得たFCインタフェース及び接続されている装置ＩＤの情報に基づき、FCインターフェースの情報を複製管理表１７４に登録する。対応するインタフェースがない場合には、ＣＰＵ１６３は、アクセス不可能なＬＵであると判断し、エラーステータスを管理コンソール１００に返信する。複製先ＬＵの初期状態は「通常」と設定される(２０６〜２０９)。全ての複製先ＬＵの登録が終わると、ＣＰＵ１６３は、ステータスを管理コンソール１００に返信して定義処理を終了する（２１０、２１１）。
【００４５】
尚、複製先ＬＵグループにＬＵが追加される場合、ディスクアレイ管理プログラム１０２からＬＵを追加する旨の指示を受けた後、ディスクアレイ１６０において、図３のステップ２０１、２０２及び２０５を省略した処理が行われる。複製先ＬＵ、又は複製先ＬＵグループ全体を削除する場合、ディスクアレイ管理プログラム１０２からＬＵを削除する旨の指示を受けた後、ＣＰＵ１６３は、グループ状態エントリが「通常」であることを確認し、複製管理表１７４から該当するエントリを削除する。
【００４６】
グループ状態エントリ３０１が「コピー中」である場合は、その複製先ＬＵグループ内でデータのコピーが行われている途中であるため、削除は実行されず、エラーステータスが返信される。複製先ＬＵの間には依存関係が存在しないため、任意の複製先ＬＵを複製先ＬＵグループから削除することができる。
【００４７】
図３に示す複製先ＬＵを設定する処理では、データベースシステム１１２は、複製先ＬＵを設定する処理に何ら関与しない。したがって、複製先ＬＵを設定する場合でも、データベースシステム１１２で実行されるＡＰの処理速度の低下を抑えることができる。
【００４８】
また、同一の複製先ＬＵを複数の複製先ＬＵグループで指定できるため、必要なＬＵの数を低減できる。例えば、ＬＵ-Ａの複製を２つ作り、ＬＵ-Ｂの複製を２つ作る場合、従来の方法では４つの複製先ＬＵが必要であるが、それぞれの複製を作成・利用する時間帯が重ならない場合には、複製管理表１７４の設定を変更することによって、複製先として同じ２つのＬＵを利用できる。
【００４９】
さらに、同じ複製元ＬＵと異なる複製先ＬＵを持つ複製先ＬＵグループをあらかじめ複数定義しておき、複製作成時に複製先ＬＵの位置を選択することも可能である。
【００５０】
複製先ＬＵグループが指定された後、実際に複製が作成されるときは、データベース連携プログラム１０１が、LANを介してデータベース制御プログラム１１１に指示を送る。データベース制御プログラム１１１は、バッファフラッシュやバックアップモードへの移行などのデータベースシステム１１２の前処理を行う。
【００５１】
その後、ユーザは、ディスクアレイ管理プログラム１０２を介して、複製元ＬＵの書き込みのミラーリングの停止をディスクアレイ１６０に指示する。
ミラーリングの停止の指示をディスクアレイ１６０に送信したディスクアレイ管理プログラム１０２は、複製を作成する複製先ＬＵグループのＩＤを含んだ複製命令を、複製元ＬＵ１９０を持つディスクアレイ１６０に送る。
【００５２】
図４は、複製命令を受信したディスクアレイ１６０の動作を示すフロー図である。本動作は、ＬＵ複製プログラム１７３に基づき、ＣＰＵ１６３によって制御される。
【００５３】
複製命令を受信したＣＰＵ１６３は、複製管理表１７４を参照し、複製命令に含まれるグループＩＤで指定された複製グループの状態が「コピー中」であるか調べる(４０１)。状態が「コピー中」、又は指定されたグループＩＤが存在しなかった場合、ＣＰＵ１６３は、エラーステータスを管理コンソール１００に返信して複製処理を終了する。
【００５４】
エラー状態ではない場合、ＣＰＵ１６３は、複製管理表１７４のグループ状態エントリの内容を「コピー中」に変更する(４０２)。ＣＰＵ１６３は、複製元ＬＵが二重化処理中でないことを、ＬＵ管理表１７２を参照して確認する(４０３)。ＣＰＵ１６３は、ＬＵ管理表１７２を参照する際に複製元ＬＵの容量を取得しておく。ＣＰＵ１６３は、複製先ＬＵの容量が複製元ＬＵ以上であることを確認する。複製先ＬＵの容量は、種別が「ローカル」の複製先ＬＵについてはＬＵ管理表１７２を参照することにより確認される。「リモート」の複製先ＬＵについては、FCインタフェース１６１等を介して、ＬＵに対してReadCapacityコマンドを発行することによりＬＵの容量を取得する(４０４)。
【００５５】
複製先ＬＵの容量が複製元よりも小さい場合、ＣＰＵ１６３は、複製管理表１７４の複製先ＬＵエントリの内容を「エラー」に変更する(４０６)。全ての複製先ＬＵエントリの状態が「エラー」となった場合、ＣＰＵ１６３は、グループ状態エントリの内容を「通常」に戻し、管理コンソール１００にエラーステータスを返信して処理を終了する(４０８、４１９、４２０)。
【００５６】
以上の処理により、ＣＰＵ１６３は、複製処理が実行可能であることを確認する。また、ここまでの処理(４０１〜４０８)のみを行う命令を定義しておけば、複製先ＬＵグループが正しく定義されていることを確認するプレビュー機能を実現することもできる。
【００５７】
ＣＰＵ１６３は、データの複製を開始する。ＣＰＵ１６３は、複製管理表１７４のコピー位置エントリ３０３のデータを、複製元ＬＵ１９０の先頭アドレスにセットする(４０９)。ＣＰＵ１６３は、ＬＵ１９０の先頭から順番にデータをコピーするよう、ディスクコントローラ１６５を制御する。具体的には、ディスクコントローラ１６５は、複製管理表１７４のコピー位置３０３に指定された位置から、あらかじめ決められた大きさのデータを読み出し、グループＩＤで指定された複製先ＬＵに書き込む(４１０)。
【００５８】
複製先ＬＵエントリ３０４の状態が「ローカル」の場合、ＣＰＵ１６３は、ディスクコントローラ１６５に書き込みを指示する。複製先ＬＵエントリ３０４の状態が「リモート」の場合、ＣＰＵ１６３は、ファイバチャネルインタフェース１６１等からSCSI Writeコマンドを発行する(４１２)。書き込みがエラーとなった場合は、ＣＰＵ１６３は、エラーとなった複製先ＬＵエントリ３０４の状態を「エラー」に変更する(４１４)。
【００５９】
ＣＰＵ１６３は、1つのコピー位置でのデータの書き込みの処理を、グループとして指定された全ての複製先ＬＵ（ここではＬＵ１９２、１９３）について繰り返すが、状態が「エラー」の複製先については書き込みを行わずに書き込み処理をスキップする(４１６)。全ての複製先にデータをコピーしたら、ＣＰＵ１６３は、コピー位置エントリ３０３のデータを、一回で書きこむデータの大きさ分インクリメントすることでコピー位置を次のデータの位置に進め(４１７)、複製元ＬＵ全体のコピーが終了するまで繰り返す(４１８)。
【００６０】
最後に、ＣＰＵ１６３は、グループの状態エントリ３０１の内容を「通常」に戻し、管理コンソール１００にステータスを返信する(４１９、４２０)。
【００６１】
複製完了を示すステータスを受信したディスクアレイ管理プログラム１０２は、ディスクアレイ１６０に複製元ＬＵのミラーリングの再開を指示する。データベース連携プログラム１０１が、バックアップモードの解除などデータベースシステムの後処理をデータベース制御プログラム１１１に指示する。指示を受けたデータウェアハウスシステム１２１及びバックアッププログラム１３１は、後処理を開始する。
【００６２】
本実施形態においては、通常のシステム運用中は、複製先ＬＵの数にかかわらず、データを少なくとも２つのＬＵに多重化するだけでよい。したがって、全ての複製先に多重化する従来の方式に比べ、ＡＰからのデータ書き込みが高速になる。また、複製を行う場合、複製先ＬＵの追加、及び変更を行う場合、ＡＰを実行しているコンピュータからのデータへのアクセスが伴わないため、ＡＰの処理速度を低下させることなく複製先ＬＵグループの編成を変更することができる。さらに、複数の異なるＬＵの複製先ＬＵとして同一のＬＵを指定できるため、複製先ＬＵとして必要な記憶装置の数を低減することができる。
【００６３】
本発明の第二の実施形態について説明する。第一の実施形態では、複製管理表１７４によって、複製先ＬＵがあらかじめ指定される。しかし、ＬＵは、独立に複製管理表１７４から削除・登録される。従って、最初に複製先ＬＵとして指定されたＬＵが削除され、削除されたＬＵに対応するＬＵＮが別のデータを持つＬＵに割り当てられた場合、複製を作成することを意図していないＬＵにデータがコピーされ、格納されていたデータが破壊されてしまう。
【００６４】
本実施形態は、誤操作によるデータ破壊を防止する仕組みを第一の実施形態に追加したものである。全体のシステム構成は図１と同様である。以下、第一の実施形態と異なる点のみ説明する。
【００６５】
第一の実施形態では、ディスクアレイ管理プログラム１０２が、ユーザの複製グループ定義命令を複製元ディスクアレイ１６０に送信した。本実施形態では、複製グループ定義命令の送信前に、ディスクアレイ管理プログラム１０２が、複製先ＬＵグループ毎にシステム全体で一意に定まる「マーク」を生成する。マークとしては、例えば「グループＩＤ ＋ 複製元ＬＵを持つディスクアレイの装置ＩＤ」のようなものを用いる。
【００６６】
ディスクアレイ管理プログラム１０２は、生成したマークを複製先ＬＵを持つ各ディスクアレイに送り、複製先ＬＵにマークを付加するよう指示する。マークを指示する命令を受信したディスクアレイは、自己のＬＵ管理表１７２に、マークを登録する。
【００６７】
図７は、本実施形態におけるＬＵ管理表１７２の内、本実施形態で使用される部分を示す図である。ＬＵ番号７００には、ＬＵを特定するためのＬＵ番号が登録される。コピー状態エントリ７０１には、ＬＵ番号７００で指定されるＬＵが複製作成処理で使用されているときには複製作成処理で用いられる複製先ＬＵグループに与えられるマークが登録される。それ以外の場合、「無し」が登録される。コピー状態エントリ７０１の初期値は「無し」である。
【００６８】
ＬＵマークエントリ７０２には、ＬＵが所属する複製先ＬＵグループに付加されたマークが登録される。ＬＵが複数の複製先ＬＵグループで複製先ＬＵとして指定された場合は、ＬＵマークエントリ７０２も各グループに対応して複数個設定される。また、本図で示される表は、ＬＵ番号の数だけ設定される。
【００６９】
ＬＵが削除される場合、削除されたＬＵが属するディスクアレイのＬＵ管理表１７２のＬＵのエントリが削除されるため、登録されていたマークも削除される。
【００７０】
複製先ＬＵのマークの作成が完了した後、ディスクアレイ管理プログラム１０２が、複製元ディスクアレイ１６０に複製グループ定義命令を送信する。その際、ディスクアレイ管理プログラム１０２が生成したマークも一緒に送信される。複製管理表１７４には、グループに割り当てられたマークを記録するためのエントリが追加されている。複製元ディスクアレイ１６０は、図２のステップ２０５の処理において、複製管理表１７４の追加されたエントリに、受信したマークを記録する。
【００７１】
複製先ＬＵグループに複製先ＬＵを追加する場合、ディスクアレイ管理プログラム１０２は、第一の実施形態と同様の操作の他に、複製先ＬＵグループに割り当てられたマークを複製元ディスクアレイ１６０の複製管理表１７４から取得する処理を行う。ディスクアレイ管理プログラム１０２は、新しい複製先ＬＵを持つディスクアレイに、該ディスクアレイが有するＬＵ管理表１７２に複製先ＬＵグループのマークを登録するよう指示する。
【００７２】
また、複製先ＬＵグループから複製先ＬＵを削除する場合は、ディスクアレイ管理プログラム１０２は、該当する複製先ＬＵを持つディスクアレイに対して、ＬＵ管理表１７２からのマークの削除を指示する。複製先ＬＵグループ全体を削除する場合は、該当するグループに含まれる全ての複製先ＬＵに対して同様の操作を行う。
【００７３】
複製を作成する処理は、第一実施形態とほぼ同様である。本実施形態においては、複製を行う前に、複製先ＬＵが定義時に意図したＬＵと同一であるか否かを、ＬＵ複製プログラム１７３がマークを用いて確認する処理が行われる。また、ＬＵ複製プログラム１７３は、複製先ＬＵが複数のコピー処理で同時に使用されていないか確認する。
【００７４】
具体的には、本実施形態では、図４のステップ４０３〜４０７の処理を、図５のように変更する。
【００７５】
ＬＵ複製プログラム１７３は、複製先ＬＵエントリの種別が「リモート」であれば、複製先ＬＵを有するディスクアレイ１８０に対し、複製先ＬＵグループのマークをパラメータページに持つあらかじめ定義されたModeSelectコマンドを発行する。ModeSelectコマンドを受信したディスクアレイ１８０は、自己のＬＵ管理表１７２を参照し、パラメータページが示すマークと同一のマークが記録されているかを確認する。また、ディスクアレイ１６０は、コピー状態エントリ７０１が「無し」であるか確認し、「無し」であればマークを記録する。そしてその結果をModeSelectコマンドのステータスとして複製元のディスクアレイ１６０に返送する（５００）。
【００７６】
ステータスを受信した複製元ディスクアレイ１６０は、ステータスがエラーであった場合(５０１)、マークが存在しない、すなわち意図しないＬＵが複製先になっている、あるいはＬＵが他の複製を作成するために使用中であると判断し、複製管理表１７４内の複製先ＬＵの状態を「エラー」に変更する(４０６)。
【００７７】
これにより、意図しないＬＵへの複製作成や複数の複製作成処理の重複を防止することができる。複製先ＬＵエントリの種別が「ローカル」であれば、ディスクアレイ１６０は、ModeSelectコマンドを発行せず、直接自己のＬＵ管理表１７２を参照してマークの有無を確認する。そして、コピー状態エントリ７０１が「無し」であればマークを記録する。
【００７８】
複製処理の終了後、複製先ディスクアレイのＬＵ管理表１７２に記録されたコピー状態エントリ７０１の内容を「無し」に戻す必要がある。本実施形態では、図４のステップ４１９の処理を、図６のステップ６０２、６０１、及び４１９の処理に変更する。
【００７９】
複製先ＬＵエントリの種別が「リモート」である場合、ＬＵ複製プログラム１７３は、複製先ＬＵグループのマークをパラメータページに持つあらかじめ定義されたModeSelectコマンドを、各複製先ＬＵを有するディスクアレイ１８０に送信する。ModeSelectコマンドを受信したディスクアレイ１８０は、ＬＵ管理表１７２のコピー状態エントリ７０１にマークが記録されているか確認し、記録されていればコピー状態エントリの内容を「無し」に戻す。
【００８０】
パラメータページで指定された以外のマークが記録されていた場合は、他のコピー処理がＬＵを使用中であることを示すので、コマンドを受信したディスクアレイ１８０は何もしない。複製先ＬＵエントリ３０４の種別が「ローカル」である場合は、ディスクアレイ１６０は、直接ＬＵ管理表１７２のコピー状態エントリ７０１にマークが記録されているか確認し、記録されていればコピー状態エントリ７０１の内容を「無し」に戻す（６０２）。
【００８１】
本実施形態によれば、ＬＵの構成を変更する場合等に、複製先ＬＵグループを定義した時のＬＵと複製作成時に使用するＬＵが一致するかどうかを確認し、一致していなかった場合にはそのＬＵに対する複製データ書き込みを行わないことにより、既存のデータを保護することができる。また、1つのＬＵが同時に複数の複製を作成する処理で使用されることを防止することができる。
【００８２】
第三の実施形態について説明する。第一、第二実施形態では、複製元のディスクアレイのＣＰＵ１６３及び１８３が、各複製先にデータを複製する処理を行った。しかし、複製先が多い場合にはコピー中におけるＣＰＵ１６３等の負荷が高くなり、ＡＰに提供できる性能が低下する。
【００８３】
本実施形態では、複製元ディスクアレイの外部へのデータの複製を、コピー処理用の外部モジュールで行うことにより、ＣＰＵへの負荷を低減する。以下、第一、第二実施形態と異なる点のみ説明する。
【００８４】
図８は、外部モジュール８００の構成を示す図である。
【００８５】
外部モジュール８００は、ＣＰＵ８０２、ファイバチャネルインタフェース８０３、８０４、LANインタフェース８０１、及びメモリ８０５を有する。
ファイバチャネルインタフェース８０３、８０４は、図１のファイバチャネルハブ１４０に接続される。また、LANインタフェース８０１は、図１のLAN１５０に接続される。
【００８６】
メモリ８０５には、データコピープログラム８０６、仮想ＬＵ管理表８０７、及び装置ＩＤ８０８が格納される。データコピープログラム８０６は、管理コンソール１００及びディスクアレイ１６０等との通信並びにデータコピー処理を行う。仮想ＬＵ管理表８０７は、複製管理表１７４に相当し、複製先ＬＵなどを管理する。装置ＩＤ８０８は、装置ＩＤ１７５と同様である。
【００８７】
外部モジュール８００は、複製元のＬＵを有するディスクアレイから受信した指示及びデータを各複製先ＬＵに中継する機能を持つ。外部モジュール８００は、仮想ＬＵと呼ぶ複数のＬＵを、外部モジュール８００に接続されるディスクアレイに提供する。
【００８８】
仮想ＬＵは、それ自身のＬＵＮを持ち、ファイバチャネルネットワーク１４２等で接続された他の装置からは通常のＬＵ、すなわち論理的な記憶装置として認識される。しかし、実際には記憶装置は持たず、仮想ＬＵへのアクセスはすべて複製先ＬＵに中継される。仮想ＬＵは、複製元のＬＵを有するディスクアレイからは、複製先ＬＵの1つとして認識される。
【００８９】
外部モジュール８００が使用される場合、ディスクアレイ管理プログラム１０２は、外部モジュール８００に対して、マーク及び複製先ＬＵエントリ３０４の種別が「リモート」となる複製先ＬＵを指定する複製先グループ定義命令を送信する。定義命令を受信した外部モジュール８００のデータコピープログラム８０６は、図２と同様の処理を行う。ただし、ステップ２０１、２０２は省略され、ステップ２０５では、データコピープログラム８０６は、図９に示される仮想ＬＵ管理表８０７のエントリを設定する。
【００９０】
仮想ＬＵ管理表８０７は、図１の複製管理表１７４のうち、グループ状態、複製元ＬＵ、コピー位置、及び複製先ＬＵエントリ内の種別情報が省略され、グループＩＤの代わりに仮想ＬＵのＬＵＮが割り当てられたものである。割り当てられる仮想ＬＵのＬＵＮは、他のグループ定義で使用されていないものが用いられる。割り当てられたＬＵＮの情報は、ディスクアレイ管理プログラム１０２に返送される。この処理により、仮想ＬＵに割り当てられる転送先ＬＵの情報が、仮想ＬＵ管理表８０７に登録されることとなる。
【００９１】
次に、ディスクアレイ管理プログラム１０２は、第一及び第二実施形態と同様に、複製元ディスクアレイ１６０に複製グループ定義命令を送る。ただし、複製先ＬＵとして、複製元ディスクアレイ内のＬＵ及び先の処理で得られた外部モジュール８００の仮想ＬＵが指定される。すなわち、複製管理表１７４の複製先エントリにおいて、外部モジュール８００の仮想ＬＵのみが「リモート」の種別を持つ。
【００９２】
複製元ディスクアレイ１６０は、第一及び第二実施形態と全く同様の処理を行う。外部モジュール８００は、図２のステップ２０３において複製元ディスクアレイ１６０から装置ＩＤを要求されると、他のディスクアレイと同様に自身の装置ＩＤを返送する。
【００９３】
複製先ＬＵの追加・削除命令も第一、第二実施形態と同様に処理される。ただし、ディスクアレイ管理プログラム１０２から発行される命令は、指定される複製先ＬＵが他のディスクアレイ内のＬＵであれば、外部モジュール８００に送られる。外部モジュール８００は、受信した追加・削除命令に応じて、仮想ＬＵ管理表８０７の複製先ＬＵエントリを追加・削除する。
【００９４】
ディスクアレイ管理プログラム１０２から複製先ＬＵへのマーク命令の送信は、第二実施形態と同様に行われる。
【００９５】
複製元ディスクアレイ１６０および複製先ディスクアレイは、第一および第二実施形態と全く同様の処理を行う。
【００９６】
外部モジュール８００の動作を、図４〜６のフローチャートに沿って説明する。ステップ４０４で、複製元ディスクアレイ１６０からReadCapacityコマンドを受信すると、外部モジュール８００は、仮想ＬＵ管理表８０７に記録されている全ての複製先ＬＵにReadCapacityコマンドを送信し、もっとも小さい容量を複製元ディスクアレイ１６０に返信する。また、ステップ５００及びステップ６０２でModeSelectコマンドを受信すると、外部モジュール８００は、全ての複製先ＬＵにModeSelectコマンドを転送し、1つでもエラーがある場合はエラーステータスを複製元ディスクアレイ１６０に返信する。
【００９７】
ステップ４１２で仮想ＬＵに対するWriteコマンドを受信すると、外部モジュール８００は、Writeコマンドで指定されたLBAとデータを用いて、全ての複製先ＬＵにWriteコマンドを送信する。送信されたWriteコマンドに対して、エラーステータスが1つでも返された場合は、複製元ディスクアレイ１６０にエラーステータスを返す。
【００９８】
本実施形態に拠れば、複製元ディスクアレイ１６０の外部にあるＬＵへのデータコピーを外部モジュール８００が行うため、複製元ディスクアレイ１６０のＣＰＵの負荷が軽減される。
【００９９】
なお、本発明はデータベースシステムに限定されるものではなく、その他の連続運転システム、例えば工場監視システム等にも適用することができる。又、必ずしも無停止のシステムでなくても良い。
【０１００】
【発明の効果】
本発明によれば、通常の運用において、記憶装置システムが書き込みをミラーリングするのは２つの記憶装置で十分なので、複製する記憶装置の数が増えた場合にも記憶装置システムの通常の運用時の負荷は変わらず、ＡＰの処理速度低下を防ぐことができる。
【０１０１】
また、複製先の追加や変更には、ＡＰを実行しているコンピュータからのアクセスが伴わないため、アプリケーションプログラムの処理速度を低下させることなく複製先を追加・変更することができる。複数の異なるデータの複製先として同一の複製先ＬＵを指定できるため、複製先ＬＵとして必要な記憶装置の数を低減することができる。また、複製先定義時に意図したＬＵと複製作成時に使用するＬＵが一致するかどうかを確認することにより、意図しないＬＵへの複製作成と既存のデータ破壊を防ぐことができる。
【０１０２】
また、1つのＬＵが同時に複数の複製作成処理で使用されることを防止できる。さらに、外部モジュールが、複製元ディスクアレイの外部にあるＬＵへのデータコピーを行うことにより、複製元ディスクアレイのＣＰＵ負荷を軽減することができる。
【０１０３】
また、複製先ＬＵの内容を、通常の運用時に複製元ＬＵの内容に一致させる必要がないため、その位置や数を変更した場合にもデータのコピー処理は不要である。
【図面の簡単な説明】
【図１】本発明の第一実施形態の構成を示す図である。
【図２】本発明の第一実施形態における複製管理表１７４のエントリ構成を示す図である。
【図３】本発明の第一実施形態における複製グループ定義処理のフローチャートである。
【図４】本発明の第一実施形態における複製作成処理のフローチャートである。
【図５】本発明の第二実施形態における複製先確認処理のフローチャートである。
【図６】本発明の第二実施形態におけるコピー状態リセット処理のフローチャートである。
【図７】本発明の第二実施形態におけるＬＵ管理表１７２のエントリ構成を示す図である。
【図８】本発明の第三実施形態における外部コピーモジュールの構成を示す図である。
【図９】本発明の第三実施形態における外部コピーモジュールの複製管理表エントリ構成を示す図である。
【符号の説明】
１００…管理コンソール、１０２…ディスクアレイ管理プログラム、１１０…データベースサーバ、１２０…データウェアハウスサーバ、１３０…バックアップサーバ、１６０…ディスクアレイ、１７１…ＬＵミラープログラム、１７２…ＬＵ管理表、１７３…ＬＵ複製プログラム、１７４…複製管理表、１７５…装置ＩＤ。
【図１】
0004122724.tif 000002
【図２】
0004122724.tif 000003
【図３】
0004122724.tif 000004
【図４】
0004122724.tif 000005
【図５】
0004122724.tif 000006
【図６】
0004122724.tif 000007
【図７】
0004122724.tif 000008
【図８】
0004122724.tif 000009
【図９】
0004122724.tif 000010