<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/ceph-io-reclaim-ceph-capacity-through-cephfs-transcoding-t1jzskzjc" -->

---
title: Ceph.io — Reclaim Ceph Capacity Through CephFS Transcoding
description: A Ceph Ambassador walks through reclaiming raw storage capacity on CephFS by transcoding data from replicated (Replica 3) pools to Erasure Coded pools,...
canonical: https://daily.dev/posts/ceph-io-reclaim-ceph-capacity-through-cephfs-transcoding-t1jzskzjc
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Ceph.io — Reclaim Ceph Capacity Through CephFS Transcoding | daily.dev
og:description: A Ceph Ambassador walks through reclaiming raw storage capacity on CephFS by transcoding data from replicated (Replica 3) pools to Erasure Coded pools,...
og:url: https://daily.dev/posts/ceph-io-reclaim-ceph-capacity-through-cephfs-transcoding-t1jzskzjc
og:image: https://api.daily.dev/og/posts/T1JzSKzJc.png
og:image:alt: Ceph.io — Reclaim Ceph Capacity Through CephFS Transcoding
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Ceph.io — Reclaim Ceph Capacity Through CephFS Transcoding

**[Ceph](https://daily.dev/sources/ceph)** · 13 min read · 0 upvotes · 0 comments

## Summary

A Ceph Ambassador walks through reclaiming raw storage capacity on CephFS by transcoding data from replicated (Replica 3) pools to Erasure Coded pools, motivated by a dramatic spike in memory/SSD/HDD pricing in early 2026. The approach uses a community-built script (originally by Reddit user marcan42, enhanced and forked by the author) that walks a CephFS volume, copies files into a new EC-backed layout, and atomically renames them over the originals, avoiding disruption and the need for a full second copy of data. It covers CephFS file layouts, handling of symlinks and hard links, tuning options (file age, size thresholds, thread count), space amplification pitfalls with small files on EC, matching bluestore_min_alloc_size to QLC SSD indirection units, and real-world results showing a 44% raw capacity reduction (330 TiB to 185 TiB) after transcoding a production volume. It also previews an upcoming RADOS-level transparent pool migration feature in the future 'Umbrella' Ceph release.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://ceph.io/en/news/blog/2026/cephfs-transcoding-ftw>

## Questions this post answers

### How can I convert an existing CephFS volume from replicated pools to erasure coding without downtime?

Use a transcoder script that walks the volume, copies each file into a new file layout pointing at an EC data pool, then atomically renames the copy over the original file. This avoids needing a full second copy of the data, handles symlinks and multiply hard-linked files carefully, and lets clients keep reading and writing during the process. Options let you filter by file age, minimum size, and thread count.

_daily.dev surfaces practical storage migration writeups like this for engineers planning Ceph capacity changes._

### How much raw storage capacity can erasure coding save compared to Replica 3 in Ceph?

Erasure coding with a 6+3 profile has a space amplification factor of 1.5 versus 3.0 for Replica 3 pools, roughly halving raw storage use for the same data. In a real-world CephFS transcoding run, a 330 TiB replicated volume was reduced to 185 TiB after conversion, a 44% reduction, with the 7% gap from the theoretical ideal caused by files too small, too new, or too multiply linked to transcode.

_engineers weighing storage cost tradeoffs can track EC efficiency data like this through daily.dev._

### Why do small files use more raw storage than expected on Ceph erasure-coded pools?

Because RADOS writes complete stripes, so a tiny file still consumes a full stripe's worth of allocation across all EC shards. For example, with an EC 8+3 pool and bluestore_min_alloc_size of 4KiB, a 1-byte file allocates 11 x 4KiB = 44KiB of raw storage. This space amplification becomes significant with millions or billions of small files, though Ceph's Tentacle release's Fast EC improvements reduce the effect.

_daily.dev helps infrastructure teams keep up with Ceph storage tuning details like EC space amplification._

## Similar posts on daily.dev

- [Scaling Btrfs to petabytes in production: a 74% cost reduction story](https://daily.dev/posts/scaling-btrfs-to-petabytes-in-production-a-74-cost-reduction-story-f15dbg3yt) · The New Stack · 0 upvotes · 0 comments
- [Bcachefs 1.37 Released With Linux 7.0 Support, Erasure Coding Stable & New Sub-Commands](https://daily.dev/posts/bcachefs-1-37-released-with-linux-7-0-support-erasure-coding-stable-new-sub-commands-nvzov0iyi) · Phoronix · 1 upvotes · 0 comments
- [Scaling Zero Copy from 1 Trillion to 120 Trillion Rows with File Federation](https://daily.dev/posts/scaling-zero-copy-from-1-trillion-to-120-trillion-rows-with-file-federation-qyrcouu45) · Salesforce Engineering · 0 upvotes · 0 comments
- [Announcing enhancements to Google Cloud NetApp Volumes](https://daily.dev/posts/announcing-enhancements-to-google-cloud-netapp-volumes-rrcdijlmf) · Google Cloud · 0 upvotes · 0 comments

---

[View this post on daily.dev](https://daily.dev/posts/ceph-io-reclaim-ceph-capacity-through-cephfs-transcoding-t1jzskzjc)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Ceph.io — Reclaim Ceph Capacity Through CephFS Transcoding","url":"https://daily.dev/posts/ceph-io-reclaim-ceph-capacity-through-cephfs-transcoding-t1jzskzjc","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/ceph-io-reclaim-ceph-capacity-through-cephfs-transcoding-t1jzskzjc"},"datePublished":"2026-08-23T12:18:23.796Z","dateModified":"2026-08-23T12:24:24.990Z","description":"A Ceph Ambassador walks through reclaiming raw storage capacity on CephFS by transcoding data from replicated (Replica 3) pools to Erasure Coded pools,...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/efbb10dac8719cd46f25072a2d3074e9?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/efbb10dac8719cd46f25072a2d3074e9?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Ceph","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Ceph","logo":"https://media.daily.dev/image/upload/s--nHzZM4Ap--/f_auto,q_auto/v1787487446/logos/ceph?_a=BAMAMicg0","url":"https://daily.dev/sources/ceph"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/ceph-io-reclaim-ceph-capacity-through-cephfs-transcoding-t1jzskzjc","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"","timeRequired":"PT13M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Ceph","item":"https://daily.dev/sources/ceph"},{"@type":"ListItem","position":3,"name":"Ceph.io — Reclaim Ceph Capacity Through CephFS Transcoding"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/ceph-io-reclaim-ceph-capacity-through-cephfs-transcoding-t1jzskzjc#faq","mainEntity":[{"@type":"Question","name":"How can I convert an existing CephFS volume from replicated pools to erasure coding without downtime?","acceptedAnswer":{"@type":"Answer","text":"Use a transcoder script that walks the volume, copies each file into a new file layout pointing at an EC data pool, then atomically renames the copy over the original file. This avoids needing a full second copy of the data, handles symlinks and multiply hard-linked files carefully, and lets clients keep reading and writing during the process. Options let you filter by file age, minimum size, and thread count. daily.dev surfaces practical storage migration writeups like this for engineers planning Ceph capacity changes."}},{"@type":"Question","name":"How much raw storage capacity can erasure coding save compared to Replica 3 in Ceph?","acceptedAnswer":{"@type":"Answer","text":"Erasure coding with a 6+3 profile has a space amplification factor of 1.5 versus 3.0 for Replica 3 pools, roughly halving raw storage use for the same data. In a real-world CephFS transcoding run, a 330 TiB replicated volume was reduced to 185 TiB after conversion, a 44% reduction, with the 7% gap from the theoretical ideal caused by files too small, too new, or too multiply linked to transcode. engineers weighing storage cost tradeoffs can track EC efficiency data like this through daily.dev."}},{"@type":"Question","name":"Why do small files use more raw storage than expected on Ceph erasure-coded pools?","acceptedAnswer":{"@type":"Answer","text":"Because RADOS writes complete stripes, so a tiny file still consumes a full stripe's worth of allocation across all EC shards. For example, with an EC 8+3 pool and bluestore_min_alloc_size of 4KiB, a 1-byte file allocates 11 x 4KiB = 44KiB of raw storage. This space amplification becomes significant with millions or billions of small files, though Ceph's Tentacle release's Fast EC improvements reduce the effect. daily.dev helps infrastructure teams keep up with Ceph storage tuning details like EC space amplification."}}]}
```

