JP2015046159A - 仮想マシンデプロイ及び管理エンジン - Google Patents

仮想マシンデプロイ及び管理エンジン Download PDF

Info

Publication number
JP2015046159A
JP2015046159A JP2014156403A JP2014156403A JP2015046159A JP 2015046159 A JP2015046159 A JP 2015046159A JP 2014156403 A JP2014156403 A JP 2014156403A JP 2014156403 A JP2014156403 A JP 2014156403A JP 2015046159 A JP2015046159 A JP 2015046159A
Authority
JP
Japan
Prior art keywords
host
host computer
virtual machine
source
deployment
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.)
Granted
Application number
JP2014156403A
Other languages
English (en)
Other versions
JP6490359B2 (ja
Inventor
ヘグダル グルラジャ
Hegdal Gururaja
ヘグダル グルラジャ
カサラ キラン
Kasala Kiran
カサラ キラン
エム.エス. マリチェティ
M S Marichetty
エム.エス. マリチェティ
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.)
VMware LLC
Original Assignee
VMware LLC
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 VMware LLC filed Critical VMware LLC
Publication of JP2015046159A publication Critical patent/JP2015046159A/ja
Application granted granted Critical
Publication of JP6490359B2 publication Critical patent/JP6490359B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L47/00Traffic control in data switching networks
    • H04L47/70Admission control; Resource allocation
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • 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/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Debugging And Monitoring (AREA)
  • Hardware Redundancy (AREA)
  • Combined Controls Of Internal Combustion Engines (AREA)

Abstract

【課題】 効率的な仮想マシンデプロイ及び管理エンジンを提供する。【解決手段】仮想マシンデプロイ及び管理エンジンは、デプロイ時間マトリクスに基づいて、仮想マシンを物理ホストコンピュータにデプロイする。デプロイ時間マトリクスは、仮想マシンをあらゆるホストコンピュータからあらゆる他のホストコンピュータにクローニング又はデプロイするのに使用される大まかな時間量を指定する。仮想マシンデプロイ及び管理エンジンは、デプロイ時間に基づいてデプロイ経路を選択し、クローン動作又はデプロイ動作を実行する。【選択図】 図6

Description

