Boot from Paravirtualized SCSI Adapter

From vSphere U1, VMware now support booting from a Paravirtualized SCSI adapter, why would you want to do this ?  Well why not, check out the VMware  Performance Blog where VMware have tested this adapter and shared their results.

VMware were able to achieve 350,000 I/O operations per second on a single vSphere host (ESX 4.0) and 3 virtual machines.  From their findings the VMware Paravirtual SCSI (PVSCSI) adapter was able to achieve 12% more throughput with 18% less CPU cost compared to the LSI virtual adapter… Now you see why we should use it !

So in trying to test this the first thing I did was move one of my current virtual machines onto the adapter by clicking “edit settings” go to “SCSI controller 0” and click the change type button, from there you can select “VMware Paravirtual”.

When booting the VM you may find a slight issue though..

A ‘Blue Screen of Death’ welcomes you!

VMtools was installed and at the latest version (U1) but although the PVSCSI driver is shipped with VMtools it is not actually active until you add a PVSCSI adapter to the VM so to enable the PVSCSI driver for the boot device we need a slight bit of trickery….

1.  With the VM powered off edit the settings and add an extra disk, just something small like 10MB, when choosing the ‘Virtual Device Node’ ensure you put it on another controller than any currently present, I chose SCSI 1:0 as I had no disks on the 1: node.

image

2.  Once added you will also see that a new SCSI Controller has been added.

image

3.  Select the SCSI Controller and click the “Change Type” button at the top Right, Select VMware Paravirtual , click OK and click OK again for the controller and disk to be added to the VM.

4.  Power On the VM and log into the console, once logged in you will see that the controller and disk drivers are added to the OS.

image

And if you check in device manager you will see you now have a LSI Adapter and a VMware PVSCSI Adapter.

image

5.  Now the drivers are installed shut down your VM

6.  Go back into edit the settings and remove the disk we just added, this will automatically remove our extra controller too,  whilst in the VM settings go to the original controller (SCSI Controller 0) and change the type to VMware Paravirtual as we did before.

7. Power back on the Virtual machine and check device manager, you should now only have the controllers we need.

image

Now you can reap the benefits of the extra speed !

As a note while we are on the subject don’t forget that if you build a VM from fresh using the Paravirtual SCSI Adapter you will need to hit F6 and select the drivers during the OS install.

16 thoughts on “Boot from Paravirtualized SCSI Adapter”

  1. There has been some follow up performance reports (http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1017652) that show that the pvSCSI adapter may not be the best choice for low IO VMs due to IO coalescing. And the thresholds are substantial.

    “..The test results show that PVSCSI is better than LSI Logic, except under one condition–the virtual machine is performing less than 2,000 IOPS and issuing greater than 4 outstanding I/Os…”

    Perhaps some perspective – you can expect that for every heavy email user, Exchange will typically generate 1/2 IOPS, so you will need 4000 heavy email users loaded up on an Exchange VM to really take advantage of the pvSCSI adapter.

    Now those VMs that trickle feed IO, and with the adapter having to wait for IO to coalesce before dropping it on the (virtual) wire, pvSCSI may introduce additional IO latency.

    pvSCSI is brilliant however, as with any tool, needs to be employed appropriately…

    Average VMs will be fine with the LSI Logic

    1. Thanks for the comment, that is really interesting, I am deploying soem Citrix boxes at the moment and whilst I havent done a direct side by side comparison it certainly seams faster to use from the user perspective, perhaps I will have to delve deeper.

  2. I just verified with VMware support that pvscsi adapters (as well as vmxnet adapters) are still not compatible with Fault Tolerance. Just a caveat to be aware of.

  3. @dboftlp
    Its actually an easy script, add a second disk with a paravitualised scsi adapter then turn off the vm, remove the second disk and adapter and power on the vm, job done !

  4. Luc added a script to his sight, but I’m wondering whether it will run in to the same BSOD issue you did (http://lucd.info/?p=1126). Let see if between the two of you, it can get scripted minus said issue. I’d work on it, but who am I kidding, you’d beat me to the punch =)

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.