Skip to main content
A newer release of this product is available.

Retrieve LUNs

Contributors

GET /storage/luns

Retrieves LUNs.

Expensive properties

There is an added cost to retrieving values for these properties. They are not included by default in GET results and must be explicitly requested using the fields query parameter. See DOC Requesting specific fields to learn more.

  • auto_delete

  • lun_maps.*

  • movement.*

  • status.mapped

  • lun mapping show

  • lun move show

  • lun show

  • volume file clone show-autodelete

Learn more

Parameters

Name Type In Required Description

status.read_only

boolean

query

False

Filter by status.read_only

status.state

string

query

False

Filter by status.state

status.container_state

string

query

False

Filter by status.container_state

status.mapped

boolean

query

False

Filter by status.mapped

location.volume.name

string

query

False

Filter by location.volume.name

location.volume.uuid

string

query

False

Filter by location.volume.uuid

location.logical_unit

string

query

False

Filter by location.logical_unit

location.qtree.id

integer

query

False

Filter by location.qtree.id

location.qtree.name

string

query

False

Filter by location.qtree.name

qos_policy.name

string

query

False

Filter by qos_policy.name

qos_policy.uuid

string

query

False

Filter by qos_policy.uuid

serial_number

string

query

False

Filter by serial_number

auto_delete

boolean

query

False

Filter by auto_delete

os_type

string

query

False

Filter by os_type

enabled

boolean

query

False

Filter by enabled

movement.max_throughput

string

query

False

Filter by movement.max_throughput

movement.paths.source

string

query

False

Filter by movement.paths.source

movement.paths.destination

string

query

False

Filter by movement.paths.destination

movement.progress.failure.message

string

query

False

Filter by movement.progress.failure.message

movement.progress.failure.target

string

query

False

Filter by movement.progress.failure.target

movement.progress.failure.arguments.message

string

query

False

Filter by movement.progress.failure.arguments.message

movement.progress.failure.arguments.code

string

query

False

Filter by movement.progress.failure.arguments.code

movement.progress.failure.code

string

query

False

Filter by movement.progress.failure.code

movement.progress.percent_complete

integer

query

False

Filter by movement.progress.percent_complete

movement.progress.volume_snapshot_blocked

boolean

query

False

Filter by movement.progress.volume_snapshot_blocked

movement.progress.elapsed

integer

query

False

Filter by movement.progress.elapsed

movement.progress.state

string

query

False

Filter by movement.progress.state

svm.uuid

string

query

False

Filter by svm.uuid

svm.name

string

query

False

Filter by svm.name

space.guarantee.reserved

boolean

query

False

Filter by space.guarantee.reserved

space.guarantee.requested

boolean

query

False

Filter by space.guarantee.requested

space.size

integer

query

False

Filter by space.size

space.used

integer

query

False

Filter by space.used

name

string

query

False

Filter by name

lun_maps.logical_unit_number

integer

query

False

Filter by lun_maps.logical_unit_number

lun_maps.igroup.name

string

query

False

Filter by lun_maps.igroup.name

lun_maps.igroup.uuid

string

query

False

Filter by lun_maps.igroup.uuid

comment

string

query

False

Filter by comment

uuid

string

query

False

Filter by uuid

class

string

query

False

Filter by class

fields

array[string]

query

False

Specify the fields to return.

max_records

integer

query

False

Limit the number of records returned.

return_records

boolean

query

False

The default is true for GET calls. When set to false, only the number of records is returned.

return_timeout

integer

query

False

The number of seconds to allow the call to execute before returning. When iterating over a collection, the default is 15 seconds. ONTAP returns earlier if either max records or the end of the collection is reached.

order_by

array[string]

query

False

