説明

ネットワークブートシステム及びネットワークブート方法

【課題】クライアント端末の定められたメモリ領域を超える更新情報が生成された場合にも、安定して稼動することを可能とするネットワークブートシステムを提供する。
【解決手段】クライアント端末は、ストレージ装置から読み出した共通領域の情報のうち、自身の動作によって更新された更新情報を自身のメモリ領域に記憶し、記憶された更新情報が、定められたクライアントキャッシュ領域の範囲を超える場合、ストレージ装置に更新情報を書き込み、更新情報がメモリ領域に記憶されているか、ストレージ装置に記憶されているかを示す管理情報を自身の管理領域に記憶し、更新情報を読み出す際、管理領域に記憶された管理情報に基づいて、メモリ領域またはストレージ装置に記憶された更新情報を読み出す。

【発明の詳細な説明】
【技術分野】
【0001】
複数のクライアント端末が、ネットワークを介して接続されたストレージ装置から共通領域の情報を読み出し、自身を起動して動作するネットワークブートシステム、ネットワークブート方法に関する。
【背景技術】
【0002】
従来、PC(パーソナルコンピュータ)等のクライアント端末にて動作するOS(Operating System)等の情報を、ネットワークを介して接続されたストレージ装置に記憶させておき、クライアント端末が起動する際には、ストレージ装置からOS等の情報を読み込んで起動、動作するネットワークブートによるシンクライアントシステムが利用されている(例えば、特許文献1)。
【0003】
このようなネットワークブートによれば、OSを始めとして、クライアント端末で利用されるアプリケーション等のプログラムをストレージ装置に記憶させておくことが可能であり、各クライアント端末には、OSやアプリケーション等のプログラムを記憶させておく必要がない。これにより、各クライアント端末にはハードディスクなどのストレージが不要となり、クライアント端末は自身に搭載されたCPU、メモリ、グラフィックカードなどの資源を最大限に活用することが可能となるとともに、クライアント端末に情報が保存されないため、情報漏洩の防止にも効果的である。
【特許文献1】特開2006−252112号公報
【発明の開示】
【発明が解決しようとする課題】
【0004】
しかしながら、このようなネットワークブートシステムでは、クライアント端末がストレージを持たないため、例えばセキュリティソフトのウィルス定義ファイルのバージョンアップや、クライアント端末上で動作するアプリケーションが生成するファイルなどのクライアント毎の個別の更新情報を記憶させておく領域が、クライアント端末のメモリ領域(容量)に限られる。ここで、一般的に、クライアント端末として用いられるコンピュータ端末のメモリ容量は少ない場合が多い。これにより、クライアント端末の動作によって予め定められた領域を超える更新情報が生成された場合には、メモリ領域がオーバーフローして、動作が遅くなったり、動作停止してしまったりするという問題があった。特に、複数のクライアント端末がストレージ装置に記憶される同一の共通領域を参照して起動、動作する場合には、共通領域の情報を個々のクライアント端末の動作に応じて更新すると、他のクライアント端末に影響を与えるため、ストレージ装置の共通領域に更新情報を記憶させることはできない。
【0005】
本発明は、このような状況に鑑みてなされたもので、複数のクライアント端末が、ストレージ装置に記憶された共通の領域を読み込んで起動、動作するネットワークブートシステムにおいて、クライアント端末の定められたメモリ領域を超える更新情報が生成された場合にも、安定して稼動することを可能とするネットワークブートシステム、ネットワークブート方法を提供する。
【課題を解決するための手段】
【0006】
上述した課題を解決するために、本発明は、ネットワークを介して接続された複数のクライアント端末のそれぞれを起動させ動作させる情報が含まれる共通領域の情報が記憶されるストレージ装置と、当該ストレージ装置から読み出す共通領域の情報に基づいて自身を起動して動作するクライアント端末と、を備えたネットワークブートシステムであって、クライアント端末は、ストレージ装置から読み出した共通領域の情報のうち、自身の動作によって更新された領域の更新情報が記憶されるメモリ領域と、メモリ領域に記憶された更新情報が、メモリ領域のうち、定められたクライアントキャッシュ領域の範囲を超える場合、ストレージ装置に更新情報を書き込む更新情報書き込み部と、更新情報が、メモリ領域に記憶されているか、ストレージ装置に記憶されているかを示す管理情報が記憶される管理領域と、更新情報を読み出す際、管理領域に記憶された管理情報に基づいて、メモリ領域またはストレージ装置に記憶された更新情報を読み出す更新情報読み出し部と、を備え、ストレージ装置は、クライアント端末の更新情報書き込み部によって当該クライアント端末の更新情報が書き込まれるストレージキャッシュ領域と、を備えることを特徴とする。
【0007】
また、本発明は、上述のクライアント端末の管理領域は、ストレージ装置に記憶された共通領域のうち、定められたブロック領域を示すブロック識別情報ごとに、ブロック領域に含まれる情報が更新されたか否かを示す更新有無情報が対応付けられる第1の管理情報が記憶される第1の管理領域と、第1の管理領域に記憶されたブロック識別情報ごとに、当該ブロック領域に対応する更新情報が、メモリ領域とストレージ装置とのいずれに記憶されているかを示す更新所在情報が対応付けられる第2の管理情報が記憶される第2の管理領域と、を備えることを特徴とする。
【0008】
また、本発明は、上述のストレージ装置の、ストレージキャッシュ領域には、複数のクライアント端末ごとに、当該クライアント端末に対応する更新情報が記憶される複数の領域が割り当てられることを特徴とする。
【0009】
また、本発明は、上述のクライアント端末の、更新情報書き込み部は、メモリ領域に記憶された更新情報が、メモリ領域のうち、定められたクライアントキャッシュ領域の範囲を超える場合、メモリ領域に記憶された更新情報のうち、参照された頻度が最も低い更新情報を読み出し、メモリ領域から削除して、ストレージ装置に書き込むことを特徴とする。
【0010】
また、本発明は、ネットワークを介して接続された複数のクライアント端末のそれぞれを起動させ動作させる情報が含まれる共通領域の情報が記憶されるストレージ装置と、当該ストレージ装置から読み出す共通領域の情報に基づいて自身を起動して動作するクライアント端末と、を備えたネットワークブートシステムにおけるネットワークブート方法であって、ストレージ装置から読み出した共通領域の情報のうち、自身の動作によって更新された領域の更新情報が記憶されるメモリ領域と、更新情報が、メモリ領域に記憶されているか、ストレージ装置に記憶されているかを示す管理情報が記憶される管理領域と、を備えるクライアント端末の、更新情報書き込み部が、メモリ領域に記憶された更新情報が、メモリ領域のうち、定められたクライアントキャッシュ領域の範囲を超える場合、ストレージ装置のストレージキャッシュ領域に更新情報を書き込むステップと、更新情報読み出し部が、更新情報を読み出す際、管理領域に記憶された管理情報に基づいて、メモリ領域またはストレージ装置に記憶された更新情報を読み出すステップと、を含むことを特徴とする。
【0011】
また、本発明は、上述のクライアント端末の管理領域の、第1の管理領域に、ストレージ装置に記憶された共通領域のうち、定められたブロック領域を示すブロック識別情報ごとに、ブロック領域に含まれる情報が更新されたか否かを示す更新有無情報が対応付けられる第1の管理情報が記憶されるステップと、第2の管理領域に、第1の管理領域に記憶されたブロック識別情報ごとに、当該ブロック領域に対応する更新情報が、メモリ領域とストレージ装置とのいずれに記憶されているかを示す更新所在情報が対応付けられる第2の管理情報が記憶されるステップと、を備えることを特徴とする。
【0012】
また、本発明は、ストレージ装置の、ストレージキャッシュ領域には、複数のクライアント端末ごとに、当該クライアント端末に対応する更新情報が記憶される複数の領域が割り当てられることを特徴とする。
【0013】
また、本発明は、クライアント端末の、更新情報書き込み部は、メモリ領域に記憶された更新情報が、メモリ領域のうち、定められたクライアントキャッシュ領域の範囲を超える場合、メモリ領域に記憶された更新情報のうち、参照された頻度が最も低い更新情報を読み出し、メモリ領域から削除して、ストレージ装置に書き込むことを特徴とする。
【発明の効果】
【0014】
以上説明したように、本発明によれば、クライアント端末は、ストレージ装置から読み出した共通領域の情報のうち、自身の動作によって更新された更新情報を自身のメモリ領域に記憶し、記憶された更新情報が、定められたクライアントキャッシュ領域の範囲を超える場合、ストレージ装置に更新情報を書き込み、更新情報がメモリ領域に記憶されているか、ストレージ装置に記憶されているかを示す管理情報を自身の管理領域に記憶し、更新情報を読み出す際、管理領域に記憶された管理情報に基づいて、メモリ領域またはストレージ装置に記憶された更新情報を読み出すようにしたので、クライアント端末の動作によって、定められたクライアントキャッシュ領域の範囲を超える更新情報が生成された場合にも、クライアント端末自身のメモリ領域をオーバーフローさせることなく、ストレージ装置に更新情報を記憶させ、必要に応じて読み出すことが可能となる。
【0015】
また、本発明によれば、クライアント端末の管理領域は、ストレージ装置に記憶された共通領域のうち、定められたブロック領域を示すブロック識別情報ごとに、情報が更新されたか否かを示す更新有無情報が対応付けられる第1の管理情報が記憶される第1の管理領域と、第1の管理領域に記憶されたブロック識別情報ごとに、更新情報が、メモリ領域とストレージ装置とのいずれに記憶されているかを示す更新情報所在情報が対応付けられる第2の管理情報が記憶される第2の管理領域と、を備えるようにしたので、定められたブロック領域ごとに、更新情報が生成されているか否か、また更新情報がメモリ領域に記憶されているか、ストレージ装置に記憶されているかを示す情報に基づいて更新情報を読み出すことが可能となり、メモリ領域とストレージ領域とに分散された更新情報を、ブロック領域毎に読み出すことが可能となる。
【0016】
また、本発明によれば、ストレージキャッシュ領域には、複数のクライアント端末ごとに、クライアント端末に対応する更新情報が記憶される複数の領域が割り当てられるようにしたので、複数のクライアント端末のそれぞれの更新情報を記憶させることが可能となる。
【0017】
また、本発明によれば、クライアント端末の更新情報書き込み部は、メモリ領域に記憶された更新情報が、メモリ領域のうち定められたクライアントキャッシュ領域の範囲を超える場合、メモリ領域に記憶された更新情報のうち、参照された頻度が最も低い更新情報を読み出してメモリ領域から削除し、ストレージ装置に書き込むようにしたので、以降の参照頻度がより高いと考えられる更新情報を自身のメモリ領域に記憶させておくことができ、更新情報を読み出す際に、自身のメモリ領域から読み出す頻度が上がり、より速く更新情報を読み出すことが可能となる。
【発明を実施するための最良の形態】
【0018】
以下、本発明の一実施形態について、図面を参照して説明する。
図1は、本実施形態によるネットワークブートシステム1の概要を示す図である。
ストレージ装置200は、クライアント端末100が起動し動作するための情報が含まれる共通領域210(例えば、いわゆるCドライブに記憶される情報)を記憶している。クライアント端末100は、ネットワーク300を介してストレージ装置200の共通領域210に記憶された情報を読み出すことにより起動、動作する。クライアント端末100は、自身の処理動作に伴って、共通領域210から読み出した情報を更新する場合には、生成した更新情報を、自身が有するメモリ領域120のクライアントキャッシュ領域121に記憶させる。
【0019】
ここで、クライアント端末100が、予め定められたクライアントキャッシュ領域121の領域を超える更新情報を生成した場合には、クライアントキャッシュ領域121に記憶されている更新情報を、ネットワーク300を介して接続されたストレージ装置200のストレージキャッシュ領域220に記憶させる。クライアント端末100は、自身のメモリ領域120の領域内に予め確保された管理領域122に、その更新情報がストレージ装置200に記憶されていることを示す管理情報を記憶させる。クライアント端末100が更新情報を読み出す場合には、管理領域122に記憶された情報を読み出すことによって、更新情報がクライアント端末100に記憶されているかストレージ装置200に記憶されているかを判定し、更新情報を読み出す。ここで、共通領域210に記憶されている情報は、固定ブロックごとに分割されて管理されており、クライアント端末100の管理領域122には、ブロックの識別情報ごとに更新情報の有無が対応付けられたビットマップが記憶される。このようにして、クライアント端末100は、自身が備えるメモリ領域120の容量を超えて、生成される更新情報の書き込みと読み出しを行うことが可能となる。
【0020】
図2は、本実施形態によるネットワークブートシステム1の構成を示すブロック図である。本実施形態によるネットワークブートシステム1は、複数のクライアント端末100(クライアント端末100−1、クライアント端末100−2、・・・クライアント端末100−N(Nは任意の数))と、ストレージ装置200と、ネットワークブートシステム管理サーバ400と、管理端末500との情報通信装置と、各情報通信装置を接続するネットワーク300とを備えている。ここで、クライアント端末100−1、クライアント端末100−2、・・・クライアント端末100−N、のN台のクライアント端末は、クライアント端末100と同様の構成とする。
【0021】
ネットワークブートシステム管理サーバ400は、管理端末500と、複数のクライアント端末100と、ストレージ装置200とに接続されたコンピュータ装置である。ネットワークブートシステム管理サーバ400には、クライアント端末100とストレージ装置200との帰属関係を表す対応情報等が記憶され、クライアント端末100と、クライアント端末100に対応するストレージ装置200との接続を制御する。ネットワークブートシステム管理サーバ400には、例えば、接続される複数のクライアント端末100ごとに、クライアント端末名、MACアドレス、IPアドレス、OS領域名、ストレージ名などの情報が含まれるクライアント情報が記憶される。
【0022】
ここで、OS領域名は、対応するクライアント端末に対応するOSプログラムや、インストールされたアプリケーション等を識別する情報である。ストレージ名は、クライアント端末100に対応するストレージ装置200の名称である。このような情報によって、複数のクライアント端末100に対応して異なるOSの共通領域210が存在する場合や、同一のOSに対して複数のストレージ装置200が存在する場合でも、クライアント端末100とストレージ装置200の共通領域210とを対応付けることができうる。ネットワークブートシステム管理サーバ400は、クライアント端末100から送信される起動要求に応じて、そのクライアント端末100に対応するクライアント情報や、ブートストラップファイルなどの起動情報を送信する。ネットワークブートシステム管理サーバ400は、自身に記憶される情報をHTTP通信などにより配信し、ネットワークを介して閲覧または編集を行うウェブサービスの機能を提供することとしても良い。
【0023】
管理端末500は、ネットワークブートシステム管理サーバ400に接続されるコンピュータ端末であり、本実施形態によるネットワークブートシステム1の管理ユーザに利用される。管理端末500は、管理ユーザから入力される情報に応じて、ネットワークブートシステム管理サーバ400に記憶される情報の閲覧、更新を行う。管理端末500は、ネットワークブートシステム管理サーバ400によって、ネットワークブートシステム管理サーバ400に記憶された情報を閲覧するウェブサービスが提供される場合には、インターネットブラウザ機能を備え、ネットワークブートシステム管理サーバ400にアクセスして情報の閲覧や編集を行う。また、ネットワークブートシステム管理サーバ400を介して、複数のクライアント端末100に共通して利用されるストレージ装置200の共通領域210に記憶された情報の更新を行うこととしても良い。このようにすれば、例えば、管理ユーザは、管理端末500を用いて、共通領域210に記憶されたOSのバージョンアップやセキュリティパッチを適用するなどのメンテナンスを行うことが可能となる。
【0024】
クライアント端末100は、ユーザに利用されるコンピュータ端末であり、主記憶装置を持つが、いわゆるHDD(Hard disk drive)などの補助記憶装置(ストレージ)を持たないディスクレスPC(パーソナルコンピュータ)である。クライアント端末100は、マウス、キーボードなどの入力部や、表示部、ネットワーク通信部などを備える。また、クライアント端末100は、起動時には、ネットワークブートシステム管理サーバ400から起動情報を取得し、取得した起動情報に基づいて自身に対応するストレージ装置200の共通領域210から起動領域のプログラムを読み出し、読み出したプログラムに基づいて起動する。クライアント端末100は、制御部110と、メモリ領域120とを備えている。
【0025】
メモリ領域120は、制御部110がアクセスする主記憶装置上の記憶領域であり、クライアントキャッシュ領域121と、管理領域122とが含まれる。ここで、主記憶装置は、クライアント端末100に搭載された揮発性のメインメモリであり、メモリ領域120に記憶された情報は、電源の供給が途絶えると消去される。
クライアントキャッシュ領域121には、制御部110によって生成される更新情報が、ブロックごとに記憶される。更新情報は、例えば、制御部110の処理動作により、ウィルス定義ファイルのアップデートが行われた場合や、新たな情報ファイルが保存された場合などの情報である。
【0026】
管理領域122は、第1の管理領域123と、第2の管理領域124とを有している。
第1の管理領域123には、共通領域210の情報のうち、定められたブロック領域を示すブロック識別情報ごとに、そのブロック領域に含まれる情報がクライアント端末100の処理動作によって更新されたか否かを示す更新有無情報が記憶される。ここで、共通領域210は、図1の(a)に示されるように、定められた固定ブロックに分割されて管理され、分割されたブロック領域ごとに、ブロック領域を示すブロック識別情報が付与される。図3は、第1の管理領域123に記憶される第1の管理情報(以下、Bitmap1ともいう)の例を示す図である。ここでは、第1の管理情報は、ブロックを示すブロック識別情報ごとに、そのブロックが更新されたか否かを示す更新有無情報が対応付けられたマトリックス状の情報として記憶されている。
【0027】
図3の例では、第1の管理情報は、列ごとにA、B、C、D、Eなどの列識別情報が付与され、行ごとに1、2、3、4、5などの行識別情報が付与され、列識別情報と行識別情報との組み合わせによりブロックが識別される。更新有無情報は、「0」または「1」で表される。更新有無情報が「0」である場合は、そのブロックに対応する共通領域210上の情報に更新がないことを示し、「1」である場合は、そのブロックに対応する共通領域210上の情報に更新があったことを示す。第1の管理情報に記憶される更新有無情報は、起動時の初期状態では全て「0」であり、更新情報が生成されると、後述する更新情報書き込み部114によって「1」に変更されて記憶される。
【0028】
例えば、列識別情報が「A」、行識別情報が「1」であるブロック「A1」には、更新有無情報として「1」が記憶されており、ブロック「A1」に対応する共通領域210の領域に更新があり、対応する更新情報が存在することを示している。一方、列識別情報が「B」、行識別情報が「1」であるブロック「B1」には、更新有無情報として「0」が記憶されており、ブロック「B1」に対応する共通領域210の領域に対応する更新情報が存在しないことを示している。
【0029】
第2の管理領域124には、共通領域210に記憶される情報のうち、定められたブロック領域を示すブロック識別情報ごとに、そのブロック領域に含まれる更新情報が、クライアントキャッシュ領域121と、ストレージキャッシュ領域220とのいずれに記憶されているかを示す更新所在情報が記憶される。図4は、第2の管理領域124に記憶される第2の管理情報(以下、Bitmap2ともいう)の例を示す図である。第2の管理情報は、第1の管理情報と同様に、ブロックを示すブロック識別情報ごとに、更新所在情報が対応付けられたマトリックス状の情報として記憶されている。
【0030】
図4の例では、第2の管理情報は、列ごとにA、B、C、D、Eなどの列識別情報が付与され、行ごとに1、2、3、4、5などの行識別情報が付与される。更新所在情報は、「0」または「1」で表される。ここで、更新所在情報が「0」である場合は、そのブロックに対応する共通領域210上の更新情報がクライアントキャッシュ領域121に記憶されていることを示し、「1」である場合は、そのブロックに対応する共通領域210上の更新情報がストレージキャッシュ領域220に記憶されていることを示す。第2の管理情報は、起動時の初期状態では全て「0」であり、更新情報が記憶されると、後述する更新情報書き込み部114によって「0」または「1」に変更されて記憶される。
【0031】
図4に示されるデータ例について、上述の図3に示した第1の管理領域123のデータ例にて更新有無情報が「1」であり、更新があったことが示されるブロック「A1」と、ブロック「C1」とについて説明する。列識別情報が「A」、行識別情報が「1」であるブロック「A1」には、更新所在情報として「1」が記憶されており、ブロック「A1」に対応する更新情報は、ストレージキャッシュ領域220に記憶されていることを示している。一方、列識別情報が「C」、行識別情報が「1」であるブロック「C1」には、更新所在情報として「0」が記憶されており、ブロック「C1」に対応する更新情報は、クライアントキャッシュ領域121に記憶されていることを示している。
【0032】
図2に戻り、制御部110は、起動制御部111と、ソフトウェア実行部112と、ファイルシステム113と、更新情報書き込み部114と、更新情報読み出し部115とを備えており、クライアント端末100の各部の動作を制御する。
起動制御部111は、ネットワークブートシステム管理サーバ400に起動情報の要求を行って自身に対応する起動情報を取得し、取得した起動情報に基づいて、対応するストレージ装置200から、共通領域210の情報を読み出し、クライアント端末100を起動させる。例えば、起動制御部111は、ネットワークブートの規格であるPXE(Preboot eXecution Environment)に準拠したプロトコルにより通信を行って起動情報を取得する。
【0033】
以下に説明するソフトウェア実行部112、ファイルシステム113、更新情報書き込み部114、更新情報読み出し部115の各部は、ストレージ装置200の共通領域210から読み出される情報によって構成されるものである。
ソフトウェア実行部112は、共通領域210から読み出す情報に基づいて、クライアント端末100で動作する各種ソフトウェアを実行する。ソフトウェア実行部112が実行するソフトウェアは、OSやミドルウェア、ライブラリなどのシステムソフトウェアでも良いし、ユーザの入力に基づく各種タスクを実行するアプリケーションソフトウェアでも良い。
【0034】
ファイルシステム113は、クライアント端末100が備える記憶装置へのアクセスを制御する。ファイルシステム113は、クライアント端末100を動作させるOSの機能として提供され、共通領域210の情報を、定められたブロック領域に分割して管理する。ファイルシステム113は、ソフトウェア実行部112がソフトウェアを実行することにより情報へのアクセス要求を行うと、ブロック領域ごとに付与されたブロック識別情報に基づいて、各ブロック領域への情報の書き込みや読み出しなどの処理を行う。
【0035】
更新情報書き込み部114は、ファイルシステム113が特定のブロックへの更新情報の書き込み要求を行う際、その書き込み処理を制御する。更新情報書き込み部114は、ファイルシステム113がブロックへの書き込み要求を行うと、書き込み要求のあったブロックに対応するブロック識別情報に対応付けられて、第1の管理領域123に記憶されている更新有無情報を「1」に更新し、また更新有無情報を記憶させた時刻を記憶させる。また、更新情報書き込み部114は、ファイルシステム113から書き込み要求のあったブロックごとの更新情報の実データを、クライアントキャッシュ領域121に記憶させる。
【0036】
ここで、更新情報書き込み部114は、クライアントキャッシュ領域121にブロックごとに記憶されている更新情報の総容量と、予め定められたクライアントキャッシュ領域121の容量とを比較し、更新情報の総容量が、予め定められたクライアントキャッシュ領域121の容量を超えているか否かを判定する。ここで、クライアントキャッシュ領域121の容量は、ネットワークブートシステム管理サーバ400から送信される起動情報により動的に定められることとしても良い。
【0037】
更新情報書き込み部114は、クライアントキャッシュ領域121に記憶されている更新情報の総容量が、予め定められたクライアントキャッシュ領域121の容量を超えていると判定すると、クライアントキャッシュ領域121に記憶されている更新情報のうち、参照された頻度が最も低い更新情報を読み出し、ストレージキャッシュ領域220に記憶させてから、クライアントキャッシュ領域121から削除する。また、更新情報書き込み部114は、第2の管理領域124に記憶される更新所在情報のうち、クライアントキャッシュ領域121からストレージキャッシュ領域220への更新情報の書き換えを行ったブロックに対応する更新所在情報を、「1」に更新して記憶させる。ここでは、参照された頻度が低い情報を検出するLFU(Least Frequently Used)の方式により、クライアントキャッシュ領域121からストレージキャッシュ領域220へ書き換える更新情報を決定することとしたが、最も参照されていない情報を検出するLRU(Least Recently Used)などの方式により、書き換えの対象とする更新情報を決定しても良い。このように、更新情報を記憶させるキャッシュ領域を、参照頻度や参照時間に応じて選択し、より参照される見込みが高い更新情報をクライアントキャッシュ領域121に記憶させるように制御することで、読み出し時の物理メモリへのヒット率を高くし、より速い読み出し処理を行うことが可能となる。
【0038】
更新情報読み出し部115は、ファイルシステム113が特定のブロックへの読み出し要求を行う際、その読み出し処理を制御する。更新情報読み出し部115は、ファイルシステム113から読み出し要求のあったブロックに対応する更新有無情報を、第1の管理領域123から読み出し、更新有無情報が「0」である場合には、共通領域210から読み込み対象のブロックの情報を読み出す。更新有無情報が「1」である場合には、そのブロックに対応する第2の管理領域124に記憶された更新所在情報を読み出し、更新所在情報が「0」である場合には、クライアントキャッシュ領域121から対象のブロックの更新情報を読み出す。更新所在情報が「1」である場合には、ストレージキャッシュ領域220から対象のブロックの更新情報を読み出す。
【0039】
図5は、ネットワークブートシステム1の具体的な実施例を示す図である。クライアント端末100にてソフトウェア実行部112として動作するアプリケーション151が、操作するファイルについての更新情報を生成すると、ファイルシステム113が、更新された情報が含まれるブロック領域への書き込み要求を行う。更新情報書き込み部114として動作するドライバ153は、クライアントキャッシュ領域121に更新情報を記憶させた後、クライアントキャッシュ領域121に記憶されている更新情報の領域の範囲が定められた容量を超えている場合には、クライアントキャッシュ領域121に記憶されている更新情報のうち、参照された頻度が最も低い更新情報を読み出して、NIC(Network Interface Card)154を介してネットワーク300に接続し、読み出した更新情報をストレージキャッシュ領域220に記憶させる。ここで、NICには、PXE(Preboot eXecution Environment)に準拠したソフトウェアが記憶されている。
【0040】
図2に戻り、ストレージ装置200は、共通領域210と、ストレージキャッシュ領域220とを備えており、複数のクライアント端末のそれぞれを動作させる情報を記憶する。
共通領域210には、ネットワーク300を介して接続された複数のクライアント端末のそれぞれを起動して動作させる起動領域の情報が記憶される。
ストレージキャッシュ領域220には、制御部110の更新情報書き込み部114によって更新情報が記憶される。ストレージキャッシュ領域220には、複数の領域(領域A、領域B、・・・)が割り当られており、複数のクライアント端末100が存在する場合には、クライアント端末100ごとに、更新情報が記憶される領域が割り当てられる。このようなストレージキャッシュ領域220の割り当ては、ネットワークブートシステム管理サーバ400から送信される起動情報により定められる。
【0041】
次に、図6を参照して、クライアント端末100が起動する動作例を説明する。
まず、クライアント端末100の起動制御部111が、予め定められたPXEの手順に従って、ネットワークブートシステム管理サーバ400にアクセスする(ステップS1)。ネットワークブートシステム管理サーバ400は、クライアント端末100に対応するIPアドレス、ブートストラップファイル、クライアント端末100に対応する共通領域が記憶されたストレージ装置200、クライアント端末100に割り当てられるストレージキャッシュ領域220(例えば、領域A)などの起動情報を、クライアント端末100に送信する(ステップS2)。
【0042】
クライアント端末100の起動制御部111は、ステップS2で取得した起動情報に基づいて、ネットワークブートシステム管理サーバ400にブートプログラムを要求し(ステップS3)、ネットワークブートシステム管理サーバ400からブートプログラムを受信する(ステップS4)。そして、クライアント端末100の起動制御部111は、受信したブートプログラムに基づいて、クライアント端末100を起動させる。また、クライアント端末100は、ステップS2で取得した起動情報に基づいて、自身に対応するストレージ装置200の共通領域210に接続し、接続した共通領域210を自身の起動領域として認識してマウントする(ステップS5)。さらに、ステップS2で取得した起動情報に基づいて、自身に対応するストレージ装置200のストレージキャッシュ領域220に接続し、定められたストレージキャッシュ領域220の領域(例えば、領域A)を自身のストレージキャッシュ領域として認識してマウントする(ステップS6)。
【0043】
図7は、ソフトウェア実行部112によって生成された更新情報が、更新情報書き込み部114によってクライアントキャッシュ領域121またはストレージキャッシュ領域220に記憶される動作例を示すフローチャートである。更新情報書き込み部114は、ファイルシステム113からのブロックへの書き込み要求がなければ、何もしない(ステップS11−NO)。一方、ソフトウェア実行部112の動作中、共通領域210に対する更新情報の書き込み要求が発生し、ファイルシステム113からのブロック書き込み要求が発生すると(ステップS11−YES)、更新情報書き込み部114は、書き込み要求のあったブロックに対応する第1の管理領域123に記憶されたBitmap1の更新有無情報を読み出す。読み出した更新有無情報が、「0」の場合は、「1」に変更して記憶させる。既に「1」であれば、「1」のままとする(ステップS12)。
【0044】
そして、更新情報書き込み部114は、ソフトウェア実行部112によって変更された情報が含まれるブロックの更新後の情報である更新情報を、クライアントキャッシュ領域121に記憶させる(ステップS13)。また、更新情報書き込み部114は、Bitmap2に含まれる更新所在情報のうち、ステップS13で更新情報の書き込みを行ったブロックに対応する更新所在情報を、「0」に更新して記憶させる(ステップS14)。また、更新情報書き込み部114は、クライアントキャッシュ領域121にブロックごとに記憶されている更新情報の総容量と、予め定められたクライアントキャッシュ領域121の容量とを比較し、更新情報の総容量が、予め定められたクライアントキャッシュ領域121の容量を超えているか否かを判定する(ステップS15)。
【0045】
更新情報書き込み部114は、更新情報の総容量が、予め定められたクライアントキャッシュ領域121の容量を超えていないと判定すると(ステップS15−NO)、ステップS11に戻り、書き込み要求がなければ、処理を終了する。一方、更新情報の総容量が、予め定められたクライアントキャッシュ領域121の容量を超えていると判定すると(ステップS15−YES)、クライアントキャッシュ領域121に記憶されている更新情報のうち、参照された頻度が最も低い更新情報を読み出し(ステップS16)、クライアントキャッシュ領域121から削除して、ストレージキャッシュ領域220に記憶させる。また、更新情報書き込み部114は、Bitmap2の更新所在情報のうち、クライアントキャッシュ領域121からストレージキャッシュ領域220への更新情報の書き換えを行ったブロックに対応する更新所在情報を、「1」に更新して記憶させる(ステップS17)。そして、ステップS11に戻り、更新情報書き込み部114が、ファイルシステム113からのブロックへの書き込み要求があるか否かを判定し、全ての書き込み要求についてステップS12からステップS17の処理を行う。
【0046】
次に、図8を参照して、更新情報読み出し部115が、共通領域210に記憶された情報、またはメモリ領域120、ストレージキャッシュ領域220に記憶された更新情報を読み出す動作例を説明する。
更新情報読み出し部115は、ファイルシステム113からの読み出し要求があると、第1の管理領域123に記憶されたBitmap1を参照し、読み出し対象のブロックに対応する更新有無情報が、「1」であるか「0」であるかを判定する(ステップS21)。ここで、更新有無情報が、「0」であれば、更新情報読み出し部115は、共通領域210からブロックの情報を読み出し(ステップS22)、処理を終了する。
【0047】
ステップS21で、更新有無情報が「1」であれば、更新情報読み出し部115は、Bitmap2を参照し、読み出し対象のブロックに対応する更新所在情報が、「1」であるか「0」であるかを判定する(ステップS23)。更新所在情報が「0」であれば(ステップS23−NO)、読み出し対象のブロックの更新情報を、クライアントキャッシュ領域121から読み出す(ステップS24)。一方、ステップS23で、更新所在情報が「1」であれば(ステップS23−YES)、更新情報読み出し部115は、読み出し対象のブロックの更新情報を、ストレージキャッシュ領域220から読み出す(ステップS25)。
【0048】
なお、上述の読み出しの例では、更新情報読み出し部115が、単一のブロックの読み出し要求に対応する情報を読み出す例を説明したが、ファイルシステム113からの読み出し要求は、一度に複数のブロックについての読み出し要求が行われる場合がある。以下、複数のブロックの読み出し要求があった場合の動作例を説明する。
【0049】
図9は、連続しない複数のブロックに対する読み出し要求があった場合の更新情報読み出し部115の動作例を示すフローチャートである。連続しない複数のブロックとは、例えば、図3において、ブロック「A1」、ブロック「B1」、ブロック「E5」の3ブロックに対する読み出し要求があったような場合である。
【0050】
更新情報読み出し部115は、ファイルシステム113から連続しない複数のブロック読み出し要求を受信すると(ステップS41−YES)、まず、ブロック読み出し要求のあったブロック「A1」について、上述した動作と同様に、Bitmap1を参照する(ステップS43)。図3より、ブロック「A1」の更新有無情報は、「1」が記憶されているので(ステップS43−YES)、更新情報読み出し部115は、Bitmap2を参照する(ステップS45)。Bitmap2のブロック「A1」の更新所在情報には、「1」が記憶されているので(ステップS45−YES)、更新情報読み出し部115は、ブロック「A1」の更新情報を、ストレージキャッシュ領域220から読み出す(ステップS47)。
【0051】
また、ブロック「B1」の更新有無情報には「0」が記憶されているので、更新情報読み出し部115は、共通領域210から読み出し対象のブロックの情報を読み出す(ステップS44)。さらに、Bitmap1におけるブロック「E5」の更新有無情報には「1」が記憶されており、Bitmap2におけるブロック「E5」の更新所在情報には「0」が記憶されているので、更新情報読み出し部115は、クライアントキャッシュ領域121から読み出し対象のブロックの更新情報を読み出す(ステップS46)。更新情報読み出し部115は、ファイルシステム113から読み出し要求のあった複数のブロックの全てを読み出すと、読み出したブロック情報をファイルシステム113に返し(ステップS42)、処理を終了する。
【0052】
図10は、連続する複数のブロックに対する読み出し要求があった場合の更新情報読み出し部115の動作例を示すフローチャートである。連続する複数のブロックとは、例えば、図3において、ブロック「A1」、ブロック「B1」、ブロック「C1」、ブロック「D1」、ブロック「E1」の読み出し要求があった場合である。この場合、更新情報読み出し部115は、まず、更新のあったブロックの更新情報のそれぞれの実データを読み出した後、更新されていない共通領域210の情報を一度に読み出して、読み込みブロックをマージする処理を行う。これにより、ネットワーク300を介して共通領域210から情報を読み出す回数を減らすことができ、より効率よくブロックの情報を読み出すことができる。以下、この場合の動作例を詳細に説明する。
【0053】
更新情報読み出し部115は、ファイルシステム113からのブロック「A1」の読み出し要求を検出すると(ステップS51−YES)、Bitmap1を参照する。図3より、ブロック「A1」の更新有無情報には、「1」が記憶されているので(ステップS53−YES)、更新情報読み出し部115は、Bitmap2を参照する(ステップS55)。Bitmap2のブロック「A1」の更新所在情報には、「1」が記憶されているので(ステップS55−YES)、更新情報読み出し部115は、ブロック「A1」の情報を、ストレージキャッシュ領域220に記憶された更新情報から読み出す(ステップS57)。更新情報読み出し部115は、ステップS51の処理に戻る。
【0054】
ブロック「B1」の読み出し要求について、Bitmap1には「0」が記憶されている。このように、Bitmap1に記憶される情報が「0」である場合には(ステップS53−NO)、更新情報読み出し部115は、この時点では共通領域210からの読み込みを行わずに、ステップS51に戻る。そして、上述の動作と同様に、ブロック「C1」については、Bitmap1に記憶された更新有無情報が「1」であり、Bitmap2に記憶された更新有無情報が「0」であるので、更新情報読み出し部115は、クライアントキャッシュ領域121からブロック「C1」の更新情報を読み出す。ブロック「D1」は、Bitmap1に記憶された更新有無情報が「0」であるので、この時点では共通領域210からの読み込みを行わずに、ステップS51に戻る。さらに、ブロック「E1」については、Bitmap1に記憶された更新有無情報が「1」であり、Bitmap2に記憶された更新有無情報が「1」であるので、更新情報読み出し部115は、ストレージキャッシュ領域220からブロック「E1」の更新情報を読み出す。
【0055】
このように、更新情報読み出し部115は、ブロック「A1」からブロック「E1」までの各ブロックについて、クライアントキャッシュ領域121またはストレージキャッシュ領域220から更新情報を読み出すと(ステップS51−NO)、Bitmap1から、読み出し要求のあった連続するブロックの全ての更新有無情報を取得する。この例ではBitmap1から、「1」、「0」、「1」、「0」、「1」の情報が読み出される。更新情報読み出し部115は、読み出した連続する更新有無情報のうち、最初の「0」から、最後の「0」までのブロックに対応する全てのブロックの情報の実データを、共通領域210から読み出す。この例では、最初の「0」はブロック「B1」であり、最後の「0」はブロック「D1」であるから、ブロック「B1」、ブロック「C1」、ブロック「D1」についてのブロックの情報の実データを、共通領域210からまとめて読み出す(ステップS52)。ここで、ブロック「A1」とブロック「E1」の情報は読み出さない。
【0056】
そして、更新情報読み出し部115は、ブロック「A1」からブロック「E1」までのそれぞれについて、ステップS53からステップS57までに取得したブロックの更新情報と、ステップS52で共通領域210から読み出したブロックの情報とをマージする(ステップS54)。ここで、マージは、更新情報読み出し部115が、キャッシュ領域から読み出した更新情報と、共通領域210から読み出したブロック情報とを合成し、双方のブロック情報が読み出されている場合には、キャッシュ領域から読み出した更新情報を優先して適用することにより行う。更新情報読み出し部115は、マージしたブロック情報を、ファイルシステム113に返す。
【0057】
以上説明したように、本発明によれば、ネットワークブートによるシンクライアントシステムにおいて、ディスクレスPCをクライアント端末100として利用している場合に、クライアント端末100の独自の処理により生成される更新情報が、クライアント端末100に定められたクライアントキャッシュ領域121の容量を超える場合にも、ストレージキャッシュ領域220に更新情報を記憶させて、必要に応じて読み出すことが可能となる。これにより、クライアント端末100ごとに行われるセキュリティソフトのウィルス定義ファイルのバージョンアップや、クライアント端末100上で動作するアプリケーションが生成するファイルなどによる更新情報が、定められた容量を超えて発生した場合にも、メモリ領域120がオーバーフローして、動作が遅くなったり、動作停止してしまったりすることなく、安定して稼動するネットワークブートシステムを提供することが可能となる。
【0058】
なお、本発明における処理部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによりネットワークブートを行ってもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータシステム」は、ホームページ提供環境(あるいは表示環境)を備えたWWWシステムも含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD−ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムが送信された場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリ(RAM)のように、一定時間プログラムを保持しているものも含むものとする。
【0059】
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
【図面の簡単な説明】
【0060】
【図1】本発明の一実施形態によるネットワークブートシステムの概要を示す図である。
【図2】本発明の一実施形態によるネットワークブートシステムの端末構成を示す図である。
【図3】本発明の一実施形態により第1の管理領域に記憶されるデータ例を示す図である。
【図4】本発明の一実施形態により第2の管理領域に記憶されるデータ例を示す図である。
【図5】本発明の一実施形態によるネットワークブートシステムの具体的な実装例を示す図である。
【図6】本発明の一実施形態によるネットワークブートシステムが起動する動作する動作例を示すフローチャートである。
【図7】本発明の一実施形態によるクライアント端末が、更新情報を書き込む動作例を示すフローチャートである。
【図8】本発明の一実施形態によるクライアント端末が、更新情報を読み出す動作例を示すフローチャートである。
【図9】本発明の一実施形態によるクライアント端末が、連続しないブロックの情報を読み出す動作例を示すフローチャートである。
【図10】本発明の一実施形態によるクライアント端末が、連続するブロックの情報を読み出す動作例を示すフローチャートである。
【符号の説明】
【0061】
1 ネットワークブートシステム
100 クライアント端末
110 制御部
111 起動制御部
112 ソフトウェア実行部
113 ファイルシステム
114 更新情報書き込み部
115 更新情報読み出し部
120 メモリ領域
121 クライアントキャッシュ領域
122 管理領域
123 第1の管理領域
124 第2の管理領域
151 アプリケーション
153 ドライバ
154 NIC
200 ストレージ装置
210 共通領域
220 ストレージキャッシュ領域
300 ネットワーク
400 ネットワークブートシステム管理サーバ
500 管理端末

