新型可扩展的数据保护方式——擦除编码

一、概述

  在之前存储系统中,一般都采用RAID技术来对数据进行保护,一旦阵列中某块硬盘损坏,可通过RAID技术所形成的镜像来对丢失数据进行恢复。但随着海量数据问题的出现,RAID越来越难发挥其作用。如采用2TB的硬盘作为存储介质,某块硬盘故障,使用镜像对其进行恢复,大概需要4个小时,而这还是将恢复作为最高优先级的情况下才能实现的数据恢复时间。但在实际情况中是不可能出现的,一般都是将RAID作为较低优先级的,在计算资源闲置的情况下在后台进行的,那么在这种情况下,RAID重建的时间就会不断延长,数据恢复长达1-2周也就不算奇怪了。如果在数据重建过程之中,又发生硬盘故障的话,那么也就意味着数据将永久丢失。因为RAID 5最多能允许阵列中一块硬盘损坏,RAID 6允许两块硬盘同时故障,但在海量数据时代,多块硬盘同时损坏并非不可能,企业重要资源之一的数据该如何保证其安全呢?

  英特尔在IDF大会期间公布了新的可扩展的数据保护方式——擦除编码。其工作原理是将存储系统接收到的大块数据进行切割并编码,之后再对切割后的数据进行再次切割并编码,重复这一操作直到数据切割到满意的数据块大小为止,这样使得数据块分散成多个数据块,再进行冗余校验,将不重复的数据块和编码写入存储系统之中。其与传统的RAID数据保护如下图所示:

      

  擦除编码将数据保护架构由RAID 5/6扩展至RAID k,k等于在不造成数据丢失的情况下,可以介绍的故障数量。对于RAID 5来说,k=1;对于RAID 6来说,k=2;对于擦除编码来说,k=n,如在16块硬盘组成的阵列之中,采用擦除编码机制的话,即使6块硬盘同时故障,其也可对丢失数据进行恢复.

  由此可以看出,擦除编码目前主要针对的大数据块,英特尔也将其应用在其所推荐的大型对象存储系统之中,经过实际测试,其结果显示,与传统的RAID相比,擦除编码在各个方面都具有无可比拟的优势,具体结果如下图所示:

    

    擦除编码的应用还不仅与此,在关于擦除编码的技术课程之中,相关的技术工程师还介绍了擦除编码灵活应用于多个数据中心的情况,具体如下图所示:

      

  通常而言,传统的擦除编码技术对性能的影响,特别是IOPS和延迟的影响还是比较大的,因此目前适用的场景主要局限在归档、云存储等冷数据方面;

时间: 2024-12-15 03:19:53

新型可扩展的数据保护方式——擦除编码的相关文章

mysqldump指定编码导出数据后转变编码

第一步,导出旧库mysqldump --default-character-set latin1 -uroot -pXXX --database db >     /tmp/old.sql第二步,转换编码iconv -t utf-8 -f gb2312 -c /tmp/old.sql > /tmp/new.sql第三步,导入新库修改new.sql,增加一条sql语句: "SET NAMES utf8;",保存.mysql -hlocalhost -uroot db <

WinForm TextBox 扩展方法数据验证

本文转载:http://www.cnblogs.com/gis-crazy/archive/2013/03/17/2964132.html 查看公司项目代码时,存在这样一个问题:winform界面上有很多信息填写,提交后台服务器更新,但数据的合法验证及值的转换却不太敢恭维,一堆的if判断和转换,便想着是否能扩展个方法出来,琢磨出个思路,记录下来与大家共同探讨,有不对的地方还请大家指正. 设计思路: 1. 由于大部分从TextBox控件中获取数据值,可以扩展个泛型方法出来,直接根据转换后的数据类型

WinForm TextBox自定义扩展方法数据验证

本文转载:http://www.cnblogs.com/gis-crazy/archive/2013/03/17/2964132.html 查看公司项目代码时,存在这样一个问题:winform界面上有很多信息填写,提交后台服务器更新,但数据的合法验证及值的转换却不太敢恭维,一堆的if判断和转换,便想着是否能扩展个方法出来,琢磨出个思路,记录下来与大家共同探讨,有不对的地方还请大家指正. 设计思路: 1. 由于大部分从TextBox控件中获取数据值,可以扩展个泛型方法出来,直接根据转换后的数据类型

Essential BI PivotGrid可扩展的数据透视表控件介绍及下载

Essential BI PivotGrid是一款强大的可扩展的数据透视表,可用于Silverlight和WPF平台下,和Excel里的数据透视表功能十分相似,用于从大量商业数据中提取重要数据,并对数据进行统计和分组,开发人员可以使用该控件对商业数据进行组织和系统分析.该产品包含在Business Intelligence Edition里. 具体功能: 支持条件格式化,对某些符合条件的单元格进行特别显示 支持导出数据到Excel和Word文档 支持多种数据过滤功能 支持单元格选择,多个单元格选

C++使用libcurl做HttpClient(业务观摩,用C++封装过程式代码,post和get的数据,最好url编码,否则+会变成空格)good

当使用C++做HTTP客户端时,目前通用的做法就是使用libcurl.其官方网站的地址是http://curl.haxx.se/,该网站主要提供了Curl和libcurl.Curl是命令行工具,用于完成FTP, FTPS, HTTP, HTTPS, GOPHER, TELNET, DICT, FILE 以及 LDAP的命令的请求及接收回馈.libcurl提供给开发者,用于使用C++跨平台的开发各种网络协议的请求及响应.里面的文档非常齐全,不过都是英文的. 本文提供最简单的demo使用libcur

propsData Option 全局扩展的数据传递

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>propsData Option 全局扩展的数据传递</title> <meta name="flexible" content="initial-dpr=2,maximum-dpr=3" /> <m

python 浅谈小数据池和编码

?. ?数据池 在说?数据池之前. 我们先看?个概念. 什么是代码块: 根据提示我们从官??档找到了这样的说法: A Python program is constructed from code blocks. A block is a piece of Python program text that is executed as a unit. The following are blocks: a module, a function body, and a class definiti

Python数据对象的编码和解码,json和pickle模块,base64模块的简单使用

1.面向对象 对象:生活中的客观事物 类:对事物的抽象,在代码中实现class类型 类属性:这类事物具有的特点或者属性 类方法:这类事物具有的行为,可以实现的方法 实例:使用之前对类的实例化之后的结果 实例属性:对象具有的一些描述对象或者形容对象的属性,对象具体具有的特性 实例方法:对象具有的方法,行为动作 1.查看对象所拥有的方法 dir(对象) 例如 print(dir(列表))1.类中的实例(类)属性和方法命名风格 属性:名词 方法:动词 2.Python中万物皆对象 _对象名,对象私有化

【ASP.NET Web API教程】5.2 发送HTML表单数据:URL编码的表单数据

注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内容. 5.2 Sending HTML Form Data 5.2 发送HTML表单数据 本文引自:http://www.asp.net/web-api/overview/working-with-http/sending-html-form-data,-part-1 By Mike Wasson|June 15, 2012 作者:Mike Wasson | 日期:2012-6-15 Part