对于RAID,一直都知道个概念,但是对于细节没有去仔细的研究过。正好昨天Training的时候, 老师讲解了RAID的内容,所以顺便就整理一下。很多内容都是参考了ISMv2这本书。

RAID中用到的技术主要有

1. Striping

2. Mirroring

3. Parity

Striping(条带化): 就是将一块连续的数据分成很多小部分并把他们并行的存储到不同磁盘上去。其中涉及到几个术语 Strip,Stripe,Strip size,Stripe size。Strip就是在每个磁盘上预先定义好的一定数量的连续的Block。在RAID中所有磁盘上的Strip一起叫做一个Stripe。Strip size (Stripe depth)指的是一个strip中的最大数据大小即block number* block size。Stripe size指的就是stripe的大小即disk number * strip size。

Mirroring (镜像):就是将同一数据存储在两块不同的硬盘上,从而产生该数据的两个copy。当其中一块faulted,替换了新disk之后,Controller会自动将好的磁盘中的数据copy到新的磁盘中。

Parity(奇偶校验):主要是来为Striped RAID提供数据保护功能。利用位异或(XOR)的算法,将产生的校验值额外进行保存在磁盘上。可以是额外的一块磁盘,也可以分布在所有磁盘上。注意在ISM书中P56的例子是错误的。异或并非例子中的加减操作。关于Parity的计算可以参考:RAID 5 Parity. What is it, and how does it work? 。 写的很好理解。

对于这Striping,Mirroring,Parity有了基本的理解之后。下面就是RAID类型的介绍。RAID主要有这几种类型RAID 0, 1, 3, 5, 6, 10, 01。

RAID 0

直接采用Striping的技术,过程如下图所示。

读:对于每一个文件的读操作,RAID controller会去读取这个文件所有的strip,是一个并发的I/O,所以读性能比较好的。Disk数量越多,读性能越好。

写:和读操作类似,RAID Controller会分成多个strip写到各个disk中,所以写的性能比较好。

性能:读写性能比较好。适合高I/O的情景。

优点:I/O性能好。

缺点:没有数据保护。

RAID 1

采用mirroring技术,能够提够数据容错能力(fault tolerance)。这个也很好理解。过程如下图所示。

RAID 10

也叫做striped mirror。Disk 先做mirror,然后对这三个RAID1做striping。

RAID 01

是先将其中一半disk做RAID 0, 然后再做mirroring。

两者之间的性能和可用空间是一样的,在容错方面RAID 10 要优于RAID 01,在数据rebuild时候RAID 10 也是有优势的,所以RAID 01 很少见到。

1. 容错方面:由于RAID 10 是先做mirror.是多组RAID,可以允许最多一半的disk损害,前提是不在一个RAID1中。而RAID 01中,如果一块disk fault,那么这个RAID 0就fault。另外的一个RAID 0 无法容忍disk fault的情况,否则就是DL。

2. Rebuild过程: RAID 01 中,假设其中一块disk fault,如果要recovery。那么需要另外一个RAID 0 来做Mirror,将整个stripe的数据copy到对应的disk中,而对于RAID 10 来说,只需要去copy一个disk就可以了。

RAID 3

RAID 3 和RAID 5 类似,只是Parity 信息都写到一个disk中,由于每个写操作,会产生2 Reading+ 2 Writing的操作。并且其中的一个R ,W都是在这个Parity 的disk上,所以很容易造成这个disk的fault。实际中用的也不多。

RAID 5

RAID 5的Parity信息是写在各个disk中的,所以没有RAID 3 的单个disk瓶颈。

RAID 6

RAID 6中有两个Parity的信息,是写在各个disk中的,可以容忍两块disk的fault。具体算法牵扯到线性代数中的矩阵,大学的学的基本忘干净了。可以参考 这篇文章:RAID6算法解析

关于不同RAID Level的比较可以参考下图:

References:

1. RAID 5 Parity. What is it, and how does it work?

2. Data_striping

3. RAID-5 Volumes

4. 存储入门必读-存储基础知识

https://tonglol.wordpress.com/2014/01/16/%E5%AD%98%E5%82%A8%E5%85%A5%E9%97%A8-raid%E6%8A%80%E6%9C%AF/

