DIY编程器网

标题: DIY服务器硬盘RAID选用 [打印本页]

作者: admin    时间: 2014-10-13 15:58
标题: DIY服务器硬盘RAID选用

随着硬盘技术的不断发展,DIY服务器时可选的硬盘和RAID越来越多,如何选用合适的硬盘RAID,既能提高服务器性能,又具有价格优势,是DIY爱好者关心的话题。笔者就建设世界网络(www.linkwan.com)过程中DIY服务器硬盘RAID选用的经验共享给大家,希望能对大家有所帮助。

一、 常用硬盘类型简介

目前常用硬盘分为IDE、SATA、SCSI几种,最大的区分的就是接口上的不同。服务器上一般采用后面两种:SATA和SCSI,也有DIY采用比较新的SAS硬盘。下面我们就SATA、SCSI、SAS等接口技术作简单介绍。

1、 SATA 接口

SATA(Serial Advanced Technology Attachment)是串行ATA的缩写,目前能够见到的有SATA-I和SATA-II两种标准,对应的传输速度分别是150MB/s和300MB/s。SATA主要用于取代遇到瓶颈的PATA接口技术。从数据传输角度来看,SATA比PATA速度更快,抗干扰能力更强。

   

SATA一般采用点对点的连接方式,即一头连接主板上的SATA接口,另一头直接连硬盘,没有其他设备可以共享这条数据线。 另外,SATA具备热插拨功能,可以更加方便的组建磁盘阵列。串口的数据线由于只采用了四针结构,因此较并口安装起来更加便捷,更有利于缩减机箱内的线缆,有利散热。

2、 SCSI 接口

SCSI(Small Computer System Interface)是一种专门为小型计算机系统设计的存储单元接口模式,可以对计算机中的多个设备进行动态分工操作,对于系统同时要求的多个任务可以灵活机动的适当分配,动态完成。

SCSI从最初的SCSI(8bit)发展到今天的Ultra 320 SCSI,速度从1.2MB/s到现在的320MB/s,有了质的飞跃,目前的主流SCSI硬盘都采用了Ultra 320 SCSI接口。SCSI硬盘也有专门支持热拔插技术的接口,与SCSI背板配合使用,可实现硬盘的热拔插。

3、 SAS 接口

SAS 是Serial Attached SCSI的缩写,即串行连接SCSI。SAS技术引入了SAS扩展器,使SAS系统可以连接更多的设备,其中每个扩展器允许连接多个端口,每个端口可以连接SAS设备。SAS也兼容了SATA,这使得SAS的背板可以兼容SAS和SATA两类硬盘, 对用户来说,使用不同类型的硬盘时不需要再重新投资。

和传统并行SCSI接口比较起来,SAS不仅在接口速度上得到显著提升(现在主流Ultra 320 SCSI速度为320MB/s,而SAS才刚起步速度就达到300MB/s,未来会达到600MB/s甚至更多),而且由于采用了串行线缆,不仅可以实现更长的连接距离,还能够提高抗干扰能力,并且这种细细的线缆还可以显著改善机箱内部的散热情况。

二、 服务器硬盘的选用

SCSI硬盘相对于SATA硬盘,有许多优点:

