在学习RAID之前,我们需要了解RAID是什么.
RAID,全称Rudundant Array of Inexpensive Disks,翻译过来就是容错式廉价磁盘阵列.它具有增加存储空间,加快读取速率好人容错功能,但是这要在RAID的不同级别下进行分析.RAID分为软RAID和硬RAID,软RAID(softRAID)是通过软件实现的(软RAID可以使用多个分区当做硬盘使用),我们在这里要说的就是softRAID,要用到得模块是Md:multidisk (多磁盘) .
RAID的级别,指的是RAID磁盘的不同排列方式和作用,下面介绍一下常用到得RAID级别:
linear:实现将多个硬盘串联起来当做一个大硬盘使用,不提供性能提高和容错功能
RAID0:performance性能将几块大小相同的硬盘同时使用,以提高性能,比如存在512字节的文件,会同时向四个磁盘上写入大约1/4,不提供容错功能,下为示意图:
RAID1:只提供容错功能,硬盘式 为偶数,例如存放100M文件时,会同时向两个盘存放入100M完整文件,无速度提升读取时同时从两个盘中同时读取, 会有性能提升,下位示意图:
RAID4:通过提供三块以上硬盘提供容错和提高性能功能
两块工作磁盘一块校验盘,比如1和2 是正常盘,3是校验盘,当盘1down掉的话校验盘会根据盘2计算出1盘的数据,多以只允许一块盘down掉, 仅有的一块校验盘很肯恩公会成为RAID的瓶颈.
RAID5:也是三块磁盘,将校验码平均分配到三块磁盘上,但是也只能允许一块磁盘出错,替换坏盘时也容易出错.假如有三个5G的盘,三个盘轮流当空闲盘,可用空间还是10G.如下图:
RAID6:RAID5的改进版,提供两个磁盘的容量存储校验码Parity,允许出错的磁盘也增加到两个.一般是4块磁盘,两块磁盘的容量存储校验码Parity.
RAID01:4磁盘,先两两组成RAID0,在组成RAID1,即可以容错,又提高了性能,如下图
RAID10:4块磁盘,先两两组成RAID1,再组成RAID0
下面说几个概念:
空闲盘:具有容错功能的RAID,可以配置空闲盘,当工作盘坏掉时,空闲盘会自动替换
chunk:当使用提高性能的RAID时,数据会轮流存储,每一次存储的大小叫做chunk,默认为64k,也就是说有两块磁盘,往1上存一个chunk(64k)往2上存一个chunk(64k)再往另一块上存一个chunk...
实现RAID的命令:mdadm
mdadm: 多磁盘设备管理器
使用格式:mdadm [mode] <raiddevice> [oprions] <component-devices>
也就是:mdadm 模式 设备 选项 子设备
我们常用的模式有:
Assemble 装配模式,用于我们更换系统或解散RAID设备后,想要在启动以前配置过的RAID设备.就是让内核扫描磁盘设备,如果以前有RAID则组合使用.
Create 创建RAID设备
Followor Monitor 监控模式
Grow 向RAID中添加硬盘
Manage 模拟模式
ps:mode不写的话会默认为监控模式
表示为:
-A
-C
-F
-G
一般默认为管理模式
选项:
-v --version显示详细信息
-s --scan 扫描RAID磁盘
mdadm -A -s /dev/md0 扫描当前系统上的RAID设备并把它们装配起来
mdmonitor 是RAID守护进程,检测到RAID有问题就会想指定用户发送邮件,vim /etc/mdadm.conf在此文件中配置各邮件地址就可以了MAILADDR=root@localhost
创建模式中使用的选项:
-S 停止RAID设备
-n 指定创建的RAID包含了几个磁盘
-x 指定有几个空闲设备
-l 设置RAID级别
-a yes 假如RAID文件不存在,创建RAID时会自动创建文件
-c 使用多少位的chunk
-E stride=*** 看下面例子
mke2fs -j -b 2048 -E stride=32 /dev/md0 提高性能的RAID往磁盘上轮流存储数据时都会先计算要存储多少块才相当于以chunk(64k)这里的stride就表示以chunk就等于32个块,免去RAID的计算时间,以提高RAID读取性能
下面我们来说制作测试RAID的步骤:
1~
在一块磁盘上利用分区制作 |