[Part 3]Nutanix CE 2019.02.11のAHVを対応外のバージョンから無理やりアップグレードしたときに起きた問題と解決策

⏱この記事を読むのに必要な時間は約 4 分です。

続きモノとして書いていたのに3週間も放置してしまいました…。
Nutanix書籍第2弾の締め切り前でばたばたしていたんです( ;∀;)ノ
みなさん買ってください!(直球)

さて、前回の続きです。今回がラスト。

アップグレードがサポートされていないバージョン間のAHVでアップグレードした結果どうなったか?答えは、Pre-upgrade Checkは通ったものの、どのノードも進捗71%で進まなくなってしまいました。フェーズとしては”Installing bundle on the hypervisor”のところです。

“Installing bundle on the hypervisor”フェーズで何が行われているのかというのをものすごくざっくり言うと

  • AHVへの各種更新パッケージインストール
  • ノードの再起動

といった処理をしているはずです。いったいどの時点で処理がスタックしているのか、確認してみるために、まずは当該ホストのCVMとAHVにpingしてみました。すると

  • CVM:NG
  • AHV:OK

という状態でした。そこで、まずはAHVにSSHでログインし、CVMが起動しているかどうかを確認。

[root@NTNX-8d42e82f-A ~]# virsh list
Id Name State
----------------------------------------------------
1 NTNX-8d42e82f-A-CVM running

動いてました。でもpingは通らない。そこで、AHVからホスト内部の仮想スイッチ経由でCVMにアクセスするためのIPアドレス(192.168.5.2)にpingしてみると…通った。
そこで「あれー、CVM生きてるの?」と思ってSSHしてみると…別のノードのCVMにつながりました。

なぜこうなるのかというと、CVM Autopathing機能によって、ネットワーク疎通不能となったCVMの代わりに、他の生きているCVMにリダイレクトすることでI/Oを継続していた為です。

つまり、アップグレードが71%で止まったノードで何が起きていたかというと、CVMの電源はオンになっているけどネットワーク疎通できない状態になっていました。

目次

解決編

結局、最終的にやったことはとてもシンプルです。
デモ環境だから最悪壊れてもいいか…思いで、とりあえず virsh でCVMを停止。

[root@NTNX-8d42e82f-A ~]# virsh shutdown 1
Domain 1 is being shutdown

[root@NTNX-8d42e82f-A ~]# virsh list
Id Name State
----------------------------------------------------

止まりました。強制オフにしなくてもACPIシャットダウン命令が届いたようです。 

気を取り直してCVMを起動。

[root@NTNX-8d42e82f-A ~]# virsh start NTNX-8d42e82f-A-CVM
Domain NTNX-8d42e82f-A-CVM started

[root@NTNX-8d42e82f-A ~]# virsh list
Id Name State
----------------------------------------------------
2 NTNX-8d42e82f-A-CVM running

あとは、しばらく待っていたら勝手にアップグレードの手順が進みまして、CVMだけでなくホストのバージョンも無事上がってくれました。4台クラスターだったので、4台とも71%で止まり、毎回これを実行しました。

アップグレード完了前

[root@NTNX-e29752ab-A ~]# date; cat /etc/nutanix-release
Thu Apr 4 02:09:28 UTC 2019
el7.nutanix.20180123.170

アップグレード完了後

[root@NTNX-e29752ab-A ~]# date; cat /etc/nutanix-release
Thu Apr 4 02:10:04 UTC 2019
el7.nutanix.20190211.279

その後は問題なく動いていますが、やはり本来のポリシーにのっとって、Nutanix CEは最新版がリリースされる度にバージョンアップすることをおススメします!

Nutanix or ヤギ のことををつぶやきます。