# Prism Central を同居させた Nutanix 単一ノードクラスタを公式手順で停止する

2026-09-27

![Nutanix 単一ノードクラスタの側面図。下から Supermicro X11 → AHV の上に CVM / PCVM / UVM の 3 種の VM が並び、CVM 上に AOS が動いて Stargate・Cassandra・Prism Element 等のサービスをホスト、PCVM 上に MSP (K8s platform) 経由で Prism Central、UVM 上に RHEL 等のゲスト OS と業務アプリが乗る](nesting.png)

## TL;DR

**ちゃんと公式ドキュメントを見よう。**

前回 [X11 世代の Supermicro に立てた](/articles/nutanix-ce-x11-supermicro/) Nutanix 単一ノードクラスタで、シャットダウンと再起動の手順を公式資料に沿って実測しました。
AOS 7.3.1.12 / AHV 10.3.1.10 の 1 台構成で、Prism Central (PC) を同じクラスタ上のゲスト VM として同居させています。

[toc]

## 前提

- 物理 1 ノード + AHV + CVM（Prism Element (PE) 等の Nutanix サービスをホスト）
- Prism Central VM (PCVM) は同じクラスタ上のゲスト VM として同居
- RF (Replication Factor) = 1（単一ノードなのでデータの複製先が無く、冗長性なし）
- ユーザ VM (UVM) は無い、または少数
- Nutanix Files (FSVM) と Data Protection ジョブは未使用（使用時は公式手順で別途対応が必要）

Prism Central を「クラスタの管理面」として別クラスタに置く運用もありますが、自宅ラボや検証機では同居構成が多いです。

## 停止の順序

公式のクラスタ停止手順に沿って、**PCVM → 他 UVM → CVM → AHV** の順で落とします。
`cluster stop` の確認プロンプトは `I agree` を要求します（`y` / `yes` は通りません）。

PCVM を先に落とすのは、PCVM が同じ Nutanix クラスタ上のゲスト VM だからです。
CVM で先に `cluster stop` を叩くと、稼働中の Acropolis VM を検知して `Found 1 Acropolis VMs still running on hosts` で拒否されます。
このエラーを見過ごし、CVM での `sudo shutdown -P now` や AHV の停止に進むと、PCVM が稼働したまま Stargate を含むストレージサービスを失い、PCVM の vDisk が I/O error になります。
その状態で AHV まで落とすと PCVM は正常なシャットダウン手続きを踏めず強制電源断となり、内部の MSP (Microservices Platform) の K8s pod 群も正常終了せずに落ちます。
次回起動時の復旧に時間がかかる可能性があります。

```bash
# 1. Prism Central VM を graceful shutdown
ssh nutanix@<PCVM IP>
cluster stop
sudo shutdown -P now              # PCVM が VM として off になる

# 2. PE 側で ncc + 稼働 VM 確認 + cluster stop
ssh nutanix@<CVM IP>
ncc health_checks run_all         # 事前チェック（公式手順で必須）
acli vm.list power_state=on       # PCVM off 後は 0 件のはず
cluster stop
cluster status                    # "The state of the cluster: stop" を確認
                                  # Zeus / IkatProxy / Scavenger / VipMonitor は UP で残る想定

# 3. PE CVM を電源断
sudo shutdown -P now              # クラスタ全体停止時は cvm_shutdown ではなくこちら

# 4. AHV host を電源断
ssh root@<AHV IP>
virsh list --all                  # CVM が "shut off" を確認
shutdown -h now                   # AHV host 停止
```

対話 SSH は login shell で入るので `cluster` / `acli` / `ncli` が PATH で通ります。
非対話で `ssh nutanix@<CVM> 'cluster status'` のように直接コマンドを渡すと non-login shell になり PATH が通らないので、`/usr/local/nutanix/cluster/bin/cluster` の絶対パスが要ります。

UVM が残っているとき（今回は PCVM 以外いないので該当なし）は、公式手順に沿って `acli vm.shutdown <uuid>` で ACPI graceful shutdown を要求し、`vm.get` の `power_state=off` を確認してから次に進みます。
応答しない場合のみ `acli vm.off <uuid>` で強制電源断です。

