volume create

Creates a volume.

Permissions Required

cv or fc on the cluster.

NOTE
See acl for more information.

Syntax

CLI
/opt/mapr/bin/maprcli volume create
   -name <volume name>
   [ -advisoryquota <advisory quota> ]
   [ -ae <accounting entity> ]
   [ -aetype <accounting entity type> ]
   [ -allowgrant true|false ]
   [ -allowinherit true|false ]
   [ -allowreadforexecute Enable reads for files with execute permission. <true|false> ]
   [-atimeUpdateInterval <days>]
   [ -auditenabled true|false ]
   [ -autooffloadthresholdgb <offload size threshold> ]
   [ -cluster <cluster> ]
   [ -coalesce <interval in mins> ]
   [ -compactionoverheadthreshold <compaction_overhead> ]
   [ -compactionschedule <compaction_schedule_ID> ]
   [ -containerallocationfactor <positive integer> ]
   [ -createparent 0|1 ]
   [ -criticalrereplicationtimeoutsec ]
   [ -dare true|false ]
   [ -dataauditops <+|- operations> ]
   [ -dbindexlagsecalarmthresh <threshold> ]
   [ -dbrepllagsecalarmthresh <threshold> ]
   [ -ecenable true|false ]
   [ -eclabel ec volume label ]
   [ -ecscheme <ec scheme> ]
   [ -ectopology <path to ec volume> ]
   [ -enforcementmode <PolicyAceAndDataAce|PolicyAceOnly|DataAceOnly|PolicyAceAuditAndDataAce>> ]                  
   [ -enforceminreplicationforio true|false ]
   [ -filefilter <file filter> ]
   [ -forceauditenable true|false ]
   [ -group <list of group:allowMask> ]
   [ -honorrackreliability <ec-rack-reliability : true | false> ]
   [ -inherit <volume name> ]
   [ -label <data label> ] 
   [ -localvolumehost <localvolumehost> ]
   [ -localvolumeport <localvolumeport> ]
   [ -maxinodesalarmthreshold <maxinodesalarmthreshold> ]
   [ -maxnssizembalarmthreshold <maxnssizembalarmthreshold> ]
   [ -metricsenabled true|false ]
   [ -minreplication <minimum replication factor> ]
   [ -mirrorschedule <mirror schedule ID> ] (4.0.2 only)
   [ -mirrorthrottle 0|1 ]
   [ -mount 0|1 ]
   [ -namecontainerdatathreshold <size> ]
   [ -nslabel <name cntr label>] 
   [ -nsminreplication <minimum replication factor> ]
   [ -nsreplication <replication factor> ]
   [ -numactivecgcontainers <num active cg containers> ]
   [ -offloadschedule <schedule ID> ]
   [ -path <mount path> ]
   [ -quota <quota> ]
   [ -readAce <access control expression> ]
   [ -readonly <read-only status> ]
   [ -recallexpirytime <expiry time> ]
   [ -replication <replication factor> ]
   [ -replicationtype <type> ]
   [ -rereplicationtimeoutsec <seconds> ]
   [ -rootdirgroup <root directory group> ]
   [ -rootdirperms <root directory permissions> ]
   [ -rootdiruser <root directory user> ]
   [ -rootdirsecuritypolicy <comma separated security policies> ]
   [ -schedule <ID> 
   [ -securitypolicy <policy1,policy2,…> ]
   [ -skipinherit schedule|tiername ]
   [ -skipwiresecurityfortierinternalops Skip Wire level security for backend volumes <true|false> ]
   [ -source <source> ]
   [ -tenantuser <tenant name> ]
   [ -tierencryption true|false ]
   [ -tieringenable true|false ]
   [ -tieringrule <rulename> ]
   [ -tierkey <tier encryption key> ]
   [ -tiername <tiername> ]
   [ -topology <topology> ]
   [ -type rw|mirror ]
   [ -user <list of user:allowMask> ]
   [ -wiresecurityenabled true|false ]
   [ -writeAce <access control expression> ]
REST
Request Type POST
Request URL
http[s]://<host>:<port>/rest/volume/create?<parameters>

Parameters

Parameter: advisoryquota
Default Value: No default value
Possible Values: 0 or any other integer value.
Description: The advisory quota for the volume as integer plus unit. Example: quota=500G; Units: B, K, M, G, T, P
Setting a quota allows you to configure an alarm when the volume usage exceeds a specific limit. There are two kind of quotas, the advisory quota and the quota, also referred to as a "hard" quota (see the quota parameter later on this page). You can choose to set either or both types of quotas. If both quotas are set, the advisory quota must be less than or equal to the hard quota.
Volume usage that exceeds the advisory quota raises a VOLUME_ALARM_ADVISORY_QUOTA_EXCEEDED alarm. Volume usage that exceeds the hard quota raises a VOLUME_ALARM_QUOTA_EXCEEDED alarm and prevents new writes until space is freed up on the volume. Setting an advisory quota can alert you to take action before a hard quota is reached and new writes to the volume are stopped.
Parameter: ae
Default Value: No default value
Possible Values: Name of the entity that owns the volume.
Description: The accounting entity that owns the volume.
Parameter: aetype
Default Value: No default value
Possible Values:
  • 0=user
  • 1=group
Description: Type of accounting entity.
Parameter: allowgrant
Default Value: false
Possible Values:
  • true
  • false
Description: Specifies whether the volume as a parent, grants permission for a child volume to inherit its properties.
Parameter: allowinherit
Default Value: true
Possible Values:
  • true
  • false
Description: Specifies whether a new volume inherits properties from the parent mount point volume.
Parameter: allowreadforexecute
Default Value: false
Possible Values:
  • true
  • false
Description: Allows execution of SUID binaries with only their executable bit set, on a FUSE filesystem. This parameter works in conjunction with the fuse.mount.setuid FUSE option. For more information, see Configuring the HPE Ezmeral Data Fabric FUSE-Based POSIX Client.
Parameter: auditenabled
Default Value: true
Possible Values:
  • true
  • false
Description: Specifies whether to turn on auditing for the volume. If you enable auditing at the cluster level with the audit data command, setting this value to true causes auditing to start for any directories, files, tables, or streams that are already enabled for auditing. If none are yet enabled, enabling auditing on any of them causes auditing of them to start.

Set auditenabled to true to enable auditing on directories, files, tables, and streams in the volume.

You must have the fc permission on the cluster to use this parameter. See acl for details about this permission.
Parameter: autooffloadthresholdgb
Default Value: 1024 GB
Possible Values: Any positive integer.
Description: The size of the volume in GB (threshold). When this threshold is reached or exceeded, volume data is automatically offloaded by the Automatic Tiering Scheduler. To use the global size threshold (of 1024 GB), set the value to 0.
Parameter: cluster
Default Value: No default value
Possible Values: Any valid cluster.
Description: The cluster on which to create the volume.
Parameter: coalesce
Default Value: 60 minutes
Possible Values: Set this parameter to a large number of minutes to prevent audit logs from growing quickly.
Description: The interval of time (in minutes) during which READ, WRITE, or GETATTR operations on one file from one IP address or UID are logged only once for a particular operation, if auditing is enabled.

For example, suppose that a client application reads a single file three times in 6 minutes, so that there is one read at 0 minutes, another at 3 minutes, and a final read at 6 minutes. If the coalesce interval is at least 6 minutes, then only the first read operation is logged. However, if the interval is 4 minutes, then only the first and third read operations are logged. If the interval is 2 minutes, all three read operations are logged.

Now however, if the client was also writing to the file, irrespective of the coalesce interval for the read operation in the example stated previously, the write operation is logged, as it is a different operation from reading.

Parameter: compactionoverheadthreshold
Default Value: 30%
Possible Values: 0-100%
Description: Specifies the percentage of offloaded data that must have been deleted on the cluster to qualify the data for compaction (or deletion from the tier).
Parameter: compactionschedule
Default Value: Automatic Internal Schedule
Possible Values: Any valid schedule ID.

Set this parameter to 0 to disable the compactor.

Description: Specifies the schedule to use for running the compactor.
Parameter: containerallocationfactor
Default Value: 5
Recommended Value: 2* SP count in the volume topology.
Description: Specifies the number of containers to create when the first write from a remote client is sent to the volume. The pre-created containers are distributed equally across topologies, servers, file system instances, and storage pools. CLDB also takes into consideration the load (IO/Space) when selecting target storage pools for containers. The value must be a positive integer.
Parameter: createparent
Default Value: 1
Possible Values:
  • 0 - Do not create a parent directory
  • 1 - Create a parent directory
Description: Specifies whether or not to create a parent directory to hold the volume link.
Parameter: criticalrereplicationtimeoutsec
Default Value: 0 (No timeout)
Possible Values: Any integer between 300 and 3600 (seconds)
Description: Timeout (in seconds) before re-replicating only the critically under-replicated containers . If you set both rereplicationtimeoutsec and criticalrereplicationtimeoutsec, and if the value of:
  • rereplicationtimeoutsec is less than criticalrereplicationtimeoutsec, rereplicationtimeoutsec overrides the criticalrereplicationtimeoutsec setting for both under-replicated and critically under-replicated containers.
  • rereplicationtimeoutsec is greater than criticalrereplicationtimeoutsec, criticalrereplicationtimeoutsec overrides the rereplicationtimeoutsec setting only for critically under-replicated containers; rereplicationtimeoutsec setting is still applicable for under-replicated containers.
Parameter: dare
Default Value: false
Possible Values:
  • true
  • false
Description: Specifies whether or not to enable data-at-rest encryption for volume. This setting takes effect only if the data-at-rest encryption feature is also enabled at the cluster level. Once enabled, this feature cannot be disabled.
Parameter: dataauditops
Default Value: Default enabled audit ops: setattr,chown,chperm,chgrp,getxattr,listxattr,setxattr,removexattr,read,write,create,delete, mkdir,readdir,rmdir,createsym,lookup,rename,createdev,truncate,tablecfcreate,tablecfdelete, tablecfmodify,tablecfScan,tableget,tableput,tablescan,tablecreate,tableinfo,tablemodify,getperm, getpathforfid,hardlink,filescan,fileoffload,filerecall,filetierjobstatus,filetierjobabort
Possible Values: Any audit operations that you want to enable.
Description: The comma separated list of filesystem operations to include (specified with a preceding plus sign (+)) or exclude (specified with a preceding minus sign (-)) from auditing.

To exclude the first operation in the list (of operations) from auditing, precede it by two minus (--) signs. To exclude subsequent operations, precede them by only a single minus (-) sign, irrespective of whether the first operation was included (using a plus (+) sign) or excluded (using two minus (--) signs). If neither sign is specified, the given operation is included for auditing.

The operations that can be included (+) or excluded (-) from auditing are listed here. You can, alternatively, group all the operations using the keyword all, which:
  • If included (+), cannot be specified with a list of other included operations.
  • If excluded (-), cannot be specified with a list of other excluded operations.
You can specify a mixed list of included and excluded operations. There is no change to operations that are not specified with the command.
NOTE
Enabling setattr automatically enables the following operations:
  • chown
  • chgrp
  • chperm
If you disable setattr, these operations are automatically disabled. If you do nothing with setattr (neither enable nor disable), you can enable or disable chown, chgrp, and chperm in any combination and they will not affect setattr.
For more information, see Selective Auditing of Filesystem and Table Operations.
Parameter: dbindexlagsecalarmthresh
Default Value: 300 seconds
Possible Values: Any integer value.
Description: Specifies the threshold (in seconds) to raise an alarm for index update lag.
Parameter: dbrepllagsecalarmthresh
Default Value: 900 seconds
Possible Values: Any integer value.
Description: Specifies the threshold (in seconds) to raise an alarm for DB replication lag.
Parameter: ecenable
Default Value: false
Possible Values:
  • true
  • false
Description: Enable (true) or disable (false) warm tiering for the volume. Either this parameter or tieringenable is required to enable warm tiering. If you specify this parameter, you cannot specify tiername; when the command runs, a new tier is created for the volume. If you do not specify any rule, the default rule, which is all files (p), is associated with the volume.
Parameter: eclabel
Default Value: HDD
Possible Values: Any label.
Description: The label to use for the erasure-coded volume. See Using Storage Labels for more information on labels.
The label should contain only the following characters:
A-Z a-z 0-9 _ - .
Parameter: ecscheme
Default Value: 4+2
Possible Values: Any valid EC scheme.
Description:
NOTE
This parameter is applicable only for EC volumes, and only when you set the ecenable parameter to true.
The number of data chunks and the number of parity chunks separated by a plus (+) sign.

For schemes with local parity, the scheme is of the form x+y+z, where x is the number of data chunks, y is the number of local parity chunks, and z is the number of global parity chunks.

For information on the supported schemes, see Erasure Coding Scheme for Data Protection and Recovery.

Parameter: ectopology
Default Value: /data/default-rack
Possible Values: Any topology that exists in your environment.
Description: Sets the topology to store the erasure coded volume. Once set, you cannot change the topology of an erasure coded volume using this command. To change the topology of an erasure coded volume, use volume move.
NOTE
  1. This parameter is applicable only for EC volumes.
  2. The specified EC topology needs to have sufficient nodes for the selected EC Scheme. For example, 6 nodes for 4+2, 5 nodes for 3+2 etc.
Parameter: enforcementmode
Default Value: No default value
Possible Values:
  • PolicyAceOnly
  • PolicyAceAndDataAce
  • DataAceOnly
  • PolicyAceAuditAndDataAce
Description: The enforcement mode when evaluating authorization for data access. Permitted values are as follows:
  • PolicyAceOnly: Determines data access authorization based only on the ACEs set in security policies. Ignores POSIX mode bits and ACEs directly defined on data objects when determining access rights, if a data object is tagged with at least one security policy. If a data object is not associated with at least one security policy, the system will enforce POSIX mode bits and ACEs directly defined on the data object. Volume-level ACEs are always enforced.
  • PolicyAceAndDataAce: Determines data access authorization based on the ACEs set in security policies AND ACEs or POSIX mode bits directly set on data objects.
  • DataAceOnly: Determines data access authorization based on the ACEs or POSIX mode bits directly set on data objects. You can use this mode to switch off the policy-based security feature, on a per-volume basis, in an emergency situation.
  • PolicyAceAuditAndDataAce: Use this mode when testing security policies. In this mode:
    • ACEs defined directly on data objects are enforced.
    • Data objects associated with security policies are checked for access, and any access denied events are audited, but access itself is allowed.

See the section on Volume-Level Security Policy Enforcement Mode for a discussion on how to determine permission to access a resource, when this flag is set.

Parameter: enforceminreplicationforio
Default Value: false
Possible Values:
  • true
  • false
Description: Specifies whether (true) or not (false) to enforce minimum number of replicas for the (read-write) volume during IO. This flag ensures that further updates (writes) to volume are successful only when the minimum number of copies of the container are available. Setting this parameter to true ensures that if writes succeed, then it has been applied to at least the minimum number of copies; if writes fail, it may have been applied to zero or more copies.

Enabling this parameter, may stall volume dump and volume snapshot create operations, if the minimum number of copies of the container are not available.

If you do not set this parameter on a volume, or if you modified this parameter from false to true, then you need to restart all the nodes where the containers associated with the volume exist, for the changes to take effect.

This flag is ignored on mirror volumes. If there are more than five cluster nodes, this flag is set to true, by default, on the tier volume. If the number of cluster nodes is less than five, this flag is set to false, by default, on the tier volume.

Parameter: filefilter
Possible Values: Any file filter.
Description: Specifies the file filter to use to prevent specific types of files from being stored on the volume. For more information, see Prevent Storage of Specified Types of Files. You can associate only one filter for each volume.
Parameter: forceauditenable
Default Value: false
Possible Values:
  • true - force audit of all content
  • false - do not force audit
Description: Specifies whether (true) or not (false) to force audit of operations on all files, tables, and streams in the volume if auditing is enabled at the cluster and volume levels, irrespective of the audit setting on the individual directory, file, table, and stream.
Parameter: group
Default Value: No default value
Possible Values: Any user with Create Volume privileges.
Description: Space-separated list of group:permission pairs. Use commas to separate permissions. For example: group:permission,permission,...
Parameter: honorrackreliability <ec-rack-reliability : true | false>
Default Value: false
NOTE
The honorrackreliability parameter considers each rack as a site.
Allocates CGs for maximized resiliency during a site failure. CG containers are spread across multiple sites so that a site does not host more parity containers for a given CG (EC scheme: D+P). Container allocations for a CG with previous software use one container per site for a CG. Managing new allocations in this manner (where honorrackreliability is set to true) ensures that CG data is available for reads, even in cases where an entire site goes down. For a given EC D+P scheme, CG allocation requires, at least, Math.ceil (D+P)/P site for CG creation, and if enough sites are unavailable, CG allocation fails.
NOTE
To use -honorrackreliability in a cluster with geographically-dispersed nodes, you must configure a topology with multiple racks having enough nodes in each rack. Specifying the configured topology as -ectopology ensures that RackReliabilitySelector allocates, at most, P containers in each rack during CG allocations.
NOTE
If a container needs to be reallocated for rebuild, an attempt is made to allocate a new container in the same rack in which the old container resided. If this allocation cannot be done, a new container is allocated into a different rack, such that the selected rack will not have more, than P containers. Otherwise, container allocation fails.
Parameter: inherit
Default Value: No default value
Possible Values: Any existing volume name
Description: Specifies the name of the volume from which the new volume inherits properties. When you specify inherit, you do not need to specify allowgrant. See the following section on Inheritance for more information.
Parameter: label
Default Value: default
Possible Values: Any label.
Description: The label to use for the storage pool. See Using Storage Labels for more information on labels.
The label should contain only the following characters:
A-Z a-z 0-9 _ - .
TIP
Use the special label named anywhere to let a volume reside on any storage pool. Not setting a label, causes a volume to reside only on a storage pool without a label.
Parameter: localvolumehost
Default Value: No default value
Possible Values: Any existing volume name
Description: Specifies the name of the local volume host.
Parameter: localvolumeport
Default Value: 5660
Possible Values: Any valid port number
Description: Specifies the port number of the local volume host.
Parameter: maxinodesalarmthreshold
Default Value: 50000000
Possible Values: Any positive integer.
Description: The number of inodes, which when exceeded raises the INODES_EXCEEDED alarm.
Parameter: maxnssizembalarmthreshold
Default Value: 500 GB
Possible Values: Any positive integer.
Description: The namespace container size, which when exceeded raises the INODES_EXCEEDED alarm.
Parameter: metricsenabled
Default Value: false
Possible Values:
  • true
  • false
Description: Specifies whether (true) or not (false) to enable metrics collection for a volume.
Parameter: minreplication
Default Value: 2
Possible Values: Can be any value that you desire based on the replication you need.
Description: The minimum replication level. When the replication factor falls below this minimum, re-replication occurs as aggressively as possible to restore the replication level. If any containers in the CLDB volume fall below the minimum replication factor, writes are disabled until aggressive re-replication restores the minimum level of replication.
TIP
For more information, see Understanding Replication.
Parameter: mirrorschedule
Default Value: 0
Possible Values: Any valid schedule ID.
Description: The schedule ID corresponding to the schedule to be used for mirroring. If you specify a mirror schedule ID, then the mirror volume automatically syncs with its source volume on the specified schedule. Pre-assigned IDs include 1 for critical data, 2 for important data, and 3 for normal data. Custom schedules are assigned ID numbers in sequence. To determine the ID number, use the schedule list command.
Parameter: mirrorthrottle
Default Value: true
Possible Values:
  • true
  • false
Description: Specifies whether mirror throttling is enabled (true) or disabled (false). Throttling is set on the source volume and applies to all its mirrors.
Parameter: mount
Default Value: true
Possible Values:
  • true
  • false
Description: Specifies whether to mount the volume (true) or not (false) after creating the volume.
Parameter: name
Default Value: No default value
Possible Values: Any valid name
Description: Specifies the name for the volume.
The name should contain only the following characters:
A-Z a-z 0-9 _ - .
For tiering-enabled volumes, the volume name cannot exceed 98 characters. For regular volumes, the volume name should be a maximum of 128 characters.
Parameter: namecontainerdatathreshold
Default Value: 524288 MB
Possible Values: Any integer value. The value is interpreted as being in MB.

If you set this parameter to 0, there is no limit on the size of user data that can be stored in the name container.

If chunk size is 0, by default, all data is stored in the name container. However, if this property is set, all data is stored in a second container and only the meta data is stored in the name container once the threshold is reached. The size of the second container is not limited by this setting; you must ensure that the size does not grow too large, by limiting the amount of data in the volume.

Description: Limits the size of user data that can be placed in the name container. The value is interpreted as being in MB. If the user data size limit:
  • Has not yet been reached, the first 64 KB of data is stored in name container, and the rest of the data is stored in data containers.
  • Has already been reached, only meta data is stored in the name container, and the data is stored in data containers. For example, if you set the current name container size to 200GB and the limit to 100GB, then all new user data is stored in data containers.
Parameter: nslabel
Default Value: default
Possible Values: Any value.
Description: The label to use for the namespace container. See Using Storage Labels for more information on labels.
The label should contain only the following characters:
A-Z a-z 0-9 _ - .
Parameter: nsminreplication
Default Value: 2
Possible Values: Any integer value.
Description: A replication factor of the namespace container. When the replication factor falls below this value, re-replication occurs as aggressively as possible to restore the replication level. If any containers in the CLDB volume fall below the minimum replication factor, writes are disabled until aggressive re-replication restores the minimum level of replication.

When enabled, the CLDB manages the namespace container replication separate from the data container replication. You use this capability when you have low volume replication but want to have higher namespace replication.

Set the value to be the same or larger than the value of the equivalent data replication parameter, minreplication.

See also: Understanding Replication.
Parameter: nsreplication
Default Value: 3
Possible Values: Any integer value.
Description: A replication factor of the namespace container. When the number of copies fall below the desired replication factor, but remains equal to or above the minimum replication factor, re-replication occurs after the timeout specified in the cldb.fs.mark.rereplicate.sec parameter. This timeout is the time given for a node that is offline to come back online. After this timeout period, the CLDB takes action to restore the replication factor. When enabled, the CLDB manages the namespace container replication separate from the data container replication. This capability is used when you have low volume replication but want to have higher namespace replication. By default, the value of this parameter is the same or larger than the value of the equivalent data replication parameter. However, to set the value of this parameter lower than the replication value, first set engg.manual.override to true in cldb.conf. See also: Understanding Replication.
Parameter: numactivecgcontainers
Default Value: 0
Possible Values: Any integer between 1 and 100.
Description: Number of containers to be assigned for a CG assign request.
Parameter: offloadschedule
Default Value: No default value
Possible Values: Any valid schedule ID. To disable schedule-based offload, set this value to 0.
Description: The ID of the schedule to associate with the volume for offloading volume data to the tier.
NOTE
This parameter is required only for Cold/EC tiered volumes.
Parameter: path
Default Value: No default value
Possible Values: Any valid path.
Description: The path at which to mount the volume. The path must be relative to / and cannot be in the form of a global namespace path (for example, /mapr/<cluster-name>/).
Parameter: quota
Default Value: 0
Possible Values: Any integer value along with a unit.
Description: The quota for the volume as integer plus unit. Example: quota=500G; Units: B, K, M, G, T, P

Do not use two-letter abbreviations for quota units, such as GB and MB.

Setting a quota allows you to configure an alarm when the volume usage exceeds a specific limit. There are two kind of quotas: the quota, also referred to as a "hard" quota, and the advisory quota (see the advisory quota parameter earlier on this page). You can choose to set either or both types of quotas. If both quotas are set, the advisory quota must be less than or equal to the hard quota.

Volume usage that exceeds the hard quota raises a VOLUME_ALARM_QUOTA_EXCEEDED alarm and prevents new writes until space is freed up on the volume. Volume usage that exceeds the advisory quota raises a VOLUME_ALARM_ADVISORY_QUOTA_EXCEEDED alarm. Setting an advisory quota can alert you to take action before a hard quota is reached and new writes to the volume are stopped.

When you set a quota for a tiering-enabled volume, the quota is the total space allocated for the volume irrespective of the location (cluster or tier) where the volume data is stored. For example, if you allocate 1GB of hard quota for a tiering-enabled volume, writes fail after you write 1GB of data whether or not the volume data is local (on the cluster) or offloaded (to the tier).

Note that quotas for source and mirror volumes must match.

Parameter: readAce
Default Value: p (grant access to all users)
Possible Values: Any valid permissions.
Description: Specifies Access Control Expressions(ACEs) that grant permissions at the volume level to read files and tables in the volume. The default value is p, which grants access to all users.

See Access Control Expression (ACE)s.

Parameter: readonly
Default Value: No default value
Possible Values:
  • 0
  • 1
Description: Specifies whether the volume is read-only.
  • 0 - read/write
  • 1 - read-only
Parameter: recallexpirytime
Default Value: 1 day
Possible Values: Any integer between 1 and 7500.
Description: The amount of time (in days) to keep the recalled data before purging or offloading it.
Parameter: replication
Default Value: 3
Possible Values: Any integer starting at 0.
Description: The desired replication level. When the number of copies falls below the desired replication factor, but remains equal to or above the minimum replication factor, re-replication occurs after the timeout specified in the cldb.fs.mark.rereplicate.sec parameter. Note that this timeout is the time given for a node that is offline to come back online. After this timeout period, the CLDB takes action to restore the replication factor.
TIP
For more information, see Understanding Replication.
Parameter: replicationtype
Default Value: high_throughput
Possible Values:
  • low_latency (star replication)
  • high_throughput (chain replication)
Description: The desired replication type. The default setting is high_throughput.
Parameter: rereplicationtimeoutsec
Default Value: 3600 seconds (1 hour)
Possible Values: Any positive integer.
Description: Timeout (in seconds) before attempting re-replication of replica containers. This volume property defines the timeout period until CLDB starts re-replicating the containers on the node of the volume after CLDB stops receiving a heartbeat from the node.

When a node is down, CLDB gives the node an hour to come back online before it takes any action for the containers on this node. You can set this parameter on volumes to reduce the default value to a shorter time period. This option is provided mainly for local volumes, so that when the file system is down, CLDB can give up quickly and decide that the container has no master. This forces the TT to give up on local containers, and take the appropriate recovery action of deleting the mapred volume and creating another one.

Parameter: rootdirgroup
Default Value: User who is running the command
Possible Values: Any valid group
Description: Group that owns the root directory
Parameter: rootdirperms
Default Value: rwxr-xr-x
Possible Values: Any valid permission
Description: Permissions on the volume root directory.
Parameter: rootdiruser
Default Value: User who is running the command
Possible Values: Any valid user
Description: User that owns the root directory.
rootdirsecuritypolicy
Default Value: None
Possible Values: An empty string, or a list of security policy tags.
Description: A comma-delimited list of security policy tags to be associated with the volume root directory. This parameter is not mandatory.

If you do not specify a security policy, the volume is created without initial security policy tags.

Parameter: schedule
Default Value: 0
Possible Values: 0 or a valid schedule ID.
Description: The ID of a schedule. Use the schedule list command to find the ID of the named schedule that you want to apply to the volume.

To disable the schedule, set this parameter to 0.

Parameter: skipinherit
Default Value: No default value
Possible Values:
  • schedule
  • tiername
Description:Specifies not to inherit given properties associated with the:
  • Parent volume (for other volumes)
  • Source volume (for mirror volumes)
Value must be either or both:
  • schedule to not inherit snapshot schedule settings
  • tiername to not:
    • Inherit tiering properties like tierid, tieroffloadscheduleid, ecshceme, ectopology
    • Set default values for compactionscheduleid and compactionoverheadthreshold
Use comma to separate multiple values.
Parameter: source
Default Value: No default value
Possible Values: Any volume.
Description: The source volume from which a mirror volume receives updates, specified in the format <volume>@<cluster>.
Parameter: tenant
Default Value: No default value
Possible Values: Any valid tenant user.
Description: The tenant is the entity for which resources such as volumes are created. The tenant can be an organization, a department within an organization, or an individual.

This parameter indicates the tenant for whom the volume is being created. All resources within the created volume are owned by the specified tenant.

Parameter: tierencryption
Default Value: false
Possible Values:
  • true
  • false
Description: Specifies whether to enable (true) or disable (false) encryption of data on the object store. This parameter is applicable only for cold-tier volumes. If you enable this parameter, user data is encrypted before being written to the object, and the HTTPS protocol is used for communication with the object store to ensure that data is encrypted both on the wire and on the tier.

You can set this parameter only if you specify a tier name (see the tiername parameter) as well. You cannot modify this parameter after you set it.

If you set the value to true, you can also specify a custom key using the tierkey parameter. Once set to true, the MAST Gateway uses HTTPS to upload data to the cold-tier. If the cold tier does not support HTTPS, all tier related operations fail. If the cold-tier does not support HTTPS, you must explicitly set the value for this to false at the time of associating a tier with the volume because the default value for this parameter is true.

TIP
For warm tier, use -dare option on the front-end volume to enable or disable encryption of data-at-rest.
Parameter: tieringenable
Default Value: No default value
Possible Values:
  • true
  • false
Description: Enable (true) or disable (false) tiering for the volume. When you specify this parameter, you must also specify the tiername. For creating a tiering-enabled mirror volume, specify this parameter if the source volume is enabled for cold-tier; specify either this parameter or ecenable, if the source volume is enabled for warm-tier.
Parameter: tieringrule
Default Value: p (all files)
Possible Values: Name of any valid rule
Description: The name of the rule (referred to as storage policy in the Control System) to use for offloading data to the tier. If you do not specify a rule, the default rule, which is all files (p), is associated with the volume. See Creating a Rule in Creating a Storage Tier Policy for more information.
Parameter: tierkey
Default Value: Auto generated
Possible Values:Any 32-character HEX string, or let CLDB auto-generate this string
Description: The 32-character HEX string to use for encryption only for cold tier volumes. If you do not specify a string, CLDB generates a 32 character HEX string to use for encrypting the data to offload to the tier.
Parameter: tiername
Default Value: No default value
Possible Values: Any
Description: The name of the tier to use for offloading data. You can set this name only once and cannot modify it.

For warm tiering, you cannot specify this parameter if ecenable is set to true.

Parameter: topology
Default Value: /data
Possible Values: Any
Description: The rack path to the volume.
To create a volume in a specific topology, you must have the Converged Enterprise Edition installed on your system. Without the Converged Enterprise Edition, when you run the maprcli volume create command with the -topology option, the following error message is returned:
ERROR (10010) -  Volume Creation Failed: Setting topology on 
                     a volume requires data placement feature. License not found for data placement.
Parameter: type
Default Value: 0
Possible Values:
  • mirror
  • rw
  • 0
  • 1
Description: The type of volume to create.

The following values are accepted:

  • mirror - standard mirror (read-only) volume (promotable to standard read-write volume)
  • rw - standard (read-write) volume (convertible to standard mirror volume)
  • 0 - standard (read-write) volume (for backward compatibility)
  • 1 - non-convertible mirror (read-only) volume (for backward compatibility)
Parameter: user
Default Value: All permissions (dump, restore, m, a, d, fc) for the administrator who created the volume
Possible Values: Any valid permissions
Description: Space-separated list of user:permission pairs.

Use comma to separate permissions. For example: user:permission,permission,...

Parameter: wiresecurityenabled
Default Value: true
Possible Values:
  • true
  • false
Description: Enables (true) or disables (false) on-wire encryption for all files, tables, and streams in the volume for secure clusters.

If true, this setting overrides all file, table, and stream level encryption settings (set using the hadoop mfs command) and enables on-wire encryption for all files, tables, and streams. If you disable (false) this parameter at the volume level, but enable it at the file, table, or stream level, the file, table, or stream level encryption setting overrides this setting on those files, tables, and streams where it is enabled; for all other files, tables, and streams where encryption is not enabled at the file, table, or stream level, the on-wire encryption is disabled.

Parameter: writeAce
Default Value: p (grants access to all users)
Possible Values: Any valid permissions
Description: Specifies Access Control Expressions (ACEs) that grant permission at the volume level to write to files and tables in the volume. The default value is p, which grants access to all users.

See ACEs.

Inheritance

The following table shows the list of inheritable parameters that are (Yes) and are not (No) inherited by a:

  • Mirror volume from the source volume on the same cluster
  • Mirror volume from the source volume on a different cluster
NOTE
All (non-mirror) volumes inherit all the inheritable properties from the parent volume. For more information on the properties, refer to volume create parameters.
Inheritable Properties (which are inherited by non-mirror volumes by default) Inherited by Mirror Volume on the same cluster as the source volume? Inherited by Mirror Volume on a different cluster from the source volume?
advisoryquota Yes Yes
ae Yes No
aetype Yes No
allowgrant Yes Yes
allowinherit Yes Yes
auditenabled Yes Yes
coalesce Yes Yes
dare Yes Yes1, No2
dataauditops Yes Yes
dbindexlagsecalarmthresh Yes Yes
dbrepllagsecalarmthresh Yes Yes
enforcementMode Yes Yes
ecscheme Yes No
ectopology Yes No
group Yes Yes
inherit Yes Yes
localvolumehost No No
localvolumeport No No
maxinodesalarmthreshold Yes Yes
minreplication Yes Yes
mirrorschedule Yes No
mirrorthrottle Yes Yes
nsminreplication Yes Yes
nsreplication Yes Yes
ofloadschedule Yes No
quota Yes Yes
readonly Yes Yes
recallexpirytime Yes No
replication Yes Yes
replicationtype Yes Yes
rereplicationtimeoutsec Yes Yes
rootdirperms Yes Yes
schedule Yes3 No
securitypolicy Yes Yes
source Yes Yes
tierencryption Yes No
tieringenable Yes No
tieringrule Yes No
tierkey Yes No
tiername4 Yes No
topology Yes No
type Yes Yes
user Yes Yes
wiresecurityenabled Yes Yes
  • 1 If destination cluster is also enabled for data-at-rest encryption, dare setting is inherited by the mirror volume on the destination cluster.
  • 2 If destination cluster is not enabled for data-at-rest encryption, dare setting is not inherited by the mirror volume on the destination cluster.
  • 3 If schedule keyword is specified with the skipinherit parameter, schedule(s) are not inherited while inheriting volume properties from the source volume.
  • 4 If tiername keyword is specified with the skipinherit parameter:
    • The tiering properties are not inherited by the mirror volume while inheriting volume properties from the tiering-enabled source volume.
    • For volumes enabled for warm-tier, the backend erasure-coded volume is not created.

Examples

NOTE
For REST examples stated below, use the appropriate SSL-related command line option in the following curl command, according to your SSL setup.

Create the volume "test-volume" mounted at "/test/test-volume" with a time of 2 days

/opt/mapr/bin/maprcli volume create -name test-volume -path /test/test-volume -type rw -atimeUpdateInterval 2 -json
{
	"timestamp":1526522204072,
	"timeofday":"2020-05-16 06:56:44.072 GMT-0700 PM",
	"status":"OK",
	"total":0,
	"data":[
		
	],
	"messages":[
		"Successfully created volume: 'test-volume'"
	]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=test-volume&path=/test/test-volume&type=rw&atimeUpdateInterval=2' --user <username>:<password>
{"timestamp":1526522305703,"timeofday":"2020-05-16 06:58:25.703 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'test-volume'"]}

Create the volume "test-volume" mounted at "/test/test-volume" with EC scheme "6+2+2"

/opt/mapr/bin/maprcli volume create -name test-volume -path /test/test-volume -type rw -ecscheme "6+2+2" -json
                     {
                     "timestamp":1526522204072,
                     "timeofday":"2018-05-16 06:56:44.072 GMT-0700 PM",
                     "status":"OK",
                     "total":0,
                     "data":[
                     
                     ],
                     "messages":[
                     "Successfully created volume: 'test-volume'"
                     ]
                     }
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=test-volume&path=/test/test-volume&type=rw&ecscheme=6+2+2' --user <username>:<password>
{"timestamp":1526522305703,"timeofday":"2018-05-16 06:58:25.703 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'test-volume'"]}
                

