zoukankan      html  css  js  c++  java
  • 浅谈EC和多副本

    【摘要】 对于存储用户而言,存储系统的可靠性、性能、成本,是用户非常关注的几个方面。在传统的存储中,大多是采用RAID的方式,来保证数据的高可靠性;而在分布式存储系统中,多副本和EC(Erasure Code)是比较常见的数据保护方法。本文简单介绍多副本和EC概念、原理和优势对比等

    前言

    对于存储用户而言,存储系统的可靠性、性能、成本,是用户非常关注的几个方面。在传统的存储中,大多是采用RAID的方式,来保证数据的高可靠性;而在分布式存储系统中,多副本和EC(Erasure Code)是比较常见的数据保护方法。

    那么什么是多副本?又如何理解EC?他们之间的区别和优势又是什么呢?

    多副本

    简单说,多副本就是一份数据以副本的方式写到多个分布式系统中的存储节点中。这种多副本的数据保护方式,一来实现简单,而来可靠性搞。除非所有副本所在的存储节点都故障,才会影响业务;除此之外,可以从未故障的其他副本读取数据以保证业务。但是多副本的空间利用率偏低,以三副本为例,存储空间利用率未33%,这也增加了企业级用户的存储成本。

    EC

    EC是一种技术。是指将n份原始数据,增加m份数据,并能通过n+m份中的任意n份数据,还原为原始数据。如果把n+m份数据分布在存储系统的不同节点上,那么任意小于等于m个节点故障(m份数据失效),都可以通过其他剩余的数据还原出原始数据,从而达到不影响业务的目的。EC算法可以灵活配置,比如系统要满足支持2个节点同时故障,则m=2即可。从空间利用率上,EC是优于多副本的,以4+2为例,空间利用率为4/(4+2)=67%。这个利用率相当于三副本的2倍。而可靠性上,与三副本一样可以满足支持2个节点同时故障。

    对比分析

    在满足同等可靠性要求的前提下,从以下方面对EC和多副本进行对比分析,如下:

     

    空间利用率

    硬件成本

    多副本

    EC

     
    转载自:https://bbs.huaweicloud.com/blogs/115216
    作者:风中有朵犇犇云
  • 相关阅读:
    二叉树遍历问题、时间空间复杂度、淘汰策略算法、lru数据结构、动态规划贪心算法
    Django--csrf跨站请求伪造、Auth认证模块
    Django--中间件
    Django--Cookie和Session组件
    Django--form表单组件
    安装配置flask环境
    Django--模型层
    Django--路由层、视图层、模版层
    Eclipse SVN文件冲突及不能直接提交情况
    Eclipse开发Web常见异常
  • 原文地址:https://www.cnblogs.com/dier-gaohe/p/15401821.html
Copyright © 2011-2022 走看看