ESXi iSCSI Port Binding with esxcli: networkportal add, remove and –force

iSCSI port binding with esxcli: list, add and remove network portals, what –force does, and how to clear active iSCSI sessions safely.

Short answer: software iSCSI port binding is managed with esxcli iscsi networkportal. Use list to see the bound VMkernel ports, add -A vmhbaNN -n vmkN to bind one, and remove -A vmhbaNN -n vmkN to unbind it. When ESX refuses because an iSCSI session is still active on the vmknic, remove --force unbinds it anyway, which logs those sessions out. Log them out deliberately first with esxcli iscsi session remove. Syntax below is from Broadcom’s ESXCLI reference for ESX 9.1.0 and is unchanged from ESXi 8.0 U3.

iSCSI port binding in one minute

Port binding ties the software iSCSI initiator to specific VMkernel adapters, so iSCSI traffic leaves only through those vmknics and each one becomes a separate path for multipathing. The usual rules: one vmknic per bound port, each vmknic with exactly one active physical uplink and no standby uplinks, all bound vmknics in the same subnet as the target portals, and unbound vmknics are never used for iSCSI. If your targets sit in a different subnet than the vmknics, read Broadcom’s routed port binding guidance before you bind anything.

esxcli iscsi networkportal options (ESX 9.1)

CommandOptionsWhat the option does
esxcli iscsi networkportal list--adapter | -ALimit the list to one iSCSI adapter
esxcli iscsi networkportal add--adapter | -A (required)The iSCSI adapter, e.g. vmhba64
--nic | -n (required)The vmknic to bind
--force | -fBind the vmknic even if it is not compatible with iSCSI multipathing
esxcli iscsi networkportal remove--adapter | -A (required)The iSCSI adapter
--nic | -n (required)The bound vmknic to remove
--force | -fRemove the vmknic even when sessions are active on it

The reference writes the flag as --force. The ESX error message suggests it as --force=true, so both spellings mean the same flag.

Find the software iSCSI adapter and the vmknics

esxcli iscsi adapter list
esxcli network ip interface ipv4 get
esxcli iscsi networkportal list

adapter list gives you the adapter name (the software initiator is usually vmhba6x). networkportal list shows each bound vmknic with its adapter, IP, uplink, compliance status and path status. A non-compliant vmknic is the first thing to fix.

Add a network portal (bind a vmknic)

esxcli iscsi networkportal add -A vmhba64 -n vmk2
esxcli iscsi networkportal add -A vmhba64 -n vmk3
esxcli storage core adapter rescan -A vmhba64
esxcli storage core path list

Replace vmhba64 and the vmknic names with your own. Rescan after binding so the new paths appear. Avoid add --force. It binds a vmknic that fails the multipathing checks (typically a port group with more than one active uplink), which leaves you with paths that do not fail over the way you expect. Fix the teaming instead: one active uplink, the rest unused.

Remove a network portal (unbind a vmknic)

esxcli iscsi networkportal remove -A vmhba64 -n vmk3
esxcli storage core adapter rescan -A vmhba64

With no active sessions on the vmknic, this is all you need.

“iSCSI session is active on the vmknic … use –force=true”

This is the message most people search for. ESX refuses to unbind because an iSCSI session still uses the vmknic, and suggests forcing it. Broadcom documents the same message when removing a static target (KB 370577). remove --force logs out every session on that vmknic. If a LUN has no other working path, that is an all-paths-down event for every VM on the datastore.

The safe order:

  1. Check that every LUN still has an active path through another vmknic: esxcli storage core path list -d naa.xxxx.
  2. List the sessions on the adapter and note the ISID of the session that uses this vmknic: esxcli iscsi session list -A vmhba64 and esxcli iscsi session connection list -A vmhba64.
  3. Log out only that session: esxcli iscsi session remove -A vmhba64 -s <isid>. Without -s or -n, session remove logs out every session on the adapter.
  4. Unbind: esxcli iscsi networkportal remove -A vmhba64 -n vmk3.
  5. Rescan the adapter and confirm the remaining paths.

