一、摘要:
最近在了解Ceph,总想拿它和HDFS来做个比较,一是做个阶段性总结,二是加深自己对两种分布式文件系统的理解。
二、回顾:
1. HDFS是鉴于Google FS(GFS)发展而来的,起步比较早,是大数据解决方案里常用的分布式文件系统。Hadoop解决方案中的HDFS如下:

HDFS架构如下:
Namenode 负责文件系统的metadata,datanode负责真正的 数据块。
2. Ceph 历史:请参考Ceph 入门系列(一):ceph历史
Ceph架构如下:
Ceph的设计初衷是成为一个分布式文件系统,但随着云计算的大量应用,最终变成支持三种形式的存储:块存储、对象存
储、文件系统

Ceph对象存储的原理

三、对比:
HDFS 和 Ceph 的相同点
|
| HDFS | Ceph |
| 分布式文件系统集群 | 是 | 是 |
| 结构模式 | Master/Slave | Client/Server |
| 是否可以作为Hadoop的后端分布式文件系统 | 是 | 是,librados提供出来了java接口。参考:http://docs.ceph.com/docs/master/cephfs/hadoop/ |
| 冗余副本抗灾性 | 是 | 是 |
| 可扩展性 | 是 | 是 |
| 高效性 | 高 | 很高 |
HDFS 和 Ceph 的不同点
|
| HDFS | Ceph |
| 源代码编程语言 | java | C++(ceph client端提供C++/C/Java/python等多种语言) |
| 文件系统类型 | 文件存储 | 对象存储(虽然client提供了块(RBD)/文件(CephFS)/对象存储(RGW),但Server端存储后端Filestore/Blutstore本质还是对象存储)。 |
| 是否基于本地文件系统 | HDFS基于本地文件系统之上的 | Ceph的存储后端FileStore是基于本地文件系统之上的;BlueStore不是基于本地文件系统之上的,是直接基于块设备的,用RocketDB管理元数据,BlueFS记录日志文件系统。 |
| 在分布式文件系统里的划分 | 文件被划分为块block(块大小默认配置是128M) | 文件被划分为对象object(对象大小默认配置是4M) |
| 绑定大佬(解决方案) | 大数据解决方案(Hadoop/Spark等) | 云计算解决方案(Openstack) 部署方式 |
结尾:
如果你想了解两个文件系统的其它更多差异,请留言。
本文对比了HDFS和Ceph两种分布式文件系统,详细分析了它们在编程语言、存储类型、可扩展性等方面的异同,揭示了两者在大数据和云计算解决方案中的不同角色。


2600

被折叠的 条评论
为什么被折叠?



