JP5347016B2 - 仮想サーバを効率的に管理および構成するための方法ならびにシステム - Google Patents

仮想サーバを効率的に管理および構成するための方法ならびにシステム Download PDF

Info

Publication number
JP5347016B2
JP5347016B2 JP2011500869A JP2011500869A JP5347016B2 JP 5347016 B2 JP5347016 B2 JP 5347016B2 JP 2011500869 A JP2011500869 A JP 2011500869A JP 2011500869 A JP2011500869 A JP 2011500869A JP 5347016 B2 JP5347016 B2 JP 5347016B2
Authority
JP
Japan
Prior art keywords
virtual server
configuration
user
manager
interface
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.)
Active
Application number
JP2011500869A
Other languages
English (en)
Other versions
JP2011523472A (ja
JP2011523472A5 (ja
Inventor
アイケン, トルステン フォン
ラファエル サーベドラ,
Original Assignee
ライトスケール, インコーポレイテッド
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 ライトスケール, インコーポレイテッド filed Critical ライトスケール, インコーポレイテッド
Publication of JP2011523472A publication Critical patent/JP2011523472A/ja
Publication of JP2011523472A5 publication Critical patent/JP2011523472A5/ja
Application granted granted Critical
Publication of JP5347016B2 publication Critical patent/JP5347016B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Description

(背景)
ホスト型仮想サーバサービスは、顧客が仮想サーバインスタンスの基礎となるハードウェアを所有または管理することを要求することなく、ユーザによって特定されるソフトウェアを実行する仮想サーバを、ユーザがインスタンス化することを可能にする。例えば、Amazon EC2を含む、仮想サーバサービスは、ユーザが、必要性に合致するように種々の異なる構成の多数の仮想サーバをインスタンス化することを可能にしてもよい。
多くの仮想サーバサービスは、ユーザによって提供されるブート可能なイメージから、仮想サーバのインスタンス化を可能にする。これらのイメージは、ユーザの所望のサーバソフトウェアのセットを含有してもよい。いくつかの仮想サーバサービスは、公開APIまたはウェブインターフェース等を通して、ユーザによって提供されるブート可能なイメージから、仮想サーバの遠隔インスタンス化を可能にする。遠隔インスタンス化能力は、原則として、変更要求または他の要因に基づいて、ユーザが、インスタンス化された仮想サーバの数を率に応じてスケールアップまたはスケールダウンさせることを可能にする。しかしながら、通常は、個人的にサーバを監視し、追加サーバを起動する時を決定し、それらを手動で構成することは実用的ではない。
(概要)
本開示は、ホスト型仮想サーバサービスにおける仮想サーバ構成を配備し、管理する、より迅速で効率的な方法を提供するステップに関する。広義には、ウェブインターフェースは、特定の種類の仮想サーバが第三者ホスト型仮想サーバサービス上でインスタンス化または終了される条件を、ユーザが設定することを可能にする。例えば、ユーザは、既存の仮想サーバ上の負荷が所定の閾値を超える度に、新規仮想サーバをインスタンス化することを希望してもよい。ウェブインターフェースはまた、ユーザが複数のホスト型仮想サーバサービスの中から選ぶことを可能にしてもよい。ウェブインターフェースはさらに、ユーザが、動的変数をインスタンス化された仮想サーバの構成に組み込むことを可能にしてもよい。
一局面では、本開示は、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法に関する。一実施形態では、方法は、ホスト型仮想サーバサービスにインターフェースを提供するステップであって、インターフェースは、ユーザが複数の仮想サーバ構成の中から仮想サーバ構成を選択するための入力と、ユーザが、仮想サーバを動的にインスタンス化するための方針であって、少なくとも1つの条件を含む方針を設定するための入力とを含む、ステップと、少なくとも1つの条件が満たされていることを決定するステップと、選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、ホスト型仮想サーバサービスに伝送するステップとを含む。いくつかの実施形態では、方法は、ユーザ指定変数の値をインスタンス化された仮想サーバに伝送するステップを含んでもよい。いくつかの実施形態では、方法は、測定に応じて、1つ以上の仮想サーバを終了するステップを含んでもよい。いくつかの実施形態では、方法は、ユーザ定義の方針に基づいて仮想サーバをインスタンス化するように、多数のホスト型仮想サーバサービスの中から選択するステップを含んでもよい。
別の局面では、本開示は、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するためのシステムに関する。一実施形態では、システムは、ホスト型仮想サーバサービスにインターフェースを提供する、ウェブサーバであって、インターフェースは、ユーザが複数の仮想サーバ構成の中から仮想サーバ構成を選択するための入力手段と、ユーザが、仮想サーバを動的にインスタンス化するための方針であって、少なくとも1つの条件を含む方針を設定するための入力手段とを含む、ウェブサーバと、少なくとも1つの条件が満たされていることを決定し、選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、ホスト型仮想サーバサービスに伝送する、ウェブサーバと通信している計算デバイスとを含む。
例えば、本発明は以下の項目を提供する。
(項目1)
ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法であって、該方法は、
計算デバイス上で実行するホスト型仮想サーバサービスにインターフェースを提供することであって、該インターフェースは、
i.ユーザが、第2のユーザによって作成される少なくとも1つの仮想サーバ構成を含む、複数の仮想サーバ構成の中から、1つの仮想サーバ構成を選択するための入力手段と、
ii.ユーザが、仮想サーバを動的にインスタンス化するための方針であって、該方針は少なくとも1つの条件を含む方針を設定するための入力手段と
を含む、ことと、
該少なくとも1つの条件が満たされていることを決定することと、
該選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、該ホスト型仮想サーバサービスに伝送することと
を含む、方法。
(項目2)
上記インターフェースはさらに、ユーザが少なくとも1人の他のユーザと作成された仮想サーバ構成を共有することを可能にする、入力手段を含む、項目1に記載の方法。
(項目3)
インターフェースを提供することは、複数のホスト型仮想サーバサービスにインターフェースを提供することを含み、該インターフェースは、
i.ユーザが、第2のユーザによって作成される少なくとも1つの仮想サーバ構成を含む、複数の仮想サーバ構成の中から、1つの仮想サーバ構成を選択するための入力手段と、
ii.ユーザが、仮想サーバを動的にインスタンス化するための方針であって、該方針は少なくとも1つの条件を含む方針を設定するための入力手段と、
iii.ユーザが、該複数のホスト型仮想サーバサービスのうちの1つを選択するための入力手段と
を含む、項目1に記載の方法。
(項目4)
命令を伝送することは、上記選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、上記選択されたホスト型仮想サーバサービスに伝送することを含む、項目3に記載の方法。
(項目5)
複数のホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法であって、該方法は、
a.複数のホスト型仮想サーバサービスにインターフェースを提供することであって、該インターフェースは、
i.ユーザが、複数の仮想サーバ構成の中から1つの仮想サーバ構成を選択するための入力手段と、
ii.ユーザが、該複数のホスト型仮想サーバサービスの中から選択するための第1の方針を設定するための入力手段と、
iii.ユーザが、仮想サーバを動的にインスタンス化するための第2の方針であって、該方針は少なくとも1つの条件を含む方針を設定するための入力手段と、
を含む、ことと、
b.該少なくとも1つの条件が満たされていることを決定することと、
c.該第1の方針に従って該複数のホスト型仮想サーバサービスのうちの1つを選択することと、
d.該選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、該選択されたホスト型仮想サーバサービスに伝送することと
を含む、方法。
(項目6)
上記第1の方針および上記第2の方針のうちの少なくとも1つによって、価格、性能、地理的場所、管轄権、第2のサービスへの近接性、および技術的能力のうちの少なくとも1つを特定することをさらに含む、項目5に記載の方法。
(項目7)
ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するためのシステムであって、
ホスト型仮想サーバサービスにインターフェースを提供する、ウェブサーバであって、該インターフェースは、
i.ユーザが、複数の仮想サーバ構成の中から1つの仮想サーバ構成を選択するための入力手段と、
ii.ユーザが、仮想サーバを動的にインスタンス化するための方針であって、該方針は少なくとも1つの条件を含む方針を設定するための入力手段と、
iii.ユーザが他のユーザと作成された仮想サーバ構成を共有することを可能にする、入力手段と、
を含む、ウェブサーバと、
該少なくとも1つの条件が満たされていることを決定し、該選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、該ホスト型仮想サーバサービスに伝送する、該ウェブサーバと通信している計算デバイスと
を含む、システム。
本開示の先述および他の目的、局面、特徴、および利点は、添付図面と併せて解釈される以下の説明を参照することによって、より明白となり、より良く理解されてもよい。
図1Aは、仮想サーバの管理を可能にする、ネットワーク設定の一実施形態のブロック図である。 図1Bは、マシンイメージから構成可能な仮想サーバインスタンスの作成を可能にする、ネットワーク設定の一実施形態のブロック図である。 図2Aおよび2Bは、クライアント計算デバイスおよびサーバ計算デバイスとして有用である、通常のコンピュータ200のブロック図である。 図2Aおよび2Bは、クライアント計算デバイスおよびサーバ計算デバイスとして有用である、通常のコンピュータ200のブロック図である。 図3は、マシンイメージからの構成可能な仮想サーバインスタンスの作成を促進するための方法を示す、フロー図である。 図4は、マシンイメージから構成可能な仮想サーバインスタンスを作成するのに要する時間を削減するための方法の一実施形態のフロー図である。 図5A、5B、5C、5D、5E、5F、および5Gは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。 図5A、5B、5C、5D、5E、5F、および5Gは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。 図5A、5B、5C、5D、5E、5F、および5Gは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。 図5A、5B、5C、5D、5E、5F、および5Gは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。 図5A、5B、5C、5D、5E、5F、および5Gは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。 図5A、5B、5C、5D、5E、5F、および5Gは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。 図5A、5B、5C、5D、5E、5F、および5Gは、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例である。 図6Aは、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法の第1の実施形態のフロー図である。 図6Bは、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法の第2の実施形態のフロー図である。 図7は、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法の第3の実施形態のフロー図である。
(詳細な説明)
ここで図1Aを参照すると、仮想サーバの管理を可能にする、ネットワーク設定の一実施形態のブロック図が示されている。概要すると、ユーザ局102が、ユーザにウェブインターフェースを表示し、ユーザから仮想サーバマネージャ100(本明細書では単純に「マネージャ」とも呼ばれる)に構成情報を伝送する。仮想サーバマネージャ100は、仮想サーバインスタンス110a、110b、110c(概して110)のインスタンス化、構成、および終了を管理する。マネージャ100は、インスタンス110またはホスト型仮想サーバサービス120から受信される任意のデータを監視してもよい。
ここではさらに詳細に、依然として図1Aを参照すると、仮想サーバマネージャ100は、1つ以上の仮想サーバイメージおよび付随構成情報を受信することが可能である、任意のコンピュータデバイスを含んでもよい。いくつかの実施形態では、仮想サーバマネージャは、単一のサーバを含んでもよく、他の実施形態では、仮想サーバマネージャ100は、サーバクラスタを含んでもよい。いくつかの実施形態では、マネージャ100は、構成情報および/または仮想サーバイメージを記憶するための1つ以上の関連データベースを有してもよい。マネージャ100の異なるユーザが、他のユーザによって記憶されたイメージに干渉することなく、種々のイメージを記憶することができるように、これらのデータベースは、ユーザによって分離されてもよい。いくつかの実施形態では、ユーザは、マネージャ100上に記憶されたイメージおよび/または構成情報を共有できるようになってもよい。
いくつかの実施形態では、仮想サーバマネージャ100は、定期的に操作されてもよい。例えば、企業は、ユーザがマネージャ上に1つ以上のイメージを記憶すること、およびホスト型サービス上の1つ以上のサーバをインスタンス化するためにマネージャを使用することに課金してもよい。いくつかの実施形態では、仮想サーバマネージャ100は、仮想サーバサービスから独立した実体によって操作されてもよい。いくつかの実施形態では、ユーザ局は、ウェブインターフェースを介してマネージャ100と通信してもよい。例えば、マネージャ100は、多数の企業に対するウェブインターフェースを提供して、ホスト型仮想サーバサービス上の仮想サーバ配備を管理してもよい。例えば、マネージャ100を実行する企業は、企業が仮想サーバを始動する際にマネージャ100のサービスを使用することに、均一料金を請求してもよい。または、例えば、マネージャ100を実行する企業は、マネージャ100を使用して、いくつのベースイメージまたは構成プロファイルが作成および/または記憶されるかに基づいて、比例配分料金を請求してもよい。または、例えば、マネージャ100を実行する企業は、仮想サーバを操作し、インスタンス化する際にマネージャによって提供される制御機能の使用に対して、月額料金を請求してもよい。または、例えば、マネージャ100を実行する企業は、管理された任意の仮想サーバが実行されてきた時間量に基づいて、料金を請求してもよい。
仮想サーバサービス120は、仮想サーバサービス120がホストするリソース上の仮想サーバを、1人以上のユーザがインスタンス化することを可能にする、任意のサービスを含んでもよい。仮想サーバサービスの例は、Amazon,Inc.提供のEC2サービス、およびXCalibre Communications Ltd.提供のFLEXISCALEを含む。いくつかの実施形態では、マネージャ100は、単一の仮想サーバサービスと連動するように特異的に設計されてもよい。他の実施形態では、マネージャ100は、複数の仮想サーバサービスにインターフェースを提供してもよい。
ここで図1Bを参照すると、マシンイメージから構成可能な仮想サーバインスタンスの作成を可能にする、ネットワーク設定の一実施形態が示されている。概要すると、ユーザ局102が、ブートストラップサーバ115上に作成されるブートイメージを特定する、ユーザから入力を受け取る。次いで、ベースサーバイメージが仮想サーバマネージャ100に送信される。別の時に、構成情報が、ユーザ局102または異なるユーザ局102から受信されてもよい。仮想サーバマネージャ100は、仮想サーバサービス120に、ブートイメージのインスタンスをインスタンス化する命令を送信する。インスタンス110の準備ができていると決定した後、マネージャ100は、受信した構成情報を仮想サーバインスタンスに送信する。このように、仮想サーバインスタンスの構成は、サーバイメージを構築する過程から分断される。
ここではさらに詳細に、依然として図1Bを参照すると、ユーザ局102は、ユーザが仮想サーバのブートイメージを作成するための任意の機能性を提供してもよい。いくつかの実施形態では、ユーザ局102は、仮想サーバイメージをコンパイルあるいは生成する、ブートストラップサーバ115と連結されてもよい。他の実施形態では、仮想サーバイメージは、ユーザ局102自体の上で作成されてもよい。ユーザ局102およびブートストラップサーバ115の両方は、任意の計算デバイスを含んでもよい。
ユーザ局、マネージャ100、および仮想サーバサービス120は、任意の方式で、かつ任意の1つまたは複数のネットワークを介して接続されてもよい。接続および接続に含まれるネットワークは、インターネット、ローカルネットワーク、ウェブサーバ、ファイルサーバ、ルータ、データベース、コンピュータ、サーバ、ネットワークアプライアンス、または情報を送受信することが可能な任意の他の計算デバイスを含んでもよい。ネットワークは、ケーブル、赤外線ポート、無線信号、または複数の計算デバイスを接続する任意の他の手段を介して接続される、計算デバイスを含んでもよい。ネットワークおよびネットワークに接続される任意のデバイスは、SSL、BitTorrent、HTML、XML、RDP、ICA、FTP、HTTP、SIP、XMPP(Jabberとしても知られている)、TCP、IP、UDP、IPX、SPX、NetBIOS、NetBEUI、SMB、SMTP、Ethernet(登録商標)、ARCNET、ファイバ分散データインターフェース(Fiber Distributed Data Interface/FDDI)、RS232、IEEE 802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、IEEE 802.11n、WiMax、および直接非同期接続、またはこれらの任意の組み合わせおよび/または拡張を無制限に含む、計算デバイス間または計算デバイス内で通信するために使用される任意の通信プロトコルを介して、通信してもよい。ネットワークは、AMPS、TDMA、CDMA、GSM、GPRS、またはUMTSを含む、携帯デバイス間で通信するために使用される任意の1つまたは複数のプロトコルを利用する、携帯電話ネットワークを含んでもよい。
図2Aおよび2Bは、クライアント102またはサーバの実施形態を実践するために有用な計算デバイス200のブロック図を描写する。クライアント102およびサーバは、任意の種類および形態のネットワーク上で通信し、本明細書で説明される動作を行うことが可能なコンピュータ、ネットワークデバイスまたはアプライアンス等の、任意の種類および形態の計算デバイスとして配備され、および/またはその上で実行されてもよい。図2Aおよび2Bに示されるように、各計算デバイス200は、中央処理装置221と、メインメモリユニット222とを含む。図2Aに示されるように、計算デバイス200は、視覚表示デバイス224、キーボード226、および/またはマウス等のポインティングデバイス227を含んでもよい。図2Bに示されるように、各計算デバイス200はまた、1つ以上の入力/出力デバイス230a−230b(概して、数字230を使用して参照される)、および中央処理装置221と通信しているキャッシュメモリ240等の、追加オプション要素を含んでもよい。
中央処理装置221は、メインメモリユニット222からフェッチされた命令に応答し、それらを処理する、任意の論理回路である。多くの実施形態では、中央処理装置は、Intel Corporation(Mountain View,California)製造のもの、Motorola Corporation(Schaumburg,Illinois)製造のもの、Transmeta Corporation(Santa Clara,California)製造のもの、RS/6000プロセッサであって、International Business Machines(White Plains,New York)製造のもの、またはAdvanced Micro Devices(Sunnyvale,California)製造のもの等の、マイクロプロセッサユニットによって提供される。計算デバイス200は、これらのプロセッサのうちのいずれか、または本明細書で説明されるように動作することが可能な任意の他のプロセッサに基づいてもよい。
メインメモリユニット222は、スタティックランダムアクセスメモリ(SRAM)、バーストSRAMまたは同期バーストSRAM(BSRAM)、ダイナミックランダムアクセスメモリ(DRAM)、高速ページモードDRAM(FPM DRAM)、強化DRAM(EDRAM)、拡張データ出力RAM(EDO RAM)、拡張データ出力DRAM(EDO DRAM)、バースト拡張データ出力DRAM(BEDO DRAM)、強化DRAM(EDRAM)、同期DRAM(SDRAM)、JEDEC SRAM、PC200 SDRAM、ダブルデータレートSDRAM(DDR SDRAM)、強化SDRAM(ESDRAM)、同期リンクDRAM(SLDRAM)、Direct Rambus DRAM(DRDRAM)、または強誘電RAM(FRAM)等の、データを記憶し、任意の記憶場所がマイクロプロセッサ221によって直接アクセスされることを可能にすることができる、1つ以上のメモリチップであってもよい。メインメモリ222は、上記のメモリチップのうちのいずれか、または本明細書で説明されるように動作することが可能である、任意の他の利用可能なメモリチップに基づいてもよい。図2Aに示された実施形態では、プロセッサ221は、システムバス250を介してメインメモリ222と通信する(以下でより詳細に説明される)。図2Bは、プロセッサがメモリポート203を介してメインメモリ222と直接通信する、計算デバイス200の実施形態を描写する。例えば、図2Bでは、メインメモリ222は、DRDRAMであってもよい。
図2Bは、裏面バスと呼ばれることもある2次バスを介して、メインプロセッサ221がキャッシュメモリ240と通信する、実施形態を描写する。他の実施形態では、メインプロセッサ221は、システムバス250を使用して、キャッシュメモリ240と通信する。キャッシュメモリ240は、通常は、メインメモリ222よりも速い応答時間を有し、通常は、SRAM、BSRAM、またはEDRAMによって提供される。図2Bに示された実施形態では、プロセッサ221は、ローカルシステムバス250を介して、種々のI/Oデバイス230と通信する。中央処理装置221をI/Oデバイス230のうちのいずれかに接続するために、VESA VLバス、ISAバス、EISAバス、マイクロチャネルアーキテクチャ(MicroChannel Architecture/MCA)バス、PCIバス、PCI−Xバス、PCI−Expressバス、またはNuBusを含む、種々のバスが使用されてもよい。I/Oデバイスがビデオディスプレイ224である実施形態について、プロセッサ221は、ディスプレイ224と通信するために、アドバンストグラフィックスポート(Advanced Graphics Port/AGP)を使用してもよい。図2Bは、HyperTransport、Rapid I/O、またはInfiniBandを介して、メインプロセッサ221がI/Oデバイス230bと直接通信する、コンピュータ200の実施形態を描写する。図2Bはまた、ローカルバスおよび直接通信が混合している実施形態も描写し、プロセッサ221は、I/Oデバイス230bと直接通信しながら、ローカル相互接続バスを使用してI/Oデバイス230aと通信する。
計算デバイス200は、3.5インチディスク、5.25インチディスク、またはZIPディスク等のフロッピー(登録商標)ディスクを受容するためのフロッピー(登録商標)ディスクドライブ、CD−ROMドライブ、CD−R/RWドライブ、DVD−ROMドライブ、種々の形式のテープドライブ、USBデバイス、ハードドライブ、または、ソフトウェアおよびプログラムまたはその複数部分をインストールするために好適な任意の他のデバイス等の、任意の好適なインストールデバイス216をサポートしてもよい。計算デバイス200はさらに、オペレーティングシステムおよび他の関連ソフトウェアを記憶するため、およびアプリケーションソフトウェアプログラムを記憶するために、1つ以上のハードディスクドライブまたは独立ディスク冗長アレイ、フラッシュメモリ、またはEEPROM等の記憶デバイスを含んでもよい。随意で、インストールデバイス216のうちのいずれかは、記憶デバイスとしても使用することができる。加えて、オペレーティングシステムおよびソフトウェアは、ブート可能な媒体、例えば、knoppix.netからGNU/Linux配布として入手可能なGNU/Linux用のブート可能なCDである、KNOPPIX(登録商標)等のブート可能なCDから実行することができる。
さらに、計算デバイス200は、標準電話回線、LANまたはWANリンク(例えば、802.11、T1、T3、56kb、X.25、SNA、DECNET)、ブロードバンド接続(例えば、ISDN、フレームリレー、ATM、Gigabit Ethernet(登録商標)、Ethernet(登録商標)−over−SONET、ADSL、SDSL)、無線接続、あるいは上記のうちのいずれかまたは全ての何らかの組み合わせを含むがそれらに限定されない、種々の接続を通して、ローカルエリアネットワーク(LAN)、広域ネットワーク(WAN)、またはインターネットにインターフェース接続するネットワークインターフェース218を含んでもよい。接続は、種々の通信プロトコルを使用して確立することができる。一実施形態では、計算デバイス200は、Secure Socket Layer(SSL)またはTransport Layer Security(TLS)、またはCitrix Systems,Inc.(Ft.Lauderdale,Florida)製造のCitrix Gateway Protocol等の、任意の種類および/または形態のゲートウェイまたはトンネリングプロトコルを介して他の計算デバイス200と通信する。ネットワークインターフェース218は、内蔵ネットワークアダプタ、ネットワークインターフェースカード、PCMCIAネットワークカード、カードバスネットワークアダプタ、無線ネットワークアダプタ、USBネットワークアダプタ、モデム、または通信および本明細書で説明される動作を行うことが可能な任意の種類のネットワークに計算デバイス200をインターフェース接続するために好適な任意の他のデバイスを含んでもよい。
多種多様なI/Oデバイス230a−230nが、計算デバイス200に存在してもよい。入力デバイスは、キーボード、マウス、トラックパッド、トラックボール、マイクロホン、および描画タブレットを含む。出力デバイスは、ビデオディスプレイ、スピーカ、インクジェットプリンタ、レーザプリンタ、および昇華型プリンタを含む。I/Oデバイスは、図2Aに示されるようなI/Oコントローラ223によって制御されてもよい。I/Oコントローラは、キーボード226およびポインティングデバイス227、例えば、マウスまたは光学ペン等の、1つ以上のI/Oデバイスを制御してもよい。さらに、I/Oデバイスはまた、計算デバイス200用の記憶および/またはインストール媒体216を提供してもよい。さらに他の実施形態では、計算デバイス200は、Twintech Industry,Inc.(Los Alamitos,California)製造のUSBフラッシュドライブ系のデバイス等の、ハンドヘルドUSB記憶デバイスを受容するUSB接続を提供してもよい。
いくつかの実施形態では、計算デバイス200は、それぞれ、同じまたは異なる種類および/または形態であってもよい、複数の表示デバイス224a−224nを含むか、またはそれらに接続されてもよい。そのようなものとして、I/Oデバイス230a−230nおよび/またはI/Oコントローラ223のうちのいずれかは、計算デバイス200による複数の表示デバイス224a−224nの接続および使用をサポートし、可能にし、または提供するように、任意の種類および/または形態の好適なハードウェア、ソフトウェア、またはハードウェアおよびソフトウェアの組み合わせを含んでもよい。例えば、計算デバイス200は、表示デバイス224a−224nをインターフェース接続し、通信し、接続し、あるいは使用するように、任意の種類および/または形態のビデオアダプタ、ビデオカード、ドライバ、および/またはライブラリを含んでもよい。一実施形態では、ビデオアダプタは、複数の表示デバイス224a−224nにインターフェース接続するように、複数のコネクタを含んでもよい。他の実施形態では、計算デバイス200は、複数のビデオアダプタを含んでもよく、各ビデオアダプタが表示デバイス224a−224nのうちの1つ以上に接続される。いくつかの実施形態では、計算デバイス200のオペレーティングシステムの任意の部分が、複数の表示デバイス224a−224nを使用するために構成されてもよい。他の実施形態では、表示デバイス224a−224nのうちの1つ以上は、例えば、ネットワークを介して計算デバイス200に接続される、計算デバイス200aおよび200b等の、1つ以上の他の計算デバイスによって提供されてもよい。これらの実施形態は、計算デバイス200用の第2の表示デバイス224aとして別のコンピュータの表示デバイスを使用するように設計および構築される、任意の種類のソフトウェアを含んでもよい。当業者であれば、計算デバイス200が複数の表示デバイス224a−224nを有するように構成されてもよい、種々の方法および実施形態を認識し、理解するであろう。
さらなる実施形態では、I/Oデバイス230は、システムバス250と、USBバス、Apple Desktop Bus、RS−232直列接続、SCSIバス、Fire Wireバス、Fire Wire 800バス、Ethernet(登録商標)バス、AppleTalkバス、Gigabit Ethernet(登録商標)バス、非同期転送モード(Asynchronous Transfer Mode)バス、HIPPIバス、Super HIPPIバス、SerialPlusバス、SCI/LAMPバス、FibreChannelバス、またはシリアルアタッチド小型コンピュータシステムインターフェースバス等の外部通信バスとの間の橋渡しをしてもよい。
図2Aおよび2Bで描写された種類の計算デバイス200は、通常は、タスクのスケジューリングおよびシステムリソースへのアクセスを制御する、オペレーティングシステムの制御下で動作する。計算デバイス200は、MICROSOFT WINDOWS(登録商標)オペレーティングシステムのバージョンのうちのいずれか、Unix(登録商標)およびLinuxオペレーティングシステムの異なるリリース、Macintoshコンピュータ用のMAC OSの任意のバージョン、任意の組み込みオペレーティングシステム、任意のリアルタイムオペレーティングシステム、任意のオープンソースオペレーティングシステム、任意の専用オペレーティングシステム、携帯計算デバイス用の任意のオペレーティングシステム、または計算デバイス上で作動し、本明細書で説明される動作を行うことが可能な任意の他のオペレーティングシステム等の、任意のオペレーティングシステムを実行することができる。通常のオペレーティングシステムは、とりわけ、その全てがMicrosoft Corporation(Redmond,Washington)製である、WINDOWS(登録商標) 3.x、WINDOWS(登録商標) 95、WINDOWS(登録商標) 98、WINDOWS(登録商標) 2000、WINDOWS(登録商標) NT 3.51、WINDOWS(登録商標) NT 4.0、WINDOWS(登録商標) CE、WINDOWS(登録商標) XP、およびWINDOWS(登録商標) VISTA、Apple Computer(Cupertino,California)製のMACOS、International Business Machines(Armonk,New York)製のOS/2、およびCaldera Corp.(Salt Lake City,Utah)配布の無料で入手可能なオペレーティングシステムであるLinux、または任意の種類および/または形態のUnix(登録商標)オペレーティングシステムを含む。
コンピュータシステム200は、任意のワークステーション、デスクトップコンピュータ、ラップトップまたはノートブックコンピュータ、サーバ、手持ち式コンピュータ、携帯電話または他の携帯用電気通信デバイス、メディア再生デバイス、ゲームシステム、携帯計算デバイス、または、通信が可能であり、かつ本明細書で説明される動作を行うのに十分なプロセッサ能力およびメモリ容量を有する、任意の他の種類および/または形態の計算、電気通信、またはメディアデバイスとなり得る。例えば、コンピュータシステム200は、Apple Computer(Cupertino,California)製のIPOD群デバイスの中のデバイス、Sony Corporation(Tokyo,Japan)製のPLAYSTATION 2、PLAYSTATION 3、またはPERSONAL PLAYSTATION PORTABLE(PSP)デバイス、Nintendo Co.,Ltd.(Kyoto,Japan)製のNINTENDO DS、NINTENDO GAMEBOY、NINTENDO GAMEBOY ADVANCED、またはNINTENDO REVOLUTIONデバイス、またはMicrosoft Corporation(Redmond,Washington)製のXBOXまたはXBOX 360デバイスを含んでもよい。
携帯デバイスを含む実施形態について、デバイスは、その全てがMotorola Corp.(Schaumburg,Illinois)製である、i55sr、i58sr、i85s、またはi88s、Kyocera(Kyoto,Japan)製の6035または7135、またはSamsung Electronics Co.,Ltd.(Seoul,Korea)製のi300またはi330等の、JAVA(登録商標)使用可能携帯電話であってもよい。携帯デバイスを含む他の実施形態では、携帯デバイスは、その全てがpalmOne, Inc.(Milpitas,California)製である、Tungsten W、VII、VIIx、i705等のPalmOSオペレーティングシステムの制御下で動作する、携帯情報端末(PDA)であってもよい。さらなる実施形態では、クライアント102は、その全てがHewlett−Packard Corporation(Palo Alto,California)製である、iPAQ 4155、iPAQ 5555、iPAQ 1945、iPAQ 2215、およびiPAQ 4255、ViewSonic(Walnut,California)製のViewSonic V36、またはToshiba America,Inc.(New York,New York)製のToshiba PocketPC e405等の、PocketPCオペレーティングシステムの制御下で動作する、携帯情報端末(PDA)であってもよい。さらに他の実施形態では、携帯デバイスは、その全てがpalmOne, Inc.(Milpitas,California)製である、Treo 180、Treo 270、Treo 600、Treo 650、Treo 700、またはTreo 700w、またはApple Computer製のIPHONE群のデバイス等の、複合PDA/電話デバイスである。さらに他の実施形態では、携帯デバイスは、Motorola Corp.製のMPx200等の、PocketPCオペレーティングシステムの制御下で動作する携帯電話である。さらに他の実施形態では、携帯デバイスは、無線通信能力を伴う携帯ゲームデバイスを含んでもよい。通常の携帯デバイスは、プロセッサおよびメインメモリを含む、図2Aおよび2Bにおいて上記で説明される要素の多くを含んでもよい。
ここで図3を参照すると、マシンイメージからの構成可能な仮想サーバインスタンスの作成を促進するための方法を示す、フロー図が示されている。概要すると、方法は、ベースマシンイメージであって、所望の仮想サーバ能力のブート可能なサブセットと、構成マネージャとを含む、ベースマシンイメージを生成するステップ(ステップ301)と、少なくとも1つの仮想サーバ上でベースマシンイメージをインスタンス化する命令を伝送するステップ(ステップ303)と、インスタンス化された仮想サーバの構成マネージャが構成情報を受信する準備ができていることを決定するステップ(ステップ305)と、インスタンス化された仮想サーバの構成情報を構成マネージャに伝送するステップ(ステップ307)とを含む。
ここではさらに詳細に、依然として図3を参照すると、所望の仮想サーバ能力のブート可能なサブセットと、構成マネージャとを含む、ベースマシンイメージは、任意の方式で作成されてもよい(ステップ301)。ブート可能なサブセットは、オペレーティングシステム、HTTPサーバ、ファイル解凍/開梱ユーティリティ、スクリプト言語サポート、および暗号化/暗号解読ユーティリティを無制限に含む、仮想サーバ能力の任意のサブセットを含んでもよい。いくつかの実施形態では、マシンイメージは、仮想サーバ能力を含む構築過程に構成マネージャを含むことによって、作成されてもよい。他の実施形態では、マシンイメージは、既存のマシンイメージを修正することによって作成されてもよい。これらの実施形態では、構成マネージャは、そのマシンイメージからブートされる実行中の仮想サーバ上に既に存在していてもよく、または、インストールされてもよく、次いで、新規マシンイメージが、実行中の仮想サーバから取り出されてもよい。構成マネージャは、インスタンス化の後に仮想サーバを構成するための任意のユーティリティを含んでもよい。いくつかの実施形態では、ユーザがマシンイメージ内に含むことを選択するために、単一の構成マネージャがマネージャ100によって提供されてもよい。他の実施形態では、複数の構成マネージャが提供されてもよい。複数の構成マネージャは、古いバージョンを保持して、既存のサーバ構成が以前通りに稼働することを確実にしながら、構成マネージャへの機能強化をサポートするために使用されてもよい。複数の構成マネージャはまた、複数のオペレーティングシステム(例えば、Linux、FreeBSD、Solaris)をサポートするため、または1つのオペレーティングシステムの複数のバージョン(例えば、RedHat Linux、Debian Linux、およびUbuntu Linux、またはSolaris 10およびOpenSolaris)をサポートするために使用されてもよい。
いくつかの実施形態では、ユーザは、多数の異なるマシンイメージを作成できるようになってもよい。例えば、ユーザは、それぞれ異なるオペレーティングシステムで、多数の仮想サーバベースマシンイメージを作成することを希望してもよい。次いで、ユーザは、オペレーティングシステムのそれぞれの上で実行するカスタマイズされた仮想サーバインスタンスを作成するために、これらのイメージのそれぞれを使用してもよい。
ベースマシンイメージが作成された後に、少なくとも1つの仮想サーバ上でベースマシンイメージをインスタンス化する命令が、任意の方式で伝送されてもよい(ステップ303)。いくつかの実施形態では、命令は、マネージャ100から仮想サーバサービス120に伝送されてもよい。いくつかの実施形態では、この伝送は、ユーザによって開始されてもよい。例えば、マネージャ100は、それによってユーザが1つ以上の仮想サーバサービス上の多数の仮想サーバにアクセスし、管理することができる、ウェブページを提供してもよい。ユーザは、マネージャ100を通して、特定のマシンイメージをインスタンス化する命令を送信することができる。次いで、マネージャ100は、適切なベースイメージを選択し、イメージをインスタンス化するように仮想サーバサービスに命令を送信してもよい。
いくつかの実施形態では、仮想サーバをインスタンス化する命令は、自動的に送信されてもよい。これらの実施形態では、命令の送信を誘起するために、仮想サーバ自体、他のサーバ、マネージャ100、または上記のデータの任意の組み合わせからの任意の構成または監視データを使用することができる。例えば、マネージャ100は、多数のサーバの使用量、負荷、または利用が閾値を超えた場合、または所要の仮想サーバが故障した場合に、所与のマシンイメージを自動的にインスタンス化する命令を有してもよい。
いくつかの実施形態では、インスタンス化命令は、インスタンス化される予定のサーバに対する1つ以上のパラメータを含んでもよい。例えば、インスタンス化命令は、マネージャ100が特定のインスタンス化を後で識別することができるように、通し番号または他の識別子を含んでもよい。または、例えば、インスタンス化命令は、新たにインスタンス化されたサーバがインスタンス化時に接続するアドレスを有するように、マネージャ100のアドレスを含んでもよい。
命令を伝送した後、マネージャ100は、任意の方式で、インスタンス化された仮想サーバの構成マネージャが構成情報を受信する準備ができていることを決定してもよい(ステップ305)。いくつかの実施形態では、マネージャ100は、インスタンス化されたサーバから接続要求を受信するのを待ってもよい。他の実施形態では、マネージャ100は、成功するまでインスタンス化されたサーバへの接続を周期的に要求してもよい。いくつかの実施形態では、マネージャ100は、ホスト型仮想サーバサービスを通して提供されるサービスを使用して、インスタンス化されたサーバの状態を監視してもよい。
一実施形態では、インスタンス化されたサーバは、マネージャ100とのHTTPSセッションを開始してもよい。インスタンス化されたサーバは、マシンの現状とともに、それに与えられた通し番号をマネージャ100に渡してもよい。次いで、マネージャ100は、通し番号が、インスタンス化する命令をマネージャが送信した通し番号に対応することを検証してもよい。他の実施形態では、インスタンス化された仮想サーバは、TCP/IPソースアドレスおよび/またはインスタンスに与えられたホスト型仮想サーバサービス識別子を含む、任意の他の手段によって識別されてもよい。
準備状況が決定された後に、インスタンス化された仮想サーバの構成情報が、任意の方式で伝送されてもよい(ステップ307)。一実施形態では、構成情報は、マネージャ100から伝送されてもよい。
構成情報は、実行ファイル、ファイル、パラメータ、ならびに他の仮想サーバインスタンスの記憶場所および種類を無制限に含む、機能する仮想サーバインスタンスによって使用されてもよい、任意の情報を含んでもよい。一実施形態では、伝送される構成情報は、実行可能なスクリプトの順序付きリスト、各スクリプトに対応するファイルを指すURLのリスト、および実行中にスクリプトによって使用され、アクセスされてもよい、一式の入力変項束縛を含んでもよい。この実施形態では、各スクリプトに対応するファイルは、構成ファイル、インストールするアプリケーションパッケージ、実行可能ファイル、およびアプリケーションデータ(例えば、データベーススナップショット)を無制限に含む、各スクリプトによって利用される任意のファイルを含んでもよい。
構成情報が伝送された後に、仮想サーバインスタンスは、受信した構成情報を実装するために必要な任意のステップを講じてもよい。以下の実施例は、マネージャ100が、実行可能なスクリプトの順序付きリスト、各スクリプトに対応するファイルを指すURLのリスト、および一式の入力変項束縛を伝送している、上記で説明される実施形態を引き続き述べる。
インスタンスは、最初に、ローカルファイルシステムの中の実行可能ファイルの中へ各スクリプトを入れ、ローカルファイルシステムにも記憶するように、提供されたURLから、構成ファイルに名前が付けられた各添付ファイルをダウンロードしてもよい。添付ファイルはそれぞれ、各スクリプトの別個のディレクトリに記憶されてもよい。次いで、各スクリプトが順に実行されてもよく、各スクリプトは、スクリプトによって要求される入力変項束縛に渡される。これらの束縛は、マシンイメージid、インスタンスid、インスタンスに割り当てられたIPアドレス、およびスクリプトの添付ファイルの記憶場所等の、多数のグローバル変数を含んでもよい。エラーが発生した(例えば、スクリプトがエラーを伴って存在する)場合、過程が途中停止されてもよい。
いくつかの実施形態では、構成過程の実行自体が、構成過程の初期ステップによって決定されてもよい。例えば、構成スクリプトが、以降の構成スクリプトで使用される入力パラメータを生じてもよい。または、例えば、構成スクリプトは、一式の構成スクリプトのうちのどれが、どのような順番で実行されるべきかを決定するように実行してもよい。いくつかの実施形態では、構成過程は、起動され、終了され、あるいは構成過程に基づいて影響を受ける、1つ以上の他の仮想サーバを特定してもよい。これらの実施形態では、構成過程を実行する仮想サーバは、影響を受けるサーバに信号を直接送信してもよく、または、仮想サーバは、マネージャ100に命令を送信してもよい。
構成が完成した後に、インスタンスは、全てのスクリプトがエラーなしで実行された場合は「成功」、スクリプトがエラーを伴って終了した場合は「標準」である、構成過程の結果をマネージャ100に信号伝達してもよい。この信号伝達は、任意の方式で行われてもよく、構成情報を転送するために使用される、同じ方法および/または接続を使用してもよい。加えて、トラブルシューティングの目的で、インスタンスは、例えば、UNIX(登録商標)標準出力および各スクリプトのエラー出力を含む、任意の数の構成状態の更新を伝送してもよい。
別の構成例を挙げると、多重サーバ構成を配備する時に、第2のサーバの状態に依存する情報で1つのサーバを構成することがしばしば必要である。例えば、第1のサーバは、第2のサーバに接続する必要があってもよく、この目的で、第2のサーバのIPアドレスを知る必要があってもよい。これらの場合において、第1および第2のサーバが実質的に同時に起動された場合、または2つのサーバに相互依存性がある場合(そのような場合において、他のサーバが必要とする情報を生じる前に、両方のサーバが他のサーバからの情報を待つ必要があれば、デッドロックが発生する場合がある)に、特定の課題に直面する場合がある。そのようなサーバ間依存性は、不完全な情報を構成マネージャに伝送することによって対処されてもよい。具体的には、ある入力が「欠落している」としてマークされてもよい。構成マネージャは、構成ステップを続行するが、各特定スクリプトを実行する前に、全ての必要入力の存在をチェックする。1つまたは複数の入力が欠落している場合、構成マネージャは、それが有してもよい任意の状態情報をマネージャ100に伝送し、次いで、欠落入力値について、マネージャ100に周期的にクエリを行う。欠落値を受信すると、スクリプトの実行を続行する。
多重サーバ構成では、サーバ間の依存性が経時的に変化してもよい。上記の実施例を引き続き述べると、第2のサーバが故障し、置換サーバが起動された場合、依存情報を更新するように、第1のサーバの構成が変更される必要がある。加えて、構成情報を再読するように、ある過程が信号伝達または再開される必要があってもよい。一実施形態では、初期構成後、構成マネージャは、周期的にマネージャ100にポーリングして、再構成活動が必要とされるかどうかを問い合わせることができる。もしそうであれば、ポーリングへのマネージャ100の応答は、ブート時に伝送される種類と同様の構成情報を含有してもよく、構成マネージャは、要求されたスクリプトを同じ様式で実行して、仮想サーバ構成を更新する。別の実施形態では、周期的に構成マネージャをポーリングさせる代わりに、マネージャ100がサーバへの接続を開放して、要求された情報を送信することができる。
ここで図4を参照すると、マシンイメージから構成可能な仮想サーバインスタンスを作成するのに要する時間を削減するための方法の一実施形態のフロー図が示されている。概要すると、方法は、第1のベースイメージであって、所望の仮想サーバ能力のブート可能なサブセットを含む、第1のベースイメージを生成するステップ(ステップ401)と、第1のベースイメージのサーバ構成を完成させる、一式の構成命令を生成するステップ(ステップ403)と、ベースイメージを使用して仮想サーバをインスタンス化するステップ(ステップ405)と、インスタンス化された仮想サーバに一式の構成命令のサブセットを適用するステップ(ステップ407)と、構成された仮想サーバから第2のベースイメージを生成するステップ(ステップ409)と、少なくとも1つの第2の仮想サーバ上で第2のベースマシンイメージをインスタンス化する命令を伝送するステップ(ステップ411)と、インスタンス化された第2の仮想サーバの構成マネージャが構成情報を受信する準備ができていることを決定するステップ(ステップ413)と、構成命令のサブセットに含まれない、一式の構成命令からの構成命令を含む構成情報を、インスタンス化された第2の仮想サーバに伝送するステップ(ステップ415)とを含む。
ここではさらに詳細に、依然として図4を参照すると、上記で説明されるような、マネージャ100を使用して仮想サーバをインスタンス化する過程は、伝送される構成情報の量および実行されるスクリプトの数に応じて、追加時間を要してもよい。したがって、構成情報のサブセットの中に構築したベースイメージを作成することが望ましくてもよい。図4に示された方法は、そのような修正されたベースイメージを効率的に形成し、インスタンス化するために使用されてもよい。
第1のベースイメージであって、所望の仮想サーバ能力のブート可能なサブセットを含む、第1のベースイメージが、任意の方法を使用して生成されてもよい(ステップ401)。第1のベースイメージは、上記で説明される技法のうちのいずれかを使用して作成されてもよい。
第1のベースイメージのサーバ構成を完成させる、一式の構成命令を生成するが、任意の方式で生成されてもよい(ステップ403)。一式の構成命令は、スクリプト、パラメータ、および関連ファイルを無制限に含む、本明細書で説明される構成情報のうちのいずれかを含んでもよい。いくつかの実施形態では、構成命令は、所望の構成を特定するユーザ入力に応じて、自動的に生成されてもよい。いくつかの実施形態では、構成命令は、ウェブインターフェースを介してユーザ入力を受信することに応じて、マネージャ100によって生成されてもよい。
次いで、仮想サーバが、任意の方式でベースイメージを使用してインスタンス化されてもよい(ステップ405)。いくつかの実施形態では、仮想サーバは、ホスト型仮想サーバサービス上でインスタンス化されてもよい。他の実施形態では、仮想サーバは、試験または構築環境内でインスタンス化されてもよい。さらに他の実施形態では、仮想サーバは、マネージャ100上でインスタンス化されてもよい。
インスタンス化の後に、一式の構成命令のサブセットが、インスタンス化された仮想サーバに適用されてもよい(ステップ407)。いくつかの実施形態では、マネージャ100が、構成命令のサブセットをインスタンス化された仮想サーバに伝送してもよい。一式の構成命令のサブセットは、任意の方式で選択されてもよい。いくつかの実施形態では、ユーザがサブセットを選択してもよい。いくつかの実施形態では、サブセットは、サブセットの中の命令がどれだけ普及しているかに基づいて選択されてもよい。例えば、サブセットは、最もよく使用された構成命令を含んでもよい。他の実施形態では、サブセットは、インスタンス化された仮想サーバによって、命令をどれだけ迅速に実行することができるかに基づいて選択されてもよい。例えば、サブセットは、仮想サーバによって実行されるのに最長の時間を要する構成命令を含んでもよい。
次いで、第2のベースイメージが、構成された仮想サーバから生成されてもよい(ステップ409)。第2のベースイメージは、ベースイメージを生成するための任意の技法によって形成されてもよい。いくつかの実施形態では、実行可能コード、および構成された仮想サーバを含む添付ファイルでコピーが作られている間に、構成された仮想サーバは、実行を一時停止または停止してもよい。
次いで、少なくとも1つの第2の仮想サーバ上で第2のベースマシンイメージをインスタンス化する命令が、伝送されてもよい(ステップ411)。一実施形態では、第2のベースマシンイメージをインスタンス化する命令は、マネージャ100からホスト型仮想サーバサービスに伝送されてもよい。例えば、命令は、ユーザ要求への直接応答の中で、またはユーザによって設定される自動インスタンス化過程のサブセットとして、ホスト型仮想サーバサービスに伝送されてもよい。
次いで、マネージャ100が、インスタンス化された第2の仮想サーバの構成マネージャが構成情報を受信する準備ができていることを決定してもよい(ステップ413)。この決定は、例えば、第2の仮想サーバを実行する構成マネージャからの伝送を受信するステップを含む、本明細書で説明される任意の技法またはシステムを使用して行われてもよい。
決定後、マネージャ100は、構成命令のサブセットに含まれない、一式の構成命令からの構成命令を含む構成情報を、インスタンス化された第2の仮想サーバに伝送してもよい(ステップ415)。構成命令の伝送は、任意の方式で、かつ任意の1つまたは複数のプロトコルを使用して行われてもよい。第2の仮想サーバが構成命令を受信した後に、第2の仮想サーバは、本明細書で説明される任意の技法を使用して構成命令を適用してもよい。
ここで図5A、5B、5C、5D、5E、5F、および5Gを参照すると、ホスト型仮想サーバサービスへの構成およびインスタンス化インターフェースの一実施形態のスクリーンショット例が示されている。これらの図のそれぞれを、以下の図6A、6B、および7の説明と併せて詳細に論議する。
ここで図6Aを参照すると、ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法の第1の実施形態のフロー図が示されている。概要すると、マネージャ100が、ホスト型仮想サーバサービスにインターフェースを提供してもよい(ステップ601)。インターフェースは、ユーザが複数の仮想サーバ構成の中から仮想サーバ構成を選択するための入力と、ユーザが、仮想サーバを動的にインスタンス化するための方針であって、少なくとも1つの条件を含む方針を設定するための入力とを含む。次いで、マネージャ100は、少なくとも1つの条件が満たされていることを決定し(ステップ603)、選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、ホスト型仮想サーバサービスに伝送してもよい(ステップ605)。
ここではさらに詳細に、依然として図6Aを参照すると、ホスト型仮想サーバサービスへのインターフェースが、任意の方式で提供されてもよい。いくつかの実施形態では、インターフェースは、ウェブベースのグラフィカルインターフェースを含んでもよい。そのようなインターフェースは、HTML、Java(登録商標)スクリプト、XML、画像、テキスト、Java(登録商標) Applets、および/またはSVGの任意の組み合わせを無制限に含む、ウェブブラウザを介して表示されることが可能な任意のグラフィカルインターフェースを含んでもよい。他の実施形態では、インターフェースは、コマンドラインインターフェースを含んでもよい。さらに他の実施形態では、インターフェースは、画像およびテキストの入力の組み合わせであってもよい。インターフェースは、マネージャ100、ユーザ局102、またはそれらの任意の組み合わせを無制限に含む、任意の1つまたは複数の計算デバイスによって提供されてもよい。例えば、マネージャ100は、多数のウェブページをユーザ局102に伝送してもよく、ユーザ局は、ページを表示し、ユーザ入力をマネージャ100に返送してもよい。
インターフェースは、ユーザが複数の仮想サーバ構成の中から仮想サーバ構成を選択するための任意の入力を含んでもよい。いくつかの実施形態では、ユーザは、メニューより、多数の構成の中から選択してもよい。他の実施形態では、ユーザは、1つ以上の仮想サーバ構成の名前を入力してもよい。さらに他の実施形態では、ユーザは、変数、構成スクリプト、およびサーバイメージを無制限に含む、仮想サーバ構成に対応する任意のデータを、選択のサブセットとして伝送してもよい。例えば、メニューが、以前にアップロードされたサーバ構成の中から選択する、または新規仮想サーバイメージおよび/または構成をアップロードする選択肢を提供してもよい。いくつかの実施形態では、インターフェースは、ユーザが、他のユーザによって作成および共有された仮想サーバ構成から選択することを可能にしてもよい。例えば、ユーザは、電子商取引サイトをホストするための特に有用な構成を作成してもよい。次いで、ユーザは、その構成を共有と指定し、従って、他のユーザがその構成を使用することを可能にしてもよい。いくつかの実施形態では、使用は、ライセンス条件および/または構成の作者への支払が前提となってもよい。
図5Aを再度参照すると、ユーザが複数の公的および私的サーバ構成の中から選択することを可能にする、メニュー例が示されている。私的サーバ構成は、ユーザによって作成および/または修正されていてもよい。公的/プレミアムサーバ構成は、他者によって作成および共有されたサーバ構成、またはインターフェースの管理者によって利用可能となるサーバ構成を表してもよい。いくつかの実施形態では、ある公的/プレミアムサーバ構成の使用に対して、ユーザに課せられる料金があってもよい。
図5Bを参照すると、インターフェースはまた、ユーザが、サーバ構成と関連する1つ以上のブートスクリプトを閲覧することを可能にしてもよい。次いで、ユーザは、ブートスクリプトを閲覧、選択、除去、または修正することが可能であってもよい。ユーザはまた、ユーザによって作成されるスクリプトおよび公的に利用可能となるスクリプトの両方を含む、スクリプトをサーバ構成に追加することが可能であってもよい。
インターフェースはまた、ユーザが、仮想サーバを動的にインスタンス化するための方針であって、少なくとも1つの条件を含む方針を設定するための任意の入力を含んでもよい。方針は、条件および活動の任意の組み合わせを含んでもよい。条件は、仮想サーバ使用量、ホスト型仮想サーバサービスパラメータ、時刻、日付、仮想サーバに対する伝送の受信、メッセージ待ち行列の状態(例えば、サイズまたは経年数)、および仮想サーバ上で実行するアプリケーションから送信される信号(すなわち、アプリケーションは、追加サーバが必要とされる時を内部で決定してもよい)を無制限に含む、任意の1つまたは複数の変数に関してもよい。仮想サーバ利用に関する条件は、プロセッサ負荷、帯域幅使用量、動作中の接続、メモリ負荷、最大応答時間、および平均応答時間ディスク利用、システム温度および他の環境要因、メモリエラー率、ディスクエラー/再試行率、電力供給レベル等のハードウェア健全指標を無制限に含む、任意のパラメータまたは仮想サーバ使用量のパラメータの組み合わせを使用してもよい。
ここで図5Cを参照すると、ユーザが方針および条件を選択することを可能にする、インターフェース例が示されている。図5Cは、仮想サーバを管理するために有効化されてもよい条件とともに、多数の方針を示す。例えば、第1の方針は、仮想サーバのcpuアイドル時間が3分間にわたって50%を下回ると、「スケールアップ」イベントを引き起こす。スケールアップイベントは、マネージャ100によって受信されてもよく(または、マネージャ100が仮想サーバを直接監視している場合はマネージャ100によって生成される)、次いで、マネージャが、現在高負荷である仮想サーバの新規イメージをインスタンス化するように、仮想サーバサービスに命令を送信してもよい。図5Cのリストの中の第2の方針は、仮想サーバのcpuアイドル時間が10分間にわたって80%以上に上昇すると、「スケールダウン」イベントを引き起こす。スケールダウンイベントは、マネージャ100によって受信されてもよく(または、マネージャ100が仮想サーバを直接監視している場合はマネージャ100によって生成される)、次いで、マネージャが、活用されていない仮想サーバのインスタンスを除去するように、仮想サーバサービスに命令を送信してもよい。例えば、第3の方針は、仮想サーバが1分以上にわたって不動状態であれば危機的イベントが生成されることを指図する。危機的イベントは、マネージャ100によって受信される(または、マネージャ100が仮想サーバを直接監視している場合はマネージャ100によって生成される)か、または記録されてもよく、または、マネージャ100が、危機的イベントの対処のための特定手順を有してもよい。
いくつかの実施形態では、条件は、1つ以上の仮想サーバの故障に関してもよい。例えば、条件は、実行中の仮想サーバインスタンスの故障時に、新規仮想サーバのインスタンス化を提供してもよい。これらの実施形態では、故障は、クラッシュ、実行の一時停止、通信障害、メッセージへの応答の失敗、要求へのサービス提供の失敗、破損、および/または不本意のシャットダウンを無制限に含む、仮想サーバの任意の種類の故障を含んでもよい。いくつかの実施形態では、条件は、仮想サーバの予測された故障に関してもよい。これらの実施形態では、故障は、エラーチェックコード(ECC)によるメモリのエラー率等、またはディスクの種々のエラー率(通常は、SMART基準を使用して監視される)等の、回復可能なエラー率に基づく手段を無制限に含む、任意の手段によって予測されてもよい。故障はまた、回復不可能なエラー、例えば、自発的なマシンのリブートに基づいて予測されてもよい。例えば、方針は、5〜20回の予期しないリブート(通常は、ハードウェアチェックによって開始される)の後に、サーバを閉鎖し、置換サーバをインスタンス化してもよい。
例えば、方針は、閾値を上回る仮想サーバ使用量の条件が真である時はいつでも、新規仮想サーバをインスタンス化する活動を特定してもよい。または、例えば、方針は、午後7時に多数の仮想サーバインスタンスを終了させる活動を特定してもよい。いくつかの実施形態では、方針は、所与の時に維持する仮想サーバの総数を特定してもよい。例えば、方針は、午前6時に少なくとも4つのサーバが作動していなければならず、それが0〜4つのサーバの起動を必要としてもよいことを規定してもよい。方針はまた、例えば、総費用を限定するように、多くても20のサーバが作動していてもよいことを表すこともできる。いくつかの実施形態では、方針は、例えば、全てのサーバにわたって毎秒果たされる最小限のリクエストが100/秒を上回る場合に、複数のサーバの状態を組み合わせ、次いで、追加サーバを起動してもよい。他の実施形態では、上記の方針の任意の組み合わせが適用されてもよい。例えば、方針は、午前7時に少なくとも4つのサーバが作動していること、平均CPU利用が実行中のサーバについて40%以上であれば、1つの追加サーバが起動されること、および、任意の時点で多くても10のサーバが作動していてもよいことを要求してもよい。
図5Dおよび5Eは、ユーザが方針を編集および作成することを可能にする、インターフェース例を描写する。方針を構成する際に、ユーザは、リアルタイム監視データが収集されるファイルの中の変数を選択してもよい。ユーザは、方針に対する変数、条件、閾値、持続時間、および段階的拡大活動を選択してもよい。ユーザ選択は、メニュー、チェックボックス、テキストボックス、リンク、ドラッグ・アンド・ドロップ・インターフェース、およびスライダを無制限に含む、任意の入力を介して達成されてもよい。
図5Fは、ユーザが一連のサーバのアレイに対する方針を設定することを可能にする、インターフェース例を描写する。例えば、アレイは、変更が行われる前に、サーバのどの部分がアレイを増大または縮小するイベントを生成しなければならないかを定義する、弾性閾値を有してもよい。示された実施例では、それぞれ、サーバの少なくとも51%に対して、それぞれ、スケールアップイベントまたはスケールダウンイベントが生成される場合に、アレイが増大または縮小される。アレイは、所定数のサーバによって増大または縮小されてもよく、一度に作動してもよい仮想サーバの数に確かな上限および下限を有してもよい。アレイはまた、サイズ変更イベントの間に必要とされるクールダウン時間を有してもよい。
ここで図5Gを参照すると、いくつかの実施形態では、1つ以上の仮想サーバインスタンスの使用統計値をユーザに示す、表示が提供されてもよい。表示は、グラフ、ヒストグラム、チャート、アニメーション、およびテキストを無制限に含む、任意の統計値を任意の形式で提示してもよい。いくつかの実施形態では、表示は、ユーザが1つ以上のポリシーを構成する際に使用することを所望する、特定のパラメータを示してもよい。例えば、ユーザは、1ヶ月の期間にわたるCPU利用傾向を調べて、CPU利用に基づいて追加サーバインスタンスを追加する方針に対する閾値を決定してもよい。
先に図6Bを参照すると、いくつかの実施形態では、インターフェースが、インスタンス化の時にプロパティに基づいて決定される値とともに、1つ以上の構成変数の入力を受け取ってもよい(ステップ601a)。プロパティは、他のインスタンス化された仮想サーバの名前、アドレス、および構成情報、ホスト型仮想サーバサービスのプロパティ、マネージャ100のプロパティ、1つ以上のインスタンス化された仮想サーバの利用パラメータ、またはサーバの起動を誘起した正確な条件を無制限に含む、インスタンス化時に決定される任意の値を含んでもよい。
図6Aを再度参照すると、次いで、マネージャ100が、任意の方式で、少なくとも1つの条件を満たされていることを決定してもよい(ステップ603)。いくつかの実施形態では、マネージャ100は、ホスト型仮想サーバサービスからデータを受信して、条件が満たされているかどうかを決定してもよい。他の実施形態では、マネージャ100は、システム時間をチェックすること等によって、条件が満たされていることを内部で決定してもよい。さらに他の実施形態では、マネージャ100は、1つ以上のインスタンス化された仮想サーバからデータを受信することによって、条件が満たされていることを決定してもよい。
条件が満たされた後に、マネージャ100は、選択された仮想サーバ構成に従って仮想サーバをインスタンス化する命令を、ホスト型仮想サーバサービスに伝送してもよい(ステップ605)。命令は、仮想サーバの構成またはインスタンス化に関する任意の情報を含んでもよい。いくつかの実施形態では、命令は、命令が伝送される時に決定される1つ以上の変数を含んでもよい。さらに他の実施形態では、命令は、本明細書で説明される任意の方式でインスタンス化された仮想サーバを構成する、構成マネージャで、仮想サーバをインスタンス化することであってもよい。
先に図6Bを参照すると、いくつかの実施形態では、命令を伝送した後、マネージャ100は、1つ以上の変数の値を決定してもよい(ステップ607)。次いで、マネージャ100は、それらの変数の値を、インスタンス化された仮想サーバに伝送してもよい。
ここで図7を参照すると、複数のホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法が示されている。概要すると、示された方法は、複数のホスト型仮想サーバサービスの中から選択するための方針の入力を受け取るインターフェースを付加して、図6Aおよび6Bの方法と同様である(ステップ601b)。次いで、方法は、方針に従って、仮想サーバをインスタンス化するように、複数のホスト型仮想サーバサービスのうちの1つを選択するステップを含んでもよい(ステップ705)。
依然として図7を参照すると、インターフェースが、本明細書で説明される任意の方式で提供されてもよい(ステップ601b)。インターフェースは、ホスト型仮想サーバサービスの中から選択するための方針をユーザが特定するための任意の入力を含んでもよい。方針は、性能、費用、使用量、および待ち時間を無制限に含む、仮想サーバサービスの任意の属性を特定してもよい。例えば、方針は、どのサービスが最良の性能/費用トーレドオフを提供するかに基づいて、複数のサービスの中から選択してもよい。または、例えば、方針は、インスタンス化される仮想サーバの種類に基づいて、複数のサービスの中から選択してもよい。
条件が満たされた後(ステップ603)、次いで、マネージャが、第1の方針に従って、複数のホスト型仮想サーバサービスのうちの1つを選択してもよい(ステップ705)。マネージャは、選択を行う過程で、任意の情報を受信し、任意の要求を送信し、または任意のパラメータを計算してもよい。次いで、マネージャは、インスタンス化命令を選択されたサービスに伝送してもよい(ステップ605)。
具体的な好ましい実施形態を参照して、本開示を具体的に示し、説明したが、添付の請求項によって規定されるような本開示の精神および範囲から逸脱することなく、形態および詳細の種々の変更がそれに行われてもよいことが、当業者によって理解されるべきである。

Claims (26)

  1. ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法であって、該方法は、
    a.仮想サーバマネージャによって、複数のホスト型仮想サーバサービスにインターフェースを提供することであって、該複数のホスト型仮想サーバサービスの各々、複数の物理的マシンを含み、該複数の物理的マシンは、それぞれ1つ以上の仮想サーバをホストし、該インターフェースは、
    i.ユーザが、複数の仮想サーバ構成の中から、1つの仮想サーバ構成を選択することを可能にする入力手段であって、各仮想サーバ構成は、ブートイメージと構成情報とを含む、入力手段と、
    ii.ユーザが、仮想サーバを動的にインスタンス化するための方針を設定するための入力手段であって、該方針は、少なくとも1つの条件を含む、入力手段と
    を含む、ことと、
    b.該仮想サーバマネージャによって、該少なくとも1つの条件が満たされていることを決定することと、
    c.該仮想サーバマネージャによって、該選択された仮想サーバ構成を構成するブートイメージに従って仮想サーバをインスタンス化する命令を、該複数のホスト型仮想サーバサービスのうちの1つに伝送することと、
    d.該仮想サーバマネージャによって、該複数のホスト型仮想サーバサービスのうちの1つを構成する該物理的マシンのうちの1つにおける該ブートイメージのインスタンス化が完了していることを決定することと、
    e.該仮想サーバマネージャによって、該構成情報を該インスタンス化されたブートイメージに伝送することと
    を含む、方法。
  2. 前記複数のホスト型仮想サーバサービスのうちの少なくとも1つは、第三者ホスト型仮想サーバサービスである、請求項1に記載の方法。
  3. ステップ(a)は、1つのインターフェースを前記複数のホスト型仮想サーバサービスにサブスクリプションベースで提供することを含む、請求項2に記載の方法。
  4. 前記条件は、1つ以上のパラメータを特定し、各パラメータは、1つ以上の仮想サーバの利用を示す、請求項1に記載の方法。
  5. ステップ(b)が、前記1つ以上のパラメータの値を示す情報を受信することと、該値が前記条件によって特定される閾値を超えることを決定することとを含む、請求項4に記載の方法。
  6. 仮想サーバ利用パラメータの第2の測定値を示す情報を受信することと、該測定値が前記条件によって特定される閾値未満であることを決定することと、前記複数のホスト型仮想サーバサービスのうちの前記1つに、仮想サーバインスタンスを終了する命令を伝送することとをさらに含む、請求項5に記載の方法。
  7. 前記インターフェースは、ネットワーク利用パラメータに応答して、仮想サーバインスタンス化を動的にスケール化する少なくとも1つの方針をユーザが構成するための入力手段を含む、請求項1に記載の方法。
  8. 前記条件は、インスタンス化された仮想サーバの故障を含む、請求項1に記載の方法。
  9. 前記条件は、インスタンス化された仮想サーバの予測された故障を含む、請求項1に記載の方法。
  10. 前記複数の仮想サーバ構成は、第2のユーザによって生成された少なくとも1つの仮想サーバ構成を含む、請求項1に記載の方法。
  11. 前記インターフェースは、ユーザが、他のユーザと、生成された仮想サーバ構成を共有することを可能にする入力をさらに含む、請求項1に記載の方法。
  12. 仮想サーバ構成をユーザが選択するための入力手段は、インスタンス化のときに少なくとも1つの他のインスタンス化された仮想サーバの特性に基づいて決定された値によって、該ユーザが、少なくとも1つの構成変数を特定するための入力手段を備える、請求項1に記載の方法。
  13. f.前記特定された少なくとも1つの構成変数のそれぞれに対する値を決定するステップと、
    g.該決定された値を前記インスタンス化された仮想サーバに伝送するステップと
    をさらに含む、請求項12に記載の方法。
  14. 仮想サーバ構成をユーザが選択するための入力手段は、インスタンス化のときに前記ホスト型仮想サーバサービスの特性に基づいて決定された値によって、該ユーザが、少なくとも1つの構成変数を特定するための入力手段を備える、請求項1に記載の方法。
  15. f.前記特定された少なくとも1つの構成変数のそれぞれに対する値を決定するステップと、
    g.該決定された値を前記インスタンス化された仮想サーバに伝送するステップと
    をさらに含む、請求項14に記載の方法。
  16. 複数のホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するための方法であって、該方法は、
    a.仮想サーバマネージャによって、複数の物理的マシンを含む複数のホスト型仮想サーバサービスにインターフェースを提供することであって、該複数の物理的マシンの各々、1つ以上の仮想サービスをホストし、該インターフェースは、
    i.ユーザが、複数の仮想サーバ構成の中から、1つの仮想サーバ構成を選択することを可能にする入力手段であって、各仮想サーバ構成は、ブートイメージと構成情報とを含む、入力手段と、
    ii.ユーザが、該複数のホスト型仮想サーバサービスの中から選択するための第1の方針を設定するための入力手段と、
    iii.仮想サーバを動的にインスタンス化するための第2の方針をユーザが設定するための入力手段であって、該方針は、少なくとも1つの条件を含む、入力手段と
    を含む、ことと、
    b.該仮想サーバマネージャによって、該少なくとも1つの条件が満たされていることを決定することと、
    c.該仮想サーバマネージャによって、該第1の方針に従って、該複数のホスト型仮想サーバサービスのうちの1つを選択することと、
    d.該仮想サーバマネージャによって、該選択された仮想サーバ構成を構成するブートイメージに従って仮想サーバをインスタンス化する命令を、該選択されたホスト型仮想サーバサービスに伝送することと、
    e.該仮想サーバマネージャによって、該複数のホスト型仮想サーバサービスのうちの選択された1つを構成する該物理的マシンのうちの1つにおける該ブートイメージのインスタンス化が完了していることを決定することと、
    f.該仮想サーバマネージャによって、該構成情報を該インスタンス化されたブートイメージに伝送することと
    を含む、方法。
  17. ホスト型仮想サーバサービスに構成およびインスタンス化インターフェースを提供するためのシステムであって、該システムは、
    複数のホスト型仮想サーバサービスにインターフェースを提供するウェブサーバであって、該複数のホスト型仮想サーバサービスの各々、複数の物理的マシンを含み、該複数の物理的マシンは、それぞれ、少なくとも1つの仮想サーバをホストし、該インターフェースは、
    i.ユーザが、複数の仮想サーバ構成の中から、1つの仮想サーバ構成を選択することを可能にする入力手段であって、各仮想サーバ構成は、ブートイメージと構成情報とを含む、入力手段と、
    ii.ユーザが、仮想サーバを動的にインスタンス化するための方針を設定するための入力手段であって、該方針は、少なくとも1つの条件を含む、入力手段と
    を含む、ウェブサーバと、
    該ウェブサーバと通信する計算デバイスであって、該計算デバイスは、該少なくとも1つの条件が満たされていることを決定することと、該選択された仮想サーバ構成を構成するブートイメージに従って仮想サーバをインスタンス化する命令を、該複数のホスト型仮想サーバサービスのうちの1つに伝送することとを行う、計算デバイスと
    仮想サーバマネージャであって、該仮想サーバマネージャは、該複数のホスト型仮想サーバサービスのうちの選択された1つを構成する該物理的マシンのうちの1つにおける該ブートイメージのインスタンス化が完了していることを決定し、該構成情報を該インスタンス化されたブートイメージに伝送する、仮想サーバマネージャと
    を含む、システム。
  18. 前記複数のホスト型仮想サーバサービスのうちの少なくとも1つは、第三者ホスト型仮想サーバサービスである、請求項17に記載のシステム。
  19. 前記条件は、1つ以上のパラメータを特定し、各パラメータは、1つ以上の仮想サーバの利用を示す、請求項17に記載のシステム。
  20. 前記計算デバイスが、前記1つ以上のパラメータの値を示す情報を受信することと、該値が前記条件によって特定される閾値を超えることを決定することとを行う、請求項19に記載のシステム。
  21. 前記計算デバイスが、仮想サーバ利用パラメータの第2の測定値を示す情報を受信することと、該測定値が前記条件によって特定される閾値未満であることを決定することと、前記複数のホスト型仮想サーバサービスのうちの前記1つに、仮想サーバインスタンスを終了する命令を伝送することとを行う、請求項20に記載のシステム。
  22. 前記インターフェースは、ネットワーク利用パラメータに応答して、仮想サーバインスタンス化を動的にスケール化する少なくとも1つの方針をユーザが構成するための入力手段を含む、請求項17に記載のシステム。
  23. 前記条件は、インスタンス化された仮想サーバの故障を含む、請求項17に記載のシステム。
  24. 前記条件は、インスタンス化された仮想サーバの予測された故障を含む、請求項17に記載のシステム。
  25. 前記複数の仮想サーバ構成は、第2のユーザによって生成された少なくとも1つの仮想サーバ構成を含む、請求項17に記載のシステム。
  26. 前記インターフェースは、ユーザが、他のユーザと、生成された仮想サーバ構成を共有することを可能にする入力をさらに含む、請求項17に記載のシステム。
JP2011500869A 2008-03-18 2009-03-11 仮想サーバを効率的に管理および構成するための方法ならびにシステム Active JP5347016B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/050,865 2008-03-18
US12/050,865 US8489995B2 (en) 2008-03-18 2008-03-18 Systems and methods for efficiently managing and configuring virtual servers
PCT/US2009/036764 WO2009117288A1 (en) 2008-03-18 2009-03-11 Methods and systems for efficiently managing and configuring virtual servers

Publications (3)

Publication Number Publication Date
JP2011523472A JP2011523472A (ja) 2011-08-11
JP2011523472A5 JP2011523472A5 (ja) 2013-04-11
JP5347016B2 true JP5347016B2 (ja) 2013-11-20

Family

ID=40790523

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011500869A Active JP5347016B2 (ja) 2008-03-18 2009-03-11 仮想サーバを効率的に管理および構成するための方法ならびにシステム

Country Status (6)

Country Link
US (4) US8489995B2 (ja)
EP (1) EP2255506A1 (ja)
JP (1) JP5347016B2 (ja)
AU (2) AU2009225796B2 (ja)
CA (1) CA2715020C (ja)
WO (1) WO2009117288A1 (ja)

Families Citing this family (59)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11037151B1 (en) 2003-08-19 2021-06-15 Stamps.Com Inc. System and method for dynamically partitioning a postage evidencing system
US8825109B2 (en) * 2008-02-15 2014-09-02 Blackberry Limited Policy-based data routing for a multi-mode device
US8473594B2 (en) 2008-05-02 2013-06-25 Skytap Multitenant hosted virtual machine infrastructure
US8484355B1 (en) * 2008-05-20 2013-07-09 Verizon Patent And Licensing Inc. System and method for customer provisioning in a utility computing platform
US8595714B1 (en) * 2009-03-04 2013-11-26 Amazon Technologies, Inc. User controlled environment updates in server cluster
US10079716B2 (en) 2009-03-04 2018-09-18 Amazon Technologies, Inc. User controlled environment updates in server cluster
JP5361659B2 (ja) 2009-10-27 2013-12-04 キヤノン株式会社 情報処理システム、情報処理システム制御方法、およびそのプログラム
US9842308B1 (en) 2010-02-25 2017-12-12 Stamps.Com Inc. Systems and methods for rules based shipping
US10089797B1 (en) 2010-02-25 2018-10-02 Stamps.Com Inc. Systems and methods for providing localized functionality in browser based postage transactions
JP5648902B2 (ja) * 2010-09-30 2015-01-07 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation 仮想サーバのスナップショットを管理する方法、及び該方法を具現化する装置
WO2012057942A1 (en) * 2010-10-27 2012-05-03 High Cloud Security, Inc. System and method for secure storage of virtual machines
US9152293B2 (en) * 2010-12-09 2015-10-06 Verizon Patent And Licensing Inc. Server IP addressing in a computing-on-demand system
JP5444257B2 (ja) * 2011-01-11 2014-03-19 日本電信電話株式会社 ソフトウェアイメージ配信方法、リポジトリ装置、サーバおよびシステム
EP2678773B1 (en) * 2011-02-23 2019-12-18 Level 3 Communications, LLC Analytics management
US8954542B2 (en) * 2011-06-14 2015-02-10 Avaya Inc. Method and system for transmitting and receiving configuration and registration information for session initiation protocol devices
JPWO2013027331A1 (ja) * 2011-08-25 2015-03-05 日本電気株式会社 情報処理装置、情報処理方法、及びプログラム
US8761101B1 (en) * 2011-10-13 2014-06-24 Excelfore Corporation Network based machine-to-machine system for monitoring
US9274838B2 (en) * 2011-12-22 2016-03-01 Netapp, Inc. Dynamic instantiation and management of virtual caching appliances
KR20130074401A (ko) * 2011-12-26 2013-07-04 삼성전자주식회사 계층적 스케줄러를 갖는 멀티코어 기반의 컴퓨팅 장치 및 계층적 스케줄 방법
US9351176B2 (en) * 2012-01-09 2016-05-24 Qualcomm Incorporated Phase and amplitude tracking in the presence of a walking pilot signal
US9043784B2 (en) * 2012-01-12 2015-05-26 Red Hat, Inc. Management of inter-dependent configurations of virtual machines in a cloud
US9098345B2 (en) * 2012-02-01 2015-08-04 Softlayer Technologies, Inc. System and method for portable and flexible deployment of servers
TW201336264A (zh) * 2012-02-16 2013-09-01 Hon Hai Prec Ind Co Ltd 自動擴充虛擬機的方法
US9055067B1 (en) * 2012-03-26 2015-06-09 Amazon Technologies, Inc. Flexible-location reservations and pricing for network-accessible resource capacity
US9760928B1 (en) * 2012-03-26 2017-09-12 Amazon Technologies, Inc. Cloud resource marketplace for third-party capacity
US9069606B2 (en) * 2012-05-08 2015-06-30 Adobe Systems Incorporated Autonomous application-level auto-scaling in a cloud
US9952909B2 (en) 2012-06-20 2018-04-24 Paypal, Inc. Multiple service classes in a shared cloud
GB2507779A (en) * 2012-11-09 2014-05-14 Ibm Terminating a virtual machine in response to user inactivity in a cloud computing environment
US9665387B2 (en) 2013-05-08 2017-05-30 Amazon Technologies, Inc. User-influenced placement of virtual machine instances
WO2014182894A2 (en) * 2013-05-08 2014-11-13 Amazon Technologies, Inc. User-influenced placement of virtual machine instances
US20150052382A1 (en) * 2013-08-14 2015-02-19 Netapp, Inc. Failover methods and systems for a virtual machine environment
JP5855057B2 (ja) * 2013-09-04 2016-02-09 キヤノン株式会社 情報処理システム、システム、情報処理システム制御方法、およびそのプログラム
US20150074659A1 (en) * 2013-09-06 2015-03-12 Vmware, Inc. Methods and Apparatus to Perform Web-Based Installations and/or Upgrade Architectures for Enterprise Software
JP6310689B2 (ja) * 2013-12-16 2018-04-11 株式会社日立製作所 管理サーバおよび管理サーバの制御方法
US10476809B1 (en) * 2014-03-12 2019-11-12 Amazon Technologies, Inc. Moving virtual machines using migration profiles
JP2015194810A (ja) 2014-03-31 2015-11-05 富士通株式会社 スケールアウト方法、システム、情報処理装置、管理装置及びプログラム
US20150381423A1 (en) * 2014-06-26 2015-12-31 Futurewei Technologies, Inc. System and Method for Virtual Network Function Policy Management
US9979674B1 (en) 2014-07-08 2018-05-22 Avi Networks Capacity-based server selection
US10754821B2 (en) * 2014-07-29 2020-08-25 Hewlett Packard Enterprise Development Lp Virtual file server
CN104243563B (zh) * 2014-09-03 2017-11-24 河海大学 一种面向aws平台的并行系统快速部署方法
US10574552B2 (en) 2014-10-03 2020-02-25 British Telecommunications Public Limited Company Operation of data network
US10463957B2 (en) * 2015-03-17 2019-11-05 Amazon Technologies, Inc. Content deployment, scaling, and telemetry
US10757168B2 (en) * 2015-11-13 2020-08-25 Verizon Patent And Licensing, Inc. Mechanism for exchanging order data
US10001981B2 (en) * 2016-05-26 2018-06-19 At&T Intellectual Property I, L.P. Autonomous server installation
EP3520362A4 (en) * 2016-10-03 2020-05-06 Stratus Digital Systems TRANSITIONAL TRANSACTION SERVER
US20190114630A1 (en) 2017-09-29 2019-04-18 Stratus Digital Systems Transient Transaction Server DNS Strategy
US10372520B2 (en) 2016-11-22 2019-08-06 Cisco Technology, Inc. Graphical user interface for visualizing a plurality of issues with an infrastructure
JP6957194B2 (ja) * 2016-12-13 2021-11-02 キヤノン株式会社 サービスシステム、その制御方法、およびそのプログラム
US10739943B2 (en) 2016-12-13 2020-08-11 Cisco Technology, Inc. Ordered list user interface
CN107741853A (zh) * 2017-09-20 2018-02-27 深圳市买买提乐购金融服务有限公司 一种部署服务器的方法、系统及信息管理平台
US10678574B1 (en) * 2017-11-01 2020-06-09 Amazon Technologies, Inc. Reconfiguration rate-control
US10862867B2 (en) 2018-04-01 2020-12-08 Cisco Technology, Inc. Intelligent graphical user interface
US11467882B2 (en) * 2018-12-21 2022-10-11 Target Brands, Inc. Methods and systems for rapid deployment of configurable computing resources
CN110299984A (zh) * 2019-06-05 2019-10-01 上海易点时空网络有限公司 适用于车载多媒体的空闲发现方法及装置
CN110448232B (zh) * 2019-08-14 2021-05-18 成都普诺思博科技有限公司 基于云平台的智能清洁机器人管理系统
US11016799B1 (en) * 2020-01-30 2021-05-25 Coupang Corp. Systems and methods for centralization of server initialization information
US11669361B1 (en) * 2021-04-01 2023-06-06 Ai-Blockchain, Inc. System, method and program product for optimizing computer processing power in cloud computing systems
CN113076109B (zh) * 2021-04-08 2023-07-04 成都安恒信息技术有限公司 一种跨平台的部署脚本语言的方法
CN117370066B (zh) * 2023-12-08 2024-03-15 杭州沃趣科技股份有限公司 一种服务器集群的恢复方法、装置、设备及存储介质

Family Cites Families (52)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US52016A (en) * 1866-01-16 Improvement in bow-irons for carriages
US91792A (en) * 1869-06-22 Improvement in water-wheels
US103150A (en) * 1870-05-17 cushman
US6974A (en) * 1849-12-25 William o
US78467A (en) * 1868-06-02 James mont-gome by
US34416A (en) * 1862-02-18 Churn
US233455A (en) * 1880-10-19 Rotary plow
US179955A (en) * 1876-07-18 Improvement in weather-boarding
US49786A (en) * 1865-09-05 Improvement in springs
CA2284797C (en) 1997-03-31 2004-12-28 Broadband Associates Method and system for providing a presentation on a network
US7441045B2 (en) 1999-12-13 2008-10-21 F5 Networks, Inc. Method and system for balancing load distribution on a wide area network
US7139728B2 (en) * 1999-12-30 2006-11-21 Rod Rigole Systems and methods for online selection of service providers and management of service accounts
US7047301B2 (en) * 2000-01-31 2006-05-16 F5 Networks, Inc. Method and system for enabling persistent access to virtual servers by an LDNS server
WO2001057685A1 (en) * 2000-01-31 2001-08-09 Fujitsu Limited Server determining method and device
US6978232B1 (en) * 2000-06-30 2005-12-20 Interland, Inc. Method and system of demonstrating a service that provides computerized transactions using a computer network
WO2002003220A2 (en) * 2000-07-05 2002-01-10 Ernst & Young Llp Method and apparatus for providing computer services
US7865596B2 (en) 2000-11-02 2011-01-04 Oracle America, Inc. Switching system for managing storage in digital networks
US7299276B1 (en) * 2000-12-14 2007-11-20 Cisco Technology, Inc. Technique for monitoring health of network device using data format verification
JP2002202959A (ja) * 2000-12-28 2002-07-19 Hitachi Ltd 動的な資源分配をする仮想計算機システム
US7102996B1 (en) * 2001-05-24 2006-09-05 F5 Networks, Inc. Method and system for scaling network traffic managers
US7574496B2 (en) * 2001-11-30 2009-08-11 Surgient, Inc. Virtual server cloud interfacing
US7085921B2 (en) * 2001-12-31 2006-08-01 Hewlett-Packard Development Company, L.P. Embedded OS PXE server
US20030149755A1 (en) * 2002-02-06 2003-08-07 Emek Sadot Client-controlled load balancer
JP4119162B2 (ja) * 2002-05-15 2008-07-16 株式会社日立製作所 多重化計算機システム、論理計算機の割当方法および論理計算機の割当プログラム
US7080378B1 (en) * 2002-05-17 2006-07-18 Storage Technology Corporation Workload balancing using dynamically allocated virtual servers
US7318100B2 (en) * 2003-04-14 2008-01-08 Riverbed Technology, Inc. Cooperative proxy auto-discovery and connection interception
WO2004040444A1 (ja) * 2002-11-01 2004-05-13 Matsushita Electric Industrial Co., Ltd. サービスソフトウエア取得方法、ならびにシステムおよびそれに用いられる電子通信機器
US8209680B1 (en) * 2003-04-11 2012-06-26 Vmware, Inc. System and method for disk imaging on diverse computers
US8776050B2 (en) * 2003-08-20 2014-07-08 Oracle International Corporation Distributed virtual machine monitor for managing multiple virtual resources across multiple physical nodes
US7302053B2 (en) * 2003-12-01 2007-11-27 International Business Machines Corporation System and method for providing a communication session
JP4448719B2 (ja) * 2004-03-19 2010-04-14 株式会社日立製作所 ストレージシステム
JP4050249B2 (ja) * 2004-05-20 2008-02-20 株式会社エヌ・ティ・ティ・データ 仮想マシン管理システム
US20060155912A1 (en) * 2005-01-12 2006-07-13 Dell Products L.P. Server cluster having a virtual server
US8583770B2 (en) * 2005-02-16 2013-11-12 Red Hat, Inc. System and method for creating and managing virtual services
US7433935B1 (en) * 2005-04-29 2008-10-07 Hewlett-Packard Development Company, L.P. Self-adapting plug-in service
US20070008974A1 (en) 2005-07-07 2007-01-11 International Business Machines Corporation Method, apparatus and computer program product for network services
US7590989B2 (en) * 2005-07-08 2009-09-15 Microsoft Corporation Load balancer management
US20070174429A1 (en) 2006-01-24 2007-07-26 Citrix Systems, Inc. Methods and servers for establishing a connection between a client system and a virtual machine hosting a requested computing environment
US7853945B2 (en) * 2006-02-22 2010-12-14 Michael Kramer Integrated computer server imaging
US7840398B2 (en) * 2006-03-28 2010-11-23 Intel Corporation Techniques for unified management communication for virtualization systems
JP4434168B2 (ja) * 2006-03-30 2010-03-17 日本電気株式会社 オンデマンドクライアントサービスシステム、その管理方法、及びプログラム
US8190682B2 (en) * 2006-03-31 2012-05-29 Amazon Technologies, Inc. Managing execution of programs by multiple computing systems
US7904899B2 (en) * 2006-06-20 2011-03-08 Intuit Inc. Third-party customization of a configuration file
US8572721B2 (en) 2006-08-03 2013-10-29 Citrix Systems, Inc. Methods and systems for routing packets in a VPN-client-to-VPN-client connection via an SSL/VPN network appliance
US8312120B2 (en) 2006-08-22 2012-11-13 Citrix Systems, Inc. Systems and methods for providing dynamic spillover of virtual servers based on bandwidth
US7720931B2 (en) 2006-10-13 2010-05-18 International Business Machines Corporation System and method of remotely managing and loading artifacts
US8484656B2 (en) 2007-03-12 2013-07-09 Citrix Systems, Inc. Systems and methods for providing global server load balancing of heterogeneous devices
US7941599B2 (en) * 2007-03-23 2011-05-10 Kace Networks, Inc. IT automation appliance imaging system and method
US7702971B2 (en) * 2007-06-06 2010-04-20 Dell Products L.P. System and method for predictive failure detection
US7383327B1 (en) * 2007-10-11 2008-06-03 Swsoft Holdings, Ltd. Management of virtual and physical servers using graphic control panels
US7991989B2 (en) * 2007-12-20 2011-08-02 Dell Product L.P. System and method for OS boot image provisioning based on user identity to enable mobile users
WO2009108943A2 (en) 2008-02-29 2009-09-03 Doyenz Incorporated Automation for virtualized it environments

Also Published As

Publication number Publication date
US20120203884A1 (en) 2012-08-09
AU2014203514A1 (en) 2014-07-17
JP2011523472A (ja) 2011-08-11
US20090241030A1 (en) 2009-09-24
US20120198345A1 (en) 2012-08-02
US8601375B2 (en) 2013-12-03
WO2009117288A1 (en) 2009-09-24
EP2255506A1 (en) 2010-12-01
US20120265863A1 (en) 2012-10-18
CA2715020A1 (en) 2009-09-24
US8489995B2 (en) 2013-07-16
AU2009225796A1 (en) 2009-09-24
US8504920B2 (en) 2013-08-06
CA2715020C (en) 2016-01-05
AU2014203514B2 (en) 2016-05-19
AU2009225796B2 (en) 2014-03-27

Similar Documents

Publication Publication Date Title
JP5347016B2 (ja) 仮想サーバを効率的に管理および構成するための方法ならびにシステム
US10042628B2 (en) Automated upgrade system for a service-based distributed computer system
US9069438B2 (en) Allocating virtual machines according to user-specific virtual machine metrics
JP6144346B2 (ja) 仮想計算機インスタンスのスケーリング
JP5680961B2 (ja) 物理イメージと仮想イメージの統合的な提供
US9116715B2 (en) Systems and methods for efficiently booting and configuring virtual servers
US8909767B2 (en) Cloud federation in a cloud computing environment
US20170171026A1 (en) Configuring a cloud from aggregate declarative configuration data
US9384032B2 (en) Methods, devices, and systems for establishing, setting-up, and maintaining a virtual computer infrastructure
JP2018513510A (ja) データボリュームの動的な構成
TW200828118A (en) Method and process for using common preinstallation environment for heterogeneous operating systems
CN102427481A (zh) 用于对云计算服务进行管理的系统及云计算管理方法
CN110908753B (zh) 一种智能融合的云桌面服务器、客户端及系统
US20160371102A1 (en) System and method for supporting execution of application based on multi-platform using virtual platform service
US11263053B2 (en) Tag assisted cloud resource identification for onboarding and application blueprint construction
US10073689B2 (en) Managing application lifecycles within a federation of distributed software applications
US20230164210A1 (en) Asynchronous workflow and task api for cloud based processing
CN113485830A (zh) 一种电网监控系统微服务自动扩容方法
US11853783B1 (en) Identifying hosts for dynamically enabling specified features when resuming operation of a virtual compute instance
US11907731B1 (en) Configurable cloud development environments
US20240028098A1 (en) Session preservation for automated power management
Frid et al. Open Source SaaS Cloud Platforms: Concepts, Virtualization Overhead and Deployment Issues

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120312

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20120312

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120604

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130215

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20130626

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130819

R150 Certificate of patent or registration of utility model

Ref document number: 5347016

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250