Use --force only when the vmknic is already unusable (for example, a dead uplink during a NIC replacement) and you have confirmed the paths through the other vmknics.

iSCSI vmknics and netstacks

Searches for “netstack instance: iscsi” come from the output of esxcli network ip interface list, which prints the netstack every vmknic belongs to. To check:

esxcli network ip netstack list
esxcli network ip interface list

A vmknic gets its netstack when it is created. The reference documents esxcli network ip netstack add -N <name> and esxcli network ip interface add -i vmkN -p <portgroup> -N <netstack> (or -s <dvs-name> -P <dvport-id> on a distributed switch). An existing vmknic cannot be moved to another netstack; it has to be removed and created again. The main reason to give iSCSI its own netstack is a separate routing table. If your iSCSI traffic is not routed, the default netstack is the simpler choice. Before you port-bind vmknics on a custom netstack in production, confirm support with Broadcom’s vSphere Storage documentation and your array vendor, because the public documentation does not state it either way.

Verify paths after any change

esxcli iscsi networkportal list -A vmhba64
esxcli iscsi session list -A vmhba64
esxcli storage core path list
esxcli storage nmp device list

You want one active path per bound vmknic and target portal, and the path selection policy your array vendor recommends (usually Round Robin).

Common errors

  • “iSCSI session is active on the vmknic”: see the safe order above.
  • vmknic not compliant for binding: the port group has more than one active uplink, or a standby uplink. Set exactly one active uplink and move the others to unused. Don’t paper over it with add --force.
  • No new paths after add: no rescan, a target in a different subnet than the vmknic, or the array’s host access list does not include the initiator IQN.

Reference

ESXi Shell Commands You Actually Use (ESXi 8 and ESX 9)

The ESXi shell commands admins really run over SSH, grouped by task: esxcli, vim-cmd, vmkping, esxtop and agent restarts, checked for ESXi 8 and ESX 9.

Short answer: the ESXi Shell commands you actually use fall into a small set: esxcli for host, network, storage and software state, vim-cmd for VMs when hostd works, vmkping for VMkernel connectivity and MTU tests, esxtop for live performance, and /etc/init.d/hostd restart or /etc/init.d/vpxa restart for stuck management agents. Enable SSH only for troubleshooting. Every esxcli command below exists in ESX 9.0 and in ESXi 8.0 U3 unless noted otherwise.

This is a curated list, grouped by task, not a full reference. For the complete namespace tree see ESXCLI commands for ESXi 8.0 and ESXCLI commands for ESX 9.0. Commands were checked against Broadcom’s ESXCLI Command Reference (8.0.3, 9.0.0 and 9.1.0); non-esxcli commands are taken from the Broadcom KB articles cited in each section. Placeholders: vmk0, vmnic0, datastore1, 10.0.0.10, naa.xxx.

Enable the ESXi Shell and SSH

The ESX Shell is deactivated by default and Broadcom recommends activating it for troubleshooting only. The shell is independent of lockdown mode: if the service is running, you can still log in to it even when the host is in lockdown mode. Two services matter: ESXi Shell (local console, Alt+F1) and SSH (remote, TCP 22).

  • vSphere Client: select the host, Configure > System > Services, select SSH or ESXi Shell, Edit Startup Policy > Start and stop manually, then Start.
  • Host Client: Manage > Services, select TSM (ESXi Shell) or the SSH service, Actions > Start.
  • DCUI: F2 > Troubleshooting Options > Enable ESXi Shell / Enable SSH. The same menu has Modify ESXi Shell and SSH timeouts.

Set a timeout so the service does not stay open. The availability timeout is the advanced option UserVars.ESXiShellTimeOut (seconds, 0 = disabled). To check SSH daemon settings from the shell:

esxcli system settings advanced list -o /UserVars/ESXiShellTimeOut
esxcli system ssh server config list

Sources: KB 311213 (Using ESXi Shell in ESXi), TechDocs Using the ESX Shell (9.0).

Host info and version

