大家都知道,一般我们使用的存储设备多为磁盘设备或闪存设备,如常见的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