RAID学习总结

RAID(Redundant Array of Independent Disks):

定义:独立硬盘冗余阵列,旧称廉价磁盘冗余阵列(Redundant Array of Independent Disks),简称磁盘阵列。

原理:把多个相对便宜的硬盘组合起来,成为一个硬盘阵列组,使其性能达到甚至超过价格昂贵,容量巨大的硬盘。

优势:

  • RAID在容量和管理上的优势

    • 易于灵活地进行容量拓展

    • “虚拟化”可使管理性极大的增强

  • RAID在性能上的优势

    • “磁盘分块”技术带来性能的提高

  • RAID在可靠性和可用性上的优势

    • 通过冗余技术和热备、热换提升了可靠性

分级

RAID-0:条带卷。将两个以上磁盘并联起来,成为一个大容量的磁盘。在存放数据时,以条带的形式将数据块(chunk)均匀分布在阵列的各个磁盘上,因为读写时都可以并行处理,所以在所有的级别中,RAID-0的速度是最快的。但是RAID-0既没有冗余能力,也不具备容错能力,如果一个物理磁盘损坏,所有数据都会丢失。

小结:

  1. 硬盘的读、写性能均得到提高

  2. 磁盘阵列可用空间:size=N*min(S1,S2,S3…)

  3. 无容错能力

  4. 所需最少磁盘数为2块

应用场景:视频生成和编辑、图像编辑及其他需要大的传输带宽的操作。

RAID学习总结

RAID-1:镜像卷。以镜像为冗余方式,对虚拟磁盘上的数据做多份拷贝,放在成员磁盘上。在一些多线程操作系统中能有很好的读取速度,理论上读取速度等于硬盘数量的倍数,另外写入速度有微小的降低。只要一个磁盘正常即可维持运作,可靠性最高。其原理为在主硬盘上存放数据的同时也在镜像硬盘上写一样的数据。当主硬盘(物理)损坏时,镜像硬盘则代替主硬盘的工作。因为有镜像硬盘做数据备份,所以RAID 1的数据安全性在所有的RAID级别上来说是最好的。但无论用多少磁盘做RAID-1,仅算一个磁盘的容量,是所有RAID中磁盘利用率最低的一个级别。

小结:

  1. 读性能提升,写性能略有下降

  2. 磁盘阵列可用空间:size=min(S1,S2,S3…)

  3. 有冗余能力

  4. 所需最少磁盘数为2块

应用场景:财务、金融等高可用、高安全的数据存储环境

RAID学习总结

RAID-3:数据块被分为更小的块并行传输到各个成员磁盘上,同时计算XOR校验数据存放到专用的校验磁盘上,比较适于读取大量数据时使用。

小结:

  1. 读写性能都比较好当有磁盘损坏时,对整体吞吐量影响较小

  2. 采用并行存取方式,主轴同步时吞吐量没有提高校验磁盘的写性能有瓶颈

  3. 所需最少磁盘数为3块

应用场景:视频生成和图像、视频编辑等需要高吞吐量的应用环境

RAID学习总结

RAID-4:数据被分为更大的块并行传输到各个成员磁盘上,同时计算XOR校验数据存放到专用的校验磁盘上,它与RAID 3不同的是它在分区时是以区块为单位分别存在硬盘中.

小结:

  1. 提高了读、写性能,但是冗余校验码都是存放在单一硬盘上,所以此硬盘性能可能会很差

  2. 提高了硬盘容错能力

  3. 阵列所需最少磁盘数为3块

  4. 可用空间:size=(N-1)*min(S1,S2,S3…)

RAID学习总结

RAID-5:较RAID-4,采用独立存取的阵列方式,校验信息被均匀的分散到阵列的各个磁盘上。

小结:

  1. 提高了读、写性能

  2. 提升了硬盘的容错能力

  3. 阵列的可用空间:size=(N-1)*min(S1,S2,…)

  4. 最少磁盘数为3块

应用场景:文件服务器、Email服务器、Web服务器等环境数据库应用

RAID学习总结