本発明は、一般的にはコンピュータ及びコンピュータシステムの分野に関する。より詳細には、本発明は、コンピュータシステム内の仮想マシンのデプロイ及び管理に関する。
仮想マシン(VM : Virtual Machine)は、実際の物理コンピュータシステムのソフトウェア抽象化又は「仮想化」である。各VMは、物理コンピュータの全体構造を表すことができ、したがって、通常、仮想システムハードウェア及びゲストシステムソフトウェアの両方を有する。仮想システムハードウェアは通常、少なくとも1つの仮想CPUと、仮想メモリと、仮想ディスク等の少なくとも1つの記憶装置と、1つ以上の仮想装置とを含む。VMの全ての仮想ハードウェア構成要素をソフトウェアで実施して、対応する物理構成要素をエミュレートすることができる。ゲストシステムソフトウェアは通常、必要に応じて、ゲストオペレーティングシステム及びドライバを含む。
往々にして、リソースを新しい仮想マシンに割り振り、オペレーティングシステムをロードしてブートし、次に特定のアプリケーションをロードして開始することによって最初から新しい仮想マシンを開始するのではなく、システムオペレータは、現在実行中であるマシン及び電源が落とされているマシンを含め、既存の仮想マシンのコピーである新しい作業仮想マシンを作成することが役立つと判断する。このようにして仮想マシンを開始するために、典型的なプロセスは、適するホストでの新しい仮想マシンの作成から開始し、新しい仮想マシンは既存のソース仮想マシンのコピーである。実行状態である既存のソース仮想マシンの内容をクローニングするには、ソースマシンファイルシステムの「スナップショット」が、通常はソースマシンに常駐するソフトウェアを用いてとられる。スナップショットは、ある瞬間でのソースマシンファイルシステムの完全な状態のイメージを提供する。電源が落とされている仮想マシンをクローニングするには、スナップショットは必要ない。
新しいVMがソースマシンのコピーであるために、新しいVMは、新しい仮想マシンに関連付けられた記憶装置にクローニングされる。クローニングが完了した後、新しいVMのオペレーティングシステムをロードしてブートすることができ、新しいVMの特定のアプリケーションをロードし開始することができる。このクローニング動作を実行する多くの方法がある。典型的な計算環境では、新しいVMは、ネットワークを介してソースマシンに接続され、データはそのネットワークを介して転送される。VM記憶装置はローカルであってもよく(VMをホストする物理マシンに直接取り付けられるディスクドライブの全部又は一部等)、又はVMからアクセス可能なストレージエリアネットワーク(Storage Area Network : SAN)にリモートに配置することもできる。特定のハードウェア及びソフトウェアの詳細に関係なく、クローニング動作には相当量の時間がかかることがある。時間量は、実施の詳細、結果としての平均データ転送速度、及び転送しなければならないソースマシンファイルシステムのサイズに従って変わる。2008年に一般的に使用されている典型的なマシン及びネットワークでは、ソースファイルシステムのサイズは50GB以上であり得、典型的なデータ転送速度は約20MB/sであり得る。したがって、完全なクローニング動作は少なくとも2500秒又は約40分かかり得る。特にはるかに大きなファイルシステムを有し得るデータ集約アプリケーション(data-intensive applications)を実行中のサーバの場合、かなり長い時間が希ではない。
本発明によれば、請求項1に記載のコンピュータシステムが提供される。
本発明によれば、請求項9に記載の方法が提供される。
本発明によれば、請求項15に記載のコンピュータ可読記憶媒体が提供される。
一例では、コンピュータネットワークに接続された複数のホストでの仮想マシンのデプロイを管理する方法が記載される。複数のホストは、ソースホストコンピュータ及び1つ以上のターゲットホストコンピュータを含む。方法は、ソースホストコンピュータに常駐する仮想マシンを、第1のターゲットホストを有する複数のターゲットホストコンピュータにデプロイする要求を受信することができる。方法は、複数のホスト間でのデプロイ時間を決定すること、及び決定されるデプロイ時間に基づいて、ソースホストコンピュータから第1のターゲットホストへの経路を決定することを更に含む。方法は、決定される経路に基づいて、仮想マシンのコピーをソースホストコンピュータから第1のターゲットホストにデプロイすることを含む。
一例では、コンピュータネットワークに接続される複数のホストでの仮想マシンのデプロイを管理するコンピュータ可読プログラムコードを記憶する、非一時的なコンピュータ可読記憶媒体が記載される。複数のホストは、ソースホストコンピュータ及び1つ以上のターゲットホストコンピュータを含む。コンピュータ可読プログラムコードは、ソースホストコンピュータに常駐する仮想マシンを、第1のターゲットホストを有する複数のターゲットホストコンピュータにデプロイする要求を受信するコンピュータ可読プログラムコードと、複数のホスト間でのデプロイ時間を決定するコンピュータ可読プログラムコードとを含む。コンピュータ可読プログラムコードは、決定されるデプロイ時間に基づいて、ソースホストコンピュータから第1のターゲットホストへの経路を決定するコンピュータ可読プログラムコードと、決定される経路に基づいて、仮想マシンのコピーをソースホストコンピュータから第1のターゲットホストにデプロイするコンピュータ可読プログラムコードとを更に含む。
一例では、仮想化計算システムが記載される。仮想化計算システムは、ソースホストコンピュータと、第1のターゲットホストを有する複数のターゲットホストコンピュータと、ソースホストコンピュータとターゲットホストコンピュータとを接続するネットワークとを含む。仮想化計算システムは、複数のターゲットホストコンピュータへの仮想マシンのデプロイを管理するように構成される管理サーバを更に含む。管理サーバは、ソースホストコンピュータに常駐している仮想マシンを複数のターゲットホストコンピュータにデプロイする要求を受信し、複数のホスト間でのデプロイ時間を決定し、決定されるデプロイ時間に基づいて、ソースホストコンピュータから第1のターゲットホストへの経路を決定するように構成される。管理サーバは、決定される経路に基づいて、ソースホストコンピュータから第1のターゲットホストに仮想マシンのコピーをデプロイするように更に構成される。
一例では、第1の仮想マシンコピーがデプロイされた後、第2の仮想マシンコピーは、仮想マシンのデプロイコピーから第1のターゲットホストにローカルにデプロイされる。
一例では、第1の仮想マシンのデプロイコピーは、第1のターゲットホストの第1のデータ記憶装置に記憶され、第2の仮想マシンは、第1の仮想マシンのデプロイコピーを使用して、第1のターゲットホストの第2のデータ記憶装置にローカルにデプロイされる。
一例では、コンピュータネットワークによって接続される複数のホストでの変更イベントの検出に応答して、複数のホスト間のデプロイ時間を変更することができ、変更されたデプロイ時間に基づいて、ソースホストコンピュータから第1のターゲットホストへの第2の経路を決定することができ、仮想マシンのコピーは、決定される第2の経路に基づいて第1のターゲットホストにデプロイすることができる。
変更イベントは、ソースホストコンピュータから第1のターゲットホストへの経路に配置される複数のホストのうちの少なくとも1つの故障を含むことができる。
変更イベントは、コンピュータネットワーク上の2つ以上のホスト間のリンクの故障を含み、リンクは、ソースホストコンピュータから第1のターゲットホストコンピュータへの経路に配置される。
決定されるデプロイ時間は、デプロイ時間マトリクスに記憶することができる。
第1のターゲットホストから第2のターゲットホストへの経路を、決定されるデプロイ時間に基づいて決定することができ、仮想マシンのコピーをソースホストコンピュータから第1のターゲットホストにデプロイすると、第1のターゲットホストからの仮想マシンのコピーは、第1のターゲットホストから第2のターゲットホストへの決定される経路に基づいて、第2のターゲットホストにデプロイすることができる。
実施形態を実施し得る、管理ホストと、ソースホストと、ターゲットホストとで構成されるコンピュータネットワークを示すブロック図である。 仮想マシンデプロイ及び管理エンジン(VMDME : Virtual Machine Deployment and Management Engine)によって実行されて、仮想マシンを、コンピュータネットワークに接続されたホストにデプロイするステップを示す流れ図である。 仮想マシンデプロイが行われる、ソースをターゲットホストに接続するコンピュータネットワークを示すブロック図である。 VMDMEによって使用され、仮想マシンをデプロイする経路を決定するデプロイ時間マトリクスを示す表である。 VMDMEによって実行され、2つのデータ記憶装置に接続されるターゲットホストへの仮想マシンのコピーをデプロイさせるステップを示すブロック図である。 VMDMEによって実行され、2つのデータ記憶装置に接続されるターゲットホストへの仮想マシンのコピーをデプロイさせるステップを示すブロック図である。 VMDMEによって実行され、2つのデータ記憶装置に接続されるターゲットホストへの仮想マシンのコピーをデプロイさせるステップを示すブロック図である。 VMDMEによって実行され、デプロイ時間マトリクスから決定される経路に従って、仮想マシンをソースから、コンピュータネットワークで接続されたホストにデプロイさせるステップを示すブロック図である。 VMDMEによって実行され、デプロイ時間マトリクスから決定される経路に従って、仮想マシンをソースから、コンピュータネットワークで接続されたホストにデプロイさせるステップを示すブロック図である。 VMDMEによって実行され、デプロイ時間マトリクスから決定される経路に従って、仮想マシンをソースから、コンピュータネットワークで接続されたホストにデプロイさせるステップを示すブロック図である。 仮想マシンデプロイを行う、ソースをターゲットホストに接続するコンピュータネットワークを示すブロック図であり、ネットワークでのリンクは、デプロイ時間の変更を受ける。 コンピュータネットワークでのリンクの1つのデプロイ時間の変更前後のデプロイ時間マトリクスを示す表である。 コンピュータネットワークでのリンクの1つのデプロイ時間の変更前後のデプロイ時間マトリクスを示す表である。 VMDMEによって実行され、コンピュータネットワークに接続されたホストに仮想マシンをデプロイさせるステップを示すブロック図であり、デプロイ中、コンピュータネットワークでのリンクの1つのデプロイ時間に変更が生じる。 VMDMEによって実行され、コンピュータネットワークに接続されたホストに仮想マシンをデプロイさせるステップを示すブロック図であり、デプロイ中、コンピュータネットワークでのリンクの1つのデプロイ時間に変更が生じる。 VMDMEによって実行され、コンピュータネットワークに接続されたホストに仮想マシンをデプロイさせるステップを示すブロック図であり、デプロイ中、コンピュータネットワークでのリンクの1つのデプロイ時間に変更が生じる。 仮想マシンのデプロイ時間中にソース又はホストが利用可能ではないことに応答して、VMDMEによって実行されるステップを示す流れ図である。 VMDMEによって実行され、コンピュータネットワークに接続された仮想マシンをデプロイさせるステップを示すブロック図であり、デプロイ中、ソースホストが故障する。 VMDMEによって実行され、コンピュータネットワークに接続された仮想マシンをデプロイさせるステップを示すブロック図であり、デプロイ中、ソースホストが故障する。 VMDMEによって実行され、コンピュータネットワークに接続された仮想マシンをデプロイさせるステップを示すブロック図であり、デプロイ中、ソースホストが故障する。 仮想マシンデプロイが行われる、ソースをターゲットホストに接続するコンピュータネットワークを示すブロック図である。 コンピュータネットワークでのリンクが故障する前後のデプロイ時間マトリクスを示す表である。 コンピュータネットワークでのリンクが故障する前後のデプロイ時間マトリクスを示す表である。 VMDMEによって実行され、コンピュータネットワークに接続される仮想マシンをデプロイさせるステップを示すブロック図であり、デプロイ中、コンピュータネットワークでのリンクが故障する。 VMDMEによって実行され、コンピュータネットワークに接続される仮想マシンをデプロイさせるステップを示すブロック図であり、デプロイ中、コンピュータネットワークでのリンクが故障する。 VMDMEによって実行され、コンピュータネットワークに接続される仮想マシンをデプロイさせるステップを示すブロック図であり、デプロイ中、コンピュータネットワークでのリンクが故障する。
図1は、実施形態を実施し得るホストコンピュータネットワークの一例を示すブロック図である。複数のホストは、ソースホスト140及び1つ以上のターゲットホスト150(例えば、150〜150)を含め、ネットワーク170に接続される。ホストは、デスクトップコンピュータ、ラップトップ、又はサーバコンピュータとすることができ、それぞれ仮想化システムアーキテクチャを実施することが可能である。図1を参照すると、ソースホスト140は、ネットワーク170に接続されたホストを表し、物理ハードウェアプラットフォーム159と、ハイパーバイザ148と、1つ以上のVM(仮想マシン)を実行することができるVM実行空間154とを含む。物理ハードウェアプラットフォーム159は、1つ以上のCPU156と、ランダムアクセスメモリ(RAM)157と、ネットワークインタフェース(NIC)158とで構成される。ハードウェアプラットフォーム159は、x86アーキテクチャ等の任意のいくつかのシステムアーキテクチャを実施することができる。
ソースホスト140は物理データ記憶装置145に接続される。いくつかの実施形態では、データ記憶装置145は単一のディスク記憶媒体とすることができる。データ記憶装置145はSCSI、ファイバチャネル、又はiSCSI記憶装置アレイとすることもできる。記憶装置アレイは、ネットワーク接続ストレージ(NAS:Network−Attached Storage)ファイラ(filer)又はストレージエリアネットワーク(SAN : Storage Area Network)を介するブロックベースの装置等の任意のタイプのものとすることができる。さらに、ホスト150は1つ以上のデータ記憶装置180(例えば、180〜180)に接続することができ、このデータ記憶装置は、上述したタイプの記憶装置のものとしてもよい。さらに、データ記憶装置180は、単一のホスト150専用としてもよく、又は2つ以上のホスト150間で、若しくはソースホスト140と共有してもよい。
ハイパーバイザ148は、ハードウェアプラットフォーム159でカプセル化されるハードウェア及びCPUのリソースを管理し、VM実行空間154での1つ以上のVM155の実行を可能にするソフトウェアである。VM155ごとに、ハイパーバイザ148は、仮想CPU及び仮想記憶装置等のエミュレートされるハードウェアを含む仮想ハードウェアプラットフォーム151を管理する。ハイパーバイザ148の一例は、VMwareのvSphere製品の構成要素として含まれ、この製品は、カリフォルニア州パロアルト(Palo Alto)に所在のVMware,Inc.から市販されている。ハイパーバイザがホストオペレーティングシステムと併せて実施されるホスト仮想マシンシステム等の他の仮想化コンピュータシステムも意図されることを認識されたい。
図1に示されるように、VM155はVM実行空間154で実行される。一般に、VMは物理コンピュータのソフトウェア実施である。VMは、アプリケーションを実行可能なゲストオペレーティングシステムのインストールをサポートする仮想ハードウェアプラットフォームを実施する。ゲストオペレーティングシステムの例としては、Microsoft WINDOWS(登録商標)、LINUX(登録商標)等の任意の周知の市販のオペレーティングシステムが挙げられる。図1に示されるように、VM155は、仮想ハードウェアプラットフォーム151と、ゲストオペレーティングシステム152と、1つ以上のゲストアプリケーション153とを含む。VM155は、物理コンピュータに対応する単一の仮想化ユニットとして記述されるが、本明細書に記載の技法に従って、VMの他の実施形態を利用してもよいことを認識されたい。例えば、いくつかの実施形態では、VM155は、仮想アプライアンスと呼ばれることがある1つ以上のVMの集まりとすることができ、これは、1つのユニットとしてパッケージされ、維持され、更新され、管理されて、特定のサービスセットを提供する1つ以上のアプリケーションを実行する。仮想アプライアンスの一例は、vApp製品であり得、この製品はカリフォルニア州パロアルト(Palo Alto)に所在のVMware,Inc.から市販されている。他の実施形態では、VM155は、単にテンプレートと呼ばれることがある仮想マシンテンプレートであることができ、これは、管理者が予め構成された仮想マシンの多くのコピーをリモートホストにデプロイ(deploy)又はクローニングするのに使用し得る仮想マシンから作成される再使用可能なイメージである。
さらに、VM155の状態(例えば、仮想メモリの内容、仮想ディスク記憶装置の内容、及び仮想CPUの実行状態)は、データ記憶装置145内のVMイメージ160を含む複数のデータファイルに記憶されたデータで表すことができる。いくつかの実施形態では、VMイメージ160を含む1組のデータファイルは、仮想ディスク内容を記憶する1つ以上のファイル(例えば、VMDKすなわち仮想マシンディスクファイル161)と、VM155の仮想ハードウェア構成データを記憶する1つ以上のファイル(例えば、VMXファイル162)と、トラブルシューティングに使用することができるVM155の活動ログを記憶する1つ以上のログファイル163とを含み得る。VM155の現在状態を完全に記述する他のデータファイルをVMイメージ160に含むこともできる。VM155に対応するVMイメージ160を単に「VM160」と同義で呼び得ることを認識されたい。
図1は管理ホスト100も示し、管理ホスト100は管理サーバ120をホストする。ホスト150の場合と同様に、管理ホスト100は、デスクトップ、ラップトップ、又は仮想化システムアーキテクチャを実施可能なサーバ級コンピュータとすることができる。管理サーバ120は、ネットワーク170に接続されたホストの単一制御点として機能するコンピュータプログラムを含むことができる。管理サーバ120は、図1に示されるように、中央サーバに存在して実行してもよく、又は代替的に、ソースホスト140若しくはホスト150のうちの1つでのVMに存在して実行してもよい。管理サーバ120は、ソースホスト140及び各ホスト150との通信を維持し、ホスト間での負荷平衡及びデータ記憶装置間での作業負荷平衡等の管理タスクを実行する。
管理サーバ120は、ホスト150へのVMのデプロイも管理する。VMデプロイは、(1)いくつかのVMを提供して、1つ以上のホスト150で実行させる要求を受信することであって、複数のVMを単一のホスト150に提供し得る、受信すること、(2)ソースホスト140に常駐する、「ソース」VMと呼ばれる特定の仮想マシンのデータ記憶装置145に記憶されているVMイメージ160のデータファイルにアクセスすること、(3)VMを提供すべきホスト150にVMイメージ160のコピーを送信すること、及び(4)各ホスト150に関連付けられた各データ記憶装置180にVMイメージ160の送信されたコピーを記憶すること、を伴う。これらのステップが、特定のホスト150に対して完了した後、VMはそのホスト150にデプロイされる。VMがホスト150にデプロイされると、VMを開始し、そのホストで実行を開始することができる。
大規模な計算環境(大規模組織のデータセンタ等)では、管理者は多くの場合、様々な目的で多数のVMをデプロイすることが求められる。例えば、VMを従業員にデプロイして、様々な職務を実行させることができ、又はVMをデプロイして、データベース又はプリントサーバとして実行することができる。これには、VM160の多数のコピーの送信が伴い、ネットワーク170に負荷を掛けるおそれがある。従来のVMデプロイ実施では、単一のソースVM160を、ネットワークでのVMのデプロイ全体のソースとして使用していた。この手法にはいくつかの欠点がある。例えば、単一のソースVMデプロイが使用される場合、デプロイ全体に単一故障点が存在する。換言すれば、デプロイプロセスには冗長性が内蔵されない。次に、ホスト150に多くのVMをデプロイする必要がある場合、単一ソースデプロイは、ソースVM160の複数のコピーをホスト150に送信することになり、結果として、ネットワークトラフィックが増大する。さらに、単一ソースVMデプロイは、ソースホストと宛先ホストとの経路の調整を提供せず、これにより、ソースホスト及び宛先ホストが互いから地理的に離れている場合、非効率性が生じる。
単一ソースVMデプロイの欠点に対処するために、管理サーバ120は仮想マシンデプロイ及び管理エンジン(Virtual Machine Deployment and Management Engine : VMDME)130を含む。VMDME130は、ネットワーク170に接続された複数のターゲットホスト150へのソースVMのデプロイを開始し管理する。図1に示されるように、ソースホスト140はソースVM155をホストし、VM155の状態情報(state information)はVM160に記憶される。上述したように、VM160は、ネットワーク170に接続された他のホスト150にデプロイすべきデータを含む。VMDME130は、デプロイ時間マトリクス(deployment time matrix)135を使用して、VM(例えば、VM160)の動作の、ネットワーク170に接続された任意のホスト150へのクローニング動作又はデプロイ動作を実行するように構成される。
一実施形態では、VMDME130は、あらゆるホストからあらゆる他のホストへのVMのクローニング又はデプロイに必要なデプロイ時間マトリクスを計算するように構成される。例えば、示される実施形態では、デプロイ時間マトリクス135は、ソースホスト140から各ターゲットホスト150へのデプロイ時間を指定するとともに、ホスト150自体の各対間のデプロイ時間を指定する。デプロイ時間は、管理サーバ120が仮想マシンをソースから宛先にクローニング又はデプロイするのにかかる大まかな時間量を表す。
いくつかの実施形態では、VMDME130は、ネットワーク170を介していくつかのバイトを送信し、ホスト150を接続するリンク(link)を介するポイントツーポイントデータ送信時間を測定することにより、デプロイ時間マトリクス135を初期化する。データ送信時間は、デプロイ時間マトリクス135に記憶されるデプロイ時間を計算する基礎として使用される。さらに、VMDME130の実施形態は、ネットワーク容量又は利用率の変化等の、ホスト150間のデータ送信時間に影響を及ぼす可能性がある変化について、ネットワーク170を監視し得る。VMDME130の実施形態はまた、データデプロイ時間に影響を及ぼし得るホスト150のCPU利用率及びメモリ利用率、又はホスト150に接続されたデータ記憶装置180のディスクI/O活動を監視することもできる。ネットワーク変更の結果としてデータ送信時間の任意の変更が検出されるか、又はホスト及びデータ記憶装置の活動の結果としてデプロイ時間の任意の変更が検出されると、VMDME130はそれに従って、デプロイ時間マトリクス135を更新し得る。
図2は、図1に示されるように、VMDME130の実施形態によって実行され、ソースVM160を複数のターゲットホスト150にデプロイするプロセスのステップを示す流れ図である。ステップ200において、VMDME130は、システム管理者又はエンドユーザから、いくつかのVMを1組のホスト150にデプロイするデプロイ要求を受信する。実施形態では、VMDME130は、各ターゲットホストで利用可能なリソース(例えば、空き容量)に基づいて、各ターゲットホストにデプロイするVMの数を決定する。いくつかの実施形態では、管理者は、ユーザインタフェース又は他のタイプの入力機構を通して要求を行う。いくつかの実施形態では、デプロイ要求は、第1のソースホスト140と、ソースホスト140に接続されたデータ記憶装置145に記憶されたソースVM160と、デプロイされたVMを受け取るべき1組のターゲットホスト150と、各ホスト150にデプロイすべきVMの数と、デプロイされたVMのコピーを記憶すべき1組のデータ記憶装置180とを指定する。
ステップ205において、VMDME130は、デプロイ時間マトリクス135を決定し、初期化する。上述したように、デプロイ時間マトリクス135は、ネットワーク170に接続されたホスト150の各対間のリンクを介するポイントツーポイントデータ送信時間を提供する。データ送信時間は、いくつかの実施形態では、VMDME130がいくつかの数のバイトをホスト150からホスト150に送信することによって決定される。但し、a≠bである。決定された送信時間は、送信バイトが、ホスト150とホスト150との間のリンクを介して移るのにかかる時間であり、送信バイトは、コンピュータネットワーク170内の他のいかなるホスト150も通過しない。同様にして、ソースホスト140と各ホスト150との間のデータ送信時間が決定される。上述したように、ホスト間のデータ送信時間は、例えば、ネットワーク容量、ディスクI/O、ネットワークトラフィック、及び個々のホストでのCPU負荷等のいくつかの要因に依存し得る。
次に、ステップ210において、VMDME130は、ホスト150ごとに、1組の好ましい経路を決定し、好ましい各経路は、ネットワーク170を介してホスト150からあらゆる他のホスト150に進む。但し、a≠bである。一実施形態では、好ましい経路は、ソースVM160をデプロイするのにVMDME130が選択する元となるデプロイ経路である。例えば、ネットワーク170に接続された3つのホスト(例えば、ホスト150、150、及び150)がある場合、VMDME130は、9つの別個の好ましい経路(すなわち、3つのホスト150×(ホスト150ごとに2つの経路+ソースホスト140からホスト150への1つの経路)=9つの経路)を決定する。好ましい経路は、デプロイ時間マトリクス135に基づいて決定される。一実施形態では、一対のホスト(すなわちソースホスト140及びホスト150)間の好ましい経路は、ネットワーク170の支配的な状態を所与として、ホスト間の最短デプロイ時間を有する。一対のホスト150(例えば、ホスト150及びホスト150)間の好ましい経路は、直接リンクを介してもよく、又は別のホスト(例えば、150)を通過してもよい。例えば、ホスト150からホスト150へのデプロイ時間が2分であり、ホスト150からホスト150へのデプロイ時間が5分であり、ホスト150からホスト150へのデータ送信時間が10分である場合、ホスト150からホスト150への好ましい経路はホスト150を通過する(2分+5分<10分であるため)。
図3A及び図3Bはそれぞれ、図2のステップ205及び210に示されるような、デプロイ時間マトリクス135及び1組の好ましい経路の決定を示すブロック図及び表である。図3Aは、実施形態によるソースホスト及びネットワーク300に接続された3つのターゲットホストを示す。示されるように、ソースホスト140とホスト150、150、及び150のそれぞれとの間には直接リンク(すなわち、いかなる介在リンクもないリンク)がある。さらに、一般的に言えば、各ホスト150は他の各ホスト150と直接リンクされる。但し、a≠bである。示されるように、デプロイ時間が各リンクに関連付けられる。例えば、ソースホスト140からホスト150へのデプロイ時間は10分であり、ホスト150からホスト150へのデプロイ時間は15分であるなどである。
図3Aに示されるデプロイ時間は、図3Bに示されるデプロイ時間マトリクス135の実施形態を初期化する際に使用される。一実施形態では、デプロイ時間マトリクス135は、複数の行及び列を有する表とすることができる。図3Bを参照すると、第1の列は「リンク」と記される。この列は、ホスト150の各対間の全ての直接リンクを記載する。「デプロイ時間」と記される図3Bの第2の列は、図3Aに示される個々の各リンクのデプロイ時間を指定する。第3の列は、「好ましい経路」と記され、2つのホスト150間の特定のリンクが、全体デプロイの現在段階での、ソースホストと任意のターゲットホストとの間の任意の好ましいリンクにあるか否かを指定する。「Yes」エントリは、特定のリンクが、ソースホストと1つ以上のターゲットとの間の好ましいリンクにあることを指定し、一方、「No」エントリは、リンクが任意のいかなる好ましい経路上にもないことを指定する。一対のホスト150(又はソースホスト140とホスト150)間の好ましい経路は、上述したように、それらのホスト間の最短デプロイ時間を有するネットワーク経路である。例えば、図3Bを参照すると、ソースホスト140とホスト150との間のリンクは、ソースホスト140からホスト150への最短デプロイ時間を有するネットワーク経路の一部であるため、好ましい経路にあるものとして識別される。実際に、ソースホスト140とホスト1501との間のリンクは、ソースホスト140とホスト150との間の好ましい経路全体を含む。
同様にして、ホスト150とホスト150との間のリンクが、ソースホスト140とホスト150との間で最短デプロイ時間を有するネットワーク経路の一部であるため、好ましい経路にあるものとして図3Bにおいて識別される。実際には、デプロイ時間マトリクス135の1行目及び4行目に示されるように、ソースホスト140とホスト150との間のリンクと、ホスト150とホスト150との間のリンクとを含む経路は、合計デプロイ時間20分(すなわち、10分+10分)を有する。これとは対照的に、ソースホスト140とホスト150との間のリンクは、デプロイ時間マトリクス135の2行目に示されるように、デプロイ時間30分を有する。
上述したように、ソースホストとターゲットホストとの間のいかなる好ましい経路上にもないリンクは、好ましい経路列において「No」エントリで識別される。例えば、図3Bを参照すると、2行目のソースホスト140からホスト150へのリンクは、それぞれが最短デプロイ時間を有する、ソースホスト140からホスト150、150、及び150の任意のホストへのいかなる経路上にもないため、好ましい経路上にない。
図3Bに示されるデプロイ時間マトリクス135の4列目は「前提条件(Precondition)」と記される。この列は、特定のリンクが、好ましい経路の一部としてデプロイ可能になるために満たさなければならない前提条件を指定する。一般に、満たさなければならない前提条件は、ホストへのVMのデプロイである。例えば、ソースホスト140からホスト150へのリンクは、指定される前提条件を有さない。換言すれば、このリンクは最初から、いかなるVMデプロイも行われる前に、ソースVMが最初にソースホスト140に記憶されるため、好ましい経路(すなわち、ソースホスト140からホスト150への経路)にデプロイ可能である。これとは対照的に、ホスト150からホスト150へのリンクは、VMがホスト150にデプロイされた後、好ましい経路(特に、ソースホスト140からホスト150への好ましい経路)にデプロイ可能になる。これは、先に示したように、ソースホスト140からホスト150への好ましい経路がソースホスト140からホスト150に進み、次に、ホスト150からホスト150に進むため、該当する。したがって、VMをソースホスト140からホスト150に、それらの間の好ましい経路を介してデプロイするために、VMDME130はまず、ソースホスト140からホスト150にデプロイし、次に、ホスト150からホスト150にデプロイしなければならない。
再び図2を参照すると、ステップ210において、好ましい経路が決定された後、VMDME130は、ステップ220において、VM160の全体デプロイの現在段階でソースとして機能すべきソースホスト及びソースVMを決定する。例えば、ステップ200において受信される要求で指定されたソースホスト140はまず、VM160の全体デプロイのソースホストとして機能する。しかし、VMはターゲットホスト150にデプロイされるため、デプロイされたターゲットホスト150のうちの1つ以上は、VM160の全体デプロイの後続段階でソースホストとして機能し得る。例えば、VMDME130が、全体デプロイのある段階中、デプロイ時間マトリクス135に基づいて、デプロイホスト150と、まだデプロイされていない別のホスト150への経路が、初期ソースホスト140と同じターゲットホスト150への経路よりも短いデプロイ時間を有すると判断する場合、VMDME130は、ホスト150を現在のデプロイ段階のソースとし、ホスト150からターゲットホスト150にデプロイする。
同様に、ステップ225において、VMDME130は、VM160の全体デプロイの現在段階においてデプロイすべき1組の現在ターゲットホストを決定する。1組の現在ターゲットホストは、ステップ200において要求内で提供される1組のホスト150の部分集合である。例えば、全体デプロイの現在段階では、VMDME130は、現在のソース150から、まだデプロイされていないホスト150への好ましい経路が別のホスト150を通過すると判断し得る。したがって、VMDME130は、ホスト150を現在のターゲットホストとし、全体デプロイの現在段階において、VM160のコピーをホスト150からホスト150にデプロイする。ホスト150へのデプロイが首尾良く完了し、ホスト150と150との間のデータ送信時間が変わらないままであると仮定すると、VMDME130は、デプロイの後続段階で、ホスト150を現在ターゲットホストとし、VM160のコピーをホスト150からホスト150にデプロイする。
ステップ230において、VMDME130は、決定された現在のソースホストから決定された現在のターゲットホストへの、デプロイ時間マトリクス135に基づいて決定される好ましい経路に沿ったVM160のコピーのデプロイを開始する。いくつかの実施形態では、デプロイは、それぞれがVM160のコピーをホスト150に送信し、VM160のコピーを、ホスト150に接続されたデータ記憶装置180に記憶するいくつかの並列スレッドを開始することによって実行される。
ステップ235において、VMDME130の実施形態は、必要であれば、第1のVMに既にデプロイされたホスト150での「ローカル」VMデプロイを開始する。ホスト150でのローカルVMデプロイは、ホスト150に接続されたデータ記憶装置180からホスト150に既にデプロイされたVM160の、これもまたホスト150に接続されたデータ記憶装置180に記憶された1つ以上の同一のVMへのコピーである。ローカルVMデプロイは、2つ以上のVMをホスト150にデプロイすべきイベントにおいて、ホスト150に対して開始される。VMをローカルにデプロイすることにより、ソースホストからホスト150にVM160の複製コピーを送信することが回避される。例えば、ステップ200において受信される要求により、ホスト150が、ホスト150にデプロイされるVM160の2つのコピーを有するべきであると指定される場合、VMDME130は、好ましい経路を介してVM160の第1のコピーをホスト150にデプロイする。VM160の第1のコピーがホスト150に首尾良くデプロイされた後、VMDME130は、第1のデプロイVMのコピーを、ホスト150に接続されたデータ記憶装置180にコピーする。したがって、そうすることにより、VMDME130は、ネットワーク170を介してVM160のコピーを2回送信することを回避する。
さらに、ホスト150が2つ以上のデータ記憶装置180に接続され、2つ以上のVMを接続された各データ記憶装置にデプロイすべき場合、VMDME130は、デプロイ時間マトリクス135から決定される好ましい経路を介して、VM160の第1のコピーを接続された第1のデータ記憶装置180にデプロイする。VM160の第1のコピーをデプロイした後、VMDME130は、ホスト150に接続された第2のデータ記憶装置180に、デプロイされた第1のVMをコピーする。各データ記憶装置180で要求される追加のVMは、そのデータ記憶装置180に既に記憶されているVMからコピーされる。これは、複数のVMをデータ記憶装置間でコピーすることから生じるいかなる遅延も回避することによってデプロイ時間を更に短縮する。
図4A、図4B、及び図4Cは、VMDME130の実施形態による単一のターゲットホストへのソースVMのデプロイの一例の段階を示すブロック図である。図4Aでは、ソースホスト140は、VM160が記憶されたデータ記憶装置145に接続される。さらに、ターゲットホスト150はデータ記憶装置180及び180に接続される。VMDME130は、管理サーバ120の制御下で実行され、VM160の6つのコピーをソースホスト140からホスト150にデプロイするデプロイ要求を受信し、3つのコピーはデータ記憶装置180にデプロイすべきであり、3つのコピーはデータ記憶装置180にデプロイすべきである。示されるように、VMDME130は、VM160の第1のコピー(VM460)を、ターゲットホスト150に接続されたデータ記憶装置180にデプロイする。図4A及び続く図では、破線で示されるVMはデプロイ中であるが、完全にはデプロイされていない。
図4Bでは、データ記憶装置180へのVM460のデプロイが完了する。この時点で、第1のVMをホスト150にデプロイした後、VMDME130は、残りの5つのVMを「ローカルに」デプロイすべきか否かを判断する。換言すれば、VM160の追加のコピーを、ネットワークを介してホスト150に送信する代わりに、VMDME130は、既にデプロイされたVM460をソースとして使用して、残りのVMをデプロイする。したがって、VMDME130は、VM160の3つのコピーを各データ記憶装置180にデプロイすべきであるため、データ記憶装置180へのVM460及び460のデプロイ及びデータ記憶装置180へのVM460のデプロイを開始する。
図4Cに示されるように、VM460、460、及び460は完全にデプロイされている。VM160の全体デプロイの最後の段階において、VMDME130は、残りの2つのVM(すなわち、VM460及びVM460)を、これらのVMをソースホスト140からデプロイする(そのようなデプロイは、ソースホスト140からホスト150へのネットワーク遅延による影響を受ける)のではなく、又はこれらのVMをデータ記憶装置180からコピーする(そのようなコピーは、データ記憶装置180と180とのデータ経路での任意の待ち時間による影響を受ける)のではなく、デプロイされたコピーVM460からデータ記憶装置180にコピーする。VM460及び460が完全にデプロイされた後、デプロイ全体が完了する。
図2を再び参照すると、決定された1組の現在のターゲットホストへのデプロイが完了した後、VMDME130は、ステップ240において、デプロイが、ステップ200において受信される要求において指定される全てのターゲットホスト150に対して行われたか否かを判断する。ステップ200においてデプロイ要求において指定される要求された数のVMが各ターゲットホスト150にデプロイされた場合、VM160の全体デプロイが終了する。
しかし、VMがまだデプロイされていないホスト150が残っている場合、VMDME130は、ステップ250において、ネットワーク170又はホスト150の任意のリソースの変化の検出に応答して、デプロイ時間マトリクス135を更新する。VMDME130によって検出されるリソースの変化は、ホスト150間の任意のリンクの容量の変化、ソースホスト140と任意のホスト150との間の任意のリンクの容量の変化、ネットワーク170のトポロジの変化、ホスト150間のリンクの故障、及び1つ以上のホスト150のリソースの変化(CPU若しくはメモリの利用率の変化又はディスクI/O活動の変化を含み得る)を含む。VMDME130がデプロイ時間マトリクス135に対して行う変更は、ホスト150間のデプロイ時間の更新、ソースホスト140とホスト150との間でのデプロイ時間の更新、及びホスト150間のリンクが現在、好ましい経路上にあるか否かを含む。前のデプロイ段階中に特定されるデプロイ時間及び他のメトリックを使用して、デプロイ時間及び好ましい経路情報を現在のデプロイ段階において更新し得る。さらに、任意のネットワーク170のリソースの変更が検出されない場合、デプロイ時間マトリクス135は変わらないままである。
デプロイプロセスは次に、ステップ210に戻り、VM160の全体デプロイの次の段階に好ましい経路を決定する。図2に示されるプロセスは、ステップ200においてデプロイ要求で受信される全てのホスト150が完全にデプロイされるまで繰り返される。
図5A、図5B、及び図5Cは、VMDME130の実施形態によって実行され、VMの複数のコピーを複数のホスト150にデプロイするステップを示すブロック図であり、各ホスト150は別個のデータ記憶装置180に接続され、2つ以上のVMが各ホスト150にデプロイされるべきである。示される実施形態では、VMDME130は、VM160の3つのコピーをソースホスト140から3つのホスト150、150、及び150のそれぞれにデプロイする。図5A、図5B、及び図5Cに示されるVMデプロイは、図3Bに示されるデプロイ時間マトリクス135に基づいて決定される好ましい経路に従って進む。
任意のVMをデプロイする前に、VMDME130は、デプロイ時間マトリクス135を使用して、ソースホスト140からホスト150への好ましい経路が、直接リンクを介してソースホスト140からホスト150に進むことを決定し、これは、図3Bに示されるように、デプロイ時間10分を有する。さらに、VMDME130は、ソースホスト140からホスト150への好ましい経路がソースホスト140からホスト150に進み、次にホスト150からホスト150に進むことを決定し、合計デプロイ時間は15分である(すなわち、10分+5分)。最後に、VMDME130は、ソースホスト140からホスト150に2つの好ましい経路があることを特定し、各経路は同じデプロイ時間を有する:(1)ソースホスト140からホスト150(デプロイ時間10分)、次にホスト150からホスト150に直接(15分)、又は(2)ソースホスト140からホスト1501(10分)、次にホスト150からホスト150(10分)、次にホスト150からホスト150(5分)。したがって、ソースホスト140からホスト150への好ましい各経路は同じデプロイ時間25分(すなわち、10分+15分=10分+10分+5分)を有する。
図5Aを参照すると、VMDME130は、VM160のコピーをVM460にデプロイし、これはホスト150のデータ記憶装置180に記憶される。図5Bでは、VM460はホスト150に首尾良くデプロイされている。VMDME130は次に、ソースホスト140からホスト150への好ましい経路内の第2のリンクに従って、ホスト150上のVM460の、ホスト150上のVM460へのデプロイを開始する。また、上述したように、ホスト150からホスト150へのリンクも、ソースホスト140からホスト150への好ましい第2の経路内のリンクでもある。したがって、VM460へのVM460のデプロイは、ソースホスト140からのVM160のデプロイをホスト150に進ませる。さらに、VMDME130は、ソースホスト140からホスト150への好ましい第1の経路内の第2のリンクに従って、VM460への直接のVM460のデプロイを開始する。最後に、図5Bは、VM160の3つのコピーを各ターゲットホストにコピーすべきであるため、VMDMEがVM460及びVM460をホスト150に「ローカルに」(すなわち、デプロイされたVM460をVM460及び460にコピーすることにより)デプロイすることを示す。
図5Cに示されるように、ホスト150上のVM460及び460へのローカルデプロイが完了する。さらに、ホスト150上のVM460へのデプロイ及びホスト150上のVM460へのデプロイも完了している。したがって、VMDME130は、VM460からホスト150上のVM460及びVM460へのローカルデプロイ及びVM460からホスト150上のVM460及びVM460へのローカルデプロイを開始する。なお、図5Bに示されたホスト150からホスト150へのデプロイは、VMDME130が図5Cに示されるデプロイを開始する前に既に開始されている(又は完了している)ため、図5Cでは、ホスト150からホスト150へのリンク(上述したように、ソースホスト140からホスト150への好ましい第2の経路内のリンク)では、VMのデプロイは必要なかった。
一実施形態によれば、VMDME130は、VMDME130にデプロイ時間を再計算させ得るコンピュータネットワーク170によって接続された複数のホスト150での1つ以上の変化イベントを検出し得る。変化イベントの例は、コンピュータネットワーク170での変化(例えば、待ち時間、接続性)、ホスト間の選択された(例えば、ソースホストコンピュータから第1のターゲットホストへの)経路に配置される1つ以上のホストの故障、及びホスト間の選択された(例えば、ソースホストコンピュータから第1のターゲットホストへの)経路に配置されるコンピュータネットワーク上の2つ以上のホスト間のリンクの故障を含み得る。更に詳細に後述するように、VMDME130は、複数のホスト間でのデプロイ時間の更新及び変更を行い、変更されたデプロイ時間に基づいて新しいデプロイ経路を選択し得る。
図6は、実施形態により、ソースを3つのホストに接続し、2つのホスト間のリンクに関連付けられたデプロイ時間が変化するネットワーク600のブロック図である。示されるように、ソースホスト140はホスト150、150、及び150のそれぞれにリンクされる。さらに、各ホスト150はその他の各ホスト150にリンクされる。但し、a≠bである。デプロイ時間が各リンクに関連付けられる。イベント610は、45分から10分への、ソースホスト140からホスト150へのリンクのデプロイ時間の変化を示す。
図6に示されるデプロイ時間の変化は、VMDME130の実施形態によって検出され、次に、デプロイ時間マトリクス135にその変更を反映させる。VMDME130が、図6に示される変化に応答してデプロイ時間マトリクス135に対して行う変更は、図7A及び図7Bに示される。
図7Aは、ソースホスト140からホスト150へのデプロイ時間が変化する前の、図6に示されるコンピュータネットワークの状態を反映するデプロイ時間マトリクス135を示す。図7Aに示されるように、以下のエントリが強調表示される:3行目、いかなる好ましい経路上にもない、ソースホスト140からホスト150へのリンクを指す、7行目、ソースホスト140とホスト150との間の好ましい経路上にある、ホスト150からホスト150へのリンクを指す、9行目、いかなる好ましい経路上にもない、ホスト150からホスト150へのリンクを指す。
ソースホスト140からホスト150へのリンクのデプロイ時間が45分から10分に変化したことの検出に応答して、VMDME130は、図7Aにおいて強調表示される3行を、図7Bに示されるように更新する。まず、ソースホスト140からホスト150へのリンクに関する3行目を参照すると、デプロイ時間は45分から10分に更新される。さらに、デプロイ時間の短縮により、好ましい経路、すなわち、ソースホスト140とホスト150との間の好ましい経路に現れる、ソース140からホスト150へのリンクが生じる。したがって、「Yes」エントリが3行目の好ましい経路列に配置される。
なお、図7Bを参照すると、7行目は、ホスト150からホスト150へのリンクがもはや、いかなる好ましい経路上にもないことを反映するように更新される。変更610前に、ホスト150からホスト150へのリンクは、ソースホスト140からホスト150(図6及び図7Aでは、デプロイ時間10分を有する)に進み、次にホスト150からホスト150(10分)に進み、次にホスト150からホスト150(5分)に進む、ソースホスト140からホスト150への好ましい経路の一部であった。したがって、変更610前、ソースホスト140からホスト150への好ましい経路は、合計デプロイ時間10分+10分+5分=25分を有した。しかし、変更610後、ソースホスト140とホスト150との間の新しいデプロイ時間は、ソースホスト140からホスト150への新しい好ましい経路が、ソースホスト140とホスト150との間のリンクであるため、10分である。したがって、ソースホスト140からホスト150への好ましい経路はもはや、ホスト150からホスト150へのリンクを含まない。ホスト150からホスト150へのリンクは、他のいかなる好ましい経路上にもないため、7行目の好ましい経路エントリは「No」に設定される。さらに、ホスト150からホスト150へのリンクは、いかなる好ましい経路上にもないため、7行目の前提条件列のエントリはリセットされる。
最後に、図7Bに示されるように、VMDME130は、変更610後、ホスト150からホスト150へのリンクが好ましい経路、すなわち、ソースホスト140からホスト150への新しい好ましい経路の一部であることを反映するように、デプロイ時間マトリクス135の9行目を更新する。変更610前、ソースホスト140からホスト150への好ましい経路は、ソースホスト140からホスト150に進み(図6及び図7Aに示されるように、デプロイ時間10分を有した)、次にホスト150からホスト150に進んだ(10分)。したがって、変更610前、ソースホスト140からホスト150への好ましい経路は、合計デプロイ時間10分+10分=20分を有した。しかし、変更610後、ソースホスト140からホスト150への新しい好ましい経路は、ソースホスト140からホスト150に進み(図7Bに示されるように、デプロイ時間10分を有する)、次にホスト150からホスト150に進む(5分)。したがって、ソースホスト140からホスト150への新しい好ましい経路は、合計デプロイ時間10分+5分=15分を有し、ホスト150とホスト150との間のリンクを含む。したがって、VMDME130は、デプロイ時間マトリクス135の9行目の好ましい経路列を「Yes」に設定する。最後に、図7Bは、9行目の前提条件列エントリが、VMがホスト150に首尾良くデプロイされた後、このリンクが好ましい経路上でデプロイ可能になったことを反映するように、VMDME130によって更新されることを示す。
図8A、図8B、及び図8Cは、VMDME130の実施形態によって実行され、ネットワークリンクのデプロイ時間の変更に応答して、VM160のコピーをデプロイするステップを示すブロック図である。特に、示される実施形態は、VMDME130が、ソースホスト140とホスト150との間のデプロイ時間の変更610を検出することに応答して、図6、図7A、及び図7Bに記載のように、ソースホスト140からターゲットホスト150、150、及び150にいかにデプロイするかを説明する。
図8Aでは、VMDME130は、ソースホスト140からホスト150へのVM160のデプロイを開始する。続けて、VMDMEは変更610を検出する。変更610が行われる前に、ソースホスト140からホスト150への好ましい経路は、図7Aに示されるデプロイ時間マトリクス135から決定されるように、ソースホスト140からホスト150への直接リンクである。さらに、変更610前、ホスト140からホスト150及び150のそれぞれへの好ましい経路は、ホスト150を通過する。したがって、VMDME130は、VM160のコピーをホスト150上のVM460にデプロイする。
図8Aに更に示されるように、VMDME130は、ソースホスト140からホスト150へのデプロイ時間の変更610を検出する。変更610の検出に応答して、VMDME130は、図7Bに示したように、変更を反映するようにデプロイ時間マトリクス135を更新する。上述したように、デプロイ時間の変更により、ソースホスト140からホスト150及び150への好ましい経路が変更される。特に、図6及び図7Bに示したように、ソースホスト140からホスト150及び150への新しい好ましい経路はホスト150を通過する。したがって、VMDME130は、ソースホスト140からホスト150上のVM460にVM160をデプロイする。なお、ソースホスト140からホスト150上のVM460へのデプロイは、ソースホスト140からホスト150への好ましい経路が変更610によって影響を受けないため、変わらずに進められる。
図8Bに示されるように、VM460はホスト150に完全にデプロイされ、VM460はホスト150に完全にデプロイされる。ソースホスト140からホスト150への新しい好ましい経路により、図6に示され、図7Bに示される更新されたデプロイ時間マトリクス135において更新されるように、VMDME130は、VM460のコピーをホスト150上のVM460にデプロイする。さらに、VMDME130は、VM160の3つのコピーを各ターゲットホストにデプロイすべきであるため、ホスト150上のVM460及び460へのVM460のローカルデプロイを開始する。最後に、図8Cに示されるように、VM460はホスト150に完全にデプロイされる。次に、VMDME130は、VM160の3つのコピーを各ターゲットホストにデプロイすべきであるため、ホスト150上のVM460及び460並びにホスト150上のVM460及び460のローカルデプロイを開始する。
ソースVMのデプロイの任意の段階中、VMDME130の実施形態は、コンピュータネットワーク170での1つ以上のホスト又はリンクの故障を検出し得る。故障の検出に応答して、VMDME130の実施形態は、検出された故障から回復するステップを実行して、VMのデプロイを続ける。図9は、図1に示されるソースホスト140又はホスト150が故障したとの判断に応答して、VMDME130の実施形態が従うプロセスを示す流れ図である。ステップ900において、VMDME130は、図2において先に説明したように、ソースVMの全体デプロイの現在段階においてコンピュータネットワーク170に接続されたホストの各対に好ましい経路を決定する。ステップ910において、全体デプロイの現在段階のソースホスト及びターゲットホストが決定される。VMDME130は次に、ステップ920において、現在のデプロイ段階のソースホストが利用可能であるか否かを判断する。ソースが利用可能ではない場合、VMDME130は、ステップ925において、任意のホスト150への任意のVMデプロイが首尾良く完了したか否かを判断する。VMDME130が、VMが首尾良くデプロイされなかったと判断する場合、全体デプロイプロセスは、ステップ960において終了する。例えば、初期デプロイ段階中、任意のデプロイが完了する前に、ソースホスト140が故障する場合、故障したソースホスト140の代わりにデプロイ元となるデプロイVMが存在しないため、デプロイプロセスは終了する。しかし、VMDME130が、ステップ925において、VMが首尾良くデプロイされたと判断する場合、ステップ935において、VMDME130は、既にデプロイされたホスト150から、まだデプロイされていないターゲットホストへの代替のデプロイ経路が存在するか否かを判断する。実施形態では、VMDME130は、デプロイ時間マトリクス135を使用してこの判断を行う。代替の経路が存在しないとVMDME130が判断する場合、ステップ945において、VMDME130は、決定された代替の経路を介してVMのデプロイを開始する。
再びステップ920を参照すると、VMDME130が、現在のデプロイ段階のソースが利用可能であると判断する場合、ステップ930において、VMDME130は、現在のデプロイ段階の全てのターゲットホストが、好ましい経路上で利用可能であるか否かを判断する。ターゲットホストが利用可能な場合、ステップ940において、VMDME130は、現在のデプロイ段階において、ソースから各ターゲットホストに、好ましい経路を介してVMをデプロイし、好ましい経路はデプロイ時間マトリクス135から決定されている。しかし、VMDME130が、現在のデプロイ段階でのターゲットホスト150が好ましい経路上で利用可能ではないと判断する場合、ステップ935において、VMDME130は、ホスト150への代替のデプロイ経路が存在するか否かを判断する。ここでも、実施形態では、代替のデプロイ経路が、デプロイ時間マトリクス135に基づいて決定される。VMDME130が、ソースからターゲットホスト150への代替の経路があると判断する場合、ステップ945において、VMDME130は、決定された代替の経路を介するデプロイを開始する。その他の場合、VMDME130は、ステップ960において、現在のデプロイを終了する。
ステップ945において、VMDME130は、任意のVMデプロイが失敗したか否かを判断する。実施形態では、失敗したデプロイは、完了前に終了したVMの部分デプロイである。例えば、別のホスト150からのホスト150のデプロイは、デプロイ中、ホスト150が故障する場合に失敗し得る。そのような場合、ホスト150に部分的にデプロイされた(すなわち、ホスト150が、失敗したVMデプロイをホストする)とVMDME130が判断する。そのような判断がなされると、ステップ955において、VMDME130は、判断された失敗デプロイを削除し、現在のデプロイ段階を続ける。
図10A、図10B、及び図10Cは、VMDME130の実施形態によって実行され、ホスト1501、150、及び150のそれぞれへのVM160の3つのコピーのデプロイ中、ソースホスト140の故障から回復するステップを示すブロック図である。図10Aを参照すると、VMDME130は、デプロイ時間マトリクス135から、ソースホスト140から各ホスト150への好ましい経路がソース140と各ホスト150との間のリンクであると判断しており、各ホストへのVM160のコピーのデプロイを開始する。しかし、1000において、ソースホスト140は故障する。図10Aに示されるように、故障1000前に、VM160は、ホスト150上のVM460に首尾良くデプロイされている。しかし、ホスト150上のVM460及びホスト150上のVM460へのデプロイは完了してない(すなわち、これらは失敗したデプロイである)。したがって、図10Aの1001に示されるように、VMDME130はこれらの失敗したデプロイを削除する。
図10Bは、ソースホスト140が故障したとVMDME130が判断し、デプロイVM460をソースとして使用してデプロイを続けることを示す。したがって、ホスト150からホスト150及びホスト150のそれぞれへの経路が利用可能であるため、VMDME130は、ホスト150上のVM460及びホスト150へのVM460へのVM460のデプロイに進む。さらに、VMDME130は、VM160の3つのコピーを各ホストにデプロイすべきであるため、VM460からホスト150上のVM460及び460へのローカルデプロイを開始する。
図10Cでは、VM460はホスト150に首尾良くデプロイされており、VM460はホスト150に首尾良くデプロイされている。したがって、VMDME130は、VM160の3つのコピーを各ホストにデプロイすべきであるため、VM460からホスト150上のVM460及び460へのローカルデプロイ及びVM460からホスト150上のVM460及び460へのローカルデプロイを開始する。
さらに、VMDME130の実施形態は、コンピュータネットワークでの1つ以上のリンクの故障から回復するステップを実行する。図11はコンピュータネットワーク1100を示し、このネットワークでは、ソースホスト140及び3つのターゲットホスト150、150、及び150がリンクされる。先に示したように、デプロイ時間が、ソースホスト140から各ホストへの各リンクに関連付けられる。さらに、1110において破線の十字で示されるように、ホスト150と150との間のリンクが故障する(fail)。
故障(failure)1110に応答して、VMDME130は、故障から生じる好ましい経路へのあらゆる変更を反映するように、デプロイ時間マトリクス135を更新する。図12Aは、故障1110前のデプロイ時間マトリクス135を示す。図12Bは、故障1110後のデプロイ時間マトリクス135を示す。図12Bに示されるデプロイ時間マトリクス135で強調表示されるように、4行目のホスト150からホスト150へのリンク及び6行目の逆のリンクが除去される。これは、図12Bにおいて取り消し線で示される。
さらに、7行目は、ホスト150から150へのリンクを参照し、強調表示される。図12Aを参照すると、このリンクは、7行目の好ましい経路列の「Yes」エントリで示されるように、好ましい経路上に現れるものとして識別される。故障1110の前、ホスト150からホスト150へのリンクは、ソースホスト140から150への好ましい経路の一部であり、好ましい経路は、(1)ソースホスト140からホスト150へのリンク(デプロイ時間10分を有する)、(2)ホスト150へのホスト150へのリンク(10分)、及び(3)ホスト150からホスト150へのリンク(5分)を含む。したがって、故障1110の前、ソースホスト140からホスト150への好ましい経路は、合計デプロイ時間10分+10分+5分=25分を有する。
しかし、故障1110の後、ソースホスト140からホスト150への好ましい経路は、(1)ソースホスト140からホスト150へのリンク(デプロイ時間10分を有する)及び(2)ホスト150からホスト150へのリンク(25分)を含む。したがって、故障1110の後、ソースホスト140からホスト150への好ましい経路は、合計デプロイ時間10分+25分=35分を有する。なお、ソースホスト140からホスト150への好ましい経路はもはや、ホスト150からホスト150へのリンクを含まない。ホスト150からホスト150へのリンクはもはや、いかなる好ましい経路にもないため、デプロイ時間マトリクス135は、VMDME130が7行目の好ましい経路エントリを「Yes」から「No」に変更することによって更新される。また、ホスト150からホスト150へのリンクが好ましい経路上にあるため、5行目に示されるように、好ましい経路エントリは、「No」から「Yes」に変更される。加えて、図12Bのデプロイ時間マトリクス135の9行目に示されるように、ホスト150からホスト150へのリンクは、VMをまず、ホスト150にデプロイしなければならないという前提条件を受けて、ホスト150からホスト150への好ましい経路上にデプロイ可能である。
図13A、図13B、及び図13Cは、VMDME130の実施形態によって実行され、図11に示される故障1110に応答して、ソースホスト140上のVM160の3つのコピーを3つのホスト150、150、及び150のそれぞれにデプロイするステップを示す。図13Aでは、VMDME130は、図12Aに示されるデプロイ時間マトリクス135から決定される好ましい経路に従って、VMのデプロイを開始する。したがって、VM160をまず、ホスト150上のVM460にデプロイする。VM460が首尾良くデプロイされた後、VMDME130は、VM460からホスト150上のVM460へのデプロイを開始する。図13Aに示されるように、故障1110は、ホスト150へのデプロイが開始された後に発生する。したがって、故障1110が発生した後、部分的な(すなわち、失敗した)デプロイがホスト150に存在する。したがって、VMDME130は、130において、失敗したデプロイを削除する。図13Aに示されるように、故障1110に応答して、VMDMEはデプロイ時間マトリクスを更新し、新しい好ましい経路に基づいて、VM460はホスト150上のVM460からホスト150にデプロイされる。VM160の3つのコピーを各ホストにデプロイすべきであるため、VMDME130は、VM460からホスト150上のVM460及び460へのローカルデプロイも開始する。
図13Bでは、VM460はホスト150に首尾良くデプロイされている。次に、VMDME130は、デプロイ時間マトリクス135を使用して、ホスト150上のVM460をVM460からデプロイすべきと判断する。さらに、VMDME130は、ホスト150へのVMのデプロイを完了するために、VM460からVM460及び460からのローカルデプロイを開始する。図13Cを参照すると、VM460、460、及び460はホスト150に首尾良くデプロイされており、VM460、460、及び460はホスト150に首尾良くデプロイされている。さらに、VM460はホスト150に完全にデプロイされている。したがって、VMDME130は、ホスト150上のVM460及び460へのVM460のデプロイを開始し、ホスト150へのデプロイを完了する。
したがって、本開示の実施形態は、デプロイ時間マトリクスを使用してVMをホストコンピュータ群にデプロイしクローニングするシステム及び方法を提供する。VMのクローニング又はデプロイを行う既知の手法は、単一のソース仮想マシン又はテンプレートを基準としてとり、全てのクローン動作又はデプロイ動作は、その単一のソース仮想マシンから呼び出される。従来の手法を使用して、同じ宛先での同じソースVMの複数のインスタンスを作成すると、ソースホストからのデータ及び内容を、ありとあらゆるクローン動作又はデプロイ動作の宛先ホストにコピーする必要がある。さらに、ソースホスト及び宛先ホストが別個のエンティティである場合、あらゆるクローン動作又はデプロイ動作により、VMデータはネットワークを通って移動して宛先に到達し、それにより、大量のネットワーク帯域幅を消費する。単一のソースVMを、デプロイ動作又はクローン動作の基準として使用することで、故障の単一の点(single point of failure)も導入される:ソースホストが故障するか、又はソースVMが破損する場合、全てのクローン動作又はデプロイ動作が影響を受ける。これとは対照的に、本開示の実施形態は、デプロイ時間マトリクスを使用して、ホストコンピュータ群にVMを分散してデプロイしクローニングすることによって上記問題に対処する改良された技法を提供する。
1つ以上の実施形態について、理解を明確にするためにいくらか詳細に説明したが、本開示の趣旨から逸脱せずに、特定の変更及び変形を行い得ることを認識されたい。本明細書に記載の様々な実施形態は、コンピュータシステムに記憶されたデータに関わる様々なコンピュータ実施動作を利用し得る。例えば、これらの動作は、物理数量の物理的な操作を必要とし得る−必ずしもではないが、通常、これらの数量は電気信号又は磁気信号の形態をとり得、それらの信号又はそれらの信号の表現は、記憶、転送、結合、比較、又は他の様式で操作することが可能である。さらに、そのような操作は多くの場合、生成、産出、識別、決定、又は比較等の用語で呼ばれる。本開示の1つ以上の実施形態の部分をなす本明細書に記載のあらゆる動作は、有用なマシン動作であり得る。加えて、本開示の1つ以上の実施形態は、これらの動作を実行するデバイス又は装置にも関する。装置は、必要とされる特定の目的に向けて特に構築されてもよく、又はコンピュータに記憶されたコンピュータプログラムによって選択的にアクティブ化されるか、若しくは構成される汎用コンピュータであってもよい。特に、様々な汎用マシンを、本明細書の教示に従って書かれたコンピュータプログラムと併用してもよく、又は必要とされる動作を実行するようにより専用化された装置を構築するほうが好都合であることもある。
本明細書に記載される様々な実施形態は、ハンドヘルド装置、マイクロプロセッサシステム、マイクロプロセッサベース若しくはプログラマブル消費者電子装置、ミニコンピュータ、メインフレームコンピュータ等を含む他のコンピュータシステム構成を用いて実施することもできる。
本開示の1つ以上の実施形態は、1つ若しくは複数のコンピュータプログラムとして、又は1つ若しくは複数のコンピュータ可読媒体において具現される1つ若しくは複数のコンピュータプログラムモジュールとして実施し得る。コンピュータ可読媒体という用語は、データを記憶することができる任意のデータ記憶装置を指し、その後、データをコンピュータシステムに入力することができるコンピュータ可読媒体は、コンピュータによって読み取れるようにコンピュータプログラムを具現する任意の既存又は後に開発される技術に基づき得る。コンピュータ可読媒体の例としては、ハードドライブ、ネットワーク接続ストレージ(NAS)、読み取り専用メモリ、ランダムアクセスメモリ(例えば、フラッシュメモリ装置)、CD(コンパクトディスク)、CD−ROM、CD−R、又はCD−RW、DVD(デジタル多用途ディスク)、磁気テープ、並びに他の光学データ記憶装置及び非光学データ記憶装置が挙げられる。コンピュータ可読媒体は、コンピュータ可読コードが分散して記憶され実行されるように、ネットワーク結合コンピュータシステムに分散することもできる。
本開示の1つ以上の実施形態が、理解を明確にするためにいくらか詳細に説明されたが、特許請求の範囲内で特定の変更及び変形を行い得ることが理解されるだろう。したがって、記載される実施形態は、限定ではなく例示として考慮されるべきであり、特許請求の範囲は、本明細書において与えられる詳細に限定されるべきではなく、特許請求の範囲及びその均等物内で変更可能である。特許請求の範囲では、要素及び/又はステップは、特許請求の範囲において明示される場合を除き、いかなる特定の順序の動作も暗示しない。
多くの変更、変形、追加、及び改良が可能である。単数形として本明細書に記載される構成要素、動作、又は構造物に、複数形を提供し得る。様々な構成要素、動作、及びデータ記憶装置間の境界は、いくらか任意のものであり、特定の動作は、特定の例示的な構成の文脈の中で示される。機能の他の割り振りも考えられ、本開示の範囲内にあり得る。一般に、例示的な構成において別個の構成要素として提示される構造物及び機能は、結合された構造物又は構成要素として実施し得る。同様に、単一の構成要素として提示される構造物及び機能は別個の構成要素として実施し得る。これら及び他の変更、変形、追加、及び改良は、添付される特許請求の範囲内にあり得る。
100 管理ホスト
120 管理サーバ
135 デプロイ時間マトリクス
140 ホスト
145 データ記憶装置
148 ハイパーバイザ
150 ターゲットホスト
150M ホスト
150a ホスト
150b ホスト
151 仮想ハードウェアプラットフォーム
152 ゲストオペレーティングシステム
153 ゲストアプリケーション
154 VM実行空間
156 CPU
159 ハードウェアプラットフォーム
160 VMイメージ
161 仮想マシンディスクファイル
162 VMXファイル
163 ログファイル
170 コンピュータネットワーク
180 データ記憶装置
300 ネットワーク
600 ネットワーク
1100 コンピュータネットワーク
150 ホスト
180 データ記憶装置

