第⑦讲:Ceph集群RGW对象存储核心概念及部署使用

文章目录

    • 1.RadosGW对象存储核心概念
      • 1.1.什么是RadosGW对象存储
      • 1.2.RGW对象存储架构
      • 1.3.RGW对象存储的特点
      • 1.4.对象存储中Bucket的特性
      • 1.4.不同接口类型的对象存储访问对比
    • 2.在集群中部署RadosGW对象存储组件
      • 2.1.部署RGW组件
      • 2.2.集群中部署完RGW组件后观察集群的信息状态
      • 2.3.修改RGW对象存储的默认监听端口

1.RadosGW对象存储核心概念

RADOSGW对象存储官方文档:https://docs.ceph.com/en/pacific/radosgw/

1.1.什么是RadosGW对象存储

Ceph RadosGW是对象存储的一种实现方式,简称RGW,Rados网关也被称为Ceph对象网关,RadosGW使客户端能够利用标准的对象存储API接口来访问Ceph集群进行存储数据。

RGW对象存储支持两种风格的对象存储API接口:

  • AWS S3:与亚马逊云的S3对象存储API接口兼容。
  • OpenStack Swift:与OpenStack的Swift的API接口兼容,提供对象存储功能。

RGW对象存储提供RESTful API类型的接口,如果有类似阿里云等对象存储的可视化接口,可以直接在图形化界面操作对象存储。

无论哪种类型的API接口,最终都会通过RadosGW服务奖数据写入到Ceph集群的OSD里,并且这些接口都会对应一个资源池,也就是说无论使用哪种类型的API接口,都可以读取到来自其他API接口写入的数据。

RadosGW在之前的版本中,是使用CIVETWEB提供的API访问。

1.2.RGW对象存储架构

Ceph集群的对象存储功能主要是有RadosGW组件来实现的,支持S3和Swift两种风格的API接口,当然也支持自定义的API接口类型,用户在对象存储写入数据时,由RadosGW处理用户的请求,然后通过Librados库将数据写入到Ceph集群的OSD中。

客户端是基于HTTP或者HTTPS协议通过RESTful API与RGE进行通信,RGW则使用Librados库与Ceph集群进行通信,通过接口API的身份验证,最终将数据写入到OSD中。
在这里插入图片描述

1.3.RGW对象存储的特点

  • 通过对象存储的方式在Ceph集群中存储数据,文件也会被拆分成多个对象,每个对象文件除了包含数据意外,还会包含数据自身的元数据信息,并且如果是大文件,在写入到Ceph集群时,还会被切片,写入到集群后再进行重组。
  • 写入到对象存储的数据文件,无法使用文件的路径名称在服务器中找到,只能通过API来访问数据文件。
  • 对象存储中的Object文件是存储在一种扁平的空间中,叫做Bucket,用于资源隔离。
  • ceph使用Bucket作为对象存储的存储桶,Bucket需要被授权才能访问到,可以起到多用户对数据文件的访问隔离,数据都是存储在Bucket空间里的,用户的权限也是针对Bucket进行授权,用户可以对不同的Bucket拥有不同的权限。
  • 不支持客户端挂载,客户端通过HTTP或者HTTPS访问对象文件。
  • 不适用频繁修改和删除的场景,存储静态文件的场景居多。

1.4.对象存储中Bucket的特性

Bucket称为存储空间,所有对象存储中的文件必须隶属于某个Bucket存储空间,可以对存储空间设置控制地域、访问权限、生命周期等等。

每个用户可以拥有多个Bucket存储空间,一个存储空间内部是扁平的,没有文件系统的目录概念,所有的对象文件都直接隶属于对应的存储空间。

存储空间的名称在集群中必须是全局唯一,一旦创建无法修改。

存储空间中的对象条目没有限制。

Bucket存储空间的命名规范:只能包括大小写字母、数字和短横线,必须以小写字母或者数字开头和结尾,长度必须在3-63字节之间。

