独立磁盘冗余阵列(Redundant Arrays of Independent Disks, RAID)
磁盘阵列是由很多价格较便宜的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。利用这项技术,将数据切割成许多段,分别存放在各个硬盘上。
raid 0【带区卷】
实现方法:可有2-32个成员,写数据时,一次性写入、读取N(成员数)*64KB。因此读取、写入效率高。没有冗余能力。所以从高可用性来考虑,在网络中一般不会单独使用raid 0。
raid 1【镜像卷】
2块成员,且数据保持一致,磁盘利用率50%。写入效率不高。读取(可从两块磁盘上一起读取)效率高。具有冗余能力,在网络中用得比较常见。
raid 5
成员数量最少3块,3-32。校验占了一个成员的空间,利用率达到n-1/n。写入数据要计算校验值,效率一般。读取的时候,因为数据分布在不同的磁盘上,效率高。但当有一个成员出错的时候,还要通过剩下的数据和校验值计算,因此读取效率低。
raid 6
若raid 5坏掉了两块数据,那么数据就读取不出来了。raid5只允许坏掉一块成员设备,而raid6用两块成员设备来存放校验值。最多只允许坏掉两块成员,是在raid5基础上做的增强。磁盘利用率是:(n-1)/n。
raid 10 和 raid 01 是把raid0 和raid1 进行变相的合并。
raid的实现用硬件和软件的:
硬件:raid卡 速度快 稳定性好 价格昂贵
软硬(soft raid):Windows 的动态磁盘
linux的md (multi device 多设备)
使用Linux(RHEL5.4)实现raid:
soft raid 实现的时候,可以是一个分区,也可以是一个磁盘。在一个磁盘上用多个分区实现raid没有意义。万一磁盘坏了,整个数据都坏了。所以做的是用多个磁盘做。
SYNOPSIS
mdadm [mode] <raiddevice> [options] <component-devices>
MODES
Assemble把一个已经创建过的重新激活,叫做装配模式。
Create 新创建。
Follow or Monitor 监控模式,观察数据是怎样同步的,观察状态的改变过程。
Grow 扩展,成员或大小不断的改变,可以增加也可以减少。
Manage 管理
实现 raid1:
创建分区 /dev/sda5、/dev/sda6
注意:raid成员的id号要改成 fd Linux raid autodetect
另起一个终端:watch -n 1 `cat /proc/mdstat` 每隔1秒观察一次结果
格式化:
挂载:
模拟一个成员坏了,另一个成员上还有数据的情况:
-f 表示使之失效
这时候再次查看数据依然存在。
出现这种情况的时候,要把坏的盘换掉。移除坏掉的盘方法如下:
增加一个新成员的方法如下:
当出现坏掉的盘时,这样做有点被动。接下来做一个自动的:
首先要卸载:
然后停止raid:
做一个有备份的raid1,当有一个成员失效时,自动将备份的换上。
-x 表示备份
模拟sda5失效:
移除失效的成员:
为了防范于未然,最后再放一个备份的成员
当想要执行正常的装配的时候,关于该md设备必须有一个配置文件,该配置文件描述了当前有哪些raid,分别是什么级别,每个级别包含哪些成员,产生这个文件的指令是:
mdadm -A /dev/md0 (装配)
实现 raid 5:
实现raid5正常的是三个成员,要做成比较智能的需要四个成员,一个作为替补。无论是raid1还是raid5,要求成员的可用空间要一样。
格式化、挂载
模拟一个成员失效的情况:
接下来要做的就是换掉坏的成员。和上面一样。