认识分布式存储
-
需要了解的东西
1.对ceph存储池的操作
创建
删除设置配额
空间限制
2.cephX认证机制
3.ceph rbd、cephfs、ceph rgw的使用
都是以普通用户的身份访问ceph数据
如果使用cephfs需要注意的是MDS的高可用和高性能
4.dashboard和监控
1.1)存储分类
-
单机存储:
SCSI/SAS/USB/PCI-EI sSD/NVME(提升性能) -
网络存储(带文件系统)∶
NFS/Samba/NAS SAN:SAN (Storage Area Network,存储区域网络
-
块设备-块级别存储
ISCSI-Internet Small Computer System Interface(小型计算机系统接口,又称为IP-SAN,是一种基于网络的的存储技术)FC-SAN -
单机磁盘的空间问题、IO问题、高可用问题
商业解决方案-EMC、NetAPP、戴尔、华为、浪潮 分布式存储:Ceph,TFS,FastDFS,MogileFS,MooseFS,GlusterFS
常见的分布式存储对比: https://www.cnblogs.com/yswenli/p/7234579.html服务分为读数据和写数据,读可以在任何一个节点读,但是写只能写在特定的节点,如Redis的master、zookeeper的 leader、MySQL的master等场景
1.2)数据分类及存储分类
-
数据分为元数据和数据:
-
块存储:需要格式化,将文件直接保存到磁盘上。
-
文件存储:提供数据存储的接口,是由操作系统针对块存储的应用,即由操作系统提供存储接口,应用程序通过调用操作系统将文件保存到块存储进行持久化。
-
对象存储:也称为基于对象的存储,其中的文件被拆分成多个部分并散布在多个存储服务器,在对象存储中,数据会被分解为称为“对象”的离散单元,并保存在单个存储库中,而不是作为文件夹中的文件或服务器上的块来保存,对象存储需要一个简单的 HTTP应用编程接(API),以供大多数客户端(各种语言)使用。
-
Ceph是一个开源的分布式存储系统,包括对象存储、块设备、文件系统
-
Ceph是一个对象(object)式存储系统,它把每一个待管理的数据流(文件等数据)切分为一到多个固定大小(默认4兆)的对象数据,并以其为原子单元(原子是构成元素的最小单元)完成数据的读写
-
对象数据的底层存储服务是由多个存储主机(host)组成的存储集群,该集群也被称之为RADOS(reliable automatic distributed object store)存储集群,即可靠的、自动化的、分布式的对象存储系统。
-
librados是 RADOS存储集群的API,支持C/C++/JAVA/python/ruby/php 等编程语言客户端。
1.3)ceph架构:
-
Pool∶存储池、分区,存储池的大小取决于底层的存储空间。
-
PG(placement group):一个pool内部可以有多个PG存在,pool和PG 都是抽象的逻辑概念,一个pool中有多少个PG可以通过公式计算。
-
OSD(Object Storage Daemon):每一块磁盘叫做osd,多个osd组成一个主机
-
存储池要先创建才能往ceph 保存数据,文件在向ceph保存之前要先进行一致性hash计算,计算后会把文件保存在某个对应的PG的,某个文件一定属于某个pool的PG,在通过PG保存在OSD 上。
-
数据对象在写到主OSD之后再同步对从OSD 以实现数据的高可用。
-
架构图
-
注:存储文件过程:
-
第一步:把文件对象映射给PG
-
第二步:把文件对象映射被OSD,
-
第三步:通过OSD 写入到硬盘
-
监视器mon维护 OSD 和PG的集群状态,


