热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

如何解析RAID2.0

如何解析RAID2.0,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所

如何解析RAID 2.0,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

今天,我也来谈谈高端存储的一股势力,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,就是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更小,因此灵活性和随机分布性更好些。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注编程笔记行业资讯频道,感谢您对编程笔记的支持。


推荐阅读
  • 1:有如下一段程序:packagea.b.c;publicclassTest{privatestaticinti0;publicintgetNext(){return ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 非公版RTX 3080显卡的革新与亮点
    本文深入探讨了图形显卡的进化历程,重点介绍了非公版RTX 3080显卡的技术特点和创新设计。 ... [详细]
  • PHP 编程疑难解析与知识点汇总
    本文详细解答了 PHP 编程中的常见问题,并提供了丰富的代码示例和解决方案,帮助开发者更好地理解和应用 PHP 知识。 ... [详细]
  • Søren Kierkegaard famously stated that life can only be understood in retrospect but must be lived moving forward. This perspective delves into the intricate relationship between our lived experiences and our reflections on them. ... [详细]
  • 本文总结了2018年的关键成就,包括职业变动、购车、考取驾照等重要事件,并分享了读书、工作、家庭和朋友方面的感悟。同时,展望2019年,制定了健康、软实力提升和技术学习的具体目标。 ... [详细]
  • C++实现经典排序算法
    本文详细介绍了七种经典的排序算法及其性能分析。每种算法的平均、最坏和最好情况的时间复杂度、辅助空间需求以及稳定性都被列出,帮助读者全面了解这些排序方法的特点。 ... [详细]
  • 本文详细探讨了Java中的24种设计模式及其应用,并介绍了七大面向对象设计原则。通过创建型、结构型和行为型模式的分类,帮助开发者更好地理解和应用这些模式,提升代码质量和可维护性。 ... [详细]
  • 深入理解 SQL 视图、存储过程与事务
    本文详细介绍了SQL中的视图、存储过程和事务的概念及应用。视图为用户提供了一种灵活的数据查询方式,存储过程则封装了复杂的SQL逻辑,而事务确保了数据库操作的完整性和一致性。 ... [详细]
  • 数据库内核开发入门 | 搭建研发环境的初步指南
    本课程将带你从零开始,逐步掌握数据库内核开发的基础知识和实践技能,重点介绍如何搭建OceanBase的开发环境。 ... [详细]
  • 本文详细介绍了如何使用 Yii2 的 GridView 组件在列表页面实现数据的直接编辑功能。通过具体的代码示例和步骤,帮助开发者快速掌握这一实用技巧。 ... [详细]
  • 本文将介绍由密歇根大学Charles Severance教授主讲的顶级Python入门系列课程,该课程广受好评,被誉为Python学习的最佳选择。通过生动有趣的教学方式,帮助初学者轻松掌握编程基础。 ... [详细]
  • 本文详细介绍了Akka中的BackoffSupervisor机制,探讨其在处理持久化失败和Actor重启时的应用。通过具体示例,展示了如何配置和使用BackoffSupervisor以实现更细粒度的异常处理。 ... [详细]
  • 深入理解C++中的KMP算法:高效字符串匹配的利器
    本文详细介绍C++中实现KMP算法的方法,探讨其在字符串匹配问题上的优势。通过对比暴力匹配(BF)算法,展示KMP算法如何利用前缀表优化匹配过程,显著提升效率。 ... [详细]
  • LeetCode 540:有序数组中的唯一元素
    来源:力扣(LeetCode),链接:https://leetcode-cn.com/problems/single-element-in-a-sorted-array。题目要求在仅包含整数的有序数组中,找到唯一出现一次的元素,并确保算法的时间复杂度为 O(log n) 和空间复杂度为 O(1)。 ... [详细]
author-avatar
Twosssss
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有