VMware Paravirtual adapters were introduced back in 4.x and at the beginning there were some concerns. There were some issues if used with virtual machines that didn’t do a lot of IOPS, but that was resolved in vSphere 4.1. Otherwise PVSCSI offers 12% improvement in throughput at 18% less CPU. Today we'll see how-to safely change virtual adapter from LSI logic SAS into VMware Paravirtual (for boot disk) as by default then you create a new VM through the VM creation wizard, there is still LSI SAS driver selected by default.
PVSCSI adapters are high-performance storage adapters that can result in greater throughput and lower CPU utilization. PVSCSI adapters are best suited for environments, especially SAN environments, where hardware or applications drive a very high amount of I/O throughput. By default the PVSCSI driver is not proposed when creating a new VMs, because of compatibility purpose and also that this driver isn't present on some Windows based servers. Some VMware admins might not be so convinced and might fear to do such a change, especially on VM's boot disks. So you might think if there is a safe way to configure your VMs to use this PVSCSI driver safely – even for boot disks.
If you change the adapter directly (without those steps) your VM might not boot…
How-to safely change from LSI Logic SAS into VMware Paravirtual (on boot disk)
The most safe way is to create a small (dumb) 1GB virtual disk with controller using the PVSCSI driver. Like this when the system boots up the driver is recognized by the OS and installed. There is 2 reboots necessary. But I'll walk you through the steps in detail as I've just done the test on my Exchange 2010 VM which runs on 2008R2 and has single disk based on LSI SAS.
Here are the steps:
01. Add a small, thin provisioned disk to the VM – 1GB in size is sufficient.
02. Choose a 1:0 SCSI node (as on the image below).
03. Then select the newly added SCSI adapter and click the change type button to select VMware paravirtual
04. By then you'll see that the OS finds and installs the adapter….. Note that the VM is still running as I haven't rebooted yet.
05. Now you can gracefully shut down the VM to make changes. Go to the edit settings dialog and delete the 1Gb disk you have added in step 1. Validate the changes by clicking the OK button, and go back to the edit settings dialog for the VM > choose the SCSI adapter for the SCSI controller 0 (the boot disk), click the change type button and select the VMware Paravirtual.
06. After booting the VM you'll see a dialog that a new driver was installed (again), and that a reboot is necessary. Reboot the VM …
07. You can check settings of the VM that a paravirtual driver is used (Select VM > Edit settings > SCSI controller). Or you can also check insided the GuestOS that the Paravirtual driver is used (Right click computer > Manage > Device manager > Storage controllers.)
That's all. Now there is the most efficient driver used for that particular VM. This was simple how-to article showing that the way be more efficient with more performance. But, Imagine that you got an environment which has quite a few VMs like this. I'm sure there is a some one-liner with some PowerCLI scripting which would do this at the host (cluster) level as well. But this might be another story or at least another article … -:).
Another thing would be if you would be creating a template VM, where you would probably do all this during the template build. I hope that you find it useful.
Check this paper – that takes a closer look at PVSCSI vs LSI Logic SAS for IOPS, Latency and Cost.