## 実測: 停止のコマンドと出力

自宅ラボ（Sougen、AOS 7.3.1.12 / AHV 10.3.1.10 / PC 7.5.1.12、単一ノード）で実際に走らせたときの入出力です。

### 1. PCVM で cluster stop

```bash
$ ssh nutanix@192.168.1.15
$ echo I agree | cluster stop
```

出力の要点:

```
***** CLUSTER NAME *****
Sougen-PCVM

This operation will stop all Nutanix services, making Prism Central unable
to manage applications and services. Do you want to proceed? (I agree/[N]):
INFO cluster:2492 Cluster has been stopped via 'cluster stop' command
INFO cluster:3785 Success!

Waiting on 192.168.1.15 (Up, ZeusLeader) to stop:
IkatProxy Zeus Scavenger VipMonitor Flow ClusterHealth ClusterManagement
...
The state of the cluster: stop
```

15 秒で `state: stop` に遷移しました。

### 2. PCVM で sudo shutdown -P now

```bash
$ sudo shutdown -P now
Shutdown scheduled for ...
```

SSH セッションが即座に切れ、1 分 37 秒後に PE 側から見た PCVM の `state` が `kOff` になりました。

```bash
$ ssh nutanix@192.168.1.12 'acli vm.get NTNX-...-PCVM-... | grep state'
    power_state_mechanism: "kHard"
  state: "kOff"
```

### 3. PE で稼働 VM 確認

PCVM を off にしたので稼働 VM は 0 件です。

```bash
$ ssh nutanix@192.168.1.12
$ acli vm.list power_state=on
VM name  VM UUID
```

### 4. PE で cluster stop

```bash
$ echo I agree | cluster stop
```

出力の末尾:

```
Waiting on 192.168.1.12 (Up, ZeusLeader) to stop:
IkatProxy Zeus Scavenger VipMonitor
The state of the cluster: stop
Lockdown mode: Disabled
```

16 秒で完了。
`cluster stop` は Nutanix サービス群を止めるだけで CVM の OS は生きたままなので、`cluster start` で戻せます。
Zeus / IkatProxy / Scavenger / VipMonitor が UP のまま残るのは想定挙動です。

### 5. PE CVM を sudo shutdown -P now

```bash
$ sudo shutdown -P now
Connection to 192.168.1.12 closed by remote host.
```

AHV 側の libvirt で観察すると、CVM ドメインの state が `running → shut off` に 15 秒で遷移しました。

```bash
$ ssh root@192.168.1.13 'virsh list --all | grep CVM'
 -    NTNX-3d3f619f-A-CVM   shut off
```

### 6. AHV host のシャットダウン

```bash
$ ssh root@192.168.1.13
$ virsh list --all           # CVM が "shut off" を確認
 Id   Name                  State
--------------------------------------
 -    NTNX-3d3f619f-A-CVM   shut off

$ shutdown -h now
Connection to 192.168.1.13 closed by remote host.
```

SSH セッションは即座に切れ、ping は 6 秒後に DOWN、BMC の `PowerState` が `Off` になるまでさらに 12 秒でした。

### 7. BMC から電源断を確認

```bash
$ curl -K bmc.curlrc -sS https://192.168.1.143/redfish/v1/Systems/1 \
    | jq .PowerState
"Off"
```

### 停止タイムライン

| UTC (Sep 25) | イベント | 前ステップ差 |
|---|---|---|
| 11:50:01 | PCVM `cluster stop` 発行 | — |
| 11:50:16 | PCVM cluster stop 完了 | +15 秒 |
| 11:50:16 | PCVM `sudo shutdown -P now` 発行 | +0 秒 |
| 11:51:53 | PCVM `state: kOff` 確認 | +1 分 37 秒 |
| 11:51:53 | PE `acli vm.list power_state=on` = 0 件 | — |
| 11:51:53 | PE `cluster stop` 発行 | +0 秒 |
| 11:52:09 | PE cluster stop 完了 | +16 秒 |
| 11:52:09 | PE CVM `sudo shutdown -P now` 発行 | +0 秒 |
| 11:52:24 | PE CVM libvirt 上で `shut off` 確認 | +15 秒 |
| 11:52:24 | AHV `shutdown -h now` 発行 | +0 秒 |
| 11:52:30 | AHV ping DOWN | +6 秒 |
| 11:52:42 | BMC `PowerState: Off` 確認 | +12 秒 |

