Where should the iSCSI initiator run in a Hyper-V environment?

Learn what Microsoft expert Brien Posey has to say about when and how to use an iSCSI initiator when using Windows Server 2012 R2 Hyper-V.

Where should the iSCSI Initiator run in a Windows Server Hyper-V environment?

In a Hyper-V environment it is possible to run the iSCSI initiator in two places: within the parent operating system or inside the virtual machine. Either option will work. The trick is to decide what you want the iSCSI initiator to do for you before choosing an option.

The only situation that does force you to use one option or the other is guest clustering. If you are building a guest cluster and are connecting to a guest Cluster Shared Volume through iSCSI, then you really have no choice but to run the iSCSI initiator inside of the virtual machine (VM). Otherwise, the guest cluster won't use its shared storage properly.

In most other situations, it's better to run the iSCSI initiator inside of the parent operating system (OS). There are several good reasons for doing so.

For starters, if the iSCSI initiator is running inside of the parent OS, then it will be able to take advantage of your physical network adapter's native capabilities (such as TCP/IP offloading). These types of native hardware features are simply not exposed to VMs.

Running the iSCSI initiator inside of a VM also has a slight impact on performance. The iSCSI initiator consumes more CPU resources when it runs inside a VM than it does when it runs within the host OS. Granted, the required extra CPU cycles probably aren't enough to be problematic, but it is always a good idea to make efficient use of your hardware.

In certain situations the iSCSI initiator can impact your backup as well. Some host-level backups are unable to back up iSCSI storage that is connected from inside of a VM.

As a best practice, you should run the iSCSI initiator inside the parent OS unless you are using iSCSI for a guest cluster.

Dig Deeper on Storage for virtual environments