JP6840099B2 - サービス提供システム、資源割り当て方法、及び資源割り当てプログラム - Google Patents

サービス提供システム、資源割り当て方法、及び資源割り当てプログラム Download PDF

Info

Publication number
JP6840099B2
JP6840099B2 JP2018026723A JP2018026723A JP6840099B2 JP 6840099 B2 JP6840099 B2 JP 6840099B2 JP 2018026723 A JP2018026723 A JP 2018026723A JP 2018026723 A JP2018026723 A JP 2018026723A JP 6840099 B2 JP6840099 B2 JP 6840099B2
Authority
JP
Japan
Prior art keywords
virtual machine
core
virtual
resource
resource allocation
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
JP2018026723A
Other languages
English (en)
Other versions
JP2019144717A (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.)
Nippon Telegraph and Telephone Corp
Original Assignee
Nippon Telegraph and Telephone 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 Nippon Telegraph and Telephone Corp filed Critical Nippon Telegraph and Telephone Corp
Priority to JP2018026723A priority Critical patent/JP6840099B2/ja
Priority to US16/970,591 priority patent/US11640314B2/en
Priority to PCT/JP2019/005325 priority patent/WO2019160030A1/ja
Publication of JP2019144717A publication Critical patent/JP2019144717A/ja
Application granted granted Critical
Publication of JP6840099B2 publication Critical patent/JP6840099B2/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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2023Failover techniques
    • G06F11/2028Failover techniques eliminating a faulty processor or activating a spare
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/16Error detection or correction of the data by redundancy in hardware
    • G06F11/20Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements
    • G06F11/202Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant
    • G06F11/2038Error detection or correction of the data by redundancy in hardware using active fault-masking, e.g. by switching out faulty elements or by switching in spare elements where processing functionality is redundant with a single idle spare processing component
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/301Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is a virtual computing platform, e.g. logically partitioned systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3409Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for performance assessment
    • 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/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/815Virtual
    • 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

Description

