Create a LUN
POST /storage/luns
Introduced In: 9.6
Creates a LUN.
Required properties
-
svm.uuid
orsvm.name
- Existing SVM in which to create the LUN. -
name
,location.volume.name
orlocation.volume.uuid
- Existing volume in which to create the LUN. -
name
orlocation.logical_unit
- Base name of the LUN. -
os_type
- Operating system from which the LUN will be accessed. Required when creating a non-clone LUN and disallowed when creating a clone of an existing LUN. A clone'sos_type
is taken from the source LUN. -
space.size
- Size of the LUN. Required when creating a non-clone LUN and disallowed when creating a clone of an existing LUN. A clone's size is taken from the source LUN.
Recommended optional properties
-
qos_policy.name
orqos_policy.uuid
- Existing traditional or adaptive QoS policy to be applied to the LUN. All LUNs should be managed by a QoS policy at the volume or LUN level.
Default property values
If not specified in POST, the follow default property values are assigned.
-
auto_delete
- false
Related ONTAP commands
-
lun create
-
lun convert-from-namespace
-
lun copy start
-
volume file clone autodelete
-
volume file clone create
POST is asynchronous when creating a new LUN. It is synchronous when converting a namespace to a LUN via the convert
property.
Learn more
Parameters
Name | Type | In | Required | Description |
---|---|---|---|---|
return_timeout |
integer |
query |
False |
The number of seconds to allow the call to execute before returning. When doing a POST, PATCH, or DELETE operation on a single record, the default is 0 seconds. This means that if an asynchronous operation is started, the server immediately returns HTTP code 202 (Accepted) along with a link to the job. If a non-zero value is specified for POST, PATCH, or DELETE operations, ONTAP waits that length of time to see if the job completes so it can return something other than 202.
|
return_records |
boolean |
query |
False |
The default is false. If set to true, the records are returned.
|
Request Body
Name | Type | Description |
---|---|---|
_links |
||
attributes |
array[attributes] |
An array of name/value pairs optionally stored with the LUN. Attributes are available to callers to persist small amounts of application-specific metadata. They are in no way interpreted by ONTAP. Attribute names and values must be at least one byte and no more than 4091 bytes in length. The sum of the name and value lengths must be no more than 4092 bytes. Valid in POST except when creating a LUN clone. A cloned can already have attributes from its source. You can add, modify, and delete the attributes of a LUN clone in separate requests after creation of the LUN. Attributes can be added/modified/removed for an existing LUN using the /api/storage/luns/{lun.uuid}/attributes endpoint. For further information, see DOC /storage/luns/{lun.uuid}/attributes . There is an added computational cost to retrieving property values for
|
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 computational cost to retrieving this property's value. It is not populated for a GET request unless it is explicitly requested using the |
class |
string |
The class of LUN. Optional in POST. |
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: 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: 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. |
consistency_group |
The LUN's consistency group. This property is populated for LUNs that are members of a consistency group. If the LUN is a member of a child consistency group, the parent consistency group is reported. A LUN's consistency group is the consistency group of its containing volume. |
|
convert |
This sub-object is used in POST to convert a valid in-place NVMe namespace to a LUN. Setting a property in this sub-object indicates that a conversion from the specified NVMe namespace to LUN is desired. |
|
copy |
This sub-object applies to LUN copy operations. A LUN can be copied with a POST request that supplies Copying a LUN is an asynchronous activity begun by a POST request that specifies the source of the copy in the While LUNs are being copied, the status of the LUN copy operations can be obtained using a GET of the source or destination LUN that requests the There is an added computational cost to retrieving property values for |
|
create_time |
string |
The time the LUN was created. |
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, check the |
location |
The location of the LUN within the ONTAP cluster. LUNs support rename and move between volumes. Valid in POST and PATCH.
|
|
lun_maps |
array[lun_maps] |
The LUN maps with which the LUN is associated. There is an added computational cost to retrieving property values for |
metric |
Performance numbers, such as IOPS latency and throughput. |
|
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 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 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 There is an added computational cost to retrieving property values for |
|
name |
string |
The name of the LUN. Valid in POST and PATCH. A LUN is located within a volume. Optionally, it can be located within a qtree in a volume. LUN names are paths of the form "/vol/<volume>[/<qtree>]/<lun>" where the qtree name is optional. 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. |
provisioning_options |
Options that are applied to the operation. |
|
qos_policy |
The QoS policy for the LUN. Both traditional and adaptive QoS policies are supported. If both property |
|
serial_number |
string |
The LUN serial number. The serial number is generated by ONTAP when the LUN is created.
|
space |
The storage space related properties of the LUN. |
|
statistics |
These are raw performance numbers, such as IOPS latency and throughput. These numbers are aggregated across all nodes in the cluster and increase with the uptime of the cluster. |
|
status |
Status information about the LUN. |
|
svm |
The SVM in which the LUN is located. |
|
uuid |
string |
The unique identifier of the LUN. The UUID is generated by ONTAP when the LUN is created.
|
vvol |
A VMware virtual volume (vVol) binding is an association between a LUN of class See link:post-protocols-san-vvol-bindings(#-san-vvol-binding-create)tolearnmoreaboutcreatingvvolbindingsanddelete-protocols-san-vvol-bindings.htmlPOST /protocols/san/vvol-bindings to learn more about creating vVol bindings and [DELETE /protocols/san/vvol-bindings] to learn more about deleting vVol bindings. There is an added computational cost to retrieving property values for |
Example request
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"attributes": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "name1",
"value": "value1"
}
],
"class": "string",
"clone": {
"source": {
"name": "/vol/volume1/lun1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
},
"comment": "string",
"consistency_group": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "cg1",
"uuid": "4abc2317-4332-9d37-93a0-20bd29c22df0"
},
"convert": {
"namespace": {
"name": "/vol/volume1/namespace1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
},
"copy": {
"destinations": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"max_throughput": 0,
"name": "/vol/vol1/lun1",
"peer": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "peer1",
"uuid": "4204cf77-4c82-9bdb-5644-b5a841c097a9"
},
"progress": {
"elapsed": 0,
"failure": {
"arguments": [
{
"code": "string",
"message": "string"
}
],
"code": "4",
"message": "entry doesn't exist"
},
"percent_complete": 0,
"state": "string"
},
"uuid": "1bc327d5-4654-5284-a116-f182282240b4"
}
],
"source": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "/vol/vol2/lun1",
"peer": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "peer1",
"uuid": "4204cf77-4c82-9bdb-5644-b5a841c097a9"
},
"progress": {
"elapsed": 0,
"failure": {
"arguments": [
{
"code": "string",
"message": "string"
}
],
"code": "4",
"message": "entry doesn't exist"
},
"percent_complete": 0,
"state": "string"
},
"uuid": "03c05019-40d9-3945-c767-dca4c3be5e90"
}
},
"create_time": "2018-06-04 15:00:00 -0400",
"location": {
"logical_unit": "lun1",
"node": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "node1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"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"
}
},
"comment": "string",
"igroups": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "igroup1",
"uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
}
],
"initiators": [
{
"comment": "my comment",
"name": "iqn.1998-01.com.corp.iscsi:name1"
}
],
"name": "igroup1",
"os_type": "string",
"protocol": "string",
"uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
}
}
],
"metric": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"duration": "PT15S",
"iops": {
"read": 200,
"total": 1000,
"write": 100
},
"latency": {
"read": 200,
"total": 1000,
"write": 100
},
"status": "ok",
"throughput": {
"read": 200,
"total": 1000,
"write": 100
},
"timestamp": "2017-01-25 06:20:13 -0500"
},
"movement": {
"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"
},
"percent_complete": 0,
"state": "string"
}
},
"name": "/vol/volume1/qtree1/lun1",
"os_type": "string",
"provisioning_options": {
"qos_policy": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "performance",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"snapshot_policy": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "default",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"storage_service": {
"name": "string"
},
"tiering": {
"control": "string",
"object_stores": [
{
"name": "string"
}
],
"policy": "string"
}
},
"qos_policy": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "qos1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"serial_number": "string",
"space": {
"efficiency_ratio": 2.5,
"physical_used": 1073741824,
"physical_used_by_snapshots": 1073741824,
"size": 1073741824,
"used": 0
},
"statistics": {
"iops_raw": {
"read": 200,
"total": 1000,
"write": 100
},
"latency_raw": {
"read": 200,
"total": 1000,
"write": 100
},
"status": "ok",
"throughput_raw": {
"read": 200,
"total": 1000,
"write": 100
},
"timestamp": "2017-01-25 06:20:13 -0500"
},
"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",
"vvol": {
"bindings": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"id": 1,
"partner": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "/vol/vol1/lun1",
"uuid": "4ea7a442-86d1-11e0-ae1c-123478563412"
},
"secondary_id": "0000D20000010000h"
}
]
}
}
Response
Status: 202, Accepted
Name | Type | Description |
---|---|---|
job |
Example response
{
"job": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"uuid": "string"
}
}
Headers
Name | Description | Type |
---|---|---|
Location |
Useful for tracking the resource location |
string |
Response
Status: 201, Created
Error
Status: Default
ONTAP Error Response Codes
Error Code | Description |
---|---|
917927 |
The specified volume was not found. |
918236 |
The specified |
1260121 |
Cloning a LUN to a volume different than the source volume is not supported. |
1260136 |
The specified destination for a clone operation already exists as a LUN, namespace, or file. |
2621462 |
The specified SVM does not exist. |
2621706 |
The specified |
2621707 |
No SVM was specified. Either |
5242927 |
The specified qtree was not found. |
5242950 |
The specified |
5374121 |
A LUN name can only contain characters A-Z, a-z, 0-9, "-", ".", "_", "{" and "}". |
5374123 |
A negative size was provided for the LUN. |
5374124 |
The specified size is too small for the LUN. |
5374125 |
The specified size is too large for the LUN. |
5374127 |
The specified LUN name is invalid. |
5374129 |
LUNs cannot be created on a load sharing mirror volume. |
5374130 |
An invalid size value was provided. |
5374237 |
LUNs cannot be created on an SVM root volume. |
5374238 |
LUNs cannot be created in snapshots. |
5374241 |
A size value with invalid units was provided. |
5374242 |
A LUN or NVMe namespace already exists at the specified path. |
5374352 |
An invalid name was provided for the LUN. |
5374614 |
The specified storage availability zone does not exist. |
5374707 |
Creating a LUN in the specific volume is not allowed because the volume is reserved for an application. |
5374858 |
The volume specified by |
5374859 |
No volume was specified for the LUN. |
5374860 |
The qtree specified by |
5374861 |
The LUN base name specified by |
5374862 |
No LUN path base name was provided for the LUN. |
5374863 |
An error occurred after successfully creating the LUN. Some properties were not set. |
5374874 |
The specified |
5374875 |
The specified |
5374876 |
The specified |
5374883 |
The property cannot be specified when creating a LUN clone. The |
5374884 |
A property that is required when creating a new LUN that is not a LUN clone or LUN copy was not supplied. The |
5374886 |
An error occurred after successfully creating the LUN preventing the retrieval of its properties. |
5374899 |
The |
5374928 |
An incomplete attribute name/value pair was supplied. |
5374929 |
The combined sizes of an attribute name and value are too large. |
5374932 |
A name for an attribute was duplicated. |
5374942 |
The property cannot be specified at the same time when creating a LUN as a clone. The |
5374943 |
The property cannot be specified at the same time when creating a LUN as a copy. The |
5374944 |
The property cannot be specified when converting an NVMe namespace into a LUN. The |
5375054 |
The source LUN is required when requesting an SVM copy operation. |
5375059 |
An unsuitable QoS policy was specified. |
5375061 |
The specified |
5376461 |
The specified LUN name is invalid. |
5376462 |
The specified LUN name is too long. |
5376463 |
The snapshot portion of the specified LUN name is too long. |
5376469 |
The property cannot be set during the LUN create operation on this platform. |
5376515 |
The specified storage availability zone is not configured for provisioning on the specified SVM. |
5440509 |
No suitable storage can be found for the specified requirements. |
5440688 |
A LUN cannot be created with the same name as an existing LUN. |
5702832 |
A LUN or namespace with the same name is already being created. LUN and namespace names must be unique within an SVM. |
7018877 |
Maximum combined total (50) of file and LUN copy and move operations reached. When one or more of the operations has completed, try the command again. |
13565952 |
The LUN clone request failed. |
26345672 |
An SVM peer relationship was not found with the provided 'copy.source.peer.uuid'. |
26345673 |
An SVM peer relationship between the SVM provided in 'copy.source.peer.name' and the SVM provided in either 'svm.name' or 'svm.uuid' was not found. |
26345674 |
The SVM peer relationship provided in 'copy.source.peer.uuid' does not match a peer relationship between the local SVM provided in either 'svm.uuid' or 'svm.name' and the peer SVM provided in 'copy.source.peer.name'. |
26345675 |
The destination SVM provided via 'svm.name' or 'svm.uuid' does not match the local SVM for the provided SVM peer relationship UUID in 'copy.source.peer.uuid'. |
72089755 |
NVMe namespace with a block size of 4096 bytes cannot be converted to a LUN. |
72089756 |
Namespace is currently mapped to subsystem. |
72089757 |
NVMe namespace in a snapshot cannot be converted to a LUN. |
Also see the table of common errors in the Response body overview section of this documentation.
Name | Type | Description |
---|---|---|
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 |
_links
Name | Type | Description |
---|---|---|
self |
attributes
A name/value pair optionally stored with the LUN. Attributes are available to callers to persist small amounts of application-specific metadata. They are in no way interpreted by ONTAP.
Attribute names and values must be at least one byte and no more than 4091 bytes in length. The sum of the name and value lengths must be no more than 4092 bytes.
Optional in POST.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The attribute name. |
value |
string |
The attribute value. |
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 name of the clone source LUN. A LUN is located within a volume. Optionally, it can be located within a qtree in a volume. LUN names are paths of the form "/vol/<volume>[/<qtree>]/<namespace>" where the qtree name is optional. 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
, space.guarantee.requested
and space.scsi_thin_provisioning_support_enabled
.
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 |
The source LUN for a LUN clone operation. This can be specified using property 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. |
consistency_group
The LUN's consistency group. This property is populated for LUNs that are members of a consistency group. If the LUN is a member of a child consistency group, the parent consistency group is reported. A LUN's consistency group is the consistency group of its containing volume.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the consistency group. |
uuid |
string |
The unique identifier of the consistency group. |
namespace
The source namespace for convert operation. This can be specified using property convert.namespace.uuid
or convert.namespace.name
. If both properties are supplied, they must refer to the same NVMe namespace.
Valid in POST. A convert request from NVMe namespace to LUN cannot be combined with setting any other LUN properties. All other properties of the converted LUN come from the source NVMe namespace.
Name | Type | Description |
---|---|---|
name |
string |
The name of the source NVMe namespace. Valid in POST. An NVMe namespace is located within a volume. Optionally, it can be located within a qtree in a volume. NVMe namespace names are paths of the form "/vol/<volume>[/<qtree>]/<NVMe namespace>" where the qtree name is optional. |
uuid |
string |
The unique identifier of the source NVMe namespace. Valid in POST. |
convert
This sub-object is used in POST to convert a valid in-place NVMe namespace to a LUN. Setting a property in this sub-object indicates that a conversion from the specified NVMe namespace to LUN is desired.
Name | Type | Description |
---|---|---|
namespace |
The source namespace for convert operation. This can be specified using property Valid in POST. A convert request from NVMe namespace to LUN cannot be combined with setting any other LUN properties. All other properties of the converted LUN come from the source NVMe namespace. |
peer
The SVM peer relationship object for an inter-SVM LUN copy operation. The peer SVM in the relationship is the source SVM and the local SVM is the destination SVM.
This is only populated by GET when the LUN copy is inter-SVM.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The local name of the peer SVM. This name is unique among all local and peer SVMs. |
uuid |
string |
The unique identifier of the SVM peer relationship. This is the UUID of the relationship, not the UUID of the peer SVM itself. |
error_arguments
Name | Type | Description |
---|---|---|
code |
string |
Argument code |
message |
string |
Message argument |
error
Error information provided if the asynchronous LUN copy operation fails.
Name | Type | Description |
---|---|---|
arguments |
array[error_arguments] |
Message arguments |
code |
string |
Error code |
message |
string |
Error message |
progress
Properties related to the progress of an active or recently completed LUN copy.
Name | Type | Description |
---|---|---|
elapsed |
integer |
The amount of time that has elapsed since the start of the LUN copy, in seconds. |
failure |
Error information provided if the asynchronous LUN copy operation fails. |
|
percent_complete |
integer |
The percentage completed of the LUN copy. |
state |
string |
The state of the LUN copy. |
volume_snapshot_blocked |
boolean |
This property reports if volume snapshots are blocked by the LUN copy. This property can be polled to identify when volume snapshots can be resumed after beginning a LUN copy. |
destinations
A LUN copy operation in which the containing LUN is the source of the copy.
Name | Type | Description |
---|---|---|
_links |
||
max_throughput |
integer |
The maximum data throughput, in bytes per second, that should be utilized in support of the LUN copy. See property |
name |
string |
The fully qualified path of the LUN copy destination composed of a "/vol" prefix, the volume name, the optional qtree name, and base name of the LUN. |
peer |
The SVM peer relationship object for an inter-SVM LUN copy operation. The peer SVM in the relationship is the source SVM and the local SVM is the destination SVM. This is only populated by GET when the LUN copy is inter-SVM. |
|
progress |
Properties related to the progress of an active or recently completed LUN copy. |
|
uuid |
string |
The unique identifier of the LUN copy destination. |
peer
The SVM peer relationship object for an inter-SVM LUN copy operation. The peer SVM in the relationship is the source SVM and the local SVM is the destination SVM.
Set this in POST to specify the source SVM for an inter-SVM LUN copy. Only populated by GET when the LUN copy is inter-SVM.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The local name of the peer SVM. This name is unique among all local and peer SVMs. |
uuid |
string |
The unique identifier of the SVM peer relationship. This is the UUID of the relationship, not the UUID of the peer SVM itself. |
progress
Properties related to the progress of an active or recently completed LUN copy.
Name | Type | Description |
---|---|---|
elapsed |
integer |
The amount of time that has elapsed since the start of the LUN copy, in seconds. |
failure |
Error information provided if the asynchronous LUN copy operation fails. |
|
percent_complete |
integer |
The percentage completed of the LUN copy. |
state |
string |
The state of the LUN copy. Valid in PATCH when an LUN copy is active. Set to paused to pause a LUN copy. Set to replicating to resume a paused LUN copy. |
volume_snapshot_blocked |
boolean |
This property reports if volume snapshots are blocked by the LUN copy. This property can be polled to identify when volume snapshots can be resumed after beginning a LUN copy. |
source
The source LUN of a LUN copy operation in which the containing LUN is the destination of the copy.
Valid in POST except when creating a LUN clone. A LUN copy request cannot be combined with setting any other LUN properties except the destination location. All other properties of the destination LUN come from the source LUN.
Name | Type | Description |
---|---|---|
_links |
||
max_throughput |
integer |
The maximum data throughput, in bytes per second, that should be utilized in support of the LUN copy. 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 copy, throttling is not applied to the data transfer. For more information, see Size properties in the docs section of the ONTAP REST API documentation. Valid only in a POST that begins a LUN copy or a PATCH when a LUN copy is already in process.
|
name |
string |
The fully qualified path of the LUN copy source composed of a "/vol" prefix, the volume name, the optional qtree name, and base name of the LUN. Set this property in POST to specify the source for a LUN copy operation. |
peer |
The SVM peer relationship object for an inter-SVM LUN copy operation. The peer SVM in the relationship is the source SVM and the local SVM is the destination SVM. Set this in POST to specify the source SVM for an inter-SVM LUN copy. Only populated by GET when the LUN copy is inter-SVM. |
|
progress |
Properties related to the progress of an active or recently completed LUN copy. |
|
uuid |
string |
The unique identifier of the LUN copy source. Set this property in POST to specify the source for a LUN copy operation. |
copy
This sub-object applies to LUN copy operations. A LUN can be copied with a POST request that supplies copy.source
properties.
Copying a LUN is an asynchronous activity begun by a POST request that specifies the source of the copy in the copy.source
properties. The data for the LUN is then asynchronously copied from the source to the destination. The time required to complete the copy depends on the size of the LUN and the load on the cluster. The copy
sub-object is populated while a LUN copy is in progress and for two (2) minutes following completion of a copy.
While LUNs are being copied, the status of the LUN copy operations can be obtained using a GET of the source or destination LUN that requests the copy
properties. If the LUN is the source LUN for one or more copy operations, the copy.destinations
array is populated in GET. If the containing LUN is the destination LUN for a copy operation, the copy.source
sub-object is populated in GET. The LUN copy operation can be further modified using a PATCH on the properties on the copy.source
sub-object of the copy destination LUN.
There is an added computational cost to retrieving property values for copy
. They are not populated for a GET request unless explicitly requested using the fields
query parameter. See Requesting specific fields to learn more.
Name | Type | Description |
---|---|---|
destinations |
array[destinations] |
An array of destination LUNs of LUN copy operations in which the containing LUN is the source of the copy. |
source |
The source LUN of a LUN copy operation in which the containing LUN is the destination of the copy. Valid in POST except when creating a LUN clone. A LUN copy request cannot be combined with setting any other LUN properties except the destination location. All other properties of the destination LUN come from the source LUN. |
node
The cluster node that hosts the LUN.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
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.id
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 |
||
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 |
||
name |
string |
The name of the volume. This field cannot be specified in a PATCH method. |
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.
|
location
The location of the LUN within the ONTAP cluster. LUNs support rename and move between volumes. 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 A PATCH that modifies the base name of the LUN is considered a rename operation. |
node |
The cluster node that hosts the LUN. |
|
qtree |
The qtree in which the LUN is optionally located. Valid in POST and PATCH. If properties A PATCH that modifies the qtree of the LUN is considered a rename operation. |
|
volume |
The volume in which the LUN is located. Valid in POST and PATCH. If properties A PATCH that modifies the volume of the LUN begins an asynchronous LUN movement operation. |
self_link
Name | Type | Description |
---|---|---|
self |
igroups
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the initiator group. |
uuid |
string |
The unique identifier of the initiator group. |
initiators
The initiators that are members of the initiator group.
Name | Type | Description |
---|---|---|
comment |
string |
A comment available for use by the administrator. |
name |
string |
Name of initiator that is a member of the initiator group. |
igroup
The initiator group to which the LUN is mapped.
Name | Type | Description |
---|---|---|
_links |
||
comment |
string |
A comment available for use by the administrator. Valid in POST and PATCH. |
igroups |
array[igroups] |
The existing initiator groups that are members of the group. Optional in POST. This property is mutually exclusive with the initiators property during POST. This array contains only the direct children of the initiator group. If the member initiator groups have further nested initiator groups, those are reported in the Zero or more nested initiator groups can be supplied when the initiator group is created. The initiator group will act as if it contains the aggregation of all initiators in any nested initiator groups. After creation, nested initiator groups can be added or removed from the initiator group using the |
initiators |
array[initiators] |
The initiators that are members of the group. |
name |
string |
The name of the initiator group. |
os_type |
string |
The host operating system of the initiator group. All initiators in the group should be hosts of the same operating system. |
protocol |
string |
The protocols supported by the initiator group. This restricts the type of initiators that can be added to the initiator group. Optional in POST; if not supplied, this defaults to mixed. The protocol of an initiator group cannot be changed after creation of the group. |
uuid |
string |
The unique identifier of the initiator group. |
lun_maps
A LUN map is an association between a LUN and an initiator group.
When a LUN is mapped to an initiator group, the initiator group's initiators are granted access to the LUN. The relationship between a LUN and an initiator group is many LUNs to many initiator groups.
Name | Type | Description |
---|---|---|
_links |
||
igroup |
The initiator group to which the LUN is mapped. |
|
logical_unit_number |
integer |
The logical unit number assigned to the LUN when mapped to the specified initiator group. The number is used to identify the LUN to initiators in the initiator group when communicating through the Fibre Channel Protocol or iSCSI. Optional in POST; if no value is provided, ONTAP assigns the lowest available value. This property is not supported when the provisioning_options.count property is 2 or more.
|
iops
The rate of I/O operations observed at the storage object.
Name | Type | Description |
---|---|---|
other |
integer |
Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
read |
integer |
Performance metric for read I/O operations. |
total |
integer |
Performance metric aggregated over all types of I/O operations. |
write |
integer |
Performance metric for write I/O operations. |
latency
The round trip latency in microseconds observed at the storage object.
Name | Type | Description |
---|---|---|
other |
integer |
Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
read |
integer |
Performance metric for read I/O operations. |
total |
integer |
Performance metric aggregated over all types of I/O operations. |
write |
integer |
Performance metric for write I/O operations. |
throughput
The rate of throughput bytes per second observed at the storage object.
Name | Type | Description |
---|---|---|
other |
integer |
Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
read |
integer |
Performance metric for read I/O operations. |
total |
integer |
Performance metric aggregated over all types of I/O operations. |
write |
integer |
Performance metric for write I/O operations. |
metric
Performance numbers, such as IOPS latency and throughput.
Name | Type | Description |
---|---|---|
_links |
||
duration |
string |
The duration over which this sample is calculated. The time durations are represented in the ISO-8601 standard format. Samples can be calculated over the following durations: |
iops |
The rate of I/O operations observed at the storage object. |
|
latency |
The round trip latency in microseconds observed at the storage object. |
|
status |
string |
Errors associated with the sample. For example, if the aggregation of data over multiple nodes fails, then any partial errors might return "ok" on success or "error" on an internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". "Inconsistent_ delta_time" is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. "Negative_delta" is returned when an expected monotonically increasing value has decreased in value. "Inconsistent_old_data" is returned when one or more nodes do not have the latest data. |
throughput |
The rate of throughput bytes per second observed at the storage object. |
|
timestamp |
string |
The timestamp of the performance data. |
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
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 |
progress
Properties related to the progress of an active or recently completed LUN movement.
Name | Type | Description |
---|---|---|
elapsed |
integer |
The amount of time that has elapsed since the start of the LUN movement, in seconds. |
failure |
Error information provided if the asynchronous LUN movement operation fails. |
|
percent_complete |
integer |
The percentage completed 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 snapshots are blocked by the LUN movement. This property can be polled to identify when volume snapshots 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 an added computational cost to retrieving property values for movement
. They are not populated for a GET request unless explicitly requested using the fields
query parameter. See Requesting specific fields to learn more.
Name | Type | Description |
---|---|---|
max_throughput |
integer |
The maximum data throughput, in bytes per second, 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 |
The fully qualified LUN path names involved in the LUN movement. |
|
progress |
Properties related to the progress of an active or recently completed LUN movement. |
qos_policy
The QoS policy for the volume provisioned to host the LUN. This property is only supported when the request provisions a new volume. This property is mutually exclusive with the LUN granular qos_policy
. If no qos_policy
is provided at LUN or volume granularity, a volume granular policy is set based on the storage_service.name
, which defaults to the most performant service available.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The QoS policy group name. This is mutually exclusive with UUID and other QoS attributes during POST and PATCH. |
uuid |
string |
The QoS policy group UUID. This is mutually exclusive with name and other QoS attributes during POST and PATCH. |
snapshot_policy_reference
This is a reference to the snapshot policy.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
storage_service
Determines the placement of the LUN based on the value specified. This property is only supported for regular and vvol LUNs. Valid in POST.
Name | Type | Description |
---|---|---|
name |
string |
Storage service name. If not specified, the default value is the most performant for the platform. |
object_stores
Name | Type | Description |
---|---|---|
name |
string |
The name of the object store to use. Used for placement. |
tiering
The tiering placement and policy definitions for the volume provisioned to host the LUN. This property is only supported when the request provisions a new volume.
Name | Type | Description |
---|---|---|
control |
string |
Storage tiering placement rules for the object. |
object_stores |
array[object_stores] |
Object stores to use. Used for placement. |
policy |
string |
Policy that determines whether the user data blocks of a volume in a FabricPool will be tiered to the cloud store when they become cold. FabricPool combines flash (performance tier) with a cloud store into a single aggregate. Temperature of a volume block increases if it is accessed frequently and decreases when it is not. Valid in POST or PATCH. all ‐ Allows tiering of both snapshots and active file system user data to the cloud store as soon as possible by ignoring the temperature on the volume blocks. auto ‐ Allows tiering of both snapshot and active file system user data to the cloud store none ‐ Volume blocks are not be tiered to the cloud store. snapshot_only ‐ Allows tiering of only the volume snapshots not associated with the active file system. The default tiering policy is "snapshot-only" for a FlexVol volume and "none" for a FlexGroup volume. The default minimum cooling period for the "snapshot-only" tiering policy is 2 days and for the "auto" tiering policy it is 31 days. |
provisioning_options
Options that are applied to the operation.
Name | Type | Description |
---|---|---|
auto |
boolean |
If the volume specified in the request does not exist, automatically provision one of appropriate size. If the volume does exist, resize it to accommodate the new LUN. This property is only supported on Unified ONTAP. The following behavior is different from a traditional POST request:
|
count |
integer |
The number of LUNs to provision with these properties. Only POST requests based on |
qos_policy |
The QoS policy for the volume provisioned to host the LUN. This property is only supported when the request provisions a new volume. This property is mutually exclusive with the LUN granular |
|
snapshot_policy |
This is a reference to the snapshot policy. |
|
storage_service |
Determines the placement of the LUN based on the value specified. This property is only supported for regular and vvol LUNs. Valid in POST. |
|
tiering |
The tiering placement and policy definitions for the volume provisioned to host the LUN. This property is only supported when the request provisions a new volume. |
|
use_mirrored_aggregates |
boolean |
Specifies whether mirrored aggregates are selected when provisioning the volume to host the LUN. Only mirrored aggregates are used if this parameter is set to true and only unmirrored aggregates are used if this parameter is set to false. The default value is true for a MetroCluster configuration and is false for a non-MetroCluster configuration. |
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 the property qos_policy.name
to an empty string ("") in a PATCH request. Valid in POST and PATCH.
Name | Type | Description |
---|---|---|
_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. This property is caller settable as described above. |
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 |
---|---|---|
efficiency_ratio |
number |
The storage efficiency ratio of the LUN without snapshots. (Logical Used / Used) This property is not available on the LUN object in the REST API and is not reported for GET requests. See the containing volume object for this information. |
guarantee |
Properties that request and report the space guarantee for the LUN. |
|
physical_used |
integer |
The number of bytes consumed on the disk by the LUN, excluding snapshots. This property is not available on the LUN object in the REST API and is not reported for GET requests. See the containing volume object for this information. |
physical_used_by_snapshots |
integer |
The number of bytes consumed on the disk by the LUN's snapshots. This property is not available on the LUN object in the REST API and is not reported for GET requests. See the containing volume object for this information. |
scsi_thin_provisioning_support_enabled |
boolean |
To leverage the benefits of SCSI thin provisioning, it must be supported by your host. SCSI thin provisioning uses the Logical Block Provisioning feature as defined in the SCSI SBC-3 standard. Only hosts that support this standard can use SCSI thin provisioning in ONTAP. When you disable SCSI thin provisioning support in ONTAP, you turn off the following SCSI thin provisioning features:
The value of this property is not propagated to the destination when a LUN is cloned as a new LUN or copied; it is reset to false. The value of this property is maintained from the destination LUN when a LUN is overwritten as a clone. Valid in POST and PATCH.
|
size |
integer |
The total provisioned size of the LUN. The LUN size can be increased but not decreased using the REST interface. The maximum and minimum sizes listed here are the absolute maximum and absolute minimum sizes, in bytes. The actual minimum and maximum sizes vary depending on the ONTAP version, ONTAP platform and the available space in the containing volume and aggregate. For more information, see Size properties in the docs section of the ONTAP REST API documentation.
|
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.
|
iops_raw
The number of I/O operations observed at the storage object. This can be used along with delta time to calculate the rate of I/O operations per unit of time.
Name | Type | Description |
---|---|---|
other |
integer |
Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
read |
integer |
Performance metric for read I/O operations. |
total |
integer |
Performance metric aggregated over all types of I/O operations. |
write |
integer |
Performance metric for write I/O operations. |
latency_raw
The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation.
Name | Type | Description |
---|---|---|
other |
integer |
Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
read |
integer |
Performance metric for read I/O operations. |
total |
integer |
Performance metric aggregated over all types of I/O operations. |
write |
integer |
Performance metric for write I/O operations. |
throughput_raw
Throughput bytes observed at the storage object. This can be used along with delta time to calculate the rate of throughput bytes per unit of time.
Name | Type | Description |
---|---|---|
other |
integer |
Performance metric for other I/O operations. Other I/O operations can be metadata operations, such as directory lookups and so on. |
read |
integer |
Performance metric for read I/O operations. |
total |
integer |
Performance metric aggregated over all types of I/O operations. |
write |
integer |
Performance metric for write I/O operations. |
statistics
These are raw performance numbers, such as IOPS latency and throughput. These numbers are aggregated across all nodes in the cluster and increase with the uptime of the cluster.
Name | Type | Description |
---|---|---|
iops_raw |
The number of I/O operations observed at the storage object. This can be used along with delta time to calculate the rate of I/O operations per unit of time. |
|
latency_raw |
The raw latency in microseconds observed at the storage object. This can be divided by the raw IOPS value to calculate the average latency per I/O operation. |
|
status |
string |
Errors associated with the sample. For example, if the aggregation of data over multiple nodes fails, then any partial errors might return "ok" on success or "error" on an internal uncategorized failure. Whenever a sample collection is missed but done at a later time, it is back filled to the previous 15 second timestamp and tagged with "backfilled_data". "Inconsistent_ delta_time" is encountered when the time between two collections is not the same for all nodes. Therefore, the aggregated value might be over or under inflated. "Negative_delta" is returned when an expected monotonically increasing value has decreased in value. "Inconsistent_old_data" is returned when one or more nodes do not have the latest data. |
throughput_raw |
Throughput bytes observed at the storage object. This can be used along with delta time to calculate the rate of throughput bytes per unit of time. |
|
timestamp |
string |
The timestamp of the performance data. |
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 computational cost to retrieving this property's value. It is not populated for a GET request unless it is explicitly requested using the |
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
The SVM in which the LUN is located.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the SVM. This field cannot be specified in a PATCH method. |
uuid |
string |
The unique identifier of the SVM. This field cannot be specified in a PATCH method. |
partner
The LUN partner that this LUN is bound to. If this LUN is a vvol
class LUN, the partner is a protocol_endpoint
class LUN.
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the partner LUN. |
uuid |
string |
The unique identifier of the partner LUN. |
bindings
A vVol binding with which the LUN is associated.
Name | Type | Description |
---|---|---|
_links |
||
id |
integer |
The ONTAP internal identifier assigned to the vVol binding. The bind identifier is unique amongst all class This property was included in early releases of the REST API for vVols and is maintained for backward compatibility. See the
|
partner |
The LUN partner that this LUN is bound to. If this LUN is a |
|
secondary_id |
string |
The identifier assigned to the vVol binding, known as the secondary LUN ID. The identifier is unique amongst all class The format for a secondary LUN ID is 16 hexadecimal digits (zero-filled) followed by a lower case "h". |
vvol
A VMware virtual volume (vVol) binding is an association between a LUN of class protocol_endpoint
and a LUN of class vvol
. Class protocol_endpoint
LUNs are mapped to igroups and granted access using the same configuration as class regular
LUNs. When a class vvol
LUN is bound to a mapped class protocol_endpoint
LUN, VMware can access the class vvol
LUN through the class protocol_endpoint
LUN mapping.
See link:post-protocols-san-vvol-bindings(#-san-vvol-binding-create)tolearnmoreaboutcreatingvvolbindingsanddelete-protocols-san-vvol-bindings.htmlPOST /protocols/san/vvol-bindings to learn more about creating vVol bindings and [DELETE /protocols/san/vvol-bindings] to learn more about deleting vVol bindings.
There is an added computational cost to retrieving property values for vvol
. They are not populated for a GET request unless explicitly requested using the fields
query parameter. See Requesting specific fields to learn more.
Name | Type | Description |
---|---|---|
bindings |
array[bindings] |
Bindings between the LUN, which must be of class A class The bindings array contains LUNs of the opposite class of the containing LUN object. There is an added computational cost to retrieving property values for |
is_bound |
boolean |
Reports if the LUN is part of a VMware virtual volume (vVol) bind relationship. This is |
lun
A LUN is the logical representation of storage in a storage area network (SAN).
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 FC Protocol or a TCP/IP network using iSCSI.
See the LUN object model to learn more about each of the properties supported by the LUN REST API.
A LUN is located within a volume. Optionally, it can be located within a qtree in a volume.
LUN names are paths of the form "/vol/<volume>[/<qtree>]/<lun>" where the qtree name is optional.
A LUN can be created to a specified size using thin or thick provisioning. A LUN can then be renamed, resized, cloned, moved to a different volume and copied. LUNs support the assignment of a QoS policy for performance management or a QoS policy can be assigned to a volume containing one or more LUNs.
</lun></qtree></volume>
Name | Type | Description |
---|---|---|
_links |
||
attributes |
array[attributes] |
An array of name/value pairs optionally stored with the LUN. Attributes are available to callers to persist small amounts of application-specific metadata. They are in no way interpreted by ONTAP. Attribute names and values must be at least one byte and no more than 4091 bytes in length. The sum of the name and value lengths must be no more than 4092 bytes. Valid in POST except when creating a LUN clone. A cloned can already have attributes from its source. You can add, modify, and delete the attributes of a LUN clone in separate requests after creation of the LUN. Attributes can be added/modified/removed for an existing LUN using the /api/storage/luns/{lun.uuid}/attributes endpoint. For further information, see DOC /storage/luns/{lun.uuid}/attributes . There is an added computational cost to retrieving property values for
|
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 computational cost to retrieving this property's value. It is not populated for a GET request unless it is explicitly requested using the |
class |
string |
The class of LUN. Optional in POST. |
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: 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: 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. |
consistency_group |
The LUN's consistency group. This property is populated for LUNs that are members of a consistency group. If the LUN is a member of a child consistency group, the parent consistency group is reported. A LUN's consistency group is the consistency group of its containing volume. |
|
convert |
This sub-object is used in POST to convert a valid in-place NVMe namespace to a LUN. Setting a property in this sub-object indicates that a conversion from the specified NVMe namespace to LUN is desired. |
|
copy |
This sub-object applies to LUN copy operations. A LUN can be copied with a POST request that supplies Copying a LUN is an asynchronous activity begun by a POST request that specifies the source of the copy in the While LUNs are being copied, the status of the LUN copy operations can be obtained using a GET of the source or destination LUN that requests the There is an added computational cost to retrieving property values for |
|
create_time |
string |
The time the LUN was created. |
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, check the |
location |
The location of the LUN within the ONTAP cluster. LUNs support rename and move between volumes. Valid in POST and PATCH.
|
|
lun_maps |
array[lun_maps] |
The LUN maps with which the LUN is associated. There is an added computational cost to retrieving property values for |
metric |
Performance numbers, such as IOPS latency and throughput. |
|
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 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 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 There is an added computational cost to retrieving property values for |
|
name |
string |
The name of the LUN. Valid in POST and PATCH. A LUN is located within a volume. Optionally, it can be located within a qtree in a volume. LUN names are paths of the form "/vol/<volume>[/<qtree>]/<lun>" where the qtree name is optional. 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. |
provisioning_options |
Options that are applied to the operation. |
|
qos_policy |
The QoS policy for the LUN. Both traditional and adaptive QoS policies are supported. If both property |
|
serial_number |
string |
The LUN serial number. The serial number is generated by ONTAP when the LUN is created.
|
space |
The storage space related properties of the LUN. |
|
statistics |
These are raw performance numbers, such as IOPS latency and throughput. These numbers are aggregated across all nodes in the cluster and increase with the uptime of the cluster. |
|
status |
Status information about the LUN. |
|
svm |
The SVM in which the LUN is located. |
|
uuid |
string |
The unique identifier of the LUN. The UUID is generated by ONTAP when the LUN is created.
|
vvol |
A VMware virtual volume (vVol) binding is an association between a LUN of class See link:post-protocols-san-vvol-bindings(#-san-vvol-binding-create)tolearnmoreaboutcreatingvvolbindingsanddelete-protocols-san-vvol-bindings.htmlPOST /protocols/san/vvol-bindings to learn more about creating vVol bindings and [DELETE /protocols/san/vvol-bindings] to learn more about deleting vVol bindings. There is an added computational cost to retrieving property values for |
job_link
Name | Type | Description |
---|---|---|
_links |
||
uuid |
string |
The UUID of the asynchronous job that is triggered by a POST, PATCH, or DELETE operation. |
returned_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. |