Previous Up Next

第 2 章  简介

Antares 5070 是一款高性能、多功能,但相对廉价的基于主机的 RAID 控制器。其嵌入式操作系统(K9 内核)以 Plan 9 操作系统为模型,Plan 9 操作系统的设计在 AT&T 的几篇论文中有所讨论(请参阅“延伸阅读”部分)。K9 是一个面向中小型复杂性嵌入式控制器(例如 ISDN-以太网桥接器、RAID 控制器等)的内核。它在具有非抢占式调度器的单个 CPU 上支持多个轻量级进程(即,没有内存管理)。设备驱动程序架构基于 Plan 9(和 Unix SVR4)流。并发控制机制包括信号量和信号。
5070 具有三个单端超 1 SCSI 通道和两个板载串行接口,其中一个通过连接的串行终端或调制解调器提供命令行访问。另一个用于升级固件。该命令行功能强大,实现了许多基本的 Unix 命令(例如 dd、ls、cat 等)和一个精简的 Bourne shell 用于脚本编写。Unix 命令集通过 RAID 特定的配置命令和脚本进行了增强。除了命令行界面之外,还提供了一个基于 ASCII 文本的 GUI,以允许轻松配置 0、1、3、4 和 5 级 RAID。

2.1  5070 功能5070 主要功能

2.2  背景

本节中有关 RAID 级别的大部分信息/知识改编自 Linas Vepstas 的 software-raid-HOWTO。有关可以获取完整文档的 URL,请参阅致谢部分。

RAID 是“Redundant Array of Inexpensive Disks”(廉价磁盘冗余阵列)的缩写,用于使用单个硬盘驱动器创建大型、可靠的磁盘存储系统。实现 RAID 有两种基本方法:软件或硬件。软件 RAID 的主要优点是成本低。但是,由于主机系统的操作系统必须直接管理 RAID,因此性能会受到很大影响。此外,如果 RAID 也是启动设备,则驱动器故障可能会造成灾难性后果,因为执行恢复所需的操作系统和实用程序软件位于 RAID 上。硬件 RAID 的主要优点是性能和更高的可靠性。由于所有 RAID 操作都由控制器上的专用 CPU 处理,因此主机系统的 CPU 永远不会受到 RAID 相关任务的困扰。事实上,主机操作系统完全不知道其 SCSI 驱动器实际上是虚拟 RAID 驱动器。当 5070 上的驱动器发生故障时,可以从备件池中即时更换驱动器,并在主机操作系统毫不知情的情况下重建其数据。

2.2.1  RAID 级别Raid 级别

不同的 RAID 级别具有不同的性能、冗余、存储容量、可靠性和成本特性。大多数但并非所有 RAID 级别都提供针对驱动器故障的冗余。各种供应商和研究人员定义了许多不同的 RAID 级别。以下描述了在前 7 个 RAID 级别在 Antares 5070 硬件 RAID 实现中的应用。

2.2.2  RAID 线性RAID 线性

RAID-linear 是驱动器的简单串联,用于创建一个更大的虚拟驱动器。如果您有多个小型驱动器,并且希望创建一个单个的大型驱动器,则它非常方便。这种串联不提供冗余,实际上降低了整体可靠性:如果任何一个驱动器发生故障,组合驱动器将发生故障。

总结

2.2.3  RAID 1级别 1

也称为“镜像”。两个(或更多)驱动器,所有驱动器大小相同,每个驱动器都存储所有数据的精确副本,按磁盘块逐块复制。镜像提供了强大的驱动器故障保护:如果一个驱动器发生故障,则另一个驱动器具有相同数据的精确副本。镜像还可以帮助提高 I/O 密集型系统中的性能,因为读取请求可以在多个驱动器之间分配。不幸的是,镜像也是存储效率最低的方法之一:两个镜像驱动器存储的数据量不超过单个驱动器。

总结

2.2.4  条带化Striping

条带化是所有其他 RAID 级别背后的基本概念。条带是磁盘块的连续序列。条带可以短至单个磁盘块,也可以包含数千个磁盘块。RAID 驱动程序将其组件驱动器拆分为条带;不同的 RAID 级别在如何组织条带以及在其中放置什么数据方面有所不同。条带大小、文件系统中文件的典型大小及其在驱动器上的位置之间的相互作用决定了 RAID 子系统的整体性能。

2.2.5  RAID 0级别 0

类似于 RAID-linear,不同之处在于组件驱动器被分成条带,然后交错排列。与 RAID-linear 一样,结果是一个更大的虚拟驱动器。与 RAID-linear 一样,它不提供冗余,因此降低了整体可靠性:单个驱动器故障将导致整个系统瘫痪。但是,5070 硬件 RAID 0 是此处列出的所有方案中最快的。

总结

2.2.6  RAID 2RAID 3级别 2 和 3

RAID-2 很少再使用,并且在某种程度上已被现代硬盘技术淘汰。RAID-2 类似于 RAID-4,但存储 ECC 信息而不是奇偶校验。由于所有现代磁盘驱动器都内置了 ECC,因此这提供的额外保护很少。如果在写入期间断电,RAID-2 可以提供更高的数据一致性;但是,电池备份和干净的关机可以提供相同的好处。RAID-3 类似于 RAID-4,不同之处在于它使用尽可能小的条带大小。

总结

2.2.7  RAID 4级别 4

RAID-4 像 RAID-0 一样交错条带,但它需要一个额外的驱动器来存储奇偶校验信息。奇偶校验用于提供冗余:如果任何一个驱动器发生故障,则可以使用其余驱动器上的数据来重建发生故障的驱动器上的数据。给定 N 个数据磁盘和一个奇偶校验磁盘,通过从每个数据磁盘中取出一个条带并将它们进行异或运算来计算奇偶校验条带。因此,(N+1) 磁盘 RAID-4 阵列的存储容量为 N,这比镜像 (N+1) 个驱动器要好得多,并且几乎与大型 N 的 RAID-0 设置一样好。请注意,对于 N=1,其中有一个数据磁盘和一个奇偶校验磁盘,RAID-4 非常像镜像,因为两个磁盘中的每一个都是彼此的副本。但是,RAID-4 不提供镜像的读取性能,并且提供明显降低的写入性能。简而言之,这是因为更新奇偶校验需要读取旧奇偶校验,然后才能计算和写入新奇偶校验。在写入量很大的环境中,奇偶校验磁盘可能会成为瓶颈,因为每次写入都必须访问奇偶校验磁盘。

总结

2.2.8  RAID 5级别 5

RAID-5 通过在每个驱动器上交替存储奇偶校验条带来避免 RAID-4 的写入瓶颈。但是,写入性能仍然不如镜像好,因为奇偶校验条带仍然必须在写入之前读取和异或运算。读取性能也不如镜像好,毕竟,数据只有一个副本,而不是两个或多个。RAID-5 相对于镜像的主要优势在于,它提供冗余和针对单个驱动器故障的保护,同时在使用三个或更多驱动器时提供更大的存储容量。

总结

Previous Up Next