IT技术互动交流平台

OpenStack存储 说说RAID012345610013050,软RAID,硬RAID

来源:IT165收集  发布日期:2014-07-01 19:26:59

最近在思考一种廉价方便的cinder集成LVM driver的方式,那就是cinder+LVM+多块盘组成的RAID硬盘。这样的情况下就要根据读写需求和可用资源考虑采用什么样的RAID,以及怎样选择实现raid的方式,有两种分别为硬件RAID和软件RAID,为了温习一下,就顺便画些图(图中使用的硬盘数都是该RAID下需要的最少硬盘数)总结下各个RAID技术。

软RAID与硬RAID

硬RAID可以理解为需要RAID卡,通过RAID卡实现对多块盘的管理, 把多块盘组成RAID冗余阵列,如何组合成RAID,关键就是RAID卡如何实现寻址。

软RAID 通过操作系统层次的软件实现RAID,如我们熟悉的linux下MD软件,命令行为mdadm,软raid优点是不需要花费买raid卡的钱,但是软raid耗费内存,而且性能没有硬件RAID强,功能也没有硬件raid多。

接着下面介绍各种RAID技术

一、RAID 0

采用条带技术,以字节或位为单位按条带(各个盘起始偏移量相同,之后的一定数量字节的区段)在多个磁盘并行写,可以提高I/O读写性能,但它没有像RAID1一样有数据冗余,一但硬盘故障, 就玩完 。结构如下图。


二、RAID 1

采用镜像技术,每次写的时候, 要在另一块盘上就拷贝,这就是为了容灾,写性能降低。数据结构如下图

三、RAID 2

首先采用了条带技术,并通过增加冗余盘存放为每个比特进行海明码编码的数据, 这样可以实现校验和纠错,需要把2的n次幂块盘作为校验数据盘。结构如下图

四、RAID 3

采用条带技术, 写入时以比特为分区写,同时增加一块盘存放奇偶校验位数据,这样的话。当数据盘坏了一块, 重新放上硬盘可通过校验盘和其他数据盘恢复数据。结构如下图

五、RAID 4

首先为什么有RAID4,是为了提高并发概率而生,它在RAID3基础上,采用更大的分区来作为单位写入数据,为什么要提高写入数据块大小呢,假设原来在RAID3时候要写入A和B 数据到第一块磁盘,A数据正在占用校验盘,那么B数据需要等待, 那现在提高了写入数据大小了, 那A和B也许就可以组成一个大块一起写入了, 这就是实现了这种伪并发。这种RAID需要前期写入时进行数据的优化,NetAPP的WAFL文件系统就使用RAID4. 一般RAID4很少用。

六、 RAID 5

RAID 5采用真正的实现了并发I/O,不会像RAID3一样有热点盘,它把奇偶校验数据平均分配到多块磁盘上,如何能提高并发I/O呢,比如有四块盘,假设第一块磁盘写入A数据时候校验区在第二块磁盘,此时第三块和第四块磁盘是空闲的,当在某个条带写B数据到第三块盘,而第四块盘存B数据的校验位时, 这样A数据和B数据就可以同时读写了。

七、 RAID 6

RAID 6是在RAID5 的基础上增加了一个校验区, 这个每个条带都有两个校验区, 他们采用不用的校验算法,数据的可靠性增强

接下来介绍几种组合RAID

一、RAID01

总磁盘数为N,在每个N/2块盘做RAID0, 以下图四块盘为例所示,有镜像有条带, 但是冗余度不如RAID10好,接下来RAID10中总结


二、RAID10

下图顺序写入D1,D2,D3,D4,数据块分布分布如下图,其实就相当与奇数盘组成raid0, 同时偶数盘作为奇数盘的备份,它与RAID01相比,优势在于,只要互为镜像的两块盘不同时坏,数据就能正常读写。而RAID01中组成raid0的数据盘坏一块都不行,他要求组成raid0的一组盘完好时才能正常的读写。以图示的四块盘为例,RAID10能接受{1,3} {1,4} {2,3} {2,4} 块盘坏,而RAID01只能接受{1,2} {3,4}块盘损坏。


三、RAID30

与RAID50一样,加一层RAID0 就是把数据弄的更分散,读写性能更高。容错能力更强。


四、RAID50


延伸阅读:

  • 专题推荐

About IT165 - 广告服务 - 隐私声明 - 版权申明 - 免责条款 - 网站地图 - 网友投稿 - 联系方式
本站内容来自于互联网,仅供用于网络技术学习,学习中请遵循相关法律法规