Home › Resources › Field Guides › NetApp LUN Serial in VMware
Field Guide · Storage OperationsHow to Identify a NetApp LUN Serial Number in VMware vCenter and ESXi
VMware never shows you a NetApp LUN’s serial number — it shows an NAA identifier. The whole trick of this guide: the NAA contains the serial, hex-encoded, in plain sight. Learn to read it once and every “which LUN is that datastore?” question — migration, performance triage, reclamation, DR — collapses into a one-line lookup, in either direction, with nothing installed anywhere.
01The one fact: the NAA contains the serial
ONTAP stamps every LUN with a 12-character serial at creation. VMware, seeing that LUN, builds its NAA identifier from the SCSI inquiry data — and for NetApp the result is simply a vendor prefix followed by that serial, hex-encoded. Nothing is hidden; it is just wearing hex:
BOS-DS01's LUN: naa.600a098038304e58712b5a764b6d5666. Strip naa.600a0980, read the remaining 24 hex characters as ASCII, and the ONTAP serial falls out. The encoding is exact and lossless in both directions — no lookup table, no vendor plugin required.naa.600a0980…. Older 7-mode systems present naa.60a98000… — same NetApp OUI (00a098) packed differently, and the hex-encoded serial follows the prefix in exactly the same way. A 7-mode worked example: naa.60a9800057322d6a5a71437267307358 → drop naa.60a98000 → 57322d6a5a71437267307358 → decodes to serial W2-jZqCrg0sX. Anything that does not start with one of these prefixes is not an ONTAP LUN: NetApp E-Series presents naa.60080e5… (a different acquired-product OUI), and other vendors have their own — the prefix is your fastest "is this even the right array?" check.
02Pick your direction
Every correlation task starts on one side of the stack and needs the answer from the other. There are only two cases — identify which one you are in, then follow that section alone:
serial-hex are the same string. Direction A crosses left-to-right (you have a device, want the LUN); Direction B crosses right-to-left (you have a LUN, want the device).03Direction A — VMware → NetApp Read-only
You have: a device or datastore in vCenter. You want: the ONTAP volume, SVM, and LUN path behind it. Three steps.
Step 1 — grab the NAA in vCenter
No vCenter handy? The same list from any ESXi shell:
esxcli storage core device list | grep -E "Display Name|Serial Number|naa"naa.600a098038304e58712b5a764b6d5666
Display Name: NETAPP Fibre Channel Disk (naa.600a098038304e58712b5a764b6d5666)
naa.600a098038304e58712b5a764b6d5668
Display Name: NETAPP Fibre Channel Disk (naa.600a098038304e58712b5a764b6d5668)
naa.600a098038304e58712b5a764b6d5667
Display Name: NETAPP Fibre Channel Disk (naa.600a098038304e58712b5a764b6d5667)Step 2 — take the 24-hex tail, ask ONTAP
Copy the last 24 hex characters of the NAA — that is the serial, hex-encoded (section 01). You do not even need all of it: lun show -serial-hex accepts wildcards, so any unambiguous fragment finds the LUN. On some ONTAP releases wildcard matching behaves best at advanced privilege; setting it costs nothing and the last line returns you home:
set -privilege advanced
lun show -serial-hex *712b5a764b6d5666*
lun show -serial-hex *712b5a764b6d5667*
set -privilege adminVserver Path State Mapped Type Size
---------- ----------------------------- -------- -------- -------- --------
svm-vmware /vol/vmw_data04/vmw_data04 online mapped vmware 10TB
Vserver Path State Mapped Type Size
---------- ----------------------------- -------- -------- -------- --------
svm-vmware /vol/vmw_rdm01/lun0 online mapped vmware 4TBStep 3 — sanity-check the match: the size in the output (4 TB / 10 TB) must agree with the vCenter device row you started from. If it does not, stop — re-count the hex characters before touching anything.
naa.600a0980, 7-mode naa.60a98000. NetApp E-Series arrays present different vendor codes entirely (naa.60080e5…, or naa.600a0b8… on LSI-era systems) — those LUNs resolve in SANtricity System Manager, not in ONTAP’s lun show. An unfamiliar prefix is the fastest possible “wrong array” signal.
04Direction B — NetApp → VMware Read-only
You have: a LUN on the cluster. You want: the datastore or RDM it backs. ONTAP will hand you the search string ready-made — the serial-hex field is exactly the NAA tail:
lun show -vserver svm-vmware -fields serial,serial-hexvserver path serial serial-hex
---------- --------------------- ------------ ------------------------
svm-vmware /vol/vmw_ds01/lun0 80NXq+ZvKmVf 38304e58712b5a764b6d5666
svm-vmware /vol/vmw_rdm01/lun0 80NXq+ZvKmVg 38304e58712b5a764b6d5667
2 entries were displayed.Prepend naa.600a0980 to the serial-hex value and that is the device name, verbatim. Paste it into vCenter’s search box, or match it from the shell:
esxcli storage vmfs extent listVolume Name VMFS UUID Extent Number Device Name Partition
----------- ----------------------------------- ------------- ------------------------------------ ---------
BOS-DS01 681f2c4e-8a31d970-55aa-3cecef1a2b30 0 naa.600a098038304e58712b5a764b6d5666 1
BOS-DS02 681f2d11-42b8ee01-9c02-3cecef1a2b30 0 naa.600a098038304e58712b5a764b6d5668 1The whole estate at once — PowerCLI
Every datastore, with its NAA and decoded serial Read-only
One pipeline against vCenter answers the question for every VMFS datastore in the inventory — and decodes the serial inline, so the output is already in NetApp's language.
Get-Datastore | Where-Object {$_.Type -eq "VMFS"} | Select-Object Name, @{N="NAA";E={$_.ExtensionData.Info.Vmfs.Extent[0].DiskName}}, @{N="NetAppSerial";E={$naa=$_.ExtensionData.Info.Vmfs.Extent[0].DiskName; if($naa -match "^naa\.600a0980(.+)$"){ -join (($Matches[1] -split "(..)" | Where-Object {$_}) | ForEach-Object {[char][convert]::ToInt32($_,16)}) } else {"(not ONTAP c-mode)"}}} | Format-Table -AutoSizeName NAA NetAppSerial
---- --- ------------
BOS-DS01 naa.600a098038304e58712b5a764b6d5666 80NXq+ZvKmVf
BOS-DS02 naa.600a098038304e58712b5a764b6d5668 80NXq+ZvKmVhEvery RDM in the inventory Read-only
The RDM sweep migrations always forget — every raw mapping, its VM, and its backing NAA.
Get-VM | Get-HardDisk -DiskType "RawPhysical","RawVirtual" | Select-Object Parent, Name, DiskType, ScsiCanonicalName, CapacityGB | Format-Table -AutoSizeParent Name DiskType ScsiCanonicalName CapacityGB
------ ---- -------- ----------------- ----------
bos-sql-01 Hard disk 2 RawPhysical naa.600a098038304e58712b5a764b6d5667 2,04805The on-page decoder — and doing it by hand
Decode it right here Read-only
Paste anything below — a full NAA identifier, the bare 24 hex characters, or a 12-character serial — and the decoder works out the direction. It runs entirely in your browser: nothing you type is transmitted, logged, or stored anywhere.
Client-side only — this page makes no network request with your input. Try the worked example: naa.600a098038304e58712b5a764b6d5666
NAA → serial Read-only
Strip naa.600a0980, hex-decode the remainder. Three one-liners, pick your shell:
echo 38304e58712b5a764b6d5666 | xxd -r -p; echo-join (("38304e58712b5a764b6d5666" -split "(..)" | Where-Object {$_}) | ForEach-Object {[char][convert]::ToInt32($_,16)})python3 -c "print(bytes.fromhex('38304e58712b5a764b6d5666').decode())"80NXq+ZvKmVfSerial → NAA Read-only
The reverse direction — you hold an ONTAP serial and need the identifier to search for in vCenter:
python3 -c "print('naa.600a0980' + '80NXq+ZvKmVf'.encode().hex())""naa.600a0980" + -join ("80NXq+ZvKmVf".ToCharArray() | ForEach-Object {"{0:x2}" -f [int]$_})naa.600a098038304e58712b5a764b6d5666+, - and /; the hex encoding preserves them exactly (2b is the + above). When comparing by eye, one character is the difference between two LUNs — which is why the decode belongs in a command, not in your head.
06Verify before you act
Two closing checks turn a lookup into evidence. First, confirm presentation — which hosts actually see this LUN:
In System Manager: Storage → LUNs → select the LUN — the serial number is on the details pane. And for the mapping sanity check, lun mapping show -vserver svm-vmware confirms which igroup (and therefore which ESXi initiators) the LUN is presented to — the final "this LUN, these hosts" confirmation before any change order.
Second, write the finding down so anyone can re-verify it from either side of the stack — the worked change-order sequence:
# 1. vCenter: BOS-DS01 > Configure > General > Device Backing
# naa.600a098038304e58712b5a764b6d5666
# 2. ESXi cross-check (either host):
[root@esx-01:~] esxcli storage vmfs extent list | grep BOS-DS01
BOS-DS01 681f2c4e-... 0 naa.600a098038304e58712b5a764b6d5666 1
# 3. ONTAP: match the NAA tail directly
aff-01::> lun show -serial-hex 38304e58712b5a764b6d5666
svm-vmware /vol/vmw_ds01/lun0 online mapped vmware 4TB
# 4. Confirm presentation (which hosts see it)
aff-01::> lun mapping show -vserver svm-vmware -path /vol/vmw_ds01/lun0
svm-vmware /vol/vmw_ds01/lun0 ig-bos-esx LUN-ID 0
# 5. The change order now reads:
# "Unmap /vol/vmw_ds01/lun0 (serial 80NXq+ZvKmVf,
# naa.600a098038304e58712b5a764b6d5666) from igroup ig-bos-esx"
# -- three independent identifiers, one LUN, zero ambiguity.
RBRunbook · both directions, condensed
- Build the ONTAP inventory first —
lun show -fields serial-hex(addpath,size,ostype,mappedfor the working view). This is the table every VMware identifier gets matched against. - Get the NAA — datastore: Configure → Device Backing (or
esxcli storage vmfs extent list); RDM: VM → Edit Settings → Physical LUN (or the PowerCLI RDM sweep). - Confirm the vendor prefix —
naa.600a0980(clustered ONTAP) ornaa.60a98000(7-mode). Anything else: stop, different array. - Take the 24 hex characters after the prefix — that is the serial, hex-encoded.
- Match on ONTAP —
lun show -serial-hex <24-hex>→ path, volume, SVM. Or decode to ASCII and matchlun show -serial. - Confirm the mapping —
lun mapping show→ igroup → the hosts you expect. - Write all three identifiers into the change order — path, serial, NAA.
Reconciling a VMware estate against its storage?
WUC engineers deliver datastore-to-LUN reconciliation as part of storage migrations, reclamation sweeps, and DR validation on NetApp estates inside and outside OEM support.
Talk to engineering →FAQFrequently asked questions
Q03Does this work for iSCSI LUNs, or only FC?
Both, and FCoE too — the NAA identifier comes from the SCSI inquiry data, not the transport. An ONTAP LUN presents the same NAA over any block protocol it is mapped through.
Q04What about NVMe namespaces (NVMe/FC, NVMe/TCP)?
Different identity scheme: NVMe namespaces are identified by NGUID/UUID, not NAA, and ESXi shows them as eui. or uuid. devices. The correlation is done with vserver nvme namespace show against the namespace UUID instead — the serial-in-hex trick on this page is a SCSI LUN behaviour.
Q06Does a vVols environment need this?
Mostly no — vVols does away with the one-datastore-one-LUN model, and correlation runs through the VASA provider (ONTAP tools) instead. Where you will still meet NAA correlation in a vVols shop: the protocol endpoints themselves, and any remaining classic VMFS or RDM devices — of which migrations always find a few.
Q07The serial decodes to gibberish — what went wrong?
Almost always one of three things: you decoded a non-NetApp device (check the prefix); you included the 0 pad or dropped a hex digit when stripping the prefix (the tail must be exactly 24 hex characters); or the device is an NVMe namespace wearing a different identity format entirely. Re-check the prefix, re-count the characters.
Q08Can ONTAP tools for VMware do this for me?
Yes — NetApp's ONTAP tools vCenter plugin surfaces LUN and volume detail directly in the vSphere Client, and in an estate with it deployed, that is the convenient path. This guide exists because the plugin is frequently absent, broken, or version-stranded exactly when you need the answer — the NAA method needs nothing installed anywhere.
RFReferences
- NetApp ONTAP CLI — lun show (serial and serial-hex fields)
- NetApp Knowledge Base — LUN serial to NAA/device identifier correlation articles
- VMware KB 1014953 — Identifying disks when working with VMware ESXi
- VMware PowerCLI — documentation and download
- vmninja — Matching NetApp LUN serials to VMware NAA identifiers (community walk-through of this method)
- Video walk-through — identifying a NetApp LUN serial from the vSphere Client (community)
→From the same practice
- Cisco MDS Zoning: A Field Guide for NetApp AFF Dual-Fabric Setups
- Cisco MDS NX-OS Upgrade Runbook
- PowerScale (Isilon) OneFS Command Reference
- Post-OEM storage maintenance
How many of your datastores could you name the LUN for, right now?
Most VMware estates we assess cannot produce a current datastore-to-LUN map — and discover their undocumented RDMs mid-migration. WUC engineers deliver storage reconciliation as a deliverable: the full correlation table, the orphaned-LUN list, and the RDM inventory nobody knew they had.
- Datastore / RDM to LUN correlation across the estate
- Orphaned and unmapped LUN identification before reclamation
- Migration and DR planning built on verified identifiers
- NetApp estates inside and outside OEM support
Prefer to talk it through first? Book a technical consultation → · View managed services
All hostnames, domains, users, paths, serial numbers and IP addresses in this guide are synthetic reference values. No customer environment is depicted. NetApp and ONTAP are trademarks of NetApp, Inc.; VMware, vSphere and vCenter are trademarks of Broadcom. WUC Technologies is not affiliated with these vendors.