热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

Raid2.0及重构原理举例

Raid2.0及重构原理举例原理介绍我认为Raid2.0为代表的硬盘虚拟化技术是另一场“虚拟化革命”。虚拟化技术就像一把万能钥匙,每当遇到难以解决的问题时,工程师们总会把问题层层

Raid 2.0 及重构原理举例

这里写图片描述

原理介绍

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

  1. 首先 Raid 2.0 先将硬盘等分成若干个虚拟硬盘(CHUNK); (分)
  2. 然后将来自不同硬盘的虚拟硬盘组做传统Raid(CHUNK
    Group);(合)
  3. 再将虚拟硬盘组进一步分切为若干个小块(Extent);(分)
  4. 最后将来自不同虚拟硬盘组(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 将数据打散,大量映射表存放在内存中。如果发生系统掉电,内存数据丢失,映射表损坏,对于用户来讲,就好像镜子摔到地上,摔成了一滩分子,几乎不可能复原。因此当前存储系统采用多方面措施来避免这种情况,比如在发生掉电情况时,使用电容供电,将内存中的数据刷入固态介质,以保证数据安全。虽然如此还是建议,一如既往的建议:重要数据请备份!


推荐阅读
  • t-io 2.0.0发布-法网天眼第一版的回顾和更新说明
    本文回顾了t-io 1.x版本的工程结构和性能数据,并介绍了t-io在码云上的成绩和用户反馈。同时,还提到了@openSeLi同学发布的t-io 30W长连接并发压力测试报告。最后,详细介绍了t-io 2.0.0版本的更新内容,包括更简洁的使用方式和内置的httpsession功能。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • CentOS 7部署KVM虚拟化环境之一架构介绍
    本文介绍了CentOS 7部署KVM虚拟化环境的架构,详细解释了虚拟化技术的概念和原理,包括全虚拟化和半虚拟化。同时介绍了虚拟机的概念和虚拟化软件的作用。 ... [详细]
  • Oracle优化新常态的五大禁止及其性能隐患
    本文介绍了Oracle优化新常态中的五大禁止措施,包括禁止外键、禁止视图、禁止触发器、禁止存储过程和禁止JOB,并分析了这些禁止措施可能带来的性能隐患。文章还讨论了这些禁止措施在C/S架构和B/S架构中的不同应用情况,并提出了解决方案。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • 禁止程序接收鼠标事件的工具_VNC Viewer for Mac(远程桌面工具)免费版
    VNCViewerforMac是一款运行在Mac平台上的远程桌面工具,vncviewermac版可以帮助您使用Mac的键盘和鼠标来控制远程计算机,操作简 ... [详细]
  • Windows下配置PHP5.6的方法及注意事项
    本文介绍了在Windows系统下配置PHP5.6的步骤及注意事项,包括下载PHP5.6、解压并配置IIS、添加模块映射、测试等。同时提供了一些常见问题的解决方法,如下载缺失的msvcr110.dll文件等。通过本文的指导,读者可以轻松地在Windows系统下配置PHP5.6,并解决一些常见的配置问题。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 如何在服务器主机上实现文件共享的方法和工具
    本文介绍了在服务器主机上实现文件共享的方法和工具,包括Linux主机和Windows主机的文件传输方式,Web运维和FTP/SFTP客户端运维两种方式,以及使用WinSCP工具将文件上传至Linux云服务器的操作方法。此外,还介绍了在迁移过程中需要安装迁移Agent并输入目的端服务器所在华为云的AK/SK,以及主机迁移服务会收集的源端服务器信息。 ... [详细]
  • 一句话解决高并发的核心原则
    本文介绍了解决高并发的核心原则,即将用户访问请求尽量往前推,避免访问CDN、静态服务器、动态服务器、数据库和存储,从而实现高性能、高并发、高可扩展的网站架构。同时提到了Google的成功案例,以及适用于千万级别PV站和亿级PV网站的架构层次。 ... [详细]
author-avatar
pigwangrq
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有