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:稳定、修正版,建议都是用稳定版本进行系统支持:全系列最好的系统支持是UbuntuCeph的发展对于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 小结


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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

抖音引流私域转化模式1.0现场视频,从抖音源源不断把人加到私域买单

抖音-引流私域转化模式1.0现场视频,从抖音源源不断把人加到私域,让加到私域的粉丝买单 课程内容:抖音引流私域转化模式1.0现场视频,从抖音源源不断把人加到私域买单 - 百创网-源码交易平台_网站源码_商城源码_小程序源码 01.第一…

Python | Leetcode Python题解之第16题最接近的三数之和

题目&#xff1a; 题解&#xff1a; class Solution:def threeSumClosest(self, nums: List[int], target: int) -> int:nums.sort()n len(nums)best 10**7# 根据差值的绝对值来更新答案def update(cur):nonlocal bestif abs(cur - target) < abs(best - target):best…

LDR6328助力Type-C普及,便捷充电,绿色生活更精彩

随着科技的进步和全球统一接口的需求&#xff0c;Type-C接口正日益受到青睐。越来越多的设备正选择采纳这一先进的接口设计&#xff0c;它的普及无疑在改善着我们的日常生活。 在过往&#xff0c;许多小功率设备如小风扇、蓝牙音箱、桌面台灯以及家用加湿器等&#xff0c;都普遍…

Node.js进阶——Express

文章目录 一、初识Express1、概念2、安装3、使用3、托管静态资源4、nodemon 二、Express路由1、概念2、使用1&#xff09;简单使用2&#xff09;模块化路由 三、Express中间件1、介绍2、语法1&#xff09;基本语法2&#xff09;next函数作用3&#xff09;定义中间件函数4&#…

K8S - Service简介和 1个简单NodePort例子

大纲图 流量方向 如上图&#xff0c; 当用户or 别的service 从k8s 集群外部访问 集群内的services 流量方向有两种 一种是垂直方向&#xff0c; 通过域名 -> Load Balancer -> gateway -> services , 在k8s 一般是通过ingress 来实现&#xff0c; 而ingress 不是本文…

基于JSP SSM的社区生活超市管理系统

目录 背景 技术简介 系统简介 界面预览 背景 随着时代步伐的加速&#xff0c;计算机技术已广泛而深刻地渗透到社会的各个层面。随着居民生活水平的持续提升&#xff0c;人们对社区生活超市的期望和管理要求也越来越高。随着社区生活超市数量的稳步增长&#xff0c;开发一个…

项目:自主实现Boost搜索引擎

文章目录 写在前面开源仓库和项目上线其他文档说明 项目背景项目的宏观原理技术栈与环境搜索引擎原理正排索引倒排索引 去标签和数据清洗模块html文件名路径保存函数html数据解析函数文件写入函数 建立索引模块检索和读取信息建立索引建立正排索引建立倒排索引jieba工具的使用倒…

mysql结构与sql执行流程

Mysql的大体结构 客户端&#xff1a;用于链接mysql的软件 连接池&#xff1a; sql接口&#xff1a; 查询解析器&#xff1a; MySQL连接层 连接层&#xff1a; 应用程序通过接口&#xff08;如odbc,jdbc&#xff09;来连接mysql&#xff0c;最先连接处理的是连接层。 连接层…

SpringCloud Alibaba Sentinel 创建流控规则

一、前言 接下来是开展一系列的 SpringCloud 的学习之旅&#xff0c;从传统的模块之间调用&#xff0c;一步步的升级为 SpringCloud 模块之间的调用&#xff0c;此篇文章为第十四篇&#xff0c;即介绍 SpringCloud Alibaba Sentinel 创建流控规则。 二、基本介绍 我们在 senti…

最新高自定义化的AI翻译(沉浸式翻译),可翻译网页和PDF等文件或者文献(附翻译API总结,Deeplx的api,Deepl的api)

