When / why / how to use paravirtualized adapters

Someone asked me about this (paravirtualized adapters) and it sort of distracted me.  I had not worked with them for a long time. So here we go.

You should make an actual decision to use paravirtualized storage adapter since it will require OS support.  If you have a need - such as a very busy SQL server, then paravirtualized storage might be a good decision for you as it will provide greater throughput and lower CPU usage.  But, I also think that keeping things simple when possible is good so if you don’t have that busy SQL server than don’t use the paravirtualized storage adapter.

BTW, if you just change your current storage adapter to use paravirtualized you will get this lovely error at boot.

You will be able to put the adapter type back to what it was (probably LSI Logic SAS) and it will boot fine.  The place where you make the changes is seen below.

You will need to have OS support for using Paravirtual and you can see what support it in this Support article. In my testing it was Windows 2016 which is not problem.

So we can break things now, but how do we make it really work?

An existing server is a bit tricky.  You will need to add a new controller, and attach a disk to it.  It will need to be a VMware Paravirtual adapter.  You will need to have the VMware driver ISO attached so the files can be found (automatically in fact).  Once you can boot and see the new drive, you power off and change the boot drive to VMware Paravirtual and it will work fine as the drivers are now in the OS.  You can find more detailed help in this article (use case 1). It has older screenshots but it still works.

Another use case is a during a new server install.  That is easy as you still have the VMware driver ISO attached and when you add the disk you use Load Driver to load the drivers. And it works fine.  You can find more detailed help in this article (use case 2).


Docs - https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.vm_admin.doc/GUID-5D976292-4D8B-409B-9460-34490E72989E.html

Storage Controller Conditions, limitations, and compatibility - https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.vm_admin.doc/GUID-5872D173-A076-42FE-8D0B-9DB0EB0E7362.html#GUID-5872D173-A076-42FE-8D0B-9DB0EB0E7362

Add a paravirtualized SCSI adapter in the vSphere Client - https://docs.vmware.com/en/VMware-vSphere/6.5/com.vmware.vsphere.vm_admin.doc/GUID-5D976292-4D8B-409B-9460-34490E72989E.html

Adding VMware Paravirtual SCSI controller - https://4sysops.com/archives/windows-server-2016-vm-with-a-vmware-paravirtual-scsi-controller/

VMware drivers ISO - https://packages.vmware.com/tools/esx/index.html

I can confirm these two methods work as I have tested them.  I have not used VMware Paravirtual as a controller type much so if anyone else has, I would appreciate hearing what you think and any comments about what I have written that you think necessary.


  • 1/11/20 - heard from a reader (thanks Blake) that at their company they standardized on the VMware Paravirtual controller and that sounds like a good idea. They use NVME now but good to know they use pvscsi for everything at one time.


=== END ===

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

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