Date: Feb 13, 1993 X3T9.2/93-003 rev 1 To: X3T9.2 Committee (SCSI) From: George Penokie (IBM) Subject: SCSI Disk Array Model 1.0 Glossary 1. Check Data - Information contained within a device which allows lost or destroyed data to be reconstructed. 1. Check Data Mapping - The distribution of the check data within a secondary LBA set. 1. Data Mapping - The distribution of data within a secondary LBA set. 1. Mapping - The distribution of data and check data (if any) within a secondary LBA set. 1. Secondary LBA Set - A LBA range which has a single mapping characteristic. Sets are independent from one another. 2.0 Model for SCSI disk arrays The following is a model which defines the SCSI disk arrays. It is not intended to define any requirements nor is it intended to alter any requirements defined elsewhere in this standard. 3.0 SCSI Disk Array Variations A SCSI disk arrays behavior may be controlled from different levels within a system. Listed below are examples of three levels of control which may exist within a system. Software Disk Array - The OS is in control of the array and is responsible for configuration and data integrity. Transparent Disk Array - The OS has no knowledge of the array during normal operations and is not responsible for data integrity. The array characteristics and statistical information are available through maintenance software. Hybrid Disk Array - The OS is aware of the array and is responsible for the initial configuration but not the data integrity. The OS is notified of exception conditions so that a corrective action can be indicated. Date: Jan 13, 1993 X3T9.2/93-003 rev 1 4.0 SCSI Disk Array Configuration 4.1 Configuration Requests A SCSI disk arrays configuration is initialized and controlled by configuration requests. Configuration requests that are used to define a secondary LBA set: -LBA range -Capacity -Expansions -Contractions -Data mapping (Note: Data mapping may allow data to be duplicated) -Check data mapping 4.2 Reconstruction Requests A SCSI disk arrays reconstruction is initiated by reconstruction requests. The following are the methods of reconstruction which may be available within a secondary LBA set: -Remapping a range of LBAs into a reserved range of LBAs. -Reconstruction of a secondary LBA set using check data information or duplicate data. -Reconstruction of a subset of the secondary LBAs within the secondary LBA set. -Rewrite of the check data within a secondary LBA set. 4.3 SCSI Disk Array Functions The level within a system which receives configuration requests controls the: -Translation of primary LBAs to/from secondary LBAs. -Reading data from and writing data to locations based on the mapping in effect for the secondary LBA set being addressed. -Calculates and updates the check data (if any). -Attempts to correct any bad data using check data or duplicate data. -Determines when a device or secondary LBA range should be disabled and/or replaced. -Indicates to a higher level that a failure occurred and possible corrective actions. 5.0 Exception Conditions Exception conditions indicate to a higher level that: -a repair action is requested, -a repair action is required, or -an error occurred. Which exception conditions are indicated and how often they are indicated is based on requests received from a higher level. Date: Jan 13, 1993 X3T9.2/93-003 rev 1 A.1 SCSI Disk Array Variation Diagrams This appendix shows, in diagram form the different levels of control of SCSI disk arrays which may exist within a system. The diagrams are of the three levels described in section 3.0. A fourth diagram shows a system with no SCSI disk array. A.1.1 System with no SCSI Disk Array ---------------------------------------------------- | From OS | From XPT | ---------------------------------------------------- Device | Prim. LBAs translated | Number of Prim. LBAs per | Driver | to/from OSD format | Device | | | | | | Addresses of devices | ---------------------------------------------------- | Constructs a CCB | ---------------------------------------------------- | V ---------------------------------------------------- | Takes CCB and translates into HBA instructions | XPT/SIM | (CDB, Messages, etc.) for a device and delivers | | that information to the HBA. | ---------------------------------------------------- | V ---------------------------------------------------- | Carries out instructions and delivers information| HBA | to the addressed device (no translation of CDB) | ---------------------------------------------------- | V ---------------------------------------------------- Primary |The information is stored/retrieved as instructed.| Device |Prim. LBAs are translated to/from actual location.| ---------------------------------------------------- Date: Jan 13, 1993 X3T9.2/93-003 rev 1 A.1.2 System with Transparent SCSI Disk Array ---------------------------------------------------- | From OS | From XPT | ---------------------------------------------------- Device | Prim. LBAs translated | Number of Prim. LBAs per | Driver | to/from OSD format | Device | | | | | | Addresses of devices | ---------------------------------------------------- | Constructs a CCB | ---------------------------------------------------- | V ---------------------------------------------------- | Takes CCB and translates into HBA instructions | XPT/SIM | (CDB, Messages, etc.) for a device and delivers | | that information to the HBA. | ---------------------------------------------------- | V ---------------------------------------------------- | Carries out instructions and delivers information| HBA | to the addressed device (no translation of CDB) | ---------------------------------------------------- | V ---------------------------------------------------- Primary | Prim. LBAs translated to/from secondary device | Device | addresses and secondary LBAs. | | | | Delivers the translated CDB to secondary | | device(s). | ---------------------------------------------------- | V ---------------------------------------------------- Secondary|The information is stored/retrieved as instructed.| Device * |Prim. LBAs are translated to/from actual location.| ---------------------------------------------------- *Note: A secondary device does not need to know it is a secondary device. Only a primary device which has secondary devices attached needs to understand that secondary devices exist. Date: Jan 13, 1993 X3T9.2/93-003 rev 1 A.1.3 System with Hybrid SCSI Disk Array ---------------------------------------------------- | From OS | From XPT | ---------------------------------------------------- Device | Prim. LBAs translated | Number of Prim. LBAs per | Driver | to/from OSD format | Device | | | | | | Addresses of devices | ---------------------------------------------------- | Constructs a CCB | ---------------------------------------------------- | V ---------------------------------------------------- | Takes CCB and translates into HBA instructions | XPT/SIM | (CDB, Messages, etc.) for a device and delivers | | that information to the HBA. | ---------------------------------------------------- | V ---------------------------------------------------- | Carries out instructions and translates prim. | HBA | LBAs to/from secondary device addresses and | | secondary LBAs. | | | | Delivers the translated CDB to secondary | | device(s). | ---------------------------------------------------- | V ---------------------------------------------------- Secondary|The information is stored/retrieved as instructed.| Device * |Prim. LBAs are translated to/from actual location.| ---------------------------------------------------- *Note: A secondary device does not need to know it is a secondary device. Only the HBA needs to understand that secondary devices exist. Date: Jan 13, 1993 X3T9.2/93-003 rev 1 A.1.4 System with Software SCSI Disk Array ---------------------------------------------------- | From OS | From XPT | ---------------------------------------------------- Device | Sec. LBAs translated | Number of Sec. LBAs per | Driver | to/from OSD format | Device | | | | | | Addresses of devices | ---------------------------------------------------- | Constructs a CCB | ---------------------------------------------------- | V ---------------------------------------------------- | Takes CCB and translates into HBA instructions | XPT/SIM | (CDB, Messages, etc.) for a device and delivers | | that information to the HBA. | ---------------------------------------------------- | V ---------------------------------------------------- | Carries out instructions and delivers information| HBA | to the addressed device (no translation of CDB) | ---------------------------------------------------- | V ---------------------------------------------------- Secondary|The information is stored/retrieved as instructed.| Device * |Prim. LBAs are translated to/from actual location.| ---------------------------------------------------- *Note: A secondary device does not need to know it is a secondary device. Only the OS needs to understand that secondary devices exist.