TaskCommand
Version and buildvmware -vl
Version, build, update levelesxcli system version get
Hostname and FQDNesxcli system hostname get
Vendor, model, serialesxcli hardware platform get
CPU packages, cores, threadsesxcli hardware cpu global get
Physical memoryesxcli hardware memory get
Uptime (microseconds)esxcli system stats uptime get
Time and NTPesxcli system time get; esxcli system ntp get
Boot deviceesxcli system boot device get
Disk and ramdisk usagedf -h; vdf -h

vmware -v / vmware -vl come from KB 345263 (determining the build number) and KB 323110; df -h and vdf -h (ramdisk usage, useful when /, /tmp or /var/log is full) from KB 318926 (investigating disk space).

Maintenance mode and reboot

esxcli system maintenanceMode get
esxcli system maintenanceMode set --enable true
esxcli system shutdown reboot --reason "Patching"
esxcli system maintenanceMode set --enable false

esxcli system shutdown reboot and poweroff take a --reason; the reference states the host must be in maintenance mode. On vSAN hosts, --vsanmode controls data evacuation; decide it before you enter maintenance mode, not after. Take a configuration backup first (vim-cmd hostsvc/firmware/sync_config then vim-cmd hostsvc/firmware/backup_config, KB 313510; details in Backup and restore ESXi host configuration data).

Networking

TaskCommand
Physical NICs, link, speed, driveresxcli network nic list
NIC details, firmware, driver versionesxcli network nic get -n vmnic0
NIC counters and errorsesxcli network nic stats get -n vmnic0
VMkernel interfaces, MTU, netstackesxcli network ip interface list
vmk IPv4 addressesesxcli network ip interface ipv4 get
vmk service tags (Management, vMotion…)esxcli network ip interface tag get -i vmk0
Routing tableesxcli network ip route ipv4 list
DNS serversesxcli network ip dns server list
Standard vSwitches and port groupsesxcli network vswitch standard list; esxcli network vswitch standard portgroup list
Distributed switches seen by the hostesxcli network vswitch dvs vmware list
VMs with active portsesxcli network vm list
ARP tableesxcli network ip neighbor list
Open connectionsesxcli network ip connection list
Firewall rulesetsesxcli network firewall ruleset list

vmkping and the MTU test

vmkping sends ICMP from a specific VMkernel interface. For a 9000 MTU path, use -d (do not fragment) and a payload of 8972 bytes (9000 minus 28 bytes of IP and ICMP headers); for 1500 use 1472. Add -S vmotion when the vmk is on the vMotion TCP/IP stack.

vmkping -I vmk1 10.0.0.10 -d -s 8972
vmkping -I vmk1 -S vmotion 10.0.0.10 -d -s 8972
vmkping -I vmk0 10.0.0.10 -d -s 1472 -c 3
esxcli network diag ping --host 10.0.0.10 --interface vmk1 --df --size 8972 --count 3

If 1472 works and 8972 fails, something in the path (vSwitch, uplink, physical switch port) is still at 1500. Sources: KB 313061 (testing jumbo frame pings), KB 344313 (testing VMkernel connectivity with vmkping). KB 313061 also lists esxcfg-vswitch -l and esxcfg-vmknic -l for a quick MTU overview.

Storage

TaskCommand
Devices (LUNs, NVMe, local disks)esxcli storage core device list
One deviceesxcli storage core device list -d naa.xxx
Paths and their stateesxcli storage core path list
Multipathing policy per deviceesxcli storage nmp device list
HBAsesxcli storage core adapter list
HBAs, detailed (9.0+)esxcli storage core adapter listdetailed
Rescan all adaptersesxcli storage core adapter rescan --all
Mounted datastores (VMFS, NFS, vSAN)esxcli storage filesystem list
VMFS extents to device mappingesxcli storage vmfs extent list
VAAI statusesxcli storage core device vaai status get -d naa.xxx
Manual UNMAP on VMFSesxcli storage vmfs unmap --volume-label datastore1
NFS v3 / v4.1 mountsesxcli storage nfs list; esxcli storage nfs41 list

Mount an NFS v3 datastore; --connections sets the number of TCP connections (nconnect, see nconnect support in the ESXi NFS client):

