大家都知道,一般我们使用的存储设备多为磁盘设备或闪存设备,如常见的IDE,USB,SATA,SCSI等,但他们本身的速度瓶颈常常使我们无奈,为了满足我们的需求,RAID就适时出现咯,RAID通过将多磁盘虚拟成一个RAID设备,而数据传输时是多磁盘同时操作,,因此可显著提升读写性能,并且多磁盘间可以方便实现冗余备份

     RAID:即廉价磁盘冗余阵列,可以实现多块基本磁盘的串并联,达到提升读写速度,实现数据冗余备份容错的功能。RAID阵列一般要有raid适配器的支持,相当于控制芯片,他可以集成在主板上,也可以是单独的设备。现在的操作系统一般都支持多数常见的raid模型。

     RAID分类:linear,RAID0-7,RAID10,RAID01

linear:

实现将多个硬盘串联起来当做一个大硬盘使用,不能性能提高没有容错功能

RAID0

将几块大小相同的硬盘同时使用,以提高性能,比如存在512字节的文件,会同时向四个磁盘上写入大约1/4,不提供容错功能。

RAID1:

只提供容错功能,硬盘个数必须为偶数,一个硬盘作为镜像盘,写性能没有提升,但读取时同时从两个盘中同时读取,所以会有性能提升

RAID4:实现容错和高性能,至少3块磁盘 

两块工作磁盘一块校验盘,比如1和2 是正常盘,3是校验盘,当盘1down掉的话校验盘会根据盘2计算出1盘的数据,多以只允许一块盘down掉,而且仅有的一块校验盘会成为RAID的瓶颈。

RAID5

作为RAID的改进,也是至少三块磁盘,将校验码平均分配到三块磁盘上,但是也只能允许一块磁盘出错,替换坏盘时也容易出错。

RAID6

继续改进RAID4,至少4块磁盘,校验信息一次散存在两个盘上,然后再循环存储数据,两外两个记录校验信息

RAID10:(使用较多)

4块磁盘,先两两组成RAID1,再将多组构成RAID0

RAID01:(较少使用)

4块磁盘,先两两组成RAID0,再组成RAID1

 


下面介绍如何在linux下建立自己的RAID设备。

RAID设备的配置信息记录在/etc/mdadm.conf文件

使用“mdadm”命令建立RAID,,格式为mdadm [mode] <raiddevice> [options] <comonent-devices>

常见的模式有:

-A: Assemble 装备,集合已有的raid设备,比如手动停止过的RAID设备

-C: Create 创建RAID设备

-F: Followor Monitor 监控模式

-G: Grow xiangRAID中添加硬盘

-S:停止某个已建立的RAID设备

常见的选项有:

-v --version显示详细信息

-s  --scan 扫描RAID磁盘

-n  指定创建的RAID包含了几个磁盘

-x  指定有几个空闲设备

-l  设置raid级别

 

   mdadm -D /dev/md0-------------------->查看md0的详细信息

  /proc/mdstat文件记录的也是类似信息

 

例如:

mdadm -C /dev/md0 -a yes -n 2 -l 0  /dev/{sda3,sda2}

--------------》使用sda2,3两个分区建立RAID0,设备号为 /dev/md0

mdadm -S /dev/md0   ------>停用已建立的md0

mdadm -C /dev/md1 -a yes -n 2 -x 1 -l 1 /dev/sdb1   /dev/sdb2  /dev/sdb3

   -----------》使用sdb1,2,3建立RAID1,设备号为 /dev/md1,同时sdb3作为替补盘,即sdb1,2其中一个故障后立即替换掉

mount -o acl  /dev/md1  /media      ------------》挂载建立的md1至 /media目录下

如果从新建立分区开始的话:

 首先创立分区类型选择fd,即RAID设备的类型,之后建立RAID设备:

------》mdadm -C /dev/md0 -a yes -n 2 -l 0  /dev/{sda3,sda2}

而后格式化此raid0

   ------------》mke2fs  -j  /dev/md1 (若想开机使用,加入/etc/fstab文件即可)

组后正常挂载md0才能使用

------------》mount  /dev/md0  /md0