Updated on 2025-08-26 GMT+08:00

Data Replication Overview

Scenarios

If a fault occurs during data storage, services will be severely affected. Therefore, the DR capability is critical to data storage. You can replicate data to other buckets (in the same region or a different region) for backup and DR.

Data replication is classified into the following types: cross-region replication within an account, cross-region replication across accounts, same-region replication within an account, and same-region replication across accounts.

The following source and destination buckets of data replication are Huawei Cloud OBS buckets.

Contents Replicated

During data replication between buckets, the data involved is often already configured with features such as versioning, lifecycle rules, server-side encryption, and WORM retention policies. The following explains how these features affect replication, specifically, which data will be replicated and which will not.

The impact of versioning on data replication is as follows:

Table 1 The impact of versioning on cross-region replication within an account

Condition

Operation

Replication Result

(Using OBS Console)

Replication Result

(Using OBS APIs)

Replication Result

(Using obsutil)

The versioning status (disabled, enabled, or suspended) of the source bucket is the same as that of the destination bucket.

-

Data can be replicated.

Data can be replicated.

Data can be replicated.

The versioning status (disabled, enabled, or suspended) of the source bucket is different from that of the destination bucket.

-

Data cannot be replicated.

Data cannot be replicated.

Data cannot be replicated.

Cross-region replication within an account is enabled.

Chang the versioning status of the source or destination bucket.

Data cannot be replicated.

Data cannot be replicated.

Data cannot be replicated.

Versioning is enabled (or suspended) for both the source and destination buckets and cross-region replication within an account is enabled for both buckets.

Delete an object from the source bucket without specifying a version.

The object copy will be deleted synchronously from the destination bucket.

Delete a specified version of an object from the source bucket.

The copy of the object version will be deleted from the destination bucket.

Versioning is disabled for both the source and destination buckets but cross-region replication within an account is enabled for both buckets.

Delete an object from the source bucket.

The object copy will be deleted synchronously from the destination bucket.

The versioning status (enabled or disabled) of the source bucket must be the same as that of the destination bucket. Otherwise, data cannot be replicated across regions under the same account.

Table 2 The impact of versioning on cross-region replication across accounts

Condition

Operation

Replication Result

(Using the OMS Console)

Replication Result

(Using OMS APIs)

Replication Result

(Using obsutil)

The versioning status (disabled, enabled, or suspended) of the source bucket is the same as that of the destination bucket.

Upload or modify an object.

The new object or object modification will be replicated.

The new object or object modification will be replicated.

The new object or object modification will be replicated.

The versioning status (disabled, enabled, or suspended) of the source bucket is different from that of the destination bucket.

Upload or modify an object.

The new object or object modification will be replicated.

The new object or object modification will be replicated.

The new object or object modification will not be replicated.

Versioning is enabled (or suspended) for both the source and destination buckets.

Delete an object from the source bucket without specifying a version.

The object copy will not be deleted from the destination bucket.

Delete a specified version of an object from the source bucket.

The copy of the object version will not be deleted from the destination bucket.

Versioning is disabled for both the source and destination buckets.

Delete an object from the source bucket.

The object copy will not be deleted from the destination bucket.

The object copy will not be deleted from the destination bucket.

The object copy will be deleted synchronously from the destination bucket.

Table 3 The impact of versioning on same-region replication (within an account or across accounts)

Condition

Operation

Replication Result

(Using the OMS Console)

Replication Result

(Using OMS APIs)

Replication Result

(Using OBS APIs)

Replication Result

Using OBS SDKs

Replication Result

(Using obsutil)

The versioning status (disabled, enabled, or suspended) of the source bucket is the same as that of the destination bucket.

Upload or modify an object.

The new object or object modification will be replicated.

The new object or object modification will be replicated.

The new object or object modification will be replicated.

The new object or object modification will be replicated.

The new object or object modification will be replicated.

The versioning status (disabled, enabled, or suspended) of the source bucket is different from that of the destination bucket.

Upload or modify an object.

The new object or object modification will be replicated.

The new object or object modification will be replicated.

The new object or object modification will not be replicated.

The new object or object modification will not be replicated.

The new object or object modification will not be replicated.

Versioning is enabled (or suspended) for both the source and destination buckets.

Delete an object from the source bucket without specifying a version.

The object copy will not be deleted from the destination bucket.

The object copy will not be deleted from the destination bucket.

The object copy will be deleted synchronously from the destination bucket.

The object copy will be deleted synchronously from the destination bucket.

The object copy will be deleted synchronously from the destination bucket.

Delete a specified version of an object from the source bucket.

The copy of the object version will not be deleted from the destination bucket.

The copy of the object version will not be deleted from the destination bucket.

The copy of the object version will be deleted from the destination bucket.

The copy of the object version will be deleted from the destination bucket.

The copy of the object version will be deleted from the destination bucket.

Versioning is disabled for both the source and destination buckets.

Delete an object from the source bucket.

The object copy will not be deleted from the destination bucket.

The object copy will not be deleted from the destination bucket.

The object copy will be deleted synchronously from the destination bucket.

The object copy will be deleted synchronously from the destination bucket.

The object copy will be deleted synchronously from the destination bucket.

The impact of lifecycle rules on data replication is as follows:

  • If the source bucket has a lifecycle rule for deleting expired objects, the lifecycle rule will not be applied to the destination bucket. Objects deleted due to the lifecycle rule in the source bucket will not be deleted from the destination bucket.
  • If a lifecycle rule (excluding deletion upon expiration) is configured for the source bucket, the rule will not be applied to the destination bucket. However, the effects of the rule will be synchronized to the destination bucket.

