VMware Paravirtual SCSI Controller
According to VMware, there are two main reasons to deploy a virtual machine with the Paravirtual SCSI controller:
PVSCSI adapters are high-performance storage adapters that can result in 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. The VMware PVSCSI adapter driver is also compatible with the Windows Storport storage driver. PVSCSI adapters are not suitable for DAS environments. VMware Paravirtual SCSI adapters are high-performance storage adapters that can result in greater throughput and lower CPU utilization. [1]
The PVSCSI adapter offers a significant reduction in CPU utilization as well as potentially increased throughput compared to the default virtual storage adapters, and is thus the best choice for environments with very I/O-intensive guest applications. [2]
This tutorial contain step by step guidance to change the Virtual Storage Controller from LSI Logic Parallel (SCSI controller 0) to VMware Paravirtual for a CentOS 7 based Virtual Machine that is running on the ITS Private Cloud.
Create a Virtual Machine Snapshot:
vss-cli --wait compute vm set <name-or-vm-id> snapshot mk -d "lsi logic to paravirtual" -l 72More information Manage virtual machine snapshots.
Power Off the virtual machine:
vss-cli --wait compute vm set <vm-name-or-vm-id> state shutdownAdd a temporary VMware Paravirtual Controller to the Virtual Machine.
vss-cli --wait compute vm set <vm-name-or-vm-id> controller scsi mk --scsi paravirtualVerify that a new SCSI controller has been created.
vss-cli compute vm get <vm-name-or-vm-id> controller scsi
label bus_number type
----------------- ------------ ----------------------------
SCSI controller 0 0 VirtualLsiLogicSASController
SCSI controller 1 1 ParaVirtualSCSIControllerPower On the virtual machine.
vss-cli --wait compute vm set <vm-name-or-vm-id> state onLogin and promote your account to have root level permission.
Rebuild the initial
ramdiskimage:
mkinitrd -f -v /boot/initramfs-$(uname -r).img $(uname -r)Power Off or shutdown the virtual machine:
vss-cli --wait compute vm set <vm-name-or-vm-id> state shutdownUpdate scsi controller 0 to type Paravirtual:
vss-cli --wait compute vm set <vm-name-or-vm-id> controller scsi up -t paravirtual 0Check whether the update executed successfully:
vss-cli compute vm get <vm-name-or-vm-id> controller scsi
label bus_number type
----------------- ------------ ----------------------------
SCSI controller 0 0 ParaVirtualSCSIController
SCSI controller 1 1 ParaVirtualSCSIControllerRemove temporary SCSI controller
vss-cli --wait compute vm set <name-or-vm-id> controller scsi rm 1Power On the virtual machine:
vss-cli --wait compute vm set <vm-name-or-vm-id> state onVerify everything is working well.
(Optional) Remove Virtual Machine snapshot:
vss-cli --wait compute vm set <vm-name-or-vm-id> snapshot rm <snap-id>More information Manage virtual machine snapshots.
This tutorial contain step by step guidance to change the Virtual Storage Controller from LSI Logic SAS (SCSI controller 0) to VMware Paravirtual for a Microsoft Windows Server 2016 or later (64-bit) based Virtual Machine running on the ITS Private Cloud [3].
Ensure machine is patched and latest VMware Tools installed and running.
If VMware Tools is ever removed from the system, it will not boot.
If the device has more that one controller to start, please do not blindly follow instruction to will need to adjust to your environment and the controller id’s being referenced.
Create a Virtual Machine Snapshot:
vss-cli --wait compute vm set <name-or-vm-id> snapshot mk -d "lsi logic to paravirtual" -l 72More information Manage virtual machine snapshots.
Shutdown/Power Off the virtual machine:
vss-cli --wait compute vm set <vm-name-or-vm-id> state --confirm shutdownAdd a temporary VMware Paravirtual Controller to the Virtual Machine.
vss-cli --wait compute vm set <vm-name-or-vm-id> controller scsi mk --scsi paravirtualVerify that a new SCSI controller has been created.
vss-cli compute vm get <vm-name-or-vm-id> controller scsi
label bus_number type
----------------- ------------ ----------------------------
SCSI controller 0 0 VirtualLsiLogicSASController
SCSI controller 1 1 ParaVirtualSCSIControllerPower On the virtual machine.
vss-cli --wait compute vm set <vm-name-or-vm-id> state onLog Onto windows machine to verify whether the VMware Paravirtual driver get installed using Device Manager > Controllers > PVSCSI device.
Shutdown/Power Off the virtual machine:
vss-cli --wait compute vm set <vm-name-or-vm-id> state --confirm shutdownUpdate scsi controller 0 to type Paravirtual:
vss-cli --wait compute vm set <vm-name-or-vm-id> controller scsi up -t paravirtual 0Check whether the update executed successfully:
University of Toronto - Since 1827