(57)【要約】【課題】仮想マシンを複数のホストマシンに効率的に分散配置できるようにする。【解決手段】仮想マシンの名前の類似性を判定する判定部１２１と、判定した結果に基づいて、名前の類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを１以上の組に分割する分割部１２２と、同一の組に含まれる仮想マシンを、異なるホストマシンに配置する配置部１２３とを備える。【選択図】図３
2019133291.tif 000002
【特許請求の範囲】
【請求項１】
仮想マシンの配置を行なう情報処理装置において、
前記仮想マシンの名前の類似性を判定する判定部と、
判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを１以上の組に分割する分割部と、
同一の組に含まれる仮想マシンを、異なるホストマシンに配置する配置部と
を備えることを特徴とする、情報処理装置。
【請求項２】
前記判定部が、複数の仮想マシンの名前間における文字列間距離を算出することで、前記名前の類似性を示す値を求める
ことを特徴とする、請求項１記載の情報処理装置。
【請求項３】
前記配置部が、複数の前記ホストマシンに備えられる計算資源のうち、未使用である余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
ことを特徴とする、請求項１または２記載の情報処理装置。
【請求項４】
前記配置部が、前記余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する前記仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
ことを特徴とする、請求項３記載の情報処理装置。
【請求項５】
前記配置部が、前記仮想マシンを前記ホストマシンに配置するに際して、前記仮想マシンを前記余剰資源の最も多いホストマシンに優先して配置する
ことを特徴とする、請求項４記載の情報処理装置。
【請求項６】
複数のホストマシンと、前記ホストマシンに仮想マシンの配置を行なう管理装置とを備える情報処理システムにおいて、
前記仮想マシンの名前の類似性を判定する判定部と、
判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを１以上の組に分割する分割部と、
同一の組に含まれる仮想マシンを、前記複数のホストマシンにおける異なるホストマシンに配置する配置部と
を備えることを特徴とする、情報処理システム。
【請求項７】
仮想マシンの配置を行なう情報処理装置の処理装置に、
前記仮想マシンの名前の類似性を判定し、
判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを１以上の組に分割し、
同一の組に含まれる仮想マシンを、異なるホストマシンに配置する
処理を実行させる、制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置，情報処理システムおよび制御プログラムに関する。
【背景技術】
【０００２】
近年、クラウドコンピューティングに代表されるように、計算機資源の効率利用を主目的としてコンピュータの仮想化が積極的に行なわれている。コンピュータ仮想化環境では、例えば、仮想マシン（Virtual Machine：ＶＭ）を監視し、資源使用率に応じて仮想マシンを複数のホストコンピュータ（以下、単にホストという）に適切に分散配置することでホスト間の負荷を平準化し、計算機資源の利用効率と性能の向上を図っている。
【０００３】
従来、仮想マシンの配置は、ＣＰＵ（Central Processing Unit）やメモリ、ネットワーク等の計算資源をホスト間で平準化するように行なわれている。例えば、ホストＡのＣＰＵ使用率がホストＢのＣＰＵ使用率に比べて著しく大きい場合は、適切な仮想マシンをホストＡから選んでホストＢに移動させる（移送する）。これにより、ホスト間でのＣＰＵ使用率の差を軽減する。
【０００４】
また、仮想マシンの配置を決定する際に、可用性向上の観点から、特定の仮想マシン同士を同一ホスト上に配置したくない場合が存在する。例えば、同一の機能を提供する仮想マシンαと仮想マシンβとを用意して可用性の向上を図ったとしても、これらの２つの仮想マシンα，βが同一ホスト上に配置されてしまっては、ホスト障害発生時に両方の仮想マシンが障害に陥ってしまう。これにより、当初の目的である可用性向上を達成することができない。そこで、仮想マシンの配置に関するルールを個々に明示的に設定することで、同一の機能を提供する仮想マシンの同一ホストへの配置を回避することも行なわれている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開２０１４／１９２２５４号パンフレット
【非特許文献】
【０００６】
【非特許文献１】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］、ＶＭｗａｒｅ社、［平成30年1月5日検索］、インターネット、<URL：https://www.vmware.com/techpapers/2016/drs-vsphere65-perf.html>
【非特許文献３】VMware Infrastructure Resource Management with VMware DRS、VMWARE BEST PRACTICES
【発明の概要】
【発明が解決しようとする課題】
【０００７】
計算資源の使用率をある瞬間のみでなく、将来に亘ってホスト間で平準化するためには、特性の似た仮想マシンを発見し、別々のホスト上に分散配置することが効果的である。各仮想マシンの資源使用率は時々刻々と変化する。そのため、例えば、同時刻に負荷が増加する仮想マシン群が同一ホストに配置されてしまうと、あるタイミングでそのホストの負荷が急激に増加してしまう。一方で、負荷が上昇するタイミングの異なる仮想マシン同士を同一ホストに配置できれば、ホストの負荷の乱高下を抑えることができる。
【０００８】
しかしながら、上述の如き従来の仮想マシンの配置管理方法では、過去の資源使用率を保存し、資源使用率の推移を仮想マシン間で比較することは可能であるが、大規模なシステム環境において全ての仮想マシン間で全ての計算資源に対して、このような比較処理を実行することは現実的でない。すなわち、従来の仮想マシンの配置管理方法においては、似た特性の仮想マシン同士を別ホストに配置するには限界がある。
【０００９】
また、同一ホストに配置したくない仮想マシンを個別に設定する方法は煩雑であり手間がかかる。さらにクラウドコンピューティング環境のように、仮想マシン上で動作しているサービスを仮想化環境の管理者が知ることができないという状況も考えられる。
【００１０】
１つの側面では、本発明は、仮想マシンを複数のホストマシンに効率的に分散配置できるようにすることを目的とする。
【課題を解決するための手段】
【００１１】
このため、情報処理装置は、仮想マシンの配置を行なう情報処理装置において、前記仮想マシンの名前の類似性を判定する判定部と、判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを１以上の組に分割する分割部と、同一の組に含まれる仮想マシンを、異なるホストマシンに配置する配置部とを備える。
【発明の効果】
【００１２】
一実施形態によれば、仮想マシンを複数のホストに効率的に分散配置できる。
【図面の簡単な説明】
【００１３】
【図１】第１実施形態の一例としてのコンピュータシステムの構成を模式的に示す図である。
【図２】第１実施形態の一例としてのコンピュータシステムにおける管理サーバのハードウェア構成を例示する図である。
【図３】第１実施形態の一例としてのコンピュータシステムにおける管理サーバの機能構成図である。
【図４】第１実施形態の一例としてのコンピュータシステムにおけるＶＭ名間の文字列間距離を例示する図である。
【図５】第１実施形態の一例としてのコンピュータシステムにおけるＶＭのクラスタリング手法を例示する図である。
【図６】図１に例示したコンピュータシステムのホストを抜き出して示す図である。
【図７】図１に例示したコンピュータシステムにおける資源情報を例示する図である。
【図８】第１実施形態の一例としてのコンピュータシステムにおけるＶＭによる計算資源の予定使用量を例示する図である。
【図９】第１実施形態の一例としてのコンピュータシステムにおけるクラスタ毎の計算資源の予定使用量を例示する図である。
【図１０】第１実施形態の一例としてのコンピュータシステムにおけるホストへのＶＭの配置状態を例示する図である。
【図１１】図１に例示したコンピュータシステムにおけるホストへのＶＭの割当後の資源情報を例示する図である。
【図１２】第１実施形態の一例としてのコンピュータシステムにおけるホストへのＶＭの配置状態を例示する図である。
【図１３】第１実施形態の一例としてのコンピュータシステムにおける分散配置処理部による、クラスタリングされたＶＭを複数のホストに配置する処理を説明するためのフローチャートである。
【図１４】第１実施形態の一例としてのコンピュータシステムにおけるＶＭの配置方法を説明するためのフローチャートである。
【発明を実施するための形態】
【００１４】
以下、図面を参照して本情報処理装置，情報処理システムおよび制御プログラムに係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形（実施形態および各変形例を組み合わせる等）して実施することができる。また、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。
【００１５】
（Ｉ）第１実施形態の説明
【００１６】
（Ａ）構成
図１は第１実施形態の一例としてのコンピュータシステム１の構成を模式的に示す図である。
【００１７】
コンピュータシステム１は、例えば、クラウドコンピューティングシステムに用いられ、ユーザ等に対して演算能力や記憶領域を提供する。
【００１８】
図１に例示するコンピュータシステム１は、管理サーバ１０，スイッチ２０−１，２０−２，ホストコンピュータ３０−１〜３０−４，およびストレージ４０−１，４０−２を備える。
【００１９】
そして、管理サーバ１０，ホストコンピュータ３０−１〜３０−４，およびストレージ４０−１，４０−２は、ネットワークを介して相互に通信可能に接続されている。
【００２０】
具体的には、図１に例示するコンピュータシステム１においては、ホストコンピュータ３０−１〜３０−４は、スイッチ２０−１を介してそれぞれ管理サーバ１０に接続されるとともに、スイッチ２０−２を介して、ストレージ４０−１，４０−２にそれぞれ接続されている。スイッチ２０−１，２０−２はネットワーク中継装置であり、例えば、受信したデータを宛先に応じて転送する。
【００２１】
ストレージ４０−１，４０−２は、ハードディスクドライブ（Hard Disk Drive：ＨＤＤ）、ＳＳＤ（Solid State Drive），ストレージクラスメモリ（Storage Class Memory：ＳＣＭ）等の記憶装置であって、種々のデータ等を格納するものである。また、ストレージ４０−１，４０−２は、複数の記憶装置を用いてＲＡＩＤ（Redundant Arrays of Inexpensive Disks）を構成したものであってもよい。
【００２２】
［ホストコンピュータ３０］
ホストコンピュータ３０−１〜３０−４は、サーバ機能を備えたコンピュータである。これらのホストコンピュータ３０−１〜３０−４は、互いに同様の構成を有する。以下、ホストコンピュータを示す符号としては、複数のホストコンピュータのうち１つを特定する必要があるときには符号３０−１〜３０−４を用いるが、任意のホストコンピュータを指すときには符号３０を用いる。また、以下、ホストコンピュータ３０を、単にホスト３０という場合がある。
【００２３】
各ホスト３０は、例えば、図示しない、ＣＰＵ，メモリ，記憶装置およびネットワークインタフェース（Inter Face：Ｉ／Ｆ）を備える。
【００２４】
記憶装置は、ＨＤＤ，ＳＳＤ，ＳＣＭ等の記憶装置であって、種々のデータを格納するものである。各ホスト３０には、それぞれ１つ以上の記憶装置が備えられてもよい。
【００２５】
ネットワークＩ／Ｆは、スイッチ２０−１，２０−２を介して、管理サーバ１０や他のホスト３０，ストレージ４０−１，４０−２と通信可能に接続する通信インタフェースである。ネットワークＩ／Ｆは、例えば、ＬＡＮ（Local Area Network）インタフェースやＦＣ（Fibre Channel）インタフェースである。
【００２６】
メモリは、ＲＯＭ（Read Only Memory）およびＲＡＭ（Random Access Memory）を含む記憶メモリである。メモリのＲＯＭには、ＯＳ（Operating System）やコンピュータ仮想化環境を実現するためのソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ上のソフトウェアプログラムは、ＣＰＵに適宜読み込まれて実行される。また、メモリのＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００２７】
ＣＰＵは、制御ユニット（制御回路）や演算ユニット（演算回路），キャッシュメモリ（レジスタ群）等を内蔵する処理装置（プロセッサ）であり、種々の制御や演算を行なう。ＣＰＵは、メモリに格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
【００２８】
本コンピュータシステム１に備えられた各ホスト３０において、ＣＰＵが制御プログラムを実行することで、後述するハイパーバイザとしての機能を実現する。
【００２９】
なお、ハイパーバイザとしての機能を実現するためのプログラム（ホスト用制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００３０】
ハイパーバイザとしての機能を実現する際には、内部記憶装置（本実施形態ではメモリ）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００３１】
ハイパーバイザは、ＶＭによるコンピュータ仮想化環境を実現するためのソフトウェアプログラム（制御プログラム）である。ハイパーバイザは、ＶＭを作成する機能（ＶＭ作成機能）を備え、後述する管理サーバ１０のＶＭ作成指示部１１０から送信されるＶＭ作成指示に従ってＶＭを作成する。なお、ＶＭの生成は既知の種々の手法で実現することができ、その説明は省略する。
【００３２】
また、ハイパーバイザは、自身が稼動するホスト３０において、１つ以上のＶＭを機能させる。
【００３３】
ＶＭは、ハイパーバイザ上で作成される仮想的なコンピュータである。各ＶＭは、物理ハードウェアで実現されるコンピュータと同様にＢＩＯＳやＣＰＵ、メモリ、ディスク、キーボード、マウス、ＣＤ−ＲＯＭドライブなどの周辺機器を用い、種々の処理を実行する。例えば、ＶＭは、種々のＯＳ（ゲストＯＳ）やこのゲストＯＳ上で稼動するアプリケーションプログラムを実行する。
【００３４】
［管理サーバ１０］
管理サーバ１０は、各ホスト３０において実現されるＶＭの管理を行なう管理装置である。例えば、管理サーバ１０は、複数のホスト３０間におけるＶＭの配置を決定し、ＶＭの配置先として決定したホスト３０に対してＶＭの作成を指示する。また、管理サーバ１０は、ホスト３０間におけるＶＭの移動（移送）を指示する。
【００３５】
図２は第１実施形態の一例としてのコンピュータシステム１における管理サーバ１０のハードウェア構成を例示する図、図３はその機能構成図である。
【００３６】
管理サーバ１０は、図２に示すように、ＣＰＵ１１，メモリ１２，記憶装置１３およびネットワークインタフェース（Ｉ／Ｆ）１４を備える。
【００３７】
記憶装置１３は、ＨＤＤ，ＳＳＤ，ＳＣＭ等の記憶装置であって、種々のデータやプログラムを格納するものである。
【００３８】
ネットワークＩ／Ｆ１４は、スイッチ２０−１を介して、ホスト３０−１〜３０−４およびストレージ４０−１，４０−２と通信可能に接続する通信インタフェースであり、例えば、ＬＡＮインタフェースやＦＣインタフェースである。
【００３９】
メモリ１２はＲＯＭおよびＲＡＭを含む記憶メモリである。メモリ１２のＲＯＭには、ＯＳやＶＭの管理にかかるソフトウェアプログラムやこのプログラム用のデータ類が書き込まれている。メモリ１２上のソフトウェアプログラムは、ＣＰＵ１１に適宜読み込まれて実行される。また、メモリ１２のＲＡＭは、一次記憶メモリあるいはワーキングメモリとして利用される。
【００４０】
また、メモリ１２のＲＡＭには、図３に示すように、ＶＭ管理情報１３１および資源情報１３２が格納される。
【００４１】
ＶＭ管理情報１３１には、各ホスト３０に配置されているＶＭを管理する情報である。ＶＭ管理情報１３１には、例えば、ＶＭの名前（ＶＭ名）が格納される。また、このＶＭ管理情報１３１には、各ＶＭを実現するために要する計算資源の情報（例えば、ＣＰＵ数，メモリ量）が含まれてもよい。
【００４２】
ＶＭ管理情報１３１を構成する情報は、ＲＡＭにおける所定の記憶領域に格納される。管理サーバ１０は、ＶＭ管理情報１３１を用いて各ＶＭのＶＭ名等を管理する。資源情報１３２については後述する。
【００４３】
ＣＰＵ１１は、制御ユニット（制御回路）や演算ユニット（演算回路），キャッシュメモリ（レジスタ群）等を内蔵する処理装置（プロセッサ）であり、種々の制御や演算を行なう。ＣＰＵ１１は、メモリ１２に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。
【００４４】
本コンピュータシステム１に備えられた管理サーバ１０において、ＣＰＵ１１が管理サーバ用制御プログラムを実行することで、ＶＭ管理部１００および資源情報取得部１４０としての機能を実現する。
【００４５】
なお、ＶＭ管理部１００および資源情報取得部１４０としての機能を実現するためのプログラム（管理サーバ用制御プログラム）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って内部記憶装置または外部記憶装置に転送し格納して用いる。また、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供するようにしてもよい。
【００４６】
ＶＭ管理部１００および資源情報取得部１４０としての機能を実現する際には、内部記憶装置（本実施形態ではメモリ１２）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１１）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
【００４７】
資源情報取得部１４０は、本コンピュータシステム１における計算資源に関する情報を取得する。例えば、資源情報取得部１４０は、各ホスト３０における計算資源の未使用部分の量を表す情報を取得する。
【００４８】
具体的には、資源情報取得部１４０は、各ホスト３０における未使用のＣＰＵ数やメモリ量，ネットワーク帯域等を資源情報として取得する。ＣＰＵ数はＣＰＵコア数であってもよい。
【００４９】
資源情報取得部１４０は、取得した資源情報を、メモリ１２に資源情報１３２として格納する（図７，図１１参照）。管理サーバ１０は、この資源情報１３２を用いて、各ホスト３０における計算資源の使用状況を管理する。
【００５０】
資源情報取得部１４０は、定期的に各ホスト３０から計算資源の情報を取得してもよく、また、ＶＭ配置制御部１２０からの要求に応じて、各ホスト３０から計算資源の情報を随時取得してもよい。
【００５１】
ＶＭ管理部１００は、本コンピュータシステム１におけるＶＭの管理を行なう。ＶＭ管理部１００は、図３に示すように、ＶＭ作成指示部１１０およびＶＭ配置制御部１２０としての機能を備える。
【００５２】
ＶＭ作成指示部１１０は、各ホスト３０にＶＭを作成させる指示（ＶＭ生成指示）を発行する。例えば、本コンピュータシステム１において、ユーザが端末装置（図示省略）からＶＭの作成要求を入力すると、ＶＭ作成指示部１１０はこのＶＭ作成要求に応じてホスト３０にＶＭ作成指示を発行する。
【００５３】
ユーザは、ＶＭ作成要求とともに、作成を要求するＶＭの名前（ＶＭ名）を入力する。また、ユーザは、ＶＭ作成要求を入力するに際して、そのＶＭに使用させるＣＰＵ数やメモリ量等の計算資源の予定使用量を入力してもよい。
【００５４】
ＶＭ作成指示部１１０は、ホスト３０に対して、ＶＭ作成指示とともに、ユーザによって入力されたＶＭ名を送信する。また、ＶＭ作成指示部１１０は、ＶＭ作成指示とともに、当該ＶＭに関する計算資源の予定使用量（ＣＰＵ数，メモリ量等）をホスト３０に送信してもよい。
【００５５】
ＶＭ作成指示を受信したホスト３０においては、ハイパーバイザのＶＭ生成機能により、ＶＭを作成する。ホスト３０において生成されたＶＭには、ユーザ等により入力されたＶＭ名が設定される。設定されたＶＭ名は、ＶＭ管理情報１３１に記憶される。
【００５６】
また、ＶＭ管理情報１３１には、ＶＭによる計算資源の予定使用量も当該ＶＭに対応して記憶される（図８参照）。
【００５７】
ＶＭによる計算資源の予定使用量は、例えば、ＶＭにより使用されるＣＰＵ数（ＣＰＵコア数）やメモリ量，ネットワーク使用帯域である。また、特に、ＶＭにより使用されるＣＰＵ数として、ｖＣＰＵ（virtual ＣＰＵ：仮想ＣＰＵ）数を用いてもよい。
【００５８】
なお、ＶＭによる計算資源の予定使用量は、例えば、ＶＭを生成する際の仕様として取得してもよく、既知の種々の手法で取得することができる。
【００５９】
ＶＭ配置制御部１２０はＶＭの配置先のホスト３０を決定する。
【００６０】
さて、ＶＭの命名は運用の観点から重要であり、機能名（例えば、webやdb）やサービス名（例えばserviceAやfuijtsu）等をＶＭ名に含めることが一般的に行なわれる。すなわち、ＶＭ名にはそのＶＭの特性を示す情報が含まれることが多い。
【００６１】
本コンピュータシステム１において、ＶＭ配置制御部１２０は、ＶＭ名に着目して、特性の似た仮想マシンを別々のホスト３０に配置する分散配置を実現する。具体的には、ＶＭ配置制御部１２０は、類似するＶＭ名を有する複数のＶＭを異なるホスト３０に分散させて配置（分散配置）する。
【００６２】
例えば、ＶＭ配置制御部１２０は、本コンピュータシステム１におけるサービス開始時等に、本コンピュータシステム１上で実行される全てのＶＭについて、それぞれの配置先（配置先ホスト３０）を決定する。ＶＭ配置制御部１２０は、これらのＶＭの配置先を決定するに際して、ＶＭ名に基づく分散配置を実施する。
【００６３】
そして、本第１実施形態においてＶＭ配置制御部１２０は、本コンピュータシステム１に備えられている全ホスト３０に配置予定の各ＶＭのＶＭ名に基づいて、各ＶＭの配置先のホスト３０の検討を行なう。
【００６４】
ＶＭ配置制御部１２０は、図３に示すように、文字列間距離算出部１２１，クラスタリング処理部１２２および分散配置処理部１２３としての機能を備える。
【００６５】
文字列間距離算出部１２１は、ＶＭ名間の類似性を数値化する処理（演算）を行なう。
【００６６】
具体的には、文字列間距離算出部１２１は、本コンピュータシステム１に備えられる全てのＶＭの各ＶＭ名のそれぞれについて、各ＶＭ名を構成する文字列間と他のＶＭのＶＭ名との文字列間距離を算出する。文字列間距離は２つの文字列がどの程度異なっているかを示す値である。例えば、文字列間距離は、距離が短い、すなわち値が小さい程、比較する２つの文字列が似ていることを示すものとする。文字列間距離は、２つの文字列（ＶＭ名）の類似度を表す値であるとも言える。
【００６７】
文字列間距離としては、例えば、レーベンシュタイン距離，N-gram，ジャロ・ウィンクラー距離等を用いることができる。また、文字列間距離は、これらに限定されるものではなく、これら以外の手法を用いてもよく、適宜変更して実施することができる。
【００６８】
図４は第１実施形態の一例としてのコンピュータシステム１におけるＶＭ名間の文字列間距離を例示する図である。この図４に例示する文字列間距離は、レーベルシュタイン距離を用いて示すものである。
【００６９】
この図４においては、５つのＶＭ名“fj-db-0”，“fj-db-1”，“iwata0”，“iwata1”，“iwata2”における各間の文字列間距離を例示する。例えば、ＶＭ名“fj-db-0”とＶＭ名“fj-db-1”との文字列間距離は“1”であり、ＶＭ名“fj-db-0”とＶＭ名“iwata0”との文字列間距離は“6”である。
【００７０】
文字列間距離算出部１２１は、ＶＭ名の類似性を判定する判定部として機能する。
【００７１】
クラスタリング処理部１２２は、本コンピュータシステム１に備えられる全てのＶＭを、文字列間距離算出部１２１によって算出された文字間距離に基づいて、複数のクラスタにクラスタリング（分割）する。
【００７２】
クラスタリング処理部１２２によるクラスタリングには、既知の種々の手法を用いることができ、例えば、最短距離法やk-means法を用いることができる。また、クラスタリング手法は、これらに限定されるものではなく、これら以外の手法を用いてもよく、適宜変更して実施することができる。
【００７３】
クラスタリング処理部１２２は、ＶＭ名の類似性を示す文字列間距離が所定の閾値以内となるＶＭが組となるように、複数のＶＭを１以上の組（クラスタ）に分割する分割部として機能する。
【００７４】
クラスタリングを行なうに際して、適切なクラスタ数は適用環境に応じて変化すると考えられるため、最初のうちは管理者等が確認しながらクラスタリングを進めることが望ましい。
【００７５】
図５は第１実施形態の一例としてのコンピュータシステム１におけるＶＭのクラスタリング手法を例示する図である。この図５においては、図４に例示した５つのＶＭ名を最短距離法によって２つのクラスタにクラスタリングした例を示す。
【００７６】
この図５に示す例においては、ＶＭ名“fj-db-0”およびＶＭ名“fj-db-1”の２つのＶＭによりクラスタ“fj-db”が構成され、ＶＭ名“iwata0”，“iwata1”，“iwata2”の３つのＶＭによりクラスタ“iwata”が構成されている。
【００７７】
分散配置処理部１２３は、本コンピュータシステム１に備えられる全てのＶＭを、複数のホスト３０に分散させて配置する。
【００７８】
分散配置処理部１２３は、クラスタリング処理部１２２によって分割された複数のクラスタに含まれる各ＶＭを複数のホスト３０に配置するに際して、同一クラスタのＶＭをできるだけ異なるホスト３０に配置する。
【００７９】
クラスタリング処理部１２２によるクラスタリングの結果、同一のクラスタに含まれるＶＭどうしのＶＭ名は、文字列間距離が近く、互いに似ているものである。そして、上述の如く、ＶＭ名が類似するＶＭは、それらの特性にも類似性があるとみなすことができる。
【００８０】
分散配置処理部１２３は、このように、特性に類似性があると考えられるＶＭを互いに異なるホスト３０に分散配置することで、ホスト３０間において計算資源の平準化を実現する。
【００８１】
分散配置処理部１２３は、同一のクラスタ（組）に含まれるＶＭを、異なるホスト３０に配置する配置部として機能する。
【００８２】
また、分散配置処理部１２３は、ＶＭを複数のホスト３０に分散配置するに際して、資源使用率も加味しながら、ＶＭ数や資源使用率に大きな偏りが生じない形でホスト３０への配置を決定する。
【００８３】
具体的には、分散配置処理部１２３は、以下の処理１〜４をクラスタ毎に繰り返し実行することで、複数のホスト３０へのＶＭの分散配置を実現する。
【００８４】
（処理１）各クラスタに含まれるＶＭの計算資源使用率の合計を計算
（処理２）計算資源ごとにホスト３０の合計の余剰資源を計算
（処理３）余剰割合の少ない計算資源に着目して、合計資源使用率の大きなクラスタから優先的にホスト３０に分散配置
（処理４）分散配置をする際には、余剰資源の多いホスト３０に優先的に配置
【００８５】
分散配置処理部１２３は、上述の処理２〜４を行なうことで、資源使用率の高いＶＭを優先的にホスト３０に配置する。これにより、資源使用率の制約から終盤に同一クラスタの仮想マシンを別ホスト３０に配置できないという状況を回避することができる。
【００８６】
なお、仮にＶＭの配置決定時に優先されるべきルール（例えば、「fj-db-0とiwata2とを別のホスト３０に配置する」）が定まっている場合には、分散配置処理部１２３は、そのルールを満たす配置を終えた後で、ＶＭ名に基づく分散配置を実行する。
【００８７】
以下に、分散配置処理部１２３による、クラスタリングされたＶＭを複数のホスト３０に配置する処理を、図６〜図１２を随時参照しながら図１３に示すフローチャート（ステップＳ１〜Ｓ６）に従って説明する。
【００８８】
図６は図１に例示したコンピュータシステム１のホスト３０−１〜３０−４のみを抜き出して示す図である。
【００８９】
以下、ホスト３０−１をホスト＃０と表す場合がある。同様に、ホスト３０−２，３０−３，３０−４を、ホスト＃１，＃２，＃３とそれぞれ表す場合がある。
【００９０】
以下においては、これらの４つのホスト＃０〜＃３に、図４に例示した、ＶＭ名“fj-db-0”，“fj-db-1”，“iwata0”，“iwata1”，“iwata2”の５つのＶＭを分散配置する例について示す。
【００９１】
また、以下、ＶＭ名“fj-db-0”を有するＶＭを、単にＶＭ“fj-db-0”という場合がある。同様に、ＶＭ名 “fj-db-1”，“iwata0”，“iwata1”，“iwata2”を有する各ＶＭを、それぞれ、ＶＭ“fj-db-1”，ＶＭ“iwata0”，ＶＭ“iwata1”およびＶＭ“iwata2”という場合がある。
【００９２】
図７は図１に例示したコンピュータシステム１における資源情報１３２を例示する図である。
【００９３】
この図７に例示する資源情報１３２には、図４に例示した５つのＶＭをホスト＃０〜＃３に分散配置する直前のタイミングでの、各ホスト３０における余剰資源の状態（余剰資源量）を示す。余剰資源量は、ホスト３０に備えられた計算資源のうち未使用部分の量（個数や容量）を示す。
【００９４】
以下に示す例においては、計算資源がＣＰＵおよびメモリである例について示し、図７においては、資源情報１３２に、未使用のＣＰＵ数（ＣＰＵコア数）および使用されていないメモリ量が登録されている。
【００９５】
例えば、ホスト＃０，＃１，＃２，＃３についてのメモリの余剰資源量（メモリ量）は、それぞれ128GB，64GB，64GBおよび100GBである。これらの値は、資源情報取得部１４０によって取得される。
【００９６】
図８は第１実施形態の一例としてのコンピュータシステム１におけるＶＭによる計算資源の予定使用量を例示する図である。
【００９７】
この図８に示す例においては、図４に例示した５つのＶＭの各計算資源の予定使用量を示す。
【００９８】
例えば、ＶＭ“iwata0”の実現には、１つのＣＰＵ（ｖＣＰＵ数=１）と、１ＧＢのメモリ量が使用される。
【００９９】
ステップＳ１において、分散配置処理部１２３は、ＶＭ毎の計算資源の予定使用量を、クラスタ毎に集計することで、クラスタ毎の計算資源の予定使用量を算出する。
【０１００】
図９は第１実施形態の一例としてのコンピュータシステム１におけるクラスタ毎の計算資源の予定使用量を例示する図である。
【０１０１】
この図９に示す例においては、図５に例示した２つのクラスタfj-db”，“iwata”のそれぞれについて、各クラスタに含まれる複数のＶＭの計算資源の予定使用量を集計している。
【０１０２】
例えば、クラスタ“iwata”についてのＣＰＵの予定使用量（ｖＣＰＵ数）は、このクラスタ“iwata”に含まれる３つのＶＭ“iwata0”，“iwata1”，“iwata2”の各ｖＣＰＵ数を合計することで求められる（ｖＣＰＵ数：6=1+2+3）。同様に、このクラスタ“iwata”についてのメモリの予定使用量は、このクラスタ“iwata”に含まれる３つのＶＭ“iwata0”，“iwata1”，“iwata2”の各メモリ予定使用量を合計することで求められる（メモリ量：6=1+2+3）。
【０１０３】
次に、ステップＳ２において、分散配置処理部１２３は、計算資源毎に余剰資源割合を算出する。
【０１０４】
余剰資源割合は、本コンピュータシステム１に備えられた全ホスト３０の物理資源の総量に対する、全ホスト３０のＶＭ未配置状態での余剰資源量の総量の割合である。
【０１０５】
例えば、ＶＭが一つも配置されていない状態（ＶＭ未配置状態）での、各ホスト３０の物理資源として、ＣＰＵが１６コアであり、メモリサイズが１２８ＧＢである場合には、
各計算資源の余剰資源割合は、以下の式（１），（２）で求められる。
【０１０６】
ＣＰＵの余剰資源割合＝(16+8+14+10)÷(16×4)×100＝75%  ・・・（１）
メモリの余剰資源割合＝(128+64+64+100)÷(128×4)×100＝70%  ・・・（２）
分散配置処理部１２３は、上述の如く算出した計算資源毎の余剰資源割合に基づき、余剰割合の少ない計算資源を特定する。
【０１０７】
上記式（１），（２）による算出例においては、ＣＰＵよりもメモリの余剰資源割合の方が小さいことを示す。このように、複数種類の計算資源において、余剰資源割合が小さい方の計算資源を、優先計算資源という場合がある。
【０１０８】
分散配置処理部１２３は、特定した優先計算資源に着目して、クラスタ毎の計算資源の予定使用量（図９参照）を参照して、優先計算資源の合計予定使用量が大きいクラスタを構成するＶＭを、優先して割当を行なうＶＭとして決定する。以下、複数のクラスタの中で、優先計算資源の合計予定使用量が大きいクラスタを優先割当クラスタという場合がある。
【０１０９】
分散配置処理部１２３は、優先計算資源に着目して、クラスタ毎の計算資源の予定使用量（図９参照）を参照して、優先計算資源の合計予定使用量が大きいクラスタを優先割当クラスタとして決定する（ステップＳ３）。
【０１１０】
分散配置処理部１２３は、特定した優先計算資源（メモリ量）に着目し、クラスタ毎の計算資源の予定使用量（図９参照）を参照して、メモリ量の合計予定使用量が大きいクラスタを優先割当クラスタとして特定する。図９に示す例においては、クラスタ“fj-db”のメモリ量の合計予定使用量の方が、クラスタ“iwata”よりも大きいので、クラスタ“fj-db”が優先割当クラスタとして選択される。
【０１１１】
分散配置処理部１２３は、この優先割当クラスタを構成するＶＭを、優先してホスト３０に分散配置するＶＭとして決定する。図９に示す例においては、分散配置処理部１２３は、優先割当クラスタであるクラスタ“fj-db”のＶＭ“fj-db-0”，“fj-db-1”をホスト３０に優先して割り当て、その後、クラスタ“iwata”のＶＭ“iwata0”〜“iwata2”をホスト３０に割り当てる。
【０１１２】
分散配置処理部１２３は、ＶＭの分散配置を行なうに際して、余剰資源の多いホスト３０に優先してＶＭを配置する。
【０１１３】
以下、複数のホスト３０の中で、余剰資源が多いホスト３０を優先割当先ホスト３０という場合がある。
【０１１４】
分散配置処理部１２３は、余剰資源が多いホスト３０を、複数のホスト３０の中で優先してＶＭを割り当てる優先割当先ホスト３０として決定する（ステップＳ４）。
【０１１５】
分散配置処理部１２３は、優先計算資源（メモリ量）に着目して資源情報１３２を参照し、メモリ量の余剰資源量が多いホスト３０を優先割当先ホスト３０として決定する。図７に示す例においては、優先計算資源であるメモリ量について、ホスト＃０が最も余剰資源量が大きく、次に、ホスト＃３の余剰資源量が大きい。従って、分散配置処理部１２３は、これらのホスト＃０およびホスト＃３を優先割当先ホスト３０として決定する。
【０１１６】
分散配置処理部１２３は、優先割当クラスタを構成するＶＭを優先割当先ホストに配置する（ステップＳ５）。
【０１１７】
図１０は第１実施形態の一例としてのコンピュータシステム１におけるホスト３０へのＶＭの配置状態を例示する図である。
【０１１８】
図１０においては、ホスト＃０，＃３にクラスタ“fj-db”のＶＭ“fj-db-0”，“fj-db-1”が、それぞれ配置された状態を示す。
【０１１９】
その後、ステップＳ６において、分散配置処理部１２３は、全てのＶＭのホスト３０への配置が完了したかを確認する。
【０１２０】
確認の結果、全てのＶＭの配置が完了した場合には（ステップＳ６のＹＥＳルート参照）、処理を終了する。
【０１２１】
一方、全てのＶＭの配置が完了していない場合には（ステップＳ６のＮＯルート参照）、ステップＳ２に戻り、以降の処理を繰り返し行なう。
【０１２２】
なお、上述したステップＳ５においてＶＭをホスト３０に配置することで、配置先のホスト３０の余剰資源量は変更される。
【０１２３】
上述した例においては、ホスト＃０，＃３にＶＭ“fj-db-1”，“fj-db-0”を配置することにより、これらのホスト＃０，＃３の余剰資源量が変更される。分散配置処理部１２３は、ＶＭの配置後において、資源情報１３２の更新を行なう。
【０１２４】
図１１は図１に例示したコンピュータシステム１における、ホスト＃０，＃３へのＶＭの割当後における資源情報１３２を例示する図である。
【０１２５】
この図１１に示す例においては、図７に例示した資源情報１３２と比べて、ホスト＃０のＣＰＵ数およびメモリ量が１１および１２３にそれぞれ更新され、また、ホスト＃３のＣＰＵ数およびメモリ量が６および９６にそれぞれ更新されている。
【０１２６】
分散配置処理部１２３は、ステップＳ２において更新された資源情報１３２の値を用いて、計算資源毎に余剰資源割合の算出を、再度、行なう（ステップＳ２）。
【０１２７】
図１１に例示する状態においては、各計算資源の余剰資源割合は、以下の式（３），（４）により求められる。
【０１２８】
ＣＰＵの余剰資源割合＝(11+8+14+6)÷(16×4)×100＝61%  ・・・（３）
メモリの余剰資源割合＝(123+64+64+96)÷(128×4)×100＝68%  ・・・（４）
かかる演算の結果においては、メモリ量よりもＣＰＵの余剰資源割合の方が小さい。従って、その後、ステップＳ３において、分散配置処理部１２３は、ＣＰＵを優先計算資源として着目して、クラスタ毎の計算資源の予定使用量（図９参照）を参照し、残りの未割当のクラスタの中から、ＣＰＵ数の合計予定使用量が大きいクラスタを優先割当クラスタとして特定する。
【０１２９】
なお、本例においては、未割当のクラスタとしてクラスタ“iwata”が１つ残っているだけなので、このクラスタ“iwata”が優先割当クラスタとして選択される。
【０１３０】
分散配置処理部１２３は、この優先割当クラスタを構成するＶＭを、優先してホスト３０に分散配置するＶＭとして決定する。すなわち分散配置処理部１２３は、優先割当クラスタであるクラスタ“iwata”のＶＭ“iwata0”，“iwata1”および“iwata2”をホスト３０に割り当てる。
【０１３１】
分散配置処理部１２３は、優先計算資源（メモリ量）に着目して資源情報１３２を参照し、メモリ量の余剰資源量が多いホスト３０を優先割当先ホスト３０として決定する。図７に示す例においては、優先計算資源であるメモリ量について、ホスト＃０が最も余剰資源量が大きく、次に、ホスト＃３の余剰資源量が大きい。従って、分散配置処理部１２３は、これらのホスト＃０およびホスト＃３を優先割当先ホスト３０として決定する（ステップＳ４）。
【０１３２】
分散配置処理部１２３は、優先割当クラスタを構成するＶＭを優先割当先ホストに配置する（ステップＳ５）。
【０１３３】
図１２は第１実施形態の一例としてのコンピュータシステム１におけるホスト３０へのＶＭの配置状態を例示する図である。
【０１３４】
図１２に示す例においては、  図１０に示したＶＭの配置を行なった後に、ホスト＃０，＃１，＃２にクラスタ“iwata”のＶＭ“iwata1”，“iwata0”および“iwata2”が、それぞれ配置された状態を示す。
【０１３５】
その後、ステップＳ６において、分散配置処理部１２３は、全てのＶＭのホスト３０への配置が完了したかを、再度、確認する。
【０１３６】
全てのＶＭの配置が完了していない場合には（ステップＳ６のＮＯルート参照）、ステップＳ２に戻り、以降の処理を繰り返し行なう。
【０１３７】
また、確認の結果、全てのＶＭの配置が完了した場合には（ステップＳ６のＹＥＳルート参照）、処理を終了する。本例においては、クラスタ“iwata”を構成する各ＶＭを配置することで、全てのＶＭの配置が完了する。
【０１３８】
（Ｂ）動作
上述の如く構成された第１実施形態の一例としてのコンピュータシステム１におけるＶＭの配置方法を、図１４に示すフローチャート（ステップＳ０１〜Ｓ０３）に従って説明する。
【０１３９】
以下に示す処理は、例えば、本コンピュータシステム１におけるサービス開始時等に、本コンピュータシステム１上で実行される全てのＶＭについて、各ＶＭの配置先（配置先ホスト３０）を決定する際に実行される。
【０１４０】
ステップＳ０１において、文字列間距離算出部１２１は、本コンピュータシステム１に備えられる全てのＶＭの各ＶＭ名のそれぞれについて、各ＶＭ名を構成する文字列間と他のＶＭのＶＭ名との文字列間距離を算出する。
【０１４１】
ステップＳ０２において、クラスタリング処理部１２２は、本コンピュータシステム１に備えられる全てのＶＭを、文字列間距離算出部１２１によって算出された文字間距離に基づいて複数のクラスタにクラスタリング（分割）する。
【０１４２】
ステップＳ０３において、分散配置処理部１２３は、本コンピュータシステム１に備えられる全てのＶＭを、複数のホスト３０に分散させて配置する。この際、分散配置処理部１２３は、クラスタリング処理部１２２によって分轄された複数のクラスタに含まれる各ＶＭを複数のホスト３０に配置するに際して、同一クラスタのＶＭをできるだけ異なるホスト３０に配置する。その後、処理を終了する。
【０１４３】
（Ｃ）効果
このように、第１実施形態の一例としてのコンピュータシステム１によれば、ＶＭ配置制御部１２０において、ＶＭ名が類似するＶＭを異なるホスト３０間に分散配置する。これにより、特性が似たＶＭ同士を異なるホスト３０に配置でき、例えば、同一時刻に負荷が増加することを阻止することができる。従って、仮想化されたコンピューティング環境の効率利用を実現できる。
【０１４４】
また、ＶＭ名に着目し、特性が似たＶＭ同士を別ホスト３０に配置することで、ＶＭの利用者の介在なしに、同一の目的で利用されているＶＭを別のホスト３０に配置し、可用性を向上することができる。
【０１４５】
文字列間距離算出部１２１が、２つのＶＭのＶＭ名間の距離を算出することで、ＶＭ名の類似性を数値化し、クラスタリング処理部１２２によるクラスタリングを容易に実現することができる。
【０１４６】
クラスタリング処理部１２２が、文字列間距離算出部１２１によって算出された文字間距離に基づいて複数のＶＭをクラスタリングすることで、分散配置処理部１２３が類似性の高いＶＭを容易に分散配置することができる。
【０１４７】
分散配置処理部１２３が、クラスタリング処理部１２２により同一クラスタに分類した複数のＶＭを異なるホスト３０に分散配置することで、類似する機能を有すると考えられるＶＭを異なるホスト３０に配置することができる。これにより、負荷が上昇するタイミングが同一となるＶＭを別々のホスト３０に配置するとともに、負荷が上昇するタイミングが異なるＶＭが同一にホスト３０に配置されることが期待される。そして、複数のホスト３０の負荷を平準化することができ、安定したシステム運用を実現できる。
【０１４８】
分散配置処理部１２３は、ホスト３０の計算資源に基づき、余剰資源割合の小さい計算資源を優先計算資源として特定し、この優先計算資源の合計予定使用量が大きいクラスタを構成するＶＭを、優先して割当を行なうＶＭとして決定する。
【０１４９】
また、分散配置処理部１２３は、優先計算資源に着目して、優先計算資源の合計予定使用量が大きいクラスタを優先割当クラスタとして決定し、この優先割当クラスタを構成するＶＭを、優先してホスト３０に分散配置するＶＭとして決定する。
【０１５０】
そして、分散配置処理部１２３は、ＶＭの分散配置を行なうに際して、余剰資源の多いホスト３０に優先してＶＭを配置する。これらにより、分散配置処理部１２３は、効率的にホスト３０にＶＭの割当を行なうことができる。
【０１５１】
（ＩＩ）第２実施形態の説明
上述した第１実施形態においては、コンピュータシステム１上で実行される全てのＶＭについて、各ＶＭの配置先（配置先ホスト３０）を決定する手法を示したが、これに限定されるものではない。
【０１５２】
本第２実施形態においては、複数のＶＭが、既に２つ以上のホスト３０に分散配置されている状態において、ＶＭを最適なホスト３０に再配置する手法について示す。以下に示すＶＭの再配置は、例えば、１日に１回等の定期的なタイミングで実施することが望ましい。
【０１５３】
なお、本第２実施形態のコンピュータシステム１は、第１実施形態と同様のハードウェア構成（図１および図２参照）および機能構成（図３参照）を有するものであり、その詳細な説明は省略する。
【０１５４】
本第２実施形態においては、文字列間距離算出部１２１は、ホスト３０ごとに全ＶＭの組み合わせでＶＭ名に基づいて文字列間距離を計算する。
【０１５５】
クラスタリング処理部１２２は、算出された文字列間距離に基づき、ホスト３０毎にＶＭのクラスタリングを行なう。
【０１５６】
ここで、クラスタリングの結果、充分に大きなクラスタが作成された場合、すなわち、構成するＶＭ数が所定数（閾値）以上のクラスタが作成された場合には、似通った特性のＶＭがそのホスト３０に多く配置されているということを意味する。そこで、本第２実施形態においては、分散配置処理部１２３は、ＶＭ数が所定数（閾値）以上のクラスタに属するＶＭを別のホスト３０に移動させる（移送する）。以下、ＶＭ数が所定数（閾値）以上のクラスタを多ＶＭクラスタという場合がある。
【０１５７】
なお、多ＶＭクラスタの検出は、上述の如くクラスタを構成するＶＭのＶＭ数と閾値とを比較することによって行なう手法に限定されるものではなく、種々変形して実施することができる。例えば、類似するＶＭ名を有するＶＭの数がホスト３０間で偏って配置されている場合に、類似するＶＭ名を多く有するクラスタを多ＶＭクラスタとしてもよい。
分散配置処理部１２３は、一のホスト３０上の複数のＶＭに基づいて生成された多ＶＭクラスタのＶＭを他のホスト３０に移送させるに際して、以下の点に留意することが望ましい。
【０１５８】
すなわち、ホスト３０から他のホスト３０へＶＭを移送させることにより、移送先ホスト３０に新たに多ＶＭクラスタができてしまわないようにする。また、ＶＭの移送先ホスト３０の資源使用率が過剰になってしまわないようにする。
【０１５９】
具体的には、分散配置処理部１２３は、以下に例示する手法により資源使用率の上限を超えないようにＶＭの再配置を行なう。すなわち、分散配置処理部１２３は、第１実施形態と同様に、合計資源使用率の大きなクラスタから優先的に資源に余裕のあるホスト３０に分散配置する。また、仮に制約を満たすホスト３０の候補が資源使用率に余剰のないホスト３０のみになってしまった場合には、移送元ホスト３０に多ＶＭクラスタの存在しないＶＭと交換して配置する。
【０１６０】
このように、第２実施形態の一例としてのコンピュータシステム１によれば、ＶＭ名が類似するＶＭを異なるホスト３０間に分散配置するように再配置を行なう。これにより、複数のホスト３０の負荷が平準化するようにＶＭが再配置され、本コンピュータシステム１を安定した状態に維持することができる。
【０１６１】
（ＩＩＩ）第３実施形態の説明
上述した第２実施形態においては、現状のＶＭの配置に基づきホスト３０間でのＶＭの偏りを検出し、再配置を行なっているが、これに限定されるものではない。
【０１６２】
本第３実施形態においては、新規ＶＭ追加時に、この新規追加するＶＭと特性が似たＶＭが少ないホスト３０を選択して配置する。
【０１６３】
上述した第２実施形態と同様に、文字列間距離算出部１２１は、ホスト３０ごとに全ＶＭの組み合わせでＶＭ名に基づいて文字列間距離を計算する。また、クラスタリング処理部１２２は、算出された文字列間距離に基づき、ホスト３０毎にＶＭのクラスタリングを行なう。
【０１６４】
そして、本第３実施形態において、分散配置処理部１２３は、本コンピュータシステム１に備えられる全てのホスト３０について、新規追加されるＶＭのＶＭ名との文字列間距離が近いＶＭを有するクラスタが存在するかをそれぞれ確認する。すなわち、分散配置処理部１２３は、本コンピュータシステム１に備えられる全てのホスト３０について、新規追加されるＶＭのＶＭ名と特性が似ているＶＭを含むクラスタが存在するかをそれぞれ確認する。
【０１６５】
そのため、文字列間距離算出部１２１は、ホスト３０に新たに作成させるＶＭのＶＭ名と、本コンピュータシステム１に備えられる各ホスト３０に配置されている各ＶＭのＶＭ名との文字列間距離を算出してもよい。また、文字列間距離算出部１２１は、本コンピュータシステム１に備えられる各ホスト３０が有する各クラスタから選択する１つ以上のＶＭ（代表ＶＭ）と、新規追加するＶＭとの間でＶＭ名の文字列間距離を算出してもよい。
【０１６６】
分散配置処理部１２３は、ホスト３０のＶＭ生成機能により新たに作成させるＶＭのＶＭ名と文字列間距離が近いＶＭを有するクラスタが存在するかを確認する。この確認の結果、新たに作成するＶＭのＶＭ名と文字列間距離が近いＶＭを有するクラスタが存在しない場合には、計算資源にのみ着目して、複数のホスト３０の中から新たに作成するＶＭの配置先のホスト３０を決定してもよい。
【０１６７】
一方、新たに作成するＶＭのＶＭ名と文字列間距離が近いＶＭを有するクラスタが存在する場合には、そのホスト３０を除く他のホスト３０の中から、資源使用率が少ないホスト３０を新たに作成するＶＭの配置先として優先的に決定してもよい。
【０１６８】
このように、第３実施形態のコンピュータシステム１によれば、ホスト３０のＶＭ作成機能によって新たに生成するＶＭを、当該新たなＶＭと特性の近いＶＭが少ないホスト３０に配置することができる。これにより、負荷が上昇するタイミングが同一となるＶＭを別々のホスト３０に配置するとともに、負荷が上昇するタイミングが異なるＶＭが同一にホスト３０に配置されることが期待される。そして、複数のホスト３０の負荷を平準化することができ、安定したシステム運用を実現できる。
【０１６９】
（ＩＶ）その他
そして、開示の技術は上述した実施形態に限定されるものではなく、本実施形態の趣旨を逸脱しない範囲で種々変形して実施することができる。本実施形態の各構成および各処理は、必要に応じて取捨選択することができ、あるいは適宜組み合わせてもよい。
【０１７０】
例えば、コンピュータシステム１の構成は図１に例示したものに限定されるものではなく、適宜変更して実施することができる。例えば、ホスト３０の台数は、３つ以下もしくは５つ以上であってもよい。また、管理サーバ１０を複数備えてもよく、これらの複数の管理サーバ１０に、図３に示した各部の機能を分散して備えてもよい。
【０１７１】
また、上述した実施形態においては、ＣＰＵやメモリの余剰資源割合をパーセンテージ（％値）で表したが、これに限定されるものではなく、適宜変更して実施することができる。
【０１７２】
上述の各実施形態に示したＶＭ配置制御手法は、例えば、資源使用率の監視による他の配置手法と併用して実施してもよい。また、上述の各実施形態においては、ＶＭ名間の類似性を表す値として文字列間距離を用いているが、これに限定されるものではない。すなわち、文字列間距離以外の他の手法を用いてＶＭ名間の類似性を表してもよい。
【０１７３】
また、上述した開示により本実施形態を当業者によって実施・製造することが可能である。
【０１７４】
（Ｖ）付記
以上の実施形態に関し、さらに以下の付記を開示する。
【０１７５】
（付記１）
仮想マシンの配置を行なう情報処理装置において、
前記仮想マシンの名前の類似性を判定する判定部と、
判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを１以上の組に分割する分割部と、
同一の組に含まれる仮想マシンを、異なるホストマシンに配置する配置部と
を備えることを特徴とする、情報処理装置。
【０１７６】
（付記２）
前記判定部が、複数の仮想マシンの名前間における文字列間距離を算出することで、前記名前の類似性を示す値を求める
ことを特徴とする、付記１記載の情報処理装置。
【０１７７】
（付記３）
前記配置部が、複数の前記ホストマシンに備えられる計算資源のうち、未使用である余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
ことを特徴とする、付記１または２記載の情報処理装置。
【０１７８】
（付記４）
前記配置部が、前記余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する前記仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
ことを特徴とする、付記３記載の情報処理装置。
【０１７９】
（付記５）
前記配置部が、前記仮想マシンを前記ホストマシンに配置するに際して、前記仮想マシンを前記余剰資源が最も多いホストマシンに優先して配置する
ことを特徴とする、付記４記載の情報処理装置。
【０１８０】
（付記６）
複数のホストマシンと、前記ホストマシンに仮想マシンの配置を行なう管理装置とを備える情報処理システムにおいて、
前記仮想マシンの名前の類似性を判定する判定部と、
判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを１以上の組に分割する分割部と、
同一の組に含まれる仮想マシンを、前記複数のホストマシンにおける異なるホストマシンに配置する配置部と
を備えることを特徴とする、情報処理システム。
【０１８１】
（付記７）
前記判定部が、複数の仮想マシンの名前間における文字列間距離を算出することで、前記名前の類似性を示す値を求める
ことを特徴とする、付記６記載の情報処理システム。
【０１８２】
（付記８）
前記配置部が、複数の前記ホストマシンに備えられる計算資源のうち、未使用である余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
ことを特徴とする、付記６または７記載の情報処理システム。
【０１８３】
（付記９）
前記配置部が、前記余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する前記仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
ことを特徴とする、付記８記載の情報処理システム。
【０１８４】
（付記１０）
前記配置部が、前記仮想マシンを前記ホストマシンに配置するに際して、前記仮想マシンを前記余剰資源が最も多いホストマシンに優先して配置する
ことを特徴とする、付記９記載の情報処理システム。
【０１８５】
（付記１１）
仮想マシンの配置を行なう情報処理装置の処理装置に、
前記仮想マシンの名前の類似性を判定し、
判定した結果に基づいて、名前の前記類似性を示す値が所定の閾値以内となる仮想マシンが組となるように、複数の仮想マシンを１以上の組に分割し、
同一の組に含まれる仮想マシンを、異なるホストマシンに配置する
処理を実行させる、制御プログラム。
【０１８６】
（付記１２）
複数の仮想マシンの名前間における文字列間距離を算出することで、前記名前の類似性を示す値を求める
処理を前記処理装置に実行させる、付記１１記載の制御プログラム。
【０１８７】
（付記１３）
複数の前記ホストマシンに備えられる計算資源のうち、未使用である余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
処理を前記処理装置に実行させる、付記１１または１２記載の制御プログラム。
【０１８８】
（付記１４）
前記余剰資源割合が最小の計算資源の合計予定使用量が最大の組を構成する前記仮想マシンを、優先して前記ホストマシンに配置する仮想マシンとして決定する
処理を前記処理装置に実行させる、付記１３記載の制御プログラム。
【０１８９】
（付記１５）
前記仮想マシンを前記ホストマシンに配置するに際して、前記仮想マシンを前記余剰資源が最も多いホストマシンに優先して配置する
処理を前記処理装置に実行させる、付記１４記載の制御プログラム。
【符号の説明】
【０１９０】
１    コンピュータシステム
１０    管理サーバ
２０−１，２０−２    スイッチ
３０−１〜３０−４，３０    ホストコンピュータ
４０    ストレージ
１１    ＣＰＵ
１２    メモリ
１３    記憶装置
１４    ネットワークインタフェース
１００    ＶＭ管理部
１１０    ＶＭ作成指示部
１２０    ＶＭ配置制御部
１２１    文字列間距離算出部
１２２    クラスタリング処理部
１２３    分散配置処理部
１３１    ＶＭ管理情報
１３２    資源情報
１４０    資源情報取得部
【図１】
2019133291.tif 000003
【図２】
2019133291.tif 000004
【図３】
2019133291.tif 000005
【図４】
2019133291.tif 000006
【図５】
2019133291.tif 000007
【図６】
2019133291.tif 000008
【図７】
2019133291.tif 000009
【図８】
2019133291.tif 000010
【図９】
2019133291.tif 000011
【図１０】
2019133291.tif 000012
【図１１】
2019133291.tif 000013
【図１２】
2019133291.tif 000014
【図１３】
2019133291.tif 000015
【図１４】
2019133291.tif 000016