The Small Computer Systems Interface (SCSI) is the conventional, server centric method of connecting peripheral devices (disks, tapes and printers) in the open client/server environment. As its name indicates, it was designed for the PC and small computer environment. It is a bus architecture, with dedicated, parallel cabling between the host and storage devices, such as disk arrays. This is similar in implementation to the Original Equipment Manufacturer’s Information (OEMI) bus and tag interface commonly used by mainframe computers until the early 1990’s. SCSI shares a practical aspect with bus and tag, in that cables and connectors are bulky, relatively expensive, and are prone to failure.
The amount of data available to the server is determined by the number of devices which can attach to the bus, and by the number of buses attached to the server. Up to 15 devices can be attached to a server on a single SCSI bus. In practice, because of performance limitations due to arbitration, it is common for no more than four or five devices to be attached in this way, thus limiting capacity scalability.
Access to data is lost in the event of a failure of any of the SCSI connections to the disks. This also applies in the event of reconfiguration or servicing of a disk device attached to the SCSI bus, because all the devices in the string must be taken offline. In today’s environment, when many applications need to be available continuously, this downtime is unacceptable.
The data rate of the SCSI bus is determined by the number of bits transferred, and the bus cycle time (measured in megahertz (MHz)). Decreasing the cycle time increases the transfer rate, but, due to limitations inherent in the bus architecture, it may also reduce the distance over which the data can be successfully transferred. The physical transport was originally a parallel cable comprising eight data lines, to transmit eight bits in parallel, plus control lines.
Chapter 3. Fibre Channel internals 31 Later implementations widened the parallel data transfers to 16 bit paths (SCSI Wide), to achieve higher bandwidths.
Propagation delays in sending data in parallel along multiple lines lead to a well known phenomenon known as skew, meaning that all bits may not arrive at the target device at the same time. This is shown in Figure 3-1.
Figure 3-1 SCSI Propagation delay results in skew
Arrival occurs during a small window of time, depending on the transmission speed, and the physical length of the SCSI bus. The need to minimize the skew limits the distance that devices can be positioned away from the initiating server to between 2 to 25 meters, depending on the cycle time. Faster speed means shorter distance. The distances refer to the maximum length of the SCSI bus, including all attached devices. The SCSI distance limitations are shown in Figure 3-2 on page 32. These distance limitations may severely restrict the total GB capacity of the disk storage which can be attached to an individual server.
Driver Data 1 Driver Data 2 Driver Data 3 Driver Data 4 Driver Clock
Input Signal Driver Skew
Receiver
Receiver
Receiver
Receiver
Receiver
Cable Skew Receiver Skew
Signal Skew on Parallel Data Bus
Figure 3-2 SCSI bus distance limitations
Many applications require the system to access several devices, or for several systems to share a single device. SCSI can enable this by attaching multiple servers or devices to the same bus. This is known as a multi-drop configuration. A multi-drop configuration is shown in Figure 3-3.
Figure 3-3 Multi-drop bus structure
SCSI distance limitations
Device
Device Device ...
Fast /Wide SCSI Up to 25 meters
20 MB/sec
1-2 Host Systems 15 Devices per connection
Device
Device Device ...
Ultra2 SCSI Up to 12 meters
80 MB/sec
1-2 Host Systems 15 Devices per connection
Device
Device Device ...
Ultra Wide SCSI Up to 12 meters
40 MB/sec
1-2 Host Systems 15 Devices per connection
Termination Termination Termination SCSI Initiator Dr iv e r Rec eiv er Te rm inat or Driver Receiver Disk Drive Driver Receiver Disk Drive Driver Receiver Disk Drive Driver Receiver Disk Drive Control Signals Data Bus Multi-Drop Data/Control Bus
Chapter 3. Fibre Channel internals 33 To avoid signal interference, and therefore possible data corruption, all unused ports on a parallel SCSI bus must be properly terminated. Incorrect termination can result in transaction errors or failures.
Normally, only a single server can access data on a specific disk by means of a SCSI bus. In a shared bus environment, it is clear that all devices cannot transfer data at the same time. SCSI uses an arbitration protocol to determine which device can gain access to the bus. Arbitration occurs before and after every data transfer on the bus. While arbitration takes place, no data movement can occur. This represents an additional overhead which reduces bandwidth utilization, substantially reducing the effective data rate achievable on the bus. Actual rates are typically less than 50% of the rated speed of the SCSI bus.
In addition to being a physical transport, SCSI is also a protocol, which specifies commands and controls for sending blocks of data between the host and the attached devices. SCSI commands are issued by the host operating system, in response to user requests for data. Some operating systems, for example, Windows NT, treat all attached peripherals as SCSI devices, and issue SCSI commands to deal with all read and write operations.
It is clear that the physical parallel SCSI bus architecture has a number of significant speed, distance, and availability limitations, which make it increasingly less suitable for many applications in today’s networked IT infrastructure. However, since the SCSI protocol is deeply embedded in the way that commonly encountered operating systems handle user requests for data, it would be a major inhibitor to progress if we were obliged to move to new protocols.