To access virtual disks, CD/DVD-ROM, and SCSI devices, a virtual machine uses storage controllers, which are added by default when you create the virtual machine. You can add controllers or change the controller type after virtual machine creation or while you are in the creation wizard.
If you know about node behavior, controller limitations, and compatibility of different types of controllers before you change or add a controller, you can avoid potential boot problems.
How Storage Controller Technology Works
Storage controllers appear to a virtual machine as different types of SCSI controllers, including BusLogic Parallel, LSI Logic Parallel, LSI Logic SAS, and VMware Paravirtual SCSI. AHCI, SATA, and NVM Express (NVMe) controllers are also available.
NVMe is a standardized protocol designed specifically for high-performance multi-queue communication with NVM devices. ESXi supports the NVMe protocol to connect to local and networked storage devices. For more information, see the vSphere Storage documentation.
When you create a virtual machine, the default controller is optimized for best performance. The controller type depends on the guest operating system, the device type, and sometimes, the virtual machine's compatibility. For example, when you create virtual machines with Apple Mac OS X guests and ESXi 5.5 and later compatibility, the default controller type for both the hard disk and the CD/DVD drive is SATA. When you create virtual machines with Windows Vista and later guests, a SCSI controller is the default for the hard disk and a SATA controller is the default for the CD/DVD drive.
In high performance storage environments you can benefit from using VMware Paravirtual SCSI controllers. The VMware Paravirtual SCSI controller ensures greater throughput and lower CPU use, which boosts performance as compared to the other SCSI controller options. For platform support for VMware Paravirtual SCSI controllers, see the VMware Compatibility Guide at http://www.vmware.com/resources/compatibility.
Each virtual machine can have a maximum of four SCSI controllers and four SATA controllers. The default SCSI or SATA controller is 0. When you create a virtual machine, the default hard disk is assigned to the default controller 0 at bus node (0:0).
When you add storage controllers, they are numbered sequentially 1, 2, and 3. If you add a hard disk, SCSI, or CD/DVD-ROM device to a virtual machine after virtual machine creation, the device is assigned to the first available virtual device node on the default controller, for example (0:1).
If you add a SCSI controller, you can reassign an existing or new hard disk or device to that controller. For example, you can assign the device to (1:z ), where 1 is SCSI controller 1 and z is a virtual device node from 0 to 15. For SCSI controllers, z cannot be 7. By default, the virtual SCSI controller is assigned to virtual device node (z:7), so that device node is unavailable for hard disks or other devices.
If you add a SATA controller, you can reassign an existing or new hard disk or device to that controller. For example, you can assign the device to (1:z ), where 1 is SATA controller 1 and z is a virtual device node from 0 to 29. For SATA controllers, you can use device nodes 0 through 29, including 0:7.
Alternatively, each virtual machine can have a maximum of four NVMe controllers. You can reassign an existing or new hard disk or device to that controller. For example, you can assign the hard disk to (x:z ), where x is NVMe controller and z is a virtual device node. x has values from 0 to 3, and z has values from 0 to 14.
Storage Controller Limitations
Storage controllers have the following requirements and limitations:
- LSI Logic SAS and VMware Paravirtual SCSI are available for virtual machines with ESXi 4.x and later compatibility.
- AHCI SATA is available only for virtual machines with ESXi 5.5 and later compatibility.
- NVMe is available only for virtual machines with ESXi 6.5 and later compatibility.
- BusLogic Parallel controllers do not support virtual machines with disks larger than 2TB.
- Disks on VMware Paravirtual SCSI controllers might not experience optimal performance if they have snapshots or if the hosts memory is overcommitted.
Storage Controller Compatibility
- If the virtual machine boots from LSI Logic SAS or VMware Paravirtual SCSI, and you add a disk that uses BusLogic, LSI Logic, or AHCI SATA controllers.
- If the virtual machine boots from AHCI SATA, and you add BusLogic Parallel or LSI Logic controllers.
Adding additional disks to virtual machines that use EFI firmware does not cause boot problems.
Existing Controller | Added Controller | ||||||
---|---|---|---|---|---|---|---|
BusLogic Parallel | LSI Logic | LSI Logic SAS | VMware Paravirtual SCSI | AHCI SATA | IDE | NVMe | |
BusLogic Parallel | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
LSI Logic | Yes | Yes | Yes | Yes | Yes | Yes | Yes |
LSI Logic SAS | Requires BIOS setup | Requires BIOS setup | Usually Works | Usually Works | Requires BIOS setup | Yes | Usually Works |
VMware Paravirtual SCSI | Requires BIOS setup | Requires BIOS setup | Usually Works | Usually Works | Requires BIOS setup | Yes | Usually Works |
AHCI SATA | Requires BIOS setup | Requires BIOS setup | Yes | Yes | Yes | Yes | Yes |
IDE | Yes | Yes | Yes | Yes | Yes | N/A | Yes |
NVMe | Requires BIOS setup | Requires BIOS setup | Usually Works | Usually Works | Requires BIOS setup | Yes | Usually Works |
Add a SATA Controller
If a virtual machine has multiple hard disks or CD/DVD-ROM devices, you can add up to three additional SATA controllers to assign the devices to. When you spread the devices among several controllers, you can improve performance and avoid data traffic congestion. You can also add additional controllers if you exceed the thirty-device limit for a single controller.
You can boot virtual machines from SATA controllers and use them for large-capacity virtual hard disks.
Not all guest operating systems support AHCI SATA controllers. Typically, when you create virtual machines with ESXi 5.5 and later compatibility and Mac OS X guest operating systems, a SATA controller is added by default for the virtual hard disk and CD/DVD-ROM devices. Most guest operating systems, including Windows Vista and later have a default SATA controller for CD/DVD-ROM devices. To verify support, see the VMware Compatibility Guides at http://www.vmware.com/resources/compatibility.
Prerequisites
- Verify that the virtual machine compatibility is ESXi 5.5 and later.
- Verify that you are familiar with storage controller behavior and limitations.
- Verify that you have the privilege on the virtual machine.
Procedure
What to do next
You can add a hard disk or CD/DVD drive to the virtual machine and assign it to the new controller.
Add a SCSI Controller to a Virtual Machine
Many virtual machines have a SCSI controller by default, depending on the guest operating system. If you have a heavily loaded virtual machine with multiple hard disks, you can add up to three additional SCSI controllers to assign the disks to. When you spread the disks among several controllers, you can improve performance and avoid data traffic congestion. You can also add additional controllers if you exceed the 15-device limit for a single controller.
Prerequisites
Verify that you have the
privilege on the virtual machine.Procedure
What to do next
You can now add a hard disk or other SCSI device to the virtual machine and assign it to the new SCSI controller.
How to Activate and Deactivate the Automatic Replacement of the LSI SAS Controller
vSphere 8.0 can automatically and safely replace the LSI SAS controller with the native VMware PVSCSI controller for existing virtual machines.
Starting with vSphere 8.0, you can activate and deactivate the automatic replacement of the LSI SAS controller by configuring the VMware Tools Device Helper policy, which is unconfigured by default. The default unconfigured policy setting deactivates the automatic replacement of the LSI SAS controller.
You can configure the VMware Tools policy settings by using the Local Group Policy Editor (gpedit.msc). You can also place the VMware Tools policy files to a domain controller and assign the policy to all virtual machines in the domain.
To enable the VMware Tools policy and activate the replacement of the LSI SAS controller with the VMware PVSCSI controller, perform the following steps.
Prerequisites
- Verify that the guest operating system of the virtual machines is Windows 10 and later or Windows Server 2016 and later.
- Verify that you have VMware Tools version 12.1.0 or later.
- The automatic replacement is possible for virtual machines that have VMware Paravirtual SCSI (PVSCSI) driver installed with VMware Tools.
- Verify that the VMware Tools Device Helper policy is enabled.
Procedure
Results
You can view the changes in the virtual machine settings or in the Windows virtual machine by using the Device Manager utility.
What to do next
Option | Action |
---|---|
Deactivate by using the Local Group Policy Editor | In the Windows virtual machine, set the VMware Tools policy to Disabled or Not configured. |
Add a Paravirtualized SCSI Adapter
You can add a VMware Paravirtual SCSI high performance storage controller to a virtual machine to provide greater throughput and lower CPU use.
VMware Paravirtual SCSI controllers are best suited for environments, especially SAN environments, running I/O-intensive applications.
Prerequisites
- Verify that the virtual machine has a guest operating system with VMware Tools installed.
- Verify that the virtual machine compatibility is ESXi 4.x and later.
- Ensure that you are familiar with the VMware Paravirtual SCSI controller type.
- To access boot disk devices attached to a VMware Paravirtual SCSI controller, verify that the virtual machine has a Windows 2003 or Windows 2008 guest operating system.
- In some operating systems, before you change the controller type, create a virtual machine with an LSI Logic controller, install VMware Tools, and then change to paravirtual mode.
Procedure
Add an NVMe Controller
If a virtual machine has multiple hard disks, you can add up to four virtual NVMe controllers to which to assign the virtual disks. Using an NVMe controller significantly reduces the software overhead for processing guest OS I/O, as compared to AHCI SATA or SCSI controllers.
NVMe controllers perform best with virtual disks on an all-flash disk array, local NVMe SSD, and PMem storage.
Prerequisites
- Verify that the virtual machine has a guest operating system that supports NVMe.
- Verify that the virtual machine compatibility is ESXi 6.5 or later.
- Verify that you are familiar with storage controller behavior and limitations.
- Verify that you have the privilege on the virtual machine.
Procedure
What to do next
You can add a hard disk to the virtual machine and assign it to the NVMe controller.
Change the SCSI Controller Configuration
You can specify the SCSI controller type and you can set the type of SCSI bus sharing for a virtual machine.
The choice of a SCSI controller type does not affect whether your virtual disk is an IDE or SCSI disk. The IDE adapter is always ATAPI. The default for your guest operating system is already selected.
The choice of a SCSI bus sharing option determines whether virtual machines on different hosts can access the same virtual disk.
Prerequisites
- Verify that you are familiar with the limitations and conditions for configuring SCSI controllers.
- Verify that you have the privilege on the virtual machine.