现在科技的发展可谓是日新月异,计算机的存储变化更是巨大,个人电脑从不到80G的硬盘存储,到现在轻轻松松2TB,读写速度从在100M每秒徘徊,到现在的2000M每秒的读写。但是本着做人不能忘本,而且速度快,但是TB以上的固态硬盘简直贵的可怕,所以我们不得不重提磁盘阵列,更何况磁盘阵列还有较为可靠的安全性呢
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
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,并加入新的成员
----------(不是加为热备盘)
vim /etc/mdadm.conf
ARRAY /dev/md0 UUID="此处是md0的uuid"
vim /etc/fstab
/dev/md0 /mnt/raid ext4 defaults 1 2
这样以后开机时这个raid设备就能自动挂载了
如果raid设备以后并不使用,而是单纯的测试一下,那么我们测试完成后需要将该raid设备关闭
不然在以后分区时可能会出现莫名其妙的错误。
先卸载md0 设备 : umount /dev/md0
删除etc/fstab 里的该raid信息。 : 可以直接删除也可以加 # 注释掉
停止raid设备 : mdadm -S /dev/md0
删除/etc/mdadm.conf里的该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即可
原文地址:http://blog.51cto.com/13570220/2084920