On Server 2008r2 as well as Server 2012 you can install a iSCSI Target service to host LUNs as VHD files on you local NTFS file systems. This enables functionality to implement some special requirements for a modern infrastructure, such as providing cheap backup space to your environment, together with simultaneous access from multiple hosts. A Veeam Backup VM is a good example where such storage can be used for.
But there are also limitations on Microsofts iSCSI: Jake Rutski  already tested performance for random access by using IOmeter. He found that MS iSCSI is 10x less performance than Starwind’s free iSCSI initiator. May that be because of missing cache functionality?
A colleague found this on Technet:
Based on my research, the Microsoft iSCSI Target does not utilize the file system cache. All VHDs are opened unbuffered and write through to guard against loss of data in case of a power loss. As a result, customers will not benefit from the caching even if you add more memory. More memory will only allow you to support more concurrent initiators since each iSCSI session consumes system memory.
As well as:
Be careful if the iscsi client is hyper-v VM host. Windows server 2012 iSCSI target uses unbuffered I/O, means no read cache, no writeback cache. If you use storage pool or regular HBA card/onboard SATA, the performance will be really bad when there are many VMs. The solution is to either use a hardware RAID card with decent write-back cache, or use a iscsi target software implements software writeback cache, such as StarWind or 3rd party iscsi appliance solution like nexenta. I tried both and they worked great.
Note: I don’t work for either Microsoft or StarWind.
What I now want to do is a comparison about sequential read and write speed of both SW Targets and publish the results here in my Blog the next days.