MTBF是用来衡量硬盘性能的一个重要的标准,指的是一个硬盘可以连续工作而不出错的平均时间(MTBF详情可参考:http://www.linkwan.com/gb/tech/05110501.htm )。从MTBF角度看,SCSI硬盘明显比SATA接口硬盘大,一般SCSI硬盘的MTBF可达1,000,000小时,IDE /SATA硬盘MTBF一般为800,000小时左右。

由于SCSI具有CPU占用率低,多任务并发操作效率高,连接设备多等优势,对于大多数的服务器应用,建议采用SCSI硬盘,并采用最新的Ultra320 SCSI控制器。而一般的PC机,则选用传统的IDE /SATA硬盘即可,具有较高的性价比。

SCSI的优点很多,但是我们在决定选用时,也不能忽视它的缺点:

选择硬盘时,除了需了解上面提到的性能特点外,还需要考虑转速、单碟容量、平均寻道时间、缓存等因素,并结合资金预算,选定性价比最合适的硬盘。

三、 RAID的选用

独立磁盘冗余阵列的英文名称为Redundant Array of Independent Disks,也就是我们通常所说的RAID。RAID的作用就是把多个独立的磁盘组合在一起,成为一个磁盘组,而这个磁盘组我们可以将它看成一个大的磁盘,这是因为这个磁盘组的性能并没有受到多个磁盘组合而造成性能减弱,相反还有所增强,因此,RAID技术被广泛用于数据存储行业中。在大型存储中,我们通常通过存储机柜来实现数据存储;而在服务器上的存储,我们就通过支持RAID功能的RAID卡来实现。

1、 RAID种类及作用

RAID分为很多种,如常见的RAID 0、RAID 1一直到RAID 7,另外还有组合,如RAID0+1(也被称为RAID 10)、RAID0+5(50)、RAID 5+3(RAID 53),每一个RAID级别都有其优点和缺点。下面和大家一起认识四种常用的RAID (RAID 0、RAID1、RAID0+1、RAID5)工作方式。

RAID 0

采用磁盘分段的方法把数据写到多个磁盘,而不是只写到一个盘上,这叫RAID 0,在磁盘阵列子系统中,数据按系统规定的“段”(Segment)为单位依次写入多个磁盘,例如数据段1写入磁盘1,段2写入磁盘2,段3写入磁盘3等等。当数据写完最后一个磁盘时,它就重新从盘1的下一可用段开始写入,写数据的全过程按此重复直至数据写完;简单来说RAID 0使用的是平行存取方式。

我们来看一下RAID 0系统的工作原理,图1是由三块磁盘组成的RAID 0系统:


图1 RAID 0系统的工作原理

由上图可以清楚地看到,该系统由三块磁盘同时读写同一数据的不同数据块来达到三倍于原来磁盘的速度。实际上,RAID也可以只使用两块磁盘。上图中,在任何时刻,这三块磁盘都在同步地工作,但它们读写的内容却完全不同。由于一个传输过程由三个磁盘各完成1/3,也就相当于传输带宽增加了三倍,所以操作时间也就减少了2/3。其中RAID 0控制器的作用就是将原来的数据均分为三份给三块磁盘写入或将三块磁盘读出的数据合并在一块儿交给外部数据总线。磁盘数量越多,速度就越快,容量就越大(单盘速度×硬盘数量=RAID0的总速度;单盘容量×硬盘数量=RAID0的总容量)。但是,可靠性是单独使用一块磁盘的1/N。磁盘量越多,可靠性就越低(即是容易比单盘发生故障),一个磁盘出故障或磁盘坏了数据将会丢失。所以RAID 0最好备份一下结构和分区表信息,便于一般故障的恢复。

RAID 1

RAID 1称为磁盘镜像:把一个磁盘的数据镜像到另一个磁盘上,在不影响性能情况下最大限度的保证系统的可靠性、可修复性,具有很高的数据冗余能力,但磁盘利用率为50%,成本高,多用在保存关键性重要数据的场合。但是在RAID中,它同样是占用了一些CPU时间,把写往主盘的数据同步地写到镜像盘。它的工作方式如图2所示。


图2 RAID 1工作原理图示

上图中,写在磁盘1和磁盘2上的数据是完全一样的,如写在磁盘1上的数据1、2、3,也同样写在磁盘2上,对外只显示一个带有数据1、2、3的磁盘。

RAID 1有以下特点:

RAID 1+0(也被称为RAID 10)

虽然RAID 1也可以获得少许的性能提升,但是相对RAID 0来说恐怕是微不足道了。因此,在性能和安全兼顾的情况下,就出现了RAID 1+0。RAID 1+0至少使用4个磁盘,这样,RAID 1+0在理论上同时保证了RAID 0的性能和RAID 1的安全性,代价是比RAID 0或1再多一倍的磁盘数量。其工作原理如图3所示。RAID 10是建立在RAID 0和RAID 1基础上的,具体的组合结构看图:


图3 RAID 1+0工作原理图示

从中可以看出,RAID 1在这里就是一个冗余的备份阵列,而RAID 0则负责数据的读写阵列。其实,图3只是一种RAID 10方式,更多的情况是从主通路分出两路(以4个磁盘时为例),做Striping操作,即把数据分割,而这分出来的每一路则再分两路,做Mirroring操作,即互做镜像。这就是RAID 10名字的来历(也因此被很多人称为RAID 0+1)。
由于利用了RAID 0较高的读写效率和RAID 1较高的数据保护、恢复能力,使RAID 10成为了一种性价比较高的等级,目前几乎所有的RAID控制卡都支持这一等级。但是,RAID 10对存储容量的利用率和RAID 1一样低,只有50%,读写速度增加是单盘的一倍。下面就让我们总结一下它的特点:

RAID 5

RAID 5 是一种存储性能、数据安全和存储成本兼顾的方案,它使用的是Disk Striping(硬盘分割)技术,RAID 5不是利用镜像而是利用分散奇偶校验冗余数据。RAID 5可以理解为是RAID 0和RAID 1的折衷方案,RAID 5可以为系统提供数据安全保障,但保障程度要比Mirror(镜像)低而磁盘空间利用率要比Mirror高。


如上图所示,四个硬盘组成的RAID 5采用数据分块并行传送的方法,但是它在数据分块之后需计算它们的奇偶校验和。数据存储方式为: P4为磁盘1的数据0,数据3和数据6的奇偶校验信息,其它以此类推;P3为磁盘2的数据1,数据4和数据9的奇偶校验信息;P2为磁盘3的数据2,数据7和数据10的奇偶校验信息;P1为磁盘4的数据5,数据8和数据11的奇偶校验信息。由图中可以看出,RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。

RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入数据的速度比对单个磁盘进行写入操作稍慢。同时由于多个数据对应一个奇偶校验信息,RAID 5的磁盘空间利用率要比RAID 1高,存储成本相对较低。RAID5是采用奇偶校验的方法维护数据,这些奇偶校验的信息只占用一块磁盘的容量,所以RAID5的实际容量相当于阵列中的磁盘数减1,数据读写速度等于单盘的速度×盘数,具有相对较好的综合性能。

RAID 5E(RAID 5 Enhencement)是在 RAID 5级别基础上的改进,与RAID 5类似,数据的校验信息均匀分布在各硬盘上,但是在每个硬盘上都保留了一部分未使用的空间,这部分空间没有进行条带化,最多允许两块物理硬盘出现故障。看起来,RAID 5E和RAID 5加一块热备盘好象差不多,其实由于RAID 5E是把数据分布在所有的硬盘上,性能会与RAID5 加一块热备盘要好。当一块硬盘出现故障时,有故障硬盘上的数据会被压缩到其它硬盘上未使用的空间,逻辑盘保持RAID 5级别。

   

RAID 5E                               RAID 5EE

与RAID 5E相比,RAID 5EE的数据分布更有效率,每个硬盘的一部分空间被用作分布的热备盘,它们是阵列的一部分,当阵列中一个物理硬盘出现故障时,数据重建的速度会更快。

综上所述,RAID 总体来说有以下作用:

2、 软RAID与硬RAID

RAID也有全软、半软半硬与全硬之分。全软RAID就是指RAID的所有功能都是操作系统(OS)与CPU来完成,没有第三方的控制/处理(业界称其为RAID协处理器)与I/O芯片。这样,有关RAID的所有任务的处理都由CPU来完成,可想而知这是效率最低的一种RAID。由于全软RAID是在操作系统下实现RAID,不能保护系统盘,亦即系统分区不能参与实现RAID。有些操作系统,RAID的配置信息存在系统信息中,而不是存在磁盘上,当系统崩溃,需重新安装时,RAID的信息也会丢失。尤其是全软RAID 5是CPU的增强方式,会导致30%-40%的I/O功能降低,所以在服务器中不建议使用全软RAID。

半软半硬RAID是一种把初级的RAID功能附加给SCSI或者SATA卡而产生的产品,它把软件RAID功能集成到了产品的固件上,从而提高了产品的功能和容错能力。它可以支持RAID 0和RAID 1 RAID (1+0)。但因为缺乏自己的I/O处理芯片,所以这方面的工作仍要由CPU与驱动程序来完成。而且,半软半硬RAID所采用的RAID控制/处理芯片的能力一般都比较弱,不能支持高的RAID等级。

全硬的RAID则全面具备了自己的RAID控制/处理与I/O处理芯片,甚至还有阵列缓冲(Array Buffer),对CPU的占用率以及整体性能是这三种类型中最优势的,但设备成本也是三种类型中最高的。简单来说半软半硬是依靠主机本身CPU和内存运行,全硬RAID,自带有微处理与I/O处理芯片及内存,不依靠你主机的CPU内存,直接把相关信息提交给OS处理,从而使性能获得很大的提高。它的缺点是要占用PCI总线带宽,所以PCI I/O 可能变成阵列速度的瓶颈。

RAID卡有多种,除主板集成能够做的RAID的硬RAID外,还有各种专门RAID卡。如泰安7901以及目前板载SATA RAID都是典型的HOST RAID卡,只有I/O处理芯片,虽然它也能做RAID1,RAID0和RAID10,但都是通过BIOS和驱动程序实现的,其性能较全硬RAID卡如Adaptec的2系列的(2030s等)要低,优点是价格要低至少一半。

其实要识别全硬RAID也很简单:如果不挂驱动在LINUX下能认到RAID而不是单磁盘的就是全硬RAID了。因为LINUX对RAID驱分很严,HOST RAID是作为软RAID来对待的,没有厂家专用驱动LINUX就把它当作SCSI卡来处理。

3、 RAID的可靠度

根据平均故障间隔时间(MTBF),可以推断出单只磁盘的规定时间的无故障可靠度概率。这里所说的可靠度是指在规定的时间内,在规定的条件下,完成规定功能的能力,以概率计量。按RAID可靠度的数学模型,可计算出常见RAID的可靠度,见下表。从该表不难看出,IDE的RAID 1也有极高的可靠度。由于SCSI硬盘比IDE硬盘价格要贵,性能高出不少,为了获得比较合理的结论,可选择以下方式比较:规定时间内、相同价格下比可靠度;或规定时间内、相同可靠度下比价格;当然还有其他的比较方式。不难得出以下结论:SCSI硬盘一次性投资较大,相对一劳永逸,RAID的可选形式较多。IDE硬盘一次性投资小,要达到规定可靠度,必须分段投资,总价仍较低,相对麻烦,RAID的可选形式较少。

RAID可靠度表

<div align="center">
 时间一年两年三年
SCSI硬盘可靠度单只硬盘0.9912782570.9826325820.974062314
Raid00.9826325830.9655667920.948797391
Raid10.9999239310.9996983720.999327236
Raid1+00.9998478680.9993968360.998654925
Raid5(2/3)0.999773120.9991055950.998016609
            
IDE硬盘可靠度

            
单只硬盘0.9783380640.9571453670.936411745
Raid00.9571453670.9161272540.876866957
Raid10.999530760.998163480.995956533
Raid1+00.9990617410.9963303330.991929417
Raid5(2/3)0.99861261090.99464784820.9883838357





欢迎光临 DIY编程器网 (http://diybcq.com/) Powered by Discuz! X3.2