Nutanix Community Edition（ce-2015.11.05-stable）でライブマイグレーション再び（その1）

![mig_title.png](https://qiita-image-store.s3.amazonaws.com/0/84474/23507094-be98-ba7a-ead8-5e7170da0848.png)


[Nutanix Advent Calendar 2015](http://www.adventar.org/calendars/1124)，12月13日分としての投稿になります。
**本記事の内容はこの日付時点の情報（ce-2015.11.05-stable）に基づいています。そのため，今後新しいバージョンが提供された場合に，当該記載と矛盾が生じる場合がありますのでご注意ください。また，さわりはじめたばかりで認識誤り等があるかもしれません。おかしい，なんか違う等ありましたらご一報を。**

# はじめに
以前のNutanix CEバージョンでマイグレーションを試した際には，[いくつか制約とマイグレーション後の問題](http://qiita.com/hanakara_milk/items/05cec6fb60bd97df145a)を抱えていました。
そこで，新しくリリースされたce-2015.11.05-stableでどう変わったのかを見ていきます。

# ce-2015.11.05-stableより前のバージョンでのライブマイグレーションの挙動
## ce-2015.07.16-beta時点のライブマイグレーションの制約
ce-2015.07.16-betaでは，マイグレーション時，CPUの世代が異なるホスト間のマイグレーションに制約がありました。古い世代のCPUから新しい世代のCPUが搭載されたホストへはマイグレーションが可能でしたが，その逆はできませんでした。これはNutanix CEで利用するハイパーバイザーのAcropolis Hypervisor（以下，AHV）がKVMをベースにしている以上，仕方ない制約とは思いつつ，ホスト故障時の交換時やDRサイト等へのマイグレーション時には問題になるケースも想定されていました。


## ce-2015.07.16-beta時点でのライブマイグレーションの問題
ce-2015.07.16-betaでは，マイグレーション時，Windowsに限ってネットワークの疎通が回復しない問題がありました。もしかすると，ce-2015.07.16-betaではマイグレーション時，新しいIPアドレスを振り直す挙動をしていたため，ネットワークプロファイルが新しくなり疎通ができなくなっていたのかもしれませんが，いずれにせよマイグレーション後は，Windowsを再起動しない限り利用できない状況になっていました。

# ce-2015.11.05-stableでのライブマイグレーションの挙動の改善
ce-2015.11.05-stableでは，上記の制約と問題について解決されています。まずは，ce-2015.07.16-betaのライブマイグレーションの制約面について見ていきます。青色で囲んだホストがXeon E5-2680搭載ホスト，緑色で囲んだホストがXeon X5670搭載ホストです。

![mig01.png](https://qiita-image-store.s3.amazonaws.com/0/84474/e87a8a14-5339-701d-5bf5-e28b30a82a8e.png)

|ホストIPアドレス|搭載CPU|アーキテクチャ名|
|--:|--:|--:|
|192.168.100.100|Xeon E5-2680|Sandy Bridge|
|192.168.100.101|Xeon X5670|Westmere-EP|
|192.168.100.102|Xeon X5670|Westmere-EP|
|192.168.100.103|Xeon E5-2680|Sandy Bridge|


## 旧世代CPU搭載ホストから新世代CPU搭載ホストへのマイグレーション
こちらのマイグレーションは，以前からマイグレーション可能なケースです。今回の確認では，以下のようなCPU世代のホスト間でのマイグレーションを試します。
### Xeon X5670搭載ホスト（Westmere-EP）からXeon E5-2680搭載ホスト（Sandy Bridge）へのマイグレーション
Windows 7のVMが，192.168.100.101のノード上で稼動しています。これを，192.168.100.100のホストにマイグレーションします。
![mig02.png](https://qiita-image-store.s3.amazonaws.com/0/84474/1f135984-cb6b-f383-b61d-e57529e120e0.png)

マイグレーション操作が受け付けられ，マイグレーションが開始されました。無事にマイグレーションされました。
![mig03.png](https://qiita-image-store.s3.amazonaws.com/0/84474/ffec064d-36ae-ccce-b960-fc0475ca2ca3.png)

マイグレーションしたWindows 7のVMは，192.168.100.92が割り当てられています。PRISMを操作している端末から192.168.100.92にpingを打ち続けて監視していると，1回だけタイムアウトしていますが，それだけでマイグレーションが正常にできており，大きな問題にはならないレベルだと思います。
![スクリーンショット 2015-12-09 00.18.10.png](https://qiita-image-store.s3.amazonaws.com/0/84474/676d42e2-d780-71d1-2d33-6e2591136bef.png)

## 新世代CPU搭載ホストから旧世代CPU搭載ホストへのマイグレーション
こちらのマイグレーションは，以前では制約がありマイグレーションが不可能なケースです。今回の確認では，以下のようなCPU世代のホスト間でのマイグレーションを試します。
### Xeon E5-2680搭載ホスト（Sandy Bridge）からXeon X5670搭載ホスト（Westmere-EP）へのマイグレーション
今度は，Windows 7のVMが，192.168.100.103のノード上で稼動しています。これを，192.168.100.101のホストにマイグレーションします。
![mig04.png](https://qiita-image-store.s3.amazonaws.com/0/84474/45403ca5-aac3-ae85-3771-d8a86a897992.png)

マイグレーション操作が受け付けられ，マイグレーションが開始されました。無事にマイグレーションされました。旧世代CPU搭載ホストから新世代CPU搭載ホストへのマイグレーションの際に取得したスクリーンショットより幾分遅いタイミングでスクリーンショットを取っているため，IPアドレスを付け替えが丁度発生している最中で，VMのIPアドレスが一時的に空白になっています。
![mig05.png](https://qiita-image-store.s3.amazonaws.com/0/84474/a3b1e0e0-2f0e-1320-7db2-960507cb0454.png)

マイグレーションしたWindows 7のVMも，192.168.100.92が割り当てられています。先ほどと同様にPRISMを操作している端末から192.168.100.92にpingを打ち続けて監視していると，やはり同じく1回だけタイムアウトしています。
![スクリーンショット 2015-12-09 00.12.42.png](https://qiita-image-store.s3.amazonaws.com/0/84474/307b9790-3503-e193-3101-664922136da6.png)

# まとめ（ce-2015.07.16-betaで発生していたライブマイグレーションの制約の改善）
上記のとおり，ce-2015.11.05-stableにおいては，異なる世代のCPUを搭載した複数のノードによるヘテロな環境においても，問題なく運用できることがわかりました。VMware vSphereではEVCによりこの手の問題は解決済みですが，Nutanix CEのAHVがベースとしている本家のKVMでは，なかなかこのへんの問題がクリアが難しいのでAHVでもムリかなー？と期待していませんでしたが，良い方向に予想を裏切る結果となりました。

CPUの世代が混在した環境においても，ライブマイグレーションが問題なく動作するとなると，現時点でのメインストリームサーバーではない，1世代，2世代落ちのサーバーでも運用できることから，Nutanix CEを導入する環境にも幅が拡がり，マルチノード環境の構築の一助にもなりそうです。

[次回](http://qiita.com/hanakara_milk/items/025cd2088786d8c99f9f)は，引き続きマイグレーションの確認で，マイグレーション時，Windowsでネットワークの疎通が回復しない問題がce-2015.11.05-stableで改善されたか，それからマイグレーションの挙動の細かい変更点について，見ていきます。