Rawpixel - Fotolia


How virtual controllers work in Hyper-V 2012 R2

Even though the SCSI and IDE virtual controllers both host virtual hard disks, their different features and support numbers make them right for different situations.

There are three different types of virtual controllers in Hyper-V 2012 R2 and they each boast different capabilities....

The three controllers are the integrated drive electronics (IDE) controller, the small computer system interface (SCSI) controller and the host bus adapter (HBA) controller.

Both IDE and SCSI virtual controllers are used to host virtual hard disk files such as VHD or VHDX files. Virtual HBA controllers, introduced in Windows Server 2012, can be used to directly connect to storage arrays from within the Hyper-V VMs. It is important to note that there are a few features of Hyper-V that can only work if a specific virtual controller is used. 

Hyper-V features available on virtual controls

The table below highlights the maximum virtual controllers supported by the Hyper-V 2012 R2 and which Hyper-V features are available on a specific virtual controller.


Items IDE Virtual Controllers SCSI Virtual     Controllers
Maximum Controllers 2 4
Maximum VHD/VHDX Disks Per Controller 2 disks 64 disks
Total VHD/VHDX disks 4 disks 256 disks
Availability of Controller Available by default Integration Services installation required
Performance Good if Integration Services installed Always Good
Hyper-V Features    
   -VHDX Online Resize Not Available Available
   -VHDX File Sharing Not Available Available
Availability of Controller in Generation 1 VM Available Available
    -Primarily used for Booting VM OS Data Disk
Availability of Controller in Generation 2 VM Not Available Available
    -Primarily used for Booting VM OS Booting VM OS and Data Disks

As indicated in the table, there can be a maximum of two IDE virtual controllers attached to a VM and a maximum of two VHD/VHDX disks can be attached to a single IDE virtual controller. There can be a total of four SCSI virtual controllers added to the VM, but one virtual SCSI controller can only support a maximum of 64 virtual disks. While IDE virtual controllers are available by default when you create the Hyper-V VM, SCSI virtual controllers are available for use only if Hyper-V Integration Services have been installed in the VM OS.

While the primary use of IDE and SCSI virtual controllers have been to boot the virtual machine OS and for data disks respectively, the evolution of Generation 2 VMs has changed that. A VM running on Windows Server 2012 R2 or later Hyper-V hosts can boot off of a SCSI virtual controller as long as the guest is running a version of OS that is compatible with the Generation 2 VMs.

Space, support and new features in SCSI controllers

Many Hyper-V virtual administrators are confused with the performance of virtual IDE and SCSI controllers in Hyper-V. It is certainly true that performance can vary significantly of physical SCSI and IDE controllers, but in the case of Hyper-V virtualized IDE and SCSI controllers, both offer fast I/O performance as long as Integration Services is installed on the VM OS.

Then question then becomes why should virtual administrators use SCSI controllers? There are several reasons as to why there is a need to use SCSI virtual controllers for the Hyper-V VMs. First, it is important to understand that a Generation 1 VM can only boot off of a virtual IDE controller. So in case you have guest OSes that are not compatible with Generation 2 VMs, you would still need to create one virtual hard disk and attach it to the IDE virtual controller for VM to boot successfully.

Another reason is the amount of virtual hard disks that can be supported. IDE virtual controllers can support a maximum of four virtual hard disks. Since SCSI virtual controllers support more than four virtual hard disks to be attached to a VM, virtual administrators use SCSI virtual controllers if a VM requires more than four virtual hard disks.

New features that are exclusive to the SCSI controller is another reason. Some of the new features of Hyper-V can only be used if a SCSI virtual controller is attached to a VM. For example, the VHDX online resizing feature helps you increase or decrease the capacity of a VM’s storage (VHDX) while the VM is running. However, you can only expand capacity of a VHDX file if the VHDX file is attached to a SCSI virtual controller. Similarly, the VHDX file sharing feature of Hyper-V 2012 R2 allows you to share VHDX files between multiple VMs for guest clustering, but can only work if the VHDX files that are being shared between the multiple VMs are attached to a SCSI virtual controller.

Microsoft introduced Generation Type 2 VMs in Hyper-V 2012 R2. In case you have created a VM using Generation 2 type technology, IDE virtual controllers will not be available at all. You can only find SCSI virtual controllers on a Generation 2 VM as seen in Figure 1.

Settings for Gen2VM
Settings for Gen2VM

Apart from IDE and SCSI virtual controllers, there is one more virtual controller: the Fibre Channel adapter. Using virtual Fibre Channel adapter allow VMs to connect directly to existing storage arrays, which in turn helps reduce the CPU usages of storage I/O on the Hyper-V hosts. Virtual HBA controllers not only help you connect to existing storage arrays from within the VM OS, but also provide support for storage related features such as virtual SANs, live migration and storage multipath I/O. You can configure multiple virtual HBAs inside the VM, but a maximum of four HBAs can be created per VM.

Before you can use the virtual Fibre Channel adapter for a VM, the VM must be running on Windows Server 2012 or later Hyper-V hosts and it must be running Windows Server 2008 or later as the guest OS.

Next Steps

Changes made to Hyper-V 2012 R2 that you should know about

Dig Deeper on Microsoft Hyper-V and Virtual Server