Switching to the PVSCSI Controller

I recently was doing some performance tests and wanted to try out the VMware paravirtual SCSI controller (PVSCSI). The VM I was testing was running SUSE, had the LSI controller configured, and was running VMware tools on a vSphere 5.5 environment. Every time I tried to change to the PVSCSI controller the VM stopped working. For those of you thinking about using the PVSCSI, below are some tips that should assist.

What is PVSCSI, why would I use it, and what are the limitations?

From the vSphere documentation:

Paravirtual SCSI (PVSCSI) controllers are high performance storage controllers that can result in greater throughput and lower CPU use. PVSCSI controllers are best suited for high-performance storage environments.

PVSCSI controllers are available for virtual machines running hardware version 7 and later.
For platform support for PVSCSI controllers, see the VMware Compatibility Guide.

PVSCSI controllers have the following limitations:

  • Hot add or remove requires a bus rescan from within the guest operating system.
  • Disks on PVSCSI controllers might not experience performance gains if they have snapshots or if memory on the ESXi host is over committed.
  • If you upgrade your Linux virtual machine to an unsupported kernel, you might not be able to access data on the disks attached to a PVSCSI controller. To regain access to such disks, you can run vmware-config-tools.pl with the kernel-version parameter to regain access.
    • Upgrade the guest kernel but do not restart the guest.
    • Run the VMware Tools configuration with the kernel-version parameter and pass the kernel version within the guest:
      vmware-config-tools.pl –kernel-version kernel_version
      To determine the kernel version, search for the directory name that was created in /lib/modules during the kernel upgrade. Use that directory name, including all dashes, periods, and other characters as an argument to –kernel-version.
    • Restart the guest.
  • MSCS clusters are not supported.
  • PVSCSI controllers do not support boot disks, the disk that contains the system software, on Red Hat Linux 5 virtual machines. Attach the boot disk to the virtual machine by using any of the other supported controller types.

Are VMware tools required?

Yes, as you need the PVSCSI driver. NOTE: even the open-vm-tools has the driver.

How do you enable the PVSCSI driver?

It is my understanding that if you are running VMware tools then the VM will enable the driver when a PVSCSI controller is detected. I have also read where even after being detected the VM had to be rebooted again for the module to become after.

I had tested on a SLES 11 system and was unable to get the driver to automatically enable. As such, I had to manually enabled the PVSCSI module. To do this, I performed the following steps:

  • Log into the VM
  • Run: sed -‘i /^INITRD_MODULES/ s/”/ “vmw_pvscsi /’ /etc/sysconfig/kernel # enable the PVSCSI module
  • Run: mkinitrd # create a new kernel image
  • Run: shutdown -h now # shutdown the VM
  • Edit VM settings and change to PVSCSI controller
  • Power on VM

That’s it!

Where can I read more about PVSCSI?

© 2014 – 2015, Steve Flanders. All rights reserved.

Leave a Reply