大话存储 3 - 七种磁盘RAID技术
RAID技术 Redundant Array of Independent Disks
由独立的磁盘组成的具有冗余特性的阵列。
有两个特性:
- 阵列:需要很多磁盘来组成
- 冗余:允许某块磁盘损坏之后,数据仍然可用
目前,单块磁盘容量只有几T,对于现代应用程序来说远远不够。为了提供容量更大的磁盘,发明了RAID技术。
1 七种RAID简介
RAID 0
- 4个磁盘组成一个阵列
- 4个扇区组成的块作为基本单元
- 不同磁盘的相同偏移处的块组合成Stripe
- 数据写入:数据被分成多块写入4个磁盘,而不是顺序写入一个磁盘,这就大大提高了速度
- 缺点:其中一块磁盘废掉,数据全部丢失。
RAID 1
- 一个数据盘,一个影子盘
- 每次写,写成功两块盘才算成功
- 没有提供读副本的功能,只有数据出现损坏,才会读第二副本
- 缺点:短板效应,速度取决于最慢的盘,容量取决于最小的盘。
RAID 2
- 两块数据盘,一块校验盘
- 校验算法使用汉明码,可以校验,并具有纠错一位的能力。
- 每个IO下发的数据被以位为单位平均打散在所有数据盘上。
- 缺点:校验盘数量太多,开销太大,成本昂贵。
RAID 3
- 使用逻辑运算“异或XOR”来进行计算校验位
- 将数据盘的每一位之间做XOR运算,然后将结果写入校验盘的对应位置。
- 每次IO的大小:4KB,并要求所有数据盘主轴同步,不然就会等待最慢的那个数据盘完成。
- 优点:校验效率较高,成本减少
- 缺点:不支持IO并发,无法纠正错误。对随机小块读写时,一个很小的IO会占用所有盘。
RAID 4
- 为了解决RAID 3中小块随机读写问题,增大了“条带深度”
- 如果一个IO过来,这个IO块小于条带深度,那么这次IO就被完全禁锢在一块磁盘上,只会用到一块磁盘。
- 缺点:校验盘是瓶颈。
RAID 5
- 目的是支持并发IO。
- 校验盘分割打散在数据盘上。
- 连续性能不如RAID 3。
- 随机读性能高。
- 写性能较差。写过程:新数据过来->读取待更新扇区的原数据->读取校验数据->计算新数据校验数据->将新数据和新校验数据写到磁盘。
RAID 6
- 目的是为了解决超过一块盘损坏就丢数据的问题。
- 增加了校验码,通过组成方程组求解多个未知数。
- 缺点:因为要多读出一个校验数据,写性能更差了。
2 关于几个与IO相关的重要概念
IO可以分为读写IO、大小块IO、连续/随机IO、顺序/并发IO、稳定/突发IO、持续/间断IO和实虚IO。
下面我们来分别了解一下这几种IO。
1 读/写IO
一次IO,就是发指令从磁盘读写某段序号连续的扇区内从。
指令一般是通知磁盘从某个扇区开始,并给出从这个初始扇区往后读取的连续扇区个数,同时给出动作是读还是写。
一个IO索要提取的扇区段一定是连续的。
2 大/小块IO
指控制器的指令中给出的连续读取扇区数目的多少。如果数目很大,比如128、64等,就是大块IO。如果很小,比如1、4、8等,就算小块IO。
3 连续/随机IO
连续和随机是指本次IO给出的初始扇区地址和上一次IO的结束扇区地址是不是完全连续或者像个不多的。
如果是,则本次IO应该算是一个连续IO。
如果相差太大,则算一次随机IO。
4 顺序/并发IO
磁盘控制器如果可以同时对一个RAID系统中的多块磁盘同时发送IO指令,并且这些最底层的IO数据包含了文件系统下发的一个IO的数据,则此时为顺序IO。
5 持续/间断IO
持续不断地发送或者接受IO请求数据流,这种情况为持续IO。
6 稳定/突发IO
某存储设备或者某程序在一段时间内接受或者发送的IOPS以及throughput保持响度稳定和恒定,则称为稳定IO。
如果单位时间的IOPS或者throughput突然猛增,则为突发IO。
7 实/虚IO
读写实际文件或者磁盘扇区数据的,称为实IO
对文件元数据操作的、或针对磁盘发送的非实体数据IO请求的控制性IO,称为虚IO。
参考资料
《大话存储2-存储系统架构与底层原理极限剖析》
大话存储 3 - 七种磁盘RAID技术的更多相关文章
- 七种RAID技术
想把好多硬盘组在一起使用的基本方式为:连接所有硬盘,先向第一个硬盘中写数据,满了之后,再向第二个硬盘上写数据,如此只是简单的连通了多个硬盘. 再此基础上发展了RAID技术:由独立磁盘组成的具有冗余特性 ...
- 存储系列之 RAID技术原理简介
引言:RAID技术是现代大规模存储的基础,“基础(技术)是拿来革命的”.我查raid相关资料时,查布尔运算,竟然一路查到“香农原理”,这不是有个视频中HW的任总提到的吗,多基础的东西,任总却毫不含糊, ...
- 存储入门 – RAID技术(大图解释)
对于RAID,一直都知道个概念,但是对于细节没有去仔细的研究过.正好昨天Training的时候, 老师讲解了RAID的内容,所以顺便就整理一下.很多内容都是参考了ISMv2这本书. RAID中用到的技 ...
- 大话存储4——RAID磁盘阵列
RAID是英文Redundant Array of Independent Disks(独立磁盘冗余阵列),简称磁盘阵列.下面将各个级别的RAID介绍如下. RAID0 条带化(Stripe)存储.理 ...
- 几种RAID技术比较
http://book.51cto.com/art/201310/412862.htm RAID(廉价磁盘冗余阵列)技术主要是为了改善磁盘的访问延迟,增强磁盘的可用性和容错能力.目前服务器级别的计算机 ...
- 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID10
RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征.基本原理.关键技术.各种等级和发展现状进 ...
- 【转】RAID 技术发展综述
原文地址:https://blog.csdn.net/liuaigui/article/details/4581970 摘要 :现代企业信息化水平不断提高,数据已经取代计算成为了信息计算的中心.这 ...
- 图文并茂 RAID 技术全解 – RAID0、RAID1、RAID5、RAID100
RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转载,写得相当不错,它对 RAID 技术的概念特征.基本原理.关键技术.各种等级和发展现状进 ...
- RAID技术全解图解-RAID0、RAID1、RAID5、RAID100【转】
图文并茂 RAID 技术全解 – RAID0.RAID1.RAID5.RAID100…… RAID 技术相信大家都有接触过,尤其是服务器运维人员,RAID 概念很多,有时候会概念混淆.这篇文章为网络转 ...
随机推荐
- 复刻smartbits的国产网络测试工具minismb-使用burst模式
复刻smartbits的国产网络性能测试工具minismb,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数 ...
- 快速搭建一个“微视”类短视频 App
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 本文由腾讯云视频发表于云+社区专栏 关注公众号"腾讯云视频",一键获取 技术干货 | 优惠活动 | 视频方案 " ...
- spring StopWatch用法
背景 有时我们在做开发的时候需要记录每个任务执行时间,或者记录一段代码执行时间,最简单的方法就是打印当前时间与执行完时间的差值,然后这样如果执行大量测试的话就很麻烦,并且不直观,如果想对执行的时间做进 ...
- 任意的组合,数组或数组,数组或list,list或list不用循环得出匹配的总数和需要的字段列
var res = list.Where(p=> list2.Any(x=>x.Id == p.Id));var count = res.Count();var ids = res.Sel ...
- 【手记】解决Resharper 2018.x起本机license server不能用的问题
ReSharper升级到2018版后,一直用的好好的本机license server(下称LS)不能用了,报The license server address is incorrect....在网上 ...
- SqlDataAdapter 对datagridview进行增删改(A)
这种方法主要是双击datagridview单元格,直接进行添加,修改,删除,在实际开发中并不太常用,另一种方法下一次在具体陈述. using System; using System.Collecti ...
- 深入理解 Java Object
Java中的Object对象为所有对象的直接或间接父对象,里面定义的几个方法容易被忽略却非常重要.以下来自Effective Java 对Object中几个关键方法的应用说明. public clas ...
- VirtualBox配置centos7静态ip(详解)
VirtualBox安装centos7配置静态ip地址可以本机访问,可以联网. 在开始之前先说一下,不知道为什么,我在网上百度的大多数是不能用的,或者只能主机访问,或者只能联网. 我的配置文件为ifc ...
- Java - HashMap 多线程安全解析
HashMap多线程并发问题分析 多线程put后可能导致get死循环 从前我们的Java代码因为一些原因使用了HashMap这个东西,但是当时的程序是单线程的,一切都没有问题.后来,我们的程序性能有问 ...
- UI-12组结对编程作业总结
UI-12组结对编程作业总结 源码Github地址 https://github.com/tilmto/TILMTO/tree/master/Arithmetic 作业摘要 本次结对编程作业分为以下两 ...