Moving CentOS 7 VMs from Workstation to ESXi, manually adding Paravirtual PVSCSI controller

Had a few cases where different programmers would create a CentOS 7 Virtual Machine [VM] on their workstations and we then need to turn them into production VMs on our VMware Cluster. They would send me the OVF, and we can import them into VMware ESXi cluster. Trouble was, the SCSI Controller was LSI Logic Parallel and I prefer the VMware Paravirtual controller.


When you try to add a SCSI Controller, it shows as “SCSI Device (unavailable)”. In order to get this to work, instead, add a Hard Drive and make sure under “Advanced Options” you select “SCSI (1:0)” instead of taking the default. You will now see two new devices added to your VM, New SCSI Controller (adding) and New Hard Drive (adding).


Click on the New SCSI Controller (adding) and change the type to “VMware Paravirtual”.


Boot up your VM and it should find that you have a new controller with a disk attached.  Using the command, # lspci, you should see a controller attached as “Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)”.


At this point you should:


# yum install open-vm-tools

(if you had not already done that with the VM earlier. If you don’t see the PVSCSI controller before, after open-vm-tools, you should.)

# dracut -f

(this will rebuilt initramfs for and included the right modules for our next step).


Reboot the VM, make sure everything is working. You should see the PVSCSI controller under # lspci .


Now, power off the VM and change the controller type of the first SCSI controller from “LSI Logic parallel” to “VMware Paravirtual”. We used the second controller to add it to the modules of the kernel via dracut.


Reboot the VM, it should boot with the newer/faster controller.


You can now power off, remove the temporary second SCSI drive you added to (1:0) and the second controller as we used it to get the modules loaded.