JP5649184B2 - ブート・ブロックの再配置によって複数のソフトウェア・イメージを管理するための方法、コンピュータ・プログラムおよびシステム - Google Patents

ブート・ブロックの再配置によって複数のソフトウェア・イメージを管理するための方法、コンピュータ・プログラムおよびシステム Download PDF

Info

Publication number
JP5649184B2
JP5649184B2 JP2011252538A JP2011252538A JP5649184B2 JP 5649184 B2 JP5649184 B2 JP 5649184B2 JP 2011252538 A JP2011252538 A JP 2011252538A JP 2011252538 A JP2011252538 A JP 2011252538A JP 5649184 B2 JP5649184 B2 JP 5649184B2
Authority
JP
Japan
Prior art keywords
image
memory
boot
software image
block
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2011252538A
Other languages
English (en)
Other versions
JP2012128841A (ja
JP2012128841A5 (ja
Inventor
クラウディオ・マリネッリ
ジャック・フォンティニー
マルク・ビュイウミエ・シュテュッケルベルク
ジョン・ジー.・ルーニー
ダヴィッド・クレール
ルイス・ガルセス−エリセ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2012128841A publication Critical patent/JP2012128841A/ja
Publication of JP2012128841A5 publication Critical patent/JP2012128841A5/ja
Application granted granted Critical
Publication of JP5649184B2 publication Critical patent/JP5649184B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/4401Bootstrapping
    • G06F9/4406Loading of operating system
    • G06F9/441Multiboot arrangements, i.e. selecting an operating system to be loaded

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明の1つまたはそれ以上の実施形態に従う解決策は、データ処理分野に関する。より特定的には、この解決策はソフトウェア・イメージの管理に関する。
一般的に言って、ソフトウェア・イメージとはコンピュータ上に存在するソフトウェア・モジュール(たとえばそのオペレーティング・システム、アプリケーション・プログラム、またはデータあるいはその組合わせなど)を含む構造である。
場合によっては、同じコンピュータ上で複数のオペレーティング・システムを利用可能にすることが望ましいことがある。それはたとえば異なるオペレーティング・システムを必要とするプログラムを実行するため、または新しいオペレーティング・システムもしくはその新しいバージョンをテストするためなどに有用であり得る。
この目的のために、マルチブート技術を利用することが可能である。マルチブート技術は、コンピュータに複数のオペレーティング・システムをインストールして、コンピュータが始動されたときにどのオペレーティング・システムをブートするかを選択可能にすることができる。この所望の結果は、コンピュータのハードディスクを複数の区画に分割し、各区画が対応するオペレーティング・システムを保存する論理ディスクを定めることによって達成される。コンピュータは、始動させるべき実際のオペレーティング・システムの選択を可能にするブート・ローダを含む1次区画からブートする。代替的には、単に所望のオペレーティング・システムを選択するために用いられる1次ブート・ローダを有するブート区画を提供することもできる。1次ブート・ローダは、次いで選択されたオペレーティング・システムの2次ブート・ローダを始動のために呼び出す。
しかし、ハードディスクの区画を予め定める必要があるため、マルチブート技術はかなり融通がきかないものである。いずれの場合にも、一旦選択されたオペレーティング・システムが始動されると、それがハードディスク全体のすべての制御を行う。したがって、選択されたオペレーティング・システムは他の区画にもアクセスすることがある(それらの区画に損傷を与える危険性を伴う)。
代替的には、仮想化技術を利用して同じ結果を達成してもよい。この場合には、コンピュータにハイパーバイザがインストールされる。ハイパーバイザは仮想化層を実現し、これは複数の仮想マシンをエミュレートするものであって、各々の仮想マシンは(その仮想マシンが唯一の制御を行う)物理的コンピュータの外観を与える抽象的環境からなる。このやり方で、対応する仮想マシン上で異なるオペレーティング・システムを独立に(同時であってもよい)実行させることが可能である。
しかし、仮想化技術は、仮想マシンを管理するための複雑なインフラストラクチャのインストールを必要とする。さらに、このことはコンピュータの性能効率低下を伴う(オペレーティング・システムがもはやコンピュータ上でネイティブに実行されないため)。
特許文献1(そのすべての開示が本明細書において引用により援用される)も、マルチブート・コンピュータを仮想マシンに変換するための方法を開示している。この目的のために、コンピュータのブート記録は、仮想マシンを管理するホスティング・オペレーティング・システムをロードするように構成される。仮想マシンは、対応するブート・イメージからコンバータによって生成され、このコンバータは同じ構成を検出および適用して、仮想マシンの同時実行によってもたらされ得るあらゆる矛盾を解決する。上記と同様、これは(ホスティング・オペレーティング・システムによって実現される)仮想化層のインストールを必要とする。さらに、オペレーティング・システムはここでも(ホスティング・オペレーティング・システムによって提供される)仮想化環境において実行され、対応する性能効率低下を伴う。
別の一般的な要求は、コンピュータのソフトウェア・イメージのバックアップ・コピーを作成するというものである。これはたとえば、コンピュータの誤動作が起こった場合にコンピュータの内容を復元するために有用であり得る。
この目的のために、ソフトウェア・イメージのスナップショット(すなわち特定の時点での整合状態におけるそのバックアップ・コピー)を取ることが可能である。スナップショットは、バックアップ・ディスクまたはバックアップ・サーバにセーブされてもよい。このやり方で、スナップショットをバックアップ・ディスクまたはバックアップ・サーバからコンピュータに再インストールすることによって、スナップショットを復元することが可能である。しかし、スナップショットを復元するプロセスは非常に遅い。加えて、バックアップ・サーバを使用する場合、これはネットワーク・リソースの高消費を伴う。さらに、バックアップ・サーバからスナップショットを復元するためにバックアップ・サーバとのネットワーク接続が必要である。代替的に、バックアップ・サーバ上のスナップショットから遠隔的にコンピュータをブートすることが可能である。しかしこの場合には、コンピュータはその動作のためにバックアップ・サーバに常時接続される必要がある。いずれの場合にも、ネットワーク上でのコンピュータの動作はその性能の効率低下を伴う。
米国特許出願公開第2009/0193245号
一般的な見地からみて、本発明の1つまたはそれ以上の実施形態に従う解決策は、複数のソフトウェア・イメージをそのブート・ブロックを再配置することによって管理するという考えに基づいている。
特に、本発明の特定の実施形態に従う解決策の1つまたはそれ以上の局面が独立請求項に示されており、同じ解決策の有利な特徴が従属請求項に示されており、その表現は本明細書において一語一句違わず引用により援用される(本発明の実施形態に従う解決策の特定の局面を参照して提供されるあらゆる有利な特徴は、そのあらゆる他の局面に準用して適用される)。
より特定的には、本発明の実施形態に従う解決策の1局面は、データ処理エンティティ(たとえばスタンドアロン・コンピュータなど)の中で複数のソフトウェア・イメージを管理するための方法を提供する。データ処理エンティティは、複数のメモリ位置を有するマス・メモリを含む。各メモリ位置は、マス・メモリ内に対応するメモリ・アドレスを有する。次に、各ソフトウェア・イメージは複数のメモリ・ブロックを含む。各メモリ・ブロックはソフトウェア・イメージ内に対応するイメージ・アドレスを有する。この方法は以下のステップを含む。各ソフトウェア・イメージのメモリ・ブロック(または少なくともその部分)が、マス・メモリの対応するイメージ部分に保存される。特に、各メモリ・ブロックは、対応するイメージ・アドレスにマス・メモリ内のイメージ部分のオフセットを加えたものに等しいメモリ・アドレスを有するメモリ位置に保存される。(たとえば、前にセーブされたスナップショットに切換えることなどによって)現在のイメージ部分に保存された現在のソフトウェア・イメージが選択される。現在のソフトウェア・イメージのブート位置に保存されたメモリ・ブロックが、マス・メモリの再配置部分に再配置される。現在のソフトウェア・イメージのブート位置は、現在のソフトウェア・イメージのブート・ブロックのイメージ・アドレスに等しいメモリ・アドレスを有するメモリ位置であり、このブート・ブロックは(現在のソフトウェア・イメージにアクセスするために適合される)アクセス機能をロードするまでデータ処理エンティティをブートするために必要とされる現在のソフトウェア・イメージのメモリ・ブロックを含む。現在のソフトウェア・イメージのブート・ブロックは、対応するブート位置にコピーされる。対応するブート位置にある現在のソフトウェア・イメージのブート・ブロックからデータ処理エンティティがブートされることによって、アクセス機能がロードされる。現在のソフトウェア・イメージの選択されたメモリ・ブロックにアクセスする各要求は、アクセス機能によって提供される。アクセス機能は、対応するイメージ・アドレスに現在のイメージ部分のオフセットを加えたものに等しいメモリ・アドレスを有するメモリ位置にある選択されたメモリ・ブロックにアクセスする。
本発明の実施形態に従う解決策のさらなる局面は、データ処理システムにおいてコンピュータ・プログラムが実行されるときにデータ処理システムに本方法のステップを行わせるためのコード手段を含むコンピュータ・プログラムを提供する。本発明の実施形態に従う解決策のさらなる局面は、コンピュータ・プログラムを包含する持続性コンピュータ読取可能媒体を含むコンピュータ・プログラム製品を提供し、このコンピュータ・プログラムはデータ処理システムのワーキング・メモリに直接ロード可能なコード手段を含むことによって、同方法を行うようにデータ処理システムを構成する。
本発明の実施形態に従う解決策の別の局面は、前記方法のステップを行うための手段を含むシステムを提供する。
本発明の実施形態に従う解決策を適用可能なデータ処理システムの概略的ブロック図である。 本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従うスナップショット・プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従うスナップショット・プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従うスナップショット・プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従うスナップショット・プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従うスナップショット・プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。 本発明の実施形態に従う準備プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図である。
本発明の1つまたはそれ以上の実施形態に従う解決策、ならびにそのさらなる特徴および利点は、添付の図面とともに読まれるべき、純粋に非制限的表示によって与えられる以下の詳細な説明を参照することによって最もよく理解されるだろう(この説明においては簡略化のため、対応する構成要素は同一または類似の参照によって示され、その説明は繰り返されず、さらに各エンティティの名前はそのタイプおよび属性の両方、たとえばその値、内容および表現などを示すために一般的に用いられる)。
特に図1を参照すると、本発明の実施形態に従う解決策を適用可能なデータ処理システム(または単にシステム)100の概略的ブロック図が示される。システム100は分散アーキテクチャを有し、これはたとえばローカル・エリア・ネットワーク(Local Area Network:LAN)などのネットワーク105に基づくものである。ネットワーク105を通じて複数のコンピュータが互いに接続される。特にサーバ・コンピュータ110は、簡略化のために図面に2つだけ示されているクライアント・コンピュータ115へのソフトウェア・イメージの配置を制御する。各ソフトウェア・イメージは、1つまたはそれ以上のソフトウェア・モジュール(たとえば、オペレーティング・システム、アプリケーション・プログラムまたはデータあるいはその組合わせなど)を含む構造である。
システム100の一般的な(サーバまたはクライアント)コンピュータは、(システム100中のコンピュータの実際の機能に従って好適に調整された構造を有する)システム・バス120に並列接続されたいくつかのユニットによって形成される。詳述すると、1つまたはそれ以上のマイクロプロセッサ(microprocessors:μP)125はコンピュータの動作を制御する。RAM130はマイクロプロセッサ125によってワーキング・メモリとして用いられ、ROM135はコンピュータの基本コードを保存する。ローカル・バス140の周りに(それぞれのインタフェースによって)いくつかの周辺ユニットが集まっている。特に、マス・メモリは1つまたはそれ以上のハードディスク145と、光ディスク155(たとえばDVDまたはCDなど)を読取るためのドライブ150とを含む。さらに、コンピュータは入力ユニット160(たとえばキーボードおよびマウスなど)と、出力ユニット165(たとえばモニタおよびプリンタなど)とを含む。アダプタ170は、コンピュータをネットワーク105に接続するために用いられる。ブリッジ・ユニット175は、システム・バス120をローカル・バス140にインタフェースする。各マイクロプロセッサ125およびブリッジ・ユニット175は、情報を送信するためにシステム・バス120へのアクセスを要求するマスタ・エージェントとして動作し得る。アービタ180は、システム・バス120に対する相互排除によってアクセスの認可を管理する。
本発明の実施形態に従う配置プロセスを実施するために使用可能な主要ソフトウェア構成要素の役割を表す協調図を図2〜図12に示す。特に、これらの図面は(全体として参照200によって示される対応の構成要素によって)システムの静的構造と、(記号「A」で始まる連続的なシーケンス番号によって示される、各々が対応の動作を表す一連の交換メッセージによって)その動的挙動とを説明するものである。
図2から始めると、(それぞれ参照130sおよび145sによって示されるワーキング・メモリおよびマス・メモリを有する)サーバ・コンピュータ110は、配置マネージャ205、たとえばIBM社によるIBM Tivoli(IBM社の登録商標)Provisioning Manager for OS Deployment(またはTPM for OSD)のIBM Tivoli(IBM社の登録商標)Provisioning Manager for Images(またはTPMfI)などを実行する(IBMおよびTivoliはIBM社の商標である)。配置マネージャ205は、システムのクライアント・コンピュータへのソフトウェア・イメージ210(i=1…N)の配置を自動化するために用いられる。ソフトウェア・イメージ210は対応するリポジトリに保存される。各ソフトウェア・イメージ210は、ソフトウェア・イメージ210内の対応するアドレス(イメージ・アドレスと呼ばれる)を有する1組のメモリ・ブロックを含む。メモリ・ブロックはあらゆる種類の情報(たとえば、オペレーティング・システムまたはアプリケーション・プログラムのいずれかに関係する1つまたはそれ以上のセクタ、ファイル、ライブラリ、ディレクトリ、その組合わせまたは部分など)を含んでもよい。
特に、(それぞれ参照130cおよび145cによって示されるワーキング・メモリおよびマス・メモリを有する)特定のクライアント・コンピュータ115に新しいソフトウェア・イメージ210(たとえばソフトウェア・イメージ210)を配置するときにはいつも、システムのオペレータ212がこれらのクライアント・コンピュータ115および新しいソフトウェア・イメージ210を、配置マネージャ205を通じて、たとえば図面に示されない別のクライアント・コンピュータ上で実行されるブラウザに接続することなどによって選択する(動作「A201.選択」)。それに応答して、配置マネージャ205はクライアント・コンピュータ115をオンにする。その結果、クライアント・コンピュータ115が何らかの機能するオペレーティング・システムを有さないと仮定すると、クライアント・コンピュータ115は(図面に示されない)ネットワーク上でブートする。特に、クライアント・コンピュータ115のファームウェアに保存されてクライアント・コンピュータ115をオンにすると実行されるブート・ローダ、たとえば基本入出力システム(Basic Input/Output System:BIOS)などが、何らかのブート可能な装置を見出さずに、次いでネットワーク・ブート・ローダ、たとえばそのネットワーク・アダプタに組込まれたプリブート実行環境(Preboot Execution Environment:PXE)などを開始する。ネットワーク・ブート・ローダは、たとえば動的ホスト構成プロトコル(Dynamic Host Configuration Protocol:DHCP)などに基づく動的アドレス・サービスを利用して、(DHCPサーバとして動作する)サーバ・コンピュータ110からクライアント・コンピュータ115に対する動的アドレスを得、サーバ・コンピュータ110はクライアント・コンピュータ115のRAMディスク、すなわちマス・メモリとして扱われるそのワーキング・メモリ130cの部分にダウンロードされてから開始されるネットワーク・ブートストラップ・プログラムのアドレスも提供する。たとえばウィンドウズ・プレインストール環境(Windows Preinstallation Environment:WinPE)(ウィンドウズはマイクロソフト(Microsoft)社の商標)などのネットワーク・ブートストラップ・プログラムは最小オペレーティング・システム215を提供し、これは配置マネージャ205と対話するための配置エージェント220を含む(動作「A202.ネットワーク・ブート」)。
配置エージェント220は、マス・メモリ145cを論理的に分割して複数のイメージ部分225(j=0…M、たとえばM=2〜10)およびサービス部分230にすることによって、マス・メモリ145cを初期化する。(各々がソフトウェア・イメージを保存するための)イメージ部分225は、すべてが同じサイズ(少なくともそこにインストールされ得る最大のソフトウェア・イメージのサイズに等しい)を有し、マス・メモリ145cの始めから連続して配置されるのに対し、(サービス情報を保存するための)サービス部分230はそれより小さく、マス・メモリ145cの終わりに配置される。特に、サービス部分230は、イメージ部分225の状態情報を含むイメージ・テーブル235を保存する。たとえば、各イメージ部分225に対して、イメージ・テーブル235はその利用可能性、すなわちフリーか使用中かを示すフラグを有する記録(すべてのフラグが最初にデアサートされることによって、すべてのイメージ部分225がフリーであることを示す)と、(イメージ部分225のサイズに従って算出された)マス・メモリ145c内のその始めからのイメージ部分225の位置を示すオフセットとを含む。サービス部分230は、現在アクティブのイメージ部分225のオフセットを示すオフセット・インデックス240も保存する(動作「A203.初期化」)。
配置エージェント220は、次いでサーバ・コンピュータ110から新しいソフトウェア・イメージ210のブート・ブロックの組をダウンロードする。この目的のために、配置エージェント220は、たとえばインターネット・スモール・コンピュータ・システム・インタフェース(Internet Small Computer System Interface:iSCSI)プロトコルなどに基づいて、サーバ・コンピュータ110のリモート・アクセス・サーバ245と対話するリモート・アクセス・イニシエータとして動作する。ブート・ブロックは、配置エージェント220をロードするまで新しいソフトウェア・イメージ210のブート・シーケンスを始動するために必要とされるメモリ・ブロックを含む。たとえば、マイクロソフト・ウィンドウズにおいてブート・ブロックは、(配置エージェント220に加えて)マスタ・ブート記録(Master Boot Record:MBR)と、ブート・セクタと、bootmgr.exeファイルと、boot\bcdファイルと、システム・レジストリと、winload.exeファイルと、システム・レジストリにおいて指定されるドライバ・ファイルとを含む(動作「A204.ダウンロード」)。
ここで配置エージェント220は、最初のイメージ部分225が新しいソフトウェア・イメージ210を受取るためにフリーであることを識別する(これはイメージ・テーブル235においてデアサートされた対応のフラグを有する第1のイメージ部分であるため)。その結果として、配置エージェント220はそれに従ってイメージ・テーブル235を(イメージ部分225のフラグをアサートしてそれが使用中であることを示すことによって)更新し、オフセット・インデックス240を(イメージ・テーブル235に示される新しいイメージ部分225のオフセット、この場合にはゼロに設定してこれが現在のものであることを示すことによって)更新する。さらに配置エージェント220は、ブート・ブロックのイメージ・アドレスを、イメージ・テーブル235中の現在のイメージ部分225に関連する記録にセーブする。配置エージェント220は、現在のイメージ部分225(その終わりの、新しいソフトウェア・イメージ210を保存するために確保された部分の後ろ)に、図面には示されない位置マップも作成する。ソフトウェア・イメージ210の各メモリ・ブロックに対して、位置マップはマス・メモリ145cにおけるその利用可能性を示すフラグを含む。すべてのフラグが最初にデアサートされることによって、マス・メモリ145cにおけるどのメモリ・ブロックもまだ利用可能でないことが示される(動作「A212.構成」、以下に説明されるスキップされたシーケンス番号に対応する動作を伴う)。次いで配置エージェント220は、新しいソフトウェア・イメージ210のブート・ブロックを、現在のイメージ部分225に、すなわち対応のイメージ・アドレスに現在のイメージ部分225のオフセットを加えたものに等しいマス・メモリ145c中のアドレス(メモリ・アドレスと呼ばれる)を有するマス・メモリ145cのメモリ位置に保存する。これらのブート・ブロックはグレーで示され、参照250で表示されている。同時に、位置テーブル中の対応するフラグがアサートされる(それによって、マス・メモリ145cにおいて現在そのブート・ブロックが利用可能であることが示される)。この場合には現在のイメージ部分225のオフセットがゼロであるため、ブート・ブロック250はマス・メモリ145c中で、ブート・シーケンスの際に見出されることが期待されるまさにその場所に配置される(動作「A213.保存」)。ここで配置エージェント220はクライアント・コンピュータ115をオフにしてからオンにする。
したがって、図3に示されるとおり、クライアント・コンピュータ115はマス・メモリ145cから正常にブートする。実際に、クライアント・コンピュータ115がオンになると実行されるクライアント・コンピュータ115のブート・ローダが今、マス・メモリ145cをブート可能な装置として識別するため、それは自身のブート・ブロック250から局所的にブートする。このやり方で、ブート・ブロック250に対応する新しいソフトウェア・イメージ210の実際のオペレーティング・システムの部分(参照255によって示される)および配置エージェント220がワーキング・メモリ130cにロードされる。たとえば、マイクロソフト・ウィンドウズにおいてBIOSはMBRをロードし、MBRはブート・セクタをロードし、ブート・セクタはbootmgr.exeファイルを見出して始動し、bootmgr.exeはboot\bcdファイルを見出して読取ることによってメモリ位置を決定し、次いでシステム・レジストリと、winload.exeファイルと、システム・レジストリにおいて指定されるドライバ・ファイルとをロードし、winload.exeは配置エージェント220を始動する。新しいソフトウェア・イメージ210のサイズが現在のイメージ部分225のサイズと異なる(すなわちそれより小さい)とき、配置エージェント220はそのサイズ変更も行って、現在のイメージ部分225全体が占有されるようにする。この動作は、オペレーティング・システム255の図面には示されないファイル−システム構造の更新しか必要としないため、非常に速い(動作「A214.ローカル・ブート」)。ここで、クライアント・コンピュータ115の動作中に新しいソフトウェア・イメージ210の選択されたメモリ・ブロックにアクセスするすべての要求は、(オペレーティング・システム255の図面には示されない標準的なファイル−システム・ドライバをオーバーライドする)配置エージェント220のストリーミング・ドライバによって提供される。
特に、ファイル−システム・ドライバは、たとえば図面には示されないアプリケーション・プログラムなどから、選択されたメモリ・ブロックにアクセスする(すなわちそれを読取る)ための要求を受取る(動作「A215.アクセス要求」)。この要求は配置エージェント220に送られ、配置エージェント220は選択されたメモリ・ブロックが現在のイメージ部分225において利用可能かどうかを確認する(位置マップに示されるとおり)。選択されたメモリ・ブロックが現在のイメージ部分225において利用可能でないとき(すなわち位置マップにおけるそのフラグがデアサートされているとき)、配置エージェント220はその要求をオペレーティング・システム255の図面には示されないリモート・アクセス・ドライバ(問題となる例におけるiSCSIイニシエータとして動作する)に送る。リモート・アクセス・ドライバは、リモート・アクセス・サーバ245を通じて(サーバ・コンピュータ110上の)ソフトウェア・イメージ210から選択されたメモリ・ブロックをダウンロードする。リモート・アクセス・ドライバは、次いで選択されたメモリ・ブロックを配置エージェント220に戻す(動作「A216a.ダウンロード」)。配置エージェント220は(オペレーティング・システム255の図面には示されない物理的ディスク・ドライバを通じて)現在のイメージ部分225に選択されたメモリ・ブロックを保存する。特に、選択されたメモリ・ブロックは、そのイメージ・アドレスに現在のイメージ部分225のオフセットを加えたものに等しいメモリ・アドレスを有するメモリ位置に保存される(この場合にはゼロであるそのオフセットは、オフセット・テーブル240から抽出される)。さらに、配置エージェント220はそれに従って位置マップを更新し、すなわち対応するフラグをアサートすることによって、選択されたメモリ・ブロックが利用可能であることを示す(動作「A217.保存」)。ここで配置エージェント220は選択されたメモリ・ブロックをファイル−システム・ドライバに戻し、ファイル−システム・ドライバは次にそれをアプリケーション・プログラムに戻す(動作「A218.戻す」)。
逆に、図4に示されるとおり、もし選択されたメモリ・ブロックが現在のイメージ部分225においてすでに利用可能であれば(すなわち位置マップにおけるそのフラグがアサートされていれば)、配置エージェント220はその要求を物理的ディスク・ドライバに送る。物理的ディスク・ドライバは、現在のイメージ部分225から、すなわちそのイメージ・アドレスに現在のイメージ部分225のオフセット(この場合はゼロ)を加えたものに等しいメモリ・アドレスを有するメモリ位置から選択されたメモリ・ブロックを直接検索する。物理的ディスク・ドライバは、次いで選択されたメモリ・ブロックを配置エージェント220に戻す(動作「A216b.検索」)。この場合にも、配置エージェント220は選択されたメモリ・ブロックをファイル−システム・ドライバに戻し、ファイル−システム・ドライバは次にそれをアプリケーション・プログラムに戻す(同じ動作「A218.戻す」)。
上述のストリーミング技術は、クライアント・コンピュータ115を非常に短時間のうちに使用可能にする。すなわち、たとえ配置プロセスがまだ進行中であっても、新しいソフトウェア・イメージ210のブート・ブロックがマス・メモリ145cに保存された直後(たとえば、10〜200Mバイトの典型的なサイズのブート・ブロックに対しては1〜2分後)に使用可能になる。クライアント・コンピュータ115の動作は完全に正常であり(通常どおりマス・メモリ145cから直接ブートする)、それはマス・メモリ145cにおけるソフトウェア・イメージ210の他のメモリ・ブロックが利用可能かどうかには関係せず、サーバ・コンピュータ110からなおもダウンロードされるべきであるメモリ・ブロックにアクセスするときにクライアント・コンピュータ115の性能がわずかに効率低下するだけである。さらに、クライアント・コンピュータ115を使用可能にするために必要な時間は、新しいソフトウェア・イメージ210のサイズに関係しない。ネットワークの使用量も時間とともに(たとえば対数法則によって)減少するが、これは一旦メモリ・ブロックがアクセスされると、クライアント・コンピュータ115においてより多くのメモリ・ブロックがすでに利用可能となるからである。このことに関して、このストリーミング技術は、ソフトウェア・イメージをオン・デマンドで提供するために当該技術分野において公知であるものとは無関係であることに注意すべきである。実際のところ、公知のストリーミング技術において、ソフトウェア・イメージのメモリ・ブロックは即時使用のためにのみクライアント・コンピュータにダウンロードされる。しかし、これらのメモリ・ブロックはクライアント・コンピュータに永続的に保存されない(すなわちそれらは使用後、およびいずれの場合にもクライアント・コンピュータがオフにされた後に消滅する)ため、それらを次に使用するためにはそれらを再びダウンロードする必要がある。その結果として、クライアント・コンピュータをサーバ・コンピュータから切断することは決してできない。実際には、たとえメモリ・ブロックが先取りされていても、それらは次の使用(の可能性)までしかクライアント・コンピュータ上に存続しない。同様に、たとえメモリ・ブロックに対するローカル・キャッシュが実施されていても、再使用のためにローカル・キャッシュに残るのはほんのわずかなメモリ・ブロックだけである(いずれの場合にも、ローカル・キャッシュ中の最も長時間使用されていないメモリ・ブロックは、新しいメモリ・ブロックを保存するために最終的に追い出される)。
図5を参照して、もし選択されたメモリ・ブロックが書込のために要求されれば、配置エージェント220はその要求を物理的ディスク・ドライバに送る。物理的ディスク・ドライバは現在のイメージ部分225において、すなわちそのイメージ・アドレスに現在のイメージ部分225のオフセット(この場合はゼロ)を加えたものに等しいメモリ・アドレスを有するメモリ位置において、選択されたメモリ・ブロックを直接更新し、その読取の後それは常時利用可能となる(動作「A219.更新」)。したがって、たとえ配置プロセスがまだ進行中であっても、現在のイメージ部分225は(あたかも新しいソフトウェア・イメージ210がクライアント・コンピュータ115にすでに完全に配置されていたかのように)正常に更新され得る。
まったく非同期的に、配置エージェント220は、サーバ・コンピュータ110、クライアント・コンピュータ115、またはそれらを接続するネットワーク、あるいはその組合わせの作業負荷を周期的に確認する(たとえば10〜100msごと)。作業負荷が予め定められた閾値より低い(たとえば、サーバ・コンピュータ110またはクライアント・コンピュータ115あるいはその両方において何の動作も行われておらず、ネットワーク内のトラフィックが少ないために、この時点で対応するリソースの利用が少ないことを示す)とき、配置エージェント220は上述と同じ動作を繰り返すことによって、現在のイメージ部分225においてまだ利用可能でない新しいメモリ・ブロック(たとえば、位置マップにおけるそのフラグがデアサートされている最初のメモリ・ブロック)をダウンロードする(動作「A220.ダウンロード」)。上記と同様に、配置エージェント220はこの新しいメモリ・ブロックを(物理的ディスク・ドライバを通じて)現在のイメージ部分225に、すなわちそのイメージ・アドレスに現在のイメージ部分225のオフセット(この場合はゼロ)を加えたものに等しいメモリ・アドレスを有するメモリ位置に保存する。さらに、配置エージェント220はそれに従って位置マップを更新して、新しいメモリ・ブロックが利用可能であることを示す(動作「A221.保存」)。
このやり方で、図6に示されるとおり、最後に新しいソフトウェア・イメージ210のすべてのメモリ・ブロックが(たとえそれらがまったく使用されなくても)ダウンロードされることを確実にすることができる。
あらゆる時点で、オペレータ212は、配置マネージャ205を通じて同じクライアント・コンピュータ115に配置されるべき別の新しいソフトウェア・イメージ210(たとえばソフトウェア・イメージ210)を選択してもよい(動作「A205.選択」)。それに応答して、上記と同様に配置エージェント220は、リモート・アクセス・サーバ245を通じてサーバ・コンピュータ110から新しいソフトウェア・イメージ210のブート・ブロックをダウンロードする(動作「A206.ダウンロード」)。
図7に移って、配置エージェント220は、新しいソフトウェア・イメージ210のブート位置(すなわち新しいソフトウェア・イメージ210のブート・ブロックのイメージ・アドレスに等しいメモリ・アドレスを有するメモリ位置)に保存される最初のイメージ部分225のメモリ・ブロックを再配置する。特に、これらのメモリ・ブロックはサービス部分230(の専用の再配置部分)に移され、それらは再配置メモリ・ブロック260と呼ばれる(動作「A210.再配置」)。次いで配置エージェント220は、新しいソフトウェア・イメージ210のブート・ブロックをそれらのブート位置に保存する。それらのブート・ブロックは濃いグレーで示され、参照250で表示されている。このやり方で、ここでもブート・ブロック250は、マス・メモリ145c中の、ブート・シーケンスの際に見出されることが期待されるまさにその場所に配置される。しかし、このことは最初のイメージ部分225におけるいかなる情報の損失ももたらさない。なぜなら、オーバーライドされた対応のメモリ・ブロックはサービス部分230にセーブされているからである(動作「A211.保存」)。
次いで、配置プロセスは上記とまったく同様に続く。特に、配置エージェント220は新しいソフトウェア・イメージ210を受取るためにフリーであるイメージ部分225(すなわち、問題となる例におけるイメージ部分225)を識別する。その結果、配置エージェント220はそれに従って(イメージ部分225のフラグをアサートして使用中であることを示すことによって)イメージ・テーブル235を更新し、(イメージ部分225のオフセットに設定してそれが現在のものであることを示すことによって)オフセット・インデックス240を更新する。さらに配置エージェント220は、ブート・ブロック250のイメージ・アドレスを、イメージ・テーブル235中の現在のイメージ部分225に関連する記録にセーブする。配置エージェント220は、現在のイメージ部分225に(図面には示されない)対応する位置マップも作成する(同じ動作「A212.構成」)。次いで配置エージェント220は、新しいソフトウェア・イメージ210のブート・ブロックを、現在のイメージ部分225に、すなわちそれらのイメージ・アドレスに現在のイメージ部分225のオフセットを加えたものに等しいメモリ・アドレスを有するマス・メモリ145cのメモリ位置に保存する。それらのブート・ブロックはグレーで示される(同じ動作「A213.保存」)。ここで配置エージェント220はクライアント・コンピュータ115をオフにしてからオンにする。
したがって、図8に示されるとおり、クライアント・コンピュータ115のブート・ローダはそのブート・ブロック250からブートする。このやり方で、ブート・ブロック250に対応する新しいソフトウェア・イメージ210のオペレーティング・システムの部分(参照255で示される)および配置エージェント220がワーキング・メモリ130cにロードされる(同じ動作「A214.ローカル・ブート」)。ここでも、クライアント・コンピュータ115の動作中にソフトウェア・イメージ210の選択されたメモリ・ブロックにアクセスするすべての要求は、配置エージェント220のストリーミング・ドライバによって提供される。
特に、新しいソフトウェア・イメージ210の選択されたメモリ・ブロックにアクセスする(それを読取る)ための要求(同じ動作「A215.アクセス要求」)に応答して、もし選択されたメモリ・ブロックが現在のイメージ部分225において利用可能でなければ、それはサーバ・コンピュータ110上のソフトウェア・イメージ210からダウンロードされ(同じ動作「A216a.ダウンロード」)、現在のイメージ部分225に保存され(同じ動作「A217.保存」)、次いで戻される(同じ動作「A218.戻す」)。
逆に、図9に示されるとおり、もし選択されたメモリ・ブロックが現在のイメージ部分225においてすでに利用可能であれば、それは直接検索され(同じ動作「A216b.検索」)、次いで戻される(同じ動作「A218.戻す」)。
図10を参照して、選択されたメモリ・ブロックが書込のために要求されたのであれば、それは現在のイメージ部分225において更新される(同じ動作「A219.更新」)。作業負荷が低いとき、現在のイメージ部分225においてまだ利用可能でない新しいメモリ・ブロックがダウンロードされて(同じ動作「A220.ダウンロード」)、現在のイメージ部分225に保存される(同じ動作「A221.保存」)。
(完全にダウンロードされたソフトウェア・イメージ210を示す)図11を参照して、オペレータ212はあらゆる時点で、配置マネージャ205を通じて同じクライアント・コンピュータ115に配置されるべき別の新しいソフトウェア・イメージ210(たとえばソフトウェア・イメージ210)を選択してもよい(動作「A207.選択」)。それに応答して、上記と同様に配置エージェント220は、リモート・アクセス・サーバ245を通じてサーバ・コンピュータ110から新しいソフトウェア・イメージ210のブート・ブロックをダウンロードする(動作「A208.ダウンロード」)。ここで配置エージェント220は、再配置されたメモリ・ブロック260をサービス部分230から最初のイメージ部分225に、すなわち現在のイメージ部分225のブート位置に(イメージ・テーブル235の対応の記録に示されるとおり)復元する。この動作は、オーバーライドされた現在のイメージ部分225のブート・ブロック250におけるいかなる情報の損失ももたらさない。なぜなら、(上に説明したとおりにクライアント・コンピュータ115の動作中に更新された可能性のある)それらの最新の値が現在のイメージ部分225に保存されているからである(動作「A209.復元」)。
次いで、配置プロセスは上記とまったく同様に続く。特に、図12に示されるとおり、配置エージェント220は新しいソフトウェア・イメージ210のブート位置に保存される最初のイメージ部分225のメモリ・ブロックをサービス部分230に再配置し、これらのメモリ・ブロックは参照260で示される(同じ動作「A210.再配置」)。ここで配置エージェント220は、新しいソフトウェア・イメージ210のブート・ブロックをそれらのブート位置に保存する。それらのブート・ブロックは濃いグレーで示され、参照250で表示されている(同じ動作「A211.保存」)。次いで配置エージェント220は、ソフトウェア・イメージ210を受取るためにフリーであるイメージ部分225(すなわちイメージ部分225)を識別する。その結果、配置エージェント220はそれに従って(イメージ部分225のフラグをアサートして使用中であることを示すことによって)イメージ・テーブル235を更新し、(イメージ部分225のオフセットに設定してそれが現在のものであることを示すことによって)オフセット・インデックス240を更新する。さらに配置エージェント220は、ブート・ブロック250のイメージ・アドレスを、イメージ・テーブル235中の現在のイメージ部分225に関連する記録にセーブする。配置エージェント220は、現在のイメージ部分225に(図面には示されない)対応する位置マップも作成する(同じ動作「A212.構成」)。次いで配置エージェント220は、新しいソフトウェア・イメージ210のブート・ブロックを、現在のイメージ部分225に保存する。それらのブート・ブロックはグレーで示される(同じ動作「A213.保存」)。ここで配置エージェント220は、クライアント・コンピュータ115をオフにしてからオンにすることでそれを自身のブート・ブロック250からブートさせ、それによってブート・ブロック250に対応するソフトウェア・イメージ210のオペレーティング・システムの部分、および新しいソフトウェア・イメージ210のあらゆる選択されたメモリ・ブロックにアクセスするすべての要求を提供する配置エージェントをワーキング・メモリ130cにロードする(同じ動作「A214.ローカル・ブート」)。
いずれの場合にも、クライアント・コンピュータへの1つまたはそれ以上のソフトウェア・イメージの配置が一旦完了すると、それはもはやサーバ・コンピュータを何ら必要とすることなく自律的に作業できる。しかし、配置プロセスの際に用いられたのと同じストリーミング技術を利用して、クライアント・コンピュータのスナップショットを作成することもできる(各スナップショットは、特定の時点におけるそのソフトウェア・イメージの整合性のあるバックアップ・コピーによって形成される)。
特に、図13〜図17は、本発明の実施形態に従うスナップショット・プロセスを実施するために使用可能な主要ソフトウェア構成要素(全体として参照300によって示される)の役割を表す協調図を示す。
図13から始めて、たとえば、クライアント・コンピュータ115においてイメージ部分225および225に2つのソフトウェア・イメージが保存されているという状況を考えてみる。イメージ部分225が現在のものであり、そのブート・ブロック250は最初のイメージ部分225におけるそのブート位置にも保存される(最初のイメージ部分225の対応の再配置メモリ・ブロック260はサービス部分230にセーブされている)。クライアント・コンピュータ115のユーザは、対応するソース・イメージ部分225、たとえばソース・ソフトウェア・イメージ210を保存するソース・イメージ部分225などにソース・ソフトウェア・イメージの新しいスナップショットを作成するためのコマンドを提出してもよい(動作「A301.作成」)。それに応答して、配置エージェント220は最初にソース・ソフトウェア・イメージ210を受取るためにフリーである目標イメージ部分225(たとえば、問題となる例におけるイメージ部分225)を識別する。次いで配置エージェント220は、ソース・ソフトウェア・イメージ210全体を目標イメージ部分225にコピーする。より具体的には、ソース・ソフトウェア・イメージ210の(対応する現在のイメージ・アドレスを有する)現在のメモリ・ブロックすべてに対して、もしソース・イメージ部分225が(この場合のように)最初のものであれば、配置エージェント220は現在のメモリ・ブロックがサービス部分230に再配置された(すなわち、イメージ・テーブル235におけるその記録に示されるとおり、現在のイメージ・アドレスが現在のソフトウェア・イメージ225のブート位置の1つのイメージ・アドレスに等しい)かどうかを確認する。もしそうであれば、対応する再配置メモリ・ブロック260が目標イメージ部分225の、現在のイメージ・アドレスに目標イメージ部分225のオフセットを加えたものに等しいメモリ・アドレスを有するメモリ位置にコピーされる。逆に(すなわち、現在のメモリ・ブロックが再配置されていないとき、またはソース・イメージ部分が最初のものではないときは常に)、現在のメモリ・ブロックがソース・イメージ部分225から目標イメージ部分225にコピーされる。すなわち、現在のイメージ・アドレスにソース・イメージ部分225のオフセットを加えたものに等しいメモリ・アドレスを有するメモリ位置から、現在のイメージ・アドレスに目標イメージ部分225のオフセットを加えたものに等しいメモリ・アドレスを有するメモリ位置にコピーされる(動作「A302.コピー」)。一旦ソース・ソフトウェア・イメージ210全体が目標イメージ部分225にコピーされると、配置エージェント220はそれに従って、目標イメージ部分225のフラグをアサートして使用中であることを示し、ソース・ソフトウェア・イメージ210のブート・ブロックの同じイメージ・アドレスをセーブすることによって、イメージ・テーブル235を更新する(動作「A303.更新」)。したがって、ソフトウェア・イメージのスナップショットを作成する動作はかなり遅い(その長さはコピーされるソース・ソフトウェア・イメージのサイズに比例する)。
図14に移って、クライアント・コンピュータ115のユーザは、(対応する古いイメージ部分225中の)古いソフトウェア・イメージを削除するためのコマンドを配置エージェント220に提出してもよい。古いソフトウェア・イメージの削除後のクライアント・コンピュータ115の動作の継続性を確実にするために、古いイメージ部分225は現在のイメージ部分225とは異なる、たとえばイメージ部分225などであるべきである(動作「A303.削除」)。それに応答して、配置エージェント220は古いイメージ部分225のフラグをアサートし、それがフリーであることを示すことによってイメージ・テーブル235を単に更新する(動作「A304.更新」)。したがって、ソフトウェア・イメージを削除する動作は非常に速い(そのメモリ・ブロックに対する実際の動作を何も必要としないため)。さらに、たとえ削除されるイメージ部分が最初のものであっても、この動作は何の問題も起こさない(現在のイメージ部分225に保存されるブート・ブロックは影響されないため)。
図15を参照して、代わりにクライアント・コンピュータ115のユーザは、現在のソフトウェア・イメージ225から別(前)のソフトウェア・イメージ225へ、たとえばソフトウェア・イメージ225などへ切換えるためのコマンドを提出してもよい(動作「A305.切換」)。それに応答して、上記と同様に配置エージェント220は再配置メモリ・ブロック260をサービス部分230から最初のイメージ部分225に、すなわち現在のイメージ部分225のブート位置に復元する(動作「A306.復元」)。
図16に移って、配置エージェント220は、前のソフトウェア・イメージ210のブート位置に保存される最初のイメージ部分225のメモリ・ブロックをサービス部分230に再配置し、それらのメモリ・ブロックは参照260で示される(動作「A307.再配置」)。次いで配置エージェント220は前のソフトウェア・イメージ210のブート・ブロックをそれらのブート位置にコピーする。それらのブート・ブロックはグレーで示され、参照250で表示されている(動作「A308.コピー」)。次いで配置エージェント220は、オフセット・インデックス240を前のイメージ部分225のオフセットに設定してそれが現在のものとなったことを示すことによって、オフセット・インデックス240を更新できる(動作「A309.更新」)。ここで配置エージェント220は、クライアント・コンピュータ115をオフにしてからオンにすることでそれを自身のブート・ブロック250からブートさせ、それによってブート・ブロック250に対応する前のソフトウェア・イメージ210のオペレーティング・システムの部分、および配置エージェントをワーキング・メモリ130cにロードする(動作「A310.リブート」)。
図17を考慮すると、いずれの場合にも、クライアント・コンピュータ115の動作中に現在のソフトウェア・イメージ210の選択されたメモリ・ブロックにアクセスするすべての要求は、ここでも(オペレーティング・システム255の図面には示されない標準的なファイル−システム・ドライバをオーバーライドする)配置エージェント220のストリーミング・ドライバによって提供される。
特に、ファイル−システム・ドライバは、たとえば図面には示されないアプリケーション・プログラムなどから、選択されたメモリ・ブロックにアクセスする(それを読取るかまたは書込む)ための要求を受取る(動作「A311.アクセス要求」)。この要求は配置エージェント220に送られ、配置エージェント220は(オペレーティング・システム255の図面には示されない物理的ディスク・ドライバを通じて)現在のイメージ部分225中の選択されたメモリ・ブロックに、すなわち選択されたメモリ・ブロックのイメージ・アドレスに現在のイメージ部分225のオフセットを加えたものに等しいメモリ・アドレスを有するメモリ位置に直接アクセスする(動作「A312.アクセス」)。
上述の技術は、クライアント・コンピュータ上の複数のソフトウェア・イメージを非常に簡単なやり方で管理することを可能にする。さらに、異なるソフトウェア・イメージは互いに完全に分離される。実際のところ、各ソフトウェア・イメージは対応するイメージ部分にしかアクセスできない(それによって他のイメージ部分を損なうあらゆる危険を防止する)。
この結果は、仮想化インフラストラクチャを何ら必要とせずに達成される。したがって、クライアント・コンピュータの性能は悪影響を受けない。実際に、この場合にはソフトウェア・イメージ(すなわちそれらが保存されるマス・メモリ)のみが仮想化される。反対に、オペレーティング・システムはクライアント・コンピュータ上でネイティブに実行され続ける。
特に、このことによってスナップショットを非常に速く復元できる(それはすでにクライアント・コンピュータ上で利用可能であるため)。さらに、ネットワーク接続を何ら必要とせずに所望の結果が達成され得る。
図18に移ると、本発明の実施形態に従う解決策において用いられる一般的なソフトウェア・イメージの準備プロセスを実施するために使用可能な主要ソフトウェア構成要素(全体として参照400によって示される)の役割を表す協調図が示される。特に、この準備プロセスは、(上述の配置プロセスまたはスナップショット・プロセスの際に用いられる)ソフトウェア・イメージのブート・ブロックを識別することを目的とする。
この目的のために、サーバ・コンピュータ110はマスタ・ソフトウェア・イメージ(または単にマスタ・イメージ)405のリポジトリを含む。各マスタ・イメージ405は、(たとえば、それが前にインストールされたドナー・クライアント・コンピュータのハードディスクの内容を取込むことによって作成される)対応するソフトウェア・イメージの基本バージョンを提供し、そこではドナー・クライアント・コンピュータのあらゆる構成に関する特定の内容(たとえばドライバおよびレジストリ設定など)が除去されている。サーバ・コンピュータ110はモデル410のリポジトリも含む。各モデル410は代わりにクライアント・コンピュータの対応する構成に対して特定的な内容を含む。
オペレータ212は、配置マネージャ205を通じて(対応する補助クライアント・コンピュータ115によって表される)クライアント・コンピュータの特定のタイプに対するソフトウェア・イメージ(選択されたマスタ・イメージ405および選択されたモデル410を含む)を選択する(動作「A401.選択」)。それに応答して、配置マネージャ205は選択されたソフトウェア・イメージの識別子を送ることによって、補助クライアント・コンピュータ115上の配置エージェント220をウェイクアップする(動作「A402.ウェイクアップ」)。その結果、配置エージェント220は、リモート・アクセス・サーバ245を通じて遠隔的にアクセスするためのリモート・ディスクとして(すなわち問題となる例におけるiSCSIイニシエータとして動作することによって)選択されたソフトウェア・イメージをマウントする。その結果、補助クライアント・コンピュータ115による排他的アクセスのための一時的ソフトウェア・イメージ(または単に一時的イメージ)415が作成される。一時的イメージ415は、単に選択されたマスタ・イメージ405および選択されたモデル410のメモリ・ブロックを指すインデックス構造によって、つまりその何らかのコピーを作成することなく定められる。一時的イメージ415は有効にされたブロック追跡機能とともにマウントされることによって、アクセスされる一時的イメージ415のあらゆるメモリ・ブロックのイメージ・アドレスが追跡される(動作「A403.マウント」)。
ここで配置エージェント220は、(配置エージェントのロードまでの)一時的イメージ415上の補助クライアント・コンピュータ115のブート・シーケンスをシミュレートする。たとえば、マイクロソフト・ウィンドウズにおいて配置エージェント220はMBRと、ブート・セクタと、bootmgr.exeファイルと、boot\bcdファイルと、システム・レジストリと、winload.exeファイルと、システム・レジストリにおいて指定されるドライバ・ファイルと、配置エージェントとを読取る(動作「A404.シミュレートされたブート」)。シミュレートされたブート・シーケンスが完了すると、配置エージェント220は一時的イメージ415をアンマウントする(動作「A405.アンマウント」)。次いで配置エージェント220は一時的イメージ415を配置マネージャ205にコミットする(動作「A406.コミット」)。それに応答して、配置マネージャ205は(単にそのインデックス構造によって定められる)一時的イメージ415から新しいソフトウェア・イメージ(または単に新しいイメージ)420を構築する。さらに、新しいイメージ420はシミュレートされたブート手順の間にアクセスされたメモリ・ブロックのリストに関連しており、このメモリ・ブロックは対応するブート・ブロックを定める(動作「A407.構築」)。
当然ながら、ローカルおよび特定の要求を満たすために、当業者は上述の解決策に多くの論理的または物理的あるいはその両方の修正および変更を適用してもよい。より特定的には、この解決策はその1つまたはそれ以上の実施形態を参照してある程度詳細に説明されているが、(たとえば数値および構成に関して)その形および詳細におけるさまざまな省略、置換および変更、ならびに他の実施形態が可能であることが理解されるべきである。特に、本発明のより完全な理解を提供するために先の記載に示されている特定の詳細なしに、本発明の異なる実施形態が実施されてもよい。反対に、不必要な詳細によって説明を曖昧にしないために、周知の特徴が省略または簡略化されていることがある。さらに、開示される解決策のあらゆる実施形態と関連して記載される特定の構成要素または方法ステップあるいはその両方は、一般的な設計選択の問題としてあらゆる他の実施形態に組込まれてもよいことが明確に意図されている。
たとえば、(より多くのステップもしくはその部分と同じ機能を有する類似のステップを用いること、必須でないいくつかのステップを除去すること、またはさらなる任意のステップを加えることによって)もし同じ解決策が同等の方法によって実施されれば、類似の考察が適用される。さらに、これらのステップは(少なくとも部分的に)異なる順序で行われても、同時または交互に行われてもよい。
ソフトウェア・イメージは、あらゆるソフトウェア・プログラム(たとえば、何らかのアプリケーション・プログラムを有さないオペレーティング・システムのみ)を含んでもよい。さらに、提案される技術は物理的コンピュータにおける使用のために特定的に設計されているが、仮想マシンにおけるその適用も除外されない。加えて、アクセス機能を提供するためにあらゆる同等の構造が用いられてもよい。いずれの場合にも、あらゆるブート・シーケンスを有するあらゆるその他のオペレーティング・システムに同じ技術が適用されてもよい。たとえば、Linux(リーナス・トーバルズ(Linus Torvalds)の商標)において、ブート・ブロックは(配置エージェントに加えて)GRBUブート・ローダを含むMBRと、カーネルおよびinitrdファイル・システムを含む/bootディレクトリとを含む。この場合、ブート・シーケンスの際にBIOSがGRBUを含むMBRをロードし、GRBUは/bootディレクトリを見出してカーネルおよびinitrdファイル・システムをロードし、GRBUはカーネルをブートし、カーネルはinitrdファイル・システムを始動し、initrdファイル・システムは配置エージェントを始動する。
クライアント・コンピュータが別のソフトウェア・イメージに切換えられたときに再配置メモリ・ブロックを復元するステップは、厳密に必要なものではない。たとえば、最初のものと異なるすべてのソフトウェア・イメージのブート位置のメモリ・ブロックを再配置部分に再配置し、次いでクライアント・コンピュータが最初のソフトウェア・イメージに切換えられたときにのみそれらすべてを同時に復元することも可能である(それによって切換動作が速くなるが、マス・メモリ・スペースの無駄が生じる)。
いずれの場合にも、ブート位置はマス・メモリ内のいずれの位置に配置されてもよい。
イメージ部分は同等のやり方で管理されてもよい。たとえば、(作成されるときに動的に定められる)異なるサイズを有するイメージ部分を有することが可能である。
さらに、イメージ部分の状態情報を管理するために同等の構造が用いられてもよい(たとえば、その各イメージ区画がその利用可能性の標識を直接含む)。
先行する説明では、1つまたはそれ以上のソフトウェア・イメージが完全にインストールされた(すなわちネットワーク接続が必要でない)ときにクライアント・コンピュータ上で実施されるスナップショット・プロセスを参照したが、(クライアント・コンピュータがそこに復帰したときに再始動するソフトウェア・イメージの配置を伴う)クライアント・コンピュータのマス・メモリに部分的にのみ保存されたソフトウェア・イメージにも同じ技術が適用されてもよい。
代替的な実施においては、配置エージェントが、対応するオペレーション・システムにそのサイズが現在のソフトウェア・イメージのサイズと等しいと信じさせることによって、現在のイメージ部分を管理する(そのいかなるサイズ変更も伴わないが、対応するマス・メモリ・スペースの無駄を伴う)。
ソフトウェア・イメージは、あらゆる外部ソース(たとえば取り外し可能な記憶装置など)から上述のストリーミング技術によって配置されてもよい。加えて、マス・メモリにおけるメモリ・ブロックの利用可能性を管理するためにあらゆる同等の構造が用いられてもよい(たとえば、位置マップをチャンクに分割してそれらがクライアント・コンピュータのワーキング・メモリにロードされることを可能にすることなどによる)。代替的には、ソフトウェア・イメージが完全にダウンロードされた後も常にストリーミング・プロセスをアクティブに維持することも可能である(たとえば、位置マップ中の対応のフラグのリセットに応答してメモリ・ブロックの最新バージョンをダウンロードするため)。
いずれの場合にも、提案される技術は、ソフトウェア・イメージがいかにしてクライアント・コンピュータに配置されたかにはまったく依存しない(たとえば何らかのサーバ・コンピュータなしに手動で配置されてもよい)。
対応するソフトウェア・イメージの配置の際にブート・ブロックをそれらのブート位置にのみコピーする(クライアント・コンピュータが別のソフトウェア・イメージに切換えられるときにのみブート・ブロックがそのイメージ部分にセーブされる)可能性も排除されない。
代替的には、(配置エージェントを何ら通すことなく)物理的ディスク・ドライバによってメモリ・ブロックの書込を直接管理することが可能である。
作業負荷はあらゆる他の頻度でモニタされても、特定の期間(たとえば夜間)にのみモニタされてもよい。クライアント・コンピュータ、サーバ・コンピュータ、ネットワーク、またはそのあらゆる組合わせに対してのみ作業負荷がモニタされるときにも類似の考察が適用される。さらに、作業負荷に対する閾値はあらゆるその他のやり方で(たとえば、異なる重みによってその寄与を計量することによって)定められてもよい。作業負荷が閾値よりも低くなるときに2つまたはそれ以上のメモリ・ブロックが同時にダウンロードされるときにも類似の考察が適用される。いずれの場合にも、ストリーミング・プロセスが常にアクティブのままであるときには、この特徴は除外されてもよい。
ソフトウェア・イメージは異なるやり方で準備されてもよい(たとえば、補助クライアント・コンピュータを実際にブートして、ブート・シーケンスの間にアクセスされるメモリ・ブロックを追跡することによってそのブート・ブロックを識別することによるものなど)。
(本発明の各実施形態を実施するために用いられ得る)プログラムが異なるやり方で構築されても、または付加的なモジュールもしくは機能が与えられても、類似の考察が適用される。同様に、メモリ構造は他のタイプのものであってもよいし、同等のエンティティ(必ずしも物理的記憶媒体からなっていなくてもよい)によって置換されてもよい。プログラムは、あらゆるデータ処理システムによって用いられるために好適であるか、またはそれに関連するあらゆる形を取ってもよい(たとえば仮想マシン内など)。特に、プログラムは外部もしくは常駐のソフトウェア、ファームウェア、またはマイクロコード(たとえばコンパイルまたは解釈されるべきオブジェクト・コードまたはソース・コード)の形であってもよい。さらに、あらゆるコンピュータ使用可能媒体において実施される製造品としてプログラムを提供することが可能である。その媒体は、プログラムを包含、保存、通信、伝搬、または転送するために好適なあらゆる構成要素であってもよい。たとえば、その媒体は電子、磁気、光学、電磁気、赤外、または半導体のタイプのものであってもよい。こうした媒体の例は、(プログラムをプレロードできる)固定ディスク、リムーバブル・ディスク、テープ、カード、ワイヤ、ファイバ、無線接続、ネットワーク、放送波などである。いずれの場合にも、本発明の実施形態に従う解決策は、ハードウェア構造(たとえば半導体材料のチップに集積されたもの)、または別様で構成されたものに好適にプログラムされたソフトウェアおよびハードウェアの組合わせによる実施にも適する。
代替的には、このシステムは異なる構造を有するか、同等の構成要素を含むか、または他の動作特徴を有する。いずれの場合にも、そのあらゆる構成要素がもっと多くの構成要素に分割されてもよいし、2つまたはそれ以上の構成要素が組合わされて単一の構成要素になってもよい。さらに、対応する動作の並行した実行を支持するために、各構成要素が複製されてもよい。異なる構成要素間のあらゆる対話は(別様に指定されない限り)一般的に継続的である必要はなく、対話は直接的であっても、1つまたはそれ以上の仲介物を通じた間接的なものであってもよいことが指摘される。特に、このシステムは異なるアーキテクチャ(たとえば、広域ネットワーク、グローバル・ネットワーク、セルラー・ネットワーク、または衛星ネットワークなど)に基づいていてもよく、あらゆるタイプの(有線または無線あるいはその両方の)接続を利用してもよい。いずれの場合にも、各コンピュータは別の構造を有してもよいし、類似の構成要素(たとえばプログラムまたはその部分を一時的に保存するキャッシュ・メモリなど)を含んでもよい。さらに、コンピュータをあらゆるコード実行エンティティ(たとえばPDA、携帯電話など)、または複数のエンティティの組合わせによって置換することが可能である。
A308 コピー
A309 更新
A310 リブート
115 クライアント・コンピュータ
130c ワーキング・メモリ
145c マス・メモリ
220 配置エージェント
2251−3 イメージ部分
230 サービス部分
235 イメージ・テーブル
240 オフセット・インデックス
250 ブート・ブロック
255 オペレーティング・システム
260 再配置メモリ・ブロック

Claims (14)

  1. 複数のメモリ位置を有するマス・メモリを含むデータ処理エンティティ中で複数のソフトウェア・イメージを管理するための方法であって、前記複数のメモリ位置の各々がマス・メモリ内の対応するメモリ・アドレスを有し、ソフトウェア・イメージの各々が、前記ソフトウェア・イメージ内の対応するイメージ・アドレスを有する複数のメモリ・ブロックを含み、前記方法は、
    前記複数のソフトウェア・イメージの各ソフトウェア・イメージの前記メモリ・ブロックの少なくとも部分を前記マス・メモリの対応するイメージ部分それぞれに保存するステップであって、各メモリ・ブロックは前記対応するイメージ・アドレスに前記マス・メモリ内の前記対応するイメージ部分のオフセットを加えたものに等しい前記メモリ・アドレスを有する前記メモリ位置に保存される、前記保存するステップと、
    前記データ処理エンティティに格納されている別のソフトウェア・イメージが選択されることに応じて、前記選択された別のソフトウェア・イメージ(以下、「別のソフトウェア・イメージ」という)のブート位置に保存された前記メモリ・ブロックを前記マス・メモリの再配置部分に再配置するステップであって、前記別のソフトウェア・イメージの前記ブート位置は、前記別のソフトウェア・イメージにアクセスするために適合されるアクセス機能をロードするまで前記データ処理エンティティをブートするために必要とされる前記メモリ・ブロックを含む前記別のソフトウェア・イメージのブート・ブロックの前記イメージ・アドレスに等しい前記メモリ・アドレスを有する前記メモリ位置である、前記再配置するステップと、
    前記別のソフトウェア・イメージの前記ブート・ブロックを前記対応するブート位置にコピーするステップと、
    前記対応するブート位置における前記別のソフトウェア・イメージの前記ブート・ブロックから前記データ処理エンティティをブートすることによって前記アクセス機能をロードするステップと、
    前記アクセス機能によって、前記別のソフトウェア・イメージの選択されたメモリ・ブロックにアクセスする各要求を提供するステップであって、前記アクセス機能は、前記対応するイメージ・アドレスに前記別のソフトウェア・イメージを保存しているイメージ部分(以下、「別のイメージ部分」という)の前記オフセットを加えたものに等しい前記メモリ・アドレスを有する前記メモリ位置における前記選択されたメモリ・ブロックにアクセスする、前記提供するステップと
    を含む、前記方法。
  2. 前記別のソフトウェア・イメージの前記ブート位置に保存された前記メモリ・ブロックを前記再配置部分に再配置するステップの前に、前のソフトウェア・イメージの前記ブート位置から前記再配置部分に再配置されていた前記メモリ・ブロックを前記前のソフトウェア・イメージの前記ブート位置に復元するステップ
    をさらに含む、請求項1に記載の方法。
  3. 前記対応するイメージ部分はゼロのオフセットを有する最初のイメージ部分を含み、前記最初のイメージ部分にはすべての前記対応するイメージ部分の前記ブート位置が含まれ、前記別のソフトウェア・イメージの前記ブート位置に保存された前記メモリ・ブロックを再配置するステップと、前記別のソフトウェア・イメージの前記ブート・ブロックをコピーするステップとは、前記別のイメージ部分が前記最初のイメージ部分と異なるときにのみ行われる、請求項1または2に記載の方法。
  4. スナップショットとなるためのソース・イメージ部分に保存されたソース・ソフトウェア・イメージを選択するステップと、
    前記ソース・ソフトウェア・イメージの各メモリ・ブロックをフリーであるイメージ部分にコピーするステップであって、前記ソース・ソフトウェア・イメージの前記メモリ・ブロックは、前記再配置部分に再配置されたときには前記再配置部分から、別様では前記ソース・イメージ部分からコピーされる、前記コピーするステップと
    をさらに含む、請求項1〜3のいずれか1項に記載の方法。
  5. 削除されるべき古いイメージ部分に保存された古いソフトウェア・イメージを選択するステップと、
    前記古いイメージ部分をフリーと設定するステップと
    をさらに含む、請求項1〜4のいずれか1項に記載の方法。
  6. 各ソフトウェア・イメージのすべての前記メモリ・ブロックが前記対応するイメージ部分に保存される、請求項1〜5のいずれか1項に記載の方法。
  7. 前記別のソフトウェア・イメージの前記ブート・ブロックから前記データ処理エンティティをブートする前記ステップは、
    前記別のイメージ部分のサイズに従って前記アクセス機能によって前記別のソフトウェア・イメージのサイズ変更を行うステップ
    を含む、請求項1〜6のいずれか1項に記載の方法。
  8. 前記保存するステップが、
    外部ソースから前記データ処理エンティティの新しいイメージ部分への新しいソフトウェア・イメージの配置を要求するステップと、
    前記外部ソースから前記データ処理エンティティに前記新しいソフトウェア・イメージの前記ブート・ブロックをダウンロードするステップと、
    前記新しいソフトウェア・イメージの前記ブート位置に保存された前記メモリ・ブロックを前記再配置部分に再配置するステップと、
    前記新しいソフトウェア・イメージの前記ブート・ブロックを前記対応するブート位置にコピーするステップと、
    前記対応するブート位置における前記新しいソフトウェア・イメージの前記ブート・ブロックから前記データ処理エンティティをブートすることによって前記アクセス機能をロードするステップと、
    前記アクセス機能によって、前記新しいソフトウェア・イメージのさらに選択されたメモリ・ブロックにアクセスする各要求を提供するステップであって、前記アクセス機能は、
    前記さらに選択されたメモリ・ブロックが前記マス・メモリにないことに応答して、前記外部ソースから前記さらに選択されたメモリ・ブロックをダウンロードして、前記さらに選択されたメモリ・ブロックを、前記対応するイメージ・アドレスに前記新しいイメージ部分の前記オフセットを加えたものに等しい前記メモリ・アドレスを有する前記メモリ位置に保存するステップ;又は
    前記対応するイメージ・アドレスに前記新しいイメージ部分の前記オフセットを加えたものに等しい前記メモリ・アドレスを有する前記メモリ位置から前記さらに選択されたメモリ・ブロックを検索するステップ
    を実行する、前記提供するステップと
    含む、請求項1〜7のいずれか1項に記載の方法。
  9. 前記保存するステップが、
    前記新しいソフトウェア・イメージの前記ブート位置に保存された前記メモリ・ブロックを再配置するステップの前に、前のソフトウェア・イメージの前記ブート位置から前記再配置部分に再配置されていた前記メモリ・ブロックを前記前のソフトウェア・イメージの前記ブート位置に復元するステップ
    をさらに含む、請求項8に記載の方法。
  10. 前記保存するステップが、
    前記対応するイメージ・アドレスに前記新しいイメージ部分の前記オフセットを加えたものに等しい前記メモリ・アドレスを有する前記メモリ位置に、前記新しいソフトウェア・イメージの前記ブート・ブロックをコピーするステップ
    をさらに含む、請求項8または9に記載の方法。
  11. 前記保存するステップが、
    前記データ処理エンティティの作業負荷をモニタするステップと、
    前記作業負荷が閾値よりも低くなったことに応答して、前記外部ソースから前記マス・メモリに保存されていない新しいメモリ・ブロックの組をダウンロードして、前記新しいメモリ・ブロックを、前記対応するイメージ・アドレスに前記新しいイメージ部分の前記オフセットを加えたものに等しい前記メモリ・アドレスを有する前記メモリ位置に保存するステップ
    をさらに含む、請求項〜10のいずれか1項に記載の方法。
  12. 前記アクセス機能の前記ロードまでの前記ソフトウェア・イメージからの補助データ処理エンティティのブート・シーケンスをシミュレートするステップであって、前記ソフトウェア・イメージの各メモリ・ブロックは前記ブート・シーケンスが追跡される際にアクセスされる、前記シミュレートするステップと、
    前記追跡されたメモリ・ブロックに従って前記ソフトウェア・イメージの前記ブート・ブロックを識別するステップと
    によって各ソフトウェア・イメージを準備するステップ
    をさらに含む、請求項1〜11のいずれか1項に記載の方法。
  13. データ処理システムに、請求項1〜12のいずれか1項に記載の方法の各ステップを実行させる、コンピュータ・プログラム。
  14. コンピュータ・システムであって、請求項1〜12のいずれか1項に記載の方法の各ステップを行うための手段を備えている、前記コンピュータ・システム。
JP2011252538A 2010-12-14 2011-11-18 ブート・ブロックの再配置によって複数のソフトウェア・イメージを管理するための方法、コンピュータ・プログラムおよびシステム Expired - Fee Related JP5649184B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP10194866 2010-12-14
EP10194866.9 2010-12-14

Publications (3)

Publication Number Publication Date
JP2012128841A JP2012128841A (ja) 2012-07-05
JP2012128841A5 JP2012128841A5 (ja) 2014-08-07
JP5649184B2 true JP5649184B2 (ja) 2015-01-07

Family

ID=46200626

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011252538A Expired - Fee Related JP5649184B2 (ja) 2010-12-14 2011-11-18 ブート・ブロックの再配置によって複数のソフトウェア・イメージを管理するための方法、コンピュータ・プログラムおよびシステム

Country Status (3)

Country Link
US (1) US8527728B2 (ja)
JP (1) JP5649184B2 (ja)
CN (1) CN102567042B (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9230118B2 (en) 2010-12-09 2016-01-05 International Business Machines Corporation Encrypting and decrypting a virtual disc

Families Citing this family (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8996667B2 (en) 2010-04-27 2015-03-31 International Business Machines Corporation Deploying an operating system
DE112011103880T5 (de) 2010-11-23 2013-08-22 International Business Machines Corporation Direktes Migrieren von Software-Abbildern mit Streaming-Technik
JP5911504B2 (ja) 2010-12-13 2016-05-11 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ストリーミング技術に基づくソフトウェア・イメージのアップグレード
JP5767565B2 (ja) 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
US9092596B2 (en) * 2012-05-11 2015-07-28 Onyx Protected Systems, Llc Computer system for preventing the disabling of content blocking software functionality therein, and method therefor
US9858083B2 (en) * 2013-03-14 2018-01-02 Microchip Technology Incorporated Dual boot panel SWAP mechanism
US9733977B2 (en) 2013-05-31 2017-08-15 Nec Corporation Distributed processing system, distributed processing device, distributed processing method, and distributed processing program
EP3028141B1 (en) * 2013-07-31 2020-01-08 Hewlett-Packard Development Company, L.P. Generating a second code from a first code
US10146657B2 (en) * 2014-03-26 2018-12-04 Intel Corporation Initialization trace of a computing device
JP6258135B2 (ja) * 2014-06-25 2018-01-10 株式会社東芝 情報処理装置および動作制御方法
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US9852147B2 (en) 2015-04-01 2017-12-26 Dropbox, Inc. Selective synchronization and distributed content item block caching for multi-premises hosting of digital content items
US9922201B2 (en) 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US9571573B1 (en) 2015-10-29 2017-02-14 Dropbox, Inc. Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
CN105589721A (zh) * 2015-12-22 2016-05-18 国云科技股份有限公司 一种批量更新Linux虚拟机***补丁的方法
US9537952B1 (en) * 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
US10019252B1 (en) * 2016-04-07 2018-07-10 Nutanix, Inc. Virtualizing installers
CN107688474B (zh) * 2016-08-04 2021-05-07 斑马智行网络(香港)有限公司 启动方法、生成内核镜像的方法及装置
US10713060B2 (en) * 2018-08-02 2020-07-14 Micron Technology, Inc. Configurable option ROM
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface
CN111258681B (zh) * 2020-02-16 2022-06-07 苏州浪潮智能科技有限公司 一种BeeGFS服务启动方法和装置
CN111666082B (zh) * 2020-06-05 2021-01-12 北京元心科技有限公司 一种外设固件加载方法、控制设备及计算机可读存储介质
US11163551B1 (en) * 2020-10-13 2021-11-02 Argo AI, LLC Systems and methods for improved smart infrastructure data transfer
TWI796904B (zh) * 2021-12-28 2023-03-21 宏碁股份有限公司 還原方法及系統
CN116028128B (zh) * 2023-03-27 2023-06-23 广东汉为信息技术有限公司 磁盘分区存储方法、操作***自动化恢复方法和存储介质
CN116149799A (zh) * 2023-04-17 2023-05-23 新云网科技集团股份有限公司 一种虚拟镜像制作方法、***、电子设备及介质

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6098158A (en) 1997-12-18 2000-08-01 International Business Machines Corporation Software-enabled fast boot
US6567774B1 (en) 1998-01-30 2003-05-20 Compaq Computer Corporation Method and system for configuring and updating networked client stations using a virtual disk and a snapshot disk
JP3330569B2 (ja) * 1999-09-28 2002-09-30 インターナショナル・ビジネス・マシーンズ・コーポレーション コンピュータの制御方法、コンピュータ及び記録媒体
US6973447B1 (en) * 2000-03-23 2005-12-06 International Business Machines Corporation System apparatus and method for supporting multiple partitions including multiple systems in boot code
US8140683B2 (en) * 2000-12-07 2012-03-20 International Business Machines Corporation Method and system for selecting an operating system at user login on a target device
US20030126242A1 (en) 2001-12-28 2003-07-03 Chang Albert H. Network boot system and method using remotely-stored, client-specific boot images created from shared, base snapshot image
US6857011B2 (en) * 2002-10-31 2005-02-15 Paragon Development Systems, Inc. Method of remote imaging
JP4604543B2 (ja) * 2004-04-30 2011-01-05 日本電気株式会社 計算機、計算機起動方法、管理サーバ装置およびプログラム
US7536541B2 (en) 2006-03-07 2009-05-19 Novell Inc. Parallelizing multiple boot images with virtual machines
US8234359B2 (en) * 2006-05-24 2012-07-31 Absolute Software Corp. System and method for remotely re-imaging a computer system
JP4725798B2 (ja) 2006-06-21 2011-07-13 日本電気株式会社 コンピュータシステム、ネットワークブートシステム、osイメージ切替方法、osイメージ切替プログラム
US7809919B2 (en) * 2006-07-26 2010-10-05 Hewlett-Packard Development Company, L.P. Automatic data block misalignment detection and correction in a computer system utilizing a hard disk subsystem
JP4366698B2 (ja) 2006-07-27 2009-11-18 日本電気株式会社 計算機、計算機システム、及びディスクイメージ配布方法
US8245022B2 (en) 2007-06-01 2012-08-14 Dell Products L.P. Method and system to support ISCSI boot through management controllers
US20090049160A1 (en) 2007-08-14 2009-02-19 Dell Products L.P. System and Method for Deployment of a Software Image
CN100578461C (zh) * 2008-03-12 2010-01-06 中兴通讯股份有限公司 一种引导程序的备份方法及其备份装置
JP5290287B2 (ja) * 2008-05-29 2013-09-18 株式会社シー・オー・コンヴ ネットワークブートシステム
US8429639B2 (en) * 2009-02-10 2013-04-23 Microsoft Corporation Image-based software update
US8490088B2 (en) * 2010-09-10 2013-07-16 International Business Machines Corporation On demand virtual machine image streaming
JP2012123762A (ja) * 2010-12-10 2012-06-28 Canon Inc 情報処理装置及び情報処理方法
JP5767565B2 (ja) * 2010-12-14 2015-08-19 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9230118B2 (en) 2010-12-09 2016-01-05 International Business Machines Corporation Encrypting and decrypting a virtual disc
US9230113B2 (en) 2010-12-09 2016-01-05 International Business Machines Corporation Encrypting and decrypting a virtual disc
US9626302B2 (en) 2010-12-09 2017-04-18 International Business Machines Corporation Encrypting and decrypting a virtual disc

Also Published As

Publication number Publication date
CN102567042A (zh) 2012-07-11
CN102567042B (zh) 2015-04-15
JP2012128841A (ja) 2012-07-05
US20120151201A1 (en) 2012-06-14
US8527728B2 (en) 2013-09-03

Similar Documents

Publication Publication Date Title
JP5649184B2 (ja) ブート・ブロックの再配置によって複数のソフトウェア・イメージを管理するための方法、コンピュータ・プログラムおよびシステム
JP5911504B2 (ja) ストリーミング技術に基づくソフトウェア・イメージのアップグレード
JP5767565B2 (ja) ソフトウェア・イメージの管理方法、コンピュータ・プログラム、およびシステム(共有メモリ・ブロックを用いた複数のソフトウェア・イメージの管理)
JP5026509B2 (ja) マシンから仮想マシンへの変換
US8825994B2 (en) Atomic switching of images in desktop streaming over wide area networks
US9086892B2 (en) Direct migration of software images with streaming technique
US9286098B1 (en) Using master file template area to increase density of virtual machines in a computer system
US8930685B2 (en) Deployment of a software image on multiple targets with streaming technique
US20090265706A1 (en) Computing machine migration
US20080244028A1 (en) Synchronization and Customization of a Clone Computer
JP2013542486A (ja) 仮想マシンのオンデマンド型イメージ・ストリーミング
KR100947136B1 (ko) 소프트웨어의 증분 프로비져닝
CN117581205A (zh) 用于虚拟化***中虚拟化操作的虚拟化引擎
Dyke et al. Installing Linux

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140528

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140605

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140605

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20140605

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20140605

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140609

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140609

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20140618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140807

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140812

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20140812

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20141020

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20141020

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20141020

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20141107

R150 Certificate of patent or registration of utility model

Ref document number: 5649184

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees