首页 > 代码库 > RAID学习笔记

RAID学习笔记

一、简介

    名称:RAID廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks)

    组织形式:多个独立的物理硬盘按照不同的方式组合起来,形成一个虚拟的硬盘。

    优势:1.易于灵活地进行容量的扩展

              2.磁盘分块使数据内容更安全

              3.通过支持热换、热备、冗余等技术提高系统可靠性

二、主要技术

    1.镜像冗余

        镜像冗余使用磁盘镜像技术,每个I/O操作都会在两个磁盘上执行,两个磁盘看起来就像一个磁盘,可以提高磁盘的读性能。

    2.校验冗余

        根据冗余算法计算阵列中成员磁盘上数据的校验信息,将校验信息保存在其他的磁盘资源上,有利于保证数据的可靠,对于磁盘的开销比镜像冗余小。

    3.热备、热换

        热备:在不干扰当前系统的正常使用的情况之下,用系统中另外一个正常的备用磁盘顶替失效磁盘。

        热换:在不干扰当前系统的正常使用的情况之下,用正常的磁盘物理替换RAID阵列中的失效磁盘。

三、级别

        组成RAID阵列的不同方式称为RAID级别

        不同的RAID级别会产生不同存储性能、数据可靠性、存储成本。级别仅代表磁盘不同的组织方式,没有上下级之分。

    RAID0:

        方式:条带

        性能提升:读写

        冗余能力:无

        空间利用率:nS

        磁盘需求:至少两块硬盘

        适用领域:视频生成和编辑、图像编辑、其他需要大的传输带宽的操作。

    RAID1:

        方式:镜像

        性能提升:写性能下降,读性能提升

        冗余能力:有

        空间利用率:1/2

        磁盘需求:至少两块硬盘

        适用领域:财务、金融等高可用、高安全的数据存储环境。

    RAID2:

    RAID3:

    RAID4:2、3、4无太大区别,故不介绍。

    RAID5:

        方式:校验

        性能提升:读写

        冗余能力:有

        空间利用率:(n-1)/n

        磁盘需求:至少三块硬盘

        适用领域:文件服务器、Email服务器、Web服务器等环境、数据库应用

RAID10:

        方式:镜像+条带

        性能提升:读写

        冗余能力:有

        空间利用率:1/2

        磁盘需求:至少四块硬盘

        适用领域:高可用和高安全性的数据库应用

RAID01:

        方式:条带+镜像

        性能提升:读写

        冗余能力:有

        空间利用率:1/2

        磁盘需求:至少四块硬盘

RAID50:

        方式:校验+条带

        性能提升:读写

        冗余能力:有

        空间利用率:(n-2)/n

        磁盘需求:至少六块硬盘

四、管理

1.mdadm:将任何块设备做成RAID

    模式化的命令:

        创建模式:

            -C

            专用选项:

                -l:级别

                -n #:设备个数

                -a {yes|no}:是否自动为其创建设备文件

                -c #:chunk大小,2^n,默认为64K

                -x #:指定空闲盘的个数

        管理模式:

            --add,--remove,--fail

            mdadm md# --fail /dev/sdb#

        监控模式:

            -F

        增长模式:        

            -G

        装配模式:

            -A

    查看RAID阵列的详细信息
        mdadm -D /dev/md#
        --detail
    停止阵列:
        mdadm -S /dev/md#
        --stop

2.例子

创建一个RAID 0 设备(32kCHUNK,3个盘,自动创建设备文件),并查询相关信息:     

mdadm -C /dev/md0 -l 0 -n 3 -a yes -c 32 /dev/sdb1 /dev/sdb2 /dev/sdb3
[root@server ~]# cat /proc/mdstat 
Personalities : [raid0] 
md0 : active raid0 sdb3[2] sdb2[1] sdb1[0]
      3142656 blocks super 1.2 32k chunks
[root@server ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Fri Jun 30 05:54:48 2017
     Raid Level : raid0
     Array Size : 3142656 (3.00 GiB 3.22 GB)
   Raid Devices : 3
  Total Devices : 3
    Persistence : Superblock is persistent

    Update Time : Fri Jun 30 05:54:48 2017
          State : clean 
 Active Devices : 3
Working Devices : 3
 Failed Devices : 0
  Spare Devices : 0

     Chunk Size : 32K

           Name : server.centos:0  (local to host server.centos)
           UUID : 20feb2f1:6b92c26f:6327674c:0d85c0df
         Events : 0

    Number   Major   Minor   RaidDevice State
       0       8       17        0      active sync   /dev/sdb1
       1       8       18        1      active sync   /dev/sdb2
       2       8       19        2      active sync   /dev/sdb3

创建一个RAID 1 设备(32kCHUNK,2个盘,自动创建设备文件),并查询相关信息:

mdadm -C /dev/md1 -l 1 -n 2 -a yes -c 32 /dev/sdb5 /dev/sdb6
[root@server ~]# mdadm -D /dev/md1
/dev/md1:
        Version : 1.2
  Creation Time : Fri Jun 30 06:07:32 2017
     Raid Level : raid1
     Array Size : 1047552 (1023.00 MiB 1072.69 MB)
  Used Dev Size : 1047552 (1023.00 MiB 1072.69 MB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Fri Jun 30 06:07:37 2017
          State : clean 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

           Name : server.centos:1  (local to host server.centos)
           UUID : 06d9a0da:a50fc2f3:8594ede5:5befe251
         Events : 17

    Number   Major   Minor   RaidDevice State
       0       8       21        0      active sync   /dev/sdb5
       1       8       22        1      active sync   /dev/sdb6


         将当前RAID信息保存至配置文件,以便以后进行装配,内部含有UUID信息,可以写入/etc/fstab文件实现自动挂载:
         mdamd -D --scan > /etc/mdadm.conf


RAID学习笔记