RedHat Linux 6---RAID独立磁盘阵列

RAID原理

1.磁盘阵列作为独立系统在主机外直连或通过网络与主机相连。磁盘阵列有多个端口可以被不同主机或不同端口连接。一个主机连接阵列的不同端口可提升传输速度。
2.和当时PC用单磁盘内部集成缓存一样,在磁盘阵列内部为加快与主机交互速度,都带有一定量的缓冲存储器。主机与磁盘阵列的缓存交互,缓存与具体的磁盘交互数据。
3.在应用中,有部分常用的数据是需要经常读取的,磁盘阵列根据内部的算法,查找出这些经常读取的数据,存储在缓存中,加快主机读取这些数据的速度,而对于其他缓存中没有的数据,主机要读取,则由阵列从磁盘上直接读取传输给主机。对于主机写入的数据,只写在缓存中,主机可以立即完成写操作。然后由缓存再慢慢写入磁盘。

RAID目的

1.提高性能,因为IDE性能没有SCSI的性能好
2.提高容错能力,万一哪个磁盘损坏不会导致数据的丢失
就是为了这两个目的去做的,所以以下的组合方式也无非是为了满足这两个目的的其中之一或者全部特性

RAID的级别(组合方式)

常见RAID级别: raid0,raid1,raid4,raid5(常见,没钱),raid6,raid10 (常见,有钱) raid01,jbod

raid0: 提高读写性能,没有容错能力。至少需要两块磁盘
当一个文件需要存储的时候,将数据切割成片,而后将他们平均分散到多个磁盘上去,由此,把多块磁盘作为一块磁盘来读写数据.
理论上来讲是之前数据读写的n倍,但实际上没有那么快,因为存在数据的分片,还有管理需要往哪块磁盘上存储这种操作,一定会有一些损失的
三块磁盘单块磁盘的故障率为10%,则raid0的故障率反而会提升的,就变成了n*10%,因此我们的重要数据不能存放在这种设备上面,可以用来当swap分区使用(用来做swap交换的都是干净页,这些干净页都是没有做修改的数据,所以就算是丢失了也没什么问题),tmp目录也可以存放在这种设备上
raid0尽量使用两块容量一样的硬盘来做,否则会造成磁盘空间的浪费,尽量使用同一厂商,同一型号,同一性能的磁盘来做raid0

raid1:至少需要两块硬盘,镜像卷 ,硬件容错能力,读性能提升,写性能下降 50% 1/n的利用率
有了RAID的冗余策略,还需要备份集么?
raid1并不能取代备份的作用.如果把/存放在raid1上面,如果执行了rm -rf / 这种操作
如果把数据库存放在了RAID1上面,如果进行了的drop database的操作
raid1无法取代备份,为了避免设备损坏而导致业务终止的,而不是保证数据不会丢失 ,在硬件层次提供冗余而不是数据层次,硬件级别的冗余并不能取代备份

raid4:至少需要三块硬盘,允许一块盘出错,读写性能提升,(n-1)/n
为了既可以能够容错,又能提升性能,于是就出现了RAID4这种级别
前两块盘存放数据,第三块盘存放前两块盘存放数据的异或(相同为假,不同为真)结果,叫做校验码
同一个编号依然为一个条带,只不过最后一块盘上没有存放有效数据,
这种状态下发生硬盘离线或者损坏,芯片可以通过异或计算出来需要的数据是什么的,业务不会终止,只不过数据是需要计算以后才能得到的.
当一块数据盘发生物理损坏,数据如何存放?
读的时候,芯片计算出来数据直接返回给请求者,存储的时候,只会存储第一块数据和异或的校验码在第三块磁盘上,但是这样会带来很大的风险,这种情况下无论再挂掉那块盘RAID就毁掉了,而且性能下降会很严重
每次读取数据,哪怕是很小的数据,三块盘都会被访问到,两块盘的压力比以前增大了,导致故障率提升.所以如果发生这种情况,需要将坏盘拔下,并且补上新盘,但是在换上新盘以后的一段时间内.其余两块盘会修复新盘内数据,导致两块盘压力飙升,此时出问题,RAID依然挂掉了…所以这种level的RAID容错能力是很有限的
对于这种架构的,坏掉一块盘业务是不会终止的,只不过系统性能下降很严重,工作也是不完整状态,所以这种状态也需要我们尽早发现并且替换新盘, 更换硬盘的过程叫做热换…
热备:单独使用一块冗余的磁盘等候其他工作盘挂掉然后直接替补位置,热备盘正常状态下是不工作的
使用raid4,任何时候访问数据都需要访问校验盘,校验盘会成为整个架构的瓶颈,数据盘可能在某些情况下只被访问到一块,但是校验盘随时都会访问到,因此整个架构的性能是取决于校验盘的,对磁盘来讲不公平.

raid5: 至少需要三块硬盘,允许一块盘出错,读写性能提升,(n-1)/n
避免了raid4中因为只有一块校验盘而导致的性能瓶颈问题

raid6: 至少需要四块磁盘,允许两块盘出错。读写性能提升,(n-2)/n
补救的过程不会带来太大风险
用于计算奇偶校验值和验证数据正确性所花费的时间比较多,造成了不必须的负载。它是对raid5的扩展,主要是用于要求数据绝对不能出错的场合.

raid10:至少需要四块磁盘。允许不同组内个各坏一块盘,读写性能提升,50%
这种架构不允许同一组内的两盘同时坏掉,这种几率不大,但这种几率不是没有
如果出现上面的情况,这种情况下只能通过备份来恢复数据,而业务也不得不终止了
RedHat Linux 6---RAID独立磁盘阵列