wiki:VmwareEsxi
Last modified 6 years ago Last modified on 12/15/11 16:20:37

VMWare ESXI Notes

Connecting to ESXi for the first time

ESXi is quite minimal and currently the client runs only on Windows, so if you're on Mac or Linux you need to use Remote Desktop or a virtual machine such as VMWare Fusion. Once you're on Windows, connect to your ESXi installation with a web browser, such as https://myvmhost.example.com and accept the self-signed SSL certificate. You will see a link to "Download vSphere Client" (ESXi 5 or 4) or "Download VMware Infrastructure Client" (ESXi 3.5). The installer will pull in prerequisites such as Visual J# 2.0 Second Edition (!) and the .NET Framework.

Security Updates

  • Your ESXi user have the "Administrator" role assigned in "Permissions" to install updates. Only root has that role by default.
  • Our experience is that updates can go bad so you may want to make sure you have convenient physical or remote console access.

Installing Updates

ESXi 5

  1. Download the patch zip file
  2. Upload the patch to a datastore accessible to your ESXi 5 host
  3. Put your ESXi 5 host into maintenance mode
  4. Log into the host via SSH and run a command like
    esxcli software vib install --maintenance-mode --depot /vmfs/volumes/datastore1/ESXi500-201109001.zip 
    

ESXi 3.5

  1. Use the VMWare Infrastructure Update utility (installed with the Windows GUI client) to update
  2. In each VM, poweroff (not just halt).
  3. Open the VMWare Infrastructure Client, right-click the host and "Reboot".
  • Note: the ESXi 3.5u5 ISO does not include "CRITICAL" patch ESXe350-201012401-I-BG (build 317866) which provides a new June 2011 signing key for updates. Therefore after a new install you must first put the host in maintenance mode and reboot, stop NTP and change the date to anything less than June 1 2011 and install that patch, then rebooted again to apply before you will be able to install the latest patches. Hopefully VMWare will soon provide an installable 3.5u6 ISO.

Configuration Notes

  • By default VMs are not started automatically. You may want to set that up: open the VMWare Infrastructure Client, "Configuration" tab, "Virtual Machine Startup/Shutdown?" under "Software". Automatic startup does not happen in maintenance mode.
  • ESXi has a somewhat hidden NTP client: go to Configuration->Time Configuration and click "Properties" in the top right. Click the "Options" button for NTP servers (you may want to first manually set the host time).
  • At least for some hardware models, you can see your Service Tag under Configuration->Processors

Data Stores

You can upload files by opening the VMWare Infrastructure Client and going to Summary and double-clicking on your data store such as datastore1. A modal brower will show you the filesystem on the server.

Monitoring

A Python ESXi nagios script is on the VMWare Communities site. I put a modified version that I use at http://staff.washington.edu/joshuadf/esxi/

Add a user and then

  • From the VMWare Client ESXi host page, go to the Users and Groups tab and add a user
  • go to the Permissions tab, right-click to "Add Permission..."
  • On the dialog click make sure "Read-Only" is showing on the right, then click "Add" on the left (NOTE: ESXi 5.0 seems to require "Administrator" role for WBEM use.)
  • Find your user and click "OK" and then "OK" again to confirm

You should now be able to run the above script as the read-only user. Alternatively, here is a very simple WBEM script to get the version string from ESXi using the VMWAre CIM API:

#!/usr/bin/python
import sys
import pywbem

NS = 'root/cimv2'
myhostp = "https://%s:5989" % sys.argv[1]
client = pywbem.WBEMConnection(myhostp, ('readonlyuser', 'really$!@$!@awesome'), NS)

print '%s' % client.EnumerateInstances('VMware_HypervisorSoftwareIdentity')[0]['VersionString']

Remote Desktop

Sometimes when trying to use the VM Console inside the VMWare Infrastructure client, a key will repeat as if I was holding the key down. I got this tip: "Align the Microsoft tools' versions as much as possible. So I'll use WinXP to remote to the remote Win2k3 server, or if I need to remote into my Vista laptop I use the most recent mac client which doesn't work with remote Win2k3 but the older v1 client does work."

Copying VMDKs

