ESXi上のNutanix CE AHVをアップデートした


ESXi上にNutanix CE AHVをインストールした」でインストールしたNutanix CE環境をアップデートしてみた。

トラブルポイントのまとめ

なんとなく手順を進めていったらいくつかキツイ問題が発生してアップデートプロセスが止まったりした。今回発生した問題は下記3点

・AHVのrootパーテーション容量が足らない
・AHV内の標準仮想マシン設定にあるPC Typeが初期値に戻るので既存の仮想マシンが起動しない
・AHV内のCVM仮想マシン設定にあるPC Typeがpc-i440fx-rhel7.3.0になり起動しない
・CVM仮想マシンのメモリが12GBだとサービスが起動しない

なお、調査の際に参考になったページ「Nutanix CE: Cannot Start VM」「Guest VM Running in Nested Nutanix CE on VMware vSphere Won’t Boot

CVM仮想マシン上のサービスが起動しないあたりは「PRISM SERVICES HAVE NOT STARTED YET. PLEASE TRY AGAIN LATER

実際に実施した手順はもっといろいろあったが、完了後に、たぶんこの順序で実施すれば大丈夫だったんだろう、というものを下記に手順として残す。

手順1 アップデータ入手

Download Nutanix CE, Docs, and Guides」から下記3ファイルをダウンロード。

・「Metadata for AOS, AHV upgrades and PC deployment」のce-2019.11.22-metadata.zipを展開してjsonファイルを取りだしておく
・「AOS Upgrade」(ce-2019.11.22-upgrade.tar.gzのまま)
・「AHV Upgrade」(host-bundle-el7.nutanix.20191030.415.tar.gzのまま)

手順2 CVM仮想マシンの自動起動を止める

この後、何回かNutanix CE仮想マシンを再起動する。その際にCVM仮想マシンの起動が完了するのを待っていると時間がかかるので、自動起動を止める。

「virsh list –all」でCVM仮想マシンのIDを確認して、「virsh autostart <ID> –disable」と実行すると自動起動が止まる。

手順3 Nutanix CE仮想マシンのディスク拡大

AHVのrootパーテーションの空き容量が足らない為アップデートが失敗する。

このため、vSphere側でNutanix CE仮想マシンのディスクサイズを拡大する。

標準の「ハードディスク1」が約7GBとなっている。

これを、12GBに増やす。

変更後、Nutanix CE仮想マシンを再起動する。

再起動後、vSphereのコンソールを開き「root」ユーザでログインする。デフォルトパスワードは「nutanix/4u」

ログイン後、現在のディスク使用状況と、システムディスクである/dev/sdaのパーテーション構成を確認する。

「df -h」と「fdisk -l /dev/sda」を実行する。

パーテーション変更は「fdisk /dev/sda」を実行して行う。

既存のパーテーションを「d」で消して、新しいパーテーションを作成しなおす、という形になる。

bootフラグのセットも忘れずに

最後は「w」で書き込みを実行する。

再起動しないと新しいパーテーションで認識してくれないので、再度Nutanix CE仮想マシンを再起動する。

再起動後、再度「fdisk -l /dev/sda」と「df -h」を実行してみると、fdiskの方は新しいディスクサイズで認識しているが、rootパーテーションはまだ古い容量のままとなっている。

「resize2fs /dev/sda1」を実行してファイルシステムの拡張を行い、新しいディスク容量が反映される。

手順4 CVM仮想マシンの自動起動を戻す

AHV内のCVM仮想マシンの自動起動設定を戻し、自動起動するようにする。

「virsh list –all」でCVM仮想マシンのNameを確認して、「virsh autostart <Name>」を実行する。(起動していない場合はIdが割り当てられていないので、Nameで指定する必要がある)

自動自動設定ができたかどうかは「/etc/libvirt/qemu/autostart/」にXMLファイルがあるかで確認する。

「virsh start <Name>」でCVM仮想マシンを起動するか、rebootでNutanix CE仮想マシンを再起動する。

手順5 AOSアップデート

Nutanixにログインして「設定」の「ソフトウェアアップグレード」にある「AOS」を開く。

「AOS base softwareバイナリをアップロード」のリンクをクリック

AOS BASE SOFTWAREメタデータファイルは「ce-2019.11.22-upgrade-metadata.json」
AOS BASE SOFTWAREバイナリファイルは「ce-2019.11.22-upgrade.tar.gz」
を指定する。

「今すぐアップロード」をクリックする。

上記の様になったらアップロード成功。

「Upgrade Now」を選択してアップデートを開始する。

アップグレードが進んでいきます。

ちなみに「Nothing To Do?」は下記の2048ゲームが表示されます。

途中、CVM仮想マシンの再起動などがあり、完了します。

手順6 Hypervisorのアップデート

Nutanixの「設定」の「ソフトウェアアップグレード」にある「Hypervisor」を選択。

「upload a Hypervisor Binary」をクリックし、下記の選択をして「今すぐアップロード」する。

