iSCSI
What is iSCSI? A method for encapsulating SCSI over TCP/IP. More
Information about iSCSI can be found here:
http://en.wikipedia.org/wiki/ISCSI. In April 2004, the final iSCSI IETF draft was published as RFC3720.
iSCSI Linux Projects
Open iSCSI
UMass Lowell
UNH InterOperability Lab
Intel
Cisco
iSCSI on Microsoft Windows
Microsoft Storage Technologies - iSCSI
UMass Lowell iSCSI Updates
* Update 1/16/2007 Amazingly, I still recieve occasional questions from
people attempting to use the UMass Lowell iSCSI Initiator. If you are
looking for iSCSI support on Linux, check out the Open iSCSI link above.
iSCSI has long since been included in the default kernel.org release. The code
on this page represents work I did for an undergraduate student project
during my college years. At
the time (spring 2001), iSCSI was brand new and we were not aware of anyone
else working on iSCSI support for Linux. In the last 6 years, the iSCSI
standard has been ratified and support for it is now included by default
in most operating systems. I keep these pages here for historical purposes.
If you really do want to use our bits, know that the last kernel we tested
them with was probably 2.4.6 or earlier!
* Update 2/25/2004 Fixed busted links and added link to Windows implementation.
* Update 8/13/2003 Since the team graduated in June of 2001 this project has
become stagnant. I would suggest to those looking to start using iSCSI to
take a look at some of the other projects listed about. This page and the
sources here will remain for reference purposes.
* Update 7/12/2001 Added link to Cisco's GPL'd linux implementation. UML initiator
conforming to version 6-93 of the iSCSI draft *coming soon*.
* Update 4/24/2001 Latest sources posted. Basic functionality working. Work
on the target has been dropped, we are using UNH's target. At some point we
may need to make minor changes and will have patches available. Currently the
client driver works out of the box with UNH's code. Make sure to read the
README file for instructions on how to setup.
* Update 4/11/2001 Latest sources posted. INQUIRY appears to be working, not
sure which /dev nodes i should be worrying about when attempting to open a
device. Still investigating.
* Update 4/6/2001 Latest sources posted. This included a userspace target
implementation.
The rest of this page describes the UMass Lowell implementation.
UMass Lowell iSCSI Linux Download
http://www.cs.uml.edu/~mbrown/iSCSI/iscsi-0.1.tar.gz BE SURE TO READ THE README!
Currently I am heading development of an initial implementation of iSCSI for
the linux kernel. The team consisted of Josh Hawkins, Mike Ostman and
myself. Our faculty advisor is
professor William Moloney. Josh, Mike, and
myself have all recently graduated from UML. Currently we are all working full
time for various companies in the area. I am continuing to bring the UML initiator
forward and remain in contact with professor Moloney.
Our project is a pure software implementation
of iSCSI. In its current form it is loosely based on version 3 of the
iSCSI draft. The project consists of two
kernel modules: iscsi, and iscsi_client. These modules compile against
the 2.4.x kernel tree. The iscsi module contains
core functionality required by the initiator driver. The
iscsi_client module is a SCSI adapter driver. Initially this was modeled from
the sym53c416 driver and some great articles on linuxgear written by
Alan Cox. Currently we are using UNH's draft-3 target driver available at the above
location.
It is expected that vendors creating
hardware iSCSI adapters will write their own drivers, possibly leverging some
of the work done here. Again, this is a software solution.
Project State
We currently have a working iSCSI implementation. Performance leaves much to
be desired, but this is being worked on. Interested parties can grab sources
and i386 objects here:
http://www.cs.uml.edu/~mbrown/iSCSI/iscsi-0.1.tar.gz . Make sure to read the README file
in order to get iSCSI working in your environment.
Current implementation may have bugs and be incorrect; it is to
be considered experimental code. ALL SOURCES ARE RELEASED UNDER THE PROVISIONS
OF THE GPL v2.
Eventually I'd
like to see this work, or some derivative thereof, be included in the linux
kernel distribution. It is not at that state yet. Currently we are working
on increasing the performance of the implementation and ramping the driver
up to version 6 of the iSCSI draft.
Other iSCSI Developers
With Cisco's latest announcement, I'm now currently aware of 4 open sourced
linux iSCSI target and/or initiator drivers. Intel's iSCSI sources are not
released under the GPL and therefore cannot be included in the linux kernel
distribution. Currently our client interfaces with the UNH v3 target driver. UNH
also has implemented an initiator driver.
Contact
Any questions/inqueries/patches etc. should be directed to me. I haven't asked
Josh, Mike Ostman, or professor Moloney if they'd like to be contacted or
involved in organizing this effort, so please don't bug them.
Comments to:
Michael F. Brown,
mbrown@cs.uml.edu