Storage Basics: SCSI Part I
In this article, the next in our series 'Storage Basics', we are going to look at the Small Computer Systems Interface (SCSI). SCSI is a complex subject, and one very important for anyone working with storage technologies to be aware of. For that reason, we have divided this article up into two sections. In this first part we'll look at SCSI as a technology, discuss some of the more popular SCSI standards and examine SCSI device numbering. In part two, we'll look at implementation considerations such as SCSI signaling, termination, cable types, support for external devices, and how SCSI actually works.
SCSI is a storage technology that has made a name for itself as a high performance, highly reliable solution to our increasing demands for speed and flexibility in storage devices. Today, SCSI is the storage technology of choice for data storage applications in server systems, network attached storage (NAS) and storage area network (SAN) applications.
The Life of SCSI
SCSI is a mature technology. The first SCSI standard, known as SCSI-1, was introduced in 1986, a time when storage technology was still in its infancy. Sure, hard disk storage had been around since 1957 when IBM introduced its 24-platter 5GB hard drive, but it was the mid-80's, when the explosive growth in PC sales, and the move toward PC based networking gained pace, that a high performance data storage standard was needed and delivered in the form of SCSI.
To begin with SCSI was slow to catch on. At the time of its introduction, storage devices of any type were expensive, and the additional performance benefits that SCSI offered over the standards of the time were often sacrificed for budgetary concerns. To an extent, this is perhaps the only limiting factor in SCSI acquiring complete dominance even today, though in server and network storage applications people are willing to pay the extra for a SCSI system and its benefits.
In today's storage market, there are only two competitors - SCSI and ATA (IDE). The ATA interface has found dominance in desktop systems, which almost exclusively offer ATA hard disk support rather than SCSI. It's not necessarily that SCSI storage devices are now much more expensive than their IDE counterparts, but more that a SCSI controller (also referred to as a host adapter) is needed to support SCSI devices, which adds cost and complexity. With an extra adapter, there are potential issues with installation and configuration, further discouraging all but tech savvy users from looking to SCSI as a solution for desktop systems.
It's not terrible news for desktop users, though. The latest ATA standard, ATA100, can get close (relatively) in terms of speed to today's SCSI standards with a 100Mbps throughput, but that is about as close as it gets to becoming a challenger. SCSI is not just a faster technology than ATA, it is also more efficient in terms of reading and writing. The method by which SCSI drives access the disk means that the physical drive mechanics don't have to work so hard to read or write data. This ultimately means that SCSI drives last longer than ATA drives, a fact indicated by higher Mean Time Between Failure (MTBF) figures for SCSI drives. As if that were not enough of a reason to use SCSI, ATA also has the built in limitation of four devices, and no support for external devices. In terms of versatility, speed and reliability there is really no alternative but to look to SCSI.
Over time SCSI has been developed, enhanced, improved and reworked. Progress is a good thing, though the vast array of SCSI standards can serve to confuse the uninitiated and catch out the initiated. Its not that the standards are not clearly defined, because they are, it's simply that there are so many of them it becomes difficult to remember what means what. As well as the basic standards themselves, the waters are further muddied by different types of signaling and termination. We'll leave that discussion to Part Two.
Although there are many SCSI standards, there are two basic types which run throughout - narrow and wide. They are called such in light of the width of the bus which is used to transfer data. Narrow SCSI standards use an 8-bit bus, while wide SCSI standards use a 16-bit bus.
The first SCSI standard, SCSI 1 accommodated a maximum transfer speed of 5MBps, at 5Mhz on an 8-bit bus which means that it was a 'narrow' implementation. It was succeeded by SCSI-2 which was available in a narrow version, referred to as Fast SCSI-2 and a wide version called Fast Wide SCSI-2. After SCSI-2 came SCSI-3, a standard which has stayed with us to this point, though there have been a number of different SCSI standards defined within SCSI-3. These standards include Ultra SCSI, Ultra Wide SCSI, Ultra2 SCSI, Wide Ultra2 SCSI and the latest available version Ultra3 SCSI, which is also known as Ultra160 in view of its ability to support speeds of up to 160MBps.
To contrast Ultra160 with the first SCSI standard, it supports and 80Mhz clock speed and a 16-bit data bus. In the near future we will be introduced to a new SCSI-3 standard, Ultra320 which as the name suggests, will support a maximum data transfer speed of 320Mbps. For a complete rundown on the various characteristics of SCSI standards check out SCSI Trade Associate Website at http://www.scsita.org.
Although there are many important concepts associated with SCSI, one of the most important is that of SCSI device numbering.
In a SCSI system, devices are attached to cable to form a chain of devices. The cable, whatever physical form it takes, is referred to as the SCSI bus. Each device on the bus must be assigned a unique ID. These ID's, which are expressed as numbers, serve to identify the device on the bus. Narrow SCSI standards allow for a maximum of 8 devices on the bus, while the wide standards can accommodate up to 16. Both internal and external devices must have a valid SCSI ID with no exceptions. It should also be noted that in addition to each storage device using a SCSI ID, the SCSI interface card, or host adapter, also uses one of the SCSI ID's. That means on a narrow SCSI bus there are 7 device ID's available, and 15 on a Wide SCSI bus.
Because the number of available SCSI ID's can be a limitation, it is possible to break a SCSI ID down further into what are called Logical Unit Numbers (LUNs). LUNs make it possible for a number of devices to share a single SCSI ID. A good example of where LUNs might come in useful is that of a CD-ROM jukebox where there are 5 CD-ROM devices in a single external housing. The housing itself can be assigned a single SCSI ID, while the devices in it adopt different LUNs. Another feature, though rarely used, is that of Sub Logical Unit Numbers (SLUNs). SLUNs allow each LUN to be split down into further devices.
That's it for Part One of this look at SCSI. Check out Part Two of this article, coming soon, as we explore implementation considerations such as signaling, termination, cable types and support for external devices. We'll also dig out the crystal ball and see what is in store for SCSI in the near future.