HYPERVISOR メタデータファイル「host-bundle-el7.nutanix.20191030.415-metadata.json」
HYPERVISOR バイナリファイル「host-bundle-el7.nutanix.20191030.415.tar.gz」

続いて、「Upgrade Now」を実施する。

で、アップグレードが進んでいきます。

たぶん、下記の様な「71%」から30分以上待っても進まないと思います。

いまの状態はHypervisorはアップデートできたものの、その上のCVM仮想マシンが起動していない状態となります。

手順7 AHV上の仮想マシンの標準設定の修正

vSphere上でNutanix CEを稼働させた場合、標準設定の状態ではNutanix上で作成した仮想マシンが起動しません。

起動させるためには、「/var/cache/libvirt/qemu/capabilities/3c76bc41d59c0c7314b1ae8e63f4f765d2cf16abaeea081b3ca1f5d8732f7bb1.xml」 のalias=’pc’をpc-i440fx-rhel7.2.0の行に付け直します。

該当ファイルは下記の様な形になっていて、「alias=’pc’」がpc-i440fx-rhel7.3.0の行についています。

これを「pc-i440fx-rhel7.2.0」の行に「alias=’pc’」設定を移動させます。

手順としては、pc-i440fx-rhel7.3.0の行をpc-i440fx-rhel7.2.0書き換えて、既存のpc-i440fx-rhel7.2.0設定を削除するのが簡単でしょう。

画像

手順8 AHV上のCVM仮想マシン設定の修正

CVM仮想マシンの仮想マシンタイプ設定が「pc-i440fx-rhel7.3.0」に設定されていました。

設定の確認は「virsh dumpxml <name>|less」で行います。
設定変更は「virsh edit <Name>」となります。

viコマンドでxmlファイルが開かれますので、「pc-i440fx-rhel7.3.0」を「pc-i440fx-rhel7.2.0」に書き換えて保存します。

また、「<memory unit=’KiB’>~</memory>」のメモリ容量を増加させます。Nutanix CE標準だと最低28GBとなっているようです。

参考としてGUIから設定できるCVMに割り当てられる容量を以下に占めます。

なお、今回はxml書き換えで約26GBと設定しています。

この後、CVM仮想マシンを再起動します

面倒ならNutanix CE仮想マシンごとrebootします。

手順9 終了

ESXi上のNutanix CE AHVの中でPrism Centralを立ち上げようとしたらKernel Panicで何もできない



ESXi6.0上に3ノードのNutanix CE AHVクラスタを組み、Prism Centralをインストールしようとしたら失敗した。

コンソールを開いてみるとKernel Panicしている。

Nutanix CE ce-2017.07.20-stableにおけるPrism Centralの1-Clickデプロイがコケる場合のバッドノウハウ的なワークアラウンド」をみてbootとhomeを入れ替えてみたが、何も状況は変わらなかった。
結果的にはこのbootとhomeの入れ替えはやる必要は無かった。

解決につながる情報は「Run Nutanix CE nested on VMware ESXi 6.5 – solving some of the challenges you will face」で引用されている「Prism Central not booting」にあった。

原文は下記

1/ deploy PrismCE using ce-pc-2017.07.20-metadata.json and ce-pc-2017.07.20.tar

2/ grab /var/lib/libvirt/NTNX-CVM/svmboot.iso from an AHV host using SCP/SFTP

3/ upload it as an ISO image in a PrismCE container with name boot_PRISMCE

4/ edit PrismCE VM settings:
delete DISK scsi.0
delete CDROM ide.0
add new disk type CDROM / Clone from Image service / Bus type=IDE / Image=boot_PRISMCE
select CDROM as Boot Device

5/ power on PrismCE VM
blank screen during 20 sec and then everything works

Nutanix CE AHVホストの/var/lib/libvirt/NTNX-CVM/svmboot.iso をscpで手元にダウンロードし、
Nutanix上のISOイメージとして登録
その後、Prism Central VMのCD-ROMドライブの割り当てを上記のsvmboot.isoにして起動

そうすることで、ログイン画面にたどり着きました。
ここからの手順は「INSTALLING THE PRISM CENTRAL VM (AHV)」の7番から参考にします。
ログインは「nutanix」「nutanix/4u」

初期プロセスがいろいろ動いてるようなのでログイン可能状態であっても、10分ぐらい待ちます
なお、キーボード配列を調整していない場合は「]む」で「|」を入力出来ます。
で、待ってると1回再起動すると思います。

再起動後「sudo tail -f /tmp/config_home_dir.log」を実行して、プロセスが一段落するのを待ちます。

この段階ではDHCPでIPアドレスを取得していると思われるので、/etc/sysconfig/network-scripts/ifcfg-eth0 を編集し、固定IPアドレスを設定
/etc/hostsに「127.0.0.1 NTNX-10-3-190-99-A-CVM」といった行がある場合は削除
/etc/resolv.conf にDNSサーバのエントリを登録
で、再起動。
IPアドレスが変わった場合は、起動後、即再起動がかかる。

その後、再度ログインしてから「ps -ef|grep rc.local」を実行して、rc.localの実行が終わることを確認。
rc.lcoal内に「sleep 120」があるので、最低2分かかる。

