Skip to main content

Overview

Storage policies define how object data is placed, replicated, and protected across storage nodes. Each container is assigned to exactly one policy at creation time — the policy cannot be changed after the container is created. Multiple policies enable tiered storage (standard replication, erasure coding, SSD-backed performance tiers, and archival tiers).
Administrator Access Required — This operation requires the admin role. Contact your Polystack administrator if you do not have sufficient permissions.
Prerequisites
  • Admin credentials sourced from openrc.sh
  • Object Storage service deployed and healthy
  • Storage rings built for each policy (see Ring Management)

Policy Types

Polystack Object Storage supports three storage policy types. Each maps to a distinct object ring file and enforces different data placement and durability behavior.
Replication policies store N identical copies of every object across distinct storage zones. Each replica is fully readable independently — no reconstruction is needed.
3-replica replication is the recommended default for general-purpose workloads. It tolerates simultaneous loss of any one zone with no data loss and no performance penalty during reads.

Policy Configuration Reference

Storage policies are defined in the Object Storage configuration managed by the deployment console. The configuration is applied during deployment via ironcore-ansible deploy -t swift.
swift.conf — storage policy definition

View and Manage Policies

Navigate to Object Storage

Navigate to Storage > Object Storage. The storage policy is shown as a column in the container list and is selectable during container creation.

Create a container with a specific policy

Click Create Container. In the Storage Policy dropdown, select the desired policy (e.g., gold, archive). Leaving the field blank assigns the default policy.
The storage policy field is only visible if multiple policies are configured in your cluster. If only one policy exists, containers are automatically assigned to it.

S3 API Compatibility

Polystack Object Storage exposes an S3-compatible API endpoint alongside the native Swift API. All storage policies are accessible via both APIs.
The S3-compatible endpoint uses the same underlying storage policies. Buckets created via S3 API map to Swift containers and inherit policy assignment behavior.
Create bucket via S3 API (default policy)
Upload object via S3 API
S3 bucket-to-policy mapping is configured by your administrator. Contact your Polystack administrator to assign a specific storage policy to S3 buckets, or use the Swift API to create containers with explicit policy selection.
Supported S3 API operations:
  • Bucket operations: CreateBucket, ListBuckets, DeleteBucket, GetBucketLocation
  • Object operations: PutObject, GetObject, DeleteObject, HeadObject, ListObjectsV2
  • Multipart: CreateMultipartUpload, UploadPart, CompleteMultipartUpload
  • ACLs: GetBucketAcl, PutBucketAcl, GetObjectAcl
  • Versioning: GetBucketVersioning, PutBucketVersioning, ListObjectVersions

Multi-Cloud Access Patterns

Polystack Object Storage integrates with external cloud object storage providers. Tenant virtual machines can access multiple object storage systems using standard CLI tools and SDKs.
Rclone provides a unified interface for Polystack Object Storage, AWS S3, Google Cloud Storage, and Azure Blob Storage.
Configure Rclone for Polystack Object Storage
Sync from AWS S3 to Polystack Object Storage
Mount Polystack container as local filesystem
The AWS CLI connects to the Polystack S3-compatible endpoint using standard credentials.
Configure AWS CLI for Polystack S3 endpoint
List buckets
Sync local directory to Polystack
boto3 client for Polystack S3-compatible endpoint
Polystack Image Service can store VM images and snapshots directly in Object Storage, eliminating local disk requirements on the image service nodes.
glance-api.conf — Swift backend
glance-api.conf — S3-compatible backend (Ceph RGW)
Using Object Storage as the Glance backend allows image sharing across all cluster nodes without NFS or shared filesystem dependencies.

Deprecated Policies

Mark a policy as deprecated to prevent new containers from using it while maintaining full access for existing containers.
Deprecate a policy via the deployment console configuration
Deprecated policies remain fully functional for existing containers. Only new container creation using the deprecated policy is blocked. Migrate data before removing the policy configuration entirely.

Best Practices

Plan Policies Before Deployment

Policy indexes and names are permanent once containers are created. Design your tier structure (standard, gold, archive) before the first container is provisioned.

Use EC for Archival Data

Erasure coding at 8+4 reduces storage overhead from 3× to 1.5× with equivalent or better durability. Apply EC to infrequently accessed data that tolerates higher read latency.

Tag Rings by Device Class

Use ring builder device class labels (SSD, HDD) to enforce hardware affinity. Never mix device classes in a single ring — it defeats the purpose of tiering.

Set Sensible Defaults

Configure the most common data tier as the default policy. Operators who need high-performance or archival storage explicitly specify the policy at container creation time.

Next Steps

Ring Management

Build and distribute ring files for each storage policy

Architecture

Understand how rings, proxy servers, and storage nodes interact

Replication

Monitor replication health and manage quarantined objects

Quotas

Set per-account and per-container storage limits