Network Computing is part of the Informa Tech Division of Informa PLC

This site is operated by a business or businesses owned by Informa PLC and all copyright resides with them. Informa PLC's registered office is 5 Howick Place, London SW1P 1WG. Registered in England and Wales. Number 8860726.

VMware ESX: Guide To Common Commands

  • {image 1}

    Consistency in operations is the key for effective execution and control across a virtualized IT infrastructure. VMware users have access to a number of vSphere clients that use a graphical user interface (GUI). However, most administrators still prefer the command-line interface (CLI), which provides faster access and better automation capabilities. For any IT administrator, familiarity with the many VMware ESX and ESXi commands will mean better automation, fine tuning, and troubleshooting capabilities.

    VMware Scripting

    To automate the management of daily operations across VMware vSphere hosts, VMware provides handy scripting tools:

    VMware vSphere PowerCLI helps automate-vSphere related tasks for managing hosts, storage, VMs, guest OS, and more. It is distributed as an add-on snap-in for Windows PowerShell and offers 150+ PowerShell cmdlets. This tool can be used by itself or within many different third-party tools.

    VMware vSphere Command Line Interface (vCLI) is a set of command-line utilities that help users administer and manage virtual environments, including provisioning, configuration, and maintenance of vSphere hosts. vCLI can be used to access and operate vSphere hosts from any remote machine. It also integrates with the vCenter platform, allowing users to target and operate the vSphere hosts managed by the VMware vCenter Server system. vCLI commands can be used to automate the configuration, troubleshooting, and diagnostics of a vSphere host.

    PowerCLI and vCLI were both developed using the same interface as the vSphere client and can be pointed to any vSphere host, either directly or through vCenter. When targeted directly towards a vSphere host, they use a local authentication mechanism and work in a manner similar to commands running from a traditional console operating system.

    When targeted though vCenter, the vCLI and PowerCLI commands follow the same authentication (e.g., Active Directory), roles, and privileges, and even log in as vSphere client interactions, which offers a much more secure and auditable management framework.

    In the following pages, we'll explain the most commonly used commands for VMware ESX in the areas of file management, host management, virtual machines, user management, virtual network management, storage, and performance.

  • File Management

    In a virtual environment, most objects, like virtual disks and relevant configurations, are stored and represented as files. In a VMware virtual environment, files can be either in Virtual Machine File System (VMFS) format, or in Network File System (NFS) format. The vSphere CLI includes two commands for performing file manipulation for these two formats: "vmkfstools" allows you to manipulate the VMFS and virtual disks, while "vifs" supports remote interaction with the NFS files.

    COMMAND: vmkfstools

    This command helps in creating and manipulating virtual disks, file systems, logical volumes, and physical storage devices on an ESXi host. It also allows administrators to create and manage a VMFS on a physical partition of a disk and to manipulate files, such as virtual disks, stored on VMFS-3 and NFS. Here are some examples:

    Creating a virtual disk

    ~ # vmkfstools -c 2048m testvirtualdisk.vmdk

    Creating a VMFS

    ~ # vmkfstools -C vmfs5 -b 1m -S my_test_vmfs /vmfs/devices/disks/test.ID:1

    COMMAND: vifs

    This command helps in performing file system operations like copying, removing, getting, and placing files and directories on remote hosts. Here are some examples:

    Copying a file to another location

    ~ # vifs <connection_options> -c "[StorageName] VM/VM.vmx" "[StorageName] VM_backup/VM.vmx"

    Listing all the directories

    ~ # vifs --server <connection_options> -D "[StorageName] vm"

  • Host Management

    Commands related to host management can be used to stop and reboot ESXi hosts, take backups of configuration information, and manage host updates.

    COMMAND: vicfg-hostops

    This command can be used to shut down or reboot an ESXi host. It can be used to shut down either a single host at a time or all the hosts in the data center or cluster, which disconnects the hosts from the vCenter Server System but does not remove them from the inventory. Here are some examples:

    Shutting down a single host

    ~ # vicfg-hostops <conn_options> --operation shutdown --force

    Rebooting entire cluster

    ~ # vicfg-hostops <conn_options> --operation reboot --cluster <my_cluster>

    COMMAND: vicfg-cfgbackup

    This command can be used to take a backup of host configuration data. This command is available only for ESXi hosts and not available on the vCenter Server system connections. Here are some examples:

    Backing up configuration data

    ~ # vicfg-cfgbackup <conn_options> -s /tmp/ESXi_181842_backup.txt

    Restoring configuration data

    ~ # vicfg-cfgbackup <conn_options> -l /tmp/ESXi_181842_backup.tgz

    COMMAND: vicfg-authconfig

    This command helps in remote configuration of Active Directory settings on ESXi hosts. It also allows administrators to obtain lists of supported and active authentication mechanisms, as well as lists of the current domain and join or part from an Active Directory domain. Here is an example:

    To set up Active Directory, after synchronizing the ESXi host and Active Directory, the following command must be run:

    ~ # vicfg-authconfig --server=<ESXi Server IP Address>
      --username=<ESXi Server Admin Username>
      --password=<ESXi Server Admin User's Password>
      --authscheme AD --joindomain <AD Domain Name>
      --adusername=<Active Directory Administrator User Name>
      --adpassword=<Active Directory Administrator User's Password>

  • Virtual Machine Management

    Managing virtual machines involves tasks like registering and unregistering virtual machines, retrieving virtual machine information, managing snapshots, turning virtual machines on and off, adding and removing virtual devices, and prompting for user input.

    COMMAND: svmotion

    Storage vMotion (or svmotion) helps in moving a virtual machine's configuration file, and, optionally, its disks, to a different location while the virtual machine is running. This can help in moving all virtual machines and disks to a single target location, or choosing different locations for configuration files and virtual disks. Here are some examples:

    Relocating a virtual machine's storage (including the disks)

    ~ # svmotion - -url= - -datacenter=DC1 - -vm="[storage1] myvm/myvm.vmx:new_datastore"

    Relocating a virtual machine's configuration file, but leaving the virtual disks

    ~ # svmotion <conn_options> - -datacenter='My DC' - -vm='[old_datastore]
    myvm/myvm.vmx:new_datastore' - -disks='[old_datastore] myvm/myvm_1.vmdk:old_datastore, [old_datastore] myvm/myvm_2.vmdk: old_datastore'

    COMMAND: vmware-cmd

    This command helps in performing virtual machine operations including creating a snapshot, powering a virtual machine on or off, and getting information about a virtual machine. It also helps administrators register and unregister virtual machines, retrieve virtual machine information, manage snapshots, turn virtual machines on and off, add and remove virtual devices, and prompt for user input. Here are some examples:

    Listing all registered virtual machines

    ~ # vmware-cmd <connection_options> -l

    Registering a virtual machine

    ~ # vmware-cmd <connection_options> -s register /vmfs/volumes/storage/VM/MyVM.vmx

    Creating a snapshot

    ~ # vmware-cmd -U <myuser> -P <mypassword> -H VCServerABC -h ESXHost
       /vmfs/volumes/storage1/MyVM/MyVM.vmx createsnapshot <name> <description>
         <quiesce> <memory>

  • User Management

    In a VMware virtual environment only authorized users with appropriate access permissions are allowed to access any information or resources. Administrators are provided with several ways to manage these users and their associated tasks and permissions.

    COMMAND: vicfg-user

    This command helps create, modify, delete, and list local direct access users and groups of users on an ESXi host. This command cannot be targeted to a vCenter Server system. Here are some examples:

    Listing the existing users

    ~ # vicfg-user <conn_options> -e user -o list

    Adding a new user with specified login ID and password

    ~ # vicfg-user <conn_options> -e user -o add -l user27 -p 27_password

    Creating a group

    ~ # vicfg-user <conn_options> -e group -o add -d test

  • Virtual Network Management

    Virtual network management includes activities like setting up a vSphere virtual switch, setting the DNS configuration, adding and starting an NTP Server, managing the IP gateway and more.

    COMMAND: esxcli network vswitch

    This command can be used to create or manipulate virtual switches. It also helps in obtaining detailed information about the virtual switches. Here are some examples:

    Listing all virtual switches and associated port groups

    ~ # esxcli <conn_options> network vswitch standard list

    COMMAND: vicfg-vswitch

    This command works pretty much the same as the "esxcli network vswitch" command above, helping administrators create, manage, and manipulate virtual switches. Here is an example:

    Listing all virtual switches and associated port groups

    ~ # vicfg-vswitch <conn_options> -l

    COMMAND: esxcfg-vswitch

    This command helps in viewing and configuring virtual switches. It helps configure the port groups and link physical network interface cards (NICs) to them. It also helps in configuring virtual LAN IDs, Cisco Discovery Protocol (CDP), and the maximum transmission unit (MTU) of vswitches. Here are some examples:

    Creating a new virtual switch

    ~ # esxcfg-vswitch a TestvSwitch

    Adding or removing network cards (known as vmnics) to or from a vNetwork Distributed Switch (vDS)

    ~ # esxcfg-vswitch -P vmnic -V unused_dvPort_ID dvSwitch

    COMMAND: esxcfg-nics

    This command helps in viewing and configuring physical NICs. It provides information about NIC status and also allows administrators to configure the speed of the NICs. Here is an example:

    Viewing the list of physical adapters and their link status

    ~ # esxcfg-nics l

  • Storage Management

    A virtual disk is basically a file that stores the operating system, program files, and other data related to a virtual machine. It is generally a single file or a set of files that can be copied, moved, archived, and backed up just like any ordinary content file.

    COMMAND: vicfg-scsidevs or esxcli storage core device list

    This command helps in displaying the available logical unit numbers (LUNs) and mappings for each VMFS volume to its corresponding partition. Here is an example:

    Listing all logical devices known on the system

    ~ # esxcli <conn_options> storage core device list
    ~ # vicfg-scsidevs <conn_options> --list

    COMMAND: vicfg-mpath or esxcli storage core path

    This command helps in obtaining information about Fibre Channel or iSCSI LUNs and to change a path's state. Here are some examples:

    Listing all devices, along with corresponding paths, state of the path, adapter type, and other information

    ~ # esxcli <conn_options> storage core path list
    ~ # vicfg-mpath <conn_options> --list-paths

    Setting the state of a LUN path to "off"

    ~ # esxcli <conn_options> storage core path set --state off --path vmhba32:C0:T1:L0
    ~ # vicfg-mpath <conn_options> --state off --path vmhba32:C0:T1:L0

    COMMAND: vicfg-rescan adapter rescan or esxcli storage core adapter rescan

    This command helps perform a rescan operation each time the storage setup is reconfigured. Here is an example:

    Rescanning a storage adapter

    ~ # esxcli storage core adapter rescan --adapter=TestAdapter
    ~ # vicfg-rescan <conn_options> TestAdapter

    COMMAND: esxcfg-mpath

    This command helps in displaying and setting (enabling and disabling) all paths from a host to its storage devices. Here is an example:

    Enabling or disabling a path

    ~ # esxcfg-mpath -P path -s state

    COMMAND: esxcfg-info

    This command helps in obtaining detailed information about the host from which the command is fired. Its output can be stored directly into a text file, allowing direct documentation of the host configuration. Here are some examples:

    Checking the ESX/ESXi host for host hardware info

    ~ # esxcfg-info | less i

    Filtering out information about a specific system

    ~ # esxcfg-info | grep 'system uuid'

  • iSCSI Storage Management

    ESXi systems include iSCSI storage technology, which is used to access files stored at remote locations over an IP network. For better automation, the hardware and software for iSCSI storage can be configured using the vCLI commands.

    COMMAND: esxcli iscsi

    This command helps in performing a variety of iSCSI management tasks, like setting up iSCSI storage, listing and setting iSCSI options, enabling iSCSI authentication, and more. Here are some examples:

    Enabling software iSCSI

    ~ # esxcli <conn_options> iscsi software set --enabled=true

    Adding a new adapter

    esxcli <conn_options> iscsi networkportal add -n <portal_name> -A <vmhba>

    COMMAND: vicfg-iscsi

    This command is similar to "esxcli iscsi" discussed above. It also helps in performing a variety of iSCSI management tasks, like setting up iSCSI storage, listing and setting iSCSI options, enabling iSCSI authentication, and more. Here are some examples:

    Enabling software iSCSI

    ~ # vicfg-iscsi --swiscsi enable

    Setting the iSCSI name and alias

    ~ # vicfg-iscsi --iscsiname name

  • Managing Third-Party Storage Arrays

    To optimize the performance of storage arrays, VMware partners and customers often use VMware Pluggable Storage Architecture (PSA). There are several vCLI commands that can be used for managing PSA and the associated Native Multipathing Plug-in (NMP) with VMware vSphere.

    COMMAND: esxcli storage nmp

    This command can be used to manage devices associated with NMP, to set path policies, and to obtain information about the path policies. Here are some examples:

    Listing paths to a single device

    ~ # esxcli storage nmp path list --device <device>

    Setting configuration parameters for third-party extensions

    ~ # esxcli storage nmp roundrobin setconfig

  • Troubleshooting Commands

    Timely monitoring and tracking of the performance statistics and logs of virtual environment resources can be very useful for administrators when diagnosing a problem in a virtual environment.

    COMMAND: esxtop

    This interactive utility can be used to provide I/O metrics like CPU, memory, disk, and network usage over various devices attached to a VMware ESX host. This is primarily used for troubleshooting performance problems. Here are some examples:

    Interactive mode: The esxtop tool includes several interactive commands. A list of the interactive commands can be viewed by entering 'h'.

    ~ # esxtop [h]

    Batch mode: esxtop can also be used in batch mode

    ~ # esxtop -b -n iterations > logfile.

    COMMAND: vm-support

    This command helps in gathering useful information about performance snapshots and product-specific logs and configuration files, which are useful for administrators for diagnostic purposes. It can also be used to gather information about a VM and kill VMs if they are not responding. Here are some examples:

    Collecting performance snapshots

    ~ # vm-support -p

    Exporting a log bundle to a shared vmfs datastore

    ~ # vm-support -f -w /vmfs/volumes/DATASTORE_NAME