ScsiLun

ScsiLun
ScsiLun

The ScsiLun data object describes a SCSI logical unit.

A SCSI logical unit is a host device that an ESX Server or virtual machine can use for I/O operations.

An ESX Server creates SCSI logical unit objects to represent devices in the host configuration. (See the definition of ScsiLunTypeEnum for a list of the supported device types.) The vSphere API uses one of two object types to represent a SCSI logical unit, depending on the device type.

  • Disks containing file system volumes or parts of volumes for hosts or raw disks for virtual machines. To represent disks, the ESX Server creates a HostScsiDisk object, which inherits properties from the ScsiLun base class.
  • Other SCSI devices, for example SCSI passthrough devices for virtual machines. To represent one of these devices, the ESX Server creates a ScsiLun object.

When the Server creates a HostScsiDisk or ScsiLun object, it specifies a valid device name and type:

  • deviceName - A string representing the name of the device that is meaningful to the host. The following are some examples of device names.
            /dev/cdrom
            /vmkdev/vmhba0:0:1:0
            PhysicalDrive0
  • deviceType - A string describing the type of device. The following are some examples of device types.
            scsi-cdrom
            scsi-tape
            scsi-disk
            scsi-processor
            scsi-unknown
AllOf
This class requires all of the following:
JSON Example
{
    "_typeName": "string",
    "deviceName": "string",
    "deviceType": "string",
    "key": "string",
    "uuid": "string",
    "descriptor": [
        {
            "_typeName": "string",
            "quality": "string",
            "id": "string"
        }
    ],
    "canonicalName": "string",
    "displayName": "string",
    "lunType": "string",
    "vendor": "string",
    "model": "string",
    "revision": "string",
    "scsiLevel": 0,
    "serialNumber": "string",
    "durableName": {
        "_typeName": "string",
        "namespace": "string",
        "namespaceId": 0,
        "data": [
            0
        ]
    },
    "alternateName": [
        {
            "_typeName": "string",
            "namespace": "string",
            "namespaceId": 0,
            "data": [
                0
            ]
        }
    ],
    "standardInquiry": [
        0
    ],
    "queueDepth": 0,
    "operationalState": [
        "string"
    ],
    "capabilities": {
        "_typeName": "string",
        "updateDisplayNameSupported": false
    },
    "vStorageSupport": "string",
    "protocolEndpoint": false,
    "perenniallyReserved": false,
    "clusteredVmdkSupported": false,
    "applicationProtocol": "string",
    "dispersedNs": false,
    "deviceReservation": "string"
}
string
key
Optional

Linkable identifier

string
uuid
Required

Universally unique identifier for the LUN used to identify ScsiLun across multiple servers.

This identifier can be used to identify analogous objects in other views such as HostMultipathInfoLogicalUnit and HostScsiTopologyLun.

See also HostMultipathInfoLogicalUnit, HostScsiTopologyLun.

descriptor
Optional

List of descriptors that can be used to identify the LUN object.

The uuid will also appear as a descriptor.

The id field in the descriptor is a string that can be used to correlate the ScsiLun across multiple servers. A ScsiLun may have multiple descriptors. The choice and order of these descriptors may be different on different servers.

Not all descriptors are suitable for correlation. Some descriptors are only sufficient to identify the ScsiLun within a single host. Each descriptor contains a quality property that indicates whether or not the descriptor is suitable for correlation.

string
canonicalName
Optional

Canonical name of the SCSI logical unit.

Disk partition or extent identifiers refer to this name when referring to a disk. Use this property to correlate a partition or extent to a specific SCSI disk.

See also diskName.

string
displayName
Optional

User configurable display name of the SCSI logical unit.

A default display name will be used if available. If the display name is not supported, it will be unset. The display name does not have to be unique but it is recommended that it be unique.

string
lunType
Required

The type of SCSI device.

Must be one of the values of ScsiLunTypeEnum.

string
vendor
Optional

The vendor of the SCSI device.

string
model
Optional

The model number of the SCSI device.

string
revision
Optional

The revision of the SCSI device.

integer As int32 As int32
scsiLevel
Optional

The SCSI level of the SCSI device.

string
serialNumber
Optional

The serial number of the SCSI device.

For a device that is SCSI-3 compliant, this property is derived from page 80h of the Vital Product Data (VPD), as defined by the SCSI-3 Primary Commands (SPC-3) spec. Not all SCSI-3 compliant devices provide this information. For devices that are not SCSI-3 compliant, this property is not defined.

durableName
Optional

This data object type represents an SMI-S "Correlatable and Durable Name" which is an identifier for a logical unit number (LUN) that is generated using a common algorithm.

The algorithm divides the identifier into multiple namespaces where each namespace uses a different set of properties of the LUN to generate the identifier. The namespace itself is encoded in the identifier.

alternateName
Optional

Alternate durable names.

Records all available durable names derived from page 80h of the Vital Product Data (VPD) and the Identification Vital Product Data (VPD) page 83h as defined by the SCSI-3 Primary Commands. For devices that are not SCSI-3 compliant this property is not defined.

array of integer
standardInquiry
Optional

Standard Inquiry payload.

For a SCSI-3 compliant device this property is derived from the standard inquiry data. For devices that are not SCSI-3 compliant this property is not defined.

integer As int32 As int32
queueDepth
Optional

The queue depth of SCSI device.

array of string
operationalState
Required

The operational states of the LUN.

When more than one item is present in the array, the first state should be considered the primary state. For example, a LUN may be "ok" and "degraded" indicating I/O is still possible to the LUN, but it is operating in a degraded mode.

See also ScsiLunStateEnum.

capabilities
Optional

Scsi device specific capabilities.

string
vStorageSupport
Optional

vStorage hardware acceleration support status.

This property represents storage acceleration provided by the SCSI logical unit. See ScsiLunVStorageSupportStatusEnum for valid values.

If a storage device supports hardware acceleration, the ESX host can offload specific virtual machine management operations to the storage device. With hardware assistance, the host performs storage operations faster and consumes less CPU, memory, and storage fabric bandwidth.

For vSphere 4.0 or earlier hosts, this value will be unset.

boolean
protocolEndpoint
Optional

Indicates that this SCSI LUN is protocol endpoint.

This property will be populated if and only if host supports VirtualVolume based Datastore. Check the host capability virtualVolumeDatastoreSupported. See HostProtocolEndpoint.

boolean
perenniallyReserved
Optional

Indicates the state of a perennially reserved flag for a LUN.

If set for Raw Device Mapped (RDM) LUNs, the host startup or LUN rescan take comparatively shorter duration than when it is unset.

boolean
clusteredVmdkSupported
Optional

Indicates if LUN has the prequisite properties to enable Clustered Vmdk feature once formatted into VMFS Datastore.

string
applicationProtocol
Optional

Indicates the current device protocol.

Application protocol for a device which is set based on input from vmkctl storage control plane. Must be one of the values of DeviceProtocolEnum.

Since: vSphere API Release 8.0.1.0

boolean
dispersedNs
Optional

Indicates whether namespace is dispersed.

Set to true when the namespace of LUN is dispersed.

Since: vSphere API Release 8.0.1.0

string
deviceReservation
Optional

Indicates whether a device is under SCSI/NVMe reservation.

Device reservation for a SCSI/NVMe device set based on values received from vmkernel. The list of supported values is defined in ScsiLunLunReservationStatusEnum. If unset, the reservation status is unknown.

Since: vSphere API Release 8.0.3.0