首页 > 其他分享 >一文看懂ceph-rgw zipper的设计理念(1)

一文看懂ceph-rgw zipper的设计理念(1)

时间:2024-03-18 15:01:35浏览次数:26  
标签:filter sal S3 Zipper rgw ceph zipper

 0.前言

RGW在ceph存储中的主要作用是提供S3和Swift的协议访问支持。Zipper工作主要是将RGW分为协议部分和后端部分。协议部分还是支持S3和Swift协议,包括身份认证、协议参数解析和op操作解析等等;后端部分主要是对接不同的存储,比如rados(zipper中变换为RadosStore,主要通过RADOS访问ceph集群)、DBstore(可以用 SQL,特别是本地 SQLite 数据库来存储数据)、DAOS(intel的存储平台)等。Zipper 还允许中间过滤器层转换操作、执行策略(如将不同对象导向不同存储)或执行数据和元数据缓存。

1.Ceph Zipper Project Overview

   provide the feature-rich S3 protocal capabilities of ceph RGW for an array of non-ceph storage backends

    • ISV storage sources(CORTX,DAOS,etc),Cloud Services(FSx Lustre)
    • DB/File driver for compact deployments(Edge,Development)

Provide flexible, composable integration APl/framework based on stackable filter drivers

    • Cache integration (In Progress)
    • lO redirection
    • Tiering/transitions across backends (RADOS, S3, CORTX)

2.Zipper project vision

  • Bring the power and features of RGW's S3 implementation to other storage backends
  • Enable RGW to be the S3 object storage interface across heterogenous storage backends
  • Mix and customize functionality cleanly via stacked “filter" drivers (e.g.. caching)

  一图胜千言

3.Zipper Architecture

 此处主要是数据结构和处理结构的变化,由于rgw中可以选择是否使用RADOS进行存储数据,所以此处的bucket、user、object一同进行变换。

  • 个人以为之前的代码写的太乱,尤其是rgw_rados的代码,堆积了几万行。

4.Zipper File Layout

common文件:

  • rgw_sal.h,rgw sal.cc:都是一些纯虚函数的定义,包括driver、user、bucket、object等
  • rgw_sal_store.h,rgw_sal_filter.h,rgw_sal_filter.cc:定义了一些基础的store和filter。

具体实现文件:

  •  rgw_sal_<impl>.h rgw_sal_<impl>.cc:具体类的实现。比如bucket、object等。
  • store/<impl>:store和filter的具体实现

 

 参考:https://ceph.io/en/community/events/2022/ceph-virtual/

标签:filter,sal,S3,Zipper,rgw,ceph,zipper
From: https://www.cnblogs.com/whutao/p/18080420

相关文章

  • K8S-1.23.17+Ceph+KubeSphere 一主二从部署攻略
    K8S部署攻略 此教程以一主二从为例,需要三台服务器。主机最低需求: 4核CPU,4GB内存,硬盘:20GBx2(需保留一个未分区的磁盘)从机最低需求: 4核CPU,8GB内存,硬盘:20GBx2(需保留一个未分区的磁盘) 软件版本:Ubuntu:22.04Kubesphere:3.4.1Docker:20.10.24K8s:1.23.17Rook......
  • ceph admin部署与扩容
    部署Ceph存储准备集群部署这里采用cephadm工具来进行部署,cephadm是一个用于部署和管理Ceph集群的工具。它是在Ceph版本14.2.0中引入的相对较新的工具。cephadm工具旨在通过自动化以前手动完成的许多任务来简化Ceph集群的部署和管理。它使用容器来部署和管理Ceph......
  • 在k8S中,如何对接外部ceph?
    在Kubernetes(k8s)中对接外部Ceph存储集群通常涉及以下几个关键步骤:1.准备Ceph配置和密钥文件将Ceph配置文件(ceph.conf)复制到所有Kubernetes节点的/etc/ceph目录下,以便集群中的节点可以访问到正确的配置信息。获取Ceph的客户端管理员密钥环ceph.client.admi......
  • pve在执行apt-get update 更新软件包时报错:E: Failed to fetch https://enterprise.pr
    问题原因如下......
  • 4、ceph-crush进阶
    一、CephCrush进阶ceph集群中由mon服务器维护的的五种运行图:Monitormap #监视器运行图OSDmap#OSD运行图PGmap #PG运行图Crushmap #(Controllersreplicationunderscalablehashing#可控的、可复制的、可伸缩的一致性hash算法。crush运行图,当新建存储池时会基......
  • 3、ceph集群的管理和维护
    一、通过sock文件单机管理(很少用)root@node1:~#ceph--admin-socket/var/run/ceph/ceph-osd.0.asokstatusroot@node1:~#ceph--admin-socket/var/run/ceph/ceph-osd.0.asok--helproot@node1:~#ceph--admin-daemon/var/run/ceph/ceph-mon.node1.asokconfigshowroo......
  • ceph分布式存储部署(ceph-deploy)
    ceph分布式存储部署(ceph-deploy)ceph学习ceph简介和特性ceph时一个多版本存储系统,它把每一个待管理的数据量切分为一到多个固定带下的对象数据,并以其为原子单元完成数据存取。对象数据的地处存储服务是由多个主机组成的存储集群,该集群也被称为RADOS存储集群即可靠、自动化、分布式......
  • Ceph RBD和QEMU块设备qos测试
    微信公众号:运维开发故事作者:wanger关于ceph的qosCeph,作为一个高度可扩展的分布式存储系统,已经成为云计算和大数据时代的关键基石。随着企业和组织对数据存储的需求日益增长,Ceph通过其强大的特性,如可靠性、伸缩性和性能,满足了这些需求。然而,随着集群规模的扩大和工作负载的多样性,如......
  • 2、ceph安装部署
    原文链接:https://blog.csdn.net/jkjgj/article/details/128785139https://blog.csdn.net/qq_63844528/article/details/130213273一、硬件monitor:16c16g 200gmgr:16c16g 200g,如果启用对象存储RGW,配置翻倍osd:16c16g ssd 万兆网卡二、ceph存储部署部署环境主......
  • ceph通过tgt配置多路径的数据一致性问题
    前言使用librbd通过tgt出iscsi,多路径数据是一致的,由于环境的原因,切换为kernelrbd出iscsi,然后通过不同的iscsi路径写入后,发现在rbd端就出现了数据没有刷新的问题问题分析这里有个类似的问题https://github.com/ceph/ceph-csi/issues/461这个是通过把rbdmap到不同的节点,通过dd写入......