单机存储及分布式存储概述
块:
1.兼容性比较好
2.性能好
3.用于单个服务的使用
文件存储:
1.使用不需要格式化
2.用于多个服务之间的数据持久化和共享
前后端
对象存储:
1.不用挂载也不用格式化
2.而对于数据不会经常变化、删除和修改的场景,如短视频、APP下载等,可以使用对象存储
#文件存储、块存储还是对象存储?
https://www.redhat.com/zh/topics/data-storage/file-block-object-storage
#ceph Github
https://github.com/ceph/ceph
#
ceph的底层存储服务是由多个存储主机(host)组成的存储集群,该集群也被称之为RADOS(reliable automatic distributed object store)存储集群,即可靠的、自动化的、分布式的对象存储系统,
librados 是 RADOS 存储集群的 API,支持 C/C++/JAVAVpython/ruby/php/go等编程语言客户端.
#查询服务器块大小
root@ubuntu-k8s-master01:~# stat / | grep "IO"
Size: 4096 Blocks: 8 IO Block: 4096 directory
#ceph 的设计思想:
Ceph的设计旨在实现以下目标:
每一组件皆可扩履
无单点故障
基于软件(而非专用设备)并且开源(无供应商锁定)
在现有的廉价硬件上运行
尽可能自动管理,减少用户干预
#ceph 版本
https://docs.ceph.com/en/reef/releases/
#INTRO TO CEPH
https://docs.ceph.com/en/latest/start/intro/
Ceph是一个分布式存储系统,由多个组件组成,各个组件承担着不同的功能和角色。以下是Ceph的几个核心组件及其功能:
Monitors(监视器):Ceph监视器(ceph-mon)维护着集群状态的各种映射,包括监视器映射、管理器映射、OSD映射、MDS映射和CRUSH映射。这些映射是Ceph守护程序协调彼此之间的必要集群状态。监视器还负责管理守护程序和客户端之间的认证。通常至少需要三个监视器以实现冗余和高可用性。
Managers(管理器):Ceph管理器守护程序(ceph-mgr)负责跟踪运行时指标和Ceph集群的当前状态,包括存储利用率、当前性能指标和系统负载。Ceph管理器守护程序还托管基于Python的模块,用于管理和公开Ceph集群信息,包括基于Web的Ceph仪表板和REST API。通常至少需要两个管理器以实现高可用性。
OSDs(对象存储守护程序):Ceph对象存储守护程序(Ceph OSD,ceph-osd)存储数据,处理数据复制、恢复、再平衡,并通过检查其他Ceph OSD守护程序的心跳向Ceph监视器和管理器提供一些监控信息。通常至少需要三个Ceph OSD以实现冗余和高可用性。
MDSs(元数据服务器):Ceph元数据服务器(MDS,ceph-mds)代表Ceph文件系统存储元数据(即,Ceph块设备和Ceph对象存储不使用MDS)。Ceph元数据服务器允许POSIX文件系统用户执行基本命令(如ls、find等),而不会给Ceph存储集群带来巨大的负担。
Ceph将数据存储为逻辑存储池中的对象。使用CRUSH算法,Ceph计算应该包含对象的放置组(PG)以及应该存储放置组的OSD。CRUSH算法使Ceph存储集群可以动态扩展、再平衡和恢复。
Ceph 的管理节点:
1.ceph 的常用管理接口是一组命令行工具程序,例如 rados、ceph、rbd 等命令,ceph 管理员可以从某个特定的 ceph-mon 节点执行管理操作
2.推荐使用部署专用的管理节点对 ceph 进行配置管理、升级与后期维护,方便后期权限管理,管理节点的权限只对管理人员开放,可以避免一些不必要的误操作的发生
以上是Ceph的基本组件和它们的功能,它们共同工作以实现分布式存储和高可用性。
#ceph 元数据保存方式
xattrs(扩展属性):
是将元数据保存在对象对应文件的扩展属性中并保存到系统磁盘上,这要求支持对象存储的本地文件系统(一般是 XFS)支持扩展属性。
omap(object map 对象映射):
omap:是 object map 的简称,是将元数据保存在本地文件系统之外的独立 key-value 存储系统中,在使用filestore 时是 leveldb,在使用 bluestore 时是 rocksdb,
由于 filestore存在功能问题(需要将磁盘格式化为XFS格式)及元数据高可用问题等问题,因此在目前ceph主要使用 bluestore.
#Ceph CRUSH
Ceph CRUSH 算法简介:Controllers replication under scalable hashing #可控的、可复制的、可伸缩的一致性 hash算法。
![]()
![]()
![]()