Linux之Raid详解


    RAID即廉价冗余磁盘阵列(Redundant Array of Inexpensive Disk),从Linux2.4内核开始,Linux就提供软件RAID。实现方式为将多个磁盘按照一定的机制组织起来;能够提高IO性能,提升耐用性,并且支持冗余功能。

    RAID类型:

        外接式磁盘阵列:通过扩展卡实现

        内接式RAID:主板集成RAID控制器

        Software RAID:软RAID

    

    硬件式的RAID在BIOS中进行单独配置


    Level:

        RAID-0:(Stripe),中文译为集带工作方式。它是将要存取的数据以条带状形式平均分配到多个硬盘上,读写时多个硬盘同时进行读写。

            读写性能提升

            可用空间:磁盘数*单块磁盘容量

            无冗余功能

            最少磁盘数:2


        RAID-1:(Mirror),中文译为镜像方式。这种工作方式是为了数据安全考虑的,它是把用户写入磁盘的数据百分之百地复制到另外一个硬盘上。读取数据时,系统从源盘读取,如果读取成功就不去管镜像盘;如果读取失败,则系统自动转而读取镜像盘上的数据。

             读性能提升,写性能下降

            可用空间:1*单块磁盘容量

            有冗余能力

            最少磁盘数:2

        

        由于RAID2,3很少用到,在这里就不多做解释


        RAID-4:带奇偶校验码的独立磁盘结构。RAID4对数据的访问时按磁盘进行的,每次是一个盘,每次写操作都需要访问奇偶盘,这时奇偶盘会成为写操作的瓶颈。

            读写能力下降

            最少磁盘数:3


        RAID-5:是一种存储性能、数据安全和存储成本兼顾的存储解决方案。各快独立硬盘进行条带化分割,相同的条带区进行奇偶校验,校验数据平均分布在每块硬盘上。

            读写性能提升

            可用空间:(磁盘数-1)*单块磁盘容量

            有冗余能力

            最少磁盘数:3

    

        RAID10:高可靠性与高效磁盘结构。这种结构就是一个带区结构和一个镜像结构,因为两种结构相互补充,达到既高效又高速的目的。

            先做RAID1,再做RAID0

            读写性能提升

            可用空间:磁盘数*单块磁盘容量/2

            有冗余能力

            最少磁盘数:4


    以上所介绍的RAID级别都是在现实生产坏境中常用的



    下面介绍下在linux中软件RAID的实现方式

    

    CentOS 6上的软件RAID实现:

        结合内核中的md(multi devices)工具


        mdadm:模式化的工具

            语法格式:mdadm [mode] <raiddevice> [options] <component-devices>

                支持的RAID级别:RAID0,RAID1,RAID5,RAID10等

        

            mode:模式

                -C:创建

                    -n #:使用多少个块设备来创建此RAID

                    -l #:创建什么RAID级别

                    -a{yes|no}:是否自动创建目标RAID的设备文件

                    -c CHUNK_SIZE:指定块大小

                    -x #:空闲盘个数指定

                 -A:装配

                -F:监控

                -f,-r,-a:普通

        

            <raiddevice>:/dev/md#

            <component-devices>:任意块设备


            注意:使用前先把分区设置为fd格式,代表RAID

        例:创建一个RAID5设备

         mdadm -C -l 5 -a yes -n 2 /dev/设备名 /dev/设备名