JP4129988B2 - リソースのプロビジョニング方法 - Google Patents

リソースのプロビジョニング方法 Download PDF

Info

Publication number
JP4129988B2
JP4129988B2 JP2005326047A JP2005326047A JP4129988B2 JP 4129988 B2 JP4129988 B2 JP 4129988B2 JP 2005326047 A JP2005326047 A JP 2005326047A JP 2005326047 A JP2005326047 A JP 2005326047A JP 4129988 B2 JP4129988 B2 JP 4129988B2
Authority
JP
Japan
Prior art keywords
resource
service
node
provisioning
transition
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
JP2005326047A
Other languages
English (en)
Other versions
JP2007133654A (ja
Inventor
健 益満
高幸 串田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to JP2005326047A priority Critical patent/JP4129988B2/ja
Priority to US11/557,577 priority patent/US20070106798A1/en
Priority to CNB2006101438362A priority patent/CN100428169C/zh
Publication of JP2007133654A publication Critical patent/JP2007133654A/ja
Priority to US12/058,920 priority patent/US7809831B2/en
Application granted granted Critical
Publication of JP4129988B2 publication Critical patent/JP4129988B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • 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/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06315Needs-based resource requirements planning or analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0631Resource planning, allocation, distributing or scheduling for enterprises or organisations
    • G06Q10/06316Sequencing of tasks or work
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/06Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
    • G06Q10/063Operations research, analysis or management
    • G06Q10/0637Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
    • G06Q10/06375Prediction of business process outcome or impact based on a proposed change
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/5019Workload prediction

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Human Resources & Organizations (AREA)
  • Theoretical Computer Science (AREA)
  • Economics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Educational Administration (AREA)
  • Development Economics (AREA)
  • Game Theory and Decision Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)

Description

