(57)【要約】【課題】ネットワークファイルシステムのキャッシュ機構との整合性を保ちつつ、キャッシュ機構を使用するストレージエリアネットワーク用ファイルシステムを提供する。【解決手段】クライアントホスト２は、データの入出力用メモリ領域２５と、キャッシュ用メモリ領域２５と、キャッシュデータを更新可能に管理するキャッシュ機構２４を有するネットワークファイルシステム２７と、ストレージエリアネットワーク（ＳＡＮ）経由でディスク装置に対してデータの読み書きを行うＳＡＮ用ファイルシステム２１とを有する。ＳＡＮ用ファイルシステム２１は、ネットワークファイルシステム２７のキャッシュ機構２４にアクセスするキャッシュアクセス機構２９と、そのキャッシュ機構２４を用いて、ＳＡＮ経由でディスク装置に対して読み書きされたデータを入出力用メモリ領域２５からキャッシュ用メモリ領域２５に転送するデータ転送機能１０とを備える。【選択図】図３
2007249496.tif 000002
【特許請求の範囲】
【請求項１】
データを読み書き可能に保存するディスク装置にストレージエリアネットワークを介して接続されたサーバに、ネットワークを介して通信可能に接続されると共に、前記ディスク装置に前記ストレージエリアネットワークを介して接続され、前記データの入出力用メモリ領域と、前記ネットワーク経由で前記ディスク装置に対して読み書きされた前記データをキャッシュデータとして格納するキャッシュ用メモリ領域と、前記キャッシュ用メモリ領域のキャッシュデータを更新可能に管理するキャッシュ機構を有しかつ前記ネットワーク経由で前記サーバを介して前記ディスク装置に対して前記データの読み書きを行うネットワークファイルシステムとを有するクライアントで用いられ、前記ストレージエリアネットワーク経由で前記ディスク装置に対して前記データの読み書きを行うストレージエリアネットワーク用ファイルシステムであって、
前記ディスク装置に対する前記データの読み書き時に前記ネットワークファイルシステムを介して前記キャッシュ機構にアクセスするアクセス手段と、
前記アクセス手段によりアクセスされた前記キャッシュ機構を用いて、前記ストレージエリアネットワーク経由で前記ディスク装置に対して読み書きされたデータを前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送するデータ転送手段とを備えたことを特徴とするストレージエリアネットワーク用ファイルシステム。
【請求項２】
前記データ転送手段は、
前記ディスク装置からの前記データの読み込み時に、前記キャッシュ機構を用いて、前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在するか否かを判断する判断手段と、
前記判断手段により前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在する場合、前記キャッシュ機構を用いて、前記キャッシュ用メモリ領域から前記キャッシュデータを前記データとして前記入出力用メモリ領域に読み込む第１のデータ読み込み手段と、
前記判断手段により前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在しない場合、前記サーバから前記ネットワーク経由で前記ディスク装置のデータの物理的位置を示すメタデータを取得し、そのメタデータに基づいて前記ストレージエリアネットワーク経由で前記ディスク装置から前記データを前記入出力用メモリ領域に読み込む第２のデータ読み込み手段と、
前記第２のデータ読み込み手段により読み込まれた前記データを、前記キャッシュ機構を用いて、前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送する手段とを有することを特徴とする請求項１記載のストレージエリアネットワーク用ファイルシステム。
【請求項３】
前記データ転送手段は、
前記ディスク装置への前記データの書き込み時に、前記サーバから前記ネットワーク経由で前記ディスク装置のデータの物理的位置を示すメタデータを取得し、そのメタデータに基づいて、前記データを前記入出力用メモリ領域から前記ストレージエリアネットワーク経由で前記ディスク装置に書き込むデータ書き込み手段と、
前記ディスク装置に書き込まれた前記データを、前記キャッシュ機構を用いて、前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送する手段とを有することを特徴とする請求項１又は２記載のストレージエリアネットワーク用ファイルシステム。
【請求項４】
データを読み書き可能に保存するディスク装置にストレージエリアネットワークを介して接続されたサーバに、ネットワークを介して通信可能に接続されると共に、前記ディスク装置に前記ストレージエリアネットワークを介して接続され、前記データの入出力用メモリ領域と、前記ネットワーク経由で前記ディスク装置に対して読み書きされた前記データをキャッシュデータとして格納するキャッシュ用メモリ領域と、前記キャッシュ用メモリ領域のキャッシュデータを更新可能に管理するキャッシュ機構を有しかつ前記ネットワーク経由で前記サーバを介して前記ディスク装置に対して前記データの読み書きを行うネットワークファイルシステムとを有するクライアントで用いられ、前記ストレージエリアネットワーク経由で前記ディスク装置に対して前記データの読み書きを行うストレージエリアネットワーク用ファイルシステムのキャッシュ方法であって、
前記ディスク装置に対する前記データの読み書き時に前記ネットワークファイルシステムを介して前記キャッシュ機構にアクセスするステップと、
アクセスされた前記キャッシュ機構を用いて、前記ストレージエリアネットワーク経由で前記ディスク装置に対して読み書きされたデータを前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送するデータ転送ステップとを備えたことを特徴とするストレージエリアネットワーク用ファイルシステムのキャッシュ方法。
【請求項５】
前記データ転送ステップは、
前記ディスク装置からの前記データの読み込み時に、前記キャッシュ機構を用いて、前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在するか否かを判断するステップと、
前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在する場合、前記キャッシュ機構を用いて、前記キャッシュ用メモリ領域から前記キャッシュデータを前記データとして前記入出力用メモリ領域に読み込むステップと、
前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在しない場合、前記サーバから前記ネットワーク経由で前記ディスク装置のデータの物理的位置を示すメタデータを取得し、そのメタデータに基づいて前記ストレージエリアネットワーク経由で前記ディスク装置から前記データを前記入出力用メモリ領域に読み込むステップと、
前記入出力用メモリ領域に読み込まれた前記データを、前記キャッシュ機構を用いて、前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送するステップとを有することを特徴とする請求項４記載のストレージエリアネットワーク用ファイルシステムのキャッシュ方法。
【請求項６】
前記データ転送ステップは、
前記ディスク装置への前記データの書き込み時に、前記サーバから前記ネットワーク経由で前記ディスク装置のデータの物理的位置を示すメタデータを取得し、そのメタデータに基づいて、前記データを前記入出力用メモリ領域から前記ストレージエリアネットワーク経由で前記ディスク装置に書き込むステップと、
前記ディスク装置に書き込まれた前記データを、前記キャッシュ機構を用いて、前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送するステップとを有することを特徴とする請求項４又は５記載のストレージエリアネットワーク用ファイルシステムのキャッシュ方法。
【請求項７】
データを読み書き可能に保存するディスク装置にストレージエリアネットワークを介して接続されたサーバに、ネットワークを介して通信可能に接続されると共に、前記ディスク装置に前記ストレージエリアネットワークを介して接続され、前記データの入出力用メモリ領域と、前記ネットワーク経由で前記ディスク装置に対して読み書きされた前記データをキャッシュデータとして格納するキャッシュ用メモリ領域と、前記キャッシュ用メモリ領域のキャッシュデータを更新可能に管理するキャッシュ機構を有しかつ前記ネットワーク経由で前記サーバを介して前記ディスク装置に対して前記データの読み書きを行うネットワークファイルシステムとを有するクライアントで用いられ、前記ストレージエリアネットワーク経由で前記ディスク装置に対して前記データの読み書きを行うストレージエリアネットワーク用ファイルシステムのキャッシュプログラムであって、
コンピュータに、
前記ディスク装置に対する前記データの読み書き時に前記ネットワークファイルシステムを介して前記キャッシュ機構にアクセスするステップと、
アクセスされた前記キャッシュ機構を用いて、前記ストレージエリアネットワーク経由で前記ディスク装置に対して読み書きされたデータを前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送するデータ転送ステップとを実行させることを特徴とするストレージエリアネットワーク用ファイルシステムのキャッシュプログラム。
【請求項８】
前記データ転送ステップは、
前記ディスク装置からの前記データの読み込み時に、前記キャッシュ機構を用いて、前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在するか否かを判断するステップと、
前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在する場合、前記キャッシュ機構を用いて、前記キャッシュ用メモリ領域から前記キャッシュデータを前記データとして前記入出力用メモリ領域に読み込むステップと、
前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在しない場合、前記サーバから前記ネットワーク経由で前記ディスク装置のデータの物理的位置を示すメタデータを取得し、そのメタデータに基づいて前記ストレージエリアネットワーク経由で前記ディスク装置から前記データを前記入出力用メモリ領域に読み込むステップと、
前記入出力用メモリ領域に読み込まれた前記データを、前記キャッシュ機構を用いて、前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送するステップとを有することを特徴とする請求項７記載のストレージエリアネットワーク用ファイルシステムのキャッシュプログラム。
【請求項９】
前記データ転送ステップは、
前記ディスク装置への前記データの書き込み時に、前記サーバから前記ネットワーク経由で前記ディスク装置のデータの物理的位置を示すメタデータを取得し、そのメタデータに基づいて、前記データを前記入出力用メモリ領域から前記ストレージエリアネットワーク経由で前記ディスク装置に書き込むステップと、
前記ディスク装置に書き込まれた前記データを、前記キャッシュ機構を用いて、前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送するステップとを有することを特徴とする請求項７又は８記載のストレージエリアネットワーク用ファイルシステムのキャッシュプログラム。
【請求項１０】
請求項１乃至３のいずれか１項に記載のストレージエリアネットワーク用ファイルシステムを用いたことを特徴とするクライアント。
【請求項１１】
請求項１０に記載のクライアントを用いたことを特徴とするネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ストレージエリアネットワーク用ファイルシステム、そのキャッシュ方法、プログラム、クライアント、及びネットワークシステムに関し、特にディスク装置にストレージエリアネットワークを介して接続されたサーバに、ネットワークを介して通信可能に接続されると共に、そのディスク装置にストレージエリアネットワークを介して接続されたクライアントで用いるストレージエリアネットワーク用ファイルシステムのキャッシュ方法に関する。
【背景技術】
【０００２】
一般的なファイル共有の手法として知られているＮＦＳ（Network File System）では、ネットワークを介してクライアントからサーバへ、さらにサーバからディスク装置へと２度のデータ転送を行う必要がある上、１回で転送できるデータサイズが小さいため、ディスク装置が本来持っている性能を引き出すのが難しい。その対策として、サーバを経由せずに、クライアントとディスク装置間で直接データ転送を行うためのストレージエリアネットワーク（ＳＡＮ）環境を対象として、高速ファイル共有のための種々の方法の研究開発が行われている（例えば、特許文献１参照）。
【０００３】
例えば、特許文献１では、クライアントが、通信回線とサーバとを経由せず、交換機に接続されたディスク装置に対して直接データの読み書きを行えるファイル共有の手法が開示されている。しかし、この手法では、サーバを経由せずにクライアントとの間で直接データ転送を可能とする機能を有するディスク装置を前提としている。このため、そのような機能を有しない一般に入手可能なディスク装置でも適用可能な方法が望まれている。
【０００４】
そこで、非特許文献１では、Ｉ／Ｏ（Input Output：入出力）に関する制御情報のみをサーバ／クライアント間でネットワーク経由で送受信するというデーモン方式を採用し、ディスク装置の特定の機能に依存しない高速ファイル共有の手法が提案されている。この手法では、クライアントのストレージエリアネットワーク用ファイルシステムは、ディスク装置の持つデータに高速にアクセスするため、サーバのファイルシステムのメタデータからディスク装置の持つデータの物理的な位置のみをＬＡＮ経由で取得し、データ自体はＬＡＮとサーバホストを経由せずに、ストレージエリアネットワークを経由して転送を行う。このとき、サーバホストからのメタデータの転送により生じるオーバーヘッドを考慮し、一回のＩ／Ｏ量がある一定値未満の場合はネットワークファイルシステムのＩ／Ｏ機能を呼び出してＬＡＮ経由のデータ転送を行い、一回のＩ／Ｏ量がある一定値以上の場合は、ストレージエリアネットワークを利用した転送を行う。
【特許文献１】特開２０００−２５０８２１号公報
【非特許文献１】大谷  敦久、外３名、「クラスタシステムにおける高速ファイル共有のための一手法」、［online］、Linux Conference 2002、日本Linux協会、［平成１８年３月８日検索］、インターネット＜URL: http://lc.linux.or.jp/lc2002/papers/ohtani0920h.pdf＞
【発明の開示】
【発明が解決しようとする課題】
【０００５】
しかしながら、上述で提案されている従来のストレージエリアネットワーク用ファイルシステムでは、ストレージエリアネットワーク経由のＩ／Ｏの場合、大きいデータをバッファレスでディスク装置からユーザのメモリ領域に直接転送していたため、キャッシュ機構を使用することができなかった。
【０００６】
また、一回のＩ／Ｏ量が小さい場合に使用されるネットワークファイルシステムのＩ／Ｏ機能は、自身で既にキャッシュ機構を持っている。そのため、ストレージエリアネットワーク経由でＩ／Ｏを行った際に、ネットワークファイルシステムのキャッシュ機構との整合性を保つために、ネットワークファイルシステムのキャッシュを破棄するといった方法をとっており、ストレージエリアネットワーク用ファイルシステムにキャッシュ機構を持たせることができなかった。
【０００７】
本発明は、このような従来の事情を考慮してなされたもので、ディスク装置にストレージエリアネットワークを介して接続されたサーバに、ネットワークを介して通信可能に接続されると共に、そのディスク装置にストレージエリアネットワークを介して接続された
クライアントにおいて、ネットワークファイルシステムのキャッシュ機構との整合性を保ちつつ、キャッシュ機構を使用することができるストレージエリアネットワーク用ファイルシステム及びそのキャッシュ方法を提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するため、本発明に係るストレージエリアネットワーク用ファイルシステムは、データを読み書き可能に保存するディスク装置にストレージエリアネットワークを介して接続されたサーバに、ネットワークを介して通信可能に接続されると共に、前記ディスク装置に前記ストレージエリアネットワークを介して接続され、前記データの入出力用メモリ領域と、前記ネットワーク経由で前記ディスク装置に対して読み書きされた前記データをキャッシュデータとして格納するキャッシュ用メモリ領域と、前記キャッシュ用メモリ領域のキャッシュデータを更新可能に管理するキャッシュ機構を有しかつ前記ネットワーク経由で前記サーバを介して前記ディスク装置に対して前記データの読み書きを行うネットワークファイルシステムとを有するクライアントで用いられ、前記ストレージエリアネットワーク経由で前記ディスク装置に対して前記データの読み書きを行うストレージエリアネットワーク用ファイルシステムであって、前記ディスク装置に対する前記データの読み書き時に前記ネットワークファイルシステムを介して前記キャッシュ機構にアクセスするアクセス手段と、前記アクセス手段によりアクセスされた前記キャッシュ機構を用いて、前記ストレージエリアネットワーク経由で前記ディスク装置に対して読み書きされたデータを前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送するデータ転送手段とを備えたことを特徴とする。
【０００９】
本発明において、前記データ転送手段は、前記ディスク装置からの前記データの読み込み時に、前記キャッシュ機構を用いて、前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在するか否かを判断する判断手段と、前記判断手段により前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在する場合、前記キャッシュ機構を用いて、前記キャッシュ用メモリ領域から前記キャッシュデータを前記データとして前記入出力用メモリ領域に読み込む第１のデータ読み込み手段と、前記判断手段により前記キャッシュ用メモリ領域に前記データのキャッシュデータが存在しない場合、前記サーバから前記ネットワーク経由で前記ディスク装置のデータの物理的位置を示すメタデータを取得し、そのメタデータに基づいて前記ストレージエリアネットワーク経由で前記ディスク装置から前記データを前記入出力用メモリ領域に読み込む第２のデータ読み込み手段と、前記第２のデータ読み込み手段により前記入出力用メモリ領域に読み込まれた前記データを、前記キャッシュ機構を用いて、前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送する手段とを有してもよい。
【００１０】
本発明において、前記データ転送手段は、前記ディスク装置への前記データの書き込み時に、前記サーバから前記ネットワーク経由で前記ディスク装置のデータの物理的位置を示すメタデータを取得し、そのメタデータに基づいて、前記データを前記入出力用メモリ領域から前記ストレージエリアネットワーク経由で前記ディスク装置に書き込むデータ書き込み手段と、前記ディスク装置に書き込まれた前記データを、前記キャッシュ機構を用いて、前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送する手段とを有してもよい。
【００１１】
また、本発明に係るストレージエリアネットワーク用ファイルシステムのキャッシュ方法は、データを読み書き可能に保存するディスク装置にストレージエリアネットワークを介して接続されたサーバに、ネットワークを介して通信可能に接続されると共に、前記ディスク装置に前記ストレージエリアネットワークを介して接続され、前記データの入出力用メモリ領域と、前記ネットワーク経由で前記ディスク装置に対して読み書きされた前記データをキャッシュデータとして格納するキャッシュ用メモリ領域と、前記キャッシュ用メモリ領域のキャッシュデータを更新可能に管理するキャッシュ機構を有しかつ前記ネットワーク経由で前記サーバを介して前記ディスク装置に対して前記データの読み書きを行うネットワークファイルシステムとを有するクライアントで用いられ、前記ストレージエリアネットワーク経由で前記ディスク装置に対して前記データの読み書きを行うストレージエリアネットワーク用ファイルシステムのキャッシュ方法であって、前記ディスク装置に対する前記データの読み書き時に前記ネットワークファイルシステムを介して前記キャッシュ機構にアクセスするステップと、アクセスされた前記キャッシュ機構を用いて、前記ストレージエリアネットワーク経由で前記ディスク装置に対して読み書きされたデータを前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送するデータ転送ステップとを備えたことを特徴とする。
【００１２】
また、本発明に係るストレージエリアネットワーク用ファイルシステムのキャッシュプログラムは、データを読み書き可能に保存するディスク装置にストレージエリアネットワークを介して接続されたサーバに、ネットワークを介して通信可能に接続されると共に、前記ディスク装置に前記ストレージエリアネットワークを介して接続され、前記データの入出力用メモリ領域と、前記ネットワーク経由で前記ディスク装置に対して読み書きされた前記データをキャッシュデータとして格納するキャッシュ用メモリ領域と、前記キャッシュ用メモリ領域のキャッシュデータを更新可能に管理するキャッシュ機構を有しかつ前記ネットワーク経由で前記サーバを介して前記ディスク装置に対して前記データの読み書きを行うネットワークファイルシステムとを有するクライアントで用いられ、前記ストレージエリアネットワーク経由で前記ディスク装置に対して前記データの読み書きを行うストレージエリアネットワーク用ファイルシステムのキャッシュプログラムであって、コンピュータに、前記ディスク装置に対する前記データの読み書き時に前記ネットワークファイルシステムを介して前記キャッシュ機構にアクセスするステップと、アクセスされた前記キャッシュ機構を用いて、前記ストレージエリアネットワーク経由で前記ディスク装置に対して読み書きされたデータを前記入出力用メモリ領域から前記キャッシュ用メモリ領域に転送するデータ転送ステップとを実行させることを特徴とする。
【００１３】
また、本発明に係るクライアントは、上記に記載のストレージエリアネットワーク用ファイルシステムを用いたことを特徴とする。
【００１４】
さらに、本発明に係るコンピュータシステムは、上記のクライアントを用いたことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、ディスク装置にストレージエリアネットワークを介して接続されたサーバに、ネットワークを介して通信可能に接続されると共に、そのディスク装置にストレージエリアネットワークを介して接続されたクライアントにおいて、ネットワークファイルシステムのキャッシュ機構との整合性を保ちつつ、キャッシュ機構を使用することができるストレージエリアネットワーク用ファイルシステム及びそのキャッシュ方法を提供することができる。
【発明を実施するための最良の形態】
【００１６】
次に、本発明に係るストレージエリアネットワーク用ファイルシステム、そのキャッシュ方法、及びクライアントを実施するための最良の形態について図面を参照して詳細に説明する。
【００１７】
本実施の形態は、ネットワークファイルシステムのクライアントが、ＬＡＮとネットワークファイルシステムのサーバを経由せず、特許文献１等の手段によりストレージエリアネットワークに接続されたディスクに対するデータの読み書きを行った場合に、このデータをキャッシュする機構を新たに作成することなく、ネットワークファイルシステムのキャッシュ機構を使用し、ネットワークファイルシステムのキャッシュ機構が持つキャッシュとして使用可能にする機能を提供する。
【００１８】
本実施の形態は、クライアントが、ＬＡＮとサーバを経由せずに、ストレージエリアネットワークに接続されたディスク装置へデータの読み書きを行う場合に、ユーザのメモリ領域に直接転送するのではなく、オペレーティングシステム（ＯＳ）のメモリ領域（ＩＯ用メモリ領域）に転送する。その後、クライアントは、ネットワークファイルシステムのキャッシュ機構が管理しているキャッシュ用メモリ領域を取得し、読み書きしたデータをＯＳのメモリ領域からキャッシュ用メモリ領域にコピーする。
【００１９】
こうすることにより、キャッシュ用メモリ領域にコピーされたデータを、ネットワークファイルシステムとストレージエリアネットワーク用ファイルシステムからキャッシュデータとしてアクセス可能にする。また、ディスク装置とＯＳのメモリ領域の間のデータ転送と、ＯＳのメモリ領域とユーザのメモリ領域の間のデータ転送では、小さなサイズに分割することなく、大きいブロックサイズでの転送を行うことができる。メモリの転送の処理にかかる時間は、ストレージエリアネットワークに接続されたディスクのＩＯ時間と比較して無視できるほど短いので、従来通りストレージエリアネットワーク経由で高速なＩＯを行うことが可能である。
【００２０】
以上の特徴をまとめると、次の通りである。
【００２１】
１）ストレージエリアネットワークを経由してデータの読み書きを行うストレージエリアネットワーク用ファイルシステムが、自身でキャッシュ機構を持たずに、ネットワークファイルシステムのキャッシュ機構が管理しているキャッシュ用メモリ領域にデータを転送する。
【００２２】
２）ネットワークファイルシステム及びストレージエリアネットワーク用ファイルシステムが、同一キャッシュメモリを共用する。
【００２３】
３）ストレージエリアネットワーク用ファイルシステムのキャッシュ領域として、ネットワークファイルシステムのキャッシュ領域を参照し、またはその逆を行うことができる。
【実施例】
【００２４】
次に、図面を参照して、本発明の実施例について説明する。
【００２５】
図１は、本実施例に係るストレージエリアネットワーク用ファイルシステムを用いたクライアントを含むネットワークシステムの全体構成を示す。同図に示すように、本実施例は、ネットワークファイルシステムを構成するサーバホスト（サーバ）１及びそのクライアントホスト（クライアント）２と、ディスク装置３と、ストレージエリアネットワーク４と、ＬＡＮ５とから構成されている。サーバホスト１とクライアントホスト２とは、ＬＡＮ５に接続されている。また、サーバホスト１とクライアントホスト２とディスク装置３は、ストレージエリアネットワーク４に接続されている。ディスク装置３には、サーバホスト１がファイルシステムを構成している。
【００２６】
サーバホスト１は、図２に示すように、機能上、ファイルシステム１１と、このファイルシステム１１及びストレージエリアネットワーク４に接続されるストレージエリアネットワークアクセス機構１２と、ＬＡＮ５に接続されるＬＡＮアクセス機構１３と、このＬＡＮアクセス機構１３及びファイルシステム１１に接続されるメタデータ送信機構１６及びネットワークファイルシステム１５とから構成されている。
【００２７】
上記のサーバホスト１の各構成要素は、本実施例では、サーバホスト１のＣＰＵ（Central Processing Unit）により実行されるプログラムコード及びその制御データを含むソフトウェア又はその部品（コンポーネント）として、例えばオペレーティングシステム（ＯＳ）の一部又はそのＯＳ上で動作するアプリケーションソフトウェアとして提供される。サーバホスト１のハードウェア構成は、ＣＰＵ、メモリ（ＲＯＭ／ＲＡＭ）、ＩＯ装置等のコンピュータアーキテクチャに基づく既知の要素から構成され、ＩＯ装置には、ハードディスク等の記録装置や、ＬＡＮ５に通信可能に接続されるＬＡＮインターフェイスや、ストレージエリアネットワーク４に通信可能に接続される通信インターフェイス等が含まれる。従って、上記のサーバホスト１の各構成要素を成すプログラムコードは、動作時にメモリから読み込まれ、その命令がＣＰＵにより解読及び実行されることにより、各構成要素が持つ機能が実現される。
【００２８】
このうち、ファイルシステム１１は、ディスク装置３と、サーバホスト１のストレージエリアネットワークアクセス機構１２とを使用して構成されている。ディスク装置３に構成されたファイルシステム１１は、図３に示すように、データ３２を有するファイル３１を持つ。ファイル３１のデータ３２は、ディスク装置３のディスク上のオフセット３３で特定される物理的な位置に格納される。
【００２９】
クライアントホスト２は、図４に示すように、機能上、ストレージエリアネットワーク用ファイルシステム２１と、ストレージエリアネットワークアクセス機構２２と、ＬＡＮアクセス機構２３と、読み込み機能２１１を含むネットワークファイルシステムキャッシュ機構２４を有するネットワークファイルシステム２７と、キャッシュ用メモリ領域２５及びＩＯ用メモリ領域２６を有するメモリ装置２１２と、メタデータ受信機構２８と、キャッシュアクセス機構２９及びデータ転送機能２１０を有するストレージエリアネットワーク用ファイルシステム２１とを備えている。
【００３０】
上記のクライアントホスト２の各構成要素は、本実施例では、サーバホスト１のＣＰＵ（Central Processing Unit）により実行されるプログラムコード及びその制御データを含むソフトウェア又はその部品（コンポーネント）として、例えばオペレーティングシステム（ＯＳ）の一部又はそのＯＳ上で動作するアプリケーションソフトウェアとして提供される。クライアントホスト２のハードウェア構成は、ＣＰＵ、メモリ（ＲＯＭ／ＲＡＭ）、ＩＯ装置等のコンピュータアーキテクチャに基づく既知の要素から構成され、ＩＯ装置には、ハードディスク等の記録装置や、ＬＡＮ５に通信可能に接続されるＬＡＮインターフェイスや、ストレージエリアネットワーク４に通信可能に接続される通信インターフェイス等が含まれる。従って、上記のクライアントホスト２の各構成要素を成すプログラムコードは、動作時にメモリから読み込まれ、その命令がＣＰＵにより解読及び実行されることにより、各構成要素が持つ機能が実現される。
【００３１】
このうち、ストレージエリアネットワーク用ファイルシステム２１は、ネットワークファイルシステム２７と、クライアントホスト２のＬＡＮアクセス機構２３と、ＬＡＮ５と、サーバホスト１のＬＡＮアクセス機構１３と、サーバホスト１のネットワークファイルシステム１５を使用して、サーバホスト１のファイルシステム１１にアクセス可能となっている。
【００３２】
また、ネットワークファイルシステムキャッシュ機構２４は、図５に示すように、ネットワークファイルシステム２７のキャッシュデータをファイル単位で管理しており、ファイル３１のキャッシュデータを保存するメモリ領域として、キャッシュ用メモリ領域２５を持つ。
【００３３】
次に、図６の動作フローチャートを参照して、クライアントホスト２の動作を主として本実施例の全体動作について詳細に説明する。図６は、クライアントホスト２のＩＯ処理に関する動作フローを示す。図６に示す動作フローチャートは、クライアントホスト２のＣＰＵにより実行されるＯＳの一部又はアプリケーションソフトウェアを成す制御プログラムに対応するもので、上記の各構成要素に対応するプログラムと共に、クライアントホスト２内のメモリやハードディスク等の記録媒体に格納されている。
【００３４】
まず、図６に示す本実施例の動作を説明する前に、その前提となる動作について説明する。本実施例においても、前述した非特許文献１の手法のように、クライアントホスト２のストレージエリアネットワーク用ファイルシステム２１は、ディスク装置３の持つデータに高速にアクセスするため、サーバホスト１のファイルシステム１１のメタデータからディスク装置３の持つデータの物理的な位置のみをＬＡＮ５経由で取得し、データ自体はＬＡＮ５とサーバホスト１を経由せずに、ストレージエリアネットワーク４を経由して転送を行う。このとき、サーバホスト１からのメタデータの転送により生じるオーバーヘッドを考慮し、一回のＩ／Ｏ量がある一定値未満の場合はネットワークファイルシステム２７のＩ／Ｏ機能を呼び出してＬＡＮ５経由のデータ転送を行い、一回のＩ／Ｏ量がある一定値以上の場合はストレージエリアネットワーク４を利用した転送を行う。
【００３５】
本実施例では、上記のストレージエリアネットワーク用ファイルシステム２１にキャッシュ機構を持たせる場合に、新たなキャッシュ機構を実装せず、ネットワークファイルシステム２７のキャッシュ機構２４を使用して、そのキャッシュ機構２４により管理されるキャッシュ領域であるキャッシュ用メモリ領域２５を共用する方法を提供する。
【００３６】
本実施例のクライアントホスト２は、図６に示すように、まず、ストレージエリアネットワーク用ファイルシステム２１上のファイル３１に対しユーザプロセス等のプロセスからの読み込み要求又は書き込み要求により読み書きが発生すると、そのＩＯ処理に際し、ストレージエリアネットワーク用ファイルシステム２１に対応するプログラムのプロセスにより、読み込みか否かを判断する（ステップＳｔ１）。
【００３７】
上記ステップＳｔ１の判断により、ファイル３１に対するデータの読み込みの場合（ステップＳｔ１：ＹＥＳ）、クライアントホスト２は、ストレージエリアネットワーク用ファイルシステム２１に対応するプログラムのプロセスにより、キャッシュアクセス機構２９を使用して、ネットワークファイルシステムキャッシュ機構２４にアクセスし、これに対応するプログラムのプロセスにより、ファイル３１のキャッシュデータが存在するか否かを確認する（ステップＳｔ２）。
【００３８】
上記ステップＳｔ２の判断により、ファイル３１のキャッシュデータが存在する場合（ステップＳｔ２：ＹＥＳ）は、クライアントホスト２は、ファイル３１のキャッシュデータが保存されているキャッシュ用メモリ領域２５をネットワークファイルシステムキャッシュ機構２４から取得し、キャッシュ用メモリ領域２５の内容を、読み込みの要求を行ったプロセスに返却する（ステップＳｔ３）。
【００３９】
一方、ステップＳｔ１の判断にて、ファイル３１に対するデータの書き込みの場合（ステップＳｔ１：ＮＯ）、又は、ステップＳｔ２の確認にて、ファイル３１のキャッシュデータが存在しない場合（ステップＳｔ２：ＮＯ）は、クライアントホスト２は、ストレージエリアネットワーク用ファイルシステム２１に対応するプログラムのプロセスにより、メタデータ受信機構２８にアクセスし、クライアントホスト２のＬＡＮアクセス機構２３とＬＡＮ５とサーバホスト１のＬＡＮアクセス機構１３経由で、サーバホスト１のメタデータ送信機構１４からディスク装置３にあるファイル３１のデータ３２の物理的な位置であるオフセット３３を取得する（ステップＳｔ４）。
【００４０】
次に、ファイル３１に対するデータの書き込みの場合（ステップＳｔ１：ＮＯ）、クライアントホスト２は、ストレージエリアネットワーク用ファイルシステム２１に対応するプログラムのプロセスにより、ＩＯ用メモリ領域２６に保存されているファイル３１に書き込むデータを、ストレージエリアネットワークアクセス機構２２を使用して、ステップＳｔ４で得られたディスク装置３のオフセット３３に書き込む（ステップＳｔ５）。
【００４１】
また、ファイル３１に対するデータの読み込みでファイル３１のキャッシュデータが存在しない場合（ステップＳｔ２：ＮＯ）、クライアントホスト２は、ストレージエリアネットワーク用ファイルシステム２１に対応するプログラムのプロセスにより、ストレージエリアネットワークアクセス機構２２を使用して、ステップＳｔ４で得られたディスク装置３のオフセット３３にアクセスし、オフセット３３に書き込まれているデータ３２をＩＯ用メモリ領域２６へ読み込む（ステップＳｔ５）。
【００４２】
次に、クライアントホスト２は、ストレージエリアネットワーク用ファイルシステム２１に対応するプログラムのプロセスにより、キャッシュアクセス機構２９を使用して、ネットワークファイルシステムキャッシュ機構２４の読み込み機能２１１を、ファイル３１と、データ転送機能２１０と、ＩＯ用メモリ領域２６とを引数として呼び出す（ステップＳｔ６）。
【００４３】
読み込み機能２１１が提供する機能は、次の通りである。読み込み機能２１１に対応するプログラムのプロセスは、図７に示すように、ストレージエリアネットワーク用ファイルシステム２１に対応するプログラムのプロセスから、引数として、ファイルＡと、読み込み関数Ｂと、任意のデータＣとを受け取る。読み込み機能２１１に対応するプログラムのプロセスが呼び出されると、ファイルＡのデータを読み込むために、メモリ領域Ｄをメモリ装置２１２から確保し、ファイルＡと、データＣと、メモリ領域Ｄとを引数として、読み込み関数Ｂに対応するプログラムのプロセスを呼び出す。読み込み関数Ｂに対応するプログラムのプロセスを呼び出した後、メモリ領域Ｄは、ネットワークファイルシステムキャッシュ機構２４に対応するプログラムのプロセスにより、キャッシュとして管理される。
【００４４】
本実施例では、クライアントホスト２は、ストレージエリアネットワーク用ファイルシステム２１のキャッシュアクセス機構２９に対応するプログラムのプロセスにより、ネットワークファイルシステムキャッシュ機構２４の読み込み機能２１１に対応するプログラムのプロセスが呼び出されると（ステップＳｔ６）、メモリ領域Ｄとして、キャッシュ用メモリ領域２５が確保される。また、読み込み関数Ｂに対応するプログラムのプロセスとして、データ転送機能２１０に対応するプログラムのプロセスが、ファイルＡであるファイル３１と、データＣであるＩＯ用メモリ領域２６と、メモリ領域Ｄであるキャッシュ用メモリ領域２５とを引数として呼び出される（図７参照）。読み込み関数Ｂとして呼び出されたデータ転送機能２１０に対応するプログラムのプロセスは、データＣであるＩＯ用メモリ領域２６の内容、すなわちストレージエリアネットワーク４経由でディスク装置３に対して読み書きされたデータを、メモリ領域Ｄであるキャッシュ用メモリ領域２５に転送、すなわちコピーする（ステップＳｔ６）。
【００４５】
すなわち、本実施例では、ストレージエリアネットワーク用ファイルシステム２１が、ネットワークファイルシステム２７のキャッシュ機構２４が管理しているメモリ装置２１２のキャッシュ用メモリ領域２５を取得し、ストレージエリアネットワーク４経由で読み書きしたデータをキャッシュ用メモリ領域２５にコピーする。
【００４６】
こうすることにより、ネットワークファイルシステム２７のＩ／Ｏ機能を呼び出した場合に、キャッシュ用メモリ領域２５にコピーされたデータは、ネットワークファイルシステム２７のキャッシュとして利用することができる。また、キャッシュ用メモリ領域２５にコピーされたデータは、ストレージエリアネットワーク用ファイルシステム２１のキャッシュとしても利用することができる。また、キャッシュ用メモリ領域２５の更新には、ネットワークファイルシステムキャッシュ機構２４の機能を使用しているため、キャッシュの整合性も保たれる。
【００４７】
従って、本実施例によれば、ストレージエリアネットワーク用ファイルシステム２１が同一データの読み込みを行う場合には、キャッシュ用メモリ領域２５からの高速な読み込みを行うことが可能になる。また、ストレージエリアネットワーク用ファイルシステム２１は、ネットワークファイルシステム２７のキャッシュ機構２４を使用しているため、自身でキャッシュ機構を持つ必要が無い。そのため、ストレージエリアネットワーク用ファイルシステム２１自身にキャッシュ機構を持たせようとする場合と比較して、ストレージエリアネットワーク用ファイルシステム２７の開発期間を短縮することができる。
【００４８】
なお、上記実施例では、データの置かれているディスク装置３が１台の場合を説明しているが、本発明はこれに限らず、データの置かれているディスク装置３は、２台以上のディスク装置から構成されるストライピングディスクであってもよい。
【００４９】
以上、本発明の実施例を詳細に説明したが、本発明は、代表的に例示した実施例に限定されるものではなく、当業者であれば、特許請求の範囲の記載内容に基づき、本発明の要旨を逸脱しない範囲内で種々の態様に変形、変更することができる。これらの変形例や変更例も本発明の権利範囲に属するものである。
【００５０】
例えば、前述した実施例に係るシステムを構成する各部（各機構）の少なくとも一部の機能をプログラムコードを用いて実現する場合、かかるプログラムコード及びこれを記録する記録媒体は、本発明の範疇に含まれる。この場合のプログラムコードは、オペレーティングシステムや他のアプリケーションソフト等と共同して上記機能が実現される場合は、それらのプログラムコードも含まれる。また、記録媒体としては、前述したハードディスクのほか、ＲＯＭ、フレキシブルディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、磁気テープ、不揮発性のメモリカード等を用いることができる。
【産業上の利用可能性】
【００５１】
本発明は、ストレージエリアネットワーク用ファイルシステム、そのキャッシュ方法、プログラム、クライアント、及びこれを用いたネットワークシステムの用途に適用できる。また、本発明は、ＮＦＳ（Network File System）、ＣＩＦＳ（Common Internet File System）のようなネットワークファイルシステムに対して適用できる。
【図面の簡単な説明】
【００５２】
【図１】本発明の実施例に係るストレージエリアネットワーク用ファイルシステムを用いたクライアントを含むネットワークシステムの全体構成を示す概略図である。
【図２】本実施例のサーバホストの内部構成を示す概略ブロック図である。
【図３】本実施例のサーバホストで用いるファイルシステムとディスク装置との関係を説明する図である。
【図４】本実施例のクライアントホストの内部構成を示す概略ブロック図である。
【図５】本実施例のクライアントホストのキャッシュ機構とメモリ装置のキャッシュ用メモリ領域との関係を説明する図である。
【図６】本実施例のクライアントホストのＩＯ処理に関する動作を示すフローチャートである。
【図７】本実施例のクライアントホストにおいて、ストレージエリアネットワーク用ファイルシステムから呼び出されるネットワークファイルシステムのキャッシュ機構の読み込み機能を説明する図である。
【符号の説明】
【００５３】
１  サーバホスト（サーバ）
２  クライアントホスト（クライアント）
３  ディスク装置
４  ストレージエリアネットワーク（ＳＡＮ）
５  ＬＡＮ
１１  ファイルシステム
１２  ストレージエリアネットワークアクセス機構
１３  ＬＡＮアクセス機構
１５  ネットワークファイルシステム
１６  メタデータ送信機構
２１  ストレージエリアネットワーク用ファイルシステム
２２  ストレージエリアネットワークアクセス機構
２３  ＬＡＮアクセス機構
２４  ネットワークファイルシステムキャッシュ機構
２５  キャッシュ用メモリ領域
２６  ＩＯ用メモリ領域
２７  ネットワークファイルシステム
２８  メタデータ受信機構
２９  キャッシュアクセス機構
２１０  データ転送機能
２１１  読み込み機能
２１２  メモリ装置
【図１】
2007249496.tif 000003
【図２】
2007249496.tif 000004
【図３】
2007249496.tif 000005
【図４】
2007249496.tif 000006
【図５】
2007249496.tif 000007
【図６】
2007249496.tif 000008
【図７】
2007249496.tif 000009