独立磁盘冗余阵列(RAID,redundant array of independent disks)是把相同的数据存储在多个硬盘的不同的地方(因此,冗余地)的方法。通过把数据放在多个硬盘上,输入输出操作能以平衡的方式交叠,改良性能。因为多个硬盘增加了平均故障间隔时间(MTBF),储存冗余数据也增加了容错。

   raid分为软raid和硬raid,软raid即有软件来驱动raid程序,集成在内核中;硬raid即硬件raid芯片,有集成在主板中的,也有独立芯片的;当然,硬raid要相比较软raid性能好,速度快,但是成本要比软raid高的多,因此,我们在工作中要根据情况来选择raid的使用方式。

   接下来为大家讲解下软raid的创建及参数详解;


1. 硬盘类型:

   IDE 133Mbps  表现格式:/dev/hd

   SCSI 320Mbps 表现格式:/dev/sd,性能是IDE的4-8倍数

   USB 480Mbps  表现格式:/dev/sd

   SATA:6Gbps   表现格式:/dev/sd


2. 常用的raid级别及介绍

   raid0 条带,性能很好,将多块硬盘当成一块来用,将数据均分成N份分别存在各个硬盘中,读写性能都很好,都是线性增加的,总的空间没有浪费,有几块硬盘就是几块硬盘的总和,硬盘大小必须一样大小

       缺点:没有容错能力,可靠行很差,若是其中一块硬盘损坏将造成数据丢失

               对于数据要求不高的,可以考虑使用,例如临时数据存储。

   raid1 镜像,读的性能有明显的提升,

       缺点:写入性能不高,没有提升,磁盘空间没有提升,就算是10块磁盘组成raid1,也只是一块硬盘的空间

           存储非常重要关键的数据,非常适用,可以保证业务不终止,数据不丢失

   raid4 组合至少三块磁盘,最多只能允许损坏一块硬盘

  缺点:很容易造成瓶颈,校验码服务器会有很大的压力

   raid5 校验码轮流存放的,读性能有很好的提升,写入的性能不强,不适用于大量的写入操作,磁盘空间都个raid4相同,至少需要三个硬盘


   raid6  允许坏两个盘,浪费两个盘, 其余的和raid5相同

    

   raid10 raid0和raid1的结合,最少需要4个硬盘,先两两做raid1,将两个硬盘组成的两组raid1, 在做成raid0

          写入性能是raid0,空间比例是总空间的50% ,读写都有提升

   raid50 raid5和raid0的结合,最少需要六块盘

3. raid的使用方式:

   集成芯片(集成器):直接集成在主板上的

   独立卡片(适配器):独立的芯片,直接插在pci-e的插糟中用的

   独立的芯片更好,功能更强大,更贵,将芯片插入PCI-E卡槽,速度快

   raid的设计主要是从两个方面来想,一个是容错,一个是性能


4. 硬件raid是在blos中设定的,软件raid是在操作系统中设定的,接下来说下软raid的实现方法

软raid是通过multi disk(MD) 软件实现的,他是raid的一个内核模块;

用软件来创建raid来创建管理是使用mdadm命令的,一半在redhat/centos中是预安装的;

mdadm创建raid的话,可以是任意块设备,按道理说raid是不允许在同一块硬盘上装的,但是软raid可以实现分区来做raid


5. raid创建的时候用的参数

-C ,--create 创建一个raid

-l ,--level= 设置raid级别

-n, --raid-devices= 用于指定硬盘个数

-c ,--chunk=  制定数据快的大小,默认是64k,根据情况来定!!

-a 如果raid设备文件不存在可以自动为其创建

-x 用于制定空闲盘个数的

mdadm -C /dev/md# -a yes -l 1 -n 2 /dev/sda1 /dev/sda2 

//这条语句的意思是:创建一个raid镜像,当没有这个md#的设备文件的时候自动创建,raid级别是 "1" ,有两个块设备组成,分别是/dev/sda1,/dev/sda2 

6. 创建4G的raid的硬盘个数

raid0:2个2G的硬盘

raid1: 2个4G的硬盘

raid4:和raid5:都是用3个2G的硬盘,浪费一个,

raid10:4个2G的硬盘,浪费一般的实用空间

raid50: 最少6块1G的硬盘


7. 创建6Graid0的命令语句

 mdadm -C /dev/md0 -a yes -l 0 -n 2 /dev/vdb2 /dev/vdc3  

 //Continue creating array? 这里是询问你是否继续 yes即可

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

 //创建好以后需要对raid进行格式化,不要对磁盘格式化

 mke2fs -j /dev/md0


8. 创建6Graid1的命令语句

 mdadm -C /dev/md1 -a yes -l 1 -n 2 /dev/vdd1 /dev/vde1

 //raid1刚刚完成的时候会同步数据

 watch -n 1 'cat /proc/mdstat'

 //一秒中执行一次'cat /proc/mdstat'的命令

 mdadm -D /dev/md0

 //显示详细raid一个或者多个的详细信息,显示磁盘阵列的详细信息的


管理模式:

--add(在raid中添加一块硬盘),--remove,(删除raid中的一块硬盘),--fault(标记一块硬盘已经坏掉了)


raid标记一个磁盘坏掉了

mdadm /dev/md0 -f /dev/vdb2


raid添加一个磁盘

mdadm /dev/md0 -a /dev/vdb3


停止raid

mdadm --stop(-S) /dev/md0

删除raid

mdadm --remove /dev/md0


mdadm -D --scan 扫描raid的磁盘阵列都有那些在使用这


当raid执行后使用装配模式来启动从新启动raid

mdadm -A /dev/md3 /dev/vdb1 /dev/vdc1


partprobe

可以在不重启系统的情况下,激活磁盘分区


配置文件

 /etc/mdadm.conf //默认是不存在的

 使用mdadm -D --scan的命令来将现在启用的raid导入到配置文件中,下次在从新装配的时候, 就不需要在找磁盘是那些了

  raid不使用的时候, 将raid信息追加到/etc/mdadm.conf的配置文件中,方便下次装配