(57)【特許請求の範囲】
【請求項１】
外部からデータへのアクセス要求を受け取る、互いに通信可能な複数のサーバと、当該複数のサーバとそれぞれ第１のストレージ用インタフェースを介して通信可能な第１のストレージと、前記複数のサーバとそれぞれ第２のストレージ用インタフェースを介して通信可能な第２のストレージとを備え、
前記複数のサーバは、それぞれ、
前記アクセス要求に応じて、前記第１のストレージ用インタフェースを介して前記第１のストレージからデータを読み出す読み出し手段と、
前記第１のストレージから読み出したデータを、前記第２のストレージ用インタフェースを介して前記第２のストレージにキャッシュする書き込み手段と、
前記書き込み手段により前記第２のストレージにキャッシュしたデータの識別情報を記憶する記憶手段と、
前記記憶された識別情報を、前記第１のストレージおよび前記第２のストレージと通信可能な他のサーバに通知する通知手段と
を備えたストレージシステム。
【請求項２】
前記複数のサーバは、それぞれ、
前記アクセス要求の対象となるデータが、前記第２のストレージにキャッシュされているか否かを調べる監視手段をさらに備え、
前記読み出し手段は、前記監視手段により前記データが前記第２のストレージにキャッシュされていると判断された場合は、前記アクセス要求に応じて前記第２のストレージから前記データを読み出し、前記データが前記第２のストレージにキャッシュされていないと判断された場合は、前記第１のストレージから前記データを読み出す
請求項１記載のストレージシステム。
【請求項３】
前記複数のサーバは、それぞれ上流ファイバチャネルブリッジを備え、前記第１のストレージは、下流ファイバチャネルブリッジを備え、
前記複数のサーバは、それぞれ前記第１のストレージと、前記上流ファイバチャネルブリッジと前記下流ファイバチャネルブリッジによりファイバチャネルを介して互いに通信する
請求項１または請求項２記載のストレージシステム。
【請求項４】
前記複数のサーバは、それぞれ上流イーサネットブリッジを備え、前記第２のストレージは、下流イーサネットブリッジを備え、
前記複数のサーバは、それぞれ前記第２のストレージと、前記上流イーサネットブリッジと前記下流イーサネットブリッジによりイーサネットプロトコルにしたがって互いに通信する
請求項１ないし請求項３のいずれか１項記載のストレージシステム。
【請求項５】
第１のストレージと通信可能な第１のストレージ用インタフェースと、
第２のストレージと通信可能な第２のストレージ用インタフェースと、
外部からのアクセス要求に応じて、前記第１のストレージ用インタフェースを介して前記第１のストレージからデータを読み出す読み出し手段と、
前記第１のストレージから読み出したデータを、前記第２のストレージ用インタフェースを介して前記第２のストレージにキャッシュする書き込み手段と、
前記書き込み手段により前記第２のストレージにキャッシュしたデータの識別情報を記憶する記憶手段と、
前記記憶された識別情報を、前記第１のストレージおよび前記第２のストレージと通信可能な他のサーバに通知する通知手段と
を備えたサーバ。
【請求項６】
前記アクセス要求の対象となるデータが、前記第２のストレージにキャッシュされているか否かを調べる監視手段をさらに備え、
前記読み出し手段は、前記監視手段により前記データが前記第２のストレージにキャッシュされていると判断された場合は、前記アクセス要求に応じて前記第２のストレージから前記データを読み出し、前記データが前記第２のストレージにキャッシュされていないと判断された場合は、前記第１のストレージから前記データを読み出す
請求項５記載のサーバ。
【請求項７】
外部からのアクセス要求に応じて、第１のストレージ用インタフェースを介して通信可能な第１のストレージからデータを読み出し、
前記第１のストレージから読み出したデータを、第２のストレージ用インタフェースを介して通信可能な第２のストレージにキャッシュし、
前記第２のストレージにキャッシュしたデータの識別情報を記憶手段に記憶し、
前記記憶された識別情報を、前記第１のストレージおよび前記第２のストレージと通信可能な他のサーバに通知する
キャッシュ方法。
【請求項８】
外部からのアクセス要求に応じて、第１のストレージ用インタフェースを介して通信可能な第１のストレージからデータを読み出す処理と、
前記第１のストレージから読み出したデータを、第２のストレージ用インタフェースを介して通信可能な第２のストレージにキャッシュする処理と、
前記第２のストレージにキャッシュしたデータの識別情報を記憶手段に記憶する処理と、
前記記憶された識別情報を、前記第１のストレージおよび前記第２のストレージと通信可能な他のサーバに通知する処理と
を、コンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、分散キャッシュ技術に関する。
【背景技術】
【０００２】
ハードディスク等の外部記憶装置に多様なデータを保管し、保管されたデータを用いてクライアントに対して種々のサービスを提供する装置として、ファイルサーバやデータベースサーバが用いられている。
【０００３】
データベースサーバに格納されたデータを用いるアプリケーション処理においては、スループットが高いことよりも、レイテンシ、すなわち、データ転送を要求してからその結果が返送されるまでの遅延時間が短いことが重視される。
【０００４】
アプリケーション処理を高速化する技術として、分散メモリキャッシュシステムがある。Ｗｅｂアプリケーションの分野で広く使われる分散メモリキャッシュシステムとして、例えば「Ｍｅｍｃｈａｅｄ」がある。Ｍｅｍｃｈａｅｄは、高性能な分散メモリキャッシュサーバであり、データベースへの問い合わせ結果を一時的にキャッシュすることで、データベースへのアクセス回数を減らす機能を有する。このような機能により、動的なＷｅｂアプリケーションの高速化や、スケーラビリティの向上に利用されている。
【０００５】
図８は、分散メモリキャッシュシステムの構成を模式的に示す図である。図８に示すように、分散メモリキャッシュシステムには、それぞれがキャッシュメモリ２１、３１を備えた複数の分散メモリキャッシュサーバ２０、３０が設けられる。この分散メモリキャッシュシステムにおいて、アプリケーションが動作するクライアント１０は、分散メモリキャッシュサーバ２０、３０に対して、データを取得するアクセスを行う。分散メモリキャッシュサーバ２０、３０は、そのアクセスが当該データに対する初回のアクセスである場合、そのデータをストレージ４０から読み出してキャッシュメモリ２１、３１に格納すると共にクライアント１０に返す。上記データに対する２回目以降のアクセスに対しては、分散メモリキャッシュサーバ２０、３０は、そのデータをキャッシュメモリ２１、３１から読み出すと共にクライアント１０に返す。
【０００６】
例えば、特許文献１には、プロセッサ間の通信量を低減して高速処理を実現できるとともに、キャッシュの利用効率を向上できるデータ管理装置が開示される。
【０００７】
また、特許文献２には、分散ファイルシステムにおけるネットワーク間のトラフィックを低減し、ファイルアクセスの高速化を図る分散ファイルシステムのファイル入出力方式が開示される。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−０５４８４５号公報
【特許文献２】特開平０４−３１３１２６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
上述したように、分散メモリキャッシュシステムでは、Ｗｅｂアプリケーションの高速化を実現できるという利点の一方で、以下のような課題がある。すなわち、分散メモリキャッシュシステムでは、分散メモリキャッシュサーバにデータを保存（キャッシュ）するので、サーバの障害等が生じるとキャッシュされているデータが損なわれてしまうという課題がある。
【００１０】
また、分散メモリキャッシュシステムでは、サーバに内蔵されているキャッシュメモリをデータ格納領域として使用するので、データ格納容量（キャッシュ容量）の拡張には複雑な作業・設定等が必要となり、キャッシュ容量の拡張は容易にはできないという課題もある。
【００１１】
特許文献１に開示されるデータ管理装置では、処理速度の向上のために、複数のプロセッサから共有される共有キャッシュ装置を設けているが、装置に内蔵されているキャッシュメモリをデータ格納領域として使用するので、やはりキャッシュ容量の拡張は容易にはできない。
【００１２】
また、特許文献２には、複数のクライアント計算機により共有されるディスクキャッシュが開示されるが、キャッシュ容量の拡張が容易に可能なシステムについては開示されていない。
【００１３】
本願発明は、上記課題を鑑みてなされたものであり、サーバ障害の際に、キャッシュされているデータが損なわれることなく、かつキャッシュ容量の拡張を容易に行うことが可能な分散キャッシュシステム等を提供することを主要な目的とする。
【課題を解決するための手段】
【００１４】
本発明の第１のストレージシステムは、外部からデータへのアクセス要求を受け取るサーバと、当該サーバと第１のインタフェースを介して通信可能な第１のストレージと、前記サーバと第２のインタフェースを介して通信可能な第２のストレージとを備え、前記サーバは、前記アクセス要求に応じて、前記第１のインタフェースを介して前記第１のストレージからデータを読み出す読み出し手段と、前記第１のストレージから読み出したデータを、前記第２のインタフェースを介して前記第２のストレージにキャッシュする書き込み手段とを備える。
【００１５】
本発明の第１のサーバは、第１のストレージと通信可能な第１のインタフェースと、第２のストレージと通信可能な第２のインタフェースと、外部からのアクセス要求に応じて、前記第１のインタフェースを介して前記第１のストレージからデータを読み出す読み出し手段と、前記第１のストレージから読み出したデータを、前記第２のインタフェースを介して前記第２のストレージにキャッシュする書き込み手段とを備える。
【００１６】
本発明の第１のキャッシュ方法は、外部からのアクセス要求に応じて、第１のインタフェースを介して通信可能な第１のストレージからデータを読み出し、前記第１のストレージから読み出したデータを、第２のインタフェースを介して通信可能な第２のストレージにキャッシュする。
【００１７】
なお同目的は、上記の各構成を有するキャッシュ方法を、コンピュータによって実現するコンピュータ・プログラム、およびそのコンピュータ・プログラムが格納されている、コンピュータ読み取り可能な記憶媒体によっても達成される。
【発明の効果】
【００１８】
本願発明によれば、分散キャッシュシステムにおいて、サーバ障害の際に、キャッシュされているデータが損なわれることなく、かつキャッシュ容量の拡張を容易に行うことができるという効果が得られる。
【図面の簡単な説明】
【００１９】
【図１】本発明の第１の実施形態に係る分散キャッシュシステムの構成を示す図である。
【図２】本発明の第１の実施形態に係る分散キャッシュシステムの分散キャッシュサーバの機能ブロック図である。
【図３】本発明の第１の実施形態に係る分散キャッシュシステムの分散キャッシュサーバの動作を示すフローチャートである。
【図４】本発明の第１の実施形態に係る分散キャッシュシステムの分散キャッシュサーバが備える共有情報の例を示す図である。
【図５】本発明の第１の実施形態に係る分散キャッシュシステムのクライアントがデータを読み出す手順を模式的に示す図である。
【図６】本発明の第２の実施形態に係る分散キャッシュシステムの構成を示す図である。
【図７】本発明の第３の実施形態に係る分散キャッシュシステムの構成を示す図である。
【図８】分散メモリキャッシュシステムの構成を模式的に説明する図である。
【発明を実施するための形態】
【００２０】
以下、本発明の実施形態について図面を参照して詳細に説明する。
【００２１】
第１の実施形態
図１は、本発明の第１の実施形態に係る分散キャッシュシステム１００の構成を示す図である。図１に示すように、分散キャッシュシステム１００は、分散キャッシュサーバ１２０，１３０、ストレージ１５０および共有ストレージ１６０を備える。
【００２２】
クライアント１１０では、アプリケーションが動作している。そのアプリケーションがデータを利用する際、クライアント１１０は、中間サーバとなる分散キャッシュサーバ１２０、１３０を介してストレージ１５０にアクセスする。
【００２３】
ストレージ１５０は、分散キャッシュサーバ１２０、１３０に接続されるクライアント１１０が利用するデータを保存する。
【００２４】
共有ストレージ１６０は、分散キャッシュサーバ１２０、１３０がクライアント１１０からの要求に応じて読み出したデータを保存（キャッシュ）する。
【００２５】
各装置の概要について説明する。
【００２６】
図１に示すように、分散キャッシュサーバ１２０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１２１、メモリ１２２、上流ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）エクスプレス−イーサネット（登録商標）ブリッジ（以降、「上流イーサネットブリッジ」と称する）１２３および上流ファイバチャネルブリッジ１２４を備える。各構成要素は、互いに内部バス１２５を介して接続されている。内部バス１２５には、例えばＰＣＩバスが用いられてもよい。
【００２７】
分散キャッシュサーバ１３０は、分散キャッシュサーバ１２０と同様の構成を備える。図１では、クライアント１１０からのアクセス要求を受ける分散キャッシュサーバとして分散キャッシュサーバ１２０，１３０を示すが、分散キャッシュサーバ１２０のみでもよいし、さらなる分散キャッシュサーバを備える構成でもよい。分散キャッシュサーバ１２０と分散キャッシュサーバ１３０との間は、サーバ間パス１４０で接続されている。
【００２８】
ストレージ１５０は、下流ファイバチャネルブリッジ１５１、ＣＰＵ１５２、ＳＡＳ（Ｓｅｒｉａｌ  Ａｔｔａｃｈｅｄ  ＳＣＳＩ（Ｓｍａｌｌ  Ｃｏｍｐｕｔｅｒ  Ｓｙｓｔｅｍ  Ｉｎｔｅｒｆａｃｅ））コントローラ１５３およびディスクドライブ１５４を備える。ＳＡＳコントローラ１５３とディスクドライブ１５４は、ストレージのインタフェースであるＳＡＳインタフェース１５５を介して互いに接続され、ＳＡＳコントローラ１５３は、ＳＡＳインタフェース１５５を介してディスクドライブ１５４からデータの読み出しを行う。
【００２９】
共有ストレージ１６０は、下流ＰＣＩエクスプレス−イーサネットブリッジ（以降、「下流イーサネットブリッジ」と称する）１６１およびディスクドライブ１６２を備える。下流イーサネットブリッジ１６１とディスクドライブ１６２は、互いに内部バス１６３を介して接続される。内部バス１６３には、例えば、ＰＣＩバスが用いられてもよい。ディスクドライブ１６２には、例えば、ＰＣＩ−エクスプレスインタフェースを有する超高速ドライブＮＶＭ（Ｎｏｎ−Ｖｏｌａｔｉｌｅ  Ｍｅｍｏｒｙ）−Ｅｘｐｒｅｓｓが用いられてもよい。
【００３０】
分散キャッシュサーバ１２０、１３０は、クライアント１１０とストレージ１５０との通信の仲介を行う中間サーバであって、クライアント１１０からのストレージ１５０へのアクセス要求を監視する。そして、分散キャッシュサーバ１２０，１３０は、共有ストレージ１６０からデータを読み出してクライアント１１０に返すか、ストレージ１５０からデータを読み出してクライアント１１０に返すかを判断する。
【００３１】
ストレージ１５０は、分散キャッシュサーバ１２０、１３０からのアクセス要求に応じて、ＳＡＳコントローラ１５３によりディスクドライブ１５４からデータを読み出し、読み出したデータを返却する。
【００３２】
共有ストレージ１６０は、分散キャッシュサーバ１２０、１３０からのアクセス要求に応じて、下流イーサネットブリッジ１６１を介してディスクドライブ１６２からデータを読み出し、読み出したデータを返却する。
【００３３】
各装置間の接続について説明する。
【００３４】
分散キャッシュサーバ１２０，１３０と、ストレージ１５０とは、ストレージエリアネットワーク（Ｓｔｒａｇｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ：ＳＡＮ）で接続され（図１において「ａ」で示す）、互いにファイバチャネルでデータ転送を行う。すなわち、分散キャッシュサーバ１２０の上流ファイバチャネルブリッジ１２４と、ストレージ１５０の下流ファイバチャネルブリッジ１５１は、互いにファイバチャネルでデータ転送を行う。ただし、分散キャッシュサーバ１２０，１３０とストレージ１５０を接続するインタフェースは、ファイバチャネルに限定されない。
【００３５】
分散キャッシュサーバ１２０，１３０と、共有ストレージ１６０は、互いに高速ネットワーク（図１において「ｂ」で示す）を介してデータ転送を行う。すなわち、分散キャッシュサーバ１２０、１３０の上流イーサネットブリッジ１２３、１３３と、共有ストレージ１６０の下流イーサネットブリッジ１６１とは、互いにイーサネット規格に従って高速でデータ転送を行う。
【００３６】
上流イーサネットブリッジ１２３は、例えば、イーサネットフレームにカプセル化したＰＣＩエクスプレスのパケットを送受信する機能を有する。下流イーサネットブリッジ１６１は、上流イーサネットブリッジ１２３，１３３から受信したパケットから抽出されるデータを、内部バス１６３を介してディスクドライブ１６２に格納する機能を有する。また、下流イーサネットブリッジ１６１は、ディスクドライブ１６２から抽出したデータをイーサネットフレームにカプセル化し、そのカプセル化したパケットを、上流イーサネットブリッジ１２３，１３３に送信する機能を有する。上流イーサネットブリッジ１２３，１３３には、通常の技術を用いればよく、その詳細な説明は省略する。
【００３７】
次に、分散キャッシュサーバ１２０の機能について説明する。
【００３８】
図２は、図１に示した分散キャッシュサーバ１２０の機能をブロックで示した機能ブロック図である。図２に示すように、分散キャッシュサーバ１２０は、送受信部２１０、制御部２２０、共有情報記憶部２３０およびインタフェース２４０を備える。制御部２２０は、監視部２２１、読み出し部２２２、書き込み部２２３および通知部２２４を備える。インタフェース２４０は、図１に示した上流イーサネットブリッジ１２３および上流ファイバチャネルブリッジ１２４を含む。
【００３９】
図３は、分散キャッシュサーバ１２０の動作を示すフローチャートである。図１乃至図３を参照して、分散キャッシュサーバ１２０の動作（処理）について説明する。
【００４０】
分散キャッシュサーバ１２０は、送受信部２１０においてクライアント１１０からのアクセス要求を受け取と、監視部２２１は、当該アクセス要求はストレージ１５０へのアクセス要求であるか否かを判定する。ストレージ１５０へのアクセス要求である場合（Ｓ１０１においてＹｅｓ）、監視部２２１は、そのアクセス要求の対象となるデータが共有ストレージ１６０に格納されているか否かを確認する（Ｓ１０２）。
【００４１】
ここでは、上記アクセス要求は当該データへの初回のアクセス要求であると仮定する。この場合、当該データは共有ストレージ１６０に格納されていないので（Ｓ１０２においてＮｏ）、読み出し部２２２は上流ファイバチャネルブリッジ１２４からファイバチャネルａを介してストレージ１５０に読み出し要求を出す（Ｓ１０３）。なお、データが共有ストレージ１６０に格納されているか否かの判断方法については後述する。
【００４２】
ストレージ１５０は、上記読み出し要求に応じて以下の動作を行う。すなわち、ストレージ１５０は、分散キャッシュサーバ１２０からの読み出し要求を下流ファイバチャネルブリッジ１５１において受け取る。ＣＰＵ１５２は、上記読み出し要求に応じて、ＳＡＳコントローラ１５３に読み出し要求を出す。ＳＡＳコントローラ１５３は、ＳＡＳインタフェース１５５を介してディスクドライブ１５４からデータを読み出し、読み出したデータをＣＰＵ１５２に返す。ＣＰＵ１５２は、下流ファイバチャネルブリッジ１５１からファイバチャネルａを介して、当該データを分散キャッシュサーバ１２０に返す。
【００４３】
分散キャッシュサーバ１２０は、上流ファイバチャネルブリッジ１２４においてデータを受け取ると、そのデータを送受信部２１０を介してクライアント１１０に返す（Ｓ１０４）。
【００４４】
続いて、分散キャッシュサーバ１２０は、上記受け取ったデータを、以下のように共有ストレージ１６０に書き込む。すなわち、分散キャッシュサーバ１２０の書き込み部２２３は、上記データの書き込み要求を、上流イーサネットブリッジ１２３を介して共有ストレージ１６０に送る（Ｓ１０５）。共有ストレージ１６０は、下流イーサネットブリッジ１６１を介して書き込み要求を受け取ると、内部バス１６３を介してディスクドライブ１６２にデータの書き込み（キャッシュ）を行う。このようにディスクドライブ１６２には、ストレージ１５０から読み出されたデータがキャッシュされる。
【００４５】
続いて、書き込み部２２３は、当該データが共有ストレージ１６０にキャッシュされたことを、共有情報記憶部２３０に書き込む。図４は、共有情報記憶部２３０に格納される共有情報の例を示す図である。図４に示すように、共有情報記憶部２３０には、共有ストレージ１６０にキャッシュされたデータの識別情報（共有データ識別情報）が記憶される。
【００４６】
続いて、分散キャッシュサーバ１２０の通知部２２４は、サーバ間パス１４０を介して接続されている他の分散キャッシュサーバに当該データが共有ストレージ１６０にキャッシュされたことを通知する（Ｓ１０６）。サーバ間パス１４０を介して分散キャッシュサーバ１２０と接続されている分散キャッシュサーバは、自サーバが保持する共有情報記憶部２３０に、上記データの識別情報を登録する。
【００４７】
ここで、監視部２２１は、上記Ｓ１０２において、クライアント１１０からのアクセス要求の対象となるデータが共有ストレージ１６０にキャッシュされているか否かを、共有情報記憶部２３０にそのデータの識別情報が登録されているか否かに基づいて判断する。監視部２２１が共有ストレージ１６０にデータがキャッシュされていると判断した場合（Ｓ１０２においてＹｅｓ）、読み出し部２２２は、上流イーサネットブリッジ１２３からネットワークｂを介して、共有ストレージ１６０からの当該データの読み出しを行う（Ｓ１０７）。
【００４８】
共有ストレージ１６０の下流イーサネットブリッジ１６１は、上記読み出し要求に応じて、内部バス１６３を介してディスクドライブ１６２から該当データを読み出し、そのデータをネットワークｂを介して分散キャッシュサーバ１２０に返す。
【００４９】
ここで、一般に、イーサネット規格に従って下流イーサネットブリッジ１６１が内部バス１６３を介してディスクドライブ１６２からデータを読み出す速度は、ＳＡＳ規格に従ってＳＡＳコントローラ１５３がディスクドライブ１５４からデータを読み出す速度よりも速い。
【００５０】
分散キャッシュサーバ１２０は、ネットワークｂを介して上記データを受け取ると、送受信部２１０を介してクライアント１１０に返す（Ｓ１０８）。
【００５１】
図５は、上記の動作により、クライアント１１０が分散キャッシュサーバ１２０を経由して、ストレージ１５０または共有ストレージ１６０からデータを読み出す手順を模式的に示す図である。図５に示すように、分散キャッシュサーバ１２０は、クライアント１１０から初回のアクセス要求を受けたデータをストレージ１５０から読み出すと共に共有ストレージ１６０にキャッシュする。そして、分散キャッシュサーバ１２０は、２回目以降のアクセス要求を受けたデータを共有ストレージ１６０から読み出す。
【００５２】
上記のように、本実施形態に係る分散キャッシュシステム１００では、分散キャッシュサーバ１２０、１３０は、ストレージ１５０から読み出したデータを、分散キャッシュサーバ１２０、１３０ではなく、共有ストレージ１６０にキャッシュしている。したがって、例えば分散キャッシュサーバ１２０で障害が発生したとしても、クライアント１１０は、分散キャッシュサーバ１３０を経由して共有ストレージ１６０からキャッシュされたデータを読み出すことができる。
【００５３】
このように、本第１の実施形態によれば、分散キャッシュシステム１００では、分散キャッシュサーバ１２０、１３０ではなく、共有ストレージ１６０にデータをキャッシュするので、分散キャッシュサーバ１２０、１３０の障害の際に、キャッシュされているデータが損なわれることがなく、障害耐性を向上することができるという効果が得られる。
【００５４】
また、ストレージ１５０から読み出したデータを、共有ストレージ１６０のディスクドライブ１６２にキャッシュするので、キャッシュ容量の拡張の際にはディスクドライブ１６２を追加すればよく、キャッシュ容量の拡張が容易に可能であるという効果が得られる。さらに、装置に内蔵されているキャッシュメモリと比較して安価なディスクドライブをキャッシュ領域に使用するので、安価に容量拡張が可能であるという効果が得られる。
【００５５】
第２の実施形態
次に、上述した第１の実施形態を基礎とする第２の実施形態について説明する。以下の説明では、第１の実施形態と同様の構成については同じ参照番号を付与することにより、重複する説明は省略する。
【００５６】
図６は、本発明の第２の実施形態に係る分散キャッシュシステム３００の構成を示す図である。分散キャッシュシステム３００は、第１の実施形態において説明した分散キャッシュサーバ１２０が備える共有情報記憶部２３０を、共有ストレージ１６０が備える構成を有する。その他の構成については、分散キャッシュシステム３００は、第１の実施形態で説明した分散キャッシュシステム１００と同様の構成を有する。
【００５７】
図６に示す構成では、第１の実施形態において図３のＳ１０２で説明した共有ストレージ１６０における該当データの有無を、共有ストレージ１６０が備える共有情報記憶部２３０の共有情報に基づいて判断する。すなわち、第２の実施形態に係る分散キャッシュサーバ１２０は、クライアント１１０からストレージ１５０へのアクセス要求を受けると、制御部２２０において、上流イーサネットブリッジ１２３を介して共有ストレージ１６０が備える共有情報記憶部２３０から共有情報を読み出す。そして、制御部２２０は、その共有情報に基づいて、アクセス要求の対象となるデータが共有ストレージ１６０に格納されているか否かを確認する。
【００５８】
また、図３のＳ１０６において、第２の実施形態における制御部２２０は、該当データが共有ストレージ１６０にキャッシュされたことを他の分散キャッシュサーバに通知する代わりに、共有ストレージ１６０の共有情報記憶部２３０に、該当データの識別情報を格納する。その他の動作については、第２の実施形態における制御部２２０は、第１の実施形態で説明した動作と同様の動作を行う。
【００５９】
ここで、分散キャッシュサーバ１２０が共有情報を格納している場合、例えば分散キャッシュサーバ１２０がリブートした場合などはその共有情報は最新の情報ではなくなる虞があるので他のサーバ等から読み出す必要がある。一方、共有ストレージ１６０が共有情報を備える構成の場合、分散キャッシュサーバ１２０はリブートした場合に、最新の情報の保持する共有ストレージ１６０から共有情報を読み出すことができるので、サーバ間の通信を削減できる。また、この場合、分散キャッシュサーバ１２０は、高速ネットワークｂを介して共有ストレージ１６０から共有情報を読み出すことができるので、復旧が早くなる。
【００６０】
以上のように、本第２の実施形態によれば、ストレージ１５０から読み出され共有ストレージ１６０にキャッシュされたデータの識別情報を、共有ストレージ１６０が備えるので、分散キャッシュサーバ１２０のリブート時等に共有情報の読み出しにかかるサーバ間通信を削減できると共に、復旧を早くできるという効果が得られる。
【００６１】
なお、共有情報は、分散キャッシュサーバ１２０と共有ストレージ１６０ともに格納されてもよい。
【００６２】
第３の実施形態
図７は、本発明の第３の実施形態に係るストレージシステム２００の構成を示すブロック図である。図７に示すように、ストレージシステム２００は、サーバ２０１、第１のストレージ２０２および第２のストレージ２０３を備える。
【００６３】
サーバ２０１は、外部からデータへのアクセス要求を受け取る。第１のストレージ２０２は、サーバ２０１と第１のインタフェース２１３を介して通信可能である。第２のストレージ２０３は、サーバ２０１と第２のインタフェースを介して通信可能な第２のストレージとを備える。
【００６４】
サーバ２０１は、アクセス要求に応じて、第１のインタフェース２１３を介して第１のストレージ２０２からデータを読み出す読み出し部２１１と、第１のストレージ２０２から読み出したデータを、第２のインタフェース２１４を介して第２のストレージ２０３にキャッシュする書き込み部２１２を備える。
【００６５】
第１のストレージ２０２は、第１の実施形態におけるストレージ１５０に相当し、第２のストレージ２０３は、第１の実施形態における共有ストレージ１６０に相当する。第１のインタフェース２１３は、上流ファイバチャネルブリッジ１２４に相当し、第２のインタフェース２１４は、上流イーサネットブリッジ１２３に相当する。
【００６６】
上記構成を採用することにより、本第３の実施形態によれば、第１のストレージから読み出したデータを、サーバではなく第２のストレージにキャッシュするので、サーバ障害の際に、キャッシュされているデータが損なわれることなく、かつキャッシュ容量の拡張を容易に行うことが可能となるという効果が得られる。
【００６７】
なお、図２に示した分散キャッシュサーバ１２０、１３０の各部は、図１に示す要素およびＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）または記憶媒体等の記憶領域を備えたハードウエア資源において実現される。
【００６８】
ＣＰＵ１２１は、ＲＯＭまたは記憶媒体に記憶された各種ソフトウエア・プログラム（コンピュータ・プログラム）を、メモリ１２２に読み出して実行することにより、分散キャッシュサーバ１２０、１３０の全体的な動作を司る。すなわち、上記各実施形態において、ＣＰＵ１２１は、ＲＯＭまたは記憶媒体を適宜参照しながら、分散キャッシュサーバ１２０、１３０が備える各機能（各部）を実行するソフトウエア・プログラムを実行する。
【００６９】
また、上述した各実施形態では、図２に示した分散キャッシュサーバ１２０、１３０における各ブロックに示す機能を、ＣＰＵ１２１が実行する一例として、ソフトウエア・プログラムによって実現する場合について説明した。しかしながら、図２に示した各ブロックに示す機能は、一部または全部を、ハードウエアとして実現してもよい。
【００７０】
また、各実施形態を例に説明した本発明は、分散キャッシュサーバ１２０、１３０に対して、上記説明した機能を実現可能なコンピュータ・プログラムを供給した後、そのコンピュータ・プログラムを、ＣＰＵ１２１がメモリ１２２に読み出して実行することによって達成される場合もある。
【００７１】
また、係る供給されたコンピュータ・プログラムは、読み書き可能なメモリ（一時記憶媒体）またはハードディスク装置等のコンピュータ読み取り可能な記憶デバイスに格納すればよい。そして、このような場合において、本発明は、係るコンピュータ・プログラムを表すコード或いは係るコンピュータ・プログラムを格納した記憶媒体によって構成されると捉えることができる。
【符号の説明】
【００７２】
１００  分散キャッシュシステム
１１０  クライアント
１２０  分散キャッシュサーバ
１２１  ＣＰＵ
１２２  メモリ
１２３  上流イーサネットブリッジ
１２４  上流ファイバチャネルブリッジ
１２５  内部バス
１３０  分散キャッシュサーバ
１３３  上流イーサネットブリッジ
１４０  サーバ間パス
１５０  ストレージ
１５１  下流ファイバチャネルブリッジ
１５２  ＣＰＵ
１５３  ＳＡＳコントローラ
１５３  コントローラ
１５４  ディスクドライブ
１５５  ＳＡＳインタフェース
１６０  共有ストレージ
１６１  下流イーサネットブリッジ
１６２  ディスクドライブ
１６３  内部バス
２００  ストレージシステム
２１０  送受信部
２０１  サーバ
２０２  第１のストレージ
２０３  第２のストレージ
２１１  読み出し部
２１２  書き込み部
２１３  第１のインタフェース
２１４  第２のインタフェース
２２０  制御部
２２１  監視部
２２２  読み出し部
２２３  書き込み部
２２４  通知部
２３０  共有情報記憶部
２４０  インタフェース
【図１】
0006269575.tif 000002
【図２】
0006269575.tif 000003
【図３】
0006269575.tif 000004
【図４】
0006269575.tif 000005
【図５】
0006269575.tif 000006
【図６】
0006269575.tif 000007
【図７】
0006269575.tif 000008
【図８】
0006269575.tif 000009