前序 常见问题&#xff1a; 1.有时候想翻译网页&#xff0c;又翻译文献怎么办&#xff1f;下两个软件&#xff1f; 2.什么软件可以翻译视频字幕&#xff1f; 3.什么软件可以翻译PDF文件&#xff1f; 沉浸式翻译介绍 可以翻译文献可以翻译视频字幕可以翻译PDF文件支持OpenAI翻译…

Linux中shell脚本的学习第一天,编写脚本的规范,脚本注释、变量,特殊变量的使用等,包含面试题

4月7日没参加体侧的我自学shell的第一天 Shebang 计算机程序中&#xff0c;shebang指的是出现在文本文件的第一行前两个字符 #&#xff01; 1)以#!/bin/sh 开头的文件&#xff0c;程序在执行的时候会调用/bin/sh, 也就是bash解释器 2)以#!/usr/bin/python 开头的文件&#…

uniapp极光推送、java服务端集成

一、准备工作 1、进入【服务中心】-【开发者平台】 2、【创建应用】&#xff0c;填写应用名称和图标&#xff08;填写项目名称&#xff0c;项目logo就行&#xff0c;也可填写其他的&#xff09; 3、选择【消息推送】服务&#xff0c;点击下一步 ​ ​ Demo测试 参照文档&…

论文阅读《Semantic Prompt for Few-Shot Image Recognition》

论文地址&#xff1a;https://arxiv.org/pdf/2303.14123.pdf 论文代码&#xff1a;https://github.com/WentaoChen0813/SemanticPrompt 目录 1、存在的问题2、算法简介3、算法细节3.1、预训练阶段3.2、微调阶段3.3、空间交互机制3.4、通道交互机制 4、实验4.1、对比实验4.2、组…

【C++】哈希思想的应用(位图、布隆过滤器)及海量数据处理方法

文章目录 前言位图什么是位图简单实现一个自己的位图位图的应用场景 布隆过滤器位图的缺陷及布隆过滤器的提出布隆过滤器的概念简单实现一个自己的布隆过滤器布隆过滤器的优缺点布隆过滤器的应用场景 海量数据处理 前言 哈希思想的在实际中的应用除了哈希表这个数据结构之外还…

【Redis 知识储备】读写分离/主从分离架构 -- 分布系统的演进(4)

读写分离/主从分离架构 简介出现原因架构工作原理技术案例架构优缺点 简介 将数据库读写操作分散到不同的节点上, 数据库服务器搭建主从集群, 一主一从, 一主多从都可以, 数据库主机负责写操作, 从机只负责读操作 出现原因 数据库成为瓶颈, 而互联网应用一般读多写少, 数据库…

C++的List类(一):List类的基本概念

目录 前言 List类的基本概念 List的构造函数 List类迭代器的使用 List的功能 List的元素访问 List与vector比较 前言 vector的insert和erase都会导致迭代器失效list的insert不会导致迭代器失效&#xff0c;erase会导致迭代器失效 insert导致失效的原因是开辟了新空间后…

Visual Studio 2022-C语言如何防止头文件多次引入

头文件的包含 本地⽂件包含 #include "filename" 查找策略&#xff1a;先在源⽂件所在⽬录下查找&#xff0c;如果该头⽂件未找到&#xff0c;编译器就像查找库函数头⽂件⼀样在 标准位置查找头⽂件。 如果找不到就提⽰编译错误。 Linux环境的标准头⽂件的路径&…

如何自定义项目启动时的图案

说明&#xff1a;有的项目启动时&#xff0c;会在控制台输出下面的图案。本文介绍Spring Boot项目如何自定义项目启动时的图案&#xff1b; 生成字符图案 首先&#xff0c;找到一张需要设置的图片&#xff0c;使用下面的代码&#xff0c;将图片转为字符文件&#xff1b; impo…

【Unity每日一记】鼠标相关API

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

Linux初学(十七)redis

一、简介 redis就是一个内存数据库 redis中的数据&#xff0c;都是保存在内存中 端口&#xff1a;6379 二、安装redis 方法一&#xff1a;编译安装 方法二&#xff1a;yum安装-epel 第一步&#xff1a;配置epel源 详见&#xff1a;http://t.csdnimg.cn/AFl1K第二步&#xff1a…