(57)【要約】【課題】ネットワークブートにおいてダウンロードするＯＳのイメージファイルをＰＣのハードウェア構成毎に用意することを不要とし起動を迅速としパーソナルファイルウォールの無効化を回避する。【解決手段】仮想マシン技術を使いハードウェア構成をソフトウェア的には同一に見えるようにし、エンドユーザはＰＣではなく仮想マシンを利用し仮想マシン上で稼動するＯＳのイメージファイルを一つで済むようにし、仮想マシンのＯＳイメージファイルはＰＣが保持、ＯＳイメージの変更の場合は、ＯＳイメージ中の変更があったセクタ部分だけをＰＣに送信する。送信はブートサーバに限らず近隣のＰＣからも送信する。変更しないようにするにはディスクへの書込みをメモリやイメージファイル領域外のＰＣのハードディスクにキャッシュする。ウィルス感染の可能性がある仮想マシンでパーソナルファイルウォールが動作せず仮想マシンが動作するＰＣ上で動作する。【選択図】図7
2007323354.tif 000002
【特許請求の範囲】
【請求項１】
エンドユーザが利用する仮想マシンとその仮想マシンが使用する仮想ハードディスクドライブとその仮想ハードディスクドライブの中のセクタを更新するモジュールとを含むクライアント端末と、
前記クライアント端末の前記仮想ハードディスクドライブのセクタの中で最新の仮想ハードディスクドライブと比較して古いセクタを送付するモジュールを含むブートサーバと、
前記クライアント端末と前記ブートサーバとを接続するネットワークとからなるシステムであって、
前記クライアント端末の起動時に前記仮想ハードディスクドライブのうち古いセクタを、前記ブートサーバから最新のセクタを入手して更新し、その後に前記エンドユーザが利用する仮想マシンを起動することを特徴とするマシン管理システム。
【請求項２】
請求項1において、
前記仮想マシン上のＯＳまたは前記クライアント端末のＯＳが、前記仮想ハードディスクドライブへの書込みをメモリまたは前記仮想ハードディスクドライブの領域外のハードディスクにキャッシュすることにより、前記仮想ハードディスクドライブの変更をなくすことで、
最新のセクタを前記ブートサーバからではなく、ネットワークの視点から見て近いクライアント端末から入手することを特徴としたマシン管理システム。
【請求項３】
請求項1または2において、
前記仮想マシンの通信パケットのフィルタリングを、前記仮想マシンではなく、前記クライアント端末上で処理することを特徴とするマシン管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＰＣ等のクライアント端末の管理手法に関わるものであり、特に仮想マシン技術を利用してハードウェアを仮想化することにより、ＯＳらは同一ハードウェアに見せかけて同一のＯＳイメージが利用できるよう環境にて、高速にＯＳイメージを更新するシステムに関する。
【背景技術】
【０００２】
従来までのＰＣ起動では、ローカルディスク上のＯＳを起動していた。このため、各ＰＣにハードディスクが接続され、ＯＳがインストールされている。アプリケーションプログラムやエンドユーザが編集する文書ファイルもローカルディスクに保存していた。このため、ＯＳやアプリケーションの更新、セキュリティパッチが必要な場合には、各ＰＣごとに更新やパッチ適用が必要となり、トータルな管理コスト増大の原因となっていた。
【０００３】
これを解決する一つの手段が、ＯＳをネットワークからダウンロードしてブートするネットワークブートである。ＰＣを起動すると、ブートサーバからIPアドレスを取得、続いてブートローダをダウンロードして起動、さらにＯＳ本体をダウンロードしてＯＳをブートする。
【０００４】
またウィルス対策の一つとして、パーソナルファイアウォールがある。これはエンドユーザが利用するＰＣ上で動作するファイアウォールであり、送信パケットや受信パケットの通信相手やパケットの種類を用いて、予め定められたルールに基いて送受信の可否を決定し、拒否の場合にはパケットを廃棄する。これによって、ウィルスの侵入を防いだり、万が一ウィルスに感染しても他のＰＣへの感染拡大を防いでいる。
【非特許文献１】山口, 川口, 岸, VIDを使ったdiskless Windows, 情報処理 Vol. 45, No. 3, 2004
【非特許文献２】マイクロソフト株式会社, Windows Server 2003,Automated Deployment Servicesの技術概要, 2003年8月
【発明の開示】
【発明が解決しようとする課題】
【０００５】
非特許文献1および2に開示された従来技術では、ダウンロードするＯＳのイメージファイルをＰＣのハードウェア構成ごとに用意する必要があった。これはＯＳにディスプレイ、ローカルディスク、ネットワークカード、キーボードやマウスなどの接続機器や機種ごとに異なるドライバがＯＳに含まれているためである。このため、ＯＳやアプリケーションの更新、セキュリティパッチ適用、ウィルスのパターンファイル更新など、それぞれのイメージファイルごとに行う必要があった。本発明は、この問題を解決することを第一の課題とする。
【０００６】
また、この場合、ＯＳ全体をダウンロードしているので、ＰＣの起動に時間がかかる。特に始業時には多くのＰＣが短い時間の間に起動するので、ネットワークとＯＳイメージファイルを送信するブートサーバの両方の負荷が増大し、起動が遅くなる。本発明は、この問題を解決することを第二の課題とする。
【０００７】
一方、パーソナルファイアウォールに関しては、パーソナルファイアウォール自体を攻撃するウィルスも考えらる。このようなウィルスに感染すると、パーソナルファイルウォールの動作を停止したり、通信可否判断のルールを書き換えたりして、パーソナルファイルウォールを無効化する。本発明は、この問題を解決することを第三の課題とする。
【課題を解決するための手段】
【０００８】
第一の課題を解決するために、VMwareやXenといった仮想マシン技術を使ってハードウェア構成をソフトウェア的には同一に見えるようにして、エンドユーザはＰＣ等の実在の端末ではなく仮想マシンを利用するようにし、仮想マシン上で稼動するＯＳのイメージファイルが一つで済むようにする。
【０００９】
第二の課題を解決するために、仮想マシンのＯＳイメージファイルはＰＣが保持、ＯＳイメージに変更があった場合には、ファイル全体をＰＣに送信するのではなく、ＯＳイメージ中の変更があったセクタ部分だけをＰＣに送信するようにする。さらに、ＰＣのイメージファイルを変更しないようにして、送信するのはブートサーバに限らず、近隣のＰＣからも送信するようにする。変更しないようにするには、ディスクへの書込みをメモリにキャッシュしたり、イメージファイル領域外のＰＣのハードディスクにキャッシュすればよい。
【００１０】
第三の課題を解決するために、エンドユーザが利用しウィルス感染の可能性がある仮想マシンでパーソナルファイルウォールが動作するのではなく、仮想マシンが動作するＰＣ上で動作するようにする。
【００１１】
よって、本発明は、以下の構成を提供するものである。
本発明によるマシン管理システムでは、エンドユーザが利用する仮想マシンとその仮想マシンが使用する仮想ハードディスクドライブとその仮想ハードディスクドライブの中のセクタを更新するモジュールとを含むＰＣ等のクライアント端末と、前記クライアント端末の前記仮想ハードディスクドライブのセクタの中で最新の仮想ハードディスクドライブと比較して古いセクタを送付するモジュールを含むブートサーバと、前記クライアント端末と前記ブートサーバとを接続するネットワークとからなるシステムであって、
前記クライアント端末の起動時に前記仮想ハードディスクドライブのうち古いセクタを、前記ブートサーバから最新のセクタを入手して更新し、その後に前記エンドユーザが利用する仮想マシンを起動する構成とする。
【００１２】
さらに、前記仮想マシン上のＯＳまたは前記クライアント端末のＯＳが、前記仮想ハードディスクドライブへの書込みをメモリまたは前記仮想ハードディスクドライブの領域外のハードディスクにキャッシュすることにより、前記仮想ハードディスクドライブの変更をなくすことで、
最新のセクタを前記ブートサーバからではなく、ネットワークの視点から見て近いクライアント端末から入手する構成とする。
【００１３】
またさらに、前記仮想マシンの通信パケットのフィルタリングを、前記仮想マシンではなく、前記クライアント端末上で処理する構成とする。
【発明の効果】
【００１４】
異なるハードウェア構成の端末があったとしても、仮想マシンを利用することでＯＳイメージファイルが一つで済み、ＯＳやアプリケーションの更新やセキュリティパッチ適用、ウィルスのパターンファイル更新があっても、一つのファイルだけ更新すればよく、更新の手間を減らすことができる。
【００１５】
変更のあったセクタだけを送信するのでブートイメージファイル更新があっても最小限の部分だけをダウンロードすればよく、ＰＣの起動時間を減らせる。さらに、近隣のＰＣから送信することで、ブートサーバの負荷を減らしたり、ネットワークのバックボーン部分の負荷を減らすことができ、さらにＰＣの起動時間を減らすことができる。
【００１６】
パーソナルファイアウォールが仮想マシンではなくＰＣ上で動作することにより、仮にパーソナルファイアウォールを攻撃するウィルスに仮想マシン上のＯＳやアプリケーションが感染しても、論理的には別のマシン上で動作しているＰＣ上のパーソナルファイアウォールを無効化することはできない。
【発明を実施するための最良の形態】
【００１７】
以下、図を参照して本発明の実施の形態を示す。
（１）第一の実施形態
図１は、本発明によるマシン管理システムの全体構成を概略的に示す図である。システムはネットワークとクライアントＰＣ105とブートサーバ106とからなる。ネットワークはバックボーンスイッチ101とフロアスイッチ102とサーバスイッチ103及びこれらを接続するネットワークケーブルからなる。
【００１８】
バックボーンスイッチ101は、複数のフロアスイッチ102やサーバスイッチ103を接続するスイッチである。フロアスイッチ102は、各フロアや部署ごとに設置されるスイッチであり、フロアや部署にあるクライアントＰＣ105を接続する。サーバスイッチ103は、サーバを接続するスイッチであり、ブートサーバ106や他のサーバ107を接続する。クライアントＰＣ105は、エンドユーザが直接利用するＰＣ（パーソナルコンピュータ）である。
【００１９】
ブートサーバ106は、クライアントＰＣ105に仮想ハードディスクのデータを配布する。サーバ107は、クライアントＰＣが利用するサーバであり、例えばメールサーバやファイルサーバにあたる。本発明とは直接関係ないので、これ以上の詳細には触れない。
【００２０】
図２はクライアントＰＣ105の構成を示す。
ドライブ版番号201は、クライアントＰＣ105がもつ仮想ハードディスクドライブ208の版番号である。実体はクライアントＰＣ105に接続しているハードディスクドライブ205上に存在する。
ドライブ更新モジュール202は、クライアントＰＣ105がもつ仮想ハードディスクドライブ208のセクタのデータを更新するモジュールである。
ドライブ版番号通知モジュール203は、同じフロアスイッチ102に接続する他のクライアントＰＣ105からの要求に対してドライブ版番号201を返答するモジュールである。
仮想セクタ配付モジュール204は、仮想ハードディスクドライブ208を構成するセクタのデータを同じフロアスイッチ102に接続する他のクライアントＰＣ105に配付するモジュールである。
ハードディスクドライブ205は、クライアントＰＣ105に接続されており、仮想ハードディスクドライブ208は本ドライブ内に存在する。
ＯＳ（オペレーティングシステム）およびアプリケーション206は、クライアントＰＣ105上の仮想マシン207上で動作する。クライアントＰＣ105にもＯＳ209があるが、エンドユーザが直接利用することはなく、本ＯＳおよびアプリケーション206を使用する。
仮想マシ207は、クライアントＰＣ105上に設けられている。仮想マシンの例として、 VMwareやXenがある。
仮想ハードディスクドライブ208は、仮想マシン207やその上で動作するＯＳやアプリケーション206が使用する仮想的なハードディスクドライブである。
ＯＳ209は、クライアントＰＣ105のＯＳであり、ドライブ更新モジュー202、ドライブ版番号通知モジュール203、仮想セクタ配付モジュール204他のモジュールが動作する。本ＯＳは仮想マシン207上のＯＳ206とは別のＯＳであり、仮想マシン207は本ＯＳ上で稼動する。
【００２１】
図３はブートサーバ106の構成を示す。
最新ドライブ版番号と要更新セクタ番号通知モジュール301は、更新が必要なセクタの番号をクライアントＰＣ105に通知するブートサーバ106上のモジュールである。
仮想セクタ配付モジュール302は、仮想ハードディスクドライブを構成するセクタのデータをクライアントＰＣ105に配付するブートサーバ (106)上のモジュールである。
配付用仮想セクタ管理テーブル303は、クライアントＰＣ105に通知する、更新が必要なセクタの番号を管理するテーブルである。
配付用仮想セクタ304は、クライアントＰＣ105に配付する最新のセクタである。
最新ドライブ版番号305は、配付している仮想セクタ(304)のドライブ版番号である。
【００２２】
配付用仮想セクタ304である最新のセクタの作成方法について簡単に説明する。クライアントＰＣ105とは別のＰＣに仮想マシンを用意し、この仮想マシンを使って、ＯＳやアプリケーションの更新他を行う。更新前後の仮想ハードディスクドライブのセクタを比較することで、変更のあったセクタを知ることができ、配付用仮想セクタ管理テーブル303を作成することができる。
【００２３】
図４は、配付用仮想セクタ管理テーブル303の構成を示す。テーブルは複数のレコードからなり、各レコードは旧ドライブ版番号フィールド401と更新セクタ番号フィールド402とからなる。
旧ドライブ版番号フィールド401は、旧ドライブ版番号が格納される。
更新セクタ番号フィールド402は、旧ドライブ版番号フィールド401に示される版番号をもつクライアントＰＣ105が更新すべきセクタの番号を保持するフィールドである。多くの場合、本フィールドには複数のセクタ番号が含まれる。
【００２４】
図５は、仮想マシン207のＯＳとアプリケーション206のファイルI/Oの仕組みを示す。
アプリケーション501は、エンドユーザが利用するアプリケーションである。
ファイルシステム502は、エンドユーザが利用するＯＳの一部であるファイルシステムである。ファイルシステム502はファイル名とそのファイル内容を含むセクタ番号を管理している。このセクタ番号は仮想ハードディスクドライブ208にあるセクタの番号である。
セクタオーバレイドライバ503は、エンドユーザが利用するＯＳの一部であるセクタオーバレイドライバである。ファイルシステム502より下位にあり、ファイルシステム502から書込み要求のあったセクタのデータをメモリ505にキャッシュする。本キャッシュは仮想ハードディスクドライブ208に書込まれることはない。なお、読出し要求に対しては、キャッシュ上に対応するセクタのデータがあればメモリ505から、なければハードディスクドライバ504を通じて仮想ハードディスクドライブ208から対応するセクタのデータを読出し、ファイルシステム502に渡す。
ハードディスクドライバ504は、仮想ハードディスクドライブ208との入出力を管理するドライバである。
メモリ505は、書込みセクタのキャッシュに利用されるメモリである。
処理506は、アプリケーション501がＯＳに要求するファイルの読出し、書込みの要求を示す。
処理507は、ファイルシステム502がセクタオーバレイドライブ503に要求するセクタデータの読出し、書込みの要求を示す。
処理508は、セクタオーバレイドライバ503が仮想ハードディスクドライバ504に要求するセクタデータの読出し、書込みの要求を示す。
処理509は、セクタオーバレイドライブ503がメモリ509に要求するキャッシュするセクタデータの書込みと読出しを示す。
【００２５】
以下、図６と図７を使って、クライアントＰＣ105の起動時の動作を示す。
図６のステップ601にて、ハードディスクドライブ205上にあるＯＳをメモリにロード、起動する。ＯＳ209は、この起動したＯＳのことである。続いて、ドライブ更新モジュール202、ドライブ版番号通知モジュール203、仮想セクタ配付モジュール204を起動する。
【００２６】
図６のステップ602にて、ドライブ更新モジュール202がドライブ版番号201をブートサーバ106の最新ドライブ版番号と要更新セクタ番号通知モジュール301に通知する(図７のステップ701)。すると、同モジュール301は、最新ドライブ版番号305と受信したドライブ版番号201に一致する旧ドライブ版番号401をもつレコードを配付用仮想セクタ管理テーブル303から探し出し、対応する更新セクタ番号フィールド402にある要更新セクタ番号をクライアントＰＣ105に返信する(図７のステップ702)。以上で、クライアントＰＣ105は最新のドライブ版番号と更新の必要なセクタ番号を入手することができたことになる。
【００２７】
図６のステップ603にて、同じフロアスイッチ102に接続するクライアントＰＣ105で、最新のドライブをもつＰＣを探す。具体的には、ブロードキャストメッセージを送付(図７のステップ703)し、返ってくる返答(図７のステップ704)から起動済みのクライアントＰＣ105のリストを作成し、ランダムな順番に各ＰＣ上のドライブ版番号通知モジュール203にドライブ版番号を問合せる(図７のステップ705〜708)。
【００２８】
図６のステップ604にて、最新のドライブ版番号を持つ近隣クライアントＰＣがあれば、そのＰＣをセクタデータ入手先とし、なければブートサーバ103をセクタデータ入手先とする。続いてセクタ入手先ＰＣの仮想セクタ配付モジュール204または302に必要なセクタ番号を送り(図７のステップ709)、セクタデータを入手(図７のステップ710)し、仮想ハードディスクドライブ208を更新する。なお、図7では近隣ＰＣ1と近隣ＰＣ2に対してドライブ版番号を問合せ(ステップ705、707)、返ってきたドライブ版番号(ステップ706、708)のうち、近隣ＰＣ2が最新のドライブ版番号を返信した(ステップ708)と仮定して、近隣ＰＣ2にセクタを要求(ステップ709)し、セクタを入手する(ステップ710)と仮定した。
【００２９】
図６のステップ605にて、仮想マシン207を起動する。仮想マシン207は更新した仮想ハードディスクドライブ208からＯＳやアプリケーション206を起動する。
【００３０】
（２）第二の実施形態
図８はクライアントＰＣ105の構成を示す。第一の実施形態では不要であった部分を図２の構成に対してさらに追加している。逆に第二の実施形態で不要な部分は略している。
【００３１】
ＮＩＣ211は、ネットワークインタフェースカード(NIC)であり、ケーブルを介してクライアントＰＣ105とフロアスイッチ102を接続する。
パケットフィルタリングモジュール210は、仮想マシン207とＮＩＣ211との間でやり取りされる通信パケットを監視するモジュールであり、クライアントＰＣ105のＯＳ 209上で動作する。仮想マシン207から通信パケットが送出されるとフィルタリングルールを適用、ルールに合わないパケットは破棄される。仮想マシン207向けの通信パケットについても同様である。
【００３２】
フィルタリングルールとは、通信パケットの種別、通信相手のIPアドレスやポート番号から通信の可否を示したものである。
【００３３】
（３）第三の実施形態
第一と第二の実施形態では、図５に示した通り、仮想マシン207上のＯＳ206でハードディスクへの書込みをキャッシュしていた。このキャッシュは仮想マシン207ではなくクライアントＰＣ105で行うこともできる。
【００３４】
図9はクライアントＰＣ105でのキャッシュの仕組みを示したものであり、図５とほとんど同じである。ステップ901〜909は、それぞれ図５のステップ501〜509に対応しており、異なるのは901だけであり、これはクライアントＰＣ105のＯＳ209から見れば一アプリケーションにあたる仮想マシン207である。動作は図５と同じである。メモリ905はクライアントＰＣ105のメモリであるが、メモリである必要はなく、ハードディスク205のなかで仮想ハードディスク208の領域外であっても構わない。
【図面の簡単な説明】
【００３５】
【図１】本発明のマシン管理システムの全体構成を示す図である。
【図２】第一の実施形態のクライアントＰＣの構成を示す図である。
【図３】ブートサーバの構成を示す図である。
【図４】図３に示した配付用仮想セクタ管理テーブルの構成を示す図である。
【図５】仮想マシン上でのファイルＩ／Ｏの仕組みを示す図である。
【図６】クライアントＰＣのブートプロセスを示す流れ図である。
【図７】クライアントＰＣのブートプロセスを示す図である。
【図８】第二の実施形態のクライアントＰＣの構成を示す図である。
【図９】第三の実施形態のクライアントＰＣでのキャッシュの仕組みを示す図である。
【符号の説明】
【００３６】
105：クライアントＰＣ
106：ブートサーバ
202：ドライブ更新モジュール
203：ドライブ版番号通知モジュール
204：仮想セクタ配付モジュール
207：仮想マシン
301：最新ドライブ番号と要更新セクタ番号通知モジュール
302：仮想セクタ配付モジュール
303：配付用仮想セクタ管理テーブル
304：配付用仮想セクタ
305：最新ドライブ版番号
【図１】
2007323354.tif 000003
【図２】
2007323354.tif 000004
【図３】
2007323354.tif 000005
【図４】
2007323354.tif 000006
【図５】
2007323354.tif 000007
【図６】
2007323354.tif 000008
【図７】
2007323354.tif 000009
【図８】
2007323354.tif 000010
【図９】
2007323354.tif 000011