本発明は、サービス提供システム、資源割り当て方法、及び資源割り当てプログラムに関する。
通信サービスを提供するキャリア網などにおいては、以前は、必要とされる様々な通信機能、例えば、ファイアウォール、パケット交換機、音声交換機などをそれぞれ独立した専用のネットワーク装置、すなわち個別のハードウェアで実現し、これらのハードウェア装置を接続してネットワークを構成していた。
一方、近年では仮想化技術を適用したネットワーク機能の仮想化(NFV:Network Functions Virtualization)の採用が進展している。ネットワークの仮想化は、従来専用のハードウェアを用いて実現されていたネットワーク機能をソフトウェア化して汎用サーバ上で動作させるように構成する。仮想化技術をキャリア網に適用することで、経済的にスケーラビリティと信頼性を両立させることや、迅速なサービス提供、サービス毎の需要に応じた柔軟なリソース割り当てと、ハードウェアの寿命に縛られないサービス展開が実現できると期待されている。
また、システムを24時間、365日休みなく稼動させるためには、まずそのシステムの可用性(Availability)を向上させることが重要になる。そこで、HA(High Availability)クラスタと呼ばれるシステムの構成が採用される。HAクラスタは、サーバマシンを冗長化してシステムダウンタイムを最小化するものである。
上記のようなネットワーク機能の仮想化を実現するためには、各サーバのハードウェア上に仮想マシン(VM:Virtual Machine)を構築し、必要とされるそれぞれの通信機能のアプリケーションを、構築された各仮想マシン上で実行されるソフトウェアとして実現する。つまり、仮想ネットワーク機能(VNF:Virtual Network Function)として各アプリケーションを構成する。
また、HAクラスタのような冗長構成を採用する場合において、例えばアクティブ/スタンバイ構成であれば、同じ機能を実現する仮想ネットワーク機能のペアを予め用意して、ペアの一方をアクティブ側、すなわち現用系とし、ペアの他方をスタンバイ側、すなわち待機系とする。そして、アクティブ側の仮想ネットワーク機能に何らかの障害が発生した場合には、それとペアになっている他方の仮想ネットワーク機能をスタンバイ状態からアクティブ状態に切り替えることにより瞬時のフェイルオーバを可能にする。
一方、各サーバのハードウェア上に各仮想マシンや上記の仮想ネットワーク機能を構成するためには、実際に存在しているハードウェア、すなわち物理リソース、特に演算機能を、仮想マシンが必要とする仮想リソースに割り当てる必要がある。具体的には、サーバ内の各プロセッサ(CPU)がチップ毎に複数の中核回路、すなわちCPUコアを内蔵しているので、コア単位で、物理CPUコアを仮想CPUコアに割り当てることが必要になる。
性能要件が高い通信ソフトウェアへネットワーク仮想化技術を適用することを考えると、リアルタイム性を追求するとともに性能のゆらぎを抑えることが求められる。このような仮想化において、高い性能要件を満たすために仮想CPUを物理的なCPU(CPUコア)に固定的に対応付ける割り付け方法が用いられる。これがCPUピニング(Pinning)技術である。
例えば、非特許文献1は、オープンソースで開発されているクラウド環境構築用のソフトウェア群である「OpenStack」において、CPUピニングを設定することを示している。具体的には、「OpenStack」においてフレーバー(flavor)と呼ばれる仮想ハードウェアのテンプレートの「Extra Specs」の項目に「hw_cpu_policy=dedicated」という形式でCPUの固定割り付けポリシーを記述できることを示している。CPUの固定割り付けポリシーが設定されたフレーバーを用いることで、CPUの固定割り付けが実現できる。ただし、フレーバーは仮想マシン毎の指定である。
また、非特許文献2はリナックス(Linux(登録商標))カーネル仮想化基盤(KVM:Kernel-based Virtual Machine)におけるCPUピニング設定を示している。具体的には、仮想マシンの設定ファイル(XMLファイル)内の「vcpupin」の設定項目にて、仮想CPUに割り当てる物理的なCPUを指定できることを示している。
また、例えば非特許文献3は、HA技術を示している。すなわち、通信ソフトウェアの多くはアクティブ/スタンバイ(ACT/SBY)構成や「N+M構成」のようなHA構成を採用することで可用性を高めることを示している。アクティブ/スタンバイ構成は、同じシステムを複数用意して耐障害性を高めたシステムで、幾つか(2系統の場合は片方)を待機状態にして、障害時に切り替えて処理を引き継ぐ方式である。一方、「N+M構成」では、エラー発生時に現用ブレードの代わりに予備ブレードが稼働されるように、多数の現用ブレード(N)に対して複数の予備ブレード(M)を電源オフの状態で用意しておく。
例えばアクティブ/スタンバイ構成では、動作中(Active)コンポーネントと、待機中(Standby)コンポーネントが存在し、Activeコンポーネントに障害が発生した場合には、Standbyコンポーネントが処理を引き継ぐことで、サービスの停止を防ぐ、あるいは停止時間を極めて短い時間にすることが可能である。
"Flavors"、[online]、OpenStack Docs、[2018年1月22日検索]、インターネット<URL:https://docs.openstack.org/nova/pike/admin/flavors.html> "libvirt"、[online]、Domain XML format、[2018年1月22日検索]、インターネット<URL:https://libvirt.org/formatdomain.html#elementsCPUTuning/> "Service Availability(TM) Forum, Application Interface Specification", [online]、 Availability Management Framework, SAI-AIS-AMF-B.04.01、[2018年1月22日検索]、インターネット<URL:http://devel.opensaf.org/SAI-AIS-AMF-B.04.01.AL.pdf>
上記のHA構成を採用する場合、ハードウェアの障害発生を考慮すると、HA構成をとる複数のコンポーネントをそれぞれ異なるハードウェア上で動作させる必要がある。また、通信ソフトウェアに仮想化技術を適用してアクティブ/スタンバイ構成を採用する場合には、アクティブ側の仮想ネットワーク機能を実現するアクティブ側の仮想マシンと、スタンバイ側の仮想ネットワーク機能を実現するスタンバイ側の仮想マシンとをそれぞれ準備して、これらを別々のハードウェア上に配置することになる。
また、上記のような構成において適用する通信ソフトウェアの性能要件が高いと、例えば上記のCPUピニングのような手法を採用し、ハードウェアのリソースを占有する状態でアクティブ側の仮想マシンを構築することが必要になる。また、スタンバイ側の仮想マシンについても、アクティブ側と同じ性能を確保するために同じだけのリソースを準備する必要が生じる。
しかしながら、障害が発生していない時にはスタンバイ側の仮想マシンは稼働していないので、スタンバイ側の仮想マシンに大きな性能を有するハードウェアリソースを固定的に割り当てておくと無駄が多くなる。つまり、アクティブ側およびスタンバイ側に同じハードウェアリソースを準備することにより、リソースの利用効率が上がらなくなり、仮想化技術のメリットが阻害される。
本発明は、上記の状況に鑑みてなされたものであり、現用系の仮想マシンの性能保証を可能にすると共に、待機系の仮想マシンを含むシステム全体についてのリソース利用効率を改善することが可能なサービス提供システム、資源割り当て方法、及び資源割り当てプログラムを提供することを目的とする。
(1)所望のサービスを提供可能なアプリケーション機能を、互いにペアをなす第1仮想マシン及び第2仮想マシンにより構成し、前記第1仮想マシンをアクティブ状態、前記第2仮想マシンをスタンバイ状態に定め、アクティブ状態の前記第1仮想マシン又は前記第2仮想マシンを利用してサービスを提供するサービス提供システムであって、
前記第1仮想マシン及び前記第2仮想マシンに割り当て可能な複数のハードウェア計算機資源と、
前記第1仮想マシン及び前記第2仮想マシンを起動する際に、事前に定めた初期条件に従って前記複数のハードウェア計算機資源の中から事前に定めた起動用コア、複数の仮想マシンが共通に利用可能な共有コア、および単一の仮想マシンの占有又は実行優先度が高い占有コアのうち何れかを選択し、選択したハードウェア計算機資源を前記第1仮想マシン及び前記第2仮想マシンに割り当てる初期リソース割り当て部と、
少なくともサービスを開始する前に、前記第1仮想マシンに対して、前記第1仮想マシンが占有又は実行優先度が高い占有コアを割り当てるよう割り当てを変更し、前記第2仮想マシンに対して、前記第2仮想マシンと他の仮想マシンとの共有が可能な共有コアを割り当てるよう割り当てを変更するリソース割り当て変更部と、
を備えたサービス提供システム。
このサービス提供システムによれば、前記リソース割り当て変更部が前記第1仮想マシンに例えば占有の計算機資源を割り当てることにより、前記第1仮想マシンが要求される性能を満たすように十分な計算機資源を割り当てることができる。また、前記リソース割り当て変更部が前記第2仮想マシンに共有の計算機資源を割り当てることにより、システム全体について計算機資源の利用効率を改善できる。しかも、初期状態では事前に定めた初期条件に従って、前記初期リソース割り当て部が計算機資源を割り当てるので、各仮想マシンの起動時にシステム全体の動作を安定化したり、計算機資源の利用効率を高めることが可能になる。
(2)前記初期リソース割り当て部は、前記複数のハードウェア計算機資源の中から事前に定めた起動用コアを選択し、前記起動用コアを前記第1仮想マシン及び前記第2仮想マシンに割り当て、
前記リソース割り当て変更部は、前記第1仮想マシンに対して占有コアを割り当てるよう割り当てを変更し、前記第2仮想マシンに対して共有コアを割り当てるよう割り当てを変更する、
上記(1)に記載のサービス提供システム。
このサービス提供システムによれば、前記第1仮想マシン及び前記第2仮想マシンに初期状態で割り当てる計算機資源が特定の起動用コアのみに限定されるので、各仮想マシンの起動時にシステム全体の動作を安定化することができる。すなわち、仮想マシンを起動する際にはCPUなどの計算機資源に非常に大きな負荷がかかる可能性がある。しかし、既に稼働している他の仮想マシンに割り当てた計算機資源から独立した起動用コアで新たな仮想マシンを起動することで、起動時の負荷変動が他の仮想マシンに影響するのを避けることができる。更に前記第1仮想マシン及び前記第2仮想マシンについては、前記リソース割り当て変更部が計算機資源の割り当てを変更する。これにより、システム全体について計算機資源の利用効率を改善できる。
(3)前記初期リソース割り当て部は、前記複数のハードウェア計算機資源の中から複数の仮想マシンが共通に利用可能な共有コアを選択し、前記共有コアを前記第1仮想マシン及び前記第2仮想マシンに割り当て、
前記リソース割り当て変更部は、前記第1仮想マシンに対して占有コアを割り当てるよう割り当てを変更し、前記第2仮想マシンに対して割り当てを変更しない
上記(1)に記載のサービス提供システム。
このサービス提供システムによれば、前記第1仮想マシン及び前記第2仮想マシンのいずれを起動する場合であっても、複数の仮想マシンが共有可能な共有コアを使用するので、計算機資源の利用効率を高めることが可能になる。また、起動時の負荷変動が、既に稼働しているアクティブ状態の他の仮想マシンに与える影響を抑制できる。更に前記第1仮想マシン及び前記第2仮想マシンについては、前記リソース割り当て変更部が計算機資源の割り当てを変更する。これにより、システム全体について計算機資源の利用効率を改善できる。
(4)前記初期リソース割り当て部は、前記複数のハードウェア計算機資源の中から単一の仮想マシンの占有又は実行優先度が高い占有コアを選択し、前記占有コアを前記第1仮想マシン及び前記第2仮想マシンに割り当て、
前記リソース割り当て変更部は、前記第1仮想マシンに対して計算機資源の割り当てを変更せず、且つ前記第2仮想マシンに対して共有コアを割り当てるよう割り当てを変更する、
上記(1)に記載のサービス提供システム。
このサービス提供システムによれば、前記第1仮想マシンについては、前記リソース割り当て変更部が計算機資源の割り当てを変更することなく、割り当て動作を完了しそのままサービス提供を開始できる。したがって、サービスを要求してからサービスを開始するまでの遅延時間を短縮できる。また、前記第2仮想マシンに対しては前記リソース割り当て変更部が計算機資源の割り当てを変更するが、前記第2仮想マシンはスタンバイ状態なので、この割り当て変更の所要時間は、サービス開始までの遅延時間には影響しない。
(5)アクティブ状態の前記第1仮想マシンにおける障害発生を検知し、前記第2仮想マシンに割り当てられている前記ハードウェア計算機資源が複数の仮想マシンで共有可能な共有コアである場合には、前記第2仮想マシン以外の他の仮想マシンを前記共有コアの割り当て先から排除する障害時制御部、
を備えた上記(1)乃至(4)のいずれかに記載のサービス提供システム。
このサービス提供システムによれば、前記第1仮想マシンに障害が発生した場合に、前記第2仮想マシンがスタンバイ状態からアクティブ状態に切り替わるだけであり、前記第2仮想マシンに対する計算機資源の割り当てを変更する必要がない。しかも、前記第2仮想マシンに割り当てた共有コアからこれを利用する他の仮想マシンが排除されるので、アクティブ状態の前記第2仮想マシンに必要な性能を満たす計算機資源が結果的に割り当てられる。したがって、障害時のフェイルオーバに伴うサービスの中断や遅延を最小化できる。
(6)アクティブ状態の前記第1仮想マシンにおける障害発生を検知し、前記第2仮想マシンに割り当てられている前記ハードウェア計算機資源が複数の仮想マシンで共有可能な共有コアである場合には、前記複数のハードウェア計算機資源の中から占有又は優先利用可能な新たな占有コアを確保して前記第2仮想マシンに割り当てる障害時制御部、
を備えた上記(1)乃至(4)のいずれかに記載のサービス提供システム。
このサービス提供システムによれば、障害発生直後に前記第2仮想マシンに割り当てられている計算機資源を、他の多数の仮想マシンが共有した状態で使用している場合であっても、前記第2仮想マシンに対する新たな占有コアの再割り当てを短時間で完了できる。したがって、同じ計算機資源の共有により生じる前記第2仮想マシンの性能低下を短時間で回復できる。
(7)所望のサービスを提供可能なアプリケーション機能を、互いにペアをなす第1仮想マシン及び第2仮想マシンにより構成し、前記第1仮想マシンをアクティブ状態、前記第2仮想マシンをスタンバイ状態に定め、アクティブ状態の前記第1仮想マシン又は前記第2仮想マシンを利用してサービスを提供するシステムを制御するための資源割り当て方法であって、
前記第1仮想マシン及び前記第2仮想マシンを起動する際に、事前に定めた初期条件に従って予め用意された複数のハードウェア計算機資源の中から事前に定めた起動用コア、複数の仮想マシンが共通に利用可能な共有コア、および単一の仮想マシンの占有又は実行優先度が高い占有コアのうち何れかを選択し、選択したハードウェア計算機資源を前記第1仮想マシン及び前記第2仮想マシンに割り当て、
少なくともサービスを開始する前に、前記第1仮想マシンに割り当てるハードウェア計算機資源は、前記第1仮想マシンの占有又は実行優先度が高い占有コアを割り当てるよう割り当てを変更し、前記第2仮想マシンに割り当てるハードウェア計算機資源は、前記第2仮想マシンと他の仮想マシンとの共有が可能な共有コアを割り当てるよう割り当てを変更する
資源割り当て方法。
この資源割り当て方法によれば、前記第1仮想マシンに占有の計算機資源を割り当てることにより、前記第1仮想マシンが要求される性能を満たすように十分な計算機資源を割り当てることができる。また、前記第2仮想マシンに共有の計算機資源を割り当てることにより、システム全体について計算機資源の利用効率を改善できる。しかも、初期状態では事前に定めた初期条件に従って計算機資源を割り当てるので、各仮想マシンの起動時にシステム全体の動作を安定化したり、計算機資源の利用効率を高めることが可能になる。
(8)所望のサービスを提供可能なアプリケーション機能を、互いにペアをなす第1仮想マシン及び第2仮想マシンにより構成し、前記第1仮想マシンをアクティブ状態、前記第2仮想マシンをスタンバイ状態に定め、アクティブ状態の前記第1仮想マシン又は前記第2仮想マシンを利用してサービスを提供するシステムを制御する計算機が実行可能な資源割り当てプログラムであって、
前記第1仮想マシン及び前記第2仮想マシンを起動する際に、事前に定めた初期条件に従って予め用意された複数のハードウェア計算機資源の中から事前に定めた起動用コア、複数の仮想マシンが共通に利用可能な共有コア、および単一の仮想マシンの占有又は実行優先度が高い占有コアのうち何れかを選択し、選択したハードウェア計算機資源を前記第1仮想マシン及び前記第2仮想マシンに割り当てる初期リソース割り当て手順と、
少なくともサービスを開始する前に、前記第1仮想マシンに対して、前記第1仮想マシンの占有又は実行優先度が高い占有コアを割り当てるよう割り当てを変更し、前記第2仮想マシンに対して、前記第2仮想マシンと他の仮想マシンとの共有が可能な共有コアを割り当てるよう割り当てを変更するリソース割り当て変更手順と、
コンピュータに実行させるための資源割り当てプログラム。
この資源割り当てプログラムを所定のコンピュータで実行して前記システムを制御する場合には、例えば前記第1仮想マシンに占有の計算機資源を割り当てるので、前記第1仮想マシンが要求される性能を満たすように十分な計算機資源を割り当てることができる。また、前記第2仮想マシンに共有の計算機資源を割り当てることにより、システム全体について計算機資源の利用効率を改善できる。しかも、初期状態では事前に定めた初期条件に従って計算機資源を割り当てるので、各仮想マシンの起動時にシステム全体の動作を安定化したり、計算機資源の利用効率を高めることが可能になる。
本発明のサービス提供システム、資源割り当て方法、及び資源割り当てプログラムによれば、現用系の仮想マシンの性能保証を可能にすると共に、待機系の仮想マシンを含むシステム全体についてのリソース利用効率を改善することが可能である。
本実施形態における通信サービスを提供するシステムの構成例を示すブロック図である。 比較例における通信サービスを提供するシステムの構成例を示すブロック図である。 本発明を実施するために必要な構成要素を備えたサービス提供システムの構成例を示すブロック図である。 仮想マシン起動時において、各仮想マシンを構成する仮想コアと物理コアとの割り当て状態の例を示すブロック図である。 割り当て変更後において、各仮想マシンを構成する仮想コアと物理コアとの割り当て状態の例を示すブロック図である。 リソース割り当てを実現するための動作例を示すフローチャートである。 仮想マシン起動時において、各仮想マシンを構成する仮想コアと物理コアとの割り当て状態の例を示すブロック図である。 割り当て変更後において、各仮想マシンを構成する仮想コアと物理コアとの割り当て状態の例を示すブロック図である。 リソース割り当てを実現するための動作例を示すフローチャートである。 仮想マシン起動時の各仮想マシンを構成する仮想コアと物理コアとの割り当て状態の例を示すブロック図である。 図7及び図5Bに示したようなリソース割り当てを実現するための動作例を示すフローチャートである。 仮想マシン起動時における仮想マシン設定ファイルの内容の記述例を表す模式図である。 仮想マシン起動時における仮想マシン設定ファイルの内容の記述例を表す模式図である。 仮想マシン起動時における仮想マシン設定ファイルの内容の記述例を表す模式図である。 割り当てを変更した後のアクティブ側仮想マシン設定ファイルの内容の記述例を表す模式図である。 割り当てを変更した後のスタンバイ側仮想マシン設定ファイルの内容の記述例を表す模式図である。 リソース管理テーブルに従って各仮想マシンにリソースを割り当てる場合の動作例を示すフローチャートである。 障害発生直後におけるシステムの構成及びリソース割り当て状態の例を表すブロック図である。 フェイルオーバの途中におけるシステムの構成及びリソース割り当て状態の例を表すブロック図である。 フェイルオーバ後におけるシステムの構成及びリソース割り当て状態の例を表すブロック図である。 障害発生時のフェイルオーバのための動作例−1を示すフローチャートである。 障害発生時のフェイルオーバのための動作例−2を示すフローチャートである。 冗長構成管理テーブルの構成例を示す模式図である。 リソース管理テーブルの構成例を示す模式図である。
本発明の実施形態について各図を参照しながら以下に説明する。
<通信システムの基本的な構成例>
通信サービスを提供するシステムの定常状態における基本的な構成例を図1A及び図1Bにそれぞれ示す。なお、このシステムを管理する装置は図1A及び図1Bにおいては省略されている。
図1Bに示す構成が一般的に想定される構成であり、図1Aは図1Bの構成を改良した場合に想定される構成を表している。理解を容易にするために、まず図1Bに示す構成について説明する。
図1Bに示す比較例のサービス提供システム100Aは複数台のサーバ31、32、33、及び34を備えている。サーバ31〜34は、物理リソース10−1、10−2、10−3、及び10−4、すなわち計算機の動作に必要な電子回路のハードウェアをそれぞれ内蔵している。
また、各物理リソース10−1〜10−4は、独立した複数の物理CPUコア11をそれぞれ内蔵している。実際のプロセッサ(CPU)のハードウェアは、1つ又は複数の回路基板上に搭載された1つ又は複数の半導体集積回路のチップとして存在している。また、各チップのパッケージの中には互いに独立して動作可能な複数の中核回路、すなわち複数の物理CPUコアを含む場合が多い。したがって、このような計算機資源を管理する場合には、CPUコア毎に独立した状態で管理する必要がある。
図1Bに示した例では、サーバ31上に仮想ネットワーク機能21及び22が配置され、サーバ32上に仮想ネットワーク機能23及び24が配置され、サーバ33上に仮想ネットワーク機能21B及び22Bが配置され、サーバ34上に仮想ネットワーク機能23B及び24Bが配置されている。
これらの仮想ネットワーク機能21〜24及び21B〜24Bの各々は、通信サービスを提供するキャリア網などが必要とする様々な通信機能、例えばファイアウォール、パケット交換機、音声交換機などに対応する。但し、ここではネットワーク機能の仮想化技術NFVを採用しているので、各仮想ネットワーク機能21〜24及び21B〜24Bは、仮想ネットワーク機能VNFとして存在している。
すなわち、汎用サーバのハードウェア上で稼働する仮想マシン(VM:Virtual Machine)がそれに組み込まれたアプリケーションソフトウェアを実行することにより、各仮想ネットワーク機能VNFが実現する。例えば、図1Bに示した仮想ネットワーク機能21〜24は、互いに異なる機能を実現する仮想ネットワーク機能VNF1、VNF2、VNF3、およびVNF4として利用される。
一方、システムを休みなく稼働させる必要があるので、図1Bに示したサービス提供システム100Aは、HAクラスタのような冗長構成を採用した場合を想定している。つまり、同じ機能を実現する仮想ネットワーク機能のペアを予め用意して、ペアの一方をアクティブ側、すなわち現用系ACTとし、ペアの他方をスタンバイ側、すなわち待機系SBYとする。そして、アクティブ側の仮想ネットワーク機能に何らかの障害が発生した場合には、それとペアになっている他方の仮想ネットワーク機能をスタンバイ状態からアクティブ状態に切り替えることにより瞬時のフェイルオーバを可能にする。
図1Bの例では、仮想ネットワーク機能21〜24のそれぞれが現用系ACTとして稼働し、仮想ネットワーク機能21B〜24Bが待機系SBYになっている状態を想定している。したがって、例えば現用系ACTの仮想ネットワーク機能VNF1に何らかの障害が発生した場合には、これとペアの待機系SBYの想化ネットワーク機能VNF1、すなわち仮想ネットワーク機能21Bが待機系SBYから現用系ACTに切り替わり、仮想ネットワーク機能21の代わりに同じ通信サービスの提供を継続することができる。
一方、仮想ネットワーク機能21〜24及び21B〜24Bを実際に構成するためには、各々のアプリケーションソフトウェアを実行可能な仮想マシンを各サーバ31〜34上に構築する必要がある。図1Bの例では、仮想ネットワーク機能21〜24及び21B〜24Bはそれぞれ独立した仮想マシン上で実現されている。
また、各仮想マシンを実現するためには、それぞれが利用可能なハードウェアの機能を確保する必要がある。したがって、各仮想マシンに含まれる1つ又は複数の仮想CPUコア12のそれぞれに対して、物理CPUコア11を割り当てる。図1Bに示した構成においては、物理CPUコア11と仮想CPUコア12とが1対1で個別に対応付けられ、リンク13により関連付けられている。
したがって、図1Bに示した構成においては、仮想ネットワーク機能21〜24及び21B〜24Bのいずれの仮想マシンにおいても、それぞれ独立した物理CPUコア11をそれ自身の占有状態で使用することができる。つまり、各々の物理CPUコア11の性能は変化しないので、それを仮想CPUコア12として使用する各仮想マシンの性能も、他の仮想マシンの影響を受けることがなく変化しない。そのため、仮想ネットワーク機能21〜24に要求される性能を容易に保証できる。
また、図1Bの例では現用系ACTだけでなく、待機系SBYの仮想ネットワーク機能21B〜24Bに対しても、それぞれ占有状態で仮想CPUコア12に物理CPUコア11を割り当てている。そのため、各仮想ネットワーク機能21B〜24Bが待機系SBYから現用系ACTに切り替わった場合においても、これらに要求される性能を容易に保証できる。
しかし、障害が全く発生しない場合を想定すると、待機系SBYの各仮想ネットワーク機能21B〜24Bが現用系ACTに切り替わることはないので、各仮想ネットワーク機能21B〜24Bに割り当てられた全ての物理CPUコア11は不使用状態になる。そのため、システム全体としてリソース、すなわち計算機ハードウェアの利用効率が著しく低下する。但し、実際には障害が発生した時の性能を保証する必要があるので、待機系SBYの各仮想ネットワーク機能21B〜24Bに対しても、現用系ACTと同様に十分なリソースを割り当てておく必要がある。
そこで、リソースの利用効率を改善するために、図1Bの構成の代わりに、図1Aに示したサービス提供システム100Bのような構成を採用することが想定される。図1Aの構成について以下に説明する。
図1Aに示す本実施形態のサービス提供システム100Bは、図1Bの構成と同様に、複数台のサーバ31、32、33、及び34を備えている。サーバ31〜34は、物理リソース10−1、10−2、10−3、及び10−4、すなわち計算機の動作に必要な電子回路のハードウェアをそれぞれ内蔵している。また、各物理リソース10−1〜10−4は、独立した複数の物理CPUコア11をそれぞれ内蔵している。
図1Aに示した例では、サーバ31上に仮想ネットワーク機能21及び22が配置され、サーバ32上に仮想ネットワーク機能23及び24が配置され、サーバ33上に仮想ネットワーク機能25及び26が配置されている。また、サーバ34上に仮想ネットワーク機能21B、22B、23B、24B、25B、及び26Bが配置されている。
図1Aの構成ではネットワーク機能の仮想化技術NFVを採用しているので、各仮想ネットワーク機能21〜26及び21B〜26Bは、仮想ネットワーク機能VNFとして存在している。また、現用系ACTの仮想ネットワーク機能21と待機系SBYの仮想ネットワーク機能21Bとがペアになり冗長化した仮想ネットワーク機能VNF1を形成している。
同様に、仮想ネットワーク機能22及び22Bがペアになり冗長化した仮想ネットワーク機能VNF2を形成している。また、仮想ネットワーク機能23及び23Bがペアになり冗長化した仮想ネットワーク機能VNF3を形成している。また、仮想ネットワーク機能24及び24Bがペアになり冗長化した仮想ネットワーク機能VNF4を形成している。また、仮想ネットワーク機能25及び25Bがペアになり冗長化した仮想ネットワーク機能VNF5を形成している。また、仮想ネットワーク機能26及び26Bがペアになり冗長化した仮想ネットワーク機能VNF6を形成している。
汎用サーバのハードウェア上で稼働する仮想マシンが、それに組み込まれたアプリケーションソフトウェアを実行することにより、図1Aに示した各仮想ネットワーク機能VNF1〜VNF6が実現する。
図1Aに示した構成では、仮想ネットワーク機能21の各仮想CPUコア12に、物理リソース10−1の物理CPUコア11が1対1で割り当てられている。また、仮想ネットワーク機能22の各仮想CPUコア12に、物理リソース10−1の物理CPUコア11が1対1で割り当てられている。つまり、仮想ネットワーク機能21及び22の各仮想マシンは、物理リソース10−1の物理CPUコア11を占有した状態で使用できる。
同様に、仮想ネットワーク機能23の各仮想CPUコア12に、物理リソース10−2の物理CPUコア11が1対1で割り当てられ、仮想ネットワーク機能24の各仮想CPUコア12に、物理リソース10−2の物理CPUコア11が1対1で割り当てられている。また、仮想ネットワーク機能25の各仮想CPUコア12に、物理リソース10−3の物理CPUコア11が1対1で割り当てられ、仮想ネットワーク機能26の各仮想CPUコア12に、物理リソース10−3の物理CPUコア11が1対1で割り当てられている。
一方、仮想ネットワーク機能21B、22B、23B、24B、25B、及び26Bの仮想マシンの仮想CPUコア12は、物理リソース10−4上の共通の物理CPUコア11に割り当てられ、それぞれ個別にリンク13で関連付けられている。つまり、現用系ACTの仮想ネットワーク機能21〜26については、いずれも物理CPUコア11が単一の仮想マシンの占有状態で割り当てられている。また、待機系SBYの仮想ネットワーク機能21B〜26Bについては、共有の物理CPUコア11を複数の仮想マシンが共有する状態で割り当てられている。なお、共有の物理コアとは、実際に複数の仮想マシンによって共有されているものだけではなく、アイドル状態であり複数の仮想マシンによって共有可能なものを含む。
つまり、待機系SBYの仮想ネットワーク機能21B〜26Bが待機系のままである状況においては、これらは能力の高いハードウェアの計算機資源を必要としない。したがって図1Aに示すように共通の物理CPUコア11を複数の仮想マシンで共有するように、待機系SBYの仮想ネットワーク機能21B〜26Bにリソース割り当てを行うことができる。
図1Aの構成ではシステム全体のリソース利用効率が改善されているので、図1Bと同じハードウェアを用いて、仮想ネットワーク機能VNF1〜VNF6の数を4から6に増やすことができる。
しかし、実際のシステムにおいては、状況の変化に伴い、仮想ネットワーク機能VNF1〜VNF6の数が増減する。また、障害の発生に伴って現用系ACTと待機系SBYとが切り替わったり、新たな現用系ACTや待機系SBYを用意する必要が生じる。つまり、図1Aに示した構成のように最初から固定的にリソースを割り当てておくことはできない。また、各仮想ネットワーク機能VNF1〜VNF6の待機系SBYが現用系ACTに切り替わった場合には、共有リソースの割り当てにより必要な性能が得られなくなる可能性がある。
<サービス提供システムの構成例>
本発明を実施するために必要な構成要素を備えたサービス提供システムの構成例を図2に示す。つまり、図2に示したサービス提供システムは、例えば図1Aに示したようなシステム構成を実現するために必要なハードウェアの他に、各仮想マシンや仮想ネットワーク機能VNFを実現し、これらにリソースを割り当てるための管理機能を含んでいる。
図2に示したリソース割当システム40は、リソース要求部50からの要求に従い、制御対象の物理リソース10−1〜10−4から各仮想マシンに割り当てる。また、リソース割当システム40は、状況の変化に応じて物理リソース10−1〜10−4の割り当てを自動的に変更する。
物理リソース10−1〜10−4は、互いに独立して動作する複数の物理CPUコア11を内蔵している。また、図2の構成では、仮想マシン起動時のために予め用意された起動用コア11Bも物理リソース10−1〜10−4に含まれている。各物理CPUコア11及び起動用コア11Bは、例えば図1Aに示したサーバ31〜34の内部にハードウェアとして実在している。
また、図2の構成では、仮想マシン設定ファイル14が物理リソース10−1〜10−4に含まれている。この仮想マシン設定ファイル14は、構築した各仮想マシンの設定状態を表す情報を保持するために利用される。リソース割当システム40が各仮想マシンに物理リソースを割り当てると、その結果が仮想マシン設定ファイル14の内容に反映される。
図2に示したリソース割当システム40は、リソース要求受付部41、VM管理部42、リソース払出し制御部43、監視機能部44、及び記憶部45を備えている。リソース要求受付部41は、リソース要求部50からの要求を受け付けて、該当する仮想マシンの管理や物理リソースの割り当ての動作を開始する。
VM管理部42は、VM情報取得部42a及びリソース操作指示部42bを含む。VM管理部42のVM情報取得部42aは、現用系ACT及び待機系SBYのそれぞれの仮想マシン(VM)の稼働状態の情報を取得する。また、リソース操作指示部42bは、リソース払出し制御部43に対してCPUピニング設定の指示を出す。すなわち、例えば図1Aに示した状態や、図1Bに示した状態のように各物理CPUコア11を各仮想CPUコア12に事前に定めた状態に固定的に割り当てるための指示をVM管理部42が出す。
リソース払出し制御部43は、リソース管理部43a、リソース抽出・選定部43b、及び仮想マシン制御部43cを含んでいる。リソース管理部43aは利用可能な各物理リソースを管理する。リソース抽出・選定部43bは、割り当て可能な物理リソースの抽出及び選定を実施する。このリソース払出し制御部43は、リソース要求部50からの払い出し要求と、VM管理部42からのCPUピニング設定の指示に基づき、リソース払い出し制御を行う。また、リソース払出し制御部43は各仮想マシンの起動、終了等の制御を行う。
監視機能部44は、VM監視機能部44a及びリソース監視機能部44bを含んでいる。この監視機能部44は、各仮想マシン及び物理リソースの監視を行う。例えば、現用系ACTの仮想マシンと待機系SBYの仮想マシンとの間で、ハートビート(heart beat)と呼ばれる稼働情報を定期的に送受信している。この稼働情報をVM監視機能部44aが確認することにより、各仮想マシンが正常に稼働しているか否かを識別できる。リソース監視機能部44bは、物理リソース10−1〜10−4における各物理CPUコア11及び11Bの割り当て状態や故障の有無などを監視する。
記憶部45は、リソース情報リポジトリ45a及び仮想マシンイメージリポジトリ45bを含んでいる。この記憶部45は、物理リソース10−1〜10−4のリソース利用状況、及び各仮想マシンイメージを一元的に管理するためのデータベースである。
<リソース割り当ての動作例−1>
各仮想マシンを構成する仮想コアと物理コアとの割り当て状態の例を図3A及び図3Bに示す。図3Aは仮想マシン起動時の割り当て状態を表し、図3Bは割り当て変更後の状態を表す。この動作例において、リソース払出し制御部43は、複数のハードウェア計算機資源の中から事前に定めた起動用コアを選択する初期リソース割り当て部として機能する。リソース割り当て変更部は更に、現用系ACTの仮想マシン及び待機系SBYの仮想マシンに対して計算機資源の割り当てを変更するリソース割り当て変更部として機能する。
図3Aに示した構成においては、物理リソース10−1〜10−4の上の物理CPUコア11の中で、予め用意された起動用コア11Bが、仮想ネットワーク機能20及び20Bに割り当てられている。つまり、同じ機能を果たす現用系ACTの仮想ネットワーク機能20、及び待機系SBYの仮想ネットワーク機能20Bの全ての仮想CPUコア12が共通の起動用コア11Bのみを共有するようにリソースを割り当ててある。したがって、起動用コア11Bと、仮想ネットワーク機能20、20Bの各仮想CPUコア12とがリンク13で互いに関連付けられている。
仮想マシンを起動する際には、物理CPUコア11などのリソースに一時的に非常に大きな負荷がかかる可能性が高い。したがって、例えば既に稼働している他の仮想マシンが同じ物理CPUコア11を共有している場合には、新たに起動する仮想マシンが既に稼働している他の仮想マシンの性能を低下させる可能性がある。しかし、図3Aのように起動時に使用するリソースを起動用コア11Bのみに限定することにより、既に稼働している他の仮想マシンに影響を及ぼすことはなくなり、安定した状態でサービス提供を継続することが可能になる。
一方、図3Bに示した構成では、物理リソース10−1〜10−4上の複数の占有コア11−Xが、仮想ネットワーク機能20の仮想CPUコア12に割り当てられ、これらがリンク13で互いに関連付けられている。また、物理リソース10−1〜10−4上の複数の共有コア11−Yが、仮想ネットワーク機能20Bの仮想CPUコア12に割り当てられ、これらがリンク13で互いに関連付けられている。
占有コア11−Xは、割り当てた物理CPUコア11と仮想CPUコア12とを1対1の状態のみで利用できるように、CPUピニングの手法により条件付けられたものである。したがって、既に1つの仮想CPUコア12に割り当てられた占有コア11−Xは、他の仮想CPUコア12に割り当てることはできない。
共有コア11−Yは、複数の仮想マシンの仮想CPUコア12が共有できるように条件付けられている。したがって、リソース割り当てを行う際に、既に他の仮想CPUコア12に割り当てられた共有コア11−Yを、更に他の仮想CPUコア12にも同時に割り当てることができる。
なお、上記各占有コア11−X及び共有コア11−Yは、事前に固定的に割り当てる必要はない。すなわち、状況に応じて各物理CPUコア11に対する条件付けを行うことで、必要に応じて占有コア11−X及び共有コア11−Yを確保できる。例えば、占有コア11−Xでも共有コア11−Yでもない空の物理CPUコア11があり、そこに仮想マシンを配置することで占有コア11−Xや共有コア11−Yとなるようにしてもよい。
また、CPUピニング以外の手法を用いて占有コア11−Xと同じようなリソース割り当てを行うことも可能である。例えば、各物理CPUコア11の実行優先度が、現用系ACTと待機系SBYとの間で異なる状態になるように調整すれば、占有コア11−X及び共有コア11−Yと同等の性能を有するリソースを実現できる。具体的には、カーネル仮想化基盤(KVM)の環境であれば、仮想マシンの設定ファイル、すなわちXMLファイル内の<cputune>項目配下の「share」の値を調整することで実現できる。
図3Bに示した構成は、図1Aに示した構成と同等である。つまり、図3Bの構成において、現用系ACTの仮想ネットワーク機能20の仮想マシンはその仮想CPUコア12に割り当てられた占有コア11−Xを占有できるので、必要とされる性能を保証するために十分なリソースを確保できる。また、待機系SBYの仮想ネットワーク機能20Bの仮想マシンの仮想CPUコア12に割り当てられた共有コア11−Yは、同時に他の仮想マシンに割り当てて共有することもできるため、物理リソースの利用効率を上げることができる。
しかし、実際のシステムにおいては、状況の変化に伴い、例えば図1Aに示した仮想ネットワーク機能VNF1〜VNF6の数が増減する。また、障害の発生に伴って現用系ACTと待機系SBYとが切り替わったり、新たな現用系ACTや待機系SBYを用意する必要が生じる。したがって、図3Bに示した構成のように最初から固定的にリソースを割り当てておくことはできない。また、仮想ネットワーク機能VNFの待機系SBYが現用系ACTに切り替わった場合には、共有リソースの割り当てにより必要な性能が得られなくなる可能性がある。
そこで、本実施形態においては、各仮想マシンを起動する際に、図3Aに示したような構成になるようにリソースを割り当てる。そして、図3Aに示した状態から、リソースの割り当てを変更して図3Bに示した状態に切り替える。つまり、以下に示すように制御する。
図3A及び図3Bに示したようなリソース割り当てを実現するための動作例を図4に示す。すなわち、図2に示したリソース割当システム40が図4に示した手順に従って動作を実行することにより、図3Aに示した状態のようにリソースを割り当て、更に図3Bに示した状態のようにリソースを割り当てることができる。図4に示した動作について以下に説明する。
リソース割当システム40内のリソース要求受付部41は、リソース要求部50からのリソース割り当て要求をステップS11で受け付けて、VM管理部42及びリソース払出し制御部43に指示を与える。
リソース払出し制御部43は、今回のリソース割り当て要求に対して割り当て可能なリソースを、ステップS12で物理リソース10−1〜10−4上から抽出する。
また、リソース払出し制御部43は割り当て可能なリソースの中から、より適切なリソースをステップS13で選定する。例えば、障害の発生を考慮する場合は現用系ACTと待機系SBYとを別々のハードウェア上に搭載することが望ましい。したがって、例えば現用系ACTの仮想CPUコア12に割り当てる物理CPUコア11をサーバ31上で選定した場合は、待機系SBYの仮想CPUコア12に割り当てる物理CPUコア11は別のサーバ32〜34上などから選定する。また、本実施形態では各仮想マシンの起動時は常に起動用コア11Bを選定する。
リソース払出し制御部43は、ステップS11〜S13の内容を反映するように、ステップS14で管理テーブルを更新する。この管理テーブルには、例えば後述する冗長構成管理テーブルTB1及びリソース管理テーブルTB2が含まれる。
VM管理部42は、管理テーブルの内容に従い、ステップS15で現用系ACT及び待機系SBYのそれぞれについて新たな仮想マシンを起動する。ここで起動する各仮想マシンの仮想CPUコア12には上記管理テーブル上で起動用コア11Bが割り当てられている。したがって、例えば図3Aに示すようなリソース割り当て状態で、仮想ネットワーク機能20及び20Bの各仮想マシンがステップS15で起動する。
VM管理部42のVM情報取得部42aは、ステップS15で起動した各仮想マシンの起動状態をステップS16でそれぞれ確認する。すなわち、現用系ACTとして起動した仮想マシンと、待機系SBYとして起動した仮想マシンとを区別する。また、その結果を反映して各仮想マシンに対するリソース割り当てを変更するように、ステップS16でリソース操作指示部42bがリソース払出し制御部43に指示を与える。
リソース払出し制御部43は、リソース操作指示部42bの指示に従い、該当する仮想マシンに割り当て可能なリソースを、ステップS17で物理リソース10−1〜10−4上から抽出する。
また、リソース払出し制御部43は割り当て可能なリソースの中から、より適切なリソースをステップS18で選定する。例えば、障害の発生を考慮する場合は現用系ACTと待機系SBYとを別々のハードウェア上に搭載することが望ましい。したがって、例えば現用系ACTの仮想CPUコア12に割り当てる物理CPUコア11をサーバ31上で選定した場合は、待機系SBYの仮想CPUコア12に割り当てる物理CPUコア11は別のサーバ32〜34上などから選定する。
また、本実施形態では現用系ACTの仮想CPUコア12に対しては占有コア11−Xを割り当て、待機系SBYの仮想CPUコア12に対しては共有コア11−Yを割り当てるように選定する。占有コア11−Xを割り当てる場合は、例えばCPUピニングの手法を用いて1対1で、占有コア11−Xと仮想CPUコア12とを対応付ける。なお、例えば実際に物理CPUコア11のリソース割り当てを行った後で、これを占有コア11−X、又は共有コア11−Yとして機能するように条件付けを変更してもよい。
リソース払出し制御部43は、ステップS15〜S18の内容を反映するように、ステップS19で管理テーブルを更新する。また、S19で更新した管理テーブルの内容に従い、VM管理部42がステップS20で仮想マシン設定ファイル14内の該当する仮想マシンの記述内容を更新する。更に、VM管理部42の指示に従い、リソース払出し制御部43内の仮想マシン制御部43cが該当する仮想マシン(VM)をステップS21で再起動する。なお、例えばカーネル仮想化基盤(KVM)を利用している環境であれば、「virsh edit」コマンドを利用することにより、仮想マシン設定ファイル14の内容を編集できる。
リソース割当システム40内のリソース要求受付部41は、ステップS11で受け付けたリソース割り当て要求に対するリソース払い出し応答を、ステップS22でリソース要求部50に通知する。
したがって、図3Aに示したようなリソース割り当て状態を経由して、図3Bに示したようなリソース割り当て状態で、サービス提供システムを構成するように、リソース割当システム40が制御することができる。
<リソース割り当ての動作例−2>
各仮想マシンを構成する仮想コアと物理コアとの割り当て状態の例を図5A及び図5Bに示す。図5Aは仮想マシン起動時の割り当て状態を表し、図5Bは割り当て変更後の状態を表す。この動作例において、リソース払出し制御部43は、ハードウェア計算機資源の中から複数の仮想マシンが共通に利用可能な共有コアを選択する初期リソース割り当て部として機能する。リソース割り当て変更部は更に、現用系ACTの仮想マシン及び待機系SBYの仮想マシンに対して計算機資源の割り当てを変更するリソース割り当て変更部として機能する。
図5Aに示した構成においては、物理リソース10−1〜10−4の上の物理CPUコア11の中で、共有コア11−Yのみが同じ機能を果たす仮想ネットワーク機能20及び20Bの各仮想CPUコア12に割り当てられている。共有コア11−Yは複数の仮想マシンが共有するように割り当てることができるので、図5Aの構成では各共有コア11−Yは、リンク13により同時に複数の仮想CPUコア12と関連付けられている。
なお、同じ機能を果たす現用系ACTの仮想CPUコア12と待機系SBYの仮想CPUコア12に同じ共有コア11−Yを同時に割り当ててもよいし、互いに異なる共有コア11−Yを現用系ACT及び待機系SBYの仮想CPUコア12に割り当ててもよい。
新たな仮想マシンの起動時に図5Aに示した構成を採用する場合には、各仮想マシンが使用するリソースとして共有コア11−Yのみが割り当てられるので、限られた物理リソースを有効に活用して仮想マシンを起動できる。したがって、物理リソースの利用効率が上がり、物理リソースを増設しなくても、より多くの仮想マシンを同時に起動することが可能になる。
一方、図5Bに示した構成では、物理リソース10−1〜10−4上の複数の占有コア11−Xが、仮想ネットワーク機能20の仮想CPUコア12に割り当てられ、これらがリンク13で互いに関連付けられている。また、物理リソース10−1〜10−4上の複数の共有コア11−Yが、仮想ネットワーク機能20Bの仮想CPUコア12に割り当てられ、これらがリンク13で互いに関連付けられている。
図5Bに示した構成は、図1Aに示した構成と同等である。つまり、図5Bの構成において、現用系ACTの仮想ネットワーク機能20の仮想マシンはその仮想CPUコア12に割り当てられた占有コア11−Xを占有できるので、必要とされる性能を保証するために十分なリソースを確保できる。また、待機系SBYの仮想ネットワーク機能20Bの仮想マシンの仮想CPUコア12に割り当てられた共有コア11−Yは、同時に他の仮想マシンに割り当てて共有することもできるため、物理リソースの利用効率を上げることができる。
しかし、実際のシステムにおいては、状況の変化に伴い、例えば図1Aに示した仮想ネットワーク機能VNF1〜VNF6の数が増減する。また、障害の発生に伴って現用系ACTと待機系SBYとが切り替わったり、新たな現用系ACTや待機系SBYを用意する必要が生じる。したがって、図5Bに示した構成のように最初から固定的にリソースを割り当てておくことはできない。また、仮想ネットワーク機能VNFの待機系SBYが現用系ACTに切り替わった場合には、共有リソースの割り当てにより必要な性能が得られなくなる可能性がある。
そこで、本実施形態においては、各仮想マシンを起動する際に、図5Aに示したような構成になるようにリソースを割り当てる。そして、図5Aに示した状態から、リソースの割り当てを変更して図5Bに示した状態に切り替える。つまり、以下に示すように制御する。
図5A及び図5Bに示したようなリソース割り当てを実現するための動作例を図6に示す。すなわち、図2に示したリソース割当システム40が図6に示した手順に従って動作を実行することにより、図5Aに示した状態のようにリソースを割り当て、更に図5Bに示した状態のようにリソースを割り当てることができる。図6に示した動作について以下に説明する。
リソース割当システム40内のリソース要求受付部41は、リソース要求部50からのリソース割り当て要求をステップS31で受け付けて、VM管理部42及びリソース払出し制御部43に指示を与える。
リソース払出し制御部43は、今回のリソース割り当て要求に対して割り当て可能なリソースを、ステップS32で物理リソース10−1〜10−4上から抽出する。
また、リソース払出し制御部43は割り当て可能なリソースの中から、より適切なリソースをステップS33で選定する。例えば、障害の発生を考慮する場合は現用系ACTと待機系SBYとを別々のハードウェア上に搭載することが望ましい。したがって、例えば現用系ACTの仮想CPUコア12に割り当てる物理CPUコア11をサーバ31上で選定した場合は、待機系SBYの仮想CPUコア12に割り当てる物理CPUコア11は別のサーバ32〜34上などから選定する。また、図6の動作を行う場合は、各仮想マシンの起動時に現用系ACT及び待機系SBYのいずれについても常に共有コア11−Yを選定する。
リソース払出し制御部43は、ステップS31〜S33の内容を反映するように、ステップS34で管理テーブルを更新する。この管理テーブルには、例えば後述する冗長構成管理テーブルTB1及びリソース管理テーブルTB2が含まれる。
VM管理部42は、管理テーブルの内容に従い、ステップS35で現用系ACT及び待機系SBYのそれぞれについて新たな仮想マシンを起動する。ここで起動する各仮想マシンの仮想CPUコア12には上記管理テーブル上で共有コア11−Yが割り当てられている。したがって、例えば図5Aに示すようなリソース割り当て状態で、仮想ネットワーク機能20及び20Bの各仮想マシンがステップS35で起動する。
VM管理部42のVM情報取得部42aは、ステップS35で起動した各仮想マシンの起動状態をステップS36でそれぞれ確認する。すなわち、現用系ACTとして起動した仮想マシンと、待機系SBYとして起動した仮想マシンとを区別する。また、その結果を反映して各仮想マシンに対するリソース割り当てを変更するように、ステップS36でリソース操作指示部42bがリソース払出し制御部43に指示を与える。
リソース払出し制御部43は、リソース操作指示部42bの指示に従い、該当する仮想マシンに割り当て可能なリソースを、ステップS37で物理リソース10−1〜10−4上から抽出する。
また、リソース払出し制御部43は割り当て可能なリソースの中から、より適切なリソースをステップS38で選定する。例えば、障害の発生を考慮する場合は現用系ACTと待機系SBYとを別々のハードウェア上に搭載することが望ましい。したがって、例えば現用系ACTの仮想CPUコア12に割り当てる物理CPUコア11をサーバ31上で選定した場合は、待機系SBYの仮想CPUコア12に割り当てる物理CPUコア11は別のサーバ32〜34上などから選定する。
また、図6の動作を行う場合には、現用系ACTの仮想CPUコア12に対しては占有コア11−Xを割り当て、待機系SBYの仮想CPUコア12に対しては共有コア11−Yを割り当てるように選定する。占有コア11−Xを割り当てる場合は、例えばCPUピニングの手法を用いて1対1で、占有コア11−Xと仮想CPUコア12とを対応付ける。なお、例えば実際に物理CPUコア11のリソース割り当てを行った後で、これを占有コア11−X、又は共有コア11−Yとして機能するように条件付けを変更してもよい。
リソース払出し制御部43は、ステップS35〜S38の内容を反映するように、ステップS39で管理テーブルを更新する。また、S39で更新した管理テーブルの内容に従い、VM管理部42がステップS40で仮想マシン設定ファイル14内の該当する仮想マシンの記述内容を更新する。更に、VM管理部42の指示に従い、リソース払出し制御部43内の仮想マシン制御部43cが該当する仮想マシン(VM)をステップS41で再起動する。
リソース割当システム40内のリソース要求受付部41は、ステップS31で受け付けたリソース割り当て要求に対するリソース払い出し応答を、ステップS42でリソース要求部50に通知する。
したがって、図5Aに示したようなリソース割り当て状態を経由して、図5Bに示したようなリソース割り当て状態で、サービス提供システムを構成するように、リソース割当システム40が制御することができる。
<リソース割り当ての動作例−3>
各仮想マシンを構成する仮想コアと物理コアとの割り当て状態の例を図7に示す。図7は仮想マシン起動時における割り当て状態を表す。なお、割り当て変更後の状態は、既に説明した図5Bの内容と同様である。この動作例において、リソース払出し制御部43は、複数のハードウェア計算機資源の中から単一の仮想マシンの占有又は実行優先度が高い占有コアを選択し、この占有コアを初期状態の仮想マシンに割り当てる初期リソース割り当て部として機能する。更にリソース払出し制御部43は、現用系ACTの仮想マシンについては、計算機資源の割り当てを変更することなく割り当て動作を完了するリソース割り当て変更部として機能する。リソース払出し制御部43は、待機系SBYの仮想マシンについては、計算機資源の割り当てを変更するリソース割り当て変更部として機能する。
図7に示した構成においては、物理リソース10−1〜10−4の上の物理CPUコア11の中で、占有コア11−Xのみが同じ機能を果たす仮想ネットワーク機能20及び20Bの各仮想CPUコア12に割り当てられている。占有コア11−Xは単一の仮想マシンのみが利用できるように割り当てられるので、図7の構成では独立した複数の占有コア11−Xが、リンク13により複数の仮想CPUコア12とそれぞれ1対1で関連付けられている。
なお、障害の発生を考慮すると、同じ機能を果たす現用系ACTの仮想CPUコア12と待機系SBYの仮想CPUコア12のそれぞれに対しては、互いに独立した別のハードウェア、例えば互いに異なるサーバの中から占有コア11−Xを選定して割り当てることが望ましい。
新たな仮想マシンの起動時に図7に示した構成を採用する場合には、各仮想マシンが使用するリソースとして占有コア11−Xのみが割り当てられるので、最終的なリソース割り当てを完了するまでの所要時間を短縮できる。すなわち、現用系ACTの仮想マシンについては、図7に示す状態からリソース割り当てを変更しなくてもそのままサービスを開始できるので、リソース割り当ての変更に伴う処理の遅延を抑制できる。
実際のシステムにおいては、状況の変化に伴い、例えば図1Aに示した仮想ネットワーク機能VNF1〜VNF6の数が増減する。また、障害の発生に伴って現用系ACTと待機系SBYとが切り替わったり、新たな現用系ACTや待機系SBYを用意する必要が生じる。したがって、図7に示した構成のように最初から固定的にリソースを割り当てておくことはできない。また、図7に示した構成のままだと、待機系SBYの仮想マシンも現用系ACTと同様に占有コア11−Xのリソースを占有してしまうので、物理リソースの利用効率が上がらなくなる。
そこで、本実施形態においては、各仮想マシンを起動する際に、図7に示したような構成になるようにリソースを割り当てる。そして、図7に示した状態から、リソースの割り当てを変更して図5Bに示した状態に切り替える。つまり、以下に示すように制御する。
図7及び図5Bに示したようなリソース割り当てを実現するための動作例を図8に示す。すなわち、図2に示したリソース割当システム40が図8に示した手順に従って動作を実行することにより、図7に示した状態のようにリソースを割り当て、更に例えば図5Bに示した状態のようにリソース割り当てを変更できる。図8に示した動作について以下に説明する。
リソース割当システム40内のリソース要求受付部41は、リソース要求部50からのリソース割り当て要求をステップS51で受け付けて、VM管理部42及びリソース払出し制御部43に指示を与える。
リソース払出し制御部43は、今回のリソース割り当て要求に対して割り当て可能なリソースを、ステップS52で物理リソース10−1〜10−4上から抽出する。
また、リソース払出し制御部43は割り当て可能なリソースの中から、より適切なリソースをステップS53で選定する。例えば、障害の発生を考慮する場合は現用系ACTと待機系SBYとを別々のハードウェア上に搭載することが望ましい。したがって、例えば現用系ACTの仮想CPUコア12に割り当てる物理CPUコア11をサーバ31上で選定した場合は、待機系SBYの仮想CPUコア12に割り当てる物理CPUコア11は別のサーバ32〜34上などから選定する。また、図8の動作を行う場合は、各仮想マシンの起動時に現用系ACT及び待機系SBYのいずれについても常に占有コア11−Xを選定する。
リソース払出し制御部43は、ステップS51〜S53の内容を反映するように、ステップS54で管理テーブルを更新する。この管理テーブルには、例えば後述する冗長構成管理テーブルTB1及びリソース管理テーブルTB2が含まれる。
VM管理部42は、管理テーブルの内容に従い、ステップS55で現用系ACT及び待機系SBYのそれぞれについて新たな仮想マシンを起動する。ここで起動する各仮想マシンの仮想CPUコア12には上記管理テーブル上で占有コア11−Xが割り当てられている。したがって、例えば図7に示すようなリソース割り当て状態で、仮想ネットワーク機能20及び20Bの各仮想マシンがステップS55で起動する。
VM管理部42のVM情報取得部42aは、ステップS55で起動した各仮想マシンの起動状態をステップS56でそれぞれ確認する。すなわち、現用系ACTとして起動した仮想マシンと、待機系SBYとして起動した仮想マシンとを区別する。また、その結果を反映して各仮想マシンに対するリソース割り当てを変更するように、ステップS56でリソース操作指示部42bがリソース払出し制御部43に指示を与える。
リソース払出し制御部43は、リソース操作指示部42bの指示に従い、該当する仮想マシンに割り当て可能なリソースを、ステップS57で物理リソース10−1〜10−4上から抽出する。
また、リソース払出し制御部43は割り当て可能なリソースの中から、より適切なリソースをステップS58で選定する。例えば、障害の発生を考慮する場合は現用系ACTと待機系SBYとを別々のハードウェア上に搭載することが望ましい。したがって、例えば現用系ACTの仮想CPUコア12に割り当てる物理CPUコア11をサーバ31上で選定した場合は、待機系SBYの仮想CPUコア12に割り当てる物理CPUコア11は別のサーバ32〜34上などから選定する。
また、図8の動作を行う場合には、現用系ACTの仮想CPUコア12に対しては占有コア11−Xを割り当て、待機系SBYの仮想CPUコア12に対しては共有コア11−Yを割り当てるように選定する。占有コア11−Xを割り当てる場合は、例えばCPUピニングの手法を用いて1対1で、占有コア11−Xと仮想CPUコア12とを対応付ける。なお、例えば実際に物理CPUコア11のリソース割り当てを行った後で、これを占有コア11−X、又は共有コア11−Yとして機能するように条件付けを変更してもよい。
実際には、最初に仮想マシンを起動した状態、例えば図7に示した状態で、現用系ACTの仮想マシンには占有コア11−Xが割り当てられているのでこれを変更する必要はない。つまり、起動時の状態で占有コア11−Xが割り当てられている待機系SBYのみについて、リソース割り当て変更のための選定をステップS58で実施する。
リソース払出し制御部43は、ステップS55〜S58の内容を反映するように、ステップS59で管理テーブルを更新する。また、S59で更新した管理テーブルの内容に従い、VM管理部42がステップS60で仮想マシン設定ファイル14内の該当する仮想マシンの記述内容を更新する。更に、VM管理部42の指示に従い、リソース払出し制御部43内の仮想マシン制御部43cが該当する仮想マシン(VM)をステップS61で再起動する。
リソース割当システム40内のリソース要求受付部41は、ステップS51で受け付けたリソース割り当て要求に対するリソース払い出し応答を、ステップS62でリソース要求部50に通知する。
したがって、図7に示したようなリソース割り当て状態を経由して、図5Bに示したようなリソース割り当て状態で、サービス提供システムを構成するように、リソース割当システム40が制御することができる。
<仮想マシン設定ファイル14の記述例>
仮想マシンの初期起動時における仮想マシン設定ファイル14の内容の記述例を図9A、図9B、及び図9Cにそれぞれ示す。
図9Aに示した仮想マシン設定ファイル14Aの内容は、例えば図3Aに示したようなリソース割り当てを実現するための記述例である。すなわち、図9Aの記述例は、仮想マシン設定ファイル14A中の<cputune>項目において、0番、1番、2番の「vcpu」で示された各仮想マシンの仮想CPUコア12に対して、起動用コア11Bとして用意された0番の物理CPUコア11を割り当てることを意味している。
また、図9Bに示した仮想マシン設定ファイル14Bの内容は、例えば図5Aに示したようなリソース割り当てを実現するための記述例である。すなわち、図9Bの記述例は、仮想マシン設定ファイル14B中の<cputune>項目において、0番、1番、2番の「vcpu」で示された各仮想マシンの仮想CPUコア12に対して、共有コア11−Yに相当する7番の物理CPUコア11を割り当てることを意味している。
また、図9Cに示した仮想マシン設定ファイル14Cの内容は、例えば図7に示したようなリソース割り当てを実現するための記述例である。すなわち、図9Cの記述例は、仮想マシン設定ファイル14C中の<cputune>項目において、0番、1番、2番の「vcpu」で示された各仮想マシンの仮想CPUコア12に対して、占有コア11−Xに相当する1番、2番、3番の各物理CPUコア11を割り当てることを意味している。
一方、割り当てを変更した後の仮想マシン設定ファイル14の内容の記述例を図10A及び図10Bにそれぞれ示す。
図10Aに示した仮想マシン設定ファイル14Dの記述例は、例えば図3Bに示す割り当て状態のように、リソース割り当てを変更した後の、現用系ACTの仮想マシンに対するリソース割り当ての内容を表している。
すなわち、図10Aの記述例では、仮想マシン設定ファイル14D中の<cputune>項目において、0番、1番、2番の「vcpu」で示された各仮想マシンの仮想CPUコア12に対して、占有コア11−Xに相当する1番、2番、3番の独立した物理CPUコア11を個別に割り当てることを意味している。
図10Bに示した仮想マシン設定ファイル14Eの記述例は、例えば図3Bに示す割り当て状態のように、リソース割り当てを変更した後の、待機系SBYの仮想マシンに対するリソース割り当ての内容を表している。
すなわち、図10Bの記述例では、仮想マシン設定ファイル14E中の<cputune>項目において、0番、1番、2番の「vcpu」で示された各仮想マシンの仮想CPUコア12に対して、共有コア11−Yに相当する7番、8番、9番の各物理CPUコア11を割り当てることを意味している。なお、同じ1つの共有コア11−Yを待機系SBYの複数又は全ての仮想CPUコア12に割り当ててもよい。つまり、実際の物理リソースのキャパシティを超える仮想リソースを仮想マシンに割り当てること、すなわちオーバーコミットを実施することができる。
<詳細なリソース割り当て動作の具体例>
リソース管理テーブルに従って各仮想マシンにリソースを割り当てる場合の動作例を図11に示す。すなわち、図4中のステップS16〜S18、図6中のステップS36〜S38、図8中のステップS56〜S58に相当する処理の詳細が図11に示されている。したがって、リソース割当システム40が図11に示した動作を実行することにより、例えば図3B、図5Bに示すような望ましい状態にリソースの割り当てを変更することができる。図11の動作について以下に説明する。
リソース払出し制御部43は、ステップS71でリソース選定テーブルを作成し、ステップS72で変数Xを1に初期化した後、ステップS73以降の処理をループ状に繰り返し実行する。
リソース払出し制御部43は、ステップS73で図16に示したようなリソース管理テーブルTB2から変数Xの値で特定される行のリソースを選択する。なお、リソース管理テーブルTB2については後で説明する。
リソース払出し制御部43は、ステップS74〜S84の間の処理を、処理対象の仮想CPUコア12の数に相当する回数だけ繰り返し実行する。
ステップS75では、リソース払出し制御部43は割当先の仮想マシンが現用系ACTの仮想マシン「Active VM」か否かを識別する。割当先が現用系ACTであればステップS76に進み、待機系SBYであればステップS80に進む。
ステップS76では、リソース払出し制御部43は割り当てる物理CPUコア11が「占有」状態か否かを識別し、「占有」状態であればステップS77に進み、「占有」状態でなければステップS79に進む。
ステップS77では、リソース払出し制御部43は「多重率」から「使用率」を減算した結果が「要求使用率」以上か否かを識別し、この条件を満たす場合はステップS78に進み、条件を満たさない場合はステップS79に進む。
ステップS78では、リソース払出し制御部43は、ステップS71で作成したリソース選定テーブルの該当行の位置に、「割り当て可」を表す情報を書き込む。またステップS79では、リソース払出し制御部43はリソース選定テーブルの該当行の位置に「割り当て不可」を表す情報を書き込む。
ステップS80では、リソース払出し制御部43は割り当てる物理CPUコア11が「共有」状態か否かを識別し、「共有」状態であればステップS81に進み、「共有」状態でなければステップS83に進む。
ステップS81では、リソース払出し制御部43は「多重率」から「使用率」を減算した結果が「要求使用率」以上か否かを識別し、この条件を満たす場合はステップS82に進み、条件を満たさない場合はステップS83に進む。
ステップS82では、リソース払出し制御部43は、リソース選定テーブルの該当行の位置に、「割り当て可」を表す情報を書き込む。またステップS83では、リソース払出し制御部43はリソース選定テーブルの該当行の位置に「割り当て不可」を表す情報を書き込む。
ステップS85では、リソース払出し制御部43がリソース管理テーブルTB2の最後の行まで処理が完了したか否かを識別し、完了した場合はステップS87に進む。完了してなければステップS86に進み、変数Xの値をインクリメントしてからステップS73に戻って上記の処理を繰り返す。
ステップS87では、リソース払出し制御部43は、上記の処理の結果がハードウェア(HW)の条件を満たすか否かを識別し、条件を満たす場合はそのまま図11の処理を終了する。ハードウェアの条件を満たさない場合は、リソース払出し制御部43はステップS88に進み、リソース選定テーブルに「割り当て不可」の情報を書き込む。ここでハードウェア条件を満たすとは、「anti-affinity」属性等のHW割当条件を満足することを意味する。anti-affinity属性は、特定の仮想マシンが常に違う物理サーバで実行される必要があることを指定するものである。
<障害発生時のフェイルオーバ(failover)動作>
システムの構成及びリソース割り当て状態の例を図12A〜図12Cに示す。図12Aは現用系ACTの仮想ネットワーク機能21に障害が発生した直後の状態を表し、図12Bはフェイルオーバの途中の状態を表し、図12Cはフェイルオーバした後の状態を表す。
例えば図1Aに示した構成のように、仮想ネットワーク機能21および22が稼働している状況において、図12Aのように現用系ACTの仮想ネットワーク機能21に障害19が発生する場合がある。このシステムにおいては、冗長構成として、現用系ACTの仮想ネットワーク機能21とペアになる待機系SBYの仮想ネットワーク機能21Bが存在しているので、障害発生時でも現用系ACTから待機系SBYに切り替えて、すなわちフェイルオーバしてサービスの提供をそのまま継続することが可能である。
但し、図12Aの構成において、仮想ネットワーク機能21Bの仮想CPUコア12には共有コア11−Yが割り当てられているので、このままでは使用可能なリソースの能力が不足し、フェイルオーバした後で必要な性能が得られない。したがって、フェイルオーバの際にリソースの割り当てを変更する必要がある。
図12Aの状態から、フェイルオーバおよびリソースの割り当ての変更を実施すると、例えば図12Bの状態を経て図12Cに示すような状態になる。すなわち、図12Bの構成では、機能を停止した仮想ネットワーク機能21の代わりになる、新たな現用系ACTの仮想ネットワーク機能21Cが用意されている。また、仮想ネットワーク機能21Cは現用系ACTなのでその仮想CPUコア12にはハードウェアリソースとして占有コア11−Xが割り当てられる。また、図12Bの状態では別の仮想ネットワーク機能22Bがまだ同じ占有コア11−Xを共有している。そこで、例えば図12Cに示すように仮想ネットワーク機能22Bが他の共有コア11−Yを使用するようにリソース割り当てを変更する。
実際には、図12Aの状態から図12Cの状態に切り替えるために、以下に示す各ステップSf1〜Sf4のような動作が実行される。
Sf1:障害19の検出動作
監視機能部44が障害の発生を検出するか、又は該当する仮想ネットワーク機能VNF1のアプリケーションソフトウェアが障害の発生を検出し、それをVM管理部42に通知する。
Sf2:フェイルオーバ動作
待機系SBYの仮想ネットワーク機能VNF1のアプリケーションソフトウェアの機能により、待機系SBYから現用系ACTの仮想マシンに切り替わる。この動作は、上記のステップSf1の障害検出動作より先に発生する可能性もある。
Sf3:仮想マシンの起動状態確認およびCPUリソース再割り当て動作
_Sf31:VM管理部42が障害19の発生した仮想マシンと冗長構成のペアを組んでいる他方の仮想マシンを冗長構成管理テーブルTB1(図15に示す)から特定してその起動状態を確認し、更にCPUリソースの共有状況をリソース管理テーブルTB2により確認する。例えば、リソース管理テーブルTB2において「状態」が「共有」の場合には、図12Aのように現用系ACTで障害が発生したことをVM管理部42が確認できる。例えば図12Aの場合は、障害が発生した仮想ネットワーク機能21とペアの仮想ネットワーク機能21Bの仮想CPUコア12に共有コア11−Yが割り当てられているので、これを占有コア11−Xに変更する必要がある。したがって、以下のステップSf31A、Sf31Bのいずれかを実行する。
__Sf31A:現用系ACTに切り替えた仮想ネットワーク機能21Bの仮想マシンに割り当てた共有コア11−Yを共有している他の待機系SBYの仮想マシンを、この共有コア11−Yの割当先から追い出して排除する。これにより、該当する共有コア11−Yを新たな占有コア11−Xとして仮想ネットワーク機能21Bの仮想マシンがそのまま利用できる。
__Sf31B:新たにCPUリソースを払い出し、物理CPUコア11と仮想CPUコア12とを1対1の関係でCPUピニングにより固定的に占有するように、該当する仮想マシンの定義ファイルの内容を更新する。
_Sf32:上記ステップSf31Aを実行した場合には、共有コア11−Yから追い出した他の仮想マシンを使用可能な所定の状態に戻す必要がある。したがって、以下のステップSf32A、Sf32Bのいずれかを実行する。
__Sf32A:該当する他の仮想マシンをサスペンドおよびシャットオフして、新たに待機系SBYの仮想マシンのためにCPUリソースを払い出し、この仮想マシンの定義ファイルの内容を更新する。
__Sf32B:該当する他の仮想マシンを一度削除した後、再度該当する待機系SBYの仮想マシンを起動する。
Sf4:新たな待機系SBYの仮想マシンの起動および組み込み動作
VM管理部42がリソース払出し制御部43に新たな待機系SBYの仮想マシンの起動を指示する。
一方、待機系SBYの仮想マシンに障害が発生した場合には、フェイルオーバは不要なので、上記ステップSf1、Sf3、及びSf4のみを実行する。また、その場合のステップSf3では次のように処理する。
VM管理部42が障害19の発生した仮想マシンと冗長構成のペアを組んでいる他方の仮想マシンを冗長構成管理テーブルTB1から特定してその起動状態を確認し、更にCPUリソースの共有状況をリソース管理テーブルTB2により確認する。例えば、リソース管理テーブルTB2において「状態」が「占有」の場合には、待機系SBYで障害が発生したことをVM管理部42が確認できる。その場合は、リソースの再割り当ては行わない。
<フェイルオーバの具体的な動作例−1>
障害発生時のフェイルオーバのための動作例−1を図13に示す。すなわち、上記のステップSf31Aをリソース割当システム40が実行する場合の動作例が図13に示されている。図13の動作について以下に説明する。
ステップS101で、監視機能部44が障害19の発生を検出する。例えば、正常時は現用系ACTと待機系SBYとの間で互いに通知されるハートビートの稼働情報を監視することで障害19を検出できる。
ステップS102で、VM管理部42が、冗長構成管理テーブルTB1を参照して、障害19が発生した仮想マシンと冗長構成のペアになる正常な方の仮想マシンを特定する情報を抽出する。また、ステップS102で抽出した正常な仮想マシンの起動状態をVM管理部42がステップS103、S104で確認する。すなわち、該当する正常な仮想マシンの稼働状態がアクティブ状態(Active VM)か否かをステップS104で識別する。
該当する正常な仮想マシンの稼働状態がアクティブ状態でない場合は、ステップS104からS105に進み、一定時間(X秒)のスリープ(Sleep)により待機し、アクティブ状態になるまで待つ。
該当する正常な仮想マシンの稼働状態がアクティブ状態になった場合には、ステップS106でリソース払出し制御部43がリソース管理テーブルTB2の内容を参照し、該当するリソースの「状態」が「共有」か否かを識別する。つまり、該当する仮想マシンの仮想CPUコア12に割り当てられた物理CPUコア11が共有コア11−Yか否かを識別する。該当するリソースの「状態」が「共有」の場合はステップS107に進み、「共有」でない場合はステップS113に進む。
ステップS107では、同じ物理CPUコア11を共有している他の仮想マシンを、VM管理部42がリソース管理テーブルTB2上の「割当先」の情報により特定し、他の仮想マシンをサスペンドおよびシャットオフする。これにより、フェイルオーバにより新たな現用系ACTとして動作する仮想マシンに割り当てられた共有コア11−Yの割当先から他の仮想マシンを追い出すことができ、この共有コア11−Yを占有コア11−Xとして使用できる。
一方、ステップS107の処理により共有コア11−Yの割当先から追い出した他の仮想マシンを使用可能な通常の状態に戻すために、リソース払出し制御部43が各ステップS108〜S112を実行する。
ステップS108では、リソース抽出・選定部43bが該当する仮想マシンに割り当て可能な物理CPUコア11をリソースとして抽出する。また、ステップS109ではリソース抽出・選定部43bが該当する仮想マシンに割り当てる適切な物理CPUコア11を選定する。
また、ステップS109の選定結果を反映するように、ステップS110でリソース払出し制御部43が冗長構成管理テーブルTB1およびリソース管理テーブルTB2の内容を更新する。更に、ステップS111でリソース払出し制御部43が仮想マシン設定ファイル14の内容を更新する。
また、ステップS111で更新された仮想マシン設定ファイル14の内容を反映した状態で該当する仮想マシンが動作するように、ステップS112でリソース払出し制御部43が該当する仮想マシンを再起動する。
一方、障害19が発生した仮想マシンが待機系SBYであった場合には、それとペアの現用系ACTの仮想マシンは現状のまま継続して利用できるので、フェイルオーバは不要である。但し、障害19が発生した待機系SBYの仮想マシンの代わりを、これ以降の障害発生に備えて準備しておく必要がある。
したがって、ステップS113で、VM管理部42が待機系SBYとして動作可能な新規仮想マシン(Standby VM)を起動するための指示をリソース払出し制御部43に与える。リソース払出し制御部43は、ステップS114でVM管理部42からの指示に従い、待機系SBYとして動作可能な新規仮想マシンについて、所定の起動シーケンスを実行する。例えば、図4、図6、および図8のいずれかに示した動作を実行する。
<フェイルオーバの具体的な動作例−2>
障害発生時のフェイルオーバのための動作例−2を図14に示す。すなわち、上記のステップSf31Bをリソース割当システム40が実行する場合の動作例が図14に示されている。図14の動作について以下に説明する。
ステップS121で、監視機能部44が障害19の発生を検出する。例えば、正常時は現用系ACTと待機系SBYとの間で互いに通知されるハートビートの稼働情報を監視することで障害19を検出できる。
ステップS122で、VM管理部42が、冗長構成管理テーブルTB1を参照して、障害19が発生した仮想マシンと冗長構成のペアになる正常な方の仮想マシンを特定する情報を抽出する。また、ステップS122で抽出した正常な仮想マシンの起動状態をVM管理部42がステップS123、S124で確認する。すなわち、該当する正常な仮想マシンの稼働状態がアクティブ状態(Active VM)か否かをステップS124で識別する。
該当する正常な仮想マシンの稼働状態がアクティブ状態でない場合は、ステップS124からS125に進み、一定時間(X秒)のスリープ(Sleep)により待機し、アクティブ状態になるまで待つ。
該当する正常な仮想マシンの稼働状態がアクティブ状態になった場合には、ステップS126でリソース払出し制御部43がリソース管理テーブルTB2の内容を参照し、該当するリソースの「状態」が「共有」か否かを識別する。つまり、該当する仮想マシンの仮想CPUコア12に割り当てられた物理CPUコア11が共有コア11−Yか否かを識別する。該当するリソースの「状態」が「共有」の場合はステップS127に進み、「共有」でない場合はステップS131に進む。
ステップS127〜S130では、フェイルオーバにより新たな現用系ACTとして稼働させる仮想マシンに対して、共有コア11−Yの代わりに適切な占有コア11−Xを割り当てるためのリソース割り当てをリソース払出し制御部43が実行する。
ステップS127では、リソース抽出・選定部43bが該当する仮想マシンに割り当て可能な物理CPUコア11をリソースとして抽出する。また、ステップS128ではリソース抽出・選定部43bが該当する仮想マシンに割り当てる適切な物理CPUコア11として占有コア11−Xを選定する。
また、ステップS128の選定結果を反映するように、ステップS129でリソース払出し制御部43が冗長構成管理テーブルTB1およびリソース管理テーブルTB2の内容を更新する。更に、ステップS130でリソース払出し制御部43が仮想マシン設定ファイル14の内容を更新する。
一方、障害19が発生した仮想マシンが待機系SBYであった場合には、それとペアの現用系ACTの仮想マシンは現状のまま継続して利用できるので、フェイルオーバは不要である。但し、障害19が発生した待機系SBYの仮想マシンの代わりを、これ以降の障害発生に備えて準備しておく必要がある。
したがって、ステップS131で、VM管理部42が待機系SBYとして動作可能な新規仮想マシン(Standby VM)を起動するための指示をリソース払出し制御部43に与える。リソース払出し制御部43は、ステップS132でVM管理部42からの指示に従い、待機系SBYとして動作可能な新規仮想マシンについて、所定の起動シーケンスを実行する。例えば、図4、図6、および図8のいずれかに示した動作を実行する。
<管理テーブルの構成例>
冗長構成管理テーブルTB1の構成例を図15に示す。この冗長構成管理テーブルTB1は、障害発生時に、障害の発生した仮想マシンと冗長構成のペアになるもう一方の仮想マシンを特定するために利用される。
図15に示した冗長構成管理テーブルTB1は、仮想ネットワーク機能VNFのアプリケーションソフトウェア(App)毎に、アプリケーションの識別子(App ID)、仮想マシン番号(VM Number)、仮想マシン識別子(VM ID)、および仮想IPアドレス(Virtual IP)の情報を保持する領域を有している。
なお、図15の冗長構成管理テーブルTB1において、仮想IPアドレスの情報はなくてもよい。また、例えば仮想IPアドレスの代わりに、所属する全ての仮想マシンのIPアドレスを管理することにより、冗長構成のペアになるもう一方の仮想マシンを把握可能である。
図15に示した例では、例えば1番目の仮想ネットワーク機能VNF1については、仮想マシン識別子の項目に含まれている2つの情報「#01」、「#02」から、1番目の仮想マシンと2番目の仮想マシンとが冗長構成のペアとして割り当てられていることを把握できる。つまり、この場合は1番目の仮想マシンと2番目の仮想マシンの一方が現用系ACTになり、他方が待機系SBYになる。
リソース管理テーブルTB2の構成例を図16に示す。このリソース管理テーブルTB2は、各仮想マシンの仮想CPUコア12に対する物理CPUコア11の割り当て状況を管理するために利用される。
図16に示したリソース管理テーブルTB2は、各物理リソース10を示すハードウェア識別子(HW Id)、物理CPUコア11のコア番号、多重率、使用率、状態、および割当先の各情報を保持する領域を有している。
多重率とは、或る物理リソース10が備える物理CPUコア11の性能を基準として、各物理CPUコア11の演算能力を示す指標である。ここでは、ハードウェア識別子が#0、コア番号が0の物理CPUコア11が基準として選択されている。
使用率とは、多重率で示される物理CPUコア11の性能のうち、どれだけが使用されているかを示す指標である。
状態とは、各物理CPUコア11が、いずれかの仮想マシンによって占有されているか否かと、起動用として割り当てられているか否かを示すものである。図16の例では、各物理リソース10の物理CPUコア11のうち1つが、起動用の専用CPUコアとして選択されている。
割当先とは、各物理CPUコア11が、いずれかの仮想マシンに割り当てられているかを示すものである。ここでは、割り当てられていないことを示す“−”と、“Host OS”と、各仮想マシンの各仮想CPUとが記載されている。
なお、多重率、および使用率の情報は必要不可欠ではない。しかし、多重率および使用率の情報を利用することにより、待機系SBYの仮想マシンの多重度、すなわち、同一の物理CPUコア11に何個の仮想CPUコア12を割り当てるかを制御することが容易になる。また、多重度により、性能の異なるハードウェア間の性能の違いを吸収することが可能になる。
図16に示したリソース管理テーブルTB2の例では、ハードウェア識別子が「#0」、コア番号が「0」の物理CPUコア11は、「起動用」の専用コア、すなわち起動用コア11Bとして割り当てられている。また、ハードウェア識別子が「#0」、コア番号が「1〜3」の各物理CPUコア11は、「占有」状態のコア、すなわち占有コア11−Xとして割り当てられている。また、例えばハードウェア識別子が「#0」、コア番号が「2」の物理CPUコア11は、仮想マシン識別子が「#01」の0番の仮想CPUコア12(vCPU0)に割り当てられている。
また、ハードウェア識別子が「#1」、コア番号が「1」の各物理CPUコア11は、「共有」状態のコア、すなわち共有コア11−Yとして割り当てられている。また、例えばハードウェア識別子が「#1」、コア番号が「1」の物理CPUコア11は、仮想マシン識別子が「#02」の0番の仮想CPUコア12(vCPU0)、および仮想マシン識別子が「#04」の0番の仮想CPUコア12(vCPU0)に、これらが共有する状態で割り当てられている。
また、例えばハードウェア識別子が「#1」、コア番号が「1」の物理CPUコア11は、多重率が「150%」であるので、ハードウェア識別子が「#0」の物理CPUコア11と比べて1.5倍の性能比であることが分かる。また、例えばハードウェア識別子が「#1」、コア番号が「1」の物理CPUコア11は、使用率が「20%」であるので、残りの130%の性能分のリソースを更に他の仮想マシンに割り当て可能な状態であることが分かる。
<サービス提供システムの利点>
上述のサービス提供システムにおいては、稼働状態で例えば図1Aに示したように待機系SBYの仮想ネットワーク機能21B〜26Bの各仮想マシンの仮想CPUコア12に対して、複数の仮想マシンで共有可能な物理CPUコア11を割り当てることができる。したがって、通常は使用されない待機系SBYの仮想マシンに割り当てる物理リソースを減らし、システム全体のリソース利用効率を上げることができる。しかも、例えば図3A、図3Bに示したように各仮想マシンを起動した後で物理リソースの割り当てを変更するので、状況の変化に対応して各物理リソースを効率よく割り当てることができる。
また、例えば図3Aに示したように、起動用コア11Bを用いて各仮想マシンを起動し、その後で図3Bに示したように現用系ACTおよび待機系SBYの各仮想マシンのリソース割り当てを変更する場合には、システムの性能を安定化することができる。すなわち、仮想マシンの起動時には非常に大きな負荷がかかる可能性があり、既に稼働している他の仮想マシンの動作に影響を及ぼす可能性がある。しかし、仮想マシンの起動時に起動用コア11Bのみを使用することにより、既に稼働している他の仮想マシンの物理CPUコア11がこの負荷変動の影響を受けなくなる。
また、例えば図5Aに示したように共有コア11−Yを用いて各仮想マシンを起動した後で、図5Bに示したように現用系ACTおよび待機系SBYの各仮想マシンのリソース割り当てを変更する場合には、システム全体のリソース利用効率を更に上げることができる。
また、例えば図7に示したように占有コア11−Xを用いて各仮想マシンを起動した後で、図5Bに示したように現用系ACTおよび待機系SBYの各仮想マシンのリソース割り当てを変更する場合には、最終的にリソース割り当てを完了するまでの所要時間を短縮できる。例えば図7に示した仮想ネットワーク機能20の仮想マシンについては、リソース割り当てを変更しなくてもそのままサービスを開始できるので、リソース割り当ての変更に伴う遅延時間を削減できる。
また、例えば図12に示した障害19の発生に伴いフェイルオーバを実施する際に、待機系SBYの仮想ネットワーク機能21Bに割り当てられている共有コア11−Yを「占有」に切り替えるようにリソース割り当てを変更することにより、フェイルオーバ後の性能保証が容易になる。
更に、リソース割り当てを変更する際に、図13に示した動作を実施して共有コア11−Yから他の仮想マシンを追い出す場合には、フェイルオーバにより新たな現用系ACTになった仮想マシンに対してリソース割り当てを変更する必要がない。したがって、リソース割り当ての変更に伴う遅延時間を削減できる。
また、リソース割り当てを変更する際に、図14に示した動作を実施する場合には、共有コア11−Yに多数の仮想マシンが割り当てられている場合であっても、リソース割り当ての変更を比較的少ない処理量で実現できる。
なお、図2に示したリソース割当システム40の各機能については、専用のハードウェアで実現することも可能であるし、システムを管理する汎用のコンピュータが実行するプログラムとして実現することもできる。
10,10−1〜10−4 物理リソース(ハードウェア計算機資源)
11 物理CPUコア
11B 起動用コア
11−X 占有コア
11−Y 共有コア
12 仮想CPUコア
13 リンク
14,14A,14B,14C,14D,14E 仮想マシン設定ファイル
19 障害
20,21,22,23,24,25,26 仮想ネットワーク機能
20B,21B,22B,23B,24B,25B,26B 仮想ネットワーク機能
31,32,33,34 サーバ
40 リソース割当システム
41 リソース要求受付部
42 VM管理部(障害時制御部)
42a VM情報取得部
42b リソース操作指示部
43 リソース払出し制御部(初期リソース割り当て部、リソース割り当て変更部)
43a リソース管理部
43b リソース抽出・選定部
43c 仮想マシン制御部
44 監視機能部
44a VM監視機能部
44b リソース監視機能部
45 記憶部
45a リソース情報リポジトリ
45b 仮想マシンイメージリポジトリ
50 リソース要求部
100A,100B サービス提供システム
TB1 冗長構成管理テーブル
TB2 リソース管理テーブル

