首页 > 网络 > 云计算 >

Ceph学习(1)——Ceph简介

2017-04-06

Ceph学习(1)——Ceph简介,随着大数据时代的到来,对存储设施的性能以及安全等要求也越来越高。

Ceph学习(1)——Ceph简介,随着大数据时代的到来,对存储设施的性能以及安全等要求也越来越高。

软件体系架构也从曾经的SaaS(软件即服务)到PaaS(平台即服务)再到IaaS(基础设施即服务)的发展。

Ceph就是这么一个IaaS的云存储服务的一个开源解决方案。它是统一存储系统

接下来介绍一下存储(海量数据存储):

网络存储技术(Network Storsge Technology)主要分为三种技术:直连式存储(Direct Attached Storage、DAS)、网络连接存储(Network Attached Storage、NAS)、存储区域网络(Storage Area Network、SAN)。

DAS:服务器与存储系统直接连接 当链接外置系统的服务器不多 且服务器地理分散 未来对系统扩展要求不高 存储容量也不大 可才用DAS系统。根据DAS系统的接口,可以采用光纤通道技术、SAS接口或SCSI接口卡。根据对存储性能的要求,可采用光纤/SAS高性能硬盘、大容量SATA硬盘或磁盘阵列。

NAS:通过网络连接的存储。一般才用以太网连接。NAS部署简单。可用于混合各种任何系统局域网内,但文件共享访问占用网络带宽。采用高性能光纤接口硬盘或大容量SATA硬盘,还可采用磁盘阵列。NAS可扩展1TB甚至上千TB。

SAN:通过专用网络连接的存储,多台服务器通过存储网络访问SAN系统,实现存储整合数据、集中管理、可扩展性高。SAN几乎可以无限扩展,可扩展1TB甚至PB以上

随着信息化程度的提升,这三种方式共同迅速发展、尤其是NAS和SAN这俩优势互补

云存储技术:云存储系统主要由四部分组成:存储层、基础管理层(核心)、应用接口层、访问层。

传统存储结构通常采用三级存储结构,由高速存储(Cache、SRAM组成)、主存储器(DRAM)和辅助存储器(DISK组成)。在整个存储的多级层次中,由上至下分为三级,容量逐级增加,速度逐渐降低,单位成本逐渐减少。而整个系统其实又可以看成两个层次:分别是Cache-主存层次和主存辅存层次。

其中块(Block)是相邻两级间数据交换的单位

说了这么多题外话算是为这个简介做个铺垫,接下来是正题了:

Ceph是一种统一的存储系统,又是分布式存储系统。它的特点或者说是优点是:高性能、高可靠性、高扩展性。Ceph存储集群的部署都始于部署一个一个Ceph节点、网络和存储集群。Ceph存储集群至少需要一个Ceph Monitor和两个OSD守护进程,所以最小也是个三节点集群。而运行Ceph文件系统客户端(CephFS)必须要有元数据服务器(mds、metadata server)。

其中OSD的意思是对象存储,英文名叫Object-based Storage Device。上文介绍过SAN和NAS。这两种是我们比较熟悉的两种主流网络存储结构,而对象存储是我们比较熟悉的一种新的网络存储结构,基于对象存储技术的设备就是对象存储设备。对象存储兼具SAN高速直接访问磁盘特点及NAS分布式共享特点。

对象存储结构的核心是将数据通路(数据的读或写)和控制通路(元数据)分离,并基于OSD构建存储系统,每个OSD具有一定的智能,能够自动管理其上的数据分布。组件图如下所示:

\

Ceph的底层是RADOS(分布式对象存储:A Reliable Autonomous Distributed Object Storage)它由两个组件组成:OSD提供存储资源、Monitor维护整个Ceph集群的全局状态。

接下来再介绍下映射,整个存储过程也是一层一层的进行的,而这一过程又是通过映射进行存储设施的底层操作。

映射:Ceph的命名空间是(Pool,Object)每个Object都会映射到一组OSD中。

接下来的过程:(Pool,Object)→(Pool,PG)→OSD set→Disk

具体的过程是这样的:在Ceph中,Object先映射到PG,再由PG映射到OSD set,每个Pool有多个PG,每个Object通过计算hash值并做取模运算得到它所对应的PG。PG再映射到一组OSD,第一个OSD是Primary,剩下的都是Replicas。

其中用到了以下几种算法:

  • CRUSH算法:一种伪随机算法。
  • OSD MAP:包含当前所有Pool的状态和所有OSD的状态。
  • CRUSH MAP:包含当前磁盘、服务器、机架的层级结构。
  • CRUSH Rules:数据映射的策略。这些策略可以灵活的设置object存放的区域。比如可以指定 pool1中所有objecst放置在机架1上,所有objects的第1个副本放置在机架1上的服务器A上,第2个副本分布在机架1上的服务器B上。 pool2中所有的object分布在机架2、3、4上,所有Object的第1个副本分布在机架2的服务器上,第2个副本分布在机架3的服 器上,第3个副本分布在机架4的服务器上。

    Client从Monitors中得到CRUSHMAP、OSD MAP、CRUSH Ruleset,然后使用CRUSH算法计算出Object所在的OSDset。所以Ceph不需要Name服务器,Client直接和OSD进行通信。

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