再起動して、またnutanixユーザでログイン
「cluster –cluster_function_list=”multicluster” -s IPアドレス create」を実行
ここら辺からは「Nutanix CE ce-2017.07.20-stableにおけるPrism Centralの1-Clickデプロイがコケる場合のバッドノウハウ的なワークアラウンド」の8番以降の手順を行うこととなる。

で、「REGISTER (UNREGISTER) WITH PRISM CENTRAL」でNutanixのクラスタにPrism Centralを接続する。

・・・というのをやろうとしたが、結局、cluster setupで延々とリトライを繰り返し、成功することはなかった・・・
Prism Centralを使わなくてもやりたかったことはできるというのがわかって、セットアップは諦めました。

なお、セットアップ途中のPrism Centrl仮想マシンはWeb GUIから削除できなかったので
Nutanix CVMにsshでログインしたあと
「acli vm.list」で仮想マシン名を確認し
「acli vm.delete 仮想マシン名」で削除を実行しました。

ESXi上にNutanix CE AHVをインストールした


2019/11/12追記

ce-2019.02.11-stable.img.gzを使って環境を構築したところ、インストーラーにキーボード選択が用意されたので、初期ログインから「install」を実行するだけで良くなった。

インストール後に行う作業もNutanix CE仮想マシン上での「/var/cache/libvirt/qemu/capabilities/3c76bc41d59c0c7314b1ae8e63f4f765d2cf16abaeea081b3ca1f5d8732f7bb1.xml」 のalias=’pc’をpc-i440fx-rhel7.2.0に変更する作業のみで済んだ


ESXi 6.0基盤上で、Nutanix CEをインストールした。

インストール手順は下記の2つを参考にした
・ネットワールド Nutanix CE を Nested ESXiへインストールする9つのTips
・NTNX ESXi で Nested Nutanix CE を構成してみる。(ce-2018.01.31-stable 対応版)

今回の環境では iSCSIストレージのVMFS上に仮想ディスクをおいたところ、 /sys/block/sd?/queue/rotationalの値は1だけど、Nutanix CE環境起動後に確認してみると、全部SSD認識となっていたので、ここの値変更は実施していない。

また、NTNXのページの方に書かれている「/home/install/phx_iso/phoenix/svm_template/kvm/default.xml」のmachineタイプ変更はやらなくても動いたので実施していない。
pmuの追加も「仮想 CPU のパフォーマンス カウンタの有効化」のチェックをオンにできる環境なので実施していない。

クラスタ作成は、インストーラ上の「Create single-node cluster?」にチェックを入れる手法は使わず、インストール後に手動でclusterコマンドを実行する手法をとった。
ただし、「cluster -s 192.168.1.191 create」というやり方では無く「cluster –dns_servers=192.168.1.100 –ntp_servers=192.168.1.101 -s 192.168.1.191 create」という形でDNSサーバとNTPサーバを指定する手法をとっている。

ただし、この手法の場合、DNSサーバとして追加で「8.8.8.8, 8.8.4.4」、NTPサーバとして「0.pool.ntp.org, 1.pool.ntp.org」も登録されているので、セットアップ完了後必要に応じ削除する必要がある。

詳細については→ Create & Configure Nutanix Cluster via command line を参照

インストール完了後、Nutanix CE仮想マシンにroot、パスワード「nutanix/4u」でログインし、「/var/cache/libvirt/qemu/capabilities/3c76bc41d59c0c7314b1ae8e63f4f765d2cf16abaeea081b3ca1f5d8732f7bb1.xml」の値を変更しないと、仮想マシンが正常に起動しません。

通常、仮想マシンを作成すると「machine=’pc’」と設定されています。
NUTANIX AHV 20180425.199環境では、この「pc」というのは「pc-i440fx-rhel7.3.0」のエイリアスになっています。
ESXi上の仮想マシンの場合「pc-i440fx-rhel7.2.0」でないと起動しないので、エイリアスの設定先を変更します。

変更前

<machine name='pc-i440fx-rhel7.3.0' alias='pc' hotplugCpus='yes' maxCpus='240'/>
<machine name='pc-i440fx-rhel7.2.0' hotplugCpus='yes' maxCpus='240'/>

変更後

<machine name='pc-i440fx-rhel7.3.0' hotplugCpus='yes' maxCpus='240'/>
<machine name='pc-i440fx-rhel7.2.0' alias='pc' hotplugCpus='yes' maxCpus='240'/

設定変更後は、全体の再起動を行います。

Hypervisorのホスト名を変える場合は、/etc/hostname と /etc/sysconfig/network のホスト名記載を書き換えます。
参考:CHANGING THE ACROPOLIS HOST NAME

CVMのホスト名を変える場合は、clusterを作った後にCVM上でrootになって「change_cvm_hostname 新ホスト名」を実行します
参考:Change CVM name
change_cvm_hostnameで変えたらPrismで「Rename CVM back to what it was originally. The CVM name is nonconfigurable by the end user.」という警告が・・・
どうやら、いまのバージョンではお薦めではないらしい