(57)【要約】【課題】リソースの使用量を抑えて、仮想マシンの迅速な切り替えを可能にすること。【解決手段】記憶部１１は、性能の異なる複数の仮想マシンの対応関係を示す情報を記憶する。処理部１２は、当該複数の仮想マシンに対応する複数のイメージデータを記憶装置３０に配置する命令を物理マシン２０に送信する。処理部１２は、物理マシン２０で稼働中の仮想マシン２３の負荷を監視し、負荷が第１の閾値を超えると、記憶部１１に記憶された情報に基づいて、仮想マシン２３よりも高性能な仮想マシン２４のイメージデータを、記憶装置３０からメモリにロードして仮想マシン２３を準備状態にする命令を物理マシン２０に送信する。処理部１２は、負荷が第１の閾値よりも高い第２の閾値を超えると、仮想マシン２３を仮想マシン２４に切り替える命令を物理マシン２０に送信する。【選択図】図１
2020064567.tif 000002
【特許請求の範囲】
【請求項１】
性能の異なる複数の仮想マシンの対応関係を示す情報を記憶する記憶部と、
前記複数の仮想マシンに対応する複数のイメージデータを記憶装置に配置する命令を物理マシンに送信し、前記物理マシンで稼働中の第１の仮想マシンの負荷を監視し、前記負荷が第１の閾値を超えると、前記記憶部に記憶された情報に基づいて、前記第１の仮想マシンよりも高性能な第２の仮想マシンのイメージデータを、前記記憶装置からメモリにロードして前記第２の仮想マシンを準備状態にする命令を前記物理マシンに送信し、前記負荷が前記第１の閾値よりも高い第２の閾値を超えると、前記第１の仮想マシンを前記第２の仮想マシンに切り替える命令を前記物理マシンに送信する処理部と、
を有する情報処理装置。
【請求項２】
前記処理部は、前記負荷が前記第１の閾値を継続して超えた時間が第１の時間に達した場合に前記第２の仮想マシンを準備状態にする命令を前記物理マシンに送信し、前記負荷が前記第２の閾値を継続して超えた時間が第２の時間に達した場合に前記第１の仮想マシンを前記第２の仮想マシンに切り替える命令を前記物理マシンに送信する、
請求項１記載の情報処理装置。
【請求項３】
前記処理部は、前記第２の仮想マシンを準備状態にする命令を送信した後、前記第１の仮想マシンから前記第２の仮想マシンへの切り替えが行われずに所定時間が経過すると、前記第２の仮想マシンのイメージデータを前記メモリから削除する命令を前記物理マシンに送信する、
請求項１または２記載の情報処理装置。
【請求項４】
前記処理部は、前記第２の仮想マシンのイメージデータを前記メモリから削除する命令を前記物理マシンに送信すると共に、前記第１の閾値を増加させる、
請求項３記載の情報処理装置。
【請求項５】
前記処理部は、前記第１の仮想マシンの前記負荷が前記第１の閾値よりも低い第３の閾値より下がると、前記記憶部に記憶された情報に基づいて、前記第１の仮想マシンよりも低性能な第３の仮想マシンのイメージデータを、前記記憶装置から前記メモリにロードして前記第３の仮想マシンを準備状態にする命令を前記物理マシンに送信し、前記負荷が前記第３の閾値よりも低い第４の閾値よりも下がると、前記第１の仮想マシンを前記第３の仮想マシンに切り替える命令を前記物理マシンに送信する、
請求項１記載の情報処理装置。
【請求項６】
前記処理部は、前記第１の仮想マシンとは性能の異なる他の仮想マシンが前記記憶装置に退避されてから準備状態に変更されずに所定期間が経過すると、前記他の仮想マシンのイメージデータを前記記憶装置から削除する命令を前記物理マシンに送信する、
請求項１記載の情報処理装置。
【請求項７】
コンピュータに、
性能の異なる複数の仮想マシンに対応する複数のイメージデータを記憶装置に配置する命令を物理マシンに送信し、
前記物理マシンで稼働中の第１の仮想マシンの負荷を監視し、
前記負荷が第１の閾値を超えると、前記第１の仮想マシンよりも高性能な第２の仮想マシンのイメージデータを前記記憶装置からメモリにロードして前記第２の仮想マシンを準備状態とする命令を前記物理マシンに送信し、
前記負荷が前記第１の閾値よりも高い第２の閾値を超えると、前記第１の仮想マシンを前記第２の仮想マシンに切り替える命令を前記物理マシンに送信する、
処理を実行させる仮想マシン管理プログラム。
【請求項８】
情報処理システムが実行する仮想マシン管理方法であって、
性能の異なる複数の仮想マシンに対応する複数のイメージデータを記憶装置に配置し、
前記情報処理システムで稼働中の第１の仮想マシンの負荷を監視し、
前記負荷が第１の閾値を超えると、前記第１の仮想マシンよりも高性能な第２の仮想マシンのイメージデータを前記記憶装置からメモリにロードして前記第２の仮想マシンを準備状態とし、
前記負荷が前記第１の閾値よりも高い第２の閾値を超えると、前記第１の仮想マシンを前記第２の仮想マシンに切り替える、
仮想マシン管理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は情報処理装置、仮想マシン管理プログラムおよび仮想マシン管理方法に関する。
【背景技術】
【０００２】
情報処理の分野では、物理的なコンピュータ（物理マシンや物理ホストと呼ぶことがある）上で、複数の仮想的なコンピュータ（仮想マシンや論理ホストと呼ぶことがある）を動作させる仮想化技術が利用されている。各仮想マシン上では、ＯＳ（Operating System）などのソフトウェアを実行できる。仮想化技術を利用する物理マシンは、複数の仮想マシンを管理するためのソフトウェアを実行する。例えば、ハイパーバイザと呼ばれるソフトウェアが、ＣＰＵ（Central Processing Unit）の処理能力やＲＡＭ（Random Access Memory）の記憶領域を、演算のリソースとして複数の仮想マシンに割り振ることがある。
【０００３】
ところで、ネットワーク経由で、コンピュータシステムのリソースを使用する権利をユーザに貸し出し、リソースの使用量や使用時間などの使用状況に応じてユーザへ課金を行うサービスが利用されている。このようなサービス利用形態は、ＩａａＳ（Infrastructure as a Service）と呼ばれることがある。コンピュータシステムでは、ユーザ間の処理の分離や課金管理の容易性などの観点から、仮想化技術が用いられ、ユーザ毎に１以上の仮想マシンが実行されることがある。また、このようなサービスでは、ユーザに対して過剰にリソースが割り当てられることを抑制する方法が考えられている。
【０００４】
例えば、第１および第２の仮想化システムのそれぞれに１以上の仮想マシンを配置し、各仮想マシンに、ある処理を分散させる管理装置が提案されている。提案の管理装置は、第１の仮想化システムにおける仮想マシンの負荷が第１の負荷条件を満たし、かつ、第２の仮想化システムにおける仮想マシンの負荷が第２の負荷条件を満たすときに第２の仮想化システムへの仮想マシンの追加を許容する。
【０００５】
また、ユーザの仮想計算機の使用状況およびユーザの計算機使用条件に従って、命令実行処理に加えるダミーサイクルを変更することで、特別な操作を要さずに仮想計算機のＣＰＵ性能を変更する仮想計算機性能変更方法の提案もある。
【０００６】
また、性能の異なる仮想マシン上で稼動する第１および第２のデータベースを備え、外部からの指示に応じて、システムが利用している仮想マシンを入れ替え、システムの性能をスケールアップおよびスケールダウンさせる方法の提案もある。
【０００７】
更に、更新前と更新後の業務システム全体の仮想マシンの処理負荷に応じて更新前の業務システムの仮想マシンの削除を行うオートスケール方法の提案もある。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２０１５−１５３４０２号公報
【特許文献２】特開２００６−６５４３０号公報
【特許文献３】特開２０１２−２１５９３７号公報
【特許文献４】特開２０１７−１１１６６４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００９】
ユーザによる仮想マシンの利用頻度が高まったときに、当該仮想マシンよりも高性能な仮想マシンを起動して、高性能な仮想マシンによる運用に切り替えることが考えられる。このとき、補助記憶装置に記憶された仮想マシンのイメージデータを物理マシンのメモリにロードして当該仮想マシンを起動すると、仮想マシンの起動に時間がかかる。
【００１０】
そこで、仮想マシンの利用頻度の高まりに備え、比較的高性能な仮想マシンを予め稼働させて、ユーザに提供することが考えられる。しかし、仮想マシンのイメージデータをメモリにロードして稼働させると、ユーザに対してＣＰＵやＲＡＭなどのリソースの利用料が課金される。ユーザが利用する仮想マシンの性能が高い（リソースの割り当て量が大きい）ほど、課金額は大きくなる。このため、ユーザに対して、仮想マシンの利用頻度が比較的低い場合にまで、比較的高性能な仮想マシンでの課金が発生してしまうことがあり、ユーザへの課金が過剰になることがある。
【００１１】
１つの側面では、本発明は、リソースの使用量を抑えて、仮想マシンの迅速な切り替えを可能にする情報処理装置、仮想マシン管理プログラムおよび仮想マシン管理方法を提供することを目的とする。
【課題を解決するための手段】
【００１２】
１つの態様では、情報処理装置が提供される。この情報処理装置は、記憶部と処理部とを有する。記憶部は、性能の異なる複数の仮想マシンの対応関係を示す情報を記憶する。処理部は、複数の仮想マシンに対応する複数のイメージデータを記憶装置に配置する命令を物理マシンに送信し、物理マシンで稼働中の第１の仮想マシンの負荷を監視し、負荷が第１の閾値を超えると、記憶部に記憶された情報に基づいて、第１の仮想マシンよりも高性能な第２の仮想マシンのイメージデータを、記憶装置からメモリにロードして第２の仮想マシンを準備状態にする命令を物理マシンに送信し、負荷が第１の閾値よりも高い第２の閾値を超えると、第１の仮想マシンを第２の仮想マシンに切り替える命令を物理マシンに送信する。
【００１３】
また、１つの態様では、仮想マシン管理プログラムが提供される。
また、１つの態様では、仮想マシン管理方法が提供される。
【発明の効果】
【００１４】
１つの側面では、リソースの使用量を抑えて、仮想マシンの迅速な切り替えを可能にする。
【図面の簡単な説明】
【００１５】
【図１】第１の実施の形態の情報処理システムを示す図である。
【図２】第２の実施の形態の情報処理システムの例を示す図である。
【図３】管理サーバのハードウェア例を示すブロック図である。
【図４】管理サーバの機能例を示す図である。
【図５】ＶＭホストの機能例を示す図である。
【図６】ＶＭホストのＶＭ配備例を示す図である。
【図７】条件表の例を示す図である。
【図８】管理テーブルの例を示す図である。
【図９】ダウンサイズの準備例を示す図である。
【図１０】ダウンサイズの中止例および実行例を示す図である。
【図１１】アップサイズの準備例を示す図である。
【図１２】アップサイズの中止例および実行例を示す図である。
【図１３】管理サーバの処理例を示すフローチャートである。
【図１４】ＶＭ切り替え制御（ダウンサイズ）の例を示すフローチャートである。
【図１５】ダウンサイズ後処理の例を示すフローチャートである。
【図１６】ダウンサイズ後処理の具体例を示す図である。
【図１７】ＶＭ切り替え制御（アップサイズ）の例を示すフローチャートである。
【図１８】アップサイズ後処理の例を示すフローチャートである。
【図１９】アップサイズ後処理の具体例を示す図である。
【図２０】不要ＶＭ削除の例を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本実施の形態について図面を参照して説明する。
［第１の実施の形態］
第１の実施の形態を説明する。
【００１７】
図１は、第１の実施の形態の情報処理システムを示す図である。
情報処理システム１は、情報処理装置１０、物理マシン２０および記憶装置３０を有する。情報処理装置１０、物理マシン２０および記憶装置３０は、ネットワーク４０に接続される。情報処理装置１０は、物理マシン２０における仮想マシンの運用管理を行う。
【００１８】
物理マシン２０は、物理マシン２０のハードウェア２１を用いて仮想マシンを実行する。物理マシン２０は、ハイパーバイザ２２を実行する。ハイパーバイザ２２は、物理マシン２０が備えるハードウェア２１のリソースを仮想マシンに割り当てる。ハードウェア２１は、メモリ２１ａおよびプロセッサ２１ｂを含む。例えば、ハイパーバイザ２２は、メモリ２１ａの記憶リソースやプロセッサ２１ｂの演算リソースを仮想マシン２３に割り当て、物理マシン２０上で仮想マシン２３を動作させる。例えば、仮想マシン２３は、ネットワーク４０を介して、ユーザが操作するクライアント端末（図示を省略している）と通信し、ユーザの作業を支援する所定のソフトウェアの機能（例えば、Ｗｅｂサーバ機能など）を提供する。例えば、ユーザには、仮想マシン２３の利用状況（仮想マシン２３のリソース量や利用時間など）に応じた利用料が課金される。
【００１９】
記憶装置３０は、情報処理装置１０および物理マシン２０の処理に用いられるデータを記憶するストレージである。記憶装置３０は、物理マシン２０に内蔵されてもよい。
情報処理装置１０は、記憶部１１および処理部１２を有する。記憶部１１は、ＲＡＭ（Random Access Memory）などの揮発性記憶装置でもよいし、ＨＤＤやフラッシュメモリなどの不揮発性記憶装置でもよい。処理部１２は、ＣＰＵ、ＤＳＰ（Digital Signal Processor）、ＡＳＩＣ（Application Specific Integrated Circuit）、ＦＰＧＡ（Field Programmable Gate Array）などを含み得る。処理部１２はプログラムを実行するプロセッサでもよい。「プロセッサ」には、複数のプロセッサの集合（マルチプロセッサ）も含まれ得る。
【００２０】
記憶部１１は、性能の異なる複数の仮想マシンの対応関係を示す情報を記憶する。例えば、記憶部１１は、仮想マシン２３に対して、仮想マシン２３よりも高い性能の仮想マシンのデータや、仮想マシン２３よりも低い性能の仮想マシンのデータを示す情報（例えば、各データの格納位置を示す情報）を記憶する。
【００２１】
処理部１２は、性能の異なる複数の仮想マシンに対応する複数のイメージデータを記憶装置３０に配置する命令を物理マシン２０に送信する。ここで、イメージデータは、仮想マシンをシャットダウンして記憶装置３０に退避させた状態のデータであり、仮想マシンに含まれるソフトウェアの情報に加え、仮想マシンに割り当てられたリソース量に関連する情報を含み得る。イメージデータは、仮想マシンの退避イメージや退避データなどと呼ばれてもよい。
【００２２】
ここで、以下では、「仮想マシン」をＶＭ（Virtual Machine）と略記することがある。また、「仮想マシンのイメージデータ」を、ＶＭデータと略記することがある。物理マシン２０は、処理部１２の命令に応じて、性能の異なる複数の仮想マシンの複数のＶＭデータを記憶装置３０に格納する。
【００２３】
例えば、記憶装置３０には、ＶＭデータ３１，３２，３３が格納される。ＶＭデータ３１，３２，３３は、あるＯＳやアプリケーションなどのソフトウェアを含む１つの仮想マシンイメージから、異なる性能を指定することで作成される。仮想マシンの性能は、メモリ２１ａやプロセッサ２１ｂなどのハードウェア２１のリソースの割り当て量によって決まる。例えば、メモリ２１ａの割り当て量およびプロセッサ２１ｂの割り当て量が多い程、高性能である。また、メモリ２１ａの割り当て量およびプロセッサ２１ｂの割り当て量が少ない程、低性能である。
【００２４】
例えば、ＶＭデータ３１は、ＶＭデータ３１，３２，３３の中では最も高性能な仮想マシンのデータである。ＶＭデータ３２は、ＶＭデータ３１，３２，３３の中での中間の性能の仮想マシンのデータである。ＶＭデータ３３は、ＶＭデータ３１，３２，３３の中では最も低性能な仮想マシンのデータである。中間の性能であることを「Ｍ（Medium）」と表記する。中間の性能よりも高性能であることを「Ｌ（Large）」と表記する。中間の性能よりも低性能であることを「Ｓ（Small）」と表記する。
【００２５】
例えば、処理部１２は、ユーザによる性能「Ｍ」の仮想マシン２３の配備指示を受け付けた場合に、性能「Ｌ」、「Ｍ」、「Ｓ」のＶＭデータ３１，３２，３３を、物理マシン２０により記憶装置３０に格納させる。性能「Ｍ」に対する性能「Ｌ」での割り当てリソース量や、性能「Ｍ」に対する性能「Ｓ」での割り当てリソース量の情報は、記憶部１１に予め格納される。処理部１２は、物理マシン２０によりＶＭデータ３２をメモリ２１ａにロードさせ、物理マシン２０上で、性能「Ｍ」の仮想マシン２３を実行させる。処理部１２は、ＶＭデータ３１，３２，３３の記憶装置３０への配置や仮想マシン２３の起動完了の結果通知を物理マシン２０から受け付けて、性能の異なる複数の仮想マシンの対応関係を示す情報を生成し、記憶部１１に格納する。
【００２６】
処理部１２は、物理マシン２０で稼働中の第１の仮想マシンから取得される負荷を監視する。処理部１２は、第１の仮想マシンの負荷が第１の閾値を超えると、第１の仮想マシンよりも高性能な第２の仮想マシンのイメージデータを、記憶装置３０からメモリ２１ａにロードして、第２の仮想マシンを準備状態とする命令を物理マシン２０に送信する。
【００２７】
例えば、処理部１２は、所定の時間間隔で、仮想マシン２３から負荷を取得する。負荷は、例えば、仮想マシン２３によるプロセッサ使用率である。負荷は、プロセッサ使用率に代えて、あるいは、プロセッサ使用率と併せて、メモリ使用率などの他の指標で表されてもよい。
【００２８】
処理部１２は、仮想マシン２３の負荷が第１の閾値を超えると、ＶＭデータ３１を、記憶装置３０からメモリ２１ａにロードして、仮想マシン２３よりも高性能な仮想マシンを準備状態とする命令を、物理マシン２０に送信する。準備状態とは、該当の仮想マシンを起動可能な状態（一時停止となった状態）とすることである。物理マシン２０は、当該命令に基づいて、ＶＭデータ３１をメモリ２１ａにロードし、ＶＭデータ３１に対応する仮想マシン（仮想マシン２４）を起動可能な状態とする。
【００２９】
処理部１２は、第１の仮想マシンの負荷の監視を継続する。処理部１２は、第１の仮想マシンの負荷が第１の閾値よりも高い第２の閾値を超えると、第１の仮想マシンを第２の仮想マシンに切り替える命令を物理マシン２０に送信する。
【００３０】
例えば、処理部１２は、仮想マシン２３の負荷が第２の閾値を超えると、仮想マシン２３を仮想マシン２４に切り替える命令を、物理マシン２０に送信する。物理マシン２０は、当該命令に基づいて、メモリ２１ａにロードしたＶＭデータ３１により、仮想マシン２４を起動させる。物理マシン２０は、仮想マシン２３を仮想マシン２４に切り替える。具体的には、物理マシン２０は、仮想マシン２４を起動し、ユーザに対するＷｅｂサーバ機能などの所定のサービスの提供元を、仮想マシン２３から仮想マシン２４に切り替える。
【００３１】
物理マシン２０は、例えば、負荷分散部を有する。負荷分散部は、仮想マシン２３に割り振られていたクライアント端末からのリクエストを、仮想マシン２４に割り振るように変更することで、ユーザに対するサービス提供を止めずに、仮想マシンの切り替えを行える。
【００３２】
情報処理システム１によれば、性能の異なる複数の仮想マシンの複数のイメージデータが記憶装置３０に格納される。情報処理システム１（物理マシン２０）で稼働中の第１の仮想マシンの負荷が監視される。第１の仮想マシンの負荷が第１の閾値を超えると、第１の仮想マシンよりも高性能な第２の仮想マシンのイメージデータが、記憶装置３０からメモリ２１ａにロードされて第２の仮想マシンが準備状態とされる。第１の仮想マシンの負荷が第１の閾値よりも高い第２の閾値を超えると、第１の仮想マシンが第２の仮想マシンに切り替えられる。
【００３３】
これにより、リソースの使用量を抑えて、仮想マシンの迅速な切り替えを可能にする。
具体的には、情報処理装置１０は、通常時（仮想マシン２３が比較的低負荷の場合）には仮想マシン２３を稼働させ、仮想マシン２３の負荷が第１の閾値よりも高まると、仮想マシン２４をメモリ２１ａにロードさせて準備状態とさせる。このため、通常時において、仮想マシン２４をメモリ２１ａにロードさせずに済み、メモリ２１ａの使用量を抑えられる。その結果、ユーザに対するメモリ２１ａの利用に伴う課金を抑えられる。
【００３４】
更に、仮想マシン２４が準備状態となっている間は、仮想マシン２４が起動しておらず、プロセッサ２１ｂを使用していない。したがって、仮想マシン２４の準備状態では、ユーザに対するプロセッサ２１ｂの利用に伴う課金を抑えられる。
【００３５】
しかも、ＶＭデータ３１は、メモリ２１ａに既にロードされているので、仮想マシン２３の負荷が第２の閾値を超えた場合に、物理マシン２０は、仮想マシン２４を迅速に起動して、仮想マシン２３から仮想マシン２４への切り替えを行うことができる。
【００３６】
こうして、リソースの使用量を抑えて、仮想マシンの迅速な切り替えを可能にすることができる。また、リソースの使用量を抑えることで、ユーザに対する課金額を抑えることができる。また、負荷が高まっていると推定される適切なタイミングで高性能な仮想マシンへの切り替えを行うことができ、仮想マシンで行われる処理の遅延を抑えられる。
【００３７】
なお、切り替え後には、物理マシン２０は、仮想マシン２３を停止させ、例えば、所定時間の経過後にＶＭデータ３２をメモリ２１ａから記憶装置３０に退避させてもよい。これにより、仮想マシン２３によるリソースの使用量を一層抑えられる。
【００３８】
また、処理部１２は、仮想マシン２３の負荷が第１の閾値を継続して超えた時間が第１の時間に達した場合に仮想マシン２４を準備状態にする命令を物理マシン２０に送信してもよい。そして、仮想マシン２３の負荷が第２の閾値を継続して超えた時間が第２の時間に達した場合に仮想マシン２３を仮想マシン２４に切り替える命令を物理マシン２０に送信してもよい。これにより、仮想マシン２３の負荷が高まる傾向にあることを適切に検出して、仮想マシン２４を起動準備できる。また、仮想マシン２３が高負荷状態にあることを適切に検出して、仮想マシン２３から仮想マシン２４への切り替えを行える。
【００３９】
また、処理部１２は、仮想マシン２４を準備状態にする命令を送信した後、仮想マシン２３から仮想マシン２４への切り替えが行われずに所定時間が経過すると、仮想マシン２４のイメージデータをメモリ２１ａから削除する命令を物理マシン２０に送信してもよい。これにより、仮想マシン２３が比較的高い負荷状態にならず、仮想マシン２４への切り替えが不要と判断される場合に、メモリ２１ａの使用量を抑えられる。
【００４０】
更に、処理部１２は、仮想マシン２３の負荷が第１の閾値よりも低い第３の閾値より低下すると、ＶＭデータ３３をメモリ２１ａにロードして、仮想マシン２３よりも低性能な仮想マシンを準備状態とするように、物理マシン２０に指示してもよい。そして、処理部１２は、仮想マシン２３の負荷が第３の閾値よりも低い第４の閾値より低下すると、仮想マシン２３を低性能の仮想マシンに切り替えるように物理マシン２０に指示してもよい。物理マシン２０は、当該指示に応じて、メモリ２１ａにロードされたＶＭデータ３３に基づいて、低性能の仮想マシンを起動し、仮想マシン２３から低性能の仮想マシンへの切り替えを行う。これにより、リソースの使用量を一層抑えながら、仮想マシンの迅速な切り替えを可能にできる。また、リソースの使用量を抑えることで、ユーザに対する課金額を一層抑えることができる。
【００４１】
また、処理部１２は、仮想マシン２３とは性能の異なる他の仮想マシン（例えば、仮想マシン２３）が記憶装置３０に退避されてから準備状態に変更されずに所定期間が経過すると、当該他の仮想マシンのイメージデータを記憶装置３０から削除する命令を物理マシン２０に送信してもよい。これにより、仮想マシン２３の負荷状態が比較的安定していると推定される場合に、記憶装置３０の使用量を抑えることができる。記憶装置３０の使用量を抑えることで、ユーザに対する課金額を一層抑えることができる。
【００４２】
［第２の実施の形態］
次に、第２の実施の形態を説明する。
図２は、第２の実施の形態の情報処理システムの例を示す図である。
【００４３】
第２の実施の形態の情報処理システムは、管理サーバ１００およびＶＭホスト２００，３００，…を有する。第２の実施の形態の情報処理システムは、ＶＭホスト２００，３００，…で実行される仮想マシンをクライアント５０により利用可能にする。管理サーバ１００およびＶＭホスト２００，３００，…は、ネットワーク６０に接続される。ネットワーク６０は、ネットワーク７０に接続されている。クライアント５０は、ネットワーク７０に接続されている。例えば、ネットワーク６０は、ＬＡＮ（Local Area Network）である。例えば、ネットワーク７０は、ＷＡＮ（Wide Area Network）やインターネットなどである。
【００４４】
管理サーバ１００は、ＶＭホスト２００，３００，…で動作する仮想マシンの運用管理を行うサーバコンピュータである。
ＶＭホスト２００，３００，…は、仮想マシンを実行するサーバコンピュータである。ＶＭホスト２００，３００，…のそれぞれは、ハイパーバイザを実行し、ハイパーバイザの機能により、ＶＭホスト２００，３００，…のそれぞれが備えるＣＰＵやＲＡＭのリソースを仮想マシンに割り当てる。
【００４５】
クライアント５０は、ユーザにより操作されるクライアントコンピュータである。クライアント５０は、例えば、Ｗｅｂブラウザとして機能し、Ｗｅｂブラウザにより、ＶＭホスト２００，３００，…上の仮想マシンが提供するＷｅｂサービスにアクセスする。
【００４６】
第２の実施の形態の情報処理システムでは、ＩａａＳを提供する。すなわち、第２の実施の形態の情報処理システムは、ネットワーク経由で、コンピュータシステムのリソースを使用する権利をユーザに貸し出し、リソースの使用量や使用時間などの使用状況に応じてユーザへ課金（従量課金）を行う。
【００４７】
図３は、管理サーバのハードウェア例を示すブロック図である。
管理サーバ１００は、ＣＰＵ１０１、ＲＡＭ１０２、ＨＤＤ１０３、画像信号処理部１０４、入力信号処理部１０５、媒体リーダ１０６およびＮＩＣ１０７を有する。これらの各ハードウェアは、管理サーバ１００のバスに接続される。なお、ＣＰＵ１０１は、第１の実施の形態の処理部１２に対応する。ＲＡＭ１０２またはＨＤＤ１０３は、第１の実施の形態の記憶部１１に対応する。
【００４８】
ＣＰＵ１０１は、プログラムの命令を実行するプロセッサである。ＣＰＵ１０１は、ＨＤＤ１０３に記憶されたプログラムやデータの少なくとも一部をＲＡＭ１０２にロードし、プログラムを実行する。なお、ＣＰＵ１０１は複数のプロセッサコアを含んでもよい。また、管理サーバ１００は複数のプロセッサを有してもよい。以下で説明する処理は複数のプロセッサまたはプロセッサコアを用いて並列に実行されてもよい。また、複数のプロセッサの集合を「マルチプロセッサ」または単に「プロセッサ」と言うことがある。
【００４９】
ＲＡＭ１０２は、ＣＰＵ１０１が実行するプログラムやＣＰＵ１０１が演算に用いるデータを一時的に記憶する揮発性の半導体メモリである。なお、管理サーバ１００は、ＲＡＭ以外の種類のメモリを備えてもよく、複数個のメモリを備えてもよい。
【００５０】
ＨＤＤ１０３は、ＯＳやミドルウェアやアプリケーションソフトウェアなどのソフトウェアのプログラム、および、データを記憶する不揮発性の記憶装置である。なお、管理サーバ１００は、フラッシュメモリやＳＳＤ（Solid State Drive）などの他の種類の記憶装置を備えてもよく、複数の不揮発性の記憶装置を備えてもよい。
【００５１】
画像信号処理部１０４は、ＣＰＵ１０１からの命令に従って、管理サーバ１００に接続されたディスプレイ１１１に画像を出力する。ディスプレイ１１１としては、ＣＲＴ（Cathode Ray Tube）ディスプレイ、液晶ディスプレイ（ＬＣＤ：Liquid Crystal Display）、プラズマディスプレイ、有機ＥＬ（ＯＥＬ：Organic Electro-Luminescence）ディスプレイなど、任意の種類のディスプレイを用いることができる。
【００５２】
入力信号処理部１０５は、管理サーバ１００に接続された入力デバイス１１２から入力信号を取得し、ＣＰＵ１０１に出力する。入力デバイス１１２としては、マウス・タッチパネル・タッチパッド・トラックボールなどのポインティングデバイス、キーボード、リモートコントローラ、ボタンスイッチなどを用いることができる。また、管理サーバ１００に、複数の種類の入力デバイスが接続されていてもよい。
【００５３】
媒体リーダ１０６は、記録媒体１１３に記録されたプログラムやデータを読み取る読み取り装置である。記録媒体１１３として、例えば、磁気ディスク、光ディスク、光磁気ディスク（ＭＯ：Magneto-Optical disk）、半導体メモリなどを使用できる。磁気ディスクには、フレキシブルディスク（ＦＤ：Flexible Disk）やＨＤＤが含まれる。光ディスクには、ＣＤ（Compact Disc）やＤＶＤ（Digital Versatile Disc）が含まれる。
【００５４】
媒体リーダ１０６は、例えば、記録媒体１１３から読み取ったプログラムやデータを、ＲＡＭ１０２やＨＤＤ１０３などの他の記録媒体にコピーする。読み取られたプログラムは、例えば、ＣＰＵ１０１によって実行される。なお、記録媒体１１３は可搬型記録媒体であってもよく、プログラムやデータの配布に用いられることがある。また、記録媒体１１３やＨＤＤ１０３を、コンピュータ読み取り可能な記録媒体と言うことがある。
【００５５】
ＮＩＣ１０７は、ネットワーク６０に接続され、ネットワーク６０を介して他のコンピュータと通信を行うインタフェースである。ＮＩＣ１０７は、例えば、スイッチやルータなどの通信装置とケーブルで接続される。
【００５６】
なお、ＶＭホスト２００，３００，…やクライアント５０も管理サーバ１００と同様のハードウェアにより実現される。
図４は、管理サーバの機能例を示す図である。
【００５７】
管理サーバ１００は、記憶部１２０、ＶＭ配備部１３０、負荷計算部１４０、ＶＭ切り替え処理部１５０、ＶＭ状態管理部１６０およびＶＭ削除部１７０を有する。記憶部１２０は、ＲＡＭ１０２またはＨＤＤ１０３の記憶領域により実現される。ＶＭ配備部１３０、負荷計算部１４０、ＶＭ切り替え処理部１５０、ＶＭ状態管理部１６０およびＶＭ削除部１７０は、例えば、ＲＡＭ１０２に記憶されたプログラムをＣＰＵ１０１が実行することで実現される。
【００５８】
記憶部１２０は、仮想マシンの動作状況を管理するための管理テーブルを記憶する。
ＶＭ配備部１３０は、ＶＭホスト２００，３００，…に対する仮想マシンの配備の指示を行う。ＶＭ配備部１３０は、ユーザにより指定された性能の仮想マシンを配備する場合に、指定された性能よりも高性能の仮想マシンと、指定された性能よりも低性能の仮想マシンとを退避状態で配備するＶＭ配備命令を、ＶＭホスト２００，３００，…に送信する。
【００５９】
ここで、仮想マシンの性能は、例えば、仮想マシンに対するＣＰＵやＲＡＭの割り当て量により決まる。仮想マシンの性能は、フレーバーと呼ばれることがある。例えば、ＶＭホスト２００，３００，…は、１つの仮想マシンイメージから、性能の異なる複数の仮想マシンを配備することができる。
【００６０】
ユーザによって配備指示された仮想マシンの割り当てリソース量に対し、１段階だけ高性能な仮想マシンへの割り当てリソース量を示す情報、および、１段階だけ低性能な仮想マシンへの割り当てリソース量を示す情報は、記憶部１２０に予め格納される。例えば、当該割り当てリソース量は、ユーザによる指定されたリソース量に対する差分の情報として予め与えられる。例えば、差分の情報では、ＣＰＵの割り当て量の差分が、ＣＰＵの個数やクロック数などにより表され、ＲＡＭの割り当て量の差分が、ＲＡＭのサイズなどにより表される。ＶＭ配備部１３０は、記憶部１２０に記憶された当該情報に基づいて、ユーザにより配備指示された仮想マシンに対し、当該仮想マシンの性能よりも１段階だけ高性能な仮想マシン、および、１段階だけ低性能な仮想マシンへの割り当てリソース量を決定する。
【００６１】
負荷計算部１４０は、ＶＭホスト２００，３００，…で動作する仮想マシンから当該仮想マシンの負荷を示す負荷情報を定期的に取得し、負荷情報に基づいて仮想マシンの負荷を計算する。仮想マシンの負荷は、例えば、仮想マシンに割り当てられたＣＰＵに対する、当該仮想マシンのＣＰＵ使用率である。ただし、仮想マシンの負荷は、ＣＰＵ使用率に加えて、または、ＣＰＵ使用率に代えて、仮想マシンによるＲＡＭ使用率、仮想マシンへのログイン人数、仮想マシンによるディスクアクセス数や仮想マシンによる通信トラフィック量などにより評価されてもよい。例えば、ＣＰＵ使用率およびＲＡＭ使用率などの複数の指標を用いて仮想マシンの負荷を評価する場合、負荷計算部１４０は、各指標を正規化し、正規化した各指標の平均を求めることで、仮想マシンの負荷を計算することが考えられる。
【００６２】
ＶＭ切り替え処理部１５０は、負荷計算部１４０により取得された仮想マシンの負荷に基づいて、現在の性能の仮想マシンから異なる性能の仮想マシンへ切り替えるＶＭ切り替え命令を、ＶＭホスト２００，３００，…に送信する。
【００６３】
ＶＭ状態管理部１６０は、仮想マシンの状態をＶＭホスト２００，３００，…から取得し、記憶部１２０に記憶された管理テーブルに記録する。
ＶＭ削除部１７０は、ＶＭ切り替え処理部１５０により、所定期間以上、切り替えが行われなかった仮想マシンを特定し、特定した仮想マシンに対する切り替え先候補の仮想マシンを削除するＶＭ削除命令を、ＶＭホスト２００，３００，…に送信する。
【００６４】
図５は、ＶＭホストの機能例を示す図である。
ＶＭホスト２００は、ＶＭ配備実行部２１０、負荷情報通知部２２０、ＶＭ切り替え実行部２３０、ＶＭ状態通知部２４０およびＶＭ削除実行部２５０を有する。ＶＭ配備実行部２１０、負荷情報通知部２２０、ＶＭ切り替え実行部２３０、ＶＭ状態通知部２４０およびＶＭ削除実行部２５０は、例えば、ＶＭホスト２００のプロセッサがＶＭホスト２００のＲＡＭに記憶されたプログラムを実行することで実現される。
【００６５】
ＶＭ配備実行部２１０は、ＶＭ配備部１３０からＶＭ配備命令を受け付け、ＶＭホスト２００上に仮想マシンを配備する。仮想マシンの配備は、ある仮想マシンイメージに対して、割り当てるリソース量（すなわち、性能）を指定することで行われる。前述のように、ＶＭ配備実行部２１０は、ある性能の仮想マシンを配備する場合に、当該仮想マシンよりも高性能な仮想マシンと、低性能な仮想マシンとを配備する。高性能な仮想マシンと低性能な仮想マシンとは、例えば、ＶＭホスト２００が備えるＨＤＤやＳＳＤなどの補助記憶装置、または、ネットワーク６０に接続された外部ストレージなどに退避された状態（退避状態）とされる。退避状態の仮想マシンに対して、ＶＭホスト２００のＣＰＵやＲＡＭは使用されない。
【００６６】
負荷情報通知部２２０は、ＶＭホスト２００で稼働している仮想マシンの負荷を示す負荷情報を定期的に取得し、負荷計算部１４０に送信する。
ＶＭ切り替え実行部２３０は、ＶＭ切り替え処理部１５０からＶＭ切り替え命令を受け付け、ＶＭ切り替え命令に基づいて、ＶＭ切り替えを実行する。ＶＭ切り替え実行部２３０の機能は、例えば、ＶＭホスト２００が有する負荷分散機能により実現される。
【００６７】
ＶＭ状態通知部２４０は、ＶＭ切り替え実行部２３０によるＶＭ切り替えに応じて、ＶＭホスト２００で管理される仮想マシンの状態を取得し、取得した仮想マシンの状態をＶＭ状態管理部１６０に送信する。
【００６８】
ＶＭ削除実行部２５０は、ＶＭ削除部１７０からＶＭ削除命令を受け付け、ＶＭ削除命令に基づいて、ＶＭホスト２００で管理される仮想マシンを削除する。
なお、ＶＭホスト３００を含む他のＶＭホストも、ＶＭホスト２００と同様の機能を有する。
【００６９】
図６は、ＶＭホストのＶＭ配備例を示す図である。
ＶＭホスト２００は、ハードウェア２００ｈを有する。ハードウェア２００ｈは、ＣＰＵ２０１、ＲＡＭ２０２およびＨＤＤ２０３を含む。ＶＭホスト２００は、ＨＤＤ２０３に代えて、または、ＨＤＤ２０３と合わせて、ＳＳＤなどの他の種類の記憶装置を有してもよい。また、ハードウェア２００ｈは、仮想マシンの動作に用いられるＮＩＣなどの他のハードウェアも含む（図示を省略している）。
【００７０】
ＶＭホスト２００は、ハイパーバイザ２６０を有する。ハイパーバイザ２６０は、ＣＰＵ２０１、ＲＡＭ２０２およびＨＤＤ２０３のリソースを仮想マシンに割り当て、ＶＭホスト２００上で仮想マシンを動作させる。
【００７１】
ＶＭホスト２００は、例えば、仮想マシン２６１，２６２，２６３，…，２７０および負荷分散部２８０を有する。仮想マシン２６１，２６２，２６３は、例えば、Ｗｅｂサーバ機能を提供する。仮想マシン２７０は、例えば、ＡＰサーバ機能を提供し、仮想マシン２６１，２６２，２６３の何れかから受信する処理要求に応じた処理を実行する。負荷分散部２８０は、複数の仮想マシンにリクエストを分散させる機能を有する。ここでは、負荷分散部２８０は、ＶＭ切り替え処理に用いられる。負荷分散部２８０は、仮想マシンにより実現されてもよい。
【００７２】
仮想マシン２６１，２６２，２６３は、共通の仮想マシンイメージから起動された仮想マシンのインスタンスである。ただし、仮想マシン２６１，２６２，２６３は、性能（フレーバー）が互いに異なる。仮想マシン２６１は、仮想マシン２６１，２６２，２６３の中で、最も高い性能である。仮想マシン２６２は、仮想マシン２６１，２６２，２６３の中で、中間の性能である。仮想マシン２６３は、仮想マシン２６１，２６２，２６３の中で、最も低い性能である。
【００７３】
仮想マシン２６１の識別名は「ＶＭ１−Ｌ」である。仮想マシン２６２の識別名は「ＶＭ１−Ｍ」である。仮想マシン２６３の識別名は「ＶＭ１−Ｓ」である。仮想マシン２７０の識別名は「ＶＭ２」である。
【００７４】
通常運用時では、中間の性能の仮想マシン２６２が稼働し、ユーザに利用される。稼働状態は、「Ａｃｔｉｖｅ」と記される。通常運用時では、仮想マシン２６１，２６３は、ＨＤＤ２０３または外部ストレージへ退避された退避状態とされる。退避状態は、「Ｓｈｅｌｖｅｄ」と記される。退避状態では、該当の仮想マシン（例えば、仮想マシン２６１，２６３）がシャットダウンされて、当該仮想マシンのＶＭデータが、ＨＤＤ２０３または外部ストレージに格納され、当該ＶＭデータがＶＭホスト２００のＲＡＭから削除される。退避状態は、例えば、Ｏｐｅｎｓｔａｃｋ（登録商標）におけるｓｈｅｌｖｅコマンドにより仮想マシンのインスタンスが補助記憶装置に退避された状態でもよい。Ｓｈｅｌｖｅｄの状態の仮想マシンの再開時には、ＶＭデータをＲＡＭに展開してから起動することになるので、起動に要する時間が比較的長い。
【００７５】
なお、仮想マシンの状態としては、仮想マシンのイメージデータがＶＭホスト２００のＲＡＭにロードされているが当該仮想マシンが起動していない一時停止の状態もある。一時停止の状態は、「Ｓｔｏｐｐｅｄ」と記される。一時停止状態では、該当の仮想マシンは起動しておらず、ＶＭホスト２００のＣＰＵは使用されない。一時停止状態は、例えば、Ｏｐｅｎｓｔａｃｋにおけるｐａｕｓｅコマンドにより、仮想マシンの状態がＶＭホストの主記憶装置に格納されて当該仮想マシンが一時停止された状態でもよい。Ｓｔｏｐｐｅｄの状態では、仮想マシンのＶＭデータがＲＡＭ上に展開されているが、動作は停止されている。Ｓｔｏｐｐｅｄの状態の仮想マシンの再開時には、ＣＰＵを割り当てれば当該仮想マシンを起動できるので、起動に要する時間が比較的短い（Ｓｈｅｌｖｅｄの状態から再開するよりも高速に再開できる）。
【００７６】
図７は、条件表の例を示す図である。
条件表１５１は、ＶＭ切り替え処理のための条件を示す。ＶＭ切り替え処理部１５０は、仮想マシン２６２の負荷に基づいて、仮想マシン２６２を、仮想マシン２６１または仮想マシン２６３に切り替えるか否かを判定する。例えば、ＶＭ切り替え処理部１５０は、条件表１５１で示される条件に基づいて、当該判定を行う。条件表１５１は、分類、条件名、条件内容および処理区分の項目を含む。
【００７７】
分類の項目には、該当の条件が、仮想マシンをダウンサイズするための条件か、または、仮想マシンをアップサイズするための条件かを示す情報が登録される。「ダウンサイズ」は、仮想マシンをダウンサイズする（すなわち、性能を下げる）ための条件であることを示す。「アップサイズ」は、仮想マシンをアップサイズ（すなわち、性能を上げる）ための条件であることを示す。条件名の項目には、条件の名称が登録される。条件内容の項目には、条件の具体的な内容が登録される。処理区分の項目には、該当の条件に応じた処理区分が登録される。処理区分には、「切替準備」および「切替実行」がある。「切替準備」は、退避状態のＶＭデータをＶＭホストのＲＡＭにロードし、一時停止状態（Ｓｔｏｐｐｅｄ）とすることを示す。「切替実行」は、一時停止状態の仮想マシンにＣＰＵを割り当てて起動させ、既存の仮想マシンから起動後の仮想マシンへ、サービス提供主体を切り替えることを示す。
【００７８】
条件表１５１によれば、条件Ｄ１，Ｄ２，Ｕ１，Ｕ２がある。
「条件Ｄ１」は、仮想マシンの「ＣＰＵ使用率２０％未満が１０分以上継続」した場合に、「ダウンサイズ」の「切替準備」の命令をＶＭホストに送信することを示す。
【００７９】
「条件Ｄ２」は、仮想マシンの「ＣＰＵ使用率１０％未満が３０分以上継続」した場合に、「ダウンサイズ」の「切替実行」の命令をＶＭホストに送信することを示す。例えば、「条件Ｄ２」の条件内容は、「条件Ｄ１」が充足されて「切替準備」が行われた直後の時点を基準に判定される。
【００８０】
「条件Ｕ１」は、仮想マシンの「ＣＰＵ使用率５０％超過が１０分以上継続」した場合に、「アップサイズ」の「切替準備」の命令をＶＭホストに送信することを示す。ただし、後述するように、条件Ｕ１における「ＣＰＵ使用率５０％」というＣＰＵ使用率の閾値は、初期値であり、仮想マシンの負荷状況に応じて可変である。
【００８１】
「条件Ｕ２」は、仮想マシンの「ＣＰＵ使用率９０％超過が３０分以上継続」した場合に、「アップサイズ」の「切替実行」の命令をＶＭホストに送信することを示す。例えば、「条件Ｕ２」の条件内容は、「条件Ｕ１」が充足されて「切替準備」が行われた直後の時点を基準に判定される。
【００８２】
図８は、管理テーブルの例を示す図である。
管理テーブル１２１は、記憶部１２０に格納される。管理テーブル１２１は、ＶＭ名、状態、種類、条件Ｄ１充足、条件Ｄ２充足、条件Ｕ１−ＣＰＵ使用率閾値、条件Ｕ１充足、条件Ｕ２充足、性能および状態更新日時の項目を含む。
【００８３】
ＶＭ名の項目には、仮想マシンの識別名が登録される。状態の項目には、該当の仮想マシンの状態が登録される。種類の項目には、仮想マシンの種類が登録される。仮想マシンの種類には２種類ある。１つ目の種類は、稼働中の仮想マシンであることを示す「稼働中ＶＭ」である。２つ目の種類は、稼働中の仮想マシンに対する切り替え先の候補の仮想マシンであることを示す「切替先ＶＭ」である。例えば、稼働中（切り替え元）の仮想マシンと、切り替え先の候補の仮想マシンとは、ＶＭ名によって対応付けられる。一例では、ＶＭ名に含まれるハイフン記号「−」の左側の部分（例えば、「ＶＭ１−Ｍ」などの「ＶＭ１」の部分）が共通する仮想マシンが、切り替え元および切り替え先の候補の関係にある。なお、以下の説明では、稼働中（切り替え元）の仮想マシンを「切替元ＶＭ」と称することがある。また、切り替え先の候補の仮想マシンを「切替先ＶＭ」と称することがある。
【００８４】
条件Ｄ１充足の項目には、条件Ｄ１が充足されたか否かを示すフラグが登録される。条件Ｄ２充足の項目には、条件Ｄ２が充足されたか否かを示すフラグが登録される。条件Ｕ１−ＣＰＵ使用率閾値の項目には、条件Ｕ１におけるＣＰＵ使用率閾値の、該当の仮想マシンに対する現在の設定値が登録される。条件Ｕ１充足の項目には、条件Ｕ１が充足されたか否かを示すフラグが登録される。条件Ｕ２充足の項目には、条件Ｕ２が充足されたか否かを示すフラグが登録される。性能の項目には、該当の仮想マシンの性能を示す情報が登録される。図８の例では、所定の性能を「Ｍ」と表し、性能「Ｍ」で示される性能よりも低い性能を「Ｓ」と表し、性能「Ｍ」で示される性能よりも高い性能を「Ｌ」と表している。状態更新日時の項目には、該当の仮想マシンについて、状態を更新した最終の日時が登録される。
【００８５】
なお、状態「Ａｃｔｉｖｅ」（種類「稼働中ＶＭ」）以外の仮想マシンについては、条件Ｄ１充足、条件Ｄ２充足、条件Ｕ１−ＣＰＵ使用率閾値、条件Ｕ１充足、条件Ｕ２充足の項目は、「Ｎｕｌｌ」となる。状態「Ａｃｔｉｖｅ」の仮想マシンの条件Ｄ１充足、条件Ｄ２充足、条件Ｕ１充足、条件Ｕ２充足の項目の初期値は、「Ｆａｌｓｅ」である。状態「Ａｃｔｉｖｅ」の仮想マシンの条件Ｕ１−ＣＰＵ使用率閾値の項目の初期値は、「５０％」である。
【００８６】
例えば、管理テーブル１２１には、ＶＭ名が「ＶＭ１−Ｍ」、状態が「Ａｃｔｉｖｅ」、種類が「稼働中ＶＭ」、条件Ｄ１充足が「Ｆａｌｓｅ」、条件Ｄ２充足が「Ｆａｌｓｅ」、条件Ｕ１−ＣＰＵ使用率閾値が「５０％」、条件Ｕ１充足が「Ｔｒｕｅ」、条件Ｕ２充足が「Ｆａｌｓｅ」、性能が「Ｍ」、状態更新日時が「２０１８−０６−０２  １４：３０」というレコードが登録されている。このレコードは、仮想マシン２６２が稼働状態（Ａｃｔｉｖｅ）であり、性能が「Ｍ」であること、最終の状態更新日時が２０１８年６月２日１４時３０分であることを示す。また、仮想マシン２６２に対して、条件Ｄ１，Ｄ２が充足されていないこと、条件Ｕ１のＣＰＵ使用率閾値が５０％であり、条件Ｕ１が充足されており、条件Ｕ２が充足されていないことを示す。
【００８７】
また、管理テーブル１２１には、ＶＭ名が「ＶＭ１−Ｓ」、状態が「Ｓｈｅｌｖｅｄ」、種類が「切替先ＶＭ」、性能が「Ｓ」、状態更新日時が「２０１８−０５−３１  １５：００」というレコードが登録されている。このレコードは、仮想マシン２６３が退避状態（Ｓｈｅｌｖｅｄ）で、仮想マシン２６２の切り替え先の候補であること、性能が「Ｓ」であり、最終の状態更新日が２０１８年５月３１日１５時００分であることを示す。
【００８８】
また、管理テーブル１２１には、ＶＭ名が「ＶＭ１−Ｌ」、状態が「Ｓｈｅｌｖｅｄ」、種類が「切替先ＶＭ」、性能が「Ｌ」、状態更新日時が「２０１８−０６−０１  １５：３０」というレコードが登録されている。このレコードは、仮想マシン２６１が退避状態（Ｓｈｅｌｖｅｄ）で、仮想マシン２６２の切り替え先の候補であること、性能が「Ｌ」であり、最終の状態更新日が２０１８年６月１日１５時３０分であることを示す。
【００８９】
管理テーブル１２１では、仮想マシン２６２と、仮想マシン２６２の切り替え先の候補である仮想マシン２６１，２６３が登録されている例を示したが、他の仮想マシンが存在する場合も管理テーブル１２１と同様のレコードが登録される。
【００９０】
また、管理サーバ１００は、ＶＭ名に対して、当該ＶＭ名の仮想マシンが配備されているＶＭホストを示す情報を保持しており、ＶＭ名に基づいて、当該ＶＭ名の仮想マシンが配備されているＶＭホストを特定することができる。また、管理サーバ１００は、ＶＭ名に対して、当該ＶＭ名に対応するＶＭデータの格納場所を示すパスを保持し、ＶＭ名に基づいて、準備状態（一時停止状態）とする仮想マシンのＶＭデータを、ＶＭホストに対して指定してもよい。
【００９１】
次に、管理サーバ１００の命令に基づく、ＶＭホスト２００による仮想マシンの切り替え例について説明する。ＶＭホスト２００に着目して説明するが、他のＶＭホストについても同様の制御である。まず、仮想マシンのダウンサイズを行う切り替え例を説明する。
【００９２】
図９は、ダウンサイズの準備例を示す図である。
ＶＭホスト２００では、仮想マシン２６１，２６２，２６３が配備されている。仮想マシン２６２は、稼働状態（Ａｃｔｉｖｅ）である。仮想マシン２６１，２６３は、退避状態（Ｓｈｅｌｖｅｄ）である。
【００９３】
ＶＭ切り替え処理部１５０は、負荷計算部１４０により計算される仮想マシン２６２の負荷を定期的に監視する。
ＶＭ切り替え処理部１５０は、仮想マシン２６２に対して条件Ｄ１が充足されたことを検出する。すると、ＶＭ切り替え処理部１５０は、仮想マシン２６３を、退避状態（Ｓｈｅｌｖｅｄ）から、一時停止状態（Ｓｔｏｐｐｅｄ）に変更するＶＭ状態変更命令をＶＭホスト２００に送信する。
【００９４】
ＶＭ切り替え実行部２３０は、ＶＭ状態変更命令を受け付けると、ＶＭ状態変更命令に基づいて、仮想マシン２６３のＶＭデータを、ＶＭホスト２００のＲＡＭにロードし、仮想マシン２６３を一時停止状態（Ｓｔｏｐｐｅｄ）に変更する。ＶＭ状態通知部２４０は、仮想マシン２６３が一時停止状態に変更されたことをＶＭ状態管理部１６０に通知する。ＶＭ状態管理部１６０は、当該通知に基づいて、仮想マシン２６３が一時停止状態になったことを管理テーブル１２１に登録する。なお、状態の更新とともに、状態更新日時も更新される（以下、同様）。こうして、ダウンサイズの準備（切替準備）が完了する。
【００９５】
ＶＭ切り替え処理部１５０は、仮想マシン２６２に対して条件Ｄ１が充足されたことを管理テーブル１２１に登録し、引き続き、仮想マシン２６２の負荷を監視して、条件Ｄ２に基づく判定を行う。
【００９６】
図１０は、ダウンサイズの中止例および実行例を示す図である。
図１０（Ａ）は、ダウンサイズの中止例を示す。ＶＭ切り替え処理部１５０は、仮想マシン２６２に対し、条件Ｄ１が充足された後、条件Ｄ２が充足されない場合（条件Ｄ１の充足後の３０分間継続してＣＰＵ使用率が１０％未満にならなかった場合）、ダウンサイズを中止すると決定する。この場合、ＶＭ切り替え処理部１５０は、仮想マシン２６３を、一時停止状態（Ｓｔｏｐｐｅｄ）から、退避状態（Ｓｈｅｌｖｅｄ）に変更するＶＭ状態変更命令をＶＭホスト２００に送信する。
【００９７】
ＶＭ切り替え実行部２３０は、ＶＭ状態変更命令を受け付けると、ＶＭ状態変更命令に基づいて、仮想マシン２６３のＶＭデータを、ＨＤＤ２０３または外部ストレージに退避させ、ＶＭホスト２００のＲＡＭから削除する。これにより、仮想マシン２６３が一時停止状態（Ｓｔｏｐｐｅｄ）から、退避状態（Ｓｈｅｌｖｅｄ）に変更される。ＶＭ状態通知部２４０は、仮想マシン２６３が退避状態に変更されたことをＶＭ状態管理部１６０に通知する。ＶＭ状態管理部１６０は、当該通知に基づいて、仮想マシン２６３が退避状態になったことを管理テーブル１２１に登録する。こうして、ダウンサイズが中止される。
【００９８】
図１０（Ｂ）は、ダウンサイズの実行例を示す。ＶＭ切り替え処理部１５０は、仮想マシン２６２に対し、条件Ｄ１が充足された後、条件Ｄ２が充足されたことを検出すると、ダウンサイズを実行すると決定する。この場合、ＶＭ切り替え処理部１５０は、仮想マシン２６３を、一時停止状態（Ｓｔｏｐｐｅｄ）から、稼働状態（Ａｃｔｉｖｅ）に変更し、仮想マシン２６３に切り替えるＶＭ切り替え命令をＶＭホスト２００に送信する。
【００９９】
ＶＭ切り替え実行部２３０は、ＶＭ切り替え命令を受け付けると、ＶＭ切り替え命令に基づいて、仮想マシン２６３を、一時停止状態（Ｓｔｏｐｐｅｄ）から稼働状態（Ａｃｔｉｖｅ）に変更する。すなわち、ＶＭ切り替え実行部２３０は、仮想マシン２６３にＣＰＵを割り当て、ＶＭホスト２００のＲＡＭにロード済のＶＭデータから、仮想マシン２６３を起動する。そして、ＶＭ切り替え実行部２３０は、負荷分散部２８０を制御して、仮想マシン２６２に振り分けられていたリクエストを、仮想マシン２６３に振り分けるようにする。
【０１００】
また、ＶＭ切り替え実行部２３０は、仮想マシン２６２を、稼働状態（Ａｃｔｉｖｅ）から一時停止状態（Ｓｔｏｐｐｅｄ）に変更する。ＶＭ状態通知部２４０は、仮想マシン２６３が稼働状態に変更されたこと、および、仮想マシン２６２が一時停止状態に変更されたことをＶＭ状態管理部１６０に通知する。ＶＭ状態管理部１６０は、当該通知に基づいて、仮想マシン２６３が稼働状態になったこと、および、仮想マシン２６２が一時停止状態になったことを、管理テーブル１２１に登録する。
【０１０１】
更に、ＶＭ配備部１３０は、仮想マシン２６３よりも低い性能の仮想マシン２６４を退避状態で配備するＶＭ配備命令、および、仮想マシン２６１を削除するＶＭ削除命令をＶＭホスト２００に送信する。
【０１０２】
ＶＭ配備実行部２１０は、当該ＶＭ配備命令およびＶＭ削除命令を受け付けると、これらの命令に基づいて、仮想マシン２６１を削除する（仮想マシン２６１のＶＭデータをＨＤＤ２０３または外部ストレージから削除する）。また、ＶＭ配備実行部２１０は、仮想マシン２６４を退避状態（Ｓｈｅｌｖｅｄ）で配備する。例えば、仮想マシン２６４のＶＭ名は「ＶＭ１−ＳＳ」である。
【０１０３】
ＶＭ状態通知部２４０は、仮想マシン２６１が削除されたこと、および、仮想マシン２６４が退避状態で配備されたことをＶＭ状態管理部１６０に通知する。ＶＭ状態管理部１６０は、当該通知に基づいて、仮想マシン２６１のレコードを管理テーブル１２１から削除し、仮想マシン２６４に関するレコードを管理テーブル１２１に追加する。
【０１０４】
次に、仮想マシンのアップサイズを行う切り替え例を説明する。
図１１は、アップサイズの準備例を示す図である。
ＶＭホスト２００では、仮想マシン２６１，２６２，２６３が配備されている。仮想マシン２６２は、稼働状態（Ａｃｔｉｖｅ）である。仮想マシン２６１，２６３は、退避状態（Ｓｈｅｌｖｅｄ）である。
【０１０５】
ＶＭ切り替え処理部１５０は、負荷計算部１４０により計算される仮想マシン２６２の負荷を定期的に監視する。
ＶＭ切り替え処理部１５０は、仮想マシン２６２に対して条件Ｕ１が充足されたことを検出する。すると、ＶＭ切り替え処理部１５０は、仮想マシン２６１を、退避状態（Ｓｈｅｌｖｅｄ）から、一時停止状態（Ｓｔｏｐｐｅｄ）に変更するＶＭ状態変更命令をＶＭホスト２００に送信する。
【０１０６】
ＶＭ切り替え実行部２３０は、ＶＭ状態変更命令を受け付けると、ＶＭ状態変更命令に基づいて、仮想マシン２６１のＶＭデータを、ＶＭホスト２００のＲＡＭにロードし、仮想マシン２６１を一時停止状態（Ｓｔｏｐｐｅｄ）に変更する。ＶＭ状態通知部２４０は、仮想マシン２６１が一時停止状態に変更されたことをＶＭ状態管理部１６０に通知する。ＶＭ状態管理部１６０は、当該通知に基づいて、仮想マシン２６１が一時停止状態になったことを管理テーブル１２１に登録する。こうして、アップサイズの準備（切替準備）が完了する。
【０１０７】
ＶＭ切り替え処理部１５０は、仮想マシン２６２に対して条件Ｕ１が充足されたことを管理テーブル１２１に登録し、引き続き、仮想マシン２６２の負荷を監視して、条件Ｕ２に基づく判定を行う。
【０１０８】
図１２は、アップサイズの中止例および実行例を示す図である。
図１２（Ａ）は、アップサイズの中止例を示す。ＶＭ切り替え処理部１５０は、仮想マシン２６２に対し、条件Ｕ１が充足された後、条件Ｕ２が充足されない場合（条件Ｕ１の充足後の３０分間継続してＣＰＵ使用率が９０％を超過しなかった場合）、アップサイズを中止すると決定する。この場合、ＶＭ切り替え処理部１５０は、仮想マシン２６１を、一時停止状態（Ｓｔｏｐｐｅｄ）から、退避状態（Ｓｈｅｌｖｅｄ）に変更するＶＭ状態変更命令をＶＭホスト２００に送信する。
【０１０９】
ＶＭ配備実行部２１０は、ＶＭ状態変更命令を受け付けると、ＶＭ状態変更命令に基づいて、仮想マシン２６１のＶＭデータを、ＨＤＤ２０３または外部ストレージに退避させ、ＶＭホスト２００のＲＡＭから削除する。これにより、仮想マシン２６１が一時停止状態（Ｓｔｏｐｐｅｄ）から、退避状態（Ｓｈｅｌｖｅｄ）に変更される。ＶＭ状態通知部２４０は、仮想マシン２６１が退避状態に変更されたことをＶＭ状態管理部１６０に通知する。ＶＭ状態管理部１６０は、当該通知に基づいて、仮想マシン２６１が退避状態になったことを管理テーブル１２１に登録する。こうして、アップサイズが中止される。
【０１１０】
なお、この場合、ＶＭ切り替え処理部１５０は、仮想マシン２６２に対して、条件Ｕ１のＣＰＵ使用率閾値を、所定量（例えば、１０％程度）だけ増加させ、増加後のＣＰＵ使用率閾値を管理テーブル１２１に登録する。
【０１１１】
図１２（Ｂ）は、アップサイズの実行例を示す。ＶＭ切り替え処理部１５０は、仮想マシン２６２に対し、条件Ｕ１が充足された後、条件Ｕ２が充足されたことを検出すると、アップサイズを実行すると決定する。この場合、ＶＭ切り替え処理部１５０は、仮想マシン２６１を、一時停止状態（Ｓｔｏｐｐｅｄ）から、稼働状態（Ａｃｔｉｖｅ）に変更し、仮想マシン２６１に切り替えるＶＭ切り替え命令をＶＭホスト２００に送信する。
【０１１２】
ＶＭ切り替え実行部２３０は、ＶＭ切り替え命令を受け付けると、ＶＭ切り替え命令に基づいて、仮想マシン２６１を、一時停止状態（Ｓｔｏｐｐｅｄ）から稼働状態（Ａｃｔｉｖｅ）に変更する。すなわち、ＶＭ切り替え実行部２３０は、仮想マシン２６１にＣＰＵを割り当て、ＶＭホスト２００のＲＡＭにロード済のＶＭデータから、仮想マシン２６１を起動する。そして、ＶＭ切り替え実行部２３０は、負荷分散部２８０を制御して、仮想マシン２６２に振り分けられていたリクエストを、仮想マシン２６１に振り分けるようにする。
【０１１３】
また、ＶＭ切り替え実行部２３０は、仮想マシン２６２を、稼働状態（Ａｃｔｉｖｅ）から一時停止状態（Ｓｔｏｐｐｅｄ）に変更する。ＶＭ状態通知部２４０は、仮想マシン２６１が稼働状態に変更されたこと、および、仮想マシン２６２が一時停止状態に変更されたことをＶＭ状態管理部１６０に通知する。ＶＭ状態管理部１６０は、当該通知に基づいて、仮想マシン２６１が稼働状態になったこと、および、仮想マシン２６２が一時停止状態になったことを、管理テーブル１２１に登録する。
【０１１４】
更に、ＶＭ配備部１３０は、仮想マシン２６１よりも高い性能の仮想マシン２６５を退避状態で配備するＶＭ配備命令および仮想マシン２６３を削除するＶＭ削除命令をＶＭホスト２００に送信する。
【０１１５】
ＶＭ配備実行部２１０は、ＶＭ配備命令およびＶＭ削除命令を受け付けると、これらの命令に基づいて、仮想マシン２６３を削除する（仮想マシン２６３のＶＭデータをＨＤＤ２０３または外部ストレージから削除する）。また、ＶＭ配備実行部２１０は、仮想マシン２６５を退避状態（Ｓｈｅｌｖｅｄ）で配備する。例えば、仮想マシン２６５のＶＭ名は「ＶＭ１−ＬＬ」である。
【０１１６】
ＶＭ状態通知部２４０は、仮想マシン２６３が削除されたこと、および、仮想マシン２６５が退避状態で配備されたことをＶＭ状態管理部１６０に通知する。ＶＭ状態管理部１６０は、当該通知に基づいて、仮想マシン２６３のレコードを管理テーブル１２１から削除し、仮想マシン２６５に関するレコードを管理テーブル１２１に追加する。
【０１１７】
次に、管理サーバ１００およびＶＭホスト２００，３００，…による処理手順を説明する。以下では、ＶＭホスト２００に着目して説明するが、他のＶＭホストについても同様の手順である。
【０１１８】
図１３は、管理サーバの処理例を示すフローチャートである。
（Ｓ１）ＶＭ配備部１３０は、ユーザによる仮想マシン２６２の配備指示を受け付ける。すると、ＶＭ配備部１３０は、仮想マシン２６２をＡｃｔｉｖｅの状態で配備し、仮想マシンよりも１段階上の性能の仮想マシン２６１と１段階下の性能の仮想マシン２６２とをＳｈｅｌｖｅｄの状態で配備するＶＭ配備命令をＶＭホスト２００に送信する。ＶＭホスト２００は、ＶＭ配備命令に基づいて、仮想マシン２６２をＡｃｔｉｖｅの状態で配備し、仮想マシン２６１，２６３をＳｈｅｌｖｅｄの状態で配備する。ＶＭ状態管理部１６０は、当該配備が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１に、仮想マシン２６１，２６２，２６３のレコードを追加する。
【０１１９】
（Ｓ２）負荷計算部１４０は、ＶＭホスト２００から仮想マシン２６２の負荷情報を定期的に受信し、負荷情報に基づいて仮想マシン２６２の負荷を計算する。ＶＭ切り替え処理部１５０は、負荷計算部１４０により計算された仮想マシン２６２の負荷状況を監視する。
【０１２０】
（Ｓ３）ＶＭ切り替え処理部１５０は、仮想マシン２６２の負荷状況に基づいて、ＶＭ切り替え制御を行う。ＶＭ切り替え制御の詳細は、後述される。
（Ｓ４）ＶＭ削除部１７０は、一定期間ＶＭ切り替えが行われない場合に、切替先ＶＭを削除する不要ＶＭ削除を行う。不要ＶＭ削除の詳細は後述される。そして、処理が終了する。
【０１２１】
ここで、管理サーバ１００は、ステップＳ２，Ｓ３の処理と、ステップＳ４の処理とを並行して実行し得る。
次に、管理サーバ１００およびＶＭホスト２００による仮想マシンのＶＭ切り替え制御の手順を説明する。まず、ダウンサイズのＶＭ切り替え制御の手順を説明する。
【０１２２】
図１４は、ＶＭ切り替え制御（ダウンサイズ）の例を示すフローチャートである。
ＶＭ切り替え制御（ダウンサイズ）は、ステップＳ３（ただし、ダウンサイズを行う場合）に相当する。
【０１２３】
ステップＳ１０の前の時点で、仮想マシン２６１，２６２，２６３がＶＭホスト２００に配備されており、仮想マシン２６２が稼働状態、仮想マシン２６１，２６３が退避状態であるとする。
【０１２４】
（Ｓ１０）負荷計算部１４０は、ＶＭホスト２００から仮想マシン２６２の負荷状態を１分毎に取得する。ただし、負荷状態を取得する周期について、１分は例示であり、他の周期でもよい。負荷計算部１４０は、仮想マシン２６２の負荷を計算し、ＶＭ切り替え処理部１５０に提供する。
【０１２５】
（Ｓ１１）ＶＭ切り替え処理部１５０は、仮想マシン２６２の負荷が条件Ｄ１を充足しているか否かを判定する。仮想マシン２６２の負荷が条件Ｄ１を充足している場合、ステップＳ１４に処理が進む。仮想マシン２６２の負荷が条件Ｄ１を充足していない場合、ステップＳ１２に処理が進む。
【０１２６】
なお、ＶＭ切り替え処理部１５０は、仮想マシン２６２に対し、管理テーブル１２１の条件Ｄ１充足の項目のフラグにより、仮想マシン２６２の負荷に対する条件Ｄ１の充足状況を管理する。ＶＭ切り替え処理部１５０は、仮想マシン２６２の負荷が条件Ｄ１を充足していない状態から条件Ｄ１を充足している状態になったことを検出すると、仮想マシン２６２に対し、管理テーブル１２１の条件Ｄ１充足を、ＦａｌｓｅからＴｒｕｅに変更する。ＶＭ切り替え処理部１５０は、条件Ｄ１の充足後、仮想マシン２６２の負荷状況が、条件Ｄ１を満たさなくなった（ＣＰＵ使用率が条件Ｄ１の閾値を下回った）場合、管理テーブル１２１の条件Ｄ１充足を、ＴｒｕｅからＦａｌｓｅに変更する。
【０１２７】
（Ｓ１２）ＶＭ切り替え処理部１５０は、管理テーブル１２１を参照して、切替先ＶＭ（ここでは、仮想マシン２６３）の状態がＳｈｅｌｖｅｄであるか否かを判定する。切替先ＶＭの状態がＳｈｅｌｖｅｄである場合、ステップＳ１０に処理が進む。切替先ＶＭの状態がＳｈｅｌｖｅｄでない場合、ステップＳ１３に処理が進む。ここで、ステップＳ１２において、切替先ＶＭの状態がＳｈｅｌｖｅｄでない場合とは、切替先ＶＭの状態がＳｔｏｐｐｅｄである場合である。
【０１２８】
（Ｓ１３）ＶＭ切り替え処理部１５０は、切替先ＶＭをＳｔｏｐｐｅｄからＳｈｅｌｖｅｄに変更するＶＭ状態変更命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ状態変更命令に基づいて、仮想マシン２６３がＳｔｏｐｐｅｄからＳｈｅｌｖｅｄに変更される。また、ＶＭ状態管理部１６０は、当該変更が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１における仮想マシン２６３の状態をＳｈｅｌｖｅｄに変更し、状態更新日を更新する。そして、ステップＳ１０に処理が進む。
【０１２９】
（Ｓ１４）ＶＭ切り替え処理部１５０は、管理テーブル１２１を参照して、切替先ＶＭの状態がＳｔｏｐｐｅｄであるか否かを判定する。切替先ＶＭの状態がＳｔｏｐｐｅｄである場合、ステップＳ１６に処理が進む。切替先ＶＭの状態がＳｔｏｐｐｅｄでない場合、ステップＳ１５に処理が進む。ここで、ステップＳ１４において、切替先ＶＭの状態がＳｔｏｐｐｅｄでない場合とは、切替先ＶＭの状態がＳｈｅｌｖｅｄである場合である。
【０１３０】
（Ｓ１５）ＶＭ切り替え処理部１５０は、切替先ＶＭをＳｈｅｌｖｅｄからＳｔｏｐｐｅｄに変更するＶＭ状態変更命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ状態変更命令に基づいて、仮想マシン２６３がＳｈｅｌｖｅｄからＳｔｏｐｐｅｄに変更される。また、ＶＭ状態管理部１６０は、当該変更が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１における仮想マシン２６３の状態をＳｔｏｐｐｅｄに変更し、状態更新日を更新する。そして、ステップＳ１０に処理が進む。
【０１３１】
（Ｓ１６）ＶＭ切り替え処理部１５０は、仮想マシン２６２の負荷が条件Ｄ２を充足しているか否かを判定する。仮想マシン２６２の負荷が条件Ｄ２を充足している場合、ステップＳ１９に処理が進む。仮想マシン２６２の負荷が条件Ｄ２を充足していない場合、ステップＳ１７に処理が進む。
【０１３２】
なお、ＶＭ切り替え処理部１５０は、仮想マシン２６２に対し、管理テーブル１２１の条件Ｄ２充足の項目のフラグにより、仮想マシン２６２の負荷に対する条件Ｄ２の充足状況を管理する。ＶＭ切り替え処理部１５０は、仮想マシン２６２の負荷が条件Ｄ２を充足していない状態から条件Ｄ２を充足している状態になったことを検出すると、仮想マシン２６２に対し、管理テーブル１２１の条件Ｄ２充足を、ＦａｌｓｅからＴｒｕｅに変更する。
【０１３３】
（Ｓ１７）ＶＭ切り替え処理部１５０は、ステップＳ１５で切替先ＶＭをＳｔｏｐｐｅｄに変更した時点から所定時間、ＶＭ切り替えが未発生であるか否かを判定する。切替先ＶＭをＳｔｏｐｐｅｄに変更した時点から所定時間、ＶＭ切り替えが未発生である場合、ステップＳ１８に処理が進む。切替先ＶＭをＳｔｏｐｐｅｄに変更した時点から所定時間が経過していない場合は、ステップＳ１０に処理が進む。ここで、所定時間は、例えば、３０分（条件Ｄ２の監視時間以上の時間とする）である。
【０１３４】
（Ｓ１８）ＶＭ切り替え処理部１５０は、切替先ＶＭをＳｔｏｐｐｅｄからＳｈｅｌｖｅｄに変更するＶＭ状態変更命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ状態変更命令に基づいて、仮想マシン２６３がＳｔｏｐｐｅｄからＳｈｅｌｖｅｄに変更される。また、ＶＭ状態管理部１６０は、当該変更が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１における仮想マシン２６３の状態をＳｈｅｌｖｅｄに変更し、状態更新日を更新する。そして、ステップＳ１０に処理が進む。
【０１３５】
（Ｓ１９）ＶＭ切り替え処理部１５０は、ＶＭ切り替え（ダウンサイズ）を行う。具体的には、ＶＭ切り替え処理部１５０は、切替先ＶＭをＳｔｏｐｐｅｄからＡｃｔｉｖｅに変更し、現行のＶＭ（仮想マシン２６２）から切替先ＶＭ（仮想マシン２６３）に切り替えるＶＭ切り替え命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ切り替え命令に基づいて、仮想マシン２６３がＳｔｏｐｐｅｄからＡｃｔｉｖｅに変更される。そして、負荷分散部２８０により、クライアント５０からのリクエストの振り分け先が、仮想マシン２６２から仮想マシン２６３に切り替えられる。また、ＶＭ状態管理部１６０は、当該変更が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１における仮想マシン２６３の状態をＡｃｔｉｖｅに変更し、状態更新日を更新する。この後、負荷の監視対象の仮想マシンは、切り替え後の仮想マシンとなる。
【０１３６】
（Ｓ２０）ＶＭ切り替え処理部１５０は、ダウンサイズ後処理を実行する。ダウンサイズ後処理の詳細は後述される。そして、ステップＳ１０に処理が進む。
図１５は、ダウンサイズ後処理の例を示すフローチャートである。
【０１３７】
ダウンサイズ後処理は、ステップＳ２０に相当する。
（Ｓ３０）ＶＭ切り替え処理部１５０は、切替元ＶＭ（ここでは仮想マシン２６２）をＡｃｔｉｖｅからＳｔｏｐｐｅｄに変更するＶＭ状態変更命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ状態変更命令に基づいて、仮想マシン２６２がＡｃｔｉｖｅからＳｔｏｐｐｅｄに変更される。また、ＶＭ状態管理部１６０は、当該変更が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１における仮想マシン２６２の状態をＳｔｏｐｐｅｄに変更し、状態更新日を更新する。
【０１３８】
（Ｓ３１）ＶＭ配備部１３０は、切替先ＶＭ（ここでは仮想マシン２６３）の１段階下の性能の仮想マシン（仮想マシン２６４）を退避状態（Ｓｈｅｌｖｅｄ）で配備するＶＭ配備命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ配備命令に基づいて、仮想マシン２６４が退避状態で配備される。また、ＶＭ状態管理部１６０は、当該配備が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１に仮想マシン２６４のレコードを追加する。
【０１３９】
（Ｓ３２）ＶＭ配備部１３０は、切替元ＶＭの１段階上の性能の仮想マシン（ここでは仮想マシン２６１）を削除するＶＭ削除命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ削除命令に基づいて、仮想マシン２６１が削除される。また、ＶＭ状態管理部１６０は、当該削除が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１から仮想マシン２６１のレコードを削除する。
【０１４０】
次に、仮想マシン２６２から仮想マシン２６１へダウンサイズする場合のダウンサイズ後処理の具体例を説明する。
図１６は、ダウンサイズ後処理の具体例を示す図である。
【０１４１】
まず、管理サーバ１００のＶＭ切り替え制御により、クライアント５０からのリクエストの振り分け先が、仮想マシン２６２から仮想マシン２６３へ切り替えられる（ステップＴ１０）。このタイミングでは、仮想マシン２６１はＳｈｅｌｖｅｄである。仮想マシン２６２はＡｃｔｉｖｅである。仮想マシン２６３はＡｃｔｉｖｅである。
【０１４２】
次に、仮想マシン２６２がＳｔｏｐｐｅｄに変更される（ステップＴ１１）。仮想マシン２６３よりも１段階下の性能の仮想マシン２６４が配備される（ステップＴ１２）。仮想マシン２６１が削除される（ステップＴ１３）。その結果、稼働中の仮想マシン２６３に対して、１段階上の性能の仮想マシン２６２がＳｔｏｐｐｅｄで配備され、１段階下の性能の仮想マシン２６４がＳｈｅｌｖｅｄで配備された状態となる（ステップＴ１４）。
【０１４３】
ステップＴ１４の後、管理サーバ１００は、仮想マシン２６３に対して、負荷状況の監視を行い、仮想マシン２６２に対する手順と同様の手順により、ＶＭ切り替え制御を行う。なお、ＶＭ切り替え処理部１５０は、例えば、仮想マシン２６３をＡｃｔｉｖｅの状態にしてから所定時間（例えば、３０分）経過後に、切替元ＶＭである仮想マシン２６２をＳｈｅｌｖｅｄに変更する。これにより、ユーザへの課金を低減する。
【０１４４】
次に、アップサイズのＶＭ切り替え制御の手順を説明する。
図１７は、ＶＭ切り替え制御（アップサイズ）の例を示すフローチャートである。
ＶＭ切り替え制御（アップサイズ）は、ステップＳ３（ただし、アップサイズを行う場合）に相当する。
【０１４５】
ステップＳ４０の前の時点で、仮想マシン２６１，２６２，２６３がＶＭホスト２００に配備されており、仮想マシン２６２が稼働状態、仮想マシン２６１，２６３が退避状態であるとする。
【０１４６】
（Ｓ４０）負荷計算部１４０は、ＶＭホスト２００から仮想マシン２６２の負荷状態を１分毎に取得する。ただし、負荷状態を取得する周期について、１分は例示であり、他の周期でもよい。負荷計算部１４０は、仮想マシン２６２の負荷を計算し、ＶＭ切り替え処理部１５０に提供する。
【０１４７】
（Ｓ４１）ＶＭ切り替え処理部１５０は、仮想マシン２６２の負荷が条件Ｕ１を充足しているか否かを判定する。仮想マシン２６２の負荷が条件Ｕ１を充足している場合、ステップＳ４４に処理が進む。仮想マシン２６２の負荷が条件Ｕ１を充足していない場合、ステップＳ４２に処理が進む。
【０１４８】
なお、ＶＭ切り替え処理部１５０は、仮想マシン２６２に対し、管理テーブル１２１の条件Ｕ１充足の項目のフラグにより、仮想マシン２６２の負荷に対する条件Ｕ１の充足状況を管理する。ＶＭ切り替え処理部１５０は、仮想マシン２６２の負荷が条件Ｕ１を充足していない状態から条件Ｕ１を充足している状態になったことを検出すると、仮想マシン２６２に対し、管理テーブル１２１の条件Ｕ１充足を、ＦａｌｓｅからＴｒｕｅに変更する。ＶＭ切り替え処理部１５０は、条件Ｕ１の充足後、仮想マシン２６２の負荷状況が、条件Ｕ１を満たさなくなった（ＣＰＵ使用率が条件Ｕ１の閾値を下回った）場合、管理テーブル１２１の条件Ｕ１充足を、ＴｒｕｅからＦａｌｓｅに変更する。
【０１４９】
（Ｓ４２）ＶＭ切り替え処理部１５０は、管理テーブル１２１を参照して、切替先ＶＭ（ここでは、仮想マシン２６１）の状態がＳｈｅｌｖｅｄであるか否かを判定する。切替先ＶＭの状態がＳｈｅｌｖｅｄである場合、ステップＳ４０に処理が進む。切替先ＶＭの状態がＳｈｅｌｖｅｄでない場合、ステップＳ４３に処理が進む。ここで、ステップＳ４２において、切替先ＶＭの状態がＳｈｅｌｖｅｄでない場合とは、切替先ＶＭの状態がＳｔｏｐｐｅｄである場合である。
【０１５０】
（Ｓ４３）ＶＭ切り替え処理部１５０は、切替先ＶＭをＳｔｏｐｐｅｄからＳｈｅｌｖｅｄに変更するＶＭ状態変更命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ状態変更命令に基づいて、仮想マシン２６１がＳｔｏｐｐｅｄからＳｈｅｌｖｅｄに変更される。また、ＶＭ状態管理部１６０は、当該変更が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１における仮想マシン２６１の状態をＳｈｅｌｖｅｄに変更し、状態更新日を更新する。そして、ステップＳ４０に処理が進む。
【０１５１】
（Ｓ４４）ＶＭ切り替え処理部１５０は、管理テーブル１２１を参照して、切替先ＶＭの状態がＳｔｏｐｐｅｄであるか否かを判定する。切替先ＶＭの状態がＳｔｏｐｐｅｄである場合、ステップＳ４６に処理が進む。切替先ＶＭの状態がＳｔｏｐｐｅｄでない場合、ステップＳ４５に処理が進む。ここで、ステップＳ４４において、切替先ＶＭの状態がＳｔｏｐｐｅｄでない場合とは、切替先ＶＭの状態がＳｈｅｌｖｅｄである場合である。
【０１５２】
（Ｓ４５）ＶＭ切り替え処理部１５０は、切替先ＶＭをＳｈｅｌｖｅｄからＳｔｏｐｐｅｄに変更するＶＭ状態変更命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ状態変更命令に基づいて、仮想マシン２６１がＳｈｅｌｖｅｄからＳｔｏｐｐｅｄに変更される。また、ＶＭ状態管理部１６０は、当該変更が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１における仮想マシン２６１の状態をＳｔｏｐｐｅｄに変更し、状態更新日を更新する。そして、ステップＳ４０に処理が進む。
【０１５３】
（Ｓ４６）ＶＭ切り替え処理部１５０は、仮想マシン２６２の負荷が条件Ｕ２を充足しているか否かを判定する。仮想マシン２６２の負荷が条件Ｕ２を充足している場合、ステップＳ５０に処理が進む。仮想マシン２６２の負荷が条件Ｕ２を充足していない場合、ステップＳ４７に処理が進む。
【０１５４】
なお、ＶＭ切り替え処理部１５０は、仮想マシン２６２に対し、管理テーブル１２１の条件Ｕ２充足の項目のフラグにより、仮想マシン２６２の負荷に対する条件Ｕ２の充足状況を管理する。ＶＭ切り替え処理部１５０は、仮想マシン２６２の負荷が条件Ｕ２を充足していない状態から条件Ｕ２を充足している状態になったことを検出すると、仮想マシン２６２に対し、管理テーブル１２１の条件Ｕ２充足を、ＦａｌｓｅからＴｒｕｅに変更する。
【０１５５】
（Ｓ４７）ＶＭ切り替え処理部１５０は、ステップＳ４５で切替先ＶＭをＳｔｏｐｐｅｄに変更した時点から所定時間、ＶＭ切り替えが未発生であるか否かを判定する。切替先ＶＭをＳｔｏｐｐｅｄに変更した時点から所定時間、ＶＭ切り替えが未発生である場合、ステップＳ４８に処理が進む。切替先ＶＭをＳｔｏｐｐｅｄに変更した時点から所定時間が経過していない場合は、ステップＳ４０に処理が進む。ここで、所定時間は、例えば、３０分（条件Ｕ２の監視時間以上の時間とする）である。
【０１５６】
（Ｓ４８）ＶＭ切り替え処理部１５０は、切替先ＶＭをＳｔｏｐｐｅｄからＳｈｅｌｖｅｄに変更するＶＭ状態変更命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ状態変更命令に基づいて、仮想マシン２６１がＳｔｏｐｐｅｄからＳｈｅｌｖｅｄに変更される。また、ＶＭ状態管理部１６０は、当該変更が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１における仮想マシン２６１の状態をＳｈｅｌｖｅｄに変更し、状態更新日を更新する。
【０１５７】
（Ｓ４９）ＶＭ状態管理部１６０は、管理テーブル１２１における条件Ｕ１−ＣＰＵ使用率閾値を１０％増加させる。例えば、ＶＭ状態管理部１６０は、条件Ｕ１−ＣＰＵ使用率閾値に１０％を加算してもよいし、条件Ｕ１−ＣＰＵ使用率閾値に１．１を乗じた値としてもよい。なお、条件Ｕ１−ＣＰＵ使用率閾値の増加量について、１０％は例示であり、他の増加量としてもよい。そして、ステップＳ４０に処理が進む。
【０１５８】
（Ｓ５０）ＶＭ切り替え処理部１５０は、ＶＭ切り替え（アップサイズ）を行う。具体的には、ＶＭ切り替え処理部１５０は、切替先ＶＭをＳｔｏｐｐｅｄからＡｃｔｉｖｅに変更し、現行のＶＭ（仮想マシン２６２）から切替先ＶＭ（仮想マシン２６１）に切り替えるＶＭ切り替え命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ切り替え命令に基づいて、仮想マシン２６１がＳｔｏｐｐｅｄからＡｃｔｉｖｅに変更される。そして、負荷分散部２８０により、クライアント５０からのリクエストの振り分け先が、仮想マシン２６２から仮想マシン２６１に切り替えられる。また、ＶＭ状態管理部１６０は、当該変更が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１における仮想マシン２６１の状態をＡｃｔｉｖｅに変更し、状態更新日を更新する。この後、負荷の監視対象の仮想マシンは、切り替え後の仮想マシンとなる。
【０１５９】
（Ｓ５１）ＶＭ切り替え処理部１５０は、アップサイズ後処理を実行する。アップサイズ後処理の詳細は後述される。そして、ステップＳ４０に処理が進む。
ここで、ステップＳ４９のように、条件Ｕ１−ＣＰＵ使用率閾値を増加させることで、切替先ＶＭが直ちにＳｔｏｐｐｅｄに移行されることを抑制する。これにより、リソース（ＲＡＭ２０２）の使用量を抑えられる。また、リソースの使用量を抑えることで、ユーザに対する課金額を抑えられる。
【０１６０】
図１８は、アップサイズ後処理の例を示すフローチャートである。
アップサイズ後処理は、ステップＳ５１に相当する。
（Ｓ６０）ＶＭ切り替え処理部１５０は、切替元ＶＭ（ここでは仮想マシン２６２）をＡｃｔｉｖｅからＳｔｏｐｐｅｄに変更するＶＭ状態変更命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ状態変更命令に基づいて、仮想マシン２６２がＡｃｔｉｖｅからＳｔｏｐｐｅｄに変更される。また、ＶＭ状態管理部１６０は、当該変更が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１における仮想マシン２６２の状態をＳｔｏｐｐｅｄに変更し、状態更新日を更新する。
【０１６１】
（Ｓ６１）ＶＭ配備部１３０は、切替先ＶＭ（ここでは仮想マシン２６１）の１段階上の性能の仮想マシン（仮想マシン２６５）を退避状態（Ｓｈｅｌｖｅｄ）で配備するＶＭ配備命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ配備命令に基づいて、仮想マシン２６５が退避状態で配備される。また、ＶＭ状態管理部１６０は、当該配備が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１に仮想マシン２６５のレコードを追加する。
【０１６２】
（Ｓ６２）ＶＭ配備部１３０は、切替元ＶＭの１段階下の性能の仮想マシン（ここでは仮想マシン２６３）を削除するＶＭ削除命令をＶＭホスト２００に送信する。ＶＭホスト２００では、ＶＭ削除命令に基づいて、仮想マシン２６３が削除される。また、ＶＭ状態管理部１６０は、当該削除が行われた旨の通知をＶＭホスト２００から受け付け、管理テーブル１２１から仮想マシン２６３のレコードを削除する。
【０１６３】
次に、仮想マシン２６２から仮想マシン２６３へアップサイズする場合のアップサイズ後処理の具体例を説明する。
図１９は、アップサイズ後処理の具体例を示す図である。
【０１６４】
まず、管理サーバ１００のＶＭ切り替え制御により、クライアント５０からのリクエストの振り分け先が、仮想マシン２６２から仮想マシン２６１へ切り替えられる（ステップＴ２０）。このタイミングでは、仮想マシン２６１はＡｃｔｉｖｅである。仮想マシン２６２はＡｃｔｉｖｅである。仮想マシン２６３はＳｈｅｌｖｅｄである。
【０１６５】
次に、仮想マシン２６２がＳｔｏｐｐｅｄに変更される（ステップＴ２１）。仮想マシン２６１よりも１段階上の性能の仮想マシン２６５が配備される（ステップＴ２２）。仮想マシン２６３が削除される（ステップＴ２３）。その結果、稼働中の仮想マシン２６１に対して、１段階下の性能の仮想マシン２６２がＳｔｏｐｐｅｄで配備され、１段階上の性能の仮想マシン２６５がＳｈｅｌｖｅｄで配備された状態となる（ステップＴ２４）。
【０１６６】
ステップＴ２４の後、管理サーバ１００は、仮想マシン２６１に対して、負荷状況の監視を行い、仮想マシン２６２に対する手順と同様の手順により、ＶＭ切り替え制御を行う。なお、ＶＭ切り替え処理部１５０は、例えば、仮想マシン２６１をＡｃｔｉｖｅの状態にしてから所定時間（例えば、３０分）経過後に、切替元ＶＭである仮想マシン２６２をＳｈｅｌｖｅｄに変更する。これにより、ユーザへの課金を低減する。
【０１６７】
次に、管理サーバ１００およびＶＭホスト２００による不要ＶＭ削除の手順を説明する。
図２０は、不要ＶＭ削除の例を示すフローチャートである。
【０１６８】
不要ＶＭ削除は、ステップＳ４に相当する。
（Ｓ７０）ＶＭ削除部１７０は、管理テーブル１２１を参照して、切替先ＶＭの状態更新日を１分間隔で監視する。ここで、監視の周期について、１分は例示であり、他の周期でもよい。
【０１６９】
（Ｓ７１）ＶＭ削除部１７０は、切替先ＶＭに対して記録されている状態更新日から１週間が経過しているか否かを判定する。切替先ＶＭに対して記録されている状態更新日から１週間が経過している場合、ステップＳ７２に処理が進む。切替先ＶＭに対して記録されている状態更新日から１週間が経過していない場合、ステップＳ７０に処理が進む。ここで、上記の例では、稼働中ＶＭに対して切替先ＶＭは２つある。ＶＭ削除部１７０は、例えば切替先ＶＭ毎に、ステップＳ７１の判定を行う。
【０１７０】
（Ｓ７２）ＶＭ削除部１７０は、状態更新日から１週間が経過している切替先ＶＭを削除する。具体的には、ＶＭ削除部１７０は、当該切替先ＶＭを削除するＶＭ削除命令をＶＭホスト２００に送信する。ＶＭ削除実行部２５０は、ＶＭ削除命令に基づいて、該当の切替先ＶＭのインスタンスを削除する。これにより、Ｓｈｅｌｖｅｄ状態となっていた該当の切替先ＶＭのＶＭデータは、ＨＤＤ２０３または外部ストレージから削除される。ＶＭ状態管理部１６０は、当該削除が行われた旨の通知をＶＭホスト２００から受け付け、削除された切替先ＶＭのレコードを管理テーブル１２１から削除する。そして、ステップＳ７０に処理が進む。
【０１７１】
このように、管理サーバ１００は、切替先ＶＭのうち、比較的長い期間、状態更新が行われていない切替先ＶＭのＶＭデータをＨＤＤ２０３または外部ストレージから削除する。当該切替先ＶＭへの切り替えが今後も行われない可能性が高いと推定されるからである。当該切替先ＶＭのＶＭデータをＨＤＤ２０３または外部ストレージから削除することで、リソース使用量を一層抑えられる。また、リソース使用量を抑えることで、ＨＤＤ２０３や外部ストレージなど補助記憶装置の容量の使用に対してユーザに課金される場合に、ユーザに対する課金額を抑えられる。
【０１７２】
以上で説明したように、管理サーバ１００によれば、リソースの使用量を抑えて、仮想マシンの迅速な切り替えを可能にする。具体的には、管理サーバ１００は、通常時は仮想マシン２６２を稼働させる。管理サーバ１００は、仮想マシン２６２の負荷が第１の閾値よりも高まると、仮想マシン２６２よりも高性能な仮想マシン２６１のＶＭデータをＶＭホスト２００のＲＡＭにロードさせて準備状態とさせる。このため、通常時において、仮想マシン２６１をＲＡＭにロードさせずに済み、ＲＡＭの使用量を抑えられる。その結果、ユーザに対するＲＡＭの利用に伴う課金を抑えられる。
【０１７３】
なお、ＨＤＤ２０３や外部ストレージなど補助記憶装置の容量の使用に対してユーザに対する課金が発生することもある。ただし、補助記憶装置の容量の使用に対する課金額は、ＲＡＭの容量の使用に対する課金額に比べて安価であり、仮想マシンのインスタンスを補助記憶装置に退避させている状態でのユーザへの課金額を低く抑えることができる。
【０１７４】
更に、仮想マシン２６１が準備状態（一時停止状態）となっている間は、仮想マシン２６１が起動しておらず、ＶＭホスト２００のＣＰＵを使用していない。したがって、仮想マシン２６１の準備状態では、ユーザに対するＣＰＵの利用に伴う課金を抑えられる。
【０１７５】
しかも、仮想マシン２６１のＶＭデータは、ＶＭホスト２００のＲＡＭに既にロードされている。このため、仮想マシン２６２の負荷が、第１の閾値よりも高い第２の閾値を超えた場合に、ＶＭホスト２００は、仮想マシン２６１を迅速に起動して、仮想マシン２６２から仮想マシン２６１への切り替えを行うことができる。
【０１７６】
こうして、リソースの使用量を抑えて、仮想マシンの迅速な切り替えを可能にすることができる。また、リソースの使用量を抑えることで、ユーザに対する課金額を抑えることができる。
【０１７７】
なお、切り替え後には、ＶＭホスト２００は、仮想マシン２６２を停止させ、例えば、所定時間の経過後に仮想マシン２６２のＶＭデータをＶＭホスト２００のＲＡＭから補助記憶装置などに退避させてもよい。これにより、仮想マシン２６２によるリソースの使用量を一層抑えられる。
【０１７８】
更に、管理サーバ１００は、仮想マシン２６２の負荷が第１の閾値よりも低い第３の閾値より低下すると、仮想マシン２６３のＶＭデータをＶＭホスト２００のＲＡＭにロードさせて準備状態とさせる。そして、管理サーバ１００は、仮想マシン２６２の負荷が第３の閾値よりも低い第４の閾値より低下した場合に、ＶＭホスト２００により、仮想マシン２６２を低性能の仮想マシン２６３に切り替えさせる。これにより、リソースの使用量を一層抑えられる。リソースの使用量を抑えることでユーザに対する課金額を抑えることができる。また、仮想マシン２６３のＶＭデータは、ＶＭホスト２００のＲＡＭに既にロードされている。このため、仮想マシン２６２の負荷が、第４の閾値よりも低下した場合に、ＶＭホスト２００は、仮想マシン２６３を迅速に起動して、仮想マシン２６２から仮想マシン２６３への切り替えを行うことができる。
【０１７９】
なお、第１の実施の形態の情報処理は、処理部１２にプログラムを実行させることで実現できる。また、第２の実施の形態の情報処理は、ＣＰＵ１０１にプログラムを実行させることで実現できる。プログラムは、コンピュータ読み取り可能な記録媒体１１３に記録できる。
【０１８０】
例えば、プログラムを記録した記録媒体１１３を配布することで、プログラムを流通させることができる。また、プログラムを他のコンピュータに格納しておき、ネットワーク経由でプログラムを配布してもよい。コンピュータは、例えば、記録媒体１１３に記録されたプログラムまたは他のコンピュータから受信したプログラムを、ＲＡＭ１０２やＨＤＤ１０３などの記憶装置に格納し（インストールし）、当該記憶装置からプログラムを読み込んで実行してもよい。
【符号の説明】
【０１８１】
１  情報処理システム
１０  情報処理装置
１１  記憶部
１２  処理部
２０  物理マシン
２１  ハードウェア
２１ａ  メモリ
２１ｂ  プロセッサ
２２  ハイパーバイザ
２３，２４  仮想マシン
３０  記憶装置
３１，３２，３３  ＶＭデータ
４０  ネットワーク
【図１】
2020064567.tif 000003
【図２】
2020064567.tif 000004
【図３】
2020064567.tif 000005
【図４】
2020064567.tif 000006
【図５】
2020064567.tif 000007
【図６】
2020064567.tif 000008
【図７】
2020064567.tif 000009
【図８】
2020064567.tif 000010
【図９】
2020064567.tif 000011
【図１０】
2020064567.tif 000012
【図１１】
2020064567.tif 000013
【図１２】
2020064567.tif 000014
【図１３】
2020064567.tif 000015
【図１４】
2020064567.tif 000016
【図１５】
2020064567.tif 000017
【図１６】
2020064567.tif 000018
【図１７】
2020064567.tif 000019
【図１８】
2020064567.tif 000020
【図１９】
2020064567.tif 000021
【図２０】
2020064567.tif 000022