Ceph分布式存储 原理+架构图详解

存储基础

单机存储设备
●DAS(直接附加存储,是直接接到计算机的主板总线上去的存储)
IDE、SATA、SCSI、SAS、USB 接口的磁盘
所谓接口就是一种存储设备驱动下的磁盘设备,提供块级别的存储

●NAS(网络附加存储,是通过网络附加到当前主机文件系统之上的存储)
NFS、CIFS、FTP
文件系统级别的存储,本身就是一个做好的文件系统,通过nfs接口在用户空间输出后,客户端基于内核模块与远程主机进行网络通信,把它转为好像本地文件系统一样来使用,这种存储服务是没办法对它再一次格式化创建文件系统块的

●SAN(存储区域网络)
SCSI协议(只是用来传输数据的存取操作,物理层使用SCSI线缆来传输)、FCSAN(物理层使用光纤来传输)、iSCSI(物理层使用以太网来传输)
也是一种网络存储,但不同之处在于SAN提供给客户端主机使用的接口是块级别的存储


单机存储的问题

●存储处理能力不足
传统的IDE的IO值是100次/秒,SATA固态磁盘500次/秒,固态硬盘达到2000-4000次/秒。即使磁盘的IO能力再大数十倍,也不够抗住网站访问高峰期数十万、数百万甚至上亿用户的同时访问,这同时还要受到主机网络IO能力的限制。

●存储空间能力不足
单块磁盘的容量再大,也无法满足用户的正常访问所需的数据容量限制。

●单点问题
单机存储数据存在单点故障问题


商业存储解决方案

EMC、NetAPP、IBM、DELL、华为、浪潮


分布式存储(软件定义的存储 SDS)

Ceph、TFS、FastDFS、MooseFS(MFS)、GlusterFS(GFS)
存储机制会把数据分散存储到多个节点上,具有高扩展性、高性能、高可用性等优点。

分布式存储的类型

块存储(例如硬盘,一般是一个存储被一个服务器挂载使用,适用于容器或虚拟机存储卷分配、日志存储、文件存储)
块存储提供了一个像硬盘驱动器一样工作的存储卷,组织成大小相同的块。通常,要么操作系统用文件系统格式化基于块的存储卷,要么应用程序(如数据库)直接访问它来存储数据。

文件存储(例如NFS,解决块存储无法共享问题,可以一个存储被多个服务器同时挂载,适用于目录结构的存储、日志存储)
允许将数据组织为传统的文件系统。数据保存在一个文件中,该文件具有名称和一些相关的元数据,例如修改时间戳、所有者和访问权限。提供基于文件的存储使用目录和子目录的层次结构来组织文件的存储方式。

对象存储(例如OSS,一个存储可以被多服务同时访问,具备块存储的高速读写能力,也具备文件存储共享的特性,适用图片存储、视频存储)
基于API接口提供的文件存储,每一个文件都是一个对象,且文件大小各不相同的,文件的元数据和实际数据是存放在一起的。
对象存储允许将任意数据和元数据存储为一个单元,并在平面存储池中标记为惟一标识符。使用API存储和检索数据,而不是将数据作为块或在文件系统层次结构中访问。

块级与文件级概念

块级
磁盘的最小读写单位为扇区,1个或多个连续的扇区组成一个block块,也称之为物理块,是操作系统的读写单位。
一个逻辑文件对应一个物理块

blockdev --getbsz /dev/sda1					查看block块大小(一个block块默认512字节)
512

文件级
文件是文件系统提供的功能,单个文件可能由一个或者多个逻辑块组成,且逻辑块之间是不连续分布的,逻辑块大于或等于物理块整数倍。
物理块与文件系统之间的映射关系为: 扇区–>物理块–>文件系统
注意 : 这么多层的转换,是需要耗费效率。

分布式存储Ceph

1.ceph介绍:

ceph是一个统一的、分布式的存储系统,设计初衷式提供较好的性能(io)可靠性(没有单点故障)和可扩展性(未来可以理论上无限扩展集群规模),这三点也是集群架构所追求的。

统一性 :
意味着我们可以仅凭ceph这一套存储系统,同时提供块存储文件系统存储对象存储。这三种功能,这极大地简化了不同应用需求下地部署和运维工作。
分布式 :
传统集群架构: 集群规模增大,mysql数据的集群规模必然也要随之增大,这完全是集中分布是思想带来的弊端。
ceph内部集群的数据共享完全通过算法算出来,根本不需要数据库这个组件,完全分布式的。
ceph分布式的缺点: 耗费cpu。
 

2.Ceph 优势

●高扩展性:去中心化,支持使用普通X86服务器,支持上千个存储节点的规模,支持TB到EB级的扩展。
●高可靠性:没有单点故障,多数据副本,自动管理,自动修复。
●高性能:摒弃了传统的集中式存储元数据寻址的方案,采用 CRUSH 算法,数据分布均衡,并行度高。
●功能强大:Ceph是个大一统的存储系统,集块存储接口(RBD)、文件存储接口(CephFS)、对象存储接口(RadosGW)于一身,因而适用于不同的应用场景。

3.Ceph 架构

自下向上,可以将Ceph系统分为四个层次:
RADOS 基础存储系统(Reliab1e,Autonomic,Distributed object store,即可靠的、自动化的、分布式的对象存储)
RADOS是Ceph最底层的功能模块,是一个无限可扩容的对象存储服务,能将文件拆解成无数个对象(碎片)存放在硬盘中,大大提高了数据的稳定性。它主要由OSD和Monitor两个组件组成,OSD和Monitor都可以部署在多台服务器中,这就是ceph分布式的由来,高扩展性的由来。

LIBRADOS 基础库
Librados提供了与RADOS进行交互的方式,并向上层应用提供Ceph服务的API接口,因此上层的RBD、RGW和CephFS都是通过Librados访问的,目前提供PHP、Ruby、Java、Python、Go、C和C++支持,以便直接基于RADOS(而不是整个Ceph)进行客户端应用开发。

●高层应用接口:包括了三个部分
1)对象存储接口 RGW(RADOS Gateway)
网关接口,基于Librados开发的对象存储系统,提供S3和Swift兼容的RESTful API接口。

2)块存储接口 RBD(Reliable Block Device)
基于Librados提供块设备接口,主要用于Host/VM。

3)文件存储接口 CephFS(Ceph File System)
Ceph文件系统,提供了一个符合POSIX标准的文件系统,它使用Ceph存储集群在文件系统上存储用户数据。基于Librados提供的分布式文件系统接口。

●应用层:基于高层接口或者基础库Librados开发出来的各种APP,或者Host、VM等诸多客户端

4.Ceph 核心组件

Ceph是一个对象式存储系统,它把每一个待管理的数据流

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值