esxcli storage nfs add --host 10.0.0.10 --share /export/ds01 --volume-name nfs-ds01 --connections 4
esxcli storage nfs remove --volume-name nfs-ds01

Caution: storage vmfs unmap generates I/O on the array; run it outside peak hours. Do not remove an NFS datastore that still has registered or running VMs.

VMs from the shell

vim-cmd needs a responsive hostd. esxcli vm process works on the running VM world and is the fallback for a VM that ignores power operations.

TaskCommand
List registered VMs and their vmIDsvim-cmd vmsvc/getallvms
Power statevim-cmd vmsvc/power.getstate 12
Power on / guest shutdown / hard offvim-cmd vmsvc/power.on 12; vim-cmd vmsvc/power.shutdown 12; vim-cmd vmsvc/power.off 12
Snapshotsvim-cmd vmsvc/get.snapshot 12
Hung tasks of a VMvim-cmd vmsvc/get.tasklist 12
Register a VMvim-cmd solo/registervm /vmfs/volumes/datastore1/vm01/vm01.vmx
Running VMs with World IDesxcli vm process list
Kill a stuck VMesxcli vm process kill -t soft -w 2750434

Caution: use kill -t soft first, then hard, and force only as a last resort. If esxcli itself does not respond, Broadcom suggests localcli with the same syntax. Sources: KB 308360 (common VM tasks via CLI), KB 308457 (powering off an unresponsive VM).

Services and logs

/etc/init.d/hostd restart
/etc/init.d/vpxa restart
tail -f /var/log/hostd.log
tail -f /var/log/vmkernel.log

Restart hostd or vpxa individually when the host shows as disconnected or not responding in vCenter, then wait 1–2 minutes. Caution: Broadcom warns not to use services.sh restart (or Restart Management Agents in the DCUI) on hosts running vSAN, LACP, NSX, or shared graphics (vGPU, vDGA, vSGA); restart single services instead. Source: KB 320280 (restarting management agents).

TaskCommand
Syslog configurationesxcli system syslog config get
Set remote syslog targetesxcli system syslog config set --loghost udp://10.0.0.10:514
Apply syslog changesesxcli system syslog reload
Write a marker into all logsesxcli system syslog mark --message "start of test"
Advanced settings changed from defaultesxcli system settings advanced list --delta
Core dump targetesxcli system coredump partition get; esxcli system coredump file list

Performance: esxtop basics

Run esxtop in the SSH session and switch views with single keys: c CPU, m memory, n network, d disk adapter, u disk device, v disk per VM, V show only VMs, f fields, h help, q quit.

For support cases, collect batch data to a datastore (-b batch, -a all metrics, -d interval in seconds, -n number of samples). 300 samples at 2 s = 10 minutes:

esxtop -b -a -d 2 -n 300 > /vmfs/volumes/datastore1/esxtop-$(hostname)-$(date +"%FT%H:%M").csv

Make sure the target datastore has free space and is not the one you are troubleshooting. Sources: KB 382249 (using esxtop), KB 370279 (collecting esxtop batch data).

Software and VIBs

TaskCommand
Base image (ESXi version in the image)esxcli software baseimage get
Installed componentsesxcli software component list
Installed VIBsesxcli software vib list
One VIB in detailesxcli software vib get -n <vib-name>
Image profileesxcli software profile get
Host acceptance levelesxcli software acceptance get
Verify VIB signaturesesxcli software vib signature verify
Profiles in an offline depotesxcli software sources profile list -d /vmfs/volumes/datastore1/depot.zip
Dry-run a component installesxcli software component apply -d /vmfs/volumes/datastore1/component.zip --dry-run

--dry-run exists on component apply, vib install, vib remove and profile update; use it before every change. On vLCM-managed clusters, remediate from vCenter instead. A quick check for NSX VIBs before any management-agent restart: esxcli software vib list | grep -E 'nsx|vsipfwlib'.

ESX 9 notes

ESX 9.0 adds two top-level namespaces, licensing and nsx; 9.1 adds memtier. None exist in 8.0 U3, and memtier is not in 9.0.