PCVM の `cluster stop` から BMC で `PowerState: Off` を確認するまで **2 分 41 秒**でした。

## 起動の順序

停止の逆順で、公式のクラスタ起動手順（と 1 ノード起動手順の CVM 起動部）に沿って上げます。

```bash
# 1. 物理電源投入（IPMI Redfish の例）
curl -K bmc.curlrc -sS -X POST \
  -H 'Content-Type: application/json' \
  -d '{"ResetType":"On"}' \
  https://<BMC IP>/redfish/v1/Systems/1/Actions/ComputerSystem.Reset

# 2. AHV が上がったら virsh で CVM の起動状況を確認
#    Autostart=disable のまま Nutanix の systemd service 群 (ahv-*-cvm.service) で自動起動する
ssh root@<AHV IP>
virsh list --all | grep CVM

# 3. CVM 起動後、PE 側で cluster start
#    CVM の SSH open 直後は Genesis がまだ、cluster status が応答するまで数分待つ
ssh nutanix@<CVM IP>
cluster status                    # "state: stop" が応答したら次へ
cluster start
cluster status                    # DOWN が 0 件になるまで数分

# 4. PCVM を起動
acli vm.on <PCVM name>

# 5. PCVM SSH open を待ってから、さらに Genesis 起動を待つ
#    SSH open は約 40 秒、Genesis + Zookeeper が上がるまで追加で 6 分ほど
#    SSH ready 直後に cluster start を叩くと Zookeeper 未起動で失敗する
ssh nutanix@<PCVM IP>
cluster status                    # "state: stop" が応答したら次へ

# 6. PCVM 側で cluster start
cluster start
# → 数分で "state: start"、CVM は直接 "Up, ZeusLeader"
#   (sudo shutdown で落とした場合は maintenance mode に嵌らない)

# 7. その他 UVM を順次起動
```

起動時のハマりどころは 2 箇所です。

- **CVM autostart の実体**: `virsh dominfo` は `Autostart: disable` を返すが、AHV 起動後に CVM は running になる。libvirt の autostart ではなく、Nutanix の systemd service 群（`ahv-generate-cvm-config` → `ahv-configure-cvm` → `ahv-install-cvm` → `ahv-define-cvm`）が起動する
- **PCVM の Genesis ready 待ち**: SSH が open した直後の PCVM に `cluster start` を打っても、Zookeeper が起動していないので数分待って CRITICAL で失敗する。SSH open から `cluster status` が応答するまで実測で約 6 分

停止で `sudo shutdown` を使えば、起動時の maintenance mode 遷移は発生しません。

## 実測: 起動のコマンドと出力

同じサイクルで停止した直後に電源再投入した際の記録です。

### 8. BMC で電源投入

```bash
$ curl -K bmc.curlrc -sS -X POST \
    -H 'Content-Type: application/json' \
    -d '{"ResetType":"On"}' \
    https://192.168.1.143/redfish/v1/Systems/1/Actions/ComputerSystem.Reset
{"Success": {"code": "Base.v1_4_0.Success", "Message": "Successfully Completed Request."}}
```

`ResetType: On` を叩いてから AHV ping が返るまで **104 秒**、AHV SSH open も同じタイミングでした。

### 9. AHV boot と CVM autostart

```bash
$ ssh root@192.168.1.13 'journalctl --list-boots | tail -3'
-1 ...  Thu 2026-09-25 11:49 UTC—Thu 2026-09-25 11:52 UTC
 0 ...  Thu 2026-09-25 11:55 UTC—...

$ virsh dominfo NTNX-3d3f619f-A-CVM | grep -E "State|Autostart"
State:          running
Autostart:      disable
```

