Tech ONTAP Blogs

Getting Started with Upgrade Health Checker v9 Using NetApp Lab on Demand

yuvaraju
NetApp
1,078 Views

Planning an ONTAP upgrade? Before you touch a single cluster, wouldn't it be great to know exactly what blockers, warnings, and risks lie ahead - all from a comprehensive, automated pre-upgrade assessment? That's precisely what Upgrade Health Checker (UHC) delivers.

 

In this blog, we'll walk you through how to experience UHC v9 hands-on using NetApp Lab on Demand - a free, self-service lab environment available to NetApp customers, partners, and internal teams. We'll run UHC against ONTAP clusters in the lab, demonstrating how the new multi-run dashboard aggregates results across your entire fleet in a single view. Whether you're a customer evaluating UHC, a NetApp Professional Services consultant, or a Systems Account Manager (SAM), this guide gives you a risk-free way to explore UHC's capabilities before deploying it in production.

What is Upgrade Health Checker?

Upgrade Health Checker (UHC) is an onsite advisory tool for ONTAP systems designed to perform comprehensive pre-upgrade health assessments. It connects to your ONTAP cluster, collects AutoSupport data, evaluates over 1,600+ rules across Upgrades and At-Risk Systems (ARS), and generates a detailed report identifying everything you need to address before upgrading.

Capability What It Does
Actionable Insights Provides targeted recommendations to resolve pre-upgrade blockers and warnings, enabling efficient decision-making
Continuous Validation Maintains current validation checks and risk assessments to ensure upgrade readiness with every run
Automation Integration Seamlessly integrates with existing automation and orchestration frameworks via CLI parameters and config files
Multi-Format Reports Generates HTML (human-readable), JSON (machine-processable), and Excel reports for every assessment
Firmware Awareness Collects and reports Service Processor, drive, and storage shelf firmware information
Multi-Run Dashboard Generates a consolidated dashboard/index.html aggregating results across all previous runs for at-a-glance fleet visibility
UHC v9 is the latest release, featuring enhanced firmware collection, Excel report generation, improved telemetry, an integrated multi-run dashboard, and expanded rule coverage with 1,600+ rules across Upgrades and At-Risk Systems (ARS) engines.

Setting Up Your Lab Environment

NetApp Lab on Demand provides a fully configured environment with everything you need to try UHC - ONTAP clusters, a Windows jumphost, and a Linux host. Here's how to get started:

1 Request the Lab

  1. Navigate to labondemand.netapp.com and log in
  2. Request the "Early Adopter Lab for Unified ONTAP 9.16.1 v1.0" lab
  3. Provide a description (e.g., "UHC evaluation"), select your purpose, and choose the required lab duration
  4. Submit the lab request
What's in the lab? The lab contains two ONTAP HA storage clusters (vSIMs), both running ONTAP 9.16.1 as two-node clusters: cluster1 (192.168.0.101) and cluster2 (192.168.0.102). We'll run UHC against both clusters in this walkthrough so the dashboard shows results for the full lab fleet. The lab also includes a Windows Server 2019 Jumphost and a RHEL 8.10 Linux host (RHEL1) - perfect for running UHC.

2 Connect to the Lab

  1. Under My Labs (labondemand.netapp.com/mylabs), click Connect to launch the lab
  2. This opens the Jumphost (Windows Server 2019) - your entry point to the lab
  3. Click Lab Notes to access the lab documentation for reference
  4. Lab credentials are available from within the lab by navigating to the "Lab Credentials" bookmark page in Google Chrome: http://ae.demo.netapp.com/accounts

3 Download UHC to the Jumphost

From within the jumphost, open a web browser and download UHC:

  1. Navigate to the NetApp Support Site - Upgrade Health Checker
  2. Log in with your NSS credentials
  3. Download uhc_v9.zip (the latest version)

4 Transfer UHC to the Linux Host

