ライブマイグレーションの影響を考慮して機器集約を実現する
Linux コンテナ配置手法の提案
Linux Container Placement Method in Consideration of Live
Migration Eﬀect for Server Consolidation
沖津健吾 1

Kengo Okitsu1
1

村山隆彦 1∗

Takahiko Murayama1

NTT ソフトウェアイノベーションセンタ
1
NTT Software Innovation Center

Abstract: 近年，Web サービスを提供するクラウド環境として，従来の仮想マシンベースではない，Linux コンテナベースの環境が注目されつつあり，Linux コンテナを顧客に提供するクラウド事業者も増えている．そのようなクラウド事業者にとって，少ない物理サーバ数でより多くの顧客 Linux コンテナを配置すること，すなわち機器集約率の向上は重要な課題の１つである．本論文では，適切な配置変更を行うために把握が必要な，ライブマイグレーションの影響を定量的に予測する手法を提案する．さらに，ライブマイグレーションの影響予測に基いた適切な配置決定に，強化学習を適用した手法を提案する．
置操作であるライブマイグレーションに係る所要時間と1 はじめに生じる計算資源使用量が小さくなると期待されている．
そのため，これらのライブマイグレーション影響の違い

クラウド事業者の提供形態のうち，物理サーバを仮想を定量的に考慮せず仮想マシンと同様の配置方式を採用化したクラウド環境を構築，運用し，仮想化された単位

すると，期待通りの機器集約率が得られない場合が生じである仮想インスタンスを顧客に提供する形態は IaaS

る．例えば再配置の影響を過大に見積もってしまうこと(Infrastructure as a Service) と呼ばれている．IaaS はで，本来は再配置した方が機器集約率がする場合でも再従来，仮想インスタンスとして仮想マシンを提供するこ配置しないと判断してしまう可能性が高い．とがほとんどであった．しかし近年，Docker[1] をはじ

本研究は，ライブマイグレーション影響を定量的に考めとした Web サービスのリリースプロセスを効率化で慮した Linux コンテナ再配置方式を提案することを目

きる Linux コンテナ管理技術の登場により，Linux コン的とする．

テナを提供する IaaS が増加している [2, 3]．

IaaS の効率運用において，仮想インスタンスをその計算資源要求に応じつつ必要な物理サーバが少なくなるよ
うに配置することは重要な課題の 1 つである．本研究では，特定の利用主体が計画的に IaaS を利用する場合を想定し，既に物理サーバに配置されている Linux コンテ
ナを機器集約率が向上するよう配置する再配置問題に取り組む．
再配置問題については，これまで仮想マシンを前提に数多くの研究がなされてきた [4]．しかし，Linux コンテ
ナは仮想マシンとは仮想化の仕組みが異なるため，再配∗ 連絡先：日本電信電話株式会社〒180-8585 東京都武蔵野市緑町 3-9-11

E-mail: murayama.takahiko@lab.ntt.co.jp

2 課題とアプローチ
2.1 ライブマイグレーション影響の予測
ライブマイグレーションの基本的な処理は仮想インスタンスに関わらず共通している．まず，仮想インスタンスが使用している送信元物理サーバのメモリ内容を，宛先物理サーバに一定期間毎に反復してコピーする．最後に送信元物理サーバ上の仮想インスタンスを停止させ，宛先物理サーバ上で起動する．最後の停止と起動の処理は，停止時間が予め定められた閾値を下回ることが判明した場合，または予め定められたコピー回数を上回った場合に実行される [5]．

処理内容から，本研究で対象とする再配置位置決定に関わるライブマイグレーション影響は次の通り：• 送信元／宛先物理サーバの計算資源の使用– CPU– メモリ– ネットワーク帯域• ライブマイグレーション所要時間• Linux コンテナ停止時間

上昇する仮想インスタンスを同じ物理サーバ上に配置してしまい，要求された計算資源を提供できない過負荷状態が発生するのを避けるためである．
これまで，予測した仮想インスタンスの計算資源要求の変動に応じて再配置する方式 [8]，ライブマイグレーションの所要時間を考慮した配置方式 [7] が提案されてきた．しかし，仮想インスタンスの計算資源要求の変動予測とライブマイグレーション影響の双方を考慮した配置方式は存在しない．そのため，ライブマイグレーショ