Claims (8)

  1. 所望のサービスを提供可能なアプリケーション機能を、互いにペアをなす第1仮想マシン及び第2仮想マシンにより構成し、前記第1仮想マシンをアクティブ状態、前記第2仮想マシンをスタンバイ状態に定め、アクティブ状態の前記第1仮想マシン又は前記第2仮想マシンを利用してサービスを提供するサービス提供システムであって、
    前記第1仮想マシン及び前記第2仮想マシンに割り当て可能な複数のハードウェア計算機資源と、
    前記第1仮想マシン及び前記第2仮想マシンを起動する際に、事前に定めた初期条件に従って前記複数のハードウェア計算機資源の中から事前に定めた起動用コア、複数の仮想マシンが共通に利用可能な共有コア、および単一の仮想マシンの占有又は実行優先度が高い占有コアのうち何れかを選択し、選択したハードウェア計算機資源を前記第1仮想マシン及び前記第2仮想マシンに割り当てる初期リソース割り当て部と、
    少なくともサービスを開始する前に、前記第1仮想マシンに対して、前記第1仮想マシンが占有又は実行優先度が高い占有コアを割り当てるよう割り当てを変更し、前記第2仮想マシンに対して、前記第2仮想マシンと他の仮想マシンとの共有が可能な共有コアを割り当てるよう割り当てを変更するリソース割り当て変更部と、
    を備えたサービス提供システム。
  2. 前記初期リソース割り当て部は、前記複数のハードウェア計算機資源の中から事前に定めた起動用コアを選択し、前記起動用コアを前記第1仮想マシン及び前記第2仮想マシンに割り当て、
    前記リソース割り当て変更部は、前記第1仮想マシンに対して占有コアを割り当てるよう割り当てを変更し、前記第2仮想マシンに対して共有コアを割り当てるよう割り当てを変更する、
    請求項1に記載のサービス提供システム。
  3. 前記初期リソース割り当て部は、前記複数のハードウェア計算機資源の中から複数の仮想マシンが共通に利用可能な共有コアを選択し、前記共有コアを前記第1仮想マシン及び前記第2仮想マシンに割り当て、
    前記リソース割り当て変更部は、前記第1仮想マシンに対して占有コアを割り当てるよう割り当てを変更し、前記第2仮想マシンに対して割り当てを変更しない
    請求項1に記載のサービス提供システム。
  4. 前記初期リソース割り当て部は、前記複数のハードウェア計算機資源の中から単一の仮想マシンの占有又は実行優先度が高い占有コアを選択し、前記占有コアを前記第1仮想マシン及び前記第2仮想マシンに割り当て、
    前記リソース割り当て変更部は、前記第1仮想マシンに対して計算機資源の割り当てを変更せず、且つ前記第2仮想マシンに対して共有コアを割り当てるよう割り当てを変更する、
    請求項1に記載のサービス提供システム。
  5. アクティブ状態の前記第1仮想マシンにおける障害発生を検知し、前記第2仮想マシンに割り当てられている前記ハードウェア計算機資源が複数の仮想マシンで共有可能な共有コアである場合には、前記第2仮想マシン以外の他の仮想マシンを前記共有コアの割り当て先から排除する障害時制御部、
    を備えた請求項1乃至請求項4のいずれか1項に記載のサービス提供システム。
  6. アクティブ状態の前記第1仮想マシンにおける障害発生を検知し、前記第2仮想マシンに割り当てられている前記ハードウェア計算機資源が複数の仮想マシンで共有可能な共有コアである場合には、前記複数のハードウェア計算機資源の中から占有又は優先利用可能な新たな占有コアを確保して前記第2仮想マシンに割り当てる障害時制御部、
    を備えた請求項1乃至請求項4のいずれか1項に記載のサービス提供システム。
  7. 所望のサービスを提供可能なアプリケーション機能を、互いにペアをなす第1仮想マシン及び第2仮想マシンにより構成し、前記第1仮想マシンをアクティブ状態、前記第2仮想マシンをスタンバイ状態に定め、アクティブ状態の前記第1仮想マシン又は前記第2仮想マシンを利用してサービスを提供するシステムを制御するための資源割り当て方法であって、
    前記第1仮想マシン及び前記第2仮想マシンを起動する際に、事前に定めた初期条件に従って予め用意された複数のハードウェア計算機資源の中から事前に定めた起動用コア、複数の仮想マシンが共通に利用可能な共有コア、および単一の仮想マシンの占有又は実行優先度が高い占有コアのうち何れかを選択し、選択したハードウェア計算機資源を前記第1仮想マシン及び前記第2仮想マシンに割り当て、
    少なくともサービスを開始する前に、前記第1仮想マシンに割り当てるハードウェア計算機資源は、前記第1仮想マシンの占有又は実行優先度が高い占有コアを割り当てるよう割り当てを変更し、前記第2仮想マシンに割り当てるハードウェア計算機資源は、前記第2仮想マシンと他の仮想マシンとの共有が可能な共有コアを割り当てるよう割り当てを変更する
    資源割り当て方法。
  8. 所望のサービスを提供可能なアプリケーション機能を、互いにペアをなす第1仮想マシン及び第2仮想マシンにより構成し、前記第1仮想マシンをアクティブ状態、前記第2仮想マシンをスタンバイ状態に定め、アクティブ状態の前記第1仮想マシン又は前記第2仮想マシンを利用してサービスを提供するシステムを制御する計算機が実行可能な資源割り当てプログラムであって、
    前記第1仮想マシン及び前記第2仮想マシンを起動する際に、事前に定めた初期条件に従って予め用意された複数のハードウェア計算機資源の中から事前に定めた起動用コア、複数の仮想マシンが共通に利用可能な共有コア、および単一の仮想マシンの占有又は実行優先度が高い占有コアのうち何れかを選択し、選択したハードウェア計算機資源を前記第1仮想マシン及び前記第2仮想マシンに割り当てる初期リソース割り当て手順と、
    少なくともサービスを開始する前に、前記第1仮想マシンに対して、前記第1仮想マシンの占有又は実行優先度が高い占有コアを割り当てるよう割り当てを変更し、前記第2仮想マシンに対して、前記第2仮想マシンと他の仮想マシンとの共有が可能な共有コアを割り当てるよう割り当てを変更するリソース割り当て変更手順と、
    コンピュータに実行させるための資源割り当てプログラム。
