设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客

OpenStack Swift遇到了Erasure Code

2013-7-26 14:59| 发布者: joejoe0332| 查看: 2555| 评论: 0|原作者: CSDN|来自: CSDN

摘要:   南加州大学和Facebook共同完成的Erasure Code演进——LRC,通过增加本地存储容量,提升了平均无故障时间,并减少恢复数据的开销。   作为云计算的核心系统之一,存储系统直接影响了整个系统的成本。七牛云存储 ...

  南加州大学和Facebook共同完成的Erasure Code演进——LRC,通过增加本地存储容量,提升了平均无故障时间,并减少恢复数据的开销。


  作为云计算的核心系统之一,存储系统直接影响了整个系统的成本。七牛云存储CEO许式伟 表示:


  我第一个云存储的讲座就已经讲了成本在云存储里面的重要性。实际上我更进一步说到要想在Erasure Code上更进一步只有成本转嫁,用p2p。


  金山云CTO杨钢在近期接受CSDN采访时表示:“金山云在创立初就采用了Erasure Code。”


  作为OpenStack的对象存储项目Swift,自然要对存储成本进行有效的控制。不过要在成本、数据持久性(durability)和性能之间找到平衡,并非那么容易。


  在官方发行版中的Swift是不具备Erasure Code功能的,但SwiftStack已经实现了Swift+Erasure Code。相信支持Erasure Code功能的Swift不久将会出现在官方发行版中。


  不过,Swift+Erasure Code并非完美,这种算法会大量增加网络负载。Joe Arnold透露,Swift会提供Erasure Code和传统3副本两种策略,供用户选择。而 LRC通过增加本地存储来降低数据恢复时对网络资源的消耗,也许这是Swift未来更需要的策略。以下为博客摘译:


  没有免费的午餐


  CAP原理告诉我们,在数据一致性(Consistency )、可用性(Availability )和分区容错性(Partition tolerance)三者中只能同时满足两者。Swift优先考虑可用性和分区容错性。


  即当某个分区发生故障,系统将容忍这一故障分区继续响应服务请求。因为Swift可以恢复故障分区的数据,集群的任何部分依然可以提供服务。


  可用性是分区带来的巨大的好处。此外,分区还带来许多其它优势:


  延迟和重建


  Swift的大部分客户都对并发性和延迟时间有着全天候的要求。在数据恢复过程中,读请求由一个存储卷提供支持。这意味着较少的网络流量和CPU负荷,最终用户感知到的等待时间非常短。


  失败处理对于数据恢复系统而言也非常简单。当一个磁盘损坏并被替换后,任何其它包含副本的磁盘都能将数据直接拷贝到被替换的磁盘。这种简单的拷贝方式只需很低的CPU处理能力,并且不需要与集群中的许多服务器并发连接。


  复制和区域(Regions)


  在目前的Swift副本模型中,集群内的所有数据被拷贝多次。在SwiftStack的单集群中,我们推荐采用3副本策略;在双集群和全球规模的分 布式系统中,推荐采用n*2策略,即每个集群都使用2副本。这种策略给予集群强壮的持久性和可用性,因为当分区发生故障时,分散在本地的副本会响应访问请 求,替代需通过网络重新组装的数据。


  在保持已有策略的优势的同时,为什么不使用Erasure Code来即减少数据密集程度呢?


  在Swift上使用Erasure Code


  我们将在产品中集成Erasure Code策略,并根据实际应用场景权衡并作出选择。



酷毙
1

雷人

鲜花

鸡蛋

漂亮

刚表态过的朋友 (1 人)

  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部