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