JP2018026723A 2018-02-19 2018-02-19 サービス提供システム、資源割り当て方法、及び資源割り当てプログラム Active JP6840099B2 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2018026723A JP6840099B2 (ja) 2018-02-19 2018-02-19 サービス提供システム、資源割り当て方法、及び資源割り当てプログラム
US16/970,591 US11640314B2 (en) 2018-02-19 2019-02-14 Service provision system, resource allocation method, and resource allocation program
PCT/JP2019/005325 WO2019160030A1 (ja) 2018-02-19 2019-02-14 サービス提供システム、資源割り当て方法、及び資源割り当てプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018026723A JP6840099B2 (ja) 2018-02-19 2018-02-19 サービス提供システム、資源割り当て方法、及び資源割り当てプログラム

Publications (2)

Publication Number Publication Date
JP2019144717A JP2019144717A (ja) 2019-08-29
JP6840099B2 true JP6840099B2 (ja) 2021-03-10

Family

ID=67619481

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018026723A Active JP6840099B2 (ja) 2018-02-19 2018-02-19 サービス提供システム、資源割り当て方法、及び資源割り当てプログラム

Country Status (3)

Country Link
US (1) US11640314B2 (ja)
JP (1) JP6840099B2 (ja)
WO (1) WO2019160030A1 (ja)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11113115B2 (en) * 2019-08-28 2021-09-07 Adva Optical Networking Se Dynamic resource optimization
JP7361898B2 (ja) 2019-11-04 2023-10-16 エヌイーシー ラボラトリーズ ヨーロッパ ゲーエムベーハー 自律的な仮想無線アクセスネットワーク制御
JP7432916B2 (ja) 2020-02-10 2024-02-19 国立大学法人福井大学 複数ネットワークスライスの障害復旧システム、障害復旧方法及びバックアップ用ネットワークスライス作製プログラム
US11429424B2 (en) * 2020-07-22 2022-08-30 Vmware, Inc. Fine-grained application-aware latency optimization for virtual machines at runtime
JP7126534B2 (ja) * 2020-09-29 2022-08-26 株式会社日立製作所 計算機システム、リソース再割当方法
CN113032101B (zh) * 2021-03-31 2023-12-29 深信服科技股份有限公司 虚拟机的资源分配方法、服务器及计算机可读存储介质
US11252036B1 (en) 2021-06-10 2022-02-15 Bank Of America Corporation System for evaluating and tuning resources for anticipated demands
US11704609B2 (en) 2021-06-10 2023-07-18 Bank Of America Corporation System for automatically balancing anticipated infrastructure demands

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4622474B2 (ja) 2004-11-17 2011-02-02 横河電機株式会社 フィールド機器及びこれを用いたシステム
US8074110B2 (en) 2006-02-28 2011-12-06 Intel Corporation Enhancing reliability of a many-core processor
JP2009110404A (ja) * 2007-10-31 2009-05-21 Toshiba Corp 仮想計算機システム及び同システムにおけるゲストosスケジューリング方法
US8892916B2 (en) * 2008-08-06 2014-11-18 International Business Machines Corporation Dynamic core pool management
JP5282046B2 (ja) 2010-01-05 2013-09-04 株式会社日立製作所 計算機システム及びその可用化方法
JP2017027166A (ja) 2015-07-16 2017-02-02 富士通株式会社 運用管理装置、運用管理プログラムおよび情報処理システム

