理解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:一个开源的分布式存储平台
目录
相关文章
|
9月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
在数字化转型中,企业亟需从海量数据中快速提取价值并转化为业务增长动力。5月15日19:00-21:00,阿里云三位技术专家将讲解Kafka与Flink的强强联合方案,帮助企业零门槛构建分布式实时分析平台。此组合广泛应用于实时风控、用户行为追踪等场景,具备高吞吐、弹性扩缩容及亚秒级响应优势。直播适合初学者、开发者和数据工程师,参与还有机会领取定制好礼!扫描海报二维码或点击链接预约直播:[https://developer.aliyun.com/live/255088](https://developer.aliyun.com/live/255088)
641 35
直播预告|Kafka+Flink双引擎实战:手把手带你搭建分布式实时分析平台!
|
9月前
|
消息中间件 运维 Kafka
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
直播预告|Kafka+Flink 双引擎实战:手把手带你搭建分布式实时分析平台!
287 11
|
5月前
|
消息中间件 监控 Java
Apache Kafka 分布式流处理平台技术详解与实践指南
本文档全面介绍 Apache Kafka 分布式流处理平台的核心概念、架构设计和实践应用。作为高吞吐量、低延迟的分布式消息系统,Kafka 已成为现代数据管道和流处理应用的事实标准。本文将深入探讨其生产者-消费者模型、主题分区机制、副本复制、流处理API等核心机制,帮助开发者构建可靠、可扩展的实时数据流处理系统。
549 4
|
10月前
|
SQL 监控 Go
新一代 Cron-Job分布式调度平台,v1.0.8版本发布,支持Go执行器SDK!
现代化的Cron-Job分布式任务调度平台,支持Go语言执行器SDK,多项核心优势优于其他调度平台。
235 8
|
8月前
|
运维 监控 Linux
WGCLOUD运维平台的分布式计划任务功能介绍
WGCLOUD是一款免费开源的运维监控平台,支持主机与服务器性能监控,具备实时告警和自愈功能。本文重点介绍其计划任务功能模块,可统一管理Linux和Windows主机的定时任务。相比手动配置crontab或Windows任务计划,WGCLOUD提供直观界面,通过添加cron表达式、执行指令或脚本并选择主机,即可轻松完成任务设置,大幅提升多主机任务管理效率。
|
11月前
|
数据采集 监控 数据可视化
11.7K Star!这个分布式爬虫管理平台让多语言协作如此简单!
分布式爬虫管理平台Crawlab,支持任何编程语言和框架的爬虫管理,提供可视化界面、任务调度、日志监控等企业级功能,让爬虫开发管理效率提升300%!
501 1
|
11月前
|
测试技术 调度
新一代 Cron-Job分布式调度平台,v1.0.5版本发布!
增加标签路由能力和多项功能优化!其中Tag标签路由的功能,测试环境多迭代场景下,可通过给任务配置Tag标签,实现任务路由到不同的执行器上。
153 0
|
6月前
|
存储 负载均衡 NoSQL
【赵渝强老师】Redis Cluster分布式集群
Redis Cluster是Redis的分布式存储解决方案,通过哈希槽(slot)实现数据分片,支持水平扩展,具备高可用性和负载均衡能力,适用于大规模数据场景。
473 2
|
6月前
|
存储 缓存 NoSQL
【📕分布式锁通关指南 12】源码剖析redisson如何利用Redis数据结构实现Semaphore和CountDownLatch
本文解析 Redisson 如何通过 Redis 实现分布式信号量(RSemaphore)与倒数闩(RCountDownLatch),利用 Lua 脚本与原子操作保障分布式环境下的同步控制,帮助开发者更好地理解其原理与应用。
424 6
|
7月前
|
存储 缓存 NoSQL
Redis核心数据结构与分布式锁实现详解
Redis 是高性能键值数据库,支持多种数据结构,如字符串、列表、集合、哈希、有序集合等,广泛用于缓存、消息队列和实时数据处理。本文详解其核心数据结构及分布式锁实现,帮助开发者提升系统性能与并发控制能力。