Linux コンテナ停止時間が含まれているのは，停止している時間だけ Linux コンテナからの計算資源要求に応ン影響と仮想インスタンスの計算資源要求の変動を同時えられていないと考えられるためである．

応できない．従って再配置パターンの決定おける課題はLinux コンテナのライブマイグレーション影響について調査した研究は現時点では存在しないため，計測をしてその結果を元にモデル化する必要がある．従ってラに考慮しなければ機器集約率を向上できない場合には対次の通り：(課題 2) 仮想インスタンスの計算資源要求の変動とライブマイグレーション影響の双方を考慮した再配

イブマイグレーション影響の予測における課題は次の置方式を確立すること通り：(課題 1) 再配置位置決定に関わるライブマイグレーション影響を予測することLinux コンテナに関する研究が存在しない一方で，仮本研究ではこの (課題 2) に対して、IaaS 環境で一般的に観測される，仮想インスタンスからの計算資源要求の変動幅が大きい状況において長期間に渡って機器集約率を向上できる方式確立を目指す．

想マシンを対象として影響を予測する研究は取り組まれ再配置問題の定式化には，大きく 2 つのアプローチがてきた．Verma らは，ライブマイグレーション対象の仮考えられる．1 つは，組合せ最適化問題であるビンパッ想マシンの計算資源使用状況などを操作して，ライブマキング問題として定式化するアプローチである．この定イグレーション所要時間に与える影響を詳細に調べてい式化はある限られた期間における最適配置を決定する問る [6]．その結果，所要時間は仮想マシンのメモリ使用題設定である．そのため，計算資源要求の変動幅が小さ量に大きく依存することが分かっている．ライブマイグ

い場合は，再配置による効果が持続するため，高い機器レーション処理の共通性から，この依存関係は Linux コ集約効果を実現できる．また，高速に解を求めるヒューンテナの場合にも存在することが予想される．

リスティクス解法がよく研究されており，実装が容易とよって本研究では，Linux コンテナのメモリ使用量をいう利点がある．一方で，計算資源要求の変動幅が大き操作し，その結果ライブマイグレーション影響がどのよい場合は，配置先を決めた以外の期間は考慮にいれないうに変化するかを計測してモデル化する．なお，今回はため，長期的には機器集約率を向上できない．

ライブマイグレーション専用の大きなネットワーク資源

もう 1 つのアプローチは，長期に渡る目的関数を最があることを前提として，ネットワーク帯域については大化する制御系列を決定する制御問題として定式化するスコープ外とする．

アプローチである．そのような手法で代表的なものとして，一連の制御の結果将来に渡って得られる報酬の期待2.2 再配置パターンの決定値を最大化する枠組みである，強化学習がある．この定式化は目的関数が長期に渡って計算されるものであるた

再配置パターンの決定について，仮想マシンを対象とめ，計算資源要求の変動幅が大きい場合でも，長期的にして数多くの研究がなされてきた．しかし，ライブマイ見て機器集約率が向上する制御則を得ることができる．

グレーション影響の予測の場合とは異なり，仮想インス一方で，すぐにそのような制御則を得られるわけではな

タンス種別を問わず適用可能な手法が提案されているた

いため，制御則の学習効率を向上させる工夫が必要とめ，仮想マシンの研究から課題を抽出する．

なる．

機器集約の観点で適切な再配置パターンの決定を行うためには，ライブマイグレーション影響に加えて，仮想インスタンスの計算資源使用の変動予測が必要であることが知られている [6]．これは，同時に計算資源要求が本研究では，想定している状況に適している強化学習を用いて再配置問題を定式化する．

方策は確率 p(a|s) の集合 π で表される．そして次の離3 提案方式

散時刻 t + 1 において，エージェントは報酬 rt+1 を得た

3.1 ライブマイグレーション影響の予測

