<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Object Storage on Cozystack</title><link>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/services/object-storage/</link><description>Recent content in Object Storage on Cozystack</description><generator>Hugo</generator><language>en</language><atom:link href="https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/services/object-storage/index.xml" rel="self" type="application/rss+xml"/><item><title>Storage Pools</title><link>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/services/object-storage/storage-pools/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/services/object-storage/storage-pools/</guid><description>&lt;p&gt;Storage pools let you partition SeaweedFS volume servers by disk type.
Each pool creates a separate Volume StatefulSet tagged with a SeaweedFS &lt;code&gt;diskType&lt;/code&gt;, and a matching set of COSI resources (BucketClasses and BucketAccessClasses) that buckets can reference.&lt;/p&gt;
&lt;h2 id="when-to-use-pools"&gt;When to Use Pools&lt;/h2&gt;
&lt;p&gt;Use storage pools when your cluster has different storage tiers and you want to control which tier a bucket uses.
For example, you might have fast NVMe drives for hot data and large HDD drives for archival storage.&lt;/p&gt;</description></item><item><title>Buckets and Users</title><link>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/services/object-storage/buckets/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/services/object-storage/buckets/</guid><description>&lt;p&gt;The Bucket application creates an S3 bucket via COSI and provisions per-user credentials as Kubernetes Secrets.&lt;/p&gt;
&lt;h2 id="creating-a-bucket"&gt;Creating a Bucket&lt;/h2&gt;
&lt;p&gt;A minimal bucket uses the default BucketClass and creates no users:&lt;/p&gt;
&lt;div class="highlight"&gt;&lt;pre tabindex="0" style="background-color:#f0f0f0;-moz-tab-size:4;-o-tab-size:4;tab-size:4;-webkit-text-size-adjust:none;"&gt;&lt;code class="language-yaml" data-lang="yaml"&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;apiVersion&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;apps.cozystack.io/v1alpha1&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;kind&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;Bucket&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;metadata&lt;/span&gt;:&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;name&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;my-bucket&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#bbb"&gt; &lt;/span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;namespace&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;tenant-example&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="display:flex;"&gt;&lt;span&gt;&lt;span style="color:#062873;font-weight:bold"&gt;spec&lt;/span&gt;:&lt;span style="color:#bbb"&gt; &lt;/span&gt;{}&lt;span style="color:#bbb"&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This provisions a BucketClaim against the default BucketClass (&lt;code&gt;tenant-example&lt;/code&gt;).
To make the bucket useful, add at least one user (see 
&lt;a href="#users"&gt;Users&lt;/a&gt; below).&lt;/p&gt;
&lt;h2 id="selecting-a-storage-pool"&gt;Selecting a Storage Pool&lt;/h2&gt;
&lt;p&gt;If your SeaweedFS instance defines 
&lt;a href="https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/services/object-storage/storage-pools/" target="_blank"&gt;storage pools&lt;/a&gt;, use the &lt;code&gt;storagePool&lt;/code&gt; field to target a specific pool:&lt;/p&gt;</description></item><item><title>SeaweedFS capacity for backups</title><link>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/services/object-storage/capacity-for-backups/</link><pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate><guid>https://deploy-preview-763--cozystack.netlify.app/docs/next/operations/services/object-storage/capacity-for-backups/</guid><description>&lt;p&gt;A SeaweedFS instance starts with two volume servers of &lt;code&gt;volume.size: 10Gi&lt;/code&gt; each and &lt;code&gt;replicationFactor: 2&lt;/code&gt;, so every byte it stores lands on both servers and the instance holds a little under 10 GiB of objects. That is enough for occasional backups and restores. It is not enough for continuous WAL archiving from a Postgres cluster that writes steadily: WAL is archived around the clock and kept for the whole retention window, so the bucket grows until the window is full, and an instance sized by default runs out long before then.&lt;/p&gt;</description></item></channel></rss>