一丶raid

1.raid定义

磁盘阵列(Redundant Arrays of Independent Disks,RAID),有“独立磁盘构成的具有冗余能力的阵列”之意。
磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。[1]
磁盘阵列还能利用同位检查(Parity Check)的观念,在数组中任意一个硬盘故障时,仍可读出数据,在数据重构时,将数据经计算后重新置入新硬盘中。

2.raid的优缺点

优点

提高传输速率。RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量(Throughput)。在RAID中,可以让很多磁盘驱动器同时传输数据,而这些磁盘驱动器在逻辑上又是一个磁盘驱动器,所以使用RAID可以达到单个磁盘驱动器几倍、几十倍甚至上百倍的速率。这也是RAID最初想要解决的问题。因为当时CPU的速度增长很快,而磁盘驱动器的数据传输速率无法大幅提高,所以需要有一种方案解决二者之间的矛盾。RAID最后成功了。
通过数据校验提供容错功能。普通磁盘驱动器无法提供容错功能,如果不包括写在磁盘上的CRC(循环冗余校验)码的话。RAID容错是建立在每个磁盘驱动器的硬件容错功能之上的,所以它提供更高的安全性。在很多RAID模式中都有较为完备的相互校验/恢复的措施,甚至是直接相互的镜像备份,从而大大提高了RAID系统的容错度,提高了系统的稳定冗余性。

缺点

RAID0没有冗余功能,如果一个磁盘(物理)损坏,则所有的数据都无法使用。
RAID1磁盘的利用率最高只能达到50%(使用两块盘的情况下),是所有RAID级别中最低的。
RAID0+1以理解为是RAID 0和RAID 1的折中方案。RAID 0+1可以为系统提供数据安全保障,但保障程度要比 Mirror低而磁盘空间利用率要比Mirror高。
4.常用raid及特点

linux磁盘阵列raid详解
raid 0 条带化 chunk size n*min(size) (#读写的提升 至少2块盘)
实现方式就是把N块同样的硬盘用硬件的形式通过智能磁盘控制器或用操作系统中的磁盘驱动程序以软件的方式串联在一起创建一个大的卷集。在使用中电脑数据依次写入到各块硬盘中,它的最大优点就是可以整倍的提高硬盘的容量。如使用了三块80GB的硬盘组建成RAID 0模式,那么磁盘容量就会是240GB。其速度方面,各单独一块硬盘的速度完全相同。最大的缺点在于任何一块硬盘出现故障,整个系统将会受到破坏,可靠性仅为单独一块硬盘的1/N。
linux磁盘阵列raid详解

raid 1 镜像 min(size) (#写性能略降低 ,读性能提升 至少2块盘)
原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力
linux磁盘阵列raid详解
raid 5 奇偶校验 (#(n-1)*min(size) 至少3块盘)
RAID5的读出效率很高,写入效率一般,块式的集体访问效率不错。因为奇偶校验码在不同的磁盘上,所以提高了可靠性。但是它对数据传输的并行性解决不好,而且控制器的设计也相当困难。
linux磁盘阵列raid详解

raid 10 (#先做多个raid1,再组成raid0 安全性优于raid01)
 先镜射再分区数据,再将所有硬盘分为两组,视为是RAID 0的最低组合,然后将这两组各自视为RAID 1运作。优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低.
linux磁盘阵列raid详解
raid 01 (#先做多个raid0,再组成raid1)
先分区再将数据镜射到两组硬盘。它将所有的硬盘分为两组,变成RAID 1的最低组合,而将两组硬盘各自视为RA
ID 0运作.优点是同时拥有RAID 0的超凡速度和RAID 1的数据高可靠性,但是CPU占用率同样也更高,而且磁盘的利用率比较低
linux磁盘阵列raid详解
raid 50 (#先做多个raid5,再组成raid0,安全性略低于raid10)
RAID50具备更高的容错能力,因为它允许某个组内有一个磁盘出现故障,而不会造成数据丢失。而且因为奇偶位分部于RAID5子磁盘组上,故重建速度有很大提高。优势:更高的容错能力,具备更快数据读取速率的潜力。
5.raid用法及常用选项
用法
mdadm -C /dev/md0 -a yes -n 2 -l 0 /dev/sdc /dev/sdd
mdadm -C /dev/md1 -a yes -n 2 -l 1 /dev/sde /dev/sdf
mdadm -C /dev/md1 -a yes -n 2 -l 1 -x 1 /dev/sd{e,f,g}
常用选项
-C 创建raid
-a yes 自动创建raid设备/dev/mdX
-n num 阵列中磁盘的数量
-l num 阵列的等级
-x num 热备盘的数量
mdadm -D /dev/mdx 查看raid信息
cat /proc/mdstat 查看全部的raid信息
mdadm -S /dev/mdx 停止raid
mdadm -A /dev/mdx /dev/sdc /dev/sda
cat /proc/mdstat
mdadm -D -s > /etc/mdadm.conf 将raid信息保存至文件
mdadm -A -s 激活/etc/mdadm.conf中的所有raid设备
mdadm -F /dev/md1 实时监控raid状态

raid1,raid5专用命令
mdadm /dev/md1 -f /dev/sdx 将md1中的sdx设置为坏的设备
mdadm /dev/md1 -r /dev/sd 将md1中的sdx从raid成员中删除
mdadm /dev/md1 -a /dev/sdx 向md1中增加新成员sdx
mdadm -G /dev/md1 -n 3 -a /dev/sdh 将raid1 md1的成员数量改为3,并加入新的成员(不是加为热备盘)
删除硬盘raid
mdadm --zero-superblock /dev/sdx 删除某块硬盘的raid信息

6.共享热备盘实现方式

mdadm -D -s > /etc/mdadm.conf
在需要共享的多组raid信息最后分别都写上spare-group=magedu
然后再加一新行,顶头写MAILADDR root@localhost
service mdmonitor restart