Also Published As

Publication number Publication date
US20210117219A1 (en) 2021-04-22
WO2019160030A1 (ja) 2019-08-22
JP2019144717A (ja) 2019-08-29
US11640314B2 (en) 2023-05-02

Similar Documents

Publication Publication Date Title
JP6840099B2 (ja) サービス提供システム、資源割り当て方法、及び資源割り当てプログラム
US10050850B2 (en) Rack awareness data storage in a cluster of host computing devices
EP3761170B1 (en) Virtual machine creation method and apparatus
US9838249B2 (en) Maintaining resource availability during maintenance operations
EP3347816B1 (en) Extension of resource constraints for service-defined containers
US11392400B2 (en) Enhanced migration of clusters based on data accessibility
US10628273B2 (en) Node system, server apparatus, scaling control method, and program
US8762999B2 (en) Guest-initiated resource allocation request based on comparison of host hardware information and projected workload requirement
EP1763749B1 (en) Facilitating access to input/output resources via an i/o partition shared by multiple consumer partitions
US20120102199A1 (en) Placing objects on hosts using hard and soft constraints
CN109313577B (zh) 分布式计算网络中的数据平面api
JP2007272263A (ja) 計算機の管理方法、計算機システム、及び管理プログラム
US11740921B2 (en) Coordinated container scheduling for improved resource allocation in virtual computing environment
CN113886089A (zh) 一种任务处理方法、装置、系统、设备及介质
US20230153169A1 (en) Intra-footprint computing cluster bring-up
JP2008107966A (ja) 計算機システム
JP6543219B2 (ja) 仮想マシン配置装置およびリソース管理方法
WO2017107483A1 (zh) 一种虚拟化网管文件下载负载均衡的方法及网管服务器
US20190324741A1 (en) Virtual appliance upgrades in high-availability (ha) computing clusters
JP6277069B2 (ja) 仮想機器管理装置、仮想機器管理方法及び仮想機器管理プログラム
TW201536057A (zh) 一種服務最佳化的電腦系統及其方法
JP2015138385A (ja) 分散処理システム、および、分散処理方法
JP7184097B2 (ja) ネットワーク機能仮想化システム及びオペレーティングシステム更新方法
WO2023125482A1 (zh) 集群管理方法、设备及计算系统
JP6696947B2 (ja) 仮想マシンエミュレートシステム、仮想マシンエミュレート方法およびコンピュータプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191219

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200817

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210216

R150 Certificate of patent or registration of utility model

Ref document number: 6840099

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150