Create Volume with a Quota and an Advisory Quota

This example creates a volume with the following parameters:

  • advisoryquota: 100M
  • name: volumename
  • path: /volumepath
  • quota: 500M
  • replication: 3
  • schedule: 2
  • topology: /East Coast
  • type: rw
/opt/mapr/bin/maprcli volume create -name volumename -path /volumepath -advisoryquota 100M -quota 500M -replication 3 -schedule 2 -topology "/East Coast" -type rw -json
{
	"timestamp":1526522474660,
	"timeofday":"2018-05-16 07:01:14.660 GMT-0700 PM",
	"status":"OK",
	"total":0,
	"data":[
		
	],
	"messages":[
		"Successfully created volume: 'volumename'"
	]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=volumename&path=/volumepath&advisoryquota=100M&quota=500M&replication=3&schedule=2&type=rw' --user <username>:<password>
{"timestamp":1526522622494,"timeofday":"2018-05-16 07:03:42.494 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'volumename'"]}

Create the mirror volume "test-volume.mirror" from source volume "test-volume" and mount at "/test/test-volume-mirror"

/opt/mapr/bin/maprcli volume create -name test-volume.mirror -source test-volume@ksTest -path /test/test-volume-mirror -type mirror -json
{
	"timestamp":1526524458615,
	"timeofday":"2018-05-16 07:34:18.615 GMT-0700 PM",
	"status":"OK",
	"total":0,
	"data":[
		
	],
	"messages":[
		"Successfully created volume: 'test-volume.mirror'"
	]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=test-volume.mirror&path=/test/test-volume-mirror&type=mirror&source=test-volume@ksTest' --user <username>:<password>
{"timestamp":1526524637534,"timeofday":"2018-05-16 07:37:17.534 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'test-volume.mirror'"]}

