首页 > 网络 > 云计算 >

世界杯外围投注官网

2016-09-17

Ceph专题一Ceph架构详细分析。

&世界杯外围投注官网65279;Ceph专题一Ceph架构详细分析

Ceph是呼声很高的开源分布式的SDS产品存储系统。同时提供对象存储、块存储和文件系统存储三种功能,满足不同应用需求。Ceph使用C++语言开发,遵循LGPL协议开源。Sage Weil(Ceph论文发表者)于2011年创立了以Inktank公司主导Ceph的开发和社区维护。2014年Redhat收购inktank公司,并发布Inktank Ceph企业版(ICE)软件,业务场景聚焦云、备份和归档,支持对象和块存储应用。从此出现Ceph开源社区版本和Redhat企业版。

Cehp的基础服务架构

Cehp的基础服务架构主要包括了ObjectStorage Device(OSD),Monitor和MDS。基于此,Ceph提供了Librados原生对象基础库、Librbd块存储库、Librgw基于S3和Swift兼容的对象库和Libceph文件系统库。

OSD(ObjectStorage Device)负责存储数据,处理数据复制、数据恢复、数据再均衡以及通过心跳机制监测其它OSD状况并报告给Ceph Monitors。

Monitor负责监控集群状态,包括监控自身状态、集群OSD状态、Placement Group(存储组织和位置映射)状态、CRUSH状态(Controlled Replication Under Scalable Hashing,一种伪随机数据分布算法)。同时,Monitor还会记录它们的每一个历史状态改变版本信息,以确定集群该遵循哪个版本。

MDS负责文件系统的元数据存储和管理,也就是如前所说,块存储和对象存储服务是不需要这个模块的。MDS负责提供标准的POSIX文件访问接口。

搭建一台Ceph系统至少需要1个CephMonitor和2个Ceph OSD逻辑角色,而Ceph Metadata server仅仅是运行CephFS时存储文件元数据。但在物理部署上,这些逻辑角色可以运行在同一台物理机上的。Ceph存储数据默认是2副本拷贝,所以不管是提供Object、Block还是Filesystem服务,最小的Ceph系统需要2台OSD存储服务器。

Cehp的软件体系架构

(1)基础存储系统RADOS

RADOS(Reliable, Autonomic,Distributed Object Store),这一层本身就是一个完整的对象存储系统,包括Cehp的基础服务(MDS,OSD,Monitor),所有存储在Ceph系统中的世界杯体育投注平台数据事实上最终都是由这一层来存储的。而Ceph的高可靠、高可扩展、高性能、高自动化等等特性本质上也是由这一层所提供的。因此,理解RADOS是理解Ceph的基础与关键。

RADOS在物理形态上由大量的存储设备节点组成,每个节点拥有自己的硬件资源(CPU、内存、硬盘、网络),并运行着操作系统和文件系统。

(2)基础库librados

这一层的功能是对RADOS进行抽象和封装,并向上层提供不同API,以便直接基于RADOS进行原生对象或上层对象、块和文件应用开发。特别要注意的是,RADOS是一个对象存储系统,因此,基于librados实现的API也只是针对对象存储功能的。

RADOS所提供的原生librados API包括C和C++两种。Librados在部署上和基于其上开发的应用位于同一台机器。应用调用本机上的librados API,再由后者通过socket与RADOS集群中的节点通信并完成各种操作。

(3)高层存储应用接口

这一层包括了RADOS GW(RADOS Gateway)、 RBD(Reliable Block Device)和Ceph FS(Ceph File System)三个部分,其作用是在librados库的基础上提供抽象层次更高、更便于应用或客户端使用的上层接口。

RADOSGW是一个提供与AmazonS3和Swift兼容的RESTful API的gateway,以供相应的对象存储应用开发使用。RADOS GW提供的API抽象层次更高,但功能则不如librados强大。因此,开发者应针对自己的需求选择使用。

RBD则提供了一个标准的块设备接口,常用于在虚拟化的场景下为虚拟机创建volume。如前所述,Red Hat已经将RBD驱动集成在KVM/QEMU中,以提高虚拟机访问性能。

CephFS是一个POSIX兼容的分布式文件系统。目前还处在开发状态,因而Ceph官网并不推荐将其用于生产环境中。

(4)服务器客户端层

这一层就是不同场景下对于Ceph各个应用接口的各种应用方式,例如基于librados直接开发的对象存储应用,基于RADOS GW开发的对象存储应用,基于RBD实现的云硬盘等等。

CephClient是基于Fuse层(User SpacE)和VFS文件系统开发,兼容Posix接口标准。在Ceph存储系统中,Ceph Metadata Daemon 提供了元数据服务器,而Ceph ObjectStorage Daemon 提供了数据和元数据的实际存储。Ceph对DFS、Block和Object数据写入和读取,都需Client利用Crush算法(负责集群中的数据放置和检索的算法)完成存储位置计算和数据组装。

Ceph内部数据存储视图

