2014年1月19日日曜日

OVM の「サーバー・プロセッサの互換性グループ」について。

今回は、Oracle VM Manager(OVMM) の
「サーバー・プロセッサの互換性グループ」 についてです。

Oracle VM Server (Xen ハイパーバイザ)のライブマイグレーション は、
異なるモデルの CPU を搭載した OVS の間で実行すると失敗することがあります。
※基本的には CPU の Family と Model がそろっている必要があるようです。

そこで、OVS を 「サーバー・プロセッサの互換性グループ」によって
搭載 CPU の種類ごとにグルーピングすることで
まちがって禁断のライブマイグレーションをしてしまうことを防止できます。
Oracle VM ユーザーズ・ガイドリリース 3.2.1
6.7 サーバー・プロセッサの互換性グループ
http://docs.oracle.com/cd/E40528_01/b71928/vmusg-svrpool-cpu-comp.html

6.7 Server Processor Compatibility Groups(英語)
http://docs.oracle.com/cd/E35328_01/E35332/html/vmusg-svrpool-cpu-comp.html

サーバー・プロセッサの互換性グループ の確認

OVMM のサーバプール ではなく、
サーバプールをまとめる「Server Pools」フォルダの Perspective で
「Server Processor Compatibility」を選択すると確認できます。



互換性グループの設定は、
サーバプール単位ではなく、OVMM 全体で管理されているようです。

OVMM が OVS を検出(Discover Servers...)したときに、
CPU ファミリー&型番(Model)ごとに自動的に互換性グループが作成されます。
そして、検出された OVS は自動的にグループに追加されます。
上の画面にもあるように、検出されたばかりの
まだどこのサーバプールに所属させていない(Unassigned Servers の) OVS も
該当する CPU の互換性グループに自動追加されます。

実際に OVS にログインして CPU 情報を見てみると、
デフォルトで作成される互換性グループ名と Family / Model が一致しています。

「Default_Intel_Family:6_Model:23」グループの4台中の2台
[root@ovs326-1 ~]# cat /proc/cpuinfo | grep -e model -e family | sort -u
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz

[root@ovs326-2 ~]# cat /proc/cpuinfo | grep -e model -e family | sort -u
cpu family      : 6
model           : 23
model name      : Intel(R) Core(TM)2 Duo CPU     E8400  @ 3.00GHz

「Default_Intel_Family:6_Model:58」グループのOVS
[root@ovs326-5 ~]# cat /proc/cpuinfo | grep -e model -e family | sort -u
cpu family      : 6
model           : 58
model name      : Intel(R) Core(TM) i3-3217U CPU @ 1.80GHz

「Default_Intel_Family:6_Model:69」グループのOVS
[root@ovs326-6 ~]# cat /proc/cpuinfo | grep -e model -e family | sort -u
cpu family      : 6
model           : 69
model name      : Intel(R) Core(TM) i3-4010U CPU @ 1.70GHz

互換性グループが安全装置となるため、
デフォルトでは、OVMM で異なるモデルの CPU 同士ではライブマイグレーションできません。
たとえば下記のような理由で、ライブマイグレーション先として
OVS が選択として表示されなくなります。
Server: ovs326-5, and server: ovs326-1, have CPUs in different compatibility groups: Default_Intel_Family:6_Model:58, Default_Intel_Family:6_Model:23.


ただし、互換性グループは追加作成できます。
異なる CPU 同士でもライブマイグレーション可能なことが確認できた OVS を
新規作成した互換性グループでまとめることができます。

サーバー・プロセッサの互換性グループ の作成

互換性グループ作成での設定項目は、
グループ名(Group Name)と 説明(Description)だけです。
CPU のモデルなどの指定はしません。



そして、その互換性グループに所属させる OVS を選択します。



ちなみに、OVS が所属できる互換性グループは1つだけなので、
別のグループにOVSを所属させた場合、もとのグループからは自動的に外されます。




CPU 種類混在の互換性グループでライブマイグレーション

ためしに、CPU の異なる OVS を 同じサーバプールにまとめて、
一つの互換性グループに所属させてみました。



そうすると、OVMM でライブマイグレーションを実行できるようになります。
下画面では、VM (oel5a-vm04)を、CPU が異なる OVS(ovs326-3、ovs326-5、ovs326-6)
をまたいで ライブマイグレーション してみました。

互換性グループが異なる場合は
そもそもライブマイグレーションが開始できませんでしたが、
同じ互換性グループに含めることでライブマイグレーションを
開始できるようになりました。



ただし、上の例だと「Completed」になっていますが失敗したりもします。
CPUモデルが異なる場合は、ちゃんと検証したうえで
互換性グループの変更をしたほうがよさそうです。


他プロダクトとの違い

VMware vSphere では EVC(Enhanced vMotion Compatibility)という機能があり、
CPU の違いをハイパーバイザで吸収(VM に見せる命令セットを制限)して
ライブマイグレーション(vMotion)しやすくしているようです。
Enhanced vMotion Compatibility (EVC) processor support
http://kb.vmware.com/kb/1003212
今とのところ Oracle VM では EVC のような機能はないようです。
異機種間でのライブマイグレーションに限っては、
挑戦的に利用シーンを増やして運用性を上げるより
安全にライブマイグレーション出来るようにグループ管理したほうがよいように思えます。

以上、互換性グループの話でした。

0 件のコメント:

コメントを投稿