RAID基础教程(一)

作者: aireal217 | 来源:发表于2018-02-09 11:45 被阅读9次

            在计算机发展的初期,大容量硬盘价格非常高,而需要存储的数据量却越来越大,CPU运算速度飞速提高,数据读写速度不应该成为计算机系统处理的瓶颈,特别是在信息时代,数据对企业和个人的重要性越来越大,数据存储安全更需要保障。因而产生了如何在各个小容量硬盘的基础之上使用大容量空间同时保障数据的安全性的技术,这就是RAID。

     一:raid技术讲解

    1.1 RAID基本概念

       RAID,为Redundant Arrays of Independent Disks的简称,中文为独立冗余磁盘阵列。在1987年由美国柏克莱大学提出RAID(Redundant

    Array of Inexpensive Disks--廉价冗余磁盘阵列)理论,作为高性能,高可靠的存储系统。RAID阵列技术允许将一系列磁盘分组,以实现为数据保护而必需的数据冗余,以及为提高读写性能而形成的数据条带分布。RAID最初用于高端服务器市场,不过随着计算机技术的快速发展,RAID技术已经渗透到计算机遍布的各个领域。,如今,在家用电脑主板中,RAID控制芯片也随处可见。RAID的级别从RAID概念的提出到现在,巳经发展了多个级别,有明确标准级别分别是0、1、2、3、4、5等。但是最常用的是0、1、3、5四个级别。其他还有6、7、10、30、50等。

    •    RAID的级别从RAID概念的提出到现在,巳经发展了多个级别,有明确标准级别分别是0、1、2、3、4、5等。但是最常用的是0、1、3、5四个级别。其他还有6、7、10、30、50等。RAID为使用者降低了成本、增加了执行效率,并提供了系统运行的稳定性。   RAID也有全软、半软半硬与全硬之分。全软RAID就是指RAID的所有功能都是操作系统(OS)与CPU来完成,没有第三方的控制/处理(业界称其为RAID协处理器)与I/O芯片。这样,有关RAID的所有任务的处理都由CPU来完成,可想而知这是效率最低的一种RAID。由于全软RAID是在操作系统下实现RAID,不能保护系统盘,亦即系统分区不能参与实现RAID。有些操作系统,RAID的配置信息存在系统信息中,而不是存在磁盘上,当系统崩溃,需重新安装时,RAID的信息也会丢失。尤其是全软RAID 5是CPU的增强方式,会导致30%-40%的I/O功能降低,所以在服务器中不建议使用全软RAID。 �

    标准的RAID写操作,包括如:RAID4或RAID5中所必需的校验计算,需包括以下几个步骤:(1)以校验盘中读取数据(2)以目标数据盘中读取数据(3)以旧校验数据,新数据及已存在数据,生成新的校验数据(4)将新校验数据写入校验盘(5)将新数据写入目标数据盘当主机将一个待写入阵列RAID组中的数据发送到阵列时,阵列控制器将该数据保存在缓存中并立即报告主机该数据的写入工作已完成。该数据写入到阵列硬盘的工作由阵列控制器完成,该数据可继续存放在Cache中直到Cache满,而且要为新数据腾出空间而必须刷新时或阵列需停机时,控制器会及时将该数据从Cache写入阵列硬盘中。这种缓存回写技术使得主机不必等待RAID校验计算过程的完成,即可处理下一个读写任务,这样,主机的读写效率大为增加。当主机命令将一个数据写入硬盘,则阵列控制器将该数据写入缓存最上面的位置,只有新数据才会被控制器按Write-Back Cache的方式最后写入硬盘。

    RAID

    特点:

    1.成本低,功耗小,传输速率高。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个的磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。而RAID最后成功了。

    2.可以提供容错功能,这是大多数使用RAID的第二个原因。因为,普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID和容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它可以提供更高的安全性。

    3. RAID比起传统的大直径磁盘驱动器来,在同样的容量下,价格要低许多。

    1.1.1    条带

    条带(strip)是把连续的数据分割成相同大小的数据块,把每段数据分别写入到阵列中的不同磁盘上的方法。简单的说,条带是一种将多个磁盘驱动器合并为一个卷的方法。许多情况下,这是通过硬件控制器来完成的。

    当多个进程同时访问一个磁盘时,可能会出现磁盘冲突。大多数磁盘系统都对访问次数(每秒的 I/O 操作,IOPS)和数据传输率(每秒传输的数据量,TPS)有限制。当达到这些限制时,后面需要访问磁盘的进程就需要等待,这时就是所谓的磁盘冲突。避免磁盘冲突是优化 I/O 性能的一个重要目标,而 I/O 性能的优化与其他资源(如CPU和内存)的优化有着很大的区别 ,I/O 优化最有效的手段是将 I/O 最大限度的进行平衡。

    条带化技术就是一种自动的将 I/O 的负载均衡到多个物理磁盘上的技术,条带化技术就是将一块连续的数据分成很多小部分并把他们分别存储到不同磁盘上去。这就能使多个进程同时访问数据的多个不同部分而不会造成磁盘冲突,而且在需要对这种数据进行顺序访问的时候可以获得最大程度上的 I/O 并行能力,从而获得非常好的性能。由于条带化在 I/O 性能问题上的优越表现,以致于在应用系统所在的计算环境中的多个层次或平台都涉及到了条带化的技术,如操作系统和存储系统这两个层次中都可能使用条带化技术。

    条带化后,条带卷所能提供的速度比单个盘所能提供的速度要快很多,由于现在存储技术成熟,大多数系统都采用条带化来实现系统的I/O负载分担,如果OS有LVM软件或者硬件条带设备,决定因素是条带深度(stripe depth)和条带宽度(stripe width)。

    条带深度:指的是条带的大小,也叫条带大小。有时也被叫做block size, chunk size, stripe length 或者granularity。这个参数指的是写在每块磁盘上的条带数据块的大小。RAID的数据块大小一般在2KB到512KB之间(或者更大),其数值是2的次方,即2KB,4KB,8KB,16KB这样。

    条带大小对性能的影响比条带宽度难以量化的多。

    减小条带大小: 由于条带大小减小了,则文件被分成了更多个,更小的数据块。这些数据块会被分散到更多的硬盘上存储,因此提高了传输的性能,但是由于要多次寻找不同的数据块,磁盘定位的性能就下降了。

    增加条带大小: 与减小条带大小相反,会降低传输性能,提高定位性能。

    根据上边的论述,我们会发现根据不同的应用类型,不同的性能需求,不同驱动器的不同特点(如SSD硬盘),不存在一个普遍适用的"最佳条带大小"。所以这也是存储厂家,文件系统编写者允许我们自己定义条带大小的原因。

    条带宽度:是指同时可以并发读或写的条带数量。这个数量等于RAID中的物理硬盘数量。例如一个经过条带化的,具有4块物理硬盘的阵列的条带宽度就是4。增加条带宽度,可以增加阵列的读写性能。道理很明显,增加更多的硬盘,也就增加了可以同时并发读或写的条带数量。在其他条件一样的前提下,一个由8块18G硬盘组成的阵列相比一个由4块36G硬盘组成的阵列具有更高的传输性能。

    条带是一种将多个磁盘驱动器合并为一个卷的方法。 许多情况下,这是通过硬件控制器来完成的。 GEOM磁盘子系统提供了 RAID0 的软件支持, 它也成为磁盘条带。在 RAID0 系统中, 数据被分为多个块,这些块将分别写入阵列的所有磁盘。 与先前需要等待系统将 256k 数据写到一块磁盘上不同, RAID0 系统, 能够同时分别将打碎的 64k 写到四块磁盘上,从而提供更好的 I/O 性能。 这一性能提升还能够通过使用多个磁盘控制器来进一步改进。在 RAID0 条带中的每一个盘的尺寸必须一样, 因为I/O 请求是分散到多个盘上的, 以便让这些盘上的读写并行完成。

    1.1.2    校验

    1.1.3 重建

    1.1.4 RAID组的状态

    1.1.5 物理卷

    物理卷就是真实的物理硬盘

    1.1.6  逻辑卷

    在物理卷的基础上可以按照指定容量创建一个或多个逻辑卷,通过LUN(Logic Unit Number)来标识

    1.1.7  物理卷与逻辑卷的关系

    1.1.7.1通用关系

    1.1.7.2 华三虚拟RAID关系表

    1.1.8 热备盘与热插拔

    热备:HotSpare

    定义:当冗余的RAID组中某个硬盘失效时,在不干扰当前RAID系统的正常使用的情况下,用RAID系统中另外一个正常的备用硬盘自动顶替失效硬盘,及时保证RAID系统的冗余性

    全局式:备用硬盘为系统中所有的冗余RAID组共享

    专用式:备用硬盘为系统中某一组冗余RAID组专用

    热插拔:HotSwap

    定义:在不影响系统正常运转的情况下,用正常的硬盘物理替换RAID系统中失效硬盘

    关键在于热插拔时电子器件的保护机制

    1.1.8.1 全局热备

    1.1.8.2 专用热备

    1.1.9 基本磁盘

    基本磁盘如果要改变分区容量就会丢失全部数据(当然也有一些特殊的磁盘工具软件可以改变分区而不会破坏数据)。    

    1.1.10动态磁盘

    动态磁盘在不重新启动计算机的情况下可更改磁盘容量大小,而且不会丢失数据

    动态磁盘与基本磁盘的区别

    1.可以任意更改磁盘容量动态磁盘在不重新启动计算机的情况下可更改磁盘容量大小,而且不会丢失数据,而基本磁盘如果要改变分区容量就会丢失全部数据(当然也有一些特殊的磁盘工具软件可以改变分区而不会破坏数据,如PQMagic等)。

    2.磁盘空间的限制动态磁盘可被扩展到磁盘中不连续的磁盘空间,还可以创建跨磁盘的卷集,将几个磁盘合为一个大卷集。而基本磁盘的分区必须是同一磁盘上的连续空间,分区的最大容量当然也就是磁盘的容量。

    3.卷集或分区个数动态磁盘在一个磁盘上可创建的卷集个数没有限制,相对的基本磁盘在一个磁盘上最多只能分4个区,而且使用DOS或Windows 9X时只能分一个主分区和扩展分区。

    1.1.11 RAID

    1.1.11.1 为什么要用RAID卡

    用户对磁盘系统的四大要求

    增加磁盘I/O存取速度

    数据安全性要求,及容错(Faulttolerance)的能力

    有效的利用磁盘空间

    分担主机CPU的I/O事务

    降低内存及磁盘的性能差异

    提高计算机的整体工作性能

    1.1.12 RAID写数据的三种模式

    1.1.12.1、整条写

    整条写的实现方式是:

    第一步:直接将新写入的数据在cache里通过校验运算,计算出校验数据。

    第二步:再将需要写入的数据和校验数据同时写进一个条带。

    如图所示:

    IO效率约75%即读一次IO,写3次IO,有效写数据3次IO,有效率是75%

    1.1.12.2、重构写

    一个IO写操作,它所写入的条带所在的磁盘数超过RAID磁盘一半时,可采用重构写方式。

    重构写的实现方式是:

    第一步:先将所需写入的新数据保存到cache,同时读取其它磁盘上的老数据到cache,再将新数据、老数据做校验运算,得出新校验数据。

    第二步:再将新数据、老数据和新校验数据同时写入所在的磁盘扇区。

    如图所示:

    IO有效率40%即:读一次IO,写4次IO,有效写数据2次IO,有效率是40%

    1.1.12.3 、读改写(read-modify-write)

    一个IO写操作,它所写入的条带所在的磁盘数不超过RAID磁盘一半时,可采用读改写方式。

    读改写的实现方式是:

    第一步,先将所需写入的新数据保存到cache,同时读取所需要写入扇区上的老数据到cache,同时读取校验盘上相对应扇区上的老校验数据到cache,再将新数据、老数据和老校验数据做校验运算,得出新校验数据。

    第二步,再将新数据、新校验数据同时写入所在的磁盘扇区。

    如图所示:

    IO有效率25%读两次,写两次,有效写IO只有1次,所以有效率是25%

    1.1.13 使用RAID的价值

    相关文章

      网友评论

        本文标题:RAID基础教程(一)

        本文链接:https://www.haomeiwen.com/subject/tesftftx.html