Tune Virtual Machine disk controller configurations
- BusLogic – this was one of the first emulated vSCSI controllers available in the VMware platform. The earliest versions of Windows has this driver available by default which made it easy when installing that particular OS. It wasn’t however as performant as the LSI Logic driver since Windows’ driver was limited to a queue depth of 1, so often one would manually load the LSI Logic driver instead. While still available and used occasionally (Is anyone still running Win2K?), it should be considered legacy.
- LSI Logic Parallel (formerly knows as just LSI Logic) – this was the other emulated vSCSI controller available originally in the VMware platform. Most operating systems had a driver that supported a queue depth of 32 and it became a very common choice, if not the default.
- LSI Logic SAS – This is an evolution of the parallel driver to support a new future facing standard. It began to grown popularity when Microsoft required its use for MCSC within Windows 2008 or newer.
- VMware Paravirtual (aka PVSCSI) – this vSCSI controller is virtualization aware and was been designed to support very high throughput with minimal processing cost and is therefore the most efficient driver. In the past, there were issues if it was used with virtual machines that didn’t do a lot of IOPS, but that was resolved in vSphere 4.1.
Are there performance differences between them?
- PVSCSI and LSI Logic Parallel/SAS are essentially the same when it comes to overall performance capability. PVSCSI, however, is more efficient in the number of host compute cycles that are required to process the same number of IOPS. This means that if you have a very storage IO intensive virtual machine, this is the controller to choose to ensure you save as many cpu cycles as possible that can then be used by the application or host. Most modern operating systems that can drive high IO support one of these two controllers.
- Here’s a detailed whitepaper that takes a closer look at PVSCSI vs LSI Logic SAS for IOPS, Latency and Cost. While it does support that PVSCSI is more capable, keep in mind most customers are not producing 1 million IOPS so for real life the difference is negligible.
How many vSCSI adapters are supported per virtual machine?
- It’s also worth noting that you can configure a total of 4 vSCSI adapters per virtual machine. To provide the best performance, one should also distribute virtual disk across as many vSCSI adapters as possible. This configuration provides the capability to process more IO simultaneously and benefit from additional queues if necessary.
Configure .vmx file for advanced configuration scenarios
First thing we need to do is get the Vmid, to do this list all VMs registered on the host the faulty VM is on (#vim-cmd /vmsvc/getallvms):
To unregister a VM run the following (vim-cmd /vmsvc/unregister <Vmid> (in my case VMX_Disaster has Vmid 11)):
Confirm the VM has been removed by running the “GetallVMs” command again:
Next up go to VM location (#cd /vmfs/volumes/JC-T1-Thin-200GB-02/VMX_Disaster):
To re-register a VM run the following: vim-cmd /solo/register /path/to/file.vmx:
This will issue the VM with a new Vmid number, in this case 12
Next thing may be the kind of thing the exam asks us to do, for example “Limit Informational Messages from Virtual Machines to VMX Files”:
To do this the following line needs to be added to the VMX:
This can be done from the command line or by downloading and editing the VMX then uploading:
To edit the VMX file from the command line we can do the following: # sed “3i tools.setInfo.sizeLimit=104857” VMX_Disaster.vmx
Next example… say for example I messed up my VMX file:
Easiest way tio fix this is to simply reload the VMX by running the #vim-cmd vmsvc/reload
Configure VMware Fault Tolerance
Fault Tolerance (FT) required a dedicated VMK on each host in the cluster:
Once this is setup on each host, right click on the VM you are looking to make Fault Tolerant, select Fault Tolerance, then ‘Turn on Fault Tolerance’. You will get the following warning:
I got an error when trying to trun on FT as I only have 2 nodes in my management cluster, the following KB describes the problem and how I resolved it: VMware KB
You can tell if a VM is FT by the new VM icon in the client (“Damn Small Linux” VM below):
When browing VM on individual hosts you will see the primary and secondary VMs:
Upgrade virtual machine hardware and VMware Tools
VMTools can be done automatically or manually by right clicking the VM, selecting ‘Guest’ then ‘Install/Upgrade VM Tools’. This will then ask you if you want the install to be automatic or manual.
You can also set the VM to automatically install tools at next reboot by editing the VM: