Every so often an LCM firmware upgrade doesn’t come back. The node was booted into Phoenix — the small Linux environment LCM uses to flash firmware — the update failed or stalled partway, and now the node is sitting at a Phoenix prompt with its CVM and hypervisor both in maintenance mode. Prism shows a host down, the cluster is running on one fewer node than it should be, and the temptation is to start clicking things.

Don’t. The recovery is well-defined and mostly a matter of doing four things in the right order:

  1. Reboot the node out of Phoenix and back into the hypervisor.
  2. Take the CVM out of maintenance mode.
  3. Take the hypervisor host out of maintenance mode.
  4. Confirm cluster services are back and metadata has settled.

This is the sequence from a recent case on a six-node AHV cluster, with screenshots. Customer identifiers, addresses and serials are redacted throughout.

Step 1 — Make sure nothing is still running

Before touching the node, confirm LCM isn’t still mid-operation. Rebooting a node while LCM believes it owns it makes the situation worse, not better. From any healthy CVM in the cluster:

nutanix@CVM~$ lcm_upgrade_status

You want to see No task found for kLcmUpdateOperation. Then check for an inventory task as well:

nutanix@CVM~$ ecli task.list include_completed=false operation_type_list=kLcmInventoryOperation

That should return no tasks either. If either command shows something in progress, wait — or if it’s genuinely wedged, that’s the point to involve Nutanix Support rather than force it.

In Prism, the Hardware table will show the affected host flagged. In this case NODE1 was carrying the critical alert while the other five were up.

Prism Element Hardware table showing six AHV hosts with NODE1 flagged with a critical alert
Hardware table — one host flagged, five healthy.

Step 2 — Confirm the node is actually in Phoenix

A node that isn’t responding on the network could be in Phoenix, or it could be hung, powered off, or stuck in BIOS. They need different fixes, so look before you act. Open the KVM console from the node’s IPMI web interface. A node in Phoenix looks exactly like this — a bare [root@phoenix ~]# prompt and nothing else:

IPMI KVM console showing the node sitting at a root@phoenix prompt
The Phoenix prompt in the IPMI console. This is the state we’re recovering from.

If you see this, the node isn’t broken — it’s parked. If you see something else, stop and diagnose that first.

Step 3 — Boot back into the hypervisor

From the Phoenix prompt in the console, run the reboot script that Phoenix ships with:

phoenix / # python phoenix/reboot_to_host.py

The node reboots normally, through the Nutanix BIOS splash and into AHV. Give it time — a full boot with a CVM starting up is several minutes, and the host won’t appear healthy in Prism until the CVM is fully up.

IPMI console showing the node rebooting through the Nutanix BIOS splash screen back into the hypervisor
Back through BIOS and into the hypervisor.

Step 4 — Take the host out of maintenance mode

LCM put the CVM and the host into maintenance mode before it started, and because the operation failed, it never took them out. You do that manually. First find the host ID:

nutanix@CVM~$ ncli host list

Then, from a healthy CVM — not the one on the node you’re recovering, clear maintenance mode:

nutanix@CVM~$ ncli host edit id=<host-ID> enable-maintenance-mode=false

Verify it took:

nutanix@CVM~$ acli host.get <hypervisor-IP-address>
nutanix@CVM~$ cluster status | grep -v UP

The acli output should show the host no longer in maintenance mode, and the second command should return nothing — meaning every service on every CVM reports UP. Anything it does print is a service that hasn’t come back, and worth a second look before moving on.

Step 5 — Re-enable the metadata store if the node was out for long

Here’s the part that catches people out. If the node was in maintenance mode for more than about 30 minutes, the cluster will have detached it from the Cassandra metadata ring to protect itself. Bringing the host back doesn’t automatically re-attach it — you have to enable the metadata store on that host explicitly.

In Prism, open the host’s details from the Hardware table and use Enable Metadata Store:

Prism Element host details for NODE1 with the Enable Metadata Store action highlighted
Enable Metadata Store on the recovered host.
Prism Element confirmation that the metadata store was successfully enabled on the host
Prism confirms the metadata store is enabled on the host.

Then watch the ring rebuild. From any CVM:

nutanix@CVM~$ nodetool -h 0 ring

Immediately after enabling, the recovered node shows as Forwarding while the others are Normal. That’s expected — metadata is being redistributed back onto it.

nodetool -h 0 ring output showing one node in Forwarding state while the others are Normal
One node in Forwarding — the ring is rebalancing.

Keep re-running nodetool -h 0 ring until every node reads Normal. Don’t start the next maintenance task, and don’t retry the LCM upgrade, until it does. Depending on cluster size and metadata volume this can take a while; on this cluster it was a few minutes.

nodetool -h 0 ring output with all nodes back in Normal state
All nodes Normal — the metadata ring is whole again.

Step 6 — Confirm the cluster is healthy

Back in Prism, the home dashboard should show Cluster Resiliency OK and “Data resilient as per configuration.” Expect warnings to linger for a while — in this case, incompatible-AHV-version alerts from the interrupted upgrade — but no critical alerts, and hosts, VMs and disks all green.

Prism Element home dashboard showing cluster resiliency OK and data resilient as per configuration
Resiliency OK. The cluster is back to a normal state.

Only now should you go back and look at why the firmware upgrade failed, and whether to retry it.

Two rules worth repeating

First: always run the maintenance-mode commands from a healthy CVM, not from the one on the node you’re recovering. Its services may not be fully up, and you want the cluster’s view of the host, not the host’s view of itself.

Second: if any step produces something you don’t expect, stop and contact Nutanix Support. This procedure is for the clean case — a node parked in Phoenix after a failed firmware flash. If the node won’t boot, the ring won’t converge, or cluster status keeps showing services down, that’s a different problem and pushing through it on your own is how a one-node outage becomes a data problem.

If you’ve hit this and want a second pair of eyes before you act, get in touch.

Leave a Reply

Your email address will not be published. Required fields are marked *

TOP