Search the VMware Knowledge Base (KB)
View by Article ID

Cannot upgrade Cisco Nexus 1000V module on ESXi host configured with NFS backed scratch (2004978)

  • 1 Ratings

Symptoms

  • Upgrading a Cisco Nexus 1000V Virtual Ethernet Module (VEM) on an ESXi host fails.
  • This issue occurs when:

    • ESXi is accessing its NFS mount points via the Cisco Nexus 1000V
    • ESXi has its scratch configured on an NFS share
    • Upgrading via Update Manager, vihostupdate, or esxupdate
    • Upgrading to a major version of the VEM (for example, 1.3 to 1.4)

  • This issue does not occur when upgrading to a minor version (for example, 1.3a to 1.3c).
  • In the esxupdate.log file, you see errors similar to:

    [<YYYY-MM-DD>T<TIME>] WARNING: vmware.esx: Failed to update esxupdate database after a package transaction failure: (None, "Failed scanning package data: [Errno 5] Input/output error: '/var/tmp/cache/cross_cisco-vem-v130-esx_4.2.1.1.4.0.0-2.0.1.vib'."). The database may be inconsistent with the package manager state.
    [<YYYY-MM-DD>T<TIME>] INFO: _visor: Cleaning up cache directory...
    [<YYYY-MM-DD>T<TIME>] INFO: vmware.esx: runcommand called with: args = 'mount', outfile = 'None', returnoutput = 'True', timeout = '0.0'.
    [<YYYY-MM-DD>T<TIME>] INFO: _visor: Creating cache directory...
    [<YYYY-MM-DD>T<TIME>] WARNING: vmware.esx: Error cleaning up cache dir: [Errno 17] File exists: '/var/tmp'

Cause

The upgrade fails because the old module must be unloaded to load the new version. This causes ESXi to lose connectivity to the scratch directory that is being used as part of the upgrade.

Resolution

To workaround this issue, perform one of these options:
  • Reconfigure scratch to use a different location (for example, local VMFS datastore, fibre channel VMFS datastore, or local ramdisk). For more information, see Creating a persistent scratch location for ESXi (1033696).

    Note:  To use local ramdisk perform the step in Creating a persistent scratch location for ESXi (1033696), but leave the path blank.

  • Configure the esxupdate utility to temporarily use a directory other than scratch for updates:
    1. Connect to the ESXi host via SSH or KVM (iLO,DRAC, etc). For more information, see  Connecting to an ESX host using an SSH client (1019852).
    2. Create a directory to be used by esxupdate with the command:

      mkdir -p /tmp/tmp

    3. Edit the esxupdate.conf file with the command:

      vi /etc/vmware/esxupdate/esxupate.conf

    4. Modify both locker = and cachedir =  to read the directory created in Step 2. For example:

      cachedir = /tmp/tmp

    5. Save the esxupdate.conf file.
    6. Perform the upgrade.

      Note: The esxupdate.conf settings do not persist across a reboot.  he next time the host reboots the settings will revert to their previous settings and the NFS-backed scratch will again be used by esxupdate.
       

Additional Information

For more information, see the Cisco Compatibly matrix.
 
Note: The preceding link was correct as of May 27, 2015. If you find the link is broken, please provide feedback and a VMware employee will update the link.

To be alerted when this article is updated, click Subscribe to Document in the Actions box.

Tags

upgrading-vem-fails

See Also

Request a Product Feature

To request a new product feature or to provide feedback on a VMware product, please visit the Request a Product Feature page.

Feedback

  • 1 Ratings

Did this article help you?
This article resolved my issue.
This article did not resolve my issue.
This article helped but additional information was required to resolve my issue.

What can we do to improve this information? (4000 or fewer characters)




Please enter the Captcha code before clicking Submit.
  • 1 Ratings
Actions
KB: