After a break of few month, I am going to be talking this time about vSphere advanced parameters, parameters that I had to implement and I know it’s always quite hard to find them. Most of these are also params that I had to learn for the VCAP5 exam so it can be a good training for those who want to seat the exam.
So my idea here is to give you a short list of Host, vCenter, VM, and HA advanced parameters that are the most used, with an explanation and demonstration on when it is possible.
Part 1: Storage (Host Level)
Disk.EnableNaviReg – Disable automatic host registration.
When you use EMC CLARiiON or Invista arrays for storage, it is required that the hosts register with the arrays. ESX/ESXi performs automatic host registration by sending the host’s name and IP address to the array, but in some case with EMC clarion or Invista storage array, it doesn’t register properly. If you prefer to perform manual registration using storage management software, turn off the ESX/ESXi auto-registration feature.
Disk.schedNumReqOutstanding – Set the DSNRO value.
The LUN queue depth determines how many commands the HBA is willing to accept and process per LUN. When a single VM is issuing IO problem, Queue Depth apply but when multiple are issuing IO, you need to change the DSNRO value from 0 to 256, use constructor recommendation.
NFS.MaxVolumes – Number of NFS mount.
You can increase here the number of NFS mounts, keep the value as low as possible to preserve memory ressources
NetTcpipHeapSize – Network heap size
If you increase the number of NFS mounts, you also need to increase the tcp heapsize.
DataMover.HardwareAcceleratedMove – VAAI extended copy (XCOPY)
Without VAAI, a clone or migrate operation must use the VMkernel software Data Mover driver. If the files being cloned are multiple GB in size, the operation might last for many minutes to many hours. This full copy consumes host resources such as CPU cycles, DMA buffers and SCSI commands in the HBA queue. This primitive requests that the array perform a full copy of blocks on behalf of the Data Mover. It primarily is used in clone and migration operations (such as a Storage vMotion). ESXi hosts can be configured to enable the EXTENDED COPY SCSI command.
DataMover.HardwareAcceleratedInit – VAAI block zeroing (WRITE_SAME)
When provisioning an Eagerzeroed thick VMDK, a SCSI command is issued to write zeroes to disk blocks. Again, this initialization request consumes host resources such as CPU cycles, DMA buffers and SCSI commands in the HBA queue. One of the most common operations on virtual disks is initializing large extents of the disk with zeroes to isolate virtual machines and promote security. ESXi hosts can be configured to enable the WRITE_SAME SCSI command to zero out large portions of a disk. This offload task will zero large numbers of disk blocks without transferring the data over the transport link.
DataMover.HardwareAcceleratedLocking – VAAI locking (ATS)
In VMware vSphere VMFS, many operations must establish a lock on the volume when updating a resource. Because VMFS is a clustered file system, many ESXi hosts can share the volume. When one host must make an update to the VMFS metadata, a locking mechanism is required to maintain file system integrity and prevent another host from coming in and updating the same metadata. The following operations require this lock:
- Acquire on-disk locks
- Upgrade an optimistic lock to an exclusive/physical lock
- Unlock a read-only/multiwriter lock
- Acquire a heartbeat
- lear a heartbeat
- Replay a heartbeat
- Reclaim a heartbeat
- Acquire on-disk lock with dead owner
It is not essential to understand all of these operations. It is sufficient to understand that various VMFS metadata operations require a lock.
If you need to check if VAAI is activated on a ESX, logon to the ESX using a SSH client and type the following command:
#esxcli storage core device vaai status get
Now verify if VAAI work on the ESX with ESXTOP on the « Disk Device » display:
You can see in the screenshot above the different VAAI SCSI primitives and the number of blocks processed using VAAI in the CLONE, ATS and ZERO columns.
Part 2: Storage (vCenter Level)
Those advanced parameters are filters,you have to know them if you seat the VCAP5-DCA exam even if they are not really used. Those for filters are enabled by default.
Filter out LUN that are already used by a VMFS datastore.
Filter out LUN that are already used as a RDM.
Filter out LUNs that can’t be used as a VMFS datastore extend.
Automatically rescans and updates vmfs datastore after you perform datastore management operation.
Part 3: Memory Overcommitement (Host Level)
Mem.ShareScanTime – Transparent File Sharing
Mem.ShareScanGhz – Transparent File Sharing
Transparent page sharing is a method by which redundant copies of pages are eliminated. This helps to free memory that a virtual machine would otherwise be using.
Setting those values will change the interval of how often the host scans for memory and how much CPU ressources it consume doing it.
Mem.MemZipMaxPct – Memory compression
Mem.MemZipEnable – Memory compression
ESX/ESXi provides a memory compression cache to improve virtual machine performance when you use memory overcommitment. Memory compression is enabled by default. When a host’s memory becomes overcommitted, ESX/ESXi compresses virtual pages and stores them in memory. Because accessing compressed memory is faster than accessing memory that is swapped to disk, memory compression in ESX/ESXi allows you to overcommit memory without significantly hindering performance. When a virtual page needs to be swapped, ESX/ESXi first attempts to compress the page. Pages that can be compressed to 2 KB or smaller are stored in the virtual machine’s compression cache, increasing the capacity of the host.
Set the target size of the compression cache, and enable or disable the memory compression.
Mem.IdleTax – Ballooning
Mem.SamplePeriod – Ballooning
Mem.IdleTaxType – Ballooning
In ESX, a balloon driveris loaded into the guest operating system as a pseudo-device driver. It has no external interfaces to the guest operating system and communicates with the hypervisor through a private channel. The balloon driver polls the hypervisor to obtain a target balloon size. If the hypervisor needs to reclaim virtual machine memory, it sets a proper target balloon size for the balloon driver, making it “inflate” by allocating guest physical pages within the virtual machine.
Set the pourcentage of idle memory that may be reclaim by the tax. Interval in second at which the vmkernel will scan for idle memory. 0=flat 1=variable, variable use balloon driver.
Mem.AllocGuestLargePage – Large Pages
Enable/Disable, improve performance in server workloads that uses guest large pages.
Part 4: High Availability (Cluster Level)
IP used to check if a host is isolated, 10 IP address maximum.
When set to false, the host will not use the gateway as a isolation address.
Shutdown time out for the isolation response “Shutdown VM”, default is 300 seconds. In other words, if a VM isn’t shutdown clean when isolation response occured it’s being powered off after 300 seconds.
Set this value to the number of datastore you want to use for heartbeat.
When using the Host failures Admission Control Policy, you can specify a custom slot size.
Part 5: Virtual Machine (VM Level)
Set those values to false to disable copy, paste or drag and drop.
Set those values to false if you want to disconnect those devices.
If you are using a wide-area or low-bandwidth connection, the time delay over the network may be long enough to cause the virtual machine to start auto-repeat. To reduce these effects, increase the time threshold necessary for auto-repeat in the remote console by setting this parameters to « 2000000 » (microsecond).
Set this value to 1 or 2 for the maximum number of session allowed using the vSphere console of a virtual machine.
I hope this will help, feel free to leave a comment if you know some other advanced parameters that are well known, I will add them to the article.
Source: KB VMware, ValcoLabs.com, Clustering Deepdive.