RAID详解

测试机centos6.7 x86_64

一、RAID是什么

    简单描述:RAID(Redundant Array of indenpensive Disk)独立磁盘冗余阵列:磁盘阵列是把多个磁盘组成一个阵列,当作单一磁盘使用,它将数据以分段或条带(striping)的方式储存在不同的磁盘中,存取数据时,阵列中的相关磁盘一起动作,大幅减低数据的存取时间,同时有更佳的空间利用率。磁盘阵列利用不同的技术,称为RAID level,不同的level针对不同的系统及应用,以解决数据安全的问题。简单来说,RAID把多个磁盘组成一个逻辑扇区,因此,操作系统只会把他当作一个硬盘。


二、RAID优缺点

    优点:

    1、提高传输速率。RAID通过多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以单个磁盘驱动器的几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决两者之间的矛盾。RAID最后成功了。

    2、通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。

    缺点:

    1、做不同的RAID,有RAID模式磁盘利用率低,价格昂贵。

    2、RAID0没有冗余功能,如果有一个磁盘(物理)损坏,则所有的数据都无法使用。

    3、RAID1磁盘利用率只有50%,是所有RAID级别中最低的。

    4、RAID5可以理解为是RAID0和RAID1的折中方案。RAID5可以为系统提供数据安全保障,但保障程度要比RAID1低而磁盘空间利用率要比RAID1高。

三、RAID样式

    外接式磁盘阵列柜:最常被使用大型服务器上,具有热抽换(Hot Swap)的特性,不过价格都很贵。

    内接式磁盘阵列卡:因为价格便宜,但需要较高的安装技术,适合技术人员操作。

    利用软件来仿真:由于会拖累机器的速度,不适合大数据流量的服务器。

四、RAID分类

    1、RAID 0 被称为条带盘 — 需要2块以上的磁盘,成本低,可以提高整个磁盘的性能和吞吐量。我们通过名字来想象:RAID 0 通过把文件切割之后把数据像一条带子一样平铺在每个磁盘之上。由于文件的数据分布在每个磁盘上,所以其中一个磁盘出现问题的时候,文件就会由于缺失了某部分而损坏。并且RAID 0 不提供冗余所以不需要额外使用空间来存储校验码,所以磁盘空间都可以用作存储文件。并且磁盘的实际容量体现为木桶理论(最小的水平决定整体的水平)。假如有4个磁盘,分别为320G,500G,1T,2T。则实际容量为(最小容量的磁盘乘以硬盘数量),即320G*4。读写性能由于磁头数电费增加,所以读写的时候磁头之间可以实现分工合作。所以读写性能提升。


    2、RAID 1 磁盘镜像盘 — 数据在写入一块磁盘的同时,会在另外一块闲置的磁盘上生成镜像文件mirroring(镜像卷),至少需要两块磁盘,RAID大小等于两个RAID分区中最小的容量(最好两个磁盘的容量一样),可增加热备盘提供一定的备份能力;数据有冗余,在存储时同时写入两块磁盘,实现了数据备份;但相对降低了写入性能,但是读取数据时可以并发,几乎类似于raid-0的读取效率;

blob.png

    3、RAID 3 奇偶校验码的并行传送 — 只能查错不能纠错;

    4、RAID 4 带奇偶校验码的独立磁盘结构 — 对数据的访问是按数据块进行的,也就是按磁盘进行的,RAID 3 是一次一横条,而RAID 4 一次一竖条;

    5、RAID 5 分布式奇偶校验的独立磁盘结构:需要至少三块或以上磁盘,可以提供热备盘实现故障的恢复;采用奇偶校验,可靠性强,且只有同时损坏两块磁盘时数据才会完全损坏,至损坏一块硬盘时,系统会根据存储的奇偶校验位重建数据,临时提供服务;此时如果有热备盘,系统还会自动在热备盘上重建故障磁盘上的数据;

    6、RAID 6 带有两种分布式存储的奇偶校验码的独立磁盘结构,在RAID 5 的基础上进行改进,通过加入增加校验块,而有更好的容错能力。由于整体的磁盘数量增加,所以读取速率提升;但是由于写入数据时不仅要写入文件数据,还要计算并写入两个校验块,所以写入速率性能下降;并且由于增加了一位校验块,RAID控制器要求更加复杂,所以在数据安全和磁盘性能中进行取舍,RAID 5 更受欢迎。实际的磁盘空间为:最小的磁盘容量*(磁盘数量-2)

    7、RAID 7 优化的高速数据传送磁盘结构 — 高速缓冲存储器:这是一种新的RAID标准,其本身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源,RAID 7 可以看作是一种存储计算机(Strage Computer),它与其他RAID标准有明显区别。

    8、RAID 1+0 高可靠性于高效磁盘结构

