Nutanix Community Edition（ce-2015.07.16-beta）へのアップデート（1-click upgrade）

現地時間？の7月19日付けで[Nutanix Community Edition（ce-2015.07.16-beta）がリリース](http://qiita.com/hanakara_milk/items/296606350b5563e18a1d)されました。
![スクリーンショット 2015-07-20 08.25.34_R.png](https://qiita-image-store.s3.amazonaws.com/0/84474/868040b5-8332-6afa-ddfd-2bc75228b057.png)


さっそく，アップデートを開始してみたいと思います。Nutanix CEのアップデートには以下の4つのカテゴリーがあります。

* NOS（NOSは，Nutanix OSの略）
* Hypervisor
* Firmware
* NCC（NCCは，Nutanix Cluster Checkの略）

今回のce-2015.07.16-betaへのアップデートは，NOSのカテゴリーにあたります。Nutanixは，自動と手動でのアップデート手段を提供し，かつ1クリックでアップデートが可能だとしています。

>
The Nutanix Xtreme Computing Platform supports automatic and manual upgrades, also known as 1-click upgrade, available through the web console Upgrade Software feature.


# Nutanix CEのアップデートにおいて参考にした資料

【要Nutanix Next Communityログイン】[Web Console Guide](https://portal.nutanix.com/#/page/docs/details?targetId=Web_Console_Guide-NOS_v4_1:Web_Console_Guide-NOS_v4_1)　←NEW!!
> PRISM上から行う，Nutanix CE及びAcropolis hypervisorの各種設定項目について，これは一体何を設定するのか，何に影響するのか等について，少しずつ分からない部分が出始めているので，リファレンスマニュアル的なものが必要な段階に入りました。今のところ，NOSのアップデートについては，この資料が一番かな？日本語版ないかなー…

***

# NOSアップデートの流れ
NOSのアップデートには，大きく以下の2つの作業が必要になるようです。
1.NOSのアップデート準備
2.NOSのアップデート実施

今回は，手動でのアップデートではなく，自動アップデートを選択します。なお，自動でのアップデートに当たっては，アップデート用のデータをインターネットから自動でダウンロードしてインストールするため，インターネットに接続されている必要があります。
少なくとも，以下に示すサイトにはアクセスできるよう，Proxyやファイアウォールの設定についても確認しておく必要があります。

>
*.compute-.amazonws.com:80
release-api.nutanix.com:80


# 1．NOSのアップデート準備
本来，NOSのアップデートにはいくつか準備が必要となっていますが，少なくともNutanix CE版のPublic Betaプログラムの公開初版であるce-2015.06.08-betaは，商用版のNOS 4.1.2からのForkであるため，Nutanix CE ce-2015.06.08-betaバージョンのユーザーは，ほとんど準備らしき準備が必要ないと思われます。

従来のアップデートでは，NOSのアップデート前にNCCでのチェックを行う必要がありますが，まずそのNCC自身のアップデートが必要になるほか，PRISMについてもアップデート処理の正しい表示と実行を行うため先にアップデートが必要になる場合があるようです。

NCCのバージョンについては，コマンドで確認する方法が調べきれていませんが，PRISM上から確認することができます。画面，右上のadminと言う文字と人のアイコンを選択し，About Nutanixを選択すると，Nutanix CEのクレジットが表示され，そこにNCCのバージョンも表示されます。
![01_ncc_version.png](https://qiita-image-store.s3.amazonaws.com/0/84474/f7b4daa5-ee67-8432-fc84-6f021495eda4.png)


## NCC（Nutanix Cluster Check）の実行
ともあれ，事前にNCCによるHealth Checkを行っておきます。
NCCは商用のNutanixでも利用されているツールでかなりのチェック項目があります。コマンドラインから実行すると，ディスクの1本からクラスター全体のHealthまでェックします。

NCCは，CVM上か実行します。マルチクラスターを構成している場合は，どのノードから実行しても問題ありません。いずれか1つのノード`ncc health_checks run_all`で実行すると，クラスターに所属するすべてのノードのHealthを取得してくれます。この辺はNutanixの強みでしょうか。
![02_ncc_result.png](https://qiita-image-store.s3.amazonaws.com/0/84474/9a5e87a5-b25a-0848-609e-6a2294178e19.png)


## NCCの実行結果
一応「Web Console Guide（Cluster Management / Software and Firmware Upgrades / Upgrading NOS: Automatic Download and Installation）54ページ」にヤレと書いてあったのでやってみましたが（このマニュアルは商用版のNutanix用ですがCommunity Editionでもおおよそは同じなので），WarningとFailがそれぞれ1個ずつ出ました。

Failの内容は「CVM memory is less than 16 GB (12330660 kB)」とあり，他のノードのメモリ量との比較が表示されていました。

```lang:NCC_FAIL
Detailed information for cvm_memory_check:
Node 192.168.100.111:
FAIL: CVM memory is less than 16 GB (12330660 kB)
Detailed information for http_proxy_check:
INFO: No proxy configured.
Detailed information for cvm_same_mem_level_check:
WARN:
[u'192.168.100.111'] are configured at  12330660 kB memory level
[u'192.168.100.131'] are configured at  16467356 kB memory level
[u'192.168.100.101'] are configured at  16467172 kB memory level
[u'192.168.100.121'] are configured at  16467412 kB memory level
Detailed information for vm_classify_capacity:
```

こうして見ると，CVMは自動的に16GBメモリが割り当てられていることがわかります。しかしNutanix CEの最小動作要件である16GBしかメモリを搭載していない場合は，12GBをCVMに割り当てているようで，その為にこのNCCでエラーとなっているようです。

しかし，Nutanix CEのメモリに関する最小動作要件は16GBとハッキリと明示されていたので，Nutanix側のチェックツールの判定誤りか，本来緩和されるべきCommunity Editionのチェックに商用版のチェックがそのまま当たっているためにエラーとなってると判断して，次の工程に進めることを決めました。

注意
>
状況から問題なさそうだと判断しましたが，FAILの内容やFAIL数等によっては，アップグレード作業を見合わせ，原因の究明を行った方がよい場合も当然ありますので，NCCの内容は一応よく確認したほうが無難です。ヤバそうなFAILを見つけたら，自力で解決できる人は自力で，そうでないならNutanix Next Communityで質問するのが無難です。

## PreUpdateの実行
今度は，PRISMからの操作です。PRISMのメニュー，画面右上，歯車アイコンから「Upgrade Software」を選択します。
![03_start_update.png](https://qiita-image-store.s3.amazonaws.com/0/84474/f0429c5c-8da9-42cf-2b08-1288676e42e0.png)
　
　

そうすると，Upgrade Softwareのウィンドウがモーダルポップアップします。CURRENT VERSIONが2015.06.08なっており，AVAILABLE COMPATIBILITY VERSIONSが2015.07.16と表示されているハズです。もし，アップデートするものがなければ，「No available versions for upgrade.」と表示されます。
![04_download.png](https://qiita-image-store.s3.amazonaws.com/0/84474/d2a6ab24-a145-352b-1a3e-8f35880958d3.png)
　
　

インストール対象のバージョンを確認して，Downloadを選択すると，ダウンロードの実行確認の後，ce-2015.07.16-betaのダウンロードが始まります。ダウンロードが完了すると，そのままUpgrade Software画面内の表示で，AVAILABLE COMPATIBILITY VERSIONSの2015.07.16のボタンが，今度はUpgradeに変わります。
![05_download_done.png](https://qiita-image-store.s3.amazonaws.com/0/84474/5afd281f-81c8-210c-80ac-d259954a6675.png)
　
　

ここまで完了すると，PreUpgradeかUpgrade Nowのいずれかが実施可能になります。ここでは，念のためPreUpgradeを実施します。Upgradeのボタンを選択すると，プルダウンのようなメニューが表示されるので，PreUpgradeを選択します。
![06_select_preupg.png](https://qiita-image-store.s3.amazonaws.com/0/84474/4c9a1ea5-2b8c-f42f-4e98-8fc73e0daea2.png)
　
　
PreUpgradeは，確認画面を見る限り「Do you want to run pre-upgrade test only ?」とあることから，実際のアップグレードではなく，アップグレードのテストをPRISM上から実行しているようですが，内部的にはNCCチェックと似たようなことをしているかもと思いつつも実施しておきます。
![07_yes_preupg.png](https://qiita-image-store.s3.amazonaws.com/0/84474/af29ab3c-1f1e-3cce-f75a-768fb323652c.png)
　
　
PreUpgradeの進行状況は，同じ画面にプロレスバーとともに表示されるので，じっと待つか，左下の「Nothing to do？」で時間を潰します…と言ってもPreUpgradeは，ほとんど時間はかかりません。
![08_preupg_done.png](https://qiita-image-store.s3.amazonaws.com/0/84474/129e4223-7b49-ff8c-e82f-1852bd742d8d.png)
　
　
100%になるのを見届けて，いよいよPreではないアップグレードの開始ですが，ここでCloseを選択すると画面が閉じてしまい，再びPRISMのメニュー，画面右上，歯車アイコンから「Upgrade Software」を選択しても，やはりこの画面が出てしまいます。そのためPreUpgradeかUpgrade Nowかの選択画面に戻る時は「Back to Versions」を選択し移動します。
　
# 2．のアップデート実施
いよいよ，アップデート本番です。NCCを使ったHealthチェック結果はアレでしたが，PreUpgradeは問題ないハズなので，イケるハズと思い切ってアップデートを実施してみます。

## Upgrade Now
「Upgrade Software」の最初の画面に戻り，再びUpgradeのボタンを選択すると，プルダウンのようなメニューが表示されるので，今度はUpgrade Nowを選択します。
![09_select_upg.png](https://qiita-image-store.s3.amazonaws.com/0/84474/b4f22aca-21d2-aaa7-eab1-7ccfbd123f9e.png)
　
　
今度は「Do you want to upgrade 2015.07.16?」と最終の意思確認が行われるので，Yesで吶喊します。
![10_yes_upg.png](https://qiita-image-store.s3.amazonaws.com/0/84474/0297ee28-fdb4-59c2-bd32-f8ca48f5aed5.png)
　
　
モリモリとアップデートが始まります。途中，ローリングアップデートということで，進行状況が一定の部分まで到達すると，順番にCVMの再起動が行われる模様です。
![11_upg_progress.png](https://qiita-image-store.s3.amazonaws.com/0/84474/9beecfed-bb38-fa95-7c23-29d1411f6cee.png)
　
　
祈るような思いでしばらく待ちます。それなりには時間がかかるので再び，左下の「Nothing to do？」で時間を潰します。
![スクリーンショット 2015-07-20 05.31.17_R.png](https://qiita-image-store.s3.amazonaws.com/0/84474/3824b86e-d766-6092-995c-f5129d337ce0.png)
　
　
そして，ついに問題なくアップグレードが完了しました！！（ハマらなかったのは珍しい）
![12_upg_done.png](https://qiita-image-store.s3.amazonaws.com/0/84474/86f408e8-dfae-b692-e4a5-2850e147bf10.png)
　
　
そして，About Nutanixも併せて確認すると，バージョンが2015.07.16になっています。
![13_new_verchk.png](https://qiita-image-store.s3.amazonaws.com/0/84474/60233c6d-e3e2-728d-ebc8-09953dcbd1d8.png)
　
　
それから，アップデート作業中，何度かPRISMを追い出されました。PRISMへの再ログインは特に問題なくできますが，作業画面が閉じてしまっているので，再度PRISMのメニュー，画面右上，歯車アイコンから「Upgrade Software」を選択すると，アップグレードの進ちょく状況が確認できます。また，PRISMのメイン画面の上部，真ん中にある通知領域にもメッセージが表示されるので，こちらでアップグレードの進行状況を確認することもできます。
![14_appendix.png](https://qiita-image-store.s3.amazonaws.com/0/84474/870133e8-b30c-1ac8-c934-53c78bbbdb21.png)
　
　
# まとめ
結構ビビりながらアップデート作業を行っていましたが，Upgrade nowには，PreUpgradeの工程も含まれているため結果的には1クリックアップデートで問題ない感じでした。今後もコケることなく1クリックでアップグレードを続けられるなら，ホントにシステム管理者の負担を大きく減らすコトができるかもしれません。

なお，NOSのアップデートにおいて，起動中のVM停止作業は必要なく，全VMがあがったままの状態で問題ありませんでした。以下の記載に嘘偽りはなさそうです。そもそも分散ストレージや分散処理技術を中核に備えているNutanixなので，複数ノードの自動ローリングアップデート等は，比較的得意分野なのかもしれません。

>
Each node in a cluster runs the Nutanix operating system (NOS). When upgrades are available and you want to upgrade the cluster to a new NOS version, every node must be upgraded to that version.
Nutanix provides a live upgrade mechanism that allows the cluster to run continuously while a rolling upgrade of the nodes is started in the background.