Container synchronization

To discover whether your Object Storage system supports container synchronization, see the section called “Discoverability”. Alternatively, check with your service provider.

Container synchronization enables you to synchronize the contents of a source container with a destination container. After you set up container synchronization, the system automatically copies objects from the source container to the destination container. Also, the system deletes objects in the destination container that were deleted in the source container.

The system copies objects in a way that object metadata is retained, such as Last-Modified and any custom metadata you might have set for the object.

You can configure the source and destination containers, as follows:

  • The source container can be on a different or the same Object Storage system that the destination container is on.

  • The destination container can be a source container for synchronization for another destination container.

  • The destination container can be the original source container: both containers synchronize with each other. Any object that you add to or delete from a container is automatically copied to or deleted from the other container.

The Object Storage system performs the synchronization in the background, and makes no guarantees about performance or timeliness.

Some Object Storage features, such as large object creation, might require the use of several containers. Container synchronization handles each container separately; if your object segments are located in a different container, they are not transferred unless you also set up container synchronization on that container. However, even if both the manifest and segment containers are synchronized, there is no guarantee that the manifest is transferred before the segment objects. An attempt to download the large object from the destination container might fail, be incomplete, or have jumbled content. Object versioning is not supported.

To configure a source container for synchronization, set the following metadata headers:

  • X-Container-Sync-To. Set this metadata header to the following value:

    //REALM/SYSTEM/DESTINATION_ACCOUNT/DESTINATION_CONTAINER_NAME

    Your service provider can give you the appropriate values for REALM and SYSTEM. The objects are sent to the DESTINATION_ACCOUNT/DESTINATION_CONTAINER_NAME container. These names can be different from the source account and container names.

  • X-Container-Sync-Key. Set this metadata header to an arbitrary string value. This value serves as a shared secret. Secure this value just as you would a password.

To configure a destination container to receive objects, set the X-Container-Sync-Key metadata header to the X-Container-Sync-Key value in the source container.

[Note]Note

To configure a destination container as the source container for another destination container, set the X-Container-Sync-To metadata header as you would for a source container.

Questions? Discuss on ask.openstack.org
Found an error? Report a bug against this page

loading table of contents...