存储入门 – RAID技术(大图解释)的更多相关文章

  1. 1 RAID技术入门

    序   RAID一页通整理所有RAID技术.原理并配合相应RAID图解,给所有存储新人提供一个迅速学习.理解RAID技术的网上资源库,本文将持续更新,欢迎大家补充及投稿.中国存储网一如既往为广大存储界 ...

  2. 大话存储 3 - 七种磁盘RAID技术

    RAID技术 Redundant Array of Independent Disks 由独立的磁盘组成的具有冗余特性的阵列. 有两个特性: 阵列:需要很多磁盘来组成 冗余:允许某块磁盘损坏之后,数据 ...

  3. 存储系列之 RAID技术原理简介

    引言:RAID技术是现代大规模存储的基础,“基础(技术)是拿来革命的”.我查raid相关资料时,查布尔运算,竟然一路查到“香农原理”,这不是有个视频中HW的任总提到的吗,多基础的东西,任总却毫不含糊, ...

  4. 【转】RAID 技术发展综述

    原文地址:https://blog.csdn.net/liuaigui/article/details/4581970   摘要 :现代企业信息化水平不断提高,数据已经取代计算成为了信息计算的中心.这 ...

  5. RAID技术介绍

    RAID技术介绍 简介 RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握.本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念. RAI ...

  6. 双机相关知识(原理、LVM、Raid技术)

    1        双机知识 1.1         预备知识 1.1.1     基本概念 双机热备:双机热备双机管理软件可以根据心跳自动检测环境运行情况,如果发现一个节点挂掉了,会自动切换到另外一个 ...

  7. [转]RAID技术介绍和总结

    以下内容转自伯乐在线:http://blog.jobbole.com/83808/ 原文出处: 涯余(@若东临于沧海) ---------------------------------------- ...

  8. RAID技术介绍和总结

    简介 RAID是一个我们经常能见到的名词.但却因为很少能在实际环境中体验,所以很难对其原理 能有很清楚的认识和掌握.本文将对RAID技术进行介绍和总结,以期能尽量阐明其概念. RAID全称为独立磁盘冗 ...

  9. 高速掌握sinox2014激动人心的ZFS和RAID技术

    Sinox2014引入激动人心的zfs系统以及其支持的RAID,让用户高速打造便宜的高可靠性文件server. ZFS文件系统的英文名称为Zettabyte File System,也叫动态文件系统( ...

随机推荐

  1. springboot常见应用属性

    # ===================================================================# COMMON SPRING BOOT PROPERTIES ...

  2. 转载:centos上yum安装apache+php+mysql等

    1. 更新系统内核到最新. [root@linuxfei ~]#yum -y update 系统更新后,如果yum安装时提示错误信息,请执行以下命令修复. [root@linuxfei ~]#rpm ...

  3. Java令牌生成器

    package Token; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; im ...

  4. 关于java.lang.OutOfMemoryError: Java heap space的错误分析

    今天无意间遇到这个错误:java.lang.OutOfMemoryError: Java heap space 问题出现原因:使用a标签实现快速下载[当然已经实现了,但想了想还是要归纳解决这类问题] ...

  5. IE9兼容性视图与IE9标准视图

    如果你使用的是IE9,那么按下F12键就会出现开发者工具,上面有两个下拉菜单:浏览器模式和文档模式.那么什么是浏览器模式?什么又是文档模式?二者有何区别? 浏览器模式用于切换IE针对该网页的默认文档模 ...

  6. Netsharp快速入门(之17) Netsharp基础功能(参照高级设置)

    5.2     参照高级设置 1. 以往来字段为例,打开平台工具-界面管理-列表管理,找到往来单位的资源节点,记下列表项目中的名称 2.记下往来单位部件工作区的id 3. 打开平台工具-界面管理-参照 ...

  7. hadoop学习日志

    Hadoop思想之源:Google 面对的数据和计算难题 ——大量的网页怎么存储 ——搜索算法 带给我们的关键技术和思想 ——GFS ——Map-Reduce ——Bigtable Hadoop创始人 ...

  8. hdu 1075 What Are You Talking About

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1075 题意:比较简单,易懂,这里不做说明. 解法:第一种方法:用map映射,耗时1000+ms:第二种 ...

  9. 【POJ】【2601】Simple calculations

    推公式/二分法 好题! 题解:http://blog.csdn.net/zck921031/article/details/7690288 这题明显是一个方程组……可以推公式推出来…… 然而这太繁琐了 ...

  10. 在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static

    在C++的类中,普通成员函数不能作为pthread_create的线程函数,如果要作为pthread_create中的线程函数,必须是static ! 在C语言中,我们使用pthread_create ...