The impact of server-side encryption on data replication is as follows:

  • If the objects in the source bucket are not encrypted and no encryption is configured for the destination bucket, the object copies in the destination bucket are not encrypted.
  • If the objects in the source bucket are not encrypted but SSE-OBS is configured for the destination bucket, object copies in the destination bucket are also encrypted using SSE-OBS.
  • If the objects in the source bucket are not encrypted but SSE-KMS is configured for the destination bucket using the default key or a custom key, the object copies in the destination bucket are encrypted in the same way as the destination bucket.
  • If the objects in the source bucket are encrypted using SSE-OBS, the object copies in the destination bucket are encrypted in the same way as the objects in the source bucket, regardless of whether encryption is configured for the destination bucket.
  • If the objects in the source bucket are encrypted using SSE-KMS with the default key or a custom key, the object copies in the destination bucket are encrypted in the same way as the objects in the source bucket, regardless of whether encryption is configured for the destination bucket.
  • If the objects in the source bucket are encrypted using SSE-C, they cannot be replicated when you use OBS Console or OBS APIs, but can be replicated when you use OBS SDKs, obsutil, OMS console, or OMS APIs.

If a WORM retention policy is configured for a bucket and the retention period does not expire, you can upload objects to or read objects in the bucket, but cannot modify (overwrite) or delete objects in it. For details, see Configuring WORM to Protect Objects from Being Overwritten or Deleted.

The impact of WORM retention policies on data replication is as follows:

  • If the source bucket (together with objects in it) is in the WORM retention period, whether the destination bucket is in the WORM retention period does not affect the replication operation. Newly uploaded objects will be replicated to the destination bucket, but the WORM retention policy of the source bucket will not be replicated.
  • If the source bucket is not in the WORM retention period:
    • If the objects in the source bucket are in the WORM retention period, whether the destination bucket is in the WORM retention period does not affect the replication operation. Newly uploaded objects will be replicated to the destination bucket, but the WORM retention policy of the source objects will not be replicated.
    • If the objects in the source bucket are not in the WORM retention period but the destination bucket is, newly uploaded objects will be replicated to the destination bucket, but object modifications or deletions will not.
    • If the destination bucket and the objects in the source bucket are not in the WORM retention period, newly uploaded objects or object modifications will be replicated to the destination bucket; object deletions will be replicated to the destination bucket when you use OBS Console, APIs, SDKs, or obsutil, but will not be replicated when you use the OMS console or APIs.
  • The creation time of the object copy in the destination bucket is the creation time of the object in the source bucket, not the time when the object is replicated to the destination bucket.
  • The impact of storage classes on data replication is as follows:
    • Objects in the Archive, or Deep Archive storage class in the source bucket can be replicated to the destination bucket only when they have been restored. If source objects are not restored or are being restored, the replication will fail.
    • If the region where the destination bucket resides does not support storage class setting or does not support a certain storage class, the object copies are stored in the Standard storage class.
  • The impact of object ACLs on data replication is as follows:
    • If source objects have ACLs configured, the objects and their ACLs will be replicated when you use OBS Console, APIs, SDKs, or obsutil. If you use the OMS console or APIs, the objects will be replicated but their ACLs will not.
    • If source objects have no ACLs configured, the objects will be replicated regardless of which method is used.

Data Restoration Billing

  • When you use the OMS console or APIs to migrate data, OBS APIs of the source and destination ends are invoked to upload and download data. You will be billed for the API requests and data download traffic. For details, see OMS Billing. In addition, you will be billed for storing the objects in the destination bucket. For details, see Storage Costs.
  • When you use OBS Console, APIs, or obsutil to replicate data across regions, you will be billed for requests, traffic, and storage. For details, see Table 4.
    Table 4 Billing for cross-region replication

    Action

    Billing Item

    Description

    Replicate data across regions

    Requests

    You are billed for the number of successfully replicated objects. Successfully replicating one object creates a copy request. For details, see Copying Objects.

    To learn about the request billing, see Requests.

    Data transfer

    You are billed for the amount of data transferred from one region to another.

    If objects are encrypted using server-side encryption, the cost of their cross-region replication traffic is calculated based on the length of the plaintext for SSE-KMS and SSE-OBS.

    Storage space

    Storage space occupied by objects stored in the destination bucket.

    If you have specified another storage class for object copies in the destination bucket, these copies are billed based on the new storage class.

    If objects are encrypted using server-side encryption, their storage cost is calculated based on the length of the ciphertext.

    Synchronize existing objects

    Requests

    You are billed for the number of existing objects that are successfully replicated to the destination bucket.

    With synchronization of existing objects enabled, OBS synchronously replicates the objects that already exist in the bucket before a cross-region replication rule is created to the destination bucket.

    Data transfer

    You are billed for the traffic generated when OBS synchronizes objects across regions.

    If historical objects are encrypted using server-side encryption, the cost of their cross-region replication traffic is calculated based on the length of the plaintext for SSE-KMS and SSE-OBS.

    Storage space

    Storage space occupied by objects stored in the destination bucket.

    If you have specified another storage class for object copies in the destination bucket, these copies are billed based on the new storage class.

    If historical objects are encrypted using server-side encryption, their storage cost is calculated based on the length of the ciphertext.

  • When you use OBS APIs, SDKs, Browser+, or obsutil to replicate data within the same region, you will be billed for requests and storage. For details, see Table 5.
    Table 5 Billing for cross-bucket replication in the same region

    Action

    Billing Item

    Description

    Replicate data across buckets in the same region

    Requests

    You are billed for the number of successfully replicated objects. Successfully replicating one object creates a copy request. For details, see Copying Objects.

    To learn about the request billing, see Requests.

    Data transfer

    Free, because data in the same region is replicated over an intranet.

    Storage space

    Storage space occupied by objects stored in the destination bucket.

    If you have specified another storage class for object copies in the destination bucket, these copies are billed based on the new storage class.