Claims (15)

  1. 計算システムであって、
    ソースホストコンピュータ及び1つ以上のターゲットホストコンピュータを含む複数のホストコンピュータと、
    前記複数のホストコンピュータを接続するネットワークと、
    前記複数のホストコンピュータへの仮想マシンのデプロイを管理するように構成される管理サーバと、
    を備え、前記管理サーバは、
    前記ソースホストコンピュータに常駐する仮想マシンを前記ターゲットホストコンピュータにデプロイする要求を受信すること、
    前記複数のホストコンピュータ間でのデプロイ時間を決定すること、
    決定されるデプロイ時間に基づいて、ソースホストコンピュータから複数のターゲットホストコンピュータのうちの第1のターゲットホストコンピュータへの経路を決定すること、
    前記決定されたデプロイ時間に基づいて、仮想マシンのコピーとして、前記ソースホストコンピュータから第1のターゲットホストコンピュータに第1の仮想マシンコピーをデプロイすること、
    を行うように構成される、計算システム。
  2. 前記管理サーバは、
    前記第1の仮想マシンコピーが前記第1のターゲットホストコンピュータにデプロイされた後、前記デプロイされた第1の仮想マシンコピーからローカルにデプロイし、第2の仮想マシンコピーを前記第1のターゲットホストコンピュータにデプロイするように更に構成される、請求項1に記載の計算システム。
  3. 前記第1の仮想マシンコピーは、前記第1のターゲットホストコンピュータの第1のデータ記憶装置に記憶され、前記管理サーバは、
    前記第1のデータ記憶装置からの前記第1の仮想マシンコピーを使用して、前記第1のターゲットホストコンピュータの第2のデータ記憶装置に第2の仮想マシンコピーをローカルにデプロイするように更に構成される、請求項1に記載の計算システム。
  4. 前記管理サーバは、
    コンピュータのネットワークによって接続された前記複数のホストコンピュータでの変更イベントの検出に応答して、前記複数のホストコンピュータ間の前記デプロイ時間を変更すること、
    前記変更されたデプロイ時間に基づいて、前記ソースホストコンピュータから前記第1のターゲットホストコンピュータへの第2の経路を決定すること、
    前記決定された第2の経路に基づいて、前記仮想マシンの前記コピーを前記第1のターゲットホストコンピュータにデプロイすること、
    を行うように更に構成される、請求項1に記載の計算システム。
  5. 前記変更イベントは、前記ソースホストコンピュータから前記第1のターゲットホストコンピュータへの前記経路に配置される前記複数のホストコンピュータのうちの少なくとも1つの故障を含む、請求項4に記載の計算システム。
  6. 前記変更イベントは、コンピュータのネットワーク上の前記複数のホストコンピュータのうちの2つ以上のホストコンピュータ間のリンクの故障を含み、
    前記リンクは、前記ソースホストコンピュータから前記第1のターゲットホストコンピュータへの前記経路に配置される、請求項4に記載の計算システム。
  7. 前記決定されるデプロイ時間はデプロイ時間マトリクスに記憶される、請求項1に記載の計算システム。
  8. 前記管理サーバは、
    前記決定されたデプロイ時間に基づいて、第1のターゲットホストコンピュータから第2のターゲットホストコンピュータへの経路を決定すること、
    前記仮想マシンの前記コピーを前記ソースホストコンピュータから前記第1のターゲットホストコンピュータにデプロイすると、前記第1のターゲットホストコンピュータから前記第2のターゲットホストコンピュータへの前記決定された経路に基づいて、前記仮想マシンのコピーを前記第1のターゲットホストコンピュータから前記第2のターゲットホストコンピュータにデプロイすること、
    を行うように更に構成される、請求項1に記載の計算システム。
  9. コンピュータネットワークに接続された複数のホストでの仮想マシンのデプロイを管理する方法であって、前記複数のホストは、ソースホストコンピュータ及び1つ以上のターゲットホストコンピュータを含み、前記方法は、
    前記ソースホストコンピュータに常駐する仮想マシンを前記複数のターゲットホストコンピュータにデプロイする要求を受信すること、
    前記複数のホストコンピュータ間でのデプロイ時間を決定すること、
    決定されたデプロイ時間に基づいて、前記ソースホストコンピュータから前記複数のターゲットホストコンピュータのうちの第1のターゲットホストコンピュータへの経路を決定すること、
    決定される経路に基づいて、前記仮想マシンの第1のコピーを前記ソースホストコンピュータから前記第1のターゲットホストコンピュータにデプロイすること、
    を備える、方法。
  10. 前記仮想マシンの前記第1のコピーがデプロイされた後、第2の仮想マシンコピーを前記仮想マシンの前記第1のコピーから前記第1のターゲットホストコンピュータにローカルにデプロイすることを更に備える、請求項9に記載の方法。
  11. 前記仮想マシンの前記第1のコピーは、前記第1のターゲットホストコンピュータの第1のデータ記憶装置にデプロイされ、
    前記方法は、
    前記第1のデータ記憶装置からの前記仮想マシンの前記第1のコピーを使用して、第2の仮想マシンコピーを前記第1のターゲットホストコンピュータの第2のデータ記憶装置にローカルにデプロイすることを更に備える、請求項9に記載の方法。
  12. 前記コンピュータネットワークによって接続された前記複数のホストでの変更イベントの検出に応答して、前記複数のホスト間の前記デプロイ時間を変更すること、
    前記変更されたデプロイ時間に基づいて、前記ソースホストコンピュータから前記第1のターゲットホストコンピュータへの第2の経路を決定すること、
    前記決定される第2の経路に基づいて、前記仮想マシンのコピーを前記第1のターゲットホストコンピュータにデプロイすること、
    を更に備える、請求項9に記載の方法。
  13. 前記変更イベントは、
    前記ソースホストコンピュータから前記第1のターゲットホストコンピュータへの前記経路に配置される前記複数のホストのうちの少なくとも1つの故障、及び
    前記コンピュータネットワーク上での2つ以上のホスト間でのリンクの故障
    のうちのいずれかを含み、
    前記リンクは、前記ソースホストコンピュータから前記第1のターゲットホストコンピュータへの前記経路に配置される、請求項12に記載の方法。
  14. 前記決定されるデプロイ時間に基づいて、第1のターゲットホストコンピュータから第2のターゲットホストコンピュータへの経路を決定すること、
    前記仮想マシンの前記第1のコピーを前記ソースホストコンピュータから前記第1のターゲットホストコンピュータにデプロイすると、
    前記第1のターゲットホストコンピュータから前記第2のターゲットホストコンピュータへの前記決定された経路に基づいて、前記仮想マシンの更なるコピーを前記第1のターゲットホストコンピュータから前記第2のターゲットホストコンピュータにデプロイすること、
    を更に備える、請求項9に記載の方法。
  15. 請求項9〜14のいずれか一項に記載の方法を実行するコンピュータ可読プログラムコードを記憶した非一時的なコンピュータ可読記憶媒体。