1.4.不同接口类型的对象存储访问对比

  • Amazon S3:提供了user、bucket和object,分别表示为用户、存储桶和对象,其中bucket隶属于user,可以这对user设置不同bucket的名称空间访问权限,而且不用用户允许访问相同的bucket。
  • OpenStack Swift:提供了user、container和object,分别对应于用户、存储桶和对象,不过它还额外为user提供了父级组件account,用于表示一个项目或租户,因此一个account中它包含一个到多个user,他们可共享使用同一组container,并为container提供名称空间。
  • RadosGW:提供了user、subuser、bucket和object,其中的user对应S3的user,而subuser则对应于Swif的user,不过user和subuser都不支持为bucket提供名称空间,因此,不同用户的存储桶也不允许同名,不过自Jewel版本起,RadosGW引入了tenant(租户)用于为user和bucket提供名称空间,但它是个可选组件,RadosGW基于ACL为不同的用户设置不用的权限。
    • Read 读加执行权限
    • Write 写权限
    • Readwrite 只读
    • full-control 全部控制权限

2.在集群中部署RadosGW对象存储组件

2.1.部署RGW组件

1)安装RadosGW组件

[root@ceph-node-1 ceph-deploy]# yum -y install ceph-radosgw

2)将ceph-node-1节点配置成集群中的RGW节点

[root@ceph-node-1 ~]# cd /data/ceph-deploy/
[root@ceph-node-1 ceph-deploy]# ceph-deploy rgw create ceph-node-1

在这里插入图片描述

3)查看RGW组件启动的进程以及端口号

[root@ceph-node-1 ~]# systemctl status ceph-radosgw@rgw.ceph-node-1
 
[root@ceph-node-1 ~]# ps aux | grep rgw
ceph       23900  0.3  0.9 5145796 36944 ?       Ssl  22:53   0:00 /usr/bin/radosgw -f --cluster ceph --name client.rgw.ceph-node-1 --setuser ceph --setgroup ceph
root       24522  0.0  0.0 147032  1580 pts/1    S+   22:53   0:00 journalctl -u ceph-radosgw@rgw.ceph-node-1 -f
root       24584  0.0  0.0 112720   980 pts/2    S+   22:55   0:00 grep --color=auto rgw

[root@ceph-node-1 ~]# netstat -lnpt | grep 7480
tcp        0      0 0.0.0.0:7480            0.0.0.0:*               LISTEN      23900/radosgw       
tcp6       0      0 :::7480                 :::*                    LISTEN      23900/radosgw       

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-PjcOdMDC-1679360416505)(G:\01-运维技术文档整理\Ceph分布式存储\08-Ceph集群RGW对象存储核心概念及使用.assets\image-20220402225722481.png)]

4)可以简单的访问下RGW提供的API接口

在这里插入图片描述

2.2.集群中部署完RGW组件后观察集群的信息状态

[root@ceph-node-1 ~]# ceph -s
  cluster:
    id:     a5ec192a-8d13-4624-b253-5b350a616041
    health: HEALTH_OK
 
  services:
    mon: 3 daemons, quorum ceph-node-1,ceph-node-2,ceph-node-3 (age 49m)
    mgr: ceph-node-1(active, since 45m), standbys: ceph-node-2, ceph-node-3
    osd: 6 osds: 6 up (since 6m), 6 in (since 6m)
    rgw: 1 daemon active (ceph-node-1)				#可以看到在这里多了一个RGW组件
 
  task status:
 
  data:
    pools:   5 pools, 256 pgs
    objects: 190 objects, 1.2 KiB
    usage:   6.0 GiB used, 54 GiB / 60 GiB avail
    pgs:     256 active+clean

2.3.修改RGW对象存储的默认监听端口

RGW的默认端口是7380,像这种通过WEB方式访问的程序,最好是使用80端口。

RGW的端口号在配置文件中进行指定,我们只需要修改ceph-deploy生成的ceph.conf文件就可以,然后推送给各个节点。

1.修改ceph的配置文件,指定rgw使用的端口号
[root@ceph-node-1 ~]# cd /data/ceph-deploy/
[root@ceph-node-1 ceph-deploy]# vim ceph.conf 
[global]
fsid = a5ec192a-8d13-4624-b253-5b350a616041
public_network = 192.168.20.0/23
cluster_network = 192.168.30.0/23
mon_initial_members = ceph-node-1, ceph-node-2, ceph-node-3
mon_host = 192.168.20.20,192.168.20.21,192.168.20.22
auth_cluster_required = cephx
auth_service_required = cephx
auth_client_required = cephx

[client.rgw.ceph-node-1] 				#指定RGW节点的节点名称
rgw_frontends = "civetweb port=80"				#port后面跟端口号

