Ceph分布式文件系统概述

Ceph 最初是一项关于存储系统的 PhD 研究项目,由 Sage Weil 在 University of California, Santa Cruz(UCSC)实施。但是到了 2010 年 3 月底,您可以在主线 Linux 内核(从 2.6.34 版开始)中找到 Ceph 的身影。虽然 Ceph 可能还不适用于生产环境,但它对测试目的还是非常有用的。本文探讨了 Ceph 文件系统及其独有的功能,这些功能让它成为可扩展分布式存储的最有吸引力的备选。
开发一个分布式文件系统需要多方努力,但是如果能准确地解决问题,它就是无价的。
Ceph 的目标
[list]
[]可轻松扩展到数 PB 容量
[
] 对多种工作负载的高性能(每秒输入/输出操作[IOPS]和带宽)
[*]高可靠性
[/list]

Ceph文件系统包含三个主要部分:
1、客户端:客户端要求能够提供类POSIX文件系统接口的能力(通俗来说,就是能与类POSIX文件系统进行交互操作的客户端);
2、对象存储设备(OSD)集群:存储所有数据和元数据;
3、元数据服务器(MDS)集群:管理命名空间(文件名称和目录),保证数据的安全性和一致性。
25471613_1343289764cJjs.png

之所以成Ceph提供的接口是类POSIX,是因为它能适当地扩展接口以及有选择性地放宽一致性语义限制(所谓一致性语义,就是多个用户同时存取一个文件时需要的策略,比如两个用户同时对某文件写入不同的数据,就会产生数据的不一致,一致性语义就是要解决这类问题——译者注),从而获得更好的应用体验、提升系统性能。
Ceph主要的目标还是可扩展性(可存储几百个PB的数据)、高性能和高可靠性。可扩展性需从多方面考虑:整体存储容量;系统的吞吐量;各个客户端、目录和文件的性能。我们的工作负载是:几千台主机同一时刻对同一个文件进行几百万次并发读写,或者同时在某个目录下创建文件。这种只有在超级计算机集群进行科学运算时才出现的场景,将会在未来普遍出现。更重要的是我们认识到分布式文件系统的负载能力是动态的:随着时间的推移,实际应用中数据和元数据的组织结构的不断改进,分布式文件系统的负载能力将会有很大的提高。Ceph通过以下三个基本的设计特性,来保证高性能、高可靠性和高可用性的同时,还能保证可扩展性:将数据和元数据分开存储,动态分布元数据管理,以及可靠的自动(reliable autonomic)分布式对象存储。