zoukankan      html  css  js  c++  java
  • RAID磁盘阵列

     一、RAID:Redundant Arrays of Independent Drives

    价格便宜具有冗余能力的磁盘阵列(Inexpensive)

    二、磁盘阵列功能:

    在数组中任一颗磁盘故障时,仍可读出数据。

    在数据重构时,将数据经过计算后重新置入新硬盘中。

    三、使用RAID的好处:

    通过把多个磁盘组织在一起作为一个逻辑卷提供磁盘跨越功能。

    通过把数据分成多个数据块(Block)并行写入/读出多个磁盘以提高访问磁盘的速度。

    通过镜像或校验操作提供容错能力。

    四、RAID 中主要有三个关键概念和技术:

    1、镜像( Mirroring )

    将数据复制到多个磁盘,一方面可以提高可靠性,另一方面可并发从两个或多个副本读取数据来提高读性能。

    显而易见,镜像的写性能要稍低, 确保数据正确地写到多个磁盘需要更多的时间消耗。

    2、数据条带( Data Stripping )

    将数据分片保存在多个不同的磁盘,多个数据分片共同组成一个完整数据副本,这与镜像的多个副本是不同的,它通常用于性能考虑。

    数据条带具有更高的并发粒度,当访问数据时,可以同时对位于不同磁盘上数据进行读写操作,从而获得非常可观的 I/O 性能提升 。

    3、数据校验( Data parity )

    利用冗余数据进行数据错误检测和修复,冗余数据通常采用海明码、异或操作等算法来计算获得。

    利用校验功能,可以很大程度上提高磁盘阵列的可靠性、鲁棒性和容错能力。

    不过,数据校验需要从多处读取数据并进行计算和对比,会影响系统性能。

    五、RAID有哪几种?

    一共有0~6一共7种,这其中RAID 0、RAID1、RAID 5和RAID6比较常用。

    1、RAID 0

    特点:

    以“条带”的方式进行存储数据(至少2块磁盘)。

    如果你有n块磁盘,原来只能同时写一块磁盘,写满了再下一块,做了RAID 0之后,

    n块可以同时写,速度提升很快,但由于没有备份,可靠性很差。n最少为2。

    2、RAID 1

    特点:

    是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件。(至少2块磁盘)mirroring(镜像卷)。

    正因为RAID 0太不可靠,所以衍生出了RAID1。

    如果你有n块磁盘,把其中n/2块磁盘作为镜像磁盘,在往其中一块磁盘写入数据时,也同时往另一块写数据。

    坏了其中一块时,镜像磁盘自动顶上,可靠性最佳,但空间利用率太低。n最少为2。

    3、RAID 3

    为了说明白RAID 5,先说RAID 3,RAID 3是若你有n块盘,其中1块盘作为校验盘,剩余n-1块盘相当于作RAID 0同时读写,当其中一块盘坏掉时,可以通过校验码还原出坏掉盘的原始数据。

    这个校验方式比较特别,奇偶检验,1 XOR 0 XOR 1=0,0 XOR 1 XOR 0=1,最后的数据是校验数据,当中间缺了一个数据时,可以通过其他盘的数据和校验数据推算出来。但是这有个问题,由于n-1块盘做了RAID 0,每一次读写都要牵动所有盘来为它服务,而且万一校验盘坏掉就完蛋了。最多允许坏一块盘,n最少为3。

    4、RAID 5

    特点:

    条带+分布校验(最少3块磁盘)

    在RAID 3的基础上有所区别,同样是相当于是1块盘的大小作为校验盘,n-1块盘的大小作为数据盘,但校验码分布在各个磁盘中,不是单独的一块磁盘,也就是分布式校验盘,这样做好处多多。最多坏一块盘。n最少为3。

    5、RAID 6

    特点:

    条带+分布校验(一组最少需要4个磁盘)

    在RAID 5的基础上,又增加了一种校验码,和解方程似的,一种校验码一个方程,最多有两个未知数,也就是最多坏两块盘。

    6、RAID 10和RAID 01

    特点:

    兼备了 RAID 0 和 RAID 1 的优点。

    是先做镜像再作条带化,是对虚拟磁盘实现镜像。它先用两块磁盘建立镜像,然后再在镜像内部做条带化。

    六、结构关系图

    1、RAID-0结构关系图

    2、RAID-1结构关系图

    3、RAID-5:条带+分布校验(三块磁盘以上)

    4、RAID-10:镜像+条带(四块磁盘以上)

    mdadm语法格式:

    (1)一般格式:

    mdadm [mode] raiddevice [options] 
    mode:模式 
    raiddevice:raid设备 
    options:选项 
    component-devices:组成设备

    (2)进入各个模式的选项 
    ①创建模式:-C 
    ②管理模式:-add 或者 –del 
    ③监控模式:-F 
    ④增长模式:-G 
    ⑤装配模式:-A

    (3)创建模式下的专用选项 
    ①指定RAID级别:-l

    ②指定设备个数:-n #

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

    ④指定创建RAID设备的数据块(CHUNK)大小(默认64K): 
    -c #unit

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

    RAID-1

    查看磁盘

    # ls /dev/sd

    分区之后

    # mdadm -C -v /dev/md1 -l 1 -n 2 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1

     

     # watch -n 1 cat /proc/mdstat

    #cat /proc/mdstat 

    # fdisk /dev/md1 

    格式化

    # mkfs.xfs /dev/md1p1 

    挂载

     

    # cat /proc/mdstat 

    模拟磁盘损坏

    # mdadm -f /dev/md1 /dev/sdc1

     

    移除

    # mdadm -r /dev/md1 /dev/sdc1

    RAID-1磁盘阵列搭建成功。

    RAID-5

    查看磁盘

    #ll /dev/sd{b,c,d,e}1

    # mdadm -C -v /dev/md5 -l 5 -n 3 -x 1 /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1

     

    # watch -n 1 cat /proc/mdstat 

    查看md5详细信息

    # mdadm -D /dev/md5

    格式化

    # mkfs -t xfs /dev/md5 

    # cat /proc/mdstat

    停止md5

    # mdadm -S /dev/md5

    查看一下

    # cat /proc/mdstat 

     RAID-5磁盘阵列搭建成功。

    RAID-10

    分区之后查看

    # ll /dev/sd*

    # mdadm -C -v /dev/md10 -l 1 -n 2 /dev/sdb1 /dev/sdc1

    # mdadm -C -v /dev/md20 -l 1 -n 2 /dev/sdd1 /dev/sde1

    # watch -n 1 cat /proc/mdstat

    分区

    #fdisk /dev/md10

    格式化

     # mkfs -t xfs /dev/md10

    挂载

    # mdadm -Ss

    # mdadm -As

    RAID-10磁盘阵列搭建成功。

  • 相关阅读:
    Lightoj 1422
    BZOJ 1801 [AHOI 2009] 中国象棋(DP)
    [SCOI2008]天平
    [SCOI2008]奖励关
    [USACO08JAN]haybale猜测Haybale Guessing
    [Sdoi2016]征途
    [SHOI2014]概率充电器
    [USACO08JAN]电话线Telephone Lines
    [HEOI2016]排序
    友好的生物
  • 原文地址:https://www.cnblogs.com/djlsunshine/p/9681022.html
Copyright © 2011-2022 走看看