Create volumes that inherit from a parent volume

When creating and mounting a volume, the location of the mount path is specified by the path parameter. Volumes can be mounted via the web console, the maprcli commands, or the REST commands. The maprcli commands include volume create -path command and the maprcli volume mount -path command if the volume was previously created. Sub-volumes (children) can inherit properties from their parent volume.

In the following example, a parent volume and two (2) child volumes are create where the child volume inherit properties from the parent. When the inherit flag is explicitly used, the allowgrant parameter for the parent volume is not required.

  • For child volumes, c1 and c2, inheritance is explicit because the inherit option is specified. Thus, p1.c1 and p1.c2 volumes will inherit all properties from volume p1 (note that p1 is not a parent of p1.c1) regardless of whether the allowgrant option is set on p1 or not. In this case, there is an explicit inheritance ant the allowgrant flag is ignored and volume properties are inherited.
  • For the child volume, c3, inheritance is implicit. Meaning, the child volume, p1.c3, inherits all properties from the parent volume, p1, only if the allowgrant option is set on p1.
/opt/mapr/bin/maprcli volume create -name p1 -path /p1
/opt/mapr/bin/maprcli volume create -name p1.c1 -inherit p1
/opt/mapr/bin/maprcli volume create -name p1.c2 -path /p1/c2 -inherit p1
/opt/mapr/bin/maprcli volume create -name p1.c3 -path /p1/c3
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=p1&path=%2Fp1' --user <username>:<password>
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=p1.c1&inherit=p1' --user <username>:<password>
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=p1.c2&path=%2Fp1%2Fc2&inherit=p1' --user <username>:<password>
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=p1.c3&path=%2Fp1%2Fc3' --user <username>:<password>

