特許第5827687号(P5827687)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

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

▶ インターナショナル・ビジネス・マシーンズ・コーポレーションの特許一覧
特許5827687仮想アプライアンスの自動アップグレードのための方法、コンピュータ・プログラム、及びシステム
<>
  • 特許5827687-仮想アプライアンスの自動アップグレードのための方法、コンピュータ・プログラム、及びシステム 図000002
  • 特許5827687-仮想アプライアンスの自動アップグレードのための方法、コンピュータ・プログラム、及びシステム 図000003
  • 特許5827687-仮想アプライアンスの自動アップグレードのための方法、コンピュータ・プログラム、及びシステム 図000004
  • 特許5827687-仮想アプライアンスの自動アップグレードのための方法、コンピュータ・プログラム、及びシステム 図000005
  • 特許5827687-仮想アプライアンスの自動アップグレードのための方法、コンピュータ・プログラム、及びシステム 図000006
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5827687
(24)【登録日】2015年10月23日
(45)【発行日】2015年12月2日
(54)【発明の名称】仮想アプライアンスの自動アップグレードのための方法、コンピュータ・プログラム、及びシステム
(51)【国際特許分類】
   G06F 9/445 20060101AFI20151112BHJP
   G06F 11/00 20060101ALI20151112BHJP
【FI】
   G06F9/06 610L
   G06F9/06 630B
