十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

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

Ceph 三大存储接口之 RGW 对象存储深度梳理 Ceph 对象存储基于 Ceph RADOS GatewayRGWCeph 实现兼容 S3、Swift 协议的对象存储无需修改底层 RADOS 集群对外提供 HTTP/HTTPS 对象访问能力。一、什么是 Ceph 对象网关 RGWRGWRADOS Gateway是构建在librados之上的 HTTP 服务守护进程radosgw作为 Ceph 对象存储前端网关。对外兼容两套主流对象存储 APIAmazon S3 API、OpenStack Swift API网关用户不能直接访问 Ceph 集群请求先经过 RGW 鉴权再由 RGW 使用 cephx 账号访问底层 RADOS 集群支持负载均衡可部署多个 RGW 实例前端搭配 LB 做高可用支持对接 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 整体架构流程客户端S3/Swift 应用发起 HTTP 请求请求经过负载均衡到达 RGW 实例RGW 校验网关层用户账号密码S3 access_key/secret_key 或者 Swift 账号校验通过后RGW 内部使用 cephx 认证调用 librados 接口读写底层 Ceph RADOS 集群底层 OSD 完成对象读写结果原路返回给业务客户端。关键点两套用户体系隔离RGW 网关用户S3/Swift 用户≠CephX 集群用户网关用户只由 RGW 管理看不到 MON/OSD 等集群组件。 RGW 支持多实例横向扩展多个 RGW 节点共用一套底层 RADOS 存储数据一致性由底层 Ceph 保证。四、核心能力双协议兼容S3亚马逊对象存储 API大量云原生应用、SDK 支持SwiftOpenStack 对象存储 APIOpenStack 生态对接首选。高可用扩展多 radosgw 实例配合负载均衡实现水平扩容无状态网关。多站点复制Multi‑Site支持多个地理隔离 Ceph 集群之间对象异步复制实现异地灾备支持主从主动‑被动、双活主动‑主动复制模式可以配置整个 zone、zonegroup 复制桶级别复制策略。权限与身份管理内置用户管理创建用户、access_key/secret_key 密钥支持桶策略、对象 ACL 访问控制对接 LDAP 实现外部账号登录认证。配套功能版本控制、对象生命周期、静态网站托管、加密、日志审计等对象存储标准能力。五、RGW 与 RBD、CephFS 简单对比表格组件存储类型访问接口使用场景RGW对象存储HTTP S3/Swift图片、视频、备份归档互联网海量非结构化数据RBD块存储内核块设备 librbd虚拟机磁盘、数据库盘需要块设备的业务CephFS文件存储POSIX 文件挂载需要多层目录多客户端共享读写文件业务三者底层全部复用 RADOS 对象存储只是上层对外接口不一样。六、实践部署要点cephadm使用ceph orch apply rgw 服务名 --placement节点部署 radosgw 服务可以部署多个 rgw 实例前端部署 Nginx/Haproxy 负载均衡创建 RGW 用户生成 S3 的 access_key、secret_key使用 S3cmd、aws cli、各类 S3 SDK 连接网关地址创建 bucket、上传下载对象多站点场景配置 zone、zonegroup开启跨集群对象同步用于灾备。七、适用场景 局限性✅适合场景图片、音视频、备份归档、日志存储云平台对象服务对接 OpenStack异地多活、跨地域数据复制海量非结构化数据不需要 POSIX 目录。❌不适合场景需要频繁随机修改文件内部一小块数据对象是整体覆盖更新不能局部修改需要传统多层文件目录强语义对象存储只是模拟目录数据库直接读写优先 RBD 块存储。对象存储对象只能整体上传、整体覆盖、整体下载不支持像块 / 文件一样修改文件中间某部分内容。
返回列表