JP7003692B2 - 情報処理装置,情報処理システムおよび制御プログラム - Google Patents

情報処理装置,情報処理システムおよび制御プログラム Download PDF

Info

Publication number
JP7003692B2
JP7003692B2 JP2018013260A JP2018013260A JP7003692B2 JP 7003692 B2 JP7003692 B2 JP 7003692B2 JP 2018013260 A JP2018013260 A JP 2018013260A JP 2018013260 A JP2018013260 A JP 2018013260A JP 7003692 B2 JP7003692 B2 JP 7003692B2
Authority
JP
Japan
Prior art keywords
host
virtual machines
machines
virtual
vms
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
JP2018013260A
Other languages
English (en)
Other versions
JP2019133291A (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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2018013260A priority Critical patent/JP7003692B2/ja
Priority to US16/257,414 priority patent/US10990433B2/en
Publication of JP2019133291A publication Critical patent/JP2019133291A/ja
Application granted granted Critical
Publication of JP7003692B2 publication Critical patent/JP7003692B2/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/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/485Task life-cycle, e.g. stopping, restarting, resuming execution
    • G06F9/4856Task life-cycle, e.g. stopping, restarting, resuming execution resumption being on a different machine, e.g. task migration, virtual machine migration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/505Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5083Techniques for rebalancing the load in a distributed system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/4557Distribution of virtual machine instances; Migration and load balancing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45575Starting, stopping, suspending or resuming virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/503Resource availability
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/505Clust
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/506Constraint

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、情報処理装置,情報処理システムおよび制御プログラムに関する。
近年、クラウドコンピューティングに代表されるように、計算機資源の効率利用を主目的としてコンピュータの仮想化が積極的に行なわれている。コンピュータ仮想化環境では、例えば、仮想マシン(Virtual Machine:VM)を監視し、資源使用率に応じて仮想マシンを複数のホストコンピュータ(以下、単にホストという)に適切に分散配置することでホスト間の負荷を平準化し、計算機資源の利用効率と性能の向上を図っている。
従来、仮想マシンの配置は、CPU(Central Processing Unit)やメモリ、ネットワーク等の計算資源をホスト間で平準化するように行なわれている。例えば、ホストAのCPU使用率がホストBのCPU使用率に比べて著しく大きい場合は、適切な仮想マシンをホストAから選んでホストBに移動させる(移送する)。これにより、ホスト間でのCPU使用率の差を軽減する。
また、仮想マシンの配置を決定する際に、可用性向上の観点から、特定の仮想マシン同士を同一ホスト上に配置したくない場合が存在する。例えば、同一の機能を提供する仮想マシンαと仮想マシンβとを用意して可用性の向上を図ったとしても、これらの2つの仮想マシンα,βが同一ホスト上に配置されてしまっては、ホスト障害発生時に両方の仮想マシンが障害に陥ってしまう。これにより、当初の目的である可用性向上を達成することができない。そこで、仮想マシンの配置に関するルールを個々に明示的に設定することで、同一の機能を提供する仮想マシンの同一ホストへの配置を回避することも行なわれている。
国際公開2014/192254号パンフレット
Ajay Gulati et al.著、「VMware Distributed Resource Management: Design, Implementation, and Lessons Learned」、VMware Technical Journal (VMTJ Spring 2012) Sai Manohar Inabattini et al.著、「DRS PERFORMANCE VMware vSphere 6.5」、PERFORMANCE STUDY - NOVEMBER 2016、[online]、VMware社、[平成30年1月5日検索]、インターネット、<URL:https://www.vmware.com/techpapers/2016/drs-vsphere65-perf.html> VMware Infrastructure Resource Management with VMware DRS、VMWARE BEST PRACTICES
計算資源の使用率をある瞬間のみでなく、将来に亘ってホスト間で平準化するためには、特性の似た仮想マシンを発見し、別々のホスト上に分散配置することが効果的である。各仮想マシンの資源使用率は時々刻々と変化する。そのため、例えば、同時刻に負荷が増加する仮想マシン群が同一ホストに配置されてしまうと、あるタイミングでそのホストの負荷が急激に増加してしまう。一方で、負荷が上昇するタイミングの異なる仮想マシン同士を同一ホストに配置できれば、ホストの負荷の乱高下を抑えることができる。
しかしながら、上述の如き従来の仮想マシンの配置管理方法では、過去の資源使用率を保存し、資源使用率の推移を仮想マシン間で比較することは可能であるが、大規模なシステム環境において全ての仮想マシン間で全ての計算資源に対して、このような比較処理を実行することは現実的でない。すなわち、従来の仮想マシンの配置管理方法においては、似た特性の仮想マシン同士を別ホストに配置するには限界がある。
また、同一ホストに配置したくない仮想マシンを個別に設定する方法は煩雑であり手間がかかる。さらにクラウドコンピューティング環境のように、仮想マシン上で動作しているサービスを仮想化環境の管理者が知ることができないという状況も考えられる。
1つの側面では、本発明は、仮想マシンを複数のホストマシンに効率的に分散配置できるようにすることを目的とする。
このため、情報処理装置は、仮想マシンの配置を行なう情報処理装置において、前記仮想マシンの名前の類似性を判定する判定部と、判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを1以上の組に分割する分割部と、同一の組に含まれる仮想マシンを、異なるホストマシンに配置する配置部とを備える。前記配置部は、複数の前記ホストマシンに備えられる計算資源のうち、未使用である余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する。
一実施形態によれば、仮想マシンを複数のホストに効率的に分散配置できる。
第1実施形態の一例としてのコンピュータシステムの構成を模式的に示す図である。 第1実施形態の一例としてのコンピュータシステムにおける管理サーバのハードウェア構成を例示する図である。 第1実施形態の一例としてのコンピュータシステムにおける管理サーバの機能構成図である。 第1実施形態の一例としてのコンピュータシステムにおけるVM名間の文字列間距離を例示する図である。 第1実施形態の一例としてのコンピュータシステムにおけるVMのクラスタリング手法を例示する図である。 図1に例示したコンピュータシステムのホストを抜き出して示す図である。 図1に例示したコンピュータシステムにおける資源情報を例示する図である。 第1実施形態の一例としてのコンピュータシステムにおけるVMによる計算資源の予定使用量を例示する図である。 第1実施形態の一例としてのコンピュータシステムにおけるクラスタ毎の計算資源の予定使用量を例示する図である。 第1実施形態の一例としてのコンピュータシステムにおけるホストへのVMの配置状態を例示する図である。 図1に例示したコンピュータシステムにおけるホストへのVMの割当後の資源情報を例示する図である。 第1実施形態の一例としてのコンピュータシステムにおけるホストへのVMの配置状態を例示する図である。 第1実施形態の一例としてのコンピュータシステムにおける分散配置処理部による、クラスタリングされたVMを複数のホストに配置する処理を説明するためのフローチャートである。 第1実施形態の一例としてのコンピュータシステムにおけるVMの配置方法を説明するためのフローチャートである。
以下、図面を参照して本情報処理装置,情報処理システムおよび制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形(実施形態および各変形例を組み合わせる等)して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
(I)第1実施形態の説明
(A)構成
図1は第1実施形態の一例としてのコンピュータシステム1の構成を模式的に示す図である。
コンピュータシステム1は、例えば、クラウドコンピューティングシステムに用いられ、ユーザ等に対して演算能力や記憶領域を提供する。
図1に例示するコンピュータシステム1は、管理サーバ10,スイッチ20-1,20-2,ホストコンピュータ30-1~30-4,およびストレージ40-1,40-2を備える。
そして、管理サーバ10,ホストコンピュータ30-1~30-4,およびストレージ40-1,40-2は、ネットワークを介して相互に通信可能に接続されている。
具体的には、図1に例示するコンピュータシステム1においては、ホストコンピュータ30-1~30-4は、スイッチ20-1を介してそれぞれ管理サーバ10に接続されるとともに、スイッチ20-2を介して、ストレージ40-1,40-2にそれぞれ接続されている。スイッチ20-1,20-2はネットワーク中継装置であり、例えば、受信したデータを宛先に応じて転送する。
ストレージ40-1,40-2は、ハードディスクドライブ(Hard Disk Drive:HDD)、SSD(Solid State Drive),ストレージクラスメモリ(Storage Class Memory:SCM)等の記憶装置であって、種々のデータ等を格納するものである。また、ストレージ40-1,40-2は、複数の記憶装置を用いてRAID(Redundant Arrays of Inexpensive Disks)を構成したものであってもよい。
[ホストコンピュータ30]
ホストコンピュータ30-1~30-4は、サーバ機能を備えたコンピュータである。これらのホストコンピュータ30-1~30-4は、互いに同様の構成を有する。以下、ホストコンピュータを示す符号としては、複数のホストコンピュータのうち1つを特定する必要があるときには符号30-1~30-4を用いるが、任意のホストコンピュータを指すときには符号30を用いる。また、以下、ホストコンピュータ30を、単にホスト30という場合がある。
各ホスト30は、例えば、図示しない、CPU,メモリ,記憶装置およびネットワークインタフェース(Inter Face:I/F)を備える。
記憶装置は、HDD,SSD,SCM等の記憶装置であって、種々のデータを格納するものである。各ホスト30には、それぞれ1つ以上の記憶装置が備えられてもよい。
ネットワークI/Fは、スイッチ20-1,20-2を介して、管理サーバ10や他のホスト30,ストレージ40-1,40-2と通信可能に接続する通信インタフェースである。ネットワークI/Fは、例えば、LAN(Local Area Network)インタフェースやFC(Fibre Channel)インタフェースである。
メモリは、ROM(Read Only Memory)およびRAM(Random Access Memory)を含む記憶メモリである。メモリのROMには、OS(Operating System)やコンピュータ仮想化環境を実現するためのソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ上のソフトウェアプログラムは、CPUに適宜読み込まれて実行される。また、メモリのRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
CPUは、制御ユニット(制御回路)や演算ユニット(演算回路),キャッシュメモリ(レジスタ群)等を内蔵する処理装置(プロセッサ)であり、種々の制御や演算を行なう。CPUは、メモリに格納されたOSやプログラムを実行することにより、種々の機能を実現する。
本コンピュータシステム1に備えられた各ホスト30において、CPUが制御プログラムを実行することで、後述するハイパーバイザとしての機能を実現する。
なお、ハイパーバイザとしての機能を実現するためのプログラム(ホスト用制御プログラム)は、例えばフレキシブルディスク,CD(CD-ROM,CD-R,CD-RW等),DVD(DVD-ROM,DVD-RAM,DVD-R,DVD+R,DVD-RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
ハイパーバイザとしての機能を実現する際には、内部記憶装置(本実施形態ではメモリ)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
ハイパーバイザは、VMによるコンピュータ仮想化環境を実現するためのソフトウェアプログラム(制御プログラム)である。ハイパーバイザは、VMを作成する機能(VM作成機能)を備え、後述する管理サーバ10のVM作成指示部110から送信されるVM作成指示に従ってVMを作成する。なお、VMの生成は既知の種々の手法で実現することができ、その説明は省略する。
また、ハイパーバイザは、自身が稼動するホスト30において、1つ以上のVMを機能させる。
VMは、ハイパーバイザ上で作成される仮想的なコンピュータである。各VMは、物理ハードウェアで実現されるコンピュータと同様にBIOSやCPU、メモリ、ディスク、キーボード、マウス、CD-ROMドライブなどの周辺機器を用い、種々の処理を実行する。例えば、VMは、種々のOS(ゲストOS)やこのゲストOS上で稼動するアプリケーションプログラムを実行する。
[管理サーバ10]
管理サーバ10は、各ホスト30において実現されるVMの管理を行なう管理装置である。例えば、管理サーバ10は、複数のホスト30間におけるVMの配置を決定し、VMの配置先として決定したホスト30に対してVMの作成を指示する。また、管理サーバ10は、ホスト30間におけるVMの移動(移送)を指示する。
図2は第1実施形態の一例としてのコンピュータシステム1における管理サーバ10のハードウェア構成を例示する図、図3はその機能構成図である。
管理サーバ10は、図2に示すように、CPU11,メモリ12,記憶装置13およびネットワークインタフェース(I/F)14を備える。
記憶装置13は、HDD,SSD,SCM等の記憶装置であって、種々のデータやプログラムを格納するものである。
ネットワークI/F14は、スイッチ20-1を介して、ホスト30-1~30-4およびストレージ40-1,40-2と通信可能に接続する通信インタフェースであり、例えば、LANインタフェースやFCインタフェースである。
メモリ12はROMおよびRAMを含む記憶メモリである。メモリ12のROMには、OSやVMの管理にかかるソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ12上のソフトウェアプログラムは、CPU11に適宜読み込まれて実行される。また、メモリ12のRAMは、一次記憶メモリあるいはワーキングメモリとして利用される。
また、メモリ12のRAMには、図3に示すように、VM管理情報131および資源情報132が格納される。
VM管理情報131には、各ホスト30に配置されているVMを管理する情報である。VM管理情報131には、例えば、VMの名前(VM名)が格納される。また、このVM管理情報131には、各VMを実現するために要する計算資源の情報(例えば、CPU数,メモリ量)が含まれてもよい。
VM管理情報131を構成する情報は、RAMにおける所定の記憶領域に格納される。管理サーバ10は、VM管理情報131を用いて各VMのVM名等を管理する。資源情報132については後述する。
CPU11は、制御ユニット(制御回路)や演算ユニット(演算回路),キャッシュメモリ(レジスタ群)等を内蔵する処理装置(プロセッサ)であり、種々の制御や演算を行なう。CPU11は、メモリ12に格納されたOSやプログラムを実行することにより、種々の機能を実現する。
本コンピュータシステム1に備えられた管理サーバ10において、CPU11が管理サーバ用制御プログラムを実行することで、VM管理部100および資源情報取得部140としての機能を実現する。
なお、VM管理部100および資源情報取得部140としての機能を実現するためのプログラム(管理サーバ用制御プログラム)は、例えばフレキシブルディスク,CD(CD-ROM,CD-R,CD-RW等),DVD(DVD-ROM,DVD-RAM,DVD-R,DVD+R,DVD-RW,DVD+RW,HD DVD等),ブルーレイディスク,磁気ディスク,光ディスク,光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク,光ディスク,光磁気ディスク等の記憶装置(記録媒体)に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
VM管理部100および資源情報取得部140としての機能を実現する際には、内部記憶装置(本実施形態ではメモリ12)に格納されたプログラムがコンピュータのマイクロプロセッサ(本実施形態ではCPU11)によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
資源情報取得部140は、本コンピュータシステム1における計算資源に関する情報を取得する。例えば、資源情報取得部140は、各ホスト30における計算資源の未使用部分の量を表す情報を取得する。
具体的には、資源情報取得部140は、各ホスト30における未使用のCPU数やメモリ量,ネットワーク帯域等を資源情報として取得する。CPU数はCPUコア数であってもよい。
資源情報取得部140は、取得した資源情報を、メモリ12に資源情報132として格納する(図7,図11参照)。管理サーバ10は、この資源情報132を用いて、各ホスト30における計算資源の使用状況を管理する。
資源情報取得部140は、定期的に各ホスト30から計算資源の情報を取得してもよく、また、VM配置制御部120からの要求に応じて、各ホスト30から計算資源の情報を随時取得してもよい。
VM管理部100は、本コンピュータシステム1におけるVMの管理を行なう。VM管理部100は、図3に示すように、VM作成指示部110およびVM配置制御部120としての機能を備える。
VM作成指示部110は、各ホスト30にVMを作成させる指示(VM生成指示)を発行する。例えば、本コンピュータシステム1において、ユーザが端末装置(図示省略)からVMの作成要求を入力すると、VM作成指示部110はこのVM作成要求に応じてホスト30にVM作成指示を発行する。
ユーザは、VM作成要求とともに、作成を要求するVMの名前(VM名)を入力する。また、ユーザは、VM作成要求を入力するに際して、そのVMに使用させるCPU数やメモリ量等の計算資源の予定使用量を入力してもよい。
VM作成指示部110は、ホスト30に対して、VM作成指示とともに、ユーザによって入力されたVM名を送信する。また、VM作成指示部110は、VM作成指示とともに、当該VMに関する計算資源の予定使用量(CPU数,メモリ量等)をホスト30に送信してもよい。
VM作成指示を受信したホスト30においては、ハイパーバイザのVM生成機能により、VMを作成する。ホスト30において生成されたVMには、ユーザ等により入力されたVM名が設定される。設定されたVM名は、VM管理情報131に記憶される。
また、VM管理情報131には、VMによる計算資源の予定使用量も当該VMに対応して記憶される(図8参照)。
VMによる計算資源の予定使用量は、例えば、VMにより使用されるCPU数(CPUコア数)やメモリ量,ネットワーク使用帯域である。また、特に、VMにより使用されるCPU数として、vCPU(virtual CPU:仮想CPU)数を用いてもよい。
なお、VMによる計算資源の予定使用量は、例えば、VMを生成する際の仕様として取得してもよく、既知の種々の手法で取得することができる。
VM配置制御部120はVMの配置先のホスト30を決定する。
さて、VMの命名は運用の観点から重要であり、機能名(例えば、webやdb)やサービス名(例えばserviceAやfuijtsu)等をVM名に含めることが一般的に行なわれる。すなわち、VM名にはそのVMの特性を示す情報が含まれることが多い。
本コンピュータシステム1において、VM配置制御部120は、VM名に着目して、特性の似た仮想マシンを別々のホスト30に配置する分散配置を実現する。具体的には、VM配置制御部120は、類似するVM名を有する複数のVMを異なるホスト30に分散させて配置(分散配置)する。
例えば、VM配置制御部120は、本コンピュータシステム1におけるサービス開始時等に、本コンピュータシステム1上で実行される全てのVMについて、それぞれの配置先(配置先ホスト30)を決定する。VM配置制御部120は、これらのVMの配置先を決定するに際して、VM名に基づく分散配置を実施する。
そして、本第1実施形態においてVM配置制御部120は、本コンピュータシステム1に備えられている全ホスト30に配置予定の各VMのVM名に基づいて、各VMの配置先のホスト30の検討を行なう。
VM配置制御部120は、図3に示すように、文字列間距離算出部121,クラスタリング処理部122および分散配置処理部123としての機能を備える。
文字列間距離算出部121は、VM名間の類似性を数値化する処理(演算)を行なう。
具体的には、文字列間距離算出部121は、本コンピュータシステム1に備えられる全てのVMの各VM名のそれぞれについて、各VM名を構成する文字列間と他のVMのVM名との文字列間距離を算出する。文字列間距離は2つの文字列がどの程度異なっているかを示す値である。例えば、文字列間距離は、距離が短い、すなわち値が小さい程、比較する2つの文字列が似ていることを示すものとする。文字列間距離は、2つの文字列(VM名)の類似度を表す値であるとも言える。
文字列間距離としては、例えば、レーベンシュタイン距離,N-gram,ジャロ・ウィンクラー距離等を用いることができる。また、文字列間距離は、これらに限定されるものではなく、これら以外の手法を用いてもよく、適宜変更して実施することができる。
図4は第1実施形態の一例としてのコンピュータシステム1におけるVM名間の文字列間距離を例示する図である。この図4に例示する文字列間距離は、レーベルシュタイン距離を用いて示すものである。
この図4においては、5つのVM名“fj-db-0”,“fj-db-1”,“iwata0”,“iwata1”,“iwata2”における各間の文字列間距離を例示する。例えば、VM名“fj-db-0”とVM名“fj-db-1”との文字列間距離は“1”であり、VM名“fj-db-0”とVM名“iwata0”との文字列間距離は“6”である。
文字列間距離算出部121は、VM名の類似性を判定する判定部として機能する。
クラスタリング処理部122は、本コンピュータシステム1に備えられる全てのVMを、文字列間距離算出部121によって算出された文字間距離に基づいて、複数のクラスタにクラスタリング(分割)する。
クラスタリング処理部122によるクラスタリングには、既知の種々の手法を用いることができ、例えば、最短距離法やk-means法を用いることができる。また、クラスタリング手法は、これらに限定されるものではなく、これら以外の手法を用いてもよく、適宜変更して実施することができる。
クラスタリング処理部122は、VM名の類似性を示す文字列間距離が所定の閾値以内となるVMが組となるように、複数のVMを1以上の組(クラスタ)に分割する分割部として機能する。
クラスタリングを行なうに際して、適切なクラスタ数は適用環境に応じて変化すると考えられるため、最初のうちは管理者等が確認しながらクラスタリングを進めることが望ましい。
図5は第1実施形態の一例としてのコンピュータシステム1におけるVMのクラスタリング手法を例示する図である。この図5においては、図4に例示した5つのVM名を最短距離法によって2つのクラスタにクラスタリングした例を示す。
この図5に示す例においては、VM名“fj-db-0”およびVM名“fj-db-1”の2つのVMによりクラスタ“fj-db”が構成され、VM名“iwata0”,“iwata1”,“iwata2”の3つのVMによりクラスタ“iwata”が構成されている。
分散配置処理部123は、本コンピュータシステム1に備えられる全てのVMを、複数のホスト30に分散させて配置する。
分散配置処理部123は、クラスタリング処理部122によって分割された複数のクラスタに含まれる各VMを複数のホスト30に配置するに際して、同一クラスタのVMをできるだけ異なるホスト30に配置する。
クラスタリング処理部122によるクラスタリングの結果、同一のクラスタに含まれるVMどうしのVM名は、文字列間距離が近く、互いに似ているものである。そして、上述の如く、VM名が類似するVMは、それらの特性にも類似性があるとみなすことができる。
分散配置処理部123は、このように、特性に類似性があると考えられるVMを互いに異なるホスト30に分散配置することで、ホスト30間において計算資源の平準化を実現する。
分散配置処理部123は、同一のクラスタ(組)に含まれるVMを、異なるホスト30に配置する配置部として機能する。
また、分散配置処理部123は、VMを複数のホスト30に分散配置するに際して、資源使用率も加味しながら、VM数や資源使用率に大きな偏りが生じない形でホスト30への配置を決定する。
具体的には、分散配置処理部123は、以下の処理1~4をクラスタ毎に繰り返し実行することで、複数のホスト30へのVMの分散配置を実現する。
(処理1)各クラスタに含まれるVMの計算資源使用率の合計を計算
(処理2)計算資源ごとにホスト30の合計の余剰資源を計算
(処理3)余剰割合の少ない計算資源に着目して、合計資源使用率の大きなクラスタから優先的にホスト30に分散配置
(処理4)分散配置をする際には、余剰資源の多いホスト30に優先的に配置
分散配置処理部123は、上述の処理2~4を行なうことで、資源使用率の高いVMを優先的にホスト30に配置する。これにより、資源使用率の制約から終盤に同一クラスタの仮想マシンを別ホスト30に配置できないという状況を回避することができる。
なお、仮にVMの配置決定時に優先されるべきルール(例えば、「fj-db-0とiwata2とを別のホスト30に配置する」)が定まっている場合には、分散配置処理部123は、そのルールを満たす配置を終えた後で、VM名に基づく分散配置を実行する。
以下に、分散配置処理部123による、クラスタリングされたVMを複数のホスト30に配置する処理を、図6~図12を随時参照しながら図13に示すフローチャート(ステップS1~S6)に従って説明する。
図6は図1に例示したコンピュータシステム1のホスト30-1~30-4のみを抜き出して示す図である。
以下、ホスト30-1をホスト#0と表す場合がある。同様に、ホスト30-2,30-3,30-4を、ホスト#1,#2,#3とそれぞれ表す場合がある。
以下においては、これらの4つのホスト#0~#3に、図4に例示した、VM名“fj-db-0”,“fj-db-1”,“iwata0”,“iwata1”,“iwata2”の5つのVMを分散配置する例について示す。
また、以下、VM名“fj-db-0”を有するVMを、単にVM“fj-db-0”という場合がある。同様に、VM名 “fj-db-1”,“iwata0”,“iwata1”,“iwata2”を有する各VMを、それぞれ、VM“fj-db-1”,VM“iwata0”,VM“iwata1”およびVM“iwata2”という場合がある。
図7は図1に例示したコンピュータシステム1における資源情報132を例示する図である。
この図7に例示する資源情報132には、図4に例示した5つのVMをホスト#0~#3に分散配置する直前のタイミングでの、各ホスト30における余剰資源の状態(余剰資源量)を示す。余剰資源量は、ホスト30に備えられた計算資源のうち未使用部分の量(個数や容量)を示す。
以下に示す例においては、計算資源がCPUおよびメモリである例について示し、図7においては、資源情報132に、未使用のCPU数(CPUコア数)および使用されていないメモリ量が登録されている。
例えば、ホスト#0,#1,#2,#3についてのメモリの余剰資源量(メモリ量)は、それぞれ128GB,64GB,64GBおよび100GBである。これらの値は、資源情報取得部140によって取得される。
図8は第1実施形態の一例としてのコンピュータシステム1におけるVMによる計算資源の予定使用量を例示する図である。
この図8に示す例においては、図4に例示した5つのVMの各計算資源の予定使用量を示す。
例えば、VM“iwata0”の実現には、1つのCPU(vCPU数=1)と、1GBのメモリ量が使用される。
ステップS1において、分散配置処理部123は、VM毎の計算資源の予定使用量を、クラスタ毎に集計することで、クラスタ毎の計算資源の予定使用量を算出する。
図9は第1実施形態の一例としてのコンピュータシステム1におけるクラスタ毎の計算資源の予定使用量を例示する図である。
この図9に示す例においては、図5に例示した2つのクラスタfj-db”,“iwata”のそれぞれについて、各クラスタに含まれる複数のVMの計算資源の予定使用量を集計している。
例えば、クラスタ“iwata”についてのCPUの予定使用量(vCPU数)は、このクラスタ“iwata”に含まれる3つのVM“iwata0”,“iwata1”,“iwata2”の各vCPU数を合計することで求められる(vCPU数:6=1+2+3)。同様に、このクラスタ“iwata”についてのメモリの予定使用量は、このクラスタ“iwata”に含まれる3つのVM“iwata0”,“iwata1”,“iwata2”の各メモリ予定使用量を合計することで求められる(メモリ量:6=1+2+3)。
次に、ステップS2において、分散配置処理部123は、計算資源毎に余剰資源割合を算出する。
余剰資源割合は、本コンピュータシステム1に備えられた全ホスト30の物理資源の総量に対する、全ホスト30のVM未配置状態での余剰資源量の総量の割合である。
例えば、VMが一つも配置されていない状態(VM未配置状態)での、各ホスト30の物理資源として、CPUが16コアであり、メモリサイズが128GBである場合には、
各計算資源の余剰資源割合は、以下の式(1),(2)で求められる。
CPUの余剰資源割合=(16+8+14+10)÷(16×4)×100=75% ・・・(1)
メモリの余剰資源割合=(128+64+64+100)÷(128×4)×100=70% ・・・(2)
分散配置処理部123は、上述の如く算出した計算資源毎の余剰資源割合に基づき、余剰割合の少ない計算資源を特定する。
上記式(1),(2)による算出例においては、CPUよりもメモリの余剰資源割合の方が小さいことを示す。このように、複数種類の計算資源において、余剰資源割合が小さい方の計算資源を、優先計算資源という場合がある。
分散配置処理部123は、特定した優先計算資源に着目して、クラスタ毎の計算資源の予定使用量(図9参照)を参照して、優先計算資源の合計予定使用量が大きいクラスタを構成するVMを、優先して割当を行なうVMとして決定する。以下、複数のクラスタの中で、優先計算資源の合計予定使用量が大きいクラスタを優先割当クラスタという場合がある。
分散配置処理部123は、優先計算資源に着目して、クラスタ毎の計算資源の予定使用量(図9参照)を参照して、優先計算資源の合計予定使用量が大きいクラスタを優先割当クラスタとして決定する(ステップS3)。
分散配置処理部123は、特定した優先計算資源(メモリ量)に着目し、クラスタ毎の計算資源の予定使用量(図9参照)を参照して、メモリ量の合計予定使用量が大きいクラスタを優先割当クラスタとして特定する。図9に示す例においては、クラスタ“fj-db”のメモリ量の合計予定使用量の方が、クラスタ“iwata”よりも大きいので、クラスタ“fj-db”が優先割当クラスタとして選択される。
分散配置処理部123は、この優先割当クラスタを構成するVMを、優先してホスト30に分散配置するVMとして決定する。図9に示す例においては、分散配置処理部123は、優先割当クラスタであるクラスタ“fj-db”のVM“fj-db-0”,“fj-db-1”をホスト30に優先して割り当て、その後、クラスタ“iwata”のVM“iwata0”~“iwata2”をホスト30に割り当てる。
分散配置処理部123は、VMの分散配置を行なうに際して、余剰資源の多いホスト30に優先してVMを配置する。
以下、複数のホスト30の中で、余剰資源が多いホスト30を優先割当先ホスト30という場合がある。
分散配置処理部123は、余剰資源が多いホスト30を、複数のホスト30の中で優先してVMを割り当てる優先割当先ホスト30として決定する(ステップS4)。
分散配置処理部123は、優先計算資源(メモリ量)に着目して資源情報132を参照し、メモリ量の余剰資源量が多いホスト30を優先割当先ホスト30として決定する。図7に示す例においては、優先計算資源であるメモリ量について、ホスト#0が最も余剰資源量が大きく、次に、ホスト#3の余剰資源量が大きい。従って、分散配置処理部123は、これらのホスト#0およびホスト#3を優先割当先ホスト30として決定する。
分散配置処理部123は、優先割当クラスタを構成するVMを優先割当先ホストに配置する(ステップS5)。
図10は第1実施形態の一例としてのコンピュータシステム1におけるホスト30へのVMの配置状態を例示する図である。
図10においては、ホスト#0,#3にクラスタ“fj-db”のVM“fj-db-0”,“fj-db-1”が、それぞれ配置された状態を示す。
その後、ステップS6において、分散配置処理部123は、全てのVMのホスト30への配置が完了したかを確認する。
確認の結果、全てのVMの配置が完了した場合には(ステップS6のYESルート参照)、処理を終了する。
一方、全てのVMの配置が完了していない場合には(ステップS6のNOルート参照)、ステップS2に戻り、以降の処理を繰り返し行なう。
なお、上述したステップS5においてVMをホスト30に配置することで、配置先のホスト30の余剰資源量は変更される。
上述した例においては、ホスト#0,#3にVM“fj-db-1”,“fj-db-0”を配置することにより、これらのホスト#0,#3の余剰資源量が変更される。分散配置処理部123は、VMの配置後において、資源情報132の更新を行なう。
図11は図1に例示したコンピュータシステム1における、ホスト#0,#3へのVMの割当後における資源情報132を例示する図である。
この図11に示す例においては、図7に例示した資源情報132と比べて、ホスト#0のCPU数およびメモリ量が11および123にそれぞれ更新され、また、ホスト#3のCPU数およびメモリ量が6および96にそれぞれ更新されている。
分散配置処理部123は、ステップS2において更新された資源情報132の値を用いて、計算資源毎に余剰資源割合の算出を、再度、行なう(ステップS2)。
図11に例示する状態においては、各計算資源の余剰資源割合は、以下の式(3),(4)により求められる。
CPUの余剰資源割合=(11+8+14+6)÷(16×4)×100=61% ・・・(3)
メモリの余剰資源割合=(123+64+64+96)÷(128×4)×100=68% ・・・(4)
かかる演算の結果においては、メモリ量よりもCPUの余剰資源割合の方が小さい。従って、その後、ステップS3において、分散配置処理部123は、CPUを優先計算資源として着目して、クラスタ毎の計算資源の予定使用量(図9参照)を参照し、残りの未割当のクラスタの中から、CPU数の合計予定使用量が大きいクラスタを優先割当クラスタとして特定する。
なお、本例においては、未割当のクラスタとしてクラスタ“iwata”が1つ残っているだけなので、このクラスタ“iwata”が優先割当クラスタとして選択される。
分散配置処理部123は、この優先割当クラスタを構成するVMを、優先してホスト30に分散配置するVMとして決定する。すなわち分散配置処理部123は、優先割当クラスタであるクラスタ“iwata”のVM“iwata0”,“iwata1”および“iwata2”をホスト30に割り当てる。
分散配置処理部123は、優先計算資源(メモリ量)に着目して資源情報132を参照し、メモリ量の余剰資源量が多いホスト30を優先割当先ホスト30として決定する。図7に示す例においては、優先計算資源であるメモリ量について、ホスト#0が最も余剰資源量が大きく、次に、ホスト#3の余剰資源量が大きい。従って、分散配置処理部123は、これらのホスト#0およびホスト#3を優先割当先ホスト30として決定する(ステップS4)。
分散配置処理部123は、優先割当クラスタを構成するVMを優先割当先ホストに配置する(ステップS5)。
図12は第1実施形態の一例としてのコンピュータシステム1におけるホスト30へのVMの配置状態を例示する図である。
図12に示す例においては、 図10に示したVMの配置を行なった後に、ホスト#0,#1,#2にクラスタ“iwata”のVM“iwata1”,“iwata0”および“iwata2”が、それぞれ配置された状態を示す。
その後、ステップS6において、分散配置処理部123は、全てのVMのホスト30への配置が完了したかを、再度、確認する。
全てのVMの配置が完了していない場合には(ステップS6のNOルート参照)、ステップS2に戻り、以降の処理を繰り返し行なう。
また、確認の結果、全てのVMの配置が完了した場合には(ステップS6のYESルート参照)、処理を終了する。本例においては、クラスタ“iwata”を構成する各VMを配置することで、全てのVMの配置が完了する。
(B)動作
上述の如く構成された第1実施形態の一例としてのコンピュータシステム1におけるVMの配置方法を、図14に示すフローチャート(ステップS01~S03)に従って説明する。
以下に示す処理は、例えば、本コンピュータシステム1におけるサービス開始時等に、本コンピュータシステム1上で実行される全てのVMについて、各VMの配置先(配置先ホスト30)を決定する際に実行される。
ステップS01において、文字列間距離算出部121は、本コンピュータシステム1に備えられる全てのVMの各VM名のそれぞれについて、各VM名を構成する文字列間と他のVMのVM名との文字列間距離を算出する。
ステップS02において、クラスタリング処理部122は、本コンピュータシステム1に備えられる全てのVMを、文字列間距離算出部121によって算出された文字間距離に基づいて複数のクラスタにクラスタリング(分割)する。
ステップS03において、分散配置処理部123は、本コンピュータシステム1に備えられる全てのVMを、複数のホスト30に分散させて配置する。この際、分散配置処理部123は、クラスタリング処理部122によって分轄された複数のクラスタに含まれる各VMを複数のホスト30に配置するに際して、同一クラスタのVMをできるだけ異なるホスト30に配置する。その後、処理を終了する。
(C)効果
このように、第1実施形態の一例としてのコンピュータシステム1によれば、VM配置制御部120において、VM名が類似するVMを異なるホスト30間に分散配置する。これにより、特性が似たVM同士を異なるホスト30に配置でき、例えば、同一時刻に負荷が増加することを阻止することができる。従って、仮想化されたコンピューティング環境の効率利用を実現できる。
また、VM名に着目し、特性が似たVM同士を別ホスト30に配置することで、VMの利用者の介在なしに、同一の目的で利用されているVMを別のホスト30に配置し、可用性を向上することができる。
文字列間距離算出部121が、2つのVMのVM名間の距離を算出することで、VM名の類似性を数値化し、クラスタリング処理部122によるクラスタリングを容易に実現することができる。
クラスタリング処理部122が、文字列間距離算出部121によって算出された文字間距離に基づいて複数のVMをクラスタリングすることで、分散配置処理部123が類似性の高いVMを容易に分散配置することができる。
分散配置処理部123が、クラスタリング処理部122により同一クラスタに分類した複数のVMを異なるホスト30に分散配置することで、類似する機能を有すると考えられるVMを異なるホスト30に配置することができる。これにより、負荷が上昇するタイミングが同一となるVMを別々のホスト30に配置するとともに、負荷が上昇するタイミングが異なるVMが同一にホスト30に配置されることが期待される。そして、複数のホスト30の負荷を平準化することができ、安定したシステム運用を実現できる。
分散配置処理部123は、ホスト30の計算資源に基づき、余剰資源割合の小さい計算資源を優先計算資源として特定し、この優先計算資源の合計予定使用量が大きいクラスタを構成するVMを、優先して割当を行なうVMとして決定する。
また、分散配置処理部123は、優先計算資源に着目して、優先計算資源の合計予定使用量が大きいクラスタを優先割当クラスタとして決定し、この優先割当クラスタを構成するVMを、優先してホスト30に分散配置するVMとして決定する。
そして、分散配置処理部123は、VMの分散配置を行なうに際して、余剰資源の多いホスト30に優先してVMを配置する。これらにより、分散配置処理部123は、効率的にホスト30にVMの割当を行なうことができる。
(II)第2実施形態の説明
上述した第1実施形態においては、コンピュータシステム1上で実行される全てのVMについて、各VMの配置先(配置先ホスト30)を決定する手法を示したが、これに限定されるものではない。
本第2実施形態においては、複数のVMが、既に2つ以上のホスト30に分散配置されている状態において、VMを最適なホスト30に再配置する手法について示す。以下に示すVMの再配置は、例えば、1日に1回等の定期的なタイミングで実施することが望ましい。
なお、本第2実施形態のコンピュータシステム1は、第1実施形態と同様のハードウェア構成(図1および図2参照)および機能構成(図3参照)を有するものであり、その詳細な説明は省略する。
本第2実施形態においては、文字列間距離算出部121は、ホスト30ごとに全VMの組み合わせでVM名に基づいて文字列間距離を計算する。
クラスタリング処理部122は、算出された文字列間距離に基づき、ホスト30毎にVMのクラスタリングを行なう。
ここで、クラスタリングの結果、充分に大きなクラスタが作成された場合、すなわち、構成するVM数が所定数(閾値)以上のクラスタが作成された場合には、似通った特性のVMがそのホスト30に多く配置されているということを意味する。そこで、本第2実施形態においては、分散配置処理部123は、VM数が所定数(閾値)以上のクラスタに属するVMを別のホスト30に移動させる(移送する)。以下、VM数が所定数(閾値)以上のクラスタを多VMクラスタという場合がある。
なお、多VMクラスタの検出は、上述の如くクラスタを構成するVMのVM数と閾値とを比較することによって行なう手法に限定されるものではなく、種々変形して実施することができる。例えば、類似するVM名を有するVMの数がホスト30間で偏って配置されている場合に、類似するVM名を多く有するクラスタを多VMクラスタとしてもよい。
分散配置処理部123は、一のホスト30上の複数のVMに基づいて生成された多VMクラスタのVMを他のホスト30に移送させるに際して、以下の点に留意することが望ましい。
すなわち、ホスト30から他のホスト30へVMを移送させることにより、移送先ホスト30に新たに多VMクラスタができてしまわないようにする。また、VMの移送先ホスト30の資源使用率が過剰になってしまわないようにする。
具体的には、分散配置処理部123は、以下に例示する手法により資源使用率の上限を超えないようにVMの再配置を行なう。すなわち、分散配置処理部123は、第1実施形態と同様に、合計資源使用率の大きなクラスタから優先的に資源に余裕のあるホスト30に分散配置する。また、仮に制約を満たすホスト30の候補が資源使用率に余剰のないホスト30のみになってしまった場合には、移送元ホスト30に多VMクラスタの存在しないVMと交換して配置する。
このように、第2実施形態の一例としてのコンピュータシステム1によれば、VM名が類似するVMを異なるホスト30間に分散配置するように再配置を行なう。これにより、複数のホスト30の負荷が平準化するようにVMが再配置され、本コンピュータシステム1を安定した状態に維持することができる。
(III)第3実施形態の説明
上述した第2実施形態においては、現状のVMの配置に基づきホスト30間でのVMの偏りを検出し、再配置を行なっているが、これに限定されるものではない。
本第3実施形態においては、新規VM追加時に、この新規追加するVMと特性が似たVMが少ないホスト30を選択して配置する。
上述した第2実施形態と同様に、文字列間距離算出部121は、ホスト30ごとに全VMの組み合わせでVM名に基づいて文字列間距離を計算する。また、クラスタリング処理部122は、算出された文字列間距離に基づき、ホスト30毎にVMのクラスタリングを行なう。
そして、本第3実施形態において、分散配置処理部123は、本コンピュータシステム1に備えられる全てのホスト30について、新規追加されるVMのVM名との文字列間距離が近いVMを有するクラスタが存在するかをそれぞれ確認する。すなわち、分散配置処理部123は、本コンピュータシステム1に備えられる全てのホスト30について、新規追加されるVMのVM名と特性が似ているVMを含むクラスタが存在するかをそれぞれ確認する。
そのため、文字列間距離算出部121は、ホスト30に新たに作成させるVMのVM名と、本コンピュータシステム1に備えられる各ホスト30に配置されている各VMのVM名との文字列間距離を算出してもよい。また、文字列間距離算出部121は、本コンピュータシステム1に備えられる各ホスト30が有する各クラスタから選択する1つ以上のVM(代表VM)と、新規追加するVMとの間でVM名の文字列間距離を算出してもよい。
分散配置処理部123は、ホスト30のVM生成機能により新たに作成させるVMのVM名と文字列間距離が近いVMを有するクラスタが存在するかを確認する。この確認の結果、新たに作成するVMのVM名と文字列間距離が近いVMを有するクラスタが存在しない場合には、計算資源にのみ着目して、複数のホスト30の中から新たに作成するVMの配置先のホスト30を決定してもよい。
一方、新たに作成するVMのVM名と文字列間距離が近いVMを有するクラスタが存在する場合には、そのホスト30を除く他のホスト30の中から、資源使用率が少ないホスト30を新たに作成するVMの配置先として優先的に決定してもよい。
このように、第3実施形態のコンピュータシステム1によれば、ホスト30のVM作成機能によって新たに生成するVMを、当該新たなVMと特性の近いVMが少ないホスト30に配置することができる。これにより、負荷が上昇するタイミングが同一となるVMを別々のホスト30に配置するとともに、負荷が上昇するタイミングが異なるVMが同一にホスト30に配置されることが期待される。そして、複数のホスト30の負荷を平準化することができ、安定したシステム運用を実現できる。
(IV)その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
例えば、コンピュータシステム1の構成は図1に例示したものに限定されるものではなく、適宜変更して実施することができる。例えば、ホスト30の台数は、3つ以下もしくは5つ以上であってもよい。また、管理サーバ10を複数備えてもよく、これらの複数の管理サーバ10に、図3に示した各部の機能を分散して備えてもよい。
また、上述した実施形態においては、CPUやメモリの余剰資源割合をパーセンテージ(%値)で表したが、これに限定されるものではなく、適宜変更して実施することができる。
上述の各実施形態に示したVM配置制御手法は、例えば、資源使用率の監視による他の配置手法と併用して実施してもよい。また、上述の各実施形態においては、VM名間の類似性を表す値として文字列間距離を用いているが、これに限定されるものではない。すなわち、文字列間距離以外の他の手法を用いてVM名間の類似性を表してもよい。
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
(V)付記
以上の実施形態に関し、さらに以下の付記を開示する。
(付記1)
仮想マシンの配置を行なう情報処理装置において、
前記仮想マシンの名前の類似性を判定する判定部と、
判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを1以上の組に分割する分割部と、
同一の組に含まれる仮想マシンを、異なるホストマシンに配置する配置部と
を備えることを特徴とする、情報処理装置。
(付記2)
前記判定部が、複数の仮想マシンの名前間における文字列間距離を算出することで、前記名前の類似性を示す値を求める
ことを特徴とする、付記1記載の情報処理装置。
(付記3)
前記配置部が、複数の前記ホストマシンに備えられる計算資源のうち、未使用である余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
ことを特徴とする、付記1または2記載の情報処理装置。
(付記4)
前記配置部が、前記余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する前記仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
ことを特徴とする、付記3記載の情報処理装置。
(付記5)
前記配置部が、前記仮想マシンを前記ホストマシンに配置するに際して、前記仮想マシンを前記余剰資源が最も多いホストマシンに優先して配置する
ことを特徴とする、付記4記載の情報処理装置。
(付記6)
複数のホストマシンと、前記ホストマシンに仮想マシンの配置を行なう管理装置とを備える情報処理システムにおいて、
前記仮想マシンの名前の類似性を判定する判定部と、
判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを1以上の組に分割する分割部と、
同一の組に含まれる仮想マシンを、前記複数のホストマシンにおける異なるホストマシンに配置する配置部と
を備えることを特徴とする、情報処理システム。
(付記7)
前記判定部が、複数の仮想マシンの名前間における文字列間距離を算出することで、前記名前の類似性を示す値を求める
ことを特徴とする、付記6記載の情報処理システム。
(付記8)
前記配置部が、複数の前記ホストマシンに備えられる計算資源のうち、未使用である余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
ことを特徴とする、付記6または7記載の情報処理システム。
(付記9)
前記配置部が、前記余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する前記仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
ことを特徴とする、付記8記載の情報処理システム。
(付記10)
前記配置部が、前記仮想マシンを前記ホストマシンに配置するに際して、前記仮想マシンを前記余剰資源が最も多いホストマシンに優先して配置する
ことを特徴とする、付記9記載の情報処理システム。
(付記11)
仮想マシンの配置を行なう情報処理装置の処理装置に、
前記仮想マシンの名前の類似性を判定し、
判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを1以上の組に分割し、
同一の組に含まれる仮想マシンを、異なるホストマシンに配置する
処理を実行させる、制御プログラム。
(付記12)
複数の仮想マシンの名前間における文字列間距離を算出することで、前記名前の類似性を示す値を求める
処理を前記処理装置に実行させる、付記11記載の制御プログラム。
(付記13)
複数の前記ホストマシンに備えられる計算資源のうち、未使用である余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
処理を前記処理装置に実行させる、付記11または12記載の制御プログラム。
(付記14)
前記余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する前記仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
処理を前記処理装置に実行させる、付記13記載の制御プログラム。
(付記15)
前記仮想マシンを前記ホストマシンに配置するに際して、前記仮想マシンを前記余剰資源が最も多いホストマシンに優先して配置する
処理を前記処理装置に実行させる、付記14記載の制御プログラム。
1 コンピュータシステム
10 管理サーバ
20-1,20-2 スイッチ
30-1~30-4,30 ホストコンピュータ
40 ストレージ
11 CPU
12 メモリ
13 記憶装置
14 ネットワークインタフェース
100 VM管理部
110 VM作成指示部
120 VM配置制御部
121 文字列間距離算出部
122 クラスタリング処理部
123 分散配置処理部
131 VM管理情報
132 資源情報
140 資源情報取得部

Claims (6)

  1. 仮想マシンの配置を行なう情報処理装置において、
    前記仮想マシンの名前の類似性を判定する判定部と、
    判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを1以上の組に分割する分割部と、
    同一の組に含まれる仮想マシンを、異なるホストマシンに配置する配置部と
    を備え
    前記配置部が、複数の前記ホストマシンに備えられる計算資源のうち、未使用である余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
    ことを特徴とする、情報処理装置。
  2. 前記判定部が、複数の仮想マシンの名前間における文字列間距離を算出することで、前記名前の類似性を示す値を求める
    ことを特徴とする、請求項1記載の情報処理装置。
  3. 前記配置部が、前記余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する前記仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定することを特徴とする、請求項1または2に記載の情報処理装置。
  4. 前記配置部が、前記仮想マシンを前記ホストマシンに配置するに際して、前記仮想マシンを前記余剰資源割合の最も多いホストマシンに優先して配置する
    ことを特徴とする、請求項記載の情報処理装置。
  5. 複数のホストマシンと、前記ホストマシンに仮想マシンの配置を行なう管理装置とを備える情報処理システムにおいて、
    前記仮想マシンの名前の類似性を判定する判定部と、
    判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを1以上の組に分割する分割部と、
    同一の組に含まれる仮想マシンを、前記複数のホストマシンにおける異なるホストマシンに配置する配置部と
    を備え
    前記配置部が、複数の前記ホストマシンに備えられる計算資源のうち、未使用である余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
    ことを特徴とする、情報処理システム。
  6. 仮想マシンの配置を行なう情報処理装置の処理装置に、
    前記仮想マシンの名前の類似性を判定し、
    判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを1以上の組に分割し、
    同一の組に含まれる仮想マシンを、異なるホストマシンに配置する
    処理を実行させ
    前記配置する処理は、複数の前記ホストマシンに備えられる計算資源のうち、未使用である余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する処理を含む、
    制御プログラム。
JP2018013260A 2018-01-30 2018-01-30 情報処理装置,情報処理システムおよび制御プログラム Active JP7003692B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2018013260A JP7003692B2 (ja) 2018-01-30 2018-01-30 情報処理装置,情報処理システムおよび制御プログラム
US16/257,414 US10990433B2 (en) 2018-01-30 2019-01-25 Efficient distributed arrangement of virtual machines on plural host machines

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2018013260A JP7003692B2 (ja) 2018-01-30 2018-01-30 情報処理装置,情報処理システムおよび制御プログラム

Publications (2)

Publication Number Publication Date
JP2019133291A JP2019133291A (ja) 2019-08-08
JP7003692B2 true JP7003692B2 (ja) 2022-01-20

Family

ID=67393550

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018013260A Active JP7003692B2 (ja) 2018-01-30 2018-01-30 情報処理装置,情報処理システムおよび制御プログラム

Country Status (2)

Country Link
US (1) US10990433B2 (ja)
JP (1) JP7003692B2 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112395071A (zh) * 2019-08-12 2021-02-23 北京百度网讯科技有限公司 用于资源管理的方法、装置、电子设备和存储介质
CN110597598B (zh) * 2019-09-16 2023-07-14 电子科技大学广东电子信息工程研究院 一种云环境中的虚拟机迁移的控制方法
CN111209118A (zh) * 2020-01-14 2020-05-29 北京三快在线科技有限公司 确定资源余量的方法、装置、存储介质和电子设备
CN111614746B (zh) * 2020-05-15 2022-03-22 北京金山云网络技术有限公司 云主机集群的负载均衡方法、装置及服务器
WO2024009499A1 (ja) * 2022-07-08 2024-01-11 日立Astemo株式会社 車載タスク分割システム及び車載タスク分割方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277171A (ja) 2009-05-26 2010-12-09 Hitachi Ltd タスク割当装置、および、タスク割当方法
JP2012198631A (ja) 2011-03-18 2012-10-18 Ntt Data Corp 仮想マシン配置装置、仮想マシン配置方法、仮想マシン配置プログラム
JP2013125548A (ja) 2011-12-15 2013-06-24 Hon Hai Precision Industry Co Ltd 仮想マシン割り当てシステム及びその使用方法
WO2014192254A1 (ja) 2013-05-29 2014-12-04 日本電気株式会社 仮想マシン制御装置、仮想マシン制御方法とそのプログラムを記録したコンピュータ読み取り可能な記録媒体、および、データセンタ

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10419268B2 (en) * 2017-01-27 2019-09-17 Bmc Software, Inc. Automated scoring of unstructured events in information technology environments
CN108399101B (zh) * 2017-02-06 2021-03-16 腾讯科技(深圳)有限公司 资源调度的方法、装置和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010277171A (ja) 2009-05-26 2010-12-09 Hitachi Ltd タスク割当装置、および、タスク割当方法
JP2012198631A (ja) 2011-03-18 2012-10-18 Ntt Data Corp 仮想マシン配置装置、仮想マシン配置方法、仮想マシン配置プログラム
JP2013125548A (ja) 2011-12-15 2013-06-24 Hon Hai Precision Industry Co Ltd 仮想マシン割り当てシステム及びその使用方法
WO2014192254A1 (ja) 2013-05-29 2014-12-04 日本電気株式会社 仮想マシン制御装置、仮想マシン制御方法とそのプログラムを記録したコンピュータ読み取り可能な記録媒体、および、データセンタ

Also Published As

Publication number Publication date
JP2019133291A (ja) 2019-08-08
US10990433B2 (en) 2021-04-27
US20190235907A1 (en) 2019-08-01

Similar Documents

Publication Publication Date Title
JP7003692B2 (ja) 情報処理装置,情報処理システムおよび制御プログラム
JP6957431B2 (ja) Hci環境でのvm/コンテナおよびボリューム配置決定方法及びストレージシステム
US10055258B2 (en) Virtual machine placement in a cloud computing environment based on factors including optimized processor-memory affinity
JP5412599B2 (ja) 計算機システム、および、計算機システムにおける仮想計算機の最適配置方法
US10628225B2 (en) Resource configuration system, resource configuration method and resource configuration program for selecting a computational resource and selecting a provisioning method
US9582221B2 (en) Virtualization-aware data locality in distributed data processing
JP5830599B2 (ja) 計算機システム及びその管理システム
CN106687926A (zh) 被克隆的虚拟机的负载均衡
EP2539817A1 (en) Methods and apparatus for movement of virtual resources within a data center environment
KR20140111589A (ko) 가상 기계들을 지원하는 플래시―기반 캐싱 해결책에서의 동적인 캐시 공유를 위한 시스템, 방법 및 컴퓨터―판독가능한 매체
JP2005216151A (ja) 資源運用管理システム及び資源運用管理方法
WO2015029133A1 (ja) ストレージシステム及びストレージシステム管理方法
JP2021026659A (ja) ストレージシステム及びリソース割当て制御方法
US20130185531A1 (en) Method and apparatus to improve efficiency in the use of high performance storage resources in data center
CN111124250A (zh) 用于管理存储空间的方法、设备和计算机程序产品
CN112948279A (zh) 管理存储系统中的访问请求的方法、设备和程序产品
JP2022034455A (ja) 計算機システムおよび管理方法
Heidari et al. A cost-efficient auto-scaling algorithm for large-scale graph processing in cloud environments with heterogeneous resources
JP7107981B2 (ja) 計算機システム
JP2015176218A (ja) 演算処理装置、演算処理装置の制御方法、及び演算処理装置の制御プログラム
WO2017082939A1 (en) Data center capacity management
US11546220B2 (en) Systems and methods for optimizing the number of servers in a cluster
Syrewicze et al. Using failover cluster manager to manage hyper-v clusters
JP2022110245A (ja) 仮想的なストレージシステムを提供するストレージクラスタを備えたストレージシステム
WO2017017775A1 (ja) 計算機システム及びボリュームの割り当て制御方法

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20190607

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20201110

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20210824

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210914

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20211115

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20211213

R150 Certificate of patent or registration of utility model

Ref document number: 7003692

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150