理解Ceph:一个开源的分布式存储平台

简介: 本文讲的是理解Ceph:一个开源的分布式存储平台,【编者的话】Ceph是一个符合POSIX、开源的分布式存储系统。最初由Sage Weill于2007年开发,Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。本文详细介绍了Ceph的历史和架构。
本文讲的是理解Ceph:一个开源的分布式存储平台 【编者的话】Ceph是一个符合POSIX、开源的分布式存储系统。最初由Sage Weill于2007年开发,Ceph的主要目标是设计成基于POSIX的没有单点故障的分布式文件系统,使数据能容错和无缝的复制。本文详细介绍了Ceph的历史和架构。

Ceph是一个软件分布式存储平台,可运行在商用硬件上。为了了解Ceph的运行效率,我们首先要弄清什么是商用硬件。商用电脑是由多个硬件供应商提供的硬件组装而成的,供应商们开发这些硬件是基于同一个开放标准的。与超级微型计算机相比,商品电脑的成本更低,并且它的开放标准能减少众多硬件提供商提供的硬件差异性。Ceph存储集群运行在商用机上,为了确保集群中数据的分布式存储和良好的可扩展性,Ceph运用了著名的 CRUSH (Controllled Replication Under Scalable Hashing)算法。Ceph开发的主要目标是提供高可扩展性和提供对象存储、块存储和文件系统的存储机制。Ceph提供一个单一的存储平台,可以处理所有类型的数据存储(包括对象、块和文件)。它的高扩展性可以达到PB级,它还拥有高容错性和高一致性数据冗余机制。

Ceph的历史

在2004年,Sage Weil开发了一个名叫Ceph的开源项目,并于2006年,基于开源协议开源了Ceph。Weil 曾经是“Inktank Storage”公司的创始人。Inktank Storage一直专注于Ceph的研发,直到它被红帽收购。2012年,Ceph的第一个稳定版本发布了。2014年10月,Ceph的开发团队发布了Ceph的第七个稳定版本Giant。为了让Ceph更加成熟与完美,这个项目还在继续开发中。

一个Ceph集群由两种类型的后台进程(Daemon)组成:
  • OSD Daemon
  • Ceph Monitor

Ceph OSD Daemon

Object Storage Device (OSD)是Ceph集群中的重要组成部分。OSD可以存储文件或数据的内容,它使用文件系统来存储数据。OSD Daemon主要负责管理集群中的所有磁盘。OSD Daemon还负责在本地文件系统存储数据,并为不同的客户软件或存取媒介通过网络提供数据访问。而且,OSD Daemon还负责添加和删除磁盘,磁盘分区,管理OSD、低层空间管理,提供安全措施和磁盘数据的可复制性。

Ceph Monitor

Ceph Monitor也是一种Ceph OSD Daemon,它主要负责管理全部集群。当你运行一个Ceph集群时,你就会需要Ceph Monitor每天帮你检查集群的健康情况和状态。管理一个集群需要每天做很多工作比如检测所有OSD的状态和文件系统或块数据的状态。你可以通过Ceph Monitor来管理负载均衡和数据响应的详细信息。为了更好的了解Ceph集群的工作原理,我们来看看它是如何处理三种类型数据存储的机制。

Ceph Object storage

当向Ceph写入数据时,Ceph通过内部机制自动跨集群标记和复制数据。Ceph存储对象数据时,不仅可以通过调用Ceph内部的API来实现,还可以通过亚马逊的S3服务或AWS REST提供的API来实现。Ceph块存储机制提供了RADOS(Reliable Autonomic Distributed Object Store)服务。RADOS服务存储机制中不可或缺的;RADOS服务通过使用节点中安装的软件管理工具能够扩展千级的硬件设备(通常被应用为“Nodes“)。

Ceph Block Storage

Ceph的块存储模式使用户可以像挂载一个小型块设备一样挂载Ceph。在块数据存储级别上,RADOS服务也保证块数据的可扩展性。Librados就是包含在这一级别上的一个python类库,你可以使用librados类库和存储服务器或节点进行通信。Librados是一个开源的应用,你可以调整和增强它。Librados通过“RADOS Block Device“即RBD与后台进行交互。RBD不仅继承了Librados的功能,还能够为集群建立快照和恢复数据。

Ceph File Storage

CephFS 是一个为Ceph集群设计的,且遵循POSIX标准的分布式文件系统。CephFS提供把数据目录和文件映射到存储在RADOS中对象的存储的服务。通过这种方式,CephFS和RADOS可以相互协作。在这里,RADOS动态均等地把数据分布到不同的节点上。这种文件系统支持无限的数据存储和更强的数据安全性。在文件存储集群系统中,Ceph因提供容量大和高可扩展性而闻名。请注意你可以同时把Ceph与btrfs或EXT4一起使用,但Red Hat推荐使用最新Linux内核(3.14版本或者更新版本)。

结论

Red Hat下的Ceph文件系统拥有性价比高、操作简单、集群数据高可靠性的特点。RedHat也 一直为Ceph投入了很多人力 ,这也确保了Bug可的跟进速度,以及新特性的引入。由于Ceph是开源的,所以你可以按照你的需求随意修改它。

