ceph分布式存储介绍.docx

  1. 1、本文档共18页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Ceph 分布式存储 1 Ceph 存储概述 Ceph 最初是一项关于存储系统的 PhD 研究项目,由 Sage Weil 在 University of California, Santa Cruz (UCSC 实施。 Ceph 是开源分布式存储,也是主线 Linux 内核()的一部分。 Ceph 架构 Ceph 生态系统可以大致划分为四部分(见图 1):客户端(数据用户),元数据服 务器(缓存和同步分布式元数据),一个对象存储集群(将数据和元数据作为对象存储, 执行其他关键职能),以及最后的集群监视器(执行监视功能)。 图 1 Ceph 生态系统 如图 1 所示,客户使用元数据服务器,执行元数据操作(来确定数据位置)。元数 据服务器管理数据位置,以及在何处存储新数据。值得注意的是,元数据存储在一个存储 集群(标为 “元数据 I/O ”)。实际的文件 I/O 发生在客户和对象存储集群之间。这样 一来,更高层次的 POSIX 功能(例如,打开、关闭、重命名)就由元数据服务器管理, 不过 POSIX 功能(例如读和写)则直接由对象存储集群管理。 另一个架构视图由图 2 提供。一系列服务器通过一个客户界面访问 Ceph 生态系 统,这就明白了元数据服务器和对象级存储器之间的关系。分布式存储系统可以在一些层 中查看,包括一个存储设备的格式( Extent and B-tree-based Object File System [EBOFS] 或者一个备选),还有一个设计用于管理数据复制,故障检测,恢复,以及随后 的数据迁移的覆盖管理层,叫做 Reliable Autonomic Distributed Object Storage (RADO)。最后,监视器用于识别组件故障,包括随后的通知 图 2 ceph 架构视图 Ceph 组件 了解了 Ceph 的概念架构之后,您可以挖掘到另一个层次,了解在 Ceph 中实现的主 要组件。 Ceph 和传统的文件系统之间的重要差异之一就是,它将智能都用在了生态环境 而不是文件系统本身。 图 3 显示了一个简单的 Ceph 生态系统。 Ceph Client 是 Ceph 文件系统的用户。 Ceph Metadata Daemon 提供了元数据服务器,而 Ceph Object Storage Daemon 提供了 实际存储(对数据和元数据两者)。最后, Ceph Monitor 提供了集群管理。要注意的 是, Ceph 客户,对象存储端点,元数据服务器(根据文件系统的容量)可以有许多,而 且至少有一对冗余的监视器。那么,这个文件系统是如何分布的呢? 图 3 简单的 Ceph 生态系统 Ceph 客户端 因为 Linux 显示文件系统的一个公共界面(通过虚拟文件系统交换机 [VFS] ), Ceph 的用户透视图就是透明的。管理员的透视图肯定是不同的,考虑到很多服务器会包 含存储系统这一潜在因素(要查看更多创建 Ceph 集群的信息,见 参考资料 部分)。从 用户的角度看,他们访问大容量的存储系统,却不知道下面聚合成一个大容量的存储池的 元数据服务器,监视器,还有独立的对象存储设备。用户只是简单地看到一个安装点,在 这点上可以执行标准文件 I/O 。 Ceph 文件系统 — 或者至少是客户端接口 — 在 Linux 内核中实现。值得注意的 是,在大多数文件系统中,所有的控制和智能在内核的文件系统源本身中执行。但是,在 Ceph 中,文件系统的智能分布在节点上,这简化了客户端接口,并为 Ceph 提供了大规 模(甚至动态)扩展能力。 Ceph 使用一个有趣的备选,而不是依赖分配列表(将磁盘上的块映射到指定文件的 元数据)。 Linux 透视图中的一个文件会分配到一个来自元数据服务器的 inode number (INO),对于文件这是一个唯一的标识符。然后文件被推入一些对象中(根据文件的大 小)。使用INO和object number (ONO,每个对象都分配到一个对象 ID ( OID)。在 OID 上使用一个简单的哈希,每个对象都被分配到一个放置组。放置组(标识为 PGID) 是一个对象的概念容器。最后,放置组到对象存储设备的映射是一个伪随机映射,使用一 个叫做 Con trolled Replication Un der Scalable Hashi ng ( CRUSH 的算法。这样一 来,放置组(以及副本)到存储设备的映射就不用依赖任何元数据,而是依赖一个伪随机 的映射函数。这种操作是理想的,因为它把存储的开销最小化,简化了分配和数据查询。 分配的最后组件是集群映射。集群映射 是设备的有效表示,显示了存储集群。有了 PGID 和集群映射,您就可以定位任何对象。 Ceph 元数据服务器 元

文档评论(0)

dianxin1241 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档