• RAID


      RAID是一种存储机制,英文全名为“RedundantArrays of Inexpensive Disks”,即容错廉价磁盘阵列。RAID可以通过一些技术(硬件或者软件)将多个磁盘整合起来,不仅是一个存储,还具有数据保护、提高IO能力等功能。不同等级的RAID有不同的功能。常见的RAID级别为RAID-0,RAID-1、RAID-5、RAID-6、RAID 1+0、RAID5+0

    RAID的实现方式:软件RAID、硬件RAID

      硬件RAID:

        外接式磁盘阵列:例如通过扩展卡提供适配能力

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

      软件RAID

    chunk:

    每块组成RAID-0的磁盘,都会被分隔为固定大小的小区块即chunk。当一个文件要写入RAID是,依据小区块(chunk)的大小切割好,一次放入RAID中。

    RAID-0(等量模式,stripe):

      最少磁盘数:2

      可用空间:N*min[s1,s2……]

      优点:提升IO能力,读写性能均有提高

      缺点:没有冗余,耐用性降低

      数据存储方式:每块盘存储1/N,此处以两块磁盘为例。当有一个20M大小的数据写入时,每个磁盘将会被分配10M左右的数据

         

    RAID-1(mirror,镜像模式)

      最少磁盘数:2

      可用空间:min[s1,s2……]

      优点:

        提升IO能力,写性能没有提高(甚至会降低),读性能提高。

             有冗余,耐用性提高

      缺点:可用空间减少,由于每份数据都要完整的保存到两块磁盘,容量几乎减少50%。

      数据存储方式:每块盘都存储整个数据,彼此备份。此处以两块磁盘为例。当有一个20M大小的数据写入时,每个磁盘将会被分配20M的相同数据。

        

    RAID-10和RAID-01:

    RAID-0性能佳但是数据不安全,RAID-1数据安全但是性能不佳。所以可以将两者结合起来组成RAID-10和RAID-01。

    推荐使用raid10而不是raid01。原因时RAID10比raid01更安全。

    下图中:raid10时,当A损坏时除了B,C和D坏任何一块均可。只有再B故障时才会造成数据丢失,一次故障率为1/3

        raid01时,当A损坏,只要C和D任何一块损坏都会丢失数据,因此故障率为2/3

      RAID-10:举例来说,先将;两块磁盘组成RAID-1,再将RAID-1组成RAID-0。

        最少磁盘数:4

        可用空间:N*min[s1,s2……]/2

        优点:

          提升IO能力,读写性能提高。

               有冗余,耐用性提高

        缺点:可用空间减少,由于每份数据都要完整的保存到两块磁盘,容量几乎减少50%。

        数据存储方式:此处以四块磁盘为例。A和B组成第一组RAID-1,C和D组成第二组RAID-1,然后这两组在组成RAID-0。当有一个40M大小的数据写入时,由于RAID-0的特性,每组RAID-1会写入20M数据。由于RAID-1的特性,每块磁盘会写入20M数据。

        

     

      RAID-01:先组成RAID-0在组成RAID-1。

    RAID4

      最少磁盘数:3

      可用空间:(N-1)*min(s1,s2,23.......)

      优点:

        提升IO能力,读性能提高,写性能不一定增加,因为软RAID写入的数据还要经过计CPU算同位校验码(parity)

             有冗余,耐用性提高允许坏一块盘

        缺点:可用空间减少一块单独一块做校验盘容易成为系统瓶颈。

        数据存储方式:此处以3块磁盘为例。A、B、C三块磁盘中有一块存储其他两块盘的校验码(此处认定为C盘)。有40M数据写入时,A、B各存储20M,C用来存放A、B盘的校验码。

    RAID-5:

    以三块盘为例,与RAID4基本相同,不同的是RAID5是三块盘轮流做校验盘

      最少磁盘数:3

      可用空间:(N-1)*min(s1,s2,23.......)

      优点:

        读写性能均提升。

        有冗余,耐用性提高,允许坏一块盘。

    实验一:linux上软RAID的实现

      在centos上要实现软RAID,依赖于内核的md(multi model)模块。

      命令:mdadm(multi model admin)

      语法:mdadm   [model]  <raiddevice> [options] <component-devices>

        model:

          创建:-C

          装配:-A

          监控:-F

          管理:--manage 

            -f(--fail):将raid中某块磁盘标记为出错状态

            -r(--remove):

            -a(--add):

        raiddevice:/dev/md#。指名要创建或者管理的RAID设备。

        component-devices:指明raid组成成员是哪些盘

      -C:创建模式

        -n#:使用#快设备创建RAID

        -L#:创建RAID的级别

        -c chunk_size:指名块大小默认64M

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

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

        示例:创建一个RAID-5设备,三块磁盘做存储,一块空闲磁盘。 

          第一步查看磁盘状态,并创建新的分区如下图创建sda{5,6,7,8}四个分区

          

          将分区的类型更改为fd。上图中新建的四个分区System还是Linux,需要将其改为fd。

            

          重读磁盘分区表

            使用:partprobe命令即可

          查看系统是否已经存在md设备:cat   /proc/mdstat。可以看到并没有md设备。此步骤主要是查看主机是否曾经创建过md设备,一次确定本次创建的md设备名称

          

          创建RAID-5

            mdadm -C /dev/md0  -a yes -l 5 -n 3 -x 1 /dev/sda{6,7,8,9}

          

          初始化raid设备

            mke2fs -t ext4 /dev/md0

          挂载使用

            mount /dev/md0 /mydata

          

    仿真RAID出错状态处理

      查看raid详细信息:mdadm  --detail /dev/md0

        

      将磁盘sda6标记为错误状态

        

      查看raid信息,可以看到有一个错误状态的磁盘,并且空闲磁盘自动加入到raid中

        

        

      将出错的磁盘删除并且加入新的磁盘/dev/sda10:mdadm --manage /dev/md0 -a /dev/sda10 -r /dev/mda6

        

    关闭raid

        

  • 相关阅读:
    简单多层神经网络实现异或XOR
    思科Cisco 交换机 VTP负载均衡的配置
    AJAX异步检查,检查用户名是否存在
    C++两个队列实现一个栈
    安装SourceTree遇到的一个个坑
    Everything的简单使用
    怎么通过tomcat的catalina.out查看日志
    zk可视化工具
    Linux未安装上传下载的插件,怎么进行文件的上传下载
    Oracle修改数据库的日期
  • 原文地址:https://www.cnblogs.com/wxxjianchi/p/9678112.html
Copyright © 2020-2023  润新知