RAID进化论

2019-09-25 14:26:48 阅读量:


在传统的计算机存储系统中,存储通常是内置的,而这种设计方式,性能和容量都很容易遇到瓶颈,扩展性也很差。随着大型计算、海量数据存储的发展,内置存储自然越来越难以满足各类信息化应用的需求,于是人们就就想办法把磁盘从机箱里面挪到了机箱外面,通过总线技术将主机与外置的磁盘联系起来。
 
最先出现的是JBOD技术,JBOD(Just a Bundle Of Disks,简称磁盘簇),可以理解为“仅仅只是一堆磁盘”,是纯粹地将多个小容量的磁盘组合成一个大容量的逻辑磁盘。JBOD技术也只是把硬盘从机箱里面拿出来,在机箱旁边再另外拿个磁盘柜来装它们,然后用SCSI线将主机和磁盘柜联系起来,如下图所示:
 
\

JBOD技术可以向主机提供大容量的逻辑磁盘,解决了因为机箱太小难以扩容的问题但读写性能太差,安全性也不好。1987年,美国加州大学的伯克利分校提出RAID(Redundant Array of IndependentDisks)技术,其初衷也在于把多个独立的物理磁盘通过相关算法组合成一个虚拟逻辑磁盘,给大型计算机提供更大容量。考虑到磁盘的读写性能和数据安全性问题,RAID1.0技术中提出了条带分条化的概念,实现了多个物理硬盘同时响应请求提供服务进而达到了提高性能的目的,为了提高数据安全性,RAID 1.0技术还引入了镜像、奇偶检验对数据镜像冗余保护。随着硬盘技术不断发展,单个磁盘容量不断增大,通过RAID技术组建的逻辑硬盘容量自然越来越大,为了避免存储资源浪费,同时又可以保证存储性能,人们就把RAID组划分成一个一个的LUN(Logical Unit Number)映射给服务器使用。具体如下图所示:
\
相对于JBOD而言,RAID 1.0技术优势主要体现在以下三个方面:
 
1、将多个磁盘组合成一个虚拟磁盘,可以提供更大容量的存储;
2、将数据分割成数据块,由多个磁盘同时执行数据块的写入/读出操作,可以提高访问速度;
3、通过数据镜像或奇偶校验提供数据冗余保护,可以提高数据安全性。
 
然而,时代一直在发展,信息科技并没有打算放慢脚步,高性能应用不断涌现,数据存储需求不断增长,传统RAID暴露出越来越多的问题:
 
1、随着磁盘技术的不断发展,磁盘单盘容量越来越大,坏盘情况下恢复数据所需时间越来越长;
2、漫长的数据重构过程,繁重的读写操作导致磁盘组故障概率大幅提升,增加了数据丢失的风险;
3、传统RAID中磁盘数量不宜过多,无法实现企业对存储资源统一灵活地调配;
4、一个LUN的读写只能在一个磁盘组进行,对新加入的高性能磁盘无法及时充分利用;
5、以磁盘为单位对数据进行管理,管理起来比较困难复杂。
 
正所谓优胜略汰适者生存,传统RAID已经不能满足行业的需求,RAID 1.5技术便应运而生,以EMC和HDS为代表的存储厂商在传统RAID基础之上将RAID组进行更细粒度地切分,将多个RAID组切分成大小相等的逻辑空间,再用其组合构建主机可访问的逻辑存储单元,也就是人们口中的LUN虚拟化。具体如图所示:
 
\

那么这个LUN虚拟化有何优势呢?如下:

1、单个LUN中数据的存取跨越了更多的磁盘,提升了系统存储性能;
2、单个LUN可以包含多个RAID组,可以在不同类型磁盘或不同级别RAID组之间实现数据迁移的功能。
 
但是呢,重构时间过长这个严重的问题,RAID 1.5也束手无策,于是,RAID 2.0技术就闪亮登场,引领风骚“数百年”,以华为和HP 3PAR为代表的存储厂商,将磁盘一刀又一刀地切分成一个个小粒度的数据块空间,基于块来构建RAID组,具体如图所示:
 
\
 
如此一来,数据便可以均匀地分布到存储池中所有磁盘上了,然后以块为单元来进行数据的重构,多个RAID组还可以并发重构一个坏盘上的数据,就好比工作任务一定,人多完成时间自然就短,快速精简重构完美解决了重构时间过长这个问题。