RAID-6:带有两种分布存储的检验信息的磁盘阵列,它是对RAID5的扩展,主要是用于要求数据绝对不能出错的场合,使用了二种奇偶校验方法,需要N+2个磁盘。

小结:

  1. 读、写性能提升

  2. 可用空间:size=(N-2)*min(S1,S2,…)

  3. 提高了容错能力

  4. 所需最少磁盘数为4块

RAID学习总结

RAID-10:结合RAID-1和RAID-0,先镜像,再条带化。

小结:

  1. 读、写性能提升

  2. 可用空间:size=N*min(S1,S2,…)/2

  3. 有容错能力:每组镜像最多只能坏一块

  4. 最少磁盘数为4块

应用场景:多用于要求高可用性和高安全性的数据库应用

RAID学习总结

RAID-01:结合RAID-0和RAID-1,先条带化,再镜像。

小结:

  1. 读、写性能提升

  2. 可用空间:size=N*min(S1,S2,…)/2

  3. 有容错能力,但效果不理想

  4. 所需最少磁盘数为4块

RAID学习总结

RAID-50:RAID 5与RAID 0的组合,先作RAID 5,再作RAID 0.

小结:

RAID 50在底层的任一组或多组RAID 5中出现1颗硬盘损坏时,仍能维持运作,不过如果任一组RAID 5中出现2颗或2颗以上硬盘损毁,整组RAID 50就会失效。

应用场景:大型数据库服务器、应用服务器、文件服务器等应用

RAID学习总结

JBOD:将多个硬盘空间合并成一个大的逻辑硬盘。

小结:

  1. 没有错误备援机制

  2. size=sum(S1,S2,…)

RAID学习总结

常用RAID级别的比较

RAID学习总结

RAID的实现方式

  • 硬件方式:主板上集成了相应的硬件和控制芯片,需要在BIOS界面中进行配置。硬件RAID的实现不占用其他硬件资源,稳定性和速度都比软件RAID高,对于服务器来说,一般使用硬件RAID来提高计算机的性能。

  • 软件方式:通过内核的md(Multi Devices)机制来实现,由于没有独立的硬件和接口,需要占用一定的系统资源。

CentOS 6上软件RAID的实现

  • 模块化工具mdadm

    1.支持的RAID级别:RAID0,RAID1,RAID4,RAID5,RAID6,RAID10;
    2.可以基于多块硬盘、分区以及逻辑卷来实现RAID;
    3.状态信息保存在/proc/mdstat
    4.已创建好的RAID位于/dev/md#
  • mdadm的语法格式

    mdadm [mode] <raiddevice> [options] <component-devices>
                模式:
                    创建:-C
                    装配: -A
                    监控: -F
                    管理:-f, -r, -a
    
                <raiddevice>: /dev/md#
                <component-devices>: 任意块设备
    
    
                -C: 创建模式
                    -n #: 使用#个块设备来创建此RAID;
                    -l #:指明要创建的RAID的级别;
                    -a {yes|no}:自动创建目标RAID设备的设备文件;
                    -c CHUNK_SIZE: 指明块大小;
                    -x #: 指明空闲盘的个数;
    
    
                -D:显示raid的详细信息;
                    mdadm -D /dev/md#
    
                管理模式:
                    -f: 标记指定磁盘为损坏;
                    -a: 添加磁盘
                    -r: 移除磁盘
    
                观察md的状态:
                    cat /proc/mdstat
    
                停止md设备:
                    mdadm -S /dev/md#
  • 实现实例

创建一个大小为10G的RAID1,要求有一个空闲盘,而且CHUNK大小为128k,格式化ext4文件系统,要求可开机自动挂载至/backup目录,而且不更新访问时间戳,且支持acl功能

[root@CentOS6 ~]# mdadm -C /dev/md0 -n 2 -l 1 -c 128 /dev/sd{b,c}

