当前位置: 首页 > news >正文

在现有 Ceph 集群搭建 S3 对象存储

ceph集群搭建:ceph集群搭建-CSDN博客

一、在 Dashboard 创建 RGW 服务(核心,开启 S3 能力)

创建完成回到 Services 列表,看到 rgw 行「正在运行」列显示 3/3 即部署完成

补充命令行备用(界面异常时用)

# 一键部署3实例RGW
cephadm shell ceph orch apply rgw s3 default --replicas=3
# 查看rgw状态

cephadm shell ceph orch ps | grep rgw

二、验证 RGW 服务端口连通

所有客户端 / 应用访问 S3 地址格式:

http://任意集群节点IP:7480

  • 本地浏览器 / Postman 访问http://节点IP:7480,返回 XML 说明 RGW 正常工作

三、创建 S3 访问用户(获取 AccessKey/SecretKey)

RGW 部署完成后,左侧菜单栏出现对象网关菜单,所有 S3 账号、桶都在这里管理:

1、创建用户

左侧点击【对象网关】→【用户】→【创建用户】

2、查看密钥

用户创建完成点击用户展开显示里面获取密钥

命令行创建用户备用

cephadm shell radosgw-admin user create --uid=lzx-s3 --display-name="lzx-s3"

查看密钥

cephadm shell radosgw-admin user info --uid=lzx-s3

四、创建 S3 存储桶 Bucket

  1. 进入「对象网关」→「存储桶」→「创建存储桶」
  2. 参数配置:桶名称:全小写字母 / 数字 / 横线,
  3. 全局唯一所有者:选择上一步创建的
  4. S3 用户可选配置:对象锁定、访问策略(测试环境直接跳过)

五、MinIO 客户端 mc

1、下载二进制

# AMD64 x86服务器通用
wget https://dl.min.io/client/mc/release/linux-amd64/mc
# 赋予执行权限
chmod +x mc
# 移动到系统全局命令目录
mv mc /usr/local/bin/

2、添加你的 Ceph S3 集群别名(关键步骤)

替换下面参数:

  • ceph-s3:自定义集群别名
  • http://192.168.234.129:7480:你的 RGW 地址
  • AccessKey:dashboard 密钥页拿到的公钥
  • SecretKey:密钥私钥

mc alias set ceph-s3 http://192.168.234.129:7480 AccessKey SecretKey

3、常用测试命令

#安装mc

wget https://dl.min.io/client/mc/release/linux-amd64/mc -O /usr/bin/mc

chmod +x /usr/bin/mc

# 创建S3用户
radosgw-admin user create --uid=lzx-user --display-name="业务用户"
# 查询用户AK/SK
radosgw-admin user info --uid=lzx-user
# 重置密钥
radosgw-admin key create --uid=lzx-user --key-type=s3
# 禁用/启用用户
radosgw-admin user suspend --uid=lzx-user
radosgw-admin user enable --uid=lzx-user

#配置你的 Ceph S3 网关,s3用户的AK/SK

mc alias set cephs3 http://192.168.234.135:8082 你的AccessKey 你的SecretKey

# 查看所有桶
mc ls ceph-s3

# 创建桶
mc mb ceph-s3/test-bucket

# 上传本地文件到桶
mc cp /tmp/test.txt ceph-s3/test-bucket/

#查看文件

mc ls ceph-s3/test-s3

# 下载文件到本地
mc download ceph-s3/test-bucket/test.txt ./

# 删除文件
mc rm ceph-s3/test-bucket/test.txt

# 本地目录同步到S3(新增文件上传,本地删的不删S3)
mc mirror /tmp/db-backup ceph-s3/test-s3/db-backup
# 双向同步,两边文件保持一致
mc mirror --watch /tmp/db-backup ceph-s3/test-s3/db-backup
# 删除S3上本地已不存在的旧文件
mc mirror --remove /tmp/db-backup ceph-s3/test-s3/db-backup

# 删除单个文件
mc rm ceph-s3/test-s3/test.txt
# 递归删除虚拟文件夹内全部文件
mc rm --recursive ceph-s3/test-s3/tmp/
# 删除30天前的文件(定时清理备份)
mc rm --older-than 30d ceph-s3/test-s3/backup/

# 桶内重命名文件
mc mv ceph-s3/test-s3/a.txt ceph-s3/test-s3/b.txt
# 文件移动到另一个桶
mc mv ceph-s3/test-s3/a.txt ceph-s3/other-bucket/
# 移动整个虚拟目录
mc mv --recursive ceph-s3/test-s3/tmp ceph-s3/test-s3/old-tmp
#stat 查看文件元数据(大小、修改时间、存储类型)
mc stat ceph-s3/test-s3/test.txt
#cat 直接读取文件内容(不用下载)
mc cat ceph-s3/test-s3/test.txt

# 查找桶内所有txt文件
mc find ceph-s3/test-s3 --name "*.txt"
# 查找100MB以上大文件
mc find ceph-s3/test-s3 --larger 100M
# 查找7天前旧备份并删除
mc find ceph-s3/test-s3/backup --older 7d --delete

#设置生命周期(自动删除过期文件)示例:30 天自动删除桶内所有文件
mc ilm rule add --expire-days 30 ceph-s3/test-s3
# 查看生命周期规则
mc ilm rule list ceph-s3/test-s3
#清理 30 天前备份
mc find ceph-s3/test-s3/db-backup --older 30d --delete

