对象存储的技术选择[开源力量]

对象存储的技术特点:Key-value存储,超大的map;GEP/PUT/DELETE/....;10个9以上的可靠性;3个9以上的可用性;最终一致性;不支持查询和检索等功能;规模决定一切;数据可靠性:多副本保障、副本恢复速度、异地副本(That's a dream);数据一致性:最终一致性、版本同步;服务可用性:一架永远在天上飞行的飞机、实时在线,不能停服、在线升级,维护和保养。

对象存储与HDFS:

(1)hadoop分布式文件系统;面向海量存储;多副本保障;自动数据平衡和副本恢复。

(2)但HDFS不适合对象存储:HDFS不是为实时在线设计;Master Node存在单点;数据平衡带来大量网络流量;不利于小量数据存储。

对象存储和一致性哈希:

(1)一致性哈希:使用一致性哈希算法确定数据对象存储位置;无中心设计;存储节点数据存储自然平衡。

(2)一致性哈希问题:定容设计;系统扩展需要数据迁移;数据修复存在问题;一致性维护代价高。

(3)一致性哈希不适合大规模对象存储。

关于去中心化:

(1)中心化不是可靠可用问题的根源,单点是核心问题;

(2)中心化不是单点,它们是两个维度的问题;

(3)中心化同样可以做到高可用高可靠;

(4)元数据的复杂性是真正的问题;

(5)去中心化是将炸弹扔在自己的战壕里。

异常情况是正常的。

对象存储技术要点:

(1)基本原则:KISS;策略-机制分离;避免过早优化。

(2)保持简单:功能上;设计上;使用简单直白的代码和算法。

(3)关于性能:I/O密集型业务;瓶颈在I/O;做好并发;不要过早优化。

(4)RAID没有帮助:修复时间长;对服务产生严重影响;大幅影响性能;不能消除单点。

运维:

(1)三分研发,七分运维;

(2)对象存储依赖运维保持正常运行;

(3)设计和开发需要充分考虑运维的需求;

(4)人为错误是最主要的问题来源。

你可能感兴趣的:(hadoop,hdfs,对象存储)