Create a FlexCache volume in the cluster
POST /storage/flexcache/flexcaches
Introduced In: 9.6
Creates a FlexCache in the cluster.
Required properties
-
name
- Name of FlexCache volume. -
origins.volume.name
ororigins.volume.uuid
- Name or UUID of origin volume. -
origins.svm.name
- Name of origin Vserver. -
svm.name
orsvm.uuid
- Name or UUID of Vserver where FlexCache will be created.
Recommended optional properties
-
path
- Path to mount the FlexCache volume -
prepopulate.dir_paths
- List of directory-paths to be prepopulated for the FlexCache volume. -
prepopulate.exclude_dir_paths
- List of directory-paths to be excluded from prepopulation for he FlexCache volume.
Default property values
If not specified in POST, the following default property values are assigned:
-
size
- 10% of origin volume size or 1GB per constituent, whichever is greater. -
guarantee.type
- none. FlexCache is thin provisioned by default. -
constituents_per_aggregate
- 4 if aggregates.name or aggregates.uuid is used. -
use_tiered_aggregate
- false if aggr-list is not used. This property is only used when auto-provisioning a FlexCache volume. -
is_disconnected_mode_off_for_locks
- false. This property specifies if the origin will honor the cache side locks when doing the lock checks in the disconnected mode. -
dr_cache
- false if FlexCache is not a DR cache. This property is used to create a DR FlexCache. -
global_file_locking_enabled
- false. This property specifies whether global file locking is enabled on the FlexCache volume. -
writeback.enabled
- false. This property specifies whether writeback is enabled for the FlexCache volume.
#* writeback.per_inode_dirty_limit
- 2500. This property specifies the amount of data in 4KB blocks that the system can write per inode in a FlexCache volume before a writeback is initiated for that inode.
#* writeback.transfer_limit
- 200. This property specifies the maximum number of 4KB data blocks the system can transfer, at one time, from the cache to the origin. This process will keep on recurring until all the dirty blocks for the inode are transferred to the origin volume.
#* writeback.scrub_threshold
- 2000000. This property specifies the threshold value in 4KB data blocks which when hit will trigger a scrub that will initiate writeback for all dirty inodes on the FlexCache volume.
-
relative_size.enabled
- false. This property specifies whether the relative sizing is enabled for the FlexCache volume. -
relative_size.percentage
- 10. This property specifies the percent size FlexCache volume should have relative to the total size of the origin volume.
Related ONTAP commands
-
volume flexcache create
-
volume flexcache prepopulate start
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 |
||
aggregates |
array[aggregates] |
|
constituents_per_aggregate |
integer |
Number of FlexCache constituents per aggregate when the 'aggregates' field is mentioned. |
dr_cache |
boolean |
If set to true, a DR cache is created. |
global_file_locking_enabled |
boolean |
Specifies whether or not a FlexCache volume has global file locking mode enabled. Global file locking mode is a mode where protocol read locking semantics are enforced across all FlexCaches and origins of a FlexCache volume. When global file locking mode is enabled, the "is_disconnected_mode_off_for_locks" flag is always set to "true". |
guarantee |
||
name |
string |
FlexCache name |
origins |
array[flexcache_relationship] |
|
path |
string |
The fully-qualified path in the owning SVM's namespace at which the FlexCache is mounted. The path is case insensitive and must be unique within a SVM's namespace. Path must begin with '/' and must not end with '/'. Only one FlexCache be mounted at any given junction path. |
prepopulate |
FlexCache prepopulate |
|
relative_size |
FlexCache Relative Size |
|
size |
integer |
Physical size of the FlexCache. The recommended size for a FlexCache is 10% of the origin volume. The minimum FlexCache constituent size is 1GB. |
svm |
FlexCache SVM |
|
use_tiered_aggregate |
boolean |
Specifies whether or not a Fabricpool-enabled aggregate can be used in FlexCache creation. The use_tiered_aggregate is only used when auto-provisioning a FlexCache volume. |
uuid |
string |
FlexCache UUID. Unique identifier for the FlexCache. |
writeback |
FlexCache Writeback |
Example request
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"aggregates": [
{
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "aggr1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
],
"guarantee": {
"type": "string"
},
"name": "vol1",
"origins": [
{
"cluster": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "cluster1",
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
},
"create_time": "2018-06-04 15:00:00 -0400",
"ip_address": "10.10.10.7",
"size": 0,
"state": "string",
"svm": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "svm1",
"uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
},
"volume": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "volume1",
"uuid": "028baa66-41bd-11e9-81d5-00a0986138f7"
}
}
],
"path": "/user/my_fc",
"prepopulate": {
"dir_paths": [
"/dir1"
],
"exclude_dir_paths": [
"/dir1/dir2"
]
},
"svm": {
"_links": {
"self": {
"href": "/api/resourcelink"
}
},
"name": "svm1",
"uuid": "02c9e252-41be-11e9-81d5-00a0986138f7"
},
"uuid": "1cd8a442-86d1-11e0-ae1c-123478563412"
}
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 |
Error
Status: Default
ONTAP Error Response Codes
Error Code | Description |
---|---|
66846870 |
Either the SVM name or origin volume name is missing |
66846871 |
Constituents per aggregate are specified but aggregate name is missing |
66846872 |
More than one origin volume is specified |
66846873 |
The specified SVM UUID is incorrect for the specified SVM name |
66846874 |
The specified aggregate UUID is incorrect for the specified aggregate name |
66846875 |
The specified aggregate name does not exist |
66846876 |
The specified SVM does not exist or is not peered |
66846877 |
The specified origin SVM name is of zero length |
66846878 |
The specified SVM UUID is invalid |
66846730 |
Failed to create a FlexCache volume |
66846760 |
The specified SVM is not a data Vserver |
66846787 |
The specified aggregate is a SnapLock aggregate |
66846812 |
The specified aggregate is a Composite aggregate |
66846812 |
The specified junction path is under a FlexCache volume |
66846834 |
FlexCache encryption requires a cluster version of 9.6 or higher |
66846835 |
A volume encryption license is not found |
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 |
aggregates
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
guarantee
Name | Type | Description |
---|---|---|
type |
string |
The type of space guarantee of this volume in the aggregate. |
cluster
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
|
uuid |
string |
svm
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the SVM. |
uuid |
string |
The unique identifier of the SVM. |
volume
Name | Type | Description |
---|---|---|
_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.
|
flexcache_relationship
Name | Type | Description |
---|---|---|
cluster |
||
create_time |
string |
Creation time of the relationship. |
ip_address |
string |
Cluster managerment IP of the remote cluster. |
size |
integer |
Size of the remote volume. |
state |
string |
Volume state |
svm |
||
volume |
prepopulate
FlexCache prepopulate
Name | Type | Description |
---|---|---|
dir_paths |
array[string] |
|
exclude_dir_paths |
array[string] |
|
recurse |
boolean |
Specifies whether or not the prepopulate action should search through the |
relative_size
FlexCache Relative Size
Name | Type | Description |
---|---|---|
enabled |
boolean |
Specifies whether the relative sizing is enabled for the FlexCache volume. Relative sizing is introduced as a part of follow the origin feature. When relative sizing is enabled, it blocks any modifications done manually in the absolute size of the FlexCache volume. The size of the FlexCache volume is calculated and entered automatically based on the size of the origin volume. |
percentage |
integer |
Specifies the percent size the FlexCache volume should have relative to the total size of the origin volume. This property is only relevant to a FlexCache volume that has the relative size property enabled. |
svm
FlexCache SVM
Name | Type | Description |
---|---|---|
_links |
||
name |
string |
The name of the SVM. |
uuid |
string |
The unique identifier of the SVM. |
writeback
FlexCache Writeback
Name | Type | Description |
---|---|---|
enabled |
boolean |
Indicates whether or not writeback is enabled for the FlexCache volume. Writeback is a storage method where data is first written to the FlexCache volume and then written to the origin of a FlexCache volume. |
flexcache
Defines the cache endpoint of FlexCache.
Name | Type | Description |
---|---|---|
_links |
||
aggregates |
array[aggregates] |
|
constituents_per_aggregate |
integer |
Number of FlexCache constituents per aggregate when the 'aggregates' field is mentioned. |
dr_cache |
boolean |
If set to true, a DR cache is created. |
global_file_locking_enabled |
boolean |
Specifies whether or not a FlexCache volume has global file locking mode enabled. Global file locking mode is a mode where protocol read locking semantics are enforced across all FlexCaches and origins of a FlexCache volume. When global file locking mode is enabled, the "is_disconnected_mode_off_for_locks" flag is always set to "true". |
guarantee |
||
name |
string |
FlexCache name |
origins |
array[flexcache_relationship] |
|
path |
string |
The fully-qualified path in the owning SVM's namespace at which the FlexCache is mounted. The path is case insensitive and must be unique within a SVM's namespace. Path must begin with '/' and must not end with '/'. Only one FlexCache be mounted at any given junction path. |
prepopulate |
FlexCache prepopulate |
|
relative_size |
FlexCache Relative Size |
|
size |
integer |
Physical size of the FlexCache. The recommended size for a FlexCache is 10% of the origin volume. The minimum FlexCache constituent size is 1GB. |
svm |
FlexCache SVM |
|
use_tiered_aggregate |
boolean |
Specifies whether or not a Fabricpool-enabled aggregate can be used in FlexCache creation. The use_tiered_aggregate is only used when auto-provisioning a FlexCache volume. |
uuid |
string |
FlexCache UUID. Unique identifier for the FlexCache. |
writeback |
FlexCache Writeback |
job_link
Name | Type | Description |
---|---|---|
_links |
||
uuid |
string |
The UUID of the asynchronous job that is triggered by a POST, PATCH, or DELETE operation. |
error_arguments
Name | Type | Description |
---|---|---|
code |
string |
Argument code |
message |
string |
Message argument |
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. |