(57)【要約】【課題】  メモリモジュールなどのハードウェア障害時に、ハードディスク装置などの外部ストレージデバイスへの書き込みが完了していないデータが失われないクラスタファイルサーバを提供する。【解決手段】  クラスタ構成をとるファイルサーバにおいて、データのキャッシュとして使用されるメモリ内のデータをＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によりクラスタノード間で相互に保持することにより、ハードウェア障害に対するデータの可用性を向上させるとともに、ノードのフェイルオーバ処理におけるデータ引継ぎ処理を不要とすることにより、サービス停止期間を短縮可能とする【選択図】      図１
2005301560.tif 000002
【特許請求の範囲】
【請求項１】
クラスタ構成をとるファイルサーバにおいて、データのキャッシュ
として使用されるメモリ内のデータをＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によりクラスタノード間で相互に保持することにより、ハードウェア障害に対するデータの可用性を向上させるとともに、ノードのフェイルオーバ処理におけるデータ引継ぎ処理を不要とすることにより、サービス停止期間を短縮可能とすることを特徴とするクラスタファイルサーバ。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワーク接続ストレージシステムに関し、特に複数クラスタで構成されるネットワーク接続ストレージ装置、ファイルサーバ装置、ディスクアレイ装置に関する。
【背景技術】
【０００２】
ＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）が行われている（例えば、特許文献１参照。）。
【０００３】
【特許文献１】特開２００２−３５１８１７しかし、以下のような課題があった。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来は、メモリ上のキャッシュデータは各ノードごとに個別に所有していたため、メモリモジュールなどのハードウェア障害時には、ハードディスク装置などの外部ストレージデバイスへの書き込みが完了していないデータは失われてしまうという問題があった。また、ノードのフェイルオーバを行う際、当該ノードが所有する未書き込みデータをノード間で共有する外部ストレージデバイスに一旦書き戻す必要があるため、未書き込みデータの書き込み処理の完了を待ち合わせる処理が必要となり、フェイルオーバ処理時間の増大によるサービス停止時間が長くなるという問題点があった。
【０００５】
本発明の目的はメモリモジュールなどのハードウェア障害時に、ハードディスク装置などの外部ストレージデバイスへの書き込みが完了していないデータが失われないクラスタファイルサーバを提供することにある。
【課題を解決するための手段】
【０００６】
本発明のクラスタファイルサーバは、クラスタ構成をとるファイルサーバにおいて、データのキャッシュとして使用されるメモリ内のデータをＲＤＭＡ（Ｒｅｍｏｔｅ  Ｄｉｒｅｃｔ  Ｍｅｍｏｒｙ  Ａｃｃｅｓｓ）によりクラスタノード間で相互に保持することにより、ハードウェア障害に対するデータの可用性を向上させるとともに、ノードのフェイルオーバ処理におけるデータ引継ぎ処理を不要とすることにより、サービス停止期間を短縮可能とすることを特徴とする。
【０００７】
複数ノードでクラスタ構成をとるファイルサーバに対して、クライアント（図１の１０）からデータの書き込み要求を受けた場合に、一旦データを格納するために主記憶上に設けられたキャッシュメモリ（２１４，２２４，２３４）と、該キャッシュに新たに書き込まれたデータを他ノードのキャッシュへ直接書き込みを行うためのＲＤＭＡ部（２１５，２２５，２３５）と、それらに対するデータ転送を制御するデータ制御部（２１２，２２２，２３２）と、を有する。
【発明の効果】
【０００８】
本発明においては、以下に記載するような効果を奏する。
【０００９】
第１の効果は、共有ストレージデバイスに未だ書き込まれていないキャッシュデータは必ず他のノード上のキャッシュメモリにも書き込むように制御しているので、単一のメモリモジュールのハードウェア障害によりあるノードが保持するキャッシュデータが読み出し不可能となった場合でも、他のノード上のキャッシュメモリからＲＤＭＡを経由してデータを読み出すことが可能となり、ハードウェア障害に対するデータの可用性を向上できることである。
【００１０】
第２の効果はクラスタを構成するいずれかのノードを障害あるいは故意に縮退させる場合、キャッシュデータを共有ストレージデバイスへ書き戻す処理が不要となり、結果フェイルオーバ処理に要する時間を短縮することが可能となり、フェイルオーバ処理中の業務停止時間が短くなることによる可用性の向上が見込まれることである。その理由は、縮退させるノードの処理を引き継ぐノード上のキャッシュメモリに、既に縮退ノードが使用していたキャッシュデータが格納されているため、従来のような共有ストレージデバイスを介したデータ引継ぎが不要となるためである。
【発明を実施するための最良の形態】
【００１１】
発明を実施するための最良の形態を説明する。
【実施例１】
【００１２】
図１を参照すると、本発明のファイルサーバは、クラスタ構成をとるｎ台のノード２１，２２，２３から構成される。各ノードはＬＡＮ１１を介してクライアント１０と接続されており、またストレージ専用ネットワーク３１を介して共用ストレージデバイス３０と接続される。各ノードは、各々ネットワーク制御部２１１，２２１，２３１、データ制御部２１２，２２２，２３２、ストレージ制御部２１３，２２３，２３３、キャッシュメモリ２１４，２２４，２３４、およびＲＤＭＡ部２１５，２２５，２３５から構成される。データ制御部２１２，２２２，２３２は、ネットワーク制御部２１１，２２１，２３１によりＬＡＮ１１経由でクライアント１０からのデータ書き込み要求を受け取ると、予め主記憶内に設けられたキャッシュメモリ２１４，２２４，２３４にデータを格納するとともに、ＲＤＭＡ部２１５，２２５，２３５を介して自ノード以外の各ノード上のキャッシュメモリにも同一データを格納し、データ書き込み完了をクライアントへ通知する。次に、データ制御部２１２，２２２，２３２の詳細な構成について説明する。図２は、データ制御部２１２，２２２，２３２の構成例を示すブロック図である。各ノードの持つデータ制御部２１２，２２２，２３２は全て同一構成のため、以下は、データ制御部２１２を例にとって説明する。
【００１３】
図２において、データ制御部２１２は、コマンド処理部４１、キャッシュテーブル管理部４２、メモリ制御部４３およびＲＤＭＡ制御部４４から構成される。コマンド処理部４１は、ネットワーク制御部２１１から受領したコマンドを元に、データ転送の処理手順を決定する。キャッシュテーブル管理部４２は、どのファイルのデータがキャッシュに格納されているか、既に外部のディスクストレージへの書き込みが完了しているか否か、等キャッシュ内のデータを管理するためのテーブルの作成、更新処理を行う。メモリ制御部４３は、キャッシュメモリ２１４に対するデータの書き込み、読み出しの制御を行う。ＲＤＭＡ制御部４４は、ＲＤＭＡ部２１５を介して、自ノード以外のノード上のＲＤＭＡ部と通信を行い、直接自ノード以外のノード上のキャッシュメモリに対するデータの書き込み、読み出しの制御を行う。
【００１４】
次に図２のデータ制御部２１２の動作を図３に示すフローチャートを参照して説明する。
【００１５】
クライアント１０からＬＡＮ１１経由でファイルサーバを構成するノード２１に対して発行されたデータの読み出しあるいは書き込み命令をネットワーク制御部２１１が受領すると、コマンド処理部４１により読み出し命令か（図３のステップＳ１）書き込み命令か（ステップＳ２）を判断し、それが読み出し命令であった場合は、さらにキャッシュテーブル管理部４２へ問い合わせを行い、読み出し対象データがキャッシュ上に存在するか調査する（ステップＳ３）。既にキャッシュ上にデータが存在する場合は、メモリ制御部４３を介してキャッシュメモリから該データを読み出し（ステップＳ４）、ネットワーク制御部２１１を介してクライアントへデータを送信する。
【００１６】
読み出し対象データがキャッシュ上に存在しない場合、ストレージ制御部２１３を介して外部の共有ストレージデバイスから該データを読み出し（ステップＳ５）、ネットワーク制御部２１１を介してクライアントへデータを送信する。この際、再度同一データの読み出しがあった場合に備えて次回以降キャッシュメモリから高速にデータ読み出しが可能となるように、キャッシュメモリ上に該データを転送するように構成しても良い（ステップＳ６）。ステップＳ２にてクライアント１０からの命令が書き込み命令であった場合、該書き込み命令のオプションとして強制デバイスアクセスフラグの有無を調査を行う（ステップＳ７）。
【００１７】
本強制デバイスアクセスフラグの一例としてSCSIコマンドのFUA(Force Unit Access)フラグ等がある。強制デバイスアクセスが指定されている場合は、ストレージ制御部２１３を介して外部の共有ストレージデバイスに直接クライアント１０から送信されたデータの書き込み指示を行い（ステップＳ８）、外部共有ストレージデバイスからの書き込み完了を待ち合わせ、結果をクライアントへ送信する。この際、同一データに対する読み出し命令が来る場合に備えて、キャッシュメモリから高速にデータ読み出しが可能となるように、キャッシュメモリ上に該データを転送するように構成しても良い（ステップＳ９）。ステップＳ７で、強制デバイスアクセスの指定がない場合、クライアントから送信されたデータはメモリ制御部４３を介してキャッシュメモリ上に書き込みを行うとともに（ステップＳ１０）、ＲＤＭＡ制御部４４を介して、クラスタを構成する自分以外のノード上のキャッシュメモリに対してデータの書き込みを指示する（ステップＳ１１）。
【実施例２】
【００１８】
次に、本発明の第２の実施例について説明する。本発明の第２の実施例として、その基本的構成は上記の通りであるが、データ制御部についてさらに工夫している。その構成を図４に示す。本図において、ファイルサーバを構成する各クラスタノードごとにデータを共有するノードの組を管理するためのノード間キャッシュテーブル管理部４５が設けられている。ノード間キャッシュテーブル管理部４５は、各ノードのキャッシュデータを共有するノードの組を対応付けたテーブルの管理を行う。このノードごとの組み合わせテーブルは予めシステム管理者等により設定される。もしくはノード１のキャッシュデータはノード２にコピーする、ノード２のキャッシュデータはノード３にコピーする、等の様に予め設定されたテーブルを準備しておいてもよい。本実施例におけるデータ制御部２１２の動作を図５に示すフローチャートを参照して説明する。
【００１９】
本実施例では図３で説明したフローチャートのうち、ＲＤＭＡ制御部４４を介して他ノードのキャッシュメモリにデータを書き込む処理を行うステップ（図３のステップＳ１１）を、ノード間キャッシュテーブル管理部４５に対して、データを共有するノード番号を受け取り、対応するノードのキャッシュメモリのみにデータを送信するように変更している（図５のステップＳ１２）。全てのノードが互いにキャッシュメモリ内のデータを共有する場合、ファイルサーバを構成するクラスタノードの数が多くなると、ノードごとに必要なキャッシュメモリ容量が増大し、自ノードで使用するキャッシュ容量が減少してしまうためキャッシュによるデータアクセス性能の向上効果が低下してしまうという問題がある。これを回避するためにノードごとに搭載するキャッシュメモリ容量を増やすのは物理的に限界があり、またコスト的にも不利である。
【００２０】
本実施例では、それぞれのノードが持つキャッシュメモリ上のデータを特定のノードのみに書き込むように制御することで、クラスタノード数に関わらず各ノードに必要なキャッシュメモリ容量を一定にすることが出来るという新たな効果を有する。
【図面の簡単な説明】
【００２１】
【図１】本発明の構成を示す図である。
【図２】本発明の構成を示す図である。
【図３】本発明の動作を示す図である。
【図４】本発明の構成を示す図である。
【図５】本発明の動作を示す図である。
【符号の説明】
【００２２】
１０  クライアント
１１  ＬＡＮ
２１  ノード＃１
２２  ノード＃２
２３  ノード＃ｎ
３０  共有ストレージデバイス
３１  ストレージ専用ネットワーク
【図１】
2005301560.tif 000003
【図２】
2005301560.tif 000004
【図３】
2005301560.tif 000005
【図４】
2005301560.tif 000006
【図５】
2005301560.tif 000007