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

使用ceph-deploy安装和配置RADOS Gateway (RGW)并使用S3访问集群

使用ceph-deploy安装和配置RADOS Gateway (RGW)

RADOS Gateway (RGW) 是Ceph提供的对象存储接口,兼容Amazon S3和OpenStack Swift API。以下是使用ceph-deploy工具安装和配置RGW的详细步骤。

前提条件

已部署Ceph集群并正常运行,如未安装可查看我的博客【虚拟机环境部署Ceph集群的详细指南】

安装步骤

假设我们要在ceph-mon2和ceph-mon3(与monitor节点复用)上安装RGW服务:

# 进入ceph集群配置目录(通常包含ceph.conf文件)
cd ~/ceph-cluster# 安装RGW服务, 我对mon2 mon3的hosts文件做了两个域名的映射
# ceph-mon2和ceph-rgw1是同一个节点,同理ceph-mon3和ceph-rgw2
ceph-deploy rgw create ceph-rgw1 ceph-rgw2

1. 验证RGW服务

# 在RGW节点上检查服务状态
ssh ceph-rgw1
sudo systemctl status ceph-radosgw@rgw.ceph-rgw1.service# 或者使用ceph命令检查
ceph -s | grep rgw

2. 默认配置

默认情况下:

  • RGW监听7480端口
  • 数据存储在默认的.rgw.root池中
  • 日志存储在/var/log/ceph/目录下

3. 创建S3用户

# 在管理节点上创建用户
radosgw-admin user create --uid="s3user" --display-name="S3 User" --access-key="ACCESS_KEY" --secret-key="SECRET_KEY"

4. 测试S3访问

# 安装s3cmd
sudo yum install -y s3cmd# 配置s3cmd
s3cmd --configure
# 输入Access Key和Secret Key
# 设置host为rgw-node1:7480
# 使用HTTP协议(除非配置了HTTPS)# 测试列出存储桶
s3cmd ls

高级配置

1. 更改监听端口

# 在ceph.conf中修改,将ceph-rgw2的端口修改为8480
[client.rgw.ceph-rgw2]
rgw_frontends = "civetweb port=8480"# 推送配置并重启服务,.$(hostname -s) 替换成对应的ceph-rgw2域名
# 因为我的hostname设置的是ceph-mon,所以这里不替换找不到服务
ceph-deploy config push ceph-rgw2
ssh ceph-rgw2
sudo systemctl restart ceph-radosgw@rgw.$(hostname -s).service

2. 启用HTTPS

# 生成自签名证书(在RGW节点上)
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 \-keyout /etc/ceph/ceph-rgw.key -out /etc/ceph/ceph-rgw.crt# 修改配置
[client.rgw.ceph-rgw2]
rgw_frontends = "civetweb port=443s ssl_certificate=/etc/ceph/ceph-rgw.crt ssl_key=/etc/ceph/ceph-rgw.key"# 推送配置并重启服务
ceph-deploy config push ceph-rgw2ssh ceph-rgw2
sudo systemctl restart ceph-radosgw@rgw.$(hostname -s).service

常见问题解决

  1. 服务无法启动

    • 检查/var/log/ceph/ceph-client.rgw.*.log日志
    • 确保端口未被占用
    • 验证ceph集群健康状态
  2. S3访问被拒绝

    • 确认Access Key和Secret Key正确
    • 检查用户权限radosgw-admin user info --uid=s3user
  3. 性能问题

    • 考虑增加RGW实例数量
    • 调整rgw_thread_pool_size参数
    • 确保OSD节点有足够资源

后续步骤

  1. 配置负载均衡器处理多个RGW实例
  2. 设置监控和告警
  3. 实施备份策略
  4. 配置生命周期管理规则

通过以上步骤,您应该已经成功使用ceph-deploy部署了Ceph RADOS Gateway服务,并可以通过S3协议访问对象存储。


s3cmd常用命令

以下是 s3cmd 常用命令的整理,涵盖文件/存储桶管理、权限设置、实用操作等,适用于 Ceph RGW (S3 兼容接口) 和 AWS S3:


1. 存储桶 (Bucket) 管理

命令功能示例
创建存储桶新建一个存储桶s3cmd mb s3://bucket-name
删除存储桶删除空存储桶s3cmd rb s3://bucket-name
强制删除非空存储桶递归删除存储桶及内容s3cmd rb --force s3://bucket-name
列出所有存储桶显示用户拥有的存储桶s3cmd ls
列出存储桶内容查看存储桶内文件s3cmd ls s3://bucket-name/

2. 文件操作