`Autostart: disable` と表示されますが、AHV 起動後に CVM は自動的に `running` に遷移します。
libvirt の autostart ではなく Nutanix の systemd service 群（`ahv-*-cvm.service`）が起動します。

### 10. PE で cluster start

CVM の SSH open 直後は Genesis がまだ起動途中で、`cluster status` がタイムアウトします。
`cluster status` が `state: stop` を返し始めてから `cluster start` を叩きます（CVM SSH open から実測で 3 分 46 秒後）。

```bash
$ ssh nutanix@192.168.1.12
$ cluster status | grep "state of the cluster"
The state of the cluster: stop

$ cluster start
```

出力末尾:

```
INFO cluster:3785 Success!
    Prism             UP    [...]
    Cerebro           UP    [...]
    ...
The state of the cluster: start
```

`cluster start` から `cluster status` の DOWN が 0 件になるまで 2 分 57 秒でした。

### 11. PCVM を起動

```bash
$ acli vm.on NTNX-192-168-1-15-PCVM-1790135533
NTNX-192-168-1-15-PCVM-1790135533: pending
NTNX-192-168-1-15-PCVM-1790135533: complete
```

5 秒で pending → complete、その 39 秒後に PCVM の SSH が open しました。

### 12. PCVM の Genesis ready を待つ

`acli vm.on` の直後は PCVM の SSH は open ですが Genesis が起動途中で、`cluster status` を叩いてもタイムアウトで返ってきません。
SSH open から `cluster status` が `state: stop` を返し始めるまで、実測で **5 分 57 秒**待ちました。

```bash
$ ssh nutanix@192.168.1.15
$ cluster status | grep "state of the cluster"    # 6 分ほど待つと応答する
The state of the cluster: stop
```

### 13. PCVM で cluster start

```bash
$ cluster start
INFO cluster:3621 Executing action start on SVMs 192.168.1.15
INFO cluster:3785 Success!
Waiting on 192.168.1.15 (Up, ZeusLeader) to start:

The state of the cluster: start
    CVM: 192.168.1.15 Up, ZeusLeader
```

**`sudo shutdown` で落としていたので、CVM は `Up, ZeusLeader` に直接遷移し、Maintenance mode は経由しませんでした。**
先に `cvm_shutdown -P now` で落とした rerun では、ここが `CVM: 192.168.1.15 Maintenance` から始まり、3 分 9 秒かけて自動 exit するのを観察しました。
原因は `cvm_shutdown` が Zookeeper に登録する maintenance mode flag で、`sudo shutdown` を使えば flag は入らず、起動時に maintenance mode を経由しません。

`cluster start` 発行から MSP pod 群を含む全サービスが UP になるまで約 9 分でした（PC は MSP の起動が重い）。

### 起動タイムライン

| UTC (Sep 25) | イベント | 前ステップ差 |
|---|---|---|
| 11:53:34 | BMC で `ComputerSystem.Reset ResetType:On` 発行 | — |
| 11:55:18 | AHV ping UP / SSH open | +104 秒 |
| 11:56:18 | CVM (PE) SSH open | +60 秒 |
| 12:00:04 | PE CVM で `cluster status` が応答 | +3 分 46 秒 |
| 12:00:04 | PE `cluster start` 発行 | +0 秒 |
| 12:02:54 | PE `cluster start` 完了（Success 応答） | +2 分 50 秒 |
| 12:03:01 | PE 全サービス UP | +7 秒 |
| 12:03:01 | `acli vm.on <PCVM>` 発行 | +0 秒 |
| 12:03:06 | `acli vm.on` complete | +5 秒 |
| 12:03:45 | PCVM SSH open | +39 秒 |
| 12:09:42 | PCVM で `cluster status` が応答 | +5 分 57 秒 |
| 12:09:42 | PCVM `cluster start` 発行 | +0 秒 |
| 12:18:48 | PCVM 全サービス UP（Maintenance 経由なし） | +9 分 6 秒 |