In the following example, the p1.child volume normally inherits from the p1 parent volume properties because p1.child is mounted under p1 and allowgrant option is set to true on the parent volume. However, if the child volume doesn't want to inherit properties, then set the allowinherit option to false (default: true).

/opt/mapr/bin/maprcli volume create -name p1 -path /p1 -allowgrant true
/opt/mapr/bin/maprcli volume create -name p1.child -path /p1/p1.child -allowinherit false
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=p1&path=%2Fp1&allowgrant=true' --user <username>:<password>
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=p1.child&path=%2Fp1%2Fp1.child&allowinherit=false' --user <username>:<password>

Create a volume with namespace container replicas

/opt/mapr/bin/maprcli volume create -name testVol -nsminreplication 2 -nsreplication 3 -json
{
	"timestamp":1526525132522,
	"timeofday":"2018-05-16 07:45:32.522 GMT-0700 PM",
	"status":"OK",
	"total":0,
	"data":[
		
	],
	"messages":[
		"Successfully created volume: 'testVol'"
	]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=testVol&path=/testVol&nsminreplication=2&nsreplication=3' --user <username>:<password>
{"timestamp":1526525257461,"timeofday":"2018-05-16 07:47:37.461 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'testVol'"]}

Create a volume and set ACEs

/opt/mapr/bin/maprcli volume create -name testVol -readAce p -writeAce 'g:group1&!u:user1' -json
{
	"timestamp":1526525429326,
	"timeofday":"2018-05-16 07:50:29.326 GMT-0700 PM",
	"status":"OK",
	"total":0,
	"data":[
		
	],
	"messages":[
		"Successfully created volume: 'testVol'"
	]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=testVol&readAce=p&writeAce=g%3Agroup1%26%21u%3Auser1' --user <username>:<password>
{"timestamp":1526525572035,"timeofday":"2018-05-16 07:52:52.035 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'testVol'"]}

