2015年のNutanix アドベンドカレンダー 24日目です。
以前に、Nutanix CE On Demand の Blueprint を使用して、
Ravello クラウドにマルチノードクラスタを構成してみました。
荒い手順ですが、こんな感じです。
今回は、Ravello の Nutanix CE Multi-Node Cluster で、Live Migration をしてみます。
4 Node の Nutanix クラスタで、Ravello UI からはこのように見えます。
そして、Prism でも Acropolis Hypervisor(AHV)が4台あることがわかります。
VM は、ホストそれぞれの CVM のほかに、2台(vm01、vm02)作成しました。
Live Migration 失敗編
Multi-Node クラスタを構成したので、とりあえず Live Migration してみました。
vm01 を、10.1.1.101 という AHV に Migration しようとしています。
vm01 を、10.1.1.101 という AHV に Migration しようとしています。
しかしエラーで失敗してしまいました。Details を開いてみると・・・
エラーメッセージは下記。
Operation failed: Traceback (most recent call last): File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/task/base_task.py", line 492, in _resume File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/hypervisor/host.py", line 70, in wrapper File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/vm/migrate_task.py", line 113, in _run File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ self.gen.next() File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/vm/migrate_task.py", line 110, in _run File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/vm/migrate_task.py", line 239, in _migrate File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/hypervisor/kvm/libvirt_connection.py", line 120, in wrapper File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/hypervisor/kvm/migrate_mixin.py", line 231, in migrate_vm libvirtError: internal error: Attempt to migrate guest to the same host 564dadcc-a795-99fc-f2ea-24afead600c3
さらに、CVM にログインして acli で Live Migration しても同様のエラーになりました。出力の末尾を見ると、「~00c3」という ID の AHV ホストが重複しているように見えているようです。
nutanix@NTNX-0d740ca1-A-CVM:10.1.1.111:~$ acli vm.migrate vm01 live=true host=10.1.1.101 vm01: pending vm01: kUncaughtException: Traceback (most recent call last): ----- vm01 ----- kUncaughtException: Traceback (most recent call last): File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/task/base_task.py", line 492, in _resume File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/hypervisor/host.py", line 70, in wrapper File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/vm/migrate_task.py", line 113, in _run File "/usr/lib64/python2.6/contextlib.py", line 23, in __exit__ self.gen.next() File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/vm/migrate_task.py", line 110, in _run File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/vm/migrate_task.py", line 239, in _migrate File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/hypervisor/kvm/libvirt_connection.py", line 120, in wrapper File "/home/afg/src/main/builds/build-ce-2015.11.05-stable-release/python-tree/bdist.linux-x86_64/egg/acropolis/hypervisor/kvm/migrate_mixin.py", line 231, in migrate_vm libvirtError: internal error: Attempt to migrate guest to the same host 564dadcc-a795-99fc-f2ea-24afead600c3
問題点の確認
AHV の UUID を確認してみます。
今回の Multi-Node Cluster に含まれるホストの UUID
今回の Nutanix CE は、4台すべて install ユーザで再ログインして Nutanix CE を再インストールしなおしたものです。AHV の UUID はすべて別になっているので問題なそうです。
nutanix@NTNX-0d740ca1-A-CVM:10.1.1.111:~$ acli host.list Hypervisor address Host UUID Schedulable 10.1.1.101 e2384cba-2ac3-4482-94c4-37e938ab6f82 True 10.1.1.102 12ad07a4-8e33-4632-b07e-c629d0f8f290 True 10.1.1.103 09cd92c9-4c75-4156-a77d-87be59f25d47 True 10.1.1.104 fbdaa099-9a00-4df6-af01-725cdc9f5309 True
しかし、AHV から CVM にログインして UUID 確認すると、AHV ホストの BIOS がもつ UUID (virsh sysinfo や dmidecode で表示される)は、Nutanix CE を再インストールしても変更されていませんでした。
※下記はためしに 1台だけ確認していますが、全台おなじ「~00C3」です。
※下記はためしに 1台だけ確認していますが、全台おなじ「~00C3」です。
nutanix@NTNX-0d740ca1-A-CVM:10.1.1.111:~$ ssh root@10.1.1.101 Last login: Sat Nov 21 04:50:56 2015 [root@NTNX-3ab8ddaa-A ~]# virsh list Id Name State ---------------------------------------------------- 2 NTNX-3ab8ddaa-A-CVM running 3 d103da66-0009-4439-81f6-80c7302b0bf5 running [root@NTNX-0d740ca1-A ~]# virsh sysinfo | grep uuid564DADCC-A795-99FC-F2EA-24AFEAD600C3
AHV の、dmidecode を見ても UUID は「~00C3」です。
[root@CE-Ravello-A ~]# dmidecode | grep -i uuid UUID: 564DADCC-A795-99FC-F2EA-24AFEAD600C3
Nutanix CE の Blueprint のホストの UUID
Blueprint の、 Nutanix CE シングルクラスタの AHV ホストを確認してみると、やはり BIOS の UUID が「~00C3」でした。
nutanix@NTNX-bb10a8de-A-CVM:10.1.1.11:~$ acli host.list Hypervisor address Host UUID Schedulable 10.1.1.10 7591109c-c822-43cd-8aa2-9ecd5327edef True nutanix@NTNX-bb10a8de-A-CVM:10.1.1.11:~$ ssh root@10.1.1.10 Last login: Thu Dec 24 02:56:45 2015 from 192.168.5.254 [root@CE-Ravello-A ~]# virsh list Id Name State ---------------------------------------------------- 2 CE-Ravello-A-CVM running [root@CE-Ravello-A ~]# virsh sysinfo | grep uuid564DADCC-A795-99FC-F2EA-24AFEAD600C3 [root@CE-Ravello-A ~]# dmidecode | grep UUID UUID: 564DADCC-A795-99FC-F2EA-24AFEAD600C3
Ravello では、Library から VM を配置すると VM の UUID は自動的には変更されないようです。そのため、Nutanix CE の VM に設定された UUID を変更する必要があります。
Nutanix CE VM の UUID 変更
Ravello UI で、VM の UUID を指定できるので変更してみます。
Nuanix CE クラスタの停止
まず、稼働中の CVM 以外の VM をすべて停止します。
nutanix@NTNX-0d740ca1-A-CVM:10.1.1.111:~$ acli vm.list VM name VM UUID vm01 72b0dc53-2c90-481e-89d8-35bc260f7067 vm02 d103da66-0009-4439-81f6-80c7302b0bf5 nutanix@NTNX-0d740ca1-A-CVM:10.1.1.111:~$ acli vm.shutdown vm01 vm01: pending vm01: complete nutanix@NTNX-0d740ca1-A-CVM:10.1.1.111:~$ acli vm.shutdown vm02 vm02: pending vm02: complete
そしてクラスタを停止します。
nutanix@NTNX-0d740ca1-A-CVM:10.1.1.111:~$ cluster stop
さらに Ravello で Nutanix CE Multi-Node の Application をいったん停止しました。
VM の UUID の変更
※4台それそれ、設定変更します。
Ravello の Canvas で VM を選択して、General → Advanced Configuration で・・・
UUID を「~00C3」から重複しない値に変更して、「OK」→SAVE します。
※今回は UUID の末尾だけ変更しました。
Application の UPDATE ~ クラスタ起動
最後に、Application を UPDATE してから・・・
Start Application で起動します。
VM が起動したら、CVM にパブリック IP アドレスで SSH ログインしてクラスタを起動します。
nutanix@NTNX-0d740ca1-A-CVM:10.1.1.111:~$ cluster start
Live Migration の確認。
AHV ホストの BIOS UUID が変更されました。
nutanix@NTNX-0d740ca1-A-CVM:10.1.1.111:~$ ssh root@10.1.1.101 Last login: Thu Dec 24 04:17:37 2015 [root@NTNX-0d740ca1-A ~]# virsh sysinfo | grep uuid564DADCC-A795-99FC-F2EA-24AFEAD60001 [root@NTNX-0d740ca1-A ~]# dmidecode | grep UUID UUID: 564DADCC-A795-99FC-F2EA-24AFEAD60001
VM を起動して、ふたたび Migration してみます。
今度は成功しました。Ravello 環境で、Nutanix CE の Live Migration ができました。
しばしば、接続エラーらしきものが出ますが、とりあえず使えています・・・
以上。メリークリスマスです。