TaskCommand
License credentials (9.0+)esxcli licensing credential list
License entitlement assignments (9.0+)esxcli licensing entitlement list
Stop NSX services (9.0+)esxcli nsx services stop
Memory tiering status (9.1)esxcli memtier status get
Memory tiering devices (9.1)esxcli memtier device list
Memory tiering configuration (9.1)esxcli memtier config get

Caution: the reference describes esxcli nsx services stop as stopping NSX services with the tn-delete option. It is not a diagnostic command; use it only under an NSX procedure or support guidance. Other 9.0 additions worth knowing: esxcli storage core adapter listdetailed, esxcli nvme auth get and the esxcli vsan dedup namespace. The full diff is in ESXCLI changes from ESXi 8.0 U3 to ESX 9.0 and 9.1.

Full command lists

For the complete list see the full ESX 9.0 ESXCLI list and the ESXCLI 8.0 mindmap.

Sources

Related on vdan.cz

ESXCLI Changes in ESX 9.0 and 9.1: New, Removed and Changed Commands vs ESXi 8.0 U3

ESX 9.0 adds 27 ESXCLI commands and drops 11 vs 8.0 U3 (SLP, WBEM/CIM); 9.1 adds 27 more incl. memtier. Full tables from Broadcom’s reference.

Short answer: compared with ESXi 8.0 U3, the ESX 9.0 ESXCLI reference adds 27 commands and drops 11. The additions are a new licensing namespace, an nsx namespace, NVMe host authentication, duplicate iSCSI sessions and a reorganised vSAN ESA dedup tree. The removals are SLP and WBEM/CIM, which ESX 9.0 no longer ships, plus one deprecated iSER setting. ESX 9.1 adds another 27 commands, led by a new memtier namespace for NVMe memory tiering and iSNS discovery for iSCSI.

Every command and option below comes from Broadcom’s published ESXCLI Command Reference for 8.0.3, 9.0.0 and 9.1.0. I compared the three versions namespace by namespace: 814 commands in 8.0.3, 830 in 9.0.0 and 857 in 9.1.0. What a host actually offers depends on its build and installed VIBs, so check with esxcli --help before you script against a command.

Full lists: ESXCLI commands for ESX 9.0 · ESXi 8.0 · ESXi 7.0 · ESXi shell commands you actually use

ESX 9.0 at a glance

8.0.39.0.09.1.0
Top-level namespaces1618 (+ licensing, nsx)19 (+ memtier)
Commands in the reference814830857
Added vs previous–2727
Removed vs previous–110
Existing commands with changed options–1213

New ESXCLI commands in ESX 9.0

The biggest groups are licensing, which manages license credentials and entitlement assignments on the host for the VCF 9 licensing model, and vSAN ESA dedup. The dedup store commands moved from esxcli vsan dedupstore to esxcli vsan dedup dedupstore, next to new object- and space-level commands. Broadcom’s own description of vsan dedup object create says to use it only to replace a corrupted dedup hash object, following a runbook or KB, or with support. Treat that group as support tooling, not day-to-day commands.

