Nutanix CVMが起動しない原因と対処法【ハイパーバイザー別】

Nutanix環境を運用していると、ノードの再起動後にCVM(Controller VM)が起動しない、あるいはAHVは起動しているのにCVMだけが shut off のまま、というトラブルに遭遇することがあります。
CVMはNutanixクラスターのストレージI/O・メタデータ管理・クラスターサービスを担う中核VMであるため、起動しない状態が続くとクラスター全体の健全性に影響します。
この記事では、CVMが起動しない主な原因と、ハイパーバイザー別の対処手順をまとめます。


スポンサーリンク

CVMとは(簡単なおさらい)

CVM(Controller VM)は、各Nutanixノードで稼働するLinuxベースの仮想マシンです。
Zeus・Stargate・Genesis・CassandraなどのクラスターサービスがCVM上で動作しており、ストレージの読み書き・レプリケーション・クラスター管理・Prism UIの提供などを担っています。

CVMはハイパーバイザー(AHV・ESXi・Hyper-V)上で動作しますが、ストレージディスクへのアクセスはPCIパススルーでCVMが直接行う設計になっています。
そのため、CVMが起動していない状態では、そのノードのローカルディスクにアクセスできず、他のノードがI/Oを肩代わりすることになります(Nutanix Community日本語フォーラムより)。


CVMが起動しない主な原因

CVMが起動しない原因は大きく5つに分類できます。

原因1:autostart設定が無効になっている(AHV環境)
AHVホストの起動に連動してCVMが自動起動(autostart)する設定が、何らかの理由で無効化されているケースです。
ホスト名の変更後などに発生しやすいとの報告があります(Nutanix Advent Calendarブログ、2019年)。

原因2:VMware HAとautostart設定の競合(ESXi環境)
ESXi環境でVMware HAが有効な場合、HAの再設定のタイミングでCVMのautostart設定が無効化されることがあります(Nutanix Communityフォーラムより)。
これはVMware側の仕様で、HA有効時はautostart機能が無効化されるためです。

原因3:ソフトウェアRAIDの同期失敗(ディスク障害)
CVMはローカルSSDの複数パーティションにまたがるソフトウェアRAID(md)でOSを保持しています。
SSDの障害やRAIDデグレードが発生すると、CVMのブートプロセスが失敗してループ状態になります。
ブートログ /tmp/NTNX.serial.out.0failed to get exclusive lock on mapfileactive with 1 out of 2 mirrors 等のメッセージが残ります(Nutanix Communityフォーラムより)。

原因4:CVMは起動しているがクラスターサービスがDown
CVM自体は起動してSSHでログインできるが、cluster status を実行するとサービスがDownしているケースです。
Genesis(クラスター管理サービス)が起動に失敗している場合や、メモリ不足が原因であることが多いです。

原因5:リソース不足(主にCE環境)
Nutanix CE(Community Edition)をネスト環境で動作させる場合、CVMに割り当てられるメモリが不足すると起動に失敗します。
CVMには最低16GiB(推奨20GiB以上)のRAMが必要で、AHVのブートドライブには最低64GiB以上が必要です(Nutanix Communityフォーラムより)。


対処手順:AHV環境

ステップ1:CVMの状態を確認する

AHVホストにrootアカウントでSSH接続し、CVMの状態を確認します。

# AHVホストにSSH接続(rootユーザー)
ssh root@<AHVホストのIPアドレス>

# VM一覧と状態を確認
virsh list --all

出力例(起動していない場合):

 Id   Name                   State
--------------------------------------
 -    NTNX-ahvhost001-CVM    shut off

出力例(正常起動している場合):

 Id   Name                   State
--------------------------------------
 21   NTNX-ahvhost001-CVM    running

ステップ2:CVMを手動で起動する

CVMが shut off の場合、virsh start コマンドで手動起動します。

virsh start <CVM名>
# 例: virsh start NTNX-ahvhost001-CVM

起動後、CVM内のサービスが立ち上がるまで5分程度待ってから次のステップに進みます。

ステップ3:autostart設定を確認・有効化する

手動起動で復旧しても、autostart設定が無効のままだと次回ホスト再起動時に再発します。
autostartの有効化は以下のコマンドで行います(Nutanix Advent Calendarブログ、2019年より)。

# autostartを有効化
virsh autostart <CVM名>
# 例: virsh autostart NTNX-ahvhost001-CVM

# 有効化されたか確認
virsh list --all

注意virsh autostart はCVM以外の通常のゲストVMには使用しないことが推奨されています。CVM以外に適用する場合はNutanixサポートへの確認を推奨します(Nutanix Advent Calendarブログ、2019年より)。

ステップ4:メンテナンスモードを解除する

ホストがメンテナンスモードになっている場合は解除します。

# CVMにSSH接続後、メンテナンスモードを確認
nutanix@cvm$ acli host.get <AHVホストのIPアドレス> | grep node_state

# メンテナンスモード解除
nutanix@cvm$ acli host.exit_maintenance_mode <AHVホストのIPアドレス>

ステップ5:クラスターサービスの状態を確認・起動する

CVMが起動したら、クラスターサービスの状態を確認します。

# CVMにSSH接続
ssh nutanix@<CVMのIPアドレス>