【特許請求の範囲】
【請求項1】
ネットワークを介して接続された複数のクライアント端末のそれぞれを起動させ動作させる情報が含まれる共通領域の情報が記憶されるストレージ装置と、当該ストレージ装置から読み出す前記共通領域の情報に基づいて自身を起動して動作する前記クライアント端末と、を備えたネットワークブートシステムであって、
前記クライアント端末は、
前記ストレージ装置から読み出した前記共通領域の情報のうち、自身の前記動作によって更新された領域の更新情報が記憶されるメモリ領域と、
前記メモリ領域に記憶された前記更新情報が、前記メモリ領域のうち、定められたクライアントキャッシュ領域の範囲を超える場合、前記ストレージ装置に前記更新情報を書き込む更新情報書き込み部と、
前記更新情報が、前記メモリ領域に記憶されているか、前記ストレージ装置に記憶されているかを示す管理情報が記憶される管理領域と、
前記更新情報を読み出す際、前記管理領域に記憶された前記管理情報に基づいて、前記メモリ領域または前記ストレージ装置に記憶された前記更新情報を読み出す更新情報読み出し部と、を備え、
前記ストレージ装置は、
前記クライアント端末の前記更新情報書き込み部によって当該クライアント端末の前記更新情報が書き込まれるストレージキャッシュ領域と、
を備えることを特徴とするネットワークブートシステム。
【請求項2】
前記クライアント端末の前記管理領域は、
前記ストレージ装置に記憶された前記共通領域のうち、定められたブロック領域を示すブロック識別情報ごとに、前記ブロック領域に含まれる情報が更新されたか否かを示す更新有無情報が対応付けられる第1の管理情報が記憶される第1の管理領域と、
前記第1の管理領域に記憶された前記ブロック識別情報ごとに、当該ブロック領域に対応する更新情報が、前記メモリ領域と前記ストレージ装置とのいずれに記憶されているかを示す更新所在情報が対応付けられる第2の管理情報が記憶される第2の管理領域と、
を備えることを特徴とする請求項1に記載のネットワークブートシステム。
【請求項3】
前記ストレージ装置の、
前記ストレージキャッシュ領域には、複数の前記クライアント端末ごとに、当該クライアント端末に対応する前記更新情報が記憶される複数の領域が割り当てられる
ことを特徴とする請求項1または請求項2のいずれか1項に記載のネットワークブートシステム。
【請求項4】
前記クライアント端末の、
前記更新情報書き込み部は、前記メモリ領域に記憶された前記更新情報が、前記メモリ領域のうち、定められたクライアントキャッシュ領域の範囲を超える場合、前記メモリ領域に記憶された前記更新情報のうち、参照された頻度が最も低い前記更新情報を読み出し、前記メモリ領域から削除して、前記ストレージ装置に書き込む
ことを特徴とする請求項1から請求項3までのいずれか1項に記載のネットワークブートシステム。
【請求項5】
ネットワークを介して接続された複数のクライアント端末のそれぞれを起動させ動作させる情報が含まれる共通領域の情報が記憶されるストレージ装置と、当該ストレージ装置から読み出す前記共通領域の情報に基づいて自身を起動して動作する前記クライアント端末と、を備えたネットワークブートシステムにおけるネットワークブート方法であって、
前記ストレージ装置から読み出した前記共通領域の情報のうち、自身の前記動作によって更新された領域の更新情報が記憶されるメモリ領域と、前記更新情報が、前記メモリ領域に記憶されているか、前記ストレージ装置に記憶されているかを示す管理情報が記憶される管理領域と、を備える前記クライアント端末の、
更新情報書き込み部が、前記メモリ領域に記憶された前記更新情報が、前記メモリ領域のうち、定められたクライアントキャッシュ領域の範囲を超える場合、前記ストレージ装置のストレージキャッシュ領域に前記更新情報を書き込むステップと、
更新情報読み出し部が、前記更新情報を読み出す際、前記管理領域に記憶された前記管理情報に基づいて、前記メモリ領域または前記ストレージ装置に記憶された前記更新情報を読み出すステップと、
を含むことを特徴とするネットワークブート方法。
【請求項6】
前記クライアント端末の前記管理領域の、
第1の管理領域に、前記ストレージ装置に記憶された前記共通領域のうち、定められたブロック領域を示すブロック識別情報ごとに、前記ブロック領域に含まれる情報が更新されたか否かを示す更新有無情報が対応付けられる第1の管理情報が記憶されるステップと、
第2の管理領域に、前記第1の管理領域に記憶された前記ブロック識別情報ごとに、当該ブロック領域に対応する更新情報が、前記メモリ領域と前記ストレージ装置とのいずれに記憶されているかを示す更新所在情報が対応付けられる第2の管理情報が記憶されるステップと、
を備えることを特徴とする請求項5に記載のネットワークブート方法。
【請求項7】
前記ストレージ装置の、
前記ストレージキャッシュ領域には、複数の前記クライアント端末ごとに、当該クライアント端末に対応する前記更新情報が記憶される複数の領域が割り当てられる
ことを特徴とする請求項5または請求項6のいずれか1項に記載のネットワークブート方法。
【請求項8】
前記クライアント端末の、
前記更新情報書き込み部は、前記メモリ領域に記憶された前記更新情報が、前記メモリ領域のうち、定められたクライアントキャッシュ領域の範囲を超える場合、前記メモリ領域に記憶された前記更新情報のうち、参照された頻度が最も低い前記更新情報を読み出し、前記メモリ領域から削除して、前記ストレージ装置に書き込む
ことを特徴とする請求項5から請求項7までのいずれか1項に記載のネットワークブート方法。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−294867(P2009−294867A)
【公開日】平成21年12月17日(2009.12.17)
【国際特許分類】
【出願番号】特願2008−147164(P2008−147164)
【出願日】平成20年6月4日(2008.6.4)
【出願人】(000102728)株式会社エヌ・ティ・ティ・データ (438)
【Fターム(参考)】