特許第6072352号(P6072352)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社シー・オー・コンヴの特許一覧

<>
  • 特許6072352-ディスク配信システム 図000002
  • 特許6072352-ディスク配信システム 図000003
  • 特許6072352-ディスク配信システム 図000004
  • 特許6072352-ディスク配信システム 図000005
  • 特許6072352-ディスク配信システム 図000006
  • 特許6072352-ディスク配信システム 図000007
  • 特許6072352-ディスク配信システム 図000008
  • 特許6072352-ディスク配信システム 図000009
  • 特許6072352-ディスク配信システム 図000010
  • 特許6072352-ディスク配信システム 図000011
  • 特許6072352-ディスク配信システム 図000012
  • 特許6072352-ディスク配信システム 図000013
  • 特許6072352-ディスク配信システム 図000014
  • 特許6072352-ディスク配信システム 図000015
  • 特許6072352-ディスク配信システム 図000016
  • 特許6072352-ディスク配信システム 図000017
  • 特許6072352-ディスク配信システム 図000018
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6072352
(24)【登録日】2017年1月13日
(45)【発行日】2017年2月1日
(54)【発明の名称】ディスク配信システム
(51)【国際特許分類】
   G06F 11/00 20060101AFI20170123BHJP
   G06F 9/445 20060101ALI20170123BHJP
【FI】
   G06F9/06 630B
   G06F9/06 610J
