ceph设计哲学与一些思考
ceph最终要的设计哲学是:一切都可以被扩展。无论是在上层组件设计,还是底层硬盘的设计上,ceph都要求每个组件都能做到水平横向扩展。当某些资源不够用时,都需要能添加硬件的方式来提升集群的可用资源、性能。 为了践行这个设计哲学,ceph在设计上遵循了2大理念: 一切皆对象 一切皆crush ceph的文件存储、对象存储、块存储的三种存储形态都建立在名为RADOS的对象存储层。上层存储形态中的文件都会被分割为一个个rados对象存储在对象中。ceph并不提供中心元数据服务器来索引所有对象,而是基于对象、存储池、存储桶的名称,配合crush算法来实现对象的定位。每个文件会分割成一个个rados对象,并且通过crush算法,分发到不同的osd上去,从而将上层IO流量均匀地分配到每个集群节点上去。 Crush算法 在介绍crush算法之前,还需要介绍两个概念: 1. PoolCeph对PG做的逻辑上的划分。每类存储都有其对应的默认存储池,比如RBD的默认存储池为rbd, RGW的对应存储池为default.rgw.buckets.data, CephFS的对应存储池为cephfs。也就是说,不...