aaには，状態遷移モデル Pss′ , 期待報酬モデル Rss′ といプロセスのメモリの使用量を約 30MB から 600MB まで操作し，ライブマイグレーション影響がどのように変化するかを計測し，モデル化を行った．今回ライブマイグレーション対象をプロセスとしたのは，使用したライブマイグレーション OSS p.haul[10] の実装状況に因る．
計測対象をプロセスとしても，ライブマイグレーション処理の内容から，メモリ使用量に対するライブマイグレーション影響の変化に関する結果は，Linux コンテナとほぼ同等と考えることができる．しかし，今回の計測結果の定量的な値にはあまり意味がないため，ここでは後，状態 st+1 = s′ を観測する．この一連の流れの背後
う 2 つの環境モデルが存在し，状態遷移と報酬獲得はこれらの環境モデルに従って生じる．
a′Pss′ = P (st+1 = s |st = s, at = a)Rass′ = E[rt+1 |st = s, at = a, st+1 = s′ ]この環境モデルの中で，エージェントは収益と呼ばれる以下の値を最大化する最適方策を得ることを目的に学習を行う [9]．

Rt =∞
∑

γ k rt+k+1 (0 ≤ γ ≤ 1)

k=0

得られた結果の依存関係のみを定式化する．
計測結果から，ライブマイグレーション所要時間，最適方策を得る学習アルゴリズムは数多く提案されてLinux コンテナ停止時間，及び宛先サーバの CPU ／メおり，環境モデルを陽に必要とするものはモデルベース

モリ使用量の平均値は，プロセスのメモリ使用量に対し学習，必要としないものはモデルフリー学習と呼ばれてて線形に増加することが分かった．また，送信元サーバいる．両者の学習の間には学習効率と計算時間のトレーの CPU ／メモリ使用量のの平均値は，プロセスのメモドオフが存在し，一般にモデルフリー学習の方が最適方リ使用量に対してほとんど変化しないことが分かった．

策獲得までに多くの経験を要するが，計算時間は小さい

従って，時刻 t の i 番目の Linux コンテナのメモリ使と言われている．

用量を mi (t) と書くと，i 番目の Linux コンテナのライ提案方式では，既に構築したライブマイグレーション

ブマイグレーション所要時間 mgti ，Linux コンテナ停影響の予測モデルを活かして学習効率を向上できる，モ止時間 f ti ，ライブマイグレーション宛先サーバの CPU

デルベース学習を用いる．その中でも比較的計算時間を／メモリ使用量のの平均値 mgcdi , mgmdi ，ライブマイグ小さくすることを志向し，一般によく用いられるモデル

レーション送信元サーバの CPU ／メモリ使用量のの平フリー学習である Q-learning の学習効率を環境モデル

均値 mgcsi , mgmmi は以下のように予測が可能である．の利用により向上したアルゴリズムを，再配置問題に適用することを試みる．

mgti = αmgt mi (t)f ti = αf t mi (t)

リズムの概要を説明する．Q-learning とは，次に表されdmi (t)mgcdi = αmgc

る状態 s に対して行動 a を選択する価値，行動価値関数

dmgmdi = αmgmmi (t)ssmgci = αmgcsmgmsi = αmgm

Q(s, a) の学習を行うアルゴリズムのことである．

ddsss
ただし，αmgt , αf t , αmgc, αmgm, αmgc, αmgc
, αmgmは全て正の定数．

ここで，提案方式のベースとした Q-learning アルゴ

Q(s, a) = E[Rt |st = s, at = a]
次 の 時 刻 の 状 態 を 観 測 す る 度 に ，つ ま り 標 本(st , at , rt+1 , st+1 ) を 得 る 度 に ，0 ≤ α ≤ 1 と し て次の更新則で Q(s, a) を更新することで，最適な行動価値関数を直接学習できる．

3.2 再配置方式

Q(st , at ) ← Q(st , at ) + α[rt+1 + γ max Q(st+1 , a)a3.2.1 強化学習− Q(st , at )]強化学習の概要について説明する．強化学習では，学習する主体であるエージェントが，離散的な時刻 t にお方策は Q(s, a) を元に，例えば at = arg max Q(st , a) のける状態 st = s ∈ S を観測した後，行動則に従って行ように設定する．

