Skip to main content
  • Place orders quickly and easily
  • View orders and track your shipping status
  • Enjoy members-only rewards and discounts
  • Create and access a list of your products

Dell EMC ObjectScale 1.2.x Administration Guide

Bucket Replication Policy

A Bucket Replication Policy is an XML document that the user constructs and sets on a bucket.

You can create the Bucket Replication Policy XML document with the ObjectScale Portal user interface or the S3 API. Follow the XML format defined by AWS (https://docs.aws.amazon.com/AmazonS3/latest/API/API_PutBucketReplication.html).

NOTE: Most of the fields are compatible with AWS, some fields (such as destination arn) are not compatible with AWS.

When using the ObjectScale Portal user interface to manage bucket replication settings, go to the Replication tab of a bucket (Object Store > Bucket > Replication ). From the Replication tab, you can manage replication policy of the bucket.

Figure 1. Bucket replication settings

You can create a NEW REPLICATION RULE using the New Replication Rule wizard, which helps in adding a rule to the replication policy of the bucket.

A replication rule can define only one destination target, it cannot define multiple destinations in a single replication rule. A replication rule that is created can have only one destination bucket.

Also, from the Replication tab you can edit or delete a rule, enable or disable rules, and change the priority of rules. The Receive Objects button is used to configure a bucket as a destination bucket. For more information, see Manage a Bucket Replication Policy using ObjectScale UI.

When managing policy documents using the S3 API, an example basic policy XML document might look like:

<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Role>arn:aws:iam::AcctID:role/role-name</Role>         
								<!-- the IAM role used to perform the object replication -->
  <Rule>                                                  
								<!-- Defines a Rule, to match objects and specify where they need to be sent -->
    <ID>rule1</ID>
    <Priority>1</Priority>
    <Status>Enabled</Status>
    <Filter><Prefix>important/</Prefix></Filter>          
								<!-- A filter to identify which objects to replicate -->
    <Destination><Bucket>arn: </Bucket></Destination>
  </Rule>
</ReplicationConfiguration>

The IAM role used to perform the object replication must have permissions to replicate objects from the source bucket to the destination bucket. Also, it must be a service role which allows the s3 service to assume it. The filter of a replication rule can specify an optional prefix for prefix matching the object name, and an optional set of object tags to match. A single policy supports up to 1000 rules.

ObjectScale supports the standard AWS S3 APIs for getting, setting, and deleting the replication policy on a bucket.

Endpoint API Permissions Needed
PUT /?replication PutBucketReplications3:PutReplicationConfiguration
GET /?replication GetBucketReplications3:GetReplicationConfiguration
DELETE /?replication DeleteBucketReplications3:PutReplicationConfiguration

Amazon defines two versions of Replication Policies (V1 and V2). ObjectScale supports the V2 policy format. ObjectScale bucket replication policies support most of the V2 tags. There is no support for:

  • S3 RTC-related tags (Metrics and ReplicationTime),
  • The ExistingObjectReplication tag
  • Tags that are related to KMS-encrypted objects, and
  • Tags related to delete marker replication or replica sync.

Replication Rules

User replication configuration could include at most 1000 (default, configurable if users have more resource) rules.

  • Each rule can specify only one destination bucket.
    • If there is a requirement to specify multiple destination buckets, the user has to configure multiple rules.
    • The bucket is specified with the bucket ARN (include ObjectScale, object store and bucket name). Up to four (default, configurable if users have more resource) destinations for single bucket replication configurations. From ObjectScale Portal, you can only select one destination per policy.
  • Each rule specifies the scope of the objects that this rule match.

    The scope could be an entire bucket or object with specified prefix or specified tags. Configurations for whether to replicate KMS-encrypted objects are ignored.

  • Able to specify the replication behavior for each rule, like storage class REPLICA object writes on each destination, or whether REPLICA owner must be changed.
  • Able to specify whether a rule is disabled or enabled.
  • Set a priority for each rule. When a user creates an object and matches multiple rules for one destination, only the rule with the highest priority takes effect. Rules for different target do not interfere with each other.
  • Replication Behavior sets as when the object version is created.

    Changes (priority, behavior, scope, and so on) on rules after creation of the object version only affects whether a further attribute update is replicated. It does not impact replication behavior for this object version (that is storage class on destination or if owner is changed).

Bucket Replication Limits

Policy property Default Maximum Description
Destinations per bucket 4 While configuring replication rules, you can configure up to four unique destinations.
NOTE: From ObjectScale Portal, you can only select one destination per policy.
Rules per policy 1000 The maximum number of rules allowed in a single replication policy.
Policy size (bytes) 2 MB The maximum size of a replication policy, in bytes. 2 MB allows 1000 rules per destination with about 2 KB of filters and other configuration per rule.

Bucket Replication to multiple destinations

ObjectScale supports replication to multiple destinations. The limitation is that there cannot be more than one destination bucket in the same object store within a single replication policy.

Shown below is a simple example of an XML document for a bucket replication policy with multiple destinations:

<?xml version="1.0" encoding="UTF-8"?>
<ReplicationConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
  <Role>arn:aws:iam::AcctID:role/jimmy</Role>
  <Rule>
    <ID>rule1</ID>
    <Priority>1</Priority>
    <Filter><Prefix>foo</Prefix></Filter>
    <Destination><Bucket>arn:aws:s3:US-E:foo:bucket1</Bucket></Destination>
  </Rule>
  <Rule>
    <ID>rule2</ID>
    <Priority>2</Priority>
    <Filter><Prefix>food</Prefix></Filter>
    <Destination>
      <Bucket>arn:aws:s3:US-E:foo:bucket1</Bucket>
      <StorageClass>MCFREEZE</StorageClass>
    </Destination>
  </Rule>
  <Rule>
    <ID>rule3</ID>
    <Priority>3</Priority>
    <Filter><Prefix>foodo</Prefix></Filter>
    <Destination><Bucket>arn:aws:s3:US-W:foo:bucket2</Bucket></Destination>
  </Rule>
</ReplicationConfiguration>

In this example policy, there are two different destination buckets. Depending on the name of the object, some of the rules match and will determine the destination bucket that the object is replicated to and the parameters for that replication.

For example:

Object Name Rules Matched Destination Buckets Other Behavior
bar none no replication none
foo rule1 bucket1 none
food rule1, rule2 bucket1 The storage class of the object in bucket1 will be set to MCFREEZE because rule2 has the highest priority of all the rules that matched for destination "bucket1".
foodo rule1, rule2, rule3 bucket1 & bucket2 The storage class of the object in bucket1 will be set to MCFREEZE because rule2 has the highest priority of all the rules that matched for destination "bucket1". The storage class of the object in bucket2 will still be the bucket's default storage class.

Rate this content

Accurate
Useful
Easy to understand
Was this article helpful?
0/3000 characters
  Please provide ratings (1-5 stars).
  Please provide ratings (1-5 stars).
  Please provide ratings (1-5 stars).
  Please select whether the article was helpful or not.
  Comments cannot contain these special characters: <>()\