2.将配置文件推送到集群的所有节点中
[root@ceph-node-1 ceph-deploy]# ceph-deploy --overwrite-conf config push ceph-node-1 ceph-node-2 ceph-node-3 

在这里插入图片描述

3.重启RGW组件
[root@ceph-node-1 ceph-deploy]# systemctl restart ceph-radosgw.target

4.查看RGW的端口号
[root@ceph-node-1 ceph-deploy]# netstat -lnpt | grep radosgw
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      24837/radosgw  

在浏览器中也可以访问。
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/5537.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

剑指offer JZ27 二叉树的镜像

Java JZ27 二叉树的镜像 文章目录Java JZ27 二叉树的镜像一、题目描述二、辅助栈三、递归法使用辅助栈和递归法解决剑指offer JZ27 二叉树的镜像的问题。 一、题目描述 操作给定的二叉树,将其变换为源二叉树的镜像。   数据范围:二叉树的节点数 0≤n≤…

--编写一个存储过程,输入一个日期,返回该日期与当下日期的时间差,如果该差是负的,则提示该日期已经过去XX天,不然提示距离该日期还有xx天

--创建存储过程&#xff0c;一个输入参数&#xff0c;一个输出参数 create or replace procedure sp_minus(i_date varchar2,o_minus out varchar2) is --声明一个变量&#xff0c;用来存放异常 v_errm varchar2(200); begin --判断输入格式 if length(i_date)<>8 th…

Redis主从复制

文章目录定义用途怎么使用案例演示三大命令&#xff1a;修改配置文件细节常见方式一主二仆薪火相传反客为主复制原理和工作流程主从复制的缺点定义 主从复制&#xff0c;master以写为主&#xff0c;slave以读为主&#xff0c;当master数据变化的时候&#xff0c;自动将新的数据…

十分钟搞懂Java限流及常见方案

目录限流基本概念QPS和连接数控制传输速率黑白名单分布式环境限流方案常用算法令牌桶算法漏桶算法滑动窗口常用的限流方案Nginx限流中间件限流限流组件合法性验证限流Guawa限流网关层限流从架构维度考虑限流设计限流基本概念 QPS和连接数控制 传输速率 黑白名单 分布式环境…

HTML5 <abbr> 标签 和 HTML5 <applet> 标签

标签定义及使用说明 <abbr> 标签用来表示一个缩写词或者首字母缩略词&#xff0c;如"WWW"或者"NATO"。 通过对缩写词语进行标记&#xff0c;您就能够为浏览器、拼写检查程序、翻译系统以及搜索引擎分度器提供有用的信息。 实例 被标记的缩写词如…

《程序员面试金典(第6版)》面试题 08.04. 幂集(回溯算法,位运算,C++)不断更新

题目描述 幂集。编写一种方法&#xff0c;返回某集合的所有子集。集合中不包含重复的元素。 说明&#xff1a;解集不能包含重复的子集。 示例: 输入&#xff1a; nums [1,2,3] 输出&#xff1a; [ [3], [1], [2], [1,2,3], [1,3], [2,3], [1,2], [] ] 解题思路与代码 其实…

博客让谷歌或是百度收录

参考以下大佬的博客教程 Hexo框架(六)&#xff1a;SEO优化及站点被搜索引擎收录设置 | 你真是一个美好的人类 第一步 安装百度和 Google 的站点地图生成插件&#xff1a; npm install hexo-generator-baidu-sitemap --save npm install hexo-generator-sitemap --save 然后来…

文件或目录损坏且无法读取错误的恢复方法

我们在日常的生活当中经常都会遇到各种各样的问题。比如有些时候将磁盘插入电脑之后突然跳出来一个“磁盘结构损坏且无法读取”的提示框&#xff0c;那么像这个情况该怎么解决呢?别着急&#xff0c;小编现在就将磁盘结构损坏且无法读取这个问题的解决方法来分享给你们 文件或目…

数据结构和算法学习记录——栈和队列习题-用队列实现栈、用栈实现队列(核心思路、解题过程、完整题解)

目录 用队列实现栈 题目描述 题目示例 核心思路 解题过程 定义结构体 创建栈结构体函数 入栈函数 出栈函数 取栈顶数据函数 判断栈是否为空函数 销毁栈函数 完整题解&#xff08;C语言&#xff09; 用栈实现队列 题目描述 题目示例 核心思路 完整题解…

计算机网络管理 ARP 地址解析协议 ARP的基础原理 Wireshark ARP 报文分析 ARP的通信过程

⬜⬜⬜ ---&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea; (*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;---⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &#x1f381;欢迎各位→…

GPT4和ChatGPT的区别,太让人震撼

文 | Serendipity知乎 前言 GPT4上午朋友圈已经刷屏啦&#xff0c;不过我还在忙&#xff0c;刚刚才登上 GPT-4 &#xff0c;现在来体验一下~ 附 GPT-4 能力测试站&#xff08;无需魔法&#xff0c;仅供国内研究测试&#xff09;&#xff1a; https://gpt4test.com 附 Cha…

解决代码重复的优化方案

上周公司组织培训Spring 基于注解的数据校验方案&#xff0c;可以节省很大工作量&#xff0c;其实&#xff0c;除了数据校验&#xff0c;还有很多其他方案&#xff0c;可以大幅提高代码的整洁性。如&#xff1a;设计模式、OOP 思想、反射、泛型等等&#xff0c;框架往往需要以同…

强化学习下的多教师知识蒸馏模型(学习笔记

对知识蒸馏的方法提出了一个新的方向 采用多个不同的教师模型同时训练一个学生模型 一个很明显的好处 就是 多个教师model可以减少单个教师模型它的bias 但是当我们有多个老师的时候&#xff0c; 学生模型是否能够根据自己的能力选择和结合教师模型的特点 来选择性的向老师…

Maven依赖管理

文章目录一、mvn依赖的特性1. 依赖的范围2. 依赖的传递3. 依赖的排除二、mvn中的继承和聚合1. 聚合2. 继承3. Demo1、首先创建一个父工程并且修改它的打包方式为 pom2、创建子模块工程3、依赖管理三、企业级知识扩展1. 属性2. 版本管理3. 资源配置4. 多环境开发配置Maven工程约…

SWAT模型(高阶)

SWAT模型高阶十七项案例分析实践应用 导师&#xff1a;刘老师【副教授】&#xff1a;来自国内双一流高校&#xff0c;长期从事数字流域建模、流域水土过程模拟、遥感及GIS技术应用等领域工作&#xff0c;发表多篇SCI论文暨完成多项科研项目&#xff0c;具有资深的技术底蕴和专…

Python 01 初识python

目录 一、编程是怎么来到我们这个世界的&#xff1f; 二、Python的由来&#xff1f; 三、什么是python&#xff1f; 3.1面向对象和面向过程 3.1.1面向对象 3.1.2 面向过程 3.2解释性 3.2.1 编译性 3.2.2 解释性 3.3交互式 四、Python3和Python2 五、python和其他…

基于LiFePO4和硅/还原氧化石墨烯纳米复合材料的锂离子电池

A lithium-ion battery based on LiFePO4 and silicon/reduced graphene oxide nanocomposite highlights&#xff1a; 硅纳米颗粒(nSi)和还原氧化石墨烯(RGO)作为阳极&#xff1b;微波辐射&#xff0c;对混合物进行热处理&#xff0c;合成nSi/RGO复合物&#xff1b;通过不同充…

Jsoup使用教程以及使用案例

文章目录1&#xff1a;什么是Jsoup1&#xff1a;Jsoup概述2&#xff1a;Jsoup能做什么2&#xff1a;Jsoup相关概念3&#xff1a;获取文档1&#xff1a;导入jsoup的jar包2&#xff1a;从URL中加载文档对象&#xff08;常用&#xff09;3&#xff1a;从本地文件中加载文档对象4&a…

2023 海外工具站 3 月复盘

3 月的碎碎念&#xff0c;大致总结了商业人生、付费软件、创业方向选择、创业感性还是理性、如何解决复杂问题及如何成长这几个方面的内容。 商业人生 商业人生需要试错能力和快速信息收集与验证校准&#xff1b; 商业逻辑需要试错能力&#xff0c;收集各种渠道信息后整理决…

手把手教你一步一步暴力破解密码,学不会来找我

目录 一、什么是暴力破解&#xff1f; 二、暴力破解弱口令实验 三、如何防御暴力破解攻击&#xff1f; 一、什么是暴力破解&#xff1f; 暴力破解也可称为穷举法、枚举法&#xff0c;是一种针对于密码的破译方法&#xff0c;将密码进行逐个推算直到找出真正的密码为止。设置长而…