RAID 技术从开始到现在已经经历了7个阶段,从7个循序渐进的阶段也看到一些IT行业发展的影子, 看到了需求与技术的发展和技术的发展与需求两者间的相互作用。
今天在这里做个概要的总结,对于想要快速理解raid的人员有个概要的理解。
首先为什么会出现raid技术?
还是那句真理,有需求就有市场。 没错,随着计算机行业的发展,尤其是这些年互联网的快速发展, 导致需要存储到磁盘中的数据迅速增加。人们需要的硬盘容量越来越大,人们对硬盘的速度要求越来越高,人们对数据的安全越来越看中,所以raid诞生啦。
总结一些3点:
1. 大容量。
2. 高并发。
3. 数据冗余。
其次看看现在哪些raid技术大家都在用:
现在大家用的比较的多的(个人观点), raid0, raid1, raid5, raid6. 其中raid0, raid1 都比较极端在一些测试环境中用的比较多, raid5, raid6在实际的应用中用的更多。
下面主要说一下raid0, raid1, raid5, raid6的特点和实现。
在介绍raid技术之前, 我们得先明确几个概念, 因为只有明确了这些概念才能更好的理解raid技术的实现。
扇区:磁盘的最小逻辑物理单元称为一个扇区, 每个扇区默认大小512个字节。
条带:在磁盘相同偏移处横向逻辑分割,形成条带(stripee)。
条带长度:一个条带横跨过的扇区或块的个数或字节容量,就是条带长度。
段(segment):一个条带所占用的单块磁盘上的区域,称为一个段。
条带深度:一个段中所包含的扇区的个数或者字节容量,称为条带深度。
raid0:
实现方式:raid0将多块物理磁盘组成一个逻辑上连续且物理上也连续的虚拟磁盘, 磁盘以条带为存储单元, 每个条带的多个段可以实现并发IO。
优点:可以将多块磁盘虚拟成一块磁盘, 多块磁盘可以实现IO并发。
缺点:因为只有减小条带大小才能提高并发性, 但条带太小也会导致IO排队。不支持数据冗余。
raid1:
实现方式:raid1 在raid0的基础上为每块物理磁盘加了一块镜像备份盘。
优点:由于有数据镜像盘,所以在读取数据时可以提高IO的并发。
缺点:由于有数据镜像盘,所以在写数据时,必须同时写入两份数据,且以最慢的时间为准,导致写性能下降。虽然有了数据冗余,但是浪费了一半的存储空间。
raid5:
实现方式:raid5的逻辑区域划分同样是条带化, 不过raid5在数据镜像上用数据块抑或(XOR),实现数据的冗余校验。大大的减小的数据冗余的空间。
优点:raid5再实际上有与raid0媲美的处理速度。
缺点:由于raid5是根据算法进行数据冗余的,所以在一块磁盘损坏时,由于恢复数据要经过计算所以当异常时会导致磁盘性能下降。切理论上一个数据只有一个数据校验盘,冗余量太小。
raid6:
实现方式:raid6同样是通过算法进行数据冗余, raid6使用reed-solomon算法。 rs算法是通过范德蒙矩阵、柯西矩阵等矩阵模型通过矩阵计算得到的。
优点:由于使用了rs算法,所以可以指定校验数据的个数, 即可以同时损坏多块盘而不会丢数据。
缺点:由于raid6是根据算法进行数据冗余的,所以在一块磁盘损坏时,由于恢复数据要经过计算所以当异常时会导致磁盘性能下降。