天天看点

RAID基础知识

RAID的介绍:

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

RAID的机制:就是将多个磁盘设备组合成一个阵列,从而当做一块逻辑设备来使用

根据磁盘组织方式的不同RAID有所谓的RAID level之分:比较常用的如RAID 0、RAID1、RAID5、RAID01、RAID10、RAID50 其级别只代表磁盘组合方式不同;

RAID0:是应用条带技术组成的条带磁盘设备

   性能提升:读写性能都提升

   但是没有冗余能力(容错能力):无

   空间利用率:nS

   至少需要两块盘才能创建RAID0

RAID1:是用磁盘镜像技术所组成的磁盘设备

   性能表现:写性能下降,但读性能提升

   冗余能力:有

   空间利用率:1/2  

   至少需要两块盘才能创建RAID1

RAID5:是利用校验码技术组成的磁盘设备

   性能表现:读写都提升了

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

   至少需要3块盘才能创建RAID5

RAID 10:是先做镜像技术,在做条带技术 (这个技术更加适用于企业)

   想能表现:读写提升

   荣誉能力:有

   空间利用1/2

   至少需要4块盘才能创建RAID10

RAID 01:是先做条带技术,在做镜像技术

   至少需要4块盘才能创建RAID01

RAID 50:是先做校验码技术,在做条带技术

   性能表现:读,写提升

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

   至少6块块盘才能创建RAID50

jbod:是将多块小盘组合成一块大盘来使用

   性能表现:无提升

   冗余能力:无提升

   空间利用率:100%

   至少2块盘才能创建RAID

怎么去实现RAID,RAID的实现形式有两种

一种叫做硬件RAID

一种叫做软件RAID

硬件RAID实现:

主板上各种硬件设备特性的设置都是通过BIOS来设置的,通过BIOS的界面来配置启用RAID芯片制定成相应的RAID级别

如果把不同的磁盘组合成RAID0 或者RAID1,这时系统只会识别的是RAID0盘和RAID1盘,操作系统要想识别RAID0和RAID1就得有相应的驱动,否则是不能够识别的

安装完之后,系统把这些RAID都看成是串行口的设备,所以把RAID都识别为/dev/sd格式的磁盘

很可能都写厂商提供的RAID芯片,我们的操作系统是识别不了的,所以安装过程中一定要而外提供驱动程序

软件(逻辑)RAID实现:

软件RAID的实现就是基于内核中有一个模块叫多设备md:multi disks

要让内核放着几个磁盘就需要有相应的硬件设备文件,这就需要在内核中模拟一个假RAID出来,因此他就是一个逻辑RAID,此后在需要存数据的时候就往这个逻辑RAID里面存

继而他是一个逻辑设备,所以要有相应的逻辑设备文件,每一个创建好的逻辑设备在/dev/md#开头的设备文件  

md后#只标识不同的RAID设备的,跟RAID的级别没有关系,这样就在内核中创建了一个逻辑设备和一个以md命名的而文件

因此完全可以在内核当中用软件的方式来模拟硬件,这个软件就我我们的md模块

要注意的是这两个模拟的磁盘设备必须要标记为内核能够识别的类型,这种类型成为fd类型,即Linux软RAID

有内核模块才能创建软件RAID

如何用软件的方式去创建软RAID

首先需要内核模块md,此外在用户空间有个命令,能够去配置RAID的叫做mdadm,是md管理器

md:是用来模拟硬件RAID的一个模块

mdadm:只是一个工具,是一个模式化的命令,将任何块设备做成RAID,就是可以吧分区做成磁盘,但接下来的演示都在同一磁盘上的不同分区,但在实际中没有任何意义,没有任何提升,这只是用来做实验的

mdadm模式化的命令:

    创建模式:是用来创建RAID设备的

           -C

                专用选项:

                        -l:指定RAID设备级别,后跟设备级别号

                      -n #:指定设备个数,一共几块盘来做成这个RAID设备

                        -a:{yes|no}自动为其创建设备文件,因为任何一个RAID设备要想被访问就需要有自己相对应的设备文件

                         c:指定chunk(即条带指定的数据块大小)大小,每一次分的单位是多大,默认是64kb

                      -x #:指定空闲盘个数

  /proc/mdstat会显示当前系统所有启用的RAID设备

  创建完RAID后需要对RAID进行格式化(即创建文件系统)

  之后是进行设备文件的挂载

这里在创建镜像磁盘时要注意的是,再用cat /proc/mdstat 查看的时候,会显示镜像磁盘的同步信息

管理模式:是用来拆散或是停止RAID

           --add,--remove,--fail  用到这些的时候,默认工作在管理模式下

              -f|--fail|--stt-faulty都可以模拟RAID损坏   

     指定模拟随坏的格式    mdadm /dev/md# --fail /dev/sda7就是把/dev/md#中的设备/dev/sda7模拟成所怀

监控模式:是用来监控RAID设备是否正常的

           -F

增长模式:可以让RAID的数量增加

           -G

装配模式:在其他操作系统上使用原有的盘,即重新将原有盘识别为RAID,并组合起来

           -A  

              mdadm -A /dev/md1 /dev/sda7 /dev/sd8

 查看RAID阵列的详细信息

        -D|--detail /dev/md#是用来显示指定RAID设备的相关信息

                   --detail

停止阵列:就是移除指定md中的所有阵列

     mdadm -S|--stop /dev/md#        

练习:

创建RAID0,要求其大小为5G;(我们可以选择一个为3G,另一个为2G)

       首先创建2个磁盘分区,分别是3G和2G

,并修改为fd类型

之后为sda5,6创建md

Mdadm -C

上一篇: PHP基础知识

继续阅读