首页 > 代码库 > 九. RAID (Redundant Arrays of Independent Disk)

九. RAID (Redundant Arrays of Independent Disk)

RAID作用,RAID级别,RAID实现方式,mdadm

1. RAID作用

  提高I/O能力: 磁盘并行读写

  提高耐用性:磁盘冗余

2. RAID级别

  常用级别RAID0,RAID1,RAID5,RAID10,RAID50,JBOD

  RAID-0  条带卷 strip, 将数据分割成chunk存在不同磁盘中

    1.提升读写能力

    2.无容错能力

    3.最少磁盘数2

    4.可用空间: n*min(disk1,disk2 ...)

    技术分享

 

  RAID-1  镜像卷 mirror, 将数据复制成多份存在不同磁盘中

    1.降低写入能力,提升读取能力

    2.可以同时坏一块硬盘

    3.最少两块磁盘

    4.可用磁盘空间: 1*min(disk1,disk2,disk3 ... )

    技术分享

 

  ...

  RAID-4  其中一块磁盘做校验盘,通过计算可算出任意一块磁盘的数据

    1.提高读写能力

    2.可以同时坏一块磁盘

    3.至少三块磁盘

    4.可以空间: (n-1)*min(disk1,disk2 ... )

    技术分享

 

  RAID-5  各磁盘轮循做校验盘,通过计算可求出任意一块磁盘的数据

    1.提高读写能力

    2.可以同时坏一块磁盘

    3.至少3块磁盘

    4.可用空间: (n-1)*min(disk1,disk2,...)

    技术分享

 

  RAID-6  计算两份校验值存在不同磁盘中,各磁盘轮循做校验盘

    1.提升读写能力

    2.可以同时坏两块磁盘

    3.至少4块磁盘

    4.可用空间: (n-2)*min(disk1,disk2 ... )

    技术分享 

  RAID-7

  RAID-10  先做RAID1, 再做RAID0

    1.提升读写能力

    2.最多可同时坏一半磁盘

    3.至少4块磁盘

    4.可用空间: n*min(disk1,disk2, ... )/2

    技术分享

 

  RAID-01  先做RAID0, 再做RAID1

  JBOD Just a Bunch Of Disk

    功能: 将多个磁盘空间合并为一个连续的空间使用

    可用空间: sum(disk1,disk2 ... )

3.RAID实现方式

  硬件实现

    外接磁盘阵列卡,通过扩展卡提供适配能力

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

  软件实现

4.mdadm - manage MD devices aka Linux Software RAID

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

  [mode]

    -C, --create

      -n #  指定用多少块磁盘做RAID

      -x # 指定用多少块磁盘做热备磁盘

      -l #  指定RAID级别

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

      -c CHUNK_SIZE  指定块大小

    -D  查看RAID详细信息

    -S  停止RAID设备

  <raiddevice>  e.g /dev/md0

  [options]

    -f  将磁盘状态设置为fail

    -r  移除磁盘设备

    -a  增加磁盘设备

  <component-devices>  e.g /dev/sdb1 /dev/sdc1 ...

5. cat /proc/mdstat  查看raid状态

6. 使用mdadm创建软RAID步骤

  1. 准备磁盘分区,并将ID更改为fd Linux raid auto

  2. mdadm 创建磁盘  e.g mdadm -C /dev/md0 -n 3 -x 1 -l 5 /dev/sd{b,c,d,e}1

  3. 格式化磁盘  e.g mkfs.etx4 /dev/md0

  

九. RAID (Redundant Arrays of Independent Disk)