一、raid是什么

raid全名是:redundant array inexpensive disks廉价冗余磁盘阵列

后改名为:redundant array independent disks独立冗余磁盘阵列

二、raid常见级别

raid级别有:0,1,2,3,4,5,6,7,10,50

常用的有:0,1,5,6,10,50(在这里主要介绍一下常用的)

三、raid的理论实现

    raid0:高性能,无冗余功能(没有容错能力,任何一个磁盘坏掉,整个系统就会坏掉),磁盘利用率为100%,数据存贮时是轮调的,至少需要2块磁盘(任何数据存储时各一半)

raid1:写入性能低,数据存储时要在所有磁盘中都存取 轮调读取,读取性能高,有容错能力,镜像磁盘,磁盘利用率为1%n,至少需要2块磁盘,支持空闲盘

    raid4:轮调,至少需要3块磁盘,两个轮调,一个用来存放校验码(以三个磁盘为例,0号磁盘与1号磁盘各装一般数据,raid0,校验码为两个数据异或而得)磁盘利用率为(n-1)%n,只允许坏一块盘

    raid5:校验码在磁盘中轮流存放的,不再单一磁盘中存放,至少需要3块磁盘,只允许坏一块盘,读写性能相对raid4都有所提升,支持空闲盘,容错1块盘

      默认为作对称

      左非对称:

  D0 D1 P

  D2 P  D3

  P  D4 D5

  右非对称

  P D0 D1

  D2 P D3

  D4 D5 P

  左对称

  DO D1 P

  D3 P D2

  P  D5 D4

  右对称

  P D1 D0

  D3 P D2

  D5 D4 P

    raid6:至少需要4快磁盘,有两块盘存储校验码,其余分配方式与raid5相同,raid5的升级版,磁盘使用率(n-2)%n,能同时坏两个磁盘,支持空闲盘

raid10:先做raid1,再做raid0就是raid10,磁盘利用率为50%,最多,每个raid1坏一个,同组的话不能同时坏

四、raid的建立

要建立一个软raid,首先就得先介绍一下mdadm(模式化)命令

mdadm命令用法: mdadm(模式化)

         -A assemble装配模式(被停下来的设备必须使用装配)

         -C create创建模式(挂载到别的地方时,/dev/md0挂载到/mnt上必须将md0格式化一下)

         -a事先不存在的设备文件,可自动创建例如mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/sda6 /dev/sda7

             -n表示使用几块磁盘来创建raid

             -x表示有几块空闲盘

             -c表示chunk,指定块大小

             -l指定级别

             -p layout

         -F follow or monitor监视模式 

         -G grow增长模式

         -S 停止一个raid设备

         -D详细信息的说明

         Mmanage管理模式

            -a :add新增一块磁盘

            -f :fail是一个盘坏掉

            -r :remove删除一块已经坏掉的盘

raid5的详细创建说明(磁盘分区已事先准备好,sda10,11,12,13为例)

1.首先建一个raid5

mdadm -C /dev/md3 -a yes -l 5 -n 3 /dev/sda{10,11,12}

2.然后格式化

mke2fs -b 2048 -E stride=32 /dev/md3

3.挂载

mount /dev/md3 /tmp/qinqinaini

4.扩展

mdadm /dev/md3 -a /dev/sda13

5.模式扩展

mdadm -G /dev/md3 -n 4

6.重塑

resize2fs /dev/md3

raid10的详细创建说明(磁盘分区已实现准备好,sda4,5,6,7为例)

1.首先建一个raid1

mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/sda{4,5}

2.创建另一个raid1

mdadm -C /dev/md2 -a yes -l 1 -n 2 /dev/sda{6,7}

3.创建raid10

mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/md1 /dev/md2

4.格式化

mke2fs -b 2048 -E stride=32 /dev/md0

5.挂载

mount /dev/md0 /tmp/qinqinaini