RAIDlinux
概述:将多块磁盘组合成一块逻辑磁盘,从而提升读写性能与安全性。
1. 实现方式
软件实现:经过主机的RAID软件实现,易于实施可是性能有限
硬件实现:RAID控制卡,基于主机的硬件RAID技术,将硬盘链接到控制卡上控制卡和硬盘之间经过PCI总线交互;外部RAID控制卡,基于存储阵列的高级硬件RAID技术,想主机提供一个硬盘的接口界面,是主机看到一个普通的存储卷,主机经过它支持的协议对卷进行管理。
2. 基本概念
条带(strip):磁盘上一块由若干地址连续的磁盘块构成的,大小固定的区域
分条(stripe):位于RAID集上的全部磁盘相同位置的条带(strip)组成的存储区域
条带尺寸:也叫分条深度,描述了构成条带的磁盘块的数目
分条尺寸:条带尺寸与RAID集中硬盘数量的乘积,即条带的容量。
数据镜像:将同一数据写入两块不一样的磁盘,从而产生该数据的两个副本。
奇偶校验:对写入的数据进行运算获得一个校验值用于数据恢复
3. RAID级别
RAID0
无容错的条带阵列。读写性能很好,可是无安全性可言。一个文件块坏了真个档案文件就失效了,一个块磁盘坏了整个RAID集就失效了。建议使用相同大小的磁盘组建。若是1块100G的与1块200G的硬盘组建的话,前200G的数据是等量分别存储在两块硬盘上的,后100G容量只能存在200G容量的那块硬盘上。
软件RAID能够手工制定分条尺寸,硬件RAID由厂商设定分条尺寸
RAID1
磁盘镜像。读性能还能够,写性能相对较差,安全性很好。最好使用相同大小相同品牌的两块硬盘,若是容量不等的话,以容量较小的那块为准。写入数据被I/O总线复制两2份写到各个磁盘,若是使用磁盘阵列RAID卡的话会复制一份而不用I/O总线。
RAID3
带专用检验磁盘的并行访问阵列。数据读写以整个条带为单位进行,从而全部磁盘可以并发的执行操做,而不存在更新同一条带中某些存储带的部分写操做(这样存在一些磁盘空间浪费),即任何数据的读写操做都要访问整个条带。能够这么去理解,给RAID0加一个独立的校验磁盘。RAID3为传输大量数据提供了很高的带宽,于是经常使用于视频流服务等设计大量数据数据访问的场景中。
RAID4与RAID3惟一的差异就是支持数据磁盘的独立访问,也就是说某个数据单元能够从单块磁盘中读写而无需访问整个条带。RAID5相对于RAID4来讲不一样点在于它将校验值分布存储在全部的磁盘上,这样就避免了校验磁盘成为写性能的瓶颈。RAID6与RAID5也是基本相似,不一样的地方是引入了第二个校验值,这样当两块磁盘同时失效它仍然能够恢复,所以最少须要四块磁盘来组建。
RAID0+1与RAID1+0
结合RAID0的性能优点和RAID1的安全优点。
RAID0+1,将全部磁盘分红两个小组,小组内部作RAID0,小组之间作RAID1;RAID1+0,将全部磁盘两个一组分开,小组内部作RAID1,小组之间作RAID0。
至少须要四块磁盘才能组建。
4. 在linux上实现软RAID
在linux上实现软RAID只须要使用一个命令:mdadm
1. 检测是否加载了mdadm
cat /proc/mdstat #还能够用cat /proc/devices | grep md或者lsmld | grep md
2. 磁盘格式 FD
若是MD编译进入了内核,那么当内核调用MD驱动时会自动查找分区格式为FD格式的磁盘。因此通常用fdisk将MD磁盘设置为FD格式。

W保存退出后,使用partprobe命令强制内核刷新分区表,使得刚才建立的分区生效可用。
3. 建立RAID
mdadm --create --auto=yes /dev/md0 --level=n --raid-devices=n1 --spare-devices=n3 /dev/sdb1 /dev/sdc1 /dev/sdd……
--auto=yes :决定创建后面接的软件磁盘阵列装置,即/dev/md0
--raid-devices :使用n1个磁盘做为磁盘阵列
--spare-devices :使用n2个磁盘作热备盘
--level :定义RAID级别,这里也能够直接写,如-l0,-l5
最后跟的几个磁盘是作RAID的磁盘,注意,也能够是分区。可是跟分区的话其实作RAID并无什么意义,一个分区坏了还能够修复,一块磁盘坏了就不能发挥RAID在安全上的优点。因此本例中限于实验条件仅仅做为一个演示。如/dev/sdb1 /dev/sdb2 /dev/sdb3 /dev/sdb5,或写做/dev/sdb{1,2,3,5,}

4. 检验
cat /proc/mdstat
这条命令能够查看大概的信息,阵列级别,磁盘对应号码,块大小等。

详细信息可使用mdadm --detail /dev/md0。从这里能够看见RAID磁盘数,热
备盘数,UUID,磁盘状态等信息。

5. 建立文件系统并挂载
mkfs.ext3 /dev/md0
mount /dev/md0 /mnt/raid
6. 管理磁盘阵列
添加磁盘:mdadm --manage /dev/md0 --add /dev/sdb8 #新添加的磁盘的磁盘会成为热备盘
删除磁盘:mdadm --manage /dev/md0 --remove /dev/sdb1
设置错误磁盘:mdadm --manage /dev/md0 --fail /dev/sdb2 #设置一个磁盘错误而后能够换下这个磁盘
7. 开机自启动并挂载RAID
编辑/etc/fstab文件
8. 关闭软RAID
直接关闭:mdadm –stop /dev/md0