# クラスターサービスの状態確認
nutanix@cvm$ cluster status

サービスがDownしている場合は、cluster start で起動します。

nutanix@cvm$ cluster start

正常起動時の確認メッセージの例:

yyyy-mm-dd HH:MM:SS,294Z INFO MainThread cluster:3104 Success!

対処手順:ESXi環境

ステップ1:CVMをvSphere Web Clientから起動する

  1. vSphere Web ClientでvCenterまたはESXiホストにログインする
  2. 対象のCVMを右クリックする
  3. 「電源」→「パワーオン」を選択する
  4. OS起動後、5分ほど待ってから次の手順に進む(Nutanix公式停止・起動手順書より)

コマンドラインから起動する場合は、ESXiホストにSSH接続して以下を実行します。

vim-cmd vmsvc/getallvms | grep CVM    # CVM の VMID を確認
vim-cmd vmsvc/power.on <VMID>

ステップ2:autostart設定を確認する(ESXi+VMware HA環境)

VMware HAが有効な環境では、HA再設定後にCVMのautostart設定が無効化されることがあります。

vSphere Web Clientで確認する場合:

  1. ESXiホストを選択する
  2. 「構成」→「仮想マシンのスタートアップ/シャットダウン」を開く
  3. CVMが「自動起動」リストに含まれているか確認する
  4. 含まれていない場合は追加する

ステップ3:データストアの再スキャンとサービス確認

  1. ESXiホストを右クリックし、「データストアの再スキャン」を実行する
  2. 「構成」→「ストレージ」でデータストアが正しく表示されているか確認する(Nutanix公式停止・起動手順書より)
  3. CVMにSSHでログインし cluster status でサービス状態を確認する

クラスターサービスがDownしている場合の対処

CVMは起動してSSHでログインできるが、サービスがDownしているケースの対処手順です。

NCC(Nutanix Cluster Check)でヘルスチェックを実行する

nutanix@cvm$ ncc health_checks run_all
# または特定チェックのみ
nutanix@cvm$ ncc health_checks system_checks cluster_services_down_check

Genesisサービスを再起動してクラスターを起動する

# 全CVMでGenesisを再起動
nutanix@cvm$ allssh genesis restart

# Prismサービスを停止してからクラスターを起動
nutanix@cvm$ allssh genesis stop prism
nutanix@cvm$ cluster start

CVMのメモリを確認する

Self-Service Portal(SSP)などの一部機能は、CVMに24GiB以上のメモリが割り当てられていない場合に無効化されます。
メモリ不足がサービス停止の原因になっているケースでは、PrismコンソールまたはコマンドラインからCVMのメモリを増設してください。

# CVMのメモリ確認
nutanix@cvm$ free -h

ディスク障害が疑われる場合

CVMがブートループを繰り返す場合、ソフトウェアRAIDの同期失敗やSSDの物理障害が疑われます。

ブートログを確認する

AHVホストの以下のファイルにCVMのシリアルコンソール出力が記録されます。

cat /tmp/NTNX.serial.out.0

failed to get exclusive lock on mapfileactive with 1 out of 2 mirrors といったメッセージが確認できた場合は、RAIDデグレードが発生しています。

確認コマンドと推奨対応

# 接続されているブロックデバイスの確認
lsblk

# RAIDの状態確認
cat /proc/mdstat

重要:ディスク障害によるRAIDデグレードが原因の場合、誤った操作でデータが損失するリスクがあります。ログの内容をNutanixサポートポータルのケースに添付し、サポートエンジニアの指示に従って作業を進めることを強く推奨します。


それでも解決しない場合の確認事項

上記の対処を試みても改善しない場合は、以下を確認してから Nutanix サポートへ問い合わせてください。

  • テレビのIPMI/iDRAC/iLO等からノードの物理的な状態(電源・ハードウェアアラート)を確認する
  • CVMのコンソール画面(vSphere Clientのコンソールまたは virsh console)を開いてエラーメッセージを確認する
  • Foundation実行中に Cvm has failed to boot up エラーが出た場合は、CVMコンソールを開いて直接ブートエラーの内容を確認する
  • AOS・AHVのバージョンと、Nutanix HCL(Hardware Compatibility List)との互換性を確認する

Nutanixサポートへの問い合わせはNutanixサポートポータルから行えます。


まとめ

NutanixのCVMが起動しない場合、原因と対処のパターンは以下の通りです。

症状主な原因対処
AHVは起動するがCVMがshut offautostart設定が無効virsh startvirsh autostart
ESXiホスト再起動後にCVMが起動しないVMware HAとautostart競合vSphere WebClientでautostart設定を確認・修正
CVMは起動するがサービスがDownGenesisの起動失敗・メモリ不足genesis restartcluster start
CVMがブートループソフトウェアRAIDデグレード・SSD障害ブートログ確認後、Nutanixサポートへ連絡

まずは virsh list --all(AHV)または vSphere Web ClientでCVMの電源状態を確認し、cluster status でサービスの状態を把握することが迅速な対応への近道です。
ディスク障害が疑われる場合は、データ損失のリスクがあるため早期にNutanixサポートへ連絡することを推奨します。


参考情報源:

コメント

タイトルとURLをコピーしました