Create a volume with auditing disabled for specific operations

/opt/mapr/bin/maprcli volume create -name test-volume -auditenabled true -dataauditops --lookup,-read,-write -json
{
	"timestamp":1526525720308,
	"timeofday":"2018-05-16 07:55:20.308 GMT-0700 PM",
	"status":"OK",
	"total":0,
	"data":[
		
	],
	"messages":[
		"Successfully created volume: 'test-volume'"
	]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=test-volume&path=/test/test-volume&auditenabled=true&dataauditops=%2D%2Dlookup%2C%2Dread%2C%2Dwrite' --user <username>:<password>
{"timestamp":1526525795017,"timeofday":"2018-05-16 07:56:35.017 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'test-volume'"]}

Create a volume and grant user permissions on the volume:

/opt/mapr/bin/maprcli volume create -name testVol1 -path /testVol1 -user user1:dump user2:fc -json
{
    "timestamp":1521162402826,
    "timeofday":"2018-03-15 06:06:42.826 GMT-0700 PM",
    "status":"OK",
    "total":0,
    "data":[
    ],
    "messages":[
        "Successfully created volume: 'testVol1'"
    ]
}
curl -X POST 'https://10.10.82.24:8443/rest/volume/create?name=testVol&path=/testVol&user=user1%3Adump%20user2%3Afc' --user <username>:<password>
{"timestamp":1526526072608,"timeofday":"2018-05-16 08:01:12.608 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'testVol'"]}
/opt/mapr/bin/maprcli volume create -name testVol -path /testVol2 -user user1:dump,restore user2:a,fc -json
{
    "timestamp":1521162467485,
    "timeofday":"2018-03-15 06:07:47.485 GMT-0700 PM",
    "status":"OK",
    "total":0,
    "data":[
    ],
    "messages":[
        "Successfully created volume: 'testVol2'"
    ]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=testVol2&path=/testVol2&user=user1%3Adump%2Crestore%20user2%3Aa%2Cfc' --user <username>:<password>
{"timestamp":1526526256845,"timeofday":"2018-05-16 08:04:16.845 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'testVol2'"]}

