(57)【要約】【課題】リモートコピーを行うストレージシステムにおいて、ローカルサイトでの更新が行われるのに合わせて、更新内容をリアルタイムにリモートサイトのファイルシステムに反映させて最新のファイルデータを参照可能とすること。【解決手段】ディスクドライブ、ディスク制御部、ディスクキャッシュ、を有するディスク装置と、ＣＰＵ、メインメモリ、を有するファイルサーバと、通信回線を介して他のストレージシステムＡのディスク装置とデータを授受するインタフェースと、を備えたストレージシステムＢであって、ディスク装置内のファイルの管理情報履歴４６を参照し、他のストレージシステムで行われたファイル更新に対応してファイルサーバにおけるファイルの管理情報４７を更新し、ストレージシステムに接続されたクライアントからの読み出し要求に対して更新後のユーザデータ４８を転送することを可能とする構成である。【選択図】図３
2005128861.tif 000002
【特許請求の範囲】
【請求項１】
データを記憶する１つ又は複数のディスクドライブ、前記ディスクドライブに対するデータの読み書きを制御するディスク制御部、前記ディスクドライブとのデータ授受に用いられるディスクキャッシュ、を有するディスク装置と、
ＣＰＵ、前記ＣＰＵで実行されるプログラムとデータを格納するメインメモリ、クライアントとネットワークを介して接続されるネットワークインタフェース、を有するファイルサーバと、
通信回線を介して他のストレージシステムのディスク装置とデータを授受するインタフェースと、を備えたストレージシステムであって、
前記メインメモリには、ファイルとディスクドライブ内のデータ位置とが対応するように前記ディスクドライブの領域を管理するファイルシステム処理部と、前記ファイルシステムが使用するファイルシステムキャッシュと、が存在し、
前記ディスク制御部は、前記他のストレージシステムのディスク装置に対して行われたファイルの更新内容とファイルの管理情報履歴とを、前記通信回線を介して前記他のストレージシステムから受信して前記ストレージシステムのディスク装置に格納するように動作し、
前記ストレージシステムのディスク装置に格納されたファイルの管理情報履歴を参照することによって、前記他のストレージシステムで行われたファイル更新に対応して前記ファイルシステムキャッシュ上でファイルの管理情報を更新し、
前記ストレージシステムに接続されたクライアントからの読み出し要求があった場合、前記ファイルシステムキャッシュ上で更新されたファイルの管理情報を参照してファイルの更新内容を前記クライアントに転送する
ことを特徴とするストレージシステム。
【請求項２】
請求項１において、
前記メインメモリ上のファイルシステム処理部は、前記管理履歴情報であるジャーナルログを参照してファイルの管理情報であるメタデータが更新されたことを監視するメタデータ更新監視部と、
前記メタデータ更新監視部によってファイルの更新を検知して前記ファイルシステムキャッシュのメタデータを更新するメタデータ更新部と、を有する
ことを特徴とするストレージシステム。
【請求項３】
請求項２において、
前記ファイルシステム処理部は、前記メタデータ更新監視部と前記メタデータ更新部に加えて、前記メタデータ更新部でメタデータを更新した場合に前記ファイルシステムキャッシュ内の対応するユーザデータを廃棄するファイルシステムキャッシュパージ部を有する
ことを特徴とするストレージシステム。
【請求項４】
請求項２において、
前記メタデータ更新監視部は、前記ディスクドライブ内のジャーナルログ領域への書き込みを監視することによってファイル更新を認識する
ことを特徴とするストレージシステム。
【請求項５】
請求項３において、
前記メタデータ更新部は、前記ディスクドライブ内のジャーナルログの内容を監視することによって、前記ファイルシステムキャッシュ内に一時保存された前記メタデータを更新し、
前記ファイルシステムキャッシュパージ部は、前記メタデータの更新に対応して前記ファイルシステムキャッシュに一時保存されたファイルの内容であるユーザデータが前記ディスク装置内で更新されたことを認識し、前記ファイルシステムキャッシュ内の前記ユーザデータを廃棄する
ことを特徴とするストレージシステム。
【請求項６】
データを記憶する１つ又は複数のディスクドライブ、前記ディスクドライブに対するデータの読み書きを制御するディスク制御部、前記ディスクドライブとのデータ授受に用いられるディスクキャッシュ、を有するディスク装置と、
各種処理を実行するＣＰＵ、前記ＣＰＵで実行されるプログラムとデータを格納するメインメモリ、クライアントとネットワークを介して接続されるネットワークインタフェース、を有するファイルサーバと、
通信回線を介して他のストレージシステムのディスク装置とデータを授受するインタフェースと、を備えたストレージシステムのファイル参照方法において、
前記メインメモリには、ファイルとディスクドライブ内のデータ位置とが対応するように前記ディスクドライブの領域を管理するファイルシステムの各種処理を行うファイルシステム処理部と、前記ファイルシステムが使用するバッファであるファイルシステムキャッシュと、を設け、
前記ディスク制御部は、前記他のストレージシステムのディスク装置に対して行われたファイルの更新内容とファイルの管理情報履歴とを、前記通信回線を介して前記他のストレージシステムから受信して前記ストレージシステムのディスク装置に格納するように動作するものであり、
前記ストレージシステムのディスク装置に格納されたファイルの管理情報履歴を参照する監視ステップと、
前記管理情報履歴の参照に基づいて前記他のストレージシステムで行われたファイル更新に対応して前記ファイルシステムキャッシュ上でファイルの管理情報を更新する更新ステップと、
前記ストレージシステムに接続されたクライアントからの読み出し要求があった場合、前記ファイルシステムキャッシュ上で更新されたファイルの管理情報を参照してファイルの更新内容を前記クライアントに転送する転送ステップとからなる
ことを特徴とするストレージシステムのファイル参照方法。
【請求項７】
請求項６において、
前記監視ステップは、前記管理履歴情報であるジャーナルログを参照してファイルの管理情報であるメタデータが更新されたことを監視するメタデータ更新監視ステップであり、
前記更新ステップは、前記メタデータ更新監視ステップによってファイルの更新を検知して前記ファイルシステムキャッシュのメタデータを更新するメタデータ更新ステップである
ことを特徴とするストレージシステムのファイル参照方法。
【請求項８】
請求項７において、
前記メタデータ更新監視ステップと前記メタデータ更新ステップに加えて、前記メタデータ更新ステップでメタデータを更新した場合に前記ファイルシステムキャッシュ内の対応するユーザデータを廃棄するファイルシステムキャッシュパージステップ、からなる
ことを特徴とするストレージシステムのファイル参照方法。
【請求項９】
請求項７において、
前記メタデータ更新監視ステップは、前記ディスクドライブ内のジャーナルログ領域への書き込みを監視することによってファイル更新を認識するステップである
ことを特徴とするストレージシステムのファイル参照方法。
【請求項１０】
請求項８において、
前記メタデータ更新ステップは、前記ディスクドライブ内のジャーナルログの内容を監視することによって、前記ファイルシステムキャッシュ内に一時保存された前記メタデータを更新するステップであり、
前記ファイルシステムキャッシュパージステップは、前記メタデータの更新に対応して前記ファイルシステムキャッシュに一時保存されたファイルの内容であるユーザデータが前記ディスク装置内で更新されたことを認識し、前記ファイルシステムキャッシュ内の前記ユーザデータを廃棄するステップである
ことを特徴とするストレージシステムのファイル参照方法。
【請求項１１】
データを記憶する１つ又は複数のディスクドライブ、前記ディスクドライブに対するデータの読み書きを制御するディスク制御部、前記ディスクドライブとのデータ授受に用いられるディスクキャッシュ、を有するディスク装置と、
各種処理を実行するＣＰＵ、前記ＣＰＵで実行されるプログラムとデータを格納するメインメモリ、クライアントとネットワークを介して接続されるネットワークインタフェース、を有するファイルサーバと、
通信回線を介して他のストレージシステムのディスク装置とデータを授受するインタフェースと、をそれぞれ備えた第１のストレージシステムと第２のストレージシステムを含む統合システムであって、
前記第１と第２のストレージシステムのメインメモリには、ファイルとディスクドライブ内のデータ位置とが対応するように前記ディスクドライブの領域を管理するファイルシステムの各種処理を行うファイルシステム処理部と、前記ファイルシステムが使用するバッファであるファイルシステムキャッシュと、が存在し、
前記第１のストレージシステムのディスク制御部は、前記第２のストレージシステムのディスク装置に対して行われたクライアントからのファイルの更新内容とファイルの管理情報履歴とを、前記通信回線を介して前記第２のストレージシステムから受信して前記第１のストレージシステムのディスク装置に格納するように動作し、
前記第１のストレージシステムのディスク装置に格納されたファイルの管理情報履歴を参照することによって、前記第２のストレージシステムで行われたファイル更新に対応して前記第１のストレージシステムのファイルシステムキャッシュ上でファイルの管理情報を更新し、
前記第１のストレージシステムに接続されたクライアントからの読み出し要求があった場合、前記ファイルシステムキャッシュ上で更新されたファイルの管理情報を参照してファイルの更新内容を前記第１のストレージシステムに接続されたクライアントに転送可能とする
ことを特徴とする統合ストレージシステム。
【請求項１２】
請求項１１において、
前記第１のストレージシステムのメインメモリ上のファイルシステム処理部は、前記管理履歴情報であるジャーナルログを参照してファイルの管理情報であるメタデータが更新されたことを監視するメタデータ更新監視部と、
前記メタデータ更新監視部によってファイルの更新を検知して前記ファイルシステムキャッシュのメタデータを更新するメタデータ更新部と、を有する
ことを特徴とする統合ストレージシステム。
【請求項１３】
請求項１２において、
前記第１のストレージシステムのファイルシステム処理部は、前記メタデータ更新監視部と前記メタデータ更新部に加えて、前記メタデータ更新部でメタデータを更新した場合に前記ファイルシステムキャッシュ内の対応するユーザデータを廃棄するファイルシステムキャッシュパージ部を有する
ことを特徴とする統合ストレージシステム。
【請求項１４】
請求項１２において、
前記第１のストレージシステムのメタデータ更新監視部は、前記ディスクドライブ内のジャーナルログ領域への書き込みを監視することによってファイル更新を認識する
ことを特徴とする統合ストレージシステム。
【請求項１５】
請求項１３において、
前記第１のストレージシステムのメタデータ更新部は、前記ディスクドライブ内のジャーナルログの内容を監視することによって、前記ファイルシステムキャッシュ内に一時保存された前記メタデータを更新し、
前記第１のストレージシステムのファイルシステムキャッシュパージ部は、前記メタデータの更新に対応して前記ファイルシステムキャッシュに一時保存されたファイルの内容であるユーザデータが前記ディスク装置内で更新されたことを認識し、前記ファイルシステムキャッシュ内の前記ユーザデータを廃棄する
ことを特徴とする統合ストレージシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、地理的に離れた場所に存在する記憶装置の一方でデータの更新が発生した場合に、他方の記憶装置に更新内容を転送することにより、互いのディスクの内容を一致させるリモートコピーに関する。特に、リモートコピーによりコピーされたディスクをファイルシステムで使用するための技術に関する。
【背景技術】
【０００２】
一つの場所（ローカルサイト）に存在するディスクドライブの内容が更新された場合、その更新内容を地理的に離れた別の場所（リモートサイト）のディスクドライブに転送し、両サイトのペアを構成するディスクドライブ間でディスクドライブの内容を一致させるストレージのリモートコピーということが知られている（例えば、特許文献１、特許文献２を参照）。
【０００３】
これらの特許文献１，２によると、リモートサイトにおいて、リモートコピーされるディスクドライブは待機系として使用され、リモートサイトのディスクドライブは、ローカルサイトがアクセス不能となった場合等に、リモートサイトでマウントしてファイルシステムとして使用することが可能となっている。
【特許文献１】米国特許第６４４２５５１号明細書
【特許文献２】特開２００３−７６５９２
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来技術では、リモートコピーのディスクドライブは、ローカルサイトでの障害発生時にフェールオーバ（ローカルサイトでのサービスをリモートサイトに引き継ぐ処理）が発生する等、ペア間のデータ転送の停止（スプリット、例えばペアの解消処理）を行うまでアクセスを行うことが不能であった。例えば、前記特許文献１には、ミラーとして複数のディスクドライブ間のデータを一致させているシステムで、ミラーを解消後にディスクドライブにアクセスを行うことが可能なシステムを提示している。また、前記引用文献２では、リモートコピー機能をもつ記憶装置間で作成されたペアボリュームを、１台の上位装置が前記ペアボリュームを排他的に占有し、他の上位装置からの更新要求を拒否することで、ペアボリュームを複数の上位装置に対して１つのボリュームとして認識させるようにしている。
【０００５】
前記特許文献１に示すように、一旦スプリットを行うことが必要な理由は、ペア間のデータ転送を保ったままリモートサイトでディスクドライブをマウントしても、次のような課題があってファイルシステムとして正しくアクセスできないためである。
【０００６】
一つの課題は、ディスクのユーザデータをリモートコピーしても、例えば、ジャーナリングファイルシステムの場合、ローカルファイルシステムがメタデータ（詳細は後述するが、ファイルの管理情報）をキャッシュしており、ローカルサイトの記憶装置にも書き出されないため、リモートサイトには更新内容が反映されないことである。
【０００７】
他の課題は、リモートサイトのファイルシステム自体もキャッシュを持っているため、リモートのディスクの内容が更新されても、このキャッシュの内容が更新されないため、最新のファイルデータが参照されないことである。リモートサイトのファイルシステムが持つキャッシュに更新前のデータが保持されている場合、ファイルシステムはこのキャッシュ内容を使用してしまい、更新前のファイルデータが参照されることとなって、最新のファイルデータが参照されない。
【０００８】
本発明の目的は、ローカルサイトでの更新が行われるのに合わせて更新内容をリアルタイムにリモートサイトのファイルシステムに反映させることによって、リモートサイトで最新のファイルデータを参照することのできるストレージシステムを提供することにある。
【課題を解決するための手段】
【０００９】
前記課題を解決するために、本発明は主として次のような構成を採用する。  
データを記憶する１つ又は複数のディスクドライブ、前記ディスクドライブに対するデータの読み書きを制御するディスク制御部、前記ディスクドライブとのデータ授受に用いられるディスクキャッシュ、を有するディスク装置と、
各種処理を実行するＣＰＵ、前記ＣＰＵで実行されるプログラムとデータを格納するメインメモリ、クライアントとネットワークを介して接続されるネットワークインタフェース、を有するファイルサーバと、
通信回線を介して他のストレージシステムのディスク装置とデータを授受するインタフェースと、を備えたストレージシステムであって、
前記メインメモリには、ファイルとディスクドライブ内のデータ位置とが対応するように前記ディスクドライブの領域を管理するファイルシステムの各種処理を行うファイルシステム処理部と、前記ファイルシステムが使用するバッファであるファイルシステムキャッシュと、が存在し、
前記ディスク制御部は、前記他のストレージシステムのディスク装置に対して行われたファイルの更新内容とファイルの管理情報履歴とを、前記通信回線を介して前記他のストレージシステムから受信して前記ストレージシステムのディスク装置に格納するように動作し、
前記ストレージシステムのディスク装置に格納されたファイルの管理情報履歴を参照することによって、前記他のストレージシステムで行われたファイル更新に対応して前記ファイルシステムキャッシュ上でファイルの管理情報を更新し、
前記ストレージシステムに接続されたクライアントからの読み出し要求があった場合、前記ファイルシステムキャッシュ上で更新されたファイルの管理情報を参照してファイルの更新内容を前記クライアントに転送可能とする構成である。
【発明の効果】
【００１０】
本発明によれば、リモートコピーを行うストレージシステムにおいて、ローカルサイトでの更新が行われるのに合わせて、更新内容をリアルタイムにリモートサイトのファイルシステムに反映させ、リモートサイトで最新のファイルデータを参照することができる。
【発明を実施するための最良の形態】
【００１１】
本発明の実施形態に係るストレージシステムについて、図面を参照しながら以下詳細に説明する。なお、本発明は以下に示す実施形態に限定されるものではない。
【００１２】
図１は本発明の実施形態に係るストレージシステムの全体構成を示すブロック図である。図２は本実施形態のストレージシステムをリモートコピー接続した統合システム構成例を示す図である。図３はローカルサイトとリモートサイトのストレージシステム間でのデータ転送の状況を示す図である。図４は本実施形態で使用するファイルサーバ内のファイルシステム処理部における機能を示す図である。図５はローカルサイトのストレージシステムへのファイル書き込み要求に対するファイル処理部の処理フローを示す図である。図６はストレージシステムのディスク装置に書き込みが行われた場合におけるディスク制御部の実行するリモートコピーの処理フローを示す図である。図７はファイル更新があった場合のリモートサイトストレージシステムにおけるファイルシステム処理部が実行する複数処理のフローを示す図である。図８はリモートコピーを行う際のリモートサイトに転送されるリモートコピーデータの構成例を示す図である。図９はディスク装置内のディスクドライブに存在するジャーナルログ領域の格納情報を示す図である。
【００１３】
図１に示すストレージシステムのブロック図において、ストレージシステム１は、ネットワーク７に接続し、主にファイルの管理を行うファイルサーバ２と、ファイルサーバ２からのデータの入出力要求を処理し、ファイルのデータ等を記憶するための記憶装置であるディスク装置３と、他のストレージシステム１と接続し、主に他のストレージシステム１にデータの送信を行うためのインタフェースであるリモートリンクイニシエータ４（ＲＩ）と、他のストレージシステム１からデータの受信を行うためのインタフェースであるリモートリンクターゲット５（ＲＴ）と、により構成される。
【００１４】
図１に示す構成例では、ファイルサーバ２がストレージシステム１内部に存在する構成を示したが、ファイルサーバ２がストレージシステム１内部に存在しなくても良い。この場合には、ファイルサーバ２とストレージシステム１との間はファイバチャネル等のインタフェースにより接続されることになる。
【００１５】
ファイルサーバ２は、ネットワーク７に接続するためのネットワークインタフェース１２（ＮＩ）と、各種処理を実行するＣＰＵ１１と、ＣＰＵ１１で実行されるプログラムやデータを格納するメインメモリ１３と、から構成される計算機である。メインメモリ１３上には、ＣＰＵ１１で動作するプログラムであるＯＳ１６やファイルシステムの各種処理を行うファイルシステム（以下、ＦＳと称する）処理部１７の他、ファイルシステムが使用するバッファであるＦＳキャッシュ１８が存在する。ＦＳキャッシュ１８は、ディスク装置３から読み出されたデータや、ネットワーク７を介してクライアント６から書き込まれたデータを一時的に格納する。即ち、ＦＳキャッシュには、ファイルの内容であるユーザデータの他、ファイルの管理情報であるメタデータ（例えば、ファイル名称、ファイルサイズ、データ格納位置、更新日時等）、メタデータの更新履歴であるジャーナルログ（メタデータの経時的な履歴情報）等が格納される。
【００１６】
なお、ファイルシステムはデータをファイルとしてアクセスすることを可能とするものであるが、ファイルシステムの主な仕事はディスクを管理することであり、このアクセスには主にライトとリードがあり、ライトの場合、データの書き込み領域を決定し、その領域に書き込み、領域不足であればディスク空き領域をそのファイル用に割り当てデータ格納する。リードの場合、ディスクのどの領域にファイルの内容が格納されているかを決定し、ディスクからデータを読み出す。このように、データをファイルとしてアクセスさせるということは、ファイルとディスク内のデータの位置の対応を取ることである。
【００１７】
ディスク装置３は、ディスク装置の制御を行うディスク制御部２１と、ディスク制御部２１により制御され、ディスクドライブ２３とのデータの受け渡しに使用されるディスクキャッシュ２２と、磁気媒体等で構成されファイルの内容等のデータを記憶するディスクドライブ２３と、により構成される。単体の物理的なディスクドライブのみならず、ＲＡＩＤ（Ｒｅｄｕｎｄａｎｔ  Ａｒｒａｙｓ  ｏｆ  Ｉｎｅｘｐｅｎｓｉｖｅ  Ｄｉｓｋｓ）型ディスクアレイのように複数の物理的なディスクドライブを有する場合もある。
【００１８】
ディスクキャッシュ２２は、ディスク装置３の電源異常が発生した場合でも、内容が消去されることのないように、バッテリーバックアップされた不揮発のメモリによって構成される。ファイルサーバ２からの入出力に応じて、ディスクキャッシュ２２上にはデータ格納のための領域（キャッシュエントリ）が確保され、ファイルサーバ２から受け取るデータや、ディスクドライブ２３から読み出されたデータが一時保存される。この他に、ディスクキャッシュ２２上では、ファイルサーバ２からの書き込みに対して、リモートコピーを行うためのリモートコピーデータの作成や、リモートリンクターゲットＲＴ５を介して他のストレージシステム１から受け取ったリモートコピーデータの一時保存が行われる。
【００１９】
上述したようなストレージシステムにおいては、ディスク装置に保存されたファイルをアクセスするためには、ファイルの管理情報であり、ファイルのデータ格納位置を有するメタデータを参照しなければならず、そのために、メタデータをディスク装置からＦＳキャッシュに読み出し、ＦＳキャッシュ上のメタデータを参照することでファイルのアクセスを実行するようになっている。
【００２０】
図２に示す統合システム構成例において、ストレージシステム１は、ネットワークインタフェースＮＩ１２によりネットワーク７に接続されたクライアント６からのファイルへの処理要求を受け取る。また、リモートリンクイニシエータＲＩ４は地理的に離れた場所に存在するストレージシステム１のリモートリンクターゲットＲＴ５とファイバチャネルによる専用線等の通信回線８で接続される。ＲＩ４とＲＴ５の接続は、図２に示すように一台のストレージシステム１が複数のＲＩ４を持ち、複数台のストレージシステム１と接続されていても良いし、一台のストレージシステム１にＲＩ４とＲＴ５を持ち、連鎖状に複数のストレージシステム１を接続しても良い。ＲＩ４とＲＴ５で接続されたストレージシステム１間では、事前に双方のディスク装置３内のディスクドライブ２３単位でペアを構成する。そして、ＲＩ４の存在するストレージシステム１でペアを構成しているディスクドライブ２３に対して行われた更新内容は、ＲＴ５の持つストレージシステム１に転送され、双方のディスク装置３内のペアを構成するディスクドライブ２３間の内容を一致させる。
【００２１】
リモートコピーの方式としては、ローカルサイトへの更新と同時に、リモートサイトへの更新内容の転送を行い、転送の完了を待ってからローカルサイトへの更新処理手続を終了する同期方式と、リモートサイトへの転送の完了を待たず、ローカルサイトでの更新処理手続を終了する非同期方式がある。どちらの方式もローカルサイトで行われた更新順序の通りにリモートサイトにデータが転送されて内容が反映される。
【００２２】
次に、本発明の実施形態に係る、ローカルサイトとリモートサイトのストレージシステム間でのデータ転送、及びリモートサイトにおける最新ファイルデータの参照の概要について、図３を用いてまず説明する。図３は地理的に離れた場所にあるストレージシステムＡとストレージシステムＢをリモートリンクイニシエータＲＩとリモートリンクターゲットＲＴにより接続した構成図である。図３において、ストレージシステムＡにネットワークで接続されたクライアント３７からファイルに対して書き込みがあった後、ストレージシステムＢにネットワークで接続されたクライアント３８から読み出しが行われた場合のデータの流れについて説明する。
【００２３】
ローカルサイトのクライアント３７からストレージシステムＡのファイルサーバに対してファイルの書き込み要求が行われ、更新データが転送される（Ｓ１）と、ストレージシステムＡ内のＦＳ処理部にてローカルサイトのＦＳキャッシュ３３内でメタデータ４０とユーザデータ４１、ジャーナルログ４２が更新される（Ｓ２）。
【００２４】
そして、ＦＳキャッシュ内で更新されたデータの内、ユーザデータ４３とジャーナルログ４４は、同期的にディスク装置内のディスクキャッシュ３５に書き込まれる（Ｓ３）。その後、リモートコピー部によりリモートコピーデータが作成され、ストレージシステムＢに転送される。
【００２５】
ストレージシステムＢ内のディスクキャッシュ３６では、リモートコピーされたデータが反映され、ユーザデータ４５とジャーナルログ４６は、ストレージシステムＡ内のユーザデータ４３とジャーナルログ４４と等しい内容に更新される（Ｓ４）。ディスクキャッシュ３６内でジャーナルログの更新があると、それをメタデータ更新監視部が認識し（後述する図４の説明を参照）、メタデータ更新部がジャーナルログ４６をＦＳキャッシュ上に読み出す（Ｓ５）。そして、メタデータ更新部は、読み出したジャーナルログ４９を使用してＦＳキャッシュ内のメタデータ４７を更新する（Ｓ６）。メタデータが更新されると、ＦＳキャッシュパージ部により更新されたメタデータに対応するＦＳキャッシュ内のユーザデータを廃棄する。
【００２６】
リモートサイトのクライアント３８から読み出し要求があった場合には、更新後のメタデータに基づいて、ディスク装置からユーザデータ４５が読み出され、ＦＳキャッシュ内に格納される（Ｓ７）。そして、クライアント３８からの読み出し要求の応答としてユーザデータ４８がクライアント３８に転送される（Ｓ８）。このようにして、ローカルサイトのクライアント３７によって書き込まれたファイルの内容が、リモートサイトのクライアント３８によって参照される。
【００２７】
図３に示す本発明の実施形態に関する、ローカルサイトとリモートサイトのストレージシステム間でのデータ転送及びリモートサイトにおける最新ファイルデータの参照について再度説明する。ストレージシステムにおけるディスク装置内のファイルをアクセスするには、ファイルの管理情報であるメタデータをＦＳキャッシュ上に読み出してこのメタデータを参照することでファイルのデータ格納位置を取得し、ファイルのアクセスを実行するようなシステムとなっているのである。そして、このシステムを前提とした上で、ローカルサイトのストレージシステムからリモートサイトのストレージシステムにユーザデータとメタデータの更新履歴であるジャーナルログとがリモートコピーによりデータ転送されてきた後に、リモートサイトのストレージシステムに対してクライアントからアクセスがあった場合に、仮に、古いユーザデータ用のメタデータがＦＳキャッシュ上に残っているとすると、ＦＳ（ファイルシステム）処理部はＦＳキャッシュ上の古いメタデータを参照してファイルにアクセスしようとしてしまうので、ローカルサイトから折角コピーされてきた新しいユーザデータにアクセスすることができない（古いデータには古いデータ格納位置が含まれるので、古いメタデータを参照しても新しいユーザデータにはアクセスできない）と云う解決すべき課題が生じる。
【００２８】
そこで、本発明の実施形態では、この課題を解決するために、ローカルサイトのストレージシステムからユーザデータとともに転送されてきたジャーナルログ、即ちファイルの管理情報履歴であるジャーナルログを用いて、リモートサイトのストレージシステムのＦＳキャッシュ上に新しいメタデータを格納する。更にＦＳキャッシュに古いユーザデータが残っていると、クライアントからの読み出し要求に応じてＦＳキャッシュ内の古いユーザデータが読み出されてしまうので、この古いユーザデータをＦＳキャッシュから廃棄しておく。そして、リモートサイトのクライアントから読み出し要求があれば、ＦＳキャッシュ上の新しいメタデータを参照して新しいユーザデータのファイルにアクセスすることができる。
【００２９】
次に、ローカルサイトとリモートサイトのストレージシステム間でのデータ転送における各部署での機能乃至作用について説明する。図８は、リモートコピーを行う際に、ローカルサイトで作成されリモートサイトに転送されるリモートコピーデータの構成例を示す図である。シーケンシャル番号８１は、ローカルサイトで更新の行われた順に付けられる番号であり、リモートサイトではこの番号順に自システムに更新内容を反映することによって、ローカルサイトとの更新順序の一致を保証する。データ格納位置８２は、ペアを構成しているドライブを識別するための情報と、そのドライブ内での位置を示す情報からなる。データ８３は、ローカルサイトで行われた更新内容であり、この内容がリモートサイトでデータ格納位置８２に対応した位置に格納される。
【００３０】
図５は、クライアント６からのファイルへの書き込み要求に対するＦＳ（ファイルシステム）処理部１７の処理フローを示す。ＦＳ処理部１７は、ネットワーク７を介して接続されたクライアント６からファイルへの書き込み要求を受信する（ステップ１０１）。次に、ステップ１０２では処理を行う対象であるファイルのメタデータがＦＳキャッシュ１８上に存在するかを調べ、存在しない場合はステップ１０３に進みディスク装置３からメタデータの読み出しを行う。
【００３１】
ＦＳ処理部１７がファイルに対して処理を行う場合、必要なデータ（ユーザデータおよびメタデータ）がＦＳキャッシュ１８上に存在する必要がある。存在しない場合、上記のようにＦＳ処理部１７は、まずディスク装置３からＦＳキャッシュ１８に読み出しを行う。ＦＳキャッシュ１８上に読み出されたデータは、一つの処理が終了した後もすぐには捨てられず、ＦＳキャッシュ１８上に保持される。それは、その後に行われる処理でデータが必要となった場合は、ＦＳキャッシュ１８上のデータを使用することにより効率よく処理を行うためである。
【００３２】
ＦＳ処理部１７は、ステップ１０３で必要に応じてメタデータの読み出しを行った後、ステップ１０４で、ＦＳキャッシュ１８上で今回の書き込みに対応してメタデータの更新を行う。そして、メタデータの更新と同時に、その更新の内容に対応するジャーナルログを作成し、そのジャーナルログをディスク装置３に書き込む（ステップ１０５）。
【００３３】
ジャーナルログは、図９に示すディスクドライブ２３上に存在するジャーナルログ領域９０に格納されるログ情報（メタデータの更新履歴情報）である。ＦＳ処理部１７が行うメタデータの更新の内容をその更新順序どおりにログ情報として記録する。新たなジャーナルログの記録は、終点ポインタ９２が示す位置から行い、記録した位置の次に終点ポインタ９２を移動させる。始点ポインタ９１は、ディスク装置３に更新を行っていないメタデータを含むジャーナルログの開始位置を示すポインタである。ＦＳ処理部１７は、必要に応じてＦＳキャッシュ１８上のメタデータをディスク装置３に書き込み、始点ポインタ９１の位置を進める。即ち、ＦＳキャッシュに存するメタデータを適宜のタイミングでディスクドライブに書き込んでしまえば、その時点で始点ポインタの位置を進ませることができる。始点ポインタ９１と終点ポインタ９２は、ジャーナルログ領域９０内のログデータ領域９３を末尾まで移動した次は先頭に移動する。このようにしてラップアラウンドしてログデータ領域９３内の場所を指し示す。
【００３４】
そして、始点ポインタ９１と終点ポインタ９２で囲まれたログデータ領域９３内のジャーナルログは、ディスク装置に対して更新内容が未反映のメタデータに対応したジャーナルログが格納された領域を表す。即ち、更新内容の反映したメタデータがディスクドライブに格納されてしまえば、そのメータデータに対応するジャーナルログは始点ポインタと終点ポインタで囲む必要はないのである。
【００３５】
ジャーナルログをディスク装置３に書き込むことにより、ＦＳ処理部１７はメタデータの更新内容をディスク装置３に書き出す処理を、クライアント６に対する処理終了以前に行う必要がなくなる。それは、障害発生によりＦＳキャッシュ１８上のデータが消失されても、ジャーナルログにより消失された内容をディスクドライブから復旧することが可能であるからである。
【００３６】
電源断などの障害が発生した場合、ＦＳキャッシュ１８上でのみ行われてディスク装置３に書き出されていないメタデータの更新内容は、ＦＳキャッシュ１７上から消失してしまう。障害復旧後にディスク装置３上のメタデータを読み出しても、更新されていないデータである可能性がある。そのため、障害復旧後ＦＳ処理部１７はディスク装置３からジャーナルログを読み出し、始点ポインタ９１と終点ポインタ９２で示された領域のジャーナルログの内容を用いることにより、メタデータの内容の更新を行い、障害発生前の最新の状態に復旧することを行う。
【００３７】
図５に示すステップ１０５で、ジャーナルログのディスク装置への書き込み終了後、必要に応じてＦＳキャッシュ上に領域の確保を行い、ディスク装置３からユーザデータの読み出しを行った後、ディスク制御部２１はクライアント６から受け取ったユーザデータをＦＳキャッシュ１８上で更新し（ステップ１０６）、引き続いて、更新したユーザデータをディスク装置３へ書き込む（ステップ１０７）。ディスク装置３への書き込み終了後、クライアント６に対して書き込み要求に対する処理の終了応答を返す（ステップ１０８）。
【００３８】
上述したように、クライアント６からの書き込み要求に対する処理で、ＦＳ処理部１７はＦＳキャッシュ１８上でメタデータの更新とジャーナルログの作成とユーザデータの更新を行う。このうち作成されたジャーナルログと更新されたユーザデータは、書き込み要求の終了応答を返す前にディスク装置３に対して書き込みを行う。このようにクライアントからの書き込み要求に対し、更新されたデータをクライアントへの終了応答前にディスク装置３に書き込むことを同期書き込みという。これに対し、メタデータは、ＦＳキャッシュ１８上のみ更新しておき、必要に応じて書き込み要求の処理とは無関係（非同期）にディスク装置３に対して書き込みを行うことができる。
【００３９】
図５に示すフローは、ユーザデータをディスク装置３へ書き込むステップ１０７をクライアント６からの書き込み要求と同期して行う場合について示したが、ファイルシステムによっては、クライアントからの書き込み要求ではＦＳキャッシュ上のユーザデータのみ更新を行い、クライアント６から書き込み要求とは別にコミット要求を受け取り、この時にユーザデータをディスク装置３に書き出すといった処理を行う場合がある。この場合、ユーザデータは書き込み要求とは非同期にディスク装置３に書き込まれることになるが、コミット要求に対しては同期的にディスク装置３に書き込まれる。
【００４０】
次に、ディスク装置３に対して書き込みが行われた場合に、ディスク制御部２１が行うリモートコピーの処理について説明する。図６はディスク制御部２１が行う処理のフローを示す図である。ステップ１１１でＦＳ処理部１７より書き込み要求を受け取ると、ステップ１１２でディスクキャッシュ２２上にデータの書き込みを行う。書き込みが行われると、ディスク制御部内のリモートコピー部２６は、ステップ１１３で、ディスクキャッシュ２２上にリモートコピー転送用データの作成を行う。ステップ１１４では、作成されたデータをリモートリンクイニシエータＲＩ４からリモートサイトにあるストレージスステムにリモートリンクターゲットＲＴ５を通して転送する。そして、ステップ１１５でリモートサイトのストレージからの受信の応答を待ち、受信を確認後にステップ１１６で書き込み要求に対する終了の応答をＦＳ処理部１７に返す。
【００４１】
リモートサイトのストレージシステムでは、ＲＴ５を通して受け取ったリモートコピーデータ内の更新データの内容を自システムに反映することで、自システムのファイルサーバ２から読み出し要求（リモートサイトのストレージシステムに接続されたクライアントからのファイルサーバを介した読み出し要求）があった場合に、更新データの内容を返すことができる。更新データの自システムへの反映は、ディスクキャッシュ２２上で行われる。ディスク制御部２１は、ファイルサーバを介さずに、ＲＴ５を通して受け取ったリモートコピーデータのデータ格納位置から、自システム内の対応する格納位置を計算する。そしてその位置に対するエントリをディスクキャッシュ２２内に確保し、そこに更新データの内容を書き込む。このようにして、リモートサイト内のディスク装置３では、転送されてきたリモートコピーデータの内容が順次反映され、ローカルサイトで更新された内容と同一の内容がディスク装置３上に保存される。
【００４２】
しかし、リモートサイトで、リモートサイトストレージに接続されたクライアントがファイルの参照を行うためには、リモートサイトのＦＳキャッシュ１８の内容をローカルサイトでの更新に対応して更新する必要がある（上述したように、リモートリンクターゲットＲＴ５を通して受け取り、ディスク装置に書き込まれたユーザデータやメタデータはファイルサーバを通っていないから）。ローカルサイトとリモートサイトのそれぞれのファイルサーバ２にはＦＳキャッシュ１８が存在し、それぞれデータを保存している。このため、従来の方式ではリモートサイトのＦＳ処理が更新前のデータ内容を参照してしまい、クライアント６からのファイルへの参照を正しく処理することができない。
【００４３】
そこで、本発明の実施形態においては、リモートサイトで正しくファイルへの参照を行えるように、図４に示す３つの構成要素、即ち、メタデータ更新監視部、メタデータ更新部、ＦＳキャッシュパージ部、をリモートサイトのＦＳ処理部１７に設けることによって、正しいファイル参照を処理できるようにする。
【００４４】
メタデータ更新監視部５１は、リモートサイトのディスク装置３に対してファイルの更新が発生したことを検知するための構成要素である。この検知は、例えばディスク装置３内のジャーナルログ領域への書き込みを監視することによって行うことが可能である。ジャーナルログは、図９に示したようにある一定のログデータ領域９３をラップアラウンドして使用している。このため、この領域内で次にどこにジャーナルログを書き込むかを示すポインタである終点ポインタ９２を持っている。ディスク内の終点ポインタ９２を定期的に読み出し、その値に更新があったことによって、ファイルの更新、即ちメタデータの更新が発生したことを知ることができる。
【００４５】
メタデータ更新部５２は、メタデータ更新監視部５１によってファイルの更新、即ちメタデータの更新が発生したことを検知した場合に、更新に対応してＦＳキャッシュ１８のメタデータを更新する構成要素である。図５に示すフローの通り、ローカルサイトでメタデータのディスク装置３への更新は、クライアント６からの書き込み要求と同期しては行われない。このため、リモートサイトでディスク装置３からメタデータの内容を読み出しても、更新前の内容を読み出してしまう可能性がある。そこで、メタデータ更新部５２は、ジャーナルログを使用してメタデータの更新を行う。ジャーナルログにはローカルサイトで行われたメタデータの更新内容が記録されているため、これを用いることによりメタデータを更新後の状態にすることが可能である。
【００４６】
ＦＳキャッシュパージ部５３は、ＦＳキャッシュ１８内のユーザデータを廃棄するための構成要素である。メタデータ更新部５２により更新されたメタデータに対するファイルは、ローカルサイトで書き込みがあったファイルであり、ＦＳキャッシュ１８上に保持されているこのファイルのユーザデータは、更新前の値である可能性がある。ＦＳキャッシュパージ部５３により、更新前のＦＳキャッシュ１８上のデータを廃棄にすることにより、今後リモートサイトでクライアント６から参照要求があった場合に、ディスク装置３から更新後のユーザデータがＦＳキャッシュ１８上に読み出され、参照することが可能となる。
【００４７】
図７にファイル更新があった場合に、ＦＳキャッシュ１８の内容を正しく反映させるために、リモートサイトのＦＳ処理部１７の上記３つの構成要素（メタデータ更新監視部、メタデータ更新部、ＦＳキャッシュパージ部）が行う処理のフローを示す。まず、ステップ１２１でメタデータ更新監視部５１によりメタデータ更新の発生を監視する。メタデータの更新が発生した場合はステップ１２２からステップ１２３に進む。ステップ１２３では、メタデータの更新内容をＦＳキャッシュ１８内に反映させるために、メタデータ更新部５２は更新のあったジャーナルログを読み出す。そしてステップ１２４で、ジャーナルログに格納されている内容からメタデータの内容を更新する。その後、ステップ１２５でＦＳキャッシュパージ部５３により、更新されたメタデータより更新されたファイルのユーザデータ領域を識別し、ステップ１２６でＦＳキャッシュ１８上にその領域に対するキャッシュエントリが存在する場合には、そのキャッシュエントリを廃棄する。
【００４８】
ステップ１２４で更新を行ったメタデータは、リモートサイトのＦＳキャッシュ１８内で変更のあったメタデータとして管理し、ＦＳキャッシュ１８上に保持しておく必要がある。これは、リモートサイトのディスク装置３内ではメタデータの更新が行われていないためである。ＦＳキャッシュ１８上のメタデータを無効にしてしまうと、ディスク装置３から更新前のメタデータが読み出されて使用されてしまう可能性がある。さらに、リモートサイトのディスク装置３に対しては、ローカルサイトとデータ内容を一致させるために、書き込み禁止であることがある。この場合、ステップ１２４で更新を行ったメタデータの内容はリモートサイトのＦＳ処理部１７からディスク装置３に書き込むことはできない。このため、ローカルサイトのディスク装置３でメタデータが更新され、それがリモートサイトのディスク装置３に反映されるまでＦＳキャッシュ１８上に保持する。
【００４９】
メタデータがディスク装置３上で更新されたことは、ジャーナルログ領域９０の始点ポインタ９１により知ることが可能である。メタデータの更新を行う元となったジャーナルデータが始点ポインタ９１と終点ポインタ９３の間に存在する間は、メタデータがディスク装置３上に反映されていない可能性がある。始点ポインタ９１が更新され、元となったジャーナルデータが始点ポインタ９１と終点ポインタ９３の間から外れた場合は、始点ポインタ９１の更新以前にローカルサイトでメタデータのディスク装置３への書き込みが行われており、メタデータの保持を解除することが可能となる。
【００５０】
ステップ１２５および１２６で、キャッシュエントリを廃棄しても、リモートサイトでユーザデータが更新される前にリモートサイトのクライアント６から参照要求があった場合、再び更新前のユーザデータをＦＳキャッシュ１８に読み出してしまう可能性がある。更新前のデータを読み出すことを防ぐため、ステップ１２５および１２６は、ユーザデータの更新が終了したのを確認してから行うか、ユーザデータの更新が終了するまでその領域に読み出しを行わないように待つ等の処理を行う必要がある。ユーザデータの更新終了の確認はジャーナルログにより行う。この際、ＦＳ処理部１７がジャーナルログにユーザデータ更新の終了を示すログデータを書く必要がある。
【００５１】
また、コミット要求を伴うファイルシステムの場合、ＦＳキャッシュパージ手段５３が行うステップ１２５と１２６は、このコミット処理に対するジャーナルログを契機に行えばよい。
【００５２】
尚、図７のステップ１２６においては、ＦＳキャッシュ１８上のキャッシュエントリを廃棄した。しかし、リモートサイトのディスクキャッシュにはローカルサイトからリモートコピーされてきたユーザデータが格納されている。そこで更新されたメタデータに対応するファイルのユーザデータがＦＳキャッシュ上に存在する場合には、当該ユーザデータを廃棄する代わりに、ＦＳキャッシュパージ部が、当該ファイルのユーザデータをディスクキャッシュから読み出して、ＦＳキャッシュ上に格納しても良い。
【００５３】
ここまでは、ＦＳ処理部１７が処理するファイルシステムは、ジャーナルログを作成するジャーナリングファイルシステムである例を説明したが、ＦＳ処理部１７が処理するファイルシステムは、ジャーナリングファイルシステムに限定されるわけではない。この場合、リモートサイトのストレージシステム１内のメタデータ更新監視部５１は、ディスクドライブへの更新が行われたことを監視することによりメタデータ更新が行われたことを認識する。メタデータ更新が行われたことを認識する方法としては、ディスク制御部内のリモートコピー部２６からＦＳ処理部１７に割り込み等により通知する方法や、リモートコピー部２６によりディスク装置３内の別のディスクドライブ２３に更新があったこと、および更新のあったデータの格納位置を書き込み、それをＦＳ処理部１７が定期的に読み出し、その内容が更新されることによって認識する方法等が考えられる。
【００５４】
メタデータ更新部５２は、更新の行われたメタデータをＦＳキャッシュ１８から廃棄するだけでよい。ＦＳ処理部１７が処理するファイルシステムがジャーナルを用いないファイルシステムである場合、ＦＳ処理部１７はディスク装置３へのメタデータの書き出しをクライアント６からの書き込み要求と同期して行う。このため、ＦＳキャッシュ１８から廃棄し、次回使用する必要が生じた時にディスク装置３から読み出すことによって更新後のメタデータを参照することが可能であるからである。また、ＦＳキャッシュパージ部５３は、メタデータ更新部５２により廃棄されたメタデータに対応したユーザデータをＦＳキャッシュ１８から廃棄すればよい。
【００５５】
以上説明したように、本発明の実施形態に係るストレージシステムでは、リモートサイトのファイルシステムで、ファイル更新即ち、メタデータ更新を監視する更新監視部と、メタデータを更新する更新部、更新のあったファイルのＦＳキャッシュをパージするパージ部を有することによって、ローカルサイトでの更新が行われるのに合わせて、更新内容をリアルタイムにリモートサイトのファイルシステムに反映させ、リモートサイトで最新のファイルデータを参照することを可能とするものである。
【図面の簡単な説明】
【００５６】
【図１】本発明の実施形態に係るストレージシステムの全体構成を示すブロック図である。
【図２】本実施形態のストレージシステムをリモートコピー接続した統合システム構成例を示す図である。
【図３】ローカルサイトとリモートサイトのストレージシステム間でのデータ転送及びリモートサイトにおける最新ファイルデータの参照の状況を示す図である。
【図４】本実施形態で使用するファイルサーバ内のファイルシステム処理部における機能を示す図である。
【図５】ローカルサイトのストレージシステムへのファイル書き込み要求に対するファイル処理部の処理フローを示す図である。
【図６】ストレージシステムのディスク装置に書き込みが行われた場合におけるディスク制御部の実行するリモートコピーの処理フローを示す図である。
【図７】ファイル更新があった場合のリモートサイトストレージシステムにおけるファイルシステム処理部が実行する複数処理のフローを示す図である。
【図８】リモートコピーを行う際のリモートサイトに転送されるリモートコピーデータの構成例を示す図である。
【図９】ディスク装置内のディスクドライブに存在するジャーナルログ領域の格納情報を示す図である。
【符号の説明】
【００５７】
１  ストレージシステム
２  ファイルサーバ
３  ディスク装置
４  リモートリンクイニシエータ
５  リモートリンクターゲット
６  クライアント
７  ネットワーク
８  通信回線
１１  ＣＰＵ
１２  ネットワークインタフェース（ＮＩ）
１３  メインメモリ
１６  ＯＳ
１７  ＦＳ（ファイルシステム）処理部
１８  ＦＳキャッシュ
２１  ディスク制御部
２２  ディスクキャッシュ
２３  ディスクドライブ
２６  リモートコピー部
３３，３４  ＦＳキャッシュ
３７，３８  クライアント
４０，４７  ＦＳキャッシュ内メタデータ
４１，４８  ＦＳキャッシュ内ユーザデータ
４２，４９  ＦＳキャッシュ内ジャーナルログ
４３，４５  ディスクキャッシュ内ユーザデータ
４４，４６  ディスクキャッシュ内ジャーナルログ
５１  メタデータ更新監視部
５２  メタデータ更新部
５３  ＦＳキャッシュパージ部
【図１】
2005128861.tif 000003
【図２】
2005128861.tif 000004
【図３】
2005128861.tif 000005
【図４】
2005128861.tif 000006
【図５】
2005128861.tif 000007
【図６】
2005128861.tif 000008
【図７】
2005128861.tif 000009
【図８】
2005128861.tif 000010
【図９】
2005128861.tif 000011