a

動 at = a ∈ A を選択する．ここで，S は状態集合，A環境モデルを利用して Q-learning の学習効率を向上は行動集合である．この行動則は方策と呼ばれており，するために，提案方式では 1 ステップ先までの予測を表1

基本的な変数変数

説明

3.2.3 状態遷移モデルによる状態予測
状態 st を観測した後 1 ステップ先の状態を予測する

ncons
M Xc
M Xm
C(t)
M (t)
P (t)

Linux コンテナの個数ために，状態遷移モデルを定式化する．状態には計算資

物理サーバの台数源使用量と，配置位置が含まれているため，双方につい物理サーバの最大 CPU 使用量 (1 × ns )物理サーバの最大メモリ使用量 (1 × ns )時刻 t のコンテナの CPU 使用量 (1 × nco )時刻 t のコンテナのメモリ使用量 (1 × nco )時刻 t のコンテナの配置物理サーバ (1 × nco )て状態遷移モデルを定式化する．
配置位置については，ライブマイグレーションは必ず成功するとして，確率 1 で選択した行動の通りになるものとする．

P (t + τ ) = at
計算資源使用量については，予測方法と，予測の精度用いて Q を更新する．つまり，状態 st を観測した後，を向上する更新方法を定式化する必要がある．予測方法

行動 a を選択した場合の次の報酬 r̂t+1 と状態 ŝt+1 をとしては，時系列パターン予測の様々な手法が考えられ推定して，推定した値を含む標本 (st , a, r̂t+1 , ŝt+1 ) を元るが，ここでは経済指標予測などで広く用いられているに Q(st , a) を更新するものとする．これにより，通常AR(Auto Regressive) モデルを採用する．
まず，AR モデルのパラメータである次数は，適当な自然数 n に対して，nτ 毎に Yule-Walker 法を用いて推定を行う．パラメータ推定された AR モデルを用いて，時刻 t − τ から t までの使用量から t + 1 からt + τ の使用量を推定する．予測された CPU 使用量をĈ(t + 1), Ĉ(t + 2), · · · , Ĉ(t + τ ) とすると，これらを要素毎に時間方向に平均したベクトル Ĉm (t + τ ) が，次の時間ステップにおける CPU 使用量の平均値である．の Q-learning よりも早く最適な行動価値関数を学習できる．

3.2.2 時間ステップ，状態，行動提案方式の基本的な変数を表 1 に示す．M Xc , M Xm
は，k 番目の物理サーバを Sk とすると，(1, k) 要素をM Xc (Sk ), M Xm (Sk ) と表す．また，C(t), M (t), P (t)は，i 番目の要素をそれぞれ ci (t), mi (t), pi (t) と表す．
ここで，CPU 使用量は今回は使用率と同等と考え，
M Xc の要素は全て 100，ci (t) は 0 から 100 までの整数値を取るものとする．M Xm の要素と mi (t) の単位はメガバイトとする．pi (t) は，i 番目の Linux コンテ
ナが k 番目の物理サーバに配置されている場合，値 k をメモリについても同様で，予測した使用量の平均値をM̂m (t + τ ) とする．
従って，状態 st に対して行動 at = P を選択したと仮定した時，予測される 1 ステップ先の状態は次の通り．
ŝt+τ = (Ĉm (t + τ ), M̂m (t + τ ), P )取るものとする．
強化学習では時刻は離散的で，行動により次の時刻のにより状態繊維することを保証するため，時間ステップ3.2.4 期待報酬モデル
1 ステップ先の状態を予測した際に報酬量が計算できは 1 ステップ毎のアルゴリズム計算時間に，最大のライるよう，期待報酬モデルを定式化する．期待報酬モデル

ブマイグレーション所要時間 αmgt maxk M Xm (Sk ) をは，報酬量が大きければ大きいほど機器集約率が向上す足した値 τ と設定する．

るように設計する必要がある．よって，計算資源要求満状態遷移が生じる必要がある．よって行動である再配置

時刻 t における状態 st は，t−τ から t までの Linux コ