Order results by specified fields and optional [asc

Response

Status: 200, Ok
Name Type Description

_links

_links

num_records

integer

Number of records.

records

array[lun]

Example response
{
  "_links": {
    "next": {
      "href": "/api/resourcelink"
    },
    "self": {
      "href": "/api/resourcelink"
    }
  },
  "records": [
    {
      "_links": {
        "self": {
          "href": "/api/resourcelink"
        }
      },
      "class": "string",
      "clone": {
        "source": {
          "name": "/vol/volume1/lun1",
          "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
        }
      },
      "comment": "string",
      "location": {
        "logical_unit": "lun1",
        "qtree": {
          "_links": {
            "self": {
              "href": "/api/resourcelink"
            }
          },
          "id": 1,
          "name": "qt1"
        },
        "volume": {
          "_links": {
            "self": {
              "href": "/api/resourcelink"
            }
          },
          "name": "volume1",
          "uuid": "028baa66-41bd-11e9-81d5-00a0986138f7"
        }
      },
      "lun_maps": [
        {
          "_links": {
            "self": {
              "href": "/api/resourcelink"
            }
          },
          "igroup": {
            "_links": {
              "self": {
                "href": "/api/resourcelink"
              }
            },
            "name": "igroup1",
            "uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
          },
          "logical_unit_number": 0
        }
      ],
      "movement": {
        "max_throughput": "string",
        "paths": {
          "destination": "/vol/vol1/lun1",
          "source": "/vol/vol2/lun2"
        },
        "progress": {
          "elapsed": 0,
          "failure": {
            "arguments": [
              {
                "code": "string",
                "message": "string"
              }
            ],
            "code": "4",
            "message": "entry doesn't exist",
            "target": "uuid"
          },
          "percent_complete": 0,
          "state": "string"
        }
      },
      "name": "/vol/volume1/qtree1/lun1",
      "os_type": "string",
      "qos_policy": {
        "_links": {
          "self": {
            "href": "/api/resourcelink"
          }
        },
        "name": "qos1",
        "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
      },
      "serial_number": "string",
      "space": {
        "size": 1073741824,
        "used": 0
      },
      "status": {
        "container_state": "string",
        "state": "online"
      },
      "svm": {
        "_links": {
          "self": {
            "href": "/api/resourcelink"
          }
        },
        "name": "svm1",
        "uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
      },
      "uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
    }
  ]
}

Error

Status: Default, Error
Name Type Description

error

error

Example error
{
  "error": {
    "arguments": [
      {
        "code": "string",
        "message": "string"
      }
    ],
    "code": "4",
    "message": "entry doesn't exist",
    "target": "uuid"
  }
}

Definitions

See Definitions

href

Name Type Description

href

string

Name Type Description

next

href

self

href

Name Type Description

self

href

source

The source LUN for a LUN clone operation. This can be specified using property clone.source.uuid or clone.source.name. If both properties are supplied, they must refer to the same LUN.

Valid in POST to create a new LUN as a clone of the source.

Valid in PATCH to overwrite an existing LUN's data as a clone of another.

Name Type Description

name

string

The fully qualified path name of the clone source LUN composed of a "/vol" prefix, the volume name, the (optional) qtree name, and base name of the LUN. Valid in POST and PATCH.

uuid

string

The unique identifier of the clone source LUN. Valid in POST and PATCH.

clone

This sub-object is used in POST to create a new LUN as a clone of an existing LUN, or PATCH to overwrite an existing LUN as a clone of another. Setting a property in this sub-object indicates that a LUN clone is desired. Consider the following other properties when cloning a LUN: auto_delete, qos_policy, and space.guarantee.requested.

When used in a PATCH, the patched LUN's data is over-written as a clone of the source and the following properties are preserved from the patched LUN unless otherwise specified as part of the PATCH: class, auto_delete, lun_maps, serial_number, status.state, and uuid.

Persistent reservations for the patched LUN are also preserved.

Name Type Description

source

source

The source LUN for a LUN clone operation. This can be specified using property clone.source.uuid or clone.source.name. If both properties are supplied, they must refer to the same LUN.

Valid in POST to create a new LUN as a clone of the source.

Valid in PATCH to overwrite an existing LUN's data as a clone of another.

qtree

The qtree in which the LUN is optionally located. Valid in POST and PATCH.

If properties name and location.qtree.name and/or location.qtree.uuid are specified in the same request, they must refer to the same qtree.

A PATCH that modifies the qtree of the LUN is considered a rename operation.

Name Type Description

_links

_links

id

integer

The identifier for the qtree, unique within the qtree's volume.

name

string

The name of the qtree.

volume

The volume in which the LUN is located. Valid in POST and PATCH.

If properties name and location.volume.name and/or location.volume.uuid are specified in the same request, they must refer to the same volume.

A PATCH that modifies the volume of the LUN begins an asynchronous LUN movement operation.

Name Type Description

_links

_links

name

string

The name of the volume.

uuid

string

Unique identifier for the volume. This corresponds to the instance-uuid that is exposed in the CLI and ONTAPI. It does not change due to a volume move.

  • example: 028baa66-41bd-11e9-81d5-00a0986138f7

location

The location of the LUN within the ONTAP cluster. Valid in POST and PATCH.

Name Type Description

logical_unit

string

The base name component of the LUN. Valid in POST and PATCH.

If properties name and location.logical_unit are specified in the same request, they must refer to the base name.

A PATCH that modifies the base name of the LUN is considered a rename operation.

qtree

qtree

The qtree in which the LUN is optionally located. Valid in POST and PATCH.

If properties name and location.qtree.name and/or location.qtree.uuid are specified in the same request, they must refer to the same qtree.

A PATCH that modifies the qtree of the LUN is considered a rename operation.

volume

volume

The volume in which the LUN is located. Valid in POST and PATCH.

If properties name and location.volume.name and/or location.volume.uuid are specified in the same request, they must refer to the same volume.

A PATCH that modifies the volume of the LUN begins an asynchronous LUN movement operation.

igroup

The initiator group to which the LUN is mapped.

Name Type Description

_links

_links

name

string

The name of the initiator group.

uuid

string

The unique identifier of the initiator group.

lun_maps

A LUN map with which the LUN is associated.

Name Type Description

_links

_links

igroup

igroup

The initiator group to which the LUN is mapped.

logical_unit_number

integer

The logical unit number assigned to the LUN for initiators in the initiator group.

paths

The fully qualified LUN path names involved in the LUN movement.

Name Type Description

destination

string

The fully qualified path of the LUN movement destination composed of a "/vol" prefix, the volume name, the (optional) qtree name, and base name of the LUN.

source

string

The fully qualified path of the LUN movement source composed of a "/vol" prefix, the volume name, the (optional) qtree name, and base name of the LUN.

error_arguments

Name Type Description

code

string

Argument code

message

string

Message argument

failure

Error information provided if the asynchronous LUN movement operation fails.

Name Type Description

arguments

array[error_arguments]

Message arguments

code

string

Error code

message

string

Error message

target

string

The target parameter that caused the error.

progress

Name Type Description

elapsed

integer

The amount of time, in seconds, that has elapsed since the start of the LUN movement.

failure

failure

Error information provided if the asynchronous LUN movement operation fails.

percent_complete

integer

The percentage complete of the LUN movement.

state

string

The state of the LUN movement.

Valid in PATCH when an LUN movement is active. Set to paused to pause a LUN movement. Set to replicating to resume a paused LUN movement.

volume_snapshot_blocked

boolean

This property reports if volume Snapshot copies are blocked by the LUN movement. This property can be polled to identify when volume Snapshot copies can be resumed after beginning a LUN movement.

movement

This sub-object applies to LUN movement between volumes. A LUN can be moved to a new volume with a PATCH request that changes either the volume portion of property name, location.volume.uuid, or location.volume.name. If the volume is changed using more than one of these properties, the supplied properties used must refer to the same volume.

Moving a LUN between volumes is an asynchronous activity begun by a PATCH request. The data for the LUN is then asynchronously copied from the source volume to the destination volume. The time required to complete the move depends on the size of the LUN and the load on the cluster. The movement sub-object is populated while a LUN movement is in progress and for two (2) minutes following completion of a movement.

While the LUN is being moved, the status of the LUN movement operation can be obtained using a GET for the LUN that requests the movement properties. The LUN movement operation can be further modified using a PATCH on the properties on the movement sub-object.

There is added cost to retrieving property values for movement. They are not populated for either a collection GET or an instance GET unless explicitly requested using the fields query parameter. See DOC Requesting specific fields to learn more.

Name Type Description

max_throughput

string

The maximum data throughput that should be utilized in support of the LUN movement. This property can be used to throttle a transfer and limit its impact on the performance of the source and destination nodes. The specified value will be rounded up to the nearest megabyte.

If this property is not specified in a POST that begins a LUN movement, throttling is not applied to the data transfer.

For more information, see Size properties in the docs section of the ONTAP REST API documentation.

This property is valid only in a POST that begins a LUN movement or a PATCH when a LUN movement is already in process.

paths

paths

The fully qualified LUN path names involved in the LUN movement.

progress

progress

qos_policy

The QoS policy for the LUN. Both traditional and adaptive QoS policies are supported. If both property qos_policy.uuid and qos_policy.name are specified in the same request, they must refer to the same QoS policy. To remove the QoS policy from a LUN, leaving it with no QoS policy, set property qos_policy.name to an empty string ("") in a PATCH request. Valid in POST and PATCH.

Note that a QoS policy can be set on a LUN, or a LUN's volume, but not both.

Name Type Description

_links

_links

name

string

The name of the QoS policy. To remove the QoS policy from a LUN, leaving it with no QoS policy, set this property to an empty string ("") in a PATCH request. Valid in POST and PATCH.

uuid

string

The unique identifier of the QoS policy. Valid in POST and PATCH.

guarantee

Properties that request and report the space guarantee for the LUN.

Name Type Description

requested

boolean

The requested space reservation policy for the LUN. If true, a space reservation is requested for the LUN; if false, the LUN is thin provisioned. Guaranteeing a space reservation request for a LUN requires that the volume in which the LUN resides is also space reserved and that the fractional reserve for the volume is 100%. Valid in POST and PATCH.

reserved

boolean

Reports if the LUN is space guaranteed.

If true, a space guarantee is requested and the containing volume and aggregate support the request. If false, a space guarantee is not requested or a space guarantee is requested and either the containing volume or aggregate do not support the request.

space

The storage space related properties of the LUN.

Name Type Description

guarantee

guarantee

Properties that request and report the space guarantee for the LUN.

size

integer

The total provisioned size of the LUN. The LUN size can be increased but not be made smaller using the REST interface.

For more information, see Size properties in the docs section of the ONTAP REST API documentation.

  • example: 1073741824

used

integer

The amount of space consumed by the main data stream of the LUN.

This value is the total space consumed in the volume by the LUN, including filesystem overhead, but excluding prefix and suffix streams. Due to internal filesystem overhead and the many ways SAN filesystems and applications utilize blocks within a LUN, this value does not necessarily reflect actual consumption/availability from the perspective of the filesystem or application. Without specific knowledge of how the LUN blocks are utilized outside of ONTAP, this property should not be used as an indicator for an out-of-space condition.

For more information, see Size properties in the docs section of the ONTAP REST API documentation.

  • readOnly: 1

status

Status information about the LUN.

Name Type Description

container_state

string

The state of the volume and aggregate that contain the LUN. LUNs are only available when their containers are available.

mapped

boolean

Reports if the LUN is mapped to one or more initiator groups.

There is an added cost to retrieving this property's value. It is not populated for either a collection GET or an instance GET unless it is explicitly requested using the fields query parameter. See DOC Requesting specific fields to learn more.

read_only

boolean

Reports if the LUN allows only read access.

state

string

The state of the LUN. Normal states for a LUN are online and offline. Other states indicate errors.

svm

SVM, applies only to SVM-scoped objects.

Name Type Description

_links

_links

name

string

The name of the SVM.

uuid

string

The unique identifier of the SVM.

lun

A LUN is the logical representation of storage in a storage area network (SAN).

In ONTAP, a LUN is located within a volume. Optionally, it can be located within a qtree in a volume.

A LUN can be created to a specified size using thin or thick provisioning. A LUN can then be renamed, resized, cloned, and moved to a different volume. LUNs support the assignment of a quality of service (QoS) policy for performance management or a QoS policy can be assigned to the volume containing the LUN. See the LUN object model to learn more about each of the properties supported by the LUN REST API.

A LUN must be mapped to an initiator group to grant access to the initiator group's initiators (client hosts). Initiators can then access the LUN and perform I/O over a Fibre Channel (FC) fabric using the Fibre Channel Protocol or a TCP/IP network using iSCSI.

Name Type Description

_links

_links

auto_delete

boolean

This property marks the LUN for auto deletion when the volume containing the LUN runs out of space. This is most commonly set on LUN clones.

When set to true, the LUN becomes eligible for automatic deletion when the volume runs out of space. Auto deletion only occurs when the volume containing the LUN is also configured for auto deletion and free space in the volume decreases below a particular threshold.

This property is optional in POST and PATCH. The default value for a new LUN is false.

There is an added cost to retrieving this property's value. It is not populated for either a collection GET or an instance GET unless it is explicitly requested using the fields query parameter. See DOC Requesting specific fields to learn more.

class

string

The class of LUN. Only regular LUNs can be created using the REST API.

clone

clone

This sub-object is used in POST to create a new LUN as a clone of an existing LUN, or PATCH to overwrite an existing LUN as a clone of another. Setting a property in this sub-object indicates that a LUN clone is desired. Consider the following other properties when cloning a LUN: auto_delete, qos_policy, and space.guarantee.requested.

When used in a PATCH, the patched LUN's data is over-written as a clone of the source and the following properties are preserved from the patched LUN unless otherwise specified as part of the PATCH: class, auto_delete, lun_maps, serial_number, status.state, and uuid.

Persistent reservations for the patched LUN are also preserved.

comment

string

A configurable comment available for use by the administrator. Valid in POST and PATCH.

enabled

boolean

The enabled state of the LUN. LUNs can be disabled to prevent access to the LUN. Certain error conditions also cause the LUN to become disabled. If the LUN is disabled, you can consult the state property to determine if the LUN is administratively disabled (offline) or has become disabled as a result of an error. A LUN in an error condition can be brought online by setting the enabled property to true or brought administratively offline by setting the enabled property to false. Upon creation, a LUN is enabled by default. Valid in PATCH.

location

location

The location of the LUN within the ONTAP cluster. Valid in POST and PATCH.

lun_maps

array[lun_maps]

The LUN maps with which the LUN is associated.

There is an added cost to retrieving property values for lun_maps. They are not populated for either a collection GET or an instance GET unless explicitly requested using the fields query parameter. See DOC Requesting specific fields to learn more.

movement

movement

This sub-object applies to LUN movement between volumes. A LUN can be moved to a new volume with a PATCH request that changes either the volume portion of property name, location.volume.uuid, or location.volume.name. If the volume is changed using more than one of these properties, the supplied properties used must refer to the same volume.

Moving a LUN between volumes is an asynchronous activity begun by a PATCH request. The data for the LUN is then asynchronously copied from the source volume to the destination volume. The time required to complete the move depends on the size of the LUN and the load on the cluster. The movement sub-object is populated while a LUN movement is in progress and for two (2) minutes following completion of a movement.

While the LUN is being moved, the status of the LUN movement operation can be obtained using a GET for the LUN that requests the movement properties. The LUN movement operation can be further modified using a PATCH on the properties on the movement sub-object.

There is added cost to retrieving property values for movement. They are not populated for either a collection GET or an instance GET unless explicitly requested using the fields query parameter. See DOC Requesting specific fields to learn more.

name

string

The fully qualified path name of the LUN composed of a "/vol" prefix, the volume name, the (optional) qtree name, and base name of the LUN. Valid in POST and PATCH.

A PATCH that modifies the qtree and/or base name portion of the LUN path is considered a rename operation.

A PATCH that modifies the volume portion of the LUN path begins an asynchronous LUN movement operation.

os_type

string

The operating system type of the LUN.

Required in POST when creating a LUN that is not a clone of another. Disallowed in POST when creating a LUN clone.

qos_policy

qos_policy

The QoS policy for the LUN. Both traditional and adaptive QoS policies are supported. If both property qos_policy.uuid and qos_policy.name are specified in the same request, they must refer to the same QoS policy. To remove the QoS policy from a LUN, leaving it with no QoS policy, set property qos_policy.name to an empty string ("") in a PATCH request. Valid in POST and PATCH.

Note that a QoS policy can be set on a LUN, or a LUN's volume, but not both.

serial_number

string

The LUN serial number. The serial number is generated by ONTAP when the LUN is created.

  • maxLength: 12

  • minLength: 12

  • readOnly: 1

space

space

The storage space related properties of the LUN.

status

status

Status information about the LUN.

svm

svm

SVM, applies only to SVM-scoped objects.

uuid

string

The unique identifier of the LUN. The UUID is generated by ONTAP when the LUN is created.

  • example: 1cd8a442-86d1-11e0-ae1c-123478563412

  • readOnly: 1

error

Name Type Description

arguments

array[error_arguments]

Message arguments

code

string

Error code

message

string

Error message

target

string

The target parameter that caused the error.