Copying the VMDK files is an easy way to move or duplicate a VM. However there are some caveats. If you're going to copy VMDKs manually, avoid snapshots. You have to "delete" (really merge) them for the vmdk copy to work, and it takes forever to do. However, once copied the vmdks can be imported into ESXi or Fusion. You can also do stuff like shrink the disk with vmware-vdiskmanager (via VMWare Fusion in this example):

/Library/Application\ Support/VMware\ Fusion/vmware-vdiskmanager -k -s 4GB volaris.vmdk
# make the actual file smaller by copying it:
/Library/Application\ Support/VMware\ Fusion/vmware-vdiskmanager -r volaris.vmdk -t 0 new.vmdk

There are also several VMDK types. If you're using the "flat" type, you can also create a new VM in the GUI and then copy over the "flat" VMDK file. Shut down both VMs first.

mv newvm-flat.vmdk sav
mv /vmfs/volumes/4c87623e-73972328-3722-0019b92dff60/oldvmcopy/oldvm-flat.vmdk newvm-flat.vmdk

You may find that your networking doesn't come up at first due to a new MAC address.

NIC types

In ESXi 3.5, NIC types e1000, pcnet32, and vmxnet all work, but you can only choose the "Flexible" type in the GUI for certain OS types. ESXi 4.0 supports vmxnet3 which is in the upstream Linux kernel and included in the latest Ubuntu and Red Hat.

The VMWare Converter created e1000 NICs for migrated Linux boxes and the performance is good with no VMWare Tools. However, manually created "Red Hat Enterprise Linux v5" VMs get "Flexible" which showsup in Linux as pcnet32, a 10Mb NIC (!), but if you install VMWare Tools or open-vm-tools it turns into a vmxnet with good performance: http://kb.vmware.com/kb/1001805

Alternatively, creating an "Other Linux" or "Windows Server 2008 R2" VM gives you a drop-down option to select "e1000" in the GUI, or if you're brave you can manually add this line to the VMX file:

ethernet0.virtualDev = "e1000"

Jumbo Frames on VMkernel interface

Again cannot be done from the GUI client, but in ESXi 3.5 this works to enable jumbo frames:

	• Add a new virtual switch with the command:

esxcfg-vswitch -a vSwitch2
 
	• Set an uplink to vswitch with the command:

esxcfg-vswitch -L vmnic1 vSwitch2
 
	• Set MTU for the vswitch with the command:

esxcfg-vswitch -m 9000 vSwitch2
 
	• Add a new port group with the command:

esxcfg-vswitch -A VMJF vSwitch2
 
	• View Your Settings. List your newly created vSwitch with the command:

esxcfg-vswitch -l

Random Notes

  • Need sound card support in a Windows XP VM? Try Installing WYSE Multimedia Support with VMware Tools
  • Want Dell OpenManage? It's apparently possible to Install Dell OpenManage on ESXi 4
  • VM-Help.com has a bunch of tips, including remote ssh access and using vim-cmd
  • VMWare's desktop products such as Fusion and Workstation include tools to work with virtual machines and VMDK images, for example vdiskmanager mentioned above or the VMDKMounter that can mount images like an external drive (it gives scary messages but works:
    "/Library/Application Support/VMware Fusion/VMDKMounter.app/Contents/MacOS/vmware-vmdkMounter" /path/to/my-vm.vmdk &
    Thu Apr  7 09:30:53 cyton.biostr.washington.edu vmware-vmdkMounter[674] <Warning>: 3891612: (connectAndCheck) Untrusted apps are not allowed to connect to or launch Window Server before login.
    _RegisterApplication(), FAILED TO establish the default connection to the WindowServer, _CGSDefaultConnection() is NULL.
    kextload: /Library/Filesystems/fusefs.fs/Support/fusefs.kext loaded successfully
    
    ls /Volumes/Untitled/
    0d2644f1568c3ad629efefd34985  AUTOEXEC.BAT  Documents and Settings  IO.SYS     NTDETECT.COM   RECYCLER			 WINDOWS   drivers	fuxdbg.txt  pagefile.sys
    410624ee6f9b53179a33	      CONFIG.SYS    GEData		    MSDOS.SYS  Program Files  System Volume Information  boot.ini  drivers.zip	ntldr	    winsvc.txt
    
  • You can also migrate VMDKs to various other virtualization software like LibVirt or VirtualBox?.