Create a volume for a tenant

This example creates a volume for a tenant with the following parameters:
  • name: volumename
  • path: /volumepath
  • advisoryquota: 500MB
  • quota: 1GB
  • replication: 3
/opt/mapr/bin/maprcli volume create -name tenantVol -cluster ksTest -path /egTenant -tenantuser egTenant -advisoryquota 500M -quota 1G -replication 3 -json
{
	"timestamp":1526526462865,
	"timeofday":"2018-05-16 08:07:42.865 GMT-0700 PM",
	"status":"OK",
	"total":0,
	"data":[
		
	],
	"messages":[
		"Successfully created volume: 'tenantVol'"
	]
} 
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=tenantVol&cluster=ksTest&path=/egTenant&advisoryquota=500M&quota=1G&replication=3' --user <username>:<password>
{"timestamp":1526526615167,"timeofday":"2018-05-16 08:10:15.167 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'tenantVol'"]}

Create a volume with on-wire encryption enabled for all files and tables in the volume:

/opt/mapr/bin/maprcli volume create -name test-Volume -path /testvolume -type rw -wiresecurityenabled true -json
{
	"timestamp":1526526686905,
	"timeofday":"2018-05-16 08:11:26.905 GMT-0700 PM",
	"status":"OK",
	"total":0,
	"data":[
		
	],
	"messages":[
		"Successfully created volume: 'test-Volume'"
	]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=test-volume&path=/testVolume&type=rw&wiresecurityenabled=true' --user <username>:<password>
{"timestamp":1526526748723,"timeofday":"2018-05-16 08:12:28.723 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'test-volume'"]}

