Preview only show first 10 pages with watermark. For full document please download

Raid 技术全程指南

   EMBED


Share

Transcript

RAID 技术全程指南 随着计算机应用的日益普及,人们对计算速度和性能的要求也逐渐提高。在 一个完整的计算机系统中,CPU 和内存的作用固然重要,但是数据存储设备性能 的好坏和速度的快慢也直接影响到整个系统的表现。 本文所要讲解的RAID技术起初主要应用于服务器高端市场,但是随着个人用 户市场的成熟和发展,正不断向低端市场靠拢,从而为用户提供了一种既可以提 升硬盘速度,又能够确保数据安全性的良好的解决方案。IDE 磁盘阵列就可以让 你的机器性能更高,速度更快,稳定性更强!本文将对RAID技术进行较为详细的 介绍,希望能够对广大读者有所帮助。 入门基础 RAID 是英文 Redundant Array of Inexpensive Disks 的缩写,中文简称为 磁盘阵列。其实,从 RAID 的英文原意中,我们已经能够多少知道 RAID 就是一种 由多块廉价磁盘构成的冗余阵列。虽然 RAID 包含多块磁盘,但是在操作系统下 是作为一个独立的大型存储设备出现。RAID 技术分为几种不同的等级,分别可 以提供不同的速度,安全性和性价比。 人们在开发 RAID 时主要是基于以下设想,即几块小容量硬盘的价格总和要 低于一块大容量的硬盘。虽然目前这一设想还没有成为现实,RAID 在节 省成本 方面的作用还不是很明显,但是 RAID 可以充分发挥出多块硬盘的优势,实现远 远超出任何一块单独硬盘的速度和吞吐量。除了性能上的提高之外, RAID 还可 以提供良好的容错能力,在任何一块硬盘出现问题的情况下都可以继续工作,不 会受到损坏硬盘的影响。 RAID系统究竟有什么好处呢? 1.扩大了存贮能力 可由多个硬盘组成容量巨大的存贮空间。 2.降低了单位容量的成本 市场上最大容量的硬盘每兆容量的价格要大大高 于普及型硬盘,因此采用多个普及型硬盘组成的阵列其单位价格要低得多。 3.提高了存贮速度 单个硬盘速度的提高均受到各个时期的技术条件限制, 要更进一步往往是很因难的,而使用 RAID,则可以让多个硬盘同时分摊数据的 读或写操作,因此整体速度有成倍地提高。 4.可靠性 RAID 系统可以使用两组硬盘同步完成镜像存贮,这种安全措施对 于网络服务器来说是最重要不过的了。 5.容错性 RAID 控制器的一个关键功能就是容错处理。容错阵列中如有单块 硬盘出错,不会影响到整体的继续使用,高级 RAID 控制器还具有拯救功能。 6.对于 IDE RAID 来说,目前还有一个功能就是支持 ATA/66/100。RAID 也分 为 SCSI RAID 和 IDE RAID 两类,当然 IDE RAID 要廉价得多。如果主机主板不支 持 ATA/66/100 硬盘,通过 RAID 卡,则能够使用上新硬盘的 ATA/66/100 功能。 RAID 0 我们在前文中已经提到 RAID 分为几种不同的等级,其中,RAID 0 是最简单 的一种形式。RAID 0 可以把多块硬盘连接在一起形成一个容量更大的存储设备。 最简单的 RAID 0 技术只是提供更多的磁盘空间,不过我们也可以通过设置,使 用 RAID 0 来提高磁盘的性能和吞吐量。RAID 0 没有冗余或错误修复能力,但是 实现成本是最低的。 RAID 0 最简单的实现方式就是把几块硬盘串联在一起创建一个大的卷集。 磁盘之间的连接既可以使用硬件的形式通过智能磁盘控制器实现,也可以使用操 作系统中的磁盘驱动程序以软件的方式实现。图示如下: 在上述配置中,我们把 4 块磁盘组合在一起形成一个独立的逻辑驱动器,容 量相当于任何任何一块单独硬盘的 4 倍。如图中彩色区域所示,数据被依次写入 到各磁盘中。当一块磁盘的空间用尽时,数据就会被自动写入到下一块磁盘中。 这种设置方式只有一个好处,那就是可以增加磁盘的容量。至于速度,则与 其中任何一块磁盘的速度相同,这是因为同一时间内只能对一块磁盘进行 I/O 操作。如果其中的任何一块磁盘出现故障,整个系统将会受到破坏,无法继续使 用。从这种意义上说,使用纯 RAID 0 方式的可靠性仅相当于单独使用一块硬盘 的 1/4(因为本例中 RAID 0 使用了 4 块硬盘)。 虽然我们无法改变 RAID 0 的可靠性问题,但是我们可以通过改变配置方式, 提供系统的性能。与前文所述的顺序写入数据不同,我们可以通过创建带区集, 在同一时间内向多块磁盘写入数据。具体如图所示: 上图中,系统向逻辑设备发出的 I/O 指令被转化为 4 项操作,其中的每一项 操作都对应于一块硬盘。我们从图中可以清楚的看到通过建立带区集,原先顺序 写入的数据被分散到所有的四块硬盘中同时进行读写。四块硬盘的并行操作使同 一时间内磁盘读写的速度提升了 4 倍。 在创建带区集时,合理的选择带区的大小非常重要。如果带区过大,可能一 块磁盘上的带区空间就可以满足大部分的 I/O 操作,使数据的读写仍然只局 限 在少数的一、两块硬盘上,不能充分的发挥出并行操作的优势。另一方面,如果 带区过小,任何 I/O 指令都可能引发大量的读写操作,占用过多的控制器总线带 宽。因此,在创建带区集时,我们应当根据实际应用的需要,慎重的选择带区的 大小。 我们已经知道,带区集可以把数据均匀的分配到所有的磁盘上进行读写。如 果我们把所有的硬盘都连接到一个控制器上的话,可能会带来潜在的危害。这 是 因为当我们频繁进行读写操作时,很容易使控制器或总线的负荷超载。为了避免 出现上述问题,建议用户可以使用多个磁盘控制器。示意图如下: 这样,我们就可以把原先控制器总线上的数据流量降低一半。当然,最好解 决方法还是为每一块硬盘都配备一个专门的磁盘控制器。 RAID 1 虽然 RAID 0 可以提供更多的空间和更好的性能,但是整个系统是非常不可 靠的,如果出现故障,无法进行任何补救。所以,RAID 0 一般只是在那些对数 据安全性要求不高的情况下才被人们使用。 RAID 1 和 RAID 0 截然不同,其技术重点全部放在如何能够在不影响性能的 情况下最大限度的保证系统的可靠性和可修复性上。RAID 1 是所有 RAID 等级中 实现成本最高的一种,尽管如此,人们还是选择 RAID 1 来保存那些关键性的重 要数据。 RAID 1 又被称为磁盘镜像,每一个磁盘都具有一个对应的镜像盘。对任何 一个磁盘的数据写入都会被复制镜像盘中;系统可以从一组镜像盘中的任何一个 磁盘读取数据。 显然,磁盘镜像肯定会提高系统成本。因为我们所能使用的空 间只是所有磁盘容量总和的一半。下图显示的是由 4 块硬盘组成的磁盘镜像,其 中可以作为存储空间使 用的仅为两块硬盘(画斜线的为镜像部分)。 RAID 1 下任何一块硬盘的故障都不会影响到系统的正常运行,而且只要能 够保证任何一对镜像盘中至少有一块磁盘可以使用,RAID 1 甚至可以在一半数 量的硬盘出现问题时不间断的工作。当一块硬盘失效时,系统会忽略该硬盘,转 而使用剩余的镜像盘读写数据。 通常,我们把出现硬盘故障的 RAID 系统称为在降级模式下运行。虽然这时 保存的数据仍然可以继续使用,但是 RAID 系统将不再可靠。如果剩余的镜像盘 也出现问题,那么整个系统就会崩溃。因此,我们应当及时的更换损坏的硬盘, 避免出现新的问题。 更换新盘之后,原有好盘中的数据必须被复制到新盘中。这一操作被称为同 步镜像。同步镜像一般都需要很长时间,尤其是当损害的硬盘的容量很大时更 是 如此。在同步镜像的进行过程中,外界对数据的访问不会受到影响,但是由于复 制数据需要占用一部分的带宽,所以可能会使整个系统的性能有所下降。 因为 RAID 1 主要是通过二次读写实现磁盘镜像,所以磁盘控制器的负载也 相当大,尤其是在需要频繁写入数据的环境中。为了避免出现性能瓶颈,使用多 个磁盘控制器就显得很有必要。下图示意了使用两个控制器的磁盘镜像。 使用两个磁盘控制器不仅可以改善性能,还可以进一步的提高数据的安全性 和可用性。我们已经知道,RAID 1 最多允许一半数量的硬盘出现故障,所以按 照我们上图中的设置方式(原盘和镜像盘分别连接不同的磁盘控制),即使一个磁 盘控制器出现问题,系统仍然可以使 用另外一个磁盘控制器继续工作。这样, 就可以把一些由于意外操作所带来的损害降低到最低程度。 RAID 0+1(10) 单独使用 RAID 1 也会出现类似单独使用 RAID 0 那样的问题,即在同一时间 内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,我 们可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优 势,所以被称为 RAID 0+1。 热插拔 一些面向高端应用的磁盘镜像系统都可以提供磁盘的热插拔功能。所谓热插 拔功能,就是允许用户在不关闭系统,不切断电源的情况下取出和更换损害的 硬 盘。如果没有热插拔功能,即使磁盘损坏不会造成数据的丢失,用户仍然需要暂 时关闭系统,以便能够对硬盘进行更换。现在,使用热插拔技术只要简单的打开 连 接开关或者转动手柄就可以直接取出硬盘,而系统仍然可以不间断的正常运 行。 校验 RAID 3 和 RAID 5 都分别使用了校验的概念提供容错能力。简单的说,我们 可以把校验想象为一种二进制的校验和,一个可以告诉你其它所有字位是否正确 的特殊位。 在数据通信领域,奇偶校验被用来确定数据是否被正确传送。例如,对于每 一个字节,我们可以简单计算数字位 1 的个数,并在字节内加入附加校验位。 在 数据的接收方,如果数字位 1 的个数为奇数,而我们使用的又是奇数校验的话, 则说明该字节是正确的。同样对偶数校验也是如此。然而,如果数字位 1 的个数 和 校验位的奇偶性不一致的话,则说明数据在传送过程中出现了错误。 RAID 系统也采用了相似的校验方法,可以在磁盘系统中创建校验块,校验 块中的每一位都用来对其它关联块中的所有对应位进行校验。 在数据通讯领域,虽然校验位可以告诉我们某个字节是否正确,但是无法告 诉我们到底是哪一位出现了问题。这就是说我们可以检测错误,但是不能改正 错 误。对于 RAID,这是远远不够的。固然错误的检测非常重要,但是如果不能对 错误进行修复,我们就无法提高整个系统的可靠性。 举个例子来说,假设我们发现校验块中第 10 个字节的第 5 位不正确。如果 这个校验块包含的是另外 8 个数据块的校验信息,那么哪一个数据块才是问题 的罪魁祸首呢?也许你可能会想为每一个数据块都建立一个校验块就可以解决问 题。但是这种方法很难实现。事实上,RAID 主要是借助磁盘控制器的错误报告 检 测错误位置,并进行修复。如果磁盘控制器在读取数据时没有发出任何“抱 怨”,那么系统将会视该数据为正确数据,继续使用。 RAID 3 RAID 3 采用的是一种较为简单的校验实现方式,使用一个专门的磁盘存放 所有的校验数据,而在剩余的磁盘中创建带区集分散数据的读写操作。例如,在 一个由 4 块硬盘 构成的 RAID 3 系统中,3 块硬盘将被用来保存数据,第四块硬 盘则专门用于校验。这种配置方式可以用 3+1 的形式表示,具体如图: 在上图中,我们用相同的颜色表示使用同一个校验块的所有数据块,斜线标 出的部分为校验块。校验块和所有对应的数据块一起构成一个带区。 第四块硬盘中的每一个校验块所包含的都是其它 3 块硬盘中对应数据块的 校验信息。RAID 3 的成功之处就在于不仅可以象 RAID 1 那样提供容错功能,而 且整体开销从 RAID 1 的 50%下降为 25%(RAID 3+1)。随着所使用磁盘数量的增多, 成本开销会越来越小。举例来说,如果我们使用 7 块硬盘,那么总开销就会将到 12.5%(1/7)。 在不同情况下,RAID 3 读写操作的复杂程度不同。最简单的情况就是从一 个完好的 RAID 3 系统中读取数据。这时,只需要在数据存储盘中找到相应的数 据块进行读取操作即可,不会增加任何额外的系统开销。 当向 RAID 3 写入数据时,情况会变得复杂一些。即使我们只是向一个磁盘 写入一个数据块,也必须计算与该数据块同处一个带区的所有数据块的校验值, 并将新值重新写入到 校验块中。例如,当我们向上图中的绿色数据块写入数据 时,必须重新计算所有 3 个绿色数据块的校验值,然后重写位于第四块硬盘的绿 色校验块。由此我们可以看 出,一个写入操作事实上包含了数据读取(读取带区 中的关联数据块),校验值计算,数据块写入和校验块写入四个过程。系统开销 大大增加。 我们可以通过适当设置带区的大小使 RAID 系统得到简化。如果某个写入操 作的长度恰好等于一个完整带区的大小(全带区写入),那么我们就不必再读取带 区中的关联数据块计算校验值。我们只需要计算整个带区的校验值,然后直接把 数据和校验信息写入数据盘和校验盘即可。 到目前为止,我们所探讨的都是正常运行状况下的数据读写。下面,我们再 来看一下当硬盘出现故障时,RAID 系统在降级模式下的运行情况。 RAID 3 虽然具有容错能力,但是系统会受到影响。当一块磁盘失效时,该 磁盘上的所有数据块必须使用校验信息重新建立。如果我们是从好盘中读取数据 块,不会有任何 变化。但是如果我们所要读取的数据块正好位于已经损坏的磁 盘,则必须同时读取同一带区中的所有其它数据块,并根据校验值重建丢失的数 据。 当我们更换了损坏的磁盘之后,系统必须一个数据块一个数据块的重建坏盘 中的数据。整个过程包括读取带区,计算丢失的数据块和向新盘写入新的数据块, 都是在后台自动进行。重建活动最好是在 RAID 系统空闲的时候进行,否则整个 系统的性能会受到严重的影响。 RAID 3 的性能问题 除了我们在上文讨论过的有关数据写入和降级模式的问题之外,在使用 RAID 3 的过程中还有其他一些性能上的问题需要引起我们的注意。RAID 3 所存 在的最大一个不足同时也是导致 RAID 3 很少被人们采用的原因就是校验盘很容 易成为整个系统的瓶颈。 我们已经知道 RAID 3 会把数据的写入操作分散到多个磁盘上进行,然而不 管是向哪一个数据盘写入数据,都需要同时重写校验盘中的相关信息。因此,对 于那些经常需要执行大量写入 操作的应用来说,校验盘的负载将会很大,无法 满足程序的运行速度,从而导致整个 RAID 系统性能的下降。鉴于这种原因,RAID 3 更加适合应用于那些写入操作较少,读取操作较多的应用环境,例如数据库和 WEB 服务器等。 RAID 5 RAID 3 所存在的校验盘的性能问题使几乎所有的 RAID 系统都转向了 RAID 5。 在运行机制上,RAID 5 和 RAID 3 完全相同,也是由同一带区内的几个数据块共 享一个校验块。 RAID 5 和 RAID 3 的最大区别在于 RAID 5 不是把所有的校验块集中保存在 一个专门的校验盘中,而是分散到所有的数据盘中。RAID 5 使用了一种特殊的 算法,可以计算出任何一个带区校验块的存放位置。具体如图所示: 注意图中的校验块已经被分散保存在不同的磁盘中,这样就可以确保任何对 校验块进行的读写操作都会在所有的 RAID 磁盘中进行均衡,从而消除了产生瓶 颈的可能。 RAID主板篇 在 RAID 家族里,RAID 0 和 RAID 1 在个人电脑上应用最广泛,毕竟愿意使 用 4 块甚至更多的硬盘来构筑 RAID 0+1 或其他硬盘阵列的个人用户少之又少, 因此我们在这里仅就这两种 RAID 方式进行讲解。我们选择支持 IDE-RAID 功能的 升技 KT7A-RAID 主 板,一步一步向大家介绍 IDE-RAID 的安装。升技 KT7A-RAID 集成的是 HighPoint 370 芯片,支持 RAID 0、1、0+1。 做 RAID 自然少不了硬盘,RAID 0 和 RAID 1 对磁盘的要求不一样,RAID 1(Mirror)磁盘镜像一般要求两块(或多块)硬盘容量一致,而 RAID 0(Striping) 磁盘一般没有这个要求,当然,选用容量相似性能相近甚至完全一样的硬盘比较 理想。为了方便测试,我们选用两块 60GB 的希捷酷鱼Ⅳ 硬盘(Barracuda ATA Ⅳ、 编号 ST360021A)。系统选用 Duron 750MHz 的 CPU,2×128MB 樵风金条 SDRAM, 耕升 GeForce2 Pro 显卡,应该说是比较普通的配置,我们也希望借此了解构建 RAID 所需的系统要求。 1.RAID 0 的创建 第一步 首先要备份好硬盘中的数据。很多用户都没有重视备份这一工作,特别是一 些比较粗心的个人用户。创建 RAID 对数据而言是一项比较危险的操作,稍 不留 神就有可能毁掉整块硬盘的数据,我们首先介绍的 RAID 0 更是这种情况,在创 建 RAID 0 时,所有阵列中磁盘上的数据都将被抹去,包括硬盘分区表在内。因 此要先准备好一张带 Fdisk 与 Format 命令的 Windows 98 启动盘,这也是这一步 要注意的重要事项。 第二步 将两块硬盘的跳线设置为 Master,分别接上升技 KT7A-RAID 的 IDE3、IDE4 口(它们由主板上的 HighPoint370 芯片控 制)。由于 RAID 0 会重建两块硬盘的 分区表,我们就无需考虑硬盘连接的顺序(下文中我们会看到在创建 RAID 1 时这 个顺序很重要)。 第三步 对 BIOS 进行设置,打开 ATA RAID CONTROLLER。我们在升技 KT7A-RAID 主 板 的 BIOS 中 进 入 INTEGRATED PERIPHERALS 选 项 并 开 启 ATA100 RAID IDE CONTROLLER。升技建议将开机顺序全部改为 ATA 100 RAID,实际我们发现这在 系统安装过程中并不可行,难道没有分区的硬盘可以启动吗?因此我们仍然设置 软驱作为首选项。 第四步 接下来的设置步骤是创建 RAID 0 的核心内容,我们以图解方式向大家详细 介绍: 1.系统 BIOS 设置完成以后重启电脑,开机检测时将不会再报告发现硬盘。 2.磁盘的管理将由 HighPoint 370 芯片接管。 3.下面是非常关键的 HighPoint 370 BIOS 设置,在 HighPoint 370 磁盘扫 描界面同时按下“Ctrl”和“H”。 4. 进 入 HighPoint 370 BIOS 设 置 界 面 后 第 一 个 要 做 的 工 作 就 是 选 择 “Create RAID”创建 RAID。 5.在“Array Mode(阵列模式)”中进行 RAID 模式选择,这里能够看到 RAID 0、RAID 1、RAID 0+1 和 Span 的选项,在此我们选择了 RAID 0 项。 6.RAID 模式选择完成会自动退出到上一级菜单进行“Disk Drives(磁盘驱 动器)”选择,一般来说直接回车就行了。 7.下一项设置是条带单位大小,缺省值为 64kB,没有特殊要求可以不予理 睬。 8.接着是“Start Create(开始创建)”的选项,在你按下“Y”之前,请认 真想想是否还有重要的数据留在硬盘上,这是你最后的机会!一旦开始创建 RAID,硬盘上的所有数据都会被清除。 9.创建完成以后是指定 BOOT 启动盘,任选一个吧。 按“Esc”键退出,当然少不了按下“Y”来确认一下。 HighPoint 370 BIOS 没有提供类似“Exit Without Save”的功能,修改设 置后是不可逆转的。 第五步 再次重启电脑以后,我们就可以在屏幕上看到“Striping(RAID 0)for Array #0”字样了。插入先前制作的启动盘,启动 DOS。打开 Fdisk 程序,咦?怎么就 一个硬盘可见?是的,RAID 阵列已经整个被看作了一块硬盘,对于操作 系统而 言,RAID 完全透明,我们大可不必费心 RAID 磁盘的管理,这些都由控制芯片完 成。接下来按照普通单硬盘方法进行分区,你会发现“这个”硬盘的容 量“变” 大了,仔细算算,对,总容量就是两块硬盘相加的容量!我们可以把 RAID 0 的读 写比喻成拉链,它把数据分开在两个硬盘上,读取数据会变得更快,而且不会浪 费磁盘空间。在分区和格式化后千万别忘了激活主分区。 第六步 选 择 操 作 系 统 让 我 们 颇 费 周 折 , HighPoint370 芯 片 提 供 对 Windows 98/NT/2000/XP 的驱动支持,考虑到使 RAID 功能面向的是相对高级的用户,所 以我们选择了对新硬件支持更好的 Windows XP Professional 英文版(采用英文 版系统主要是为了方便后面的 Winbench 测试,大家自己使用 RAID 完全可以用中 文版的操作系统), Windows 2000 也是一个不错的选择,但是硬件支持方面显 然不如 Windows XP Professional。 第七步 对于采用 RAID 的电脑,操作系统的安装和普通情况下不一样,让我们看看 图示,这是在 Windows XP 完成第一步“文件复制”重启以后出现的画面,安装 程序会以英文提示“按下 F6 安装 SCSI 设备或 RAID 磁盘”,这一过程很短,而 且用户往往会忽视屏 幕下方的提示。 按下 F6 后出现安装选择,选择“S”将安装 RAID 控制芯片驱动,选择 “Enter”则不安装。 按下“S”键会提示插入 RAID 芯片驱动盘。 键入回车,安装程序自动搜索驱动盘上的程序,选择“WinXP”那一个并回 车。 如果所提供的版本和 Windows XP Profesional 内置的驱动版本不一致,安 装程序会给出提示让用户进行选择。 按 下 “S” 会 安 装 软 盘 所 提 供 的 而 按 下 “Enter” 则 安 装 Windows XP Professional 自带的驱动。按下“S”后又需要确认,这次是按“Enter”(这 个……确认太多了,呵呵)。接下来是正常的系统安装,和普通安装没有任何区 别。 RAID 0 的安装设置我们就介绍到这里,下面我们会谈谈 RAID 1 的安装。与 RAID 0 相比,RAID 1 的安装过程要简单许多,在正确操作的情况下不具破坏性。 2.RAID 1 的创建 虽然在原理上和 RAID 0 完全不一样,但 RAID 1 的安装设置过程却与 RAID 0 相差不多,主要区别在于 HighPoint 370 BIOS 里的设置。为了避免重复,我们 只向大家重点介绍这部分设置: 进入 HighPoint 370 BIOS 后选择“Create RAID”进行创建: 1. 在 “Array Mode” 上 点 击 回 车 , 在 RAID 模 式 选 择 中 选 择 第 二 项 “Mirror(RAID 1)for Data Security(为数据源盘创建镜像)”。 2.接着是源盘的选择,我们再次提醒用户:务必小心,不要选错。 3.然后是目标盘的选择,也就是我们所说的镜像盘或备份盘。 4.然后开始创建。 5.创建完成以后 BIOS 会提示进行镜像的制作,这一过程相当漫长。 6.我们用了大约 45 分钟才完成 60GB 的镜像制作,至此 RAID 1 创建完成。 RAID 1 会将主盘的数据复制到镜像盘,因此在构建 RAID 1 时需要特别小心, 千万不要把主盘和镜像盘弄混,否则结果将是悲剧性的。RAID 1 既可在两块无 数据的硬盘上创建,也能够在一块已经安装操作系统的硬盘上添加,比 RAID 0 方便多了(除了漫长的镜像制作过程)。创建完成以后我们试着将其中一块硬盘拔 下,HighPoint370 BIOS 给出了警告,按下“Esc”,另一块硬盘承担起了源盘 的重任,所有数据完好无损。 对于在一块已经安装操作系统的硬盘上添加 RAID 1,我们建议的步骤是:打 开 BIOS 中的控制芯片→启动操作系统安装 HighPoint 370 驱动→关机将源盘和 镜像盘接在 IDE3、4 口→进入 HighPoint 370 BIOS 设置 RAID 1(步骤见上文介 绍)→重启系统完成创建。 我们对两种 RAID 进行了简单的测试,虽然 RAID 0 的测试成绩让人有些不解, 但是实际使用中仍然感觉比单硬盘快了很多,特别是 Windows XP Professional 的启动异常迅速,进度条一闪而过。至于传输率曲线出现不稳定的情况,我们估 计和平台选择有一些关系,毕竟集成芯片在进行这种高数 据吞吐量的工作时非 常容易被干扰。不过即使是这样,我们也看到 RAID 0 系统的数据传输率达到了 非常高的水平,一度接近 60MB/s。与 RAID 0 相比,RAID 1 系统的性能虽然相对 单磁盘系统没有什么明显的改善,但测试中我们发现 RAID 1 的工作曲线显得非 常稳定,很少出现波动的情况。 再看看 Winbench99 2.0 中的磁盘测试成绩,一目了然。 对用户和操作系统而言,RAID 0 和 1 是透明不影响任何操作的,我们就像 使用一块硬盘一样。 用RAID卡安装RAID 关于 RAID 卡的安装 我们选用的 IDE RAID 卡是 Promise 公司的 FastTrak 系列的 FastTrak66(如 图 4),这款产品配有两个 UltraDMA66 的 IDE 通道(如图 5),支持 RAID 0,1, 1+0 , 国内价格大约在 1000 元左右。同类的产品还有诸如 Iwill 公司 的 SIDEPro66、Alalion 公司的 UltimaPlus33 等,都是性价比较高的产品。 现在我们要做的第一步就是先把这块 FastTrak66 IDE RAID 卡插入主板的 PCI 插槽。这个步骤要说起来很简单,启下机箱背板上的插槽档板,然后把 IDE RAID 卡竖直插入便可。在插入的过程中一定要注意选准角度,力量均匀,以免 损坏板卡或插槽。确定 IDE RAID 已经稳妥后,用螺丝固定便可。 第二步读者们需要做的,就是要把两块硬盘都连接到这张 FastTrak66 板卡 上(建议如果用户打算组建 RAID,最好选用两块同一品牌、同一 型号的硬盘, 这 样既可以充分利用硬盘空间,又可以相对地降低 CPU 占用率。因为一旦用户使用 了不同型号的硬盘,其各自的指标不尽相同,那么 CPU 等在处理数据的时候就 势 必会耗费很多效能和时间)。 对于初学者而言有一点必须注意,千万不要把两块硬盘以主从方式连接到 一条硬盘线上,应该让您的两块宝贝硬盘都作为 Master 连接到 FastTrak66 的 两条 IDE 通道上。道理很简单,IDE 总线在工作时总是最先响应 Master 设备的 数据请求,换句话说,当 Master 设备工作时,Slave 设备只能 处于等待状态, 如果是那样也就无从谈起 RAID 0 利用两个硬盘并行工作来提升性能的特性了。 通过以上两个步骤,IDE RAID 卡的硬件安排便可以宣告结束,接下来就要 设置软件了。按下 Power 键重新开机,当系统通过主板 BIOS 自检时会出现如图 所示提示,按提示同时键入 Ctrl+F 可进入 FastTrak66 的 BIOS 设置界面(有的 品牌的 RAID 卡有其特定的进入命令或方式,如 IBM 公司的 SERVER RAID 便是同 时键入 Ctrl+I 才能够进入 BIOS 设置界面)。 在 FastTrak66 的 BIOS 的设置界面中,1—6 的热健分别对应自动设置、查 看设备关联、定义阵列、删除阵列、重建阵列和控制器设置等六 项功能。如果 用户选择第三个选项定义阵列,接着就会出现定义磁盘阵列的操作图面。用户此 时可以在第一行上敲回车,然后就可以进入阵列一(Array 1)的设置。此时,您 这台机器上可以使用的硬盘都会列在下面的提示框中,用户想要使用哪块硬盘就 把它的 Assignment 设置成 Y 即可。如果用 RAID 0 的话,就把 RAID Mode 设置成 Stripe(区带集);如果是 1 或 1+0 的话,就设置成 Mirror 或 Span。然后设置一 下 RAID 0 方式下分割的数据块大小(1 和 1+0 没有此项设置)。最后别忘了按 Ctrl+Y 保存设置(如图所示)。 OK,至此 IDE RAID 0 的设置工作便已经基本完成,接下来要做的就是像普 通硬盘一样分区、格式化了(这个步骤就不需要笔者再一一详解了吧)。当然,如 果用户还希望使用 RAID 0 的硬盘启动的话,只需要在 BIOS 里面设置成从 SCSI 启动便可。没错,就是 SCSI 启动,因为 FastTrak66 卡此时已经把做过 RAID 0 的硬盘映射成为一个新的 SCSI 设备,这样一来用户就无法设置成从 C 启动了。 不过,除了主板的 BIOS 以外,其它的应用程序还是会把其当作一块普通硬盘 正 常使用的。 现在装上 WindowsNT4 和中文第二版 Windows98 测试一下性能吧。利用 ZDNet 最 新 版 本 的 权 威 评 测 软 件 WinBench2001 、 WINSTONE 2001 、 Norton SystemWorks2001 工具箱里的 Notron System Information 等,读者您不难发现, 工作在 RAID 0 传输模式下的硬盘在传输率方面绝对可以较大优势胜出,而且其 速度基本可以达到普通硬盘连接方式的传输率的两倍甚至更高。如果现在有人问 您:又想马儿跑得 快,又不想喂马儿来吃草,可有什么好办法?现在您就可以自 豪地说,何以解忧,唯有 RAID。 软RAID篇 除了使用 RAID 卡或者主板所带的芯片实现磁盘阵列外,我们在一些操作系 统中可以直接利用软件方式实现 RAID 功能,例如 Windows 2000/XP 中就内置了 RAID 功能。 在了解 Windows 2000/XP 的软件 RAID 功能之前,我们首先来看看 Windows 2000 中的一项功能——动态磁盘管理。 动态磁盘与基本磁盘相比,不再采用以前的分区方式,而是叫卷集,它的作 用其实和分区相一致,但是具有以下区别: 1.可以任意更改磁盘容量 动态磁盘在不重新启动计算机的情况下可更改磁盘容量大小,而且不会丢失 数据,而基本磁盘如果要改变分区容量就会丢失全部数据(当然也有一些特殊的 磁盘工具软件可以改变分区而不会破坏数据,如 PQMagic 等)。 2.磁盘空间的限制 动态磁盘可被扩展到磁盘中不连续的磁盘空间,还可以创建跨磁盘的卷集, 将几个磁盘合为一个大卷集。而基本磁盘的分区必须是同一磁盘上的连续空间, 分区的最大容量当然也就是磁盘的容量。 3.卷集或分区个数 动态磁盘在一个磁盘上可创建的卷集个数没有限制,相对的基本磁盘在一个 磁盘上最多只能分 4 个区,而且使用 DOS 或 Windows 9X 时只能分一个主分区和 扩展分区。 *这里一定要注意,动态磁盘只能在 Windows NT/2000/XP 系统中使用,其他 的操作系统无法识别动态磁盘。 因为大部分用户的磁盘都是基本磁盘类型,为了使用软件 RAID 功能,我们 必须将其转换为动态磁盘:控制面板→管理工具→计算机管理→磁盘管理,在查 看菜单中将其中的一个窗口切换为磁盘列表。这时我们就可以通过右键菜单将选 择磁盘转换为动态磁盘。 在划分动态卷时会可以看到这样几个类型的动态卷。 1.简单卷:包含单一磁盘上的磁盘空间,和分区功能一样。(当系统中有两个 或两个以上的动态磁盘并且两个磁盘上都有未分配的空间时,我们能够选择如下 的两种分卷方式) 2.跨区卷:跨区卷将来自多个磁盘的未分配空间合并到一个逻辑卷中。 3.带区卷:组合多个(2 到 32 个)磁盘上的未分配空间到一个卷。 (如果如上 所述系统中的两个动态磁盘容量一致时,我们会看到另一个分区方式) 4.镜像卷:单一卷两份相同的拷贝,每一份在一个硬盘上。即我们常说的 RAID 1。 当我们拥有三个或三个以上的动态磁盘时,我们就可以使用更加复杂的 RAID 方式——RAID 5,此时在分卷界面中会出现新的分卷形式。 5.RAID 5 卷:相当于带奇偶校验的带区卷,即 RAID 5 方式。 对于大部分的个人电脑用户来说,构建 RAID 0 是最经济实用的阵列形式, 因此我们在这里仅就软件 RAID 0 的构建进行讲解: 要在 Windows 2000/XP 中使用软件 RAID 0,首先必须将准备纳入阵列的磁 盘转换为上文所述的动态磁盘(这里要注意的是,Windows 2000/XP 的默认磁盘 管理界面中不能转换基本磁盘和动态磁盘,请参考上文中的描述),我们在这里 尝试使用分区的条带化,这也正是软件 RAID 和使用 RAID 芯片构建磁盘阵列的 区别。 我们选取了一个 29GB 的分区进行划分带区卷,在划分带区卷区时,系统会 要求一个对应的分区,也就是说这时其他的动态磁盘上必须要有同样 29GB 或更 大的未分配空间,带区卷分配完成后,两个同样大小的分卷将被系统合并,此时 我们的格式化等操作也是同时在两个磁盘上进行。 在构建 RAID 0 完成后,我们决定测试其硬盘传输率以确定这种软件 RAID 对性能的提升程度,我们构建软件 RAID 的平台和前文中的硬件 RAID 平台并不相 同,为了保证 CPU 的性能以确保我们软件 RAID 的实现,我们采用了较高端的系 统:Athlon XP 1700+,三星 256MB DDR 内存,华硕 A7V266-E 主板,由于软件 RAID 对硬盘规格的要求比较低,所以硬盘系统我们选用了不同规格的硬盘,希捷酷鱼 Ⅳ 60GB 和西部数据 1200BB 120GB 两块硬盘。 在传输曲线的后半段,我们很清楚地看到软件 RAID 0 的硬盘传输率达到了 60MB/s,完全超越了阵列中任意一个硬盘的传输率,RAID 0 的优势开始体现出 来。对于追求高性能的用户来说,这应该是他们梦寐以求的。 这里应该说明的是,在 Linux 环境下,我们同样可以利用 Raidtools 工具来 实现软件 RAID 功能。这个工具可以制作软 RAID 0、RAID 1、RAID 4、RAID 5 等多种磁盘阵列。在使用 Raidtools 之前,首先要确定目前正在使用的 Linux 核心是否支持 Md。如果你正在使用的核心是 2.0.X,并且不是自 己编译过,大 多数情况下支持软 RAID。如果不能确定,则需要自己编译核心。 虽然 RAID 功能可以给我们带来更好的速度体验和数据安全性,但是应该指 出的是,现在市面上的大部分廉价 IDE-RAID 解决方案本质上仍然是 “半软”的 RAID,只是将 RAID 控制信息集成在 RAID 芯片当中,因此其 CPU 占用率比较大, 而且性能并不是非常稳定。这也是在高端系统中软件 RAID 0 的性能有时可以超 过“硬件”RAID 0 方案的原因。 对于用户来说,高性能的 IDE-RAID 存储系统,或者需要比较强劲的 CPU 运 算能力,或者需要比较昂贵的 RAID 卡,因此,磁盘阵列仍然应该 算是比较高端 的应用。不过对于初级用户来说,使用简单而廉价的磁盘阵列来提高计算机数据 的可用性或提升一下存储速度也是相当不错的选择,当然其性能还远不 能和高 端系统相比。 总之,我们看到越来越多的 RAID 架构出现在市场上,尤其是在中低端市场 上,越来越普及的廉价 IDE-RAID 方案与硬盘价格的不断下降互相照应,似乎也 在预示着未来个人数据存储的发展趋势,让我们拭目以待吧。 RAID问答篇 个人用户在组建 RAID 即磁盘阵列的过程中,应该注意什么问题呢? 1.问:我应该选择怎样的 RAID 解决方案,带 RAID 功能的主板?RAID 控制卡? 还是软件 RAID? 答:其实 RAID 解决方案只有高端和低端之分,对于绝大部分的廉价 RAID 解 决方案来讲,其构架中都不包含运算部分,因此对 CPU 的依赖性比较 强,低速 的 CPU 很难胜任这种工作,当然,对于较新的 CPU 如 PⅢ、新赛扬、雷鸟、毒龙 等来说,这种运算完全可以承受,但是为了保证 RAID 系统的稳定运 行,并且为 了避免 RAID 拖累系统性能,我们强烈建议用户使用主频 1GHz 以上的 CPU。 至于是选择 RAID 卡还是购买带集成 RAID 功能的主板,则要依据用户的需求 而定,一般来说,使用 RAID 卡能得到比较稳定的性能,但是会占用 一个宝贵的 扩展槽,而且成本较高;如果是正在准备升级主板或新装机的用户,集成 RAID 芯片的主板则是以最低成本实现 RAID 功能的首选。 2.问:我使用了 RAID 系统,但是并没有感觉到速度有明显的提升,这是为什 么? 答:对于 RAID 系统有数种标准,对于 RAID 1、RAID 5 等标准的磁盘阵列, 主要追求数据的可靠性,所以尽管是并行存储,但由于需要对数据进行校验,所 以它们的写性能会受到一些影响,对于普通用户来说,会感到 速度提升并不明 显。当然,对于一些需要大量读取的应用,它们的优势还是比较大的。 3.问:我使用了 RAID 0 标准的磁盘阵列方式,我听说这样会导致数据非常不 安全,我是不是应该使用 RAID 0+1 方式? 答:对于普通用户而言,RAID 0 的安全性还是可以承受的,但对于重要数据 而言,RAID 0 显然是比较危险的方式,并且 RAID 0 阵列中的磁盘数量越多,出 现问题的几率越大。由于 RAID 0 使用分割数据的方式且没有冗余,一旦某块磁 盘失效,将会对所有数据造成毁灭性的打击,相对的,其他 RAID 方式均提供了 冗余盘(或数据块)用来备份或者 恢复数据。因此我们建议用户不要在 RAID 0 阵列中存储重要数据或在其上安装系统,因为进行大量临时交换文件的存储和交 换才是 RAID 0 真正的优势所在。 4.问:我有两块规格并不一致的硬盘,我能不能使用 RAID?效果怎样? 答:可以使用 RAID 0 方式,但是要注意的是,这样构建的 RAID 0,总容量 将是较小的磁盘的容量×磁盘总数,因此可能会造成一些资源的浪费。当然电脑 如果拥有比较强劲的运算能力并且使用 Windows 2000/XP 操作系统,使用软件 RAID 就可以避免这种损失,详情请参看本篇内的“动态磁盘”相关介绍。 5.问:使用 RAID 和使用 SCSI 硬盘有什么不同,哪一种性价比更好? 答:我们这里仅仅讨论 IDE-RAID,在通常情况下,SCSI 能够提供更好的稳定 性和更快的速度,但是价格则是相当昂贵。一款 7200 转的 9.2GB/Ultra160 SCSI 硬盘价格会高达 1500 元左右,相比之下,同样价位的普通 IDE 硬盘容量会达到 80GB 以上。 我们可以对比 IDE-RAID 和 SCSI RAID,我们使用 4 块迈拓(Maxtor)金钻七 代 80GB 硬盘组成 RAID 0+1,选用支持 ATA/133 的 HighPoint RocketRAID 404 RAID 卡,这套系统的总价在 8000 元以下*,大约相当于某 10 000 转 73.4GB 容量的 SCSI 硬盘,使用 Ultra160 SCSI 接口/4MB 缓存,并且配备支持 Ultra160 的 SCSI 卡。 当然,SCSI 硬盘有着许多普通 IDE 硬盘无法比拟的优点,例如高传输率、 低 CPU 占用率和支持热插拔等,但对个人用户而言,它的性价比还是很低,我们 不得不将目光继续留在我们的 IDE 硬盘上。