JP2014156403A 2013-08-27 2014-07-31 仮想マシンのデプロイを管理するための計算システム、方法、および非一時的なコンピュータ可読記憶媒体 Active JP6490359B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/010,802 US9654411B2 (en) 2013-08-27 2013-08-27 Virtual machine deployment and management engine
US14/010,802 2013-08-27

Publications (2)

Publication Number Publication Date
JP2015046159A true JP2015046159A (ja) 2015-03-12
JP6490359B2 JP6490359B2 (ja) 2019-03-27

Family

ID=51211015

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014156403A Active JP6490359B2 (ja) 2013-08-27 2014-07-31 仮想マシンのデプロイを管理するための計算システム、方法、および非一時的なコンピュータ可読記憶媒体

Country Status (4)

Country Link
US (2) US9654411B2 (ja)
EP (1) EP2843549B1 (ja)
JP (1) JP6490359B2 (ja)
AU (1) AU2014204468B2 (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3376377A1 (en) 2017-03-13 2018-09-19 Fujitsu Limited Apparatus and control method for comparison of hierarchical virtual machine templates
US10620869B2 (en) 2016-03-04 2020-04-14 Nec Corporation Storage control device, storage control method, and recording medium
JP2020140246A (ja) * 2019-02-26 2020-09-03 富士通株式会社 情報処理装置、情報処理システム及び情報処理プログラム

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9110699B2 (en) * 2013-09-19 2015-08-18 International Business Machines Corporation Determining optimal methods for creating virtual machines
US9936047B2 (en) * 2013-10-17 2018-04-03 Ciena Corporation Method and apparatus for provisioning virtual network functions from a network service provider
US9218176B1 (en) 2014-06-13 2015-12-22 International Business Machines Corporation Software deployment in a distributed virtual machine environment
CN104391735B (zh) * 2014-11-14 2018-11-06 深信服网络科技(深圳)有限公司 虚拟化一体机集群中虚拟机调度方法及系统
US9674300B2 (en) 2015-04-22 2017-06-06 At&T Intellectual Property I, L.P. Apparatus and method for predicting an amount of network infrastructure needed based on demographics
US9946564B2 (en) * 2015-06-23 2018-04-17 International Business Machines Corporation Adjusting virtual machine migration plans based on alert conditions related to future migrations
US10534628B2 (en) * 2017-05-19 2020-01-14 International Business Machines Corporation Deploying updates to virtual machine images based on differences in artifacts
US11080097B1 (en) * 2017-05-30 2021-08-03 Amazon Technologies, Inc. User defined logical spread placement groups for computing resources within a computing environment
US11061709B2 (en) 2018-08-21 2021-07-13 International Business Machines Corporation Storage management for deployment of virtual machine
US10802813B2 (en) * 2018-12-19 2020-10-13 Atlassian Pty Ltd. Systems and methods for updating virtual machines
US11080083B1 (en) * 2019-08-28 2021-08-03 Juniper Networks, Inc. Providing physical host hardware state information to virtual machines deployed on the physical host

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316724A (ja) * 2006-05-23 2007-12-06 Hitachi Ltd 計算機システム、管理計算機及びプログラム配布方法
JP2012118980A (ja) * 2010-11-29 2012-06-21 Internatl Business Mach Corp <Ibm> 安定性制限のある仮想化環境における信頼性の高い移行の計画を提供する方法、システムおよびコンピュータ・プログラム
US20120240110A1 (en) * 2011-03-16 2012-09-20 International Business Machines Corporation Optimized deployment and replication of virtual machines
WO2013051136A1 (ja) * 2011-10-06 2013-04-11 株式会社日立製作所 仮想サーバ処理制御方法、システムおよび仮想サーバ処理制御管理サーバ

Family Cites Families (36)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7313793B2 (en) 2002-07-11 2007-12-25 Microsoft Corporation Method for forking or migrating a virtual machine
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US7412583B2 (en) 2003-11-14 2008-08-12 International Business Machines Corporation Virtual incremental storage method
US7689794B2 (en) 2004-10-22 2010-03-30 Scientific-Atlanta, Llc System and method for handling memory allocation failures through reserve allocation of event data
US8397038B2 (en) 2007-03-22 2013-03-12 Vmware, Inc. Initializing file data blocks
US8195866B2 (en) 2007-04-26 2012-06-05 Vmware, Inc. Adjusting available persistent storage during execution in a virtual computer system
US8407518B2 (en) * 2007-10-26 2013-03-26 Vmware, Inc. Using virtual machine cloning to create a backup virtual machine in a fault tolerant system
US8103776B2 (en) 2008-08-29 2012-01-24 Red Hat, Inc. Systems and methods for storage allocation in provisioning of virtual machines
JP2010211644A (ja) 2009-03-11 2010-09-24 Nec Corp メモリ消費電力削減システム、方法及びプログラム
US8234469B2 (en) 2009-07-09 2012-07-31 Microsoft Corporation Backup of virtual machines using cloned virtual machines
US20110131330A1 (en) * 2009-12-02 2011-06-02 International Business Machines Corporation Collocating desktop virtual machines to proximity of the user
US8370473B2 (en) 2009-12-16 2013-02-05 International Business Machines Corporation Live multi-hop VM remote-migration over long distance
JP5454135B2 (ja) * 2009-12-25 2014-03-26 富士通株式会社 仮想マシン移動制御装置、仮想マシン移動制御方法および仮想マシン移動制御プログラム
US8775766B2 (en) 2010-02-02 2014-07-08 International Business Machines Corporation Extent size optimization
US8443365B2 (en) * 2010-11-03 2013-05-14 Hewlett-Packard Development Company, L.P. Methods and systems to clone a virtual machine instance
US8707301B2 (en) * 2010-11-08 2014-04-22 Microsoft Corporation Insertion of management agents during machine deployment
US9519496B2 (en) 2011-04-26 2016-12-13 Microsoft Technology Licensing, Llc Detecting and preventing virtual disk storage linkage faults
US9069593B2 (en) 2011-06-23 2015-06-30 Salesforce.Com, Inc. Systems and methods for deletion of untracked datastore paths
US8490092B2 (en) 2011-07-06 2013-07-16 Microsoft Corporation Combined live migration and storage migration using file shares and mirroring
US9250944B2 (en) * 2011-08-30 2016-02-02 International Business Machines Corporation Selection of virtual machines from pools of pre-provisioned virtual machines in a networked computing environment
US8751724B2 (en) 2011-09-20 2014-06-10 International Business Machines Corporation Dynamic memory reconfiguration to delay performance overhead
US8694644B2 (en) 2011-09-29 2014-04-08 Nec Laboratories America, Inc. Network-aware coordination of virtual machine migrations in enterprise data centers and clouds
US20130138764A1 (en) 2011-11-30 2013-05-30 Soumendu S. Satapathy Method and system for virtual machine data migration
US9201679B2 (en) * 2012-05-31 2015-12-01 Red Hat Israel, Ltd. Multiple destination live migration
US9736260B2 (en) * 2012-06-21 2017-08-15 Cisco Technology, Inc. Redirecting from a cloud service to a third party website to save costs without sacrificing security
US9172587B2 (en) * 2012-10-22 2015-10-27 International Business Machines Corporation Providing automated quality-of-service (‘QoS’) for virtual machine migration across a shared data center network
US9256469B2 (en) 2013-01-10 2016-02-09 International Business Machines Corporation System and method for improving memory usage in virtual machines
US9619258B2 (en) * 2013-01-21 2017-04-11 International Business Machines Corporation Live virtual machine migration quality of service
US9250946B2 (en) * 2013-02-12 2016-02-02 Atlantis Computing, Inc. Efficient provisioning of cloned virtual machine images using deduplication metadata
US9727274B2 (en) * 2013-02-26 2017-08-08 Red Hat Israel, Ltd. Cloning live virtual machines
US9342669B2 (en) * 2013-07-11 2016-05-17 Dialogic, Inc. Systems and methods of licensing and identification of virtual network appliances
US9304705B2 (en) 2013-09-06 2016-04-05 Vmware, Inc. Virtual machine cloning
JP6006431B2 (ja) 2013-10-10 2016-10-12 株式会社日立製作所 ストレージシステムおよびデータ記憶方法
US9378136B1 (en) 2014-06-30 2016-06-28 Emc Corporation Techniques for selecting write endurance classification of flash storage based on read-write mixture of I/O workload
US9804878B2 (en) 2015-02-23 2017-10-31 Red Hat, Inc. Using a status indicator for a merge operation for writing data associated with a virtual machine
US9881040B2 (en) 2015-08-20 2018-01-30 Vmware, Inc. Tracking data of virtual disk snapshots using tree data structures

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007316724A (ja) * 2006-05-23 2007-12-06 Hitachi Ltd 計算機システム、管理計算機及びプログラム配布方法
JP2012118980A (ja) * 2010-11-29 2012-06-21 Internatl Business Mach Corp <Ibm> 安定性制限のある仮想化環境における信頼性の高い移行の計画を提供する方法、システムおよびコンピュータ・プログラム
US20120240110A1 (en) * 2011-03-16 2012-09-20 International Business Machines Corporation Optimized deployment and replication of virtual machines
WO2013051136A1 (ja) * 2011-10-06 2013-04-11 株式会社日立製作所 仮想サーバ処理制御方法、システムおよび仮想サーバ処理制御管理サーバ

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10620869B2 (en) 2016-03-04 2020-04-14 Nec Corporation Storage control device, storage control method, and recording medium
EP3376377A1 (en) 2017-03-13 2018-09-19 Fujitsu Limited Apparatus and control method for comparison of hierarchical virtual machine templates
US10719502B2 (en) 2017-03-13 2020-07-21 Fujitsu Limited Information processing apparatus and control method for information processing apparatus
JP2020140246A (ja) * 2019-02-26 2020-09-03 富士通株式会社 情報処理装置、情報処理システム及び情報処理プログラム
JP7247651B2 (ja) 2019-02-26 2023-03-29 富士通株式会社 情報処理装置、情報処理システム及び情報処理プログラム

Also Published As

Publication number Publication date
EP2843549A3 (en) 2016-06-29
US10171373B2 (en) 2019-01-01
AU2014204468B2 (en) 2016-01-21
JP6490359B2 (ja) 2019-03-27
AU2014204468A1 (en) 2015-03-19
US20150067168A1 (en) 2015-03-05
US9654411B2 (en) 2017-05-16
EP2843549A2 (en) 2015-03-04
US20170249182A1 (en) 2017-08-31
EP2843549B1 (en) 2021-04-07

Similar Documents

Publication Publication Date Title
JP6490359B2 (ja) 仮想マシンのデプロイを管理するための計算システム、方法、および非一時的なコンピュータ可読記憶媒体
US10528382B2 (en) Storage layer based orchestration method for virtual machine migration across disparate virtualization environments
US10601917B2 (en) Containerized high-performance network storage
US10050850B2 (en) Rack awareness data storage in a cluster of host computing devices
US9582221B2 (en) Virtualization-aware data locality in distributed data processing
US10404795B2 (en) Virtual machine high availability using shared storage during network isolation
US8706859B2 (en) Method and apparatus of data center file system
Krsul et al. Vmplants: Providing and managing virtual machine execution environments for grid computing
US10275328B2 (en) Fault tolerance for hybrid cloud deployments
US10614096B2 (en) Disaster recovery of mobile data center via location-aware cloud caching
US8122212B2 (en) Method and apparatus for logical volume management for virtual machine environment
CN116209981A (zh) 使用虚拟盘的裸机计算机
US20130024718A1 (en) Multiple Node/Virtual Input/Output (I/O) Server (VIOS) Failure Recovery in Clustered Partition Mobility
US10521315B2 (en) High availability handling network segmentation in a cluster
US20120151265A1 (en) Supporting cluster level system dumps in a cluster environment
US20200201664A1 (en) Fault tolerant hyper-converged infrastructure upgrades in an environment with no additional physical infrastructure
Mohan et al. M2: Malleable metal as a service
US10831554B2 (en) Cohesive clustering in virtualized computing environment
US10826795B2 (en) Architecture for implementing service level management for a virtualization environment
US10831520B2 (en) Object to object communication between hypervisor and virtual machines
US20240111559A1 (en) Storage policy recovery mechanism in a virtual computing environment
US12086656B2 (en) Automatic graphics processing unit selection
US12093153B2 (en) Optimizing high-availability virtual machine placements in advance of a computing cluster failure event

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170724

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180411

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180417

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180717

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20180918

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180928

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181106

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190130

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: 20190205

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190227

R150 Certificate of patent or registration of utility model

Ref document number: 6490359

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350