【IT168 编译】Ceph是什么?它是一个软件定义的开源分布式对象存储解决方案,面向PB级的海量数据存储平台。最初由Inktank于2012年开发,该公司在2014年被红帽收购。随着近几年大数据的发展,因为在性能、可靠性和可扩展性方面具有优秀表现,Ceph在分布式存储领域获得了大量关注。
作为一个企业级开源平台,Ceph可在标准经济型服务器和磁盘上提供统一的软件定义存储,将数据块、对象、文件的存储组合到一个平台,是一个可靠地、自动重均衡、自动恢复的分布式存储系统。
在Ceph中,数据以对象的方式被存储或处理,与通常通过扇区和扇区偏移量(通常称为块)向存储卷写入和读取数据的传统数据存储解决方案不同。在处理大规模数据时,将数据作为对象进行处理是一种不错的方法,而且也更容易管理。这种对象存储方式使Ceph能够实现简化的可扩展性,从而轻松满足用户的需求。这些对象被复制到整个节点集群中,使Ceph具有容错能力,并进一步减少单点故障。
去年,Ceph社区发布了对擦除编码池(Erasure Coded pool)的支持,能够用更少的空间实现存储,但要在性能方面会造成一些不好的影响。另外,Ceph的设计中也包括自我纠错和自我管理功能。
至于可访问性方面,Ceph向用户空间公开了三个接口。第一个是对象存储。这个对象存储可以通过RESTful接口访问,支持OpenStack Swift和Amazon Simple Storage Service (S3)。通过这种方法,Web应用程序可以将直接PUT、GET和DELETE方法发送到对象存储区,无需重写应用程序代码或担心对象所存储的位置。
第二个接口是一个稀疏分配的块设备。其目标是允许Ceph直接进入现有的计算环境,访问文件/块卷的应用程序和虚拟环境时不需要重新架构,但仍然能够利用Ceph提供的大多数特性、功能和弹性。Ceph基于对象的模型的优点是,块设备和文件系统接口能够很好地用于快照、克隆和更好的负载均衡支持。
第三个接口是文件系统。虽然不管怎么说文件系统都会提供大量的可访问性和功能块设备,但在Ceph实现中,内置的文件系统确实删除了块设备层(减少总堆叠层的数量)而且能够直接连接到对象存储后端。这确实简化了维护和调试。
Ceph架构图
Ceph完全由命令行管理。Red Hat通过一个名为Calamari的基于Web的用户管理界面重发布了Ceph,Calamari简化了一般的Ceph管理。它附带了一个服务器和客户端组件,客户端组件提供基于Web的仪表盘。它通过RESTful API直接与服务器通信。
虽然Ceph本身解决了行业内的许多问题,尤其是如何管理和缩放数据,但数据管理难题不止这些。Ceph被设计用来处理两件事:1、它通过跨节点集群分布数据(复制或擦除编码)来支持容错;2、它提供用户对相同数据的访问。上面和下面发生的事情完全取决于存储管理员。例如,在Ceph框架下,硬件是如何监控的?如何检测和纠正驱动器故障?在框架之上,如何导出块和文件系统卷?如何启用这些相同卷的高可用性?
这就是软件重发布方的价值所在。如Red Hat、SUSE、Canonical (Ubuntu)等供应商,会将所有这些部分结合在一起,并将它们统一在一个管理空间中。为了增加产品的可信度,数据存储行业的许多大公司都加入了Ceph的行列,包括SanDisk、SolidFire(现在是NetApp的一部分)等等,这些供应商都以某种形式使用了Ceph。
不难看到,Ceph很可能会有一个非常光明的未来。当然,像其他任何数据存储解决方案一样,它无法满足一切数据存储需求,但它既然已经出现且获得了大量的认可,说明它有很强的竞争力。