您的位置:首页 > 大数据 > 人工智能

Raid 2.0 及重构原理举例

2017-05-29 22:47 267 查看

Raid 2.0 及重构原理举例



原理介绍

我认为Raid 2.0为代表的硬盘虚拟化技术是另一场“虚拟化革命”。虚拟化技术就像一把万能钥匙,每当遇到难以解决的问题时,工程师们总会把问题层层抽象,在层级之间加上虚拟化层。有的虚拟化技术表现为“分”,有的虚拟化技术表现为“合”,或者先“合”再“分”。

计算机系统发展历史上经历了数次虚拟化革命。比如x86架构虚拟化技术的出现,使服务器脱离了物理主机的禁锢,并催生了云计算架构;而网络设备的“分”、“合”把戏早已炉火纯青,代表“分”的VLAN、VRF等技术,代表“合”的集群技术,早在十几年前就已广泛应用。目前网络层跟随云计算的趋势,将合成一个统一的抽象层,然后在抽象层上再次分区(比如VxLAN)。终于人们把注意力再次放在了硬盘上,实际上Raid 就是一种虚拟化技术,多块硬盘组成一个组,对操作系统可以表现为一块硬盘,或者在Raid组上划分LUN,对主机表现为多块硬盘。传统Raid是虚拟化中典型的先“合”再“分”。Raid2.0 更进一步,先“分”再“合”再“分”再“合”,这看起来有点晕,请看本文开头的图示,我具体说一下:

首先 Raid 2.0 先将硬盘等分成若干个虚拟硬盘(CHUNK); (分)

然后将来自不同硬盘的虚拟硬盘组做传统Raid(CHUNK

Group);(合)

再将虚拟硬盘组进一步分切为若干个小块(Extent);(分)

最后将来自不同虚拟硬盘组(CHUNK Group)的小块按照一定规则组成LUN; (合)

经过数次分合,数据完全脱离了物理硬盘的限制,好像“浮”在一堆硬盘上一样。Raid2.0 在解决热点盘争用、重构效率、数据管理方面都有极大提高。

Raid 2.0重构

Raid 2.0 一直重点宣传的特点就是重构速度快,我觉得可能表现在两个方面,一是重构的数据少,二是参与的硬盘多。

重构数据少

重构数据少我认为主要是在一个硬盘组空间分配相对少的情况下。如下图,整个硬盘组目前只指分配了一个LUN0,每个磁盘只有1个CHUNK被标记使用(这里只是为了便于描述,一块磁盘上可能有数百上千个CHUNK)。



由于Extent的划分,一个LUN可以跨多个CHUNK Group(CKG),因此LUN上的数据被相对均分到整个硬盘组的所有硬盘上,当Disk4故障时,只需要将Disk5-7中对应的数据读出,然后计算出Disk4上面的数据写入到热备空间即可,需要重构的数据为LUN0大小的 1/6,可以看出硬盘组中硬盘的数量越多,重构的数据量越少(上图所示的情况下);

当然传统Raid5也可以通过增加raid组中的硬盘的数量,平均分布LUN上的数据,但是raid组中的硬盘增多,同时坏两块硬盘的概率就会增多,并且出于性能等多方面的考虑,raid5 组中不建议放太多成员盘。

“分布式重构”

对应下文描述的情况,我自己起了个名字:“分布式重构”。如下图,Disk3 上的其中两个CHUNK 分别分配到两个CHUNK Group:



当Disk3 发生故障,Disk0-2 为一组将对应数据块读出,并计算出Disk3上的块,写入热备空间x;Disk4-5 为一组将对应数据块读出,并计算出Disk3上的块 写入热备空间y。一块磁盘故障,多组硬盘参与重构,并且写入不同热备空间,重构效率大大提高。

对于传统Raid 5,同样是7块硬盘+1个热备盘,传统Raid 5的重构速度差不多等于热备盘的写入速度。而Raid2.0 重构过程分为两组,分布式重构,热备空间分布在不同硬盘,不存在争用热备盘的情况,重构速度至少是传统Raid5的两倍。当硬盘数量多的时候,重构速度更快。

后记

前文描述了Raid2.0 这么多优点,难道Raid2.0没有缺点吗?当然还是有的。Raid2.0相较于传统Raid 更消耗资源,并且有一定的安全风险,开发维护难度较大。Raid 2.0 很像一个文件系统,文件系统组织文件数据在磁盘上的存放,记录文件与物理块的映射链表, 而这个记录存放在磁盘的对应区域,开机后操作系统将映射记录读取到内存中,随用随取 ;同样的 LUN 相当于文件,Extend相当于物理块,存储系统需要维护LUN 与Extend的映射关系,这份映射表相当大,且需要驻存在快速介质中,维护如此庞大复杂的映射关系需要消耗大量计算资源,庆幸的是硬件发展速度飞快,目前计算机系统动辄几百G字节甚至上T字节内存,并且当前主流存储系统使用X86芯片搭配大量硬件加速逻辑,计算能力极大提高,计算资源不在是瓶颈。

另一方面Raid 2.0 将数据打散,大量映射表存放在内存中。如果发生系统掉电,内存数据丢失,映射表损坏,对于用户来讲,就好像镜子摔到地上,摔成了一滩分子,几乎不可能复原。因此当前存储系统采用多方面措施来避免这种情况,比如在发生掉电情况时,使用电容供电,将内存中的数据刷入固态介质,以保证数据安全。虽然如此还是建议,一如既往的建议:重要数据请多点备份!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息