Command (new in 9.0)What it does
esxcli iscsi session duplicate addAdd duplicate sessions on current iSCSI configuration
esxcli iscsi session duplicate listList duplicate sessions on current iSCSI configuration
esxcli iscsi session duplicate removeRemove duplicate sessions on current iSCSI configuration
esxcli licensing credential addAdd a new license credential
esxcli licensing credential listList the installed license credentials
esxcli licensing credential removeRemove an existing license credential
esxcli licensing entitlement addAdds a new license entitlement assignment
esxcli licensing entitlement listLists the license entitlement assignments
esxcli licensing entitlement removeRemoves a license entitlement assignment
esxcli licensing entitlement setUpdates an existing license entitlement assignment
esxcli nsx services stopCLI to stop NSX services with tn-delete option
esxcli nvme auth getGet NVMe host authentication information
esxcli nvme auth setSet NVMe host authentication information
esxcli nvme device log commandeffects getGet NVMe commands supported and effects log
esxcli storage core adapter listdetailedDetailed listing of all HBAs registered with PSA
esxcli vsan dedup dedupstore distribution getGet the dedup store distribution info of vSAN ESA (Express Storage Architecture) cluster
esxcli vsan dedup dedupstore getGet vSAN ESA dedup store view
esxcli vsan dedup dedupstore resync listGet detailed information of vSAN ESA resyncing dedup objects
esxcli vsan dedup dedupstore resync summary getGet summary information of vSAN ESA resyncing dedup objects
esxcli vsan dedup object createCreate a dedup object
esxcli vsan dedup object distribution getGet the chunk objects where the given regular object has data on
esxcli vsan dedup object reference getGet the regular objects whose data the given chunk object holds
esxcli vsan dedup object space getGet vSAN ESA regular object dedup space efficiency information
esxcli vsan dedup space getGet vSAN ESA dedup space efficiency information
esxcli vsan iscsi vip listList configured vSAN iSCSI VIPs
esxcli vsan witness license getGet vSAN witness license info on the host
esxcli vsan witness license setSet vSAN witness license config on the host

ESXCLI commands removed in ESX 9.0

The VCF 9.0 vSphere product support notes explain most of this list. ESX 9.0 removes CIM, the Small Footprint CIM Broker (SFCB), WSMan and the OpenSLP stack, which were deprecated in 8.0, and CIM providers for ESX 8.x and earlier aren’t supported on 9.0. Any script or monitoring check that calls esxcli system slp or esxcli system wbem fails on a 9.0 host. If hardware monitoring relied on CIM, ask the server vendor for a replacement.

Command (gone in 9.0)Replacement / reason
esxcli rdma iser params setWas already marked deprecated in 8.0.3
esxcli system slp getOpenSLP stack removed in ESX 9.0
esxcli system slp searchOpenSLP stack removed in ESX 9.0
esxcli system slp setOpenSLP stack removed in ESX 9.0
esxcli system slp stats getOpenSLP stack removed in ESX 9.0
esxcli system wbem getCIM/SFCB and WSMan removed in ESX 9.0
esxcli system wbem provider listCIM/SFCB and WSMan removed in ESX 9.0
esxcli system wbem provider setCIM/SFCB and WSMan removed in ESX 9.0
esxcli system wbem setCIM/SFCB and WSMan removed in ESX 9.0
esxcli vsan dedupstore distribution getMoved to esxcli vsan dedup dedupstore …
esxcli vsan dedupstore getMoved to esxcli vsan dedup dedupstore …

Existing commands with new or removed options (8.0 U3 → 9.0)

These commands keep their name but their options changed. The removals matter most for scripts. For example, esxcli system health report get no longer lists --all-reports in 9.0.

CommandOptions added in 9.0Options removed
esxcli iscsi adapter discovery statictarget remove--force | -f–
esxcli network ip interface set--urpf | -u–
esxcli network ip netstack set--ip-strong-es | -i–
esxcli nvme device namespace list--namespace | -n–
esxcli storage core adapter list--adapter | -a–
esxcli system health report get–--all-reports
esxcli vsan cluster join--client-network | -n–
esxcli vsan cluster new--client-network | -n–
esxcli vsan cluster unicastagent add--traffic-type | -F–
esxcli vsan debug object list--dedup-obj-type–
esxcli vsan storagepool unmount--evacuation-reason | -r–
esxcli vsan vdx create--backing-type | -b, --fs-type | -t–

New in ESX 9.1: memtier and more

The 9.1 reference adds a top-level memtier namespace to enable, configure and check NVMe memory tiering. The 9.0 reference has no memory-tiering namespace. For what memory tiering is and how it behaves, see NVMe memory tiering in vSphere 9.0. 9.1 also adds iSNS discovery for software iSCSI, NVMe flexible data placement, NFS restore commands and NFSv4.1 Kerberos credential commands. Nothing was removed between 9.0 and 9.1.

