<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.osnexus.com/index.php?action=history&amp;feed=atom&amp;title=Object_Storage_Classes_and_Cloud_Tiering</id>
	<title>Object Storage Classes and Cloud Tiering - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.osnexus.com/index.php?action=history&amp;feed=atom&amp;title=Object_Storage_Classes_and_Cloud_Tiering"/>
	<link rel="alternate" type="text/html" href="https://wiki.osnexus.com/index.php?title=Object_Storage_Classes_and_Cloud_Tiering&amp;action=history"/>
	<updated>2026-10-03T06:02:04Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.osnexus.com/index.php?title=Object_Storage_Classes_and_Cloud_Tiering&amp;diff=28149&amp;oldid=prev</id>
		<title>Qadmin: New page: object storage classes and tiering from local Ceph to AWS S3 / Glacier (6.9). Verified end to end on a 6.9.0 cluster against a real AWS S3 bucket</title>
		<link rel="alternate" type="text/html" href="https://wiki.osnexus.com/index.php?title=Object_Storage_Classes_and_Cloud_Tiering&amp;diff=28149&amp;oldid=prev"/>
		<updated>2026-09-28T17:40:01Z</updated>

		<summary type="html">&lt;p&gt;New page: object storage classes and tiering from local Ceph to AWS S3 / Glacier (6.9). Verified end to end on a 6.9.0 cluster against a real AWS S3 bucket&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;[[Category:admin_guide]]&lt;br /&gt;