命令功能示例
上传文件上传本地文件到存储桶s3cmd put local-file.txt s3://bucket-name/
上传目录递归上传整个目录s3cmd put --recursive /local/dir/ s3://bucket-name/
下载文件下载存储桶文件到本地s3cmd get s3://bucket-name/remote-file.txt local-file.txt
下载目录递归下载整个目录s3cmd get --recursive s3://bucket-name/remote-dir/ /local/path/
删除文件删除存储桶内文件s3cmd del s3://bucket-name/file.txt
批量删除文件通配符删除多个文件s3cmd del s3://bucket-name/*.log
同步目录本地与存储桶同步s3cmd sync /local/dir/ s3://bucket-name/

3. 权限与策略

命令功能示例
设置存储桶 ACL修改存储桶权限s3cmd setacl s3://bucket-name --acl-public (公开读)
设置文件 ACL修改文件权限s3cmd setacl s3://bucket-name/file.txt --acl-private (私有)
查看 ACL查看权限配置s3cmd info s3://bucket-name/file.txt

4. 高级功能

命令功能示例
生成签名 URL生成临时下载链接s3cmd signurl s3://bucket-name/file.txt +3600 (有效期1小时)
多部分上传大文件分块上传大文件s3cmd put --multipart-chunk-size=50MB large-file.iso s3://bucket-name/
限速传输限制上传/下载速度s3cmd put --limit-rate=1M local-file.txt s3://bucket-name/
排除文件同步时排除特定文件s3cmd sync --exclude="*.tmp" /local/dir/ s3://bucket-name/

5. 信息查询与配置

命令功能示例
查看文件信息显示文件元数据s3cmd info s3://bucket-name/file.txt
查看磁盘用量统计存储桶占用空间s3cmd du s3://bucket-name/
显示配置查看当前配置s3cmd --dump-config
修改配置重新运行配置向导s3cmd --configure

6. 实用技巧

(1) 批量操作
# 删除所有 .log 文件
s3cmd del s3://bucket-name/*.log# 同步时排除隐藏文件
s3cmd sync --exclude=".*" /local/dir/ s3://bucket-name/
(2) 跨存储桶复制
# 从存储桶A复制到存储桶B
s3cmd cp s3://bucket-a/file.txt s3://bucket-b/
(3) 生成公开访问链接
# 设置文件为公开读
s3cmd setacl s3://bucket-name/file.txt --acl-public# 直接访问URL(需存储桶支持)
http://rgw-endpoint:7480/bucket-name/file.txt

注意事项

  1. 删除操作谨慎使用
    • --force 参数会递归删除存储桶内所有文件,不可逆!
  2. 大文件传输
    • 超过 5GB 的文件建议使用 --multipart-chunk-size 分块上传。
  3. 权限控制
    • Ceph RGW 的 ACL 行为可能与 AWS S3 存在细微差异,建议测试验证。
  4. 配置文件
    • 所有配置保存在 ~/.s3cfg,可直接编辑或通过 --configure 修改。

通过以上命令,您可以高效管理 Ceph RGW 或 AWS S3 中的对象存储资源。

http://www.dtcms.com/a/327632.html

相关文章:

  • SQL Server 常用运维命令整理
  • 武汉火影数字|VR红色文化馆打造 沉浸式体验红色文化
  • GeoScene 空间大数据产品使用入门(5)在线建模
  • SpringBoot集成MyBatis的SQL拦截器
  • Unity-VR插件AutoHand
  • Python 爬虫获取淘宝商品信息、价格及主图的实战指南
  • iOS 签名证书实践日记,我的一次从申请到上架的亲历
  • Spring框架如何解决循环依赖
  • C++11语法(2)
  • Flink Redis维表:Broadcast Join与Lookup Join对比及SQL示例
  • 正则表达式解析(二)
  • pdftk - macOS 上安装使用
  • 【读代码】深度解析 Researcher:开源自动化科研助手
  • 企业级AI大模型后端基础设施管理:从理论到实践的全链路指南
  • 5 重复匹配
  • WPS文字和Word:不只是表格,段落也可以排序
  • gpt-5与gpt-5-fast
  • 【新模型速递】PAI-Model Gallery云上一键部署gpt-oss系列模型
  • 一起来聊聊GPT-5
  • c++的四种类型转换(static_cast,reinterpret_cast,const_cast,dynamic_cast)详解和代码示例
  • 使用pyqt5实现可勾选的测试用例界面
  • B站 韩顺平 笔记 (Day 16)
  • 如何以开发者的身份开发出比python更好的应用软件?
  • 攻击者将Linux摄像头武器化为攻击工具,可注入击键并发动攻击
  • 使用reqwest+select实现简单网页爬虫
  • 《Fast Automatic White Balancing Method by Color Histogram Stretching》论文笔记
  • 小米宠物空气净化器好用吗?希喂/小米/范罗士核心性能深度对比
  • 5G专网项目外场常见业务测试指南(六)-PingInfoView
  • 力扣面试150(54/150)
  • 如何构建PHP表单页面及验证相关原理(PHP基础)