[root@CentOS6 ~]# mdadm -D /dev/md0
/dev/md0:
        Version : 1.2
  Creation Time : Fri Aug 19 15:40:11 2016
     Raid Level : raid1
     Array Size : 5238720 (5.00 GiB 5.36 GB)
  Used Dev Size : 5238720 (5.00 GiB 5.36 GB)
   Raid Devices : 2
  Total Devices : 2
    Persistence : Superblock is persistent

    Update Time : Fri Aug 19 15:40:27 2016
          State : clean, resyncing 
 Active Devices : 2
Working Devices : 2
 Failed Devices : 0
  Spare Devices : 0

  Resync Status : 64% complete

           Name : CentOS6:0  (local to host CentOS6)
           UUID : f92a25b5:a1120042:521176b5:1964c806
         Events : 10

    Number   Major   Minor   RaidDevice State
       0       8       16        0      active sync   /dev/sdb
       1       8       32        1      active sync   /dev/sdc

[root@CentOS6 ~]# mkfs.ext4 /dev/md0
[root@CentOS6 ~]# echo "/dev/md1    /backup   ext4  defaults,acl,nodiratime  0 0"  >> /etc/fstab
  • 注意:

    • 创建好RAID之后,最好将相关信息保存到/etc/mdadm文件中,如是在下次启动系统时会自动挂载启用RAID

      # mdadm -D --scan > /etc/mdadm.conf
    • 创建好RAID之后使用时要使用RAID设备来挂载,不要对原块设备操作

    • 在停止RAID之前要先卸载,而后使用mdadm -S命令

    • 若要重启RAID使用mdadm -R命令,但是由于操作系统或软件版本的问题,关闭RAID后会找不到/dev/md#块设备,此时只要重启系统便可,因为已把相关信息保存至/etc/mdadm.conf文件

其他概念:

XOR算法:相同为假,不同为真。

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

热换是指在不影响系统正常运转的情况下,用正常的磁盘物理替换RAID阵列中的失效磁盘。

原创文章,作者:Jeason,如若转载,请注明出处:http://www.178linux.com/37550

(0)
JeasonJeason
上一篇 2016-08-22
下一篇 2016-08-22

相关推荐

  • Linux文件查找工具之find “大宝剑”

    一、文件查找工具常用软件 locate:     locate命令其实是find -name的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库/var/lib/locatedb,这个数据库中含有本地所有文件信息。Linux系统自动创建这个数据库,并且每天自动更新一次,所以使用locate命令…

    Linux干货 2016-03-12
  • H3C 设备监测命令大全 (v3)

    H3C 设备监测命令大全  display aaa unsent-h323-call-record  display acl      display alarm   urgent   display…

    Linux干货 2016-06-01
  • inode的理解

    一、inode是什么 理解inode,要从文件储存说起。 文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)。 操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的&q…

    Linux干货 2017-01-16
  • LVM逻辑卷管理

    一、简述 什么是逻辑卷?LVM(Logical Volume Manager)利用Linux内核device-mapper实现存储系统的虚拟化。通过LVM,把底层存储硬件抽象化成存储逻辑块,再将这些逻辑块集合构成存储池,从存储池空间划分分区,可以简单地扩大或缩小分区,而不用担心硬盘没有足够的连续空间。 使用逻辑卷分区有什么用?使用逻辑卷分区重点在于可以弹性地…

    Linux干货 2016-09-06
  • 文本三剑客之sed

    文本处理三剑客之sed sed 本身也是一个管线命令,是一个(流|行)编辑器! 而且 sed 还可以将数据进行取代、删除、新增、撷取特定行等等的功能。工作模式是从源文件中一次读取一行,存储到sed自己的内存中进行处理,如果模式被匹配到就可以编辑并且输出到标准输出,如果没有被匹配到则直接输出到标准输出。     sed …

    Linux干货 2016-08-10
  • 用户和用户组相关的配置文件

    用户和用户组相关的配置文件 一、与用户相关的配置文件 一般来说,与用户配置相关的几个文件如下: l  /etc/passwd: 最重要的文件,存储着用户的用户名,UID,Shell等信息 l  /etc/shadow: 用户密码文件,使用sha-1算法加密存储(注意该文件的权限) l  /etc/skel/: 用户的模板文件,新…

    Linux干货 2016-10-23