iSCSI target implemented in .Net

K

Ken Allen

I am interested in developing an iSCSI target component, but instead of
writing it as a device driver, I wish to implement it as a Windows service
developed in .Net (and C#). I understand that Microsoft provides an iSCSI
client, but they do not provide the target code at all. Basically my iSCSI
target service, at least in the first version, will simply direct the I/O
requests to a local disk partition, permitting the iSCSI protocol to be used
to access a remote partition, rather than the Windows 'share' mechanism.

I need information on how a .Net/C# service could define itself as an iSCSI
target and then ensure that it receives the packets from any iSCSI client
that connects to it. I have the iSCSI protocol document, but it is a bit
vague in this area.

-ken
 
A

Anton Kolomyeytsev

Ken,

iSCSI target can be implemented in user mode (just take a look at our
own iSCSI target called StarWind, it's *FREE*). However moving iSCSI
target to kernel would give you about 20-30% of performance boost if
moved AS IS (assuming you've just wrapped the API and would replace
Win32 calls with Zw calls keeping existing application architecture
unaltered). And about twice if complete redesign would be taken and
all of the kernel features (I/O at raised interrupt level, zero-copy
sends etc) would be utilized. Tiny latency is major bonus given to
kernel version.

Regards,
Anton Kolomyeytsev

CEO, Rocket Division Software
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top