BMC 電源投入から PCVM の全サービス UP まで **25 分 14 秒** でした。
シャットダウンの 2 分 41 秒と合わせて、完全なシャットダウン + 再起動サイクルは **27 分 55 秒** です。

## 教訓: 公式資料を先に読む

この記事は最初、`cvm_shutdown -P now` を使う手順で書いていました。
Web 検索や外部ブログ（[juliendumur.fr](https://juliendumur.fr/en/nutanix-ahv-how-to-gracefully-shutdown-a-cluster/)、[next.nutanix.com のコミュニティ投稿](https://next.nutanix.com/how-it-works-22/how-to-shutdown-and-restart-a-nutanix-cluster-33893) 等）がそう書いていて、実測でも動いていたからです。

しかし Nutanix の日本語 KB PDF [「ホストとクラスターの停止・起動手順」](https://www.nutanix.com/content/dam/nutanix/ja/documents/support/doc-node-restart.pdf) を読むと、**ホスト停止手順**（1 ノード外し用）と **クラスタ停止手順**（クラスタ全体停止）で使うコマンドが明確に分かれていました。

| シナリオ | CVM の落とし方 |
|---|---|
| 1 ノード外し（他ノードで cluster 継続） | `acli host.enter_maintenance_mode` → `cvm_shutdown -P now` |
| クラスタ全体停止 | `cluster stop` → **`sudo shutdown -P now`** |

`cvm_shutdown` は 1 ノード外し用で、VM migration・shutdown token・maintenance mode 遷移が組み込まれています。
`cluster stop` でクラスタ全体を止めたあとにはこれらの機構は不要（node 数によらず）なので、クラスタ停止手順は `sudo shutdown -P now` を指定しています。

外部ブログや Web 検索は 1 ノード外しとクラスタ全体停止が混在した状態で流通していて、この記事も先に前者の記述を拾ってしまいました。
`cvm_shutdown` 版で観測した「起動時に 3 分間 Maintenance mode に嵌り、自動 exit を待つ」現象は、そもそも `cvm_shutdown` が Zookeeper に maintenance mode flag を入れるからで、公式手順どおりの `sudo shutdown` なら発生しません。

## まとめ

- 停止は **PCVM → 他 UVM → CVM で `cluster stop` → `sudo shutdown -P now` → AHV で `shutdown -h now`**。単一ノード + PC 同居構成で実測 2 分 41 秒
- 起動は逆順で、BMC 電源投入から全サービス UP まで実測 25 分 14 秒。PCVM は SSH が open しても Genesis ready ではないため、そこから 6 分ほど待ちが入る
- `cvm_shutdown -P now` は 1 ノード外し用。`cluster stop` 後のクラスタ全体停止で使うと、無用な token / traffic forwarding / maintenance mode 遷移が発動して起動時に maintenance mode の自動 exit を待つことになる

## 参考

- [Nutanix サポートドキュメント「ホストとクラスターの停止・起動手順」（PDF、日本語）](https://www.nutanix.com/content/dam/nutanix/ja/documents/support/doc-node-restart.pdf) — 本記事の主な出典。「クラスターの停止・起動手順 - AHV」節が対応
- [Shutting Down an AHV Cluster (AHV Admin Guide v10.3)](https://portal.nutanix.com/page/documents/details?targetId=AHV-Admin-Guide-v10_3%3Aahv-cluster-shut-down-t.html)
- [Shutting Down a Single-node Cluster](https://portal.nutanix.com/page/documents/details?targetId=NIC-Addition-Cisco-HCI%3Abre-1node-shutdown-overview-oem-c.html)
- [KB 3270 – How to use the cvm_shutdown script](https://portal.nutanix.com/kb/3270)（`cvm_shutdown` は 1 ノード外し用途）
- [Shutting Down or Starting Up Prism Central VM](https://portal.nutanix.com/page/documents/details?targetId=Prism-Central-Guide-vpc_2024_2%3Amul-pc-shutdown-pcvm-t.html)
