zoukankan      html  css  js  c++  java
  • Linux实现RAID

      独立磁盘冗余阵列(Redundant Arrays of Independent Disks, RAID)

      磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多段,分别存放在各个硬盘上。

      raid 0【带区卷】

      实现方法:可有2-32个成员,写数据时,一次性写入、读取N(成员数)*64KB。因此读取、写入效率高。没有冗余能力。所以从高可用性来考虑,在网络中一般不会单独使用raid 0。

      raid 1【镜像卷】

      2块成员,且数据保持一致,磁盘利用率50%。写入效率不高。读取(可从两块磁盘上一起读取)效率高。具有冗余能力,在网络中用得比较常见。

      raid 5

      成员数量最少3块,3-32。校验占了一个成员的空间,利用率达到n-1/n。写入数据要计算校验值,效率一般。读取的时候,因为数据分布在不同的磁盘上,效率高。但当有一个成员出错的时候,还要通过剩下的数据和校验值计算,因此读取效率低。

      raid 6

      若raid 5坏掉了两块数据,那么数据就读取不出来了。raid5只允许坏掉一块成员设备,而raid6用两块成员设备来存放校验值。最多只允许坏掉两块成员,是在raid5基础上做的增强。磁盘利用率是:(n-1)/n。

      raid 10 和 raid 01 是把raid0 和raid1 进行变相的合并。

      raid的实现用硬件和软件的:

      硬件:raid卡  速度快 稳定性好  价格昂贵

      软硬(soft raid):Windows 的动态磁盘

                linux的md (multi device 多设备)

      使用Linux(RHEL5.4)实现raid:

      soft raid 实现的时候,可以是一个分区,也可以是一个磁盘。在一个磁盘上用多个分区实现raid没有意义。万一磁盘坏了,整个数据都坏了。所以做的是用多个磁盘做。  

      SYNOPSIS
      mdadm [mode] <raiddevice> [options] <component-devices>

      MODES

      Assemble把一个已经创建过的重新激活,叫做装配模式。

      Create 新创建。

      Follow or Monitor 监控模式,观察数据是怎样同步的,观察状态的改变过程。

      Grow 扩展,成员或大小不断的改变,可以增加也可以减少。

      Manage 管理

      实现 raid1:

      创建分区 /dev/sda5、/dev/sda6

      

      注意:raid成员的id号要改成 fd Linux raid autodetect

      

      另起一个终端:watch -n 1 `cat /proc/mdstat`  每隔1秒观察一次结果

      

      

      格式化:

      

      挂载:

      

      模拟一个成员坏了,另一个成员上还有数据的情况:

      

      -f 表示使之失效

      

      这时候再次查看数据依然存在。

      出现这种情况的时候,要把坏的盘换掉。移除坏掉的盘方法如下:

      

      

      增加一个新成员的方法如下:

      

      

      当出现坏掉的盘时,这样做有点被动。接下来做一个自动的:

      首先要卸载:

      然后停止raid:

       

      

      

      做一个有备份的raid1,当有一个成员失效时,自动将备份的换上。

      

      -x 表示备份

      

      

      

      模拟sda5失效:

      

       

      移除失效的成员:

      

      

      为了防范于未然,最后再放一个备份的成员

      

      

      当想要执行正常的装配的时候,关于该md设备必须有一个配置文件,该配置文件描述了当前有哪些raid,分别是什么级别,每个级别包含哪些成员,产生这个文件的指令是:

        

      mdadm -A /dev/md0 (装配)

      实现 raid 5:

      实现raid5正常的是三个成员,要做成比较智能的需要四个成员,一个作为替补。无论是raid1还是raid5,要求成员的可用空间要一样。

      

      格式化、挂载

      

      

       模拟一个成员失效的情况:

      

      接下来要做的就是换掉坏的成员。和上面一样。

      

      

      

  • 相关阅读:
    typora 页内跳转
    shell脚本搭建redis集群
    Html
    python json模块
    jenkins 问题合集
    day05 每日一行
    day04 每次一行
    day03 每日一行
    day02
    day02 每日一行
  • 原文地址:https://www.cnblogs.com/reagina/p/6294745.html
Copyright © 2011-2022 走看看