Standard AFF/FAS HA maintenance · select checks for the changed component and protocols actually deployed
Illustrative acceptance record for lab-01 and lab-02, SVM svm_lab, NAS LIF nas_lab_01, shelf 1.2 and representative NAS/SAN clients. Compare every result with the saved precheck baseline and the approved target. The commands use documentation names and addresses. Client tests create only a uniquely named temporary file in an authorized test folder; no raw writes to production LUNs are used.
About the command and output examples
Names, addresses and results are illustrative. Commands have not been executed against a live storage system or SAN switch for this publication. Confirm syntax and compatibility for your release, then rehearse in an approved lab. Existing-data recovery and destructive changes need an environment-specific plan. Read the editorial standards.
01Define what counts as complete
Separate the update’s completion state, the running version, infrastructure availability and the application’s accepted service. A successful command or idle updater proves only part of this chain. Use the same object names, client identities and transaction before and after the window. If a check does not apply, record why instead of marking an untested row as passed.
| Change type | Mandatory component proof | Service proof |
|---|---|---|
| ONTAP software | All intended running builds and completed upgrade phases | Healthy HA/quorum, storage, network and application |
| Disk firmware | Per-model active revisions and no failed eligible disk update | Normal RAID, paths and representative I/O |
| Shelf firmware | Each targeted module’s active revision and update completion | Restored shelf paths, modules and client service |
| SP/BMC | Active image plus a usable out-of-band connection | HA/data service unchanged and management access restored |
| BIOS/LOADER | Running version after required activation/reboot | Normal node boot, HA and application acceptance |
| DQP | Approved package identity on every intended node | No unexplained qualification/hardware change |
- Prepare the expected target values before the change. Include patch suffixes, model-specific firmware and the DQP package identity.
- Record observation time, observer, object identity, actual result and evidence location. A green monitoring dashboard alone is insufficient for an unobserved application transaction.
Every intended component and service has a specific test and acceptance owner.
02Verify ONTAP versions and update state
| Result | Decision |
|---|---|
| Both running versions match the approved target | Continue with HA and service checks |
| One node still has the source build | Upgrade is not accepted; inspect the unfinished stage |
| Target build visible only as a stored image | Verify activation/running state |
| Both versions match but post-update phase failed | Investigate the failed postcheck before closure |
- Confirm the final phases completed for all intended nodes. If an update remains waiting, paused or failed, identify that stage before declaring the upgrade complete.
- Compare the running/current build of lab-01 and lab-02 with the approved full version. Do not mistake a stored alternate image for the running release.
- If versions disagree, preserve the output and inspect the current orchestration state. Do not begin a second image update or generic revert while the original state is unresolved.
cluster image show-update-progress
cluster image show
set -privilege advanced
system node image show -version
system node upgrade-revert show
set -privilege adminThe expected running build is proven on every intended node and the upgrade has no unresolved phase.
03Verify cluster membership, HA and quorum
All intended nodes should be healthy and eligible, and the HA relationship should be back in its normal ready state. Compare each RDB ring across nodes: matching epochs and consistent primary/master membership for that ring are the relevant evidence. Different rings can use different primaries. An unexpected quorum condition requires diagnosis, not a database reset or another reboot.
- Compare HA readiness with the precheck baseline and verify there is no unexpected takeover or pending giveback.
- For SAN, confirm the relevant services remain operational and in quorum, then validate actual host access in the SAN section.
- If a node is unhealthy, identify its new EMS/hardware/network condition and keep the change open until it is resolved or an explicitly accepted recovery plan is active.
cluster show
storage failover show
system health status show
system health alert show
set -privilege advanced
cluster ring show -unitname mgmt
cluster ring show -unitname vldb
cluster ring show -unitname vifmgr
# SAN clusters:
cluster ring show -unitname bcomd
cluster kernel-service show
set -privilege adminMembership, HA and applicable SAN/quorum services are normal on all intended nodes.
04Verify LIF state and correct only the intended NAS interface
Example: nas_lab_01 remains on lab-02 after lab-01 returns, and lab-01’s home port is healthy. A scoped revert can restore the intended placement. If that home port is down, forcing placement is not a fix; repair the port/path issue first.
- Compare administrative/operational state and home/current placement with the precheck record. Validate actual reachability from the representative clients, not just the storage management session.
- For a NAS LIF that should return home, verify the home node/port and VLAN/broadcast domain are available. A non-home placement may be an approved exception, so review its reason first.
- Enable only an interface that the approved plan says should be enabled. Preserve intentionally disabled interfaces. Revert the specific eligible NAS LIF and inspect it afterward. SAN interfaces follow their protocol-specific design and should not receive a blanket NAS migration correction.
network interface show -fields home-node,home-port,curr-node,curr-port,is-home,status-admin,status-oper
network interface show -service-policy *data* -failover
network port show
network port broadcast-domain show# Conditional corrections for the named NAS LIF only:
network interface modify -vserver svm_lab -lif nas_lab_01 -status-admin up
network interface revert -vserver svm_lab -lif nas_lab_01
network interface show -vserver svm_lab -lif nas_lab_01Each expected LIF is operational in its accepted placement and relevant clients can use it.
05Compare storage inventory, RAID and hardware paths
- Confirm the intended aggregates and volumes remain available with the expected ownership, state and capacity. Compare against saved object counts and identifiers rather than assuming that an empty error list covers every object.
- Check for newly broken disks, RAID degradation/reconstruction, module faults and missing storage connections. Existing acknowledged conditions should remain separately documented.
- After a shelf or disk change, observe until required redundancy and normal operation are restored. Client I/O through one surviving path is not the same as full path acceptance.
storage aggregate show
volume show
storage disk show -broken
storage shelf show
storage shelf show -module
storage shelf show -connectivity
storage shelf show -errors
system health alert showExpected storage objects are present and usable, and there is no unexplained new degradation or path loss.
06Verify active firmware and DQP independently
| Check | Pass criterion | Common false success |
|---|---|---|
| Disks | Accepted revision for each intended model and no failed eligible update | Updater idle but an intended disk remains old |
| Shelf | Accepted active revision on each targeted module | One module updated while its partner did not |
| SP/BMC | Accepted active image, online state and real authorized access | Progress finished but remote management is unavailable |
| BIOS/LOADER | Expected running values after activation | New value only on boot media |
| DQP | Approved package identity on every intended node | The same format version is mistaken for the same package |
- Select only the component checks that apply. BIOS boot-media commands must be supported by the actual release/platform; use the firmware guide’s version-specific branch.
- Keep staged, installed and running values distinct in the change record. Explain any no-change result by showing that the device was already at the accepted target.
- A failed/pending component update remains a follow-up condition even if the ONTAP software upgrade itself succeeded.
storage disk show -fields model,firmware-revision
storage shelf show -shelf 1.2 -module
system service-processor image show -instance
system service-processor show
storage dqp show -instance
set -privilege advanced
storage disk firmware show-update-status -instance
storage shelf firmware show-update-status -instance
set -privilege admin
system service-processor image update-progress show
# Supported BIOS/LOADER workflow only:
system node firmware bootmedia showEvery changed component has its own active-version and health evidence, with no hidden pending update.
07NFS client postcheck as the intended user
Run these Linux examples from an authorized client using the application identity and its existing approved mount. Confirm the mounted protocol, endpoint and expected dataset first. Use a dedicated test folder and a unique temporary file so cleanup cannot remove another user’s data. This transaction verifies current file service, not the full integrity of every application dataset.
- Confirm identity, mount version/options and target path match the precheck. A mount still listed by findmnt can have a broken data path, so execute the transaction.
- Verify create, write, readback and delete. Retain return codes and observed latency. If it fails, identify whether transport, export evaluation or file identity/permissions changed.
- Have the application owner run its normal integrity/transaction check against known data. Compare a previously recorded read-only checksum or application marker when available.
# Linux client — run the transaction as the intended application user:
id
findmnt -T /mnt/projects
testfile=$(mktemp /mnt/projects/upgrade-check.XXXXXX)
printf '%s\n' 'Storage Admin Hub postcheck' > "$testfile"
cat "$testfile"
test "$(cat "$testfile")" = 'Storage Admin Hub postcheck'
sha256sum "$testfile"
rm -- "$testfile"The intended user succeeds on the same NFS endpoint and application acceptance also passes.
08SMB client postcheck with Windows PowerShell
Use the actual intended Windows user and UNC endpoint. The following test creates a GUID-named file, verifies its contents and removes only that file. The example share is fictional; replace it with an authorized test location. A successful administrative storage login does not test domain authentication, share permissions or SMB client behavior.
- Record the connected server/share, user and SMB dialect and compare them with the baseline.
- Run the controlled transaction and then test the real application’s usual access. If the write succeeds but another identity fails, investigate that user’s authorization rather than widening the share globally.
- When a test fails before cleanup, retain or remove only its known GUID file through the authorized process. Do not use wildcard deletion in a production share.
# Windows client — PowerShell under the intended test identity:
Get-SmbConnection
$testPath = Join-Path '\\nas-lab.example.net\projects' ('upgrade-check-' + [guid]::NewGuid().ToString() + '.txt')
$marker = 'Storage Admin Hub postcheck ' + [guid]::NewGuid().ToString()
Set-Content -LiteralPath $testPath -Value $marker -ErrorAction Stop
$readback = (Get-Content -LiteralPath $testPath -Raw -ErrorAction Stop).TrimEnd()
if ($readback -ne $marker) { throw 'SMB readback did not match' }
Get-FileHash -LiteralPath $testPath
Remove-Item -LiteralPath $testPath -ErrorAction StopThe same authorized SMB identity can read/write/delete and the application’s actual workflow is accepted.
09SAN host and application postchecks
Compare LUN identity, size, mapping, host-visible device and expected usable paths with the baseline. Supported ALUA paths can have different access states; do not demand that every path be active/optimized. The acceptable count and state come from the host/protocol design. For NVMe-oF or a hypervisor, use the matching NetApp host procedure and platform tooling.
- Confirm the correct LUN/device remains accessible to the intended host. Reconcile any missing path with target interface, zoning/fabric, iSCSI session and host multipath state.
- Read host/application event logs for I/O errors during the window and afterward. A device marked online can still have experienced an application timeout.
- Have the owner execute an application-native read/write transaction and consistency check. Do not use dd, filesystem formatting or raw block-device writes as a production postcheck.
# ONTAP admin — select the deployed protocol:
lun mapping show
vserver fcp interface show
vserver iscsi session show
# Linux host:
multipath -ll
lsblk -o NAME,SIZE,TYPE,MOUNTPOINTS
# Windows host:
mpclaim -s -d
Get-Disk
Get-VolumeCorrect devices, supported path resilience and actual application I/O are proven without an unexplained all-path-loss or data-integrity error.
10Verify protection, snapshots and recovery-point age
Synthetic RPO example: the accepted destination point is 11:20 and verification occurs at 11:35, so its age is 15 minutes. With a 20-minute objective this may be acceptable; if the next transfer fails and the point reaches 40 minutes, the change’s protection acceptance is no longer met. Evaluate the usable completed point, not just a healthy label.
- Compare relationship identity, state, health, last completed transfer and policy with the precheck. A transfer merely started is not a completed recovery point.
- Check any deliberately suspended workflow against the change record and resume only that known relationship or schedule. Do not break/resync a healthy mirror to clear an upgrade notification.
- Wait for the next expected protection cycle and verify completion. Application-consistent backup integrations also need their application/backup owner’s check.
snapmirror show
snapmirror show -destination-path svm_dr:vol_projects_dr -instance
volume snapshot show -vserver svm_lab -volume vol_projects
# Conditional only: a relationship intentionally quiesced by the approved change:
snapmirror resume -destination-path svm_dr:vol_projects_drProtection is active and a completed usable point meets the documented recovery objective.
11Verify special features, monitoring and comparable performance
Compare latency, IOPS, throughput and client errors under a comparable workload. A quiet post-window sample is not proof of unchanged peak-period performance. If latency rises, investigate paths, load and queueing before assuming that the ONTAP build alone caused it. Keep monitoring through the next relevant backup or busy period. Feature-specific checks supplement, rather than replace, the baseline HA/storage/client tests.
| If deployed | Postcheck evidence |
|---|---|
| External/onboard key management | Expected key availability/connectivity and the feature-specific upgrade check |
| Vscan | Scanner connectivity and a controlled scan/access test using the existing Vscan runbook |
| FPolicy | External engine/event-policy connectivity and expected client behavior |
| SnapMirror active sync / MetroCluster | Exact topology-specific health, mediator/replication and applicable post-upgrade checks |
| Backup/NDMP/SnapCenter integrations | Next scheduled job succeeds with the intended recovery point |
| Automation and monitoring | Collectors authenticate, return current data and report errors correctly |
event log show -time >1h
system health alert show
set -privilege advanced
qos statistics volume performance show -vserver svm_lab -volume vol_projects -iterations 10
set -privilege adminRelevant security/protection features work, monitoring is current and performance differences are explained under comparable conditions.
12Handle a failed postcheck and retain a usable change record
| Failure | Immediate decision | Evidence for diagnosis |
|---|---|---|
| ONTAP node still on source version | Keep upgrade open and inspect the incomplete stage | Node running versions and ANDU phase/log |
| HA or quorum abnormal | Stop further node maintenance and investigate | Partner state, rings, relevant events and console |
| NAS unreachable or writes denied | Separate transport, export/share and identity checks | Actual client, LIF, path and user transaction |
| SAN path count reduced | Investigate host/fabric/target before accepting resilience | Device identity, session/path output and I/O errors |
| Firmware pending/failed | Keep component acceptance open | Target device/model, package and active/staged versions |
| DQP mismatch | Verify the specific node’s installation | Per-node date, file version and download error |
| RPO exceeded | Escalate protection failure to its owner | Last usable point, transfer error and elapsed age |
- Keep planned suppression from masking a real outage and inform the change/service owner through the normal incident process. Preserve timestamps, identifiers and relevant logs.
- Use the documented recovery route for the observed state. Canceling an upgrade, restoring a configuration file or running a generic revert is not a universal correction for a client path failure.
- Create a post-change configuration backup after acceptance and retain it securely off-cluster. Reuse the backup/export procedure in the ONTAP guide with a new post-change filename.
- Close only when required rows pass or an authorized exception has its impact, owner and deadline recorded.
system node autosupport invoke -node * -type all -message "POSTCHECKS_ACCEPTED"
system node autosupport invoke -node * -type all -message "MAINT=END"Illustrative acceptance record — replace with observed results:
Change / target: approved ONTAP or component build
Nodes / components covered: lab-01, lab-02, named shelf/modules
Software / firmware / DQP identity: actual before and after values
HA / storage / network: accepted checks with evidence timestamps
NAS / SAN application test: user, endpoint, transaction and result
Protection: last completed usable recovery point and actual age
Monitoring / performance: compared baseline and relevant next-cycle result
Exceptions: specific impact, owner, decision and due date
Accepted by / time: storage and application ownersThe record demonstrates active versions, restored resilience and accepted application/protection service, not only completed commands.
Use the section links to revisit a step, or follow a related guide below.
Official references and further reading
Choose the matching release in the vendor documentation before using a command or design. References open on the publisher’s website; linked material remains with its publisher.
- Post-upgrade task overview
- Cluster version, health and quorum verification
- LIF home-port postchecks
- LIF failover configuration
- Shelf modules and connectivity
- Disk firmware status
- Shelf firmware status
- SP/BMC firmware status
- DQP identity verification
- BIOS/LOADER activation verification
- Platform-specific SAN host checks
- Volume performance sampling
- SnapMirror administration