# ceph

Published articles for ceph.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## I Turned My Proxmox Server Into a NAS Without Installing TrueNAS

DevFeed: [I Turned My Proxmox Server Into a NAS Without Installing TrueNAS](<https://devfeed.tech/articles/i-turned-my-proxmox-server-into-a-nas-without-installing-truenas-10492.md>)

Original publisher: [Read original article](<https://www.virtualizationhowto.com/2026/09/i-turned-my-proxmox-server-into-a-nas-without-installing-truenas/>)

Author: Brandon Lee

Published: 2026-09-10T12:46:18Z

Content type: article

Language: en

Sources: [Virtualization Howto](<https://devfeed.tech/sources/virtualization-howto.md>)

Topics: [Proxmox](<https://devfeed.tech/topics/proxmox.md>), [Homelab](<https://devfeed.tech/topics/homelab.md>), [virtualization](<https://devfeed.tech/topics/virtualization.md>), [hosting](<https://devfeed.tech/topics/hosting.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Debian](<https://devfeed.tech/topics/debian.md>)

Tags: [ceph](<https://devfeed.tech/tags/ceph.md>), [debian](<https://devfeed.tech/tags/debian.md>), [home-lab](<https://devfeed.tech/tags/home-lab.md>), [home-server](<https://devfeed.tech/tags/home-server.md>), [hosting](<https://devfeed.tech/tags/hosting.md>), [linux](<https://devfeed.tech/tags/linux.md>), [nas](<https://devfeed.tech/tags/nas.md>), [proxmox](<https://devfeed.tech/tags/proxmox.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>), [self-hosting](<https://devfeed.tech/tags/self-hosting.md>), [server](<https://devfeed.tech/tags/server.md>), [storage](<https://devfeed.tech/tags/storage.md>), [virtualization](<https://devfeed.tech/tags/virtualization.md>)

### AI overview

The article presents ANAS, a project that adds native storage-management panels to the existing Proxmox VE web interface. It aims to let Proxmox manage storage using the underlying Debian/Linux capabilities without installing TrueNAS or introducing a separate management interface.

### Source excerpt

Proxmox is really good with all types of storage and I have used it as a dedicated NAS appliance many times. I have used dedicated NAS devices. I have also... The post I Turned My Proxmox Server Into a NAS Without Installing TrueNAS appeared first on Virtualization Howto.

## Self-Hosted Platform Build Order: Dependencies from Bare Metal to Model Serving

DevFeed: [Self-Hosted Platform Build Order: Dependencies from Bare Metal to Model Serving](<https://devfeed.tech/articles/the-whole-estate-in-one-article-how-every-layer-fits-together-34108.md>)

Original publisher: [Read original article](<https://philipptheserver.com/posts/meta-infrastructure-overview/>)

Author: Philipp Lehmann (philipp.lehmann@gruppe.ai)

Published: 2026-09-04T07:00:00Z

Content type: article

Language: en

Sources: [Philipp Lehmann](<https://devfeed.tech/sources/philipp-lehmann.md>)

Topics: [Self-hosted](<https://devfeed.tech/topics/self-hosted.md>), [Ansible](<https://devfeed.tech/topics/ansible.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [ceph](<https://devfeed.tech/topics/ceph.md>), [observability](<https://devfeed.tech/topics/observability.md>), [model-serving](<https://devfeed.tech/topics/model-serving.md>), [Compose](<https://devfeed.tech/topics/compose.md>)

Tags: [ansible](<https://devfeed.tech/tags/ansible.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [article](<https://devfeed.tech/tags/article.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [compose](<https://devfeed.tech/tags/compose.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [model-serving](<https://devfeed.tech/tags/model-serving.md>), [observability](<https://devfeed.tech/tags/observability.md>), [self-hosted](<https://devfeed.tech/tags/self-hosted.md>)

### AI overview

This article explains the dependency order for building a self-hosted platform. It covers consistent bare-metal inventory, Ansible configuration convergence, networking, Kubernetes, Ceph storage, identity, observability, and model serving.

### Source excerpt

Self-hosted platform build order: why mesh, cluster, Ceph storage, identity and observability must precede model serving, shown with Compose depends_on.

## Recover the Ceph Monitor Store Using OSDs

DevFeed: [Recover the Ceph Monitor Store Using OSDs](<https://devfeed.tech/articles/recover-the-ceph-monitor-store-using-osds-12335.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2026/mon-recovery-from-osds/>)

Author: Eugen Block, crossposted by Anthony D'Atri

Published: 2026-07-04T00:00:00Z

Content type: article

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [ceph](<https://devfeed.tech/topics/ceph.md>), [monitor](<https://devfeed.tech/topics/monitor.md>), [Script](<https://devfeed.tech/topics/script.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [log management](<https://devfeed.tech/topics/log-management.md>)

Tags: [blog](<https://devfeed.tech/tags/blog.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [containers](<https://devfeed.tech/tags/containers.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [logging](<https://devfeed.tech/tags/logging.md>), [logs](<https://devfeed.tech/tags/logs.md>), [mon](<https://devfeed.tech/tags/mon.md>), [monitor](<https://devfeed.tech/tags/monitor.md>), [recovery](<https://devfeed.tech/tags/recovery.md>)

### AI overview

This blog post presents a general procedure for recovering a failed Ceph Monitor store by collecting osdmaps from existing OSDs, with additional considerations for cephadm-managed container deployments. It automates osdmap collection and basic logging while leaving the store rebuild and client authentication steps for careful manual inspection. The procedure applies only to non-encrypted OSDs, and the article emphasizes the importance of backing up dmcrypt/LUKS keys and reviewing host logs.

### Source excerpt

Introduction ¶ A few weeks ago I helped a Ceph user to recover his broken cluster (see this thread). Basically, after his Monitors stopped working he re-deployed a new cluster with the same Ceph FSID and attached the existing OSDs to the re-deployed hosts. But it's not that easy to re-activate those OSDs because the new Monitors don't have the old osdmap, hence they don't know anything about the existing OSDs. So how did we fix that? This scenario can be considered a total Monitor store failure. There's a documented procedure in the upstream docs, unfortunately it's written for non-cephadm clusters and doesn't contain many details about subsequent steps. When Ceph daemons run within containers there are more things to consider. So I decided to write this blog post and add some more details to the procedure, targeting mainly clusters managed by cephadm. But the recovery procedure doesn't specifically require cephadm-specific commands, so it can be considered as a general guideline how to recover from a Monitor store loss, just with some extra details about cephadm deployments. This procedure only works for non-encrypted OSDs. If you are using dmcrypt (LUKS) OSDs, make sure you have a backup of the keys, otherwise your data is lost forever! But there is some development, a user in Slack pointed me to this PR which adds a backup mechanism for Monitors, probably available in the upcoming Umbrella release. Note that the PR also contains this statement: Monitor backups complement, but do not replace, the existing Monitor recovery procedures The procedure covered by said docs is already written in script form, so I used that as a template and extended it for cephadm usage and included some very basic logging. It collects the osdmaps from all OSDs and contains the necessary considerations regarding containers. I decided to automate only the osdmap collection, not all required steps of the store rebuild procedure (e. g. Monitor store rebuild, client auth, etc.) because the r

## Reclaim Ceph Capacity Through CephFS Transcoding

DevFeed: [Reclaim Ceph Capacity Through CephFS Transcoding](<https://devfeed.tech/articles/reclaim-ceph-capacity-through-cephfs-transcoding-12331.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2026/cephfs-transcoding-ftw/>)

Author: Anthony D'Atri

Published: 2026-07-01T00:00:00Z

Content type: article

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [Transcodings](<https://devfeed.tech/topics/transcodings.md>), [Software](<https://devfeed.tech/topics/software.md>), [data](<https://devfeed.tech/topics/data.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [4k](<https://devfeed.tech/tags/4k.md>), [article](<https://devfeed.tech/tags/article.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [cephfs](<https://devfeed.tech/tags/cephfs.md>), [dram](<https://devfeed.tech/tags/dram.md>), [efficiency](<https://devfeed.tech/tags/efficiency.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [enterprise](<https://devfeed.tech/tags/enterprise.md>), [enterprise-storage](<https://devfeed.tech/tags/enterprise-storage.md>), [filesystem](<https://devfeed.tech/tags/filesystem.md>), [fujitsu](<https://devfeed.tech/tags/fujitsu.md>), [git](<https://devfeed.tech/tags/git.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [performance](<https://devfeed.tech/tags/performance.md>), [software](<https://devfeed.tech/tags/software.md>), [space](<https://devfeed.tech/tags/space.md>), [storage](<https://devfeed.tech/tags/storage.md>), [tentacle](<https://devfeed.tech/tags/tentacle.md>)

### AI overview

This article addresses rising storage demands and hardware costs by discussing CephFS capacity efficiency. It describes replicated pools, Erasure Coding, and Fast EC in Ceph Tentacle, while the title identifies CephFS transcoding as the article's focus.

### Source excerpt

Data expands to fill available storage (and beyond)! ¶ It used to be that enterprise storage meant 6RU rackmount Fujitsu 2351 Eagles, each holding a mind-boggling 380 MiB of data: enough for a whole company! Today that 380 MiB can't even hold a 4k pickleball video. Enterprises, educational instutitions, and really just about anyone these days demand storage capacities that start on the order of hundreds of tebibytes and rapidly grow to pebibytes. As this article is written in the spring of 2026, the memory market, which includes DRAM, SSDs, and legacy HDDs, has experienced a dramatic escalation of pricing. It is not uncommon to be quoted a price four times what the same hardware cost a year ago, and there are signs that it is going to get worse before it gets better. What's a poor ammonite to do?? Cephers find themselves between the Charybdis of quotes approaching Disaster Area's hypermathematics and the Scylla of hungry users armed with torches and git forks. Git forks, pitchforks. Get it? Sigh. Tough room. Anyway... Short of nuking the site from orbit, how do we make everyone happy, or at worst mildly discontented? Efficiency! CephFS ¶ CephFS is a popular, highly available and scalable software-defined POSIX-style distributed filesystem that can easily store tens of pebibytes of precious data. Or, alternately, cat videos. Ceph deployments often begin small, with replicated pools for perceived performance needs. As the cluster grows to more nodes and more data, it may become feasible and desirable to switch to Erasure Coding (EC) to make more efficient use of raw capacity. An EC pool thus can require substantially less raw storage for a given amount of user data, or store gobs more user data on a given amount of raw capacity This EC overhead table presents efficiency (space amplification) factors for a spectrum of EC profiles. Replicated pools usually maintain three copies of data, so for comparison they manifest an overhead factor of 3.0. EC 4+2 or 6+3 presents a

## Ceph Q2 2026 Newsletter

DevFeed: [Ceph Q2 2026 Newsletter](<https://devfeed.tech/articles/ceph-q2-2026-newsletter-12336.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2026/q2-ceph-newsletter/>)

Author: Anthony Middleton

Published: 2026-06-25T00:00:00Z

Content type: article

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [ceph](<https://devfeed.tech/topics/ceph.md>), [releases](<https://devfeed.tech/topics/releases.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [ceph-events](<https://devfeed.tech/tags/ceph-events.md>), [collaboration](<https://devfeed.tech/tags/collaboration.md>), [communication](<https://devfeed.tech/tags/communication.md>), [community](<https://devfeed.tech/tags/community.md>), [contribute](<https://devfeed.tech/tags/contribute.md>), [developers](<https://devfeed.tech/tags/developers.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [ecosystem](<https://devfeed.tech/tags/ecosystem.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [event](<https://devfeed.tech/tags/event.md>), [governance](<https://devfeed.tech/tags/governance.md>), [growth](<https://devfeed.tech/tags/growth.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [newsletter](<https://devfeed.tech/tags/newsletter.md>), [operational](<https://devfeed.tech/tags/operational.md>), [operations](<https://devfeed.tech/tags/operations.md>), [releases](<https://devfeed.tech/tags/releases.md>), [resources](<https://devfeed.tech/tags/resources.md>), [support](<https://devfeed.tech/tags/support.md>)

### AI overview

The Ceph Q2 2026 Newsletter covers governance coordination, community elections, documentation initiatives, contributor resources, regional Ceph Days events, project releases, and ways to contribute. It emphasizes collaboration among users, developers, operators, and organizations across the Ceph ecosystem.

### Source excerpt

During the second quarter, the Ceph Foundation focused on strengthening collaboration across the project, expanding community programs, supporting documentation efforts, and investing in regional events. This edition highlights recent governance discussions, community elections, new contributor resources, Ceph Days events, and opportunities for community members to get involved. If you have an idea for a Ceph-related event, outreach effort, or project, we encourage you to submit a funding request and work with the Foundation to help bring it to life. In This Issue ¶ Board and CSC Alignment on Community Priorities 2026 CSC Election Recap Meet the New Ceph Technical Writer Ceph Days Continue to Grow Latest Ceph Releases Community Committees and New Ways to Contribute Board and CSC Alignment on Community Priorities ¶ The Ceph Governing Board and Community Steering Committee (CSC) met this quarter to discuss the long-term health of the project, governance, documentation, community growth, and Foundation-supported initiatives. The discussion reaffirmed the distinct roles of each organization within the Ceph ecosystem. The CSC continues to provide technical governance for the project, while the Ceph Foundation focuses on community growth, events, outreach, and funding. The Linux Foundation provides operational, legal, and financial support that enables both groups to operate effectively. A significant area of focus was improving coordination between technical priorities and Foundation-supported programs. Current documentation initiatives include improvements to the documentation backport process, development of a new OSD operations guide, clarification of package and container documentation, and the removal of outdated content. The Board and CSC also discussed the future of community events and the importance of establishing clear goals and success metrics for Foundation-funded programs. Both groups reaffirmed their commitment to supporting collaboration between users, de

## v20.2.2 Tentacle released

DevFeed: [v20.2.2 Tentacle released](<https://devfeed.tech/articles/v20-2-2-tentacle-released-12343.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2026/v20-2-2-tentacle-released/>)

Author: Yuri Weinstein, Patrick Donnelly

Published: 2026-06-16T00:00:00Z

Content type: release

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [bug](<https://devfeed.tech/topics/bug.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [Encryption](<https://devfeed.tech/topics/encryption.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [IO](<https://devfeed.tech/topics/io.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [aio](<https://devfeed.tech/tags/aio.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [bug](<https://devfeed.tech/tags/bug.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [encryption](<https://devfeed.tech/tags/encryption.md>), [io](<https://devfeed.tech/tags/io.md>), [memory-leaks](<https://devfeed.tech/tags/memory-leaks.md>), [rados](<https://devfeed.tech/tags/rados.md>), [release](<https://devfeed.tech/tags/release.md>), [rgw](<https://devfeed.tech/tags/rgw.md>), [storage](<https://devfeed.tech/tags/storage.md>), [tentacle](<https://devfeed.tech/tags/tentacle.md>), [ui](<https://devfeed.tech/tags/ui.md>), [update](<https://devfeed.tech/tags/update.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

Ceph v20.2.2 Tentacle is a minor release that adds Rocky 10 package-install support and recommends updating. It fixes issues across MDS, OSD, RGW, RADOS libraries, watch/notify operations, asynchronous utilities, and the dashboard, including security vulnerabilities, memory leaks, encrypted-object lifecycle problems, and UI and configuration improvements.

### Source excerpt

This is the second minor release in the Tentacle series. We recommend that all users update to this release. Release Date ¶ June 16, 2026 Notable Changes ¶ Rocky 10 package-based installs are now supported starting with v20.2.2. Please see the supported platforms for current and planned support in Ceph. MDS (Metadata Server) ¶ Segmentation fault fixed due to incorrect queueing of request retries. OSD (Object Storage Daemon) ¶ PGLog Missed List: Fixed a bug to ensure the correct version is attached to the missing list when ignoring log entries. Data Integrity Asserts: Added assertions to explicitly catch potential corruption in the OSD missing list. RGW (RADOS Gateway) ¶ Lifecycle Management: Fixed lifecycle transition issues affecting encrypted multipart objects. REST & Query Handling: RESTArgs::get_string() now properly URL-decodes incoming query parameters. RADOS / librados / neorados ¶ Linger Operations: Rewrote safety checks to eliminate use-after-free vulnerabilities and LingerOp memory leaks when an unwatch operation returns ENOTCONN. Replaced the flawed is_valid_watch() check with a safe linger_by_cookie() lookup which safely manages LingerOp references using intrusive_ptr. Ensured librados linger callbacks hold a persistent reference to LingerOp to protect against races with simultaneous linger_cancel() requests. Configured librados::IoCtxImpl::aio_unwatch() to asynchronously deliver ENOTCONN to AioCompletion instead of returning the error directly. Watch/Notify: Fixed neorados notification queue bounds enforcement so that an overflow marker is only appended on the first message exceeding capacity, rather than duplicating it on every subsequent message. Prevented double-cleanup triggers in watch/notify operations when incoming errors arrive after maybe_cleanup() runs. Fixed a bug where notify would lose original error values by ensuring it no longer attempts to decode empty responses. Enhanced io_context shutdown procedures to clear handlers and route cleanl

## Ceph Days Seattle 2026 - Cloud Transition to Tape

DevFeed: [Ceph Days Seattle 2026 - Cloud Transition to Tape](<https://devfeed.tech/articles/ceph-days-seattle-2026-cloud-transition-to-tape-12330.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2026/cd-seattle-cloud-blog/>)

Author: John Shubeck

Published: 2026-06-15T00:00:00Z

Content type: article

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [Open Source](<https://devfeed.tech/topics/open-source.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [ibm](<https://devfeed.tech/topics/ibm.md>), [Cloud](<https://devfeed.tech/topics/cloud.md>), [Software](<https://devfeed.tech/topics/software.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [cloud](<https://devfeed.tech/tags/cloud.md>), [conferences](<https://devfeed.tech/tags/conferences.md>), [developers](<https://devfeed.tech/tags/developers.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [ibm](<https://devfeed.tech/tags/ibm.md>), [network](<https://devfeed.tech/tags/network.md>), [object-storage](<https://devfeed.tech/tags/object-storage.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [s3](<https://devfeed.tech/tags/s3.md>), [seattle](<https://devfeed.tech/tags/seattle.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

This article recaps Ceph Days Seattle 2026, a community-driven event about open-source storage. It introduces Ceph as a software-defined platform for block, file, and object storage, and highlights a presentation on transitioning Ceph cloud workloads to S3-enabled tape.

### Source excerpt

I'm John Shubeck, an information technology professional with over 44 years of industry experience spanning both the customer and technology provider experience. I'm currently serving as a Senior Storage Technical Specialist for IBM Object Storage platforms across all market segments in the Americas. On Thursday, May 28th, 30 members, myself included, of the Ceph faithful descended on the SURF business incubator in downtown Seattle for "Ceph Days Seattle 2026". Following the traditional Ceph Days agenda, the Seattle program consisted of a series of "Ceph Talks" designed to introduce new ideas and share lessons learned. Ceph Days are community-driven events designed to bring together Ceph users, developers, architects, administrators, and anyone interested in open-source storage. Held throughout the year in locations around the world, these one-day gatherings offer a unique opportunity to learn from real-world deployments, explore new technologies, connect with peers, and contribute to discussions that help shape the future of Ceph. Did you know? ¶ Ceph is a software-defined, hardware-independent storage solution that provides block, file, and object storage on a single unified platform. Ceph is championed by developers, administrators, users, IT leaders, and Fortune 500 enterprise customers. It is a living, vibrant, and active group that has adopted Ceph in its IT operations. The Ceph project and community are supported by a Foundation (https://ceph.io/en/foundation/) comprising organizations, stakeholders, and industry leaders who collaborate to coordinate investment, development, and community activities for Ceph. With the setting, plot, and characters stated above, we turn to today's topic. A key activity of the Ceph community is a series of "Ceph Days" conferences. A Ceph Day is a full-day meetup where participants learn, network, make new acquaintances, and share ideas on how to enhance the value of Ceph. Sometimes IBM participates by providing the venue, a gue

## For whom the door-bell tolls

DevFeed: [For whom the door-bell tolls](<https://devfeed.tech/articles/for-whom-the-door-bell-tolls-12332.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2026/for-whom-the-door-bell-tolls/>)

Author: Kyle Bader

Published: 2026-06-11T00:00:00Z

Content type: article

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [Caching](<https://devfeed.tech/topics/caching.md>), [Large Language Model](<https://devfeed.tech/topics/llm.md>), [Inference Performance](<https://devfeed.tech/topics/inference-performance.md>), [Low-Latency Inference](<https://devfeed.tech/topics/low-latency-inference.md>), [GPU](<https://devfeed.tech/topics/gpu.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [2025](<https://devfeed.tech/tags/2025.md>), [ai](<https://devfeed.tech/tags/ai.md>), [architecture](<https://devfeed.tech/tags/architecture.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [cache](<https://devfeed.tech/tags/cache.md>), [caching](<https://devfeed.tech/tags/caching.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [gpu](<https://devfeed.tech/tags/gpu.md>), [gpu-initated](<https://devfeed.tech/tags/gpu-initated.md>), [inference](<https://devfeed.tech/tags/inference.md>), [llm](<https://devfeed.tech/tags/llm.md>), [nvme](<https://devfeed.tech/tags/nvme.md>), [rados](<https://devfeed.tech/tags/rados.md>), [rados-nkv](<https://devfeed.tech/tags/rados-nkv.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

The article explores using Ceph RADOS through NVMe key-value commands to support GPU-initiated storage access for LLM KV caching. It connects content-addressable caching with the efficiency of GPU-initiated NVMe access and discusses a possible vendor-specific extension for executing classes against objects.

### Source excerpt

For whom the door-bell tolls In a previous post we extolled the benefits of KV caching, a technique to save the KV states from the prefill step of LLM-based inference to reduce time to first token (TTFT) and skip redundant computation. I co-presented this with Tushar Gohad at Cephalocon. Since then I've been thinking a lot about how to improve the state of the art. Really move the needle. We've made strides in a lot of areas in Ceph, especially the work going into Fast EC -- if you don't know what I'm talking about you should check it out, it promises huge benefits to a large category of workloads. That's not what we're here for today, though. Last year there was one paper that stuck in my mind, which is fairly remarkable because I read on the order of 130. That paper was GPU-Initiated On-Demand High-Throughput Storage Access in the BaM System Architecture. I struggled with this. It describes a system where a CPU loads a kernel into the GPU that allows the GPU to serve as an NVMe initiator. The struggle was rooted in the fact that block just felt like the wrong interface for KV caching. If you use block, then you need a lookup table that maps the hash of the sequences representing a cache block to a particular (device, offset, length) tuple. It begs for a content-addressable approach with no centralized lookup or coordination. On the other hand, what was described in the paper was just flat-out more electrically efficient. I couldn't have my cake and eat it too. The idea: RADOS, spoken as NVMe key-value ¶ In 2025 we also saw the first ratified version of the NVMe key-value command set specification. We already have a Ceph implementation of NVMe/TCP that leverages SPDK, and it seemed like we could add support fairly easily for the key-value command set. For those who don't know the internal mechanics of Ceph, the native API operates against RADOS objects. RADOS is richer than most object stores: it supports reads and writes to arbitrary offsets, deletes, key-value sto

## Managing Multiple Lua Scripts with Ceph Object Storage

DevFeed: [Managing Multiple Lua Scripts with Ceph Object Storage](<https://devfeed.tech/articles/managing-multiple-lua-scripts-with-ceph-object-storage-12338.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2026/rgw-multiple-scripts/>)

Author: Kirby Chin

Published: 2026-06-10T00:00:00Z

Content type: article

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [Lua](<https://devfeed.tech/topics/lua.md>), [Script](<https://devfeed.tech/topics/script.md>), [Scripting](<https://devfeed.tech/topics/scripting.md>), [Security](<https://devfeed.tech/topics/security.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>), [ransomware](<https://devfeed.tech/topics/ransomware.md>)

Tags: [availability](<https://devfeed.tech/tags/availability.md>), [blog](<https://devfeed.tech/tags/blog.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [cli](<https://devfeed.tech/tags/cli.md>), [data](<https://devfeed.tech/tags/data.md>), [developer](<https://devfeed.tech/tags/developer.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [examples](<https://devfeed.tech/tags/examples.md>), [feature](<https://devfeed.tech/tags/feature.md>), [go](<https://devfeed.tech/tags/go.md>), [lua](<https://devfeed.tech/tags/lua.md>), [management](<https://devfeed.tech/tags/management.md>), [new-feature](<https://devfeed.tech/tags/new-feature.md>), [object-storage](<https://devfeed.tech/tags/object-storage.md>), [operations](<https://devfeed.tech/tags/operations.md>), [rados](<https://devfeed.tech/tags/rados.md>), [ransomware](<https://devfeed.tech/tags/ransomware.md>), [rgw](<https://devfeed.tech/tags/rgw.md>), [s3](<https://devfeed.tech/tags/s3.md>), [scripting](<https://devfeed.tech/tags/scripting.md>), [security](<https://devfeed.tech/tags/security.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

This article introduces a Ceph RADOS Gateway feature for managing multiple Lua scripts within the same request context and tenant. It demonstrates scripts for enforcing bucket object locks to mitigate ransomware risks and for optimizing storage through object auto-tiering.

### Source excerpt

Since the Pacific release, Lua scripting in Ceph's RADOS Gateway (RGW) has provided users the ability to interpolate a single script to upload operations per request context and tenant. This way of working might be completely fine for a storage deployment with limited scripting customizations. However, script management becomes increasingly difficult as more than one team wants to get involved in managing the Lua script within the same context and tenant. For this reason, we've released a new feature in RGW allowing you to manage more than one Lua script at a time. In this blog, we'll go over a couple of examples to walk you through how this feature can help your team to reduce runtime errors and lower developer friction when managing Lua scripts in RGW. To begin, we will create a script to enforce a bucket security control and then add another script to demonstrate the new feature. Script 1: Bucket security ¶ Let's suppose we are part of a security team and want to mitigate the risk of ransomware threats happening on our storage platform. One possible way to achieve this is to implement a Write Once, Read Many (WORM) strategy to add an object lock onto any newly created bucket. By using an object lock, we can add a constraint to write objects to disk only once, ensuring that an infected client cannot delete or override objects at a later time. To set our WORM strategy, we can create a Lua script in the prerequest context that aborts when a create_bucket operation is made without the write-once (object lock) requirement. objectlock.lua -- enforcing object lock on bucket creation if Request.RGWOp == "create_bucket" and Request.HTTP.Metadata["x-amz-bucket-object-lock-enabled"] ~= "true" then RGWDebugLog("object lock is missing on bucket: " .. Request.Bucket.Name) Request.Response.Message = "Bucket must have object lock enabled" return RGW_ABORT_REQUEST end You can create a new objectlock.lua file with the contents above and run the CLI commands below to upload the scr

## From Laminated Pages to Petabytes: Why I'm Joining the Ceph Foundation

DevFeed: [From Laminated Pages to Petabytes: Why I'm Joining the Ceph Foundation](<https://devfeed.tech/articles/from-laminated-pages-to-petabytes-why-i-m-joining-the-ceph-foundation-12333.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2026/from-laminated-pages-to-petabytes/>)

Author: Emmanuel Ameh

Published: 2026-05-06T00:00:00Z

Content type: article

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [Usability](<https://devfeed.tech/topics/usability.md>), [Software](<https://devfeed.tech/topics/software.md>), [systems](<https://devfeed.tech/topics/systems.md>), [incident](<https://devfeed.tech/topics/incident.md>), [Disk image](<https://devfeed.tech/topics/disk-image.md>), [CRUD](<https://devfeed.tech/topics/crud.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [community](<https://devfeed.tech/tags/community.md>), [developer](<https://devfeed.tech/tags/developer.md>), [documentation](<https://devfeed.tech/tags/documentation.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [guide](<https://devfeed.tech/tags/guide.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [incident](<https://devfeed.tech/tags/incident.md>), [logging](<https://devfeed.tech/tags/logging.md>), [production](<https://devfeed.tech/tags/production.md>), [software](<https://devfeed.tech/tags/software.md>), [storage](<https://devfeed.tech/tags/storage.md>), [systems](<https://devfeed.tech/tags/systems.md>), [technical](<https://devfeed.tech/tags/technical.md>), [usability](<https://devfeed.tech/tags/usability.md>), [validation](<https://devfeed.tech/tags/validation.md>), [workflow](<https://devfeed.tech/tags/workflow.md>)

### AI overview

A new Ceph Foundation technical writer explains a documentation philosophy centered on usability and practical outcomes. The article introduces test-driven documentation: validate commands and workflows in clean environments, log user friction, and organize information so urgent how-to guidance is easy to find while deeper explanations remain accessible.

### Source excerpt

Hello, Ceph Community! I'm Emmanuel Ameh, and I'm thrilled to be joining as your new Technical Writer. My path into technical writing started during a university internship at a manufacturing plant, where I was handed a problem that, looking back, shaped how I think about documentation to this day. The first piece of documentation I wrote was a one-page troubleshooting guide. It was a simple list of common production-line issues and their fixes, taped to a workstation. But it worked. Operators stopped escalating the same problems, uptime held steady, and that single laminated page did the job of a dozen phone calls. I think about that page a lot. It wasn't elegant. It wasn't comprehensive. It didn't win any awards. But it sat exactly where the people who needed it could find it, and it told them exactly what to do. That, to me, is what good documentation looks like, whether it's protecting a production line or a petabyte-scale storage cluster. That experience taught me my core philosophy: good documentation isn't measured by how thorough it looks. It's measured by what it lets people do. A doc that keeps a cluster running is worth more than a hundred pages nobody reads. That belief is what brings me to the Ceph community today. My Approach: Test-Driven Documentation ¶ My background is in enterprise software and developer advocacy, where I've focused on making complex systems feel approachable. I treat usability as seriously as technical accuracy. To me, a "perfectly correct" doc that a user can't follow is a broken feature. I advocate for test-driven documentation. In practice, this means: Validation: Running every command and workflow in a clean environment to ensure it actually works. If a tutorial says "run this, and you'll see X," then somewhere, on a fresh install, I should be able to run it and see X. If I can't, neither can the reader. Friction Logging: Identifying the exact moment a newcomer gets stuck and smoothing that path. The most valuable feedback I ca

## Ceph Q1 2026 Newsletter

DevFeed: [Ceph Q1 2026 Newsletter](<https://devfeed.tech/articles/ceph-q1-2026-newsletter-12329.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2026/Q1-community-newsletter/>)

Author: Anthony Middleton

Published: 2026-03-31T00:00:00Z

Content type: news

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [Developer experience](<https://devfeed.tech/topics/developer-experience.md>), [Slack](<https://devfeed.tech/topics/slack.md>), [ci](<https://devfeed.tech/topics/ci.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [ceph-events](<https://devfeed.tech/tags/ceph-events.md>), [ci](<https://devfeed.tech/tags/ci.md>), [communication](<https://devfeed.tech/tags/communication.md>), [community](<https://devfeed.tech/tags/community.md>), [complexity](<https://devfeed.tech/tags/complexity.md>), [contribute](<https://devfeed.tech/tags/contribute.md>), [contributors](<https://devfeed.tech/tags/contributors.md>), [developer-experience](<https://devfeed.tech/tags/developer-experience.md>), [ecosystem](<https://devfeed.tech/tags/ecosystem.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [event](<https://devfeed.tech/tags/event.md>), [events](<https://devfeed.tech/tags/events.md>), [governance](<https://devfeed.tech/tags/governance.md>), [guide](<https://devfeed.tech/tags/guide.md>), [onboarding](<https://devfeed.tech/tags/onboarding.md>), [slack](<https://devfeed.tech/tags/slack.md>)

### AI overview

The Ceph Q1 2026 Newsletter covers the Ceph Foundation's governance, event planning, financial updates, community funding opportunities, and communication initiatives. It also reports on efforts to improve developer and contributor experience by addressing operational complexity, CI complexity, review capacity, onboarding, and communication between the Foundation Board and the Ceph Steering Committee.

### Source excerpt

During this quarter, the Ceph Foundation focused on strengthening its structure by establishing new governance charters, event strategies, and financial plans. To enhance transparency as our community evolves, this newsletter offers a look behind the scenes at these foundational details. Our aim is to update Ceph Community members on the latest developments within the Foundation and to clarify how they can contribute to our ongoing growth. There are several ways to get involved with the foundation. If you have a concept for a Ceph-related project, we encourage you to take the first step toward bringing your idea to the next level and submit a funding request whenever you are ready. Feedback and suggestions will be offered along your journey with Ceph. In this issue ¶ CSC and Ceph Foundation Board Meeting Ceph Foundation Charters Approved Ceph Governing Board Hiring a Technical Writer OVHcloud Spending Update Ceph Tech Talks Are Back (Monthly Schedule) Upcoming Ceph Days Events Ceph Community Slack Upgraded to Pro CSC and Ceph Foundation Board Meeting ¶ The Ceph Foundation Board recently hosted the Ceph Steering Committee (CSC) for a collaborative discussion on the current state of the Ceph project and how both sides can work together to support the Ceph community. These quarterly meetings are designed to foster communication between the two committees working to build Ceph for the benefit of its users and contributors. The Ceph Board's goal is to help provide greater context to the CSC as they make decisions and to support their missions, thereby bridging the communication gap. The meeting's agenda is available here. Key discussion areas ¶ Operational complexity Friction in contributing and getting reviews Fragmented communication Unclear strategy in some areas Unclear ownership across parts of the ecosystem Major takeaways ¶ The Board will continue to work on closing the gap between developer experience and real-world operator needs, with help from the CSC around f

## Assessing the performance of the CLAY Erasure Code Plugin

DevFeed: [Assessing the performance of the CLAY Erasure Code Plugin](<https://devfeed.tech/articles/assessing-the-performance-of-the-clay-erasure-code-plugin-12326.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2025/cbt-performance-benchmarking-part4/>)

Author: Jake Squelch (IBM)

Published: 2026-02-11T00:00:00Z

Content type: article

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [benchmarking](<https://devfeed.tech/topics/benchmarking.md>), [IO](<https://devfeed.tech/topics/io.md>), [Code](<https://devfeed.tech/topics/code.md>)

Tags: [4k](<https://devfeed.tech/tags/4k.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [benchmarking](<https://devfeed.tech/tags/benchmarking.md>), [benchmarks](<https://devfeed.tech/tags/benchmarks.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [io](<https://devfeed.tech/tags/io.md>), [performance](<https://devfeed.tech/tags/performance.md>)

### AI overview

This article assesses the performance of the CLAY Erasure Code Plugin using CBT benchmarks. It reports that CLAY and JErasure have practically identical read performance for 4K random reads and 1024K sequential reads, while CLAY has substantially lower write performance, especially at higher bandwidths. The article attributes this to CLAY's more complex encoding process, which performs two encoding stages plus an additional memory copy. It also reports worse performance with an OSD down, including increased latency for degraded reads, but the supplied text ends before the discussion is complete.

### Source excerpt

CBT Performance Benchmarking - Part 4. What can we say about CLAY? Outline of the Blog Series ¶ Part 1 - How to start a Ceph cluster for a performance benchmark with CBT Part 2 - Defining YAML contents Part 3 - How to start a CBT performance benchmark Part 4 - Assessing the performance of the CLAY erasure code plugin Contents: Client IO results for CLAY Client IO with an OSD down What is CLAY good at? Problems with using CLAY How does CLAY read data from the drive? CLAY is broken in tentacle Summary Client IO results for CLAY ¶ As a refresher lets quickly look back on the client IO results of CLAY compared to JErasure: If we look back to Step 3 in Part 3 of the blog (Generating a comparison report), we saw that reads had practically identical curves between CLAY & JErasure for both 4K random reads and 1024K sequential reads. However, when we compared writes we saw that the performance hit to CLAY was substantially larger, particularly for higher bandwidths. The 1024k Sequential Writes diagram represents this: Click to see Part 3 diagrams So why was this? This is because of CLAY's encoding process, it is significantly more complex. While JErasure performs a single encoding pass, CLAY uses three phases: 50% of data is encoded using PRT (Product Recovery Transform), 50% of the data is copied to form an intermediate set of buffers All the intermediate data is encoded using RS (Reed-Solomon) to form a second set of intermediate buffers 50% of the result is encoded using PFT (Parity Fractional Transform), 50% of the data is copied to form the output buffers Essentially, CLAY performs 2x the encoding plus an additional memcpy (memory copy) compared to JErasure's 1x encoding. This overhead therefore directly translates to lower write throughput for CLAY, as shown by the diagrams above. The performance impact increases for larger IO sizes because more data is being encoded. Referenced the following: 'Clay Codes: Moulding MDS Codes to Yield an MSR Code' above for information

## RGW Bucket Resharding Without Pausing

DevFeed: [RGW Bucket Resharding Without Pausing](<https://devfeed.tech/articles/rgw-bucket-resharding-without-pausing-12337.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2026/rgw-improved-resharding/>)

Author: Daniel Alexander Parkes, Anthony D'Atri

Published: 2026-02-01T00:00:00Z

Content type: article

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [systems](<https://devfeed.tech/topics/systems.md>), [Scalability](<https://devfeed.tech/topics/scalability.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>)

Tags: [2026](<https://devfeed.tech/tags/2026.md>), [article](<https://devfeed.tech/tags/article.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [concurrent](<https://devfeed.tech/tags/concurrent.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [io](<https://devfeed.tech/tags/io.md>), [operational](<https://devfeed.tech/tags/operational.md>), [operations](<https://devfeed.tech/tags/operations.md>), [performance](<https://devfeed.tech/tags/performance.md>), [production](<https://devfeed.tech/tags/production.md>), [rgw](<https://devfeed.tech/tags/rgw.md>), [s3](<https://devfeed.tech/tags/s3.md>), [scalability](<https://devfeed.tech/tags/scalability.md>), [scale](<https://devfeed.tech/tags/scale.md>), [storage](<https://devfeed.tech/tags/storage.md>), [systems](<https://devfeed.tech/tags/systems.md>)

### AI overview

The article explains how Ceph Tentacle introduces near-zero-impact RGW bucket resharding. Its two-phase architecture moves intensive work into a non-blocking background phase, avoiding the prolonged write unavailability and 504 errors seen in Ceph Squid and earlier versions.

### Source excerpt

Introduction: The Foundation of Scalable Object Storage ¶ In the modern data landscape, object storage has evolved from a simple file repository into the foundational layer for AI/ML pipelines, data lakehouses, real-time analytics, and massive-scale archival systems. At the heart of this evolution is a deceptively simple question: How do you efficiently locate and access billions of objects stored in a single bucket? The answer lies in one of Ceph's most critical performance mechanisms: bucket index sharding. This architectural pattern divides a bucket's index into multiple parallel structures, enabling concurrent operations across thousands of objects while maintaining the consistency and reliability that enterprise workloads demand. But there's always been a catch. As workloads grow and evolve, buckets need to be resharded. Historically, when the buckets to be resharded had a vast number of objects, this operation came with a painful trade-off: blocking client writes from seconds to minutes, with a chance of causing application disruptions, 504 Gateway errors, and operational headaches. With Ceph Tentacle, we're eliminating this trade-off. The new near-zero impact bucket resharding architecture transforms what was once a maintenance window event into a seamless background operation that your applications will never notice. Note: As of 2026/02/05, the functionality described in this article is expected in an upcoming Tentacle update. Executive Summary ¶ The Challenge: In Ceph Squid, resharding a 20-million-object bucket blocked writes for 4+ minutes, returning 504 errors. Even larger buckets (500M objects) required 94 minutes of complete write unavailability. The Solution: Ceph Tentacle's two-phase architecture moves the heavy lifting to a non-blocking background phase, eliminating the impact on clients IO. The Results: (note: in this graphic 8.1 refers to Squid and 9.0 to Tentacle) In this deep dive, we'll explore: Why bucket sharding is essential for modern workl

## Mastering IAM in Ceph: Multi-Tenancy, Access Control, and Why ACLs Must Die

DevFeed: [Mastering IAM in Ceph: Multi-Tenancy, Access Control, and Why ACLs Must Die](<https://devfeed.tech/articles/mastering-iam-in-ceph-multi-tenancy-access-control-and-why-acls-must-die-12334.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2026/mastering-iam/>)

Author: Daniel Alexander Parkes, Anthony D'Atri

Published: 2026-01-24T00:00:00Z

Content type: article

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [IAM](<https://devfeed.tech/topics/iam.md>), [Authorization](<https://devfeed.tech/topics/authorization.md>), [Security](<https://devfeed.tech/topics/security.md>), [Multi-tenancy](<https://devfeed.tech/topics/multi-tenancy.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Architecture & Design](<https://devfeed.tech/topics/architecture-design.md>)

Tags: [access-control](<https://devfeed.tech/tags/access-control.md>), [aws](<https://devfeed.tech/tags/aws.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [defense-in-depth](<https://devfeed.tech/tags/defense-in-depth.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [iam](<https://devfeed.tech/tags/iam.md>), [identity](<https://devfeed.tech/tags/identity.md>), [multi-tenancy](<https://devfeed.tech/tags/multi-tenancy.md>), [operations](<https://devfeed.tech/tags/operations.md>), [production](<https://devfeed.tech/tags/production.md>), [rgw](<https://devfeed.tech/tags/rgw.md>), [s3](<https://devfeed.tech/tags/s3.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

This article explains why ACLs in Ceph Object Gateway should be disabled in favor of centralized IAM policies. It discusses S3 permission failures, multi-tenant access problems, AWS's ACL-disabled defaults, and defense-in-depth measures such as Block Public Access and explicit denies for ACL operations.

### Source excerpt

Introduction ¶ Introduction: When Security Theater Becomes a Real Disaster ¶ In March 2017, a misconfigured S3 bucket at Verizon exposed the personal information of 14 million customers. The root cause wasn't a sophisticated attack; it was a simple oversight in access permissions. The bucket was set to be publicly accessible due to S3 permission misconfiguration, and no one noticed because ACLs were managed separately from the company's centralized IAM policies. The security team had implemented careful, identity-based access controls, but a resource-level ACL silently bypassed them by granting access to "All Users." This scenario repeats constantly across the industry: ACLs creating invisible access paths that security teams don't know exist, buckets accidentally exposed to the public internet, and contractors uploading data that the bucket owner cannot reliably read or administer, while still consuming capacity. Between 2017 and 2019, major companies exposed hundreds of millions of records via misconfigured S3 permissions (ACLs and/or bucket policies): Verizon (2017): 14 million customers - An AWS S3 bucket configured for public access exposed names, addresses, account PINs Facebook (2019): 540 million records - Third-party apps stored user data in publicly accessible S3 buckets Instagram (2019): 49 million records - Marketing firm left influencer database unprotected in AWS S3 The AWS response was clear: since April 2023, all new S3 buckets default to "ACLs disabled" (BucketOwnerEnforced) and Block Public Access enabled. AWS strongly recommends disabling ACLs on existing buckets and migrating to a pure policy-based model with IAM Accounts architecture. If you're running the Ceph Object Gateway (RGW), you have access to the same IAM Accounts model introduced in Ceph Squid 19.2.0. This post explains why ACLs must be disabled immediately and how to implement modern, secure access control with IAM policies. Do This First (Quick Security Wins) Before reading further,

## Breaking the Static Key Habit: Modernizing Ceph RGW S3 Security with STS

DevFeed: [Breaking the Static Key Habit: Modernizing Ceph RGW S3 Security with STS](<https://devfeed.tech/articles/breaking-the-static-key-habit-modernizing-ceph-rgw-s3-security-with-sts-12327.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2025/rgw-modernizing-sts/>)

Author: Daniel Alexander Parkes, Anthony D'Atri

Published: 2025-12-18T00:00:00Z

Content type: tutorial

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [Credential theft](<https://devfeed.tech/topics/credential-theft.md>), [configuration](<https://devfeed.tech/topics/configuration.md>), [GitHub](<https://devfeed.tech/topics/github.md>), [CI/CD](<https://devfeed.tech/topics/cicd.md>), [App](<https://devfeed.tech/topics/app.md>)

Tags: [amazon-s3](<https://devfeed.tech/tags/amazon-s3.md>), [app](<https://devfeed.tech/tags/app.md>), [aws](<https://devfeed.tech/tags/aws.md>), [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [ci-cd](<https://devfeed.tech/tags/ci-cd.md>), [code](<https://devfeed.tech/tags/code.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [credential-theft](<https://devfeed.tech/tags/credential-theft.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [github](<https://devfeed.tech/tags/github.md>), [rgw](<https://devfeed.tech/tags/rgw.md>), [s3](<https://devfeed.tech/tags/s3.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

This tutorial explains how to replace long-lived S3 credentials in Ceph Object Gateway (RGW) applications with temporary credentials issued through Security Token Service (STS). It uses the Uber breach to illustrate how stolen static keys can enable persistent unauthorized access, and discusses credentials stored in configuration files, scripts, and CI/CD variables.

### Source excerpt

Introduction: The USD 148 Million Lesson ¶ In late 2016, Uber learned that intruders had accessed a trove of personal data stored in an Amazon S3 bucket. The entry point was painfully mundane: attackers accessed Uber's source code on GitHub using stolen credentials, found an AWS credential, and used it to access Uber's data. That single, long-lived credential exposed data on roughly 57 million users and 600,000 drivers. The breach was bad; the duration risk was worse. Static access keys do not expire. Once leaked, they remain active until someone notices, locates every instance in use, and rotates them. That makes credential theft uniquely dangerous in cloud and S3-style storage, because an attacker can repeatedly return, automate access, and quietly expand their footprint. Uber ultimately agreed to a $148 million multistate settlement related to how the incident was handled and disclosed. The exact dollar figure is not the main lesson, though. The lesson is this: a single static key can turn a small mistake into a durable breach. If you are running the Ceph Object Gateway (RGW), you face the same dynamic: S3 credentials in an application configuration file config.yaml, embedded in scripts, or stored in CI/CD variables. Each one is a long-lived credential that, once copied, can be used from anywhere the S3 endpoint is reachable. This post shows you how to eliminate static credentials using Security Token Service (STS) with temporary credentials that expire automatically. By the end, you'll understand how to implement the same security model that prevented these breaches from being even worse, and how to adapt it for Ceph RGW. The Static Credential Problem ¶ Let's take a look at some examples of how most applications access S3 storage today: # app-config.yaml (application config file) s3: endpoint: https://s3.example.com access_key: AKIA1234567890ABCDEF secret_key: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY bucket: production-data Or with the credentials embedded direc

## RocksDB Compression in Ceph: Space Savings with No Performance Cost

DevFeed: [RocksDB Compression in Ceph: Space Savings with No Performance Cost](<https://devfeed.tech/articles/rocksdb-compression-in-ceph-space-savings-with-no-performance-cost-12328.md>)

Original publisher: [Read original article](<https://ceph.io/en/news/blog/2025/rocksdb-compression-ftw/>)

Author: Daniel Alexander Parkes, Anthony D'Atri

Published: 2025-12-17T00:00:00Z

Content type: article

Language: en

Sources: [Ceph Blog](<https://devfeed.tech/sources/ceph-blog.md>)

Topics: [Compression](<https://devfeed.tech/topics/compression.md>), [Database](<https://devfeed.tech/topics/database.md>), [Hardware](<https://devfeed.tech/topics/hardware.md>), [ibm](<https://devfeed.tech/topics/ibm.md>)

Tags: [blog-post](<https://devfeed.tech/tags/blog-post.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [compression](<https://devfeed.tech/tags/compression.md>), [configuration](<https://devfeed.tech/tags/configuration.md>), [cost](<https://devfeed.tech/tags/cost.md>), [devices](<https://devfeed.tech/tags/devices.md>), [en-article](<https://devfeed.tech/tags/en-article.md>), [en-blog-post](<https://devfeed.tech/tags/en-blog-post.md>), [ibm](<https://devfeed.tech/tags/ibm.md>), [mon](<https://devfeed.tech/tags/mon.md>), [nvme](<https://devfeed.tech/tags/nvme.md>), [osd](<https://devfeed.tech/tags/osd.md>), [performance](<https://devfeed.tech/tags/performance.md>), [rados](<https://devfeed.tech/tags/rados.md>), [reef](<https://devfeed.tech/tags/reef.md>), [rocksdb](<https://devfeed.tech/tags/rocksdb.md>), [space](<https://devfeed.tech/tags/space.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

This article reports Ceph performance tests showing that enabling RocksDB compression can substantially reduce metadata database space, especially for smaller objects, without harming throughput or resource consumption. The tests used IBM Storage Ceph 7.1 with BlueStore OSDs, HDD object storage, and NVMe devices for the RocksDB WAL and database.

### Source excerpt

Introduction ¶ In the world of data storage, engineers and architects constantly face a fundamental dilemma: the trade-off between performance and efficiency. It's a balancing act. When you want to save space, you typically enable features like compression, but the common assumption is that this will cost you performance, a CPU cycle tax that slows throughput. But what if you could significantly reduce your metadata storage footprint without slowing things down? This search for an answer to this question started with research work from Mark Nelson, who published a blog post on ceph.io that covers RocksDB tuning in depth, exploring RocksDB compression with positive results. These promising results sparked a conversation on the upstream GitHub about enabling compression by default; a link to the PR is available here. To build on the previous investigation, the Ceph performance team ran tests on a robust hardware configuration running IBM Storage Ceph 7.1 (Reef). The cluster used the BlueStore OSDs for an erasure-coded (EC 4+2) pool, with a hybrid OSD storage setup: HDDs for object data and fast NVMe drives for the BlueStore WAL+DB. To understand the test, it's helpful to know what the WAL+DB is. In modern Ceph, the BlueStore storage engine manages all data on the OSDs (physical devices). To do this, it must maintain a vast catalog of internal metadata: think of it as a high-speed index that quickly locates every piece of data. RocksDB, a high-performance key-value database, manages this critical index. In our hybrid cluster, the RocksDB database runs on the fast NVMe deviceses, while the actual object data resides on the slower HDDs. Because this metadata can grow very large, RocksDB's efficiency, how much space it consumes on those expensive NVMe drives, is a critical factor in the cluster's overall cost and performance. Our test, therefore, focuses on a simple, high-stakes question: Can we compress this metadata to save space without paying a performance penalty? Ex

## Migrating from VMware to Proxmox VE at 3,000-Core Scale

DevFeed: [Migrating from VMware to Proxmox VE at 3,000-Core Scale](<https://devfeed.tech/articles/why-i-left-vmware-for-proxmox-ve-and-built-my-own-automation-layer-34038.md>)

Original publisher: [Read original article](<https://shivamsancc.com/blog/from-vmware-to-proxmox-ve-migrating-3000-cores-and-building-custom-orchestrator>)

Author: Shivam Anand

Published: 2025-08-23T08:25:07Z

Content type: article

Language: en

Sources: [Shivam Anand - DevOps & Cloud Engineering Blog](<https://devfeed.tech/sources/shivam-anand-devops-cloud-engineering-blog.md>)

Topics: [Proxmox](<https://devfeed.tech/topics/proxmox.md>), [virtualization](<https://devfeed.tech/topics/virtualization.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Automation](<https://devfeed.tech/topics/automation.md>), [Command-line interface](<https://devfeed.tech/topics/cli.md>), [ceph](<https://devfeed.tech/topics/ceph.md>), [NVMe](<https://devfeed.tech/topics/nvme.md>)

Tags: [automation](<https://devfeed.tech/tags/automation.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [cli](<https://devfeed.tech/tags/cli.md>), [kvm](<https://devfeed.tech/tags/kvm.md>), [migration](<https://devfeed.tech/tags/migration.md>), [nvme](<https://devfeed.tech/tags/nvme.md>), [proxmox](<https://devfeed.tech/tags/proxmox.md>), [virtualization-cloud-infrastructure](<https://devfeed.tech/tags/virtualization-cloud-infrastructure.md>), [vmware](<https://devfeed.tech/tags/vmware.md>)

### AI overview

The article describes a three-month migration of 3,000 CPU cores, 8 TB of RAM, and production and archival storage from VMware to Proxmox VE. It explains the use of NFS, Ceph, and a custom CLI orchestrator to manage the resulting infrastructure.

### Source excerpt

Discover how I migrated 3,000 cores, 8TB RAM from VMware to Proxmox VE, built a custom CLI orchestrator, and leveraged Ceph storage for seamless management.

## Integrating Confluent Schema Registry with Apache Spark applications

DevFeed: [Integrating Confluent Schema Registry with Apache Spark applications](<https://devfeed.tech/articles/integrating-confluent-schema-registry-with-apache-spark-applications-24745.md>)

Original publisher: [Read original article](<https://medium.com/yazio-engineering/integrating-confluent-schema-registry-with-apache-spark-applications-d3426e33bc51?source=rss----65bd178b00af---4>)

Author: Dominik Liebler

Published: 2022-01-24T08:04:19Z

Content type: tutorial

Language: en

Sources: [YAZIO Engineering - Medium](<https://devfeed.tech/sources/yazio-engineering-medium.md>)

Topics: [Kafka](<https://devfeed.tech/topics/kafka.md>), [Apache Spark](<https://devfeed.tech/topics/spark.md>), [Streaming](<https://devfeed.tech/topics/streaming.md>), [data lake](<https://devfeed.tech/topics/data-lake.md>), [parquet](<https://devfeed.tech/topics/parquet.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [Kubernetes](<https://devfeed.tech/topics/kubernetes.md>), [ceph](<https://devfeed.tech/topics/ceph.md>), [JSON Schema](<https://devfeed.tech/topics/json-schema.md>)

Tags: [apache-spark](<https://devfeed.tech/tags/apache-spark.md>), [backpressure](<https://devfeed.tech/tags/backpressure.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [confluent](<https://devfeed.tech/tags/confluent.md>), [data-engineering](<https://devfeed.tech/tags/data-engineering.md>), [data-lake](<https://devfeed.tech/tags/data-lake.md>), [data-pipeline](<https://devfeed.tech/tags/data-pipeline.md>), [json](<https://devfeed.tech/tags/json.md>), [kafka](<https://devfeed.tech/tags/kafka.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [parquet](<https://devfeed.tech/tags/parquet.md>), [payload](<https://devfeed.tech/tags/payload.md>), [pipelines](<https://devfeed.tech/tags/pipelines.md>), [schema](<https://devfeed.tech/tags/schema.md>), [schemaregistry](<https://devfeed.tech/tags/schemaregistry.md>), [serialization](<https://devfeed.tech/tags/serialization.md>), [spark](<https://devfeed.tech/tags/spark.md>), [streaming](<https://devfeed.tech/tags/streaming.md>)

### AI overview

This engineering article explains YAZIO's data pipeline from mobile and web applications through Kafka and Spark Structured Streaming into a Ceph-based data lake. It discusses why schemas matter and describes replacing JSON with Apache Avro and Confluent Schema Registry to reduce message size while keeping schema information externally stored and cached.

### Source excerpt

At YAZIO, we believe in making decisions backed by data to help people live healthier lives through better nutrition. For each new and existing feature we want to evaluate how well it performs and how our users interact with it. In order to do so, we need a lot of data and we need to handle backpressure in our systems. To cope with that we use a Kafka cluster managed by Strimzi operators running in Kubernetes. The data itself is being ingested from our mobile and web apps via HTTP or TCP endpoints serialized into JSON and stored in Kafka by a small application written in Kotlin/JVM. Overview of our data pipeline architecture At the other end of the pipeline, different Spark Structured Streaming applications (also written in Kotlin) dump this information into our data lake residing in a Ceph bucket. They read data from Kafka, deserialize it, transform some of the fields and write Parquet files into the data lake using a new schema. Why schemas? Schemas play an important role in data pipelines because they give meaning and context to data. In a world without schemas we would still do random interpretations about the context and meaning of data every now and then when using it. As you might have guessed already this would lead to a lot of bugs and misunderstandings. Photo by EJ Strat https://unsplash.com/photos/VjWi56AWQ9k Similar to a legal contract that binds you to certain limits, a schema binds the data to certain limits and meaning which narrow down the need of interpretation. Choice of serialization formats At the time of writing, Confluent Schema Registry supports these three serialization formats: Apache Avro Protocol Buffers (protobuf) JSON Schema From those choices, only two really provide more than just validation of the data that is ingested and transmitted through our data pipelines. Avro and Protobuf also allow us to shrink the sizes of our topics because only the payload is contained in a message, while the repeating schema will not be stored. In the cas

## How to safely upgrade to Proxmox 7

DevFeed: [How to safely upgrade to Proxmox 7](<https://devfeed.tech/articles/before-you-upgrade-to-proxmox-7-please-consider-this-10636.md>)

Original publisher: [Read original article](<https://technotim.com/posts/proxmox-7/>)

Author: Techno Tim

Published: 2021-07-10T19:00:00Z

Content type: tutorial

Language: en

Sources: [Techno Tim](<https://devfeed.tech/sources/techno-tim.md>)

Topics: [Proxmox](<https://devfeed.tech/topics/proxmox.md>), [Homelab](<https://devfeed.tech/topics/homelab.md>), [Debian](<https://devfeed.tech/topics/debian.md>), [ceph](<https://devfeed.tech/topics/ceph.md>), [Network](<https://devfeed.tech/topics/network.md>)

Tags: [ceph](<https://devfeed.tech/tags/ceph.md>), [debian](<https://devfeed.tech/tags/debian.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [network](<https://devfeed.tech/tags/network.md>), [proxmox](<https://devfeed.tech/tags/proxmox.md>), [update](<https://devfeed.tech/tags/update.md>), [video](<https://devfeed.tech/tags/video.md>)

### AI overview

A video tutorial covering Proxmox 7's new features and the process for upgrading a Proxmox server safely. It discusses upgrade prompts, package and repository preparation, Ceph considerations, and network configuration changes for LACP or LAGG.

### Source excerpt

As you may know, proxmox is my current choice for a hypervisor. Proxmox 7 is here and comes with a host of new features! In this video we're cover all of the new features in Proxmox 7 as well as how to upgrade your Proxmox server safely. We'll also cover all of the "scary" prompts you get while upgrading as well as some of the ways to make sure your upgrade is successful. So, if you're thinkin...

## Allas November 2020 incident details

DevFeed: [Allas November 2020 incident details](<https://devfeed.tech/articles/allas-november-2020-incident-details-19774.md>)

Original publisher: [Read original article](<https://cloud.blog.csc.fi/2020/12/allas-november-2020-incident-details.html>)

Author: Kalle Happonen (noreply@blogger.com)

Published: 2020-12-22T12:31:00Z

Content type: article

Language: en

Sources: [CSC - IT Center For Science - Cloud Team](<https://devfeed.tech/sources/csc-it-center-for-science-cloud-team.md>)

Topics: [ceph](<https://devfeed.tech/topics/ceph.md>), [incident](<https://devfeed.tech/topics/incident.md>), [Amazon S3](<https://devfeed.tech/topics/amazon-s3.md>), [rocksdb](<https://devfeed.tech/topics/rocksdb.md>), [NVMe](<https://devfeed.tech/topics/nvme.md>), [Processes](<https://devfeed.tech/topics/processes.md>), [Vapor](<https://devfeed.tech/topics/swift-vapor.md>)

Tags: [ceph](<https://devfeed.tech/tags/ceph.md>), [deep-dive](<https://devfeed.tech/tags/deep-dive.md>), [incident](<https://devfeed.tech/tags/incident.md>), [nvme](<https://devfeed.tech/tags/nvme.md>), [processes](<https://devfeed.tech/tags/processes.md>), [rocksdb](<https://devfeed.tech/tags/rocksdb.md>), [s3](<https://devfeed.tech/tags/s3.md>), [software](<https://devfeed.tech/tags/software.md>), [storage](<https://devfeed.tech/tags/storage.md>), [swift](<https://devfeed.tech/tags/swift.md>), [technical](<https://devfeed.tech/tags/technical.md>)

### AI overview

A technical deep dive into the November 2020 Allas downtime incident. It describes Allas as a Ceph cluster and explains its storage nodes, OSD processes, S3 and SWIFT access, replicated metadata pools, RocksDB metadata, placement groups, and erasure-coded object storage.

### Source excerpt

Allas downtime November 2020 - technical deep-dive We use Ceph (https://ceph.io/) to provide software defined storage in our Allas service. I'll try to speak some Ceph here. There may be a lot of unfamiliar terms for most readers here as we dive deep into a technology. I'll try to clarify where I can, but architectural knowledge of Ceph helps when reading this. Allas is a Ceph cluster with 48 storage nodes (OSD nodes). Each has one nvme, 24 spinning disks, and 192 GiB of memory. Each OSD node runs one OSD process per disk. The Allas storage is provided over SWIFT and S3 protocols through radosgw daemons. The radowsgw layer is provided by separate internet facing servers. In addition we have 5 nodes running monitor processes (they control the state of the cluster), which also run Ceph manager (handles more advanced monitoring views into the cluster state). The object store metadata pools are 3-way replicated pools (data is stored in 3 different copies) on the nvmes across the OSD nodes. This metadata contains e.g. owners of buckets and objects, permissions, versions, etc. Everything that has to do with S3/SWIFT. The nvme also hosts the rocksdb (ceph internal metadata, as opposed to object store metadata) for the OSDs. This metadata is internal Ceph clustster status. Data on placement groups, etc. I'll use the term placement group (or pg) quite a lot in the post as they are central for Ceph. Basically when you store data objects into Ceph, they are mapped into placement groups, which define where in the cluster the data is are stored. The object store data is stored on an 8+3 erasure coded (data is split into 8 chunks + 3 parity chunks) pool on the spinning disks. The total amount of placement groups for the data pool is 16 384. In the graph the amount ~18 000 is shown, as the graph contains other pools too. The beginning Side note: I love that we collect trending data for our cluster (collectd+graphite in our case). As we had the data stored from a long time, this al

## Preparing a Proxmox Server for Production Use

DevFeed: [Preparing a Proxmox Server for Production Use](<https://devfeed.tech/articles/before-i-do-anything-on-proxmox-i-do-this-first-10534.md>)

Original publisher: [Read original article](<https://technotim.com/posts/first-11-things-proxmox/>)

Author: Techno Tim

Published: 2020-11-28T14:00:00Z

Content type: tutorial

Language: en

Sources: [Techno Tim](<https://devfeed.tech/sources/techno-tim.md>)

Topics: [Proxmox](<https://devfeed.tech/topics/proxmox.md>), [networking](<https://devfeed.tech/topics/networking.md>), [ceph](<https://devfeed.tech/topics/ceph.md>), [Linux](<https://devfeed.tech/topics/linux.md>)

Tags: [ceph](<https://devfeed.tech/tags/ceph.md>), [clustering](<https://devfeed.tech/tags/clustering.md>), [hardware](<https://devfeed.tech/tags/hardware.md>), [iommu](<https://devfeed.tech/tags/iommu.md>), [linux](<https://devfeed.tech/tags/linux.md>), [networking](<https://devfeed.tech/tags/networking.md>), [proxmox](<https://devfeed.tech/tags/proxmox.md>), [ssh](<https://devfeed.tech/tags/ssh.md>), [storage](<https://devfeed.tech/tags/storage.md>), [tutorials](<https://devfeed.tech/tags/tutorials.md>)

### AI overview

A tutorial covering the author's preparation steps for newly installed Proxmox servers, including updates, storage, networking and VLANs, ISO uploads, clustering, PCI passthrough, cloned Linux machine cleanup, and alerts.

### Source excerpt

After setting up my Proxmox servers, there are a few things I do before I use them for their intended purpose.This ranges from updates, to storage, to networking and VLANS, to uploading ISOs, to clustering, and more.Join me as we pick up where the rest of the proxmox tutorials stop, and that's everything you need to do to make these production ready (and maybe a bonus item too). 📺 Watch Vide...

## Migrating cPouta Object Storage to the Allas Ceph Service

DevFeed: [Migrating cPouta Object Storage to the Allas Ceph Service](<https://devfeed.tech/articles/ceph-object-storage-migraine-i-mean-migration-19772.md>)

Original publisher: [Read original article](<https://cloud.blog.csc.fi/2019/12/ceph-object-storage-migraine-i-mean.html>)

Author: Kalle Happonen (noreply@blogger.com)

Published: 2019-12-27T11:23:00Z

Content type: article

Language: en

Sources: [CSC - IT Center For Science - Cloud Team](<https://devfeed.tech/sources/csc-it-center-for-science-cloud-team.md>)

Topics: [ceph](<https://devfeed.tech/topics/ceph.md>), [migration](<https://devfeed.tech/topics/migration.md>), [Data Management](<https://devfeed.tech/topics/data-management.md>), [data](<https://devfeed.tech/topics/data.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>)

Tags: [ceph](<https://devfeed.tech/tags/ceph.md>), [data-management](<https://devfeed.tech/tags/data-management.md>), [migration](<https://devfeed.tech/tags/migration.md>), [object-storage](<https://devfeed.tech/tags/object-storage.md>), [openstack](<https://devfeed.tech/tags/openstack.md>), [radosgw](<https://devfeed.tech/tags/radosgw.md>), [rgw](<https://devfeed.tech/tags/rgw.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

This article describes CSC's migration from the cPouta object storage service to Allas, a standalone Ceph-based object storage service. The plan aimed to move user data without requiring user changes or breaking existing data links, using a new Ceph cluster and new data pools.

### Source excerpt

We have released our new Allas object storage service. We firmly believe it will play a growing role for data management, at CSC and for the whole academic field in Finland. Alas, the road to Allas was not completely without pain. CSC also hosts the cPouta IaaS service. It provided its own object storage service. Our goal with Allas was to build on this, and transform the object storage portion to a standalone service. This would raise the profile of the service, and make it easier to scale, both human resource wise and where it comes to the platform size. So, in brief, our aim was: Replace cPouta object storage with Allas Make sure all the user data from cPouta object storage moves over. Make sure cPouta object storage users don't have to do any changes. Don't break any existing links to data in cPouta object storage. How did we intend to do this, you may ask? Migration plan What were our options? We had a large bunch of new hardware, and a high level plan. For those of you who know Ceph, you might have already thought of how you'd do this. Add more hardware to the same storage pool, slap on an additional domain name to access the data, and call it a day. Create additional data pools, make sure radosgw uses old and new pools for data, slap on an additional domain name, and call it a day. Create a new Ceph cluster with new pools, migrate the data over, add the old and new domain names, and call it a day. Number 3. is definitely the most work, but we went with that. The main reason for that was that if we want to achieve all the benefits of separating Allas into its own service, we actually need to be a bit separate. For example, the old object storage pools were in the same cluster as the block storage pools used by our OpenStack virtual machines. This not only locked us to the current version of Ceph running there, but created a lot on interdependencies between the services. To make it easier, I'll use the terms rgw-old (cPouta object storage) and rgw-new (Allas) t

## Linux I/O 栈浅析

DevFeed: [Linux I/O 栈浅析](<https://devfeed.tech/articles/linux-i-o-41000.md>)

Original publisher: [Read original article](<https://blog.joway.io/posts/linux-io-stack/>)

Author: Joway

Published: 2019-08-11T00:00:00Z

Content type: tutorial

Language: zh

Sources: [Random Thoughts](<https://devfeed.tech/sources/random-thoughts.md>)

Topics: [IO](<https://devfeed.tech/topics/io.md>), [Linux](<https://devfeed.tech/topics/linux.md>), [Cache](<https://devfeed.tech/topics/cache.md>), [file](<https://devfeed.tech/topics/file.md>), [Ext4](<https://devfeed.tech/topics/ext4.md>), [XFS](<https://devfeed.tech/topics/xfs.md>)

Tags: [block](<https://devfeed.tech/tags/block.md>), [cache](<https://devfeed.tech/tags/cache.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [ext4](<https://devfeed.tech/tags/ext4.md>), [file](<https://devfeed.tech/tags/file.md>), [filesystem](<https://devfeed.tech/tags/filesystem.md>), [hdd](<https://devfeed.tech/tags/hdd.md>), [hdfs](<https://devfeed.tech/tags/hdfs.md>), [io](<https://devfeed.tech/tags/io.md>), [linux](<https://devfeed.tech/tags/linux.md>), [mysql](<https://devfeed.tech/tags/mysql.md>), [oracle](<https://devfeed.tech/tags/oracle.md>), [ssd](<https://devfeed.tech/tags/ssd.md>), [tech](<https://devfeed.tech/tags/tech.md>), [xfs](<https://devfeed.tech/tags/xfs.md>)

### AI overview

This article provides a high-level overview of Linux file I/O, tracing the path from applications through VFS, page cache, filesystems, FUSE, block devices, and I/O scheduling. It also explains hard and symbolic links, direct I/O, filesystem partitioning, and access to raw devices.

### Source excerpt

在 Linux 中，所有外部资源都以文件形式作为一个抽象视图，并提供一套统一的接口给应用程序调用。本文将以宏观视角试图阐述 Linux 中关于文件 IO 的整个调用脉络。 VFS 在 Linux 中，所有 IO 都必须先经由 VFS 层进行转发。通过 VFS 将包括磁盘、网络 Socket、打印机、管道等资源全部封装成统一的接口。

## Object Storage Use Cases Part 3: Storing binary files in Object Storage instead of in your git repository

DevFeed: [Object Storage Use Cases Part 3: Storing binary files in Object Storage instead of in your git repository](<https://devfeed.tech/articles/object-storage-use-cases-part-3-storing-binary-files-in-object-storage-instead-of-in-your-git-repository-19770.md>)

Original publisher: [Read original article](<https://cloud.blog.csc.fi/2019/04/object-storage-use-cases-part-3-storing.html>)

Author: Unknown (noreply@blogger.com)

Published: 2019-04-29T09:06:00Z

Content type: tutorial

Language: en

Sources: [CSC - IT Center For Science - Cloud Team](<https://devfeed.tech/sources/csc-it-center-for-science-cloud-team.md>)

Topics: [Git](<https://devfeed.tech/topics/git.md>), [ceph](<https://devfeed.tech/topics/ceph.md>), [pip](<https://devfeed.tech/topics/pip.md>), [Haskell](<https://devfeed.tech/topics/haskell.md>)

Tags: [aws](<https://devfeed.tech/tags/aws.md>), [ceph](<https://devfeed.tech/tags/ceph.md>), [data](<https://devfeed.tech/tags/data.md>), [data-lake](<https://devfeed.tech/tags/data-lake.md>), [git](<https://devfeed.tech/tags/git.md>), [install](<https://devfeed.tech/tags/install.md>), [object-storage](<https://devfeed.tech/tags/object-storage.md>), [python](<https://devfeed.tech/tags/python.md>), [rados](<https://devfeed.tech/tags/rados.md>), [radosgw](<https://devfeed.tech/tags/radosgw.md>), [s3](<https://devfeed.tech/tags/s3.md>), [storage](<https://devfeed.tech/tags/storage.md>)

### AI overview

This post explains why binary files should not be stored directly in Git repositories and explores using CSC's Pouta Cloud Object Storage instead. It documents attempts with git-annex and git-bigstore, including a patch to configure a non-default S3-compatible endpoint.

### Source excerpt

1. It's bad to store binary blobs in git. This is known [1] 2. A great place to store binary files is in object storage 3. Can we use CSC's Pouta Cloud Object Storage service for this? Why yes, yes you can! This is a post in a series about different use cases for object storage. Others include for example hosting a reveal.js presentation and NFS server backups More details about CSC's Pouta Cloud Object Storage Service, it is based on CEPH Rados Object Storage Gateway. What The general solution* to storing binaries in git is to not store them in git and instead create a link to some other place Attempt 1 Install an application that you like. In https://www.perforce.com/blog/storing-large-binary-files-in-git-repositories I searched for "S3", found git-annex which had recent commits so it looked like it wasn't dead. Installation instructions: https://git-annex.branchable.com/install/ The version in EPEL/Ubuntu Xenial does not have S3 support and is from 2014. There's a recent one in Fedora's repos though. Unfortunately, compiling it requires cabal. I don't know Haskell. https://spack.readthedocs.io/en/latest/package_list.html does not have any Haskell, cabal or git-annex available. Next. Attempt 2 Next application in the blog post was https://github.com/lionheart/git-bigstore To install it was much more comfortable for me: pip install "git-bigstore<=2.0" First issue was that looking at https://github.com/lionheart/git-bigstore/blob/master/bigstore/backends/s3.py there was no way to tell it to use another endpoint than the default of AWS S3. A small patch takes care of that, add , endpoint_url='https://object.pouta.csc.fi:443' to the client() boto3 call in the backends/s3.py file from git-bigstore. For a more detailed example see this Pull Request. After spending some time going down some rabbit holes it seems that the Profile option that is supported in git-bigstore does not support endpoints. It can only be used to specify credentials and a few other parameters. Mino

[Next page](<https://devfeed.tech/tags/ceph.md?cursor=WyIyMDE5LTA0LTI5VDA5OjA2OjAwKzAwOjAwIiwgIjg4ZWFiYmI2LTZlZWMtNDQ0ZS05MDJiLWVmMjQwOTE3M2MxYSJd>)