前言:

现在科技的发展可谓是日新月异,计算机的存储变化更是巨大,个人电脑从不到80G的硬盘存储,到现在轻轻松松2TB,读写速度从在100M每秒徘徊,到现在的2000M每秒的读写。但是本着做人不能忘本,而且速度快,但是TB以上的固态硬盘简直贵的可怕,所以我们不得不重提磁盘阵列,更何况磁盘阵列还有较为可靠的安全性呢

下面我们先说一下RAID的常用的几种类型:

RAID-0: 磁盘性能最佳

  • 又称为Stripe或Striping(分条),即数据分条技术。RAID 0可以把多块硬盘连成一个容量更大的硬盘群,从而提高磁盘的性能和吞吐量,要求至少两个磁盘。
  • 无容错,无冗余,不适用于安全性要求高的类型
  • 读、写性能提升; 理论上可以成倍提升,即有多少块磁盘组成的RAID-0就能提升多少倍。
  • 可用空间:Nx最小的磁盘容量(S1,S2,...); 损坏一块,数据全部损坏,因为对于计算机来说,数据就是0和1,但是多一个或者少一个,可能就代表不同的意义,更何况直接少了一整块硬盘的数据呢
  • 最少磁盘数:2块或以上
    磁盘之文件系统的高级操作

RAID-1:只为安全而生

  • 又称为Mirror或Mirroring(镜像)。RAID 1把一个磁盘的数据镜像放在另一个磁盘上面,在不影响性能的情况下最大限度的保证系统的可靠性和可修复性。
  • 很高的数据冗余能力,安全性高
  • 读性能提升、写性能略有下降;
  • 可用空间:1x最小的磁盘容量(S1,S2,...) ----------牺牲硬盘空间和少量写能力,换来安全性
    磁盘之文件系统的高级操作

RAID-5:读取性能不错,跟RAID-0差不多,写入性能很一般

  • 是RAID 0和RAID 1的折衷方案,但没有完全使用RAID 1镜像概念,而是使用了”奇偶校验信息”来作为数据恢复的方式,需要至少三个或更多的磁盘。
  • 读、写性能提升
  • 可用空间:(N-1)x最小的磁盘容量(S1,S2,...) ; 因为有一个磁盘存的校验码,但是校验码是平均分配到每块磁盘上的,最多只能损坏一块硬盘。
  • 有容错能力:允许最多1块磁盘损坏
  • 最少磁盘数:3, 3+ 磁盘之文件系统的高级操作

RAID-10:合体永远都是一个好办法

  • 又称为镜像阵列条带。如RAID 0一样,数据跨磁盘抽取,也如RAID 1一样,每个磁盘都有一个镜像磁盘。因此RAID 10又称为RAID 1+0。
  • 有冗余,允许RAID1类型的组,每组坏一块磁盘,依旧正常工作
  • 磁盘容量为:(最小的磁盘的容量x磁盘数量)/2

创建RAID时必须用到的命令:

mdadm

  • mdadm -C /dev/md0 -a yes -n 2 -l 0 /dev/sdc /dev/sdd。 创建RAID,自动回答是,有两块盘组成了该RAID,RAID等级是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}     此处的 -x  1 就是指明接下来的磁盘中有一块作为热备盘使用
  • -C 创建raid
  • -a yes 自动创建raid设备/dev/mdX
  • -n num 阵列中磁盘的数量
  • -l num 阵列的等级 ;  磁盘等级就是说你创建的是RAID-1 还是RAID-0 或者RAID-5
  • -x num 热备盘的数量 ; 热备盘不能只用在RAID-0的设备中,因为RAID-0挂掉一块盘整个数据就没救了,所以此时顶上一块后备盘也没有意义了。

软件RAID模拟硬盘损坏实验

  • mdadm /dev/md1 -f /dev/sdf         将md1中的sdf设置为坏的设备
  • mdadm /dev/md1 -r /dev/sdf         将md1中的sdf从raid成员中删除
  • mdadm /dev/md1 -a /dev/sdf     向md1中增加新成员sdf -------sdf会自动变成热备盘
  • mdadm -G /dev/md1 -n 3 -a /dev/sdh   将raid1 md1的成员数量改为3,并加入新的成员
    ----------(不是加为热备盘)

开机自动启动 RAID 并自动挂载

vim /etc/mdadm.conf
ARRAY /dev/md0 UUID="此处是md0的uuid"
vim /etc/fstab
/dev/md0 /mnt/raid    ext4    defaults     1    2
这样以后开机时这个raid设备就能自动挂载了

关闭软件RAID

如果raid设备以后并不使用,而是单纯的测试一下,那么我们测试完成后需要将该raid设备关闭
不然在以后分区时可能会出现莫名其妙的错误。

先卸载md0 设备 : umount /dev/md0
删除etc/fstab 里的该raid信息。 :  可以直接删除也可以加 # 注释掉
停止raid设备 : mdadm -S /dev/md0
删除/etc/mdadm.conf里的该raid的信息 :  可以直接删除或者是加 # 注释掉

删除软件RAID:请神容易送神难,RAID同样如此啊

先移除RAID设备中的每个磁盘

mdadm /dev/md0 --fail /dev/sdb --remove /dev/sdb
mdadm /dev/md0 --fail /dev/sdc --remove /dev/sdc
mdadm /dev/md0 --fail /dev/sdc --remove /dev/sdd
即把每个磁盘先标记为损坏磁盘,然后再移除。

停止并删除RAID设备

mdadm - -stop /dev/md0
mdadm - -remove /dev/md0

删除某块硬盘的raid信息

mdadm - -zero -superblock /dev/sdb
mdadm - -zero -superblock /dev/sdc
mdadm - -zero -superblock /dev/sdd

即: 先删除RAID中的所有设备,然后停止该RAID即可