RAID.docx
- 文档编号:25585853
- 上传时间:2023-06-10
- 格式:DOCX
- 页数:24
- 大小:456.18KB
RAID.docx
《RAID.docx》由会员分享,可在线阅读,更多相关《RAID.docx(24页珍藏版)》请在冰豆网上搜索。
RAID
RAID0、RAID1、RAID01模式实战评测
正睿科技 发布时间:
2009-07-3018:
38:
10 浏览数:
3494
当你增加硬盘数量的时候,磁盘阵列的性能会怎样变化?
我们此次RAID评测的第一部分将给出2~8个硬盘按照RAID0、RAID1、RAID01三种配置运行的具体测试结果。
1、RAIDTestingWith2-8Drives
大部分资深玩家和主流用户采用RAID配置都是为了性能提升?
?
很少是因为安全性问题。
所以大多数磁盘阵列都是由2块硬盘组成的RAID0。
你考虑过当你增加硬盘之后,磁盘阵列的性能会有多少提升么?
值得这么做么?
什么时候磁盘阵列会遭遇瓶颈?
系统治理员和骨灰级玩家们坐好了,现在就来看看Tom’sHardware磁盘阵列终极评测。
我们的目标很明确:
用最低需求测试所有常见的RAID模式,然后逐步增加硬盘到八块。
我们估计这应该是高端PC和入门级服务器能够采用的最高配置了,你很难再往机箱里塞下更多的硬盘,除非使用外部eSATA设备。
而超过八个端口的专业RAID控制器也需要昂贵的多轴线缆,有时候被称作“miniSAS”,用来代替每个驱动器单独的一条线缆。
这是第一部分,我们在此着重于RAID0、RAID1和RAID01,而在第二部分将会讨论RAID5和RAID6的情况。
2、WhyRAIDCharts?
我们要进行这项评测有很多原因,一方面现在有大量的应用程序要求高效率的存储性能:
考虑一下那些需要稳定数据流的视频或音频应用程序,比如高清楚的HD视频或音频录制,压缩比稍有降低数据流就会马上暴涨起来;大型网络中的文件服务器需要在同一时刻为许多客户端提供快速的更新服务;或者是数据汇集服务器,它们存储了大量的摄像头监控照片,通讯记录,以及来自粒子加速器内部传感器或者其他各种科学应用的数据。
而除此之外,我们需要的还不仅仅是高吞吐率,有一些应用程序每秒钟就有数以百计的I/O操作。
庞大的数据库无法缓存到系统内存中,这就更加依靠于存储器的I/O性能了,你可能已经想到电路交换,信用卡交易,订单和存货系统等等。
我们的RAID评测涵盖了所有可能采用的配置情况,测试了访问时间,传输带宽,最大、平均、最小的读写速度,而且加入了对一些典型应用的I/O性能测试,例如文件服务器、WEB服务器,数据库服务器以及工作站。
要想建立一个同时提供高I/O性能和高吞吐率的磁盘阵列很简单,你只需要并行地布置尽可能多地硬盘就行,只要控制器支持得了。
主板一般有4到6个SATA端口,并且提供基本的RAID支持,而专业的RAID控制卡则可以提供8个,12个,16个甚至24个端口。
不过你要记住,这样的RAID阵列只要有一个硬盘损坏就会损失它的全部数据,所以不要再这上面存放那些需要长期保存的数据。
通常想要同时具备数据安全性和高性能的话,可以采用RAID01,或者RAID5。
后者空出来一个硬盘,将数据分配给其它的硬盘,再由控制器计算出这些数据的奇偶校验信息,存储在最初空出来的那个硬盘上。
为了避免这块硬盘成为性能瓶颈,控制器会轮流选择各块硬盘用来存储校验信息。
在本文中我们将会专注于讨论RAID0,RAID1和RAID01。
RAID0:
Striping
A,B和C是同一个文件的不同段。
在RAID0模式下,控制器会在所有RAID0驱动器上轮流选择不同大小的段来存储信息,这有助于提高读写性能。
不过RAID0对硬盘错误非常敏感。
配置RAID0模式需要两块以上的硬盘。
RAID1:
Mirroring
RAID1需要两块硬盘。
控制器会同时将数据写入两个驱动器,也就是说会有百分之百的数据冗余。
假如一个硬盘坏掉了,另一个仍可以完好工作。
换掉损坏的驱动器之后,控制器将会恢复RAID1阵列的数据。
有一些RAID控制器能够通过交替访问两块驱动器来加速数据读取。
RAID1是最简单最高效创建安全存储阵列的方法:
你只需要两块硬盘和一个支持基本RAID模式的控制器。
安装Windows的时候,你需要给安装程序提供一个RAID驱动,以便它能够正确访问RAID阵列。
一旦完成之后,阵列就能够完全像一个单硬盘一样工作了。
假如你怕这个过程出错,我们建议你花20-40美元买一个移动硬盘盒,这样你就可以方便地换掉出错的硬盘。
假如有了问题,注重,一定要确保你没把好硬盘和坏的给搞混了!
有一些控制器还可以将数据镜像至不止一个驱动器上,这样你可以用三个甚至四个硬盘互做镜像备份。
假如你真的执意要这么做的话,你最好先确保使用了非常可靠的电源供给,还要一个带有过载保护的UPS,并且你的计算机运行的操作系统足够稳定。
在理想温度下运转也有助于延长硬盘的数据存储时间。
假如这些还不够,你就配置个RAID51,带奇偶校验地将整个RAID5再镜像一份。
只是有一点,我们感觉这样的要求十分庞大复杂,而且也远远超出了我们大多数人的需要了。
RAID01:
MirroredStripeSet
RAID01首先用两块以上硬盘并行创建一个带区集,然后连同整个结构镜像至另外一个一模一样的带区集上,我们称之为带区集镜像。
RAID10正好相反,先创建几个RAID1镜像阵列,然后并行布置为带区集,称为驱动器镜像的带区集。
就性能而言两种RAID没有什么区别,一般来说大部分控制器都支持RAID01。
带区集镜像提供了RAID0的性能,同时还具备RAID1的数据安全性,不过很显然你至少需要4块硬盘才能搭建起一个RAID01阵列。
我们依次尝试了4块、6块、8块硬盘的配置。
理论上在RAID0阵列中放置多个驱动器,能够成倍地提高传输率,在现实中这个速度的提高不可能是线性的。
不过每增加一个硬盘都会带来明显的性能提升,这个可以从本文的测试部分明显的看出来。
很显然更多数目的硬盘能够提供更好的传输率和I/O性能,因为你可以将所有硬盘的I/O和吞吐量合并起来。
不过,还有一些因素会影响这些性能的发挥:
首先是RAID控制器,不是所有产品都能够提供稳定的高速数据传输;其次是控制器接口。
目前的三种型号,PCI-X最高支持到533MB/s,PCI-EX4支持1GB/s的上行和下行数据,PCI-EX1支持上下行各250MB/s。
你要确保接口带宽至少要比你期待的RAID阵列数据带宽高出50%才行,因为网络传输率可能会相当地低。
最后,过多的硬盘数量也会影响访问时间,尤其是从文件系统中获取一些很少量的信息的时候,可能会需要从各个硬盘分别读取。
假如各个硬盘都要访问,则平均访问时间将是所有单个硬盘的最大访问时间。
RAID系统本身也有一套协议,大约能把12-14ms的访问时间提高到20ms左右。
当你增加更多的I/O请求,阵列的表现就比单个硬盘要好,像NCQ和控制器缓存功能都可以发挥作用了。
对于数据库应用,最好是选用带有大缓存的控制器来增加吞吐量,同时减少对频繁访问区段的访问时间。
我们需要一个能够支持高性能RAID的足够强力的测试系统。
选用了IWill的双Opteron主板,是因为它同时提供了PCI-X和PCI-E插槽。
DK88基于nVIDIA的nForce4芯片组,拥有所有服务器/工作站主板所需的功能:
带有TCP/IP减荷的双Broadcom千兆以太网卡;基本的USB2.0和ATi整合显卡;UltraATA/133和SATA/300接口。
主板支持每个CPU配置8个DDR400插槽,答应最多64GBECC校验内存。
存储测试并不需要那么多的系统资源,因此我们只安装了2G内存,并且采用了2.2GHz的Opteron875双核处理器,其实一颗单核CPU运行在它一半的频率上就已经足够了。
TestHardDrives:
SamsungSpinPointT166,HD321KJ
我们希望在测试中采用比较快的硬盘,但是假如把我们所有的WD1500Raptor硬盘都拿来测试的话,存储评测室的其它项目就没法进行了,因此我们打算换用比较快的主流硬盘来进行测试,最终选择了价格便宜而速度不错的SamsungSpinPointT166。
我们放弃了500GB而选用320GB的原因很简单:
我们可不想一测就是一个星期!
尤其是c’tmagazine的HaraldBögeholz开发的测试工具h2benchw在大容量硬盘上运行会非常耗时。
三星的SpinPointT166是目前的主流型号,转速7200RPM,带有NCQ功能和8MB缓存,SATA/300接口。
下一代的SpinPointHD102UJ容量高达1T,前几周刚发布,不过……
Controller:
ArecaARC-1220
我们正在进行一项RAID控制器的评测,恰好可以在其中选择一个最适合此次RAID测试的型号。
Areca的ARC-1220带有8个SATA/300接口,支持NCQ,内置256MDDR缓存和IntelIOP333异或/奇偶校验器,接口为4倍PCI-E,卡型为半高,正适合小型机架服务器。
选用它是因为操作简单,能够快速初始化RAID阵列。
当然,大部分其他的8口SATARAID控制器应该也能胜任这样的工作。
TestSetup
所有测试都采用控制器的默认设置。
6、Experiences
所有测试都在2-8块SamsunHD321KJ硬盘的配置下分别运行,但是各个硬盘只使用了80%的容量。
我们没有把每个320GB都填满,是为了使测试能够快一点运行。
这能够减少测试运行的时间并确保驱动器发挥出最佳性能,因为它们不用再访问数据传输率较低的内环磁道了。
在每一个RAID配置上完成一次测试大约要花4-6小时,包括吞吐量、访问时间、I/O测试。
除了RAID0,其他RAID模式都需要进行初始化,这一步每次要再花20分钟。
期间我们发现了一个关于硬盘电源供给的问题:
刚开始我们把所有硬盘都挂在电源供给的同一个功率轨上,看起来工作良好,硬盘启动正常,我们也没有碰到什么问题。
然而在测试期间,时不时会有一个硬盘脱离RAID系统。
第一次出这个问题的时候我们认为是硬盘原因,第二次又归罪于RAID控制器,事实上直到我们把电源分成三个独立的功率轨之后,问题才彻底解决。
单个的HD321KJ平均访问时间超过14ms,偶有速度更快的时候,那是因为仅仅使用了320GB中的80GB。
上层协议和磁头定位时间显然是非常重要的,访问时间也会随着硬盘数量增加而提高。
最高达到30毫秒的访问时间已经不能说快了,不过幸好I/O性能不不受平均访问时间的影响。
接口带宽
读取速度
这张图表非常清楚地显示了不停增加硬盘数量的时候RAID阵列性能提高趋势。
当RAID0达到5块硬盘的规模之后,读取速度就不再有明显增加了。
很显然,我们的测试系统中的某些组件?
?
RAID控制器或者主板?
?
成了6、7、8块硬盘组成的RAID0阵列发挥性能的瓶颈。
理论上,PCI-EX4接口传输率应为1GB/s。
写入速度
写入速度明显低于前面测试的读取速度。
显然,这个控制器只能承受最高275MB/s的写入速度。
I/OPerformance
I/O性能基本上取决于Areca的控制器,每增加一块硬盘都会线性地提高一些I/O性能。
I/OPerformance
为高性能RAID阵列创建一个理想的环境并不仅仅是把零件堆起来就OK了。
我们的测试系统有着工作站的水准,并且采用了Areca的ARC-1220SATARAID控制器,理论上应该是一个完美的测试系统,但它最高只能达到500MB/s的接口带宽,不到400MB/s的读取速度,以及275MB/s写入速度。
在这套系统上使用5块硬盘就达到了最高性能。
不过我们相信换一个不同的系统,或者对RAID0进行了优化的,这个上限还能更高。
本文的第二部分将会Areca控制器实际上对RAID5和RAID6进行了很好的优化,只是RAID0和RAID1没这个福分了。
测试系统在I/O测试中表现完美,每增加一块硬盘都会有显著的性能提升。
很显然,Areca的ARC-1220非常适合要求高I/O负载的数据库应用。
尽管数据传输率随着硬盘增加而节节攀升,但是平均访问时间却受到了反面影响。
由于每块硬盘都要进行磁头定位,所以RAID阵列的访问时间很接近所有硬盘中最大的访问时间,再加上协议层的消耗。
所以,磁盘阵列并不适合要求顶级性能的发烧PC。
近期而言,使用闪存硬盘来组成阵列提高性能会更加有效。
除此之外,选择WD的万转Raptor硬盘也能够减少访问时间,只是比较花钱。
译注:
1、PowerRail-某些电源会采用两套独立的电压供给,以便提供大功率的稳定输出。
每一组电压系统称为一个PowerRail,功率轨。
2、硬盘的工作电流通常为1A以下,而启动时候的电流则会高达2.4-3.2A,这是由于硬盘内部的电机系统所决定的固有特性?
?
所有电机系统都必须由远高于正常工作状态所需的电流来完成启动。
因此当硬盘启动正常的时候,TomsHardware评测人员便会首先排除掉电源供给不足的可能?
?
不过直到最后才发现果然还是因为电源问题。
翻译笔记:
1、uber,ubers,uberuser
Agroupofpeoplethatarethehardcoreusersofasystem,wishthatsystemtoremainexclusivetothemselves.
2、Spin-UpTime
磁盘盘片从静止加速到全速操作状态所需要的时间。
一般是几秒钟。
这项参数主要取决于驱动轴的制造工艺和盘片数量。
这个数据的重要性要看你如何使用硬盘。
假如你从来都是启动电脑然后就让硬盘一直保持运转,那么对你来说这个参数实际上并不重要。
不过假如你使用电源治理在一段空闲之后停转硬盘,则恢复工作的时候就要等待硬盘重新启动转速。
相对于桌面PC用户,这个参数对于笔记本电脑用户而言更加有参考价值,他们会更常使用电源治理功能。
3、headpositioning-磁头定位
一、RAID
RAID:
即RedundantArrayofIndependentDisks,冗余磁盘阵列技术。
二、RAID模式
RAID0:
又称Striping阵列,做RAID0需要两上或两个以上的、容量相同的硬盘,N个硬盘做成RAID0后的硬盘容量为单个硬盘的N倍。
在做数据存储时将数据分割存储到多块硬盘上,磁盘读写时负载平均分配到多块硬盘,由于多块硬盘均可同时读写,所以速度显著提升。
也正是由于数据被分割存储到多块硬盘,所以数据的完整性依赖于多块硬盘数据均完好无损,一旦其中一块硬盘的数据损坏或磁盘故障,那么所有的数据都将丢失。
所以RAID0数据存取性能好、速度快,但可靠性差,RAID0通常用于对磁盘性能要求高但对数据安全性要求不高的场合。
RAID1:
又称Mirror阵列,做RAID1需要两个容量相同的硬盘,两个硬盘做成RAID1后的硬盘容量为单个硬盘容量。
在做数据存储时将同样的数据写入两块硬盘,两块硬盘互为镜像盘,当一块硬盘中的数据受损或磁盘故障时,另一块硬盘可继续工作,并可在需要时重建RAID1阵列。
但RAID1不能提升磁盘性能,RAID1适合对数据可靠性要求严格的场合。
RAID2:
带海明码校验磁盘阵列,RAID2是为大型机和超级计算机开发的。
磁盘驱动器组中的第一个、第二个、第四个......第2的n次幂个磁盘驱动器是专门的校验盘,用于校验和纠错,例如七个磁盘驱动器的RAID2,第一、二、四个磁盘驱动器是纠错盘,其余的用于存放数据。
使用的磁盘驱动器越多,校验盘在其中占的百分比越少。
RAID2对大数据量的输入输出有很高的性能,但少量数据的输入输出时性能不好。
由于海明码的特点,它可以在数据发生错误的情况下将错误校正,以保证输出的正确。
它的数据传送速率相当高,如果希望达到比较理想的速度,那最好提高保存校验码的硬盘性能,对于控制器的设计来说,它又比RAID3、4、5要简单。
但是利用海明码校验必须要付出数据冗余的代价。
RAID3:
做RAID3至少需要三块硬盘,N个硬盘做成RAID3后的硬盘容量为单个硬盘的N-1倍。
RAID3是将数据先做XOR运算,产生ParityData后,再将数据和ParityData以并行存取模式写入成员磁盘驱动器中,进一步来说,RAID3每一笔数据传输,都更新整个Stripe﹝即每一个成员磁盘驱动器相对位置的数据都一起更新﹞,因此不会发生需要把部分磁盘驱动器现有的数据读出来,与新数据作XOR运算,再写入的情况发生。
因此,在所有RAID级别中,RAID3的写入性能是最好的。
RAID3的ParityData一般都是存放在一个专属的ParityDisk,但是由于每笔数据都更新整个Stripe,因此,RAID3的ParityDisk并不会如RAID4的ParityDisk,会造成存取的瓶颈。
RAID3需要RAID控制器特别功能的支持,RAID3以其优越的写入性能,特别适合用在大型、连续性档案写入为主的应用。
RAID4:
带奇偶校验码的独立磁盘结构,做RAID4至少需要三块硬盘,RAID4和RAID3很相似,不同的是RAID4对数据的访问是按数据块进行的,也就是按磁盘进行的,每次是一个盘。
RAID3是一次一横条,而RAID4一次一竖条。
所以RAID3常须访问阵列中所有的硬盘驱动器,而RAID4只须访问有用的硬盘驱动器。
这样读数据的速度大大提高了,但在写数据方面,需将从数据硬盘驱动器和校验硬盘驱动器中恢复出的旧数据与新数据通过异或运算,然后再将更新后的数据和检验位写入硬盘驱动器,所以处理时间较RAID3长。
RAID5:
类似于RAID0,做RAID5至少需要三块硬盘,N个硬盘(N>2)做成RAID5后的硬盘容量为单个硬盘的N-1倍,在做数据存储时将数据的每个字节按bit拆分到硬盘,在数据出错时可以按奇偶校验码重建数据,容错能力强于RAID0,但它需要一块硬盘来容纳额外的奇偶校验信息。
RAID5的ParityData分散写入到各个成员磁盘驱动器,脱离如RAID4单一专属ParityDisk的写入瓶颈。
但是,RAID5在做数据写入时,仍然稍微受到"读、改、写过程"的拖累。
当RAID5的成员磁盘驱动器数目越多,其性能也就越高,但是反过来说,成员磁盘驱动器越多,RAID5中可能有磁盘驱动器故障的机率就越高,整个阵列的可靠度就会降低。
基本上来说,多人多任务的环境,存取频繁,数据量不是很大的应用,都适合选用RAID5架构。
RAID6:
带有两种分布存储的奇偶校验码的独立磁盘结构,几乎没有进行商用。
它使用一种分配在不同的驱动器上的第二种奇偶方案,扩展了RAID5。
它能承受多个驱动器同时出现故障,但是,性能尤其是写操作却很差,而且,系统需要一个极为复杂的控制器。
当然由于引入了第二种奇偶校验值,所以需要N+2个磁盘,同时对控制器的设计变得十分复杂,用于计算奇偶校验值和验证数据正确性所花费的时间比较多,造成了不必须的负载。
RAID7:
磁盘阵列新标准RAID7。
其实,RAID7不仅仅是一种技术,还是一种存储计算机(StorageComputer)。
因为它与RAID0、1、5标准有明显区别,RAID7自身带有智能化实时操作系统和用于存储管理的软件工具,可完全独立于主机运行,不占用主机CPU资源。
RAID7不仅具有更高的性能和卓越的存储管理能力,而且集普通RAID标准的所有优点于一身,因而RAID7系统整体性能极佳。
RAID7存储计算机操作系统(StorageComputerOperatingSystem)是一套实时事件驱动操作系统,主要用来进行系统初始化和安排RAID7磁盘阵列的所有数据传输,并把它们转换到相应的物理存储驱动器上。
通过自身系统中的阵列电脑板来设定和控制读写速度,存储计算机操作系统可使主机I/O传递性能达到最佳。
如果一个磁盘出现故障,还可自动执行恢复操作,并可管理备份磁盘的重建过程。
RAID7突破了以往RAID标准的技术架构,采用了非同步访问,极大地减轻了数据写瓶颈,提高了I/O速度。
所谓非同步访问,即RAID7的每个I/O接口都有一条专用的高速通道,作为数据或控制信息的流通路径,因此可独立地控制自身系统中每个磁盘的数据存取。
如果RAID7有N个磁盘,那么除去一个校验盘(用作冗余计算)外,可同时处理N-1个主机系统随机发出的读/写指令,从而显著地改善了I/O应用。
RAID7系统内置实时操作系统还可自动对主机发送过来的读/写指令进行优化处理,以智能化方式将可能被读取的数据预先读入快速缓存中,从而大大减少了磁头的转动次数,提高了I/O速度。
RAID7可帮助用户有效地管理日益庞大的数据存储系统,并使系统的运行效率提高至少一倍以上,满足了各类用户的不同需求。
RAID10:
即RAID0+1,它综合了RAID0和RAID1的优点,适合用在速度需求高、又要完全容错的应用。
做RAID10至少需要4块硬盘,并且是偶数个,N个硬盘做成RAID10后的容量为单个硬盘的N/2倍。
RAID0和RAID1的原理很简单,合起来之后还是很简单,但RAID0+1到底应该是RAID0overRAID1,还是RAID1overRAID0?
综合分析,RAID0overRAID1要比RAID1overRAID0更具有较高的可靠度。
所以建议,当采用RAID10架构时,应先作RAID1,再把数个RAID1做成RAID0。
其它模式:
RAID30、RAID50与RAID10模式相似。
还有RAID5增强型,即有一只硬盘正常情况处于准备状态,一旦某只硬盘故障,它自动替补上去,完成原有的RAID5功能。
RAID条切"striped"的存取模式
在使用数据条切(DataStripping)的RAID系统之中,对成员磁盘驱动器的存取方式,可分为两种:
并行存取﹝ParalleledAccess﹞、独立存取﹝IndependentAccess﹞。
RAID2和RAID3是采取并行存取模式。
RAID0、RAID4、RAID5及RAID6则是采用独立存取模式。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- RAID
![提示](https://static.bdocx.com/images/bang_tan.gif)