UHC runs on Linux, so we need to transfer the zip file from the Jumphost to RHEL1:

  1. Download and install WinSCP on the Jumphost (accept defaults during installation)
  2. When prompted, click Yes to import stored sessions from PuTTY  this will import RHEL1 and both cluster connections
  3. Launch WinSCP from the desktop, select RHEL1, and click Login
  4. Enter the RHEL1 password (from the Lab Credentials page)
  5. In WinSCP, navigate to C:\Users\Administrator.DEMO\Downloads on the left pane (Jumphost)
  6. Drag and drop uhc_v9.zip to the RHEL1 host (right pane)
Next step: Close WinSCP and use the PuTTY configuration on the Jumphost to connect to RHEL1 (select the RHEL1 saved session).

Running UHC on Both Lab Clusters

Now comes the exciting part. Connect to RHEL1 via PuTTY and install UHC once - then run it sequentially against both clusters. Each run builds on the same ./runs/ directory, so the dashboard automatically aggregates all results when you're done.

5 Install UHC

# Unzip the UHC package
unzip uhc_v9.zip

# Navigate to the extracted folder
cd v9/

# Verify extracted contents
ls -lrt
# uhc                                          (main executable)
# uhc.sig                                      (code signature)
# UHC-Linux-codesigning-certificate-public.pem
# UHC-Linux-chain-certificates-public.pem
# RELEASE_NOTES.md
# README.pdf
# config.yaml.example                          (optional config template)

# Make UHC executable
chmod +x uhc

6 Run UHC Against cluster1

cluster1  -  192.168.0.101  |  ONTAP 9.16.1  ->  Target: 9.17.1P7

# Launch UHC - first run (cluster1)
./uhc

When prompted, enter the following for cluster1:

Prompt What to Enter
Cluster IP Address 192.168.0.101 (cluster1)
Cluster Username admin
Cluster Password Use the password from Lab Credentials page
EULA Type all to view, then y to accept
Target ONTAP Version Use arrow keys to select 9.17.1P7

Once you provide the inputs, UHC takes over automatically:

  1. Validates credentials and connects to the cluster
  2. Detects cluster topology - cluster1 with 2 nodes (cluster1-01, cluster1-02), running ONTAP 9.16.1
  3. Triggers AutoSupport generation on each node (~3 minutes per node) - ONTAP 9.16.1+ downloads ASUP as a compressed .tgz bundle
  4. Downloads and extracts ASUP data from each node
  5. Evaluates upgrade rules and At-Risk Systems (ARS) rules
  6. Collects firmware information - Service Processor, drives, and storage shelves
  7. Generates reports - HTML, JSON, and Excel formats
  8. Generates multi-run Dashboard at ./runs/dashboard/index.html
  9. Uploads telemetry to NetApp and checks for auto-updates (optional for dark sites) 
cluster1 completion output:
Report Generation Status: Success
Dashboard Generation    : Success
Telemetry Upload Status : Success
Auto-Update Status      : No New Update
Email Notification Status: Disabled
Overall execution time: 310.43 seconds

Reports are saved to:

/root/v9/runs/20260614_021826_7b29285d-0225-41e3-8d53-7baf51487d18/192.168.0.101/results/
# uhc_cluster1_20260614021758.html    (human-readable HTML report)
# uhc_cluster1_20260614021758.json    (machine-processable JSON)
# uhc_cluster1_20260614021758.xlsx    (Excel spreadsheet)

7 Run UHC Against cluster2

cluster2  -  192.168.0.102  |  ONTAP 9.16.1  ->  Target: 9.18.1P3

# Launch UHC - second run (cluster2), from the same v9/ directory
./uhc

When prompted, enter the following for cluster2:

Prompt What to Enter
Cluster IP Address 192.168.0.102 (cluster2)
Cluster Username admin
Cluster Password Use the password from Lab Credentials page
EULA EULA is already accepted - UHC will skip this prompt
Target ONTAP Version Use arrow keys to select 9.18.1P3

UHC repeats the full assessment cycle for cluster2, appending the new run to the existing ./runs/ directory alongside the cluster1 results. The dashboard is automatically updated to reflect both clusters.

cluster2 completion output:
Report Generation Status: Success
Dashboard Generation    : Success
Telemetry Upload Status : Success
Auto-Update Status      : No New Update
Email Notification Status: Disabled
Overall execution time: 377.54 seconds

