Problem
However powerful iSCSI SANs may be, the default Microsoft iSCSI Initiator itself carries specific problems along the way. Increasing the network bandwidth is associated with more sessions, which results in two issues: first, iSCSI protocol lowers performance due to higher latency, and second, Microsoft iSCSI Initiator that would have solved any other problem fails to distribute workload effectively because it treats any CPU as if it had just 2 cores.
Nevertheless, performance of modern servers is aimed to infinity and beyond, which goes for the numbers of both cores. They usually have 2 CPU sockets, a lot more than 2 physical cores each. Double the overall number of physical cores and you get the number of logical ones that are available for cluster VMs.
Hence, the main problem with the Initiator is that it works with only 2 cores out of many, overwhelming them with sessions. So, the traditional use of iSCSI in Hyper-V environments won't deliver the desired performance.
Solution
The whole point of StarWind iSCSI Accelerator/Load Balancer - it requires neither extra hardware nor tiresome Microsoft iSCSI Initiator fine-tuning. Think of the Accelerator as a “middleperson”. The solution is implemented as a filter driver between the Initiator and the hardware. Every time an iSCSI session is created, StarWind iSCSI Accelerator assigns it to a free CPU core, thereby correcting the function of Microsoft iSCSI Initiator. StarWind iSCSI Accelerator solves the overload problem, increases Ethernet bandwidth, doesn't require any specialized adapters, available on any version of Windows server, and, last but not least, is simple in use and completely free.
Conclusion
StarWind iSCSI Accelerator/Load Balancer is a free solution from StarWind, designed to balance iSCSI among multiple CPU cores that works right after deployment in conjunction with Microsoft iSCSI Initiator and iSCSI SAN, and provides your VMs with as many IOPS as necessary.