JP6893284B2 - リソーススケジューリング方法、スケジューリングサーバ、クラウドコンピューティングシステム、及び記憶媒体 - Google Patents

リソーススケジューリング方法、スケジューリングサーバ、クラウドコンピューティングシステム、及び記憶媒体 Download PDF

Info

Publication number
JP6893284B2
JP6893284B2 JP2020518085A JP2020518085A JP6893284B2 JP 6893284 B2 JP6893284 B2 JP 6893284B2 JP 2020518085 A JP2020518085 A JP 2020518085A JP 2020518085 A JP2020518085 A JP 2020518085A JP 6893284 B2 JP6893284 B2 JP 6893284B2
Authority
JP
Japan
Prior art keywords
host machine
information
resource
resource information
scheduling
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
JP2020518085A
Other languages
English (en)
Other versions
JP2020535559A5 (ja
JP2020535559A (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 JP2020535559A publication Critical patent/JP2020535559A/ja
Publication of JP2020535559A5 publication Critical patent/JP2020535559A5/ja
Application granted granted Critical
Publication of JP6893284B2 publication Critical patent/JP6893284B2/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/5061Partitioning or combining of resources
    • G06F9/5077Logical partitioning of resources; Management or configuration of virtualized resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • 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/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Computer And Data Communications (AREA)
  • Information Transfer Between Computers (AREA)
  • Debugging And Monitoring (AREA)

Description

[関連出願への相互参照]
本願は、2017年9月29日に中国特許庁に提出された、出願番号が201710911639.9であり、発明の名称が「リソーススケジューリング方法、装置、クラウドコンピューティングシステム、及び記憶媒体」である中国特許出願の優先権を主張し、その全ての内容は参照することにより本願に組み込まれる。
[技術分野]
本願は、クラウド技術分野に関し、具体的に、リソーススケジューリング方法、スケジューリングサーバ、クラウドコンピューティングシステム、及び記憶媒体に関する。
クラウドコンピューティングシステムには、通常、スケジューラとホストマシンとが含まれ、ここで、スケジューラは、仮想マシンソフトウェアによって、1つのホストマシン上に1つ又は複数の仮想マシンを作成できる。クラウドコンピューティングシステムには、多数のホストマシンがあり、仮想マシンを作成する際に、いずれのホストマシン上に仮想マシンを作成するかを選択する過程がリソーススケジューリングと呼ばれ、リソーススケジューリングを行うものがスケジューラと呼ばれる。
いくつかの実施例では、スケジューラがリソーススケジューリングを行う際に、ホストマシンの規模及びリソーススケジューリング要求がある程度まで増加すると、スケジューラが1回のリソーススケジューリング要求を処理する時間は著しく増加するとともに、後続の要求は常に並んで、処理されるのを待つ。例えば、2段階のスケジューリングのアーキテクチャが採用され、まず、中央リソースマネージャーが、リソース招待によって、スケジューラにホストマシンリソースを提供し、スケジューラが、リソース招待の範囲内でホストマシンを選択して、リソーススケジューリング過程を完了する。また、該スケジューラがリソーススケジューリングを完了して始めて、中央リソースマネージャーは、リソース招待によって、他のスケジューラにホストマシンリソースを提供する。例えば、クラウドコンピューティングシステムのデータセンター全体には、ホストマシンA、ホストマシンB、ホストマシンC、ホストマシンD、及びホストマシンEなどが含まれ、中央リソースマネージャーは、リソース招待によって、スケジューラ1にホストマシンA及びホストマシンBを提供し、この場合、スケジューラ1は、ホストマシンA及びホストマシンBのうち1つのホストマシンしか選択できない。スケジューラ1がリソーススケジューリングを完了して始めて、中央リソースマネージャーは、リソース招待によって、スケジューラ2にホストマシンリソースを提供する。
上記実施例には下記の課題が存在する。一方では、スケジューラがリソース招待の範囲内でしかホストマシンを選択できないことで、選択可能なホストマシンの規模が小さくなり、リソーススケジューリングの良い結果が保証できない。他方では、中央リソースマネージャーが、まず、1つのスケジューラにホストマシンリソースを提供し、該スケジューラがリソーススケジューリングを完了してから、中央リソースマネージャーが他のスケジューラにホストマシンリソースを提供することで、スケジューラがリソーススケジューリングを行う際に待つ必要があり、リソーススケジューリングの高い遅延性及び低いスループットを引き起こす。
本願の実施例では、リソーススケジューリングの良い結果及びリソーススケジューリングの効率の向上を実現可能なリソーススケジューリング方法、スケジューリングサーバ、クラウドコンピューティングシステム、及び記憶媒体が提供されている。
上記の技術的課題を解決するために、本願の実施例では、下記の構成を提供する。
リソーススケジューリング方法であって、
スケジューリングサーバが、作成する仮想マシンに対応する仮想マシン情報を取得し、
スケジューリングサーバが共通リソース情報を取得し、前記共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれ、
スケジューリングサーバが、前記共通リソース情報に基づいて、予め設けられたリソース情報プライベートコピーを更新し、前記リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれ、
スケジューリングサーバが、前記リソース情報プライベートコピーに基づいて、前記仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得し、
スケジューリングサーバが、前記少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成する、ことを含む。
スケジューリングサーバであって、プロセッサと、メモリと、前記メモリに記憶される1つ又は複数のプログラムと、を含み、前記1つ又は複数のプログラムは、前記プロセッサによって実行されると、前記プロセッサに、上記のリソーススケジューリング方法を実行させる。
クラウドコンピューティングシステムであって、少なくとも1つの、本願によるスケジューリングサーバと、少なくとも1つの、少なくとも1つの仮想マシンを作成するためのホストマシンと、を備える。
複数の命令を記憶した記憶媒体であって、該命令は、プロセッサによってロードされることで、上記のリソーススケジューリング方法を実行させるように構成される。
本願の実施例では、作成する仮想マシンに対応する仮想マシン情報を取得し、共通リソース情報を取得し、該共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれ、次に、共通リソース情報及び仮想マシン情報に基づいて、予め設けられたリソース情報プライベートコピーを更新し、該リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれ、最後に、リソース情報プライベートコピーに基づいて、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得し、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成する。この構成によれば、リソーススケジューリングを行う前に、リソース情報プライベートコピーを適時に更新することが可能になり、リソース情報プライベートコピーと共通リソース情報との同期性が保証され、リソーススケジューリングの結果が良くなるとともに、リソーススケジューリングを行う際に待つ必要がなく、リソーススケジューリングの効率が向上する。
本願の実施例の構成をより明確に説明するために、以下、実施例の説明に必要な図面を簡単に紹介する。明らかに、以下の説明における図面は本願のいくつかの実施例を示しているにすぎず、当業者にとって、創造的な労働をせずに、これらの図面から他の図面を得ることもできる。
本願の実施例で提供されたリソーススケジューリングシステムのシナリオの模式図である。 本願の実施例で提供されたリソーススケジューリング方法のフローの模式図である。 本願の実施例で提供されたリソーススケジューリング方法のフローの模式図である。 本願の実施例で提供されたリソーススケジューリング方法のフローの模式図である。 本願の実施例で提供されたリソーススケジューリング方法のフローの模式図である。 本願の実施例で提供されたリソーススケジューリング方法のリソース情報プライベートコピーの更新のフローの模式図である。 本願の実施例で提供されたリソーススケジューリング方法のターゲットホストマシンの取得のフローの模式図である。 本願の実施例で提供されたリソーススケジューリング装置の構成の模式図である。 本願の実施例で提供されたリソーススケジューリング装置の構成の模式図である。 本願の実施例で提供されたリソーススケジューリング装置の構成の模式図である。 本願の実施例で提供されたリソーススケジューリング装置の構成の模式図である。 本願の実施例で提供されたスケジューリングサーバの構成の模式図である。
以下、本願の実施例の図面を参照して、本願の実施例の構成を明瞭かつ完全に説明する。明らかに、説明される実施例は、本願の実施例の全部ではなく、本願の実施例の一部にすぎない。当業者が創造的な労働をせずに本願の実施例から得るすべての他の実施例は、本願の保護範囲に属する。
以下の説明では、本願の具体的な実施例について、別段に明示されない限り、1つ又は複数のコンピュータによって実行されるステップ及び符号を参照して説明する。このため、これらのステップ及び動作がコンピュータによって実行されることに数回言及する。本文におけるコンピュータによって実行される動作には、構造化データを表す電子信号のコンピュータ処理ユニットによって実行される動作が含まれる。この動作は、該データを変換したり、該データを該コンピュータのメモリシステムにおける位置に維持したりし、再設定されることにより、又は、当業者が熟知している別の方式で、該コンピュータの作動を変えることが可能である。該データによって維持されるデータ構造は、該メモリの物理的な位置にあり、該データフォーマットによって定義される特定の特性を持つ。しかしながら、上記の文字は、本願の原理を説明しているが、制限を表すものではない。当業者であれば理解できるように、次に説明する複数のステップ及び動作は、ハードウェアでも実施可能である。
本願の実施例では、リソーススケジューリング方法、スケジューリングサーバ、クラウドコンピューティングシステム、及び記憶媒体が提供されている。
図1を参照されたい。図1は、本願の実施例で提供されたリソーススケジューリングシステムのシナリオの模式図である。このリソーススケジューリングシステムは、クラウドコンピューティングシステムであってもよい。このクラウドコンピューティングシステムは、リソーススケジューリング装置を含んでもよい。このリソーススケジューリング装置は、具体的に、スケジューリングサーバに統合されてもよい。このスケジューリングサーバは、クラウドコンピューティングシステムのスケジューラであってもよい。言い換えれば、各スケジューラには、リソーススケジューリング装置が含まれてもよい。クラウドコンピューティングシステムには、例えば、図1に示すスケジューラ1、2…nのような1つ又は複数のスケジューラが含まれてもよい。スケジューラは、作成する仮想マシンに対応する仮想マシン情報を取得し、共通リソース情報を取得する。共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれてもよい。次に、スケジューラは、共通リソース情報及び仮想マシン情報に基づいて、予め設けられたリソース情報プライベートコピーを更新してもよい。このリソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれる。スケジューラによってメンテナンスされるリソース情報プライベートコピーは、作成する仮想マシンに対して、適当なホストマシンを選択することに用いられてもよい。スケジューラは、リソース情報プライベートコピーに基づいて、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得すること、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを選択し、ターゲットホストマシン上に仮想マシンを作成することなどを行ってもよい。
また、該クラウドコンピューティングシステムには、例えば、図1に示すホストマシンA、B…nのような1つ又は複数のホストマシンが含まれてもよい。ホストマシンは、スケジューラから送信された仮想マシン作成要求を受信し、この要求に応じて、1つ又は複数の仮想マシンを作成してもよい。
該クラウドコンピューティングシステムには、1つ又は複数の端末から送信された仮想マシン作成要求を主に受信する受信器が含まれてもよい。この仮想マシン作成要求には、仮想マシン情報が付けられてもよい。次に、受信器は、受信された各仮想マシン作成要求のそれぞれをメッセージにカプセル化し、メッセージを予め設けられたメッセージキューに格納してもよい。これにより、スケジューラは、メッセージキューからメッセージを取得して、メッセージから、作成する仮想マシン情報を抽出することが可能になる。説明すべきものとして、メッセージキューに複数のメッセージが存在する場合、複数のスケジューラは、並行的に、メッセージを取得し、作成する異なる仮想マシンに対してホストマシンを選択することができる。
該クラウドコンピューティングシステムには、主に共通リソース情報をメンテナンスするリソースマネージャーが含まれてもよい。これにより、スケジューラは、リソースマネージャーから共通リソース情報を取得することが可能になる。該共通リソース情報は、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報の記憶及びメンテナンスに用いられる。
説明すべきものとして、図1に示すリソーススケジューリングシステムのシナリオの模式図は、一例にすぎない。本願の実施例で説明するリソーススケジューリングシステム及びシナリオは、本願の実施例の構成をより明確に説明するためのものであり、本願の実施例で提供された構成を限定するものではない。当業者には、クラウドコンピューティングシステムの進化及び新しい業務シナリオの出現に伴い、本願の実施例で提供された構成が類似の技術的課題にも同様に適用可能であることが分かる。
以下、それぞれ詳しく説明する。
本実施例では、リソーススケジューリング装置の観点から説明する。このリソーススケジューリング装置は、具体的に、スケジューリングサーバやゲートウェイなどのネットワーク機器に統合されてもよい。
リソーススケジューリング方法は、スケジューリングサーバによって実行されてもよい。このリソーススケジューリング方法は、作成する仮想マシンに対応する仮想マシン情報を取得し、共通リソース情報を取得し、共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれ、共通リソース情報及び仮想マシン情報に基づいて、予め設けられたリソース情報プライベートコピーを更新し、リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれ、リソース情報プライベートコピーに基づいて、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得し、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成する、ことを含んでもよい。
図2を参照されたい。図2は、本願の第1実施例で提供されたリソーススケジューリング方法のフローの模式図である。図2のリソーススケジューリング方法は、例えば、スケジューリングサーバによって実行されてもよい。このリソーススケジューリング方法は、下記のステップを含む。
ステップ101で、スケジューリングサーバは、作成する仮想マシンに対応する仮想マシン情報を取得する。
例えば、スケジューリングサーバは、クラウドコンピューティングシステムに予め設けられたメッセージキューから、作成する仮想マシンに対応する仮想マシン情報を取得してもよい。ここで、仮想マシンとは、ソフトウェアでエミュレートされる、ハードウェアシステム機能を有しかつ隔離された環境で実行される完全なコンピュータシステムを指す。
メッセージキューのメッセージは、非同期タスクであってもよい。メッセージキューのメッセージは、メッセージキューを流れる。クラウドコンピューティングシステムの各コンポーネントは、生産者または消費者の身分を有する。生産者は、メッセージキューにメッセージを送信する。消費者は、メッセージキューからメッセージを受信する。例えば、クラウドコンピューティングシステムでは、受信器が生産者として、端末から送信された仮想マシン情報が付けられている仮想マシン作成要求を受信すると、仮想マシン情報をメッセージにカプセル化して、メッセージをメッセージキューに記憶し、これらの仮想マシン情報がメッセージキューに並んでスケジューリングサーバによるリソーススケジューリングを待ち、スケジューリングサーバが消費者として、メッセージキューから仮想マシン情報を抽出し、仮想マシン情報に対応する作成する仮想マシンに対してホストマシンを選択する。
仮想マシン情報には、作成する仮想マシンに必要なプロセッサ情報、メモリ情報、及びディスク情報などが含まれてもよい。仮想マシン情報には、作成する仮想マシンの、ソリッドステートドライブ、クラウドディスク、プライベートネットワーク、ネットワークカード、ルーター、ネットワーク構成、データセンター、ラック、ホストマシンの機種、ホストマシンの属するリソースプール、及び仮想マシンのタイプなどに対するリソース要件の少なくとも1つが含まれてもよい。理解できるように、仮想マシン情報のタイプは、実際の必要に応じて、柔軟的に設定されてもよいが、具体的な内容がここで限定されない。
ステップ102で、スケジューリングサーバは、共通リソース情報を取得する。
ここで、共通リソース情報は、クラウドコンピューティングシステムに対して、データセンター全体のリソースデータを記憶・メンテナンスするためのものである。この共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれる。理解できるように、この共通リソース情報は、リソースマネージャーによってメンテナンスされてもよいし、クラウドコンピューティングシステムの他の機器によってメンテナンスされてもよい。スケジューリングサーバは、共通リソース情報をメンテナンスする機器から、共通リソース情報を取得できる。例えば、この共通リソース情報がクラウドコンピューティングシステムのリソースマネージャーによってメンテナンスされる場合、スケジューリングサーバは、リソースマネージャーから、共通リソース情報を取得できる。説明の便宜上、本願の実施例では、すべて、共通リソース情報がリソースマネージャーによってメンテナンスされる場合を例として説明する。
説明すべきものとして、共通リソース情報は、クラウドコンピューティングシステム内でグローバルに一意であり、そのメンテナンス形式は、論理データテーブルであってもよい。例えば、データテーブルの各行のそれぞれは、1つのホストマシンを表し、データテーブルの各列のそれぞれは、ホストマシンに含まれる1種のリソースを表す。リソースは、ホストマシンのネットワーク間のインターネットプロトコル(IP:Internet Protocol)アドレス、利用可能な中央処理装置(CPU:Central Processing Unit)、利用可能なメモリ、及び利用可能なディスクなどを含んでもよい。メンテナンス過程では、共通リソース情報に対して、追加、読み取り、更新、又は削除などの処理を行うことができる。これらの処理は、データセンターのホストマシンリソースのオンライン化、変更、又はオフライン化などの過程に対応する。
ここで、ホストマシンとは、仮想マシンソフトウェアをインストールするための物理的なコンピュータを指す。1つのホストマシン上には、仮想マシンソフトウェアによって、1つ又は複数の仮想マシンを作成してもよい。
いくつかの実施例では、ホストマシン情報は、ホストマシン識別子、IPアドレス、機種、オペレーティングシステム名、カーネルバージョン、CPU型番、仮想化方式、論理領域番号、インターネットデータセンター番号、ホストマシン状態、クラウドディスクをサポートするか否か、ソリッドステートドライブ(SSD:Solid State Drives)をサポートするか否か、ネットワークバージョン、CPUノードリソースクォータ、利用可能なメモリリソース、及び利用可能なディスクリソースなどを含んでもよいが、具体的な内容がここで限定されない。
説明すべきものとして、ホストマシンがクラウドコンピューティングシステムに入るには、ホストマシン導入プロセスによって必要な初期化を行う必要がある。ホストマシンは、そのホストマシン情報をリソースマネージャーに報告し、リソースマネージャーは、ホストマシン情報を共通リソース情報に記憶してもよい。いくつかの実施例では、ホストマシンは、そのホストマシン情報をスケジューリングサーバに報告してもよい。スケジューリングサーバは、ホストマシン情報を予め設けられたリソース情報プライベートコピーに記憶してもよい。いくつかの実施例では、スケジューリングサーバは、リアルタイム又は所定時間間隔で、情報取得要求をリソースマネージャーに送信し、情報取得要求に応じてリソースマネージャーからフィードバックされた共通リソース情報を受信し、共通リソース情報に基づいてリソース情報プライベートコピーを更新してもよい。いくつかの実施例では、共通リソース情報の更新があった場合、リソースマネージャーは、更新されたホストマシン情報をスケジューリングサーバに自発的に送信する。
ステップ103で、スケジューリングサーバは、共通リソース情報に基づいて、予め設けられたリソース情報プライベートコピーを更新する。
スケジューリングサーバ自身でメンテナンスされるリソース情報プライベートコピーのメンテナンス形式は、共通リソース情報のスケジューリングサーバのメモリにおけるバッファである。ここで、リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれる。該所定のホストマシンは、クラウドコンピューティングシステムのすべてのホストマシンの一部又は全部であってもよい。リソーススケジューリングの結果を良くするために、スケジューリングサーバは、リソーススケジューリングを行う前に、リソース情報プライベートコピーと共通リソース情報とを同期化する必要があり、共通リソース情報を取得し、共通リソース情報に基づいてリソース情報プライベートコピーを更新することにより、リソース情報プライベートコピーと共通リソース情報との一致性を保証してもよい。
更新時間を短縮するために、共通リソース情報及び仮想マシン情報に基づいて、リソース情報プライベートコピーを更新してもよい。いくつかの実施形態では、共通リソース情報及び仮想マシン情報に基づいて、予め設けられたリソース情報プライベートコピーを更新することは、共通リソース情報の中から、仮想マシン情報を満たすターゲットホストマシン情報を選別し、ターゲットホストマシン情報を予め設けられたリソース情報プライベートコピーに追加する、ことを含む。
いくつかの実施例では、共通リソース情報の中から、仮想マシン情報を満たすターゲットホストマシン情報を選別し、ターゲットホストマシン情報を予め設けられたリソース情報プライベートコピーに追加することは、
リソース情報プライベートコピーの初回更新である場合、スケジューリングサーバが、共通リソース情報の中から、仮想マシン情報を満たすターゲットホストマシン情報を選別するステップS1と、
スケジューリングサーバが、ターゲットホストマシン情報をリソース情報プライベートコピーにコピーするステップS2と、
スケジューリングサーバが、現在タイムスタンプを取得し、現在タイムスタンプを完全更新タイムスタンプ及び増分更新タイムスタンプとして設定するステップS3と、
スケジューリングサーバが、完全更新タイムスタンプ及び増分更新タイムスタンプをリソース情報プライベートコピーに記憶するステップS4と、を含む。
具体的には、まず、スケジューリングサーバは、リソース情報プライベートコピーの初回更新であるか否かを判断し、例えば、リソース情報プライベートコピーが空であるか否かを判断してもよい。リソース情報プライベートコピーが空である場合、リソース情報プライベートコピーの初回更新であると決定し、リソース情報プライベートコピーが空ではない場合、リソース情報プライベートコピーの初回更新ではないと決定する。初回更新である場合、現在のリソース情報プライベートコピーが空であり、完全更新を行う必要があり、即ち、共通リソース情報の中から、仮想マシン情報を満たすターゲットホストマシン情報を選別し、ターゲットホストマシン情報をリソース情報プライベートコピーにコピーする必要がある。説明すべきものとして、直接に共通リソース情報をリソース情報プライベートコピーに完全コピーしてもよい。
ターゲットホストマシン情報をリソース情報プライベートコピーにコピーした後、完全更新タイムスタンプ及び増分更新タイムスタンプを記録する必要がある。いくつかの実施例では、スケジューリングサーバは、現在タイムスタンプを取得し、現在タイムスタンプを完全更新タイムスタンプ及び増分更新タイムスタンプとして設定する。例えば、現在タイムスタンプが2017年9月15日午前11:00である場合、完全更新タイムスタンプ及び増分更新タイムスタンプは、いずれも、2017年9月15日午前11:00となる。次に、完全更新タイムスタンプ及び増分更新タイムスタンプをリソース情報プライベートコピーに記憶して、今回の更新を完了する。
いくつかの実施例では、共通リソース情報の中から、仮想マシン情報を満たすターゲットホストマシン情報を選別し、ターゲットホストマシン情報を予め設けられたリソース情報プライベートコピーに追加することは、
リソース情報プライベートコピーの初回更新ではない場合、スケジューリングサーバが、現在タイムスタンプと最後の完全更新タイムスタンプとの時間差を取得するステップS11と、
スケジューリングサーバが、時間差が所定の完全更新閾値より大きいか否かを判断するステップS12と、
時間差が完全更新閾値より大きいとき、スケジューリングサーバが、共通リソース情報の中から、仮想マシン情報を満たす第1ターゲットホストマシン情報を選別するステップS13と、
スケジューリングサーバが、第1ターゲットホストマシン情報をリソース情報プライベートコピーにコピーするステップS14と、
スケジューリングサーバが、現在タイムスタンプを第1完全更新タイムスタンプ及び第1増分更新タイムスタンプとして設定するステップS15と、
スケジューリングサーバが、第1完全更新タイムスタンプ及び第1増分更新タイムスタンプをリソース情報プライベートコピーに記憶するステップS16と、を含む。
具体的には、ステップS11において、リソース情報プライベートコピーの初回更新ではない場合、スケジューリングサーバは、現在タイムスタンプと最後の完全更新タイムスタンプとの時間差を取得する。ここで、最後の完全更新タイムスタンプは、現在タイムスタンプより前の最後に記録された完全更新タイムスタンプである。
次に、ステップS12において、スケジューリングサーバは、時間差が所定の完全更新閾値より大きいか否かを判断する。この完全更新閾値は、実際の必要に応じて、柔軟的に設定されてもよいが、具体的な値がここで限定されない。例えば、完全更新頻度を低くするために、完全更新閾値に大きな値を設定してもよい。
ステップS13において、時間差が完全更新閾値より大きいとき、スケジューリングサーバは、共通リソース情報の中から、仮想マシン情報を満たす第1ターゲットホストマシン情報を選別する。完全更新を行うために、スケジューリングサーバは、ステップS14を実行して、第1ターゲットホストマシン情報をリソース情報プライベートコピーにコピーしてもよい。説明すべきものとして、現在の共通リソース情報をリソース情報プライベートコピーに完全コピーしてもよい。
次に、ステップS15において、スケジューリングサーバは、第1完全更新タイムスタンプ及び第1増分更新タイムスタンプを記録することにより、完全更新タイムスタンプ及び増分更新タイムスタンプを正確に記録する。いくつかの実施例では、現在タイムスタンプを第1完全更新タイムスタンプ及び第1増分更新タイムスタンプとして設定してもよい。例えば、現在タイムスタンプが2017年9月16日午前8:00である場合、完全更新タイムスタンプ及び増分更新タイムスタンプは、いずれも、2017年9月16日午前8:00となる。次に、ステップS16において、第1完全更新タイムスタンプ及び第1増分更新タイムスタンプをリソース情報プライベートコピーに記憶して、今回の更新を完了する。
さらに、ステップS12において、時間差が所定の完全更新閾値より大きいか否かを判断した後、
スケジューリングサーバが、時間差が完全更新閾値以下であるとき、共通リソース情報のうち、更新があってかつ更新タイムスタンプが最後の増分更新タイムスタンプより大きいホストマシン情報を取得するステップS17と、
スケジューリングサーバが、ホストマシン情報の中から、仮想マシン情報を満たす第2ターゲットホストマシン情報を取得するステップS18と、
スケジューリングサーバが、第2ターゲットホストマシン情報をリソース情報プライベートコピーに追加するステップS19と、
スケジューリングサーバが、現在タイムスタンプを第2増分更新タイムスタンプとして設定するステップS20と、
スケジューリングサーバが、第2増分更新タイムスタンプをリソース情報プライベートコピーに記憶するステップS21と、を実行してもよい。
クラウドコンピューティングシステムのホストマシンの規模が大きく、例えば、ホストマシンの規模は10000程度であるが、スケジューリングサーバは100程度である。このため、リソース情報プライベートコピーを更新するたびに、完全更新を行うと、即ち、共通リソース情報をリソース情報プライベートコピーに完全コピーすると、時間がかかる。更新にかかる時間を短縮するために、リソース情報の増分更新を行い、即ち、共通リソース情報のうち一部のリソース情報をリソース情報プライベートコピーに追加してもよい。
具体的には、共通リソース情報におけるホストマシン情報が更新されるたびに、更新タイムスタンプを記録することにより、正確な更新日時を得る。スケジューリングサーバは、現在タイムスタンプと最後の完全更新タイムスタンプとの時間差を取得した後、時間差が完全更新閾値以下であるとき、共通リソース情報のうち、更新があったホストマシン情報を取得し、各ホストマシン情報が更新された更新タイムスタンプを取得し、次に、更新があったホストマシン情報の中から、更新タイムスタンプが最後の増分更新タイムスタンプより大きいホストマシン情報を選別する。即ち、最後の増分更新タイムスタンプに基づいて、共通リソース情報の中から、更新タイムスタンプが最後の増分更新タイムスタンプより大きいすべてのホストマシン情報を検索する。この最後の増分更新タイムスタンプは、現在タイムスタンプより前の最後の増分更新タイムスタンプである。
共通リソース情報のうち、更新があってかつ更新タイムスタンプが最後の増分更新タイムスタンプより大きいホストマシン情報が得られた後、該ホストマシン情報に対して選別を行って、ホストマシン情報の中から、仮想マシン情報を満たす第2ターゲットホストマシン情報を取得し、第2ターゲットホストマシン情報をリソース情報プライベートコピーに追加する。
次に、第2増分更新タイムスタンプを記録することにより、増分更新タイムスタンプを正確に記録する。即ち、現在タイムスタンプを第2増分更新タイムスタンプとして設定し、第2増分更新タイムスタンプをリソース情報プライベートコピーに記憶して、今回の更新を完了する。リソース情報プライベートコピーは、実質的に、メモリ内で実行されるバッファである。ほとんどの場合、スケジューリングサーバが増分更新を行うだけでよく、更新データ量も、かかる時間も少ない。いくつかの実施例では、今回の増分更新の前にオフラインになっているホストマシンも、リソース情報プライベートコピーから削除される。
説明すべきものとして、上記第1ターゲットホストマシン情報、第2ターゲットホストマシン情報、第1完全更新タイムスタンプ、第1増分更新タイムスタンプ、及び第2増分更新タイムスタンプの「第1」及び「第2」は、現れたターゲットホストマシン情報、増分更新タイムスタンプ、又は完全更新タイムスタンプを区別するためのものにすぎず、それらの重要度への限定を表すものではない。
ステップ104で、スケジューリングサーバは、リソース情報プライベートコピーに基づいて、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得する。
リソース情報プライベートコピーが更新された後、スケジューリングサーバは、リソース情報プライベートコピーを基に、作成する仮想マシンに対して、ホストマシンを選別する。仮想マシン情報におけるリソース要件と、リソース情報プライベートコピーにおけるホストマシン情報とに基づいて、リソース情報プライベートコピーにおけるホストマシン集合をフィルタリングし、条件に合致するホストマシンを保持し、条件に合致しないホストマシンを除外することにより、少なくとも1つの候補ホストマシンを得てもよい。
いくつかの実施例では、スケジューリングサーバは、仮想マシン情報に基づいて、ホストマシン情報に応じて構築された直列フィルターに従って、複数のホストマシンに対して相応のフィルタリングを行うように各フィルターを制御することにより、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを得てもよい。
いくつかの実施例では、スケジューリングサーバは、各候補ホストマシンから、作成する前記仮想マシンのリソース要件を差し引いて、前記各候補ホストマシンの残りリソースを得、前記各候補ホストマシンのうち1つの候補ホストマシンの前記残りリソースのコミットが成功するまで、前記各候補ホストマシンの残りリソースを前記共通リソース情報へコミットしてもよい。各候補ホストマシンのうち1つの候補ホストマシンに対応する残りリソースのコミットが成功すると、コミットに成功した前記候補ホストマシンをターゲットホストマシンとして設定する。
ホストマシン情報に応じて、直列フィルタリングモデルを構築することができる。この直列フィルタリングモデルには、直列接続された複数のフィルターが含まれる。各フィルターそれぞれは、1つのフィルタリング機能を担う。各フィルターは、仮想マシン情報に基づいて相応の判断を行ってから、相応のフィルタリングを実行する。例えば、直列接続された1番目のフィルターは、仮想マシンに必要なCPU、メモリ、及びディスクリソースなどのリソース要件に基づいて、該リソース要件を満たさないホストマシンをフィルタリングして除外し、該リソース要件を満たすホストマシンのみを保持することを担い、直列接続された2番目のフィルターは、SSDをサポートするホストマシン、又はSSDをサポートしないホストマシンをフィルタリングして除外することを担い、リソース要件において、ホストマシンがSSDをサポートすることが要求される場合、2番目のフィルターは、該リソース要件に基づいて、SSDをサポートしないホストマシンをフィルタリングして除外し、SSDをサポートするホストマシンを保持する。
理解できるように、他のフィルターの機能は、該フィルターの機能を参照して理解すればよい。但し、他のフィルターは、他のフィルタリング機能を担う。具体的なフィルタリングモデルにおける各フィルターの機能は、作成する仮想マシンのリソース要件に応じて設定されてもよいが、具体的な内容がここで限定されない。
ステップ105で、スケジューリングサーバは、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成する。
少なくとも1つの候補ホストマシンが得られた後、スケジューリングサーバは、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを決定してもよい。ターゲットホストマシンの選択は、ランダムに選択することであってもよい。もちろん、合致度が最も良いターゲットホストマシンを選択するために、複数のホストマシンをフィルタリングして少なくとも1つの候補ホストマシンが得られた後、各候補ホストマシンそれぞれの各次元の優先度値を決定し、優先度値に従って少なくとも1つの候補ホストマシンをランキングしてもよい。
いくつかの実施形態では、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得することは、
スケジューリングサーバが、少なくとも1つの候補ホストマシンのそれぞれの各次元の優先度値を決定するステップS31と、
スケジューリングサーバが、各次元の優先度値の高い順にランキングを行って、候補ホストマシンリストを生成するステップS32と、
スケジューリングサーバが、候補ホストマシンリストの各候補ホストマシンの順序で、逐一、各候補ホストマシンから、作成する仮想マシンのリソース要件を差し引いて、残りリソースを得、リソース要件が、仮想マシンに対応する仮想マシン情報に含まれるステップS33と、
スケジューリングサーバが、残りリソースを共通リソース情報へコミットするステップS34と、
ある候補ホストマシンに対応する残りリソースのコミットが成功すると、スケジューリングサーバが、コミットに成功した候補ホストマシンをターゲットホストマシンとして設定するステップS35と、を含んでもよい。
具体的には、まず、各ホストマシンそれぞれの複数次元の優先度値を計算する。各次元の優先度は、プライベートネットワーク優先度(vpcPrio)、並行タスク優先度(taskPrio)、履歴エラー優先度(errorPrio)、非アフィニティ優先度(affinityPrio)、フリー優先度(freePrio)、イメージキャッシュ優先度(imgPrio)、及び断片化率優先度(fragmentPrio)などを含んでもよい。
ここで、プライベートネットワーク優先度値について、vpcPrioの値が小さいほど、優先度が高くなる。各ホストマシン毎に、プライベートネットワーク優先度値を決定してもよい。例えば、プライベートネットワークをサポートするホストマシンのvpcPrioの値を0にして、プライベートネットワークをサポートしないホストマシンのvpcPrioの値を1にしてもよい。或いは、プライベートネットワークをサポートするホストマシンのvpcPrioの値を1にして、プライベートネットワークをサポートしないホストマシンのvpcPrioの値を0にするなどにしてもよい。説明の便宜上、本願の実施例では、すべて、プライベートネットワークをサポートするホストマシンのvpcPrioの値を0にして、プライベートネットワークをサポートしないホストマシンのvpcPrioの値を1にする場合を例として説明する。
プライベートネットワークは、IPアドレスが物理的なネットワークトポロジに依存せず、将来に移行がより容易である。プライベートネットワーク優先度は、プライベートネットワークをサポートするホストマシンに優先的に仮想マシンを配置して、将来の移行をより便利で柔軟にすることを役割とする。
並行タスク優先度について、taskPrioの値が小さいほど、優先度が高くなる。各ホストマシン毎に、並行タスク優先度を決定してもよい。ホストマシン上の現在のタスク数を判断し、タスク数が所定閾値より小さい場合、並行タスク優先度の値を0にし、タスク数が所定閾値より小さくない場合、並行タスク優先度の値を現在のタスク数にする。例えば、所定閾値はデフォルトで3である。もちろん、該所定閾値は、実際の必要に応じて、柔軟的に設定されてもよい。
ホストマシン上の並行タスクが同時に実行され、並行性が高すぎると、仮想マシンの作成が遅くなり、ひいては失敗する可能性がある。並行タスク優先度は、並行タスク数がより低いホストマシンに優先的に仮想マシンを配置して、仮想マシンの作成の成功率及びリアルタイム性を確保することを役割とする。
履歴エラー優先度について、errorPrioの値が小さいほど、優先度が高くなる。各ホストマシン毎に、履歴エラー優先度を計算してもよい。ホストマシンの最近の期間(例えば、デフォルトで24時間)内の履歴エラー数を判断し、履歴エラー数がエラー閾値より小さい場合、履歴エラー優先度の値を0にし、履歴エラー数がエラー閾値より小さくない場合、履歴エラー優先度の値を履歴エラー数にする。例えば、エラー閾値はデフォルトで5であってもよい。エラー閾値は、実際の必要に応じて、柔軟的に設定されてもよい。
短時間でエラーが複数回発生したホストマシンには、何らかの障害が発生した可能性があり、障害を処理する前に、該ホストマシンに持続的に仮想マシンを配置すると、仮想マシンの作成タスクが失敗する可能性があり、成功率を低下させる。履歴エラー優先度は、エラーが多すぎないホストマシンに優先的に仮想マシンを配置して、仮想マシンの作成の成功率を向上させることを役割とする。
非アフィニティ優先度について、affinityPrioの値が小さいほど、優先度が高くなる。各ホストマシン毎に、非アフィニティ優先度を計算してもよい。仮想マシンのユーザの該ホストマシン上の既存の仮想マシンの数を判断し、仮想マシンの数がアフィニティ閾値より小さい場合、非アフィニティ優先度の値を0にし、仮想マシンの数がアフィニティ閾値より小さくない場合、非アフィニティ優先度の値を既存の仮想マシンの数にする。例えば、アフィニティ閾値は3である。もちろん、アフィニティ閾値は、実際の必要に応じて、柔軟的に設定されてもよい。
大規模分散システムでは、エラーを完全に回避することがほぼ不可能である。あるユーザの仮想マシンが1つまたはいくつかのホストマシンに集中している場合、これらのホストマシンに障害が発生すると、これらのホストマシン上のすべての仮想マシンが影響を受け、該ユーザーのアプリケーションの全体的な可用性に深刻な影響を及ぼす。非アフィニティ優先度は、分散ディザスタリカバリのために、同一のユーザの仮想マシンを異なるホストマシンに広く分散させ、単一のホストマシンの障害によるアプリケーションの全体的な可用性への影響が制限され、さらにユーザーのアプリケーションの安定性及び可用性を向上させることを役割とする。
フリー優先度について、freePrioの値が小さいほど、優先度が高くなる。例えば、各ホストマシンが完全に空いているか否かを判断し、完全に空いている場合、フリー優先度の値を0にし、完全に空いているのではない場合、フリー優先度の値を1にしてもよい。或いは、完全に空いている場合、フリー優先度の値を1にし、完全に空いているのではない場合、フリー優先度の値を0にするなどにしてもよい。説明の便宜上、本願の実施例では、完全に空いている場合、フリー優先度の値を0にし、完全に空いているのではない場合、フリー優先度の値を1にすることを例として説明する。
フリー優先度は、空いているホストマシンを保護し、空いていないホストマシンに優先的に仮想マシンを配置して、空いていないホストマシン上のリソースを十分に利用し、リソースの利用率を向上させることを役割とする。
イメージキャッシュ優先度について、imgPrioの値が小さいほど、優先度が高くなる。候補ホストマシンリストを走査し、各ホストマシンには仮想マシンに必要なイメージファイルがあるか否かを判断し、例えば、イメージファイルがある場合、イメージキャッシュ優先度の値を0にし、イメージファイルがない場合、イメージキャッシュ優先度の値を1にしてもよい。
イメージキャッシュ優先度は、仮想マシンイメージが記憶されたホストマシンに優先的に仮想マシンを配置することにより、実際に仮想マシンを作成する際にイメージのダウンロードを省くことを可能にし、作成時間を節約し、仮想マシンの作成プロセスのリアルタイム性を向上させることを役割とする。
断片化率優先度について、fragmentPrioの値が小さいほど、優先度が高くなる。各ホストマシン毎に、断片化率優先度を計算してもよい。CPU及びメモリの2次元のリソースに基づいて、優先度を計算する。デフォルトでは、断片化率優先度は、CPUの断片化率にメモリの断片化率を掛けたものに等しい。
断片化率優先度は、ホストマシンのリソースを十分に利用し、リソースの断片化率を低下させ、さらにリソース利用率を向上させ、運用コストを削減することを役割とする。
各候補ホストマシンそれぞれの各次元の優先度値が決定された後、各次元の優先度値の高い順にホストマシンをランキングして、候補ホストマシンリストを得、候補ホストマシンリストから、合致度が最も高い1つの候補ホストマシンをターゲットホストマシンとして決定する。具体的な決定過程は、
各次元の優先度の高い順に、同一の次元のホストマシンを優先度値の大きい順にランキングし、同一の次元の同じ優先度値のホストマシンに対して、次の次元の優先度値に従ってランキングを行うことにより、優先度の高い順にランキングされた候補ホストマシンリストを得る、ことを含んでもよい。
候補ホストマシンがランキングされた後、第1位にランキングされた候補ホストマシンが最適であり、この最適な候補ホストマシンに他の作成タスクが存在する可能性があるため、必ずしも作成の成功を保証できず、リソースの差し引きを模擬するような方式でターゲットホストマシンを決定する必要がある。
ターゲットホストマシンを決定する過程では、まず、ランキングされた候補ホストマシンリストの各候補ホストマシンの順序で、逐一、各候補ホストマシンから、作成する仮想マシンのリソース要件を差し引いて、各候補ホストマシンに対応する残りリソースをそれぞれ得、ホストマシンに対してリソースの差し引きを模擬することを完了する。仮想マシンのリソース要件は、仮想マシンに対応する仮想マシン情報に含まれる。即ち、ランキングされた候補ホストマシンの降順に従って、第1位にランキングされた候補ホストマシンから始めて、逐一、各候補ホストマシンから、作成する仮想マシンのリソース要件を差し引き、ある候補ホストマシンからの差し引きが成功すると、差し引きに成功した候補ホストマシンをターゲットホストマシンとする。
ランキング順序は、予め設定されてもよい。例えば、デフォルトのランキング基準、即ち優先度の高い順は、プライベートネットワーク優先度(vpcPrio)、並行タスク優先度(taskPrio)、履歴エラー優先度(errorPrio)、非アフィニティ優先度(affinityPrio)、フリー優先度(freePrio)、イメージキャッシュ優先度(imgPrio)、及び断片化率優先度(fragmentPrio)であってもよい。ランキング基準は、デフォルト基準範囲内で選択されてもよく、順序は、実際の必要に応じて、柔軟的に調整して設定されてもよい。
次に、候補ホストマシンの残りリソースが得られた後、残りリソースを共通リソース情報へコミットし、ある候補ホストマシンに対応する残りリソースのコミットが成功すると、コミットに成功した候補ホストマシンをターゲットホストマシンとして設定する。候補ホストマシンの残りリソースを、各ホストマシンの残りリソースデータをメンテナンスするためのデータベースに書き込み、書き込みが成功すると、書き込みに成功した候補ホストマシンをターゲットホストマシンとするようにしてもよい。
ターゲットホストマシンが決定された後、該ターゲットホストマシン上に仮想マシンを作成することが可能になる。いくつかの実施例では、仮想マシンの作成には、ターゲットホストマシンのリソースを消費する必要があるため、リソース情報プライベートコピーにおけるホストマシン情報を更新してもよいし、クラウドコンピューティングシステムに共通リソース情報を更新するよう通知してもよい。候補ホストマシンに対応する残りリソースのコミットが失敗した場合は、スケジューリング競合、即ち、同一のホストマシンが複数のリソーススケジューリングプロセスによって同時に選択されることが発生した可能性があることを表す。この場合、コミット回数が回数閾値を超えるか否かを判断し、コミット回数が回数閾値を超えていないとき、該候補ホストマシンのホストマシン情報を再取得し、該候補ホストマシンから、作成する仮想マシンのリソース要件を差し引いて、残りリソースを再び得る。次に、再び得られた残りリソースを共通リソース情報へ再コミットする。コミット回数が回数閾値を超えたとき、候補ホストマシンリストから、次の候補ホストマシンを取得して、リソースの差し引きの模擬を行う。
説明すべきものとして、1番目のホストマシンからの差し引きが成功した場合、2番目のホストマシンに対して差し引き処理を行う必要がなく、直接に1番目のホストマシンをターゲットホストマシンとして決定してもよい。1番目のホストマシンからの差し引きが成功しない場合、2番目のホストマシンに対して差し引き処理を行い、あるホストマシンからの差し引きが成功するまで繰り返す必要がある。
さらに、候補ホストマシンリストの各候補ホストマシンの順序で、逐一、各候補ホストマシンから、作成する仮想マシンのリソース要件を差し引いて、残りリソースを得る前に、上記方法は、候補ホストマシンリストのランキングの上位所定数の候補ホストマシンをリランキングして、候補ホストマシンターゲットリストを生成する、ことを含んでもよい。
候補ホストマシンリストの各候補ホストマシンの順序で、逐一、各候補ホストマシンから、作成する仮想マシンのリソース要件を差し引いて、残りリソースを得ることは、候補ホストマシンターゲットリストの各候補ホストマシンの順序で、逐一、各候補ホストマシンから、作成する仮想マシンのリソース要件を差し引いて、残りリソースを得る、ことを含む。
ここで、所定数は、実際の必要に応じて、柔軟的に設定されてもよい。候補ホストマシンリストのランキングの上位所定数の候補ホストマシンをリランキングすることは、ランダムにリランキングすることであってもよいし、所定の規則に従ってリランキングすることであってもよいが、具体的なリランキング方式がここで限定されない。候補ホストマシンリストのランキングの上位所定数の候補ホストマシンをリランキングすることは、リランキングのために、候補ホストマシンリストの先頭k(kは所定数)個の候補ホストマシンをランダムにシャッフルして、候補ホストマシンターゲットリストを得ることで、並行シナリオで複数のリソーススケジューリングプロセスが同じターゲットホストマシンを選択することを防止し、スケジューリング競合を効果的に回避することが可能になる、ことを目的とする。
上記から分かるように、本願の実施例では、作成する仮想マシンに対応する仮想マシン情報を取得し、共通リソース情報を取得し、該共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれ、次に、共通リソース情報及び仮想マシン情報に基づいて、予め設けられたリソース情報プライベートコピーを更新し、該リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれ、最後に、リソース情報プライベートコピーに基づいて、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得し、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成する。この構成によれば、リソーススケジューリングを行う前に、リソース情報プライベートコピーを適時に更新することが可能になり、リソース情報プライベートコピーと共通リソース情報との同期性が保証され、リソーススケジューリングの結果が良くなるとともに、リソーススケジューリングを行う際に待つ必要がなく、リソーススケジューリングの効率が向上する。
上記の実施例で説明した方法について、以下、例を挙げて、さらに詳しく説明する。
スケジューラを例にすると、仮想マシン作成要求が複数ある場合、メッセージキューには、各仮想マシン作成要求に対応するメッセージが記憶され、複数のスケジューラは、並行的に、メッセージキューのメッセージから仮想マシン作成要求を抽出し、仮想マシン作成要求に付けられている仮想マシン情報に基づいて、各仮想マシン作成要求に対して適当なホストマシンを選択し、ホストマシン上に対応の仮想マシンを作成する、ことを実行できる。複数のスケジューラは、並行的にリソーススケジューリングを行うため、並行的に、異なる仮想マシンに対してホストマシンを選択できる。これにより、クラウドコンピューティングシステムのスループット及び並行能力を向上させ、スケジューラがシステム全体の性能のボトルネックとなることを回避することができる。
図3を参照されたい。図3は、本願の実施例で提供されたリソーススケジューリング方法における複数のスケジューラが並行的にリソーススケジューリングを行うフローの模式図である。クラウドコンピューティングシステムには、3つのスケジューラ及び3つのホストマシンが含まれると仮定する。もちろん、クラウドコンピューティングシステムに3つのスケジューラ及び3つのホストマシンのみが含まれることは不可能である。本実施例は、挙げられる例の説明の便宜のためにすぎず、スケジューラ及びホストマシンの数への限定と理解されるべきではない。しかしながら、何個のスケジューラ及び何個のホストマシンがあっても、リソーススケジューリング過程は、類似するものであり、この例に従って理解すればよい。
ここで、該方法のフローは、下記のステップを含んでもよい。
201で、端末は、仮想マシン情報が付けられている仮想マシン作成要求をクラウドコンピューティングシステムの受信器に送信する。
クラウドコンピューティングシステムのデータセンターの規模の継続的な拡大に伴い、ホストマシンの種類及び数がますます多くなり、リソーススケジューリングのロジックがますます複雑になる。また、サービス要件の急速な成長に伴い、単位時間で処理する必要がある仮想マシン作成要求が急速に増加することで、リソーススケジューリングの応答遅延がさらに増加する。従来のリソーススケジューリング方式の高い応答遅延や低いスループットなどの問題を解決するために、本実施例では、複数のスケジューラが並行的にリソーススケジューリングを行う。
まず、端末は、仮想マシン情報が付けられている仮想マシン作成要求をクラウドコンピューティングシステムの受信器に送信する。この端末は、仮想マシンの作成を担うユーザが使用する端末機器であってもよい。この仮想マシン情報は、上記で言及された仮想マシン情報と類似し、ここで説明を省略する。
202で、受信器は、受信された仮想マシン作成要求をメッセージにカプセル化し、メッセージをメッセージキューに記憶する。
受信器自身によってメッセージキューがメンテナンスされ、受信器は、仮想マシン作成要求を受信すると、仮想マシン作成要求をメッセージにカプセル化する。このメッセージのフォーマットは、実際の必要に応じて、柔軟的に設定されてもよく、例えば、key−value又はjsonのメッセージフォーマットなどであってもよい。次に、作成する仮想マシンに対応する仮想マシン情報をメッセージキューからスケジューラが取り出せるように、メッセージをメッセージキューに記憶する。受信器によって一定の時間帯で受信された仮想マシン作成要求が多い場合、図4に示すように、メッセージキューには、複数のメッセージが記憶されてもよい。図4のメッセージキューには、メッセージVM1〜メッセージVMnが記憶されている。ここで、nは正整数であり、かつn>1である。
203で、スケジューラ1は仮想マシン情報1を取得する。
204で、スケジューラ2は仮想マシン情報2を取得する。
205で、スケジューラ3は仮想マシン情報3を取得する。
説明すべきものとして、ステップ203〜ステップ205の実行順序は、同時実行であってもよいし、ステップ203〜ステップ205の順次実行であってもよいし、最初にステップ205、次にステップ203、最後にステップ204を実行するか、最初にステップ204、次にステップ205、最後にステップ203を実行するなどであってもよいが、具体的なステップの実行順序がここで限定されない。
スケジューラは、リソーススケジューリングを実行するコンポーネントとして、仮想マシンに対して適当なホストマシンを選択する。スケジューラが関数ブラックボックスと見なされる場合、その入力は、ホストマシン情報及び仮想マシン情報であってもよく、その出力は、仮想マシンIDとホストマシンIDとのマッチングペア、即ち、<VM ID,HOST ID>であってもよい。
スケジューラ1、スケジューラ2、及びスケジューラ3は、並行的にリソーススケジューリングを行って、対応の仮想マシン情報をそれぞれ取得することができ、システムの並行性及びスループットを向上させることができる。
ここで、スケジューラ1が仮想マシン情報1を取得する方式は、スケジューラ1が仮想マシン情報1取得要求を受信器に送信し、受信器が、受信された、スケジューラ1から送信された仮想マシン情報1取得要求に応じて、仮想マシン情報1が付けられているメッセージ1をスケジューラ1に送信し、スケジューラ1が、受信されたメッセージ1から仮想マシン情報1を抽出できるような方式1と、スケジューラ1が、メッセージキューに記憶されたメッセージを直接に読み取り、その中から仮想マシン情報1を取得するような方式2と、を含んでもよい。
説明すべきものとして、スケジューラ2が仮想マシン情報2を取得する方式、及びスケジューラ3が仮想マシン情報3を取得する方式は、スケジューラ1が仮想マシン情報1を取得する方式と類似し、ここで説明を省略する。
206で、スケジューラ1は共通リソース情報を取得する。
207で、スケジューラ2は共通リソース情報を取得する。
208で、スケジューラ3は共通リソース情報を取得する。
説明すべきものとして、ステップ206〜ステップ208の実行順序は、同時実行であってもよいし、ステップ206〜ステップ208の順次実行であってもよいし、最初にステップ208、次にステップ206、最後にステップ207を実行するなどであってもよいが、具体的なステップの実行順序がここで限定されない。
クラウドコンピューティングシステムのリソースマネージャーは、共通リソース情報をメンテナンスし、該共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれる。ホストマシンがクラウドコンピューティングシステムに入るには、ホストマシン導入プロセスによって必要な初期化を行う必要がある。ホストマシンは、そのホストマシン情報をリソースマネージャーに報告し、リソースマネージャーは、ホストマシン情報を共通リソース情報に記憶することができる。ホストマシン情報の更新があった場合、リソースマネージャーは、共通リソース情報を適時に更新することもできる。
ここで、スケジューラ1が共通リソース情報を取得する方式は、スケジューラ1が共通リソース情報取得要求をリソースマネージャーに送信し、リソースマネージャーが、受信された、スケジューラ1から送信された共通リソース情報取得要求に応じて、対応の共通リソース情報をスケジューラ1に送信するような方式1と、スケジューラ1が、共通リソース情報を記憶したデータベースを直接に読み取り、その中から共通リソース情報を取得するような方式2と、を含んでもよい。
説明すべきものとして、スケジューラ2が共通リソース情報を取得する方式、及びスケジューラ3が共通リソース情報を取得する方式は、スケジューラ1が共通リソース情報を取得する方式と類似し、ここで説明を省略する。スケジューラ1、スケジューラ2、及びスケジューラ3は、並行的に又は所定時間間隔で、共通リソース情報を取得してもよい。
209で、スケジューラ1は、受信された共通リソース情報及び仮想マシン情報1に基づいて、自身でメンテナンスされるリソース情報プライベートコピー1を更新する。
210で、スケジューラ2は、受信された共通リソース情報及び仮想マシン情報2に基づいて、自身でメンテナンスされるリソース情報プライベートコピー2を更新する。
211で、スケジューラ3は、受信された共通リソース情報及び仮想マシン情報3に基づいて、自身でメンテナンスされるリソース情報プライベートコピー3を更新する。
説明すべきものとして、ステップ209〜ステップ211の実行順序は、実際の状況に応じて、柔軟的に設定されてもよいが、具体的なステップの実行順序がここで限定されない。
スケジューラ1自身によってリソース情報プライベートコピー1がメンテナンスされ、スケジューラ2自身によってリソース情報プライベートコピー2がメンテナンスされ、スケジューラ3自身によってリソース情報プライベートコピー3がメンテナンスされる。リソース情報プライベートコピー1、リソース情報プライベートコピー2、及びリソース情報プライベートコピー3のそれぞれには、所定のホストマシンに対応するホストマシン情報が含まれる。この所定のホストマシンは、クラウドコンピューティングシステムのすべてのホストマシンの一部又は全部であってもよい。共通リソース情報に基づいてリソース情報プライベートコピーを更新することにより、リソース情報の一致性及び情報の正確さが保証される。
さらに、図6に示すように、スケジューラ1が、受信された共通リソース情報及び仮想マシン情報1に基づいて、自身でメンテナンスされるリソース情報プライベートコピー1を更新することは、下記のステップを含んでもよい。
301で、スケジューラ1は、リソース情報プライベートコピーの初回更新であるか否かを判断し、リソース情報プライベートコピーの初回更新である場合、ステップ302〜ステップ304を順次に実行し、リソース情報プライベートコピーの初回更新ではない場合、ステップ305を実行する。
302で、スケジューラ1は、共通リソース情報の中から、仮想マシン情報を満たすターゲットホストマシン情報を選別する。
303で、スケジューラ1は、ターゲットホストマシン情報をリソース情報プライベートコピーにコピーする。
304で、スケジューラ1は、完全更新タイムスタンプ及び増分更新タイムスタンプを記録する。
スケジューラ1は、現在タイムスタンプを取得し、現在タイムスタンプを完全更新タイムスタンプ及び増分更新タイムスタンプとして設定し、完全更新タイムスタンプ及び増分更新タイムスタンプをリソース情報プライベートコピーに記憶してもよい。
305で、スケジューラ1は、現在タイムスタンプと最後の完全更新タイムスタンプとの時間差を取得する。
306で、スケジューラ1は、時間差が所定の完全更新閾値より大きいか否かを判断し、時間差が所定の完全更新閾値より大きいとき、ステップ307〜ステップ309を順次に実行し、時間差が所定の完全更新閾値より大きくないとき、ステップ310を実行する。
307で、スケジューラ1は、共通リソース情報の中から、仮想マシン情報を満たす第1ターゲットホストマシン情報を選別する。
308で、スケジューラ1は、第1ターゲットホストマシン情報をリソース情報プライベートコピーにコピーする。
309で、スケジューラ1は、第1完全更新タイムスタンプ及び第1増分更新タイムスタンプを記録する。
スケジューラ1は、現在タイムスタンプを第1完全更新タイムスタンプ及び第1増分更新タイムスタンプとして設定し、第1完全更新タイムスタンプ及び第1増分更新タイムスタンプをリソース情報プライベートコピーに記憶してもよい。
310で、スケジューラ1は、共通リソース情報のうち、更新があってかつ更新タイムスタンプが最後の増分更新タイムスタンプより大きいホストマシン情報を取得する。
311で、スケジューラ1は、ホストマシン情報の中から、仮想マシン情報を満たす第2ターゲットホストマシン情報を取得する。
312で、スケジューラ1は、第2ターゲットホストマシン情報をリソース情報プライベートコピーに追加する。
313で、スケジューラ1は、第2増分更新タイムスタンプを記録する。
スケジューラ1は、現在タイムスタンプを第2増分更新タイムスタンプとして設定し、第2増分更新タイムスタンプをリソース情報プライベートコピーに記憶してもよい。リソース情報同期化バッファリングメカニズムでは、リソース情報プライベートコピーの増分更新を行え、リソース情報同期化にかかる時間が著しく削減される。
スケジューラ2が、共通リソース情報及び仮想マシン情報2に基づいて、リソース情報プライベートコピー2を更新すること、及び、スケジューラ3が、共通リソース情報及び仮想マシン情報3に基づいて、リソース情報プライベートコピー3を更新することは、両者の更新方式がスケジューラ1の更新方式と類似し、ここで説明を省略する。
図4に示すように、スケジューラの数が限定されない場合、n(nは、1より大きい正整数)個のスケジューラは、並行的に、メッセージキューのメッセージから、仮想マシン情報を抽出し、共通リソース情報に基づいて、自身でメンテナンスされるリソース情報プライベートコピーをそれぞれ更新することができる。
212で、スケジューラ1は、リソース情報プライベートコピー1に基づいて、候補ホストマシンを決定し、候補ホストマシンの中からターゲットホストマシンAを決定する。
213で、スケジューラ2は、リソース情報プライベートコピー2に基づいて、候補ホストマシンを決定し、候補ホストマシンの中からターゲットホストマシンBを決定する。
214で、スケジューラ3は、リソース情報プライベートコピー3に基づいて、候補ホストマシンを決定し、候補ホストマシンの中からターゲットホストマシンCを決定する。
説明すべきものとして、ステップ212〜ステップ214の実行順序は、実際の状況に応じて、柔軟的に設定されてもよいが、具体的なステップの実行順序がここで限定されない。
スケジューラ1は、仮想マシン情報におけるリソース要件と、リソース情報プライベートコピーにおけるホストマシン情報とに基づいて、リソース情報プライベートコピーにおけるホストマシン集合をフィルタリングし、条件に合致するホストマシンを保持し、条件に合致しないホストマシンを除外することにより、少なくとも1つの候補ホストマシンを得てもよい。
いくつかの実施例では、スケジューラ1は、構築された直列フィルターに従って、複数のホストマシンに対して相応のフィルタリングを行うように各フィルターを制御することにより、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを得てもよい。例えば、8つのホストマシンの場合を例にすると、8つのホストマシンは、ホストマシン情報と、作成する仮想マシンの仮想マシン情報とに基づいてフィルタリングされ、フィルターAを通過する際に、フィルターAが、仮想マシンに必要なCPU、メモリ、及びディスクリソースなどの、ホストマシンにより提供可能なハードウェアリソース要件を満たさないホストマシンをフィルタリングして除外し、リソース要件に合致するホストマシンを保持することを担う場合、今回のフィルタリングにより、2つのホストマシンがフィルタリングされて除外される。残りの6つのホストマシンは、フィルターBに入る。フィルターBが、仮想マシン情報に基づいて、SSDをサポートしないホストマシンをフィルタリングして除外することを担う場合、フィルターBによるフィルタリングを経ると、もう1つのホストマシンがフィルタリングされて除外され、5つのホストマシンがまだ残っている。次に、他のフィルターを順次に通過する。他のフィルターは、クラウドディスクをサポートしないホストマシンをフィルタリングして除外することを担ったり、プライベートネットワークをサポートしないホストマシンをフィルタリングして除外することを担ったりしてもよい。最後にフィルターXに至る。フィルターXは、適合しない仮想化タイプのうち1つをフィルタリングして除外することを担う。例えば、ホストマシンの仮想化タイプがKVMである必要がある場合、仮想化タイプがXenであるホストマシンがフィルタリングされて除外される。フィルタリング終了後、それぞれ候補ホストマシンA、候補ホストマシンB、及び候補ホストマシンCである3つの候補ホストマシンが得られる。
さらに、図7に示すように、スケジューラ1は、少なくとも1つの候補ホストマシンが得られた後、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを決定してもよい。具体的な実行手順は、下記のステップを含んでもよい。
401で、スケジューラ1は、少なくとも1つの候補ホストマシンのそれぞれの各次元の優先度値を決定する。
各ホストマシンそれぞれの各次元の優先度値の計算方式は、上記実施例で言及された優先度値の計算方式と類似し、ここで説明を省略する。
例えば、それぞれ候補ホストマシンA、候補ホストマシンB、及び候補ホストマシンCである3つの候補ホストマシンが得られる場合、候補ホストマシンA、候補ホストマシンB、及び候補ホストマシンCの各次元の優先度値をそれぞれ計算してもよい。
402、スケジューラ1は、各次元の優先度値の高い順にランキングを行って、候補ホストマシンリストを生成する。
ここで、ランキング方式は、上記実施例で言及されたランキング方式と類似し、ここで説明を省略する。
例えば、スケジューラ1により生成された候補ホストマシンリスト1において、各候補ホストマシンが、優先度値の高い順に、候補ホストマシンA、候補ホストマシンB、及び候補ホストマシンCとランキングされる。
403で、スケジューラ1は、候補ホストマシンリストから、ランキング順に1つのホストマシンを取り出す。
例えば、スケジューラ1は、生成された候補ホストマシンリスト1から、候補ホストマシンAを取り出す。
404で、スケジューラ1は、仮想マシンのリソース要件に基づいて、差し引き後の該ホストマシンの残りリソースを計算する。
例えば、仮想マシンのリソース要件が8コア・8Gのリソースであり、候補ホストマシンAのホストマシン情報に10コア・10Gのリソースが含まれ、仮想マシンの作成に8コア・8Gのリソースを差し引く必要がある場合、差し引き後の候補ホストマシンAの残りリソースは、2コア・2Gのリソースとなる。
405で、スケジューラ1は、残りリソースを共通リソース情報へコミットする。
406で、スケジューラ1は、コミットが成功したか否かを判断し、コミットが成功した場合、ステップ407及びステップ408を順次に実行し、コミットが成功しなかった場合、ステップ409を実行する。
407で、スケジューラ1は、該ホストマシンをターゲットホストマシンとして決定する。
コミットが成功した場合は、共通リソース情報における残りリソースの値の修正が成功したことを表す。ある候補ホストマシンに対応する残りリソースのコミットが成功すると、コミットに成功した候補ホストマシンをターゲットホストマシンとして設定する。
408で、スケジューラ1は、リソース情報プライベートコピーを更新する。
即ち、スケジューラ1は、リソース情報プライベートコピー1を更新する。
409で、スケジューラ1は、コミット回数がスケジューリング競合閾値を超えるか否かを判断し、コミット回数がスケジューリング競合閾値を超えていないとき、ステップ410を実行し、コミット回数がスケジューリング競合閾値を超えたとき、ステップ411を実行する。
コミットが失敗した場合は、複数のスケジューラが並行的に同一のホストマシンに対してコミットを試みることに起因する可能性があり、このとき、1つのみのスケジューラによるコミットが成功可能であり、それ以外のスケジューラによる今回のコミットが失敗する。
該スケジューリング競合閾値は、実際の状況に応じて、柔軟的に設定されてもよい。いくつかの実施例では、該スケジューリング競合閾値は、3回〜8回の範囲に設定されてもよい。これにより、同一のホストマシン上に短時間で複数の仮想マシンを作成して、ホストマシンに過度の圧力をかけることを回避できる。
410で、スケジューラ1は、該ホストマシンのリソースデータを再取得して、ステップ404を実行する。
複数のスケジューラが並行して動作し、残りリソースのコミット時にスケジューリング競合が発生する可能性があるので、スケジューラは、ホストマシンの最新のリソースデータを検索して、再度の差し引きや残りリソースのコミットなどの処理を開始してもよい。同一のホストマシンに対するスケジューリング競合の回数が閾値を超えた場合、候補ホストマシンリストの次のホストマシン、即ち、2番目に良いホストマシンを選択する。これにより、スケジューリング競合のコストがより低くなり、スケジューリング競合の効果的な処理が実現される。
411で、スケジューラ1は、選択されていない候補ホストマシンがまだあるか否かを判断し、選択されていない候補ホストマシンがまだある場合、ステップ403を実行し、選択されていない候補ホストマシンがない場合、ステップ412を実行する。
説明すべきものとして、スケジューラ1は、候補ホストマシンリストのランキングの上位所定数の候補ホストマシンをリランキングして、候補ホストマシンターゲットリストを得、候補ホストマシンターゲットリストの各候補ホストマシンの順序でホストマシンを取り出し、仮想マシンのリソース要件に基づいて、差し引き後の該ホストマシンの残りリソースを計算してもよい。これにより、複数のスケジューラが並行的にリソーススケジューリングを行うシナリオで同じホストマシンを選択することを防止し、スケジューリング競合を効果的に回避することができる。
いくつかの実施例では、ある候補ホストマシンの残りリソースのコミットが失敗した場合、スケジューリングサーバは、該候補ホストマシンの残りリソースのコミット回数がスケジューリング競合閾値を超えるか否かを決定してもよい。
該候補ホストマシンの残りリソースのコミット回数が前記スケジューリング競合閾値を超えていないと決定されたとき、スケジューリングサーバは、該候補ホストマシンの最新のリソースデータを取得し、該候補ホストマシンに対応する前記残りリソースを再決定する。
該候補ホストマシンの残りリソースのコミット回数が前記スケジューリング競合閾値を超えたと決定されたとき、スケジューリングサーバは、候補ホストマシンリストの次の候補ホストマシンから、作成する前記仮想マシンのリソース要件を差し引いて、相応の残りリソースを得、前記相応の残りリソースをコミットしてもよい。
412で、スケジューラ1は、選択されていないホストマシンがないと決定する。
スケジューラ2が、リソース情報プライベートコピー2に基づいて、候補ホストマシンを決定し、候補ホストマシンの中からターゲットホストマシンBを決定すること、及び、スケジューラ3が、リソース情報プライベートコピー3に基づいて、候補ホストマシンを決定し、候補ホストマシンの中からターゲットホストマシンCを決定することは、両者の決定方式がスケジューラ1の決定方式と類似し、ここで説明を省略する。
215で、ターゲットホストマシンAが決定された後、スケジューラ1は、ホストマシンAに、仮想マシン1を作成する要求を送信する。
216で、ターゲットホストマシンBが決定された後、スケジューラ2は、ホストマシンBに、仮想マシン2を作成する要求を送信する。
217で、ターゲットホストマシンCが決定された後、スケジューラ3は、ホストマシンCに、仮想マシン3を作成する要求を送信する。
218で、ホストマシンAは、仮想マシン1を作成する要求を受信すると、仮想マシン1を作成する。
219で、ホストマシンBは、仮想マシン2を作成する要求を受信すると、仮想マシン2を作成する。
220で、ホストマシンCは、仮想マシン3を作成する要求を受信すると、仮想マシン3を作成する。
以下、例を挙げて説明する。図5に示すように、各スケジューラが並行的にリソーススケジューリングを行い、スケジューラ1で得られた候補ホストマシンリスト1において、各候補ホストマシンが従う優先度値の高い順は、候補ホストマシンA、候補ホストマシンB、及び候補ホストマシンCの順であり、スケジューラ2で得られた候補ホストマシンリスト2において、各候補ホストマシンが従う優先度値の高い順は、候補ホストマシンA、候補ホストマシンC、及び候補ホストマシンBの順であり、スケジューラ3で得られた候補ホストマシンリスト3において、各候補ホストマシンが従う優先度値の高い順は、候補ホストマシンB、候補ホストマシンA、及び候補ホストマシンCの順である、と仮定する。
この場合、スケジューラ1は、候補ホストマシンリスト1から、第1位にランキングされた候補ホストマシンAを取り出し、仮想マシン1のリソース要件に基づいて差し引き計算を行って、候補ホストマシンAの残りリソースを得、該残りリソースを共通リソース情報へコミットし、コミットが成功した場合、候補ホストマシンAをターゲットホストマシンとして決定することができる。スケジューラ1は、ホストマシンAに、仮想マシン1を作成する要求を送信し、ホストマシンAは、要求を受信すると、仮想マシン1を作成する。
スケジューラ2は、候補ホストマシンリスト2から、第1位にランキングされた候補ホストマシンAを取り出し、仮想マシン2のリソース要件に基づいて差し引き計算を行って、候補ホストマシンAの残りリソースを得、該残りリソースを共通リソース情報へコミットし、コミットが失敗して、かつコミット回数が閾値に達し、この場合、候補ホストマシンリスト2から、第2位にランキングされた候補ホストマシンCを取り出す必要があり、仮想マシン2のリソース要件に基づいて差し引き計算を行って、候補ホストマシンCの残りリソースを得、該残りリソースを共通リソース情報へコミットし、コミットが成功した場合、候補ホストマシンCをターゲットホストマシンとして決定することができる。スケジューラ2は、ホストマシンCに、仮想マシン2を作成する要求を送信し、ホストマシンCは、要求を受信すると、仮想マシン2を作成する。
スケジューラ3は、候補ホストマシンリスト3から、第1位にランキングされた候補ホストマシンBを取り出し、仮想マシン3のリソース要件に基づいて差し引き計算を行って、候補ホストマシンの残りリソースを得、該残りリソースを共通リソース情報へコミットし、コミットが成功した場合、候補ホストマシンBをターゲットホストマシンとして決定することができる。スケジューラ3は、ホストマシンBに、仮想マシン3を作成する要求を送信し、ホストマシンBは、要求を受信すると、仮想マシン3を作成する。
説明すべきものとして、図5は一例にすぎず、図5に示されるリソーススケジューリングシナリオは、本願の実施例の構成をより明確に説明するためのものであり、本願の実施例で提供された構成を限定するものではない。例えば、図5には、スケジューラ4などがさらに含まれてもよい。スケジューラ4で得られた候補ホストマシンリスト4において、各候補ホストマシンが従う優先度値の高い順は、候補ホストマシンY、候補ホストマシンX、及び候補ホストマシンDの順である。スケジューラ4は、候補ホストマシンリスト4から、第1位にランキングされた候補ホストマシンを取り出し、仮想マシンのリソース要件に基づいて差し引き計算を行って、候補ホストマシンYの残りリソースを得、該残りリソースを共通リソース情報へコミットし、コミットが成功した場合、スケジューラ4が候補ホストマシンY上に仮想マシン4を作成できると決定することができる。
上記から分かるように、本実施例では、複数のスケジューラは、並行的に、メッセージキューのメッセージから仮想マシン作成要求を抽出し、仮想マシン作成要求に付けられている仮想マシン情報に基づいて、各仮想マシン作成要求に対して適当なターゲットホストマシンを選択し、ターゲットホストマシン上に対応の仮想マシンを作成する、ことを実行できる。リソース情報のバッファリングメカニズムを設ける(共通リソース情報及びリソース情報プライベートコピーを設けることを含めて)ことにより、複数のスケジューラが並行的にリソーススケジューリングを行えることが実現され、リソーススケジューリングの並行度及びスループットを効果的に向上させ、スケジューリング遅延を低減させ、システム全体のスケーラビリティを向上させることができる。
本願の実施例で提供されたリソーススケジューリング方法をより良く実施するために、本願の実施例では、上記リソーススケジューリング方法に基づく装置も提供されている。ここで、用語の意味は、上記リソーススケジューリング方法における意味と同じであり、具体的な実現の詳細は、方法に係る実施例の説明を参照すればよい。
図8を参照されたい。図8は、本願の実施例で提供されたリソーススケジューリング装置の構成の模式図である。ここで、このリソーススケジューリング装置は、第1取得ユニット501、第2取得ユニット502、更新ユニット503、第3取得ユニット504、及び作成ユニット505などを含んでもよい。
ここで、第1取得ユニット501は、作成する仮想マシンに対応する仮想マシン情報を取得する。
例えば、第1取得ユニット501は、クラウドコンピューティングシステムに予め設けられたメッセージキューから、作成する仮想マシンに対応する仮想マシン情報を取得してもよい。ここで、仮想マシンとは、ソフトウェアでエミュレートされる、ハードウェアシステム機能を有しかつ隔離された環境で実行される完全なコンピュータシステムを指す。
メッセージキューのメッセージは、非同期タスクであってもよい。メッセージキューのメッセージは、メッセージキューを流れる。クラウドコンピューティングシステムの各コンポーネントは、生産者または消費者の身分を有する。生産者は、メッセージキューにメッセージを送信する。消費者は、メッセージキューからメッセージを受信する。例えば、クラウドコンピューティングシステムでは、受信器が生産者として、端末から送信された仮想マシン情報が付けられている仮想マシン作成要求を受信すると、仮想マシン情報をメッセージにカプセル化して、メッセージをメッセージキューに記憶し、これらの仮想マシン情報がメッセージキューに並んで第1取得ユニット501によるリソーススケジューリングを待ち、第1取得ユニット501が消費者として、メッセージキューから仮想マシン情報を抽出し、仮想マシン情報に対応する作成する仮想マシンに対してホストマシンを選択する。
仮想マシン情報には、作成する仮想マシンに必要なプロセッサ情報、メモリ情報、及びディスク情報など、並びに、作成する仮想マシンの、ソリッドステートドライブ、クラウドディスク、プライベートネットワーク、ネットワークカード、ルーター、ネットワーク構成、データセンター、ラック、ホストマシンの機種、ホストマシンの属するリソースプール、及び仮想マシンのタイプなどに対するリソース要件の少なくとも1つが含まれてもよい。理解できるように、仮想マシン情報のタイプは、実際の必要に応じて、柔軟的に設定されてもよいが、具体的な内容がここで限定されない。
第2取得ユニット502は、共通リソース情報を取得する。
ここで、共通リソース情報は、クラウドコンピューティングシステムに対して、データセンター全体のリソースデータを記憶・メンテナンスするためのものである。この共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれる。理解できるように、この共通リソース情報は、リソースマネージャーによってメンテナンスされてもよく、クラウドコンピューティングシステムの他の機器によってメンテナンスされてもよく、次に、第2取得ユニット502によって、共通リソース情報をメンテナンスする機器から取得されてもよい。例えば、この共通リソース情報がクラウドコンピューティングシステムのリソースマネージャーによってメンテナンスされる場合、第2取得ユニット502は、リソースマネージャーから、共通リソース情報を取得できる。説明の便宜上、本願の実施例では、すべて、共通リソース情報がリソースマネージャーによってメンテナンスされる場合を例として説明する。
説明すべきものとして、共通リソース情報は、クラウドコンピューティングシステム内でグローバルに一意であり、そのメンテナンス形式は、論理データテーブルであってもよい。例えば、データテーブルの各行のそれぞれは、1つのホストマシンを表し、データテーブルの各列は、ホストマシンに含まれる異なるタイプのリソースを表す。この異なるタイプのリソースは、ホストマシンのネットワーク間のインターネットプロトコル(IP:Internet Protocol)アドレス、利用可能な中央処理装置(CPU:Central Processing Unit)、利用可能なメモリ、及び利用可能なディスクなどを含んでもよい。メンテナンス過程では、共通リソース情報に対して、追加、読み取り、更新、又は削除などの処理を行うことができる。これらの処理は、データセンターのホストマシンリソースのオンライン化、変更、又はオフライン化などの過程に対応する。
ここで、ホストマシンとは、仮想マシンソフトウェアをインストールするための物理的なコンピュータを指す。1つのホストマシン上には、仮想マシンソフトウェアによって、1つ又は複数の仮想マシンを作成してもよい。
いくつかの実施例では、ホストマシン情報は、ホストマシン識別子、IPアドレス、機種、オペレーティングシステム名、カーネルバージョン、CPU型番、仮想化方式、論理領域番号、インターネットデータセンター番号、ホストマシン状態、クラウドディスクをサポートするか否か、ソリッドステートドライブ(SSD:Solid State Drives)をサポートするか否か、ネットワークバージョン、CPUノードリソースクォータ、利用可能なメモリリソース、及び利用可能なディスクリソースなどを含んでもよいが、具体的な内容がここで限定されない。
説明すべきものとして、ホストマシンがクラウドコンピューティングシステムに入るには、ホストマシン導入プロセスによって必要な初期化を行う必要がある。ホストマシンは、そのホストマシン情報をリソースマネージャーに報告し、リソースマネージャーは、ホストマシン情報を共通リソース情報に記憶してもよい。ホストマシンは、そのホストマシン情報をリソーススケジューリング装置に報告してもよい。リソーススケジューリング装置は、ホストマシン情報を予め設けられたリソース情報プライベートコピーに記憶してもよい。或いは、リソーススケジューリング装置は、リアルタイム又は所定時間間隔で、情報取得要求をリソースマネージャーに送信し、情報取得要求に応じてリソースマネージャーからフィードバックされた共通リソース情報を受信し、共通リソース情報に基づいてリソース情報プライベートコピーを更新する。或いは、共通リソース情報の更新があった場合、リソースマネージャーは、更新されたホストマシン情報をリソーススケジューリング装置に自発的に送信する。
更新ユニット503は、共通リソース情報及び仮想マシン情報に基づいて、予め設けられたリソース情報プライベートコピーを更新する。
リソーススケジューリング装置自身でメンテナンスされるリソース情報プライベートコピーのメンテナンス形式は、共通リソース情報のリソーススケジューリング装置のメモリにおけるバッファである。ここで、リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれる。該所定のホストマシンは、クラウドコンピューティングシステムのすべてのホストマシンの一部又は全部であってもよい。リソーススケジューリングの結果を良くするために、更新ユニット503は、リソーススケジューリングを行う前に、リソース情報プライベートコピーと共通リソース情報とを同期化する必要があり、共通リソース情報を取得し、共通リソース情報に基づいてリソース情報プライベートコピーを更新することにより、リソース情報プライベートコピーと共通リソース情報との一致性を保証してもよい。
更新時間を短縮するために、更新ユニット503は、共通リソース情報及び仮想マシン情報に基づいて、リソース情報プライベートコピーを更新してもよい。いくつかの実施形態では、図9に示すように、更新ユニット503は、共通リソース情報の中から、仮想マシン情報を満たすターゲットホストマシン情報を選別し、ターゲットホストマシン情報を予め設けられたリソース情報プライベートコピーに追加する更新サブユニット5031を含む。
いくつかの実施例では、更新サブユニット5031は、具体的に、リソース情報プライベートコピーの初回更新である場合、共通リソース情報の中から、仮想マシン情報を満たすターゲットホストマシン情報を選別し、ターゲットホストマシン情報をリソース情報プライベートコピーにコピーし、現在タイムスタンプを取得し、現在タイムスタンプを完全更新タイムスタンプ及び増分更新タイムスタンプとして設定し、完全更新タイムスタンプ及び増分更新タイムスタンプをリソース情報プライベートコピーに記憶する。
具体的には、まず、更新サブユニット5031は、リソース情報プライベートコピーの初回更新であるか否かを判断し、例えば、リソース情報プライベートコピーが空であるか否かを判断してもよい。リソース情報プライベートコピーが空である場合、リソース情報プライベートコピーの初回更新であると決定し、リソース情報プライベートコピーが空ではない場合、リソース情報プライベートコピーの初回更新ではないと決定する。初回更新である場合、現在のリソース情報プライベートコピーが空であり、完全更新を行う必要があり、即ち、共通リソース情報の中から、仮想マシン情報を満たすターゲットホストマシン情報を選別し、ターゲットホストマシン情報をリソース情報プライベートコピーにコピーする必要がある。説明すべきものとして、直接に共通リソース情報をリソース情報プライベートコピーに完全コピーしてもよい。
ターゲットホストマシン情報をリソース情報プライベートコピーにコピーした後、完全更新タイムスタンプ及び増分更新タイムスタンプを記録する必要がある。いくつかの実施例では、更新サブユニット5031は、現在タイムスタンプを取得し、現在タイムスタンプを完全更新タイムスタンプ及び増分更新タイムスタンプとして設定する。例えば、現在タイムスタンプが2017年9月15日午前11:00である場合、完全更新タイムスタンプ及び増分更新タイムスタンプは、いずれも、2017年9月15日午前11:00となる。次に、完全更新タイムスタンプ及び増分更新タイムスタンプをリソース情報プライベートコピーに記憶して、今回の更新を完了する。
いくつかの実施例では、更新サブユニット5031は、具体的に、リソース情報プライベートコピーの初回更新ではない場合、現在タイムスタンプと最後の完全更新タイムスタンプとの時間差を取得し、時間差が所定の完全更新閾値より大きいか否かを判断し、時間差が完全更新閾値より大きいとき、共通リソース情報の中から、仮想マシン情報を満たす第1ターゲットホストマシン情報を選別し、第1ターゲットホストマシン情報をリソース情報プライベートコピーにコピーし、現在タイムスタンプを第1完全更新タイムスタンプ及び第1増分更新タイムスタンプとして設定し、第1完全更新タイムスタンプ及び第1増分更新タイムスタンプをリソース情報プライベートコピーに記憶する。
具体的には、リソース情報プライベートコピーの初回更新ではない場合、更新サブユニット5031は、現在タイムスタンプと最後の完全更新タイムスタンプとの時間差を取得する。ここで、最後の完全更新タイムスタンプは、現在タイムスタンプより前の最後に記録された完全更新タイムスタンプである。
次に、更新サブユニット5031は、時間差が所定の完全更新閾値より大きいか否かを判断する。この完全更新閾値は、実際の必要に応じて、柔軟的に設定されてもよく、具体的な値がここで限定されない。例えば、完全更新頻度を低くするために、完全更新閾値に大きな値を設定してもよい。
時間差が完全更新閾値より大きいとき、完全更新を行い、即ち、共通リソース情報の中から、仮想マシン情報を満たす第1ターゲットホストマシン情報を選別し、第1ターゲットホストマシン情報をリソース情報プライベートコピーにコピーする。説明すべきものとして、現在の共通リソース情報をリソース情報プライベートコピーに完全コピーしてもよい。
次に、更新サブユニット5031は、第1完全更新タイムスタンプ及び第1増分更新タイムスタンプを記録することにより、完全更新タイムスタンプ及び増分更新タイムスタンプを正確に記録する。いくつかの実施例では、現在タイムスタンプを第1完全更新タイムスタンプ及び第1増分更新タイムスタンプとして設定してもよい。例えば、現在タイムスタンプが2017年9月16日午前8:00である場合、完全更新タイムスタンプ及び増分更新タイムスタンプは、いずれも、2017年9月16日午前8:00となる。次に、第1完全更新タイムスタンプ及び第1増分更新タイムスタンプをリソース情報プライベートコピーに記憶して、今回の更新を完了する。
さらに、更新サブユニット5031は、具体的に、時間差が完全更新閾値以下であるとき、共通リソース情報のうち、更新があってかつ更新タイムスタンプが最後の増分更新タイムスタンプより大きいホストマシン情報を取得し、ホストマシン情報の中から、仮想マシン情報を満たす第2ターゲットホストマシン情報を取得し、第2ターゲットホストマシン情報をリソース情報プライベートコピーに追加し、現在タイムスタンプを第2増分更新タイムスタンプとして設定し、第2増分更新タイムスタンプをリソース情報プライベートコピーに記憶する。
クラウドコンピューティングシステムのホストマシンの規模が大きく、例えば、ホストマシンの規模は10000程度であるが、リソーススケジューリング装置は100程度である。このため、リソース情報プライベートコピーを更新するたびに、完全更新を行うと、即ち、共通リソース情報をリソース情報プライベートコピーに完全コピーすると、時間がかかる。更新にかかる時間を短縮するために、リソース情報の増分更新を行い、即ち、共通リソース情報のうち一部のリソース情報をリソース情報プライベートコピーに追加してもよい。
具体的には、共通リソース情報におけるホストマシン情報が更新されるたびに、更新タイムスタンプを記録することにより、正確な更新日時を得る。更新サブユニット5031は、現在タイムスタンプと最後の完全更新タイムスタンプとの時間差を取得した後、時間差が完全更新閾値以下であるとき、共通リソース情報のうち、更新があったホストマシン情報を取得し、各ホストマシン情報が更新された更新タイムスタンプを取得し、次に、更新があったホストマシン情報の中から、更新タイムスタンプが最後の増分更新タイムスタンプより大きいホストマシン情報を選別する。即ち、最後の増分更新タイムスタンプに基づいて、共通リソース情報の中から、更新タイムスタンプが最後の増分更新タイムスタンプより大きいすべてのホストマシン情報を検索する。この最後の増分更新タイムスタンプは、現在タイムスタンプより前の最後の増分更新タイムスタンプである。
共通リソース情報のうち、更新があってかつ更新タイムスタンプが最後の増分更新タイムスタンプより大きいホストマシン情報が得られた後、該ホストマシン情報に対して選別を行って、ホストマシン情報の中から、仮想マシン情報を満たす第2ターゲットホストマシン情報を取得し、第2ターゲットホストマシン情報をリソース情報プライベートコピーに追加する。
次に、更新サブユニット5031は、第2増分更新タイムスタンプを記録することにより、増分更新タイムスタンプを正確に記録し、即ち、現在タイムスタンプを第2増分更新タイムスタンプとして設定し、第2増分更新タイムスタンプをリソース情報プライベートコピーに記憶して、今回の更新を完了する。リソース情報プライベートコピーは、実質的に、メモリ内で実行されるバッファである。ほとんどの場合、更新サブユニット5031が増分更新を行うだけでよく、更新データ量も、かかる時間も少ない。いくつかの実施例では、今回の増分更新の前にオフラインになっているホストマシンも、リソース情報プライベートコピーから削除される。
説明すべきものとして、上記第1ターゲットホストマシン情報、第2ターゲットホストマシン情報、第1完全更新タイムスタンプ、第1増分更新タイムスタンプ、及び第2増分更新タイムスタンプの「第1」及び「第2」は、現れたターゲットホストマシン情報、増分更新タイムスタンプ、又は完全更新タイムスタンプを区別するためのものにすぎず、それらの重要度への限定を表すものではない。
第3取得ユニット504は、リソース情報プライベートコピーに基づいて、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得する。
リソース情報プライベートコピーが更新された後、第3取得ユニット504は、リソース情報プライベートコピーを基に、作成する仮想マシンに対して、ホストマシンを選別する。仮想マシン情報におけるリソース要件と、リソース情報プライベートコピーにおけるホストマシン情報とに基づいて、リソース情報プライベートコピーにおけるホストマシン集合をフィルタリングし、条件に合致するホストマシンを保持し、条件に合致しないホストマシンを除外することにより、少なくとも1つの候補ホストマシンを得てもよい。
いくつかの実施例では、第3取得ユニット504は、仮想マシン情報に基づいて、ホストマシン情報に応じて構築された直列フィルターに従って、複数のホストマシンに対して相応のフィルタリングを行うように各フィルターを制御することにより、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを得てもよい。
ホストマシン情報に応じて、直列フィルタリングモデルを構築することができる。この直列フィルタリングモデルには、直列接続された複数のフィルターが含まれる。各フィルターそれぞれは、1つのフィルタリング機能を担う。各フィルターは、仮想マシン情報に基づいて相応の判断を行ってから、相応のフィルタリングを実行する。例えば、直列接続された1番目のフィルターは、仮想マシンに必要なCPU、メモリ、及びディスクリソースなどのリソース要件に基づいて、該リソース要件を満たさないホストマシンをフィルタリングして除外し、該リソース要件を満たすホストマシンのみを保持することを担い、直列接続された2番目のフィルターは、SSDをサポートするホストマシン、又はSSDをサポートしないホストマシンをフィルタリングして除外することを担い、リソース要件において、ホストマシンがSSDをサポートすることが要求される場合、2番目のフィルターは、該リソース要件に基づいて、SSDをサポートしないホストマシンをフィルタリングして除外し、SSDをサポートするホストマシンを保持する。
理解できるように、他のフィルターの機能は、該フィルターの機能を参照して理解すればよい。但し、他のフィルターは、他のフィルタリング機能を担う。具体的なフィルタリングモデルにおける各フィルターの機能は、作成する仮想マシンのリソース要件に応じて設定されてもよいが、具体的な内容がここで限定されない。
作成ユニット505は、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成する。
少なくとも1つの候補ホストマシンが得られた後、作成ユニット505は、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを決定してもよい。ターゲットホストマシンの選択は、ランダムに選択することであってもよい。もちろん、合致度が最も良いターゲットホストマシンを選択するために、複数のホストマシンをフィルタリングして少なくとも1つの候補ホストマシンが得られた後、各候補ホストマシンそれぞれの各次元の優先度値を決定し、優先度値に従って少なくとも1つの候補ホストマシンをランキングしてもよい。
いくつかの実施形態では、図10に示すように、作成ユニット505は、
少なくとも1つの候補ホストマシンのそれぞれの各次元の優先度値を決定する決定サブユニット5051と、
各次元の優先度値の高い順にランキングを行って、候補ホストマシンリストを生成する生成サブユニット5052と、
候補ホストマシンリストの各候補ホストマシンの順序で、逐一、各候補ホストマシンから、作成する仮想マシンのリソース要件を差し引いて、残りリソースを得、リソース要件が、仮想マシンに対応する仮想マシン情報に含まれる差し引きサブユニット5053と、
残りリソースを共通リソース情報へコミットするコミットサブユニット5054と、
ある候補ホストマシンに対応する残りリソースのコミットが成功すると、コミットに成功した候補ホストマシンをターゲットホストマシンとして設定し、ターゲットホストマシン上に仮想マシンを作成する作成サブユニット5055と、を含む。
具体的には、まず、決定サブユニット5051は、各ホストマシンそれぞれの複数次元の優先度値を計算する。各次元の優先度は、プライベートネットワーク優先度(vpcPrio)、並行タスク優先度(taskPrio)、履歴エラー優先度(errorPrio)、非アフィニティ優先度(affinityPrio)、フリー優先度(freePrio)、イメージキャッシュ優先度(imgPrio)、及び断片化率優先度(fragmentPrio)などを含んでもよい。
ここで、プライベートネットワーク優先度値について、vpcPrioの値が小さいほど、優先度が高くなる。各ホストマシン毎に、プライベートネットワーク優先度値を決定してもよい。例えば、プライベートネットワークをサポートするホストマシンのvpcPrioの値を0にし、プライベートネットワークをサポートしないホストマシンのvpcPrioの値を1にしてもよい。或いは、プライベートネットワークをサポートするホストマシンのvpcPrioの値を1にし、プライベートネットワークをサポートしないホストマシンのvpcPrioの値を0にするなどにしてもよい。説明の便宜上、本願の実施例では、すべて、プライベートネットワークをサポートするホストマシンのvpcPrioの値を0にして、プライベートネットワークをサポートしないホストマシンのvpcPrioの値を1にする場合を例として説明する。
プライベートネットワークは、IPアドレスが物理的なネットワークトポロジに依存せず、将来に移行がより容易である。プライベートネットワーク優先度は、プライベートネットワークをサポートするホストマシンに優先的に仮想マシンを配置して、将来の移行をより便利で柔軟にすることを役割とする。
並行タスク優先度について、taskPrioの値が小さいほど、優先度が高くなる。各ホストマシン毎に、並行タスク優先度を決定してもよい。ホストマシン上の現在のタスク数を判断し、タスク数が所定閾値より小さい場合、並行タスク優先度の値を0にし、タスク数が所定閾値より小さくない場合、並行タスク優先度の値を現在のタスク数にする。例えば、所定閾値はデフォルトで3である。もちろん、該所定閾値は、実際の必要に応じて、柔軟的に設定されてもよい。
ホストマシン上の並行タスクが同時に実行され、並行性が高すぎると、仮想マシンの作成が遅くなり、ひいては失敗する可能性がある。並行タスク優先度は、並行タスク数がより低いホストマシンに優先的に仮想マシンを配置して、仮想マシンの作成の成功率及びリアルタイム性を確保することを役割とする。
履歴エラー優先度について、errorPrioの値が小さいほど、優先度が高くなる。各ホストマシン毎に、履歴エラー優先度を計算してもよい。ホストマシンの最近の期間(例えば、デフォルトで24時間)内の履歴エラー数を判断し、履歴エラー数がエラー閾値より小さい場合、履歴エラー優先度の値を0にし、履歴エラー数がエラー閾値より小さくない場合、履歴エラー優先度の値を履歴エラー数にする。例えば、エラー閾値はデフォルトで5であってもよい。エラー閾値は、実際の必要に応じて、柔軟的に設定されてもよい。
短時間でエラーが複数回発生したホストマシンには、何らかの障害が発生した可能性があり、障害を処理する前に、該ホストマシンに持続的に仮想マシンを配置すると、仮想マシンの作成タスクが失敗する可能性があり、成功率を低下させる。履歴エラー優先度は、エラーが多すぎないホストマシンに優先的に仮想マシンを配置して、仮想マシンの作成の成功率を向上させることを役割とする。
非アフィニティ優先度について、affinityPrioの値が小さいほど、優先度が高くなる。各ホストマシン毎に、非アフィニティ優先度を計算してもよい。仮想マシンのユーザの該ホストマシン上の既存の仮想マシンの数を判断し、仮想マシンの数がアフィニティ閾値より小さい場合、非アフィニティ優先度の値を0にし、仮想マシンの数がアフィニティ閾値より小さくない場合、非アフィニティ優先度の値を既存の仮想マシンの数にする。例えば、アフィニティ閾値は3である。もちろん、アフィニティ閾値は、実際の必要に応じて、柔軟的に設定されてもよい。
大規模分散システムでは、エラーを完全に回避することがほぼ不可能である。あるユーザの仮想マシンが1つまたはいくつかのホストマシンに集中している場合、これらのホストマシンに障害が発生すると、これらのホストマシン上のすべての仮想マシンが影響を受け、該ユーザーのアプリケーションの全体的な可用性に深刻な影響を及ぼす。非アフィニティ優先度は、分散ディザスタリカバリのために、同一のユーザの仮想マシンを異なるホストマシンに広く分散させ、単一のホストマシンの障害によるアプリケーションの全体的な可用性への影響が制限され、さらにユーザーのアプリケーションの安定性及び可用性を向上させることを役割とする。
フリー優先度について、freePrioの値が小さいほど、優先度が高くなる。例えば、各ホストマシンが完全に空いているか否かを判断し、完全に空いている場合、フリー優先度の値を0にし、完全に空いているのではない場合、フリー優先度の値を1にしてもよい。或いは、完全に空いている場合、フリー優先度の値を1にし、完全に空いているのではない場合、フリー優先度の値を0にするなどにしてもよい。説明の便宜上、本願の実施例では、完全に空いている場合、フリー優先度の値を0にし、完全に空いているのではない場合、フリー優先度の値を1にすることを例として説明する。
フリー優先度は、空いているホストマシンを保護し、空いていないホストマシンに優先的に仮想マシンを配置して、空いていないホストマシン上のリソースを十分に利用し、リソースの利用率を向上させることを役割とする。
イメージキャッシュ優先度について、imgPrioの値が小さいほど、優先度が高くなる。候補ホストマシンリストを走査し、各ホストマシンには仮想マシンに必要なイメージファイルがあるか否かを判断し、例えば、イメージファイルがある場合、イメージキャッシュ優先度の値を0にし、イメージファイルがない場合、イメージキャッシュ優先度の値を1にしてもよい。
イメージキャッシュ優先度は、仮想マシンイメージが記憶されたホストマシンに優先的に仮想マシンを配置することにより、実際に仮想マシンを作成する際にイメージのダウンロードを省くことを可能にし、作成時間を節約し、仮想マシンの作成プロセスのリアルタイム性を向上させることを役割とする。
断片化率優先度について、fragmentPrioの値が小さいほど、優先度が高くなる。各ホストマシン毎に、断片化率優先度を計算してもよい。CPU及びメモリの2次元のリソースに基づいて、優先度を計算する。デフォルトでは、断片化率優先度は、CPUの断片化率にメモリの断片化率を掛けたものに等しい。
断片化率優先度は、ホストマシンのリソースを十分に利用し、リソースの断片化率を低下させ、さらにリソース利用率を向上させ、運用コストを削減することを役割とする。
決定サブユニット5051が各候補ホストマシンそれぞれの各次元の優先度値を決定した後、生成サブユニット5052が、各次元の優先度値の高い順にホストマシンをランキングして、候補ホストマシンリストを得、作成サブユニット5055が、候補ホストマシンリストから、合致度が最も高い1つの候補ホストマシンをターゲットホストマシンとして決定する。具体的な決定過程は、下記の通りであってもよい。
生成サブユニット5052は、各次元の優先度の高い順に、同一の次元のホストマシンを優先度値の大きい順にランキングし、同一の次元の同じ優先度値のホストマシンに対して、次の次元の優先度値に従ってランキングを行うことにより、優先度の高い順にランキングされた候補ホストマシンリストを得てもよい。
候補ホストマシンがランキングされた後、第1位にランキングされた候補ホストマシンが最適であり、この最適な候補ホストマシンに他の作成タスクが存在する可能性があるため、必ずしも作成の成功を保証できず、リソースの差し引きを模擬するような方式でターゲットホストマシンを決定する必要がある。
ターゲットホストマシンを決定する過程では、まず、差し引きサブユニット5053が、ランキングされた候補ホストマシンリストの各候補ホストマシンの順序で、逐一、各候補ホストマシンから、作成する仮想マシンのリソース要件を差し引いて、各候補ホストマシンに対応する残りリソースをそれぞれ得、ホストマシンに対してリソースの差し引きを模擬することを完了する。仮想マシンのリソース要件は、仮想マシンに対応する仮想マシン情報に含まれる。即ち、ランキングされた候補ホストマシンの降順に従って、第1位にランキングされた候補ホストマシンから始めて、逐一、各候補ホストマシンから、作成する仮想マシンのリソース要件を差し引き、ある候補ホストマシンからの差し引きが成功すると、差し引きに成功した候補ホストマシンをターゲットホストマシンとする。
ランキング順序は、予め設定されてもよい。例えば、デフォルトのランキング基準、即ち優先度の高い順は、プライベートネットワーク優先度(vpcPrio)、並行タスク優先度(taskPrio)、履歴エラー優先度(errorPrio)、非アフィニティ優先度(affinityPrio)、フリー優先度(freePrio)、イメージキャッシュ優先度(imgPrio)、及び断片化率優先度(fragmentPrio)であってもよい。ランキング基準は、デフォルト基準範囲内で選択されてもよく、順序は、実際の必要に応じて、柔軟的に調整して設定されてもよい。
次に、候補ホストマシンの残りリソースが得られた後、コミットサブユニット5054は、残りリソースを共通リソース情報へコミットし、ある候補ホストマシンに対応する残りリソースのコミットが成功すると、コミットに成功した候補ホストマシンをターゲットホストマシンとして設定する。候補ホストマシンの残りリソースを、各ホストマシンの残りリソースデータをメンテナンスするためのデータベースに書き込み、書き込みが成功すると、書き込みに成功した候補ホストマシンをターゲットホストマシンとするようにしてもよい。
ターゲットホストマシンが決定された後、作成サブユニット5055は、該ターゲットホストマシン上に仮想マシンを作成することが可能になる。いくつかの実施例では、仮想マシンの作成には、ターゲットホストマシンのリソースを消費する必要があるため、リソース情報プライベートコピーにおけるホストマシン情報を更新してもよいし、クラウドコンピューティングシステムに共通リソース情報を更新するよう通知してもよい。
候補ホストマシンに対応する残りリソースのコミットが失敗した場合は、スケジューリング競合、即ち、同一のホストマシンが複数のリソーススケジューリングプロセスによって同時に選択されることが発生した可能性があることを表す。この場合、コミット回数が回数閾値を超えるか否かを判断し、コミット回数が回数閾値を超えていないとき、該候補ホストマシンのホストマシン情報を再取得して、該候補ホストマシンから、作成する仮想マシンのリソース要件を差し引いて、残りリソースを再び得る。次に、再び得られた残りリソースを共通リソース情報へ再コミットする。コミット回数が回数閾値を超えたとき、候補ホストマシンリストから、次の候補ホストマシンを取得して、リソースの差し引きの模擬を行う。
説明すべきものとして、1番目のホストマシンからの差し引きが成功した場合、2番目のホストマシンに対して差し引き処理を行う必要がなく、直接に1番目のホストマシンをターゲットホストマシンとして決定してもよい。1番目のホストマシンからの差し引きが成功しない場合、2番目のホストマシンに対して差し引き処理を行い、あるホストマシンからの差し引きが成功するまで繰り返す必要がある。
さらに、図11に示すように、作成ユニット505は、
候補ホストマシンリストのランキングの上位所定数の候補ホストマシンをリランキングして、候補ホストマシンターゲットリストを生成するランキングサブユニット5056をさらに含む。
差し引きサブユニット5053は、具体的に、候補ホストマシンターゲットリストの各候補ホストマシンの順序で、逐一、各候補ホストマシンから、作成する仮想マシンのリソース要件を差し引いて、残りリソースを得る。
ここで、所定数は、実際の必要に応じて、柔軟的に設定されてもよい。ランキングサブユニット5056が候補ホストマシンリストのランキングの上位所定数の候補ホストマシンをリランキングすることは、ランダムにリランキングすることであってもよいし、所定の規則に従ってリランキングすることであってもよいが、具体的なリランキング方式がここで限定されない。候補ホストマシンリストのランキングの上位所定数の候補ホストマシンをリランキングすることは、リランキングのために、候補ホストマシンリストの先頭k(kは所定数)個の候補ホストマシンをランダムにシャッフルして、候補ホストマシンターゲットリストを得ることで、並行シナリオで複数のリソーススケジューリングプロセスが同じターゲットホストマシンを選択することを防止し、スケジューリング競合を効果的に回避することが可能になる、ことを目的とする。
上記から分かるように、本願の実施例では、第1取得ユニット501が、作成する仮想マシンに対応する仮想マシン情報を取得し、第2取得ユニット502が共通リソース情報を取得し、該共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれ、次に、更新ユニット503が、共通リソース情報及び仮想マシン情報に基づいて、予め設けられたリソース情報プライベートコピーを更新し、該リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれ、最後に、第3取得ユニット504が、リソース情報プライベートコピーに基づいて、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得し、作成ユニット505が、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成する。この構成によれば、リソーススケジューリングを行う前に、リソース情報プライベートコピーを適時に更新することが可能になり、リソース情報プライベートコピーと共通リソース情報との同期性が保証され、リソーススケジューリングの結果が良くなるとともに、リソーススケジューリングを行う際に待つ必要がなく、リソーススケジューリングの効率が向上する。
これに応じて、本願の実施例では、クラウドコンピューティングシステムも提供されている。このクラウドコンピューティングシステムは、少なくとも1つのスケジューラと、少なくとも1つのホストマシンと、を備えてもよい。このスケジューラは、本願の実施例で提供されたいずれか1つのリソーススケジューリング装置を備え、具体的に、上記リソーススケジューリング装置に対応する実施例を参照すればよい。ここで、リソーススケジューリング装置は、具体的に、スケジューリングサーバに統合されてもよい。例えば、
スケジューリングサーバは、作成する仮想マシンに対応する仮想マシン情報を取得し、共通リソース情報を取得し、共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれ、共通リソース情報及び仮想マシン情報に基づいて、予め設けられたリソース情報プライベートコピーを更新し、リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれ、リソース情報プライベートコピーに基づいて、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得し、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成するようにしてもよい。
上記の各機器の具体的な実施は、前述した実施例を参照すればよく、ここで説明を省略する。
該クラウドコンピューティングシステムは、本願の実施例で提供されたいずれか1つのリソーススケジューリング装置を備えてもよいため、本願の実施例で提供されたいずれか1つのリソーススケジューリング装置が実現可能な有益効果を実現できる。詳しくは、前述した実施例を参照すればよく、ここで説明を省略する。
また、本願の実施例では、スケジューリングサーバが提供されている。このスケジューリングサーバは、本願の実施例におけるいずれか1つのスケジューラである。図12には、本願の実施例に係るスケジューリングサーバの構成の模式図が示されている。具体的には、
このスケジューリングサーバは、1つ又は複数の処理コアのプロセッサ601、1つ又は複数のコンピュータ可読記憶媒体であるメモリ602、電源603、及び入力手段604などの構成要素を含んでもよい。当業者であれば理解できるように、図12に示されたスケジューリングサーバの構成は、スケジューリングサーバを限定するものでなく、図示よりも多く若しくは少ない構成要素を含んでもよく、又はいくらかの構成要素を組み合わせたものであってもよく、又は構成要素の異なる配置を有してもよい。ここで、
プロセッサ601は、該スケジューリングサーバの制御センターであり、各種のインタフェース及び線路によってスケジューリングサーバ全体の各部分を接続し、メモリ602に記憶されたソフトウェアプログラム及び/又はモジュールを実行又は遂行して、メモリ602に記憶されたデータを呼び出すことにより、スケジューリングサーバの各種の機能を実行してデータを処理し、スケジューリングサーバを全体的に監視制御する。いくつかの実施例では、プロセッサ601は、1つ又は複数の処理コアを含んでもよい。プロセッサ601には、アプリケーションプロセッサ及び変復調プロセッサが統合されてもよい。ここで、アプリケーションプロセッサは、主にオペレーティングシステム、ユーザ画面、及びアプリケーションプログラムなどを処理し、変復調プロセッサは、主に無線通信を処理する。理解できるように、上記変復調プロセッサは、プロセッサ601に統合されなくてもよい。
メモリ602は、ソフトウェアプログラム及びモジュールの記憶に使用可能である。プロセッサ601は、メモリ602に記憶された1つ又は複数のプログラム及びモジュールを実行することにより、各種の機能アプリケーション及びデータ処理を実行する。メモリ602は、主にプログラム記憶領域及びデータ記憶領域を含んでもよい。ここで、プログラム記憶領域には、オペレーティングシステム、少なくとも1つの機能に必要なアプリケーションプログラム(例えば、音声再生機能、画像再生機能など)などを記憶してもよい。データ記憶領域には、スケジューリングサーバの使用に応じて作成されたデータなどを記憶してもよい。また、メモリ602は、高速ランダムアクセスメモリを含んでもよいし、不揮発性メモリを含んでもよく、例えば、少なくとも1つの磁気ディスク記憶デバイス、フラッシュメモリデバイス、又はその他の揮発性ソリッドステート記憶デバイスであってもよい。これに応じて、メモリ602は、メモリコントローラをさらに含んでもよい。これにより、プロセッサ601によるメモリ602へのアクセスが提供される。
スケジューリングサーバは、各構成要素に電力を提供する電源603をさらに含む。電源603は、電源管理システムを介して、プロセッサ601に論理的に接続されてもよい。これにより、電源管理システムを介して、充電、放電の管理、及び電力消費管理などの機能が実現される。電源603は、1つ又は複数の直流又は交流電源、再充電システム、電源故障検出回路、電源変換器又はインバータ、電源状態指示器などの任意の構成要素を含んでもよい。
該スケジューリングサーバは、入力手段604をさらに含んでもよい。この入力手段604は、入力された数字や文字の情報を受信し、ユーザ設定及び機能制御に関するキーボード、マウス、ジョイスティック、光学又はトラックボールの信号入力を生成することに使用可能である。
図示されていないが、スケジューリングサーバは、表示手段などをさらに含んでもよく、ここで説明を省略する。具体的には、本実施例では、スケジューリングサーバのプロセッサ601が、下記のような命令に従って、1つ又は複数のアプリケーションプログラムのプロセスに対応する実行可能ファイルをメモリ602にロードし、メモリ602に記憶されたアプリケーションプログラムをプロセッサ601が実行することにより、各種の機能を実現する。即ち、
作成する仮想マシンに対応する仮想マシン情報を取得し、共通リソース情報を取得し、共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれ、共通リソース情報及び仮想マシン情報に基づいて、予め設けられたリソース情報プライベートコピーを更新し、リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれ、リソース情報プライベートコピーに基づいて、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得し、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成する。
上記の各処理の具体的な実施は、前述した実施例を参照すればよく、ここで説明を省略する。
上記から分かるように、本願の実施例では、スケジューリングサーバは、作成する仮想マシンに対応する仮想マシン情報を取得し、共通リソース情報を取得し、該共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれ、次に、共通リソース情報及び仮想マシン情報に基づいて、予め設けられたリソース情報プライベートコピーを更新し、該リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれ、最後に、リソース情報プライベートコピーに基づいて、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得し、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成する。この構成によれば、リソーススケジューリングを行う前に、リソース情報プライベートコピーを適時に更新することが可能になり、リソース情報プライベートコピーと共通リソース情報との同期性が保証され、リソーススケジューリングの結果が良くなるとともに、リソーススケジューリングを行う際に待つ必要がなく、リソーススケジューリングの効率が向上する。
当業者であれば理解できるように、上記実施例の各方法の手順の全部又は一部は、命令によって実行されたり、命令で関連のハードウェアを制御することにより実行されたりしてもよい。この命令は、コンピュータ可読記憶媒体に記憶され、プロセッサによってロード・実行されてもよい。
このため、本願の実施例では、複数の命令を記憶した記憶媒体が提供されている。この命令は、プロセッサによってロードされることで、本願の実施例で提供されたいずれか1つのリソーススケジューリング方法のステップを実行させることが可能である。例えば、この命令は、
作成する仮想マシンに対応する仮想マシン情報を取得し、共通リソース情報を取得し、共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれ、共通リソース情報及び仮想マシン情報に基づいて、予め設けられたリソース情報プライベートコピーを更新し、リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれ、リソース情報プライベートコピーに基づいて、仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得し、少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成する、ことを実行させることが可能である。
上記の各処理の具体的な実施は、前述した実施例を参照すればよく、ここで説明を省略する。
ここで、該記憶媒体は、読み出し専用メモリ(ROM:Read Only Memory)、ランダムアクセスメモリ(RAM:Random Access Memory)、磁気ディスク、又は光ディスクなどを含んでもよい。
該記憶媒体に記憶された命令は、本願の実施例で提供されたいずれか1つのリソーススケジューリング方法のステップを実行させることが可能であるため、本願の実施例で提供されたいずれか1つのリソーススケジューリング方法が実現可能な有益効果を実現できる。詳しくは、前述した実施例を参照すればよく、ここで説明を省略する。
上記は、本願の実施例で提供されたリソーススケジューリング方法、装置、クラウドコンピューティングシステム、及び記憶媒体を詳しく説明している。本明細書では、具体的な特定例を使用して、本願の原理及び実施形態を説明している。上記の実施例の説明は、本願の方法及びその中心となる思想の理解を助けるためにすぎない。また、当業者にとっては、本願の思想を踏まえると、具体的な実施形態及び適用範囲の両方に変更があり得る。要するに、本明細書の内容は、本願に対する制限として理解されるべきではない。
501 第1取得ユニット
502 第2取得ユニット
503 更新ユニット
504 第3取得ユニット
505 作成ユニット
5051 決定サブユニット
5052 生成サブユニット
5053 差し引きサブユニット
5054 コミットサブユニット
5055 作成サブユニット
5056 ランキングサブユニット
601 プロセッサ
602 メモリ
603 電源
604 入力手段

Claims (14)

  1. リソーススケジューリング方法であって、
    スケジューリングサーバが、作成する仮想マシンに対応する仮想マシン情報を取得し、
    前記スケジューリングサーバが共通リソース情報を取得し、前記共通リソース情報には、クラウドコンピューティングシステムのすべてのホストマシンに対応するホストマシン情報が含まれ、
    前記スケジューリングサーバが、前記共通リソース情報に基づいて、予め設けられたリソース情報プライベートコピーを更新し、前記リソース情報プライベートコピーには、所定のホストマシンに対応するホストマシン情報が含まれ、
    前記スケジューリングサーバが、前記リソース情報プライベートコピーに基づいて、前記仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得し、
    前記スケジューリングサーバが、前記少なくとも1つの候補ホストマシンの中からターゲットホストマシンを取得し、ターゲットホストマシン上に仮想マシンを作成する、
    ことを含むリソーススケジューリング方法。
  2. 前記スケジューリングサーバが、前記共通リソース情報に基づいて、予め設けられたリソース情報プライベートコピーを更新することは、
    前記スケジューリングサーバが、前記リソース情報プライベートコピーを前記共通リソース情報と同期する、
    ことを含む請求項1に記載のリソーススケジューリング方法。
  3. 前記スケジューリングサーバが、前記共通リソース情報に基づいて、予め設けられたリソース情報プライベートコピーを更新することは、
    前記スケジューリングサーバが、前記共通リソース情報の中から、前記仮想マシン情報を満たすターゲットホストマシン情報を選別し、前記ターゲットホストマシン情報を予め設けられたリソース情報プライベートコピーに追加する、
    ことを含む請求項1に記載のリソーススケジューリング方法。
  4. 前記スケジューリングサーバが、前記共通リソース情報の中から、前記仮想マシン情報を満たすターゲットホストマシン情報を選別し、前記ターゲットホストマシン情報を予め設けられたリソース情報プライベートコピーに追加することは、
    前記リソース情報プライベートコピーの初回更新である場合、前記スケジューリングサーバが、前記共通リソース情報の中から、前記仮想マシン情報を満たすターゲットホストマシン情報を選別し、
    前記スケジューリングサーバが、前記ターゲットホストマシン情報を前記リソース情報プライベートコピーにコピーし、
    前記スケジューリングサーバが、現在タイムスタンプを取得し、前記現在タイムスタンプを完全更新タイムスタンプ及び増分更新タイムスタンプとして設定し、
    前記スケジューリングサーバが、前記完全更新タイムスタンプ及び前記増分更新タイムスタンプを前記リソース情報プライベートコピーに記憶する、
    ことを含む請求項3に記載のリソーススケジューリング方法。
  5. 前記スケジューリングサーバが、前記共通リソース情報の中から、前記仮想マシン情報を満たすターゲットホストマシン情報を選別し、前記ターゲットホストマシン情報を予め設けられたリソース情報プライベートコピーに追加することは、
    前記リソース情報プライベートコピーの初回更新ではない場合、前記スケジューリングサーバが、現在タイムスタンプと最後の完全更新タイムスタンプとの時間差を取得し、
    前記スケジューリングサーバが、前記時間差が所定の完全更新閾値より大きいか否かを判断し、
    前記時間差が前記完全更新閾値より大きいとき、前記スケジューリングサーバが、前記共通リソース情報の中から、前記仮想マシン情報を満たす第1ターゲットホストマシン情報を選別し、
    前記スケジューリングサーバが、前記第1ターゲットホストマシン情報を前記リソース情報プライベートコピーにコピーし、
    前記スケジューリングサーバが、前記現在タイムスタンプを第1完全更新タイムスタンプ及び第1増分更新タイムスタンプとして設定し、
    前記スケジューリングサーバが、前記第1完全更新タイムスタンプ及び前記第1増分更新タイムスタンプを前記リソース情報プライベートコピーに記憶する、
    ことを含む請求項3に記載のリソーススケジューリング方法。
  6. 前記スケジューリングサーバが、前記時間差が所定の完全更新閾値より大きいか否かを判断した後、
    前記時間差が前記完全更新閾値以下であるとき、前記スケジューリングサーバが、前記共通リソース情報のうち、更新があってかつ更新タイムスタンプが最後の増分更新タイムスタンプより大きいホストマシン情報を取得し、
    前記スケジューリングサーバが、前記ホストマシン情報の中から、前記仮想マシン情報を満たす第2ターゲットホストマシン情報を取得し、
    前記スケジューリングサーバが、前記第2ターゲットホストマシン情報を前記リソース情報プライベートコピーに追加し、
    前記スケジューリングサーバが、前記現在タイムスタンプを第2増分更新タイムスタンプとして設定し、
    前記スケジューリングサーバが、前記第2増分更新タイムスタンプを前記リソース情報プライベートコピーに記憶する、
    ことをさらに含む請求項5に記載のリソーススケジューリング方法。
  7. 前記スケジューリングサーバが、前記少なくとも1つの候補ホストマシンの中から、ターゲットホストマシンを取得することは、
    前記スケジューリングサーバが、前記少なくとも1つの候補ホストマシンのそれぞれの各次元の優先度値を決定し、
    前記スケジューリングサーバが、前記各次元の優先度値の高い順にランキングを行って、候補ホストマシンリストを生成し、
    前記スケジューリングサーバが、前記候補ホストマシンリストの各候補ホストマシンの順序で、逐一、各候補ホストマシンから、作成する前記仮想マシンのリソース要件を差し引いて、前記各候補ホストマシンの残りリソースを得、前記各候補ホストマシンのうち1つの候補ホストマシンの前記残りリソースのコミットが成功するまで、前記各候補ホストマシンの残りリソースを前記共通リソース情報へコミットし、前記リソース要件が、前記仮想マシンに対応する仮想マシン情報に含まれ、
    前記各候補ホストマシンのうち1つの候補ホストマシンに対応する残りリソースのコミットが成功すると、前記スケジューリングサーバが、コミットに成功した前記候補ホストマシンをターゲットホストマシンとして設定する、
    ことを含む請求項1に記載のリソーススケジューリング方法。
  8. 前記スケジューリングサーバが、前記候補ホストマシンリストの各候補ホストマシンの順序で、逐一、各候補ホストマシンから、作成する前記仮想マシンのリソース要件を差し引いて、前記各候補ホストマシンの残りリソースを得る前に、前記スケジューリングサーバが、前記候補ホストマシンリストのランキングの上位所定数の候補ホストマシンをリランキングして、候補ホストマシンターゲットリストを生成する、ことをさらに含み、
    前記スケジューリングサーバが、前記候補ホストマシンリストの各候補ホストマシンの順序で、逐一、各候補ホストマシンから、作成する前記仮想マシンのリソース要件を差し引いて、前記各候補ホストマシンの残りリソースを得ることは、前記スケジューリングサーバが、前記候補ホストマシンターゲットリストの各候補ホストマシンの順序で、逐一、前記候補ホストマシンターゲットリストの各候補ホストマシンから、作成する前記仮想マシンのリソース要件を差し引いて、残りリソースを得る、ことを含む、
    請求項7に記載のリソーススケジューリング方法。
  9. 前記スケジューリングサーバが、前記候補ホストマシンリストのランキングの上位所定数の候補ホストマシンをリランキングして、候補ホストマシンターゲットリストを生成することは、
    前記スケジューリングサーバが、前記候補ホストマシンリストのランキングの上位所定数の候補ホストマシンをランダムにリランキングして、前記候補ホストマシンターゲットリストを得る、
    ことを含む請求項8に記載のリソーススケジューリング方法。
  10. 前記スケジューリングサーバが、前記リソース情報プライベートコピーに基づいて、前記仮想マシン情報を満たす少なくとも1つの候補ホストマシンを取得することは、
    前記スケジューリングサーバが、前記仮想マシン情報におけるリソース要件に基づいて、前記リソース情報プライベートコピーにおけるホストマシンをフィルタリングして、前記少なくとも1つの候補ホストマシンを得る、
    ことを含む請求項1に記載のリソーススケジューリング方法。
  11. 前記スケジューリングサーバが、前記各候補ホストマシンのうち1つの候補ホストマシンの前記残りリソースのコミットが成功するまで、前記各候補ホストマシンの残りリソースを前記共通リソース情報へコミットすることは、
    ある候補ホストマシンの残りリソースのコミットが失敗した場合、前記スケジューリングサーバが、該候補ホストマシンの残りリソースのコミット回数がスケジューリング競合閾値を超えるか否かを決定し、
    該候補ホストマシンの残りリソースのコミット回数が前記スケジューリング競合閾値を超えていないと決定されたとき、前記スケジューリングサーバが、該候補ホストマシンの最新のリソースデータを取得し、該候補ホストマシンに対応する前記残りリソースを再決定し、
    該候補ホストマシンの残りリソースのコミット回数が前記スケジューリング競合閾値を超えたと決定されたとき、前記スケジューリングサーバが、前記候補ホストマシンリストの次の候補ホストマシンから、作成する前記仮想マシンのリソース要件を差し引いて、相応の残りリソースを得、前記相応の残りリソースをコミットする、
    ことを含む請求項7に記載のリソーススケジューリング方法。
  12. スケジューリングサーバであって、
    プロセッサと、
    メモリと、
    前記メモリに記憶される1つ又は複数のプログラムと、を含み、
    前記1つ又は複数のプログラムは、前記プロセッサによって実行されると、前記プロセッサに、請求項1乃至11のいずれか1項に記載のリソーススケジューリング方法を実行させるスケジューリングサーバ。
  13. クラウドコンピューティングシステムであって、少なくとも1つの、請求項12に記載のスケジューリングサーバと、少なくとも1つの、少なくとも1つの仮想マシンを作成するためのホストマシンと、を備えるクラウドコンピューティングシステム。
  14. 複数の命令を記憶した記憶媒体であって、前記命令は、プロセッサによってロードされることで、請求項1乃至11のいずれか1項に記載のリソーススケジューリング方法を実行させるように構成される記憶媒体。
JP2020518085A 2017-09-29 2018-09-25 リソーススケジューリング方法、スケジューリングサーバ、クラウドコンピューティングシステム、及び記憶媒体 Active JP6893284B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201710911639.9 2017-09-29
CN201710911639.9A CN109582433B (zh) 2017-09-29 2017-09-29 一种资源调度方法、装置、云计算系统及存储介质
PCT/CN2018/107275 WO2019062699A1 (zh) 2017-09-29 2018-09-25 资源调度方法、调度服务器、云计算系统及存储介质

Publications (3)

Publication Number Publication Date
JP2020535559A JP2020535559A (ja) 2020-12-03
JP2020535559A5 JP2020535559A5 (ja) 2021-01-21
JP6893284B2 true JP6893284B2 (ja) 2021-06-23

Family

ID=65900727

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020518085A Active JP6893284B2 (ja) 2017-09-29 2018-09-25 リソーススケジューリング方法、スケジューリングサーバ、クラウドコンピューティングシステム、及び記憶媒体

Country Status (6)

Country Link
US (1) US11372688B2 (ja)
EP (1) EP3690648B1 (ja)
JP (1) JP6893284B2 (ja)
KR (1) KR102281739B1 (ja)
CN (1) CN109582433B (ja)
WO (1) WO2019062699A1 (ja)

Families Citing this family (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109522088A (zh) * 2018-09-30 2019-03-26 华为技术有限公司 一种虚拟机迁移方法及装置
CN112882820A (zh) * 2019-11-29 2021-06-01 北京百度网讯科技有限公司 用于配置资源的方法及装置
CN111399983B (zh) * 2020-03-18 2024-05-14 北京达佳互联信息技术有限公司 基于容器编排调度服务的调度方法及装置
CN111459684A (zh) * 2020-04-24 2020-07-28 中国人民解放军国防科技大学 面向多处理器架构的云计算资源融合调度管理方法、系统及介质
CN111562985B (zh) * 2020-05-09 2024-03-22 上海商汤智能科技有限公司 资源管理方法及装置、电子设备和存储介质
CN111666158A (zh) * 2020-06-23 2020-09-15 中信银行股份有限公司 一种基于Kubernetes的容器调度方法、装置、存储介质及电子设备
CN113850558A (zh) * 2020-06-28 2021-12-28 华为技术有限公司 一种工作流程编排方法及装置
CN111857237B (zh) * 2020-07-27 2023-09-08 超越科技股份有限公司 一种时钟同步方法、系统、设备以及介质
US11726816B2 (en) * 2020-07-30 2023-08-15 Vmware, Inc. Scheduling workloads on a common set of resources by multiple schedulers operating independently
CN112527449B (zh) * 2020-11-19 2024-07-02 北京浪潮数据技术有限公司 一种集群节点标签创建方法、系统及电子设备和存储介质
CN112988377B (zh) * 2021-01-05 2023-08-04 腾讯科技(深圳)有限公司 用于云服务的资源分配方法、系统和介质
CN113760446A (zh) * 2021-01-22 2021-12-07 北京沃东天骏信息技术有限公司 资源调度方法、装置、设备及介质
CN118093144A (zh) * 2021-03-22 2024-05-28 福建随行软件有限公司 一种基于峰值访问的资源分发及数据中心
CN113961314B (zh) * 2021-12-16 2022-03-04 苏州浪潮智能科技有限公司 一种容器应用调度方法、装置、电子设备及存储介质
CN114338694B (zh) * 2022-03-04 2022-05-31 广州鹏捷科技股份有限公司 一站式云数据中心服务器调度方法及系统
CN115292024B (zh) * 2022-10-09 2023-03-24 苏州市中地行信息技术有限公司 一种多目标导向的数据筛选方法与系统
CN116132498A (zh) * 2022-12-22 2023-05-16 北京蔚领时代科技有限公司 适用于应用更新期间的云渲染调度方法、系统及存储介质

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20070271560A1 (en) * 2006-05-18 2007-11-22 Microsoft Corporation Deploying virtual machine to host based on workload characterizations
US20080089338A1 (en) * 2006-10-13 2008-04-17 Robert Campbell Methods for remotely creating and managing virtual machines
US8205208B2 (en) * 2007-07-24 2012-06-19 Internaitonal Business Machines Corporation Scheduling grid jobs using dynamic grid scheduling policy
US7970903B2 (en) 2007-08-20 2011-06-28 Hitachi, Ltd. Storage and server provisioning for virtualized and geographically dispersed data centers
US8037032B2 (en) * 2008-08-25 2011-10-11 Vmware, Inc. Managing backups using virtual machines
JP5504651B2 (ja) 2009-03-06 2014-05-28 日本電気株式会社 仮想マシンシステム、情報処理装置、リソース管理方法、プログラム及び記録媒体
US8650563B2 (en) * 2010-02-26 2014-02-11 Red Hat Israel, Ltd. Identification and placement of new virtual machines to reduce memory consumption based on shared images with hosted virtual machines
US8478878B2 (en) * 2010-03-11 2013-07-02 International Business Machines Corporation Placement of virtual machines based on server cost and network cost
JP5772127B2 (ja) * 2011-03-25 2015-09-02 富士通株式会社 仮想マシン管理方法、情報処理装置および仮想マシン管理プログラム
US8990824B2 (en) * 2011-04-28 2015-03-24 Dell Products L.P. System and method for automated virtual network configuration
JP2013061700A (ja) * 2011-09-12 2013-04-04 Sony Corp 情報処理装置、情報処理方法、記録媒体および情報処理システム
US9292350B1 (en) * 2011-12-15 2016-03-22 Symantec Corporation Management and provisioning of virtual machines
US20130238785A1 (en) * 2012-03-06 2013-09-12 Rackspace Us, Inc. System and Method for Metadata Discovery and Metadata-Aware Scheduling
US8843935B2 (en) * 2012-05-03 2014-09-23 Vmware, Inc. Automatically changing a pre-selected datastore associated with a requested host for a virtual machine deployment based on resource availability during deployment of the virtual machine
US9477529B2 (en) * 2012-06-20 2016-10-25 International Business Machines Corporation Job distributed within a grid environment using mega-host groupings of execution hosts based on resource attributes
US10387201B2 (en) * 2012-06-26 2019-08-20 Vmware, Inc. Storage performance-based virtual machine placement
US9047129B2 (en) * 2012-07-23 2015-06-02 Adobe Systems Incorporated Systems and methods for load balancing of time-based tasks in a distributed computing system
JP6213053B2 (ja) * 2012-09-04 2017-10-18 富士通株式会社 プログラム、情報処理装置およびスケジュール決定方法
CN103002010B (zh) * 2012-10-29 2016-09-28 北京奇虎科技有限公司 一种基于增量数据的数据更新方法、装置和系统
US8923320B2 (en) * 2012-12-10 2014-12-30 Dell Products L.P. Systems and methods for automating virtual network interface controller configuration during workload provisioning
US9213646B1 (en) * 2013-06-20 2015-12-15 Seagate Technology Llc Cache data value tracking
WO2015099701A1 (en) * 2013-12-24 2015-07-02 Intel Corporation Cloud compute scheduling using a heuristic contention model
US9348709B2 (en) * 2013-12-27 2016-05-24 Sybase, Inc. Managing nodes in a distributed computing environment
CN104793982A (zh) 2014-01-20 2015-07-22 联想(北京)有限公司 一种创建虚拟机的方法和设备
US20190173770A1 (en) * 2014-06-04 2019-06-06 Nutanix, Inc. Method and system for placement of virtual machines using a working set computation
US9781055B2 (en) * 2014-08-18 2017-10-03 Cisco Technology, Inc. Dynamic cascaded clustering for dynamic VNF
US9699085B2 (en) * 2014-11-13 2017-07-04 Cisco Technology, Inc. Periodic advertisements of host capabilities in virtual cloud computing infrastructure
CN106339254B (zh) * 2015-07-15 2020-06-12 中兴通讯股份有限公司 一种虚拟机快速启动方法、装置及管理节点
US10613887B2 (en) * 2015-10-21 2020-04-07 International Business Machines Corporation Ordering optimization of host machines in a computing environment based on policies
CN105260229A (zh) * 2015-10-28 2016-01-20 北京百度网讯科技有限公司 拉取虚拟机镜像文件的方法和装置
US10599459B2 (en) * 2016-02-12 2020-03-24 Nutanix, Inc. Entity database distributed replication
CN107479950B (zh) * 2016-06-08 2021-03-05 阿里巴巴集团控股有限公司 一种虚拟机调度方法、设备及系统
CN106020937A (zh) * 2016-07-07 2016-10-12 腾讯科技(深圳)有限公司 一种创建虚拟机的方法、装置及系统
US11627353B2 (en) * 2016-08-25 2023-04-11 Deezer S.A. System and method for synchronized playing of media items on a plurality of remote devices
US10296389B2 (en) * 2016-09-15 2019-05-21 Red Hat, Inc. Time-bound conditional resource deallocation
US10241840B2 (en) * 2016-09-30 2019-03-26 Vmware, Inc. Resource based virtual computing instance scheduling
US20180191859A1 (en) * 2016-12-29 2018-07-05 Ranjan Sharma Network resource schedulers and scheduling methods for cloud deployment
US20200026576A1 (en) * 2017-01-19 2020-01-23 Nutanix, Inc. Determining a number of nodes required in a networked virtualization system based on increasing node density
US10296367B2 (en) * 2017-02-03 2019-05-21 Microsoft Technology Licensing, Llc Resource management for virtual machines in cloud computing systems
US10942760B2 (en) * 2017-02-03 2021-03-09 Microsoft Technology Licensing, Llc Predictive rightsizing for virtual machines in cloud computing systems
US11349708B2 (en) * 2017-03-09 2022-05-31 Telefonaktiebolaget L M Ericsson (Publ) Configuration generation for virtual network functions (VNFs) with requested service availability
US10599480B2 (en) * 2017-05-05 2020-03-24 Red Hat, Inc. Cascading job scheduling in guests
US10761869B2 (en) * 2017-06-26 2020-09-01 Wangsu Science & Technology Co., Ltd. Cloud platform construction method and cloud platform storing image files in storage backend cluster according to image file type

Also Published As

Publication number Publication date
KR20200061393A (ko) 2020-06-02
EP3690648B1 (en) 2023-08-02
KR102281739B1 (ko) 2021-07-27
WO2019062699A1 (zh) 2019-04-04
CN109582433B (zh) 2022-02-01
CN109582433A (zh) 2019-04-05
EP3690648A1 (en) 2020-08-05
US11372688B2 (en) 2022-06-28
JP2020535559A (ja) 2020-12-03
EP3690648A4 (en) 2020-12-09
US20200192724A1 (en) 2020-06-18

Similar Documents

Publication Publication Date Title
JP6893284B2 (ja) リソーススケジューリング方法、スケジューリングサーバ、クラウドコンピューティングシステム、及び記憶媒体
US10664323B2 (en) Live migration of virtual machines in distributed computing systems
US11194620B2 (en) Virtual machine migration task management
US9582221B2 (en) Virtualization-aware data locality in distributed data processing
US9933956B2 (en) Systems and methods for implementing stretch clusters in a virtualization environment
US20190220319A1 (en) Usage instrumented workload scheduling
US10362092B1 (en) Entity management in distributed systems
US9886443B1 (en) Distributed NFS metadata server
JP5375972B2 (ja) 分散ファイルシステム、そのデータ選択方法およびプログラム
US11216420B2 (en) System and method for high replication factor (RF) data replication
US20240061712A1 (en) Method, apparatus, and system for creating training task on ai training platform, and medium
Lee et al. Shard manager: A generic shard management framework for geo-distributed applications
US10469318B1 (en) State tracking in distributed computing systems
US20240256486A1 (en) Storing a point in time coherently for a distributed storage system
US9798483B2 (en) Object storage power consumption optimization
US10127270B1 (en) Transaction processing using a key-value store
CN107528871A (zh) 存储系统中的数据分析
CN105930202B (zh) 一种三阈值的虚拟机迁移方法
US10942822B2 (en) Consistency group restoration from a secondary site
CN107329798A (zh) 数据复制的方法、装置和虚拟化系统
US10929168B2 (en) Enhanced data storage and versioning of virtual nodes in a data processing environment
US11853317B1 (en) Creating replicas using queries to a time series database
WO2016109743A1 (en) Systems and methods for implementing stretch clusters in a virtualization environment
Zagan et al. Data Block Saving Policy in the Hadoop Architecture
CN111506459A (zh) 数据导入方法、装置、设备及计算机存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200327

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200327

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210531

R150 Certificate of patent or registration of utility model

Ref document number: 6893284

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250