In computer storage
, a logical unit number
is simply the number assigned to a logical unit. A logical unit is a SCSI
protocol entity, the only one which may be addressed by the actual input/output
(I/O) operations. Each SCSI target
provides one or more logical units, and does not perform I/O as itself, but only on behalf of a specific logical unit.
To provide a practical example, a typical disk array
has multiple physical SCSI ports, each with one SCSI target address assigned. Then the disk array is formatted as a RAID
and then this RAID is partitioned into several separate storage volumes. To represent each volume, a SCSI target is configured to provide a LUN. Each SCSI target may provide multiple LUNs and thus represent multiple volumes, which does not
mean that those volumes are concatenated
Another example is a single disk drive with one physical SCSI port. It usually provides just a single target, which in turn usually provides just a single LUN numbered zero. This LUN represents the entire storage of the disk drive.
term is applicable not only to traditional parallel SCSI
, but also to its descendants, like Fibre Channel Protocol
, and others.
cXtXdXsX nomenclature in Unix
From the computer perspective, SCSI LUN is only a part of full SCSI address. The full device's address is made from the:
- controller ID of the host bus adapter,
- target ID identifying the SCSI target on that bus,
- disk ID identifying a LUN on that target,
- an optional (and largely obsolete) slice ID identifying a specific slice on that disk.
In the Unix family of operating systems, these IDs are often combined into a single "name". For example, /dev/dsk/c1t2d3s4 would refer to controller 1, target 2, disk 3, slice 4. Presently Solaris, HP-UX, NCR, and others continue to use "cXtXdXsX" nomenclature, while AIX has abandoned it in favor of more familiar names.
The term logical unit number
also applies to a file access channel within certain programming languages
. For example in FORTRAN
, the WRITE statement has a form which identifies the LUN of the target file and the FORMAT of the data to be written as in WRITE(5,32) where 5 is the LUN of the file and 32 is the FORMAT statement for the write.