(57)【要約】【課題】仮想ディスクをロールバックさせた後に多数の端末を一斉に起動させても端末の起動速度が低下することを抑える。【解決手段】ネットワークブートシステム１００は、端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスク２２ａとして提供するネットワークブートサーバと、物理的な記憶装置２１ａを備えた端末２０ａとがネットワーク３０を介して接続され、オペレーティングシステムは、サーバから読み出したデータを記憶装置にキャッシュデータとして保存するリードキャッシュ機構を備える。そして、そのリードキャッシュ機構は、仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するための世代管理データを備え、世代管理データは、リビジョンの遷移毎に分けられてサーバに保存されているとともに、分けられた世代管理データの少なくとも一つは、記憶装置にもそのコピーが保存されている。【選択図】  図１
2014010566.tif 000002
【特許請求の範囲】
【請求項１】
クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして提供するネットワークブートサーバと、物理的な記憶装置を備えたクライアント端末とがネットワークを介して接続され、
前記オペレーティングシステムは、前記サーバから読み出したデータを前記記憶装置にキャッシュデータとして保存するリードキャッシュ機構を備えたネットワークブートシステムであって、
前記リードキャッシュ機構は、前記仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するための世代管理データを備え、
前記世代管理データは、リビジョンの遷移毎に分けられて前記サーバに保存されているとともに、
前記分けられた世代管理データの少なくとも一つは、前記記憶装置にもそのコピーが保存されている
ことを特徴とするネットワークブートシステム。
【請求項２】
前記キャッシュデータは、前記仮想ディスクの改訂情報を表すリビジョンに対応するキャッシュのリビジョンを有し、
前記コピーは、前記キャッシュのリビジョンまでの世代管理データである
ことを特徴とする請求項１記載のネットワークブートシステム。
【請求項３】
前記リードキャッシュ機構は、キャッシュデータの有無を示すキャッシュ管理テーブルを備え、
前記仮想ディスクがロールバックされた場合には、前記仮想ディスクのロールバックされたリビジョンから前記キャッシュのリビジョンに対応する仮想ディスクのリビジョンへの世代管理データをロールバック時の世代管理データとして前記コピーから選択し、ロールバック前のキャッシュ管理テーブルに前記ロールバック時の世代管理データを適用して前記キャッシュ管理テーブルを生成する手段と、
前記仮想ディスクのロールバックされたリビジョンまでの世代管理データを前記記憶装置に保存する手段とを備える
ことを特徴とする請求項１又は請求項２記載のネットワークブートシステム。
【請求項４】
前記ロールバック前のキャッシュ管理テーブルは、キャッシュデータが有る領域とキャッシュデータが無い領域とを表すビット列であり、
前記ロールバック時の世代管理データは、変更された領域と変更されなかった領域とを表すビット列であり、
前記キャッシュ管理テーブルは、前記ロールバックされる前のキャッシュ管理テーブルと前記ロールバック時の世代管理データとの論理演算により算出される
ことを特徴とする請求項３記載のネットワークブートシステム。
【請求項５】
前記リードキャッシュ機構は、以下の手順により起動される
ことを特徴とする請求項１項記載のネットワークブートシステム。
（ａ）前記仮想ディスクの改訂情報を表すリビジョンと前記キャッシュデータに対応する仮想ディスクのリビジョンとを比較する
（ｂ）前記仮想ディスクの改訂情報を表すリビジョンが前記キャッシュデータに対応する仮想ディスクのリビジョンよりも古い場合、前記仮想ディスクの改訂情報を表すリビジョンから前記キャッシュデータに対応する仮想ディスクのリビジョンへの世代管理データを変更前後の世代管理データとして前記コピーから選択する
（ｃ）前記仮想ディスクの改訂情報を表すリビジョンまでの世代管理データを前記端末に保存する
（ｄ）前記変更前後の世代管理データを用いて変更の有ったキャッシュデータを利用しないようにしつつリードキャッシュを動作する
【請求項６】
クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして前記端末にネットワークを介して提供するネットワークブートサーバであって、
前記オペレーティングシステムは、前記サーバから読み出したデータをキャッシュデータとして保存するリードキャッシュ機構を備え、
前記サーバは、前記仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するためのものであって前記端末にもコピーが保存される世代管理データを有する
ことを特徴とするネットワークブートサーバ。
【請求項７】
クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして提供するネットワークブートサーバとネットワークを介して接続されたネットワークブートシステムにおけるクライアント端末であって、
前記オペレーティングシステムは、前記サーバから読み出したデータを前記記憶装置にキャッシュデータとして保存するリードキャッシュ機構を備え、
前記端末は、前記サーバに保存された前記仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するための世代管理データのコピーを有する
ことを特徴とするクライアント端末。
【請求項８】
クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして提供するネットワークブートサーバと、クライアント端末とがネットワークを介して接続され、
前記オペレーティングシステムは、前記サーバから読み出したデータをキャッシュデータとして端末に保存するリードキャッシュ機構を備え、
前記リードキャッシュ機構は、前記仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するための世代管理データを備えたネットワークブートシステムのリードキャッシュ機構の起動方法であって、
前記仮想ディスクの改訂情報を表すリビジョンと前記キャッシュデータに対応する仮想ディスクのリビジョンとを比較する工程と、
前記仮想ディスクの改訂情報を表すリビジョンが前記キャッシュデータに対応する仮想ディスクのリビジョンよりも古い場合、前記仮想ディスクの改訂情報を表すリビジョンから前記キャッシュデータに対応する仮想ディスクのリビジョンへの世代管理データを変更前後の世代管理データとして前記世代管理データから選択する工程と、
前記仮想ディスクの改訂情報を表すリビジョンまでの世代管理データを前記端末に保存する工程と、
前記変更前後の世代管理データを用いて変更の有ったキャッシュデータを利用しないようにしつつリードキャッシュを動作する工程とを含む
ことを特徴とするリードキャッシュ機構の起動方法。
【請求項９】
前記リードキャッシュ機構は、キャッシュデータの有無を示すキャッシュ管理テーブルを備え、
前記リードキャッシュを動作する工程は、
前記キャッシュ管理テーブルに前記変更前後の世代管理データを適用して新たにキャッシュ管理テーブルを生成し、前記新たに生成されたキャッシュ管理テーブルを参照してキャッシュデータが無いとされる領域のキャッシュデータを利用しないようにしつつリードキャッシュを動作する
ことを特徴とする請求項８記載のリードキャッシュ機構の起動方法。
【請求項１０】
前記キャッシュ管理テーブルは、キャッシュデータが有る領域とキャッシュデータが無い領域とを表すビット列であり、
前記変更前後の世代管理データは、変更された領域と変更されなかった領域とを表すビット列であり、
前記新たにキャッシュ管理テーブルを生成する工程は、
前記キャッシュ管理テーブルと前記変更前後の世代管理データとの論理演算をする
ことを特徴とする請求項９記載のリードキャッシュ機構の起動方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークを介してオペレーティングシステムを起動するネットワークブートシステムに関するものである。
【背景技術】
【０００２】
近年、ネットワークを介してオペレーティングシステム（以下、「ＯＳ」という。）を起動するシステム（以下、「ネットワークブートシステム」という。）において、ネットワークブートサーバへの負荷を軽減するために、クライアント端末側の物理的な記憶装置の一部に、読み出し専用のキャッシュ（以下、「リードキャッシュ機構」という。）を備えることが一般的に知られている。【０００３】
特許文献１には、ネットワークブートシステムにおいて、エンドユーザが使用するＰＣ（クライアント端末）のローカルディスク内にネットワークブートサーバ上の仮想ディスクをキャッシュすることでサーバへのネットワークアクセスを減らすことができるリードキャッシュ機構を備えたネットワークブートシステムが開示されている。仮想ディスクは改訂情報（以下、「リビジョン」という。）を用いて世代管理されおり、アップデート・プログラムのインストールや設定変更といったような仮想ディスクの改訂に伴ってそのリビジョンが更新される。リードキャッシュ機構は、各端末に仮想ディスクのリビジョンに対応したキャッシュ管理テーブルを有し、その管理テーブルを用いることでキャッシュデータの有無を判別している。【０００４】
そして、上述のネットワークブートシステムでは、仮想ディスクの領域とキャッシュ領域との対応関係を示す変更領域マップをさらに有しており、仮想ディスクが新たに改訂された場合、仮想ディスクのリビジョンが古いものから新しいものに進められ、変更されたキャッシュ領域を示す変更領域マップがキャッシュ管理テーブルに適用される。リードキャッシュ機構は、この管理テーブルを用いることで、仮想ディスクの変更されたデータに相当するキャッシュデータを破棄してキャッシュし直し、変更されなかったデータに相当するキャッシュデータをそのままキャッシュとして保持するようにしている。このように仮想ディスクを新たに改訂してリビジョンを進めた場合、リードキャッシュ機構はキャッシュの大部分を残して有効に利用することができる。このようなネットワークブートシステムでは、多数のクライアント端末を一斉に起動した場合でも２回目以降の起動ではネットワークへのアクセスが殆ど無く、クライアント端末の起動が高速化する。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第０９−１４５２７４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上述のような従来のネットワークブートシステムでは、仮想ディスク（サーバ上のディスクイメージ）を過去の状態、具体的には、過去のリビジョンに戻すためにロールバック（rollback）させると、ロールバックされた仮想ディスクと端末側のキャッシュデータとの整合性がとれず、キャッシュデータを利用することができなかった。そのため、上述のリードキャッシュ機構では、キャッシュデータを全て破棄してロールバックされた仮想ディスクをキャッシュし直していたが、仮想ディスクがロールバックされた後に多数の端末が一斉に起動すると、端末からサーバへのネットワークアクセスが多発し、サーバに負荷が集中して端末の起動速度が低下するという問題があった。【０００７】
本発明は、上記に鑑みてなされたものであり、リードキャッシュ機構を備えたネットワークブートシステムにおいて仮想ディスクをロールバックさせた後に多数の端末を一斉に起動させても端末の起動速度が低下することを抑えることを主な技術的課題とする。
【課題を解決するための手段】
【０００８】
本発明に係るネットワークブートシステムは、クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして提供するネットワークブートサーバと、物理的な記憶装置を備えたクライアント端末とがネットワークを介して接続され、オペレーティングシステムは、サーバから読み出したデータを記憶装置にキャッシュデータとして保存するリードキャッシュ機構を備え、そのリードキャッシュ機構は、仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するための世代管理データを備え、世代管理データは、リビジョンの遷移毎に分けられてサーバに保存されているとともに、分けられた世代管理データの少なくとも一つは、記憶装置にもそのコピーが保存されていることを特徴とする。世代管理データは、仮想ディスク（ディスクイメージ）のリビジョンの遷移によって仮想ディスクのどの領域が変更されたかを示すデータである。仮想ディスクの領域がキャッシュデータが保存された領域に対応付けされることでキャッシュデータの変更された領域がわかる。【０００９】
この構成により、仮想ディスク（サーバ上のディスクイメージ）が改訂又はロールバックされても、リードキャッシュ機構は端末の記憶装置に保存された世代管理データのコピーを用いることによって端末からサーバへのネットワークアクセスを軽減して端末の起動速度が低下することを抑えることができる。【００１０】
キャッシュデータは、仮想ディスクの改訂情報を表すリビジョンに対応するキャッシュのリビジョンを有し、記憶装置に保存された世代管理データのコピーは、キャッシュのリビジョンまでの世代管理データであることが好ましい。例えば、仮想ディスクのリビジョンとキャッシュのリビジョンとが同じである場合、キャッシュのリビジョン１１までの世代管理データとは、仮想ディスクがあるリビジョンからリビジョン１１に遷移したときに仮想ディスクのどの領域が変更されたかを示すデータである。また、記憶装置に保存された世代管理データのコピーは、キャッシュのリビジョンに対応する仮想ディスクのリビジョンが遷移した２つの異なるリビジョン間に含まれるものであってもよい。いずれにしてもこの記憶装置に保存された世代管理データのコピーを用いることでキャッシュのリビジョンまでの仮想ディスクの世代間の情報を取得することができる。【００１１】
さらに、リードキャッシュ機構は、キャッシュの有無を示すキャッシュ管理テーブルを備え、仮想ディスクがロールバックされた場合、仮想ディスクのロールバックされたリビジョンからキャッシュのリビジョンに対応する仮想ディスクのリビジョンへの世代管理データをロールバック時の世代管理データとして記憶装置に保存された世代管理データのコピーから選択し、ロールバック前のキャッシュ管理テーブルにロールバック時の世代管理データを適用してキャッシュ管理テーブルを生成する手段と、仮想ディスクのロールバックされたリビジョンまでの世代管理データを前記記憶装置に保存する手段とを備えることが好ましい。これにより、リードキャッシュ機構は、ロールバックされた場合に生成されるキャッシュ管理テーブルを用いることで破棄されるキャッシュデータの量を抑えてキャッシュデータを有効に利用することができる。また、仮想ディスクのロールバックされたリビジョンまでの世代管理データを端末の記憶装置に保存しておくことでさらに仮想ディスクがロールバックされてもその世代管理データを用いてキャッシュデータを有効に利用することができる。【００１２】
ロールバック前のキャッシュ管理テーブルは、キャッシュデータが有る領域とキャッシュデータが無い領域とを表すビット列であり、ロールバック時の世代管理データは、変更された領域と変更されなかった領域とを表すビット列であると、キャッシュ管理テーブルは、ロールバックされる前のキャッシュ管理テーブルとロールバック時の世代管理データとの論理演算により算出できる。例えば、キャッシュ管理テーブルを、キャッシュデータが有る領域を１、キャッシュデータが無い領域を０とするビット列とし、ロールバック時の世代管理データを、変更された領域を１、変更されなかった領域を０とするビット列としたときには、キャッシュ管理テーブルとロールバック時の世代管理データの否定との論理積で、キャッシュ管理テーブルを求めることができる。【００１３】
リードキャッシュ機構は、以下の手順により起動されるようにしてもよい。
（ａ）仮想ディスクの改訂情報を表すリビジョンとキャッシュデータに対応する仮想ディスクのリビジョンとを比較する。
（ｂ）仮想ディスクの改訂情報を表すリビジョンがキャッシュデータに対応する仮想ディスクのリビジョンよりも古い場合、仮想ディスクの改訂情報を表すリビジョンからキャッシュデータに対応する仮想ディスクのリビジョンへの世代管理データを変更前後の世代管理データとして端末に保存された世代管理データのコピーから選択する。
（ｃ）仮想ディスクの改訂情報を表すリビジョンまでの世代管理データを端末に保存する。
（ｄ）変更前後の世代管理データを用いて変更の有ったキャッシュデータを利用しないようにしつつリードキャッシュを動作する。【００１４】
本発明に係るネットワークブートサーバは、クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして端末にネットワークを介して提供し、オペレーティングシステムは、サーバから読み出したデータをキャッシュデータとして保存するリードキャッシュ機構を備え、サーバは、仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するためのものであって端末にもコピーが保存される世代管理データを有することを特徴とする。【００１５】
本発明に係るクライアント端末は、クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして提供するネットワークブートサーバとネットワークを介して接続され、オペレーティングシステムは、サーバから読み出したデータを記憶装置にキャッシュデータとして保存するリードキャッシュ機構を備え、端末は、サーバに保存された仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するための世代管理データのコピーを有することを特徴とする。【００１６】
上記ネットワークブートシステムのサーバ又は端末を用いてネットワークブートシステムを構成することで、リードキャッシュ機構は端末に保存された世代管理データのコピーを用いいて端末からサーバへのネットワークアクセスを軽減して端末の起動速度が低下することを抑えることができる。【００１７】
本発明に係るリードキャッシュ機構の起動方法は、クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして提供するネットワークブートサーバと、クライアント端末とがネットワークを介して接続され、オペレーティングシステムは、サーバから読み出したデータをキャッシュデータとして端末に保存するリードキャッシュ機構を備え、リードキャッシュ機構は、仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するための世代管理データを備えたネットワークブートシステムにおいて、仮想ディスクの改訂情報を表すリビジョンとキャッシュデータに対応する仮想ディスクのリビジョンとを比較する工程と、仮想ディスクの改訂情報を表すリビジョンがキャッシュデータに対応する仮想ディスクのリビジョンよりも古い場合、仮想ディスクの改訂情報を表すリビジョンからキャッシュデータに対応する仮想ディスクのリビジョンへの世代管理データを変更前後の世代管理データとして世代管理データから選択する工程と、前記仮想ディスクの改訂情報を表すリビジョンまでの世代管理データを前記端末に保存する工程と、変更前後の世代管理データを用いて変更の有ったキャッシュデータを利用しないようにしつつリードキャッシュを動作する工程とを含むことを特徴とする。
【発明の効果】
【００１８】
本発明に係るネットワークブートシステムでは、仮想ディスクをロールバックさせた後においても端末の記憶装置に保存された世代管理データのコピーを用いることで端末からサーバへのネットワークアクセスを軽減して端末の起動速度が低下することを抑えることができる。
【図面の簡単な説明】
【００１９】
【図１】本実施形態のネットワークブートシステムの基本構成を説明するための概念図
【図２】本実施形態のネットワークブートシステムにおける変更領域マップについて説明するための概念図
【図３】本実施形態のネットワークブートシステムにおいて変更領域マップが適用されたキャッシュ管理テーブルを説明する概念図、（ａ）はリビジョン１１のキャッシュ管理テーブルの一例を示す図であり、（ｂ）はリビジョン８からリビジョン１１への変更領域マップの一例を示す図であり、（ｃ）はリビジョン８のキャッシュ管理テーブルの一例を示す図
【図４】本実施形態のネットワークブートシステムにおいてリードキャッシュ機構がキャッシュ管理テーブルに変更領域マップを適用する流れの一例を示すフローチャート
【発明を実施するための形態】
【００２０】
以下、本実施形態のネットワークブートシステムについて図面を参照して詳述する。まず、本発明が前提とするリードキャッシュ機構を備えたネットワークブートシステムの一実施態様を例示して説明する。各実施形態の記載は本発明の技術的思想を理解するために合目的的に解釈され、実施形態の記載に限定解釈されるべきものではない。
【００２１】
（１）ネットワークブートシステムの全体構成
図１は、本実施形態のネットワークブートシステムの基本構成を説明するための概念図である。図１に示すように、ネットワークブートシステム１００は、サーバ１０と、複数台のクライアント端末２０（２０ａ，・・・）とがネットワーク３０を介して接続されている。サーバ１０は物理ディスク１１を、クライアント端末２０ａは物理的な記憶装置としての物理ディスク２１ａと仮想ディスク２２ａとをそれぞれ備え、いずれも図示しないＣＰＵや物理メモリなどの基本的な構成を備えている。物理ディスク１１には、各クライアント端末２０（２０ａ，・・・）が最初の起動時に読み込むＯＳのディスクイメージ２２ａが保存されている。なお、物理ディスクは、実体を伴うハードディスクその他の記憶手段を指す。物理ディスク２１ａは、論理的なレベルで認識される第１のパーテーションＰ１と物理的なレベルで認識される第２のパーテーションＰ２とを有する。第２のパーテーションＰ２には、主に読み出しキャッシュ領域とキャッシュ管理領域とが割り当てられる。
【００２２】
クライアント端末２０ａの基本的な動作としては、端末２０ａのフィルタドライバが物理ディスク２１ａへの読み書きのアクセスをネットワークアクセスに変換することにより、端末２０ａのＣＰＵは、物理ディスク２１ａにアクセスすることに代えて、ネットワークインターフェースを用いてネットワークを介して接続されるサーバ１０上のディスクイメージ２２ａにアクセスする。クライアント端末２０ａは、リードキャッシュ機構を機能させるためのリードキャッシュドライバを備える。リードキャッシュドライバは、プログラムであり、物理ディスク２１ａにおける読み出しキャッシュ領域に対するデータのアクセス（書き込み及び読み出し）を主に行う。リードキャッシュドライバはサーバ１０から読み出されたデータを物理ディスク２１ａの読み出しキャッシュ領域にキャッシュとして保存して読み出しキャッシュさせる働きをする。なお、読み出しキャッシュ領域は、ディスクイメージ２２ａと１対１で対応付けされている。管理フラグを用いてキャッシュ後に一度でも書き込みが行われたことのあるキャッシュデータを利用しないようにしてもよい。
【００２３】
図２は、本実施形態のネットワークブートシステムにおける変更領域マップを説明するための概念図である。図２に示すように、サーバ１０の物理ディスク１１上には、各リビジョン（・・・, Rev.8, Rev9, ・・・, Rev.11）で管理された、クライアント端末２０ａのディスクイメージと、そのディスクイメージの世代管理データとしての変更領域マップとが保存されている。例えば、クライアント端末２０ａのリビジョン１１のディスクイメージ２２ａと、ディスクイメージ２２ａの世代管理データとしての変更領域マップＭ１，・・・，Ｍｎ（ｎは正の整数）とが保存されている。また、端末２０ａの物理ディスク２１ａ上には、上述のリードキャッシュドライバが読み出したキャッシュデータと、リビジョン１１のキャッシュ管理テーブルＴ１と、変更領域マップＭ１，・・・，Ｍｋ（ｋはｎ以下の正の整数）とが保存されている。
【００２４】
リビジョン１１のキャッシュ管理テーブルＴ１は、読み出しキャッシュ領域Ａｃ内にリビジョン１１のディスクイメージ２２ａのキャッシュデータが存在するかどうかを示すデータであり、例えば、キャッシュデータが有る領域（セクタ）を１で、キャッシュデータが無い領域を０でそれぞれ示すビット列である。なお、リビジョン１１のキャッシュ管理テーブルＴ１はリビジョン１１のキャッシュデータを管理しており、そのリビジョン１１のキャッシュデータはリビジョン１１のディスクイメージ２２ａに対応付けされている。キャッシュ管理テーブルＴ１は、端末２０ａの物理メモリに読み込まれ、定期的にキャッシュ管理領域へと書き戻される。
【００２５】
変更領域マップＭ１，・・・，Ｍｋは、いずれも端末２０ａの仮想ディスク２２ａ（サーバ１０のディスクイメージ２２ａ）のリビジョンの遷移を世代管理するための世代管理データであり、２つの異なるリビジョン間でディスクイメージ２２ａ内のどの領域のデータが変更されたかを示すデータである。変更領域マップＭ１，・・・，Ｍｋは、サーバ１０の物理ディスク１１上の変更領域マップＭ１，・・・，Ｍｎの一つ又は複数をコピーしたものであり、例えば、リビジョン１１のディスクイメージ２２ａを基準に変更された領域を１で、変更されていない領域を０でそれぞれ示すビット列である。
【００２６】
リードキャッシュ機構は、サーバ１０側でディスクイメージ２２ａがリビジョン１１と異なったリビジョンに改訂又はロールバックされていても、端末２０ａ側に保存された変更領域マップＭ１，・・・，Ｍｋをリビジョン１１のキャッシュ管理テーブルＴ１に適用することにより、ディスクイメージ２２ａが変更されなかった領域、すなわち、キャッシュデータをそのまま利用できる領域を特定し、キャッシュデータを有効に利用することができる。これにより、端末からサーバへのネットワークアクセスを低減して端末の起動速度が低下することを抑えることができる。次に、変更領域マップをキャッシュ管理テーブルに適用する方法について説明する。
【００２７】
図３は、本実施形態のネットワークブートシステムにおいて変更領域マップが適用されたキャッシュ管理テーブルを説明する概念図である。図３（ａ）はリビジョン１１のキャッシュ管理テーブルの一例を示す図であり、図３（ｂ）はリビジョン８からリビジョン１１への変更領域マップの一例を示す図であり、図３（ｃ）はリビジョン８のキャッシュ管理テーブルの一例を示す図である。
【００２８】
図３（ａ）に示すように、リビジョン１１のキャッシュ管理テーブルＴ１は、セクタＡで１、セクタＢで０、セクタＣで１である。これは、端末２０ａの読み出しキャッシュ領域のセクタＡ及びＣでリビジョン１１のディスクイメージ２２ａのデータが既にキャッシュデータとして保存されている（キャッシュ済みである）こと、及びセクタＢでキャッシュデータが無い（未キャッシュである）ことを示している。リードキャッシュ機構は、このリビジョン１１のキャッシュ管理テーブルＴ１を参照することで、キャッシュ済みのセクタのキャッシュデータにアクセスすることができ、リビジョン１１のディスクイメージ２２ａにおいて未キャッシュの領域に対応するデータを読み込んだ際にはキャッシュデータとして保存することができる。
【００２９】
図３（ｂ）に示すように、リビジョン８からリビジョン１１への変更領域マップＭ３は、セクタＡで１、セクタＢで１、セクタＣで０とそれ以外のセクタで０である。これは、ディスクイメージ２２ａをリビジョン８からリビジョン１１に改訂したときに、読み出しキャッシュ領域のセクタＡ及びＢがディスクイメージ２２ａの改訂に伴って変更された領域（変更領域）であること、及びセクタＣとそれ以外のセクタが変更されなかった領域（未変更領域）であることを示している。
【００３０】
変更領域マップは、ディスクイメージ（仮想ディスク）２２ａの変更された領域に対応する読み出しキャッシュ領域、例えばハードディスクではセクタを示すだけであり、その領域内のデータの中身については一切情報を保持しない。このため、変更領域マップの容量サイズをディスクイメージ２２ａのサイズよりもはるかに小さくすることができる。例えば、現状のハードディスク等の記録単位を例にとり、１セクタに５１２バイトのデータが保存されているとすると、５１２バイト（＝４０９６ビット）あたり１ビットとなるため、仮想ディスクの容量の１／４０９６（＝１ビット／５１２バイト）のサイズでよいことがわかる。
【００３１】
１つの変更領域マップのサイズは、例えば約２１Ｇバイトのハードディスクで約５Ｍバイトであるが、この変更領域マップをランレングス（Run Length）圧縮法を用いて圧縮すると、約３．２Ｋ〜６．４Ｋバイトになり、より小さくなる。そのため、この圧縮された変更領域マップを端末２０ａの物理ディアスク２１ａに複数保存するようにして変更領域マップを用いてキャッシュデータを有効に利用すると、ディスクイメージ２２ａの各領域をキャッシュとして端末に保存し直すよりも大幅にネットワーク負荷を低減することができる。このような変更領域マップの圧縮は、サーバ側で実施してもよく、端末側で実施してもよい。
【００３２】
図３（ｃ）に示すように、リビジョン８のキャッシュ管理テーブルＴ２は、セクタＡで０、セクタＢで０、セクタＣで１である。これは、端末２０ａの読み出しキャッシュ領域のセクタＡ及びＢでキャッシュデータが無い（未キャッシュである）こと、及び端末２０ａの読み出しキャッシュ領域のセクタＣでリビジョン８のディスクイメージ２２ａのデータが既にキャッシュデータとして保存されている（キャッシュ済みである）ことを示している。リビジョン８のキャッシュ管理テーブルＴ２は、リビジョン８からリビジョン１１への変更領域マップＭ３における読み出しキャッシュ領域の変更のあったセクタＡ及びＢを抽出し、リビジョン１１のキャッシュ管理テーブルＴ１のセクタＡ及びＢを０（未キャッシュの状態）にする、すなわち、キャッシュ管理テーブルＴ１と変更領域マップＭ１の否定との論理積を求めることで得ることができる。なお、リビジョン８のキャッシュ管理テーブルＴ２を用いる場合、キャッシュデータのリビジョンを１１から８に変更しておく。また、このとき、図２に示すリビジョン８の変更領域マップＭａを端末２０ａの記憶装置２１ａに保存することで、さらにディスクイメージ２２ａがリビジョン８からロールバックされても同様にしてキャッシュ管理テーブルを求めることができる。
【００３３】
リードキャッシュ機構は、ディスクイメージ２２ａがリビジョン１１からリビジョン８へロールバックされていても、リビジョン８のキャッシュ管理テーブルＴ２を参照して変更のあったセクタＡ及びＢのリビジョン１１のキャッシュデータを新たにキャッシュし直し、変更されなかったリビジョン１１のキュッシュデータをリビジョン８のキャッシュデータとすることで、破棄されるリビジョン１１のキャッシュデータの量を抑えて、リビジョン１１のキャッシュデータを有効に利用することができる。
【００３４】
本実施形態のネットワークブートシステムは、仮想ディスクをロールバックさせた後、端末の記憶装置に保存されたロールバック後のリビジョンからロールバック前のリビジョンへの変更領域マップをキャッシュ管理テーブルに適用することで破棄されるキャッシュデータの量を抑えてそのキャッシュデータを有効に利用し、端末からサーバへのネットワークアクセスを軽減することができる。そのため、仮想ディスクをロールバックさせた後に多数の端末を一斉に起動させても端末の起動速度が低下することを抑えることができる。
【００３５】
図４は、本実施形態のネットワークブートシステムにおいてリードキャッシュ機構がキャッシュ管理テーブルに変更領域マップを適用する流れの一例を示すフローチャートである。以下、キャッシュデータのリビジョンとそのキャッシュデータのリビジョンに対応するディスクイメージのリビジョンとが同じものとして説明する。まず、サーバ上のディスクイメージのリビジョンとキャッシュデータのリビジョンとを比較する（Ｓ１）。サーバ上のディスクイメージのリビジョンがキャッシュデータのリビジョンよりも古い場合は、サーバ上のディスクイメージがロールバックされているため、端末に保存された変更領域マップのうち、具体的には、ロールバックされたディスクイメージのリビジョンからキャッシュデータのリビジョンへの変更領域マップを選択し、その変更領域マップをキャッシュ管理テーブルに適用して新たなキャッシュ管理テーブルを生成する（Ｓ２）。このとき、キャッシュデータのリビジョンをロールバックされたディスクイメージのリビジョンに対応させて変更する。ロールバックされたディスクイメージにはロールバックされたディスクイメージのリビジョンまでの変更領域マップが含まれているため、それらを端末の物理ディスクに保存する（Ｓ３）。このＳ３は、任意のタイミングで行ってもよく、サーバ上のディスクイメージが改訂されてサーバ上の変更領域マップが更新されたときに実施してもよい。その後新たなキャッシュ管理テーブルを用いて、変更の有ったキャッシュデータを利用しないようにしつつリードキャッシュを起動させる（Ｓ４）。例えば、新たなキャッシュ管理テーブルでは、変更の有ったキャッシュデータの領域をキャッシュが無い状態を示すフラグ（０）で表すようにし、そのフラグに対応するキャッシュデータの領域を利用しないようにしてリードキャッシュを起動させる。リードキャッシュ機構が以上の手順を処理するプログラムを備えることにより、リードキャッシュ機構はサーバ上のディスクイメージがロールバックされていても端末に保存されたキャッシュデータを有効に利用することができる。
【００３６】
本実施形態のネットワークブートシステムでは、サーバ側でディスクイメージが改訂又はロールバックされていても、リードキャッシュ機構が端末側に保存された変更領域マップをキャッシュ管理テーブルに適用することにより、改訂又はロールバックにより変更されなかった領域に対応するキャッシュデータの領域、すなわち、現リビジョンでキャッシュデータがそのまま利用できる領域を特定し、その領域に対応するキャッシュデータを破棄することなくキャッシュデータとして有効に利用することができる。これにより、サーバへのネットワークアクセスを軽減して端末の起動速度が低下することを抑えることができる。
【００３７】
本実施形態のネットワークブートシステムでは、端末の物理ディスク上に変更領域マップを保存したが、端末が起動時にネットワーク負荷を大きくかけずにアクセスすることができる領域であってもよく、例えば、外部ストレージやＵＳＢメモリ等の媒体に保存しておいてもよい。また、変更領域マップは、キャッシュデータのリビジョンまでのものであったが、各リビジョン間にキャッシュデータのリビジョンに対応する仮想ディスクのリビジョンを含むものであってもよい。例えば、リビジョン８からリビジョン１２の変更領域マップであっても上述と同様にしてリビジョン１１のキャッシュ管理テーブルに適用してリビジョン８のキャッシュ管理テーブルを生成することでリビジョン１１のキャッシュデータをリビジョン８のキャッシュデータとして有効に利用することができる。
【符号の説明】
【００３８】
１０  サーバ（ネットワークブートサーバ）
１１  物理ディスク（ハードディスク）
２０  クライアント端末
２０ａ  クライアント端末
２１ａ  ディスク
２２ａ  仮想ディスク（ｖＤｉｓｋ）
２３ａ  物理メモリ
３０  ネットワーク
１００  ネットワークブートシステム
Ａｃ  読み出しキャッシュ領域
Ｍ、Ｍａ  変更領域マップ
Ｔ１、Ｔ２  キャッシュ管理テーブル
【図１】
2014010566.tif 000003
【図２】
2014010566.tif 000004
【図３】
2014010566.tif 000005
【図４】
2014010566.tif 000006
【手続補正書】
【提出日】平成26年9月5日(2014.9.5)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして提供するネットワークブートサーバと、物理的な記憶装置を備えたクライアント端末とがネットワークを介して接続され、
前記オペレーティングシステムは、前記サーバから読み出したデータを前記記憶装置にキャッシュデータとして保存するリードキャッシュ機構を備えたネットワークブートシステムであって、
前記リードキャッシュ機構は、前記仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するための世代管理データを備え、
前記世代管理データは、リビジョンの遷移毎に分けられて前記サーバに保存されているとともに、
前記分けられた世代管理データの少なくとも一つは、前記記憶装置にもそのコピーが保存されている
ことを特徴とするネットワークブートシステム。
【請求項２】
前記キャッシュデータは、前記仮想ディスクの改訂情報を表すリビジョンに対応するキャッシュのリビジョンを有し、
前記コピーは、前記キャッシュのリビジョンまでの世代管理データである
ことを特徴とする請求項１記載のネットワークブートシステム。
【請求項３】
前記リードキャッシュ機構は、キャッシュデータの有無を示すキャッシュ管理テーブルを備え、
前記仮想ディスクがロールバックされた場合には、前記仮想ディスクのロールバックされたリビジョンから前記キャッシュのリビジョンに対応する仮想ディスクのリビジョンへの世代管理データをロールバック時の世代管理データとして前記コピーから選択し、ロールバック前のキャッシュ管理テーブルに前記ロールバック時の世代管理データを適用して前記キャッシュ管理テーブルを生成する手段と、
前記仮想ディスクのロールバックされたリビジョンまでの世代管理データを前記記憶装置に保存する手段とを備える
ことを特徴とする請求項１又は請求項２記載のネットワークブートシステム。
【請求項４】
前記ロールバック前のキャッシュ管理テーブルは、キャッシュデータが有る領域とキャッシュデータが無い領域とを表すビット列であり、
前記ロールバック時の世代管理データは、変更された領域と変更されなかった領域とを表すビット列であり、
前記キャッシュ管理テーブルは、前記ロールバックされる前のキャッシュ管理テーブルと前記ロールバック時の世代管理データとの論理演算により算出される
ことを特徴とする請求項３記載のネットワークブートシステム。
【請求項５】
前記リードキャッシュ機構は、以下の手順により起動される
ことを特徴とする請求項１項記載のネットワークブートシステム。
（ａ）前記仮想ディスクの改訂情報を表すリビジョンと前記キャッシュデータに対応する仮想ディスクのリビジョンとを比較する
（ｂ）前記仮想ディスクの改訂情報を表すリビジョンが前記キャッシュデータに対応する仮想ディスクのリビジョンよりも古い場合、前記仮想ディスクの改訂情報を表すリビジョンから前記キャッシュデータに対応する仮想ディスクのリビジョンへの世代管理データを変更前後の世代管理データとして前記コピーから選択する
（ｃ）前記仮想ディスクの改訂情報を表すリビジョンまでの世代管理データを前記端末に保存する
（ｄ）前記変更前後の世代管理データを用いて変更の有ったキャッシュデータを利用しないようにしつつリードキャッシュを動作する
【請求項６】
クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして前記端末にネットワークを介して提供するネットワークブートサーバであって、
前記オペレーティングシステムは、前記サーバから読み出したデータをキャッシュデータとして保存するリードキャッシュ機構を備え、
前記サーバは、前記仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するためのものであって前記端末にもコピーが保存される世代管理データを有する
ことを特徴とするネットワークブートサーバ。
【請求項７】
クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして提供するネットワークブートサーバとネットワークを介して接続されたネットワークブートシステムにおけるクライアント端末であって、
前記オペレーティングシステムは、前記サーバから読み出したデータを記憶装置にキャッシュデータとして保存するリードキャッシュ機構を備え、
前記端末は、前記サーバに保存された前記仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するための世代管理データのコピーを有する
ことを特徴とするクライアント端末。
【請求項８】
クライアント端末上で動作するオペレーティングシステムを含むディスクイメージを仮想ディスクとして提供するネットワークブートサーバと、クライアント端末とがネットワークを介して接続され、
前記オペレーティングシステムは、前記サーバから読み出したデータをキャッシュデータとして端末に保存するリードキャッシュ機構を備え、
前記リードキャッシュ機構は、前記仮想ディスクの改訂情報を表すリビジョンの遷移を世代管理するための世代管理データを備えたネットワークブートシステムのリードキャッシュ機構の起動方法であって、
前記仮想ディスクの改訂情報を表すリビジョンと前記キャッシュデータに対応する仮想ディスクのリビジョンとを比較する工程と、
前記仮想ディスクの改訂情報を表すリビジョンが前記キャッシュデータに対応する仮想ディスクのリビジョンよりも古い場合、前記仮想ディスクの改訂情報を表すリビジョンから前記キャッシュデータに対応する仮想ディスクのリビジョンへの世代管理データを変更前後の世代管理データとして前記世代管理データから選択する工程と、
前記仮想ディスクの改訂情報を表すリビジョンまでの世代管理データを前記端末に保存する工程と、
前記変更前後の世代管理データを用いて変更の有ったキャッシュデータを利用しないようにしつつリードキャッシュを動作する工程とを含む
ことを特徴とするリードキャッシュ機構の起動方法。
【請求項９】
前記リードキャッシュ機構は、キャッシュデータの有無を示すキャッシュ管理テーブルを備え、
前記リードキャッシュを動作する工程は、
前記キャッシュ管理テーブルに前記変更前後の世代管理データを適用して新たにキャッシュ管理テーブルを生成し、前記新たに生成されたキャッシュ管理テーブルを参照してキャッシュデータが無いとされる領域のキャッシュデータを利用しないようにしつつリードキャッシュを動作する
ことを特徴とする請求項８記載のリードキャッシュ機構の起動方法。
【請求項１０】
前記キャッシュ管理テーブルは、キャッシュデータが有る領域とキャッシュデータが無い領域とを表すビット列であり、
前記変更前後の世代管理データは、変更された領域と変更されなかった領域とを表すビット列であり、
前記新たにキャッシュ管理テーブルを生成する工程は、
前記キャッシュ管理テーブルと前記変更前後の世代管理データとの論理演算をする
ことを特徴とする請求項９記載のリードキャッシュ機構の起動方法。
【国際調査報告】
2014010566.tif 000007
2014010566.tif 000008