Create a sub-volume and do not inherit schedules from the parent volume:

/opt/mapr/bin/maprcli volume create -name p1.c2 -path /p1/p1.c2 -skipinherit schedule -json
{
        "timestamp":1505196021575,
        "timeofday":"2017-09-11 11:00:21.575 GMT-0700",
        "status":"OK",
        "total":0,
        "data":[

        ],
        "messages":[
                "Successfully created volume: 'p1.c2'"
        ]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=p1.c2&path=/p1/p1.c2&skipinherit=schedule' --user <username>:<password>
{"timestamp":1526526980643,"timeofday":"2018-05-16 08:16:20.643 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'p1.c2'"]}

Create a mirror volume and do not inherit the schedule(s) from the source volume:

/opt/mapr/bin/maprcli volume create -name p1.m2 -path /p1/p1.m2 -type mirror -source p1@ksTest -skipinherit schedule -json
{
        "timestamp":1505196450141,
        "timeofday":"2017-09-11 11:07:30.141 GMT-0700",
        "status":"OK",
        "total":0,
        "data":[

        ],
        "messages":[
                "Successfully created volume: 'p1.m2'"
        ]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=p1.m2&path=/p1/p1.m2&type=mirror&source=p1@ksTest&skipinherit=schedule' --user <username>:<password>
{"timestamp":1526527151925,"timeofday":"2018-05-16 08:19:11.925 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'p1.m2'"]}

