news 2026/9/24 13:35:49

Ceph 三大存储接口之 RGW 对象存储深度梳理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Ceph 三大存储接口之 RGW 对象存储深度梳理

Ceph 对象存储

基于 Ceph RADOS Gateway(RGW),Ceph 实现兼容 S3、Swift 协议的对象存储,无需修改底层 RADOS 集群,对外提供 HTTP/HTTPS 对象访问能力。

一、什么是 Ceph 对象网关 RGW

RGW(RADOS Gateway)是构建在librados之上的 HTTP 服务守护进程radosgw,作为 Ceph 对象存储前端网关。

  1. 对外兼容两套主流对象存储 API:Amazon S3 APIOpenStack Swift API
  2. 网关用户不能直接访问 Ceph 集群,请求先经过 RGW 鉴权,再由 RGW 使用 cephx 账号访问底层 RADOS 集群;
  3. 支持负载均衡,可部署多个 RGW 实例,前端搭配 LB 做高可用;
  4. 支持对接 LDAP 实现外部身份认证,同时支持多站点跨集群对象复制,满足异地容灾需求。

对象存储基础概念

对象由三部分组成:

  • Key(对象键):对象唯一名称,桶内不能重复;
  • Metadata 元数据:对象属性,包含系统元数据(大小、修改时间、ETag)和用户自定义 KV 元数据;
  • Data 数据:实际存储的文件二进制内容。

桶(Bucket):对象的存储容器,对象存储是扁平命名空间,没有文件系统的多级目录,所有对象直接存放在桶内;每个桶可以配置权限、存储类别、所属区域。

对象存储访问特点:使用 HTTP/HTTPS 协议,不受局域网限制,SDK、浏览器、客户端都可以接入。

二、RGW 内部自动生成的池

部署 RGW 之后,网关会自动创建一系列专用 RADOS 存储池,用来存放元数据、日志、桶索引、业务对象数据:

表格

池名作用
.rgw.root全局信息记录
.default.rgw.controlRGW 控制池
.default.rgw.meta用户密钥、账户元数据
.default.rgw.log桶、对象操作日志
.default.rgw.buckets.index桶对象索引
.default.rgw.buckets.data真正存放业务对象数据
.default.rgw.buckets.non‑ec对象元数据上传使用

如果自定义区域,池名会带上区域前缀,例如.us‑east‑1.rgw.buckets.data

三、RGW 整体架构流程

  1. 客户端(S3/Swift 应用)发起 HTTP 请求,请求经过负载均衡到达 RGW 实例;
  2. RGW 校验网关层用户账号密码(S3 access_key/secret_key 或者 Swift 账号);
  3. 校验通过后,RGW 内部使用 cephx 认证,调用 librados 接口读写底层 Ceph RADOS 集群;
  4. 底层 OSD 完成对象读写,结果原路返回给业务客户端。

关键点:两套用户体系隔离:RGW 网关用户(S3/Swift 用户)≠CephX 集群用户;网关用户只由 RGW 管理,看不到 MON/OSD 等集群组件。 RGW 支持多实例横向扩展,多个 RGW 节点共用一套底层 RADOS 存储,数据一致性由底层 Ceph 保证。

四、核心能力

  1. 双协议兼容
    • S3:亚马逊对象存储 API,大量云原生应用、SDK 支持;
    • Swift:OpenStack 对象存储 API,OpenStack 生态对接首选。
  2. 高可用扩展:多 radosgw 实例,配合负载均衡实现水平扩容,无状态网关。
  3. 多站点复制(Multi‑Site)
    • 支持多个地理隔离 Ceph 集群之间对象异步复制,实现异地灾备;
    • 支持主从(主动‑被动)、双活(主动‑主动)复制模式;
    • 可以配置整个 zone、zonegroup 复制,桶级别复制策略。
  4. 权限与身份管理
    • 内置用户管理:创建用户、access_key/secret_key 密钥;
    • 支持桶策略、对象 ACL 访问控制;
    • 对接 LDAP 实现外部账号登录认证。
  5. 配套功能:版本控制、对象生命周期、静态网站托管、加密、日志审计等对象存储标准能力。

五、RGW 与 RBD、CephFS 简单对比

表格

