azwcl
azwcl
Published on 2024-12-22 / 32 Visits
0
0

磁盘阵列技术-RAID

1. 概述

  由加州大学伯克利分校 D. A. Patterson 教授等人提出,一种将多个磁盘在一起构建呈更快、更大、更可靠的磁盘系统技术;称为廉价冗余磁盘阵列 ( Redundant Array of Independent Disks ),或独立硬盘冗余阵列 ( Redundant Array of Inexpensive Disks );简称磁盘阵列;

  简单来说,可以理解为一套系统,专门用来管理一组磁盘;从外部来看,RAID 看起来更像一个磁盘,而非多个磁盘,对于使用他的主机系统来说,是一个大磁盘;从内部来看,是一个非常复杂而庞大的系统,他包含,磁盘,处理器,管理系统等等的一套东西;

2. RAID 的评估

  对于 RAID 技术,我们会从多个方面去考量去评估,以便选择一个适用于系统的 RAID 技术;

2.1. 容量

  简单来说,给你 N 个磁盘,它可以使用的容量;如果没有冗余,那么自然是 N ,如果是 1 对 1 副本复制,那么自然是 N/2 的可用容量;基于 RAID 技术的不同,其可用容量也不同,这也是硬件成本;

2.2. 可靠性

  在 RAID 技术中,可靠性是最重要的一点,我使用这个 RAID ,最多可以接受多少块磁盘故障,但是仍然不影响我们整套存储系统;

2.3. 性能

  性能评估非常复杂,一般来说考量其 读写速度,吞吐量,延迟 等指标;

3. RAID 模式

3.1. 标准 RAID

3.1.1. RAID 0 - 条带化

  对于 RAID 0 来说,其实,不是 RAID 级别,因为没有冗余,但是因为性能和容量是非常优秀的;在所有 RAID 技术中,他是最快的,但是因为没有冗余功能,也不具备容错能力;如果一个磁盘损坏,则所有数据都会丢失,非常危险

3.1.2. RAID 1 - 镜像

  对于 RAID 1 来说,是一种没有校验的镜像,磁盘空间利用率只有 50%,成本很高;同时因为写入问题,需要完成两次物理写入,虽然是并行的写入,但是需要等待两次物理写入完成,所以会遭遇两个请求中最差的寻到和旋转延迟,因此比写入单个磁盘略高;

  但是其实,因为没有校验机制的存在,两块磁盘如果数据出现差异,那么对于 RAID 1 来说,我不知道此时应该相信哪一个硬盘,这种称为:脑裂;事实上,RAID 1 磁盘数量越多,那么越有可能发现,RAID 1 只会从第一个工作的磁盘里面提供数据,无法检测哪个硬盘数据不对;在此处,引出 RAID 一致性问题;

对于 RAID 系统更新,会有一致性问题;如果说将数据发送给 RAID 的时候,由 RAID 自身决定往哪里写入,那么在写入的时候,可能说,我先写入 0 ,那么此时因为不可知的原因,在发生 1 的写入请求之前,崩了,这个时候对 0 已经写完;但是实际上对 1 并未发出写入请求;此时我们希望两个一致,或者是原子性更新,要不然都更新,要不然都是旧数据;而在 RAID 中,我们会采用 预写日志 技术,即 write-ahead log 技术;( 在数据库中,这种技术也是重要技术;)去保证在崩溃时回复;RAID 硬件一般包含一些非易失性 RAM,来执行这类记录;

3.1.3. RAID 3 - 数据交错存储

  采用数据交错存储 ( Bit - interleaving ) 技术,通过编码再将数据比特分隔分别存在硬盘中,在用奇偶校验后,存储在额外校验盘中,因为数据内比特分散在不同硬盘,所以读取的时候,多个盘会一起工作;在一个硬盘矩阵内,坏多余一个硬盘几率较小,故安全性有一定保证;但是这个技术不常用;因为他每次写入,都会更新校验盘,导致校验盘工作负载大,最终校验盘称为写入性能瓶颈,而且仅可容许单个盘损坏;

3.1.4. RAID 4 - 块交织技术

  采用块交织技术 ( Block interleaving ) ;与 RAID 3 不同的是,分割按照区块为单位分别存储在硬盘中;

3.1.5. RAID 5 - 旋转奇偶校验

  RAID 5 和 RAID 4 基本完全相同,除了将奇偶校验块跨驱动器旋转;以消除 RAID 4 的奇偶校验磁盘的瓶颈;

3.1.6. RAID 6

  RAID 5 与 RAID 6 相比,增加了第二个独立的奇偶校验信息块;两个独立的奇偶系统可以使用不同的算法,数据可靠性非常高;任意两块磁盘同时失效,也不会影响数据的完整性;

3.2. 混合 RAID

3.2.1. JBOD

  无规范,通常有两类主流做法:1. 使用单独的连接端口同时控制各个硬盘;2. 将多个大硬盘合并一个逻辑硬盘;

  资料存放从第一个硬盘开始顺序往后,但是硬盘损毁,数据无法救回,若是第一个硬盘,那么所有硬盘无法救援;(因为大部分的数据文件都是将磁盘分割表存放在磁盘前端);危险程度比 RAID 0 更强;但是不会像 RAID 0 对数据要访问所有硬盘;

3.2.2. RAID 7

  非公开标准;Storage Computer Corporation 提出,在 RAID 5 的基础上增加了专用缓存,更多的控制和管理;目标是提供更高的读写性能;通过高速缓存来提供更高的读写速度;

3.2.3.RAID 10/01

  RAID 1 + 0:先做 RIAD 1 再对 RAID 1 做 RAID 0;

  RAID 0 + 1:先做 RAID 0 再对 RAID 0 做 RAID 1;

3.2.4. RAID 50 等...

  先做 RAID 5 再做 RAID 0;还有 RAID 53,RAID 60 之类的;都是诸如此类;

3.3. 总结各个 RAID 模式

RAID 模式最少硬盘最大容错可用容量读取性能写入性能延迟-读延迟-写安全
JBOD10n11tt
020nnntt
12n-11n1tt高,一个正常即可
331n-1n-1n-1t2t中下至中
431n-1n-1n-1t2t中下至中
531n-1n-1n-1t2t中下至中
642n-2n-2n-2t3t中至中高,仅安全性较 RAID 5 高

4. 实现模式

4.1. 软件方式

  主要通过 CPU 来进行处理,会耗费 CPU 资源运算 RAID,价格低;

4.2. 硬件方式

  专门的阵列卡等;氪金佬专属,性能高;

5. 总结

  实际上来说,一般应用较多的,还是 RAID 0,1,5,6;和一部分混合 RAID 来实现;

  一般很多家庭 NAS 用户会选择 RAID 5 来进行,切记,这也不是最保险的,两块盘如果是相同批次;很可能出现,一块盘损坏,另一块盘在重建 RAID5 的时候,损坏,此时数据寄勒;切记 RAID 不是备份;数据还是要以备份为主;尤其是 家庭式 NAS 在使用过程中;切记多备份;

6. ZFS 技术

  一个更加先进的文件管理系统~


Comment