Creating a Storage Policy

You can create a storage policy (or rule) using the MapR Control System, CLI, and REST API.

Creating a Storage Policy Using the MapR Control System

To create a storage policy (or rule) using MCS:
  1. Log in to MCS, click Data > Volumes, and then do one of the following:
    • Go to the Storage Policies tab if you wish to create a storage policy that is not (yet) associated with a volume.
    • Click Create Volume if you wish to create a storage policy for a volume when you are creating the volume.
      Note: You must enable data tiering to create the storage policy.
    • Click Edit Volume in the volume information page if you wish to create a storage policy for a volume when you are editing the volume settings.
  2. Click one of the following to display the Create Storage Policy dialog.
    • Create Policy if you are in the Storage Policies tab.
    • Create link associated with the Storage Policy field if you are in the Create New Volume page.
    • Create link associated with the Storage Policy field if you are in the Edit Volume page.
  3. Enter a name for the storage policy in the Storage Policy Name text field.
  4. Choose Basic or Advanced radio button to define the criteria for offloading data.
    Basic rule can contain user name or group name and number of days since the file was last modified (for the specified user or group). You can click:
    • to add another user or group and specify number or days since modified for the user or group
    • to remove a user or group
    Advanced rule can be defined using a combination of the following expressions:
    u Username or user ID, as configured in the OS registry (such as /etc/passwd file, LDAP, etc.), of a specific user.

    Usage: u:<username or user ID>

    g Group name or group ID, as configured in the OS registry (such as /etc/group file, LDAP, etc.), of a specific group.

    Usage: u:<groupname or group ID>

    m (mtime) Time (in seconds or days) since the files were last modified. The number of seconds can be specified by appending s to value and the number of days can be specified by appending d to the value.

    Usage:

    • "m:<value>s" — specifies mtime in seconds
    • "m:<value>d" — specifies mtime in days
    All files whose modification timestamp (mtime) exceeds the specified amount of time are offloaded.
    Note: If the system time on CLDB and file server nodes are different, the mtime rule for offloading data may not work as intended.
    s The size of the file in bytes, kilobytes, megabytes, or gigabytes. The size of the file can be specified by appending one of the following to the value: b for bytes, k for kilobytes, m for megabytes, or g for gigabytes.

    Usage

    • "s:<value>b" — specifies filesize in bytes
    • "s:<value>k" — specifies filesize in KB
    • "s:<value>m" — specifies filesize in MB
    • "s:<value>g" — specifies filesize in GB
    All files whose size exceeds the specified size are offloaded.
    Or, use the following:
    p (Default) Specifies all files. Specifies that this operation is applicable to all the files without restriction. This cannot be combined with any other operator.
    "" Indicates none of the files. Specifies that this operation cannot be performed on any of the files.
    Use the following to string multiple criteria for offload:
    & AND operation to combine multiple expressions as the criteria for the rule.
    | OR operation to indicate either of the expressions as the criteria for the rule.
    () Delimiters for subexpressions.

    If rule is not defined, the default rule, which is all files (p), is associated with the storage policy.

  5. Click Create Policy to create the storage policy.

Creating a Rule Using the CLI and REST API

Run the following command to create a rule:
$ maprcli tier rule create -name <rule_name> -expr <expressions>
Send a request of type POST. For example:
# curl -k -X POST 'https://abc.sj.us:8443/rest/tier/rule/create?name=rule1&expr=m:365d' --user mapr:mapr
{"timestamp":1519681475025,"timeofday":"2018-02-26 01:44:35.025 GMT-0800 PM","status":"OK","total":0,"data":[],"messages":["Successfully created rule: 'rule1'"]}

For more information, see tier rule create.