Host Storage System Get Storage Device Info
Host storage information up to the device level.
The unique identifier for the managed object to which the property attaches; the serialized managed object reference for a request has the form moType/moId
, in this case HostStorageSystem/{moId}
.
The vSphere release schema. The current specification covers vSphere 8.0.3.0 APIs.
OK
{
"_typeName": "string",
"hostBusAdapter": [
{
"_typeName": "string",
"key": "string",
"device": "string",
"bus": 0,
"status": "string",
"model": "string",
"driver": "string",
"pci": "string",
"storageProtocol": "string"
}
],
"scsiLun": [
{
"_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"
}
],
"scsiTopology": {
"_typeName": "string",
"adapter": [
{
"_typeName": "string",
"key": "string",
"adapter": {
"_typeName": "string",
"key": "string",
"device": "string",
"bus": 0,
"status": "string",
"model": "string",
"driver": "string",
"pci": "string",
"storageProtocol": "string"
},
"target": [
{
"_typeName": "string",
"key": "string",
"target": 0,
"lun": [
{
"_typeName": "string",
"key": "string",
"lun": 0,
"scsiLun": {
"_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"
}
}
],
"transport": {
"_typeName": "string"
}
}
]
}
]
},
"nvmeTopology": {
"_typeName": "string",
"adapter": [
{
"_typeName": "string",
"key": "string",
"adapter": {
"_typeName": "string",
"key": "string",
"device": "string",
"bus": 0,
"status": "string",
"model": "string",
"driver": "string",
"pci": "string",
"storageProtocol": "string"
},
"connectedController": [
{
"_typeName": "string",
"key": "string",
"controllerNumber": 0,
"subnqn": "string",
"name": "string",
"associatedAdapter": {
"_typeName": "string",
"key": "string",
"device": "string",
"bus": 0,
"status": "string",
"model": "string",
"driver": "string",
"pci": "string",
"storageProtocol": "string"
},
"transportType": "string",
"fusedOperationSupported": false,
"numberOfQueues": 0,
"queueSize": 0,
"attachedNamespace": [
{
"_typeName": "string",
"key": "string",
"name": "string",
"id": 0,
"blockSize": 0,
"capacityInBlocks": 0
}
],
"vendorId": "string",
"model": "string",
"serialNumber": "string",
"firmwareVersion": "string"
}
]
}
]
},
"multipathInfo": {
"_typeName": "string",
"lun": [
{
"_typeName": "string",
"key": "string",
"id": "string",
"lun": {
"_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"
},
"path": [
"HostMultipathInfoPath Object"
],
"policy": {
"_typeName": "string",
"policy": "string"
},
"storageArrayTypePolicy": {
"_typeName": "string",
"policy": "string"
}
}
]
},
"plugStoreTopology": {
"_typeName": "string",
"adapter": [
{
"_typeName": "string",
"key": "string",
"adapter": {
"_typeName": "string",
"key": "string",
"device": "string",
"bus": 0,
"status": "string",
"model": "string",
"driver": "string",
"pci": "string",
"storageProtocol": "string"
},
"path": [
"HostPlugStoreTopologyPath Object"
]
}
],
"path": [
{
"_typeName": "string",
"key": "string",
"name": "string",
"channelNumber": 0,
"targetNumber": 0,
"lunNumber": 0,
"adapter": "HostPlugStoreTopologyAdapter Object",
"target": {
"_typeName": "string",
"key": "string",
"transport": {
"_typeName": "string"
}
},
"device": "HostPlugStoreTopologyDevice Object"
}
],
"target": [
{
"_typeName": "string",
"key": "string",
"transport": {
"_typeName": "string"
}
}
],
"device": [
{
"_typeName": "string",
"key": "string",
"lun": {
"_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"
},
"path": [
"HostPlugStoreTopologyPath Object"
]
}
],
"plugin": [
{
"_typeName": "string",
"key": "string",
"name": "string",
"device": [
{
"_typeName": "string",
"key": "string",
"lun": {
"_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"
},
"path": [
"HostPlugStoreTopologyPath Object"
]
}
],
"claimedPath": [
{
"_typeName": "string",
"key": "string",
"name": "string",
"channelNumber": 0,
"targetNumber": 0,
"lunNumber": 0,
"adapter": "HostPlugStoreTopologyAdapter Object",
"target": {
"_typeName": "string",
"key": "string",
"transport": {
"_typeName": "string"
}
},
"device": "HostPlugStoreTopologyDevice Object"
}
]
}
]
},
"softwareInternetScsiEnabled": false
}
The list of host bus adapters available on the host.
This data object type describes the SCSI topology information.
The data objects in this data object type model the SCSI storage objects from a topological point of view. The SCSI topological view organizes objects by SCSI interface, which contain targets, which in turn contain logical units.
SCSI Topology information is not guaranteed to exhaustively enumerate all storage devices on the system. It only shows storage devices that are actually enumerable from a host bus adapter. This means that only storage devices that are composed from one or more paths, which are in turn provided by a host bus adapter, will appear in this inventory.
Storage devices provided by the native multipathing plugin (NMP) will always be represented in this inventory since NMP uses a simple policy to create devices out of the paths it claims.
Examples of storage devices that will not appear in this inventory are logical devices that are not formed from directly claiming paths. Specific examples of devices that will not appear in this inventory include a device backed by a ramdisk or formed from a software RAID plugin.
Legacy note: In hosts where HostPlugStoreTopology is not defined or does not exist on the HostStorageDeviceInfo object, only native multipathing exists. That means for these hosts, the ScsiTopology object contains the complete set of LUNs and targets available on the host.
This data object type describes the NVME topology information.
The data objects in this data object type model the NVME storage objects from a topological point of view. The NVME topological view organizes objects by NVME interface, which contains connected controllers, which in turn contain attached namespaces.
Only storage adapters which support the NVME protocol will be represented as NVME interfaces in this data object. In particular, an NVME interface will be created for each NVME over Fabrics adapter in the system.
Note that it is possible for an adapter to be represented by both an NVME interface in the NVME topology and a SCSI interface in the SCSI topology. This can happen when an adapter supporting the NVME protocol is also presented as a SCSI adapter and SCSI to NVME translation is performed.
The HostMultipathInfo data object describes the multipathing policy configuration to determine the storage failover policies for a SCSI logical unit.
The multipathing policy configuration operates on SCSI logical units and the paths to the logical units.
Multipath policy configuration is only possible on storage devices provided by the native multipathing plug-store plugin. Storage devices using the native multipathing storage plugin will have an entry in this data object. Storage devices provided by a different storage plugin will not appear in the inventory represented by this data object.
Legacy note: In hosts where HostMultipathStateInfo is not defined or does not exist on the HostStorageDeviceInfo object, only native multipathing exists. That means for these hosts, the MultipathInfo object contains the complete set of LUNs and paths on the LUNs available on the host.
This data object represents the plug-store topology on a host system.
Through this data object, the storage structure of a system that utilizes the plug-store architecture can be presented.
The object entity-relationship diagram is modeled below:
------------------------------------------------------------
| 0..N 0..N 0..N |
| Plugin -----> Device ------> Path <------ Adapter |
| <------ | ------> |
| 0,1 | 1 |
| | |
| | 0,1 |
| \|/ |
| Target |
------------------------------------------------------------
Description and reasoning behind the relationships:
When a storage device driver is loaded, it claims a PCI device as a host bus adapter. This host bus adapter is represented as an Adapter. The PCI device identifier is a property on the HostBusAdapter in the Adapter.
Once the host bus adapter is on the system, the hardware bus is scanned. If a storage Device is found on the bus, the communication path to the Device from the the host bus adapter is represented by a Path. A Device may have more than one Path. How those Paths are composed to create a Device is determined by a storage Plugin.
When a storage Plugin is loaded, it claims a set of Paths. It groups these Paths into a set of Devices. Devices are hence associated with a set of Paths that might be used to provide a single logical device such as in the case of multipathing. Devices may be also composed of zero Paths meaning that they do not directly use a host bus adapter for communication with underlying storage.
The purpose of this data object is to represent the topology of storage as seen by the base plug-store system. There is some overlap with information in other objects such as ScsiTopology which is only applicable when a particular "native multipathing" plugin is used. This data object provides the complete inventory of Devices and Paths. Hence it provides a superset of Device mappings over data object such as ScsiTopology and Multipa
The use cases that this data object accommodates includes the following non-exhaustive list:
- Enumerate paths on a host bus adapter.
- Enumerate paths on a storage device.
- Conveniently access the devices a host bus adapter is associated with by traversing the path.
- Determine which plugin a device belongs.
- Determine which paths are claimed by a plugin by accumulating the paths of all device of the plugin.
- Determine which plugin a path belongs to by accessing its device and finding that device in the Plugin list.
Indicates if the software iSCSI initiator is enabled on this system