足度である，物理サーバ計算資源使用の余剰から Linuxm
ンテナ i の CPU ／メモリ使用量の平均値 cmi (t), mi (t)コンテナ停止ペナルティを差し引いた値から，さらに物を (1, i) 要素に持つ 1 × nco ベクトル Cm (t), Mm (t) と，理サーバ数増加によるペナルティを差し引いた値を期

配置位置 P (t) の組とする．行動は次の時間ステップ待報酬として定式化する．計算資源要求満足度とペナル

t + τ における配置位置とする．配置位置の集合を Pa

ティをどの程度重視するかを調整できるよう，これらはとすると，状態と行動は次のように表せる．

重み付きで足しあわされるようにする．

st = (Cm (t), Mm (t), P (t))
at = P ∈ Pa

まず，物理サーバ計算資源使用の余剰を定式化する．
時刻 t から t + τ の間に，物理サーバ k 上に Linux コン
テナ i が配置されている場合は 1，それ以外の場合は 0を取る変数を ceki と置く．また，時刻 t から t + τ の間

に，物理サーバ k が Linux コンテナ i のライブマイグ

配置されている物理サーバ台数を h(t + τ ) とすると，物レーション送信元である場合は 1，それ以外の場合は 0

理サーバ数増加ペナルティは次のように書ける．

を取る変数を mgski ，宛先に関する同様の変数を mgdkiph (t + τ ) =と置く．この時，時刻 t から t + τ における物理サーバ

k の CPU 使用量の平均値 SCkm (t + τ ) は，ライブマイグレーション影響を合わせると次の通り．

式 (1), (2) を合わせると，状態と行動が決まれば報酬

rt+τ = ws Rs (t + τ ) − wh ph (t + τ )αmgt (smgski αmgc
mi (t)τ)}d+mgdki αmgc
(mi (t))2

なお，ws , wh は ws + wh = 1 を満たす正の値であり，+∑(2)を次のように算出できる．