组件存储类型访问接口使用场景
RGW对象存储HTTP S3/Swift图片、视频、备份归档,互联网海量非结构化数据
RBD块存储内核块设备 librbd虚拟机磁盘、数据库盘,需要块设备的业务
CephFS文件存储POSIX 文件挂载需要多层目录,多客户端共享读写文件业务

三者底层全部复用 RADOS 对象存储,只是上层对外接口不一样。

六、实践部署要点(cephadm)

  1. 使用ceph orch apply rgw <服务名> --placement=节点部署 radosgw 服务;
  2. 可以部署多个 rgw 实例,前端部署 Nginx/Haproxy 负载均衡;
  3. 创建 RGW 用户,生成 S3 的 access_key、secret_key;
  4. 使用 S3cmd、aws cli、各类 S3 SDK 连接网关地址,创建 bucket、上传下载对象;
  5. 多站点场景,配置 zone、zonegroup,开启跨集群对象同步,用于灾备。

七、适用场景 & 局限性

适合场景

  • 图片、音视频、备份归档、日志存储;
  • 云平台对象服务,对接 OpenStack;
  • 异地多活、跨地域数据复制;
  • 海量非结构化数据,不需要 POSIX 目录。

不适合场景

  • 需要频繁随机修改文件内部一小块数据(对象是整体覆盖更新,不能局部修改);
  • 需要传统多层文件目录强语义(对象存储只是模拟目录);
  • 数据库直接读写(优先 RBD 块存储)。

对象存储对象只能整体上传、整体覆盖、整体下载,不支持像块 / 文件一样修改文件中间某部分内容。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/9/24 13:35:17

十大排序算法之快速排序

一.概念&#xff1a;通过一趟排序将要排序的数据分割成独立的两部分&#xff0c;其中一部分的所有数据都比另外一部分的所有数据都要小&#xff0c;然后再按此方法对这两部分数据分别进行快速排序&#xff0c;整个排序过程可以递归进行&#xff0c;以此达到整个数据变成有序序列…

作者头像 李华
网站建设 2026/9/24 13:34:18

【DvAdmin】写个脚本更新云端前后端服务

在现代软件开发中,前后端代码更新和部署是常见的操作。然而,传统的手动更新过程繁琐且耗时,极大地影响了开发效率。通过Python脚本实现自动化,能够简化这些操作,显著提升工作效率和项目部署的便捷性。 本文将展示如何利用Python中的paramiko库编写自动化脚本,帮助开发者…

作者头像 李华
网站建设 2026/9/24 13:34:00

【Dv2Admin】自定义审批流程数据验证和用户交互

在当今的数字化时代,企业的高效运作和用户友好性在很大程度上依赖于管理系统的设计与实现。其中,自定义审批流程作为管理系统中的核心功能,其精确、灵活且易用的实现变得尤为重要。 本文将探讨如何通过Django和Vue.js框架的结合,构建一个高效、直观的审批流程管理系统。通…

作者头像 李华
网站建设 2026/9/24 13:33:42

【Dv2Admin】dvadmin用户功能基础models解析

在现代软件开发中,数据模型的设计和管理直接决定了系统的可扩展性、性能和维护成本。尤其在基于Django-Vue-Admin框架的项目中,数据模型的合理设计更是确保系统稳定高效运行的关键。本文将重点介绍项目中核心数据模型的实现,包括Users、Post、Role、Dept、Menu、MenuButton、…

作者头像 李华
网站建设 2026/9/24 13:33:32

增加F110 付款方式的随手记录

随便记录一下,基本上有这些信息可以了 为了保持PRD与测试机一致的银行代码,需要先在DEV,QAS 改成4 外部给号 主要都是在FBZP

作者头像 李华
网站建设 2026/9/24 13:33:06

Linux实战|Swap交换空间 + CentOS7系统启动流程 + 故障修复完整笔记

Linux实战&#xff5c;Swap交换空间 CentOS7系统启动流程 故障修复完整笔记 引言 本篇适合CentOS7运维入门同学。读完本篇博客你将掌握&#xff1a; 计算机存储器层级原理&#xff0c;理解虚拟内存、Swap交换空间是什么&#xff0c;学会创建、激活、持久化配置swap&#xff1…

作者头像 李华