【請求項の数】12
【全頁数】15
(21)【出願番号】特願2013-525254(P2013-525254)
(86)(22)【出願日】2011年8月17日
(65)【公表番号】特表2013-540302(P2013-540302A)
(43)【公表日】2013年10月31日
(86)【国際出願番号】EP2011064188
(87)【国際公開番号】WO2012025443
(87)【国際公開日】20120301
【審査請求日】2014年4月11日
(31)【優先権主張番号】10174377.1
(32)【優先日】2010年8月27日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】390009531
【氏名又は名称】インターナショナル・ビジネス・マシーンズ・コーポレーション
【氏名又は名称原語表記】INTERNATIONAL BUSINESS MACHINES CORPORATION
(74)【代理人】
【識別番号】100108501
【弁理士】
【氏名又は名称】上野 剛史
(74)【代理人】
【識別番号】100112690
【弁理士】
【氏名又は名称】太佐 種一
(72)【発明者】
【氏名】チアーノ、ジュセッペ
(72)【発明者】
【氏名】アルセス、マウロ
(72)【発明者】
【氏名】ピケッティ、ルイジ
(72)【発明者】
【氏名】ドナテリ、アレッサンドロ
【審査官】 石川 亮
(56)【参考文献】
【文献】 米国特許出願公開第2010/0031255(US,A1)
【文献】 国際公開第2008/117500(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 9/445
G06F 9/46
G06F 11/00
(57)【特許請求の範囲】
【請求項1】
コンピュータの仮想マシン・モニタ上で実行されている、少なくとも1つのOS仮想ディスクを含む仮想マシン・システム(OSシステム)において、仮想アプライアンスとして配布されたソフトウェア・アプリケーションを自動的にアップグレードするための方法であって、前記方法は、前記仮想マシン・モニタのAPIを用いて自動的に実行される次のステップ、すなわち、
前記仮想マシンにアタッチされた仮想アプライアンス仮想ディスクのリストの以前に格納されたバージョンにおける変更を検出するステップと、
新しい仮想アプライアンス仮想ディスクが検出された場合、前記少なくとも1つのOS仮想ディスク上にこの新しい仮想ディスク上で読み出された非アクティブ化スクリプトを格納し、かつ、
前記新しい仮想ディスク上に格納された前記ソフトウェア・アプリケーションをインストールする、前記新しい仮想ディスク上に格納されたインストール/アンインストール・プログラム(SIE)の実行を開始することにより、前記新しい仮想ディスク上に格納された命令に従って前記OSシステムを修正することと、
前記新しい仮想アプライアンス仮想ディスクのエントリを、現在アタッチされている前記仮想ディスクの前記リストに付加することと、
を実行することにより、前記新しい仮想ディスク上で読み出されるインストール・スクリプトを実行するステップと、
を含む方法。
【請求項2】
前記新しい仮想ディスク上に格納された場合、必要に応じて、前記ソフトウェア・アプリケーションを再構成するために、特定の付加的なアクティブ化操作を前記システム上で実行するステップをさらに含む、請求項1に記載の方法。
【請求項3】
前記仮想アプライアンス仮想ディスクの除去が検出された場合、
除去される前記仮想ディスク上に格納されたインストール/アンインストール・プログラムの実行を開始し、除去される前記仮想ディスク上に格納された、前記ソフトウェア・アプリケーションをアンインストールする命令に従って前記OSシステムを修正することと、
除去される前記仮想ディスクのエントリを、現在アタッチされている前記仮想ディスクの前記リストから削除すること、
を実行することにより、除去される前記仮想ディスクの前記OS仮想ディスクに既に格納されたアンインストール・スクリプトを実行するステップをさらに含む、請求項1又は請求項2に記載の方法。
【請求項4】
除去される前記仮想ディスク上に格納された場合、前記アプリケーションがアンインストールされるのを可能にする特定の付加的な操作を前記システム上で実行するステップをさらに含む、請求項3に記載の方法。
【請求項5】
前記仮想マシン上での仮想ディスク・アタッチ・イベント又は仮想ディスク除去イベントについて、前記仮想マシンを継続的に監視するステップをさらに含む、請求項1から請求項4までのいずれか1項に記載の方法。
【請求項6】
初期化された新しい仮想ディスク上にソフトウェア・アプリケーション・パッケージを格納する初期ステップと、
前記新しい仮想ディスク上に、前記ソフトウェア・アプリケーションをインストール/アンインストールするインストール/アンインストール・プログラムを格納する初期ステップと、
プログラム・パッケージ・ツールを用いて、前記インストール/アンインストール・プログラムにより実行される前記ソフトウェア・アプリケーションをインストール/アンインストールするように前記OSシステムを修正するための、プログラム・パッケージを形成する命令を作成する初期ステップと、
前記仮想ディスクを前記仮想アプライアンス仮想ディスクとして識別するディスク識別子を作成し、これを前記新しい仮想アプライアンス仮想ディスク上に格納する初期ステップと、
をさらに含む請求項1又は請求項2に記載の方法。
【請求項7】
必要に応じて、インストール後に、前記ソフトウェア・アプリケーションの構成を可能にするように、前記新しい仮想ディスク上に、前記システム上で実行される特定の付加的な操作を作成しかつ格納するステップをさらに含む、請求項6に記載の方法。
【請求項8】
前記方法の前記ステップは、前記仮想マシンの前記仮想マシン・モニタとインターフェース接続する、APIプログラミング命令を含むスクリプトを実行するプログラム(VDAM)により自動的に実行される、請求項1から請求項7までのいずれか1項に記載の方法。
【請求項9】
前記自動ステップの実行のために前記プログラム(VDAM)をセットアップする初期ステップをさらに含む、請求項8に記載の方法。
【請求項10】
前記仮想アプライアンス仮想ディスクの前記リストにおける変更を検出する前記ステップは、各々が前記仮想アプライアンス仮想ディスクの特定の署名である一意の識別子のリストにおける変更を検出することを含み、
前記一意の識別子を作成する前記ステップは、前記仮想アプライアンス仮想ディスクの属性に基づいて前記特定の署名を計算することを含む、
請求項6に記載の方法。
【請求項11】
請求項1から請求項10までのいずれか1項に記載の方法のステップを実行するように適合された手段を含むシステム。
【請求項12】
請求項1から請求項9までのいずれか1項に記載の方法の各ステップをコンピュータに実行させるコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、一般に、仮想アプライアンスとして配布されるソフトウェアのインストール及びアップグレードに関し、より具体的には、本発明は、仮想アプライアンスを含む仮想ディスクの自動アクティブ化を扱う。
【背景技術】
【0002】
仮想アプライアンスは、少なくとも1つのソフトウェア・アプリケーションと、少なくとも1つの仮想マシン(VM)とを含む、仮想マシン・イメージである。仮想アプライアンスは、物理マシン上で動作している仮想マシン・モニタ上に直接インストールすることができる。仮想アプライアンスは、ソフトウェア・アプリケーションを配置する新しい方法である。
【0003】
ソフトウェアのパッケージング及び配布の観点から、ソフトウェア開発者は、単一のプラットフォームを作成し、ソフトウェアの開発及び管理の費用と複雑さを低減させることができる。仮想アプライアンスは、電子的ダウンロード又は物理的配布のいずれかを介して、ファイルとしてユーザ又は顧客に提供される。仮想アプライアンスを配布することにより、ソフトウェア・アプリケーションの製造業者は、ターンキー式ソフトウェア・サービスをエンドユーザに提供する。
【0004】
別個のプロセスと同じ数の層を含むクライアント・サーバ・アプリケーションである多層アーキテクチャ・アプリケーションを配布するために仮想アプライアンスを作成したいと望む場合、単一のVMでは十分でないことに留意されたい。多層アーキテクチャの仮想アプライアンスは、少なくとも、層の数と同じ数のVMを含む。例えば、単一のVMしか含まない現在の仮想アプライアンスと比較すると、例えば、最新の企業アプリケーション・モデルのサービス指向アーキテクチャ(service oriented architectures、SOA)は多層アーキテクチャであり、各層が1つ又は複数のマシンを含む。従って、多層サービスを配布するために、単一のVMモデルでは十分でなく、従って、仮想アプライアンスは、より多くのVMで構成されることになる。3つの層、すなわち提示論理を実装する1つの層、ビジネス論理を実装するアプリケーション・サーバ層及びバックエンド・データベース層からなるウェブ・アプリケーションの場合、仮想アプライアンスは、各層について1つ、3つのVMを含む。
【0005】
今日、仮想アプライアンスのコンポーネントを仮想ディスクに分離することができる。仮想ディスク・イメージは、仮想マシン・モニタによりハードディスクとして解釈できるフォーマットを有する物理ディスク上のファイルである。ほとんどの場合、VMのベース・オペレーティング・システムを他のソフトウェア・アプリケーション及び他のコンポーネントから分離し、仮想アプライアンスを形成する複数の仮想ディスクを作成することができる。UNIXのために配布されるほとんど全てのアプリケーションは、アプリケーションを実行するための全てのバイナリを含有するバイナリ・セクションを含み、このバイナリ・セクションは、アプリケーションがインストールされる特定のシステムに依存しない。構成/データ・セクションも与えられ、これらは現在のインストールに特有の構成及びデータ・ファイルを含む。この2つのセクションは、2つの異なるファイル・システム・パス上にインストールすることができ、潜在的に2つの異なる仮想ディスクを指し示す。
【0006】
仮想アプライアンスを複数のディスク上に与える利点は以下の通りである。
これにより、ソフトウェア・アプリケーション製品のバイナリの保守が単純化される。例えば、ソフトウェア・アプリケーション製造業者は、バイナリを更新し、更新されたバイナリを有する新しい仮想ディスクを顧客に提供することができる。顧客は、VMを停止し、対応する仮想ディスク・イメージを置換し、VMを再開しなければならない。
−顧客は、仮想アプライアンスのオペレーティング・システムの仮想ディスクを修正し、OSを顧客自身のバージョンに置換することができる。
−異なる仮想環境(VMware(VMwareは、米国及び/又は他の管轄区域におけるVMware,Inc.の登録商標又は商標である)又はXen(Xenは、Citrix Systems,Inc.及び/又は1つ又は複数の子会社の商標であり、米国特許商標庁及び他の国々において登録されたものとすることができる)などの)をサポートするために、アプリケーション・ソフトウェア製造業者は、例えば、製品アプリケーション・バイナリのVMwareフォーマット済み仮想ディスク(製品ディスク)を、Xenフォーマット済み仮想ディスクに変換するだけでよい。オペレーティング・システムを含む仮想ディスクを変換する必要はない。
−製品ディスクを用いて、異なるVMをサポートすることができる。Xenイメージ仮想ディスク・フォーマットを用いることにより、ユーザは、Linuxシステム(Linuxは、米国、他の国々、又はその両方におけるLinus Torvaldsの登録商標である)の製品アプリケーションのバイナリを含有する同じ仮想ディスクを適切なマウント・ポイントにマウントし、これを、ソフトウェア・アプリケーション・アクティブ化スクリプトを用いて構成することができる。これは、製品をLinuxサーバにインストールするのと同等である。この文脈において、同じ製品ディスクを同じオペレーティング・システム・ファミリー上にインストールすることができ、同じオペレーティング・システムのバージョンごとに、スクリプトは異なり得る。従って、製品ディスクを備えた全てのスクリプトが、同じOSファミリーに適用される。
−さらに、製品バイナリを構成/データから分離させるために、製品自体を複数のディスクに分割することができる。この場合、いずれの構成及び/又はデータも失うことなく、バイナリを更新することが可能である。
【0007】
しかしながら、仮想ディスク上に分散した、アプリケーション・バイナリを含有する仮想ディスクをインストールする又は置換するには、手動操作の実行が必要である。例えば、ユーザは、VMシステム・ディレクトリの下でシステム・ファイルを作成及び/又は更新するために、構成/インストール・スクリプトを手動で実行して仮想ディスクをインストールする必要がある。
【発明の概要】
【発明が解決しようとする課題】
【0008】
従って、バイナリが仮想ディスク上に分散した、仮想アプライアンスとして配布されるアプリケーションをインストール又は置換する際の手動操作を回避する必要性がある。
【課題を解決するための手段】
【0009】
本発明の目的は、ソフトウェア・アプリケーション・バイナリを含む仮想アプライアンスの仮想ディスクを自動的にインストール及びアップグレードするための方法及びシステムを提供することである。
【0010】
この目的は、請求項1により、コンピュータの仮想マシン・モニタ上で実行されている、少なくとも1つのOS仮想ディスクを含む仮想マシン・システムにおいて、仮想アプライアンスとして配布されたソフトウェア・アプリケーションを自動的にアップグレードするための方法であって、仮想マシン・モニタのAPIを用いて自動的に実行される次のステップ、すなわち、
仮想マシンにアタッチされた仮想アプライアンス仮想ディスクのリストの以前に格納されたバージョンにおける変更を検出するステップと、
新しい仮想アプライアンス仮想ディスクが検出された場合、少なくとも1つのOS仮想ディスク上にこの新しい仮想ディスク上で読み出された非アクティブ化スクリプトを格納し、かつ、
新しい仮想ディスク上に格納されたソフトウェア・アプリケーションをインストールする、新しい仮想ディスク上に格納されたインストール/アンインストール・プログラム(SIE)の実行を開始することにより、新しい仮想ディスク上に格納された命令に従ってOSシステムを修正することと、
新しい仮想アプライアンス仮想ディスクのエントリを、現在アタッチされている仮想ディスクのリストに付加することと、
を実行することにより、新しい仮想ディスク上で読み出されるインストール・スクリプトを実行するステップと、
を含む方法によって実現される。
【0011】
この目的は、請求項2により、新しい仮想ディスク上に格納された場合、必要に応じて、ソフトウェア・アプリケーションを再構成するために、特定の付加的なアクティブ化操作をシステム上で実行するステップをさらに含む、請求項1に記載の方法によって実現される。
【0012】
この目的は、請求項3により、
−仮想アプライアンス仮想ディスクの除去が検出された場合、
除去される仮想ディスク上に格納されたインストール/アンインストール・プログラムの実行を開始し、除去される仮想ディスク上に格納された、ソフトウェア・アプリケーションをアンインストールする命令によってOSシステムを修正することと、
除去される仮想ディスクのエントリを、現在アタッチされている仮想ディスクのリストから削除すること、
を実行することにより、除去される仮想ディスクのOSに既に格納されたアンインストール・スクリプトを実行するステップと、
をさらに含む、請求項1又は請求項に記載の方法によって実現される。
【0013】
この目的は、請求項4により、除去される仮想ディスク上に格納された場合、アプリケーションがアンインストールされるのを可能にする特定の付加的な操作をシステム上で実行するステップをさらに含む、請求項3に記載の方法によって実現される。
【0014】
この目的は、請求項5により、仮想マシン上での仮想ディスク・アタッチ・イベント又は仮想ディスク除去イベントについて、仮想マシンを継続的に監視するステップをさらに含む、請求項1から請求項4までのいずれか1項に記載の方法によって実現される。
【0015】
この目的は、請求項6により、
初期化された新しい仮想ディスク上にソフトウェア・アプリケーション・パッケージを格納する初期ステップと、
新しい仮想ディスク上に、ソフトウェア・アプリケーションをインストール/アンインストールするインストール/アンインストール・プログラムを格納する初期ステップと、
プログラム・パッケージ・ツールを用いて、インストール/アンインストール・プログラムにより実行されるソフトウェア・アプリケーションをインストール/アンインストールするようにOSシステムを修正するための、プログラム・パッケージを形成する命令を作成する初期ステップと、
仮想ディスクを仮想アプライアンス仮想ディスクとして識別するディスク識別子を作成し、これを新しい仮想アプライアンス仮想ディスク上に格納する初期ステップと、
をさらに含む、請求項1又は請求項2に記載の方法によって実現される。
【0016】
この目的は、請求項7により、必要に応じて、インストール後に、ソフトウェア・アプリケーションの構成を可能にするように、新しい仮想ディスク上に、システム上で実行される特定の付加的な操作を作成しかつ格納するステップをさらに含む、請求項6に記載の方法によって実現される。
【0017】
この目的は、請求項8により、方法のステップは、仮想マシンの仮想マシン・モニタとインターフェース接続する、APIプログラミング命令を含むスクリプトを実行するプログラム(VDAM)により自動的に実行される、請求項1から請求項7までのいずれか1項に記載の方法によって実現される。
【0018】
この目的は、請求項9により、自動ステップの実行のためにプログラム(VDAM)をセットアップする初期ステップをさらに含む、請求項1から請求項8までのいずれか1項に記載の方法によって実現される。
【0019】
この目的は、請求項10により、
仮想アプライアンス仮想ディスクのリストにおける変更を検出するステップは、各々が仮想アプライアンス仮想ディスクの特定の署名である一意の識別子のリストにおける変更を検出することを含み、
一意の識別子を作成するステップは、仮想アプライアンス仮想ディスクの属性に基づいて特定の署名を計算することを含む、
請求項1から請求項9までのいずれか1項に記載の方法によって実現される。
【0020】
この目的は、請求項11により、請求項1から請求項10までのいずれか1項に記載の方法のステップを実行するように適合された手段を含むシステムによって実現される。
【0021】
この目的は、請求項12により、コンピュータ上で実行されたとき、請求項1から請求項9までのいずれか1項に記載の方法のステップを実行するための命令を含むコンピュータ・プログラムによって実現される。
【0022】
本発明の解決法によって、異なる仮想ディスク上に仮想アプライアンスを分散させる従来技術の慣例を活用して、ここでは、ソフトウェア製造業者が、ソフトウェア・アプリケーション・バイナリを含み、ユーザにより自動的にインストールされる又はユーザ・サイトのVM上で置換され、手動操作の実行を回避させる自動アクティブ化仮想ディスク(Self-Activating Virtual Disk、SAVD)(製品ディスク)を構築するのを可能にする方法及びシステムが開示される。
【0023】
SAVDを有するアプリケーションを配布するソフトウェア製造業者にとっての1つの利点は、図3の説明に関連して好ましい実施形態の詳細な説明において説明されるように、ソフトウェア製造業者による、その準備サイトにおけるSAVD製品ディスクの作成も自動化できることである。
【0024】
この方法は、ソフトウェア製造業者が、仮想アプライアンス内にOSを配布するのを回避することを可能にする。仮想アプライアンスは、アプリケーション・バイナリと、顧客のVM環境におけるアプリケーションの自動インストール又は置換に必要な全てのアーチファクトとを含む仮想ディスクのような、1つのSAVDだけを含むことができる。SAVD製品ディスクを置換することによりアプリケーションをアップグレードする際、OSディスクがアプリケーション・アップグレード仮想アプライアンスと共に配布されれば失われ得る付加的なデータ及び構成を顧客が含ませていた可能性がある、VM OSディスクを変更しない。さらに、全てのオペレーティング・システム関連ファイルは含まれないため、アプライアンスをインストールするのに必要なアーチファクトの全体のサイズが低減される。
【0025】
この解決法の1つの付加的な利点は、オペレーティング・システムが新しいバージョンのアプリケーションと共に配布されないことであり、このことは、オペレーティング・システムを、新しいバージョンの仮想アプライアンスと共に再配布することが必要な場合に要求されるライセンス契約に関連した製造業者に対する問題を解決する。実際に、通常、オペレーティング・システムには、イメージの無償の再配布を防ぐ所有者ライセンスが付随する。
【0026】
本発明の解決法によって、ソフトウェア製造業者は、OS仮想ディスク及びSAVD製品ディスクを、アプリケーション仮想アプライアンスの最初のバージョンで配布し、かつ、アプリケーションの各新しいバージョンに対してのみ、SAVD製品ディスクを配布するよう選択することができる。本発明の解決法によって、製造業者は、アプリケーション・アップグレードを含むSAVDと共にOSディスクを配布することもできるが、この事例は、顧客が、自身のサイト上でSAVDを置換してアプリケーション・バイナリをアップグレードする際に、OSベース・システムを修正することを回避するという、本発明の1つの利点が失われるため、推奨されない。
【0027】
本方法は、特定の仮想化ベンダーがそうした製品のインストール/アップグレードを実装するために提供するAPI及びコマンドの特定のシーケンシング及び使用に依存する。サイレントかつ全自動の手法に対する代替的手法として、再構成プロセスにおいて管理者を案内し、支援するユーザ・インターフェースが提供される。
【0028】
本方法は、ソフトウェア・アプリケーションをインストールする際に、ターゲット・マシン上で実行される自動操作を含むソフトウェア・アプリケーション・ライブラリを供給するためのソフトウェア・パッケージの使用も活用する。
【0029】
MicrosoftのWindowsオペレーティング・システム(Microsoftは、米国、及び/又は他の国々におけるMicrosoft Corporationの登録商標又は商標である)の従来技術のAUTORUN機能と同様に、顧客のVMは、SAVD製品ディスクの一意の識別子を用いて、新しい又は除去されたSAVD製品ディスクを検出し、インストール/アンインストールし、かつ、ターゲットVM上の対応するソフトウェアの自動インストール又は置換を開始することができる、新しいプログラム(VDAM)を使用する。
【図面の簡単な説明】
【0030】
図1】本発明の好ましい実施形態による、準備サイトをセットアップし、仮想アプライアンスを作成するためのシステム環境を示す。
図2】本発明の好ましい実施形態による、仮想アプライアンスを準備するためのサイトをセットアップする方法の流れ図である。
図3】本発明の好ましい実施形態による、図2の流れ図で説明された方法に従ってセットアップされた準備サイトにおいて、仮想アプライアンスを作成する方法の流れ図である。
図4】本発明の好ましい実施形態による、図3の流れ図で説明された方法に従って、説明されたように作成された仮想アプライアンスを、インストールする又はアンインストールするためのシステム環境を示す。
図5】本発明の好ましい実施形態による、図3の流れ図で説明された方法に従って、説明されたように作成された仮想アプライアンスSAVDをインストール又はアンインストールするための、方法の流れ図である。
【発明を実施するための形態】
【0031】
図1は、本発明の好ましい実施形態による、準備サイトをセットアップし、仮想アプライアンスを作成するためのシステム環境を示す。仮想アプライアンスのイメージを作成するために、ソフトウェア・アプリケーション製造業者は、仮想マシン環境を管理するための仮想管理サーバ(110)と、仮想マシンをインストールすることができる準備サイトサーバ(100)とを有することができる。例えば、仮想マシン・モニタであるホスト環境(125)は、仮想マシン、すなわち、その仮想ディスク(115、120)を用いてゲストOS(130)を管理するためのVMware仮想マシン・モニタとすることができる。
【0032】
仮想管理サーバ(110)上には、顧客に配布される仮想アプライアンスの最終イメージを作成するための全ての必要なファイル(150)をファイル・リポジトリ(145)内に作成するために新しいソフトウェア・コンポーネント、すなわち仮想ディスク・アクティブ化マネージャ(Virtual Disk Activation manager、VDAM)(135)がインストールされる。これらのファイルは、仮想アプライアンスのベースOS仮想ディスクを作成するのに用いられるVMイメージを含むが、特に、これらのファイルは、アプリケーションを含有する自己アクティブ化仮想ディスクSAVDを作成するために用いられる。最初の作成について、仮想イメージは、VMベースOSのための仮想ディスクと、アプリケーションのためのSAVDとを含有する。アプリケーションのアップグレードのために、1つのSAVDだけが作成される。
【0033】
VDAMは、より具体的には、ソフトウェア・アプリケーション・ライブラリ、つまり製品ディスクを含む仮想アプライアンスの仮想ディスクを作成する。好ましい実施形態によると、製品ディスクは、自己アクティブ化仮想ディスク(SAVD)である。VDAMは、既存のAPIを用いてホスト環境と通信する。より具体的には、VDAMは、スクリプトの組を用いて、VMwareサーバにより与えられるVIXインターフェースを活用するVMware仮想マシン・モニタと対話して、コマンドを、VMware仮想マシン・モニタ及びVMwareVMの両方に送る。VIX APIは、VMware仮想マシンの動作を自動化し、ゲスト・オペレーティング・システム内でプログラムを実行するか又はファイルを操作する。VIXインターフェースは、VMの動作(VMを停止する、VMを開始する、VMのスナップショットを撮る等)及びゲストの動作(ゲストOS内でアプリケーションを実行する、ゲストとホストとの間でファイルをコピーする等)の両方を自動化するためのプログラミング・インターフェースである。VMwareの他に、類似のAPIを異なる仮想化環境において用いることができる。VDAMコンポーネントは、特に、ディスク処理(追加する/置換する/除去する)に関連したVMにおけるあらゆる変更を検出し、仮想アプライアンス・ディスクをVMに接続させる又はVMから分離させるために適切な構成を呼び出すことができる。
【0034】
SAVD製品ディスクの作成のために、IBM Tivoli Provisioning Manager(IBM及びTivoliは、IBM Corporationの商標である)のAUTOPACK機能のような既存のソフトウェア・パッケージ・ツール、及びソフトウェア・パッケージ・インストーラ・エンジン(SIE)もSAVD製品ディスクを作成するための準備サイトにおいて用いられる。従来技術において周知のように、ソフトウェア・パッケージは、システム上にソフトウェア・アプリケーションをインストールするのに必要な動作を含む。ソフトウェア・パッケージ・インストーラは、ソフトウェア・パッケージを読み出すことにより、ソフトウェア・アプリケーションのインストールに対してターゲットOSを準備することができる。通常、SIEプログラムは、ターゲットVMのアーキテクチャに依存する。
【0035】
以下に、これらのコンポーネント(140、155、160)間の様々な情報交換について、本文書の残りにおける図2及び図3の説明と関連してそれぞれ説明される準備をセットアップする及び仮想アプライアンスを作成するための方法のステップとの関連で説明する。
【0036】
図2は、本発明の好ましい実施形態による、サイトをセットアップして仮想アプライアンスを準備するための方法の流れ図である。ソフトウェア製造業者は、好ましくは仮想管理サーバと、ホスト環境である仮想マシン・モニタを含む準備サーバとを含む準備サイトをセットアップする。本方法は、仮想アプライアンスの製品ディスクに対応するSAVDの作成に対して準備サイトを使用可能状態にすることを目的とする。準備サイトをセットアップするための全てのステップは、仮想管理サーバ上にインストールされ、かつ、準備サーバのホスト環境と通信するスクリプトを実行するVDAMプログラムによって実行される。例えば、VDAMは、ホスト環境がVMware仮想マシン・モニタである場合、VIXスクリプトを用いてホスト環境と通信する。全てのステップがスクリプトを通して実行されるため、本方法は完全に自動化できることに留意されたい。
【0037】
最初のステップ(200)は、要求されるゲストOSに対して仮想マシンをインストールすることからなる。VMイメージは、仮想マシン・マネージャ(例えば、VMware仮想マシン・モニタ)であるホスト環境マシン上のファイル・リポジトリから作成されることが好ましい。
【0038】
次いで、そのAPIを用いてVMを仮想マシン・マネージャに構成する必要がある。このステップ(210)は、コピーされたばかりのイメージを参照して新しいVMを登録することからなり、その結果、ベースOS仮想ディスクが作成される。
【0039】
次のステップ(220)は、これもホスト環境上で実行され、それからイメージを作成しなければならない新しい仮想ディスクを構成し、この新しい仮想ディスクをVMイメージにアタッチすることからなる。
【0040】
このディスクは、プロセスの最後にSAVD製品ディスクとなる。
【0041】
次いで、ゲストOS VMの電源が投入され(230)、ソフトウェア・パッケージを作成するためのツール(AUTOPACK等)、対応するソフトウェア・パッケージ・インストーラ(SIE)及びVDAMのプログラムコードがゲストOS上にコピーされ(240)、ライブラリは、VMwareの場合には、これもVIXベースのスクリプトを通してSAVDにコピーされる。実際には、顧客サイトではインストーラ(SIE)だけが必要であり、単純化のために、顧客に配布される最終SAVD上に、ソフトウェア・パッケージ・ツール(AUTOPACK等)が格納されないことがある。
【0042】
図3は、本発明の好ましい実施形態による、図2の流れ図に説明される方法に従ってセットアップされた準備サイトにおいて、仮想アプライアンスを作成するための方法の流れ図である。ひとたび、準備サイトにおけるゲストOSが使用可能状態になると、SAVD製品ディスクを作成することができる。このSAVD製品ディスクは、顧客に配布される最初の仮想アプライアンス製品ディスク、又は、ソフトウェア・アプリケーションのアップグレードを含む製品ディスクとすることができ、かつ、アプリケーションのアップグレードのために仮想アプライアンス内にSAVD+OS仮想ディスクを提供する意味がないので、ユーザのソフトウェア・アプリケーションのアップグレードのためにユーザに配布される唯一の仮想ディスクであることに留意されたい。アプリケーションの最初の配布の仮想アプライアンスは、OS仮想ディスクを含み得るが、OSディスクの作成は、本発明の一部ではない。このような理由で、この方法は、寧ろ、仮想アプライアンスにおける唯一の仮想ディスクとして、SAVDの作成に焦点を当てる。
【0043】
SAVD製品ディスクを作成するための全てのステップは、APIベースのスクリプト(VMware環境に対してはVIX)を用いて、ホスト環境VMモニタとインターフェース接続するVDAMコンポーネントによって自動的に実行される。
【0044】
製品バイナリを含むソフトウェア・アプリケーションのインストール・イメージが、リポジトリ・ファイルからホスト環境に、及び、ホスト環境からゲストOSにコピーされる(300)。
【0045】
ソフトウェア・パッケージを作成するツールによって、配布されるソフトウェア・アプリケーションのためのソフトウェア・パッケージがゲストOS VM内に最初に作成される(310)。例えば、AUTOPACKツールは、ソフトウェア・アプリケーションのインストール前後に、準備マシン・システムの2つの連続するシステム・スナップショットを比較することにより、差分手法を用いて、ソフトウェア・パッケージの作成を自動化する。このように、AUTOPACKは、アプリケーションのインストールによってなされたファイル及びシステムの変更を検出し、ターゲット・システムをソフトウェア・アプリケーションに適合させるために実行される操作を作成する。次いで、インストーラ(SIE)は、ターゲット・システム上でその操作を実行するためのソフトウェア・アプリケーション・ライブラリをインストールすることにより、その操作を自動的に実行することができる。
【0046】
VDAMは、APIベースのスクリプトを用いて、ゲストOS VMにおけるシステムの第1のAUTOPACKスナップショットを実行する。AUTOPACKは、OSベース仮想ディスク上のシステム関連ファイル及びレジストリ・エントリに生じた変更だけを捕捉する。次いで、SAVD製品ディスクのソフトウェア・アプリケーションのインストール・イメージ・ディレクトリを参照しながら、ソフトウェア・アプリケーションがインストールされる。このインストールは、ゲストOS及びこのアプリケーションによりサポートされていればサイレント・モードで、又はサポートされていなければオペレータ補助モードで実行される。第2のAUTOPACKスナップショットが、ゲストOS VMにおいて実行される。AUTOPACK差分手法が実行され、ゲストOS VMにソフトウェア・パッケージが構築される。次いで、AUTOPACKによって作成されたソフトウェア・パッケージが、サイト準備のセットアップ中に作成されたSAVD製品ディスク(120)内に格納される(310)。
【0047】
ソフトウェア・パッケージを作成するための幾つかの既存のツールを用いると、幾つかのソフトウェア・パッケージは、システム・ファイルを作成/修正するために実行される命令だけでなく、アプリケーションのバイナリ・ライブラリも含む場合があることに留意されたい。これは実装の1つの選択肢にすぎず、好ましい実施形態において説明された場合においては、ソフトウェア・パッケージとアプリケーション・バイナリ・ライブラリとは分離され、2つのステップ(300、310)でSAVD製品ディスク上に格納される。
【0048】
VDAMは、ユーザ・ターゲット・システム上へのソフトウェア・アプリケーションのインストールの際に、VDAMにより用いられる特定のアクティブ化/非アクティブ化APIベース・スクリプトを作成する(320)。実際のところ、ひとたびインストールされたソフトウェア・アプリケーションは、特定のホスト名が用いられていること等を必要とする場合がある。一例として、幾つかのアプリケーションは、それがインストールされたマシンのIPアドレスが変更されると、再構成する必要がある。この目的に対しては、特定の再構成コマンドを実行しなければならない。作成されたアクティブ化/非アクティブ化APIベース・スクリプトは、SAVD製品ディスクにコピーされる。
【0049】
SAVD製品ディスクを識別する一意の識別子が作成され(330)、SAVD製品ディスク内に格納される。一意の識別子は、SAVD製品ディスクの署名の一種であり、例えば、SAVDの名称、サイズ、バージョン、仮想アプライアンスの名称等を用いて、SAVDの様々な属性を構成するように計算することができる。幾つかのアルゴリズムが、UUID、すなわち汎用一意識別子(Universally Unique Identifier)の計算の分野において既に存在する。一意の識別子は、顧客がソフトウェア・アプリケーションを初めてインストールするとき又はアップグレードするとき、顧客のサイトでのSAVD製品ディスクのアクティブ化段階中に用いられる。
【0050】
ゲストOSの電源を遮断し、SAVD製品ディスクがデタッチされる。SAVD製品ディスク・イメージが、ホスト環境からファイル・リポジトリにコピーされる(340)。最終的に、SAVD製品ディスクは、ソフトウェア・アプリケーション・インストール・イメージ(ソフトウェア・アプリケーションのバイナリを含む)、ソフトウェア・パッケージ、アクティブ化/非アクティブ化イベントが発生するとVDAMにより実行されるアクティブ化/非アクティブ化スクリプト、VDAM、SIE及びAUTOPACKライブラリを含む。作成されたばかりのSAVD製品ディスクは、仮想アプライアンス・イメージ(150)の最初の配布の一部とすることができ、又は製品の新しいバージョンが顧客に配布された際に作成することができる。
【0051】
図4は、本発明の好ましい実施形態による、図3の流れ図に説明された方法に従って、説明されたように作成された仮想アプライアンスを、インストール又はアンインストールするためのシステム環境を示す。ソフトウェア・アプリケーションをインストール及びアップグレードするための顧客のシステム環境(400)は、その上でVMware仮想マシン・モニタ等の仮想マシン・モニタ、すなわちホスト環境(425)が仮想マシンを管理する、サーバを含む。
【0052】
ソフトウェア・アプリケーションの最初のインストールの際に、最初のインストールの仮想アプライアンスで提供され得たVMイメージは、そのベースOS仮想ディスク(410)を用いてターゲットOS(430)として、顧客によりインストールされる。アプリケーションの仮想アプライアンスが、最初のバーションであっても、SAVDのみを含有する場合、顧客は、自分のVMをインストールし、自分のVMのOSに対するSAVDを注文する。従って、顧客は、ソフトウェア・アプリケーションをターゲットOS VM上にインストールするのに用いられる自動アクティブ化仮想ディスクであるSAVD製品ディスク(420)をインストールしなければならない。
【0053】
SAVDのアクティブ化/非アクティブ化に対して、VDAM及びSIE(435)の両方がターゲットOS上で開始される。VDAMは、SIEをツールとして用いてインストールを実行する。VDAMは、デーモン・コンポーネント等のサービスとして開始され、ディスクの追加又は除去に関連したイベントについてシステムを継続的に監視することが好ましい。
【0054】
VDAMは、仮想マシン・モニタへのコマンドのスクリプトを実行するため、顧客VM上に一度インストールする必要があることに留意されたい。ひとたびインストールされると、VDAMは、次のSAVDのインストール、更新、及び除去に再利用される。随意的に、顧客は、VDAMプログラムのセットアップを実行することができる。セットアップ・プログラムは、SAVD上に格納し、仮想マシンのOS内の既存のツール(WindowsのAUTORUN等の)を用いて、仮想ディスクをアタッチする際に実行することができる。
【0055】
図5は、本発明の好ましい実施形態による、図3の流れ図に説明された方法に従って、説明されたように作成された仮想アプライアンスのSAVDをインストール又はアンインストールするための方法の流れ図である。
【0056】
SAVD製品ディスクがターゲットOSにアタッチされたと仮定すると、VDAMは、UIDを読み出すことにより、VMにアタッチされた全てのSAVDのリストを収集する(510)。VDAMは、現在のリストを、ベースOS内にローカルに格納され、かつ、VDAMサービスの最後の開始に対応するリストと比較する。ターゲットOSの作成の際、リストは空であり、仮想アプライアンスが初めてインストールされると、1つのSAVDが識別される。
【0057】
VDAMが新しいSAVDを検出(テスト515に対してイエスと回答)すると、VDAMは、SAVDの非アクティブ化スクリプトをベースOS仮想ディスクにコピーする(525)。次いで、VDAMは、SIEにより、SAVDにおけるソフトウェア・パッケージのインストールを開始し、ソフトウェア・アプリケーションをインストールするためのアクティブ化スクリプトが実行される(530)。VDAMは、新しいSAVDのエントリを付加することにより、ベースOSディスクにおけるアクティブなSAVDのローカル・リストを更新する(535)。必要に応じて、ソフトウェア・パッケージのインストール又はアクティブ化スクリプトにより要求された場合、ターゲットOSシステムは再起動される。
【0058】
VDAMが、SAVDが除去されたことを検出(テスト520に対してイエスと回答)すると、アクティブ化の際にSAVDからベースOS仮想ディスクにコピーされた関連する非アクティブ化スクリプトが実行される(540)。VDAMは、SIMを実行して、除去されるSAVDに対応するソフトウェア・パッケージのインストールを取り消す。
【0059】
SAVDの非アクティブ化スクリプトは、ベースOS仮想ディスクから除去される(545)。VDAMは、SAVDのエントリをSAVDのリストから削除する(550)。必要に応じて、ソフトウェア・パッケージのアンインストール又は非アクティブ化スクリプトにより要求された場合、ターゲットOSシステムは再起動される。
【0060】
サービスとして機能するために、VDAMは、ループを開始し(テスト520に対してノーと回答)、ターゲットOSにおける仮想ディスクの追加/除去に関連した仮想システム・イベントを収集し、処理することができる。新しいSAVDに関するイベントを受信すると、VDAMは、これをアクティブ化するためのステップを実行し、除去されたSAVDに関するイベントを受信すると、VDAMは、これを非アクティブ化するためのステップを実行する。システム・イベントを検出するデーモンとして開始されたVDAM上のループのために、仮想ディスクのインストール又は除去(535、550)を実行した後、ステップ510へのループが実行される。
【符号の説明】
【0061】
100:準備サイトサーバ
110:仮想管理サーバ
140、155、160:コンポーネント
150:ファイル
400:顧客のシステム環境
図1
図2
図3
図4
図5