原文链接:Understanding Ceph - An Open Source Distributed Storage Platform(翻译:占帅兵 校对:李颖杰)  

===========================

译者介绍

占帅兵,研究生在读(华南师范大学),主要研究方向云计算与大数据处理。曾在公司做过微信公众平台的开发和参与过开发智能综合公交枢纽科研项目。现对PaaS中Docker技术有浓厚的兴趣。

原文发布时间为:2015-04-14
本文作者:Doit05
本文来自云栖社区合作伙伴DockerOne,了解相关信息可以关注DockerOne。
原文标题:理解Ceph:一个开源的分布式存储平台
目录
相关文章
|
2月前
|
关系型数据库 分布式数据库 数据库
【PolarDB开源】PolarDB-X源码解读:分布式事务处理机制揭秘
【5月更文挑战第20天】PolarDB-X,PolarDB家族的一员,专注于大规模分布式事务处理,采用2PC协议保证ACID特性。源码解析揭示其通过预提交、一致性快照隔离和乐观锁优化事务性能,以及利用事务日志进行故障恢复。深入理解其事务处理机制对开发者掌握分布式数据库核心技术至关重要。随着开源社区的发展,更多优化方案将涌现,助力构建更强大的分布式数据库系统。
112 6
|
5天前
|
关系型数据库 分布式数据库 数据库
PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。
【7月更文挑战第3天】PolarDB,阿里云的开源分布式数据库,与微服务相结合,提供灵活扩展和高效管理解决方案。通过数据分片和水平扩展支持微服务弹性,保证高可用性,且兼容MySQL协议,简化集成。示例展示了如何使用Spring Boot配置PolarDB,实现服务动态扩展。PolarDB缓解了微服务数据库挑战,加速了开发部署,为云原生应用奠定基础。
23 3
|
5天前
|
关系型数据库 分布式数据库 PolarDB
**PolarDB开源指南:构建分布式数据库集群**踏上PolarDB开源之旅,了解如何从零开始搭建分布式集群
【7月更文挑战第3天】**PolarDB开源指南:构建分布式数据库集群**踏上PolarDB开源之旅,了解如何从零开始搭建分布式集群。采用存储计算分离架构,适用于大规模OLTP和OLAP。先准备硬件和软件环境,包括Linux、Docker和Git。然后,克隆源码,构建Docker镜像,部署控制节点和计算节点。使用PDCli验证集群状态,开始探索PolarDB的高性能与高可用性。在实践中深化学习,贡献于数据库技术创新。记得在安全环境下测试。
13 1
|
7天前
|
机器学习/深度学习 人工智能 自然语言处理
人工智能平台PAI产品使用合集之如何配置cluster系统自动生成分布式参数
阿里云人工智能平台PAI是一个功能强大、易于使用的AI开发平台,旨在降低AI开发门槛,加速创新,助力企业和开发者高效构建、部署和管理人工智能应用。其中包含了一系列相互协同的产品与服务,共同构成一个完整的人工智能开发与应用生态系统。以下是对PAI产品使用合集的概述,涵盖数据处理、模型开发、训练加速、模型部署及管理等多个环节。
|
6天前
|
机器学习/深度学习 存储 分布式计算
PAI机器学习平台如何进行分布式训练?
【7月更文挑战第1天】PAI机器学习平台如何进行分布式训练?
18 1
|
2月前
|
人工智能 监控 开发者
阿里云PAI发布DeepRec Extension,打造稳定高效的分布式训练,并宣布开源!
阿里云人工智能平台PAI正式发布自研的 DeepRec Extension(即 DeepRec 扩展),旨在以更低成本,更高效率进行稀疏模型的分布式训练。
|
19天前
|
存储 NoSQL Java
HBase是一个开源的、分布式的、面向列的NoSQL数据库系统
HBase是一个开源的、分布式的、面向列的NoSQL数据库系统
47 0
|
23天前
|
消息中间件 存储 Java
Kafka 详解:全面解析分布式流处理平台
Kafka 详解:全面解析分布式流处理平台
24 0
|
2月前
|
关系型数据库 分布式数据库 PolarDB
【PolarDB开源】PolarDB开源之旅:从零开始搭建分布式数据库集群
【5月更文挑战第20天】PolarDB,阿里云自研的云原生分布式数据库,因其高性能、高可用和易用性备受瞩目。本文指导如何搭建PolarDB集群:准备硬件和软件环境,从GitHub克隆源码,构建Docker镜像,部署控制节点和计算节点,最后验证集群状态。通过开源,PolarDB旨在推动数据库技术进步,邀请用户一同探索其潜力,共创未来。
91 4
|
2月前
|
存储 缓存 监控
Java一分钟之-Apache Ignite:分布式内存计算平台
【5月更文挑战第21天】Apache Ignite是一款开源的分布式内存计算平台,涉及内存数据网格、流处理和计算服务。本文关注其常见问题,如数据丢失、分区不均、内存管理和网络延迟。为保证数据一致性,建议使用适当的數據模式和备份策略,实现数据持久化。优化内存配置和监控网络可提升性能与稳定性。提供的Java代码示例展示了如何创建分区缓存并设置备份。正确配置和管理Ignite是构建高可用、高性能应用的关键,持续监控集群状态至关重要。
62 0