第四课 ceph基础学习-RGW高可用集群和集群测试

本文详细介绍了Ceph RGW高可用集群的部署,包括RGW简介、Keeplived和Haproxy的配置,以及RGW客户端的修改。此外,还涉及Ceph集群的测试,如mon高可用、MDs主从切换、OSD坏盘测试和性能评估。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第四课 ceph基础学习-RGW高可用集群和集群测试

第一节 RGW高可用部署

1.1 RGW 简介

在这里插入图片描述

  1. Ceph Object Gateway也称为对象网关 ,RGW支持S2协议和SWIFT协议对外提供对象存储,两者的对象访问方式均以HTTP方式访问。用户的对象经由RGW处理后,会最终存放在后端RADOS系统。
    • 对象网关对外提供兼容S3和SWIFT的API
    • 存储网关RGW负责客户端接入
    • RADOS协议实现数据存储(Libradio是Rados提供库,因为RADOS是协议很难直接访问,因此上层的RBD、RGW和CephFs都是通过librados访问的目前提供PHP、Ruby、Java、Python等支持)
    • Monitor 一个Ceph集群需要多个Monitor组成的小集群,它们通过Paxos同步数据,用来保存OSD的元数据
    • OSD 存储数据
      在这里插入图片描述
  2. RGW对外提供三种基础数据逻辑实体:
    • 用户
    • 存储桶
    • 对象
  3. 用户。RGW兼容aws s3和OpenStack Switft,用户数据包含:
    • 用户认证信息
    • 访问控制权限信息: 包含操作访问权限和访问控制列表ACL
    • 用户配额信息: 防止某些用户占用过多内存空间,根据用户实际情况分配存储空间
  4. 存储桶(bucket)。存储桶是对象的容器,为了方便管理和操作具有相同属性的一类对象而引起的一级管理单元。存储桶信息包含:
    • 基础信息 (保存在对应RADOS对象的数据部分) RGW关注的信息,包含bucket配额信息 (最大对象数目和对大对象总和),bucket placement rule,bucket中搜索对象数目等等
    • 扩展信息: (保存在对应RADOS对象的扩展属性)对RGW透明的一些信息,如用户自定义的元数据信息
  5. 对象。RGW中的应用对象对应RADOS对象。应用对象上传分整体上传和分段上传,不同的方式应用对象对应RADOS对象的方式不同
    • rgw_max_chunk_size: 分块大小,RGW下发至RADOS集群的单个IO大小
    • rgw_obj_stripe_size: 条带大小
    • class RGWObjManifest: 管理应用对象和RADOS对象的对应关系
      在这里插入图片描述
  6. 整体上传。
    • 应用对象大小小于等于分块大小: 用户上传的对象只对应一个RADOS对象,该RADOS对象以应用对象名称命名,应用对象元数据也保存在该RADOS对象的扩展属性中
    • 应用对象大小小于分块大小: 对应对象被分解一个大小等于分块大小的售对象,多个大小等于条带大小的中间对象,和一个大小小于等于条带大小的尾对象。首对象以应用对象命名,在RGW中将该对象称为head_obj,该对象的数据部分保存了应用对象前rgw_max_chunk_size字节的数据,扩展属性部分保存了应用对象的元数据信息和manifest信息。
      在这里插入图片描述
  7. 分段上传。RGW依照条带大小将应用对象的每一个分段分成多个RADOS对象,每个分段的第一个 RADOS 对象名称为:
    • “multipart” + “用户上传对象名称” + “分段上传ID” + “分段编号”
    • 其余对象的名称为:“shadow” + “用户上传对象名称” + “分段上传ID” + “分段编号” +
      “_” + “条带编号”
  8. 当所有的分段上传结束后,RGW 会从 data_extra_pool 中的分段上传临时对象中读取各个分段信息,主要是各分段的 manifest 信息,组成一个 manifest;然后生成一个新的 RADOS 对象,即 head obj,用来保存分段上传的应用对象的元数据信息和各分段的manifest。
    在这里插入图片描述
  9. RGW安装。ceph-01已经有rgw,现在在ceph-02上安装rgw,并且在ceph-01和ceph-02节点同时安装keeplived和haproxy或者nginx进行代理rgw
# 通过ceph-deploy创建rgw节点,这里实际上可以参考创建集群的步骤
ceph-deploy rgw create ceph-02

# 修改端口
[client.rgw.ceph-02]
rgw_frontends = "civetweb port=80"

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值