(57)【要約】【課題】ネットワークブートに対応していない汎用オペレーティングシステムをネットワークブートする場合、ディスクキャッシュのサイズを小さく、かつディスクキャッシュのネットワーク経由の転送時間を短くすること。【解決手段】データ読出部１１は、ファイルシステム解析部１２及びデータ転送部１７からの読み出し要求に従って、ストレージ６３から要求されたセクタの内容を読み出す。データ転送部１７は、読み出されたセクタの内容に基づいて決定されたセクタ情報をコンピュータ４０に転送する。ファイルシステム解析部１２は、ストレージ６３にフォーマットされているファイルシステムの構造を解析する。ファイルデータキャッシュ部１３は、ファイル名リスト１８で指定されているファイルについて、そのファイルデータが格納されているセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定する。【選択図】      図１
2008112423.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークブートに対応していない汎用オペレーティングシステムを、ネットワークブートに対応したコンピュータで起動するために使用されるキャッシュサーバであって、
前記キャッシュサーバは、前記汎用オペレーティングシステムを格納するストレージと、ネットワークブートする前記コンピュータとの間にネットワークによって接続され、前記コンピュータ上のＢＩＯＳが提供するサービスルーチンをフックして、前記コンピュータに備えられたローカルディスクへのアクセスを、前記ストレージへのアクセスにリダイレクトする前記コンピュータの仮想ディスクＢＩＯＳサービスルーチンと、前記オペレーティングシステムにインストールされ、前記ローカルディスクへのアクセスを前記ストレージへのアクセスにリダイレクトする仮想ディスクドライバとが利用するディスクキャッシュの内容を生成するために、データ読出手段と、データ転送手段と、ファイルシステム解析手段と、ファイルデータキャッシュ手段と、フォルダデータキャッシュ手段と、マスタファイルテーブルキャッシュ手段と、特殊ファイルキャッシュ手段と、ファイル名リストとを備え、
前記データ読出手段は、前記ファイルシステム解析手段及びデータ転送手段からの読み出し要求に従って、前記ストレージから要求されたセクタの内容を読み出し、
前記データ転送手段は、前記読み出されたセクタの内容に基づいて、前記ファイルデータキャッシュ手段、前記フォルダデータキャッシュ手段、前記マスタファイルテーブルキャッシュ手段、及び前記特殊ファイルキャッシュ手段によって決定されたセクタ情報を、ディスクキャッシュを要求したコンピュータに転送し、
前記ファイルシステム解析手段は、前記ファイルデータキャッシュ手段、前記フォルダデータキャッシュ手段、前記マスタファイルテーブルキャッシュ手段、及び前記特殊ファイルキャッシュ手段からの要求に応じて、前記ストレージにフォーマットされているファイルシステムの構造を解析し、
前記ファイル名リストは、ＯＳカーネルの実行ファイル、ドライバファイル、前記汎用オペレーティングシステムの立ち上げ時の画面表示に使用される文字フォントファイル、前記オペレーティングシステム用のレジストリファイル、及び前記ファイルシステムの内部で使用される特殊ファイルのうちの少なくとも何れかを予め指定しており、
前記ファイルデータキャッシュ手段は、前記ファイル名リストで指定されている全てのファイルについて、前記ファイルシステム解析手段を利用して、そのファイルデータが格納されているセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定し、
前記フォルダデータキャッシュ手段は、前記ファイル名リストで指定されている全てのファイルについて、そのファイルが格納されているフォルダについて、前記ファイルシステム解析手段を利用して、そのフォルダデータが格納されているセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定し、
前記マスタファイルテーブルキャッシュ手段は、前記ファイル名リストで指定されている全てのファイル、及び前記全てのファイルが格納されているフォルダについて、前記ファイルシステム解析手段を利用して、前記全てのファイル及びフォルダについての情報が格納されているマスタファイルテーブル内のセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定し、
前記特殊ファイルキャッシュ手段は、前記ファイルシステムが持つジャーナルログファイル又はページングファイルを含む特殊ファイルについて、前記特殊ファイル内のヘッダ情報を読み取り、前記特殊ファイル内の有効なセクタを割り出し、割り出したセクタをディスクキャッシュされるものとして決定するキャッシュサーバ。
【請求項２】
請求項１に記載のキャッシュサーバにおいて、
ネットワークブートの途中段階で、キャッシュミスヒットのためネットワークブートが中断した場合、ミスヒットとなったセクタの情報を取得し、取得したセクタの情報に基づいて前記ファイル名リストを更新し、前記セクタがマスタファイルテーブル外である場合には、前記マスタファイルテーブルを順次検索し、前記セクタをファイルデータとして持つファイルを前記ファイル名リストに追加し、前記セクタがマスタファイルテーブル内にある場合には、そのファイル情報が格納されているファイルを、前記ファイル名リストに追加するファイル名リスト更新手段を更に備えたキャッシュサーバ。
【請求項３】
ネットワークブートに対応していない汎用オペレーティングシステムを、ネットワークブートに対応したコンピュータで起動するために、前記汎用オペレーティングシステムを格納するストレージと、前記コンピュータとの間にネットワークによって接続されたキャッシュサーバを用いるネットワークブート方法であって、
前記コンピュータは、ローカルディスクと、ＢＩＯＳと、前記ストレージへのアクセスにリダイレクトする仮想ディスクＢＩＯＳサービスルーチンと、前記ローカルディスクへのアクセスを前記ストレージへのアクセスにリダイレクトする仮想ディスクドライバと、ディスクキャッシュ手段と、起動データ記憶装置とを備え、
前記キャッシュサーバは、前記ＢＩＯＳが提供するサービスルーチンをフックして、前記ローカルディスクへのアクセスを、前記仮想ディスクＢＩＯＳサービスルーチンと前記仮想ディスクドライバとが利用するディスクキャッシュの内容を生成するために、データ読出手段と、データ転送手段と、ファイルシステム解析手段と、ファイルデータキャッシュ手段と、フォルダデータキャッシュ手段と、マスタファイルテーブルキャッシュ手段と、特殊ファイルキャッシュ手段と、ファイル名リストとを備え、
前記データ読出手段は、前記ファイルシステム解析手段及びデータ転送手段からの読み出し要求に従って、前記ストレージから、要求されたセクタの内容を読み出し、
前記ファイルシステム解析手段は、前記ファイルデータキャッシュ手段、前記フォルダデータキャッシュ手段、前記マスタファイルテーブルキャッシュ手段、及び前記特殊ファイルキャッシュ手段の要求に応じて、前記ストレージにフォーマットされているファイルシステムの構造を解析し、
前記ファイル名リストは、ＯＳカーネルの実行ファイル、ドライバファイル、前記汎用オペレーティングシステムの立ち上げ時の画面表示に使用される文字フォントファイル、前記オペレーティングシステム用のレジストリファイル、及び前記ファイルシステムの内部で使用される特殊ファイルのうちの少なくとも何れかを予め指定しており、
前記ファイルデータキャッシュ手段は、前記ファイル名リストで指定されている全てのファイルについて、前記ファイルシステム解析手段を利用して、そのファイルデータが格納されているセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定し、
前記フォルダデータキャッシュ手段は、前記ファイル名リストで指定されている全てのファイルについて、そのファイルが格納されているフォルダについて、前記ファイルシステム解析手段を利用して、そのフォルダデータが格納されているセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定し、
前記マスタファイルテーブルキャッシュ手段は、前記ファイル名リストで指定されている全てのファイル、及び前記全てのファイルが格納されているフォルダについて、前記ファイルシステム解析手段を利用して、前記全てのファイル及びフォルダについての情報が格納されているマスタファイルテーブル内のセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定し、
前記特殊ファイルキャッシュ手段は、前記ファイルシステムが持つジャーナルログファイル又はページングファイルを含む特殊ファイルについて、前記特殊ファイル内のヘッダ情報を読み取り、前記特殊ファイル内の有効なセクタを割り出し、割り出したセクタをディスクキャッシュされるものとして決定し、
前記データ転送手段は、前記読み出されたセクタの内容に基づいて、前記ファイルデータキャッシュ手段、前記フォルダデータキャッシュ手段、前記マスタファイルテーブルキャッシュ手段、及び前記特殊ファイルキャッシュ手段によって決定されたセクタ情報と、このセクタから読み出されるハッシュコードとを、ディスクキャッシュを要求したコンピュータに転送し、
前記起動データ記憶装置は、ＯＳカーネルの実行ファイル、ドライバファイル、及び前記汎用オペレーティングシステムの立ち上げ時の画面表示に使用する文字フォントファイルのうちの何れかに含まれるデータを、セクタ単位で予め記憶しており、
前記ディスクキャッシュ手段は、前記起動データ記憶装置に記憶されている各データについてハッシュコードを予め計算しておき、計算したハッシュコードのなかに、前記データ転送手段から転送されたハッシュコードと一致するものがない場合には、前記データ転送手段から、そのセクタから読み出したデータを取得し、ディスクキャッシュに展開する一方、一致するものがある場合には、前記起動データ記憶装置の該データを取得し、ディスクキャッシュに展開するようにしたネットワークブート方法。
【請求項４】
ネットワークブートに対応していない汎用オペレーティングシステムを、ネットワークブートに対応したコンピュータで起動するために使用されるキャッシュサーバに適用されるコンピュータ読取可能なプログラムであって、
前記キャッシュサーバは、前記汎用オペレーティングシステムを格納するストレージと、ネットワークブートする前記コンピュータとの間にネットワークによって接続され、前記コンピュータ上のＢＩＯＳが提供するサービスルーチンをフックして、前記コンピュータに備えられたローカルディスクへのアクセスを、前記ストレージへのアクセスにリダイレクトする前記コンピュータの仮想ディスクＢＩＯＳサービスルーチンと、前記オペレーティングシステムにインストールされ、前記ローカルディスクへのアクセスを前記ストレージへのアクセスにリダイレクトする仮想ディスクドライバとが利用するディスクキャッシュの内容を生成するために、データ読出手段と、データ転送手段と、ファイルシステム解析手段と、ファイルデータキャッシュ手段と、フォルダデータキャッシュ手段と、マスタファイルテーブルキャッシュ手段と、特殊ファイルキャッシュ手段と、ファイル名リストとを備え、前記ファイル名リストは、ＯＳカーネルの実行ファイル、ドライバファイル、前記汎用オペレーティングシステムの立ち上げ時の画面表示に使用される文字フォントファイル、前記オペレーティングシステム用のレジストリファイル、及び前記ファイルシステムの内部で使用される特殊ファイルのうちの少なくとも何れかを予め指定しており、
前記プログラムは、
前記データ読出手段が、前記ファイルシステム解析手段及びデータ転送手段からの読み出し要求に従って、前記ストレージから要求されたセクタの内容を読み出す機能、
前記データ転送手段が、前記読み出されたセクタの内容に基づいて、前記ファイルデータキャッシュ手段、前記フォルダデータキャッシュ手段、前記マスタファイルテーブルキャッシュ手段、及び前記特殊ファイルキャッシュ手段によって決定されたセクタ情報を、ディスクキャッシュを要求したコンピュータに転送する機能、
前記ファイルシステム解析手段が、前記ファイルデータキャッシュ手段、前記フォルダデータキャッシュ手段、前記マスタファイルテーブルキャッシュ手段、及び前記特殊ファイルキャッシュ手段からの要求に応じて、前記ストレージにフォーマットされているファイルシステムの構造を解析する機能、
前記ファイルデータキャッシュ手段が、前記ファイル名リストで指定されている全てのファイルについて、前記ファイルシステム解析手段を利用して、そのファイルデータが格納されているセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定する機能、
前記フォルダデータキャッシュ手段が、前記ファイル名リストで指定されている全てのファイルについて、そのファイルが格納されているフォルダについて、前記ファイルシステム解析手段を利用して、そのフォルダデータが格納されているセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定する機能、
前記マスタファイルテーブルキャッシュ手段が、前記ファイル名リストで指定されている全てのファイル、及び前記全てのファイルが格納されているフォルダについて、前記ファイルシステム解析手段を利用して、前記全てのファイル及びフォルダについての情報が格納されているマスタファイルテーブル内のセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定する機能、
前記特殊ファイルキャッシュ手段が、前記ファイルシステムが持つジャーナルログファイル又はページングファイルを含む特殊ファイルについて、前記特殊ファイル内のヘッダ情報を読み取り、前記特殊ファイル内の有効なセクタを割り出し、割り出したセクタをディスクキャッシュされるものとして決定する機能
をコンピュータに実現させるためのプログラム。
【請求項５】
請求項４に記載のプログラムにおいて、
ネットワークブートの途中段階で、キャッシュミスヒットのためネットワークブートが中断した場合、ミスヒットとなったセクタの情報を取得し、取得したセクタの情報に基づいて前記ファイル名リストを更新し、前記セクタがマスタファイルテーブル外である場合には、前記マスタファイルテーブルを順次検索し、前記セクタをファイルデータとして持つファイルを前記ファイル名リストに追加し、前記セクタがマスタファイルテーブル内にある場合には、そのファイル情報が格納されているファイルを、前記ファイル名リストに追加する機能
を更にコンピュータに実現させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、Ｗｉｎｄｏｗｓ（登録商標）のように、ネットワークブートに対応していない汎用オペレーティングシステムをネットワークブートするために用いられるキャッシュサーバ、このキャッシュサーバを用いたネットワークブート方法、及びプログラムに関する。
【背景技術】
【０００２】
例えば、Ｗｉｎｄｏｗｓのような汎用のオペレーティングシステムは、ローカルディスク（内蔵ディスク）にインストールされていることを前提として、コンピュータの立ち上げ処理を行うように設計されているものが主流である。そして、ローカルディスクにインストールされていることを前提としているオペレーティングシステムを、ネットワーク上のストレージ（記憶装置）に格納し、ネットワーク経由で接続されたコンピュータでこれを起動（ネットワークブート）しようとする場合には、特別の技術が必要となる。
【０００３】
まず、ローカルディスクにインストールされているオペレーティングシステムを起動する流れを、図２を用いて説明する。
【０００４】
なお、本明細書において、インストールとは、ハードディスク上へのプログラム等の格納を意味する。そして、「コンピュータにインストール」することは、「コンピュータに内蔵されたハードディスクにインストール」することを意味する。また、「オペレーティングシステムにインストール」することは、「オペレーティングシステムがインストールされているハードディスクにインストール」することを意味している。
【０００５】
コンピュータ３０の電源が投入されると、コンピュータ３０に内蔵されたＲＯＭ（読み取り専用メモリ）３１に記憶されたＢＩＯＳ（Basic Input and Output System）３２が実行され、ハードウェアの初期化を行った後、ローカルディスク３７からブートローダ３５がＲＡＭ３４等のメモリに読み込まれ実行される。ブートローダ３５が実行されると、ＢＩＯＳ３２が提供するサービスルーチンを使用して、ローカルディスク３７からオペレーティングシステムの基本部分であるＯＳカーネル３６がＲＡＭ３４等のメモリに読み込まれ実行される。ＯＳカーネル３６が実行されると、システムはプロテクテッドモードとなり、ＢＩＯＳ３２が提供するサービスルーチンは使用されず、オペレーティングシステムのディスクドライバ（図示せず）を使用してローカルディスク３７にアクセスし、オペレーティングシステムが起動する。
【０００６】
次に、ネットワークブートに対応したオペレーティングシステムを、ネットワークブートに対応したコンピュータで起動する流れを、図３を用いて説明する。
【０００７】
ネットワークブートに対応したオペレーティングシステムの例としてＬｉｎｕｘ（登録商標）が挙げられる。また、ネットワークブートに対応したコンピュータの例として、ＰＸＥ（Preboot Execution Environment）規格に準拠したコンピュータ４０が挙げられる。このコンピュータ４０の電源が投入されると、コンピュータ４０に内蔵されたＲＯＭ４１に記憶されたＢＩＯＳ４２とＰＸＥ４３が実行され、ハードウェアの初期化を行った後、ネットワーク６０を介してサーバ６１からＮＢＰ（Network Bootstrap Program）６２がＲＡＭ４４等のメモリに読み込まれ実行される。ＮＢＰ６２が実行されると、ＰＸＥ４３が提供するサービスルーチンを使用して、ネットワーク６０を介してサーバ６１からＯＳカーネル４６がＲＡＭ４４に読み込まれ実行される。ＯＳカーネル４６が実行されると、システムはプロテクテッドモードとなり、ＰＸＥ４３が提供するサービスルーチンは使用されず、オペレーティングシステムのネットワークドライバを使用してネットワーク６０上のストレージ６３にアクセスし、オペレーティングシステムが起動する。
【０００８】
上述したように、ネットワークブートに対応していない汎用のオペレーティングシステムの例としてＷｉｎｄｏｗｓが挙げられる。そのようなオペレーティングシステムをネットワークブートする方法として、ネットワークブートに対応したコンピュータの技術を土台にして、あたかもローカルディスクから起動しているようにエミュレーションする技術が知られている。
【０００９】
ネットワークブートに対応していない汎用のオペレーティングシステムをネットワークブートする方法について、図４を用いて説明する。
【００１０】
第一のエミュレーション手段は、ＢＩＯＳ４２が提供するサービスルーチンをフックして、ローカルディスクへのアクセスをネットワーク上のストレージ６３へのアクセスにリダイレクトする、仮想ディスクＢＩＯＳサービスルーチン６２ａである。本来の、ＢＩＯＳ４２が提供するディスク読み出しのサービスルーチンは、指定されたセクタからデータを読み出しメモリに転送する。一方、仮想ディスクＢＩＯＳサービスルーチン６２ａでは、ＢＩＯＳ４２が提供するサービスルーチンをフックして、ネットワーク上のストレージ６３の指定されたセクタからデータを読み出し、あたかもそれがローカルディスクから読み出されたかのように、メモリに転送するというものである。
【００１１】
第二のエミュレーション手段は、オペレーティングシステムにインストールされ、ローカルディスクへのアクセスをネットワーク上のストレージ６３へのアクセスにリダイレクトする仮想ディスクドライバ４７である。本来の、オペレーティングシステムのディスクドライバは、指定されたセクタからデータを読み出しメモリに転送し、あるいは、メモリ上にあるデータを指定されたセクタへ書き込む。一方、仮想ディスクドライバ４７は、ネットワーク上のストレージ６３の指定されたセクタからデータを読み出し、あたかもそれがローカルディスクから読み出されたかのように、メモリに転送し、あるいは、メモリ上にあるデータを、ネットワーク上のストレージ６３の指定されたセクタに書き込む、というものである。
【００１２】
上記各手段を用いて、ネットワークブートに対応していない汎用のオペレーティングシステムを、ネットワークブートに対応したコンピュータで起動する流れは、具体的には以下のとおりである。コンピュータ４０の電源が投入されると、コンピュータ４０に内蔵されたＲＯＭ４１に記憶されたＢＩＯＳ４２とＰＸＥ４３とが実行され、ハードウェアの初期化を行った後、ネットワーク６０を介してサーバ６１から仮想ディスク用のＮＢＰ（Network Bootstrap Program）６２が、ＲＡＭ４４等のメモリに読み込まれ実行される。ＮＢＰ６２が実行されると、仮想ディスクＢＩＯＳサービスルーチン６２ａが展開され、仮想ディスクのエミュレーションが始まる。
【００１３】
次に、仮想ディスクＢＩＯＳサービスルーチン６２ａを使って、ネットワークブートに対応していないブートローダ４５がメモリに読み込まれ実行される。ブートローダ４５が実行されると、仮想ディスクＢＩＯＳサービスルーチン６２ａを使って、ネットワーク上のストレージ６３からＯＳカーネル４６がメモリに読み込まれ実行される。ＯＳカーネル４６にはあらかじめ仮想ディスクドライバ４７がインストールされている。ＯＳカーネル４６が実行されると、システムはプロテクテッドモードとなり、ＢＩＯＳ４２が提供されるサービスルーチンは使用されず、オペレーティングシステムの仮想ディスクドライバ４７を使用してネットワーク上のストレージ６３にアクセスし、オペレーティングシステムが起動する。
【００１４】
ネットワークブートに対応していない汎用のオペレーティングシステムを、ネットワークブートする上記の技術には、いくつかの課題がある。
【００１５】
第一の課題は、仮想ディスクＢＩＯＳサービスルーチン６２ａの実現方法として、ＢＩＯＳ４２が提供するサービスルーチンをフックして、ＰＸＥ４３が提供するサービスルーチンを使って、ネットワーク上のストレージ６３へのアクセスにリダイレクトする方法が自然であるが、ＰＸＥ４３が提供するサービスルーチンは、ブートローダ４５から呼ばれた場合に正常に動作しない場合があるということである。
【００１６】
第二の課題は、仮想ディスクドライバ４７の実現方法として、ローカルディスクへのアクセスを、オペレーティングシステムのネットワークドライバ４８を使用して、ネットワーク上のストレージ６３へのアクセスにリダイレクトする方法が自然であるが、オペレーティングシステムのネットワークドライバ（例えば、ＴＣＰ／ＩＰドライバ）４８は、ＯＳカーネル４６の起動の初期の段階ではまだ使用可能ではない場合があるということである。
【００１７】
更に別の課題は、仮想ディスクのエミュレーションとして、ネットワーク上のストレージ６３に、セクタごと（sector by sector）にアクセスを要求し、ネットワーク上でデータ転送を行うと、データ転送効率が悪いということである。
【００１８】
上記何れの課題に対しても、当業者に周知の方法であるディスクキャッシュ４９を導入することによって解決することができる。この方法を、図５を用いて説明する。
【００１９】
この方法では、ディスクキャッシュ部６２ｂが、ネットワーク上のストレージ６３の内容を、ＰＸＥ４３が提供するサービスルーチンを使って、ネットワークブートするコンピュータのメモリの所定の領域であるディスクキャッシュ４９に事前に展開しておく。
【００２０】
仮想ディスクＢＩＯＳサービスルーチン６２ａは、このディスクキャッシュ４９からデータを読み出すことにより、ＰＸＥ４３が提供するサービスルーチンを使用せずに、ネットワーク上のストレージ６３の内容を取得できる。また、仮想ディスクドライバ４７は、ＯＳカーネル４６の起動の初期の段階でネットワークドライバ４８が使用不可の時には、このディスクキャッシュ４９からデータを読み出すことにより、ネットワークドライバ４８を使用せずに、ネットワーク上のストレージ６３の内容を取得できる。
【００２１】
また、ディスクキャッシュ部６２ｂは、ネットワーク上のストレージ６３に、一括してアクセスを要求し、ネットワーク上で一括してデータ転送を行うことができるため、セクタごと（sector by sector）にデータ転送を行う場合に比べて、データ転送効率が良いという利点がある。
【００２２】
上記の手段を用いて、ネットワークブートに対応していない汎用のオペレーティングシステムを、ネットワークブートに対応したコンピュータで起動する流れは、具体的には以下のとおりである。
【００２３】
すなわち、コンピュータ４０の電源が投入されると、コンピュータ４０に内蔵されたＲＯＭ４１に記憶されたＢＩＯＳ４２とＰＸＥ４３が実行され、ハードウェアの初期化を行った後、ネットワーク６０を介してサーバ６１からディスクキャッシュ付き仮想ディスク用のＮＢＰ（Network Bootstrap Program）６２がＲＡＭ４４等のメモリに読み込まれ実行される。ＮＢＰ６２が実行されると、ディスクキャッシュ部６２ｂが実行され、ネットワーク上のストレージ６３の内容が、ＰＸＥ４３が提供するサービスルーチンを使って、メモリの所定の領域であるディスクキャッシュ４９に展開される。
【００２４】
次に、仮想ディスクＢＩＯＳサービスルーチン６２ａが展開され、仮想ディスクのエミュレーションがはじまる。次に、仮想ディスクＢＩＯＳサービスルーチン６２ａを使って、ネットワークブートに対応していないブートローダ４５がメモリに読み込まれ実行される。ブートローダ４５が実行されると、仮想ディスクＢＩＯＳサービスルーチン６２ａを使って、ディスクキャッシュ４９からオペレーティングシステムのカーネルであるＯＳカーネル４６がメモリに読み込まれ実行される。ＯＳカーネル４６には予め仮想ディスクドライバ４７がインストールされている。ＯＳカーネル４６が実行されると、システムはプロテクテッドモードとなり、ＢＩＯＳ４２が提供されるサービスルーチンは使用されず、オペレーティングシステムの仮想ディスクドライバ４７を使用して、ＯＳカーネル４６の起動の初期の段階では、ディスクキャッシュ４９をアクセスし、ネットワークドライバ４８が使用可能になったあとでは、ネットワーク上のストレージ６３にアクセスし、オペレーティングシステムが起動する。
【特許文献１】特表２００５−５２３５２３号公報
【発明の開示】
【発明が解決しようとする課題】
【００２５】
しかしながら、オペレーティングシステムの全てをディスクキャッシュに展開することは次の２つの理由で現実的ではない。第一の理由は、オペレーティングシステムのサイズは１Ｇバイト以上の大きさがあり、一方コンピュータのメモリ容量は１Ｇバイト程度であり、容量が足りなくなるということである。第二の理由は、ディスクキャッシュのすべてをネットワーク経由で転送するには長大な時間を必要とすることである。
【００２６】
したがって、従来技術では、次の２つの課題があるということができる。第一の課題は、ディスクキャッシュのサイズを小さくする必要があるということであり、第二の課題は、ディスクキャッシュのネットワーク経由の転送時間を短くする必要があるということである。
【００２７】
本発明はこのような事情に鑑みてなされたものであり、ネットワークブートに対応していない汎用オペレーティングシステムをネットワークブートする場合に、ディスクキャッシュのサイズを小さくするとともに、ディスクキャッシュのネットワーク経由の転送時間を短くすることが可能なキャッシュサーバ、ネットワークブート方法、及びプログラムを提供することを目的とする。
【００２８】
なお、特許文献１には、同じ目的で発明された技術が開示されているが、特許文献１で開示されているのは、汎用オペレーティングシステム自身の構造をネットワークブートできるように変える技術であり、本願のように、キャッシュサーバを用いて上記目的を解決する技術ではない。
【課題を解決するための手段】
【００２９】
上記の目的を達成するために、本発明では、以下のような手段を講じる。
【００３０】
すなわち、請求項１の発明は、ネットワークブートに対応していない汎用オペレーティングシステムを、ネットワークブートに対応したコンピュータで起動するために使用されるキャッシュサーバである。
【００３１】
キャッシュサーバは、汎用オペレーティングシステムを格納するストレージと、ネットワークブートするコンピュータとの間にネットワークによって接続され、コンピュータ上のＢＩＯＳが提供するサービスルーチンをフックして、コンピュータに備えられたローカルディスクへのアクセスを、ストレージへのアクセスにリダイレクトするコンピュータの仮想ディスクＢＩＯＳサービスルーチンと、オペレーティングシステムにインストールされ、ローカルディスクへのアクセスをストレージへのアクセスにリダイレクトする仮想ディスクドライバとが利用するディスクキャッシュの内容を生成するために、データ読出手段と、データ転送手段と、ファイルシステム解析手段と、ファイルデータキャッシュ手段と、フォルダデータキャッシュ手段と、マスタファイルテーブルキャッシュ手段と、特殊ファイルキャッシュ手段と、ファイル名リストとを備えている。
【００３２】
そして、データ読出手段は、ファイルシステム解析手段及びデータ転送手段からの読み出し要求に従って、ストレージから要求されたセクタの内容を読み出す。
【００３３】
データ転送手段は、読み出されたセクタの内容に基づいて、ファイルデータキャッシュ手段、フォルダデータキャッシュ手段、マスタファイルテーブルキャッシュ手段、及び特殊ファイルキャッシュ手段によって決定されたセクタ情報を、ディスクキャッシュを要求したコンピュータに転送する。
【００３４】
ファイルシステム解析手段は、ファイルデータキャッシュ手段、フォルダデータキャッシュ手段、マスタファイルテーブルキャッシュ手段、及び特殊ファイルキャッシュ手段からの要求に応じて、ストレージにフォーマットされているファイルシステムの構造を解析する。
【００３５】
ファイル名リストは、ＯＳカーネルの実行ファイル、ドライバファイル、汎用オペレーティングシステムの立ち上げ時の画面表示に使用される文字フォントファイル、オペレーティングシステム用のレジストリファイル、及びファイルシステムの内部で使用される特殊ファイルのうちの少なくとも何れかを予め指定している。
【００３６】
ファイルデータキャッシュ手段は、ファイル名リストで指定されている全てのファイルについて、ファイルシステム解析手段を利用して、そのファイルデータが格納されているセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定する。
【００３７】
フォルダデータキャッシュ手段は、ファイル名リストで指定されている全てのファイルについて、そのファイルが格納されているフォルダについて、ファイルシステム解析手段を利用して、そのフォルダデータが格納されているセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定する。
【００３８】
マスタファイルテーブルキャッシュ手段は、ファイル名リストで指定されている全てのファイル、及び全てのファイルが格納されているフォルダについて、ファイルシステム解析手段を利用して、全てのファイル及びフォルダについての情報が格納されているマスタファイルテーブル内のセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定する。
【００３９】
特殊ファイルキャッシュ手段は、ファイルシステムが持つジャーナルログファイル又はページングファイルを含む特殊ファイルについて、特殊ファイル内のヘッダ情報を読み取り、特殊ファイル内の有効なセクタを割り出し、割り出したセクタをディスクキャッシュされるものとして決定する。
【００４０】
また、請求項２の発明は、請求項１に記載のキャッシュサーバにおいて、ネットワークブートの途中段階で、キャッシュミスヒットのためネットワークブートが中断した場合、ミスヒットとなったセクタの情報を取得し、取得したセクタの情報に基づいてファイル名リストを更新し、セクタがマスタファイルテーブル外である場合には、マスタファイルテーブルを順次検索し、セクタをファイルデータとして持つファイルをファイル名リストに追加し、セクタがマスタファイルテーブル内にある場合には、そのファイル情報が格納されているファイルを、ファイル名リストに追加するファイル名リスト更新手段を更に備える。
【００４１】
また、請求項３の発明は、ネットワークブートに対応していない汎用オペレーティングシステムを、ネットワークブートに対応したコンピュータで起動するために、汎用オペレーティングシステムを格納するストレージと、コンピュータとの間にネットワークによって接続されたキャッシュサーバを用いるネットワークブート方法である。
【００４２】
ここで、コンピュータは、ローカルディスクと、ＢＩＯＳと、ストレージへのアクセスにリダイレクトする仮想ディスクＢＩＯＳサービスルーチンと、ローカルディスクへのアクセスをストレージへのアクセスにリダイレクトする仮想ディスクドライバと、ディスクキャッシュ手段と、起動データ記憶装置とを備えている。
【００４３】
一方、キャッシュサーバは、ＢＩＯＳが提供するサービスルーチンをフックして、ローカルディスクへのアクセスを、仮想ディスクＢＩＯＳサービスルーチンと仮想ディスクドライバとが利用するディスクキャッシュの内容を生成するために、データ読出手段と、データ転送手段と、ファイルシステム解析手段と、ファイルデータキャッシュ手段と、フォルダデータキャッシュ手段と、マスタファイルテーブルキャッシュ手段と、特殊ファイルキャッシュ手段と、ファイル名リストとを備えている。
【００４４】
そして、データ読出手段は、ファイルシステム解析手段及びデータ転送手段からの読み出し要求に従って、ストレージから、要求されたセクタの内容を読み出す。
【００４５】
ファイルシステム解析手段は、ファイルデータキャッシュ手段、フォルダデータキャッシュ手段、マスタファイルテーブルキャッシュ手段、及び特殊ファイルキャッシュ手段の要求に応じて、ストレージにフォーマットされているファイルシステムの構造を解析する。
【００４６】
ファイル名リストは、ＯＳカーネルの実行ファイル、ドライバファイル、汎用オペレーティングシステムの立ち上げ時の画面表示に使用される文字フォントファイル、オペレーティングシステム用のレジストリファイル、及びファイルシステムの内部で使用される特殊ファイルのうちの少なくとも何れかを予め指定している。
【００４７】
ファイルデータキャッシュ手段は、ファイル名リストで指定されている全てのファイルについて、ファイルシステム解析手段を利用して、そのファイルデータが格納されているセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定する。
【００４８】
フォルダデータキャッシュ手段は、ファイル名リストで指定されている全てのファイルについて、そのファイルが格納されているフォルダについて、ファイルシステム解析手段を利用して、そのフォルダデータが格納されているセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定する。
【００４９】
マスタファイルテーブルキャッシュ手段は、ファイル名リストで指定されている全てのファイル、及び全てのファイルが格納されているフォルダについて、ファイルシステム解析手段を利用して、全てのファイル及びフォルダについての情報が格納されているマスタファイルテーブル内のセクタを取得し、取得したセクタをディスクキャッシュされるものとして決定する。
【００５０】
特殊ファイルキャッシュ手段は、ファイルシステムが持つジャーナルログファイル又はページングファイルを含む特殊ファイルについて、特殊ファイル内のヘッダ情報を読み取り、特殊ファイル内の有効なセクタを割り出し、割り出したセクタをディスクキャッシュされるものとして決定する。
【００５１】
データ転送手段は、読み出されたセクタの内容に基づいて、ファイルデータキャッシュ手段、フォルダデータキャッシュ手段、マスタファイルテーブルキャッシュ手段、及び特殊ファイルキャッシュ手段によって決定されたセクタ情報と、このセクタから読み出されるハッシュコードとを、ディスクキャッシュを要求したコンピュータに転送する。
【００５２】
起動データ記憶装置は、ＯＳカーネルの実行ファイル、ドライバファイル、及び汎用オペレーティングシステムの立ち上げ時の画面表示に使用する文字フォントファイルのうちの何れかに含まれるデータを、セクタ単位で予め記憶している。
【００５３】
ディスクキャッシュ手段は、起動データ記憶装置に記憶されている各データについてハッシュコードを予め計算しておき、計算したハッシュコードのなかに、データ転送手段から転送されたハッシュコードと一致するものがない場合には、データ転送手段から、そのセクタから読み出したデータを取得し、ディスクキャッシュに展開する一方、一致するものがある場合には、起動データ記憶装置の該データを取得し、ディスクキャッシュに展開する。
【００５４】
更に、請求項４及び請求項５の発明は、ネットワークブートに対応していない汎用オペレーティングシステムを、ネットワークブートに対応したコンピュータで起動するために使用される請求項１及び請求項２の発明のキャッシュサーバにそれぞれ適用されるコンピュータ読取可能なプログラムである。
【発明の効果】
【００５５】
本発明によれば、ネットワークブートに対応していない汎用オペレーティングシステムをネットワークブートする場合に、必要なファイルのみしかコンピュータにキャッシュせずに、コンピュータをネットワークブートすることができる。
【００５６】
以上により、ディスクキャッシュのサイズを小さくするとともに、ディスクキャッシュのネットワーク経由の転送時間を短くすることが可能なキャッシュサーバ、ネットワークブート方法、及びプログラムを実現することができる。
【発明を実施するための最良の形態】
【００５７】
以下に、本発明を実施するための最良の形態について図面を参照しながら説明する。
【００５８】
なお、以下の各実施の形態の説明に用いる図中の符号は、図３と同一部分については同一符号を付して示し、重複説明を避ける。
【００５９】
（第１の実施の形態）
図１は、本発明の第１の実施の形態に係るキャッシュサーバが配置されるネットワーク環境を示す概念図である。すなわち、本実施の形態に係るキャッシュサーバ１０は、ネットワーク６０によってコンピュータ４０とネットワーク上のストレージ６３との間に配置される。なお、図１では、簡略のために、キャッシュサーバ１０に一つのコンピュータ４０のみが接続された状態を示しているが、キャッシュサーバ１０には複数のコンピュータが接続されうる。また、図１に示すネットワーク６０は、イーサネット（登録商標）等のＬＡＮ、あるいは公衆回線や専用回線を介して複数のＬＡＮが接続されるＷＡＮ等からなりうる。ＬＡＮの場合には、必要に応じてルータを介した多数のサブネットから構成され、ＷＡＮの場合には、公衆回線に接続するためのファイアウォール等を適宜備えているが、図１ではその図示及び詳細説明を省略している。
【００６０】
コンピュータ４０のディスクキャッシュ部６２ｂは、コンピュータ４０の立ち上げ時にディスクキャッシュ４９の内容の転送をキャッシュサーバ１０に要求する。キャッシュサーバ１０は、ディスクキャッシュ部６２ｂから要求を受けると、ネットワーク上のストレージ６３へ接続し、必要なセクタからデータを読み出し、ディスクキャッシュの内容を生成し、コンピュータ４０へ転送する。ここで、必要なセクタは、キャッシュサーバ１０上にあるファイル名リスト１８に指定されているファイル名と、ネットワーク上のストレージ６３にあるファイルシステムの構造を解析することによって決定される。
【００６１】
このファイル名リスト１８には、ＯＳカーネル４６の実行ファイルや、ネットワークドライバ４８などのドライバファイル、立ち上げ時の画面表示に使用する文字フォントファイル、オペレーティングシステムの設定を記憶しているレジストリファイル、ファイルシステム構造の内部で使用される特殊ファイル等のファイル名が含まれる。また、そのファイルがどのフォルダに格納されるものであるかについての指定も含まれる。あるいは、いくつかのファイルについては、それが既知であるとして、明示的にリストに含まれずとも暗黙のうちに含まれているものとしてもよい。あるいは、いくつかのフォルダについては、それが既知であるとして、明示的にリストに指定されずとも、暗黙のうちに指定されているとしてもよい。このように、ファイル名リスト１８によるファイル名の一覧の指定方法は、さまざまな変形が可能であるが、本発明の本質としては同一であると考えることができる。
【００６２】
キャッシュサーバ１０は、必要なセクタを決定するためにデータ読出部１１、ファイルシステム解析部１２、ファイルデータキャッシュ部１３、フォルダデータキャッシュ部１４、ＭＦＴ（Master File Table）キャッシュ部１５、特殊ファイルキャッシュ部１６、及びデータ転送部１７を備えている。
【００６３】
データ読出部１１は、ネットワーク上のストレージ６３上からデータを読み出す。ファイルシステム解析部１２は、ファイルシステムの構造を解析する。ファイルデータキャッシュ部１３は、ファイルデータに対応するセクタを決定する。フォルダデータキャッシュ部１４は、フォルダデータに対応するセクタを決定する。ＭＦＴキャッシュ部１５は、ＭＦＴ内のセクタを決定する。特殊ファイルキャッシュ部１６は、特殊ファイル内のセクタを決定する。データ転送部１７は、コンピュータ４０へディスクキャッシュの内容を転送する。以下、これら各部位の機能の詳細について説明する。
【００６４】
データ読出部１１は、ファイルシステム解析部１２およびデータ転送部１７からの読み出し要求にしたがって、ネットワーク上のストレージ６３から指定されたセクタの内容を読み出す。なお、データ読出部１１は、前回読み出したデータを記憶しておき、同一セクタの読み出し要求が行われた場合には、ネットワーク上のストレージ６３から読み出しを行わないようにしてもよい。あるいは、データ読出部１１は、指定されたセクタの前後のセクタも一括して読み出し、そのデータを記憶しておき、そのセクタの読み出し要求が行われた場合には、ストレージ６３からの読み出しを行わないようにしてもよい。このように、データ読出部１１で、読み出しデータをキャッシュしておくことは任意に可能であり、様々な変形があり得るが、本発明の本質としては同一であると考えることができる。
【００６５】
データ転送部１７は、データ読出部１１によって読み出されたセクタの内容に基づいて、ファイルデータキャッシュ部１３、フォルダデータキャッシュ部１４、ＭＦＴキャッシュ部１５、及び特殊ファイルキャッシュ部１６によって決定されたセクタ情報を、ディスクキャッシュを要求したコンピュータ４０に転送する。また、そのセクタから読み出したデータを、ディスクキャッシュを要求したコンピュータ４０に転送する。データ転送は、前記各部位１３乃至１６がセクタを決定した都度行ってもよいし、全てのセクタについて決定した後に一括して行ってもよい。このように、データ転送のタイミングについては、様々な変形があり得るが、本発明の本質としては同一であると考えることができる。
【００６６】
ファイルシステム解析部１２は、ファイルデータキャッシュ部１３、フォルダデータキャッシュ部１４、ＭＦＴキャッシュ部１５、特殊ファイルキャッシュ部１６の要求に応じて、ストレージ６３にフォーマットされているファイルシステムの構造について解析する。ファイルシステムの基幹の構造は、ＭＦＴと呼ばれるテーブルによって決定される。ＭＦＴは、ファイルシステム上にある全てのファイルの一覧であると考えることができる。ＭＦＴを解析することにより、各ファイルの名前、属性、ファイルデータの格納されているセクタ等の情報が得られる。また、ファイルシステムは、フォルダの階層的な包含関係によってツリー構造を持っている。フォルダはそれ自体、フォルダ属性を持ったファイルであり、そのファイルデータには、フォルダに含まれるファイルの一覧情報が含まれる。これを便宜的にフォルダデータと呼ぶことにする。したがって、ファイルシステムのルートから、フォルダデータを順に追って行くことによって、そのツリー構造を解析することができる。
【００６７】
ファイルデータキャッシュ部１３は、ファイル名リスト１８で指定された全てのファイルについて、ファイルシステム解析部１２を利用して、そのファイルデータが格納されているセクタを取得し、そのセクタをディスクキャッシュされるものとして決定する。
【００６８】
フォルダデータキャッシュ部１４は、ファイル名リスト１８で指定された全てのファイルについて、そのファイルが格納されているフォルダ（階層的にその全ての親フォルダも含む）について、ファイルシステム解析部１２を利用して、そのフォルダデータが格納されているセクタを取得し、そのセクタをディスクキャッシュされるものとして決定する。
【００６９】
ＭＦＴキャッシュ部１５は、ファイル名リスト１８で指定された全てのファイル、および、そのファイルが格納されているフォルダ（階層的にそのすべての親フォルダも含む）について、ファイルシステム解析部１２を利用して、そのファイルおよびフォルダについて情報が格納されているＭＦＴ内のセクタを取得し、そのセクタをディスクキャッシュされるものとして決定する。
【００７０】
特殊ファイルキャッシュ部１６は、ファイルシステムがもつジャーナルログファイルやページングファイルなどの特殊ファイルについて、特殊ファイル内のヘッダー情報を読み取り、ファイル内の有効なセクタを割り出し、そのセクタをディスクキャッシュされるものとして決定する。
【００７１】
ファイルデータキャッシュ部１３、フォルダデータキャッシュ部１４、ＭＦＴキャッシュ部１５、特殊ファイルキャッシュ部１６の各部位は、セクタを決定する際に、その前後の一連のセクタも一括してディスクキャッシュされるものとして決定する所謂「はみだし動作」を行う。はみだし量は、ファイルシステムが設定として持っているクラスタサイズから決定されるとしてもよいし、例えば６４Ｋバイトのように固定としてもよい。それぞれのキャッシュ部１３乃至１６によって、はみだし量は異なるとすることもできる。はみだし量に関しては、さまざまな変形があり得るが、本発明の本質としては同一であると考えることができる。
【００７２】
上述したように、本実施の形態に係るキャッシュサーバ１０を配置すれば、必要なファイルのみしかキャッシュしないので、ディスクキャッシュ４９のサイズを小さくすることができる。また、ディスクキャッシュ４９のサイズが小さくなることにより、ディスクキャッシュ４９のネットワーク経由の転送時間もその分だけ短くすることができる。例えば、ＷｉｎｄｏｗｓＸＰ（登録商標）でネットワークブートを行う場合では、ディスクキャッシュ４９のサイズが２０Ｍバイト程度で十分であることがわかっている。
【００７３】
また、本実施の形態は、ファイル名による指定方法であるため、ファイルの再配置（デフラグ等）、オペレーティングシステムの更新等によって、ネットワーク上のストレージ６３のファイルデータの配置が変化した場合でも、問題なく追従できるという利点がある。
【００７４】
（第２の実施の形態）
第２の実施の形態に係るキャッシュサーバについて再び図１を用いて説明する。第２の実施の形態に係るキャッシュサーバは、第１の実施の形態に係るキャッシュサーバの変形例であるので、ここでは、第１の実施の形態と異なる点について説明し、重複説明を避ける。
【００７５】
すなわち、第１の実施の形態では、ファイル名リスト１８で指定するファイル名は全て既知であることが前提であるが、ハードウェアに接続するデバイスを増やした場合などには、必要なドライバファイルが増える場合がある。その場合には、ファイル名リスト１８を更新する必要がある。そうしないと、ネットワークブートの途中の段階で、ディスクキャッシュ４９のキャッシュミスヒットのためネットワークブートが中断することになる。
【００７６】
これに対処するために、本実施の形態に係るキャッシュサーバは、ファイル名リスト更新部１９を更に備えている。
【００７７】
ファイル名リスト更新部１９は、ネットワークブートの途中の段階で、ディスクキャッシュ４９のキャッシュミスヒットのためネットワークブートが中断した場合、ミスヒットとなったセクタ情報を取得し、そのセクタ情報に基づいて、ファイル名リスト１８を更新する。当該セクタがＭＦＴ外の場合には、ＭＦＴを順次検索し、そのセクタをファイルデータとして持つファイルをファイル名リスト１８に追加する。当該セクタがＭＦＴ内の場合には、そこでファイル情報が格納されているファイルを、ファイル名リスト１８に追加する。
【００７８】
以上のように、ファイル名リスト更新部１９を備えることによって、本実施の形態に係るキャッシュサーバは、ディスクキャッシュ４９のキャッシュミスの理由で、ネットワークブートができない場合でも、ファイル名リスト更新部１９を使用して、再起動することを繰り返すことにより、ネットワークブートができるようになる。
【００７９】
（第３の実施の形態）
第３の実施の形態に係るキャッシュサーバについて再び図１を用いて説明する。第３の実施の形態に係るキャッシュサーバは、第１の実施の形態に係るキャッシュサーバの変形例であるので、ここでは、第１の実施の形態と異なる点について説明し、重複説明を避ける。
【００８０】
第１の実施の形態では、ネットワークブートに必要ではないデータをディスクキャッシュ４９から除外できる。それに対し、本実施の形態では、コンピュータ４０に、ローカルディスク等のコンピュータ４０に内蔵された記憶装置である起動データ記憶部５０を設けることによって、ネットワークブートに必要なデータについてディスクキャッシュ４９の転送量を削減する方法を提供する。この方法について、以下に説明する。
【００８１】
すなわち、ネットワークブートに必要なセクタのデータの大半は、既知のデータである。すなわち、ＯＳカーネル４６の実行ファイルや、ネットワークドライバ４８などのドライバファイル、立ち上げ時の画面表示に使用する文字フォントファイルなどのファイルデータに含まれるデータである。これらのデータについて、セクタ単位で、ＲＯＭ４１や起動データ記憶部５０に予め記憶しておく。よって起動データ記憶部５０は、セクタ単位での既知のデータの集合と考えることができる。
【００８２】
そして、データ転送部１７は、キャッシュデータの内容を転送する際、二段階で実施する。データ転送部１７はまず、セクタ情報とそのセクタから読み出したデータのハッシュコードを転送する（第一段階）。ディスクキャッシュ部６２ｂは、起動データ記憶部５０の各データについてハッシュコードを予め計算しておき、データ転送部１７から受け取ったハッシュコードと一致するものがないかを判定する。一致するものがなかった場合には、データ転送部１７が、そのセクタから読み出したデータを転送し（第二段階）、ディスクキャッシュ４９に展開する。一方、一致するものがあった場合には、起動データ記憶部５０の当該データを取得し、ディスクキャッシュ４９に展開する。
【００８３】
以上のように、起動データ記憶部５０を備え、データ転送部１７がキャッシュデータの内容を二段階で転送することによって、ハッシュコードが、起動データ記憶部５０の何れかのデータと一致するセクタに関して、ネットワーク上のデータ転送量を削減することができる。セクタサイズの転送量を、ハッシュコードサイズの転送量に削減する効果がある。たとえば、セクタサイズ＝４Ｋバイト、ハッシュコードサイズ＝２０バイトの場合、最大で約２００倍の性能向上が見込まれる。ただし、一部のデータは既知ではなく、起動する毎に変化するものや、実行環境によって変化するものがあるため、全てのデータの転送を削減できる訳ではないが、そのようなデータはデータ転送の全体量から見れば比較的少ない。
【００８４】
なお、起動データ記憶部５０は、セクタ情報とは無関係なデータベースであるため、ファイルの再配置（デフラグ等）や、オペレーティングシステムの更新等によって、ネットワーク上のストレージ６３のファイルデータの配置が変化した場合でも、問題なく追従できるという利点がある。
【００８５】
以上、本発明を実施するための最良の形態について、添付図面を参照しながら説明したが、本発明はかかる構成に限定されない。特許請求の範囲の発明された技術的思想の範疇において、当業者であれば、各種の変更例及び修正例に想到し得るものであり、それら変更例及び修正例についても本発明の技術的範囲に属するものと了解される。
【００８６】
例えば、上記第１乃至３の実施の形態では、コンピュータ４０が一台である場合を示したが、本発明の適用は、一台のみのコンピュータ４０に限定されたものではなく、一台のキャッシュサーバ１０に複数台のコンピュータ４０が接続され、これら複数のコンピュータ４０が一台のキャッシュサーバ１０を共有することによって、複数台のコンピュータ４０に対しても容易に拡張することが可能である。また、この場合、ファイル名リスト１８も、同一環境のコンピュータ４０について共有することも可能である。
【図面の簡単な説明】
【００８７】
【図１】本発明の第１の実施の形態に係るキャッシュサーバが配置されるネットワーク環境を示す概念図。
【図２】ローカルディスクにオペレーティングシステムをインストールしているコンピュータの構成例を示す機能ブロック図。
【図３】ネットワークブートに対応したオペレーティングシステムを、ネットワークブートするコンピュータの構成例を示す機能ブロック図。
【図４】ネットワークブートに対応していない汎用のオペレーティングシステムを、ネットワークブートするコンピュータの構成例を示す機能ブロック図。
【図５】ネットワークブートに対応していない汎用のオペレーティングシステムを、ネットワークブートするコンピュータ（ディスクキャッシュあり）の構成例を示す機能ブロック図。
【符号の説明】
【００８８】
１０…キャッシュサーバ、１１…データ読出部、１２…ファイルシステム解析部、１３…ファイルデータキャッシュ部、１４…フォルダデータキャッシュ部、１５…ＭＦＴキャッシュ部、１６…特殊ファイルキャッシュ部、１７…データ転送部、１８…ファイル名リスト、１９…ファイル名リスト更新部、３０…コンピュータ、３１…ＲＯＭ、３２…ＢＩＯＳ、３４…ＲＡＭ、３５…ブートローダ、３６…ＯＳカーネル、３７…ローカルディスク、４０…コンピュータ、４１…ＲＯＭ、４２…ＢＩＯＳ、４３…ＰＸＥ、４４…ＲＡＭ、４５…ブートローダ、４６…ＯＳカーネル、４７…仮想ディスクドライバ、４８…ネットワークドライバ、４９…ディスクキャッシュ、５０…起動データ記憶部、６０…ネットワーク、６１…サーバ、６２…ＮＢＰ、６２ａ…仮想ディスクＢＩＯＳサービスルーチン、６２ｂ…ディスクキャッシュ部、６３…ストレージ
【図１】
2008112423.tif 000003
【図２】
2008112423.tif 000004
【図３】
2008112423.tif 000005
【図４】
2008112423.tif 000006
【図５】
2008112423.tif 000007