#数据库备份上传 打包数据库
tar zcf /tmp/mysql-$(date +%Y%m%d).tar.gz /var/lib/mysql
# 上传到S3,带日期命名
mc cp /tmp/mysql-$(date +%Y%m%d).tar.gz ceph-s3/test-s3/db-backup/
# 删除本地临时包
rm -f /tmp/mysql-*.tar.gz


六、可视化网页

1、安装Stowage

单二进制 S3 网页控制台(Stowage,适配 Ceph RGW)

# 下载linux amd64版本
wget https://github.com/Stowage-Dev/stowage/releases/latest/download/stowage-linux-amd64
chmod +x stowage-linux-amd64

#生成合规 32 字节 64 位十六进制密钥

openssl rand -hex 32

#环境变量STOWAGE_SECRET_KEY

export STOWAGE_SECRET_KEY="deac0b906cf7fa75ca5b08dbae31496953e12d188a9302471457d01a8e434578"

#后台启动

nohup ./stowage-linux-amd64 serve > stowage.log 2>&1 &

#创建后台管理员账号(服务器执行)

./stowage-linux-amd64 create-admin --username admin --password admin1234567

2、Stowage关联S3

添加 Backend 页面参数:
Region:default
勾选 Path-style addressing
Endpoint:http://192.168.234.129:7480

七、Ceph S3 (RGW) 负载均衡

RGW 无状态:所有 7480 端口 RGW 实例共享同一套桶、用户、对象数据,任意节点处理 S3 读写结果完全一致,天然支持负载分发。
底层数据统一存在 Ceph OSD,负载均衡只做HTTP 请求转发,不复制文件。
3台节点全部部署RGW,端口都是7480,需要统一入口对外提供S3服务。
cephadm 内置 Ingress 服务(一键部署 HAProxy+Keepalived),自动在 3 节点部署 HAProxy、虚拟 VIP 故障转移

1. 先部署多节点 RGW(3 台都开启 7480)

# 创建rgw服务,3节点各跑1个网关
ceph orch apply rgw rgw.rgw-1 --placement="3 ceph-node1 ceph-node2 ceph-node3"
# 验证rgw进程
ceph orch ps --daemon-type rgw

2. 编写 ingress 配置文件 ingress-rgw.yaml

service_type: ingress
service_id: rgw.rgw-1
placement:
hosts:
- ceph-node1
- ceph-node2
- ceph-node3
spec:
backend_service: rgw.rgw-1
virtual_ip: 192.168.234.135/24
frontend_port: 8082
monitor_port: 1967

3. 一键部署负载均衡

ceph orch apply -i ingress-rgw.yaml

4. 访问方式

所有业务 S3 SDK 统一连接 VIP:http://192.168.234.135

  • HAProxy 自动轮询分发到node1:7480 / node2:7480 / node3:7480
  • Keepalived 监控,VIP 自动飘移,单节点宕机无感知切换

5、测试

#配置你的 Ceph S3 网关,s3用户的AK/SK

mc alias set cephs3 http://192.168.234.135:8082 你的AccessKey 你的SecretKey

#上传文件

mc cp 6dc3f8138b78006d96817858e6fe0f26~tplv-be4g95zd3a-image.jpeg cephs3/test-s3/

#查看文件

mc ls cephs3/test-s3

#查看stowage可视化页面

http://www.jsqmd.com/news/1197810/

相关文章:

  • 2026 年新消息:鹿邑诚信的无机纤维棉喷涂施工优质厂家选哪家,揭秘!专业喷涂如何让你的材料寿命翻倍 - 行业鉴选官
  • BurpSuite实战插件精选:从安装到漏洞挖掘的进阶指南
  • 信奥P1289磁盘碎片整理:贪心算法与序列操作详解
  • Activiti5.22.0国产化适配实践:源码级改造支持达梦数据库
  • AWS安全组SG原理与最佳实践:应用层连接跟踪器详解
  • 学ai 第二日python 复习夯实基础
  • 大模型应用开发06:PDF 文件对话技术方案对比与多模态解析实践
  • 后面需要进行修改的地方
  • OpenAI提示词指南:结果导向方法提升AI交互效率
  • 京东开发岗面试题目
  • Win11安装Claude Code必须用WSL2+NVM+Node 20
  • 从方向盘转角到车轮轨迹:揭秘汽车转向几何与转弯半径的底层逻辑
  • Trilium自托管安装实战:MySQL+反向代理+生产级加固
  • Docker安装失败根因解析:从内核模块到权限配置的全链路排查
  • 阿里云OpenClaw+Hermes Agent企业微信部署实战指南
  • Windows窗口置顶工具:提升多任务效率的AlwaysOnTop完全指南
  • C++线程中断机制:原子标志、条件变量与future的协作式实现
  • 电子招投标实务指南:系统架构、操作流程与关键注意事项
  • Criminisi图像修复算法:从MATLAB原型到C++高性能实现
  • Agent Guard:给 AI 编程助手做一次环境合规体检
  • 透明化数字孪生导航定位遥感时敏巡检技术
  • GitHub Copilot升级MCP协议:AI工作流中枢的原理与实战
  • C++异常处理:从try-catch到RAII的健壮代码实践
  • 【UDS-流控帧和连续帧】
  • 生产环境EKS集群五大支柱:网络、安全、可观测性、成本与备份
  • GPT-5.6 Sol模型解析:推理效率提升10%与API集成实践
  • Adobe-GenP 3.0:免费激活Adobe全家桶的终极指南
  • Aixcut 工程文件导入剪映全平台教程(通用版与 Mac 专用版)
  • Lovart+Skills:设计系统工业化与可执行能力封装
  • no such file or directory, npm i 安装的时候