Reports are saved to:

/root/v9/runs/20260614_022432_5b199511-003c-40ad-add4-845693b40cb5/192.168.0.102/results/
# uhc_cluster2_20260614022351.html    (human-readable HTML report)
# uhc_cluster2_20260614022351.json    (machine-processable JSON)
# uhc_cluster2_20260614022351.xlsx    (Excel spreadsheet)

After both runs, the runs/ directory structure looks like this:

ls -lrt /root/v9/runs/
# 20260614_021826_7b29285d-...tar.gz   (cluster1 archive)
# 20260614_021826_7b29285d-.../        (cluster1 run records)
# 20260614_022432_5b199511-...tar.gz   (cluster2 archive)
# 20260614_022432_5b199511-.../        (cluster2 run records)
# dashboard/                           (multi-run dashboard - both clusters)
Tip: Each cluster run takes approximately 5 - 7 minutes. AutoSupport generation is the longest step as it's a low-priority background process in ONTAP. The second run benefits from cached EULA acceptance. Total time for both clusters: ~12 - 15 minutes. 

Launching the Dashboard from the Jumphost

With both cluster runs complete, the next step is to view the results. UHC v9 automatically generates a multi-run dashboard that aggregates findings from every run into a single browsable page. Rather than copying files with WinSCP, the easiest way to access it from the Jumphost is to serve the runs/ directory directly from RHEL1 using Python's built-in HTTP server - giving you live, clickable links from the dashboard straight into each cluster's full HTML report.

8 Find RHEL1's IP Address

Back in the PuTTY session on RHEL1, navigate to the runs/ directory and note its IP address:

# Navigate to the runs directory - this will be the HTTP server root
cd /root/v9/runs

# Get RHEL1's IP address
hostname -i
# fe80::250:56ff:fe85:d91a%ens192 192.168.0.61
# Use the IPv4 address: 192.168.0.61

9 Start the Python HTTP Server

Start a lightweight HTTP server from the runs/ directory so the Jumphost can reach all reports and the dashboard over the network:

# Start HTTP server on port 8550, accessible from all interfaces
python3 -m http.server 8550 --bind 0.0.0.0
Note: The server runs in the foreground. Keep this PuTTY window open while browsing - press Ctrl+C to stop it when done. Everything under /root/v9/runs/ is immediately accessible, including both cluster run directories and the dashboard.

10 Open the Dashboard on the Jumphost

On the Jumphost, open Google Chrome and navigate to:

http://192.168.0.61:8550/dashboard/index.html

The UHC Dashboard loads and displays both cluster1 and cluster2 side-by-side, each showing a summary of blockers, warnings, at-risk findings, and passed checks along with the current and target ONTAP versions.

What you'll see in the Dashboard: Both cluster1 (9.16.1 -> 9.17.1P7) and cluster2 (9.16.1 -> 9.18.1P3) are listed with their assessment summaries. Every row links directly to that cluster's full HTML report - no file copying required.
Want to learn more about the Dashboard? See See Your Entire ONTAP Installed Base's Upgrade Readiness in One View - Introducing UHC v9 on the NetApp Community for a deep dive into the multi-run Dashboard.

Reviewing the UHC Reports

From the Dashboard, click through to each cluster's detailed report. The dashboard links resolve directly through the HTTP server, so the full report opens instantly in the same browser tab.

cluster1 Report - Click from Dashboard

In the Dashboard, click the HTML report link for cluster1. The detailed report opens at:

http://192.168.0.61:8550/20260614_021826_7b29285d-0225-41e3-8d53-7baf51487d18/192.168.0.101/results/uhc_cluster1_20260614021758.html

Here's what the cluster1 report shows:

Property Value
Cluster Name cluster1
Current ONTAP Version 9.16.1
Target ONTAP Version 9.17.1P7
Nodes cluster1-01, cluster1-02 (both SIMBOX)
Storage Disks 34 total, 966.91 GB capacity
Multi-Admin Verification Not Enabled

