西瓜哥 发表于:13年08月27日 14:24 [原创] DOIT.com.cn
存储在线专栏文章:今天,西瓜哥来谈谈高端存储的一股势力,RAID 2.0,最近被华为HVS搞得风生水起,神奇的让人摸不着头脑。我还是从一个高端存储的江湖说起吧。
据说很久很久以前(别扔臭鸡蛋,讲故事都是这样的…),L国王有个美丽的D公主(代表数据库DB),特别喜欢吃西瓜果盘(代表主机看到的LUN),饭量惊人,一次可以吃2个。D公主吃水果有一个懒习惯,就如泰国人一样,水果都是切成小块(Extend)后拼成果盘(LUN),用牙签吃。D公主还有一个小脾气,这个果盘如果有一小块是坏的,就整个果盘扔掉(代表数据丢失)。L国王特别宠爱D公主,找了EMC/IBM/HDS来做长工,专门负责做果盘。瓜地和宫殿有一段距离,他们每天都摘3个西瓜,2个用来吃,1个用来备份,万一那个瓜坏了就补上(代表RAID 5)。就这样,他们每天辛苦在宫殿和瓜地奔波,碰到坏瓜还得回去瓜地拿备瓜(重构),非常辛苦。D公主一天天长大了,饭量也越来越大,瓜也越来越大。但问题来了,每次碰到坏瓜,他们去搬备瓜需要10个小时,因为西瓜太沉了,路上走不快。D公主后来受不来了,让L国王把他们撤了,换成了3PAR和HW,3PAR和HW比较聪明,他们想,为什么我到宫殿再切瓜呢,我可以每个瓜切成20大块(Chunk),找20个人搬到宫殿后再切小块(Extend)后拼成果盘(LUN)不就可以了吗?到宫殿后如果发现瓜坏了,派人回来拿1小块换上不就可以了吗?这样需要搬的瓜只有原来的1/20,瓜轻了,路上可以跑,因此就算瓜坏了,半小时也就换回来了。D公主很满意,日子相安无事,直到有一天HW加班病倒了,而3PAR正好和HP谈恋爱请假了,无奈找了个年轻人叫XIV做临时监工,这家伙比较浪费,每次都挑4个瓜,在瓜地全部切成小块(Extend),找一群小孩直接送给宫殿。对于D公主当然好了,但每次也只能吃一半,另外一半就倒掉了,很是可惜。后来XIV由于长得漂亮,被IBM包养,这是后话。
好来,故事讲完了,大家知道RAID 2.0是怎么回事了吧?还扔臭鸡蛋,别,我来好好给大家讲一讲,刚才是讲故事呢。
大家知道,传统的RAID 5过程是这样的:
选几个硬盘—》做成RAID 5—》根据容量创建LUN—》映射给主机(为了方便,我们称这个为RAID 1.0吧)
话说当时主流的高端厂商,EMC/IBM/HDS全是这个方案。这种方式就是如果有盘坏了,只能这个磁盘组的硬盘参与重构。当时的硬盘一般都是几十G,而且全部是FC磁盘,问题并不严重。
但是现在高端都引入了SATA磁盘,现在的西瓜,不对,是硬盘越来越大,因此,当一块硬盘坏了,只有这几块硬盘参与重构,重构的时间1TB需要10小时,如果是4TB的SATA盘,更加不可想象。
除了重构时间外,RAID 1.0还有一个大问题,就是性能。一个LUN的读写只能在一个磁盘组进行,让后面加入的SSD等新的介质发挥不了作用。但EMC/IBM/HDS在RAID 1.0已经积累了十几二十年,RAID又是所有软件的基础,他们轻易不敢重写代码。怎么办?
有了,可以把多个RAID组再组成一个池,再切一次(条带化):
选几个硬盘—》做成RAID 5—》选多个RAID 5组成一个池—》切分为相等的小块Extend—》选择Extend组成LUN,映射给主机(为了方便,我们称这个为RAID 1.5吧)
RAID 1.5很好地解决了性能的问题,因为一个LUN的读写同时跨越了很多的硬盘,而且这个LUN里面可以包含多个RAID组,也就可以有多种磁盘介质,可以做到自动分层存储。但是,由于RAID组还是基于硬盘的,这块硬盘坏了,只有一个RAID组的几个硬盘参与重构,因此重构速度依然和RAID 1.0一样。
3PAR和华为,历史包袱不大,因此采用块的虚拟化技术RAID 2.0来解决这个问题(3PAR内部叫FAST RAID)。RAID 2.0的思路就是,在做RAID前先切几刀,把西瓜(别打了,玩游戏玩多了不行吗),哦,是硬盘切成很多的相等大块(Chuck),然后以Chunk为单位来做RAID 5(形成CKG),然后再把CKG切成更小的小块(Extent),随机或者按照一定规则抽取很多的Extend组成LUN,映射给主机。
选所有个硬盘—》全部切成做大块Chuck—》以Chuck为单位做成RAID 5(CKG)—》把CKG切分为相等的小块Extend—》选择Extend组成LUN,映射给主机(这个就是RAID 2.0)
RAID 2.0由于RIAD的单位是大块Chunk,因此当一个硬盘故障,和这个硬盘相关的MINI RAID组(CKG)牵涉的硬盘都参与重组,同样的数据量,干活的人多了,肯定就快了。
这就是RAID 2.0的本质。
一句话,如果基于硬盘来做RAID,就是RAID 1.0,如果基于硬盘的大块Chunk来做RAID,就是RAID 2.0。
至于IBM XIV,他不做RAID,把所有硬盘全部切为1MB大小,利用伪随机算法在不同的节点间保留2个拷贝(有点像RAID 10),因此硬盘故障恢复时间和性能和RAID 2.0是一样的,只是容量利用率最多只有50%,因此我们就称为"RAID 2.0-"把。至于华为为什么叫"RAID 2.0+",据说是基于RAID 2.0上有很多增值的功能,也不知道我的解释是否正确。当然,华为的RAID 2.0比3PAR的切的硬盘大块Chunk更小,因此灵活性和随机分布性更好些。
不知道我这么一说,大家了解Raid 2.0没有,了解了就转发给其他需要了解的人吧。