Create a volume and enable tiering, but do not specify the tier type and do not associate an offload rule or schedule:

/opt/mapr/bin/maprcli volume create -name sampleVol -path /sampleVol -tieringenable true -json
{
	"timestamp":1519922099117,
	"timeofday":"2018-03-01 08:34:59.117 GMT-0800 AM",
	"status":"OK",
	"total":0,
	"data":[
		
	],
	"messages":[
		"Successfully created volume: 'sampleVol'"
	]
}
curl -X POST 'https://10.10.82.24:8443/rest/volume/create?name=sampleVol&path=/sampleVol&tieringenable=true' --user <username>:<password>
{"timestamp":1519922181381,"timeofday":"2018-03-01 08:36:21.381 GMT-0800 AM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'sampleVol'"]}

Create a volume, enable cold tiering, associate a rule and schedule for offloading data, and set the number of days to keep recalled data:

/opt/mapr/bin/maprcli volume create -name sampleVol -path /sampleVol -tieringenable true -tiername ksTestCold -tieringrule rule1 -offloadschedule 2 -recallexpirytime 2 -json
{
	"timestamp":1519922642632,
	"timeofday":"2018-03-01 08:44:02.632 GMT-0800 AM",
	"status":"OK",
	"total":0,
	"data":[
		
	],
	"messages":[
		"Successfully created volume: 'sampleVol'"
	]
}
curl -X POST 'https://10.10.82.24:8443/rest/volume/create?name=sampleVol&path=/sampleVol&tieringenable=true&tiername=ksTestCold&tieringrule=rule1&offloadschedule=2&recallexpirytime=2' --user <username>:<password>
{"timestamp":1519922784818,"timeofday":"2018-03-01 08:46:24.818 GMT-0800 AM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'sampleVol'"]}

Create a volume, enable warm tiering, associate a rule and schedule for offloading data, and set the number of days to keep recalled data:

/opt/mapr/bin/maprcli volume create -name sampleVol -path /sampleVol -tieringenable true -tiername ksTestEC -tieringrule testRule -ecscheme 6+3 -ectopology /ecdata -offloadschedule 2 -recallexpirytime 2 -json
{
    "timestamp":1516336193635,
    "timeofday":"2018-01-19 04:29:53.635 GMT+0000",
    "status":"OK",
    "total":0,
    "data":[
        
    ],
    "messages":[
        "Successfully created volume: 'sampleVol'"
    ]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=sampleVol&path=/sampleVol&tieringenable=true&tiername=testWarm&tieringrule=testRule&ecscheme=6%2B3&ectopology=/ecdata&offloadschedule=2&recallexpirytime=2' --user <username>:<password>
{"timestamp":1526521538688,"timeofday":"2018-05-16 06:45:38.688 GMT-0700 PM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'sampleVol'"]}
Create a volume and enable it for warm tiering, but do not specify tier name:
/opt/mapr/bin/maprcli volume create -name sampleVol3 -path /sampleVol3 -ecenable true -json
{
	"timestamp":1527690187540,
	"timeofday":"2018-05-30 07:23:07.540 GMT-0700 AM",
	"status":"OK",
	"total":0,
	"data":[
		
	],
	"messages":[
		"Successfully created volume: 'sampleVol3'"
	]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=sampleVol3&path=/sampleVol3&ecenable=true'  --user <username>:<password>
{"timestamp":1527690187540,"timeofday":"2018-05-30 07:23:07.540 GMT-0700 AM","status":"OK","total":0,"data":[],"messages":["Successfully created volume: 'sampleVol3'"]}

Create a volume with a security policy:

/opt/mapr/bin/maprcli volume create -name volTest1 -securitypolicy LabTest -enforcementmode PolicyAceOnly
/opt/mapr/bin/maprcli volume info -name volTest1 -columns enforcementMode,securityPolicyTags -json
{
"timestamp":1536160885967,
"timeofday":"2018-09-05 08:21:25.967 GMT‌-0700 AM",
"status":"OK",
"total":1,
"data":[
{
"securityPolicyTags":"[LabTest]",
"enforcementMode":"PolicyAceOnly"
}
]
}
curl -X POST 'https://abc.sj.us:8443/rest/volume/create?name=volTest1&securitypolicy=LabTest&enforcementmode=PolicyAceOnly' --user <username>:<password>
curl -X POST 'https://abc.sj.us:8443/rest/volume/info?name=volTest1&columns=enforcementmode;PolicyAceOnly' --user <username>:<password>