在Ceph存储系统中,Cehp的基础服务架构主要包括了Object Storage Device(OSD),Monitor和MDS。提供了Librados原生对象基础库、Librbd块存储库、基于S3 和Swift兼容的Librgw对象库和Libceph文件系统库。搭建一台Ceph系统至少需要1个CephMonitor和2个Ceph OSD,一个Cluster可逻辑上划分为多个Pool,一个 Pool由若干个逻辑 PG( Placement Group)组成,Pool内的副本数量也是可以设置的。

Ceph底层是对象系统,所以一个文件会被切分为多个Object,每个Object会被映射到一个PG,每个PG 会映射到一组 OSD(Object Storage Device),其中第一个OSD 是主,其余的是备,OSD间通过心跳来相互监控存活状态。引入PG概念后,OSD只和PG相关,不但简化了OSD的数据存储,而且实现了Object到OSD的动态映射,OSD的添加和故障不影响Object的映射。

Ceph数据存储过程

在Ceph存储系统中,数据存储分三个映射过程,首先要将世界杯体育投注平台要操作的file,映射为RADOS能够处理的object。就是简单的按照object的size对file进行切分,相当于RAID中的条带化过程。接着把Object映射到PG,在file被映射为一个或多个object之后,就需要将每个object独立地映射到一个PG中去。第三次映射就是将作为object的逻辑组织单元的PG映射到数据的实际存储单元OSD。

文件存入时,首先把File切分为RADOS层面的Object,每个Object一般为2MB或4MB(大小可设置)。每个Object通过哈希算法映射到唯一的PG。每个PG通过Crush算法映射到实际存储单元OSD,PG和OSD间是多对多的映射关系。OSD在物理上可划分到多个故障域中,故障域可以跨机柜和服务器,通过策略配置使PG的不同副本位于不同的故障域中

Ceph数据分布算法

Ceph以私有Client方式对外提供服务,支持Linux世界杯体育投注平台态(Fuse)和内核态(VFS)方式,Clinet还实现数据切片,通过Crush算法定位对象位置,并进行数据的读写。但在测试中,通常在Ceph服务器端将Ceph配置成NFS服务的ExportFS,通过标准NFS接口导出目录。 CephFS 支持POSIX、HDFS、NFS、CIFS服务接口,其中NFS和CIFS通过外置网关实现(通过Clinet导出)。

在PG通过Crush算法映射到数据的实际存储单元OSD时,需求通过Crush Map、CrushRules和Crush算法配合才能完成。

ClusterMap用来记录全局系统状态记数据结构,由Crush Map和OSD Map两部分组成。 Crush Map包含当前磁盘、服务器、机架的层级结构,OSD Map包含当前所有Pool的状态和所有OSD的状态。

CrushRules就是数据映射的策略,决定了每个数据对象有多少个副本,这些副本如何存储。 Crush算法是一种伪随机算法,通过权重决定数据存放(如跨机房、机架感知等),通常采用基于容量的权重。Crush算法支持副本和EC两种数据冗余方式,还提供了四种不同类型的Bucket(Uniform、List、Tree、Straw),大多数情况下的都采用Straw。

OpenStack的兼容和支持

Ceph存储软件最常见的用途之一是作为OpenStack云存储后端,另一个用途是在 RADOS中存放和检索VM镜像(OpenStackGlance镜像服务)。目前以HP、Dell、Intel等为代表的企业IT领导厂商和以Mirantis、eNovance、UnitedStack为代表的OpenStack社区新兴厂商,都将Ceph作为重要的乃至于首选的开源存储解决方案。

Ceph事实上是目前OpenStack生态系统中呼声最高的开源存储解决方案。Ceph的对象存储(Object Storage)可以对接网盘等应用业务;块设备存储(Block Device Storage)可以对接(IaaS),例如OpenStack, CloudStack, Zstack, Eucalyptus以及KVM虚拟化等主流的IaaS云平台软件,文件系统(Ceph FS)尚不成熟。

目前已经与QEMU虚机化(硬件虚拟化)集成,通过相关命令调用管理Ceph块存储服务(RBD)。支持通过对OpenStacklibvirt和QEMU之间的配置,来实现对KVM、XEN、LXC、VirtualBOX等各种虚机镜像管理。

支持通过libvirt将Ceph块存储服务(RBD)加入到OpenStack,已经完成与Glance(VM镜像管理)、Cinder(块存储)集成。通过Glance存储虚机镜像到Ceph RBD或者通过Cinder启动虚机。

Ceph对象(Object Gateway)目前支持Amazon S3和OpenStack Swift,集成支持了OpenStack的keystone身份认证。

9000目前计划支持Openstack MalinaNAS接口,实现也Openstack进行对接。另外也支持AmazonS3和OpenStack Swift,集成支持了OpenStack的keystone身份认证。由于目前9000还不支持SAN存储,所以无法实现与OpenStack Glance镜像集成。

相关文章
最新文章
热点推荐