(57)【要約】【課題】現用系および予備系の仮想マシンからなるシステムにおいて、物理サーバのリソース使用効率を向上させつつ、システムの可用性を高める。【解決手段】現用系の仮想マシン３０および予備系の仮想マシン３０をそれぞれ別個の物理サーバ２０上に集約して配置する。また、仮想マシン配置装置が、予備系の仮想マシン３０の配置先の物理サーバ２０を選択するとき、当該物理サーバ２０上に配置される予備系の仮想マシン数が所定の閾値以下となり、予備系の仮想マシン３０の待機時必要リソース量の合計が、当該物理サーバ２０のリソース上限閾値以下となり、Ｎ台分の予備系の仮想マシン３０の稼働時必要リソース量の合計値分のリソース量が確保可能な物理サーバ２０を選択する。また、仮想マシン配置装置は、同じ物理サーバ２０上の現用系の仮想マシン３０のペアとなる予備系の仮想マシン３０同士が極力同じ物理サーバ２０にならないようにする。【選択図】図２
2014075027.tif 000002
【特許請求の範囲】
【請求項１】
現用系の仮想マシンと予備系の仮想マシンとのペアからなるシステムにおいて前記仮想マシンそれぞれの配置先の物理サーバを選択する仮想マシン配置装置であって、
前記物理サーバの識別情報ごとに、当該物理サーバに配置される仮想マシンの識別情報、当該仮想マシンが現用系の仮想マシンか予備系の仮想マシンかを示す情報および前記システムにおいて当該仮想マシンのペアとなる仮想マシンの識別情報を示した仮想マシン配置情報と、前記物理サーバそれぞれの使用リソース量の上限閾値を示した物理サーバリソース上限閾値情報と、前記予備系の仮想マシンごとに、当該予備系の仮想マシンの待機時必要リソース量および稼動時必要リソース量を示した仮想マシン必要リソース量情報と、を記憶する記憶部と、
前記現用系の仮想マシンおよび前記予備系の仮想マシンの初期配置先の物理サーバを選択する初期配置先選択部とを備え、
前記初期配置先選択部は、
前記現用系の仮想マシンそれぞれの初期配置先の物理サーバを選択する際、前記仮想マシン配置情報を参照して、前記予備系の仮想マシンが配置されていない物理サーバの中から前記現用系の仮想マシンの初期配置先の物理サーバを選択し、
前記予備系の仮想マシンそれぞれの初期配置先の物理サーバを選択する際、前記仮想マシン配置情報、前記仮想マシン必要リソース量情報および前記物理サーバリソース上限閾値情報を参照して、配置対象のすべての前記予備系の仮想マシンの前記待機時必要リソース量の合計値を計算し、前記使用リソース量の上限閾値の合計値が、前記計算した合計値分の待機時必要リソース量以上となる台数の物理サーバ群を、前記予備系の仮想マシンの配置先候補の物理サーバ群として選択し、
前記仮想マシン配置情報および前記仮想マシン必要リソース量情報を参照して、前記配置対象の予備系の仮想マシンのうち、前記待機時必要リソース量の大きい予備系の仮想マシンから順に１つずつ選択し、前記選択した配置先候補の物理サーバ群の中から、以下の（１）〜（３）の条件をすべて満たす前記物理サーバを前記予備系の仮想マシンの配置先の物理サーバとして選択することを特徴とする仮想マシン配置装置。
（１）前記選択した配置対象の前記予備系の仮想マシンを含め、当該物理サーバ上の前記予備系の仮想マシンの数が所定の閾値以下であること、
（２）前記選択した配置対象の前記予備系の仮想マシンを含め、当該物理サーバ上の前記予備系の仮想マシンの待機時必要リソース量の合計値が、当該物理サーバの使用リソース量の上限閾値以下であること、
（３）前記選択した配置対象の前記予備系の仮想マシンを含め、当該物理サーバ上の前記予備系の仮想マシンのうち、前記稼動時必要リソース量の大きいものから順に選択した所定数Ｎの予備系の仮想マシンの稼動時必要リソース量の合計値が、当該物理サーバの使用リソース量の上限閾値以下であること
【請求項２】
前記初期配置先選択部は、
前記（１）〜（３）の条件をすべて満たす前記物理サーバがない場合、新たな空き物理サーバを前記配置先候補の物理サーバ群に追加して、再度、前記（１）〜（３）の条件を満たす前記物理サーバを選択することを特徴とする請求項１に記載の仮想マシン配置装置。
【請求項３】
前記初期配置先選択部は、
前記選択した配置先候補の物理サーバ群の中から、前記予備系の仮想マシンの配置先の物理サーバを選択するとき、前記（１）〜（３）の条件をすべて満たす前記物理サーバのうち、当該物理サーバに配置済みの予備系の仮想マシンのペアとなる現用系の仮想マシンの配置先の物理サーバと、前記選択した配置対象の予備系の仮想マシンのペアとなる現用系の仮想マシンの配置先の物理サーバとの一致数が最も少ない物理サーバを選択することを特徴とする請求項１または請求項２に記載の仮想マシン配置装置。
【請求項４】
前記記憶部は、さらに、
前記現用系の仮想マシンおよび予備系の仮想マシンからなるペアごとに、前記現用系の仮想マシンの故障により前記予備系の仮想マシンへの切り替えが行われる確率である故障率を示した故障率情報を記憶し、
前記初期配置先選択部は、
前記選択した予備系の仮想マシンの配置先の物理サーバを選択する際、前記（１）の条件に代えて、以下の条件を用いることを特徴とする請求項１ないし請求項３のいずれか１項に記載の仮想マシン配置装置。
前記故障率情報を参照して、前記配置対象の前記予備系の仮想マシンを含め、当該物理サーバ上の前記予備系の仮想マシンのペアの故障率の合計値が所定の閾値以下であること
【請求項５】
前記仮想マシン配置装置は、さらに、
前記仮想マシンの前記物理サーバへの配置を実行する仮想マシン配置実行部を備え、
前記現用系の仮想マシンに故障が発生した場合において、
前記仮想マシン配置実行部が、
前記仮想マシン配置情報および仮想マシン必要リソース量情報を参照して、前記予備系の仮想マシンの配置される第１の物理サーバにおいて前記予備系の仮想マシンが稼動することにより、前記第１の物理サーバの使用リソース量が前記第１の物理サーバの上限閾値を超えると判断したとき、前記稼動状態となる予備系の仮想マシンのうち前記稼動時必要リソース量の大きい予備系の仮想マシンから順に、前記第１の物理サーバにおける使用リソース量が前記第１の物理サーバの上限閾値以下となるまで、空き物理サーバである第２の物理サーバのいずれかへ移動し、稼動させることを特徴とする請求項１ないし請求項４のいずれか１項に記載の仮想マシン配置装置。
【請求項６】
前記仮想マシン配置装置は、さらに、
新たな前記予備系の仮想マシンの構築を行う仮想マシン構築部を備え、
前記現用系の仮想マシンの故障が前記物理サーバの故障によるものであると判明したとき、
前記仮想マシン配置実行部は、さらに、
前記仮想マシン配置情報を参照して、前記第１の物理サーバで稼動している前記予備系の仮想マシンを前記第２の物理サーバのいずれかへ移動し、前記移動した予備系の仮想マシンを現用系の仮想マシンとして稼動させ、
前記仮想マシン構築部は、
前記仮想マシン配置情報を参照して、前記現用系として稼動させる仮想マシンのペアとなる予備系の仮想マシンを、前記第１の物理サーバ上に構築することを特徴とする請求項５に記載の仮想マシン配置装置。
【請求項７】
前記現用系の仮想マシンの故障が前記物理サーバの故障によるものではないと判明したとき、
前記仮想マシン配置実行部は、さらに、
前記仮想マシン配置情報を参照して、前記第１の物理サーバで稼動している前記予備系の仮想マシンを、前記故障した現用系の仮想マシンが配置される物理サーバへ移動し、前記移動した予備系の仮想マシンを現用系の仮想マシンとして稼動させ、
前記仮想マシン構築部は、さらに、
前記現用系として稼動させる仮想マシンのペアとなる予備系の仮想マシンを、前記第１の物理サーバ上に構築することを特徴とする請求項６に記載の仮想マシン配置装置。
【請求項８】
前記予備系の仮想マシンが前記物理サーバの故障により故障したとき、
前記仮想マシン構築部は、さらに、
前記仮想マシン配置情報を参照して、前記故障した予備系の仮想マシンの代替となる前記予備系の仮想マシンを、前記第２の物理サーバのいずれかに構築し、
前記予備系の仮想マシンの故障が前記物理サーバの故障ではないとき、
前記仮想マシン構築部は、さらに、
前記仮想マシン配置情報を参照して、前記故障した予備系の仮想マシンの代替となる前記予備系の仮想マシンを、前記第１の物理サーバ上に構築することを特徴とする請求項７に記載の仮想マシン配置装置。
【請求項９】
現用系の仮想マシンと予備系の仮想マシンとのペアからなるシステムにおいて前記仮想マシンそれぞれの配置先の物理サーバを選択する仮想マシン配置方法であって、
前記物理サーバの識別情報ごとに、当該物理サーバに配置される仮想マシンの識別情報、当該仮想マシンが現用系の仮想マシンか予備系の仮想マシンかを示す情報および前記システムにおいて当該仮想マシンのペアとなる仮想マシンの識別情報を示した仮想マシン配置情報と、前記物理サーバそれぞれの使用リソース量の上限閾値を示した物理サーバリソース上限閾値情報と、前記予備系の仮想マシンごとに、当該予備系の仮想マシンの待機時必要リソース量および稼動時必要リソース量を示した仮想マシン必要リソース量情報と、を記憶する記憶部を備える仮想マシン配置装置が、
前記現用系の仮想マシンそれぞれの初期配置先の物理サーバを選択する際、前記仮想マシン配置情報を参照して、前記予備系の仮想マシンが配置されていない物理サーバの中から前記現用系の仮想マシンの初期配置先の物理サーバを選択するステップと、
前記予備系の仮想マシンそれぞれの初期配置先の物理サーバを選択する際、前記仮想マシン配置情報、前記仮想マシン必要リソース量情報および前記物理サーバリソース上限閾値情報を参照して、配置対象のすべての前記予備系の仮想マシンの前記待機時必要リソース量の合計値を計算するステップと、
前記使用リソース量の上限閾値の合計値が、前記計算した合計値分の待機時必要リソース量以上となる台数の物理サーバ群を、前記予備系の仮想マシンの配置先候補の物理サーバ群として選択するステップと、
前記仮想マシン配置情報および前記仮想マシン必要リソース量情報を参照して、前記配置対象の予備系の仮想マシンのうち、前記待機時必要リソース量の大きい予備系の仮想マシンから順に１つずつ選択するステップと、
前記選択した配置先候補の物理サーバ群の中から、以下の（１）〜（３）の条件をすべて満たす前記物理サーバを前記予備系の仮想マシンの配置先の物理サーバとして選択するステップとを実行することを特徴とする仮想マシン配置方法。
（１）前記選択した配置対象の前記予備系の仮想マシンを含め、当該物理サーバ上の前記予備系の仮想マシンの数が所定の閾値以下であること、
（２）前記選択した配置対象の前記予備系の仮想マシンを含め、当該物理サーバ上の前記予備系の仮想マシンの待機時必要リソース量の合計値が、当該物理サーバの使用リソース量の上限閾値以下であること、
（３）前記選択した配置対象の前記予備系の仮想マシンを含め、当該物理サーバ上の前記予備系の仮想マシンのうち、前記稼動時必要リソース量の大きいものから順に選択した所定数Ｎの予備系の仮想マシンの稼動時必要リソース量の合計値が、当該物理サーバの使用リソース量の上限閾値以下であること
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、冗長構成をとる仮想マシンの物理サーバへの配置技術に関する。
【背景技術】
【０００２】
近年、システム規模の拡大に伴い、システム全体の調達運用コストを削減することが課題となっており、１台の物理サーバ上に複数の仮想マシンを配置することでシステム全体に必要な物理サーバ数を削減する技術が注目されている。ここで、複数の仮想マシンを１台の物理サーバに配置する場合に、物理サーバのリソース使用効率の向上やシステム性能の保証を実現するための技術が提案されている（特許文献１参照）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２０１１−１７０７８７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
仮想化マシンを用いたシステムにおいて冗長構成を組む場合、現用系の仮想マシンと予備系の仮想マシンをそれぞれ適切な物理サーバに配置し、高可用性を確保する必要がある。また、１台の物理サーバに多数の仮想マシンを配置すると、物理サーバのリソース使用効率が向上する一方で、配置される仮想マシン同士のリソース競合（同じ物理サーバ内の仮想マシンそれぞれで物理サーバのリソースの奪い合いが起こり、仮想マシンそれぞれの処理能力が低下してしまうこと）が発生し、システムの性能が低下するおそれがある。
【０００５】
また、特許文献１に記載の技術は、仮想マシンの現用系および予備系の種別を考慮せずに物理サーバ上に仮想マシンを配置する手法であるため、同じ物理サーバ上に現用系の仮想マシンと予備系の仮想マシンとが同時に存在する場合がある。このため、物理サーバの故障により、同じシステムの現用系の仮想マシンと予備系の仮想マシンとが同時にダウンしてしまう場合や、予備系の仮想マシンの再構築を行う頻度が増加する場合があり、システムの冗長構成による可用性の保証が困難となる。そこで、本発明は、現用系の仮想マシンおよび予備系の仮想マシンからなるシステムにおいて、物理サーバのリソース使用効率を向上させつつ、システムの可用性を高めることを課題とする。
【課題を解決するための手段】
【０００６】
前記した課題を解決するため、請求項１に記載の発明は、現用系の仮想マシンと予備系の仮想マシンとのペアからなるシステムにおいて前記仮想マシンそれぞれの配置先の物理サーバを選択する仮想マシン配置装置であって、前記物理サーバの識別情報ごとに、当該物理サーバに配置される仮想マシンの識別情報、当該仮想マシンが現用系の仮想マシンか予備系の仮想マシンかを示す情報および前記システムにおいて当該仮想マシンのペアとなる仮想マシンの識別情報を示した仮想マシン配置情報と、前記物理サーバそれぞれの使用リソース量の上限閾値を示した物理サーバリソース上限閾値情報と、前記予備系の仮想マシンごとに、当該予備系の仮想マシンの待機時必要リソース量および稼動時必要リソース量を示した仮想マシン必要リソース量情報と、を記憶する記憶部と、前記現用系の仮想マシンおよび前記予備系の仮想マシンの初期配置先の物理サーバを選択する初期配置先選択部とを備え、前記初期配置先選択部は、前記現用系の仮想マシンそれぞれの初期配置先の物理サーバを選択する際、前記仮想マシン配置情報を参照して、前記予備系の仮想マシンが配置されていない物理サーバの中から前記現用系の仮想マシンの初期配置先の物理サーバを選択し、前記予備系の仮想マシンそれぞれの初期配置先の物理サーバを選択する際、前記仮想マシン配置情報、前記仮想マシン必要リソース量情報および前記物理サーバリソース上限閾値情報を参照して、配置対象のすべての前記予備系の仮想マシンの前記待機時必要リソース量の合計値を計算し、前記使用リソース量の上限閾値の合計値が、前記計算した合計値分の待機時必要リソース量以上となる台数の物理サーバ群を、前記予備系の仮想マシンの配置先候補の物理サーバ群として選択し、前記仮想マシン配置情報および前記仮想マシン必要リソース量情報を参照して、前記配置対象の予備系の仮想マシンのうち、前記待機時必要リソース量の大きい予備系の仮想マシンから順に１つずつ選択し、前記選択した配置先候補の物理サーバ群の中から、以下の（１）〜（３）の条件をすべて満たす前記物理サーバを前記予備系の仮想マシンの配置先の物理サーバとして選択する。
（１）前記選択した配置対象の前記予備系の仮想マシンを含め、当該物理サーバ上の前記予備系の仮想マシンの数が所定の閾値以下であること、
（２）前記選択した配置対象の前記予備系の仮想マシンを含め、当該物理サーバ上の前記予備系の仮想マシンの待機時必要リソース量の合計値が、当該物理サーバの使用リソース量の上限閾値以下であること、
（３）前記選択した配置対象の前記予備系の仮想マシンを含め、当該物理サーバ上の前記予備系の仮想マシンのうち、前記稼動時必要リソース量の大きいものから順に選択した所定数Ｎの予備系の仮想マシンの稼動時必要リソース量の合計値が、当該物理サーバの使用リソース量の上限閾値以下であること
【０００７】
このように仮想マシン配置装置は、各仮想マシンの初期配置先を選択するとき、現用系の仮想マシンを、予備系の仮想マシンが配置されない（つまり現用系の仮想マシン用の）物理サーバへ配置し、予備系の仮想マシンを現用系の仮想マシンが配置されない（つまり予備系の仮想マシン用の）物理サーバへ配置する。これにより、物理サーバの故障により、現用系の仮想マシンと、その仮想マシンのペアとなる予備系の仮想マシンとが両方ダウンしてしまうことを避けることができるので、システムの可用性を高めることができる。また、仮想マシン配置装置は、１台の物理サーバに１以上の予備系の仮想マシンを配置するようにするが、このとき予備系の仮想マシンの配置先として、請求項に記載の（１）〜（３）の条件を満たす物理サーバを選択する。まず、仮想マシン配置装置は、（１）の条件を満たす物理サーバを選択することで、複数の現用系の仮想マシンが故障した際における予備系の仮想マシンの稼動による負荷増大を配置先の物理サーバ間で分散させることができる。さらに、仮想マシン配置装置は、予備系の仮想マシンの配置先を選択する際、（２）の条件を満たす物理サーバを選択することで、物理サーバに配置済みの仮想マシン間でリソース競合が発生し、各仮想マシンの性能が劣化してしまうことを抑制できる。また、仮想マシン配置装置は、（３）の条件を満たす物理サーバを選択することで、同じ物理サーバ上で、所定数Ｎ（Ｎはシステム開発者等が所望する値）の予備系の仮想マシンそれぞれが稼動状態になることができる。つまり、Ｎ個の予備系の仮想マシンがすべて稼働状態になったとき、物理サーバのリソース不足等のため、稼動状態になった予備系の仮想マシン（つまり現用系の仮想マシン）を他の物理サーバへ移動させる必要がなくなる。これにより、仮想マシン配置装置は、仮想マシンの移動回数を抑制し、システムの可用性を高めることができる。仮想マシン配置装置は、予備系の仮想マシンの配置先として以上の条件を満たす物理サーバを選択することで、できるだけ多くの予備系の仮想マシンを物理サーバ上に配置しつつ、システムの可用性を高めることができる。つまり、物理サーバのリソース使用効率を向上させつつ、システムの可用性を高めることができる。
【０００８】
請求項２に記載の発明は、請求項１に記載の仮想マシン配置装置の初期配置先選択部が、前記（１）〜（３）の条件をすべて満たす前記物理サーバがない場合、新たな空き物理サーバを前記配置先候補の物理サーバ群に追加して、再度、前記（１）〜（３）の条件を満たす前記物理サーバを選択する。
【０００９】
このようにすることで、仮想マシン配置装置は、前記（１）〜（３）の条件を満たす物理サーバがなかった場合でも確実に予備系の仮想マシンを物理サーバ上に配置できる。
【００１０】
請求項３に記載の発明は、請求項１または請求項２に記載の仮想マシン配置装置の初期配置先選択部が、前記選択した配置先候補の物理サーバ群の中から、前記予備系の仮想マシンの配置先の物理サーバを選択するとき、前記（１）〜（３）の条件をすべて満たす前記物理サーバのうち、当該物理サーバに配置済みの予備系の仮想マシンのペアとなる現用系の仮想マシンの配置先の物理サーバと、前記選択した配置対象の予備系の仮想マシンのペアとなる現用系の仮想マシンの配置先の物理サーバとの一致数が最も少ない物理サーバを選択する。
【００１１】
このようにすることで、仮想マシン配置装置は、同じ物理サーバ上にある現用系の仮想マシンのペアとなる予備系の仮想マシン同士を極力同じ物理サーバ上に配置しないようにすることができる。これにより、システムの可用性をより高めることができる。
【００１２】
請求項４に記載の発明は、請求項１ないし請求項３のいずれか１項に記載の仮想マシン配置装置の前記記憶部が、さらに、前記現用系の仮想マシンおよび予備系の仮想マシンからなるペアごとに、前記現用系の仮想マシンの故障により前記予備系の仮想マシンへの切り替えが行われる確率である故障率を示した故障率情報を記憶し、前記初期配置先選択部は、前記選択した予備系の仮想マシンの配置先の物理サーバを選択する際、前記（１）の条件に代えて、以下の条件を用いる。
前記故障率情報を参照して、前記配置対象の前記予備系の仮想マシンを含め、当該物理サーバ上の前記予備系の仮想マシンのペアの故障率の合計値が所定の閾値以下であること
【００１３】
このようにすることで、仮想マシン配置装置は、複数の現用系の仮想マシンの故障により、同じ物理サーバ上に配置される予備系の仮想マシンが同時に稼動状態となり、物理サーバの負荷が増大してしまうことを抑制できる。
【００１４】
請求項５に記載の発明は、請求項１ないし請求項４のいずれか１項に記載の仮想マシン配置装置が、さらに、前記仮想マシンの前記物理サーバへの配置を実行する仮想マシン配置実行部を備え、前記現用系の仮想マシンに故障が発生した場合において、前記仮想マシン配置実行部が、前記仮想マシン配置情報および仮想マシン必要リソース量情報を参照して、前記予備系の仮想マシンの配置される第１の物理サーバにおいて前記予備系の仮想マシンが稼動することにより、前記第１の物理サーバの使用リソース量が前記第１の物理サーバの上限閾値を超えると判断したとき、前記稼動状態となる予備系の仮想マシンのうち前記稼動時必要リソース量の大きい予備系の仮想マシンから順に、前記第１の物理サーバにおける使用リソース量が前記第１の物理サーバの上限閾値以下となるまで、空き物理サーバである第２の物理サーバのいずれかへ移動し、稼動させる。
【００１５】
このようにすることで、仮想マシン配置装置は、予備系の仮想マシンが稼動状態になったときの物理サーバ内のリソース競合を抑制できる。なお、ここで予備系の仮想マシンの移動先である第２の物理サーバは、例えば、稼働状態となった予備系の仮想マシンが一時的に退避する退避用の物理サーバ等である。
【００１６】
請求項６に記載の発明は、請求項５に記載の仮想マシン配置装置が、さらに、新たな前記予備系の仮想マシンの構築を行う仮想マシン構築部を備え、前記現用系の仮想マシンの故障が前記物理サーバの故障によるものであると判明したとき、前記仮想マシン配置実行部は、さらに、前記仮想マシン配置情報を参照して、前記第１の物理サーバで稼動している前記予備系の仮想マシンを前記第２の物理サーバのいずれかへ移動し、前記移動した予備系の仮想マシンを現用系の仮想マシンとして稼動させ、前記仮想マシン構築部は、前記仮想マシン配置情報を参照して、前記現用系として稼動させる仮想マシンのペアとなる予備系の仮想マシンを、前記第１の物理サーバ上に構築する。
【００１７】
このようにすることで、仮想マシン配置装置は、予備系の仮想マシンが稼働状態となり現用系の仮想マシンとなったとき、この現用系の仮想マシン（新たな現用系の仮想マシン）のペアとなる予備系の仮想マシンを第１の物理サーバ（つまり、元予備系の仮想マシンが配置されていた物理サーバ）上に構築する。そして、この新たな現用系の仮想マシンについては、第２の物理サーバ（故障のあった物理サーバ以外の空き物理サーバ）に配置する。これにより、予備系の仮想マシンは、予備系の仮想マシン用の物理サーバ上に配置され、現用系の仮想マシンは、これとは別の物理サーバ上に配置されることになるので、システムの可用性をより高めることができる。
【００１８】
請求項７に記載の発明は、請求項６に記載の仮想マシン配置装置において、前記現用系の仮想マシンの故障が前記物理サーバの故障によるものではないと判明したとき、前記仮想マシン配置実行部は、さらに、前記仮想マシン配置情報を参照して、前記第１の物理サーバで稼動している前記予備系の仮想マシンを、前記故障した現用系の仮想マシンが配置される物理サーバへ移動し、前記移動した予備系の仮想マシンを現用系の仮想マシンとして稼動させ、前記仮想マシン構築部は、さらに、前記現用系として稼動させる仮想マシンのペアとなる予備系の仮想マシンを、前記第１の物理サーバ上に構築する。
【００１９】
このようにすることで、仮想マシン配置装置は、予備系の仮想マシンが稼働状態となり現用系の仮想マシンとなったとき、この現用系の仮想マシン（新たな現用系の仮想マシン）のペアとなる予備系の仮想マシンを第１の物理サーバ（つまり、元予備系の仮想マシンが配置されていた物理サーバ）上に構築する。そして、この新たな現用系の仮想マシンについては、故障した現用系の仮想マシンの配置先の物理サーバに移動する。これにより、予備系の仮想マシンは、予備系の仮想マシン用の物理サーバ上に配置され、現用系の仮想マシンは、故障した現用系の仮想マシンが配置されていた物理サーバ上に配置されることになる。このようにすることで、物理サーバのリソース使用効率を向上させることができる。
【００２０】
請求項８に記載の発明は、請求項７に記載の仮想マシン配置装置において、前記予備系の仮想マシンが前記物理サーバの故障により故障したとき、前記仮想マシン構築部は、さらに、前記仮想マシン配置情報を参照して、前記故障した予備系の仮想マシンの代替となる前記予備系の仮想マシンを、前記第２の物理サーバのいずれかに構築し、前記予備系の仮想マシンの故障が前記物理サーバの故障ではないとき、前記仮想マシン構築部は、さらに、前記仮想マシン配置情報を参照して、前記故障した予備系の仮想マシンの代替となる前記予備系の仮想マシンを、前記第１の物理サーバ上に構築する。
【００２１】
このようにすることで、仮想マシン配置装置は、予備系の仮想マシンの故障が物理サーバの故障によるものであるときは、第２の物理サーバ（空き物理サーバ）に新たな予備系の仮想マシンを構築し、予備系の仮想マシンの故障が物理サーバの故障によるものではないときは、第１の物理サーバ（元予備系の仮想マシンが配置されていた物理サーバ）上に新たな予備系の仮想マシンを構築する。つまり、予備系の仮想マシンは、予備系の仮想マシン用の物理サーバ上に配置されることになるので、システムの可用性をより高めることができる。また、仮想マシン配置装置は、予備系の仮想マシンの故障が物理サーバの故障によるものではないときは第１の物理サーバ（元予備系の仮想マシンが配置されていた物理サーバ）上に新たな予備系の仮想マシンを構築するので、物理サーバのリソース使用効率を向上させることができる。
【発明の効果】
【００２２】
本発明によれば、現用系の仮想マシンおよび予備系の仮想マシンからなるシステムにおいて、物理サーバのリソース使用効率を向上させつつ、システムの可用性を確保することができる。
【図面の簡単な説明】
【００２３】
【図１】本実施の形態の仮想マシン実行システムの構成例を示した図である。
【図２】図１の仮想マシン配置装置による仮想マシンの初期配置先の物理サーバの選択処理の概要を説明した図である。
【図３】図１の仮想マシン配置装置による仮想マシンの初期配置先の物理サーバの選択処理の概要を説明した図である。
【図４】図１の仮想マシン配置装置の機能ブロック図である。
【図５】図１の仮想マシン配置装置による仮想マシンの初期配置先の物理サーバの選択処理を示した図である。
【図６】図１の仮想マシン配置装置による仮想マシンの冗長構成の再構築処理を示した図である。
【図７】図１の仮想マシン配置装置による仮想マシンの冗長構成の再構築処理を示した図である。
【発明を実施するための形態】
【００２４】
以下、図面を参照しながら、本発明の実施の形態（本実施の形態）について説明する。まず、本実施の形態の仮想マシン実行システム５０の構成例について、図１を用いて説明する。図１に示すように、仮想マシン実行システム５０は、仮想マシン配置装置１０、１台以上の物理サーバ２０で構成される物理サーバ群２１および記憶装置３１を備える。仮想マシン配置装置１０、物理サーバ２０および記憶装置３１は、ネットワーク４０を介して通信可能に接続されている。なお、図１では、記憶装置３１は、１台しか記載していないが、複数台あってもよい。
【００２５】
記憶装置３１は、ネットワーク４０を介して仮想マシンＡ（ＶＭ（Virtual Machine）プログラム）３０ａ〜仮想マシンＥ（ＶＭプログラム）３０ｅが読み書きされる。なお、以降の説明では、仮想マシンＡ（３０ａ）〜仮想マシンＥ（３０ｅ）を区別する必要がない場合には、仮想マシン３０と表記することとする。また、図１には、５つの仮想マシン３０が記載されているが、５つに限られることはなく、４以下または６以上であっても構わない。
【００２６】
仮想マシン配置装置１０は、記憶装置３１に記憶されている１以上の仮想マシン３０を物理サーバ２０に配置する。そして、仮想マシン配置装置１０は、物理サーバ２０に配置した仮想マシン３０を現用系の仮想マシン３０または予備系の仮想マシン３０として稼働させる。この予備系の仮想マシン３０は、現用系の仮想マシン３０に故障等が発生したときに代替マシンとして稼働する仮想マシン３０である。仮想マシン配置装置１０は、現用系の仮想マシン３０（または現用系の仮想マシン３０が配置される物理サーバ２０）の故障を検出すると、この現用系の仮想マシン３０のペアとなる予備系の仮想マシン３０を稼働させる。ここで、仮想マシン配置装置１０は、物理サーバ２０のリソース使用効率を向上させつつ、システムの可用性を高めるよう、予備系の仮想マシン３０および現用系の仮想マシン３０を、それぞれの種別（予備系／現用系）ごとに、別個の物理サーバ２０へ集約して配置する。また、仮想マシン配置装置１０は、現用系の仮想マシン３０の故障発生時に予備系の仮想マシン３０を稼働させたり、稼働状態になった予備系の仮想マシン３０を他の物理サーバ２０への移動（再配置）したり、予備系の仮想マシン３０の再構築をしたりする。この仮想マシン配置装置１０の詳細については後記する。
【００２７】
物理サーバ２０は、仮想マシン配置装置１０によって配置された仮想マシン３０を実行する。例えば、図１では、物理サーバ２０ａは、配置された仮想マシンＡ（３０ａ）および仮想マシンＣ（３０ｃ）を実行し、物理サーバ２０ｂは、配置された仮想マシンＢ（３０ｂ）、仮想マシンＤ（３０ｄ）、仮想マシンＥ（３０ｅ）を実行する。また、物理サーバ２０ｍは、仮想マシン３０が配置されていない、空き物理サーバである。
【００２８】
次に、図２を用いて、図１の仮想マシン配置装置１０による仮想マシン３０の初期配置先の物理サーバ２０の選択処理の概要を説明する。仮想マシン３０は現用系の仮想マシン３０および予備系の仮想マシン３０の初期配置において、現用系の仮想マシン３０については現用系の仮想マシン３０用の物理サーバ２０に集約して配置し、予備系の仮想マシン３０については予備系の仮想マシン３０用の物理サーバ２０に集約して配置するようにする。これにより、物理サーバ２０の故障発生時に現用系の仮想マシン３０と予備系の仮想マシン３０の両方がダウンしてしまうという事態を避けることができる。つまり、システムの可用性を高めることができる。
【００２９】
さらに、仮想マシン配置装置１０は、予備系の仮想マシン３０を物理サーバ２０に配置するとき、（ａ）〜（ｄ）の条件（配置先物理サーバ決定基準）を満たすように配置する。
（ａ）物理サーバ２０における予備系の仮想マシン３０の数が所定の閾値以下となるようにする。このようにすることで、複数の予備系の仮想マシン３０が稼動した場合における、負荷増大を物理サーバ２０間で分散させることができる。
（ｂ）物理サーバ２０における仮想マシン３０（予備系の仮想マシン３０）の待機時必要リソース量の合計≦当該物理サーバ２０のリソース上限閾値となるようにする。このようにすることで、物理サーバ２０に配置済みの予備系の仮想マシン３０間でリソース競合が発生してしまうことを抑制できる。
（ｃ）物理サーバ２０上にＮ個（システム開発者等が所望する数）まで予備系の仮想マシン３０が稼働可能とする。つまり、配置予定の予備系の仮想マシン３０を含む当該物理サーバ２０に配置されるＮ個の仮想マシン３０の稼働時必要リソース量の合計≦物理サーバ２０のリソース上限閾値となる物理サーバ２０を選択する。このようにすることで、同じ物理サーバ２０の予備系の仮想マシン３０が稼働状態になったとき、この物理サーバ２０のリソース不足等のため、稼動状態になった予備系の仮想マシン３０（つまり現用系の仮想マシン３０）を他の物理サーバ２０へ移動させる必要がなくなる。これにより、仮想マシン配置装置１０は、システムの可用性を高めることができる。
（ｄ）同じ物理サーバ２０上の現用系の仮想マシン３０のペアとなる予備系の仮想マシン３０同士が極力同じ物理サーバ２０にならないようにする。これにより、仮想マシン配置装置１０は、システムの可用性を高めることができる。（ｄ）の条件を満たす初期配置先の物理サーバ２０の選択処理の概要を、図３を用いて説明する（適宜、図１参照）。
【００３０】
ここでは、予備系の仮想マシン３０ａの初期配置先として、仮想マシン配置装置１０が、予備系の仮想マシン３０用の物理サーバ２０である物理サーバ２０ａ，２０ｂのいずれかを選択する場合を考える。物理サーバ２０ａには予備系の仮想マシン３０ｂ，３０ｃが配置され、物理サーバ２０ｂには予備系の仮想マシン３０ｄ，３０ｅが配置される。また、物理サーバ２０ｃ，２０ｄ，２０ｅは現用系の仮想マシン３０用の物理サーバ２０であり、物理サーバ２０ｃには現用系の仮想マシン３０ｆ，３０ｇ，３０ｈが配置され、物理サーバ２０ｄには現用系の仮想マシン３０ｉが配置され、物理サーバ２０ｅには現用系の仮想マシン３０ｊが配置される。現用系の仮想マシン３０と予備系の仮想マシン３０とのペアの関係は図３の矢印に示すとおりである。
【００３１】
このような場合に、予備系の仮想マシン３０ａのペアとなる現用系の仮想マシン３０ｆは物理サーバ２０ｃに配置され、この物理サーバ２０ｃに配置される現用系の仮想マシン３０ｇ，３０ｈのペアとなる予備系の仮想マシン３０ｂ，３０ｃはいずれも物理サーバ２０ａに配置されている。ここで、仮想マシン配置装置１０が予備系の仮想マシン３０ａの配置先として物理サーバ２０ａを選択してしまうと、現用系の仮想マシン３０ｆ，３０ｇ，３０ｈのペアとなる予備系の仮想マシン３０ａ，３０ｂ，３０ｃがすべて同じ物理サーバ２０ａに配置されることになり、システムの可用性が低くなってしまう。一方、仮想マシン配置装置１０が、配置先として物理サーバ２０ｂを選択すれば、予備系の仮想マシン３０ｄ，３０ｅのペアとなる現用系の仮想マシン３０ｉ，３０ｊはいずれも、現用系の仮想マシン３０ｆとは異なる物理サーバ２０ｄ，２０ｅに配置され、かつ、複数の物理サーバ２０に分散して配置されている。よって、仮想マシン配置装置１０は、予備系の仮想マシン３０ａの配置先として物理サーバ２０ｂを選択すれば、同じ物理サーバ２０上の現用系の仮想マシン３０のペアとなる予備系の仮想マシン３０同士が極力同じ物理サーバ２０にならない状態にできるので、システムの可用性を高めることができる。
【００３２】
以上のようにして、仮想マシン配置装置１０が仮想マシン３０の初期配置先の物理サーバ２０の選択を行うことで、できるだけ多くの予備系の仮想マシン３０を物理サーバ２０上に配置しつつ、システムの可用性を高めることができる。
【００３３】
なお、各物理サーバ２０に予備系の仮想マシン３０および現用系の仮想マシン３０の初期配置が行われた後、いずれかの仮想マシン３０の故障が発生した場合には、仮想マシン配置装置１０は、仮想マシン３０の移動を行い、稼働状態になった予備系の仮想マシン３０（現用系の仮想マシン３０）と予備系の仮想マシン３０とを極力同じ物理サーバ２０上に配置しないようにする。このときの処理手順の詳細は後記する。
【００３４】
次に、図４を用いて仮想マシン配置装置１０の構成例を説明する（適宜、図１参照）。仮想マシン配置装置１０は、処理部１００、記憶部１１０および通信部１２０を備える。通信部１２０は、通信インタフェースであり、図１のネットワーク４０を介して物理サーバ２０や記憶装置３１と情報を送受信する。
【００３５】
処理部１００は、初期配置先選択部１０１、仮想マシン配置実行部１０２、仮想マシン構築部１０３および仮想マシン実行状態切替部１０４を備える。処理部１００は、図示しないＣＰＵ（Central Processing Unit）およびメインメモリによって構成され、処理部１００の各部は、記憶部１１０に記憶されているアプリケーションプログラムをメインメモリに展開して具現化される。
【００３６】
記憶部１１０は、メモリやハードディスク等の記憶媒体である。記憶部１１０は、仮想マシン配置情報１１２（表１参照）と、物理サーバリソース上限閾値情報１１１（表２参照）と、仮想マシン必要リソース量情報１１３（表３参照）とが記憶される。破線で示した故障率情報１１４は配備される場合と配備されない場合とがあり、配備される場合については後記する。
【００３７】
仮想マシン配置情報１１２は、物理サーバ２０の識別情報ごとに、当該物理サーバ２０に配置される仮想マシン３０の識別情報と、当該配置される仮想マシン３０の現用系／予備系の種別を示す情報と、当該配置される仮想マシン３０のペアとなる仮想マシン３０の識別情報とを示した情報である（表１参照）。例えば、表１に示す仮想マシン配置情報１１２において、識別情報「Ｓａ」の物理サーバ２０には予備系の仮想マシン３０である「仮想マシンＡ」および「仮想マシンＣ」が配置され、それぞれの予備系の仮想マシン３０のペアとなる仮想マシン３０は「仮想マシンＢ」および「仮想マシンＦ」であることを示す。また、識別情報「Ｓｍ」の物理サーバ２０には仮想マシン３０が配置されていない、つまり空き物理サーバであることを示す。なお、各仮想マシン３０の予備系／現用系の種別やペアとなる仮想マシン３０の識別情報は、各仮想マシン３０の予備系／現用系の切り替えや、ペアとなる仮想マシン３０の変更があったときに書き換えられる。
【００３８】
【表１】
2014075027.tif 000003
【００３９】
物理サーバリソース上限閾値情報１１１は、物理サーバ２０それぞれの使用リソース量の上限閾値を示した情報である（表２参照）。
【００４０】
【表２】
2014075027.tif 000004
【００４１】
仮想マシン必要リソース量情報１１３は、予備系の仮想マシン３０ごとに、当該予備系の仮想マシン３０に必要な待機時必要リソース量、および、当該予備系の仮想マシン３０が稼働したとき（つまり、現用系の仮想マシン３０として稼働するとき）に必要な稼動時必要リソース量を示した情報である（表３参照）。
【００４２】
【表３】
2014075027.tif 000005
【００４３】
処理部１００の初期配置先選択部１０１は、仮想マシン配置情報１１２（表１参照）、物理サーバリソース上限閾値情報１１１（表２参照）および仮想マシン必要リソース量情報１１３（表３参照）を参照して、現用系の仮想マシン３０および予備系の仮想マシン３０の初期配置先の物理サーバ２０を選択する。現用系の仮想マシン３０それぞれの初期配置先の物理サーバ２０を選択する際には、初期配置先選択部１０１は、仮想マシン配置情報１１２（表１参照）を参照して、予備系の仮想マシン３０が配置されていない物理サーバ２０群の中から（つまり、現用系の仮想マシン３０用の物理サーバ２０群の中から）初期配置先の物理サーバ２０を選択する。また、予備系の仮想マシン３０それぞれの初期配置先の物理サーバ２０を選択する際には、初期配置先選択部１０１は、現用系の仮想マシン３０が配置されていない物理サーバ２０群の中から（つまり、予備系の仮想マシン３０用の物理サーバ２０群の中から）初期配置先の物理サーバ２０を選択する。なお、ここでの、予備系の仮想マシン３０の初期配置先の物理サーバ２０の選択は以下のようにして行われる。
【００４４】
すなわち、初期配置先選択部１０１は、仮想マシン配置情報１１２（表１参照）および仮想マシン必要リソース量情報１１３（表３参照）を参照して、配置予定のすべての予備系の仮想マシン３０の待機時必要リソース量の合計値を計算する。そして、初期配置先選択部１０１は、仮想マシン配置情報１１２（表１参照）および物理サーバリソース上限閾値情報１１１（表２参照）を参照して、空き物理サーバの中から、当該物理サーバ２０のリソース量の上限閾値の合計値が、前記した待機時必要リソース量の合計値以上となる物理サーバ２０群を選択する。この選択した物理サーバ群２１が、予備系の仮想マシン３０の配置先候補の物理サーバ２０群となる。次に、初期配置先選択部１０１は、仮想マシン必要リソース量情報１１３（表３参照）および仮想マシン配置情報１１２（表１参照）を参照して、配置対象の予備系の仮想マシン３０のうち、待機時必要リソース量の多い予備系の仮想マシン３０から順に、配置先の物理サーバ２０を選択する。ここでの配置先の物理サーバ２０の選択は、配置先候補の物理サーバ２０群の中から、前記した配置先物理サーバ決定基準を満たす物理サーバ２０を選択することにより行われる。初期配置先選択部１０１の詳細は後記する。
【００４５】
仮想マシン配置実行部１０２は、通信部１２０経由で仮想マシン３０の物理サーバ２０への配置を実行する。この仮想マシン配置実行部１０２は、初期配置先選択部１０１により選択された初期配置先の物理サーバ２０へ仮想マシン３０を配置したり、その後の仮想マシン３０や物理サーバ２０の故障により、仮想マシン３０の移動（再配置）が必要になったときの仮想マシン３０の再配置を行う。この仮想マシン配置実行部１０２の詳細は後記する。
【００４６】
仮想マシン構築部１０３は、仮想マシン３０が故障した際に、通信部１２０経由で物理サーバ２０上に現用系の仮想マシン３０や予備系の仮想マシン３０を再構築する。例えば、仮想マシン構築部１０３は、現用系の仮想マシン３０が故障し、この現用系の仮想マシン３０のペアとなる予備系の仮想マシン３０が稼動するようになったとき、この稼働するようになった仮想マシン３０（元予備系の仮想マシン３０）のペアとなる予備系の仮想マシン３０を、物理サーバ２０上に新たに構築する。
【００４７】
仮想マシン実行状態切替部１０４は、仮想マシン３０や物理サーバ２０の故障復旧後、通信部１２０経由で、稼働状態の仮想マシン３０（元予備系の仮想マシン３０）を待機状態に切り替える。
【００４８】
＜初期配置先選択＞
次に、図５を用いて、図４の仮想マシン配置装置１０の処理手順を説明する。まず、仮想マシン配置装置１０による仮想マシン３０の初期配置先の物理サーバ２０の選択手順を説明する（適宜、図１参照）。なお、ここでは既に仮想マシン配置装置１０の初期配置先選択部１０１が、現用系の仮想マシン３０の初期配置先の物理サーバ２０を選択済みであるものとする。
【００４９】
まず、仮想マシン配置装置１０は、予備系の仮想マシン３０の待機時と稼働時に必要なリソース使用量（待機時必要リソース量および稼働時必要リソース量）の入力を受け付ける（Ｓ１）。入力されたリソース使用量は、仮想マシン必要リソース量情報１１３（表３参照）の予備系の仮想マシン３０の待機時必要リソース量および稼働時必要リソース量として書き込まれる。
【００５０】
次に、初期配置先選択部１０１は、予備系の仮想マシン３０の配置に必要な物理サーバ台数を仮決定する（Ｓ２）。すなわち、まず、初期配置先選択部１０１は、仮想マシン必要リソース量情報１１３（表３参照）を参照して、配置対象のすべての予備系の仮想マシンの待機時必要リソース量の合計値を計算する。そして、物理サーバリソース上限閾値情報１１１（表２参照）を参照して、この計算した合計値分の待機時必要リソース量以上のリソース量（上限閾値）を確保するための物理サーバ２０の台数を仮決定する。例えば、初期配置先選択部１０１は、以下の式（１）により、予備系の仮想マシン３０の配置に必要な物理サーバ台数を仮決定する。そして、初期配置先選択部１０１は、仮想マシン配置情報１１２（表１参照）を参照して、空き物理サーバの中から、仮決定した台数の物理サーバ２０群を選択する。この物理サーバ２０群を配置先候補の物理サーバ２０群とする。
【００５１】
物理サーバ台数＝すべての予備系の仮想マシン３０の待機時必要リソース量の合計値分のリソース量（上限閾値）を保有する物理サーバ２０群の台数×ａ…式（１）
ただし、ａは、正の数とする。
【００５２】
その後、仮想マシン配置装置１０の初期配置先選択部１０１は、配置予定の予備系の仮想マシン３０が存在すれば（Ｓ３のＹｅｓ）、仮想マシン必要リソース量情報１１３（表３参照）を参照して、配置予定の予備系の仮想マシン３０のうち、待機時に必要なリソース量（待機時必要リソース量）の大きい順に予備系の仮想マシン３０から１つ選択する（Ｓ４）。そして、初期配置先選択部１０１は、仮想マシン配置情報１１２（表１参照）、物理サーバリソース上限閾値情報１１１（表２参照）および仮想マシン必要リソース量情報１１３（表３参照）を参照して、配置先候補の物理サーバ２０群の中に、配置先物理サーバ決定基準を満たす物理サーバ２０が存在するか否かを判断する（Ｓ５）。ここで、配置先物理サーバ決定基準を満たす物理サーバ２０が存在する場合（Ｓ５のＹｅｓ）、仮想マシン配置実行部１０２は、Ｓ４で選択した配置予定の予備系の仮想マシン３０を該当物理サーバ２０へ配置し（Ｓ６）、Ｓ３へ戻る。一方、配置先物理サーバ決定基準を満たす物理サーバ２０が存在しない場合（Ｓ５のＮｏ）、仮想マシン配置情報１１２（表１参照）を参照して、配置先候補の物理サーバ２０（空き物理サーバ）を追加し（Ｓ７）、Ｓ５へ戻る。そして、Ｓ３において配置予定の予備系の仮想マシン３０についてすべて配置が完了すると（Ｓ３のＮｏ）、処理を終了する。
【００５３】
なお、Ｓ５で用いる配置先物理サーバ決定基準は、以下の（１）〜（４）の条件からなる。
（１）配置対象の予備系の仮想マシン３０を含め、当該物理サーバ２０上の予備系の仮想マシン３０の数が所定の閾値以下であること（前記した（ａ）に相当する条件）。
（２）配置対象の予備系の仮想マシン３０を含め、当該物理サーバ２０上の予備系の仮想マシン３０の待機時必要リソース量の合計値が、当該物理サーバ２０のリソース量（使用リソース量）の上限閾値以下であること（前記した（ｂ）に相当する条件）。
（３）配置対象の予備系の仮想マシン３０を含め、当該物理サーバ２０上の予備系の仮想マシン３０のうち、稼動時必要リソース量の大きいものから順に選択した所定数Ｎの予備系の仮想マシン３０の稼動時必要リソース量の合計値が、当該物理サーバ２０の使用リソース量の上限閾値以下であること（前記した（ｃ）に相当する条件）。
（４）前記した（１）〜（３）の条件を満たす物理サーバ２０のうち、当該物理サーバ２０に配置済みの予備系の仮想マシン３０のペアとなる現用系の仮想マシン３０の配置先の物理サーバ２０と、配置対象の予備系の仮想マシン３０のペアとなる現用系の仮想マシン３０の配置先の物理サーバ２０との一致数が最も少ない物理サーバ２０であること（前記した（ｄ）に相当する条件）。
なお、配置先物理サーバ決定基準として（１）〜（３）の条件を用い、（４）の条件を用いないようにしてもよい。
【００５４】
初期配置先選択部１０１が以上の手順により予備系の仮想マシン３０の配置先の物理サーバ２０を選択すると、仮想マシン配置実行部１０２は、各予備系の仮想マシン３０を選択した物理サーバ２０へ配置する。
【００５５】
初期配置先選択部１０１は、予備系の仮想マシン３０の配置先として以上の条件を満たす物理サーバ２０を選択することで、システムの可用性を高めつつ、物理サーバ２０のリソース使用効率を向上させることができる。
【００５６】
＜再構築＞
次に、このような仮想マシン配置装置１０が仮想マシン３０の初期配置を行った後、システムの故障が発生した場合の仮想マシンの冗長構成の再構築手順について、図６および図７を用いて説明する（適宜、図４参照）。
【００５７】
図４の仮想マシン配置装置１０においてシステムの故障が発生したことを検出すると（Ｓ１１）、仮想マシン配置装置１０は、この故障が現用系の仮想マシン３０のみの故障か否かを判断する（Ｓ１２）。ここで、仮想マシン配置装置１０が、現用系の仮想マシン３０のみの故障であると判断したとき（Ｓ１２のＹｅｓ）、Ｓ１３へ進む。一方、現用系の仮想マシン３０の故障のみではないと判断したとき、すなわち、予備系の仮想マシン３０の故障もあると判断したき（Ｓ１２のＮｏ）、図７のＳ１６へ進む。Ｓ１６以降の処理については後記する。
【００５８】
Ｓ１３において、仮想マシン配置装置１０の仮想マシン配置実行部１０２は、仮想マシン配置情報１１２（表１参照）を参照して、予備系の仮想マシン３０の物理サーバ２０（予備系の仮想マシン３０用の物理サーバ２０）でリソース競合が発生しているか否かを判断し、リソース競合が発生していると判断したとき（Ｓ１３のＹｅｓ）、Ｓ１４へ進む。
【００５９】
なお、Ｓ１３においてリソース競合が発生しているか否かは、当該物理サーバ２０における使用リソース量が当該物理サーバ２０の上限閾値を超えるか否かにより判断される。すなわち、当該物理サーバ２０における使用リソース量が当該物理サーバ２０の上限閾値（物理サーバリソース上限閾値情報１１１参照）を超えるとき、仮想マシン配置実行部１０２は、リソース競合が発生すると判断する。一方、当該物理サーバ２０における使用リソース量が当該物理サーバ２０の上限閾値以下であるとき、仮想マシン配置実行部１０２は、リソース競合は発生しないと判断する。なお、この物理サーバ２０の使用リソース量は、各仮想マシン３０の待機時必要リソース量および稼働時必要リソース量（仮想マシン必要リソース量情報１１３参照）および仮想マシン配置情報１１２から算出する。
【００６０】
Ｓ１４において、仮想マシン配置実行部１０２は、仮想マシン配置情報１１２（表１参照）および仮想マシン必要リソース量情報（表３参照）を参照して、稼動状態となる予備系の仮想マシン３０のうち稼動時必要リソース量の大きい順に、予備系の仮想マシン３０をリソース競合が発生しなくなるまで、つまり、当該物理サーバ２０における使用リソース量が当該物理サーバ２０の上限閾値以下となるまで、他の空き物理サーバへ一時的に退避させる。その後、Ｓ２１へ進む。
【００６１】
一方、Ｓ１３において、仮想マシン配置実行部１０２が、当該物理サーバ２０でリソース競合は発生していないと判断したとき（Ｓ１３のＮｏ）、仮想マシン配置実行部１０２は、稼動状態の予備系の仮想マシン３０を現在の物理サーバ２０上で稼動させ続ける（Ｓ１５）。その後、Ｓ２１へ進む。Ｓ２１については後記する。
【００６２】
Ｓ２１において、システムの故障が現用系の仮想マシン３０の配置される物理サーバ２０の故障によるものであると判明したとき（Ｓ２１のＹｅｓ）、仮想マシン配置実行部１０２は、仮想マシン配置情報１１２（表１参照）を参照して、稼動状態の予備系の仮想マシン３０をすべて空き物理サーバへ移動し、新現用系（現用系の仮想マシン３０）として稼動させる。なお、ここでの稼動状態の予備系の仮想マシン３０とは、Ｓ１４で空き物理サーバへ一時的に退避させた稼動状態の予備系の仮想マシン３０、または、Ｓ１５で予備系の仮想マシン３０用の物理サーバ２０で一時的に稼動している予備系の仮想マシン３０である。つまり、一時的に退避用の物理サーバ２０で稼動していた予備系の仮想マシン３０も、予備系の仮想マシン３０用の物理サーバ２０で稼動していた予備系の仮想マシン３０も、空き物理サーバ（現用系の仮想マシン３０用の物理サーバ２０）へ移動して、現用系の仮想マシン３０として稼動させる。また、仮想マシン構築部１０３は、新予備系（つまり、新たに現用系の仮想マシン３０となった仮想マシン３０のペアとなる予備系の仮想マシン３０）を元の予備系の仮想マシン３０の配置物理サーバ（つまり元の予備系の仮想マシン３０が配置されていた物理サーバ２０）で新規構築する（Ｓ２２）。これにより仮想マシン３０の冗長構成が復旧される。なお、予備系の仮想マシン３０の移動が行われたときや、予備系の仮想マシン３０が稼動状態となり現用系の仮想マシン３０に切り替わったとき、前記した仮想マシン配置情報１１２（表１参照）の情報もそれにあわせて書き換えられる。
【００６３】
一方、Ｓ２１において、システムの故障が現用系の仮想マシン３０の配置される物理サーバ２０の故障によるものではないと判明したとき（Ｓ２１のＮｏ）、例えば、現用系の仮想マシン３０のアプリケーションの障害等によるものであると判明したとき、仮想マシン配置実行部１０２は、稼動状態の予備系の仮想マシン３０を、故障した現用系の仮想マシン３０の配置物理サーバへ移動し、新現用系（現用系の仮想マシン３０）として稼動させる。また、仮想マシン構築部１０３は、新予備系の仮想マシン３０を元の予備系の仮想マシン３０の配置物理サーバで新規構築する。これにより仮想マシン３０の冗長構成が復旧される。
【００６４】
このように仮想マシン配置装置１０は、システムの故障により、予備系の仮想マシン３０が現用系の仮想マシン３０として稼動するようになったとき、この仮想マシン３０（新たな現用系の仮想マシン３０）を現用系の仮想マシン３０用の物理サーバ２０上に配置する。また、この新たな予備系の仮想マシン３０のペアとなる予備系の仮想マシン３０については、予備系の仮想マシン３０用の物理サーバ２０上に再構築する。これにより、システムの故障が発生した後も、現用系の仮想マシン３０については、現用系の仮想マシン３０用の物理サーバ２０に集約して配置され、予備系の仮想マシン３０については、予備系の仮想マシン３０用の物理サーバ２０に集約して配置されることになる。
【００６５】
次に、図７を用いて、仮想マシン配置装置１０が、システムの故障は現用系の仮想マシン３０のみの故障ではないと判断したとき（図６のＳ１２のＮｏ）の処理を説明する（適宜、図１参照）。仮想マシン配置装置１０が、システムの故障は予備系の仮想マシン３０の故障のみであると判断した場合において（図６のＳ１２のＮｏ→図７のＳ１６のＹｅｓ）、システムの故障が予備系の仮想マシン３０の物理サーバ２０の故障によるものであると判断したとき（Ｓ２４のＹｅｓ）、仮想マシン構築部１０３は、仮想マシン配置情報１１２（表１参照）を参照して、この故障した予備系の仮想マシンの代わりとなる予備系の仮想マシンを、いずれかの空き物理サーバで新規構築する（Ｓ２５）。一方、システムの故障が予備系の仮想マシン３０の物理サーバ２０の故障によるものではないと判断したとき（Ｓ２４のＮｏ）、仮想マシン構築部１０３は、仮想マシン配置情報１１２（表１参照）を参照して、この故障した予備系の仮想マシン３０の代わりとなる予備系の仮想マシン３０を、元の予備系の仮想マシン３０の配置物理サーバで新規構築する（Ｓ２６）。また、仮想マシン配置装置１０が、システムの故障は現用系の仮想マシン３０と予備系の仮想マシン３０の両方の故障によるものと判断したとき（Ｓ１６のＮｏ）、仮想マシン構築部１０３は、物理サーバ２０上に現用系および予備系の仮想マシン３０を新規構築する（Ｓ２７）。これにより仮想マシン３０の冗長構成が復旧される。
【００６６】
このように、システムの故障が発生した後も、仮想マシン配置装置１０は、現用系の仮想マシン３０については、現用系の仮想マシン３０用の物理サーバ２０上に配置し、予備系の仮想マシン３０については、予備系の仮想マシン３０用の物理サーバ２０上に配置するようにするので、システムの可用性を高めることができる。
【００６７】
なお、図４の仮想マシン配置装置１０の記憶部１１０は、現用系の仮想マシン３０および予備系の仮想マシン３０からなるシステム（仮想マシン３０のペア）ごとに、現用系の仮想マシン３０の故障により、予備系の仮想マシンへ３０の切り替えが行われる確率である故障率を示した故障率情報１１４をさらに記憶していてもよい。そして、初期配置先選択部１０１は、予備系の仮想マシン３０の配置先の物理サーバ２０を選択する際、配置先物理サーバ決定基準の（１）の条件に代えて、この故障率情報１１４に示される各システムの故障率を参照して、配置先の物理サーバ２０を選択する。すなわち、初期配置先選択部１０１は、配置対象の予備系の仮想マシン３０を含め、配置先候補の物理サーバ２０群のうち、当該物理サーバ２０上の予備系の仮想マシン３０のシステムの故障率の合計値が所定の閾値以下であるような物理サーバ２０を配置先の物理サーバ２０として選択するようにしてもよい。
【００６８】
このようにすることで、仮想マシン配置装置１０は、システムの故障率をもとに予備系の仮想マシン３０の配置先の物理サーバ２０を選択することになるので、複数の現用系の仮想マシン３０の故障により、同じ物理サーバ２０上に配置される予備系の仮想マシン３０が同時に稼動状態となり、物理サーバ２０の負荷が増大してしまうことを抑制できる。
【符号の説明】
【００６９】
１０    仮想マシン配置装置
２０    物理サーバ
２１    物理サーバ群
３０    仮想マシン
３１    記憶装置
４０    ネットワーク
５０    仮想マシン実行システム
１００  処理部
１０１  初期配置先選択部
１０２  仮想マシン配置実行部
１０３  仮想マシン構築部
１０４  仮想マシン実行状態切替部
１１０  記憶部
１１１  物理サーバリソース上限閾値情報
１１２  仮想マシン配置情報
１１３  仮想マシン必要リソース量情報
１１４  故障率情報
１２０  通信部
【図１】
2014075027.tif 000006
【図２】
2014075027.tif 000007
【図３】
2014075027.tif 000008
【図４】
2014075027.tif 000009
【図５】
2014075027.tif 000010
【図６】
2014075027.tif 000011
【図７】
2014075027.tif 000012