(57)【要約】【課題】  ストレージ装置からのデータの読出速度を向上する。【解決手段】  メタデータ管理装置１００、ユーザノード２００、ストレージ装置３００を、ファイバチャネル１０およびＬＡＮ２０で接続し、NASoverSANシステムを構成する。ユーザノード２００は、ファイル単位でデータへのアクセス要求を発する。このファイルは、既定サイズのブロック単位でストレージ装置３００に格納されている。メタデータ管理装置１００は、ファイルとブロックとの対応関係を記録したメタデータに基づいて、アクセス対象となるファイルが格納されたブロック番号をユーザノード２００に通知する。この処理に先だって、メタデータ管理装置１００は、そのデータを事前にキャッシュするようストレージ装置３００に指示する。こうすることによって、ユーザノード２００からの読出要求に応じて、ストレージ装置３００は速やかにデータを提供することが可能となる。【選択図】  図１
2005148868.tif 000002
【特許請求の範囲】
【請求項１】
データをブロック単位で格納するとともにその一部をキャッシュ可能なストレージ装置、該ストレージ装置からファイル単位でデータを読み出すホストコンピュータ、および前記ファイルとブロックとの対応関係を記憶したメタデータを管理するメタデータ管理装置とが接続されたデータ格納システムにおいて、前記ストレージ装置からデータを読み出すデータ読出方法であって、
前記ストレージ装置、ホストコンピュータ、およびメタデータ管理装置は、前記メタデータを伝達するためのメタデータ用通信回線で接続されるとともに、
前記ストレージ装置とホストコンピュータとは、さらに、前記データを転送するためのデータ用通信回線で接続されており、
前記データ読出方法は、
前記ホストコンピュータが前記メタデータ管理装置に対して、読み出すべきファイルを指定して前記メタデータの問い合わせを行うクエリ工程と、
前記メタデータ管理装置が、前記メタデータを前記ホストコンピュータに返信するメタデータ提供工程と、
前記メタデータ管理装置が、前記ストレージ装置に対して、前記メタデータに応じたブロックに格納されたデータのキャッシュを指示するキャッシュ指示工程と、
前記ストレージ装置が、前記メタデータ管理装置から指示されたデータを読み出し、キャッシュするプリフェッチ工程と、
前記ホストコンピュータが前記メタデータに基づいて前記ストレージ装置に対してデータの読み出し要求を行う読み出し要求工程と、
前記ストレージ装置が、前記ホストコンピュータに該読み出し要求に応じたデータを送信するデータ提供工程とを備えるデータ読出方法。
【請求項２】
請求項１記載のデータ読出方法であって、
前記キャッシュ指示工程は、
予め用意されたルールに基づき、前記キャッシュの要否を決定するキャッシュ制御工程を備えるデータ読出方法。 
【請求項３】
請求項２記載のデータ読出方法であって、
前記ルールは、読み出し対象となるファイル単位、読み出しを行うユーザ単位、および前記ホストコンピュータ単位の少なくとも一つに基づき設定されているデータ読出方法。
【請求項４】
請求項２記載のデータ読出方法であって、
前記ルールは、所定の権限を有するユーザによって変更可能であるデータ読出方法。
【請求項５】
請求項４記載のデータ読出方法であって、
前記キャッシュ制御工程は、前記キャッシュの要否を規定するとともに、前記ユーザによって変更可能に設けられたルール表と、該ルール表を参照して前記キャッシュの要否を決定するためのルール参照部とを前記メタデータ管理装置に設けることにより実現されるデータ読出方法。
【請求項６】
請求項１記載のデータ読出方法であって、
前記メタデータ提供工程は、前記キャッシュ指示工程の後に行われるデータ読出方法。
【請求項７】
請求項１記載のデータ読出方法であって、
前記メタデータ用通信回線は、Ethernetであり、
前記データ用通信回線は、ファイバチャネルであるデータ読出方法。
【請求項８】
データをブロック単位で格納するとともにその一部をキャッシュ可能なストレージ装置、および該ストレージ装置からファイル単位でデータを読み出すホストコンピュータと接続され、前記ファイルとブロックとの対応関係を記憶したメタデータを管理するメタデータ管理装置であって、
前記ストレージ装置とホストコンピュータとは、前記データを転送するためのデータ用通信回線で接続されるとともに、
前記ストレージ装置、ホストコンピュータ、および該メタデータ管理装置は、前記データ用通信回線とは別に設けられ、前記メタデータを伝達するためのメタデータ用通信回線で接続されており、
前記メタデータ管理装置は、
読み出すべきファイルに対応したメタデータを前記ホストコンピュータからの要求に応じて提供するメタデータ提供部と、
前記ストレージ装置に対して、前記メタデータに応じたブロックに格納されたデータのキャッシュを指示するキャッシュ指示部とを備えるメタデータ管理装置。
【請求項９】
請求項８記載のメタデータ管理装置であって、
前記キャッシュ指示部は、予め用意されたルールに基づき、前記キャッシュの要否を決定するメタデータ管理装置。
【請求項１０】
請求項９記載のメタデータ管理装置であって、
前記ルールは、読み出し対象となるファイル単位、読み出しを行うユーザ単位、および前記ホストコンピュータ単位の少なくとも一つに基づき設定されているメタデータ管理装置。
【請求項１１】
請求項９記載のメタデータ管理装置であって、
前記ルールは、所定の権限を有するユーザによって変更可能であるメタデータ管理装置。
【請求項１２】
請求項１１記載のメタデータ管理装置であって、
前記キャッシュ指示部は、
前記キャッシュの要否を規定するとともに、前記ユーザによって変更可能に設けられたルール表を記憶するルール表記憶部と、
該ルール表を参照して前記キャッシュの要否を決定するためのルール参照部とを備えるメタデータ管理装置。
【請求項１３】
請求項８記載のメタデータ管理装置であって、
前記メタデータ提供部は、前記キャッシュ指示部が前記キャッシュの指示を行った後に、前記メタデータの提供を行うメタデータ管理装置。
【請求項１４】
請求項８記載のメタデータ管理装置であって、
前記メタデータ用通信回線は、Ethernetであり、
前記データ用通信回線は、ファイバチャネルであるメタデータ管理装置。
【請求項１５】
データをブロック単位で格納するストレージ装置であって、
該ストレージ装置からファイル単位でデータを読み出すホストコンピュータと、該データを転送するためのデータ用通信回線で接続されるとともに、
前記ファイルとブロックとの対応関係を記憶したメタデータを管理するためのメタデータ管理装置および前記ホストコンピュータとは、更に前記データ用通信回線とは別に設けられ、前記メタデータを伝達するためのメタデータ用通信回線で接続されており、
前記ストレージ装置は、
前記ブロック単位でデータをキャッシュするキャッシュメモリと、
前記メタデータ管理装置からの要求に応じて、前記キャッシュを行うキャッシュ制御部と、
前記ホストコンピュータからの要求に応じて、前記キャッシュに格納されたデータを優先して、データの提供を行う読出制御部とを備えるストレージ装置。
【請求項１６】
請求項１５記載のストレージ装置であって、
前記メタデータ用通信回線は、Ethernetであり、
前記データ用通信回線は、ファイバチャネルであるストレージ装置。
【請求項１７】
データをブロック単位で格納するとともにその一部をキャッシュ可能なストレージ装置、および該ストレージ装置からファイル単位でデータを読み出すホストコンピュータ、および前記ファイルとブロックとの対応関係を記憶したメタデータを管理するメタデータ管理装置とが備えられ、
前記ストレージ装置とホストコンピュータとは、前記データを転送するためのデータ用通信回線で接続されるとともに、前記ストレージ装置、ホストコンピュータ、および該メタデータ管理装置は、前記データ用通信回線とは別に設けられ、前記メタデータを伝達するためのメタデータ用通信回線で接続されたシステムにおいて、前記メタデータ管理装置で動作するコンピュータプログラムであって、
前記ホストコンピュータから、読み出すべきファイルの指定を、前記メタデータ用通信回線を介して受け付けるためのプログラムコードと、
該読み出すべきファイルに対応したメタデータを、前記メタデータ用通信回線を介して、該ホストコンピュータに提供するためのプログラムコードと、
前記ストレージ装置に対して、前記メタデータ用通信回線を介して、前記メタデータに応じたブロックに格納されたデータのキャッシュを指示するためのプログラムコードとを備えるコンピュータプログラム。
【請求項１８】
請求項１７記載のコンピュータプログラムであって、
更に、予め用意されたルールに基づき、前記キャッシュの要否を決定するプログラムコードを含むコンピュータプログラム。
【請求項１９】
データをブロック単位で格納するとともにその一部をキャッシュ可能なストレージ装置、および該ストレージ装置からファイル単位でデータを読み出すホストコンピュータ、および前記ファイルとブロックとの対応関係を記憶したメタデータを管理するメタデータ管理装置とが備えられ、
前記ストレージ装置とホストコンピュータとは、前記データを転送するためのデータ用通信回線で接続されるとともに、前記ストレージ装置、ホストコンピュータ、および該メタデータ管理装置は、前記データ用通信回線とは別に設けられ、前記メタデータを伝達するためのメタデータ用通信回線で接続されたシステムにおいて、前記ストレージ装置で動作するコンピュータプログラムであって、
前記メタデータ管理装置から、前記メタデータ用通信回線を介して、キャッシュに関する要求を受信するためのプログラムコードと、
該要求に応じて、前記キャッシュを行うためのプログラムコードと、
前記ホストコンピュータからの要求に応じて、前記データ用通信回線を介して、前記キャッシュに格納されたデータを優先してデータの提供を行うためのプログラムコードとを備えるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、データをブロック単位で格納するストレージ装置からのデータの読み出し制御に関する。
【背景技術】
【０００２】
複数のホストコンピュータが、ネットワークに接続されたストレージ装置を共有するシステムの一形態としてNASoverSANが知られている。NASoverSANとは、SAN(Storage Area Network)環境で、NAS(Network Attached Storage)により、各ホストコンピュータが共有のストレージ装置にファイルを格納・読み出しする技術である（特許文献１〜３参照）。
【０００３】
NASoverSANでは、ホストコンピュータが利用するファイルは、ストレージ装置内にブロック単位で格納される。ファイルとブロックとの対応付けはメタデータとして管理される。ネットワークにはこのメタデータを管理するメタデータ管理装置が接続されている。ストレージ装置、ホストコンピュータ、メタデータ管理装置は、Ethernet（登録商標）などの比較的安価な通信回線で接続される。ストレージ装置およびホストコンピュータ間は、更に、ファイバチャネルなど高速性が確保される通信回線で接続される。
【０００４】
ストレージ装置に格納されたデータは、次の手順で読み出される。まず、ホストコンピュータは、読み出すべきファイルを指定して、データが格納されているブロック（以下、「位置情報」と呼ぶ）を問い合わせる。メタデータ管理装置は、メタデータに基づいて、位置情報を返信する。これらの通信は、Ethernetを通じて行われる。ホストコンピュータは、次に、取得された位置情報に基づき、ストレージ装置にデータの読み出しを要求する。ストレージ装置は、指定されたブロックに格納されたデータを、ファイバチャネルを介してホストコンピュータに提供する。
【０００５】
特許文献１、２にはメタデータ管理装置がストレージ装置とは別に設けられたシステム例が開示され、特許文献３にはメタデータ管理装置がストレージ装置内に設けられたシステム例が開示されている。
【０００６】
【特許文献１】特開２００２−１０８６７３号公報
【特許文献２】特開平７−７３０８５号公報
【特許文献３】特開２００２−２３９６０号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
NASoverSANでは、更に、ストレージ装置からのデータの読み出し速度向上が要求されていた。ストレージ装置には、一旦読み出されたデータをキャッシュしておく機能が備えられているが、更なる改善が望まれていた。この課題は、ブロック単位でデータを格納するストレージ装置からファイル単位でデータの読み出しを行うシステムに共通の課題であった。本発明は、かかるシステムにおいてデータの読み出し速度を向上することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、ストレージ装置、ホストコンピュータ、メタデータ管理装置が接続されたデータ格納システム、例えばNASoverSANを対象とする。ストレージ装置は、データをブロック単位で格納する装置であり、その一部をキャッシュする機能を有している。ホストコンピュータは、ユーザが使用する装置であり、ストレージ装置からファイル単位でデータを読み出す。メタデータ管理装置は、ファイルとブロックとの対応関係を記憶したメタデータを管理する。メタデータはメタデータ管理装置およびストレージ装置のいずれに格納されていてもよい。メタデータ管理装置は、ストレージ装置またはホストコンピュータとは別体であってもよいし、これらに内蔵されていてもよい。
【０００９】
ストレージ装置、ホストコンピュータ、およびメタデータ管理装置は、メタデータを伝達するためのメタデータ用通信回線で接続される。ストレージ装置とホストコンピュータとは、さらに、データを転送するためのデータ用通信回線で接続される。本発明において、メタデータ用通信回線としては、例えば、Ethernet（登録商標）を用いることができる。また、データ用通信回線としては、ファイバチャネルを用いることができる。メタデータがストレージ装置内に格納されている場合には、メタデータ管理装置が速やかにこれらの情報を読み出すことができるよう、メタデータ管理装置とストレージ装置との間もメタデータ用通信回線で接続することが好ましい。
【００１０】
本発明では、データを読み出す際には、ホストコンピュータがメタデータ管理装置に対して、読み出すべきファイルを指定してメタデータの問い合わせを行う。メタデータ管理装置は、この問い合わせに応じてメタデータをホストコンピュータに返信する。また、メタデータ管理装置は、ストレージ装置に対して、メタデータに応じたブロックに格納されたデータのキャッシュを指示する。ストレージ装置は、メタデータ管理装置から指示されたデータを読み出してキャッシュする（以下、この処理を事前読み出しという意味で「プリフェッチ」と称する）。ホストコンピュータが、メタデータに基づいてストレージ装置に対してデータの読み出し要求を行うと、ストレージ装置は読み出し要求に応じたデータをホストコンピュータに送信する。
【００１１】
本発明のデータ読出方法によれば、ストレージ装置でプリフェッチを行うことにより、ホストコンピュータへのデータ提供に要する時間を短縮することができる。
【００１２】
ストレージ装置のキャッシュ領域には制限があるため、本発明では、予め用意されたルールに基づき、キャッシュの要否を決定するようにしてもよい。こうすることで、キャッシュ領域を有効活用することができ、高速での読み出しが要求されるデータに対して、一定レベルの読出速度を保証することが可能となる。キャッシュ要否を決定するためのルールは、例えば、読み出し対象となるファイル単位、読み出しを行うユーザ単位、およびホストコンピュータ単位の少なくとも一つに基づき設定することができる。こうすることで、例えば、特定のファイルについての読出要求、または特定のユーザ、特定のホストコンピュータからの読出要求についてのみキャッシュを行うという制御が可能となる。
【００１３】
システムの利便性向上の観点から、これらのルールは、所定の権限を有するユーザによって変更可能とすることが好ましい。例えば、キャッシュ可否を判断する機能を実現するためのモジュールを単位として、入れ替えまたは書き換え可能とする方法を採ることができる。別の態様として、キャッシュの要否を規定するとともにユーザによって変更可能に設けられたルール表を設け、固定のモジュールが、このルール表を参照してキャッシュの要否を決定するようにしてもよい。後者の態様では、ルール表の使い分け、または編集によって、キャッシュの可否を容易に変更することができる利点がある。
【００１４】
本発明において、キャッシュの指示は種々のタイミングで行うことができるが、メタデータ管理装置がメタデータをホストコンピュータに返信する前に行うことが好ましい。こうすることで、ホストコンピュータがストレージ装置にデータの読み出しを要求するまでに、より確実にプリフェッチを完了させることが可能となる。
【００１５】
本発明における上述の特徴は必ずしも全てが備えられている必要はなく、一部を適宜、省略したり組み合わせたりすることが可能である。また、本発明は、上述のデータ読出方法に限らず種々の態様で構成可能である。例えば、上記システムに利用されるメタデータ管理装置やストレージ装置として構成してもよい。これらの装置において、上述の各機能を実現するためのコンピュータプログラム、およびかかるコンピュータプログラムを記録したコンピュータ読み取り可能な記憶媒体として構成することもできる。ここで、記憶媒体としては、フレキシブルディスクやＣＤ−ＲＯＭ、ＤＶＤ、光磁気ディスク、ＩＣカード、ＲＯＭカートリッジ、パンチカード、バーコードなどの符号が印刷された印刷物、コンピュータの内部記憶装置（ＲＡＭやＲＯＭなどのメモリ）および外部記憶装置などコンピュータが読取り可能な種々の媒体を利用できる。
【発明を実施するための最良の形態】
【００１６】
本発明の実施例について以下の順序で説明する。
Ａ．システム構成：
Ｂ．データ読出処理：
Ｃ．変形例：
Ｃ１．第１変形例：
Ｃ２．第２変形例：
【００１７】
Ａ．システム構成：
図１は実施例としてのデータ格納システムの構成を示す説明図である。このシステムは、NASoverSANでデータの格納、読み出しを実現するシステムであり、メタデータ管理装置１００、ユーザノード２００、ストレージ装置３００が、ファイバチャネル(Fibre Channel)１０により、ファイバチャネルスイッチ１２を介して相互に接続されている。メタデータ管理装置１００とユーザノード２００の間は、更に、Ethernet（登録商標）をもちいたＬＡＮ（Local Area Network）２０で接続されている。
【００１８】
ユーザノード２００は、ユーザが使用するコンピュータであり、図示した台数に限らず、１台または３台以上であってもよい。ストレージ装置３００は、ユーザが生成した文書ファイルその他のファイルを、ファイルと無関係に用意された既定サイズのブロック単位で格納する。メタデータ管理装置１００は、ユーザノード２００がストレージ装置３００に対して、ファイルの書き込み、読み出しなどのアクセスを行う際、対象となるファイルに対応したブロックの番号をユーザノード２００に提供する。ユーザノード２００は、ファイルのアクセス時にはメタデータ管理装置１００にブロック番号を問い合わせた後、ブロック番号を指定してストレージ装置３００にデータの読み出し、書き込みを指示することになる。
【００１９】
図中には、ストレージ装置３００の内部構成を併せて示した。ストレージ装置３００には、データをブロック単位で格納するためのディスク装置３２０が備えられている。ディスク装置３２０の内部は、メタデータ格納領域３２２と、ユーザデータ格納領域３２４が設けられている。ユーザデータ格納領域３２４は、ユーザノード２００のユーザが生成した文書ファイルその他のデータを格納する領域である。メタデータ格納領域３２２は、各ファイルのデータが格納されたブロック番号を管理するためのメタデータを格納する領域である。メタデータの内容については後述する。
【００２０】
ストレージ装置３００の動作は、ＣＰＵ、メモリをバスで接続して構成されるコントローラ３１０によって制御される。コントローラ３１０の内部には、ディスク装置３２０に対するデータの読み書き時に利用されるキャッシュメモリ３１２が用意されている。ストレージ装置３００は、ＨＢＡ(Host Bus Adaptor)３０２を介してファイバチャネル１０に接続されており、コントローラ３１０はＨＢＡ３０２を介してその他の装置と通信を行う。
【００２１】
図２はメタデータの内容を模式的に示した説明図である。ユーザノード２００は、ファイル単位でデータの書き込み、読み出しを行うが、ディスク装置３２０にはデータはファイルと無関係に用意された既定サイズのブロック単位で格納される。メタデータは、両者の対応付けを記録するテーブルである。
【００２２】
図示する通り、本実施例のメタデータには、パス名で指定される各ファイルに対して、ファイル長、属性、ブロック番号が記録される。これはメタデータの一例に過ぎず、更に多くの情報を記録しても構わない。ファイル長とは、各ファイルのサイズである。属性とは、各ファイルのアクセス権限、即ちパーミッションである。「ｒ」は読み出し権限、「ｗ」は書き込み権限、「ｘ」は実行権限を意味する。また、左から１〜３桁はファイルのオーナーに対する権限、４〜６桁はユーザグループに対する権限、７〜９桁はその他のユーザに対する権限を表している。
【００２３】
ブロック番号は、各ファイルのデータが記録されているブロックを特定する番号である。例えば、「００１．ｄａｔ」なるファイルについては、ブロック番号「0x0000 1000 0001 0000〜0x0000 1000 0001 0002」の３カ所に亘って記録されていることが分かる。メタデータは、ディスク装置３２０へのデータの書き込み、属性その他の変更が行われるたびに、内容が変更される。
【００２４】
メタデータは、メタデータ管理装置１００のみが使用するデータであるため、メタデータ管理装置１００内に格納しておいても構わない。
【００２５】
図３はユーザノード２００の内部構成を示す説明図である。ユーザノード２００は、内部にＣＰＵ２０２、ＲＡＭ  ，ＲＯＭ，およびハードディスクなどのメモリ２０４を備える汎用のパーソナルコンピュータなどによって構成することができる。本実施例では、ユーザノード２００は、ファイバチャネル１０に接続するためのＨＢＡ２０８、ＬＡＮ２０に接続するためのＮＩＣ（Network Interface Card）２０６を備えており、これらのインタフェースを通じて、それぞれ外部の装置との通信を行う。
【００２６】
ユーザノード２００では、ＣＰＵ２０２が、メモリ２０４に格納されたプログラムを実行することで種々の機能を実現する。かかるプログラムには、オペレーティングシステム２２０、およびその上で稼働するアプリケーションプログラム２１０が含まれる。アプリケーションプログラム２１０は、動作時に種々のファイルへのアクセス、即ちストレージ装置３００へのファイルの書き込み、ストレージ装置３００からのファイルの読み出しを行う。
【００２７】
図中には、ファイルへのアクセス時にオペレーティングシステム２２０が利用するモジュールを示した。ＨＢＡドライバ２２８およびＮＩＣドライバ２２６は、それぞれＨＢＡ２０８、ＮＩＣ２０６の動作を制御する。メタデータ要求モジュール２２２は、アクセス対象となるファイル名を指定して、メタデータ管理装置１００にブロック番号の通知を要求する。この通信は、ＬＡＮ２０を介して行われる。メタデータ要求モジュール２２２は、取得されたブロック番号をユーザデータアクセスモジュール２２４に受け渡す。ユーザデータアクセスモジュール２２４は、このブロック番号を指定して、ストレージ装置３００に対して、データの読み出し、書き込みを行う。この通信は、ファイバチャネル１０を介して行われる。
【００２８】
本実施例では、メタデータ要求モジュール２２２およびユーザデータアクセスモジュール２２４は、ソフトウェア的に構成されているが、これらの機能はＡＳＩＣなどによってハードウェア的に実現してもよい。
【００２９】
図４はメタデータ管理装置１００の内部構成を示す説明図である。メタデータ管理装置１００は、内部にＣＰＵ１０２、ＲＡＭ  ，ＲＯＭ，およびハードディスクなどのメモリ１０４を備える汎用のパーソナルコンピュータなどによって構成することができる。本実施例では、メタデータ管理装置１００は、ファイバチャネル１０に接続するためのＨＢＡ１０８、ＬＡＮ２０に接続するためのＮＩＣ（Network Interface Card）１０６を備えており、これらのインタフェースを通じて、それぞれ外部の装置との通信を行う。
【００３０】
図中には、ファイルへのアクセス時にＣＰＵ１０２が実行するプログラムとして用意された各モジュールを示した。ＨＢＡドライバ１２８およびＮＩＣドライバ１２６は、それぞれＨＢＡ１０８、ＮＩＣ１０６の動作を制御する。メタデータ提供モジュール１２２は、メタデータを参照して、ユーザノード２００から指定されたファイル名に対応するブロック番号を、ユーザノード２００に提供する。この通信は、ＬＡＮ２０を介して行われる。
【００３１】
本実施例では、メタデータはストレージ装置３００の既定のブロックに格納されている。メタデータ管理モジュール１２４は、メタデータ提供モジュール１２２からの要求に応じて、ストレージ装置３００からメタデータを取得する。この通信は、ファイバチャネル１０を介して行われる。メタデータ提供モジュール１２２は、こうして取得されたメタデータを検索することで、指定されたファイル名に対応するブロック番号を得ることができる。
【００３２】
プリフェッチ制御モジュール１１０は、ストレージ装置３００に、ユーザノード２００から指定されたデータのプリフェッチ、即ちディスク装置３２０からデータを読み出しキャッシュメモリ３１２に格納する処理を指示する。本実施例では、キャッシュメモリ３１２を有効活用するため、条件に応じてプリフェッチの要否を切り換え可能とした。この条件は、プリフェッチルール表１１２として用意されている。このプリフェッチルール表１１２に規定された条件に適合するか否かの判断に必要な情報は、メタデータ提供モジュール１２２からプリフェッチ制御モジュール１１０に受け渡される。
【００３３】
図中にプリフェッチルール表１１２の例を示した。有効ビットは、各条件の有効性を表しており、「１」は有効、「０」は無効を意味している。種別は、各条件がファイルまたはユーザノードのいずれを対象として設定されているかを表している。ファイルに対して設定された条件については、対象としてファイル名またはディレクトリ名が格納される。ノユーザノードに対して設定された条件については、対象としてユーザノード名、ユーザノードのアドレス、ユーザノードを使用するユーザのＩＤなどが格納される。プリフェッチルール表１１２には、こうして設定された各対象について、プリフェッチの要否が格納され、プリフェッチする場合にはそのサイズ制限が格納される。
【００３４】
本実施例のプリフェッチルール表１１２は、データ格納システムの管理者がメタデータ管理装置１００を操作することで任意に設定、変更可能である。ルール表管理モジュール１１４は、プリフェッチルール表１１２を設定、変更するためのインタフェース画面の提供、管理者権限の認証、管理者によって入力されたコマンドに応じた処理を実現する。プリフェッチルール表１１２は、メタデータ管理装置１００の操作の他、ユーザノード２００からリモートで変更可能としてもよい。
【００３５】
Ｂ．データ読出処理：
図５はデータ読出処理のフローチャートである。左側にユーザノード２００の処理、中央にメタデータ管理装置１００の処理、右側にストレージ装置３００の処理を示した。装置間の通信について、実線で示した通信はファイバチャネル１０、一点鎖線で示した通信はＬＡＮ２０を介して行われる。
【００３６】
まず、ユーザノード２００において、アプリケーションプログラムの処理過程などで、ファイルの読み出し要求が発生すると、ユーザノード２００はメタデータ管理装置１００に対して、ＬＡＮ２０を介して、ブロック番号の問い合わせ要求を発信する（ステップＳ１０）。この時、メタデータ管理装置１００には、読み出しの対象となるファイル名が指定される。この指定には、更に、オフセットおよびデータ長の指定を含めても良い。オフセットとは、ファイルの先頭を基準として読み出し対象となるデータの相対的な位置を指定する情報である。データ長とは、読み出すべきデータのサイズである。オフセットを指定することにより、例えば、ファイルの途中からの読み出しが可能となる。また、データ長を指定することにより、ファイルの一部のみの読み出しが可能となる。
【００３７】
メタデータ管理装置１００は、ユーザノード２００からの要求に応じて、メタデータを検索する（ステップＳ２０）。この検索を実行するために、メタデータ管理装置１００は、メタデータが格納された既定のブロック番号を指定してストレージ装置３００にデータの読出要求を出力する。ストレージ装置３００が、この要求に応じてファイバチャネル１０を介してメタデータを提供することにより（ステップＳ３０）、メタデータの検索が可能となる。
【００３８】
メタデータ管理装置１００は、次に、プリフェッチルール表１１２について、有効ビット「１」が付された条件を検索し（ステップＳ２２）、プリフェッチするか否かを判断する（ステップＳ２４）。指定されたファイル、およびブロック番号の問い合わせ要求を発信したユーザノード２００が適合する条件が、プリフェッチルール表１１２中に見いだされた場合にはその設定に従い、そうでない場合にはデフォルトの設定に従って、プリフェッチの要否が判断される。
【００３９】
プリフェッチを行うべきと判断された場合には（ステップＳ２４）、メタデータ管理装置１００は、ストレージ装置３００に対して、ブロック番号を指定して、プリフェッチを指示する（ステップＳ２６）。この通信は、ファイバチャネル１０を介して行われる。ストレージ装置３００は、プリフェッチの実行、即ち指定されたデータをディスク装置３２０から読み出し、キャッシュメモリ３１２に格納する（ステップＳ３２）。
【００４０】
メタデータ管理装置１００は、プリフェッチの指示が完了した後（ステップＳ２６）、ＬＡＮ２０を介して、ユーザノード２００にブロック番号を提供する（ステップＳ２８）。ユーザノード２００は、このブロック番号に基づいて、ファイバチャネル１０を介してストレージ装置３００に対してユーザデータの読出要求を送信する（ステップＳ１２）。ストレージ装置３００が、この要求に応じてユーザデータを提供することにより（ステップＳ３４）、ファイルの読出処理は完了する。ユーザから要求されたデータは、キャッシュメモリ３１２に、プリフェッチされているため、ストレージ装置３００は、速やかにデータを提供することができる。
【００４１】
本実施例では、ユーザノード２００にブロック番号を通知するのに先だって、ストレージ装置３００に対するプリフェッチの指示を行っているが、これらの処理の順序は不問である。但し、ブロック番号の通知よりも、プリフェッチを先行させることにより、ユーザノード２００からの読出要求を受信するまでに、より確実にプリフェッチを完了させることができ、データの読出速度が保証される利点がある。
【００４２】
本実施例では、プリフェッチルール表１１２に基づいてプリフェッチの要否を切り換えているが、ステップＳ２２、Ｓ２４の処理を省略し、無条件にプリフェッチしても構わない。但し、プリフェッチの要否を切り換えることにより、キャッシュメモリ３１２の容量を、高速での読み出しが要求されるデータに対して有効に活用することができ、一定レベルでの読み出し速度を保証することができる利点がある。
【００４３】
Ｃ．変形例：
Ｃ１．第１変形例：
図６は変形例としてのデータ格納システムの構成を示す説明図である。変形例のシステムでは、メタデータ管理ボード１００Ａがストレージ装置３００Ａに内蔵されている。メタデータ管理ボード１００Ａの内部構成は、実施例におけるメタデータ管理装置１００（図４）と同様である。メタデータ管理ボード１００ＡがＬＡＮ２０を介した通信を行うことができるよう、ストレージ装置３００Ａは、併せてＮＩＣ３０４を備えている。
【００４４】
変形例では、ネットワーク上に管理者用の端末３０を設けた。端末３０は、例えば、汎用のパーソナルコンピュータに、ＮＩＣ，ＨＢＡなどを備えることで構成することができる。管理者は、この端末３０を操作して、メタデータ管理ボード１００Ａにアクセスすることにより、リモートでプリフェッチルール表の設定、変更などを行うことができる。かかる操作をリモートで実現する方法については、周知の技術を適用可能であるため、詳細な説明を省略する。
【００４５】
変形例のシステムでは、実施例で説明したデータ読出処理（図５）中のメタデータ管理装置１００の処理を、メタデータ管理ボード１００Ａが実行することにより、データの読出処理を実行することができる。この処理により、実施例と同様の効果、即ち、プリフェッチによる読出速度の向上効果、プリフェッチ要否の切換によるキャッシュメモリ３１２の有効活用という効果を得ることができる。
【００４６】
Ｃ２．第２変形例：
図７は変形例としてのデータ読出処理のフローチャートである。便宜上、実施例（図１）の構成を対象として処理内容を説明するが、この処理は、変形例（図６）の構成に対しても適用可能である。変形例の処理では、メタデータ管理装置１００がプリフェッチの履歴を管理しており、この履歴を参照することで、ストレージ装置３００に対するプリフェッチ指示の頻度を抑制する。
【００４７】
ユーザノード２００がメタデータ管理装置１００に対して、ファイル名を指定して、ブロック番号の要求を送信すると（ステップＳ１０）、メタデータ管理装置１００は、ストレージ装置３００からメタデータの提供を受け（ステップＳ３０）、メタデータの検索を行う（ステップＳ２０）。
【００４８】
メタデータ管理装置１００は、次に、ユーザノード２００から要求されたファイル名をキーとして、プリフェッチ履歴を検索する（ステップＳ２１ａ）。問い合わせ対象となったファイルについて、過去に、ネットワーク上のいずれかのユーザノード２００からブロック番号が要求されている場合には、既にストレージ装置３００にプリフェッチが完了していることになる。プリフェッチが完了しているデータについては、プリフェッチの指示を省略しても差し支えない。従って、メタデータ管理装置１００は、この検索によってプリフェッチ指示の要否を判定することが可能となる。
【００４９】
但し、プリフェッチ指示したデータは、ストレージ装置３００のキャッシュに一時的に格納されているに過ぎないため、過去にプリフェッチされたからといって、必ずしも現時点でデータがキャッシュに存在するとは限らない。従って、プリフェッチによる読出速度の向上効果を安定的に確保するためには、メタデータ管理装置１００は、過去のプリフェッチからの経過時間が所定範囲内のファイルについてのみプリフェッチ指示を省略することが好ましい。所定範囲は、ストレージ装置３００においてキャッシュされたデータが保持されていることが概ね保証される範囲で任意に設定可能である。
【００５０】
過去のプリフェッチからの経過時間は種々の形で考慮することができる。例えば、プリフェッチ履歴には、プリフェッチ指示を行った時刻、またはプリフェッチ指示からの経過時間とファイル名とを対応づけて管理しておいてもよい。かかる形式のプリフェッチ履歴を用いる場合、メタデータ管理装置１００は、プリフェッチからの経過時間を考慮して検索範囲を制限すればよい。キャッシュされたデータの保持が保証される期間は、ストレージ装置３００からのデータの読出頻度等によって変動するのが通常であるが、この態様では、こうした変動を考慮して検索範囲を柔軟に変更することが可能となる利点がある。
【００５１】
別の態様として、メタデータ管理装置１００が定期的にプリフェッチ履歴をメンテナンスし、プリフェッチ指示から所定期間を経過したファイル名については、プリフェッチ履歴から削除してもよい。この態様では、所定期間は固定的となるものの、プリフェッチ履歴のデータ容量を抑制することができ、プリフェッチ履歴の管理に要するメモリ容量および検索の所要時間を抑制することができる利点がある。
【００５２】
メタデータ管理装置１００は、上述した検索処理によって、問い合わせ対象となったファイル名がプリフェッチ履歴に存在しない場合には（ステップＳ２１ｂ）、対象となったデータはキャッシュされていないものと判断する。従って、メタデータ管理装置１００は、プリフェッチルール表を検索し（ステップＳ２２）、プリフェッチの要否を判断した上で（ステップＳ２４）、ストレージ装置３００にプリフェッチ指示を出力する（ステップＳ２６）。ストレージ装置３００は、この指示に応じてプリフェッチを実行する（ステップＳ３２）。プリフェッチ指示が完了すると、メタデータ管理装置１００は、プリフェッチ履歴を更新する（ステップＳ２７）。以下の処理は、実施例（図５）と同様であるため、説明を省略する。
【００５３】
メタデータ管理装置１００は、ファイル名がプリフェッチ履歴に存在する場合には、プリフェッチ指示は不要と判断し、ステップＳ２２〜Ｓ２７の処理をスキップする。
【００５４】
変形例の処理によれば、同一のユーザノードまたは異なるユーザノードから、同一のファイルに対するアクセスが頻繁に行われた場合に、プリフェッチ指示の出力頻度を抑制することができる。従って、メタデータ１００とストレージ装置３００との間の回線負荷、両者の処理負荷の軽減を図ることができる。
【００５５】
以上、本発明の種々の実施例について説明したが、本発明はこれらの実施例に限定されず、その趣旨を逸脱しない範囲で種々の構成を採ることができることはいうまでもない。
【図面の簡単な説明】
【００５６】
【図１】実施例としてのデータ格納システムの構成を示す説明図である。
【図２】メタデータの内容を模式的に示した説明図である。
【図３】ユーザノード２００の内部構成を示す説明図である。
【図４】メタデータ管理装置１００の内部構成を示す説明図である。
【図５】データ読出処理のフローチャートである。
【図６】変形例としてのデータ格納システムの構成を示す説明図である。
【図７】変形例としてのデータ読出処理のフローチャートである。
【符号の説明】
【００５７】
１０...ファイバチャネル
２０...ＬＡＮ
１２...ファイバチャネルスイッチ
３０...端末
１００...メタデータ管理装置
１００Ａ...メタデータ管理ボード
２２０...オペレーティングシステム
１０２...ＣＰＵ
１０４...メモリ
１０６...ＮＩＣ
１０８...ＨＢＡ
１１０...プリフェッチ制御モジュール
１１２...プリフェッチルール表
１１４...ルール表管理モジュール
１２２...メタデータ提供モジュール
１２４...メタデータ管理モジュール
１２６...ＮＩＣドライバ
１２８...ＨＢＡドライバ
２００...ユーザノード
２０２...ＣＰＵ
２０４...メモリ
２０６...ＮＩＣ
２０８...ＨＢＡ
２１０...アプリケーションプログラム
２２２...メタデータ要求モジュール
２２４...ユーザデータアクセスモジュール
２２６...ＮＩＣドライバ
２２８...ＨＢＡドライバ
３００、３００Ａ...ストレージ装置
３０２...ＨＢＡ
３０４...ＮＩＣ
３１０...コントローラ
３１２...キャッシュメモリ
３２０...ストレージ装置
３２２...メタデータ格納領域
３２４...ユーザデータ格納領域
【図１】
2005148868.tif 000003
【図２】
2005148868.tif 000004
【図３】
2005148868.tif 000005
【図４】
2005148868.tif 000006
【図５】
2005148868.tif 000007
【図６】
2005148868.tif 000008
【図７】
2005148868.tif 000009