2008-09-18
My experiences so far with Linux iSCSI target software
In iSCSI terminology, initiators (clients) talk to disks on targets (servers). Thus, iSCSI target software is software that lets your machine serve disks over iSCSI to other machines, while iSCSI initiator software lets your machine access iSCSI disks. Linux has essentially had a standard iSCSI initiator for some time (including the necessary kernel level driver integrated into the mainline kernel), but there is no standard iSCSI target software; instead there are various different projects, such as IET, SCST, and STGT.
(This situation is confusing, partly because STGT appears to do iSCSI entirely in user-mode code, while IET and SCST do at least part of the work in kernel drivers. For my purposes this distinction didn't matter, since RHEL 5 didn't have any of them packaged and integrated.)
I wound up picking IET, partly because it was what came up first in web searching and partly because it was relatively clear how to get it configured and serving space via iSCSI (which is more than I could say for the other two). It does have the downside of having its own kernel module, but I didn't have problems getting it compiled and working with the kernel we wanted to use.
(We are unlikely to change the kernel without a lot of work; our iSCSI target servers are not user accessible and are basically closed black boxes, so most reasons to update the kernel don't apply.)
IET does fine on the performance front, in that IET does not seem to be a limiting factor. It is easy to get wire bandwidth with CPU capacity to spare, even without jumbo frames, and I have seen a single server saturate two gigabit links. (Jumbo frames do reduce CPU consumption, but our iSCSI target servers don't have anything else to do with those CPU cycles anyways.)
I experimented briefly with SCST but failed to figure out how to make it actually serve disks over iSCSI in any relatively simple way. I took this as a sign that it was too complex (and too under-documented) to make me happy and did not investigate further.
(Note that there are various political disagreements between the iSCSI target software projects that make it very challenging to find unbiased comparisons. I'm not going to claim that this is one, partly because I have done no sort of competitive evaluation; I was only interested in finding an iSCSI target driver that worked well enough, so once I established that IET did, I stopped.)