Technology- iSCSI
Coming soon- those Coachella pictures and a write-up on my new laptop, the Dell Inspiron E1505.
In the meantime I’ve been busy this last few days writing a bunch of code, Back in 1996-1999 I wrote a bunch
of code in Java but have not written much since then since for most purposes C# has been more convenient (and more
recently PHP). However this week I wanted to build an iSCSI server (or “target”
to use the iSCSI terminology) that was very portable and Java seemed to be the
right fit. I’m happy to report that it didn’t take more than a few hours to get
back into the swing of it. Even better, Java development has progressed quite a
bit compared to when I last remembered it. The Eclipse IDE is really quite nice
and makes it pretty fast to get going, although it still has quite a few rough
spots compared to the Microsoft Visual Studio environment.
iSCSI is an interesting beast. No comments right now on why I was doing this,
but it is a TCP based protocol that lets you connect to a disk drive over any IP
connection. Microsoft has an iSCSI “initiator” for Windows
(again, iSCSI terminology
for client) that lets you mount an iSCSI volume and have it show up as if it
were just a locally attached drive. It’s a bit complicated to use, but the nice
thing is that the iSCSI protocol has relatively simple semantics and once its
working you have a fully functional remote drive. Basically there is a bunch of
connection setup and configuration stuff, and then its just “read block” and
“write block” that that’s it.
So far my implementation is a bit rough but I’m surprised by how quickly it
got to the point where it works with most applications and has fairly good
performance. I was easily able to max out the bandwidth of my wireless network
with minimal CPU usage on the host and got most applications working including
Explorer, Visual Studio, etc (but not SQL Server).
]]>
posted in Technology | 0 Comments