本発明は、リソースのプロビジョニング方法に関する。さらに詳しくはIT環境下におけるリソースのプロビジョニング方法、システム、および制御プログラムに関する。
現在のIT環境、特にリソースが一箇所に集中しているデータ・センターのような場所では、サービスの負荷変動に応じて、余剰リソース(サーバ、ネットワーク機器、ストレージなど)を効率的(処理時間および資源利用率)に各サービスに割り当てる仕組み(プロビジョニング)が必要とされている。この余剰リソースをサービスに割り当てるためには、そのサービスに合ったハード構成、OSやアプリケーションのインストール、およびその設定作業が必要であり、その過程で発生する設定処理(OS/アプリケーションのインストール、VLAN(Virtual LAN)の切り替えなど)は、一般に比較的時間のかかる作業事である。
そこで、迅速なプロビジョニングをするための方法として、ネットワーク機器に対してプロビジョニングデータをバックアップすることで短時間にデータアップロード行う方法(特許文献1)がすでに考案されている。また、あらかじめ所定のOS/アプリケーションをインストールしたサーバのディスク・イメージを保存しておいて、プロビジョニング時、そのディスク・イメージをコピーするクローン・インストール(例えば、非特許文献1、2)が公開されている。
特開平11−308302号公報 http://www.symantec.com/region/jp/products/ghost_enterprise/index.html http://sea.symantec.com/content/product.cfm?productid=9
現在のデータ・センターや企業内のITシステムは、サービス(データ・センターでは顧客、企業内ITシステムでは業務)ごとに別々にITリソースが確保されており、それぞれが独立してシステム構築・運用がされている。さらに、サービスごとに、ピーク時の負荷に耐えうるだけのITリソースがあらかじめ用意されている。このため、ピーク時以外のITリソースの稼働率は、一般に低くなってしまっている。ある米国調査会社の調査によると、「世界中のサーバの約75%のCPUパワーが使用されていない。」との報告がある。一方、ITリソースを使って稼動している各サービスのピークの時期を調べてみると、それぞれのサービスのピークが完全に一致していることは少なく、ほとんどの場合、それぞれのサービスのピークは分散している。従って、あるサービスに、想定した以上の負荷が発生した場合においても、他のサービス用のリソースを利用することによって、リソースを有効利用することが図れるが、現在のシステムでは、このような使い方を想定してシステムが構成されていないために、一般には困難である。
このような背景の下、オンデマンド・コンピューティングやユーティリティ・コンピューティングといったシステムが求められ始めてきた。これは、各種のサービスを統合的に管理して、各サービスが独立に持っていた余剰ITリソースを、全サービスで共通のリソース・プールに蓄えておき、あるサービスで使われているリソースにおいてその負荷が急増した際に、このリソース・プールからリソースをそのサービスに動的に追加するという仕組みである。このリソース・プールから、リソースをサービスに割り当てることをプロビジョニングと呼ぶが、この際に、追加すべきリソースをそのサービスが必要としている設定に事前に変更して利用開始する必要がある。
図1は、従来のプロビジョニング・システム例の手順を示したものである。以下の図では、リソースとしてサーバを例に示してあるが、リソースの種類としては、ネットワーク機器、ストレージ、その他ハードウェアなどが含まれる。
図1では、ソフトウェアがなにもインストースされていない、いわゆるベア・メタルサーバから各サービスに必要なソウトウェアを順次インストールしていく手順が示されている。すなわち、サービスAに対しては、OSとして、まずWindows(登録商標)をインストールし、次にミドルウェアとして、WAS(Websphere(登録商標) Apllication Server)をインストールし、更に、WAS上で動作するアプリケーションとして、WAS−APP1をインストールして、サービスAに適合するサーバを構築する。サービスBに対しては、ハードウェア(H/W)に対して、Windows(登録商標)、WASをインストールするまではサービスAと共通であるが、WAS−APP2の部分がサービスAと異なる。また、サービスCでは、OSがLinux(登録商標)であり、WASはなく、アプリケーションとしてDB2(登録商標)がインストールされているのでH/W以外はサービスA、Bと異なっている。図1では、このように各種ソウトウェアをサービスの要求する構成や台数にあわせて、順にインストールしていき、サービスAにサーバが3台、サービスBにサーバが2台、サービスCにサーバが1台、それぞれデプロイ(割り当て)されていく過程を示している。
しかしながら、このような単純なプロビジョニング・システムでは、特定のサービスに対してプロビジョニングの要求が発生してから、リソース・プールのリソースに対して、様々の設定作業を行い、全ての設定作業完了後にサービスとしてデプロイされるため、設定作業自体に時間がかかってしまい、要求発生ののちデプロイされるまで待たなければならない。このような単純なシステムの場合、時間的に急激に増大する負荷の変動に対応することは困難となる。特に、サーバをプロビジョニングする場合、サービスが必要とするOS/アプリケーションをサーバに順次インストールする必要があるが、周知のようにOS/アプリケーションのインストールには多大な時間がかかる。
特許文献1のバックアップデータを用いる方法や、非特許文献1のクローン・インストールでは、このような設定作業を短縮するための手法である。しかしながら、いずれの方法も、バックアップデータや元のディスク・イメージ中にデバイス・ドライバなどH/Wと関連づいた情報を事前に含めておく必要がある。例えば、クローン・インストールでは、ディスク・イメージを抽出したサーバとまったく同じタイプのサーバにしかインストールすることができない。さらに、ホスト名やIPアドレスなどのサーバ固有の情報もディスク・イメージ中に残されるため、クローン・インストール後、適切に設定を変更する必要がある。これらの情報はOSやアプリケーションそれぞれが保持していることがあり、全ての項目を適切設定することは困難である。また、プロビジョニング先となるサービスの種類数だけディスク・イメージが必要になり、新たにパッチを適用したい、パッチのレベルを複数持ちたい、といった柔軟な構成変更をすることができないという欠点がある。つまり、バックアップデータのアップロードやディスク・イメージ・クローニングのようなプロビジョニングの方法では、事前にそれらを用意しておくことが必ず必要となるため、リソースに対する複数の異なった要求に対して、短時間でプロビジョニングを行うことが困難である。
従って、本発明は上記課題を解決するために、複数の異なった要求によるプロビジョニング時間をより柔軟に短縮する方法、システム、およびそれを制御するプログラムを提供することを目的とする。
本発明の第1の形態によると、複数のサービスが必要とするリソースの割り当てを行うプロビジョニング方法であって、複数のサービスが共有するリソース・プール内にプロビジョニングの過程における中間状態として一または複数のステージを設けるステージング段階と、一または複数の前記リソースの状態を、一または複数の前記ステージに、事前に与えられた初期状態として割り当てる段階と、割り当てられた前記リソースの状態を他の前記ステージに遷移させるために要する設定作業時間に基づいて、所定のアルゴリズムによる所定のコストを算出し、前記所定のコストが最小となるように全てのリソースを各ステージに最適に配置する段階と、を備える、プロビジョニング方法を提供する。
本発明の第2の形態によると、複数のサービスが必要とするリソースのプロビジョニングを行うステージング・エンジンであって、前記ステージング・エンジンは、前記サービスが共有するリソース・プール内に、プロビジョニングの過程における中間状態として一または複数のステージを設け、ステージをノード、ノード間の遷移をエッジとするグラフを作成するグラフ作成部と、所定のアルゴリズムによる所定のコストが最小となるように、前記リソース・プール中の全てのリソースの状態の最適配置を求める遷移計画部と、前記遷移計画部が発行した遷移計画に基づいて、リソース遷移処理要求の発行を行う遷移要求発行部と、外部からのイベントを待つ、イベント処理部と、前記イベントがサービス・リクエストの場合、要求を発生した該サービスに最も近いノードを求めるデブロイ部と、を備える、ステージング・エンジンを提供する。
本発明の第3の形態によると、複数のサービスが必要とするリソースの割り当てを行うプロビジョニングをコンピュータに実行させるコンピュータ・プログラムであって、前記サービスが共有するリソース・プール内に前記プロビジョニングの過程における中間状態として一または複数のステージを設けるステージング機能と、一または複数の前記リソースの状態を、一または複数の前記ステージに、事前に与えられた初期状態として割り当てる機能と、割り当てられたリソースの状態を他のステージに遷移させるために要する設定作業時間に基づいて、所定のアルゴリズムによる所定のコストを算出し、前記の所定のコストが最小となるように全てのリソースを各ステージに最適に配置する機能と、をコンピュータに実行させる、コンピュータ・プログラムを提供する。
上記発明においては、いくつかのサービスで共有の余剰リソースを管理するためリソース・プールを考え、リソース・プールから各サービスへのプロビジョニング過程における複数の中間状態(ステージ)を仮想的に設定する。外部からのサービスに対するリソースの要求が発生してから、プロビジョニングに必要な設定処理を最初から開始するのではなく、あらかじめプロビジョニング途中の中間ステージに複数のリソースを効率的に割り当てて置くことによって、外部からのサービスに対するリクエストからプロビジョニング完了までにかかる時間を短縮することができる。例えば、リソースとしてサーバを考えてみると、サーバに、あらかじめOSをインストールしておけば、その上で動作する複数のアプリケーションのみをリクエストに応じて動的にインストールすることによりプロビジョニングが完了するまでの時間を短縮することができる。
本発明の手法によって、従来のリソースを割り当てる単位であるクラスタ毎にリソース・プールを保持していた場合に比べて、複数のサービスでリソース・プールを共有することで、リソース・プールに配置するリソースの数を相対的に削減することができる。一方、従来のクラスタ間でリソース・プールを共有していた場合に比べて、本発明の手法を用いることによって、リソースのプロビジョニングの要求が生じたときには、最も適切なステージからプロビジョニングを行うことができ、プロビジョニングが完了する時間をより短縮することができる。
以下、本発明の実施形態について図を参照しながら説明する。
本発明の好適な実施形態では、各リソースの初期状態から各サービスにデプロイするまでの手順を洗い出し、各段階におけるリソースの状態をノード(ステージ)、設定作業をエッジとした有向グラフとして表現する。ただし、異なるサービスにデプロイする場合においても、初期状態やいくつかの中間状態は、共通であることがあるので、そのような共通の中間状態は同じノードとして表現する。
例えば、リソースとしてサーバを考え、設定作業としてOS/アプリケーションのインストール作業を考える。何もOSがインストールされていないベア・メタルサーバ(H/W)の状態が初期ノードに相当し、OSのみがインストールされた状態が中間ノード1、ミドルウェアなどがインストールされた状態が中間ノード2、さらにサービスに必要なアプリケーションがインストールされた状態が最終ノードとなる。また、ミドルウェアが存在しない場合や、多数のアプリケーションがインストールされている場合、同じアプリケーションでも設定が異なる場合など、様々な中間状態が存在し得る。
ここで、初期ノードと中間ノード1の間、中間ノード1と中間ノード2の間、中間ノード2と最終ノードの間は明らかに遷移が可能なため有向エッジが張られる。また、別のサービスが同じOSを使う場合は、中間ノード1を共有することになる。さらに、いずれのノードからでも、OSのインストールからやり直すことができるため、各ノードから初期ノードへはエッジで結ばれる。また、設定作業を取り消すことができる場合(例えば、アプリケーションのアンインストールが可能な場合など)は、逆方向にもエッジを結ぶ。
図2は、このような初期、中間、または最終状態(ステージ)をノードとして表し、各ノードをエッジで連結した有向グラフとして示したものである。すなわち、初期状態1のベア・メタルサーバ(H/W)に、OSのみがインストールされた状態、ミドルウェアがインストールされた状態、アプリケーションがインストールされた状態、それぞれをノードとした有向グラフを構成する。ここで、有向グラフとは、エッジに方向性を持つグラフをいう。また、図2では、初期ノード1にサーバが1台、中間ノード3にサーバが1台、最終ノード4、5、7にサーバが各1台割り当てられた状態を示している。ここで、最終ノードとは、サービスにそのままサーバをデプロイできる状態をいう。この場合、サービスAに最も「近い」ノードはノード4であり、次に「近い」ノードはノード3であるという。この「近い」という用語は距離的な遠近でなく、ノード間を遷移させるためのトータルで必要なリソースの設定時間が短いこという。
リソース・プール中の各リソースは、いずれかのノードに割り当てられ、割り当てられたそれぞれのノード(ステージ)の状態をとることができる。また、エッジ(処理作業)に関連付けられた処理あるいは設定作業を行うことによって、リソースは、そのエッジに沿ってノードを遷移する。サービスを展開する状態に近いノード(例えば、図2のノード4、5、7など)に多くのリソースを配置した場合、そのサービスへのプロビジョニングにかかる時間を短縮することができる。一方、サービスから遠いノード(例えば、図2のノード1、2、6など)に配置したほど、様々なサービスへのプロビジョニングに対応できる。従って、現在のリソースを、各サービスからのリソース要求パターンやSLA(Service Level Agreement)を考慮して、適切なノードに遷移し、割り当てることにより、プロビジョニングにかかる時間を短縮することができる。
あるサービスからの要求が発生した際は、そのサービスを展開する状態に最も近いノードに配置されたリソースを、そのサービスにプロビジョニングする。プロビジョニング後は、プール中からリソースが一つ減少する。これに従い、再び、最適配置を計算し、リソースの割り当てを変更する。
以下、本発明に係るシステム構成の一例について説明する。
本発明の実施例としての全体の構成を図3に示す。図に示すように本システムは、上述のグラフの作成/リソース遷移計画/ノード間の遷移処理要求を発行するステージング・エンジン10と、データ・センター30(リソース・プール)中のリソースに対して、設定作業を行うプロビジョニング・マネージャ20から構成される。
ステージング・エンジン10における処理の全体フローを図4に示す。まず、ステップS100においてグラフを作成する(グラフ作成部)。具体的なグラフ作成の詳細に関しては、後述する。
グラフの作成後、ステップS200において、リソース・プール中のリソース、例えばサーバなどをグラフ上のどのノード(ステージ)に遷移させるかを求める(遷移計画部)。具体的な遷移計画のアルゴリズムに関しては、後述する。
ステップS300では、現在のリソースの割り当てをステップS200で算出した遷移計画に従って、リソースの遷移処理(遷移に沿ったエッジに関連した設定作業)命令を発行する(遷移要求発行部)。発行した命令は、実際に設定作業をコントロールするプロビジョニング・マネージャ20が行う。ステップS300では、処理命令を発行するだけであり、命令発行後、すぐにステップS400に移る。遷移させる必要がなければ、何も処理しない。
ステップS400では、外部(プロビジョニング・マネージャ、サービス要求システムなど)からのイベントを待つ(イベント処理部)。ここではイベントの種類としては、以下の三つを想定する。
1)リソース要求イベント:
サービスから、リソースの要求が発生したことを表すイベント
2)遷移処理完了イベント:
プロビジョニング・マネージャに発行した遷移命令(設定作業)が完了したことを表すイベント
3)リソース・プールへのリソースの追加/削除イベント:
リソース・プール中のリソースの台数が変更したことを表すイベント
上記いずれかのイベントが発生したら、ステップS500に移る。
ステップS500では、上記イベントの種類を判断し、リソースのリクエスト要求イベントの場合はステップS600に、その他の場合は、ステップS200に戻る。
ステップS600では、要求を発生したサービスに最も近い(デプロイするまでの処理時間が最も短い)ステージにあるリソースを、そのサービスにデプロイするように、プロビジョニング・マネージャ20などに命令を発行する(デプロイ部)。実際にデプロイを行うのはプロビジョニング・マネージャ20でなく他のシステムであってもよい。ステージング・エンジン10は、デプロイの命令発行後(ステップ600)、すぐに、ステップS200に遷移する。
図5にステップS100で行うグラフ作成部の処理を示した。また、図6に説明に用いる例として、リソース・プールとそれを利用するサービスA、B、Cが示した。
まず、ステップS110において、リソース・プールとそれを利用するサービスA、B、Cを、各サービスへのプロビジョニング手順を中間状態(ステージ)に分割する。この分割された結果を図7に示した。
次に、ステップS120において、分割した中間状態のうち同一の状態となるものをまとめ、図8のようなグラフを作成する。
さらに、ステップ130において、設定作業が可逆できる場合(設定処理の取消しが可能、あるいは一つ前のステージに戻るための作業がある)における逆方向のエッジや、OSインストールにおける初期状態(消去する作業により可能)へのエッジを追加する。
図9に、以上のステップにより作成された有向グラフの構造(トポロジ)を示した。
以下、具体的なシナリオを簡単な例をもとに図10〜図14に示す。これらの図は、3台のサーバをサービスのリソース要求に応じて、四つのノードに順次遷移させていく手順を示している。以下、図中ではノードの番号を○で囲み示すこととする。この例では、初期ステージがノード1、中間ステージがノード2、最終ステージがノード3とノード4である。また、図中のエッジ(矢印)の上にある下線付きの数字は、1台のサーバをノード間で遷移させるのに必要な設定作業時間を表している。
3台のサーバは初期状態においては全てノード1にあるとする。ここでまず、上記のようなグラフを作成し最適なサーバの配置計算を行う(図10(a))。この例ではノード2、3、4にそれぞれ1台のサーバが割り当てられた状態が最適配置であるとする(図10(a)右側の図)。
次に、配置計算の結果を元にサーバを遷移(ステージを移動)させる(図10(b))。その後、サービスAから、サーバ要求が発生したとする(図11(c))。サーバ要求イベントが発生したので、サービスAに最も近い(デプロイするまでの処理時間が最も短い)サーバをサービスAにデプロイする(図11(d))。サーバ要求が発生し、リソース・プールにあるサーバが2台に減ったので、再びサーバの配置計算を行う。その結果に従い、サーバを遷移する(図12(e)、図12(f))。その後、サービスAから、サーバ1台がリソース・プールに戻される(図13(g))と、リソース・プールへのサーバ追加イベントが発生したとみなし、再び、サーバの配置計算を行う(図13(h))。その配置計算に従い、再び最適な状態に全てのサーバを遷移(ステージを移動)させる(図14(i))。
図15は、グラフのモデルを示したものである。既に述べたように、ノードの番号は○で囲んだ数字で表し、遷移可能なノードは矢印で表す。ここで、矢印2a〜7aで示すようにどのノードからでも初期ノードには遷移可能(プロビジョニングによって処理した設定を、一度の処理で全て消去できるため)であるとする。また、点線の矢印3aで示すように中間ノード間で双方向に遷移可能な場合もある。
図4におけるリソースの遷移計画(ステップS200、または遷移計画部)では、上記のリソースのノードへの割り当て問題を解くために、次のように問題を一般化して定式化する。
入力:
・グラフのトポロジ(グラフの構造)
・エッジの重み
ノード間を遷移する時間(設定作業にかかる時間)をエッジの重みとする。
・各ノードに配置されている現在のリソース数
・サービスごとのデプロイ要求の発生分布
過去のデプロイ要求実績データからn台のデプロイ要求分布を推定する。
この前提には、過去の要求実績データが適用できるとする。
(例えば、一週間の日曜日から土曜日までの変化、あるいは一日の0−23時の
変化のように過去と同じか、少しの誤差で一致することを前提とする。)
もしくは、予測手法などを用いて、その都度その都度、動的に決定しても良い。
(一般に発生確率は、単位時間ごとによって異なる発生確率を持つことができる
こととする。また、取るべき単位時間は、ノードを遷移する時間と比べて、同じ
程度とする。)
・サービスXのデプロイが遅れることによるペナルティ
一般に、サービスごとに重要度が異なるため、重要なサービスに対しての遅れ
では、損失が大きく、そうでないサービスに対しては損失が小さくなるように
設定する。この値は、SLAによって決定される。
出力:
・各ノードに配置される最適なリソース数
目的関数:
・デプロイの遅れによるコストの最小化
コストは、デプロイ要求発生からデプロイ完了までにかかる時間と、その
デプロイ対象サービスのペナルティとの積によって決まる。
以下、上記問題を解くために具体的な3種類のアルゴリズム1、2、3について説明する。以後、次のようなパラメータ、表記を用いることにする。
d(i,j):
ノードiからノードjへの遷移にかかる時間(エッジの重み)
S(n,n,n,・・・n):
リソースがノード1にn台、ノード2にn台、
ノード3にn台、ノードmにn台配置されている状態を表す。
X(n,n2、,・・・,n):
サービスAからn台、サービスBからn台、
サービスXからn台のリソース要求が発生したことを示す。
ω:サービスXに対するペナルティ:
例えば、図16に示すグラフの例では、ノード1からノード2に対してはd(1,2)=60、ノード2からノード3に対してはd(2,3)=10、ノード2、3、4からノード1への遷移ではd(i,1)は全てゼロ、というように各エッジ上に対応する数字で表現する。また、サービスAとサービスBでペナルティの差がない場合は、ω=ω=1とする。
<アルゴリズム1>
ここでは、第一のアルゴリズムについて説明する。
アルゴリズム1では、サービスごとのリソース要求発生分布を元に、シミュレーションを行い、現在の配置パターンから最もコストが小さい一手先または二手先の配置パターンを見つける。
現在のリソースの割り当てから、各リソースが隣接するノードに遷移するか、または、しないという、全ての組み合わせを考える。例えば、図16の例で考えると、現在のリソース割り当てがS(2,0,0,0)の場合、リソースの区別がなければ、
2台とも遷移しない場合: S(2,0,0,0)
1台のみ遷移: S(1,1,0,0)
2台とも遷移: S(0,2,0,0)
と、3種類の割り当て候補が得られる。割り当て候補それぞれに対して、ある時間(0<=t<=T)におけるサービスからのリソース要求を乱数または特定の確率分布にて発生させ、そのときの動作をシミュレートして、デプロイにかかるコストを計算する。シミュレーションを行う任意の回数をNとすると、この計算をN回繰り返し、コストの平均値が最小となる候補を次の割り当て先として、その状態となるように遷移処理を行う。
具体的には、以下のOptimalAllocation関数に従い最適な配置を求める。
OptimalAllocation
入力パラメータ:
現在のリソースの配置(s_cur)
現在の時刻(t_cur)
出力パラメータ:
コスト(c)
最適なリソースの配置(s_opt)
(cが最小コストとなったときの値)
方法:
現在のリソース配置(s_cur)から、一手先または二手先のリソースの配置候補の集合(S)
を求める。Sには、遷移を行わないs_curも含まれる。

