一、摘要:
最近在了解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) 部署方式 |
结尾:
如果你想了解两个文件系统的其它更多差异,请留言。