OpenStack Swift currently allows one storage policy for a container. In a typical setup, a storage policy represents backend devices with similar quality of service (QoS) characteristics like IOPS, time-to-first-byte, etc. This conflation of logical namespace with physical resources puts the burden of placing objects based on QoS through namespace partitioning on the application i.e., store objects with QoS1 in Container1, and objects with QoS2 in Container2, etc. This reduces the flexibility of applications in utilizing containers for organizing objects into logically related buckets.
This slide deck describes Hybrid Container for OpenStack Swift. A Hybrid Container allows objects within a container to be stored on backends with different QoS characteristics e.g., different storage media like SSD/HDD/tape, or different storage policies such as replication and erasure coding.