&lt;br /&gt;
An Object Storage Class decides where the data of an S3 object lives. This page covers the two kinds QuantaStor creates on a scale-out object cluster -- pool-backed classes that place objects on a particular Ceph data pool, and cloud-tier classes that move objects out to a bucket on AWS S3, S3 Glacier or another S3-compatible service -- and walks through tiering objects from a local bucket to the cloud end to end.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Section !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| [[#Tiering objects to a cloud bucket, end to end|Tiering objects to a cloud bucket, end to end]] || The complete workflow: credentials, cloud storage class, lifecycle rule, verification&lt;br /&gt;
|-&lt;br /&gt;
| [[#Tiering is not replication|Tiering is not replication]] || How cloud tiering differs from bucket sync, Cloud Containers and backup&lt;br /&gt;
|-&lt;br /&gt;
| [[#How storage classes work|How storage classes work]] || STANDARD, pool-backed classes and cloud-tier classes&lt;br /&gt;
|-&lt;br /&gt;
| [[#Which cloud providers can back a storage class|Which cloud providers can back a storage class]] || Providers and their storage classes&lt;br /&gt;
|-&lt;br /&gt;
| [[#Creating a storage class|Creating a storage class]] || Every field of the Create Object Storage Class dialog&lt;br /&gt;
|-&lt;br /&gt;
| [[#Tiering to S3 Glacier and other archive classes|Tiering to S3 Glacier and other archive classes]] || Retrieval settings, which only the CLI accepts&lt;br /&gt;
|-&lt;br /&gt;
| [[#Steering new uploads with auto-tiering rules|Steering new uploads with auto-tiering rules]] || Picking a class at upload time instead of by age&lt;br /&gt;
|-&lt;br /&gt;
| [[#Deleting a storage class|Deleting a storage class]] || What is removed, what is refused, and Force&lt;br /&gt;
|-&lt;br /&gt;
| [[#Managing storage classes from the CLI|Managing storage classes from the CLI]] || Command reference&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Tiering objects to a cloud bucket, end to end ==&lt;br /&gt;
&lt;br /&gt;
Cloud tiering keeps recent objects on the local Ceph cluster and moves older ones to a cheaper bucket in the cloud, without the S3 client doing anything. It takes four steps: give QuantaStor a cloud account, create a cloud-tier storage class that points at it, add a lifecycle rule to the bucket that moves objects into that class after a number of days, and confirm the rule is in place.&lt;br /&gt;
&lt;br /&gt;
You need a scale-out object cluster with at least one object gateway and an Object Storage Pool Group; see [[Scale-out Object Setup (ceph)]].&lt;br /&gt;
&lt;br /&gt;
=== Step 1: Add cloud provider credentials ===&lt;br /&gt;
&lt;br /&gt;
{{Navigation|Cloud Integration &amp;amp;rarr; Cloud Credentials &amp;amp;rarr; Add Credentials &amp;#039;&amp;#039;(toolbar)&amp;#039;&amp;#039;}}&lt;br /&gt;
&lt;br /&gt;
Add the access key and secret key of the cloud account. Credentials are shared with Cloud Containers, and the dialog is described on [[Cloud Containers / NAS Gateway#Adding credentials|Cloud Containers / NAS Gateway]]. Pick a provider that can back a storage class -- see [[#Which cloud providers can back a storage class|Which cloud providers can back a storage class]].&lt;br /&gt;
&lt;br /&gt;
For an S3-compatible service that is not in the built-in list, add it as a private provider first and select &amp;#039;&amp;#039;&amp;#039;Supports Ceph Cloud Tiering&amp;#039;&amp;#039;&amp;#039; in the Add Cloud Provider dialog. Without that option its credentials are not offered for cloud tiering.&lt;br /&gt;
&lt;br /&gt;
=== Step 2: Create a cloud-tier storage class ===&lt;br /&gt;
&lt;br /&gt;
{{Navigation|Scale-out Storage Configuration &amp;amp;rarr; Scale-out Storage Pools &amp;#039;&amp;#039;(section)&amp;#039;&amp;#039; &amp;amp;rarr; &amp;#039;&amp;#039;select the Ceph Cluster&amp;#039;&amp;#039; &amp;amp;rarr; Object Storage &amp;#039;&amp;#039;(toolbar group)&amp;#039;&amp;#039; &amp;amp;rarr; Create Object Storage Class}}&lt;br /&gt;
&lt;br /&gt;
[[File:objtier_osc_create_cloud.png|thumb|right|760px|Create Object Storage Class with Destination Cloud selected: the class name, the cloud credentials, the region, and the provider storage class that tiered objects are written into.]]&lt;br /&gt;
&lt;br /&gt;
Select &amp;#039;&amp;#039;&amp;#039;Destination Cloud&amp;#039;&amp;#039;&amp;#039;, enter a &amp;#039;&amp;#039;&amp;#039;Storage Class Name&amp;#039;&amp;#039;&amp;#039; (for example {{Code|1=AWS_IA}}), and pick the credentials, the &amp;#039;&amp;#039;&amp;#039;Location/Region&amp;#039;&amp;#039;&amp;#039; and the provider &amp;#039;&amp;#039;&amp;#039;Storage Class&amp;#039;&amp;#039;&amp;#039; that tiered objects are written into, such as {{Code|1=STANDARD_IA}}. Pick a named provider storage class rather than &amp;#039;&amp;#039;&amp;#039;Default&amp;#039;&amp;#039;&amp;#039;; see the note under [[#Creating a storage class|Creating a storage class]]. The fields are described in full there.&lt;br /&gt;
&lt;br /&gt;
To tier into S3 Glacier or Glacier Deep Archive, create the class from the CLI instead; see [[#Tiering to S3 Glacier and other archive classes|Tiering to S3 Glacier and other archive classes]].&lt;br /&gt;
&lt;br /&gt;
=== Step 3: Add a lifecycle transition rule to the bucket ===&lt;br /&gt;
&lt;br /&gt;
{{Navigation|Storage Management &amp;amp;rarr; Object Buckets &amp;#039;&amp;#039;(section)&amp;#039;&amp;#039; &amp;amp;rarr; &amp;#039;&amp;#039;search, then select a bucket&amp;#039;&amp;#039; &amp;amp;rarr; Bucket Lifecycle Policies &amp;#039;&amp;#039;(toolbar group)&amp;#039;&amp;#039; &amp;amp;rarr; Create}}&lt;br /&gt;
&lt;br /&gt;
[[File:objtier_lifecycle_transition.png|thumb|right|641px|A lifecycle rule that moves every object in the bucket to the AWS_IA cloud-tier class 30 days after it is written.]]&lt;br /&gt;
&lt;br /&gt;
Enter a &amp;#039;&amp;#039;&amp;#039;Name (Rule Id)&amp;#039;&amp;#039;&amp;#039;, select &amp;#039;&amp;#039;&amp;#039;Transition&amp;#039;&amp;#039;&amp;#039;, set &amp;#039;&amp;#039;&amp;#039;Transition Days&amp;#039;&amp;#039;&amp;#039; and choose the storage class you created in step 2. Leave &amp;#039;&amp;#039;&amp;#039;Prefix&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;Min Size&amp;#039;&amp;#039;&amp;#039; and &amp;#039;&amp;#039;&amp;#039;Max Size&amp;#039;&amp;#039;&amp;#039; empty to tier every object in the bucket, or set them to tier only part of it. The dialog is described on [[Bucket Lifecycle Policy]].&lt;br /&gt;
&lt;br /&gt;
=== Step 4: Confirm the rule and watch objects move ===&lt;br /&gt;
&lt;br /&gt;
Confirm the rule with &amp;lt;code&amp;gt;qs bucket-lifecycle-policy-get --lifecycle-policy=&amp;amp;lt;rule id&amp;amp;gt; --bucket=&amp;amp;lt;bucket&amp;amp;gt;&amp;lt;/code&amp;gt;, or open &amp;#039;&amp;#039;&amp;#039;View&amp;#039;&amp;#039;&amp;#039; in the Bucket Lifecycle Policies toolbar group after a deep scan. An S3 client can read the same rule back with the S3 GetBucketLifecycleConfiguration call.&lt;br /&gt;
&lt;br /&gt;
The object gateway runs lifecycle processing in the background, so an object moves some time after it reaches the rule&amp;#039;s age rather than at that exact moment. Once it has moved, its data is in the cloud bucket and the local copy is reduced to a head object that keeps the object listed in the local bucket. A HEAD request on it reports the cloud storage class name, and a listing of the local bucket shows the object with a size of 0.&lt;br /&gt;
&lt;br /&gt;
The same workflow from the CLI, with the IDs taken from the list commands in the first three lines:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size: smaller&amp;quot;&amp;gt;&lt;br /&gt;
qs cloud-provider-credentials-list&lt;br /&gt;
qs cloud-provider-location-list&lt;br /&gt;
qs cloud-provider-storage-class-list&lt;br /&gt;
qs object-storage-class-create --storage-class-name=AWS_IA --custom-storage-class-name=true --ceph-cluster=&amp;lt;cluster&amp;gt; --tiering-cloud-credentials=&amp;lt;credentials id&amp;gt; --tiering-cloud-location=&amp;lt;location id&amp;gt; --tiering-cloud-storage-class=&amp;lt;provider storage class id&amp;gt;&lt;br /&gt;
qs bucket-lifecycle-policy-create --bucket=&amp;lt;bucket&amp;gt; --rule-id=to-aws-ia --transition-days=30 --transition-storage-class=AWS_IA&lt;br /&gt;
qs bucket-lifecycle-policy-get --lifecycle-policy=to-aws-ia --bucket=&amp;lt;bucket&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The commands are [[QuantaStor CLI Command Reference#cloud-provider-credentials-list|qs cloud-provider-credentials-list]], [[QuantaStor CLI Command Reference#cloud-provider-location-list|qs cloud-provider-location-list]], [[QuantaStor CLI Command Reference#cloud-provider-storage-class-list|qs cloud-provider-storage-class-list]] and [[QuantaStor CLI Command Reference#object-storage-class-create|qs object-storage-class-create]], followed by the lifecycle commands described on [[Bucket Lifecycle Policy]].&lt;br /&gt;
&lt;br /&gt;
== Tiering is not replication ==&lt;br /&gt;
&lt;br /&gt;
Cloud tiering &amp;#039;&amp;#039;&amp;#039;moves&amp;#039;&amp;#039;&amp;#039; an object: after the transition there is one copy of its data, in the cloud bucket. It is not a second copy and it does not protect against losing the cloud account. Pick the feature by what you want to end up with.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Feature !! Result !! Between&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Cloud tiering&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;(this page)&amp;#039;&amp;#039; || Older objects move to a cloud bucket; the local bucket keeps a small head object for each || A local Object Bucket and a bucket at an S3 provider&lt;br /&gt;
|-&lt;br /&gt;
| [[Bucket Synchronization Policies|Bucket sync policies]] || Objects are copied continuously so both sides hold the data || Two zones of one RGW multi-site zone group, both QuantaStor&lt;br /&gt;
|-&lt;br /&gt;
| [[Cloud Containers / NAS Gateway|Cloud Containers]] || One external bucket is presented as an NFS/SMB share || A Network Share and a bucket at an S3 provider&lt;br /&gt;
|-&lt;br /&gt;
| [[Backup Policies|Backup policies]] || Files are copied, moved or auto-tiered on a schedule || A Network Share and an NFS/SMB export or a Cloud Container&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== How storage classes work ==&lt;br /&gt;
&lt;br /&gt;
An S3 client names a storage class when it writes an object, and the object gateway maps each class name to a place to store the data. Every object zone starts with one class, {{Code|1=STANDARD}}, which is backed by the zone&amp;#039;s default data pool and is used whenever a client names no class.&lt;br /&gt;
&lt;br /&gt;
* A &amp;#039;&amp;#039;&amp;#039;pool-backed&amp;#039;&amp;#039;&amp;#039; class has its own Ceph data pool, with its own layout (replica or erasure coding) and its own media, so a class can put objects on flash or on high-capacity disk.&lt;br /&gt;
* A &amp;#039;&amp;#039;&amp;#039;cloud-tier&amp;#039;&amp;#039;&amp;#039; class has no local data pool. QuantaStor registers it on the zone group as a cloud tier that points at a bucket at an S3 provider. Objects reach it through a [[Bucket Lifecycle Policy|lifecycle transition]]; a cloud-tier class is a destination for transitions, not a class that clients write to directly.&lt;br /&gt;
&lt;br /&gt;
Storage class names use letters and underscores only and are converted to upper case. {{Code|1=STANDARD}} is reserved. Many S3 tools only accept the AWS class names ({{Code|1=STANDARD_IA}}, {{Code|1=ONEZONE_IA}}, {{Code|1=INTELLIGENT_TIERING}}, {{Code|1=GLACIER_IR}}, {{Code|1=REDUCED_REDUNDANCY}}, {{Code|1=EXPRESS_ONEZONE}}, {{Code|1=OUTPOSTS}}); any other name needs the custom-name option. The dialog sets it for you when you create a cloud-tier class; from the CLI, add {{Code|1=--custom-storage-class-name=true}} to use a name such as {{Code|1=AWS_IA}}.&lt;br /&gt;
&lt;br /&gt;
A class name is unique within a Ceph cluster.&lt;br /&gt;
&lt;br /&gt;
== Which cloud providers can back a storage class ==&lt;br /&gt;
&lt;br /&gt;
Only providers that speak the S3 protocol can back a cloud-tier class. Of the built-in providers these are:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Provider !! Provider storage classes offered&lt;br /&gt;
|-&lt;br /&gt;
| Amazon S3 || {{Code|1=STANDARD}}, {{Code|1=REDUCED_REDUNDANCY}}, {{Code|1=STANDARD_IA}}, {{Code|1=ONEZONE_IA}}, {{Code|1=GLACIER}}, {{Code|1=DEEP_ARCHIVE}}, {{Code|1=INTELLIGENT_TIERING}}, {{Code|1=GLACIER_IR}}&lt;br /&gt;
|-&lt;br /&gt;
| Wasabi S3 || Standard, reduced redundancy, standard infrequent access&lt;br /&gt;
|-&lt;br /&gt;
| Backblaze B2 || None pre-populated. Add one with {{Code|1=qs cloud-provider-storage-class-add}} before creating a class, because a named provider storage class is required&lt;br /&gt;
|-&lt;br /&gt;
| IBM Cloud Object Storage (COS) || {{Code|1=standard}}, {{Code|1=vault}}, {{Code|1=cold}} and others&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Microsoft Azure Blob, Google Cloud Storage, Google Drive and Dropbox cannot back a cloud-tier class, and their credentials are not offered. A private provider added with &amp;#039;&amp;#039;&amp;#039;Supports Ceph Cloud Tiering&amp;#039;&amp;#039;&amp;#039; selected can, which is how an on-premises or third-party S3 service becomes a tiering target. Add storage classes to a private provider with [[QuantaStor CLI Command Reference#cloud-provider-storage-class-add|qs cloud-provider-storage-class-add]]; there is no dialog for it.&lt;br /&gt;
&lt;br /&gt;
The provider list and its storage classes are read from {{Code|1=/opt/osnexus/quantastor/conf/qs_cloud_providers.conf}}.&lt;br /&gt;
&lt;br /&gt;
== Creating a storage class ==&lt;br /&gt;
&lt;br /&gt;
{{Navigation|Scale-out Storage Configuration &amp;amp;rarr; Scale-out Storage Pools &amp;#039;&amp;#039;(section)&amp;#039;&amp;#039; &amp;amp;rarr; &amp;#039;&amp;#039;select the Ceph Cluster&amp;#039;&amp;#039; &amp;amp;rarr; Object Storage &amp;#039;&amp;#039;(toolbar group)&amp;#039;&amp;#039; &amp;amp;rarr; Create Object Storage Class}}&lt;br /&gt;
&lt;br /&gt;
The dialog is also on the Ceph Cluster&amp;#039;s right-click menu. On a narrow window the Object Storage toolbar group is behind the toolbar&amp;#039;s overflow arrow. It creates either kind of class, chosen by two radio buttons. &amp;#039;&amp;#039;&amp;#039;Destination Cloud&amp;#039;&amp;#039;&amp;#039; is unavailable until at least one set of cloud credentials exists.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Field !! Shown for !! Notes&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Ceph Cluster&amp;#039;&amp;#039;&amp;#039; || both || The cluster the class is created on. Only clusters with an Object Storage Pool Group are listed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Destination Data Pool&amp;#039;&amp;#039;&amp;#039; / &amp;#039;&amp;#039;&amp;#039;Destination Cloud&amp;#039;&amp;#039;&amp;#039; || both || Chooses the kind of class. Data Pool is the default.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Storage Class Name&amp;#039;&amp;#039;&amp;#039; || Destination Cloud || The name S3 clients and lifecycle rules use. Letters and underscores only.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Cloud Provider&amp;#039;&amp;#039;&amp;#039; || Destination Cloud || Despite the label this lists &amp;#039;&amp;#039;&amp;#039;credentials&amp;#039;&amp;#039;&amp;#039;, shown as &amp;#039;&amp;#039;provider&amp;#039;&amp;#039; (&amp;#039;&amp;#039;access key&amp;#039;&amp;#039;). Only providers that support cloud tiering are listed.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Location/Region&amp;#039;&amp;#039;&amp;#039; || Destination Cloud || The provider endpoint the tiered objects are written to. Defaults to the provider&amp;#039;s default region.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Storage Class&amp;#039;&amp;#039;&amp;#039; || Destination Cloud || The provider&amp;#039;s storage class for the tiered objects, for example {{Code|1=STANDARD_IA}}. Choose a named class; see the note below.&lt;br /&gt;
|-&lt;br /&gt;
| Storage class name and layout fields || Destination Data Pool || The class name, the &amp;#039;&amp;#039;&amp;#039;Object Storage Pool Group&amp;#039;&amp;#039;&amp;#039;, and the data pool layout (replica or erasure coding, scaling factor), as for any scale-out pool.&lt;br /&gt;
|-&lt;br /&gt;
| &amp;#039;&amp;#039;&amp;#039;Force (Required for Erasure M=1)&amp;#039;&amp;#039;&amp;#039; || Destination Data Pool || Required to create an erasure-coded data pool with a single parity chunk.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;Choose a named provider storage class.&amp;#039;&amp;#039;&amp;#039; In this release the &amp;#039;&amp;#039;&amp;#039;Default&amp;#039;&amp;#039;&amp;#039; entry in the cloud &amp;#039;&amp;#039;&amp;#039;Storage Class&amp;#039;&amp;#039;&amp;#039; list does not create a class: the request is refused because no provider storage class was given. Pick the provider class you want the objects stored in.&lt;br /&gt;
&lt;br /&gt;
A cloud-tier class is created by registering a cloud-s3 tier on the zone group&amp;#039;s default placement and committing the gateway configuration. If any step fails the partial registration is rolled back, so a failed create can simply be retried.&lt;br /&gt;
&lt;br /&gt;
The dialog does not ask which bucket at the provider receives the tiered objects; the gateway chooses the destination itself. To send them to a bucket you choose -- for example one that the credentials are restricted to -- create the class from the CLI with {{Code|1=--tiering-path=&amp;lt;bucket&amp;gt;}}. Tiered objects are stored under a prefix named after the local bucket.&lt;br /&gt;
&lt;br /&gt;
The tier configuration holds a copy of the access key and secret key. Changing or removing the credentials in QuantaStor afterwards does not update an existing class; to rotate the key, delete the class and create it again with the new credentials.&lt;br /&gt;
&lt;br /&gt;
== Tiering to S3 Glacier and other archive classes ==&lt;br /&gt;
&lt;br /&gt;
Archive storage classes -- {{Code|1=GLACIER}}, {{Code|1=DEEP_ARCHIVE}} and {{Code|1=GLACIER_IR}} at Amazon S3, and {{Code|1=vault}} and {{Code|1=cold}} at IBM COS -- do not return an object on a normal GET; the object has to be restored first. A cloud-tier class that targets one of them is registered as a cloud-s3-glacier tier and needs three extra settings that the Create Object Storage Class dialog does not have, so create it with [[QuantaStor CLI Command Reference#object-storage-class-create|qs object-storage-class-create]]:&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Argument !! Required !! Meaning&lt;br /&gt;
|-&lt;br /&gt;
| {{Code|1=--tiering-retrieval-duration}} || yes || Days a restored object is kept on local storage before it reverts to the archive tier. Must be a whole number above zero.&lt;br /&gt;
|-&lt;br /&gt;
| {{Code|1=--tiering-retrieval-target-class}} || yes || The local storage class a restored object is placed in, for example {{Code|1=STANDARD}}.&lt;br /&gt;
|-&lt;br /&gt;
| {{Code|1=--tiering-retrieval-tier-type}} || no || The provider&amp;#039;s retrieval speed: {{Code|1=Standard}} (the default), {{Code|1=Expedited}} or {{Code|1=notier}}.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size: smaller&amp;quot;&amp;gt;&lt;br /&gt;
qs object-storage-class-create --storage-class-name=AWS_GLACIER --custom-storage-class-name=true --ceph-cluster=&amp;lt;cluster&amp;gt; --tiering-cloud-credentials=&amp;lt;credentials id&amp;gt; --tiering-cloud-location=&amp;lt;location id&amp;gt; --tiering-cloud-storage-class=&amp;lt;GLACIER storage class id&amp;gt; --tiering-retrieval-duration=7 --tiering-retrieval-target-class=STANDARD --tiering-retrieval-tier-type=Standard&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Selecting one of these provider classes in the dialog fails, because the dialog cannot supply the retrieval settings.&lt;br /&gt;
&lt;br /&gt;
== Steering new uploads with auto-tiering rules ==&lt;br /&gt;
&lt;br /&gt;
Lifecycle rules move objects by &amp;#039;&amp;#039;&amp;#039;age&amp;#039;&amp;#039;&amp;#039;. Auto-tiering rules pick a class &amp;#039;&amp;#039;&amp;#039;when the object is uploaded&amp;#039;&amp;#039;&amp;#039;, by name pattern, size, bucket or tenant, so that, for example, large objects land on a high-capacity pool-backed class from the start.&lt;br /&gt;
&lt;br /&gt;
Manage auto-tiering rules from the CLI with [[QuantaStor CLI Command Reference#object-storage-class-rule-add|qs object-storage-class-rule-add]]. Each rule is {{Code|1=STORAGECLASS;PATTERN;OPERATOR;CAPACITY;BUCKET;TENANT;OPTIONS}}, and {{Code|1=force}} in OPTIONS applies the rule even when the client named a class of its own:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size: smaller&amp;quot;&amp;gt;&lt;br /&gt;
qs object-storage-class-rule-add --rule-list=&amp;quot;STANDARD_IA;*;&amp;gt;=;32768;*;*;force&amp;quot;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Deleting a storage class ==&lt;br /&gt;
&lt;br /&gt;
{{Navigation|Scale-out Storage Configuration &amp;amp;rarr; Scale-out Storage Pools &amp;#039;&amp;#039;(section)&amp;#039;&amp;#039; &amp;amp;rarr; &amp;#039;&amp;#039;select the Ceph Cluster&amp;#039;&amp;#039; &amp;amp;rarr; Object Storage &amp;#039;&amp;#039;(toolbar group)&amp;#039;&amp;#039; &amp;amp;rarr; Delete Object Storage Class}}&lt;br /&gt;
&lt;br /&gt;
The dialog shows the class&amp;#039;s &amp;#039;&amp;#039;&amp;#039;Type&amp;#039;&amp;#039;&amp;#039; -- &amp;#039;&amp;#039;&amp;#039;Cloud Tier&amp;#039;&amp;#039;&amp;#039; or &amp;#039;&amp;#039;&amp;#039;Pool-backed&amp;#039;&amp;#039;&amp;#039; -- and its &amp;#039;&amp;#039;&amp;#039;Data Pool Name&amp;#039;&amp;#039;&amp;#039;, and asks for confirmation.&lt;br /&gt;
&lt;br /&gt;
* A &amp;#039;&amp;#039;&amp;#039;pool-backed&amp;#039;&amp;#039;&amp;#039; class is deleted together with its data pool and every object in it.&lt;br /&gt;
* A &amp;#039;&amp;#039;&amp;#039;cloud-tier&amp;#039;&amp;#039;&amp;#039; class has its tier registration removed from the zone group. Objects already written to the cloud bucket are left there; QuantaStor does not delete them.&lt;br /&gt;
* {{Code|1=STANDARD}} cannot be deleted on its own, because the gateway would immediately recreate its data pool. It goes when the Object Storage Pool Group is destroyed.&lt;br /&gt;
&lt;br /&gt;
The delete is refused while anything still names the class -- an auto-tiering rule, a bucket lifecycle transition, or another class that uses it as its Glacier retrieval target -- and, for a pool-backed class, while its data pool holds objects. &amp;#039;&amp;#039;&amp;#039;Force (required if referenced, or the data pool is not empty)&amp;#039;&amp;#039;&amp;#039; overrides both, and also deletes the rules and lifecycle transitions that reference the class. Without those references a lifecycle rule would keep trying to move objects to a class the gateway no longer knows.&lt;br /&gt;
&lt;br /&gt;
When [[Security Configuration#Multi-admin Approvals|multi-admin approval]] covers &amp;#039;&amp;#039;&amp;#039;Object Storage Class : Delete&amp;#039;&amp;#039;&amp;#039;, the delete waits until the required number of administrators approve it.&lt;br /&gt;
&lt;br /&gt;
The CLI equivalent is &amp;lt;code&amp;gt;qs object-storage-class-delete --storage-class=&amp;amp;lt;name&amp;amp;gt; --ceph-cluster=&amp;amp;lt;cluster&amp;amp;gt;&amp;lt;/code&amp;gt;. Use the dialog when the delete needs &amp;#039;&amp;#039;&amp;#039;Force&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
== Managing storage classes from the CLI ==&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! Command !! Purpose&lt;br /&gt;
|-&lt;br /&gt;
| [[QuantaStor CLI Command Reference#object-storage-class-list|qs object-storage-class-list]] || List the storage classes, optionally for one {{Code|1=--ceph-cluster}}&lt;br /&gt;
|-&lt;br /&gt;
| [[QuantaStor CLI Command Reference#object-storage-class-get|qs object-storage-class-get]] || Show one class, by {{Code|1=--storage-class}}&lt;br /&gt;
|-&lt;br /&gt;
| [[QuantaStor CLI Command Reference#object-storage-class-create|qs object-storage-class-create]] || Create a pool-backed class ({{Code|1=--ceph-object-pool-group}} and layout arguments) or a cloud-tier class ({{Code|1=--tiering-*}} arguments)&lt;br /&gt;
|-&lt;br /&gt;
| qs object-storage-class-delete || Delete a class&lt;br /&gt;
|-&lt;br /&gt;
| [[QuantaStor CLI Command Reference#object-storage-class-rule-add|qs object-storage-class-rule-add]], [[QuantaStor CLI Command Reference#object-storage-class-rule-remove|qs object-storage-class-rule-remove]], [[QuantaStor CLI Command Reference#object-storage-class-rule-list|qs object-storage-class-rule-list]] || Manage auto-tiering rules&lt;br /&gt;
|-&lt;br /&gt;
| [[QuantaStor CLI Command Reference#cloud-provider-add|qs cloud-provider-add]] || Add a private S3 provider; {{Code|1=--supports-ceph-tiering=true}} makes it usable for cloud tiering&lt;br /&gt;
|-&lt;br /&gt;
| [[QuantaStor CLI Command Reference#cloud-provider-storage-class-add|qs cloud-provider-storage-class-add]] || Add a storage class to a provider, with {{Code|1=--provider}}, {{Code|1=--storage-class-tag}} and {{Code|1=--storage-description}}&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
A pool-backed class, for comparison:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre style=&amp;quot;font-size: smaller&amp;quot;&amp;gt;&lt;br /&gt;
qs object-storage-class-create --storage-class-name=STANDARD_IA --ceph-object-pool-group=&amp;lt;pool group&amp;gt; --pool-type=erasure --k=4 --m=2&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Related pages ==&lt;br /&gt;
&lt;br /&gt;
* [[Bucket Lifecycle Policy]] -- transition and expiration rules that move objects between classes&lt;br /&gt;
* [[Bucket Rate Limits]] -- limiting the request and bandwidth rate of a bucket&lt;br /&gt;
* [[Scale-out Object Setup (ceph)]] -- object gateways, pool groups, users and buckets&lt;br /&gt;
* [[Cloud Containers / NAS Gateway]] -- cloud providers, locations and credentials&lt;br /&gt;
* [[Bucket Synchronization Policies]] -- replicating buckets between QuantaStor zones&lt;br /&gt;
&lt;br /&gt;
----&lt;br /&gt;
&amp;lt;small&amp;gt;&amp;#039;&amp;#039;Verified against QuantaStor 6.9.0.&amp;#039;&amp;#039;&amp;lt;/small&amp;gt;&lt;/div&gt;</summary>
		<author><name>Qadmin</name></author>
	</entry>
</feed>