What Is SCSI?

Team-Fly    

Solaris™ Operating Environment Boot Camp
By David Rhodes, Dominic Butler
Table of Contents
Chapter 17.  Adding SCSI Devices


SCSI, or "Small Computer Systems Interface," is a standard used to connect many different types of hardware devices to the system, including disks, tapes, scanners, and CD-ROMs. The original SCSI specification has been reworked a number of times so that now various flavors are available.

A SCSI controller, known as a "host adaptor," is used to connect the devices to the machine. Each host adaptor can support a number of devices over a set distance, which depends on the flavor of SCSI it supports. The devices are "daisy-chained" together, so that the host adaptor connects to the first device, the first connects to the second, the second to the third, and so on. Finally, both ends of the link, known as the "SCSI-bus," are terminated.

Table 17.1 on the following page shows the important details for the different flavors, along with the constraints that apply to each one.

Single-Ended versus Differential

Single-ended SCSI is the "normal" version of SCSI that we are used to. The term "single-ended" is often dropped so that most people just refer to either SCSI or differential SCSI. The difference between the two is that single-ended SCSI uses one wire to transmit its data, whereas differential SCSI uses two wires with the signal inverted between the two, as shown in Figure 17.1.

Figure 17.1. Comparison between single-ended and differential SCSI signals.

graphics/17fig01.gif

The single-ended signal is taken as the voltage difference between its one data wire and "ground," whereas the differential signal is taken as the voltage differential (hence the name) between its two data wires (see Figure 17.1). This provides a better data signal, which is less susceptible to noise and therefore allows longer cable lengths to be used.

Table 17.1. SCSI Implementation Details

Type

Bandwidth (MB/sec)

Bus Width (bits)

Single-Ended Cable Length (meters)

LVD Cable Length (meters)

HVD Cable Length (meters)

Number of Supported Devices

SCSI-1

5

8

6

[*]

25

8

Fast SCSI

10

8

3

[*]

25

8

Fast Wide SCSI

20

16

3

[*]

25

16

Ultra SCSI-3

20

8

1.5

[*]

25

8

Ultra SCSI-3

20

8

3

n/a

n/a

4

Wide Ultra SCSI-3

40

16

n/a

[*]

25

16

Wide Ultra SCSI-3

40

16

1.5

n/a

n/a

8

Wide Ultra SCSI-3

40

16

3

n/a

n/a

4

Ultra2 SCSI-3

40

8

n/a

12

25

8

Wide Ultra2 SCSI-3

80

16

n/a

12

25

16

Ultra160 SCSI-3

160

16

n/a

12

n/a

16

Ultra320 SCSI-3

320

16

n/a

12

n/a

16

[*] See "Multimode LVD" on page 399.

High versus Low Voltage Differential

In the original SCSI implementation, only single-ended or differential versions were available. Recently, however, Low Voltage Differential (LVD) was introduced and the "original" differential was renamed High Voltage Differential (HVD).

LVD works on exactly the same principle as HVD (or as far as we're concerned here it does!). As we can guess, the difference between them is the voltage levels, which for HVD is 5 volts and for LVD is 3 volts. This lower voltage affects LVD's maximum allowable cable length, which at 12 meters is longer than single-ended, but shorter than HVD.

Multimode LVD

Also known as LVD/SE, multimode LVD allows either single-ended or LVD devices to be connected to the SCSI bus. If all the connected devices are LVDs, then the bus will operate as an LVD bus, and therefore allow cable lengths up to 12 meters. However, if any single-ended devices are connected, the whole of the bus will operate as a single-ended one, limiting the cable lengths to those listed in Table 17.1.

Narrow and Wide

This describes the width of the data bus; that is, how many data bits are transferred in parallel. "Narrow" is used to describe a 1-byte-wide bus and is the "normal" type of SCSI. "Wide" is used to describe a 2-byte-wide bus. Again, the word "narrow" is dropped most of the time.

Termination

We've mentioned that the bus must be terminated at both ends. This is done to stop the electrical signals from reflecting back along the bus and causing confusion. One of the ends of the bus will always be the host adaptor, which is automatically terminated so it doesn't cause us a problem.

The rest of the bus, however, will depend on the devices connected to it. Originally, SCSI devices came with terminators that had to be physically removed. Nowadays the devices usually detect whether they are the last device on the bus and, therefore, whether to apply termination.

SCSI IDs

Each device on the bus is allocated an identifying number, known as the SCSI ID, which must be unique and not clash with the ID of any other devices on the bus. It is used by the kernel to direct data to the correct device.

The host adaptor is known as the "initiator," with the remaining devices known as "targets." Table 17.1 shows how many devices each flavor of SCSI is allowedthis number includes both targets and initiators.

The SCSI ID also has a priority associated with it. ID priorities (ranging from highest to lowest) are listed below:

  • 7, 6, 5, 4, 3, 2, 1, 0 (for narrow SCSI buses)

  • 7, 6, 5, 4, 3, 2, 1, 0, 15, 14, 13, 12, 11, 10, 9, 8 (for wide SCSI buses)

This shows that ID 7 has the highest priority. Because of this, ID 7 is normally assigned to the host adaptor itself.

Altering the IDs

It needs to be easy to alter SCSI IDs on targets to avoid any conflicts. As such, each device will usually have a switch, electronic keypad, or even a series of jumpers that need to be set.

Normally, the only reason for changing the initiator ID would be to avoid ID conflicts when we have two systems connected to the same bus (for example, high availability or cluster configurations). If all the SCSI host adaptors are to be configured with a different initiator ID, then this can be carried out using the eeprom command (or the corresponding PROM command), as shown below and explained in Chapter 2, "Booting and Halting the System."

 helium# eeprom scsi-initiator-id=6 helium# 

For cluster-type configurations, it is normally recommended to keep all the local SCSI buses set to ID 7, and so only reset any connected SCSI buses. This can become quite a complex process, involving modifications to the NVRAM settings. As such, it is beyond the scope of this book.

Logical Units

Each SCSI target is also a SCSI controller itself, and as such can support a number of "logical units," known as LUNs. The actual number, again, depends on the type of bus in use, but can be any number up to its maximum supported devices. For example, a narrow bus can support up to 8 LUNs per SCSI target, while a wide bus can support up to 16 LUNs per target.

LUNs were often used when SCSI controllers were separate from the disk itself. This meant that more than one disk could be attached to a single controller and each disk would be seen as a LUN. Nowadays most disks use embedded controllers, which means that one controller connects to one disk only. However, they are still seen in more complex devices such as hardware Redundant Array of Inexpensive Disks (RAID) solutions where a SCSI target is allocated to the hardware device, and LUNs are used to define individual volumes or filesystems within it.

By default, LUNs are not configured (it also makes the boot process slower while the system checks to see if there are any available). However, they are easy to configurewe'll see how to do this later.


    Team-Fly    
    Top
     



    Solaris Operating Environment Boot Camp
    Solaris Operating Environment Boot Camp
    ISBN: 0130342874
    EAN: 2147483647
    Year: 2002
    Pages: 301

    flylib.com © 2008-2017.
    If you may any questions please contact us: flylib@qtcs.net