对于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. urllib3 PoolManager

    A pool manager is an abstraction for a collection of ConnectionPools.If you need to make requests to ...

  2. vs2013中把解决方案上传到SVN服务器

    在VS2013中直接上传代码到SVN服务器,在这之前,必须是你的电脑已经安装了TortoiseSVN. 其次,VS2013必须安装AnkhSVN插件.然后才可以向我下面所述一样使用TortoiseSV ...

  3. svn版本控制器在vs2013中的使用

      下面记录常用的几种用法:   a) SVN检出 将SVN服务端所保存的数据下载到个人工作平台. 组长上传初始项目后,各组员可以到服务器上检出项目 1. 打开Visual Studio 2010-& ...

  4. 使用 NIO.2 遍历目录下所有的Java文件

    package wellGrounded; import java.io.IOException; import java.nio.file.FileVisitResult; import java. ...

  5. 高效SQL语句(SQL Server)

    以下的SQL语句以Northwind为例 1.不要再where子句中"="的左侧使用函数和表达式,因为系统无法应用函数或表达式中的索引 SELECT * FROM Customer ...

  6. 【CentOS】搭建git服务器

    参考资料: https://github.com/jackliu2013/recipes/blob/master/doc/linux/CentOS_6.4_git服务器搭建.md http://blo ...

  7. 【BZOJ】【3207】花神的嘲讽计划 I

    字符串Hash+可持久化线段树 好神奇的转化…… 蒟蒻一开始还去想AC自动机去了……然而由于a[i]的范围是小于等于n,怎么也想不出一个时间复杂度合理的方法 膜拜了题解0.0原来是字符串Hash! 首 ...

  8. JAVA Hashmap不能用基本的数据类型

    今天开始学习Java... 转载:http://moto0421.iteye.com/blog/1143777 今天试了一下HahsMap, 采用如下形似定义 (这个下面是用了csdn的一位同仁的文章 ...

  9. 一个perfect 的解决 阴影拉伸的方法 shadow map strech

    因为在场景中做了,有的物体产生阴影比如人物,有的物体不产生阴影比如地面,这样在地面凹下去的地方,悬崖,池塘边,就会有阴影的拉伸. 实际上, 没办法上传图片.... L是光源 A 点(人物身上)产生阴影 ...

  10. CSS 类名的单词连字符:下划线还是连接符?

    本文的部分内容整理自我对此问题的解答: 命名 CSS 的类或 ID 时单词间如何连接? - 知乎 问题 CSS 类或 ID 命名时单词间连接通常有这几种写法: 驼峰式: solutionTitle.s ...