{"id":526,"date":"2026-09-08T00:37:19","date_gmt":"2026-09-07T22:37:19","guid":{"rendered":"https:\/\/nutanix.ma\/?p=526"},"modified":"2026-09-08T00:37:19","modified_gmt":"2026-09-07T22:37:19","slug":"how-to-safely-shutdown-a-nutanix-ahv-cluster","status":"publish","type":"post","link":"https:\/\/nutanix.ma\/index.php\/2026\/09\/08\/how-to-safely-shutdown-a-nutanix-ahv-cluster\/","title":{"rendered":"How to safely shutdown a Nutanix AHV Cluster"},"content":{"rendered":"\n<p>A full cluster shutdown isn&#8217;t something most Nutanix admins do often, which is exactly why it goes wrong when it&#8217;s needed \u2014 a data centre power maintenance window, a planned electrical cutover, a physical move. Unlike a single node reboot or an LCM upgrade, there&#8217;s no wizard walking you through it: you&#8217;re stopping every guest VM, then Prism Central, then the cluster software, then the CVMs, then the physical nodes, in that order, and starting everything back up in the reverse order. Skip a step or do it out of sequence and you can end up with a cluster that won&#8217;t come back cleanly.<\/p>\n\n<p>This is the sequence I use, end to end, with the checks worth doing before you start and the gotchas on the way back up.<\/p>\n\n<h2>Step 1 \u2014 Confirm the cluster is healthy before you touch anything<\/h2>\n<p>Don&#8217;t shut down a cluster that isn&#8217;t in a known-good state. Run a full NCC health check from any CVM:<\/p>\n\n<pre><code>nutanix@CVM$ ncc health_checks run_all<\/code><\/pre>\n\n<p>Then confirm resiliency separately:<\/p>\n\n<pre><code>nutanix@CVM$ ncli cluster get-domain-fault-tolerance-status type=node<\/code><\/pre>\n\n<p>You&#8217;re looking for <code>Current Fault Tolerance: 2<\/code> (or <code>1<\/code>, depending on your configured RF). If NCC or the cluster is showing a rebuild in progress, stop here and wait for it to finish. Shutting down mid-rebuild is how a routine maintenance window turns into a data availability problem.<\/p>\n\n<h2>Step 2 \u2014 Power off the guest VMs<\/h2>\n<p>Shut guest VMs down cleanly from inside the guest OS wherever you can \u2014 that gives applications and databases a chance to close out properly, which a hypervisor-level power-off doesn&#8217;t guarantee. Once that&#8217;s done, confirm nothing is still running:<\/p>\n\n<pre><code>nutanix@CVM$ acli vm.list power_state=on<\/code><\/pre>\n\n<p>If you&#8217;ve got stragglers and need to push it from the CVM side, this one-liner shuts down every powered-on guest VM (excluding the CVMs themselves):<\/p>\n\n<pre><code>for i in $(acli vm.list power_state=on | grep -v NTNX | awk 'NR!=1 {print $NF}'); do acli vm.shutdown $i; done<\/code><\/pre>\n\n<p>Anything that won&#8217;t shut down gracefully after that can be force powered off \u2014 but treat that as a last resort, not the default.<\/p>\n\n<h2>Step 3 \u2014 Shut down Prism Central<\/h2>\n<p>Prism Central needs to come down before the cluster it&#8217;s registered to. SSH to the Prism Central VM as <code>nutanix<\/code> and stop cluster services:<\/p>\n\n<pre><code>nutanix@PCVM$ cluster stop<\/code><\/pre>\n\n<p>Wait for the PCVM services to actually stop, and confirm it:<\/p>\n\n<pre><code>nutanix@PCVM$ cluster status<\/code><\/pre>\n\n<p>Once everything shows stopped, shut down the Prism Central VM itself:<\/p>\n\n<pre><code>nutanix@PCVM$ sudo shutdown -h now<\/code><\/pre>\n\n<h2>Step 4 \u2014 Stop the Nutanix cluster<\/h2>\n<p>Log on to any CVM in the cluster and stop cluster services:<\/p>\n\n<pre><code>nutanix@CVM$ cluster stop\nnutanix@CVM$ cluster status<\/code><\/pre>\n\n<p><code>cluster status<\/code> should confirm services are down before you move on.<\/p>\n\n<h2>Step 5 \u2014 Shut down the CVMs<\/h2>\n<p>Connect to each CVM in turn and power it off:<\/p>\n\n<pre><code>nutanix@CVM$ sudo shutdown -P now<\/code><\/pre>\n\n<h2>Step 6 \u2014 Shut down each node<\/h2>\n<p>Two ways to do this, pick whichever fits how you work:<\/p>\n\n<p><strong>Method 1 \u2014 IPMI:<\/strong> log on to the IPMI web console for each node, go to <strong>Remote Control &gt; Power Control<\/strong>, and select <strong>Power Off Server \u2013 Orderly Shutdown<\/strong> for a graceful shutdown.<\/p>\n\n<p><strong>Method 2 \u2014 from the hypervisor itself:<\/strong><\/p>\n\n<pre><code>root@AHV# shutdown -h now<\/code><\/pre>\n\n<h2>Step 7 \u2014 Powering everything back on<\/h2>\n<p>Bring the network up first. Power on your TOR switches, and if you&#8217;re running a stacked switch setup, make sure the stack members boot together and re-stack successfully before you go any further.<\/p>\n\n<p>Power on the nodes \u2014 either the physical power button or through IPMI \u2014 then give it a few minutes (ten or less is usually enough) before you start checking connectivity. Ping every CVM and AHV host to confirm they&#8217;re all reachable before you try starting the cluster.<\/p>\n\n<p>Once everything responds, SSH to any CVM and verify all CVMs are actually up:<\/p>\n\n<pre><code>nutanix@CVM$ svmips\nnutanix@CVM$ cluster status | grep -v UP<\/code><\/pre>\n\n<p>The second command should return nothing \u2014 that means every service on every CVM reports UP. Once it&#8217;s clean, start the cluster:<\/p>\n\n<pre><code>nutanix@CVM$ cluster start<\/code><\/pre>\n\n<p>And confirm every service came up:<\/p>\n\n<pre><code>nutanix@CVM$ cluster status<\/code><\/pre>\n\n<p>(<code>cs<\/code> works as a shorthand for the same thing.)<\/p>\n\n<h2>Step 8 \u2014 Bring production back in order<\/h2>\n<p>Power sequencing matters here as much as it did on the way down, just reversed. Start Prism Central first. Then bring your VMs up in dependency order \u2014 infrastructure services before the applications that depend on them: domain controllers, NTP, ADCS and the like first, then your application tier \u2014 databases, web servers, and so on.<\/p>\n\n<h2>Worth repeating<\/h2>\n<p>The two things that actually cause outages during a planned shutdown aren&#8217;t exotic \u2014 they&#8217;re skipping the health check before you start, and powering things back on out of order. Confirm fault tolerance and rule out an in-progress rebuild before you shut anything down, and respect the dependency order in both directions. If anything looks wrong at any step \u2014 services that won&#8217;t stop, a node that won&#8217;t rejoin, resiliency that doesn&#8217;t come back \u2014 stop and get it checked rather than pushing through it.<\/p>\n\n<p>If you&#8217;ve got a shutdown coming up and want a second pair of eyes on the plan, <a href=\"https:\/\/nutanix.ma\/index.php\/contact-me\/\">get in touch<\/a>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>A full cluster shutdown isn&#8217;t something most Nutanix admins do often, which is exactly why it goes wrong when it&#8217;s needed \u2014 a data centre power maintenance window, a planned electrical cutover, a physical move. Unlike a single node reboot or an LCM upgrade, there&#8217;s no wizard walking you through it: you&#8217;re stopping every guest [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[4],"tags":[],"class_list":["post-526","post","type-post","status-publish","format-standard","hentry","category-nutanix"],"_links":{"self":[{"href":"https:\/\/nutanix.ma\/index.php\/wp-json\/wp\/v2\/posts\/526","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nutanix.ma\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nutanix.ma\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nutanix.ma\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/nutanix.ma\/index.php\/wp-json\/wp\/v2\/comments?post=526"}],"version-history":[{"count":1,"href":"https:\/\/nutanix.ma\/index.php\/wp-json\/wp\/v2\/posts\/526\/revisions"}],"predecessor-version":[{"id":527,"href":"https:\/\/nutanix.ma\/index.php\/wp-json\/wp\/v2\/posts\/526\/revisions\/527"}],"wp:attachment":[{"href":"https:\/\/nutanix.ma\/index.php\/wp-json\/wp\/v2\/media?parent=526"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nutanix.ma\/index.php\/wp-json\/wp\/v2\/categories?post=526"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nutanix.ma\/index.php\/wp-json\/wp\/v2\/tags?post=526"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}