Ambry - 分布式 immutable、高可靠、易扩展的基于Blob的存储系统,针对非易变的、大小下至几KB上至GB的对象的存储进行了优化,带来了高吞吐和低延迟,并且允许Client端到存储层进行双向流式端到端访问。该系统支持多数据中心 并且提供廉价存储。
设计目标
高可用和水平扩展
高可用和最终一致性。写入时,写入数据被存储在本地数据中心,且异步同步到其他数据中心的副本中。这种写入策略,可以很好的应对网络分区引起的写不可用问题,因为写入到本地数据中心依然是可用的。当本地数据中心的一台机器不可用时,Ambry在同一本地数据中心选择持有副本的另外一台机器提供读和写。对于读,如果数据并不在本地数据中心,则代理请求,向持有该副本的数据中心发送读请求。所有这些都是可配置的。
运维简便
Ambry的关键设计目标之一就是管理和运维集群简便。Ambry完全是去中心化的,且提供了足够的工具以方便管理集群。极致追求当然是尽可能多的自动化,进而减少人为干预
快速恢复 (Low MTTR - low Mean time to repair)
这对于任何分布式系统都至关重要。机器宕机、磁盘损坏、服务崩溃以及GC停顿等等,针对分布式系统,司空见惯,但是最为关键的是花费的修复时间。这些异常情况一旦发生后,在修复的过程中,尽管Ambry依然可用,但是低MTTR是至关重要的。
Active-Active cross DC
对象可以被写入任意数据中心中的相同partition中,并且可以从其他数据中心中读取,这是Ambry与其他大多对象存储系统不同的地方,通过副本与代理机制实现跨数据中心方案
适用大对象和小对象存储
对于多媒体存储,适合多样化存储同样至关重要。多媒体数据中大