内部专家亲自揭秘!滴滴对象存储系统的演进之路
现在说刚才这个问题,Ceph本身的去中心化CRUSH算法确实好,自身可扩展性非常好。但带来问题就是集群扩容的时候,数据要迁移,会导致集群性能的抖动。那么我们解决的一个思路,就是想让它扩容的时候不迁移。思想其实还是跟我们之前解决SeaweedFS本身单集群性能的思想类似,就是在业务这一层多做一层调度。Ceph本身其实CRUSH规则的应用粒度是pool粒度的,每个pool可以指定不同的CRUSH对象映射规则。利用这一点,我们去增加一层基于pool的调度。具体的算法就是,如果现在急需扩容,加了一些集群的节点,我就新建一个pool,然后为pool去配一个CRUSH规则。 因为Ceph的对象放置规则是可以去描述的、可以指定的,那么我们就可以去写CRUSH规则,使得该pool的对象只分布在新增的节点上。在上传文件时进行pool调度,选择空间占用较少的pool,将文件写到选择的pool。由于已有的pool的集群节点不变,不会产生数据迁移。所以原来的数据都不会变,新来的数据只会到新的节点上面,主要是通过这样一个思想去解决迁移问题。 最后总结一下GIFT V3.5架构的特点,它具有: 1、良好的扩展性 ·接入层无状态,支持通过负载均衡扩展 ·元数据存储层通过分库分表方式支持横向扩展 ·数据存储层通过无中心的设计和分集群方式支持横向扩展 2、良好的服务可用性 ·接入层、元数据存储层、数据存储层都无单点失效问题 3、良好的数据可靠性 ·数据多副本存储,可指定副本放置规则 ·数据自恢复 以上主要就是我的一些分享,谢谢! (编辑:温州站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |