磁盘阵列RAID讲解

    xiaoxiao2023-07-07  168

    RAID:磁盘阵列(Redundant Arrays of Independent Disks)

    一台PC机器都会包含CPU、内存、主板、硬盘、网卡等硬件,影响计算机性能的组建包括:CPU、主板总线IO、内存IO、硬盘IO、网卡IO等。可能我们在一提到影响计算机的性能时,首先想到的是CPU,但是随着计算机的发展,特别是对于现代的处理器来说,其运算速度已经是非常快的了,同时我们的内存IO速度也已经达到了非常快的地步了,而我们也知道数据是保存在硬盘上的,所以计算机其实是先将硬盘的数据传递给内存,然后CPU再从内存中加载数据来进行运算的,所以由此看来影响整个计算机性能的因素就是我们的硬盘IO速度了。

    RAID是廉价磁盘冗余阵列技术的英文缩写,它的原理就是通过多个磁盘并行运行来提高整个计算机的IO存储性能。

    RAID的评判标准有三个:

    <li>速度:读写速度的提升</li> <li>磁盘使用率:多磁盘的空间使用率</li> <li>冗余性:能够支持几块磁盘损坏而不丢失数据</li>

    所以,基于以上三哥评判标准,RAID分为很多种类,称之为RAID级别。

    RAID0:

    RAID0的工作原理就是通过多块硬盘并行运行来提高整个计算机的IO存储性能,至少需要两块硬盘,RAID0是通过将数据分开读写到多块硬盘的方式来提高读写性能的。

    使用RAID0时,我们读写数据的时候是将数据分开读写到多块硬盘上,每个硬盘上保存了数据的一部分,所以读写速度快,但是当其中一块硬盘发生损坏时,整个RAID的数据也就损坏了。

    读、写性能提升无容错能力最少磁盘数量2块

    RAID1:

    RAID1至少需要两块硬盘,RAID1在读写数据时会将数据复制到其他硬盘上,即每块硬盘都会保存该数据的一个备份,在读数据时,以提高冗余性,读的时候同时从多块硬盘上读取数据,以提高读的性能。

    读性能提升、写性能略有下降有冗余能力最少磁盘数量2块

    RAID4:

    RAID4至少需要三块硬盘,前两块硬盘原理跟RAID0相似,第三块硬盘作为校验盘,对前两块硬盘进行异或校验,因为检验盘一直在进行运算,所以损坏几率较大。

    RAID5:

    RAID5至少需要三块硬盘,读写数据的时候会将数据分布的读写到所有硬盘上。例如有三块硬盘ABC,当有数据进行读写时候,数据会在A盘IO一些,B盘IO一些,C盘校验,然后A盘IO,B盘校验,C盘IO,然后A盘校验,BC盘IO,将校验分散开来。三块硬盘损坏几率相同,减少单一硬盘损坏几率。

    读、写性能提升有容错能力,允许最多一块磁盘损坏最少磁盘数量3块

    RAID6:

    在RAID5的基础上增加了一个校验位,由四块硬盘组成。

    读、写性能提升有容错能力,允许最多2块磁盘损坏最少磁盘数量4块

    RAID10:RAID1+RAID0:

    软件RAID的实现:

    对于目前所有的操作系统,都有软件RAID的实现,我们的Linux操作系统的软件RAID通过mdadm命令实现。mdadm支持的RAID级别有:RAID0、RAID1、RAID4、RAID5、RAID6、RAID10。mdadm可以基于多块硬盘、分区以及逻辑卷来创建RAID。RAID设备可命名为/dev/mdn,n表示的是第几个RAID,如第一个创建的RAID对应/dev/md0,第二个创建的RAID就对应/dev/md1,当然这个名字是可以自己随便取的。RAID的信息保存在/proc/mdstat文件中,或者通过mdadm命令查看。

    mdadm命令:

    -C:创建-A:装配-F:监控-f,-r,-a:管理

    -C创建模式:

    -n #:使用#个块设备来创建此RAID(-n 2 表示用2块硬盘来创建这个RAID)-l #:指明要创建的RAID的级别(-l 0 表示创建RAID0)-a {yes|no}:自动创建对应的设备,yes表示会自动在/dev下创建RAID设备-c CHUNK_SIZE:指明块大小-x #:指明空闲盘的个数

    创建RAID0:#mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sdb /dev/sdc创建RAID1:#mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb /dev/sdc创建RAID5:#mdadm -C /dev/md2 -a yes -l 5 -n 3 /dev/sdb /dev/sdc /dev/sdd创建RAID6:#mdadm -C /dev/md3 -a yes -l 6 -n 4 /dev/sdb /dev/dec /dev/sdd /dev/sde

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)