Internet SCSI (iSCSI), the standard adopted by the Internet Engineering Task Force (IETF) for encapsulating SCSI commands in TCP/IP packets, is the low-budget solution for clustering and load balancing. iSCSI lets you use your existing network infrastructure to transport SCSI data. You can have a server in New York and a disk system in San Francisco—you just have to be patient because access across the Internet is slow. Microsoft supports iSCSI in Windows Server 2003, Windows XP, and Windows 2000 Server, and other vendors such as Cisco Systems also support it. iSCSI is inexpensive (compared to a Storage Area Network—SAN), easy to implement, and built on a technology, TCP/IP, that you're already familiar with.
Understanding the workings of iSCSI is easy. A server, called the initiator, makes a disk request. The OS and the iSCSI initiator driver intercept the request and encapsulate it in an IP packet. Instead of sending the request to the SCSI bus, the driver directs the request to the NIC, which routes it to the destination address of the iSCSI target (and optionally encrypts it) just as the NIC would do with any other IP packet. When the iSCSI target receives the packet, the target "unwraps" the packet and forwards the enclosed SCSI command to the attached disks. Note that iSCSI, like SANs, transfers data at the block level, whereas Network Attached Storage (NAS) devices transfer at the file level.
iSCSI is not meant as a replacement for a high-end SAN, but it could easily replace a low-end or midrange SAN. If you have a 1000Base-T network, you'll find throughput is close to that of Fibre Channel. A good use for iSCSI today is for servers with a moderate amount of traffic, such as internal Web sites, file and print services, and small database applications.
Creating an iSCSI Environment
For an iSCSI setup, you need a network, a server or workstation to act as the initiator, the initiator drivers, and a target. The network and initiator computer you should already have; the computer must be running Windows 2003, Windows XP Professional Service Pack 1 (SP1), or Windows 2000 SP3 or later. The initiator drivers are a small, free download from the Microsoft Web site at http://www.microsoft.com/downloads/details.aspx?familyid=12cb3c1a-15d6-4585-b385-befd1319f825&displaylang=en. Installation takes a minute or two, and you don't need to reboot. Installation loads the Microsoft iSCSI Initiator service and an iSCSI Initiator Control Panel applet that has a shortcut on the desktop. The applet offers few configuration options—you enter the IP address or DNS name of the iSCSI target and some security settings.
The one component missing from a complete Microsoft solution is an iSCSI target—Microsoft doesn't currently offer software that lets a server act as a target. Several vendors offer target and iSCSI gateway appliances. EqualLogic has a target. Cisco has a gateway. Novell includes a target and initiator with NetWare 6.5. Linux targets and initiators are available. Because iSCSI is an IETF standard, you should have no problems using one vendor's initiator and another's target. Early adopters and my tests confirm this interoperability.
iSCSI is still an emerging technology, but it has a proven record. Several server administrators have told me they depend on iSCSI on their primary production servers and have had no problems in more than 2 years of 24 × 7 use. iSCSI is built upon two well-established protocols: TCP/IP and SCSI. It's inexpensive, easy to implement, and can enhance the functionality of your data center. Spend some time to see whether iSCSI is technology you should be implementing.