foreach(s_next:S){
c(s_ext)=0

for(count=0;count<N;count++){
c(s_next,count)=0

if (リソース配置候補(s_next)と現在のリソース配置(s_cur)が
異なっている場合) {
リソース配置候補になるように、リソースの遷移を開始させる。

for( t=t_cur; t<T; t++ ){
サービスからのリクエストの発生の有無をシミュレートにより決定

if (リクエストがtで発生した場合){
リクエストが発生したサービスに最も近いリソースを
デプロイする。
このときのデプロイにかかるコストをc(s_next, count)
に加算する。
リソースを一台デプロイ後のリソース配置をs_removed
と定義する。
if (次の計算){ //次の次の計算
OptimalAllocation( s_removed, t)を計算し、
出力であるコストをc(s_next, count)に加算する。
}

elseif (遷移が完了した場合){
OptimalAllocation( s_next, t)を計算し、出力である
コストをc(s_next, count)に加算する。
}



(s_next)=( c(s_next, 0)+...+c(s_next, N))/N

最小となるコストc(s_next)をc、および、そのときのリソース配置s_nextを
s_optとし、出力する。
図17、18のフローチャートは、上記のアルゴリズムにおいて、あるひとつのs_nextに対する処理を示したものである(OptimalAllocationの最初のfor文内の処理)。
図19は、上記アルゴリズムの簡単な具体例を示したものである。また、図20は、図19における各状態でのサーバの配置を示したものである。図19、20中、網掛けの楕円は遷移が完了した状態を示し、白抜きの楕円は遷移中の状態を示している。
まず、初期状態S1において2台のサーバが割り当てられている。S1から次にとり得る状態(一手先の状態)としては、なにも遷移しない状態S1−1(つまりS1−1=S1)と、ノード2にサーバ1台が遷移途中の状態であるS1−2aを考える。ここでS1におけるコストC(S1)として、S1−1とS1−2aのコストの小さい方をとる。つまり、式で書くと、C(S1)=Min(C(S1−1),C(S1−2))となる。ただし、C(S1−2)=C(S1−2a)である。
ここで、S1−1においてサービスからサーバ1台の要求が発生したとすると、サーバ1台は、まずそのサービスにデプロイし、このデプロイしたサーバを除いたサーバにつき再び次の遷移候補を考慮する。この場合、S1−1から次にとり得る状態としては、残ったサーバについては何も遷移がないS1−1−1(=S1−1)と、ノード1からノード2への遷移状態であるS1−1−2の2種類となる。このとき、先のデプロイ自体にかかるコストをC1とすると、S1−1におけるコストC(S1−1)は、C1にS1−1−1とS1−1−2のコストの小さいほうを加えた値をとる。すなわち、C(S1−1)=C1+Min(C(S1−1−1),C(S1−1−2))となる。
一方、S1−2aからS1−2へ遷移完了時には、次の遷移候補を考慮する。次の遷移候補としては、S1−2−1(なにも遷移しない状態、すなわち=S1−2)と、S1−2−2(ノード2からノード3ヘのサーバ1台が遷移中の状態)、および、S1−2−3(ノード2からノード4へサーバ1台が遷移中の状態)の3種類があり得る。このときS1−2のコストC(S1−2)としては、S1−2−1、S1−2−2、S1−2−3のコストのうちから最小のものをとる。すなわち、C(S1−2)=Min(C(S1−2−1),C(S1−2−2),C(S1−2−3))となる。
以上のような計算をシミュレートによってリクエストをN回発生させ、最小となるコストとそのときのリソース配置を求める。このリソースは配置が、最適なステージング時の配置となる。
<アルゴリズム2>
ここでは、第二のアルゴリズムについて説明する。アルゴリズム2では、以下のように全てのリソースの配置の組み合わせを考えて、組み合わせごとに、全ての発生しうるプロビジョニング要求を考慮した期待値を算出して、それが最小となる配置を見つけ出す。
1.foreach 割り当てS={全てのリソースの割り当てパターン}
(1)foreach 要求X={リソース台数内の全ての発生要求パターン}
(a) E(S)=0
(b) 割り当てS、発生要求Xにおけるコストc(S,X)を計算する。
割り当てSの状態において、要求したサービスに最も近いリソースを
、そのサービスにデプロイする。リソースをそのサービスに遷移した
時の重み×ペナルティの和をc(S,X)とする。
(c) E(S) += p(X)×c(S,X)を計算する。
ここで、p(X): 要求Xの発生確率である。
すなわち、E(S)は次の式で求められる。
Figure 0004129988
2.E(S)が最小となるリソースの割り当てSを見つける。
3.現在のリソース配置から、2.で見つけたリソースの割り当てとなるように、どのリソースをどのように遷移させるか決定する。これに関しては、遷移コストを最小にする方法、優先度の高いサービスには優先的に遷移させる方法を使った、既存のグラフ・マッチング問題の解決法を用いる。
アルゴリズム2の計算を、リソースが1台の場合の例を図21に、リソースが2台の場合の例を図22において示す。
図21上部の図では、サーバ1台のみがノード2に割り当てられている状態、すなわち、S(0,1,0,0)において、サービスAからサーバ1台の要求、すなわち、X(1、0)が発生した場合を示している。このときのコストc(S,X)は、ノード2からノード3へ遷移する時間d(2,3)とサービスAのペナルティωを掛けた値となる。すなわち、ωが1とし、d(2,3)=10とすればC(S,X)=10となる。
図21の下部の表は、上記のような計算を全リソース割り当てパターンと、全要求パターンについて行った結果をまとめたものである。ここで、要求パターンの発生確率はそれぞれ1/2とし、例えば、S(0,1,0,0)におけるコストは、上記の計算から、X(1,0)については10、同様にX(0,1)については20と計算されるので、期待値は(1/2)*(10+20)=30/2となる。この期待値の計算を全リソース割り当てパターンについて行い、期待値が最小となる割り当てパターンを求める。
図22では、サーバ2台の場合の計算を示したものである。図22の上部には、ノード2にサーバが1台、ノード3にサーバが1台配置された状態、すなわち、S(0,1,0,1)において、サービスAからサーバ1台の要求、すなわちX(1,0)、が発生した例を示している。コストの計算は、図21の場合と同様である。ただし、ノード3にあるサーバをそのままサービスAにデプロイするだけなので、このときのコストはペナルティωにかかわらずゼロとなる。
図22下部の表は、図21の場合と同様に上記のコスト計算を全リソース割り当てパターンと、全要求パターンについて行った結果をまとめたものである。ここでは、三つの要求パターンの発生確率が等しい場合、S(0,2,0,0)の割り当てパターンが最も期待値が小さいことが示されている。
アルゴリズム2は、アルゴリズム1に比べて、解析的に求めるため計算量が小さいが、2.で計算した割り当てのための遷移実行中に、別なリソース要求が発生した場合、ひどくコストがかかってしまう場合があり、最適な配置よりも少し異なる配置となる場合がある。ここで、プール中のリソース数をn、ノード数をm、クラスタ数をrとすると、図21、22を構成するマトリックスの要素数は、(リクエスト要求の組み合わせ)×(リソース配置の組み合わせ)
Figure 0004129988
となる。
<アルゴリズム3>
ここでは第三のアルゴリズムについて説明する。アルゴリズム3では、以下のように各サービスからのプロビジョニング要求を独立に扱い、計算量を削減する。
1.foreach 割り当てS={全てのリソースの割り当てパターン}
(1)foreach サービスX ={全てのサービス}
(a)サービスXへの距離により昇順に全ノードをソートする。
(b)サービスXが、n台のリクエストが発生したときに、サービスXの近く
のノードに割り当てられているリソースから順にn台がプロビジョニング
されるとする。サービスXがi台のリソースを要求する確率をPx(i)と
すると、サービスXから最も近くに配置されているリソースはPx(1)の
確率でデプロイされ、その次の近くのリソースはPx(2)の確率で
デプロイされる。
同様に、サービスXからi番目に近いリソースは、Px(i)の確率で
デプロイされる。
従って、コストの期待値は、次のように表現される
Figure 0004129988
(c) E(S)+=E(S,X)を計算する。
2.E(S)が最小となるリソースの割り当てSを見つける。これが、効果的なリソース割り当てSである。
3.現在のリソース配置から、2.で見つけたリソースの割り当てとなるように、どのリソースをどのように遷移させるか決定する。これに関しては、遷移コストを最小にする方法、優先度の高いサービスには優先的に遷移させる方法など、既存のグラフ・マッチング問題を用いる。
このアルゴリズム3における計算量は、(リソースの配置の組み合わせ)
Figure 0004129988
のみとなるため、アルゴリズム2に比べて計算量が削減される。ただし、グラフのトポロジによっては、ひどく効率の悪い割り当てとなる場合がある。
図23〜26にアルゴリズム3の具体例を示した。図23(a)では、まずノード数が4、サービス数が2であるとき、10台のリソースがリソース・プール中にある場合を考える。ここで、サービスA、サービスBのペナルティは1であるとする。
図23(b)では、10台のリソースを各ノードに割り振る。ここでは、ノード1に4台、ノード2に1台、ノード3に3台、ノード4に2台が割り当てられたとする。
つぎに図24(c)で示すように、サービスAについて注目し、図24(d)で示すようにサービスAへの距離(重み)により昇順にソートする。すなわち、この例では、ノード3にあるサーバはそのままサービスAにデプロイできるので、ノード3とサービスAの距離はゼロである。次に、ノード2がノード3へ遷移する時間が10なのでノード2とサービスAの距離も10となる。同様に、ノード1の距離はノード2への遷移とノード3への遷移時間の和60+10=70となる。また、ノード4は、いったんノード1へ戻ってからノード2、ノード3へ遷移する必要があるため、サービスAからの距離は、0+60+10=70となる。
図25(e)では、期待値E(A)を計算する過程を示している。ここでは、三つまでのリクエストはノード3にあるリソースが使われ、次の一つまでのリクエストはノード2にあるリソースが使われる。同様にして、10台までのリクエストが発生した場合の期待値は、サービスAがi台のリソースを要求する発生確率P(i)と、サービスAからk番目に近いノードの距離d(k)およびサービスAのペナルティωから図中に示された式で計算される。
図26(f)では、E+=E(A)を計算し、その後注目するサービスを変更する。すなわち、図24(c)の注目サービスAを注目サービスBに置き換えて、図24(d)から図25(e)までの計算を同様に行う。
さらに、図26(g)では、リソースの割り振りを変更し、図23(b)へ戻って期待値Eを再計算する。この例では、サーバをノード1に1台、ノード2に2台、ノード3に2台、ノード4に5台と割り振りを変更しているが、この割り振りは任意のパターンでよい。以上の計算を全てのリソース割り当てパターンについて繰返し、期待値Eが最小となる割り当てパターンを求めることができる。
以下、IBM社のソウトウェア製品のTivoli(登録商標) Intelligent Orchestrator(TIO)を使ったオンデマンド・コンピューティングにおけるシステム実施例を説明する。この実施例では、TIOをプロビジョニング・マネージャとして、プロビジョニングを実行できるシステムを用いている。
複数のクラスタ・システムをサービスに利用しているデータ・センターをTIOにて管理することを想定する。それぞれのサービスは異なる用途・顧客に使われているため、ピークは異なる。完全にピークを予測可能であれば、あらかじめプロビジョニングしておき、事前にピークに備えることは可能であるが、ピークをあらかじめ完全に予測することは困難であり、また予測を超える負荷には対応できない。
まず、サーバを各クラスタへプロビジョニングする際に行われるインストール手順(設定処理)より有向グラフを作成する。このとき、ノードは、あるOS/アプリケーションがインストールされている状態を表し、また、エッジは、OS/アプリケーションのインストール作業工程を表す。
エッジの重みは、作業工程の処理時間(例えば、インストール時間や構成要素の変更のための時間)を表すが、これはテスト・インストール作業によって、初期値として自動的に取得される。もしくは、この初期値は、マニュアルで管理者から与えることもできることとする。各クラスタへのリクエストの発生確率は、過去の各クラスタにおけるサーバのリクエスト要求から決定され、時間の経過と共に常に更新することとする。また、クラスタへのプロビジョニングの時間の遅れによるペナルティは、各サービスのSLAによって決定され、高いSLAのクラスタでは、大きいペナルティを、そうでないクラスタには、低いペナルティを与える。
これらのデータを元に、現在プール中のサーバのどのノードへ割り当てるかが決定され、その状態にするために実際のインストール作業が実行される。ここでクラスタからリソース(サーバ)のリクエストがあった場合、プロビジョニング時間が最短となるステージにあるサーバがプロビジョニングされる。
さらにクラスタのピーク時間の予測機能をもっている場合、サービスへの要求確率を変化させることによって、より効率のよいプロビジョニングが可能となる。
以上、本発明を実施形態、および実施例を用いて説明したが、本発明の技術的範囲は上記実施形態に記載の範囲に限定されない。上記実施形態に、多様な変更または改良を加えることが可能である。また、そのような変更または改良を加えた形態も本発明の技術的範囲に含まれ得ることが、特許請求の範囲の記載から明らかである。
本発明において一つの実施形態として説明したプロビジョニングの方法は、コンピュータ上のシステムまたはコンピュータにその機能を実行させるプログラムによって実現可能である。また、上記プログラムを格納する記憶媒体は、電子的、磁気的、光学的、電磁的、赤外線または半導体システム(または、装置または機器)あるいは伝搬媒体であることができる。コンピュータ可読の媒体の例には、半導体またはソリッド・ステート記憶装置、磁気テープ、取り外し可能なコンピュータ可読の媒体の例には、半導体またはソリッド・ステート記憶装置、磁気テープ、取り外し可能なコンピュータ・ディスケット、ランダム・アクセス・メモリ(RAM)、リードオンリー・メモリ(ROM)、リジッド磁気ディスクおよび光ディスクが含まれる。現時点における光ディスクの例には、コンパクト・ディスク−リードオンリー・メモリ(CD−ROM)、コンパクト・ディスク−リード/ライト(CD−R/W)およびDVDが含まれる。
従来のプロビジョニング手順を示す図である。 本発明の好適な実施形態におけるプロビジョニング・システムの概略を示す図である。 本発明の好適な実施形態におけるシステム全体構成図である。 ステージング・エンジンの処理ステップを示すフローチャートを示す図である。 グラフの作成フローチャートを示す図である。 リソース・プールを共有するサービスの例を示す図である。 各サービスへのプロビジョニング手順を中間状態に分割するステップS110の例を示した図である。 同一状態をまとめ、グラフを作成するステップS120の例を示した図である。 状態間の遷移が可能な箇所にエッジを追加するステップS130の例を示した図である。 サーバ配置の遷移の具体例を示す図(その1)である。 サーバ配置の遷移の具体例を示す図(その2)である。 サーバ配置の遷移の具体例を示す図(その3)である。 サーバ配置の遷移の具体例を示す図(その4)である。 サーバ配置の遷移の具体例を示す図(その5)である。 有向グラフのモデルを示す概念図である。 ノード間の距離の具体例を示す図である。 アルゴリズム1のフローチャートを示す図(その1)である。 アルゴリズム1のフローチャートを示す図(その2)である。 アルゴリズム1の具体例を示す図である。 図19の各状態でのサーバの状態を示す図である。 アルゴリズム2の計算例でリソースが一つの場合を示す図である。 アルゴリズム2の計算例でリソースが二つの場合を示す図である。 アルゴリズム3の手順の具体例を示す図(その1)である。 アルゴリズム3の手順の具体例を示す図(その2)である。 アルゴリズム3の手順の具体例を示す図(その3)である。 アルゴリズム3の手順の具体例を示す図(その4)である。
符号の説明
1 初期ノード(ノード1)
2 中間ノード(ノード2)
3 中間ノード(ノード3)
4 最終ノード(ノード4)
5 最終ノード(ノード5)
6 中間ノード(ノード6)
7 最終ノード(ノード7)
2a ノード2からノード1への遷移
3a ノード3からノード2への遷移
4a ノード4からノード1への遷移
5a ノード5からノード1への遷移
6a ノード6からノード1への遷移
7a ノード7からノード1への遷移
10 ステージング・エンジン
20 プロビジョニング・マネージャ
30 データ・センター

Claims (13)

  1. 複数のサービスが必要とするリソースの割り当てについてシミュレーションを行うプロビジョニング方法であって、
    前記複数のサービスが共有するリソース・プール内に前記プロビジョニングの過程における中間状態として一または複数のステージを設けるステージング段階と、
    一または複数の前記リソースの状態を、一または複数の前記ステージに初期状態として割り当てる段階と、
    割り当てられた前記リソースの状態を他の前記ステージに遷移させるために要する設定作業時間に基づいて、所定のアルゴリズムによる所定のコストを算出し、前記所定のコストが最小となるように全ての前記リソースを各前記ステージに配置する段階と、
    を備える、プロビジョニング方法。
  2. 前記ステージング段階は、各前記ステージをノードとし、前期設定作業時間をエッジの重みとする有向グラフを作成することによる、請求項1に記載のプロビジョニング方法。
  3. 前記所定のコストは、あるサービスからのリソース要求発生による該リソースの該サービスへのデプロイ完了までに要する時間と、該サービスにデプロイが遅れることによるペナルティの積によって決定される、請求項2に記載のプロビジョニング方法。
  4. 前記所定のアルゴリズムは、前記サービスごとのリソース要求発生分布を元にしたシミュレーションによって、現在の全てのリソース割り当てパターンから、前記所定のコストが最小となる一手先あるいは、二手以上先の全てのリソースのステージへの割り当てパターンを見つける、請求項3に記載のプロビジョニング方法。
  5. 前記所定のアルゴリズムは、全てのリソースのステージへの割り当てパターンごとに、次の式で求められる期待値E(S)を算出し、
    Figure 0004129988
    前記期待値E(S)が最小となる全てのリソースのステージへの割り当てパターンを見つけ、
    現在のリソース配置から当該割り当てパターンのリソース配置ヘの遷移を、グラフ・マッチング問題を用いることにより決定する、請求項3に記載のプロビジョニング方法。
  6. 前記所定のアルゴリズムは、全てのリソースのステージへの割り当てパターンと全てのサービスごとに、次の式で求められるE(S,X)を算出し、
    Figure 0004129988
    さらに前記E(S,X)を全てのサービスXについて総和である期待値E(S)を求め、前記期待値E(S)が最小となる全てのリソースのステージへの割り当てパターンを見つけ、
    現在のリソース配置から当該割り当てパターンのリソース配置ヘの遷移を、グラフ・マッチング問題を用いることにより決定する、請求項3に記載のプロビジョニング方法。
  7. 前記シミュレーションは、リソース要求を特定の確率分布によって発生させる、請求項4に記載のプロビジョニング方法。
  8. 複数のサービスが必要とするリソースの割り当てについてシミュレーションを行うプロビジョニングのステージング・エンジンであって、
    前記ステージング・エンジンは、
    前記サービスが共有するリソース・プール内に、前記プロビジョニングの過程における中間状態として一または複数のステージを設け、前記ステージをノード、前記ノード間の遷移をエッジとするグラフを作成するグラフ作成部と、
    所定のアルゴリズムによる所定のコストが最小となるように、前記リソース・プール中の全ての前記リソースの状態の配置を求める遷移計画部と、
    前記遷移計画部が発行した遷移計画に基づいて、リソース遷移処理要求の発行を行う遷移要求発行部と、
    外部からのイベントを待つ、イベント処理部と、
    前記イベントがサービス・リクエストの場合、要求を発生した該サービスに最も近い前記ノードを求めるデロイ部と、
    を備える、ステージング・エンジン。
  9. 前記遷移計画部は、
    割り当てられた前記リソースの状態を他の前記ノードに遷移させるために要する設定作業時間の入力を受け取る機能と、
    前記設定作業時間に基づいて、所定のアルゴリズムによる所定のコストを算出する機能と、
    を備える、請求項8に記載のステージング・エンジン。
  10. 前記サービス・リクエストは、リソース要求、遷移処理完了、または、前記リソース・プールへのリソースの追加・削除のいずれかである、請求項8に記載のステージング・エンジン。
  11. 請求項8乃至10のいずれかに記載の前記ステージング・エンジンを含むプロビジョニング・システムであって、前記ステージング・エンジンからの前記リソース遷移処理要求に応じて、前記リソースの設定作業を実行するプロビジョニング・マネージャを更に含む、プロビジョニング・システム。
  12. 複数のサービスが必要とするリソースの割り当てのためのシミュレーションを行うプロビジョニングをコンピュータに実行させるコンピュータ・プログラムであって、
    前記サービスが共有するリソース・プール内に前記プロビジョニングの過程における中間状態として一または複数のステージを設けるステージング機能と、
    一または複数の前記リソースの状態を、一または複数の前記ステージに、初期状態として割り当てる機能と、
    割り当てられた前記リソースの状態を他の前記ステージに遷移させるために要する設定作業時間に基づいて、所定のアルゴリズムによる所定のコストを算出し、前記所定のコストが最小となるように全ての前記リソースを各前記ステージに配置する機能と、
    をコンピュータに実行させる、コンピュータ・プログラム。
  13. 請求項12に記載のコンピュータ・プログラムを格納する記憶媒体。
JP2005326047A 2005-11-10 2005-11-10 リソースのプロビジョニング方法 Active JP4129988B2 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP2005326047A JP4129988B2 (ja) 2005-11-10 2005-11-10 リソースのプロビジョニング方法
US11/557,577 US20070106798A1 (en) 2005-11-10 2006-11-08 Method for provisioning resources
CNB2006101438362A CN100428169C (zh) 2005-11-10 2006-11-09 用于供给资源的方法、装置和***
US12/058,920 US7809831B2 (en) 2005-11-10 2008-03-31 Method for provisioning resources

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005326047A JP4129988B2 (ja) 2005-11-10 2005-11-10 リソースのプロビジョニング方法

Publications (2)

Publication Number Publication Date
JP2007133654A JP2007133654A (ja) 2007-05-31
JP4129988B2 true JP4129988B2 (ja) 2008-08-06

Family

ID=38005121

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005326047A Active JP4129988B2 (ja) 2005-11-10 2005-11-10 リソースのプロビジョニング方法

Country Status (3)

Country Link
US (2) US20070106798A1 (ja)
JP (1) JP4129988B2 (ja)
CN (1) CN100428169C (ja)

Families Citing this family (61)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6973654B1 (en) * 2003-05-27 2005-12-06 Microsoft Corporation Systems and methods for the repartitioning of data
US7558859B2 (en) * 2005-10-17 2009-07-07 Microsoft Corporation Peer-to-peer auction based data distribution
JP4605036B2 (ja) * 2006-01-27 2011-01-05 日本電気株式会社 計算機システム、管理サーバ、計算機設定時間を低減する方法およびプログラム
US8335703B1 (en) 2006-10-20 2012-12-18 Desktone, Inc. Virtual computing services deployment network
US8028048B2 (en) * 2007-02-27 2011-09-27 International Business Machines Corporation Method and apparatus for policy-based provisioning in a virtualized service delivery environment
US11593722B2 (en) * 2007-12-19 2023-02-28 International Business Machines Corporation Method and structure for risk-based resource planning for configurable products
JP4620722B2 (ja) * 2007-12-26 2011-01-26 富士通株式会社 データ配置制御プログラム、データ配置制御装置、データ配置制御方法、およびマルチノードストレージシステム
US8893141B2 (en) * 2008-01-28 2014-11-18 Microsoft Corporation System and method for describing applications for manageability and efficient scale-up deployment
JP4577384B2 (ja) * 2008-03-14 2010-11-10 日本電気株式会社 管理マシン、管理システム、管理プログラム、および、管理方法
US7493528B1 (en) 2008-05-15 2009-02-17 International Business Machines Corporation Resolving conflicts between multiple automation managers in the management of software resources using intention flags
KR101113943B1 (ko) * 2008-12-22 2012-03-05 한국전자통신연구원 워크로드 관리 방법과 장치 및 이를 이용한 분산 컴퓨팅 시스템
JP5368285B2 (ja) * 2009-12-11 2013-12-18 株式会社日立製作所 計算機システム、計算機リソースの管理方法及びプログラム
US9122538B2 (en) 2010-02-22 2015-09-01 Virtustream, Inc. Methods and apparatus related to management of unit-based virtual resources within a data center environment
US9027017B2 (en) 2010-02-22 2015-05-05 Virtustream, Inc. Methods and apparatus for movement of virtual resources within a data center environment
US8473959B2 (en) * 2010-02-22 2013-06-25 Virtustream, Inc. Methods and apparatus related to migration of customer resources to virtual resources within a data center environment
US8595722B2 (en) * 2010-10-14 2013-11-26 International Business Machines Corporation Preprovisioning virtual machines based on request frequency and current network configuration
JP2014038364A (ja) 2010-10-27 2014-02-27 Hitachi Ltd リソース管理サーバ、リソース管理方法及びリソース管理プログラム
JP2012108697A (ja) * 2010-11-17 2012-06-07 Nec Corp モジュール配備装置、配備方法および配備用プログラム
US8589558B2 (en) 2010-11-29 2013-11-19 Radware, Ltd. Method and system for efficient deployment of web applications in a multi-datacenter system
CN102043676B (zh) * 2010-12-08 2012-09-05 北京航空航天大学 虚拟化数据中心调度方法及***
US8788669B2 (en) 2011-01-03 2014-07-22 Novell, Inc. Policy and identity based workload provisioning
CN102176696B (zh) * 2011-02-25 2013-03-20 曙光信息产业(北京)有限公司 多计算机***
US8998544B1 (en) * 2011-05-20 2015-04-07 Amazon Technologies, Inc. Load balancer
JP5566342B2 (ja) * 2011-06-08 2014-08-06 株式会社エヌ・ティ・ティ・データ コンピュータシステム、仮想マシンデータ配置方法およびプログラム
US8954586B2 (en) 2011-07-13 2015-02-10 International Business Machines Corporation Pre-provisioning virtual machines in a networked computing environment
US20130024573A1 (en) * 2011-07-18 2013-01-24 International Business Machines Corporation Scalable and efficient management of virtual appliance in a cloud
US8825862B2 (en) 2011-08-01 2014-09-02 International Business Machines Corporation Optimization of resource provisioning in a networked computing environment
US9189259B2 (en) 2011-08-22 2015-11-17 International Business Machines Corporation Provisioning of virtual machine pools based on historical data in a networked computing environment
WO2013029051A2 (en) 2011-08-25 2013-02-28 to fuVIRTUSTREAM, INC. Systems and methods of host-aware resource management involving cluster-based resource pools
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
US9038063B2 (en) 2011-09-07 2015-05-19 International Business Machines Corporation Determining virtual machine image pattern distributions in a networked computing environment
US8930541B2 (en) * 2011-11-25 2015-01-06 International Business Machines Corporation System, method and program product for cost-aware selection of templates for provisioning shared resources
US9285992B2 (en) * 2011-12-16 2016-03-15 Netapp, Inc. System and method for optimally creating storage objects in a storage system
JP5880575B2 (ja) * 2011-12-19 2016-03-09 富士通株式会社 リソース検索装置及び該プログラム
US10353738B2 (en) 2012-03-21 2019-07-16 International Business Machines Corporation Resource allocation based on social networking trends in a networked computing environment
US9317337B2 (en) 2012-04-13 2016-04-19 International Business Machines Corporation Utilizing software component metadata to provision virtual machines in a networked computing environment
US8856386B2 (en) * 2012-08-21 2014-10-07 Cisco Technology, Inc. Cloud resource placement using placement pivot in physical topology
US9153049B2 (en) 2012-08-24 2015-10-06 International Business Machines Corporation Resource provisioning using predictive modeling in a networked computing environment
US10127084B2 (en) * 2012-11-15 2018-11-13 Red Hat Israel, Ltd. Pre-provisioning resources for composite applications
US20140143011A1 (en) * 2012-11-16 2014-05-22 Dell Products L.P. System and method for application-migration assessment
JP2014123198A (ja) * 2012-12-20 2014-07-03 International Business Maschines Corporation リクエストおよびレスポンスのペアを監視するためのルールを抽出するためのコンピュータ実装方法、プログラム、および、システム
US9295915B2 (en) * 2013-05-20 2016-03-29 Microsoft Technology Licensing, Llc Game availability in a remote gaming environment
US20150200872A1 (en) * 2014-01-13 2015-07-16 Cisco Technology, Inc. Cloud resource placement based on stochastic analysis of service requests
US9800650B2 (en) * 2014-03-10 2017-10-24 Vmware, Inc. Resource management for multiple desktop configurations for supporting virtual desktops of different user classes
GB2528318A (en) * 2014-07-18 2016-01-20 Ibm Measuring delay
FR3030168B1 (fr) * 2014-12-15 2017-01-13 Thales Sa Procede de choix d'au moins un service et dispositif associe
US9614853B2 (en) 2015-01-20 2017-04-04 Enzoo, Inc. Session security splitting and application profiler
US10193821B1 (en) * 2015-03-19 2019-01-29 Amazon Technologies, Inc. Analyzing resource placement fragmentation for capacity planning
US9923965B2 (en) 2015-06-05 2018-03-20 International Business Machines Corporation Storage mirroring over wide area network circuits with dynamic on-demand capacity
US10848574B2 (en) * 2015-06-11 2020-11-24 Microsoft Technology Licensing, Llc Computing resource management system
CN106547583B (zh) * 2015-09-22 2020-02-21 杭州华为数字技术有限公司 一种操作***安装方法以及装置
US10177993B2 (en) 2015-11-25 2019-01-08 International Business Machines Corporation Event-based data transfer scheduling using elastic network optimization criteria
US9923839B2 (en) * 2015-11-25 2018-03-20 International Business Machines Corporation Configuring resources to exploit elastic network capability
US10057327B2 (en) 2015-11-25 2018-08-21 International Business Machines Corporation Controlled transfer of data over an elastic network
US10216441B2 (en) 2015-11-25 2019-02-26 International Business Machines Corporation Dynamic quality of service for storage I/O port allocation
US9923784B2 (en) 2015-11-25 2018-03-20 International Business Machines Corporation Data transfer using flexible dynamic elastic network service provider relationships
US10581680B2 (en) 2015-11-25 2020-03-03 International Business Machines Corporation Dynamic configuration of network features
EP3462705B1 (en) * 2017-09-27 2019-07-10 Siemens Aktiengesellschaft Provisioning of software applications on edge devices in an internet-of-things environment
US10852908B2 (en) * 2017-10-27 2020-12-01 Oracle International Corporation Method and system for controlling a display screen based upon a prediction of compliance of a service request with a service level agreement (SLA)
US11579901B1 (en) * 2021-06-30 2023-02-14 Amazon Technologies, Inc. Provisioning engine hosting solution for a cloud orchestration environment
CN115454598B (zh) * 2022-09-09 2023-06-06 苏州大学 部分解耦数据中心的业务部署和资源分配方法

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0752136B1 (en) * 1994-03-25 1999-09-08 BRITISH TELECOMMUNICATIONS public limited company Resource allocation
JPH11308302A (ja) 1998-04-22 1999-11-05 Nec Corp データアップロード方式
US6954931B2 (en) * 2001-07-13 2005-10-11 Honeywell International, Inc. Resource allocation
US7174379B2 (en) * 2001-08-03 2007-02-06 International Business Machines Corporation Managing server resources for hosted applications
US7213065B2 (en) * 2001-11-08 2007-05-01 Racemi, Inc. System and method for dynamic server allocation and provisioning
JP2004080267A (ja) * 2002-08-14 2004-03-11 Nippon Telegr & Teleph Corp <Ntt> ネットワークサービスにおけるリソース割り当て方法およびこれを用いるリソース割り当て装置
US7581008B2 (en) * 2003-11-12 2009-08-25 Hewlett-Packard Development Company, L.P. System and method for allocating server resources
JP3884427B2 (ja) * 2003-12-10 2007-02-21 東芝ソリューション株式会社 計算機システム及び資源割り当てプログラム
US7957996B2 (en) * 2004-03-31 2011-06-07 International Business Machines Corporation Market expansion through optimized resource placement
US7346401B2 (en) * 2004-05-25 2008-03-18 International Business Machines Corporation Systems and methods for providing constrained optimization using adaptive regulatory control
JP4397744B2 (ja) * 2004-06-25 2010-01-13 パナソニック株式会社 半導体集積回路の高位合成方法
US8316130B2 (en) * 2004-12-22 2012-11-20 International Business Machines Corporation System, method and computer program product for provisioning of resources and service environments
US7493544B2 (en) * 2005-01-21 2009-02-17 Microsoft Corporation Extending test sequences to accepting states

Also Published As

Publication number Publication date
CN100428169C (zh) 2008-10-22
US20070106798A1 (en) 2007-05-10
US20080183544A1 (en) 2008-07-31
CN1963769A (zh) 2007-05-16
US7809831B2 (en) 2010-10-05
JP2007133654A (ja) 2007-05-31

Similar Documents

Publication Publication Date Title
JP4129988B2 (ja) リソースのプロビジョニング方法
JP7138126B2 (ja) リソース配置を最適化するための適時性リソース移行
US11593149B2 (en) Unified resource management for containers and virtual machines
CN105897805B (zh) 对多层架构的数据中心的资源进行跨层调度的方法和装置
US8793344B2 (en) System and method for generating a response plan for a hypothetical event
US9922305B2 (en) Compensating for reduced availability of a disrupted project resource
US10705873B2 (en) Predictive virtual server scheduling and optimization of dynamic consumable resources to achieve priority-based workload performance objectives
JP6010975B2 (ja) ジョブ管理装置、ジョブ管理方法、及びプログラム
JP6115575B2 (ja) データセット多重度変更装置、サーバ、データセット多重度変更方法、およびコンピュータ・プログラム
Ungureanu et al. Kubernetes cluster optimization using hybrid shared-state scheduling framework
Czarnul A model, design, and implementation of an efficient multithreaded workflow execution engine with data streaming, caching, and storage constraints
JP2011192049A (ja) 仮想マシンシステム、自動マイグレーション方法および自動マイグレーションプログラム
Quan Mapping heavy communication workflows onto grid resources within an SLA context
JP2010205049A (ja) ベクトルプロセッサ及びベクトル命令発行方法
JP5468921B2 (ja) シミュレーション支援システム及びシミュレーション支援方法
JP6349837B2 (ja) スケジューラ装置及びそのスケジューリング方法、演算処理システム、並びにコンピュータ・プログラム
JP2012164260A (ja) コンピュータ運用管理システム、コンピュータ運用管理方法及びコンピュータ運用管理プログラム
JP2015090688A (ja) MapReduceジョブ管理システム、MapReduceジョブ管理方法
US20240061716A1 (en) Data center workload host selection
KR102322886B1 (ko) 산출 리소그래피를 위한 E-Beam 클러스터 구성 방법 및 장치
US20220350656A1 (en) Increase assignment effectiveness of kubernetes pods by reducing repetitive pod mis-scheduling
Croubois et al. Communication aware task placement for workflow scheduling on daas-based cloud
US20230266997A1 (en) Distributed scheduling in container orchestration engines
JP2004013866A (ja) 分散処理システム、タスク割り当て装置及びそれらに用いるタスク割当て方法並びにそのプログラム
CN115061811A (zh) 一种资源调度方法、装置、设备及存储介质

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071205

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20071226

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20080109

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080304

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080404

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20080514

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20080519

R150 Certificate of patent or registration of utility model

Ref document number: 4129988

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110530

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110530

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120530

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120530

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130530

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140530

Year of fee payment: 6