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

📅 2026/7/16 3:50:35
在现有 Ceph 集群搭建 S3 对象存储
ceph集群搭建ceph集群搭建-CSDN博客一、在 Dashboard 创建 RGW 服务核心开启 S3 能力创建完成回到 Services 列表看到 rgw 行「正在运行」列显示 3/3 即部署完成补充命令行备用界面异常时用# 一键部署3实例RGWcephadm shell ceph orch apply rgw s3 default --replicas3# 查看rgw状态cephadm shell ceph orch ps | grep rgw二、验证 RGW 服务端口连通所有客户端 / 应用访问 S3 地址格式http://任意集群节点IP:7480本地浏览器 / Postman 访问http://节点IP:7480返回 XML 说明 RGW 正常工作三、创建 S3 访问用户获取 AccessKey/SecretKeyRGW 部署完成后左侧菜单栏出现对象网关菜单所有 S3 账号、桶都在这里管理1、创建用户左侧点击【对象网关】→【用户】→【创建用户】2、查看密钥用户创建完成点击用户展开显示里面获取密钥命令行创建用户备用cephadm shell radosgw-admin user create --uidlzx-s3 --display-namelzx-s3查看密钥cephadm shell radosgw-admin user info --uidlzx-s3四、创建 S3 存储桶 Bucket进入「对象网关」→「存储桶」→「创建存储桶」参数配置桶名称全小写字母 / 数字 / 横线全局唯一所有者选择上一步创建的S3 用户可选配置对象锁定、访问策略测试环境直接跳过五、MinIO 客户端 mc1、下载二进制# 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 地址AccessKeydashboard 密钥页拿到的公钥SecretKey密钥私钥mc alias set ceph-s3 http://192.168.234.129:7480 AccessKey SecretKey3、常用测试命令#安装mcwget https://dl.min.io/client/mc/release/linux-amd64/mc -O /usr/bin/mcchmod x /usr/bin/mc# 创建S3用户radosgw-admin user create --uidlzx-user --display-name业务用户# 查询用户AK/SKradosgw-admin user info --uidlzx-user# 重置密钥radosgw-admin key create --uidlzx-user --key-types3# 禁用/启用用户radosgw-admin user suspend --uidlzx-userradosgw-admin user enable --uidlzx-user#配置你的 Ceph S3 网关s3用户的AK/SKmc 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新增文件上传本地删的不删S3mc 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-amd64chmod x stowage-linux-amd64#生成合规 32 字节 64 位十六进制密钥openssl rand -hex 32#环境变量STOWAGE_SECRET_KEYexport STOWAGE_SECRET_KEYdeac0b906cf7fa75ca5b08dbae31496953e12d188a9302471457d01a8e434578#后台启动nohup ./stowage-linux-amd64 serve stowage.log 21 #创建后台管理员账号服务器执行./stowage-linux-amd64 create-admin --username admin --password admin12345672、Stowage关联S3添加 Backend 页面参数Regiondefault勾选 Path-style addressingEndpointhttp://192.168.234.129:7480七、Ceph S3 (RGW) 负载均衡RGW 无状态所有 7480 端口 RGW 实例共享同一套桶、用户、对象数据任意节点处理 S3 读写结果完全一致天然支持负载分发。底层数据统一存在 Ceph OSD负载均衡只做HTTP 请求转发不复制文件。3台节点全部部署RGW端口都是7480需要统一入口对外提供S3服务。cephadm 内置 Ingress 服务一键部署 HAProxyKeepalived自动在 3 节点部署 HAProxy、虚拟 VIP 故障转移1. 先部署多节点 RGW3 台都开启 7480# 创建rgw服务3节点各跑1个网关ceph orch apply rgw rgw.rgw-1 --placement3 ceph-node1 ceph-node2 ceph-node3# 验证rgw进程ceph orch ps --daemon-type rgw2. 编写 ingress 配置文件 ingress-rgw.yamlservice_type: ingressservice_id: rgw.rgw-1placement:hosts:- ceph-node1- ceph-node2- ceph-node3spec:backend_service: rgw.rgw-1virtual_ip: 192.168.234.135/24frontend_port: 8082monitor_port: 19673. 一键部署负载均衡ceph orch apply -i ingress-rgw.yaml4. 访问方式所有业务 S3 SDK 统一连接 VIPhttp://192.168.234.135HAProxy 自动轮询分发到node1:7480 / node2:7480 / node3:7480Keepalived 监控VIP 自动飘移单节点宕机无感知切换5、测试#配置你的 Ceph S3 网关s3用户的AK/SKmc 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可视化页面