Command (new in 9.1)What it does
esxcli iscsi adapter discovery isns addAdd iSNS discovery address
esxcli iscsi adapter discovery isns listList iSNS discovery addresses
esxcli iscsi adapter discovery isns param getGet parameters on iSNS discovery address
esxcli iscsi adapter discovery isns param setSet iSNS discovery parameters
esxcli iscsi adapter discovery isns removeRemove iSNS discovery address
esxcli iscsi adapter isnsparam getGet the iSNS parameters for the iSCSI Host Bus Adapter
esxcli iscsi adapter isnsparam setSet the iSNS parameter for the iSCSI Host Bus Adapter
esxcli licensing registration getShow details about license registration
esxcli memtier config deleteDelete the memory tiering configuration
esxcli memtier config getGet the memory tiering configuration
esxcli memtier config setSet the memory tiering configuration
esxcli memtier device listList memory tiering devices
esxcli memtier disableDisable memory tiering
esxcli memtier enableEnable memory tiering
esxcli memtier status getShow the currently deployed Memory Tiering configuration
esxcli nvme device feature fdp getGet NVMe device feature flexible data placement information
esxcli nvme device feature fdp setSet NVMe device feature flexible data placement information
esxcli rdma device sniffer getGet RDMA device sniffer settings
esxcli rdma device sniffer setSet RDMA device sniffer settings
esxcli storage nfs restoreRestore previously mounted NFSv3 volumes
esxcli storage nfs41 credential getGet NFSv4.1 kerberos default user credentials
esxcli storage nfs41 credential setSet NFSv4.1 kerberos default user credentials
esxcli storage nfs41 credential unsetUnset NFSv4.1 kerberos default user credentials
esxcli storage nfs41 restoreRestore previously mounted NFS41 volumes
esxcli storage osdata getGet OSData information
esxcli vsan dedup scan getGet vSAN ESA dedup scanner information
esxcli vsan maintenancemode recommissionRecommission vSAN node, the command only set vSAN decommission state to non-decommissioned but not set host…

Option changes between 9.0 and 9.1. Note that esxcli vsan vdx create replaced three of its options and esxcli storage core claimrule add lost --if-unset:

CommandOptions added in 9.1Options removed
esxcli nvme device namespace create--anagrpid | -a, --endgid | -e, --lbstm | -l, --nvmsetid | -N, --phl | -P–
esxcli software apply--skip-reserved-vibs-caching–
esxcli software profile install--skip-reserved-vibs-caching–
esxcli software profile update--skip-reserved-vibs-caching–
esxcli storage core claimrule add–--if-unset
esxcli storage nfs param set--force | -f, --resolve-hostname | -r–
esxcli storage nfs41 param set--force | -f, --resolve-hostname | -r–
esxcli system health report get–--filename | -f
esxcli vsan health cluster list--perspective | -p–
esxcli vsan network security set--is-server-cluster | -s, --transition-state | -t–
esxcli vsan trace get--prettyjson | -p–
esxcli vsan trace set--configs | -c–
esxcli vsan vdx create--disk-path | -d--backing-type | -b, --disk-folder | -f, --disk-name | -d

Checking a host yourself

Broadcom notes that the list of commands depends on the system you run it on. To see what a specific host supports, and to compare a host before and after an upgrade, use ESXCLI’s built-in introspection:

# Every namespace and command this host knows
esxcli esxcli command list

# Help for one namespace or command
esxcli licensing --help
esxcli system health report get --help

# Save the list before and after an upgrade, then diff the two files
esxcli esxcli command list > /tmp/esxcli-before.txt

Copy the output files off the host, for example with scp, and compare them with diff. That also catches commands that come from vendor VIBs, which Broadcom’s reference doesn’t list.

What to update in your scripts

  • Remove or guard any call to esxcli system slp … and esxcli system wbem … before you upgrade hosts to 9.0.
  • Change esxcli vsan dedupstore … to esxcli vsan dedup dedupstore ….
  • Check scripts that pass --all-reports to esxcli system health report get (gone in 9.0) or --filename (gone in 9.1).
  • Scripts using esxcli vsan vdx create need the new options on 9.1.
  • On VCF 9 hosts, license through the new esxcli licensing commands (credentials and entitlements).

Sources

Related on vdan.cz