Mapping of storage policies to filesets

For every storage policy created using the mmobj policy create command, one fileset is created or reused.

After a storage policy is created, you can specify that storage policy while creating new containers to associate that storage policy with those containers. When objects are uploaded into a container, they are stored in the fileset that is associated with the container’s storage policy. For every new storage policy, a new object ring is created. The ring defines where objects are located and also defines multi-region replication settings.

The name of the fileset can be specified optionally as an argument of the mmobj policy create command. An existing fileset can be used only if:

If even one of these prerequisites is missing, the mmobj policy create command fails. Otherwise, the fileset is used and the softlinks for the devices that are given to the ring builder point to it. If no fileset name is specified with the mmobj policy create command, a fileset is created using the policy name as a part of the fileset name with the prefix obj_.

For example, if a storage policy with name Test is created and no fileset is specified, a fileset with the name obj_Test is created and is linked to the base file system for object:

<object base filesystem mount point>/obj_Test/<n virt. Devices>
Attention: For any fileset that is created, its junction path is linked under the base file system for object. Any fileset that is used for a storage policy and its corresponding softlinks must not be changed for the junction path and the soft links. If it is changed, data might be lost or it might get corrupted.

To enable swift to work with the fileset, softlinks under the given devices path in object-server.conf are created:

<devices path in object-server.conf>/<n virt. Devices>
<object base filesystem mount point>/obj_Test/<n virt. Devices>