This section will introduce the different types of virtual storage controllers.
IDE and SCSI Controllers
There must be connectivity between the VM and its disks to facilitate guest OS storage communication. This is done through a virtual storage controller. When a Hyper-V VM is provisioned, the default is a single storage controller. For Generation 1 VMs, this defaults to an IDE controller and Generation 2, a SCSI controller. Generation 1 VMs can use SCSI controllers as well – they can be added – but the OS can only be booted from the IDE controller. Generation 2 does not allow IDE controllers.
There can be four virtual SCSI (vSCSI) controllers per VM and up to 64 devices (disk) per channel. That means up to 256 disks can be added to a single VM.
A vSCSI controller has a higher I/O command queue depth than IDE controllers, thus improving virtual disk performance. Any disks used for database and log activity should use a vSCSI controller, as shown.
Virtual Fibre Channel Controller
Hyper-V supports connecting a VM directly to a FlashArray via FC. This is possible through the use of a virtual Fibre Channel Adapter (vHBA). Adding a vHBA to an existing VM is straightforward through the Add Hardware option shown below.
If this method is used, configure LUNs in the FlashArray as you would for a physical server, but provision them for the VM(s). This method also allows the storage to be seen by the VM regardless of the host as long as everything is configured properly.
To see how to configure a direct FC connection from a VM to FlashArray, read the Microsoft documentation “Implement Hyper-V Virtual Fibre Channel”.
For a How-To on configuring a virtual FC HBA and connecting it to a FlashArray, see Hyper-V on Pure FlashArray How-To.
In-Guest iSCSI
iSCSI can be used inside VMs to connect to a FlashArray. The considerations and best practices for configuration are the same as listed above for physical Hyper-V hosts. For Linux-based SQL Server deployments, consult “Configuring Linux Host for iSCSI with FlashArray”.