nco {∑kSCm(t + τ ) =ceki cmi (t + τ )i=1h(t + τ )ns

計算資源要求満足度と物理サーバ台数減少のどちらを優先するかを調整可能な定数である．

内の第一項は，物理サーバ k 上の Linux コンテナの使用量合計，第二項は送信のための使用量，第三項は宛先のための使用量である．

SCkm (t+τ ) と同様のメモリに関する値を SMkm (t+τ )とする．この時 SCkm (t + τ ), SMkm (t + τ ) を (1, k) 要素に持つ 1 × ns ベクトルを SCm (t + τ ), SMm (t + τ ) と置くと，時間ステップ t + τ における物理サーバの計算
資源余剰 rs (t + τ ) は，次の通り．
1(M Xc − SCm (t + τ ))InTs
Nc
1+(M Xm − SMm (t + τ ))InTs
Nm

3.2.5 更新則と行動選択
環境モデルを利用して行動価値関数を学習する更新則と，行動価値関数に基づく行動選択を定式化する．状態st を観測した後，行動 P を選択したと仮定して，状態遷移モデルに基いて 1 ステップ先の状態 ŝt+τ を推定する．そして，期待報酬モデルから推定報酬 r̂t+τ を算出する．ここまでで得られた標本 (st , at , r̂t+τ , ŝt+τ ) を用いて，以下の更新則で行動価値関数を更新する．

Q(st , P ) ← Q(st , P ) + α[r̂t+τ + γ maxQ(ŝt+τ , P ′ )′rs (t + τ ) =P− Q(st , P )]これを P ∈ Pa について計算し，以下のようにグリー

ここで，Nc , Nm は CPU 使用量とメモリ使用量の大きさの影響を，最大値 1 に揃える正規化定数．また，InTs

ディに行動を選択する．

at = arg max Q(st , P )は全ての要素が 1 の 1 × ns ベクトル．

P

次に，Linux コンテナ停止ペナルティを定式化する．
時刻 t で Linux コンテナ i をライブマイグレーションすることを決定した場合 1，それ以外の場合は 0 を取る変数を mgfi (t) と置く．この時 mgfi (t) = 1 なる Linux

4 まとめと今後の課題
本研究は，ライブマイグレーション影響を定量的に考コンテナは，時刻 t + (αmgt − αf t )mi (t) から αf t mi (t)慮した Linux コンテナ再配置方式確立を目的として行だけ停止する．この停止の間はそれだけ計算資源要求にわれた．計算資源要求の変動幅が大きい場合でも長期的応えられていないと見なせるため，停止によるペナルに見て機器集約率が向上するよう，制御手法の一種であティ ps (t + τ ) は次の通り．

る強化学習を適用するアプローチを選択し，方式を提案

ps (t + τ )nco∑
mgfi (t) αf t mi (t) { ci (t + (αmgt − αf t )mi (t))
=τ
Nc
i=1
mi (t + (αmgt − αf t )mi (t)) }+Nm

した．
ライブマイグレーション影響に関する (課題 1) に対しては，計測実験から，Linux コンテナのメモリ使用量から再配置位置決定に関わるライブマイグレーション影響を予測できることが分かった．再配置パターン決定に関する (課題 2) に対しては，従来手法では対応できない，従って，計算資源要求満足 Rs (t + τ ) は次の通り．

ライブマイグレーション影響，Linux コンテナの計算資

Rs (t + τ ) = rs (t + τ ) − ps (t + τ )源使用の変動の双方を考慮しないと機器集約率を向上で(1)きない場合にも適用できることが分かった．

続いて，物理サーバ数増加によるペナルティを定式化

しかしながら，いくつか残された課題も存在する．ラする．時間ステップ t + τ において，Linux コンテナがイブマイグレーション予測においては，メモリ使用量に対する依存関係までは把握できたものの，その定量的な値までは正確に予測することができない．さらに，ネットワーク帯域への影響については，依存関係についてもモデル化できていない．今後は，ネットワーク帯域まで含めた計測を行い，定量的な予測モデルを構築する必要がある．
再配置パターン決定においては，IaaS 規模が大きくなると学習速度と計算速度が実用に耐えない可能性がある．IaaS 規模が大きい場合，状態集合がベクトルの組で表されていることから，同じ状態を観測する頻度が低くなり，学習速度が低下する．また，行動集合の大きさがnncos と大きいため，時間ステップ毎の計算時間が増大する．今後は，学習速度を向上する汎化や，計算する行動集合の刈り込みによる計算時間の削減などにより改善する必要がある．
今後はこれらの課題を解決した後に，従来方式との比較実験により提案手法の評価を行い，提案手法の有効性を確認したい．

参考文献[1] Docker,
Inc:Docker,
https://github.com/docker/docker[2] Amazon, Inc: Amazon EC2 Container Service,https://aws.amazon.com/jp/ecs/[3] Google, Inc:
Googler Container Engine,
https://cloud.google.com/container-engine/[4] Jennings, B., Stadler, R.: Resource Management in Clouds: Survey and Research Challenges, Journal of Network and Systems Management, Vol. 23, No. 3, pp. 567-619 (2015)[5] Mirkin, A., Kuznetsov, A., Kolyshkin, K.: Containers checkpointing and live migration, Proceedings of the Linux Symposium , Ottawa,Canada (2008)[6] Verma, A., Kumar, G., Koller, R.: The cost ofreconfiguration in a cloud, Proceedings of the 11th
International Middleware Conference Industrialtrack, pp. 11-16, Bangalore, India (2010)[7] Sharma, U., Shenoy, P., Sahu, S., Shaikh, A.:
A Cost-Aware Elasticity Provisioning System for
the Cloud, 31st International Conference on Distributed Computing Systems, pp. 559-580, Minneapolis, USA (2011)[8] Zhani, M.F., Zhang, Q., Simon, G., Boutaba,
R.: VDC planner―dynamic migrationaware vir-tual data center embedding for clouds, Proceedings of 2013 IFIP/IEEE International Symposium on Integrated Network Management, pp. 1825, Sophia Antipolis, France (2013)[9] Sutton, RS., Barto, AG.: Reinforcement Learning, MIT Press, Cambridge, MA (1998)[10] xemul: p.haul, https://github.com/xemul/p.haul