blob.png

    9、RAID 0+1 高效率与高性能磁盘结构、

blob.png

RAID 1+0 与 RAID 0+1 的区别:RAID 1+0 是先镜像在分区数据,再将所有硬盘分为两组,视为RAID 0 的最低组合,然后将这两组各自视为RAID 1 运作。RAID 0+1 则是跟RAID 1+0 的程序相反,是先分区再将数据镜射到两组磁盘。它将所有磁盘分为两组,变成RAID 1 的最低组合,而将两组磁盘各自视为RAID 0 运作。性能上,RAID 0+1比RAID 1+0 有着更快的读写速度。可靠性上,当RAID 1+0 有一个磁盘受损,其余三个硬盘会继续运作。RAID 0+1 只要有一个硬盘受损,同组RAID 0的另一只磁盘亦会停止运作,只剩下两个硬盘运作,可靠性较低。因此,RAID 10 远较RAID 01常用,零售主板绝大部分支持RAID 0/1/5/10,但不支持RAID 01。


五、常见RAID总结


RAID Level 性能提升 冗余能力 空间利用率 磁盘数量(块)
RAID 0 读、写提升 100% 至少2
RAID 1 读性能提升,写性能下降 50% 至少2
RAID 5 读、写提升 (n-1)/n% 至少3
RAID 1+0 读、写提升 50% 至少4
RAID 0+1 读、写提升 50% 至少4
RAID 5+0 读、写提升 (n-2)/n% 至少6

六、mdadm工具介绍

    简介:mdadm (multiple devices admin)是linux下标准的软raid管理工具,是一个模式化工具(在不同的模式下);程序工作再内存用户程序区,为用户提供RAID接口来操作内核的模块,实现各种功能。

目前支持的模式
LINEAR(线性模式)、RAID0(striping条带模式)、RAID1(mirroring)、 RAID-4、RAID-5、 RAID-6、 RAID-10、 MULTIPATH和FAULTY

LINEAR:线性模式,该模式不是raid的标准模式,其主要作用是可以实现将几块小的硬盘组合为一块大硬盘来使用,数组存储时一次存满一个硬盘在使用下一个硬盘,对上层来说操作的是一个大硬盘。

主要模式(7种)

  • Assemble:装配模式:加入一个以前定义的阵列,可以正在使用阵列或从其他主机移出的阵列

  • Build:  创建:创建一个没有超级块的阵列

  • Create: 创建一个新的阵列,每个设备具有超级块

  • Follow or Monitor: 监控RAID的状态,一般只对RAID-1/4/5/6/10等有冗余功能的模式来使用

  • Grow:(Grow or shrink) 改变RAID的容量或阵列中的设备数目;收缩一般指的是数据收缩或重建

  • Manage: 管理阵列(如添加spare盘和删除故障盘)

  • Incremental Assembly:添加一个设备到一个适当的阵列

  • Misc:  允许单独对阵列中的某个设备进行操作(如抹去superblocks 或停止阵列)

  • Auto-detect: 此模式不作用于特定的设备或阵列,而是要求在Linux内核启动任何自动检测到的阵列


七、创建RAID

八、RAID的管理

九、RAID优化

设定良好的stripe值,可以再后期使用时,减少写入数据时对数据块计算的负担,从而提高RAID性能;

十、RAID监控

配置每300秒mdadm监控进程查询MD设备一次,当阵列出现错误,会发送邮件给指定的用户,执行事件处理程序并且记录上报的事件到系统的日志文件。使用–daemonise参数,使程序持续再后台运行。如果要发送邮件需要postfix程序运行,当邮件地址被配置为外网地址应先测试是否能发送出去。


十一、RAID扩展

如果在创建阵列时不想使用整个块设备,可以指定用于创建RAID阵列每个块设备使用的设备大小。然后在阵列需要扩展大小时,使用模式–grow(或者其缩写-Q)以及–size参数(或者其缩写-z) 在加上合适的大小数值就能分别扩展阵列所使用每个块设备的大小。

到此所有RAID内容基本显示完毕!如有错漏,大神勿喷。

原创文章,作者:bjwf125,如若转载,请注明出处:http://www.178linux.com/11450

评论列表(1条)

  • stanley
    stanley 2016-02-14 09:53

    难得有好好写文章的同学了

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1823388528@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班