In this post, I'll show you two ways to configure a Windows 2016 virtual machine (VM) with the VMware Paravirtual SCSI (PVSCSI) adapter. This controller offers a lower CPU cost for an I/O operation compared to that of the LSI Logic SAS virtual SCSI controller, which is the default when deploying a new VM based on Windows Server 2016.

PVSCSI adapters are high-performance storage adapters that can provide greater throughput and lower CPU utilization. PVSCSI adapters are best for environments, especially SAN environments, where hardware or applications drive a very high amount of I/O throughput (as with databases). PVSCSI adapters are not suitable for direct attached storage (DAS) environments.

VMware's preconfigured VM templates don't always use the storage controllers that have the best performance. The reason is that Windows 2016 does not come with the corresponding drivers. The result is that it is impossible to install a new VM running Windows Server 2016 out of the box.

There are two ways you might want to proceed depending on whether you have already deployed some Windows 2016 VMs or you're building a new VM from scratch.

Case 1: Change from LSI Logic SAS to VMware Paravirtual SCSI on a Windows Server 2016 VM

I assume you have a traditional VM with a single virtual disk configured. You'll need to proceed outside of business hours, as the steps require rebooting the VM several times.

First, add a new storage controller to your VM and change the type to VMware Paravirtual.

Add a new SCSI controller and change the type to VMware Paravirtual

Add a new SCSI controller and change the type to VMware Paravirtual

Then add a small 2 GB hard disk and attach it to SCSI controller 1 (make sure to select SCSI 1:0 as the connection). This disk is not a system disk, so the VM will boot normally, and the Windows operating system will automatically find the drivers it can use to install this VMware Paravirtual controller.

Add a new disk and attach it to the newly added SCSI controller

Add a new disk and attach it to the newly added SCSI controller

After the OS finds drivers for the disk, make sure the disk appears in the Disk Management console, so you can initialize, format the disk, and bring it online.

Once done, gracefully shut down the VM and change the first SCSI controller 0 to VMware Paravirtual, and then click the Change type button.

Change the type for SCSI controller 0 to VMware Paravirtual

Change the type for SCSI controller 0 to VMware Paravirtual

You can boot the VM, as the OS is now aware that some of its controllers are using VMware Paravirtual, thus it can boot successfully. The OS already installed the drivers with the previous step.

As mentioned before, this was for the case in which you have already some VMs (including Windows Server 2008 R2 or Server 2012 R2 VMs) up and running, and you just want to change the controller type for those VMs.

If you create a new VM, you can do it as described below.

Case 2: Prepare a new VM with VMware Paravirtual for a boot disk

You can download the latest VMware tools from VMware, or you can use the one bundled with your ESXi installation within the Locker directory. The corresponding ISO image files are located at /locker/packages/.

You can get the latest ISO (Windows.iso) from VMware's website.

During the installation process when the Windows Server installer asks you where you want to install (and you don't see any volumes), just click the Load driver link.

Load the VMware Paravirtual driver

Load the VMware Paravirtual driver

Make sure you previously mounted the "Windows.iso" you downloaded from VMware, as a second CD/DVD to your VM.

Then browse the ISO and locate the driver.

Pick a VMware PVSCSI driver

Pick a VMware PVSCSI driver

The driver path will display within the setup window. Click Next to load the driver.

The driver displays in the window

The driver displays in the window

After that, a new unallocated space shows up.

Subscribe to 4sysops newsletter!

Unallocated space

Unallocated space

Wrap-up

I described two ways to set up a Windows Server 2016 VM with a VMware Paravirtual SCSI. The two main benefits are the increased throughput and lower CPU usage.

avatar
15 Comments
  1. Marc 6 years ago

    Hi Vladan

    Two questions.

    If our ESXi cluster is attached to shared storage (SAN), you’re saying I would be better off converting those machines to use PVSCSI? Or only for certain cases such as DB servers?
    Because you said PVSCSI isn’t good for DAS, would a cluster that’s leveraging VSAN be considered SAN or DAS (the disks are directly attached but it’s presented as a SAN)?

  2. Mo 6 years ago

    Great article!

    I have a similar issue and want to change to Paravirtual but currently running on DAS, what is the reason why paravirtualization is not recommended for DAS?

    Thanks!

  3. Author

    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. 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.

    IMHO you can test it. Clone the VM, change the controller,  and check the stats, CPU usage, IOPS etc. Unless the VM is really busy, you won’t see much difference. Either on SAN or DAS.

     

  4. Marc 6 years ago

    Hi again Vladan, was hoping you could answer my second question as well. Is vSAN considered DAS as it’s directly connected to the chassis or SAN because that’s how it’s presented to the ESXi hosts?

  5. Eric 6 years ago

    Can you take snapshots and migrate VMs using iSCSI paravirtual controller?

  6. Photobooth 5 years ago

    Killed it! Thank you 🙂 worked on the first try

  7. Marc 5 years ago

    Noticing something odd after setting this on two of our servers. After a few reboots, the secondary drives became offline. This ended up being caused by a change MS made to SAN disks – default is offline for everything but the primary. Querying the policy through diskpart shows this. I think that by using PVS, the disks are presented differently and the OS can tell they’re from a SAN.

    The solution is to set the SAN Policy to Online.

    DISKPART.EXE

    DISKPART>san

    SAN Policy = Offline Shared

    Change to Online with

    sanpolicy=OnlineAll

     

  8. Ile 5 years ago

    Use Powershell and run this command :

    Set-StorageSetting -NewDiskPolicy OnlineAll

     

  9. James Marsicano 5 years ago

    Can you take vmware snapshots with out breaking  Windows Server Failover Clustering?
    Notes:

    • Microsoft Windows Server Failover Clustering (WSFC) virtual machines use a shared Small Computer System Interface (SCSI) bus.
    • Any virtual machine using a shared bus cannot make hot changes to virtual machine hardware as this disrupts the heartbeat between the WSFC nodes. These activities are not supported and cause WSFC node failover:
      • Increasing the size of disks
      • Hot adding memory
      • Hot adding CPU
      • Using snapshots
      • Pausing and/or resuming the virtual machine state
      • Memory over-commitment leading to virtual swapping or memory ballooning

     

  10. Ja 4 years ago

    Hi Vladan

     

    Is it possible to change the ParavitualSCSI to VirtualLSILogic? If so whats the process?

    I have read some where in VMware forums that the OS drive/Disk is not suppose to use the Paravirtual.

  11. Quynh 4 years ago

    Can you please download the Windows 7 driver file manually into the iso file?

  12. Marti 3 years ago

    Thanks

  13. Tom 4 months ago

    Hi thank you. Quick google search on this topic led me right to you.

Leave a reply to Vladan Seget (Rank 3) Click here to cancel the reply

Please enclose code in pre tags

Your email address will not be published. Required fields are marked *

*

© 4sysops 2006 - 2023

CONTACT US

Please ask IT administration questions in the forums. Any other messages are welcome.

Sending

Log in with your credentials

or    

Forgot your details?

Create Account