2013年12月7日土曜日

Oracle VM で DRS。

こんにちは。

JPOUG Advent Calendar 2013
http://www.zusaar.com/event/1687004
の12月7日担当です。
昨年、これに参加するべくブログ始めてから1年たってしまいました。

今回は100%ネタがかぶらないであろう Oracle VM 3.x の DRS について
軟式に検証してみます。

DRS とは

DRS とは、正式には
Distributed Resource Scheduling (もしくは Scheduler) といいます。
Oracle VM  Server(以下、OVS)のサーバプールのなかで
稼働状況(CPU、メモリ、NWトラフィックの使用ぐあい)をもとに VM を自動再配置する機能です。
VM の再配置では、ライブマイグレーションが実行されます。
Oracle VM ユーザーズ・ガイド リリース3.2.1
6.5.1 分散リソース・スケジューラ(DRS) 

http://docs.oracle.com/cd/E40528_01/b71928/vmusg-svrpool-policies.html#vmusg-svrpool-drs
某 VMware vSphere の超有名な DRS と似ている・・・

DRSの構成

今回、OVS 4台で DRS 環境を構築してみました。

構築の流れは下記のような感じで、
すべて Oracle VM Manager から設定します。
  1. 共有ストレージに VM の仮想ディスクを配置しておく。
  2. ライブマイグレーションできる構成にする。
  3. Oracle VM のサーバプールの設定で、DRS を有効化する。
DRS 環境の構成イメージです。



Oracle VM Manager のネットワーク設定で
ライブマイグレーションができる状態にして、



サーバプールのポリシー設定で DRS を有効化します。



上記の構成イメージ図は、Oracle VM Manager からはこのように見えます。
サーバプールには OVS が4台あり、
Policy Type が 「Distributed Resource Scheduler」になっています。


※OVS と VM には、それらしい名前を付けてみました。

共有ストレージには、NFSを使用して
ここに VM の仮想ディスクを配置しています。
NFS のリポジトリを、すべてのOVS に接続しています。




DRS 試します。

一般的に実運用中の VM をライブマイグレーションする場合は、
負荷が少ないタイミング(営業時間外とか)を狙って実行することが多いと思います。

そして、ハイパーバイザ(物理サーバ)のバランシングが目的でライブマイグレーションするときは、
高負荷になっていない VM の方を移動する(逃がす)ことが多いです。

主な理由としては・・・
  • 高負荷サーバをライブマイグレーションすると時間がかかる。
    (更新されたメモリをライブマイグレーション中に同期したりするので)
  • 高負荷サーバをライブマイグレーションするとマイグレーション処理が失敗しそう。
    (メモリ更新が、ライブマイグレーションの転送処理に追いつかず失敗しそうで心配)
  • ライブマイグレーションの影響で VM で障害発生ないか心配。
    (「ライブマイグレーションがなんとなく不安」を含む)

そこで、Oracle VM の DRS では
高負荷VM 以外が、別の OVS にライブマイグレーションされやすいのか?
という観点で試してみたいと思います。



DRS 試してみました。

それでは、ためしに DRS してみます。

まず、VM 3台を1台の OVS(OVS#1) で起動しておきます。

DRS 環境での VM と稼働中の OVS の見方 についてですが、
DRS では、VM が自動的にどこかの OVS に移動してしまうので
VM の一覧を見るときはサーバプールのビューにするとわかりやすいです。

サーバプール(例では「svpool1」)を選択して
Perspective で「Virtual Machines」を選択すると、
プールに存在する VM(Name列)と OVS(Server列) のひもづけがわかります。



DRS を発動させるため
VM#1 でわざとCPU使用率を上げて放置します。
# while :; do true ;done
→1VCPUであれば user あたりが 100% 近くなります・・・



しばらく放置すると、DRS によりライブマイグレーションが開始されます。
パッと見でわかりにくいですが、ロックのマークがある OVS 間でマイグレーションされています。




DRS のみかた

ライブマイグレーションの実行履歴は「Job」タブで見られます。
「Created by」が Oracle VM Manager にログインしたユーザ(今回は admin)に
なっている Moving~ が手動ライブマイグレーションです。

DRSで自動ライブマイグレーションされた場合は、
ここが「@OvmAdmin」となります。



今日は 3回試してみて、結果は…
※毎回、手動ライブマイグレーションで OVS#1 にすべての VM を戻しています。

★1回目(1番下)
高負荷 VM#1 と 負荷のないVM#3 が他の OVS に移動した。
→期待とは違う・・・

★2回目(真ん中)
VM#2 と VM#3 が他の OVS に移動した。
→期待通り。

★3回目(一番上)
高負荷VM#1 が他の OVS に移動した…。
最初に VM#1 が移動されたため、それ以降はライブマイグレーションなし。
→期待とは違う・・・

本当は、期待通りになるのではないかと思いましたが、
なんと期待通りの結果にはなりませんでした。
(昨日までは割と期待通りだったのですが・・・)

ただ、そんなに回数を試していないので
必ずしも今回のようになるとは限らないかもしれません。
DRS って某V社のものも「必ずこう動く」という予測ができないですし・・・

微妙な結果でしたが、
ちょっと Oracle VM に興味を持ってもらえるとうれしいです。

以上、Oracle VM DRS の話でした。
明日の JPOUG Advent Calendar 2013 は yuu_tee さんです。よろしくおねがいします。

0 件のコメント:

コメントを投稿