UHC evaluated 1,690 rules for cluster1 and found:

Category Count What It Means
Blockers 0 No critical issues preventing upgrade
Warnings 3 Non-blocking issues to review before upgrade
Functional Changes 5 Feature/behavior changes to be aware of
At Risk 11 Known risks relative to the target version
Passed 488 Checks that passed successfully
Skipped 1,183 Rules not applicable to this configuration

When done reviewing, navigate back to the Dashboard tab and click the HTML report link for cluster2.

cluster2 Report - Click from Dashboard

The cluster2 detailed report opens at:

http://192.168.0.61:8550/20260614_022432_5b199511-003c-40ad-add4-845693b40cb5/192.168.0.102/results/uhc_cluster2_20260614022351.html

Here's what the cluster2 report shows:

Property Value
Cluster Name cluster2
Current ONTAP Version 9.16.1
Target ONTAP Version 9.18.1P3
Nodes cluster2-01, cluster2-02 (both SIMBOX)
Storage Disks 34 total, 966.91 GB capacity
Multi-Admin Verification Not Enabled

UHC evaluated 1,690 rules for cluster2 and found:

Category Count What It Means
Blockers 0 No critical issues preventing upgrade
Warnings 2 Non-blocking issues to review before upgrade
Functional Changes 5 Feature/behavior changes to be aware of
At Risk 8 Known risks relative to the target version
Passed 487 Checks that passed successfully
Skipped 1,188 Rules not applicable to this configuration
Great news across the board! Zero blockers on both cluster1 and cluster2 - the entire lab fleet is cleared for upgrade. The warnings and functional changes should be reviewed, but nothing prevents either upgrade from proceeding.

Summary

In under 30 minutes, you've experienced the full UHC v9 workflow - from installing the tool on a Linux host to running assessments against two ONTAP clusters and viewing a consolidated Dashboard on the Windows Jumphost. Here's what we accomplished:

  • Set up a Lab on Demand environment with two ONTAP 9.16.1 clusters
  • Downloaded and installed UHC v9 on a RHEL 8 Linux host
  • Ran UHC interactively against cluster1 - 0 blockers, 3 warnings, 488 passed (target: 9.17.1P7)
  • Ran UHC interactively against cluster2 - 0 blockers, 2 warnings, 487 passed (target: 9.18.1P3)
  • Generated HTML, JSON, and Excel reports for both clusters
  • Served reports over HTTP from RHEL1 using python3 -m http.server
  • Launched the multi-run Dashboard from the Windows Jumphost at http://192.168.0.61:8550/dashboard/index.html - showing both clusters and linking to their full reports

Lab on Demand is the perfect sandbox to build confidence with UHC before rolling it out across your production fleet. Try different target ONTAP versions, run against multiple clusters, and experience how the dashboard grows into a comprehensive fleet health view with every run.

Remember: The lab uses vSIM (virtual ONTAP simulators), so some hardware-specific checks may behave differently than on physical systems. The upgrade rules, risk assessments, and report format are identical to what you'll see in production.

Coming Up Next

Enjoyed this walkthrough? There's more to come. Stay tuned for our next blog in the UHC series, where we'll continue exploring what Upgrade Health Checker can do for your ONTAP environment.

Stay tuned!

Resources

Resource Link
UHC Documentation docs.netapp.com/us-en/upgrade-health-checker
Download UHC NetApp Support Site
NetApp Console Automation Hub console.netapp.com/automationHub
Lab on Demand labondemand.netapp.com
UHC Overview Video Upgrade Health Checker: An Overview
Input Parameters Reference Input Parameters Guide
UHC Dashboard Blog See Your Entire ONTAP Installed Base's Upgrade Readiness in One View - Introducing UHC v9

Contact Us

For questions, feedback, or assistance with Upgrade Health Checker, reach out to the UHC product team:

ng-uhc-productgroup@netapp.com

NetApp, the NETAPP logo, and ONTAP are trademarks or registered trademarks of NetApp, Inc.
The views expressed here are those of the author and do not necessarily reflect the views of NetApp.

Public