【請求項の数】8
【全頁数】23
(21)【出願番号】特願2016-506920(P2016-506920)
(86)(22)【出願日】2015年8月25日
(86)【国際出願番号】JP2015073831
(87)【国際公開番号】WO2016067725
(87)【国際公開日】20160506
【審査請求日】2016年2月9日
(31)【優先権主張番号】特願2014-223836(P2014-223836)
(32)【優先日】2014年11月1日
(33)【優先権主張国】JP
(73)【特許権者】
【識別番号】307044482
【氏名又は名称】株式会社シー・オー・コンヴ
(74)【代理人】
【識別番号】110002295
【氏名又は名称】特許業務法人森脇特許事務所
(74)【代理人】
【識別番号】100117042
【弁理士】
【氏名又は名称】森脇 正志
(72)【発明者】
【氏名】丸山 伸
【審査官】 坂庭 剛史
(56)【参考文献】
【文献】 特開平11−249900(JP,A)
【文献】 米国特許出願公開第2012/0233448(US,A1)
【文献】 特開2012−053869(JP,A)
【文献】 高添 修,“かなり慣れてきた!〜独自のVHDブート差分管理〜”,Blogs - 高添はここにいます - Site Home - TechNet Blogs_files,Microsoft Corporation,2011年 8月26日,URL,http://blogs.technet.com/b/osamut/archive/2011/08/27/3449427.aspx
【文献】 山市 良,“Windows展開サービスのVHD対応機能を試してみた(その1)”,山市良のえぬなんとかわーるど,Google Inc.,2010年 9月27日,URL,http://yamanxworld.blogspot.jp/2010/09/windows-vhd-1.html
(58)【調査した分野】(Int.Cl.,DB名)
G06F 11/00
G06F 9/445
(57)【特許請求の範囲】
【請求項1】
少なくとも1台のマスターサーバーと、複数の端末とがネットワークを介して接続され、前記マスターサーバーが管理するOSイメージデータ、又はOSイメージデータ及びそれに対する1つ又は複数の差分データを、マスターデータとして、そのコピー又は所定のディスクフォーマット形式に変換されたデータが前記端末のブートイメージとして配備され、
前記端末が稼動している状態で、前記端末が更新前のマスターデータとの差分データを前記ネットワークを介して前記マスターサーバーから受け取り、前記端末が再起動することにより前記端末の前記ブートイメージが更新されると共に、
前記端末は、前記端末のホスト名及びIPアドレスを含む各端末の固有データ及び各端末への書き込みデータ、デバイスドライバの構成情報の少なくともいずれかを前記ブートイメージに対する差分データとして保持する差分管理機構を具備する
ディスク配信システムにおいて、
前記更新前のマスターデータとの差分データは、
それ自体がOOBE(Out−Of−Box Experience)状態のOSイメージデータあって、
前記ブートイメージに対して端末ごとの個別化が完了するまでの差分データと、
前記個別化が完了したOSイメージデータを再びOOBE状態へ戻すための差分データと、を含むと共に、
前記更新前のマスターデータとの差分データと、前記ブートイメージに対する差分データと、の両方のデータを前記ブートイメージが更新された後も前記各端末が保持し続けることを特徴とするディスク配信システム。
【請求項2】
前記端末が端末用オペレーティングシステムが最初に起動する際に又は起動後必要に応じて必要なデバイスドライバが前記端末用オペレーティングシステムのカーネルに読み込まれると共に、
デバイスドライバの読み込みが完了した状態に相当する最新のOSイメージデータをOOBE状態に対する差分データとして保持することを特徴とする請求項1記載のディスク配信システム。
【請求項3】
前記端末は、1つ又は複数のライトキャッシュを具備することを特徴とする請求項1又は2記載のディスク配信システム。
【請求項4】
前記端末は、前記ブートイメージ又は差分データを扱うために用いられる管理用OSを具備することを特徴とする請求項1又は2記載のディスク配信システム。
【請求項5】
前記端末は、マスターサーバーからネットワークを介してマスターデータ及び前記マスターデータに対する差分データのコピーを受け取り、前記端末の起動ディスクを初期化する機能を具備することを特徴とする請求項1又は2記載のディスク配信システム。
【請求項6】
前記複数の端末のうちの1台が、マスターサーバーとしても機能することを特徴とする請求項1又は2記載のディスク配信システム。
【請求項7】
前記マスターサーバーは、異なるハードウェア構成の端末に対して、OOBE状態のOSイメージに変換するための差分データを配信することを特徴とする請求項1又は2記載のディスク配信システム。
【請求項8】
前記端末は、前記マスターサーバーからハードウェア構成の異なる他の端末用のOSイメージデータを受け取ると共に、前記受け取ったOSイメージデータをOOBE状態のOSイメージデータに変換するための差分データを受け取り、それらを用いて端末を起動することを特徴とする請求項7記載のディスク配信システム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、多数のクライアント端末に効率よくオペレーティングシステムを配備することを可能にするディスク配信システムに関するものである。
【背景技術】
【0002】
多数のクライアント端末(以下、「端末」という。)にオペレーティングシステム(以下、「OS」という。)を配備する方法として、近年はネットワークブートシステムが広く普及している(特許文献1)。ネットワークブートシステムは、ネットワークブートサーバー上に保存された端末用のOSを含むデータがディスクイメージとして保存された「OSイメージデータ」を、LAN(ローカル・エリア・ネットワーク)等の高速のネットワークを介して各端末に直接マウントして共有する点に特徴があり、ネットワークブートサーバー側でOSイメージデータの更新が行われるとその更新が直ちに(正確には各端末の次回再起動時から)反映される点に最大の利点がある。さらに、ネットワークブートサーバーが管理する端末のデータは1つで済むため、複数のバージョンを世代管理するといったことも比較的容易に実現することができる。
【0003】
ネットワークブートシステムは、1台のネットワークブートサーバーに対して多数の端末を接続するという、『1:N接続』を前提とする。そのため、基盤技術として、高速のネットワーク環境が端末の起動時から接続されていることが前提となる。例えば、端末の数が50台を超えるような大規模なネットワークブートシステムでは、ギガビットクラスの超高速ネットワークで接続されたLAN環境がなければ、実用に耐えうる快適な動作は期待できない。近年ネットワークブートシステムが急速に普及してきた背景は、この超高速ネットワークの普及によるところが大きい。
【0004】
これに対して、共通のOSイメージデータをマスターデータとして、そのコピーを端末に配信して起動する技術(これを、本明細書では、「ディスク配信技術」という。)が知られている(特許文献2)。ディスク配信技術は、古くはその名前の由来ともなったDVDやCDといったディスク状の記録メディアによりOSのブートイメージの配布(配信)が行われていたが、近年ではネットワークを介してサーバーからクライアント端末に配信する方法等も考えられている。ディスク配信技術のように、端末がネットワークを介さずローカル環境のみで起動する起動方法を、本明細書では、ネットワークブートに対して、「ローカルブート」と呼ぶものとする。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】WO2009/069326
【特許文献2】米国特許第6,108,697
【発明の概要】
【発明が解決しようとする課題】
【0006】
近年のデスクトップ環境を前提とすると、OSイメージデータのサイズは50GB〜100GBあるいはそれ以上にも達する。そのため、ディスク配信技術により多数の端末にOSイメージデータを配信するには非常に長時間を要する。
【0007】
例えば、記録メディアを用いて配信する場合は多数の記録メディアを準備することが必要となる。ユニキャスト配信により1台のマスターサーバーから多数の端末に配信する場合は、ネットワーク帯域の制約を受けるために、端末1台あたりの転送レートが著しく低下して、やはり配信には非常に長時間を要する。
【0008】
さらに、ディスク配信技術によれば、マスターデータが更新された際にも、各端末への配信作業を一からやり直さなければならないという欠点もある。しかも、近年のデスクトップ環境は、ソフトウエアの新規インストール等の作業が全く必要ない場合でも、OSやセキュリティソフトのアップデート作業のように高い頻度で更新が必要となってきており、配信に時間のかかるディスク配信の欠点は致命的なものであった。
【0009】
既に述べたように、ネットワークブートシステムはこれらの問題をうまく解決するが、
(1)遅いネットワークが使えない
(2)ネットワークブートサーバーと通信を行えない状態では、起動はもちろん、動作し続けることすらできない
といった欠点がある。
【0010】
なお、ネットワークブートシステムにおいて、端末側にキャッシュ機構を設けることで上記の問題点は部分的に解消できる場合があるが、サーバー上のOSイメージデータが更新された際にはネットワーク接続が必要となる。すなわち、ネットワークブートシステムのシステム要件は、基本的には、「ネットワークブートサーバーと端末とがネットワーク機器を介して有線ネットワークによって接続され、かつ、少なくとも端末のネットワーク機器はオンライン状態(ネットワークカード、スイッチングハブ等の全てのネットワーク機器類に電源が入っていてネットワークブートサーバーと通信できる状態)でサーバーに接続されていること」となっている。
【0011】
本発明は、上記に鑑みてなされたものであり、サーバーと通信を行えない状態でも起動可能なローカルブートを前提としつつ、ネットワークブートの利点であるOSイメージデータの更新作業や世代管理を効率よく行うことを可能にする新規なディスク配信システムを提供することを主たる技術的課題とする。
【課題を解決するための手段】
【0012】
本発明に係るディスク配信システムは、少なくとも1台のマスターサーバーと、複数の端末とがネットワークを介して接続され、
前記マスターサーバーが管理するOSイメージデータ又はOSイメージデータ及びそれに対する1つ又は複数の差分データをマスターデータとして、そのコピー又は所定のディスクフォーマット形式に変換されたデータが前記端末のブートイメージとして配備され、
前記マスターデータが更新された際には、前記端末が稼動している状態で、前記ネットワークを介して更新前のマスターデータとの差分データを前記端末が前記ネットワークを介して前記マスターサーバーから受け取り、前記端末が再起動することにより前記端末の前記ブートイメージが更新されることを特徴とする。
【0013】
ここで、「マスターサーバー」とは、コピー元となる「マスターデータ」を保持する少なくとも1台のコンピュータをいう。なお、ブートイメージの更新を反映させるためには「再起動」が必要であるが、端末の再起動には種々の目的があるため、マスターサーバーから差分データを受け取った以後、どのタイミングでブートイメージを更新するかは設定による。
【0014】
本発明で配信されるOSのディスクイメージは、端末上で仮想マシンとして動作するものではなく、通常のブートプロセスを経てローカルブートするものを前提としている。なお、「ローカルブート」は、ネットワークブートシステムにおいて、端末にキャッシュデータが保持されていて、ネットワークブートサーバーに接続されていないオフライン状態で起動できる場合を含むものと解する。
【0015】
そして、マスターデータが更新された際には、端末の稼動中に、差分データのみをネットワーク経由で受け取ることができる。ここで、「端末の稼動中」とは、端末が起動プロセスを終了して、OSが通常状態にあることを意味する。
【0016】
前記端末は、前記端末のホスト名及びIPアドレスを含む各端末の固有データ及び各端末への書き込みデータ、デバイスドライバの構成情報などを前記ブートイメージに対する差分データとして保持する差分管理機構を具備していてもよい。また、前記差分管理機構は、仮想ディスクシステム又はコピー・オン・ライト方式のファイルシステムであってもよい。
【0017】
前記差分データは、OOBE(Out−Of−Box Experience)状態のOSイメージデータへの差分データであってもよい。より具体的には、前記端末が前記端末用オペレーティングシステムで最初に起動する際に又は起動後必要に応じて必要なデバイスドライバが前記端末用オペレーティングシステムのカーネルに読み込まれると共に、デバイスドライバの読み込みが完了した状態に相当する最新のOSイメージデータをOOBE状態に対する差分データとして用いるように構成してもよい。
【0018】
このような構成によれば、端末のハードウェア構成が異なっていても、最初の起動時又は、起動後必要に応じてデバイスドライバが前記端末用オペレーティングシステムのカーネルに読み込まれる。すなわち、端末側のデバイス構成が全て同一構成である必要がなくなり、デバイス構成の違いを吸収して端末を起動できるようになる。
【0019】
なお、多数の端末を共通のOSイメージデータで起動するネットワークブートシステムにおいては、IPアドレス、ホスト名、ドメイン情報などの最小限の情報のみを端末に付与しつつ比較的短時間に起動プロセスを完了させなければならないため、全ての端末が同一のハードウェア構成で構成されることを前提としハードウェア構成が異なる場合の動作は保証されない。これに対し、本システムは端末のハードウェア構成が必ずしも同一でない場合でも、動作させることができる。
【0020】
ただし、OOBE状態のイメージデータを用いると、最初の起動時にデバイスドライバの読み込み動作が発生するため、起動が遅くなるという欠点がある。そのため、全ての端末が同一のハードウェア構成を備えている場合には、OOBE状態のOSイメージデータよりも、予めデバイスドライバ等が設定済みのOSイメージを含むマスターデータを1つ作っておく方が効率がよい。例えば、ネットワークブートシステムで構築されたシステムからハードウェア構成をそのまま変更せず本システムに置き換える場合には、必ずしもOOBE状態のOSイメージデータを用いる必要はない。
【0021】
なお、「最初の起動」とは、イメージデータが更新された直後の起動をいい、その後も毎回起動のたびごとにデバイスドライバの読み込みが行われるわけではない。
【0022】
また、前記端末は、ブートイメージ又は差分データを扱うために用いられる管理用OSを具備していてもよい。管理用OSとは、ブート用OSとは独立して起動される他のOSであり、OSレベルでマスターデータや差分データを認識してデータを扱えるものであれば、OSの種類は問わない。例えば、端末にプリインストールされているOSを用いてもよい。管理用OSで起動するとマスターデータや差分データの初期化、コピー、リネーム、マージなどの操作が可能となる。
【0023】
また、1つの端末が、1つ又は複数のライトキャッシュを具備するように構成してもよい。ライトキャッシュに書き込むようにすれば、ライトキャッシュを消去するだけで容易に書き込み前の状態に復元することができるからである。
【0024】
前記端末は、マスターサーバーからネットワークを介してマスターデータ及び差分データのコピーを受け取り、前記端末の起動ディスクを初期化する機能を具備していてもよい。具体的には、例えば、端末が予めネットワーク接続可能な別のOS(これを「初期化用OS」という)で稼動している状態で、ネットワークを介してマスターサーバーからマスターデータのコピーを受け取り、そのコピーをブート用OSに切り替えて端末を起動させることもできる。ここで、初期化用OSとは、マスターデータのOSとは独立して起動できる他のOSであれば、どのようなものでもよい。例えば端末にプリインストールされているOSを利用してもよいし、Linux(登録商標)その他のOSであってもよい。
【0025】
また、端末の初期化直後には必ずしも「ネットワークを介して」マスターデータのコピーが配信される必要はなく、記録メディア等を用いた従来の配信方法を用いてもよい。なお、「初期化用OS」と「管理用OS」とは同一のものを指していてもよい。
【0026】
この場合、コピーに代えて、そのコピーに基づいてフォーマット変換された所定のディスクフォーマット形式のデータであってもよい。いずれの場合にも、端末は、マスターデータのコピーを受け取った後、受け取ったOSイメージデータをブート用OSとして起動するという意味においてローカルブートであり、ネットワークブートサーバーと通信を行えない状態でも起動し、かつ動作し続けることができる。これは、ネットワークブートシステムと比較した大きな利点である。
【0027】
前記複数の端末のうちの1台が、マスターサーバーとしても機能するように構成してもよい。マスターサーバーは、必ずしも、専用のサーバーが稼動している必要はない。
【0028】
前記マスターサーバーは、異なるハードウェア構成の端末に対して、OOBE状態のOSイメージに変換するための差分データを配信するように構成してもよい。
【0029】
前記端末は、前記マスターサーバーからハードウェア構成の異なる他の端末用のOSイメージデータを受け取ると共に、前記受け取ったOSイメージデータをOOBE状態のOSイメージデータに変換するための差分データを受け取り、それらを用いて端末を起動するように構成してもよい。
【発明の効果】
【0030】
本発明によれば、端末をネットワークブートサーバーと通信を行えない状態でも起動できるため、起動時にネットワークアクセスが発生せず、かつ動作し続けることができる。また、マスターデータが更新された際には端末の稼動中にその差分データをネットワーク経由で受け取ることができるため、無線LANなどの遅いネットワークやマルチキャスト配信あるいはピア・ツー・ピア配信なども可能となる。
【図面の簡単な説明】
【0031】
図1】第1の実施形態のディスク配信システムの基本構成を説明するための概念図
図2】第2の実施形態の実施例1〜3の動作を示す概念図
図3】第3の実施形態で説明する端末の個別設定の手順を示す概念図
図4】第4の実施形態における端末A及び端末Bの仮想ディスク構成を示す図
図5】第4の実施形態における端末Aでのマスターデータの更新及び配信手順を示す図
図6】第4の実施形態における端末Bの仮想ディスクの状態を示す図
図7】第5の実施形態における差分データ転送前の端末Aでの仮想ディスクの処理手順を示す図
図8】第5の実施形態における差分データ転送前の端末Aでの差分データの作成手順を示す図
図9】第5の実施形態における端末Aのライトキャッシュの作成手順を示す図
図10】第5の実施形態における差分データ転送後の端末Bの仮想ディスクの状態を示す図
図11】第5の実施形態における差分データ転送後の端末Bの仮想ディスクの初期化手順を示す図
図12】第5の実施形態における差分データ転送後の端末Bでのライトキャッシュの作成手順を示す図
図13】第6の実施形態において、(A)端末Aから「2.vhd」を端末Bに配信し、端末Bを起動した直後の端末A(B)その時の端末Bの仮想ディスクの状態を示す図
図14】第6の実施形態において、端末Aでの仮想ディスクの処理手順を示す図
図15】第6の実施形態において、端末Cの仮想ディスクの状態を示す図
図16】第6の実施形態において、差分データ転送後の端末Cの仮想ディスクの状態を示す図
図17】第6の実施形態において、差分データ転送後の端末Cの仮想ディスクの初期化手順を示す図
【発明を実施するための形態】
【0032】
以下、本実施形態のディスク配信システムについて図面を参照して詳述する。まず、本発明が前提とするディスク配信システムの一実施態様を例示して説明する。各実施形態の記載は本発明の技術的思想を理解するために合目的的に解釈され、実施形態の記載に限定解釈されるべきものではない。また、各実施形態に記載の事項は特に明示した場合を除き、それぞれ組み合わせて実施することができる。
【0033】
(第1の実施形態)−構成例−
図1は、第1の実施形態のディスク配信システムの構成例を示したものである。この実施形態では、スイッチングハブ13などのネットワーク機器で構成されたローカル・エリア・ネットワーク(LAN)1内に、少なくとも1台のマスターサーバー10と、複数の端末20(20a,20b,・・・)とが、無線LANアクセスポイント15を介して無線LAN30により接続されている。
【0034】
ただし、マスターサーバー10は、端末の1台(20a)がその役割をあわせ持つように構成することもできる。また、マスターサーバー10は、仮想マシンであってもよい。また、この構成例では無線LANを用いているが、有線LANを用いた構成も可能である。
【0035】
本発明が前提とする、「ディスク配信システム」は、ネットワークブートシステムとは異なり、各端末20がいずれもブート用OSを用いてローカルブートで起動する。そのため、有線LANによる接続が可能であることはもちろんのこと、図1に示すような無線LANによる接続や、ネットワークに接続されていない場合においても端末を起動できる。
【0036】
まず、図1に示す環境を構築するために、初期化用OSを用いる。初期化用OSはマスターデータのOSとは独立して起動できる他のOSであれば、どのようなものでもよい。例えば端末にプリインストールされているOSを利用してもよいし、Linux(登録商標)その他のOSであってもよい。
【0037】
まず、端末を初期化用OSで起動する。初期化用OSの稼働中はネットワークを介してマスターサーバー10と通信が行えるため、マスターサーバー10からマスターデータ及び差分データのコピーを受け取り、そのコピーを「ブート用OS」として端末に保存し、保存されたコピーを用いて端末を起動させる。
【0038】
マスターサーバー10によって配信されるOSイメージデータが例えば「仮想ディスクイメージ」であれば、初期化用OSからみるとそのデータは「ファイル」として扱うことができるので、ネットワークを介してサーバーに接続されたマスターサーバー10から「ファイルコピー」という単純な操作でデータを受け取ることになる。また、ファイルコピーに代えて、そのコピーしたデータに基づいてフォーマット変換された所定のディスクフォーマット形式のデータであってもよい。フォーマット変換の目的は圧縮、暗号化その他端末で稼動中のOSが認識できるフォーマット形式への変換など、種々のものが考えられる。さらには受け取ったデータをファイル形式のまま保存するだけでなく、データを V2P(仮想マシンから物理マシンへの変換)の要領で展開してディスクに書き込んでもよい。
【0039】
もっとも、マスターデータのサイズは、デスクトップ用OSのシステムディスクのサイズに相当するため、例えば、50GB〜100GB、あるいはそれ以上のサイズになることも想定され、ギガビット級のネットワークでもユニキャスト接続では転送に数十分を要する。多数の端末に転送する場合にはさらに長い時間を要する。
そこで、より配信効率の高い配信手段、例えば、マルチキャスト配信、ブロードキャスト配信、ピア・ツー・ピア配信などの配信手段を用いてもよい。あるいは、ネットワークを介さず、DVDなどの記録メディアを用いた配信手段等を用いてもよい。また、必要に応じて、データを複数に分割して転送してもよい。或いは、転送時にはチェックサムを確認し、万一転送に失敗したときは再度コピーをやり直すことで信頼度を高めることもできる。
【0040】
いずれの場合にも、端末は、マスターデータのコピーを受け取った後、受け取ったOSイメージデータをブート用OSとして起動するという意味において「ローカルブート」であり、ネットワークブートシステムとは異なり、ネットワークブートサーバーとの通信を行えない状態のままでも起動し、かつ動作し続けることができる。また、仮想マシンを用いる場合とは異なり、CPU処理や周辺デバイスへのアクセスなどにおけるオーバーヘッドも生じない。
【0041】
上述のように、データサイズの大きいマスターデータは、いずれかの手段によって順次端末の起動ディスク(端末のローカルディスクやOSの起動に必要なデータを保持しているディスク等)上にコピーされる必要があるが、一旦マスターデータが端末に配備された後で、マスターデータが更新された際には、更新前のマスターデータとの差分データだけをマスターサーバー10から各端末20へ配信する。これを行うためには、「OSイメージデータを差分により管理する機構」の存在が前提となる。
【0042】
配信するオペレーティングシステムにもよるが、ある種のOSでは、この機構がOSに備わっている。その1つに仮想ディスクが挙げられる。端末のOS上では、仮想ディスクが特定のファイル形式でフォーマットされた1つ乃至複数の「ファイル」として構成され、更新が行われた場合、「差分ファイル」が作られる。この差分ファイルを各端末20に配信すれば、サイズの大きい更新前のマスターデータを再度端末にコピーする必要はない。各端末20は、マスターデータ又は差分データからブートすることができる。その際のブートプロセスは、仮想マシンとしてではなく、BIOS等の読み込みを含めた非仮想化環境における通常のブートプロセスである。
【0043】
このような要請から、本発明では、端末がマスターデータのコピーを受け取った後、受け取ったOSイメージデータを仮想マシンが読み込んで利用するのではなく、ブート用ディスクとして直接起動に利用できることが必須となる。
【0044】
なお、本発明における「仮想ディスク技術」の具体的かつ詳細な利用手順については後述するが、仮想マシンにおけるOSイメージデータの利用法と本発明における利用法とは、OSイメージデータを仮想マシンが読み込んで利用する際には、
(1) OSイメージデータにより起動されるOSと同時に、仮想マシンが動作する環境を起動するためのベースとなる別のOSが稼働した状態で用いられ、また、
(2) OSイメージデータにより起動されたOSが端末のハードウェアにアクセスする際には、仮想マシンの管理下で行われるため動作にオーバーヘッドが生じる、
のに対し、本実施形態のようにブート用ディスクとして直接起動に利用する際には、
(i) OSイメージデータにより起動されるOSは、その端末でその時点で起動し
ている唯一のOSとして起動する、
(ii) OSイメージデータにより起動されるOSは、端末のハードウェアに直接
アクセスできるため、動作にオーバーヘッドは生じない、
という点で、両者は本質的に相違する。
【0045】
(第2の実施形態)−ディスク復元と差分管理について−
本実施形態では、差分管理の実際について詳述する。
【0046】
−実施例1(ディスク復元、その1)−
端末を再起動するだけで管理者が予め設定した「初期状態」に復元できることは、例えば不特定多数のユーザーに短時間使用させるために多数の端末が配備されている施設等でしばしば求められる。第1の実施形態で示したディスク配信システムを前提にこの差分管理機構を適用すると、このようなニーズに応えることができる。
【0047】
一例として、デスクトップ用のオペレーティングシステムの1つであるWindows(登録商標)では、「VHD形式」と呼ばれる拡張子「.vhd」乃至は「.vhdx」で表されるファイル形式を扱うことができる。VHD形式のファイルは、OSイメージデータなどを含む「記憶装置のある時点での状態」と関連付けられる。さらに、マスターデータとは別に、任意のタイミングでマスターデータに対する差分データを作成でき、さらに、特定の差分データに対するさらなる差分データを作成することもできる。また、複数の差分データをマージ(結合)して1つのファイルにすることもできる。
【0048】
図2(A)は、実施例1の動作を示す概念図である。図中の「0.vhd」、は、OSマスターデータの初期状態を表すファイルである。初期状態はOSインストール直後の状態であっても、一通り必要なプログラムやドライバソフトのインストール作業が完了した状態であってもよい。すなわち、どの状態を「初期状態」とするかは任意である。
【0049】
この初期状態を表すファイル「0.vhd」に対する差分データ 「writecache0.vhd」を作成し、その差分データ「writecache0.vhd」によって端末を起動する。図中の矢印の後端に示されるデータは、矢印の先端に示されるデータに対する差分データであることを示す。このような構成にすると、端末を起動した後においても差分データ「writecache0.vhd」を内容ゼロの状態に「初期化」することで、即座に初期状態に復元することができる。これは、差分データ「writecache0.vhd」をライトキャッシュとして機能させたことに相当する。なお、差分データを削除してマスターデータで起動しても同様に初期状態に復元できるが、その場合は、ライトキャッシュが存在しなくなり、マスターデータに直接データが書き込まれてしまうので、次回の起動でもライトキャッシュを機能させるためには、差分データのファイル自体は残し、内容のみを消去(初期化)するのがよい。
【0050】
なお、繰り返しになるが、本実施形態においては、VHD形式で保存されたマスターデータ「0.vhd」や差分データ「writecache0.vhd」に含まれるOSは、端末の「仮想マシン」上で実行されるのではなく、端末の物理的なOSとして直接実行されるものである。また、差分データ「writecache0.vhd」で起動中に、自身「writecache0.vhd」を消去することは、困難であると考えられる。このような場合、ブート用OSとは独立して起動される他のOSとして「管理用OS」を別途導入しておき、一先ず管理用OSで起動してから、差分データ「writecache0.vhd」を初期化すればよい。
【0051】
−実施例2(ディスク復元、その2)−
上述した実施例1の場合、差分データを初期化するために毎回管理用OSを起動する必要があり、ディスク復元をするために待ち時間が必要となる。しかし、2つの差分データ(「writecache0−1.vhd」及び「writecache0−2.vhd」)を用いると、この問題を回避できる。
【0052】
図2(B)は、実施例2の動作を示す概念図である。
まず、第1の差分データ「writecache0−1.vhd」で起動する際に(又はそれ以前に、)第2の差分データ「writecache0−2.vhd」を作成しておく。第2の差分データの中身はゼロであるから、第2の差分データ「writecache0−2.vhd」は初期状態に等しい。そして、次回の起動時にはこの第2の差分データ「writecache0−2.vhd」で起動する。第2の差分データでクライアントOSが稼動中に第1の差分データ「writecache0−1.vhd」を初期化して、次回の起動はこの第1の差分データ「writecache0−1.vhd」で起動する。プログラムを用いてこのプロセスを自動化してもよい。このように、マスターデータ「0.vhd」に対する2つの差分データ「writecache0−1.vhd」及び「writecache0−2.vhd」を作成して一方で起動しつつ他方を初期化し、この手順を繰り返すことにより、管理用OSを用いることなく、毎回初期状態に復元することが可能となる。また、「writecache0−1.vhd」と「writecache0−2.vhd 」とを交互に繰り返し用いるのではなく、「writecache0−3.vhd」、「writecache0−4.vhd」のように次々と新しい差分データを作成するように構成してもよい。
【0053】
次に、実施例2の応用例として、ユーザーデータ等を消去しない運用について述べる。実施例1で説明したディスク復元機能は、端末起動時にライトキャッシュである差分イメージを初期化することにより行っていた。そのため、端末を再起動するとそのライトキャッシュにのみに含まれていたファイルなども全て失われてしまっていた。
【0054】
しかし、2つのライトキャッシュ(差分データ)を用いた場合、再起動前の他方の差分データ「writecache0−1.vhd」には再起動前の変更情報(例えば文書データなどのユーザーデータ)が残されているため、他方の差分データ「writecache0−2.vhd」での起動中にその変更情報を同じ保存場所にコピーすれば、再起動後もユーザーデータを残す運用も可能である。このような構成で運用した場合、システムへの変更は再起動のたびに初期状態に復元される一方、ユーザーデータは消去されない。
【0055】
このように、複数のライトキャッシュを設けると、管理OSを不要にしたり、必要なデータを転送して保存したりすることができる運用も可能となる。
【0056】
また、上記とは異なり、ユーザーが作成したファイルやユーザーによるシステム変更を可能な限り保持するために、通常の再起動時にはライトキャッシュの初期化を行わない構成を採用することもある。この構成はライトキャッシュの初期化処理をバージョンの更新時のみに限定することで容易に実現できる。しかし、マスターデータを更新した場合にはライトキャッシュの初期化が必須となってしまうが、この場合においても同様に「マスターデータ更新前のライトキャッシュの情報」を参照して「マスターデータ更新後のライトキャッシュ」に変更情報を同じ保存場所にコピーすることで、「システム部分の更新」を行いつつユーザーデータを継続して保持する構成をとることもできる。さらには、もっと単純に、「ユーザーデータは記憶装置の別領域(別ドライブ)」に保持するように構成も実現できる。
【0057】
−実施例3(復元ポイントを複数作成する例)−
図2(C)は、実施例3の動作を示す概念図である。
差分データは、互いに依存関係を維持した状態で複数の階層を作成することができる。例えば、図2(C)に示すように、初期状態であるマスターデータ「0.vhd」に対する差分データ「1.vhd」が作成された場合、この差分データはそのベースとなった「0.vhd」に依存している。この状態で、差分データ「1.vhd」に対する差分データ「2.vhd」が作成された場合、2つ目の差分データ「2.vhd」は、そのベースとなった「1.vhd」に依存しているだけでなく、「0.vhd」にも依存している。
【0058】
ここで、差分データ「1.vhd」を利用して端末を起動して起動すると、その際に「1.vhd」が更新されてしまう。そして、「1.vhd」が更新されると、「2.vhd」と「1.vhd」との依存関係が破綻し、以後「2.vhd」で起動できなくなる。
【0059】
そのため、「1.vhd」の起動用に、「1.vhd」のクローンとして差分データ「writecache1a.vhd」を作成し、これで起動することにより、差分データ「1.vhd」が更新されないようにする。こうすれば、差分データ「1.vhd」と同等の内容で起動しつつ、「2.vhd」と「1.vhd」の依存関係を維持することができる。
【0060】
(第3の実施形態)−多数の端末の初期イメージ設定手順例−
1つのマスターデータを多数の端末の起動ディスクにコピーして、「ローカルブート」する場合でも、IPアドレスやホスト名など、端末ごとに「個別設定」を行う必要がある。ネットワークブートシステムの場合、端末の起動を速やかに行う必要があるため「ホスト名等の動的設定」が用いられる場合が多い。ホスト名等の動的設定は、起動時に設定が完了し、再起動も不要という点で優れている反面、全ての端末が同一のハードウェア構成であることを前提とし、ハードウェア構成の相違点を吸収することができないという欠点がある。各端末のハードウェア構成が必ずしも同一構成でない場合には、起動時にOSのカーネルに読み込まれるべきデバイスドライバが、端末ごとに異なってくる。
【0061】
以下、新規に導入された複数の端末の起動ディスクの内容を統一する手順を示す。端末のハードウェア構成はそれぞれ異なる可能性があるため、配信されるOSイメージデータは「OOBE(Out Of Box Experience)状態」と呼ばれるOSイメージデータを用いる。OOBE状態とは、「端末に依存しない状態」、換言すれば、「想定される全てのデバイスドライバを含んだ状態」をいう。OOBE状態のOSイメージデータをマスターデータとして、そのコピーを各端末の起動ディスクに配備すれば、最初の起動時にそれぞれの端末に必要なデバイスドライバが読み込まれ、かつ端末ごとの固有設定を各端末の記憶装置内に保持するので、ハードウェア構成の相違点を吸収することができる。
【0062】
まず初めに、DVDやUSBストレージデバイスなどのリムーバブル記録メディアによる起動やネットワークブートを利用した起動など、いずれかの方法により、まず初期化用OSを起動する。次に、端末の起動ディスクにOOBE状態のOSイメージデータであるマスターデータ「0.vhd」をコピーする。また、同様に管理用OSも導入する。
【0063】
次に、端末ごとの個別設定を行う。個別設定を行う方法として、ハードウェアの再検出を行うツールが用意されている。例えば、Windows(登録商標)であれば、「mini−Setup」処理により行うことができる。mini−Setup処理は、端末にIPアドレスやホスト名及びドメイン参加の有無などのネットワーク接続情報を登録すると共に、端末に接続されていて未だOSのカーネルに登録されていないデバイスドライバを読み込むためにハードウェア情報の検出を開始する処理である。この処理を実行することでハードウェアの相違点をある程度吸収して端末のハードウェア構成に合わせた再設定、すなわち端末の個別設定が可能となる。
【0064】
図3(A)及び図3(B)は、第3の実施形態で説明する端末の個別設定の手順を示す概念図である。まず、図3(A)に示すように、端末の起動ディスクにOOBE状態のマスターデータ「0.vhd」のコピーを配備する。次に、マスターデータが更新されないように、第1のライトキャッシュを準備する。具体的には、「0.vhd」に対する差分データ 「minisetup0a.vhd」 を作成する。この差分データにより端末を起動した後、直ちにmini−Setupを実行する(ステップS1)。
【0065】
mini−Setup終了後、端末を一旦シャットダウンし、次に、図3(B)に示すように、第2のライトキャッシュを準備する。具体的には、先ほどの「minisetup0a.vhd」に対する差分データ「writecache0a.vhd」を作成し、そのイメージで端末を起動する(ステップS2)。プログラムを用いてステップS1からステップS2への手順を自動実行するように設定してもよい。
【0066】
このような手順を経ることで、次に起動した際には mini−Setupが完了した状態で起動することができる。その後、第2のライトキャッシュである差分データ「writecache0a.vhd」を初期化することで、以後この端末では毎回 mini−Setup直後の状態から起動するようになる。
【0067】
さらには、従来型のディスク配信機構を用いた場合には、mini−Setupの実行に失敗することが多いことが知られている。この理由は、mini−Setup処理の実行時には、ドメイン参加 や ファイルサーバーのマウントなどのためにサーバーとの通信を行うことがよくあり、その際に「ネットワークに接続されていない」、あるいは「多数の端末を一斉に初期化することで、サーバーが過負荷となりタイムアウトする」といった不具合が頻繁に生じるためである。例えば、100台の端末に対して一斉に初期化処理を実施すると、少なくとも2−3台はmini−Setup処理に失敗することが経験的に知られている。
【0068】
しかし、この手順の場合、万一mini−Setupの実行に失敗した場合でも、再度「minisetup0a.vhd」を作り直すだけで「0.vhd」などを再度コピーする必要なく、OOBE状態のマスターデータ「0.vhd」の状態からmini−Setupを再度実行することにより、確実にmini−Setupの実行に成功する。
【0069】
なお、ここで述べた一連の方針であれば、1つのイメージを多数の端末に配信することもできる上に、端末ごとにハードウェア構成が異なる場合にも、統一されたイメージを配信して利用することができる。
【0070】
ただし、この方法では、ディスクイメージ 「0.vhd」を更新した際には一般にディスクイメージのサイズが大きいと考えられる「0.vhd」を多数の端末に転送することが必要になる。
【0071】
(第4の実施形態)−マスターデータの更新と配信−
本実施形態では、説明を簡単にするため、端末の台数が2台(端末A、端末B)であり、このうち1台(端末A)を、マスターサーバーとしても機能させることを想定して、マスターデータの更新と他の端末への配信手順について説明する。
【0072】
[マスターデータの更新]
図4(A)及び図4(B)は、いずれも、第4の実施形態における端末A及び端末Bの仮想ディスク構成をそれぞれ示している。
端末Aには、OSイメージデータであるマスターデータ「0.vhd」と、マスターデータに対する第1の差分データ「1.vhd」とが存在している状態で、ライトキャッシュとして第1の差分データ「1.vhd」に対する差分データ「writecache1a.vhd」を作成し、これにより端末Aを起動させる。
【0073】
端末Aにおいてアプリケーションのインストールなどを行うと、その作業によるOSイメージデータに対する変更点はライトキャッシュである差分データ「writecache1a.vhd」に記録される。その後、端末Aをシャットダウンすると、その段階での「writecache1a.vhd」の内容が他の端末に配信すべき「更新データ」となっている。ここで、管理用OSで端末を起動するなどして「writecache1a.vhd」から「2.vhd」にリネームする。さらに、次に端末Aを起動する際に備えて先ほどリネームした「2.vhd」に対する差分データ「writecache2a.vhd」を作成しておく。
【0074】
図5(A)は、端末Aに別途仮想ディスクとして用意したマスターデータ「manage.vhd」を用いて管理用OSを起動している様子を表すと共に、管理用OSの稼働中に端末Aのマスターデータの更新データをリネームし、さらにライトキャッシュである「writecache2a.vhd」を作成した様子を示している。
【0075】
[OSイメージデータの配信]
管理用OSで起動している図5(A)の状態から、ライトキャッシュ「writecache2a.vhd」によって端末Aを再起動する。図5(B)は、ライトキャッシュ「writecache2a.vhd」によって端末Aを起動している様子を表している。この状態で、端末Aから端末Bに「2.vhd」をコピーする。いま仮に、端末A上の「1.vhd」と端末B上の「1.vhd」とが同一であるなら、端末Bにコピーされた「2.vhd」は、端末B上の「1.vhd」からの差分ともなる。このコピー作業は端末Bが「writecache1b.vhd」での稼働中(図4(B)参照)に行うことができる。そのため、コピー転送時に利用するデバイスやメディアやプロトコルの自由度は高く、既に説明した各種の配信効率の高い配信手段等を用いることができる。もちろん、端末Aから端末Bに直接転送する代わりに、何らかのサーバーや他の端末を中継するように構成することもできる。
【0076】
図6(A)は、端末Bに「2.vhd」のコピーが終わった状態を示している。この段階においては、端末Bは「writecache1b.vhd」で起動されている。この状態で、次回の起動を更新されたマスターデータの差分データ「2.vhd」によって行うように設定すれば更新が反映するが、そうすると、「2.vhd」に書き込みされてしまう。そこで、図6(B)に示すように、「2.vhd」では起動せず、「2.vhd」に対する差分データ「writecache2b.vhd」を作成する。この差分データ「writecache2b.vhd」はもちろんライトキャッシュとして機能する。
【0077】
その後、ライトキャッシュ「writecache2b.vhd」に対して「IPアドレス、ホスト名」などの必要な設定情報の変更を行う。もし、実装上の都合で「writecache1b.vhd」が起動中に「writecache2b.vhd」の内容を書き換えることができない場合には、再起動を介して管理用OSにより書き換えるように構成してもよい。また、ホスト名やIPアドレスを端末起動時に動的設定されるように構成している場合には、この「writecache2b.vhd」を書き換える手順を省略することもできる。次に「writecache2b.vhd」で起動するように設定をして、端末を再起動すれば、端末Bは差分データ「2.vhd」相当の状態で起動することになる。再起動後は「writecache1b.vhd」のファイルを削除することもできる。
【0078】
[多数の端末への展開]
多数の端末がある場合には、同様の手順を繰り返すことで展開することができる。また、どのタイミングでコピー処理を行うか、また、どのタイミングで新たなバージョンを他の端末での利用を許可するかといった制御を自由に行うことができる。
【0079】
(第5の実施形態)−運用例−
[配信用差分データの作成手順]
第3の実施形態では、図3を参照して、マスターデータとなるOSイメージデータを各端末に配信する手順を述べた。この手順では各端末においてmini−Setupを行った段階で各端末の状態は異なってしまうため、それ以降に生じたマスターデータの変更を差分データとして配信することはできなかった。一方、第4の実施形態では、図4図6を参照して、マスターサーバーとして機能する端末Aにおいて生じた変更を他の端末にコピーする手順について述べた。この手順では、端末ごとの個別設定はIPアドレスとホスト名といった程度の内容しか行うことができず、第3の実施形態のように、ハードウェア構成が異なるような場合には利用できなかった。
【0080】
そこで、本実施形態では、マスターサーバーとして機能する端末Aにおいて生じた変更を、ハードウェア構成が異なる他の複数の端末に差分データとして配信する手順について述べる。
【0081】
図7(A)に示すように、まず、OOBE状態のOSイメージデータ「0.vhd」をベースとして、端末Aのハードウェア構成に適するようにmini−Setupした段階のイメージが「minisetup0a.vhd」、それに対する差分データ「writecache0a.vhd」(ライトキャッシュ)によって端末Aが稼働している状態を想定する。
【0082】
上記の状態で端末Aにおいてアプリケーションのインストールなどを行うとその作業によるイメージに対する変更点はライトキャッシュとして機能する差分データ「writecache0a.vhd」に記録される。
【0083】
この状態で、OSイメージデータをOOBE状態に戻す処理を実行する。Windows(登録商標)の場合、「sysprep」処理がこれに相当する。sysprepを実行すると、図7(B)に示すように、現在起動中のOSイメージデータ「writecache0a.vhd」はOOBE状態になる。ここで、次回起動時には「管理用OS」で起動するように設定しつつ端末Aを再起動する。
【0084】
図8に示すように、管理用OSで起動した後、「writecache0a.vhd」と「minisetup0a.vhd」の内容とをマージして、「1.vhd」というファイル名のファイルを作成する。このようにして得られた「1.vhd」は、「OOBE状態」かつ「0.vhdに対する差分データ」となる。
【0085】
次に、図9(A)に示すように、この「1.vhd」に対する差分データとして「minisetup1a.vhd」を作成し、次回起動時には「minisetup1a.vhd」で起動するように設定して再起動する。いま、「minisetup1a.vhd」は、「1.vhd」に対するライトキャッシュとなっている。
【0086】
この状態で、ライトキャッシュである「minisetup1a.vhd」で端末Aを起動すると、直ちにmini−Setupが行われる。mini−Setupが終わった段階で、次回起動時には再度管理用OSで起動するように設定しつつ端末Aを再起動する。
【0087】
図9(A)は、現在の端末Aにおけるマスターデータとその差分データの関連を示している。差分データ「1.vhd」は、OOBE状態のディスクイメージであるため、様々なハードウェアで起動できる。
【0088】
図9(B)は、図9(A)の状態から、さらに「minisetup1a.vhd」に対する差分として「writecache1a.vhd」を作成した様子を示している。次回はこのディスクで起動するように構成してから端末を再起動する。
【0089】
このように構成することで、端末Aは新たなバージョン「1.vhd」に相当する状態で起動することができる。
【0090】
また、ライトキャッシュ「writecache1a.vhd」を初期化すれば、mini−Setupした状態へのディスク復元機能を実現できる。
【0091】
以上の手順により、異なるハードウェア構成の端末にも、ハードウェア構成の違いを吸収しつつ配信できる差分データが得られる。
【0092】
[他の端末へのコピー]
次に、端末Aで作成された差分データ「1.vhd」を別の端末Bで利用するまでの手順を述べる。以下の例では、端末Aはマスターデータの更新後の差分データ「1.vhd」を端末Aに適するようにmini−Setupした状態で動作しており、端末Bは更新前のOSイメージデータ(マスターデータのコピー)「0.vhd」を端末Bに適するようにmini−Setupした状態で動作している。
【0093】
まず、端末Aから端末Bに差分データ「1.vhd」をコピーする。このコピー作業は端末Bが「writecache0b.vhd」での稼働中に行うことができる。そのため、転送時に利用するデバイスやメディアやプロトコルの自由度は非常に高く、既に説明した各種の配信効率の高い配信手段等を用いることができる。しかも、「1.vhd」はマスターデータ「0.vhd」に対する差分データでもあるため、マスターデータ「0.vhd」よりもデータサイズが小さい。そのため、ディスクイメージ全体をコピーする場合と比較して、転送時間を大幅に短縮できる利点がある。
【0094】
もちろん、端末Aから端末Bに直接転送する代わりに、何らかのサーバーを中継するように構成することもできる。
【0095】
さらに、端末A上のマスターデータ「0.vhd」と端末B上にコピーされた「0.vhd」との内容は同一であるため、端末Bに転送された差分データ「1.vhd」は、端末B上の「0.vhd」からの差分ともなる。そのため、端末Bに「1.vhd」への転送が終わると端末Bの仮想ディスクは図10(A)に示す状態になる。
【0096】
次に、転送が終わった後に端末Bにおて差分データ「1.vhd」を利用するまでの手順を述べる。端末Bは自発的に、又はサーバーからの指示を受けて、あるいは端末Bを利用するユーザーからの指示を受けて、差分データ「1.vhd」の初期化作業を開始する。まず、端末Aをシャットダウンする際に次回起動時には管理用OSで起動するように設定して再起動する。図10(B)は端末Bが管理用OSで再起動した状態を示している。
【0097】
端末Bが管理用OSで再起動した後、まず差分データ「1.vhd」に対する差分データとして「minisetup1b.vhd」を作成する(図11(A))。この時点で「minisetup1b.vhd」は「1.vhd」からの差分データを保持していないため、「minisetup1b.vhd」は「1.vhd」と同等の内容を意味する。この「1.vhd」の中には、mini−Setup時の設定内容を指示するファイル(unattended.xml)が含まれている。このファイルを適宜適切に設定することで、「IPアドレス」「ホスト名」「ドメイン参加」などを含む様々な設定を行うことができる。サーバーと通信を行い、適切なunattended.xmlファイルを取得することもできる。また、unattend.xmlによらず、ファイルやレジストリなど、ディスクイメージの内容を書き換えることで、端末ごとの個別設定を行うこともできる。
【0098】
その後、「minisetup1b.vhd」で端末が起動するように設定を行った上で端末を再起動するとmini−Setupが実行される(図11(B))。「minisetup1b.vhd」で起動した端末Bは、所定のセットアップ処理(mini−Setup)を実行する。また、この段階において端末ごとの個別設定をさらに行ってもよい。その後、「minisetup1b.vhd」に対する差分データ「writecache1b.vhd」(ライトキャッシュ)を作成し、端末Bをそのイメージで起動するように設定した後に再起動する(図12)。
【0099】
この手順をとることで、端末Bも端末Aで作成された差分データのコピー「1.vhd」をベースとして端末の個別化処理(mini−Setup)を行いつつ起動できる。さらには、この段階においてもライトキャッシュ「writecache0b.vhd」の内容を参照することができるので、更新前の仮想ディスク「writecache0b.vhd」に含まれているユーザーデータ等を、更新後の仮想ディスク「writecache1b.vhd」に複製するように構成してもよい。
【0100】
ここまでの手順が終わった段階にて「minisetup0b」と「writecache0b.vhd」とはこの先不要となるので、適切なタイミングに削除してもよい。
【0101】
また、ここに述べた一連の手順は「2.vhd」、「3.vhd」など新たなイメージが作成された場合にも繰り返し適用できる。その際にも、端末間で転送されるのは各バージョンごとの差分となるため、転送量は少なくなる。
【0102】
なお、多数の端末がある場合には、同様の手順を繰り返すことで展開することができる。また、どのタイミングでコピー処理を行うか、また、どのタイミングで新たなバージョンを他の端末での利用を許可するかといった制御を自由に行うことができる。
【0103】
(第6の実施形態)−ハードウェア混在環境での運用−
本実施形態では、ハードウェア構成が異なる複数の端末とハードウェア構成が同一である複数の端末とが混在した環境での運用について述べる。このような場合、これらのそれぞれの環境に合わせて2つのディスクイメージを準備することでも運用は可能ではある。しかし、そうするとマスターディスクが2つとなり、それぞれを管理する必要が生じてしまう。
【0104】
本実施形態では、「ハードウェア構成が異なる複数の端末」と「ハードウェア構成が同一である複数の端末」とが混在した環境であっても、マスターディスク1つで運用する手順について述べる。
【0105】
まず、端末Aがマスターサーバーであり、端末Aで、マスターデータの更新が繰り返されるとする。また、端末Bは端末Aとハードウェア構成が同一で端末であり、端末Cは端末Aとハードウェア構成が異なる端末である場合を想定する。
【0106】
図4は、端末A及び端末Bの仮想ディスク構成を表している。ベースとなっている端末A及びBの「0.vhd」と「1.vhd」のデータは、いずれも同一である。いま、それぞれの端末はライトキャッシュとして機能させるため、「1.vhd」に対する差分データ「writecache1a.vhd」及び「writecache1b.vhd」によってそれぞれ起動している。
【0107】
ここで、新たに「2.vhd」を作成したり、マスターサーバー(端末A)から端末Bへの配信する手順については、第4の実施形態において図5及び図6を参照して説明したとおりである。
【0108】
図13(A)及び図13(B)は、端末Aから「2.vhd」を端末Bに配信し、端末Bを起動した直後の端末A及び端末Bの仮想ディスクの状態をそれぞれ示している。それぞれの端末は、いずれもライトキャッシュである差分データ「writecache2a.vhd」、「writecache2b.vhd」で起動している。
【0109】
ここでさらに、端末Aにおいて「2.vhd」に依存した差分ディスク「sysprep2.vhd」を作成し、そのディスクで端末Aを起動する(図14(A))。その後、端末Aにおいてsysprep処理を実施してから端末Aをシャットダウンする。その際、次回起動時には「writecache2a.vhd」で起動するように設定しつつ端末Aを再起動する。図14(B)は、この再起動後の端末Aの仮想ディスクの状態を示している。なお、この処理は、端末Aにおいて「2.vhd」を作成する際に一連の処理として行うこともできる。
【0110】
一方、図15(A)は、端末Cの仮想ディスク構成を示している。端末Cは、端末Aや端末B用のハードウェアに適合したOSイメージデータ「0.vhd」や「1.vhd」が配備されている。端末Cは、マスターデータである「0.vhd+1.vhd」で起動することはできないため、そこからsysprep処理を行った後、mini−Setup処理を行うことで個別化処理が行われ、現在は個別化処理が完了したOSイメージデータ「minisetup1c.vhd」のライトキャッシュ「writecache1c.vhd」で起動している。
【0111】
この状態で、端末Aから、「2.vhd」及び「sysprep2.vhd」を端末Cに配信する。ここで、「2.vhd」は「1.vhd」に対する差分データであるため、端末Cは、図16に示すような仮想ディスク構成となる。
【0112】
端末Cは、ハードウェア構成が異なる端末Aや端末B用のOSイメージ系列である「0.vhd」及びその差分データ「1.vhd」を保持している状態で、「1.vhd」に対する差分データをマスターサーバー(端末A)から受け取ることになる。
【0113】
このあと端末Cで「minisetup2c.vhd」を「sysprep2.vhd」に対する差分として作成しつつ、そのディスクで起動するように設定し、第5の実施形態で説明した手順により処理をすると、図17に示すような状態となり、2.vhd相当のディスクで端末Cが起動できる状態となる。
【0114】
以上のような手順を繰り返すことで、sysprepを使わずに構成された「0.vhd」、「1.vhd」、「2.vhd」、・・・ の列をベースにして、ハードウェア構成が異なるためsysprepを要する他の端末でも同じディスクを利用できる。
【0115】
(その他の実施形態)
上述の実施形態では、差分管理機構としてWindows(登録商標)で用いられる仮想マシン用のVHDファイル形式を用いて説明したが、差分管理機構を提供できるシステムであれば、どのようなものでも構わない。例えば、ZFSファイルシステムなどのコピー・オン・ライト方式のファイルシステムを端末の起動ディスクとしてマウントする場合や、他の仮想マシンプログラムのスナップショット機能を用いてもよい。
【符号の説明】
【0116】
10 マスターサーバー
13 スイッチングハブ
15 アクセスポイント
20 複数の端末(20a,20b,・・・)
30 無線LAN
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17