• RAID


    硬盘镜像技术

    旧式RAID:使用IDE

    新式RAID:使用SATA、SCSI

     RAID种类

    RAID0:条带

       性能表现:读、写 提升至N倍

       冗余能力:无

       空间利用率:N

       磁盘数量:至少2块

    RAID1:镜像

        性能表现:写性能下降(需同步),读性能提升(可以交替读) 

        冗余能力:有 

        空间利用率:1/2

       磁盘数量:至少2块 

    RAID 0+1:先用条带技术,再对各自数据进行镜像

       性能表现:读、写提升

       冗余能力:有(硬盘坏时修复:牵一发而动全。)

       空间利用率:1/2

       磁盘数量:至少4块

    RAID 1+0 :先对各自数据进行镜像,再用条带技术。

       性能表现:读、写提升

       冗余能力:有,(硬盘坏时修复:较RAID1+0更容易,更快)

       空间利用率:1/2

       磁盘数量:至少4块

    RAID4:采用校验码技术,单独1磁盘存放校验码。

       性能表现:小于n-1倍,因为检验码盘速度慢,会成为速率瓶颈。

       冗余能力:有,不能坏2块

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

       磁盘数量:至少3块

    RAID5:采用校验码技术,所有盘轮流存放校验码。

       性能表现:略小于n-1倍,轮流存放校验码技术,减少瓶颈。

       冗余能力:有,不能坏2块

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

       磁盘数量:至少3块

    RAID 5+0:先RAID5,然后再镜像

       性能表现:读、写提升

       冗余能力:有

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

       磁盘数量:至少6块

    JBOD技术:将多个盘组合成1个盘使用,利用HDFS文件系统,可实现在文件系统级别找回丢失文件。

        性能表现:无提升

        冗余能力:无

        空间利用率:100%

        磁盘数量:至少2块

        使用案例:Hadoop

     RAID实现方式

    硬件RAID

    1.方式 1:

            RAID磁盘阵列卡

            存储箱:N块硬盘

            连接线:连接存储箱于RAID控制器

    2.方式2:

           RAID控制器:可控制硬盘上的插槽

           硬盘插槽:

           连接线:连接硬盘与插槽。

    RAID实现步骤:

    1)通过BIOS界面配置RAID:配置启用RAID控制器,配置相关盘配置成RAID

     2)安装操作系统,如果系统不识别RAID,需在安装系统前安装RAID磁盘驱动;

    在OS看来,RAID设备文件名为/dev/sda、/dev/sdb这样的格式。

    软件RAID

    OS中,直接操作硬件的只有内核

    RAID前提:内核安装md(多磁盘)模块,通过md模板,将多个物理设备组合成RAID

    实现原理:

        1.内核模拟一个RAID,设备文件:/dev/md0、/dev/md1。。。

        2.CPU将存储数据给/dev/md,md管理模板根据RAID方式存储具体的磁盘设备/dev/sda、/dev/sdb等

    性能:取决于CPU能力,较差。

    OS一挂,RAID数据无法找回,解决方法:将raid分区系统表示设备为fd(253),这样在存储数据到RAID时,会多写入元数据,

    若OS一挂,充值系统时,只要内核安装了md模块,会自动扫面RAID的组成磁盘,这样数据就能重新使用。

    mdadm:md管理器,用户空间工具,将任何块设备做成RAID

    mdadm [mode]  <raiddevice> [option] <component-devices>

      创建模式 

             -C

                  选项:

                       -l:级别

                           0:RAID0

            1:RAID1

            4:RAID4

            5:RAID5

            6:RAID6

            10:RAID1+0

            -n Num  设备个数

         -x Num  指定空闲个数

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

         -c:指定chunk(条带数据块)大小,2^n

                     -x Num   #指定空闲盘个数,这样坏了1个盘,空闲盘将自动替换已坏的盘。

    示例:/dev/sdb创建2G的RAID0,2个1G分区

    1.创建分区:/dev/sdb1和/dev/sdb2

    #fdisk /dev/sdb

      n --->p---->1---->回车----> +1G

      n---->p---->2----> 回车---->+1G

      t ---->1---->fd

      t---->2----->fd

      w

    #partprobo /dev/sdb

    #cat /proc/partitions

    2.创建RAID

     #mdadm -C  /dev/md0 -a  yes -l 0 -n 2 /dev/sdb{1,2}

    。。。

    Continue creating array? y   #输入y

    。。。

    #cat /proc/mdstat    #查看当前系统下,已启用的RAID设备

    3.制作文件系统

      #mke2fs -j  /dev/md0

    备注:mke2fs -E选项可优化RAID性能

          #mke2fs -j -E stride=16 -b 4096   #块大小4K,chunks=16*4096 (此设置需与raid设置一致才能优化性能) chunks / block = stride(条带)

    4.挂载文件系统

    #mount /dev/md0   /mnt

    5.查看磁盘阵列详细信息

    # mdadm -D /dev/md0

      管理模式:

          -f 或 --fail    #模拟损坏

          -r 或 --remove    #将设备移除阵列

          -a 或--add   #增加设备到阵列

    示例:/dev/sdb上建立2G镜像卷

    1.创建分区/dev/sdb3 /dev/sdb4

    #fdisk /dev/sdb

    n ---->p----->3----->回车---->+2G

    n---->p------>4------>回车---->+2G

    t----->3------>fd

    t----->3------>fd

    w

    #partprobe /dev/sdb

    #cat /proc/partitions

    2.创建RAID

    #mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sdb3 /dev/sdb4

    #cat /proc/mdstat

    3.制作文件系统

    #mke2fs -j /dev/md1

    4.挂载文件系统

    #mount /dev/md1 /media

    5.模拟磁盘损坏

    #mdad -f  /dev/md1 /dev/sdb3

    6.删掉损坏的磁盘

    #mdadm -r /dev/md1 /dev/sdb3

    7.重新分区/dev/sdc1(略)

    8.将/dev/sdc1加入磁盘阵列

    #mdadm -a /dev/md1 /dev/sdc1

       监控模式:

           -F

       增长模式:扩展RAID

           -G

       装配模式:系统坏了,重装RAID到其他系统

            -A

       停止阵列:

             -S --stop

        详细信息:

              -D --detail

               --scan  #将当前RAID信息保存至配置文件,方便日后装配(需与-D结合使用)

                 eg:mdadm -D --scan > /etc/mdadm.conf  (主配置文件,再次状态不需指定设备,只需读取此文件即可)

                         mdadm -S /dev/md1

                         mdadm -A /dev/md1  #无需再输入/dev/sdb4 /dev/sdc1

    watch 周期性的执行指令

        -n  Num   #指定周期,默认2s

    #watch -n Num 'COMMAND'

    eg:#watch ’cat /proc/mdstat‘

       

    111
  • 相关阅读:
    ORACLE数据库逐步解决ORA-12541、ORA-01034和ORA-27101、ORA-00119和ORA00132的过程
    Windows下MySQL主从复制的配置
    Windows下Git的使用
    spring boot 2 集成JWT实现api接口认证
    spring boot 2 全局统一返回RESTful风格数据、统一异常处理
    spring boot 2 + shiro 实现权限管理
    Java 密码加盐
    Java中往zip压缩包追加文件
    IntelliJ IDEA 安装、配置和使用Lombok插件
    大规模微服务单元化与高可用设计
  • 原文地址:https://www.cnblogs.com/zmdsg/p/7181414.html
Copyright © 2020-2023  润新知