(57)【要約】【課題】管理者が意図する優先度制御やＳＬＡ違反率を達成することができる仮想マシンのリソース管理方法、サーバ、及びプログラムを提供することを目的とする。【解決手段】本発明は、１台のサーバ上にて、仮想化基盤上に起動している複数の仮想マシンに対して、各仮想マシン毎に設定されたＳＬＡや優先度をもとに、刻々と変化する各仮想マシンに対する負荷に応じて、ＣＰＵやメモリのリソースを割り当てる手法に深層学習を適用している。深層学習を利用することにより、制御結果に基づく教師信号の伝搬効率が改善され、学習速度・ＳＬＡ違反率等が改善される。【選択図】図１
2018036724.tif 000002
【特許請求の範囲】
【請求項１】
仮想化基盤上に起動している複数の仮想マシンに対して、それぞれの前記仮想マシンに負荷に応じたリソースを動的に割り当てる仮想マシンのリソース管理方法であって、
スループットとＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）違反率とで表現される報酬値から求めた値を教師信号とする３層以上のニューラルネットワークに、前記仮想マシンへのリソース割り当て状態を入力する入力手順と、
前記報酬値が最大となるように前記ニューラルネットワークのパラメータを調整する学習手順と、
前記ニューラルネットワークから出力される制御評価値に基づいて前記仮想マシンへリソースを割り当てる制御指針を更新する割り当て更新手順と、
を行う仮想マシンのリソース管理方法。
【請求項２】
それぞれの負荷に応じてリソースが動的に割り当てられる複数の仮想マシンを仮想化基盤上に起動するサーバであって、
前記仮想化基盤には、リソース制御部及び深層学習部が形成され、
前記深層学習部は、
スループットとＳＬＡ違反率とで表現される報酬値から求めた値を教師信号とする３層以上のニューラルネットワークに、前記仮想マシンへのリソース割り当て状態を入力し、前記報酬値が最大となるように前記ニューラルネットワークのパラメータを調整し、前記ニューラルネットワークから出力される制御評価値に基づいて前記仮想マシンへリソースを割り当てる制御指針を更新し、
前記リソース制御部は、前記深層学習部が更新した前記制御指針に基づき前記仮想マシンにリソースを割り当てる
ことを特徴とするサーバ。
【請求項３】
請求項１に記載の仮想マシンのリソース管理方法をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、１台のサーバ上の仮想化基盤上で起動している複数の仮想マシンにＣＰＵやメモリのリソースを割り当てる仮想マシンのリソース管理方法、当該管理方法が適用されるサーバ、及び当該管理方法のためのプログラムに関する。
【背景技術】
【０００２】
汎用サーバ性能の向上、および、仮想化技術の台頭により、単なるパケット転送機能だけでなく、ＩＤＳやファイアウォール、ロードバランサーといった、特殊なハードウェア機器（ミドルボックス）を用いなければ実現できなかった機能が、ソフトウェア化され、汎用サーバ上の仮想マシン（以下  ＶＭ）にて実現されようとしている。ミドルボックスをＶＭにて管理することで、ハードウェア機器への設備投資を削減することができるだけでなく、ネットワークの管理ポリシーを変更する場合でも、マイグレーション機能を用いて、ＶＭの移動や複製を行うことで、容易にポリシーを反映できると考えられている（非特許文献１、２）。
【０００３】
こうした利点がある一方、仮想環境を用いたミドルボックスの運用では、その挙動や性能（ｅ．ｇ．  スループット）やＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）が保証されていないという問題点がある（非特許文献３）。例えば、ＶＭの性能は、割り当てられたリソース（ｅ．ｇ．  コア、メモリ、ｅｔｃ．）以外にも、ＶＭが動作する物理サーバの構造や、他に稼働しているＶＭの状態、ＶＭ毎に設定される優先度に依存することが知られており、ＶＭがどの程度のスループットがどの程度出るか、未知数となっている（非特許文献４）。
【０００４】
また、ミドルボックスを稼働しているＶＭへのリソース割り当ては慎重に行わなければならないという問題点もある。なぜなら、ミドルボックスは、ネットワークの根幹となる機能であり、ＶＭ間のリソース割り当てを正しく行わなければ、ネットワーク全体の可用性に影響を与える可能性がある（非特許文献５）。例えば、Ｇｏｏｇｌｅのデータセンタにて、ネットワーク資源割り当てを行うミドルボックスの故障により、最大で４０％のユーザに対する複数のサービスが停止した例も存在する（非特許文献６）。ミドルボックスの仮想化が進むにつれ、膨大な数のミドルボックスが仮想環境下で動作することが予想されている（非特許文献１）。その運用は人手では到底できなくなってきており、高い信頼性を持つ自律的なリソース割り当て方法が必要であると考えられている。
【０００５】
汎用サーバ上の複数のＶＭに対して、物理リソース（ＣＰＵやメモリ）を割り当てる方法は膨大に存在しており、ＶＭのＣＰＵ利用率やメモリ使用量に応じたリソース割り当て手法が多数提案されている。中でも、割り当てたリソースと、当該リソース割り当てにて達成されたスープットの関係をマルコフ遷移にて表現することで、強化学習と呼ばれる機械学習を用いて、ＶＭのスループットが高くＳＬＡ違反を少ない時に最大値をとる目的関数を全てのＶＭにて最大化するリソース割り当て手法が発見されており、強化学習を用いたリソース割り当てが注目されるようになった（非特許文献７、８）。強化学習では、各ＶＭに対するリソース割り当てと、各割り当てにおいて新たな割り当てを行った際のＶＭのスループットとＳＬＡ違反の値（回数）を全て記憶しておく必要があり、各状態における最適な割り当て方法を一意に決定するまでに、膨大な時間と物理メモリが必要となる。
【０００６】
強化学習を用いた既存手法では、あらかじめ設定された目的関数を各状態にて最大化するために、リソース割り当て状態を入力とし、教師信号としてスループットの変化量やＳＬＡ違反率を用いたニューラルネットワークを適用する手法が提案されている（非特許文献８）。また、当該目的関数を線形モデルや多項式モデルに帰着し、当該モデルの係数をスループットの最大化やＳＬＡ違反率を最小化するように最適化する手法が提案されている（非特許文献９）。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】Ｖ．  Ｓｅｋａｒ，  Ｎ．  Ｅｇｉ，  Ｓ．  Ｒａｔｎａｓａｍｙ，  Ｍ．Ｋ．  Ｒｅｉｔｅｒ，  ａｎｄ  Ｇ．  Ｓｈｉ，  “Ｄｅｓｉｇｎ  ａｎｄ  ｉｍｐｌｅｍｅｎｔａｔｉｏｎ  ｏｆ  ａ  ｃｏｎｓｏｌｉｄａｔｅｄ  ｍｉｄｄｌｅｂｏｘ  ａｒｃｈｉｔｅｃｔｕｒｅ”，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ９ｔｈ  ＵＳＥＮＩＸ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｎｅｔｗｏｒｋｅｄ  Ｓｙｓｔｅｍｓ  Ｄｅｓｉｇｎ  ａｎｄ  Ｉｍｐｌｅｍｅｎｔａｔｉｏｎ，  ＮＳＤＩ’１２，  Ｂｅｒｋｅ−ｌｅｙ，  ＣＡ，  ＵＳＡ，  ｐｐ．３２３−３３６，  ＵＳＥＮＩＸ  Ａｓｓｏｃｉａｔｉｏｎ，  ２０１２．
【非特許文献２】Ａ．  Ｇｅｍｂｅｒ，  Ｐ．  Ｐｒａｂｈｕ，  Ｚ．  Ｇｈａｄｉｙａｌｉ，  ａｎｄ  Ａ．  Ａｋｅｌｌａ，  “Ｔｏｗａｒｄ  ｓｏｆｔｗａｒｅ−ｄｅｆｉｎｅｄ  ｍｉｄｄｌｅｂｏｘ  ｎｅｔｗｏｒｋｉｎｇ”，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １１ｔｈ  ＡＣＭ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｈｏｔ  Ｔｏｐｉｃｓ  ｉｎ  Ｎｅｔｗｏｒｋｓ，  ＨｏｔＮｅｔｓ−ＸＩ，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  ＵＳＡ，  ｐｐ．７−１２，  ＡＣＭ，  ２０１２．
【非特許文献３】Ｄ．Ｙ．  Ｈｕａｎｇ，  Ｋ．  Ｙｏｃｕｍ，  ａｎｄ  Ａ．Ｃ．  Ｓｎｏｅｒｅｎ，  “Ｈｉｇｈ−ｆｉｄｅｌｉｔｙ  ｓｗｉｔｃｈ  ｍｏｄｅｌｓ  ｆｏｒ  ｓｏｆｔｗａｒｅ−ｄｅｆｉｎｅｄ  ｎｅｔｗｏｒｋ  ｅｍｕｌａｔｉｏｎ”，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  Ｓｅｃｏｎｄ  ＡＣＭ  ＳＩＧ−ＣＯＭＭ  Ｗｏｒｋｓｈｏｐ  ｏｎ  Ｈｏｔ  Ｔｏｐｉｃｓ  ｉｎ  Ｓｏｆｔｗａｒｅ  Ｄｅｎｅｄ  Ｎｅｔｗｏｒｋｉｎｇ，  ＨｏｔＳＤＮ’１３，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  ＵＳＡ，  ｐｐ．４３−４８，  ＡＣＭ，  ２０１３．
【非特許文献４】Ｓ．  Ｋｕｎｄｕ，  Ｒ．  Ｒａｎｇａｓｗａｍｉ，  Ａ．  Ｇｕｌａｔｉ，  Ｍ．  Ｚｈａｏ，  ａｎｄ  Ｋ．  Ｄｕｔｔａ，  “Ｍｏｄｅｌｉｎｇ  ｖｉｒｔｕａｌｉｚｅｄ  ａｐｐｌｉｃａｔｉｏｎｓ  ｕｓｉｎｇ  ｍａｃｈｉｎｅ  ｌｅａｒｎｉｎｇ  ｔｅｃｈｎｉｑｕｅｓ”，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ８ｔｈ  ＡＣＭ  ＳＩＧＰＬＡＮ／ＳＩＧＯＰＳ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｖｉｒｔｕａｌ  Ｅｘｅｃｕｔｉｏｎ  Ｅｎｖｉｒｏｎｍｅｎｔｓ，  ＶＥＥ’１２，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  ＵＳＡ，  ｐｐ．３−１４，  ＡＣＭ，  ２０１２．
【非特許文献５】Ｒ．  Ｐｏｔｈａｒａｊｕ  ａｎｄ  Ｎ．  Ｊａｉｎ，  “Ｄｅｍｙｓｔｉｆｙｉｎｇ  ｔｈｅ  ｄａｒｋ  ｓｉｄｅ  ｏｆ  ｔｈｅ  ｍｉｄｄｌｅ：  Ａ  ｆｉｅｌｄ  ｓｔｕｄｙ  ｏｆ  ｍｉｄｄｌｅｂｏｘ  ｆａｉｌｕｒｅｓ  ｉｎ  ｄａｔａｃｅｎｔｅｒｓ”，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ２０１３  ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｉｎｔｅｒｎｅｔ  ｍｅａｓｕｒｅｍｅｎｔ  ｃｏｎｆｅｒｅｎｃｅ，  ｐｐ．９−２２，  ＡＣＭ，  ２０１３．
【非特許文献６】Ｐ．  Ｇｉｌｌ，  Ｎ．  Ｊａｉｎ，  ａｎｄ  Ｎ．  Ｎａｇａｐｐａｎ，  “Ｕｎｄｅｒｓｔａｎｄｉｎｇ  ｎｅｔｗｏｒｋ  ｆａｉｌｕｒｅｓ  ｉｎ  ｄａｔａ  ｃｅｎｔｅｒｓ：  ｍｅａｓｕｒｅｍｅｎｔ，  ａｎａｌｙｓｉｓ，  ａｎｄ  ｉｍｐｌｉｃａｔｉｏｎｓ”，  ＡＣＭ  ＳＩＧＣＯＭＭ  Ｃｏｍｐｕｔｅｒ  Ｃｏｍｍｕｎｉｃａｔｉｏｎ  Ｒｅｖｉｅｗ，  ｐｐ．３５０−３６１，  ＡＣＭ，  ２０１１．
【非特許文献７】Ｇ．  Ｔｅｓａｕｒｏ，  Ｎ．Ｋ．  Ｊｏｎｇ，  Ｒ．  Ｄａｓ，  ａｎｄ  Ｍ．Ｎ．  Ｂｅｎｎａｎｉ，  “Ａ  ｈｙｂｒｉｄ  ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｌｅａｒｎｉｎｇ  ａｐｐｒｏａｃｈ  ｔｏ  ａｕｔｏｎｏｍｉｃ  ｒｅｓｏｕｒｃｅ  ａｌｌｏｃａｔｉｏｎ”，  Ａｕｔｏｎｏｍｉｃ  Ｃｏｍｐｕｔｉｎｇ，  ２００６．  ＩＣＡＣ’０６．  ＩＥＥＥ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ，  ｐｐ．６５−７３，  ＩＥＥＥ，  ２００６．
【非特許文献８】Ｊ．  Ｒａｏ，  Ｘ．  Ｂｕ，  Ｃ．Ｚ．  Ｘｕ，  Ｌ．  Ｗａｎｇ，  ａｎｄ  Ｇ．  Ｙｉｎ，  “Ｖｃｏｎｆ：  Ａ  ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｌｅａｒｎｉｎｇ  ａｐｐｒｏａｃｈ  ｔｏ  ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅｓ  ａｕｔｏ−ｃｏｎｇｕｒａｔｉｏｎ”，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  ６ｔｈ  Ｉｎｔｅｒ−ｎａｔｉｏｎａｌ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ａｕｔｏｎｏｍｉｃ  Ｃｏｍｐｕｔｉｎｇ，  ＩＣＡＣ’０９，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  ＵＳＡ，  ｐｐ．１３７−１４６，  ＡＣＭ，  ２００９．
【非特許文献９】Ｘ．  Ｂｕ，  Ｊ．  Ｒａｏ，  ａｎｄ  Ｃ．Ｚ．  Ｘｕ，  “Ｃｏｏｒｄｉｎａｔｅｄ  ｓｅｌｆ−ｃｏｎｆｉｇｕｒａｔｉｏｎ  ｏｆ  ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅｓ  ａｎｄ  ａｐｐｌｉａｎｃｅｓ  ｕｓｉｎｇ  ａ  ｍｏｄｅｌ−ｆｒｅｅ  ｌｅａｒｎｉｎｇ  ａｐｐｒｏａｃｈ”，  ＩＥＥＥ  Ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  Ｐａｒａｌｌｅｌ  ａｎｄ  Ｄｉｓｔｒｉｂｕｔｅｄ  Ｓｙｓｔｅｍｓ，  ｖｏｌ．２４，  ｎｏ．４，  ｐｐ．６８１−６９０，  ２０１３．
【非特許文献１０】Ｘ．  Ｇｌｏｒｏｔ，  Ａ．  Ｂｏｒｄｅｓ，  ａｎｄ  Ｙ．  Ｂｅｎｇｉｏ，  “Ｄｅｅｐ  ｓｐａｒｓｅ  ｒｅｃｔｉｆｉｅｒ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ．”，  Ａｉｓｔａｔｓ，  ｐｐ．３１５−３２３，  ２０１１．
【非特許文献１１】Ｙ．  Ｂｅｎｇｉｏ，  Ｐ．  Ｓｉｍａｒｄ，  ａｎｄ  Ｐ．  Ｆｒａｓｃｏｎｉ，  “Ｌｅａｒｎｉｎｇ  ｌｏｎｇ−ｔｅｒｍ  ｄｅｐｅｎｄｅｎｃｉｅｓ  ｗｉｔｈ  ｇｒａｄｉｅｎｔ  ｄｅｓｃｅｎｔ  ｉｓ  ｄｉｆｆｉｃｕｌｔ”，  ＩＥＥＥ  ｔｒａｎｓａｃｔｉｏｎｓ  ｏｎ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋｓ，  ｖｏｌ．５，  ｎｏ．２，  ｐｐ．１５７−１６６，  １９９４．
【非特許文献１２】“ベンチマークの概要ＳＰＥＣｗｅｂ２００５．”  ｈｔｔｐ：／／ｊｐ．ｆｕｊｉｔｓｕ．ｃｏｍ／ｐｌａｔｆｏｒｍ／ｓｅｒｖｅｒ／ｐｒｉｍｅｒｇｙ／ｐｅｒｆｏｒｍａｎｃｅ／ｐｄｆ／ｂｅｎｃｈｍａｒｋ−ｏｖｅｒｖｉｅｗ−ｓｐｅｃｗｅｂ２００５−ｊｐ．ｐｄｆ．
【非特許文献１３】Ｒ．Ｓ．  Ｓｕｔｔｏｎ  ａｎｄ  Ａ．Ｇ．  Ｂａｒｔｏ，  Ｒｅｉｎｆｏｒｃｅｍｅｎｔ  ｌｅａｒｎｉｎｇ：  Ａｎ  ｉｎｔｒｏｄｕｃｔｉｏｎ，  ＭＩＴ  ｐｒｅｓｓ  Ｃａｍｂｒｉｄｇｅ，  １９９８．（関連セクション  ６．５  Ｑ−Ｌｅａｒｎｉｎｇ：  Ｏｆｆ−Ｐｏｌｉｃｙ  ＴＤ  Ｃｏｎｔｒｏｌ）
【非特許文献１４】Ｄ．  Ｋｉｎｇｍａ  ａｎｄ  Ｊ．  Ｂａ，  “Ａｄａｍ：  Ａ  ｍｅｔｈｏｄ  ｆｏｒ  ｓｔｏｃｈａｓｔｉｃ  ｏｐｔｉｍｉｚａｔｉｏｎ”．
【非特許文献１５】Ｒ．  Ｈｅｃｈｔ−Ｎｉｅｌｓｅｎ，  “Ｔｈｅｏｒｙ  ｏｆ  ｔｈｅ  ｂａｃｋｐｒｏｐａｇａｔｉｏｎ  ｎｅｕｒａｌ  ｎｅｔｗｏｒｋ”，  Ｎｅｕｒａｌ  Ｎｅｔ−ｗｏｒｋｓ，  １９８９．  ＩＪＣＮＮ．，  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｊｏｉｎｔ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ，  ｐｐ．５９３−６０５，  ＩＥＥＥ，  １９８９．
【非特許文献１６】Ｔ．  Ｂｅｎｓｏｎ，  Ａ．  Ａｋｅｌｌａ，  ａｎｄ  Ｄ．Ａ．  Ｍａｌｔｚ，  “Ｎｅｔｗｏｒｋ  ｔｒａｆｆｉｃ  ｃｈａｒａｃｔｅｒｉｓｔｉｃｓ  ｏｆ  ｄａｔａ  ｃｅｎｔｅｒｓ  ｉｎ  ｔｈｅ  ｗｉｌｄ”，  Ｐｒｏｃｅｅｄｉｎｇｓ  ｏｆ  ｔｈｅ  １０ｔｈ  ＡＣＭ  ＳＩＧＣＯＭＭ  Ｃｏｎｆｅｒｅｎｃｅ  ｏｎ  Ｉｎｔｅｒｎｅｔ  Ｍｅａｓｕｒｅｍｅｎｔ，  ＩＭＣ’１０，  Ｎｅｗ  Ｙｏｒｋ，  ＮＹ，  ＵＳＡ，  ｐｐ．２６７−２８０，  ＡＣＭ，  ２０１０．
【非特許文献１７】Ｓ．  Ｋｕｎｄｕ，  Ｒ．  Ｒａｎｇａｓｗａｍｉ，  Ｋ．  Ｄｕｔｔａ，  ａｎｄ  Ｍ．  Ｚｈａｏ，  “Ａｐｐｌｉｃａｔｉｏｎ  ｐｅｒｆｏｒｍａｎｃｅ  ｍｏｄｅｌｉｎｇ  ｉｎ  ａ  ｖｉｒｔｕａｌｉｚｅｄ  ｅｎｖｉｒｏｎｍｅｎｔ”，  Ｈｉｇｈ  Ｐｅｒｆｏｒｍａｎｃｅ  Ｃｏｍｐｕｔｅｒ  Ａｒｃｈｉｔｅｃ−ｔｕｒｅ  （ＨＰＣＡ），  ２０１０  ＩＥＥＥ  １６ｔｈ  Ｉｎｔｅｒｎａｔｉｏｎａｌ  Ｓｙｍｐｏｓｉｕｍ  ｏｎ，  ｐｐ．１−１０，  ＩＥＥＥ，  ２０１０．
【発明の概要】
【発明が解決しようとする課題】
【０００８】
非特許文献８や９の手法は、各ＶＭへのリソース割り当て状態とその状態におけるスループット等を記録する必要がないため、省メモリにてリソース割り当ての自動化を達成することができる。しかしながら、これらの手法は全ての状態におけるＳＬＡを最小化する手法については、現在提案されているものもあるが、収束性の問題や局所的な最適解が算出されるという問題点があり、管理者が意図する優先度制御やＳＬＡ違反率を達成することが難しいという課題があった。
【０００９】
そこで、本発明は、前記課題を解決するために、管理者が意図する優先度制御やＳＬＡ違反率を達成することができる仮想マシンのリソース管理方法、サーバ、及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
上記目的を達成するために、本発明に係る仮想マシンのリソース管理方法は、ニューラルネットワークに対して深層学習手法を適用することとした。
【００１１】
具体的には、本発明に係る仮想マシンのリソース管理方法は、仮想化基盤上に起動している複数の仮想マシンに対して、それぞれの前記仮想マシンに負荷に応じたリソースを動的に割り当てる仮想マシンのリソース管理方法であって、
スループットとＳＬＡ（Ｓｅｒｖｉｃｅ  Ｌｅｖｅｌ  Ａｇｒｅｅｍｅｎｔ）違反率とで表現される報酬値から求めた値を教師信号とする３層以上のニューラルネットワークに、前記仮想マシンへのリソース割り当て状態を入力する入力手順と、
前記報酬値が最大となるように前記ニューラルネットワークのパラメータを調整する学習手順と、
前記ニューラルネットワークから出力される制御評価値に基づいて前記仮想マシンへリソースを割り当てる制御指針を更新する割り当て更新手順と、
を行う。
【００１２】
また、本発明に係るサーバは、それぞれの負荷に応じてリソースが動的に割り当てられる複数の仮想マシンを仮想化基盤上に起動するサーバであって、
前記仮想化基盤には、リソース制御部及び深層学習部が形成され、
前記深層学習部は、
スループットとＳＬＡ違反率とで表現される報酬値から求めた値を教師信号とする３層以上のニューラルネットワークに、前記仮想マシンへのリソース割り当て状態を入力し、前記報酬値が最大となるように前記ニューラルネットワークのパラメータを調整し、前記ニューラルネットワークから出力される制御評価値に基づいて前記仮想マシンへリソースを割り当てる制御指針を更新し、
前記リソース制御部は、前記深層学習部が更新した前記制御指針に基づき前記仮想マシンにリソースを割り当てる
ことを特徴とする。
【００１３】
本発明は、１台のサーバ上にて、仮想化基盤（ｅ．ｇ．  ハイパーバイザ）上に起動している複数の仮想マシンに対して、各仮想マシン毎に設定されたＳＬＡや優先度をもとに、刻々と変化する各仮想マシンに対する負荷に応じて、ＣＰＵやメモリのリソースを割り当てる手法に深層学習（多層構造をもつニューラルネットワーク）を適用している。深層学習を利用することにより、制御結果に基づく教師信号（ｅ．ｇ．  ＳＬＡ違反率）の伝搬効率が改善され、学習速度・ＳＬＡ違反率等が改善される。
【００１４】
従って、本発明は、管理者が意図する優先度制御やＳＬＡ違反率を達成することができる仮想マシンのリソース管理方法及びサーバを提供することができる。
【００１５】
本発明に係るプログラムは、前記仮想マシンのリソース管理方法をコンピュータに実行させるためのプログラムである。本発明に係る仮想マシンのリソース管理方法はコンピュータとプログラムによっても実現でき、プログラムを記録媒体に記録することも、ネットワークを通して提供することも可能である。
【発明の効果】
【００１６】
本発明は、管理者が意図する優先度制御やＳＬＡ違反率を達成することができる仮想マシンのリソース管理方法、サーバ、及びプログラムを提供することができる。
【図面の簡単な説明】
【００１７】
【図１】本発明に係るサーバの構成を説明する図である。
【図２】本発明に係るサーバの深層学習部の内部構造を説明する図である。
【図３】本発明に係るサーバの深層学習部が行う出力計算とパラメータ更新を説明する図である。
【図４】ニューラルネットワークの種別を説明する図である。
【図５】本発明に係る仮想マシンのリソース管理方法で仮想マシンを管理した時のＳＬＡ違反率を説明する図である。
【図６】ＶＣＯＮＦで仮想マシンを管理した時のＳＬＡ違反率を説明する図である。
【発明を実施するための形態】
【００１８】
添付の図面を参照して本発明の実施形態を説明する。以下に説明する実施形態は本発明の実施例であり、本発明は、以下の実施形態に制限されるものではない。なお、本明細書及び図面において符号が同じ構成要素は、相互に同一のものを示すものとする。
【００１９】
図１は、本実施形態のサーバ１００の構成を説明する図である。サーバ１００は、それぞれの負荷に応じてリソースが動的に割り当てられる複数の仮想マシン１０を仮想化基盤１１上に起動するサーバであって、
仮想化基盤１１には、リソース制御部１２及び深層学習部１３が形成され、
深層学習部１３は、
スループットとＳＬＡ違反率とで表現される報酬値から求めた値を教師信号とする３層以上のニューラルネットワークに、仮想マシン１０へのリソース割り当て状態を入力し、前記報酬値が最大となるように前記ニューラルネットワークのパラメータを調整し、前記ニューラルネットワークから出力される制御評価値に基づいて仮想マシン１０へリソースを割り当てる制御指針を更新し、
リソース制御部１２は、深層学習部１３が更新した前記制御指針に基づき仮想マシン１０にリソースを割り当てる
ことを特徴とする。
【００２０】
サーバ１００が行う仮想マシンのリソース管理は、一般的なＶＭ管理方式の仮想化基板１１（ハイパーバイザ）上における、リソース制御部１２と深層学習部１３によって構成される。リソース制御部１２は、深層学習部１３から現在のリソース割り当て状態が入力され、各ＶＭ１０へのリソース割り当て方針を得る。深層学習部１３は、リソース割り当て状態が入力され、制御指針を出力とする３層以上のニューラルネットワーク（いわゆるディープニューラルネット）を管理している。
【００２１】
本実施形態の仮想マシンのリソース管理方法は、仮想化基盤１１上に起動している複数の仮想マシン１０に対して、それぞれの仮想マシン１０に負荷に応じたリソースを動的に割り当てる仮想マシンのリソース管理方法であって、
スループットとＳＬＡ違反率とで表現される報酬値から求めた値を教師信号とする３層以上のニューラルネットワークに、仮想マシン１０へのリソース割り当て状態を入力する入力手順と、
前記報酬値が最大となるように前記ニューラルネットワークのパラメータを調整する学習手順と、
前記ニューラルネットワークから出力される制御評価値に基づいて仮想マシン１０へリソースを割り当てる制御指針を更新する割り当て更新手順と、
を行う。
【００２２】
〔リソース制御部〕
リソース制御部１２は、各ＶＭにおけるサーバリソースのパラメータに対して、ｉｎｃｒｅａｓｅ、ｄｅｃｒｅａｓｅ、ｎｏｏｐｅｒａｔｉｏｎの３つの制御を行う。どのリソースをどのＶＭに割り当てるかは、現在のリソース割り当てを深層学習部１３への入力とし、返り値として得られる各ＶＭに対するリソース割り当てに対する評価値をもとに決定する。具体的には、返り値として、各ＶＭにおける２つのリソース（例えば、メモリとＣＰＵコア）に対して３つの制御の合計６ｎ要素（ｎはＶＭ数）を持つ配列を得て、各要素の値が高い制御ほど高い確率で選択し、当該制御を行うことにする。
【００２３】
〔深層学習部〕
深層学習部１３は、数１の形式で表現される各ＶＭへのリソース割り当て状態を入力とし、図２のニューラルネットワークで計算し、当該状態における各制御指針の評価値（制御評価値）を返り値として出力する。ここで、時刻ｔにおけるリソース割り当て状態ｓｔは、各ＶＭに割り当てられているサーバリソースの値の集合とし以下のように表現する。
【数１】
2018036724.tif 000003
ここで、ｍｅｍ１はＶＭ１に対して割り当てられているメモリ量、ｖｃｐｕ１はＶＭ１に割り当てられているＣＰＵの数、ｎは稼働中のＶＭ数を示している。
【００２４】
返り値となる制御評価値は、リソース制御部にて述べたように、各制御指針の評価値を意味している。具体的には、各ＶＭにおけるサーバリソースのパラメータに対して、ｉｎｃｒｅａｓｅ、ｄｅｃｒｅａｓｅ、ｎｏｏｐｅｒａｔｉｏｎの３つの制御を行う。なお、メモリに対する行動は次の通りである。
ｉｎｃｒｅａｓｅはメモリを一定単位（ｅ．ｇ．  ６４ＭＢ）でＶＭに対して割り当てる。
ｄｅｃｒｅａｓｅは同様の単位でメモリの割り当てを減らす。
ｎｏｏｐｅｒａｔｉｏｎは、何も行動を起こさない。
また、ＣＰＵに対する行動は次の通りである。
ｉｎｃｒｅａｓｅはコアを１つ単位で割り当てる。
ｄｅｃｒｅａｓｅはコアの割り当てを同様の単位で減らす。
ｎｏｏｐｅｒａｔｉｏｎは、何も行動を起こさない。
なお、各ＶＭに対するリソース割り当ては、サーバの物理リソースの上限（メモリ：Ｍ、コア数：Ｃ）を超えないものとする。返り値となる制御評価値は、各ＶＭにおける２つのリソースに対して３つの制御の合計６ｎ要素を持つ配列となる。
【００２５】
当該状態Ｓｔの入力をもとに、深層学習部１３は、図３の手順を入力層から出力層に向けて繰り返し、各制御評価値を返す。図３における、ｘ１、ｘ２、ｘ３、・・・、ｘｎは各リソース割り当て状態を示しており、ｗ１、ｗ２、ｗ３、・・・、ｗｎは制御パラメータを示しており、これらの積和にバイアスｂを加えた出力を次の層の入力とする何層ものニューラルネットワークを通して、最終的な制御評価値が出力されるものとする。なお、積和が０以下になる場合は、０を出力する（非特許文献１０）。
【００２６】
一般的なニューラルネットワークでは、積和をシグモイド関数に入力し、その出力値を次の層に入力する。各層の制御パラメータの更新に必要となる教師信号は、出力層から入力層に向かって伝搬される。なお、伝搬する際に、各層の出力値と共に再帰的に微分される（連鎖律）。シグモイド関数は微分計算が簡単である一方、再帰的な微分によって、教師信号が減少する特性がある（非特許文献１１）。本実施形態では、積和を次の層の入力とするニューラルネットワークを用いることで、入力層に近い層の制御パラメータを更新する際に必要となる教師信号が消滅することを防ぐことができる。
【００２７】
深層学習部１３は、リソース制御部１２に制御評価値を渡し、リソース制御が行われたのち、各ＶＭにおけるスループットやＳＬＡ違反を次の制御を行うまでに観測し、リソース割り当て状態の制御評価値を更新する。評価値の更新は、計測したＳＬＡ違反率とスループット平均値を用いて表現される報酬値Ｒａｔｓｔ，ｓｔ＋１を利用する。深層学習部１３が行う報酬値の算出について説明する。
【数２】
2018036724.tif 000004
【００２８】
報酬値Ｒａｔｓｔ，ｓｔ＋１は、ＶＭｗａｒｅ、富士通、ＩＢＭが自社サーバの性能を公開する際に利用している性能指標（非特許文献１２）と、各ＶＭの優先度の積によって表現する。
ｐｉはＶＭｉ（ｉ≦ｎ）の優先度を示しており、
【数３】
2018036724.tif 000005
を満たすものとする。
ｓｃｏｒｅｉは、ＶＭｉ（ｉ≦ｎ）の性能指標を表しており、ｔｈｒｐｔｉ、ｒｅｆ＿ｔｈｒｐｔｉ及びｐｅｎａｌｔｙから計算される。ｔｈｒｐｔｉはＶＭｉの単位時間当たりのタスクの完了数を示し、ｒｅｆ＿ｔｈｒｐｔｉは、最大限のリソースを割り当てた際のスループット、もしくは学習中に得たスループットの最大値を示す。タスクの完了数とはアプリケーションによって異なり、例えば、データベースの役割を持つＶＭでは、トランザクションの完了数を意味する。エージェントは行動を実施すると同時に、次の行動までの単位時間当たりの平均スループットを計算し、当該報酬値を用いて、学習を行うものとする。ｐｅｎａｌｔｙは、ｒｅｓｐおよびｓｌａから計算される。ｒｅｓｐおよびｓｌａは、１タスクあたりの完了時間と、そのＳＬＡを示しており、ｒｅｓｐがＳＬＡの値を満たさない場合（ｒｅｓｐ≧ｓｌａ）、ｐｅｎａｌｔｙが発生し、性能指標ｓｃｏｒｅｉが低下して報酬値が低下することになる。これらにより、スループットが高く違反が少ない行動ほど高い報酬値が割り当てられるようになる。
【００２９】
上記の式で求めた報酬値をもとに、当該リソース割り当て状態における制御評価値を更新する。本実施形態では、更新方法として、強化学習を用いて評価値を更新することで、得られる報酬値を最大化する制御指針を出力するニューラルネットワークを実現する。強化学習を用いた制御評価値の更新方法を述べる。時刻ｔにおけるリソース割り当て状態をｓｔ、当該状態において、リソース制御部にて選択された制御指針をａｔ、状態ｓｔにおける制御ａｔの評価値（制御評価値）をＱ（ｓｔ、ａｔ）とし、上記で求めた報酬値Ｒａｔｓｔ，ｓｔ＋１をもとに、数４のように制御評価値を更新する。
【数４】
2018036724.tif 000006
ここで、α（０＜α≦１）は学習率を示し、γ（０≦γ≦１）は割引率を示している。
【００３０】
αが大きい場合には最新の報酬を重視し、αが１の場合には、過去の報酬を全く考慮しない。また、γは遷移先の状態に対する制御評価値が現在の制御評価値に与える影響を表し、γが０の時は遷移先の状態ｓｔ＋１に対する制御評価値が現在の状態ｓｔの制御評価値に依存しない。
【００３１】
本更新式は、Ｑ学習（非特許文献１３）と呼ばれており、上記の更新を再帰的に行うことで、最も報酬値を得られることのできる制御の評価値Ｑ（ｓ、ａ）が、最大になることが理論的にわかっている。Ｑ学習の目的はＱ（ｓ、ａ）を次式で表される教師信号に近づけることである。
【数５】
2018036724.tif 000007
【００３２】
ニューラルネットワークにおける制御評価値の更新にＱ学習を用いる場合、ニューラルネットワークの出力となる制御評価値Ｑ（ｓ、ａ）と教師信号の誤差（ＴＤｅｒｒｏｒ）を０にするよう、各層の制御パラメータを確率的勾配法によって調整する。各層における具体的な制御パラメータの調整方法は、Ａｄａｍ（非特許文献１４）と呼ばれる確率的勾配法の応用手法を利用する（図３）。
【００３３】
Ａｄａｍを用いた制御パラメータ（ｗｉ）の更新は以下の通りである。
【数６】
2018036724.tif 000008
βは確率的勾配法における学習率を示しており、ｗｉの更新量の調整に利用される。また、ｇは数７を示しておりｗｉの更新量となっている。Ｅ［・］は指数平滑平均を示しており、Ｅ［ｇ］は、これまでの更新量の指数平滑平均となっている。
【数７】
2018036724.tif 000009
【００３４】
Ａｄａｍでは、確率勾配法を用いて、ＴＤｅｒｒｏｒを小さくするよう制御パラメータｗｉを調整する際に、ＴＤｅｒｒｏｒをｗｉにて微分した値ｇの指数平滑平均Ｅ［ｇ］をもとにｗの更新を行っている。ｇは、一般的な誤差逆伝搬法（非特許文献１５）における、教師信号と各層の出力・入力値の再帰的な微分（連鎖律）を用いて算出可能である。指数平滑平均を用いることで、これを用いない場合と比べ、制御パラメータを更新する際のＴＤｅｒｒｏｒのはずれ値の影響を小さくすることができる。
【００３５】
（具体的な評価）  
本節では、汎用サーバ上にて５台のＶＭを運用し、各ＶＭにおけるＳＬＡ違反率をシミュレーションを通して評価する。汎用サーバはメモリ１６ＧＢと８コアのＣＰＵを有し、エージェントの各行動は、メモリを１２８ＭＢ単位で割り当てる／削除する、あるいはＣＰＵを１コア単位で割り当てる／削除する、である。各ＶＭに対するリクエストの到着頻度と、各リクエストに対する処理時間は、実データセンタの解析結果に基づくモデルを利用した（非特許文献１６）。また、割り当てたリソースに応じてスループットが線形で増加するものとし、各ＶＭのＳＬＡは全てのリソースを当該ＶＭに割り当てた際のスループット５０％を下回る場合に、ＳＬＡ違反と見なす（非特許文献１７）。
【００３６】
上記の設定を利用し、本実施形態で説明したＶＭのリソース管理方法と既存手法（ＶＣＯＮＦ（非特許文献８））を用いた場合の各ＶＭのＳＬＡ違反率を計測した。ＶＣＯＮＦではシグモイド関数と確率的勾配法を組み合わせた誤差逆伝搬法を用いて、提案手法と同じ制御評価値の更新を行う。両手法の設定（パーセプトロン数、層数）は図４の通りである。各ＶＭの優先度は、ＶＭの番号が小さいほど高くし、番号の増加と共に各重みが線形的に減少するように設定した。実験結果を図５と図６に示す。図５は本実施形態で説明したＶＭのリソース管理方法の結果である。図６は既存手法による結果である。図５と図６を比較すると、本実施形態で説明したＶＭのリソース管理方法は、ＶＣＯＮＦと同等の平均ＳＬＡ違反率を達成しつつ、各層のパーセプトロン数やニューラルネットワークの層の数を増やした場合でも、安定してＶＭの優先度の順序通りのＳＬＡ違反率を達成することができた。
【符号の説明】
【００３７】
１０：仮想マシン（ＶＭ）
１１：仮想化基盤（ハイパーバイザ）
１２：リソース制御部
１３：深層学習部
１００：サーバ
【図１】
2018036724.tif 000010
【図２】
2018036724.tif 000011
【図３】
2018036724.tif 000012
【図４】
2018036724.tif 000013
【図５】
2018036724.tif 000014
【図６】
2018036724.tif 000015