The Storage Device Interface (SDI) is a framework for driver software for many of the hardware devices on a system. Besides organizing, simplifying, and standardizing the way device drivers are written, SDI also makes it easier to administer a wide variety of both devices and interfaces.
SDI divides the device driver logically into two layers
SDI supports both SCSI and non-SCSI devices. It routes target driver requests to the correct HBA driver and HBA driver responses to the correct target driver.
To better explain this relationship, suppose you have a system which includes one ESDI-controlled hard disk, one non-SCSI cartridge tape drive, a SCSI HBA adapter (type x) controlling a SCSI hard disk and a SCSI 9-track tape, and a second SCSI HBA adapter (type y) controlling a SCSI hard disk and a CD-ROM.
All three hard disks are controlled by the sd01 target driver. Both tape units are controlled by st01, and the CD-ROM drive is controlled by sc01. This is possible because the target drivers do not need to know the specific details of how a command is issued (a function that varies between different controller types), but rather, only the type of operation to be performed (for example, read a file from a particular disk).
Each HBA driver receives the requests from and performs the operation on the appropriate physical device. Results from the request, successful or not, are returned to SDI by the HBA driver in a common device- and controller-independent format. Finally, SDI returns the results of the request to the appropriate target driver.
All SDI drivers use device driver interfaces, although not all device drivers are part of SDI. (See ``DDI interface versioning'' for more information.) Currently, SDI includes mass storage device driver support for hard disks, tapes, CD-ROM devices, and Write-Once-Read-Many (WORM) devices.
The following commands are provided for working with SDI devices.
|sdiconfig(1M)||determine which SDI disk, tape, and SCSI controllers are present|
|sdiadd(1M)||hot add SCSI mass storage devices|
|sdirm(1M)||hot remove SCSI mass storage devices|
|sdimkdev(1M)||generate device nodes for the SDI subsystem|
|sdimkdtab(1M)||update the device table entries for the SDI subsystem|
|sdipath(1M)||manage paths in a multipath I/O environment|
|sdighost(1M)||lists and/or removes device nodes associated with Ghost Names|
|sdi_timeout(1M)||query or change SDI device timeout tunables|
|sdimkosr5(1M)||convert a disk layout formatted for SCO OpenServer to UnixWare|