VMware View Desktops: IDE or SCSI? BusLogic, LSI Logic or PVSCSI?

confusedI've seen and had many discussions around this topic when discussing VMware View desktop design, so I though I'd gather as much information as I could to help you decide. 

From the information below, I would personally recommend using the following:

  • Windows XP: LSI Logic Parallel or SAS
  • Windows 7: LSI Logic SAS 

The PVSCSI controller will be the controller of the future so you may also want to keep this in mind. Of course you can make your own decisions. Most of the points made are desktop focused, however most will apply outside of a View environment.

IDE vs SCSI

Most people's main argument around reasons to not use IDE are;

  • The IDE adapter completes one command at a time – SCSI can queue commands.
  • The SCSI adapter is better optimized for parallel performance.
  • If you ever need to increase the size of an IDE Disk you would have to use VMware Converter to enlarge it. – Using SCSI it's easier
  • Maximum of 4 IDE Devices per VM. (This includes CDROM) – SCSI allows 60.

BusLogic vs LSI Logic

If you have decided to use SCSI, you now have to decide on whether to use the BusLogic or LSI Logic SCSI controller.

  • BusLogic is not supported in a lot of the newer Operating Systems.
  • BusLogic is not actively being improved by VMware or Guest OS's (so bugs come along as things change in the OS and noone fixes them).
  • XP doesn't contain the LSI Logic driver so you will have to load it into the OS manually.
  • "Out of the box" LSI out performs BusLogic. With a few additional configuration changes to the Queue Depth, BusLogic can perform on a par with LSI in VM's that have less than 4GB of RAM – BusLogic is a 32 bit PCI device and is limited to DMA (Direct Memory Access) in the first 4GB of the guest memory, so if the guest uses more than 4GB memory the OS will need to use bounce buffering (doing IO to lower memory and copy up/down with the CPU), which adds overhead

*VMware's recommendation is to use the LSI Logic adapter. "The LSI Logic adapter has improved performance and works better with generic SCSI devices."

LSI Logic SAS

The default controller for a Windows 7 virtual machine is the LSI Logic SAS. There is no performance between this controller over the regular LSI Logic Parallel controller, so I therefore see no reason to change it.

It is worth noting, in Linux guests SCSI disk hotplug works better with SAS than with original parallel LSI. (You do not have to rescan the SCSI bus yourself to find a new device; on Windows you do not have to do rescan ever with ESX4.x, neither with LSI nor LSI-SAS)

Why not PVSCSI?

Virtual Desktops don't tend to have a really high I/O. Using the PVSCSI driver with low throughput workloads may introduce a small increase in latency.

Pre ESX 4.1 the PVSCSI adapter had only been recommended for VMDK's backed by fast (2,000+ IOPS) storage. Why? The PVSCSI driver only coalesces OIOs (Outstanding IOs) and not throughput (IOPS). What this means is; when the VM is requesting a lot of IO and the storage cannot deliver it, the PVSCSI driver is coalescing interrupts. Without the steady steam of IOs from the storage, there are no interrupts to coalesce. This can cause extra latency on low throughput environments.

The LSI Logic driver increases coalesce as OIO and IOPS increase. So if there is a low OIO and IOPS load no coalescing will occur, reducing latency. 

Typically the case was:

  • PVSCSI is best for workloads that drive more than 2000 IOPS and 8 outstanding I/Os.
  • LSI Logic is best for workloads that drive lower I/O rates and fewer outstanding I/Os. 

However! In ESX 4.1 this issue explained above has been fixed. This means that the PVSCSI could perform as well as the LSI Logic driver with low throughput. I have yet to see any official performance test results. If you have already used PVSCSI adapters and are not seeing any performance problems, I wouldn't worry too much about making the change to LSI.

Summary

As you can see, there is a lot of Pro's and Con's to digest. I chose the SCSI LSI Logic controller for the following reasons:

  • SCSI offers better performance than IDE
  • LSI Logic is continually supported with newer OS's and VMware releases, where BusLogic is being fazed out. So to help future proof your design, it would be better to use LSI.
  • LSI offers better "Out of the box" performance over BusLogic
  • LSI SAS is the default for Windows 7, great for Hot-Add disks and a must for MSCS. 
  • PVSCSI with ESX 4.1 is rumored to have equal performance with LSI Logic, but I have yet to see the test results.

What do you use on your site and why? Have I missed anything? let me know. I am interested to hear other peoples take on this, so please comment if you feel you have anything to add.

Sources