独立磁盘冗余阵列(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,要求成员的可用空间要一样。

  

  格式化、挂载

  

  

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

  

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