手机版
你好,游客 登录 注册
背景:
阅读新闻

Ceph —— 一个 PB 规模的 Linux 分布式文件系统

[日期:2014-05-07] 来源:Linux社区  作者:Linux [字体: ]

Linux 持续进军可伸缩计算领域,尤其是可扩展存储领域。 Linux 文件系统最近新增了一个引人注目的选择 —— Ceph,一个维持 POSIX 兼容的同时还集成了复制、容错的分布式文件系统。探讨 Ceph 的架构,可以知道它是如何提供容错性,及如何简化大量数据的管理的。

作为存储行业的架构师,我对文件系统情有独钟。这些系统是存储系统的用户接口,尽管它们都倾向于提供相似的特性集,它们还是会提供引人注目的不同点。Ceph 也如此,它提供了一些你会在文件系统中找到的最有趣的特性。

Ceph 始于加州大学圣克鲁兹分校的 Sage Weil 的博士学位课题。但从 2010 年 3 月下旬起,你可以 Linux 主流内核中找到 Ceph (从 2.6.34 内核起)。

尽管 Ceph 可能还未对生产环境做好准备,但它依然有助于评估目的。本文探讨了 Ceph 文件系统,及其成为可扩展分布式存储的诱人选择的独到之处。

--------------------------------------分割线 --------------------------------------

相关阅读:

Ceph环境配置文档 PDF  http://www.linuxidc.com/Linux/2013-05/85212.htm

CentOS 6.3上部署Ceph  http://www.linuxidc.com/Linux/2013-05/85213.htm

Ceph的安装过程 http://www.linuxidc.com/Linux/2013-05/85210.htm

HOWTO Install Ceph On FC12, FC上安装Ceph分布式文件系统 http://www.linuxidc.com/Linux/2013-05/85209.htm

Ceph 文件系统安装 http://www.linuxidc.com/Linux/2013-05/85208.htm

CentOS 6.2 64位上安装Ceph 0.47.2 http://www.linuxidc.com/Linux/2013-05/85206.htm

Ubuntu 12.04 Ceph分布式文件系统 http://www.linuxidc.com/Linux/2013-04/82588.htm

Fedora 14上安装 Ceph 0.24  http://www.linuxidc.com/Linux/2011-01/31580.htm

--------------------------------------分割线 --------------------------------------

Ceph 目标

开发文件系统是一种复杂的投入,但是如果能准确的解决问题的话,则拥有着不可估量的价值。Ceph 的目标可以简单的定义为:

  • 容易扩展到 PB 量级

  • 不同负荷下的高性能 (每秒输入输出操作数 [IPOS]、带宽)

  • 可靠性高

不幸的,这些目标彼此间矛盾(例如,可扩展性会减少或阻碍性能,或影响可靠性)。Ceph 开发了一些有趣的概念(例如动态元数据分区、数据分布、复制),本文会简单探讨。Ceph 的设计也集成了容错特性来防止单点故障,并假定,大规模(PB 级的存贮)的存储故障是一种常态,而非异常。最后,它的设计没有假定特定的工作负荷,而是包含了可变的分布式工作负荷的适应能力,从而提供最佳的性能。它以 POSIX 兼容为目标完成这些工作,允许它透明的部署于那些依赖于 POSIX 语义的现存应用(通过 Ceph 增强功能)。最后,Ceph 是开源分布式存储和 Linux 主流内核的一部分(2.6.34)。

Ceph 架构

现在,让我们先在上层探讨 Ceph 架构及其核心元素。之后深入到其它层次,来辨析 Ceph 的一些主要方面,从而进行更详细的分析。

Ceph 生态系统可以大致划分为四部分(见图1):客户端(数据使用者)、元数据服务器(缓冲及同步分布的元数据)、对象存储集群(以对象方式存储数据与元数据,实现其它主要职责),及集群监控(实现监控功能)。

图 1. Ceph 生态系统的概念架构

Conceptual flowchart showing the architecture of the Ceph ecosystem: clients, metadata server cluster, object storage cluster, and cluster monitors

如图一所示,客户端通过元数据服务器来执行元数据操作(以识别数据位置)。元数据服务器管理数据的位置及新数据的存储位置。注意,元数据存储在存储集群中(如 "Metadata I/O" 所示)。真正的文件 I/O 发生在客户端和对象存储集群之间。以这种方式,较高级的 POSIX 功能(如 open、close、rename)由元数据服务器管理,与此同时,POSIX 功能(如 read、write)直接由对象存储集群管理。

图2 提供了架构的另一视角图。一组服务器通过客户端接口访问 Ceph 生态系统,接口理解元数据服务器和对象级存储的关系。这种分布式存储系统可被看作为几层,包括存储设备的格式(扩展的和基于 B-树 的对象文件系统[ebofs],或者其它备选),为管理数据复制、故障检测、恢复、后续数据迁移(称之为可靠的自发分布式对象存储,RADOS)等所设计的至关重要的管理层。最后,监控用于鉴定组件故障,包括后续通知。

图2. Ceph 生态系统的简化分层视图

Block diagram showing a simplified layered view of the Ceph ecosystem, including the server, metadata servers, and object storage ddaemon

Ceph 组件

了解了 Ceph 的概念构图之后,你可以继续深入了解 Ceph 生态系统内实现的主要组件。Ceph 和传统文件系统一个关键的不同是,智能并非集中于文件系统本身,而是分布在生态系统各处。

图 3 展示了一个简单的 Ceph 生态系统。Ceph 客户端是 Ceph 文件系统的使用者。Ceph 元数据后台服务程序提供了元数据服务,而 Ceph 对象存储后台服务程序提供了实际的存储(数据及元数据)。最后, Ceph 监控提供了集群的管理。注意可以存在多个 Ceph 客户端,多个对象存储端点,许多元数据服务器(取决于文件系统的能力),和至少一对冗余监控。这样的话,这个文件系统是怎样实现分布的呢?

图 3. 简单的 Ceph 生态系统

Block diagram of a simple Ceph ecosystem

 更多详情见请继续阅读下一页的精彩内容: http://www.linuxidc.com/Linux/2014-05/101392p2.htm

linux
本文评论   查看全部评论 (0)
表情: 表情 姓名: 字数

       

评论声明
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款