- Block Storage OSM for I2O
disk@local target id#:a through u disk@local target id#:a through u raw
The I2O Block Storage OSM abstraction (BSA, which also is referred to as block storage class) layer is the primary interface that Solaris operating environments use to access block storage devices. A block storage device provides random access to a permanent storage medium. The i2o_bs device driver uses I2O Block Storage class messages to control the block device; and provides the same functionality (ioctls, for example) that is present in the Solaris device driver like 'cmdk, dadk' on x86 for disk. The maximum size disk supported by i2o_bs is the same as what is available on x86.
The i2o_bs is currently implemented version 1.5 of Intelligent IO specification.
The block files access the disk using the system's normal buffering mechanism and are read and written without regard to physical disk records. There is also a "raw" interface that provides for direct transmission between the disk and the user's read or write buffer. A single read or write call usually results in one I/O operation; raw I/O is therefore considerably more efficient when many bytes are transmitted. The names of the block files are found in /dev/dsk; the names of the raw files are found in /dev/rdsk.
I2O associates each block storage device with a unique ID called a local target id that is assigned by I2O hardware. This information can be acquired by the block storage OSM through I2O Block Storage class messages. For Block Storage OSM, nodes are created in /devices/pci#/pci# which include the local target ID as one component of device name that the node refers to. However the /dev names and the names in /dev/dsk and /dev/rdsk do not encode the local target id in any part of the name.
For example, you might have the following:
/devices/ /dev/dsk name --------------------------------------------------------------- /devices/pci@0,0/pci101e,0@10,1/disk@10:a /dev/dsk/c1d0s0
I/O requests to the disk must have an offset and transfer length that is a multiple of 512 bytes or the driver returns an EINVAL error.
Slice 0 is normally used for the root file system on a disk, slice 1 is used as a paging area (for example, swap), and slice 2 for backing up the entire fdisk partition for Solaris software. Other slices may be used for usr file systems or system reserved area.
Fdisk partition 0 is to access the entire disk and is generally used by the fdisk(1M) program.
UNIX system slice n (0-15)
fdisk partition (0)
See attributes(5) for descriptions of the following attributes: