Ceph学习 -3.存储简介

文章目录

  • 1.存储简介
    • 1.1 存储类型
      • 1.1.1 储备知识
      • 1.1.2 三种存储
      • 1.1.3 块存储
      • 1.1.4 文件存储
      • 1.1.5 对象存储
      • 1.1.6 三种存储之间的关系
      • 1.1.7 总结
    • 1.2 Ceph简介
      • 1.2.1 官方介绍
      • 1.2.2 软件特点
      • 1.2.3 基本结构
      • 1.2.4 应用场景
    • 1.3 小结

1.存储简介

学习目标:这一节,我们从存储类型、ceph简介、小结三个方面来学习。

1.1 存储类型

1.1.1 储备知识

我们来了解一下块级与文件级,然后再介绍块存储与文件存储、对象存储,就能很好地理解他们内部的原理

块级
	- 磁盘的最小读写单位为扇区,1个或多个连续的扇区组成一个block块,也叫物理块。
	- 可以通过下述命令查看设备block块大小:blockdev --getbsz /dev/sda1

文件级
	- 文件是文件系统提供的功能,单个文件可能由于一个或多个逻辑块组成,且逻辑块之间是不连续分布。
	- 逻辑块大于或等于物理块整数倍。

物理块与文件系统之间的映射关系为:扇区 → 物理块 → 逻辑块 → 文件系统
注意:这么多层转换,肯定是需要耗费效率的,如果操作的是对象,则可以直接省去这么多层映射关系,效率自然是高

1.1.2 三种存储

在这里插入图片描述

1.1.3 块存储

如果存储设备提供的是一块裸盘,需要你自己分区格式化制作文件系统,则称之为块存储。
块存储是将裸磁盘空间整个映射给主机使用的,主机层面操作系统识别出硬盘,与我们服务器内置的硬盘没有什么差异,可以自由的进行磁盘进行分区、格式化。
块存储不仅仅是直接使用物理设备,间接使用物理设备的也叫块设备,比如虚拟机创建虚拟磁盘、虚拟机磁盘格式包括raw、qcow2等。
常见的解决方案:
	ABS(Azure Block Storage)、GBS(Google Block Storage)、EBS(Elastic Block Storage)、Cinder、Ceph RBD、sheepdog

详细分析:
1.客户端主要操作对象是磁盘,客户端可以自己格式化制作文件系统;
2.块存储设备中划分出的是一块裸磁盘空间映射给客户端主机使用;
3.例如:SCSI
以 SCSI 为例,主要接口有 Read/Write/Read Capacity/Inquiry 等等。
FC,iSCSI,也是块存储协议。
和文件存储相比,没有文件和目录树的概念,一般协议也不会定义磁盘的创建和删除操作。
协议更注重 传输控制。

1.1.4 文件存储

如果存储设备提供的是一个文件夹,可以直接操作文件,则称之为文件存储。
最常见、最容易、最经典实现的一种存储接口。它可以直接以文件系统挂载的方式,为主机提供存储空间资源。它有别于块存储的特点就在于,可以实现共享效果,但是有可能受网络因素限制导致速度较慢。
常见的解决方案:
	AFS(Azure File Storage)、GFS(Google File Storage)、EFS(Elastic File Storage)、Swift、CephFS、HDFS、NFS、CIFS、Samba、FTP
	
详细分析:
1.客户端主要操作的是文件和文件夹,客户端无法格式化制作自己的文件系统,使用的是现成的文件系统;
2.文件存储中已经做好了文件系统,然后共享给客户端主机使用;
3.例如:NFS
文件存储支持 POSIX 协议,以 NFS 为例,文件相关的接口包括:LOOKUP/ACCESS/READ/WRITE/CREATE/REMOVE/RENAME 等等。
文件夹相关的接口包括:MKDIR/RMDIR/READDIR 等等。
同时也会有 FSSTAT/FSINFO 等接口用于提供文件系统级别的信息。
POSIX,SAMBA 等也是文件存储协议。
协议更注重接口的灵活,以及访问权限控制。

1.1.5 对象存储

如果只需要提供文件的元数据与真实数据,存储设备负责帮助生成文件,然后存到硬盘中,则称之为对象存储,操作的内容都称之为对象。
其核心是将 数据读或写 和 元数据 分离,并且基于对象存储设备(Object-based Storage Device,OSD)构建存储系统,然后借助于对象存储设备的管理功能,自动管理该设备上的数据分布。
对象存储主要包括四部分:
	- 对象
	- 对象存储设备
	- 元数据服务器
	- 对象存储系统的客户端
简单地说,
	- 块存储读写快,不利于共享
	- 文件存储读写慢,利于共享
	- 对象存储综合了两者的优点
常见的解决方案:
	AS(Azure Storage)、GCS(Google Cloud Storage)、S3(Simple Storage Service)、Swift、Ceph OSD

详细分析:
1.客户端主要操作对象是对象(Object);
2.对象存储使用一个统一的底层存储系统,把文件和底层介质的组织结构都管理好,然后给每一个文件一个唯一的标识,客户端需要访问某个文件,直接提供文件的标识就可以了。此时存储系统可以用更高效的数据组织方式来管理这些标识以及其对应的存储介质上的块;
当然,对于不同的软件系统来说,一次访问需要获取的不一定是单个我们传统意义上的文件,根据不同的需要可能是一个/组值,某个文件的一部分,也可能是多个文件的组合,甚至是某个块设备,统称为对象,这就是对象存储;
3. 例如:S3
以 S3 为例,主要接口有 PUT/GET/DELETE 等。
和块存储相比,没有随机读写的接口。
和文件存储相比,没有目录树的概念。
协议更注重简洁。

1.1.6 三种存储之间的关系

块存储是最低级,最直接的,如果多个客户端共用一个块存储,客户端会把数据先缓存在本地,然后再写入块存储,这就会导致多个客户端数据不一致的问题,所以,通常一个块存储只给一个客户端使用。

在这里插入图片描述

为了让多个客户端共享数据、并保证一致(块存储无法保证),于是诞生了文件存储,例如:nfs,客户端挂载的都是服务端的同一个文件夹,数据是完全一致的,但是随着客户端数量越来越多,nfs服务器检索文件信息的压力会越来越大,最后不堪重负,一旦挂掉,则影响整个集群的工作,所以nfs严重影响了集群的扩展。

在这里插入图片描述

为了能够满足无限扩展的需求,诞生了对象存储,客户端无需操作文件,而是只需要提供文件相关的部分信息即可,这些信息称之为一个个的对象,存储设备接收到对象后负责完成后续操作。

1.1.7 总结

块存储(SAN):是和主机打交道的,如插拔一块硬盘。
文件存储(NAS):网络存储,用于多主机共享数据。
对象存储(OBJ):跟你自己开发的应用程序打交道,如网盘,它们的层级是越来越高的。

关于Ceph的块存储、文件存储、对象存储:
	- Block(块):支持精简配置、快照、克隆。
	- File(文件系统):Posix接口,支持快照。
	- Object(对象):有原生的API,而且也兼容Swift和S3的API。

1.2 Ceph简介

1.2.1 官方介绍

来源:
	Ceph项目最早起源于Sage就读博士期间的工作(最早的成果于2004年发表,论文发表于2006年),并随后共享给开源社区。在经过了数年的发展之后,目前已得到众多云计算厂商的支持并被广泛应用。RedHat及OpenStack都可与Ceph整合以支持虚拟机镜像的后端存储。


	Ceph is the future of storage; where traditional(传统的) systems fail to deliver, Ceph is designed to excel(出色). Leverage(利用) your data for better business(业务) decisions(决策) and achieve(实现) operational(运营) excellence(卓越) through scalable, intelligent(智能), reliable(可靠) and highly available(高可用) storage software. Ceph supports object, block and file storage, all in one unified(统一) storage system.
	
	Ceph是存储的未来;在传统系统无法实现的地方,Ceph被设计为出类拔萃。利用您的数据做出更好的业务决策,并通过可扩展、智能、可靠和高可用的存储软件实现卓越的运营。Ceph支持对象、块和文件存储,所有这些都在一个统一的存储系统中。

Ceph是一个统一的、分布式的存储系统,设计初衷是提供较好的性能、可靠性和可扩展性。
	- 统一的:意味着我们可以仅凭Ceph这一套存储系统,同时提供对象存储、块存储和文件系统存储三种功能,这极大地简化了不同应用需求下的部署和运维工作。
	- 分布式:Ceph实现了真正的去中心化,理论上可以无限扩展集群系统的规模。
参考资料:
	官方地址:https://ceph.com/en/
	官方文档:https://docs.ceph.com/en/latest/
	Github地址:https://github.com/ceph/ceph
	最新版本:https://docs.ceph.com/en/latest/releases/
		- Reef-18.2.2(2023-08-07)
		- Quincy-17.2.7(2022-04-19)
		- Pacific-16.2.15(2021-03-31)
	版本命名规则,第二个数字表示:
		- x.0.x:开发版
		- x.1.x:候选版
		- x.2.x:稳定、修正版,建议都是用稳定版本进行
    系统支持:
        全系列最好的系统支持是Ubuntu
        Ceph的发展对于Centos系列和Redhat系列不友好,新版本不支持旧版本系统。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

活动版本:积极维护,并定期接收向后移植和安全修复

在这里插入图片描述

存档版本:不再维护

在这里插入图片描述

发布时间表:项目版本发布时间

在这里插入图片描述
在这里插入图片描述

1.2.2 软件特点

在这里插入图片描述

为什么很多人用Ceph?
	1. 创新,Ceph能够同时提供对象存储、块存储和文件存储三种存储服务的统一存储架构。
	2. 算法,Ceph得以摒弃了传统的集中式存储元数据寻址方案,通过Crush算法的寻址操作,有相当强大的扩展性。
	3. 可靠,Ceph中的数据副本数量可以由管理员自行定义,并可以通过Crush算法指定副本的物理存储位置以分割故障域,支持数据强一致性的特性也使Ceph具有了高可靠性,可以忍受多种故障场景并自动尝试并行修复。
Ceph本身确实具有较为突出的优势,Ceph追求用最廉价的设备做最牛的存储。
其先进的核心设计思想,概括为八个字 - - “无需查表,算算就好”。
详细地讲,可以总结为以下四点:
高性能
	- 摒弃了传统的集中式存储元数据寻址的方案,采用 CRUSH 算法,数据分布均衡,并行度高。
	- 考虑了容灾域的隔离,能够实现各类负载的副本放置规则,例如跨机房、机架感知等。
	- 能够支持上千个存储节点的规模,支持 TB 到 PB 级的数据。

高可用性
	- 副本数可以灵活控制。
	- 支持故障域分隔,数据强一致性。
	- 多种故障场景自动进行修复自愈。
	- 没有单点故障,自动管理。

高可扩展性
	- 去中心化。
	- 扩展灵活。
	- 随着节点增加而线性增长。

特性丰富
	- 支持三种存储接口:块存储、文件存储、对象存储。
	- 支持自定义接口,支持多种语言驱动。

1.2.3 基本结构

在这里插入图片描述

Ceph是一个多版本存储系统,它把每一个待管理的数据流(例如一个文件)切分为一到多个固定大小的对象数据,并以其为原子单元完成数据存取。
对象数据的底层存储服务是由多个主机(host)组成的存储集群,该集群也被称之为 RADOS(Reliable Automatic Distributed Object Store)存储集群,即可靠、自动化、分布式对象存储系统。
librados是RADOS存储集群的API,它支持C、C++、Java、Python、Ruby和PHP等编程语言。

1.2.4 应用场景

Ceph delivers object, block, and file storage in one unified system.
Ceph在一个统一的系统中提供对象、块和文件存储。

在这里插入图片描述

RadosGW、RBD和CephFS都是RADOS存储服务的客户端,它们把RADOS的存储服务接口(librados)分别从不同的角度做了进一步抽象,因而各自适应于不同的应用场景。
也就是说,Ceph将三种存储类型统一在一个平台中,从而实现了更强大的适用性。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

自下而上,可以将Ceph系统分为四个层次:
1.基础存储系统:RADOS(Reliable, Autonomous, Distributed Object Store, 即可靠的、自动化的、分布式的对象存储)
2.基础库:LIBRADOS
	- 通过自编程方式实现数据的存储能力
3.高层应用接口:包括了三个部分
	- 对象存储接口(Object):RADOS GW (RADOS Gateway),有原生的 API,而且也兼容 Swift 和 S3 的 API。
		- 通过标准的RESTful接口,提供一种云存储服务。
	- 块存储接口(Block):RBD (Reliable Block Device),支持精简配置、快照、克隆。
		- 将Ceph提供的空间,模拟出来一个一个的独立块设备使用。而且Ceph环境部署完毕后,服务端就准备好了rbd接口。
	- 文件存储接口(File):Ceph FS (Ceph File System),Posix 接口,支持快照。
		- 通过一个标准的文件系统接口来进行数据的存储。
4.应用层:基于高层接口或者基础库librados开发出来的各种APP,或者主机,VM等诸多客户端

官方参考图例链接:https://docs.ceph.com/en/reef/_images/stack.png
类型典型设备优点缺点使用场景
CephFSFTP、NFS服务器
为了克服块存储文件无法共享的问题,所以有了文件存储。
在服务器上架设FTP与NFS服务就是文件存储。
1.造价低
2.方便文件共享
1.读写速率低
2.传输速率慢
1.日志存储
2.有目录结构的文件存储
RBD磁盘阵列,硬盘
主要是将裸磁盘空间映射给主机使用
1.通过Raid与LVM等手段,对数据提供了保护。
2.多块廉价的硬盘组合起来,提高容量。
3.多块磁盘组合出来的逻辑盘,提升读写效率。
1.采用SAN架构组网时,光纤交换机,造价成本高。
2.主机之间无法共享数据。
1.docker容器、虚拟机磁盘存储分配。
2.日志存储
3.文件存储
RGW内置大容量硬盘的分布式服务器(swift,s3)
多台服务器内置大容量硬盘,安装上对象存储管理软件,对外提供读写访问功能。
1.具备块存储的读写高速。
2.具备文件存储的共享等特性。
(适合更新变动较少的数据)
1.图片存储
2.视频存储

1.3 小结


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

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

相关文章

Shiny Items VFX for URP

一系列令人惊叹且易于编辑的Shuriken粒子系统和粒子着色器,用于稀有物品、奖励或通电物品 用我的“闪亮物品”包提高你在URP项目中的稀有物品、奖项或电源的吸引力。 该包提供了使用Shuriken粒子系统创建的14个“项目”预制集,以及项目的自定义着色图着色…

PPP-B2b星历下载

目前做PPP-B2b研究比较多,其中PPP-B2b需要北斗的CNAV星历下载链接为(例如2024.04.05对应的2024年第097天):数据下载http://www.csno-tarc.cn/datacenter/ephemeris

c++ Constraints 和 concepts介绍

C++20 引入了 Concepts,以改进模板编程的体验。Concepts 是一种用于模板编程的新机制,它允许程序员在编译时对模板参数进行约束和限制,从而提高模板的可读性、可维护性和错误检测能力。 Constraints(约束)是 Concepts 的一部分,它定义了模板参数必须满足的条件。一个约束…

《科技创业月刊》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答:问:《科技创业月刊》是什么级别的刊物? 答:省级,主管单位: 湖北省科学技术厅 ;主办单位:湖北省科技信息研究院 问:《科技创业月刊》是c刊吗? 答&…

Rustdesk二次编译,新集成AI功能开源Gpt小程序为远程协助助力,全网首发

环境: Rustdesk1.1.9 sciter版 问题描述: Rustdesk二次编译,新集成AI功能开源Gpt小程序为远程协助助力,全网首发 解决方案: Rustdesk二次编译,新集成开源AI功能Gpt小程序,为远程协助助力&#xff0c…

【C++】RapidJSON 设置支持 std::string,防止编译报错

问题 rapidjson 创建 json 数据,使用 std::string 字符串进行赋值,编译时,抱一堆错误 .... rapidjson/include/rapidjson/document.h:690:5: note: candidate expects 0 arguments, 1 provided [build] make[2]: *** [main/CMakeFiles/ma…

2024.4.7

1. 2列火车 #include<myhead.h>pthread_mutex_t m1; pthread_mutex_t m2;void* run(void* arg) {while(1){pthread_mutex_lock(&m1);printf("火车B进入\n");printf("A请等待\n");pthread_mutex_unlock(&m2);sleep(2);} }int main(in…

cookie、session、token的区别

这三者都和维持状态信息有关。比如我们如果在网页进行了一次登录&#xff0c;如果我们希望以后再访问该网页的时候&#xff0c;维持登录信息的话&#xff0c;就需要用到上面的这三种&#xff0c;如果不用的话&#xff0c;那么我们每次都需要携带登录信息到服务器&#xff0c;并…

海纳斯删除广告位

找到文件 vim /var/www/html/home.php 删除代码段 <div class"adleft" id"adleftContainer"><button onclick"closeAd()">关闭</button><a href"https://www.ecoo.top/ad.html" target"_blank">&l…

Android Studio学习16——Activity跳转时的参数传递

传递数据——example 传递对象类型的数据——example 传递 接收 回传数据——example

Docker容器(五)Docker Compose

一、概述 1.1介绍 Docker Compose是Docker官方的开源项目&#xff0c;负责实现对Docker容器集群的快速编排。Compose 是 Docker 公司推出的一个工具软件&#xff0c;可以管理多个 Docker 容器组成一个应用。你需要定义一个 YAML 格式的配置文件docker-compose.yml&#xff0c;…

风险评估在应对网络安全威胁中扮演着重要的角色

如今&#xff0c;IT 安全专家面临各种重大威胁&#xff0c;从勒索软件、网络钓鱼&#xff0c;到对基础设施的攻击&#xff0c;再到对知识产权、客户数据的窃取&#xff1b;从不安全的供应链合作伙伴&#xff0c;再到组织内部人员的恶意行为。同时&#xff0c;随着云计算、远程工…

JavaScript(二)-Web APIS

文章目录 Web API 基本认知作用和分类什么是DOMDOM树DOM对象获取DOM对象操作元素内容操作元素属性操作元素常用属性操作元素样式属性自定义属性 定时器-间歇函数定时器函数的理解定时器函数使用间歇函数 事件监听与绑定事件监听事件监听版本事件类型事件对象什么是事件对象获取…

micropython控制esp32上的LED闪烁

ESP32电路图 部分PCB原理图: https://doc.itprojects.cn/0006.zhishi.esp32/01.download/esp32_Schematic%20Prints.pdf GPIO2输出高低电平&#xff0c;控制LED。下面是控制LED灯闪烁的代码。 import machine import time pin2 machine.Pin(2, machine.Pin.OUT) while True:…

Java集合基础知识点复习

目录 Java提供的常见集合ListArrayList底层实现与扩容机制ArrayList listnew ArrayList(10)中的list扩容几次如何实现数组和List之间的转换用Arrays.asList转List后&#xff0c;如果修改了数组内容&#xff0c;list受影响吗&#xff1f;List用toArray转数组后&#xff0c;如果修…

一键无痕清理:高效删除Mac文件夹,释放宝贵存储空间

在当今重视隐私的时代&#xff0c;当转让或出借Mac电脑时&#xff0c;确保个人文件和敏感信息彻底清除至关重要。常规删除Mac上的文件和文件夹仅使数据看似消失&#xff0c;实际上它们仍驻留在硬盘上&#xff0c;存在被数据恢复软件找回的风险。为实现不可逆的删除效果&#xf…

Python+Vuecil笔记

Nginx 进入目录: C:\nginx-1.20.2\nginx-1.20.2 start nginx 开始 nginx -s stop 停止 nginx -s quit 退出CSS 通过标签去写css 循环展示数据 JS 点击时执行事件 Django 配置media 在seetings里面修改 STATIC_URL /static/ MEDIA_URL /upload/ MEDIA_ROOT os.pat…

文心一言指令词宝典之咨询分析篇

作者&#xff1a;哈哥撩编程&#xff08;视频号、抖音、公众号同名&#xff09; 新星计划全栈领域优秀创作者博客专家全国博客之星第四名超级个体COC上海社区主理人特约讲师谷歌亚马逊演讲嘉宾科技博主极星会首批签约作者 &#x1f3c6; 推荐专栏&#xff1a; &#x1f3c5;…

探索7个MAMP本地开发环境的高效替代软件

什么是本地开发环境 本地开发环境是Web开发环境中的一种类型&#xff0c;它是指开发者自己的计算机上配置的一套用于开发和测试网站或应用程序的软件集合。这套环境使得开发者可以在本地计算机上构建和测试网站&#xff0c;而无需实时部署到服务器。 创建本地开发环境有两种方…

剪映国际版 v3.7 来了,全功能纯净,附400套离线模板下载

剪映国际版 v3.7 来了&#xff0c;全功能纯净&#xff0c;附400套离线模板下载 相比国内版 国际版不仅没有广告&#xff0c;所有素材和功能都是免费使用的。 CapCut是剪映的国际版本,操作和各种功能几乎和剪映一模一样&#xff0c; 是一款免费无限制使用的视频剪辑软件,软件…