随着网吧规模扩大,网吧电脑数量也会相应增加,上网的顾客也随之增多,服务器硬盘数据存取的速度将会成为新的瓶颈,很多顾客开始投诉服务器点播的电影比较卡、游戏升级速度慢等问题,倘若不采取相关措施,那么好不容易扩大的经营将毁于一旦。
那么如何解决硬盘存取速度的瓶颈呢?用多个硬盘组建RAID阵列将是一个较佳的解决方案。然而许多网管由于缺少实际经验,对于RAID技术只有含糊的概念,所以小编特别编写了本文,与大家一起分享RAID基础知识与最常用的RAID 0+1组建实例。
RAID英文全称为Redundant Array of Inexpensive Disks,中文译为廉价磁盘冗余阵列。它实质是使用多块物理硬盘组成一个具有加速、自动备份、数据损毁恢复等功能的逻辑硬盘。
为了满足不同工作环境的需要,RAID技术分为了以下RAID 0-7计合8种。每种阵列都各自有其自身优点与缺点,例如RAID 1阵列强调磁盘的数据的安全性、RAID 0阵列提高访问速度、RAID 5阵列兼顾速度与的安全等。下面就来看看常用阵列的具体特点。
常用RAID阵列类型
RAID 0
RAID 0阵列即(Data Stripping)数据分条阵列,其主要的特点是存取的数据都被分割成为条状(stripped)分布存放在各个物理磁盘上。这样处理的优点是可以并行存取,从而获得双倍或多倍存取速度。其中最简单的RAID 0阵列,使用两块硬盘提供双倍传输速度,假如阵列卡能支持多块硬盘组成RAID 0,那么则可以获得N倍(N为加入阵列的硬盘数量)传输速度。
这种阵列的缺点是数据安全比较脆弱,只要阵列内某一硬盘出现故障,所有的数据将全部丢失。因而,为了在数据脆弱性与速度之间取得较好的平衡,实际使用时RAID 0通常只使用两块硬盘,获得双倍传输速度同时稳定性下降一半,用于存放视频点播文件、临时文件等对安全性要求不高的数据。
RAID 1
RAID 1阵列即(Data Mirror)数据镜像阵列,其主要特点在提供了较为优异的数据安全保障。整个阵列至少需要两块硬盘组建,在写入时同时将数据备份至另一块硬盘,所以即使其中一块硬盘出现故障而造成数据损坏时,文件也不会丢失。但是其代价就是的阵列内半数硬盘用于即时镜像备份,容量为阵列内硬盘总容量的一半,而且速度没有任何提升。
RAID 0+1
为了把RAID 0的快速存取特点与RAID 1数据安全的优点结合起来,人们还设计了RAID 0+1阵列。这种阵列最少需要4个硬盘才能创建。其中两块硬盘用来存取数据,两块硬盘用于镜像数据。用于存放数据两块硬盘被划分为条状并行存取,这样可以获得双倍数据存取的速度,而另两个硬盘则即时为条状并行存取的硬盘制作镜像,以确保任意一块盘出现了故障,也不会导致数据丢失。
由于兼顾到了存取速度和数据的安全,所以这种阵列在网吧、小型企业中使用非常广泛。
RAID 3和RAID 5
RAID 3和RAID 5都采用了校验的数据存储方式,所不同的是RAID 3采用了一块物理硬盘专门来存放校验的数据,而存放数据的硬盘却有好几个硬盘同时并行工作,不管是每一个硬盘的数据进行修改,校验的数据硬盘也会同时跟着改动,这就导致了校验硬盘工作负担过重,影响数据的存储效率,而RAID 5刚好相反,它把校验数据切成块存放在各个硬盘上这样就可以解决校验数据存放的瓶颈。
由于RAID 5的阵列卡价格较为高昂,所以该种阵列目前仅在大型企业中使用,而鲜有被网吧采用。
RAID 0+1实战
了解各种RAID阵列之后,接下来就网吧中常用的RAID 0+1的设置为例子,图解介绍整个设置过程。
首先要准备四块硬盘、一台具有空白PCI卡或PCI-E插槽的电脑(根据RAID卡的接口不同而定)、一块RAID卡(假如主板已经集成了RAID卡则不需要)。
安装RAID卡至主板,将四块硬盘连接至RAID卡的数据接口上。开启电脑,并依说明书进入RAID设置画面。本例所使用的TRAK100阵列卡,使用“Tab”按键作为设置热键,所以按“Tab”键,即可进入RAID设置画面。
进入RAID设置环境之后,按3键选择“Define Array”选项,进入RAID定义窗口。
在RAID定义窗口按下“Enter”按键,进入RAID编辑窗口,在编辑窗口中可以设置RAID的模式,需要特别注意的是,许多RAID卡为用户提供的模式均使用存储模式表达,其中“Stripe”条状存储存则为RAID 0模式;“Mirror”表示RAID 1;而“Mirror/Stripe”则表示RAID0+1的模式。用户可以使用空格键切换RAID的模式,这里选择 “Mirror/Stripe”模式,并把通道中的四个硬盘设置为“Y”状态。设置完成之后按下“Ctrl+Y”保存设置的结果。
需要特别提示的是,使用少于4个硬盘不能设置RAID 0+1的模式,并且不会出现“Mirror/Stripe”的选择模式。
设置的完成后,可以看到硬盘的整个容量达到了80G,这是根据RAID 0+1的功能特点得出的。它的容量为最小硬盘基数的两倍,由于笔者使用的硬盘中最小的是40G,因此设置完成之后,容量为40G*2,如果使用的是4个80G的硬盘,那么设置“Mirror/Stripe”模式的结果应该是2*80G。
按下“Esc”按键,退出设置窗口,在弹出的提示对话框中输入“Y”表示确定设置,并且重新启动系统。
重启系统之后,会显示RAID的设置结果,其中包含工作模式、阵列总容量大小、还有状态等。至此,用户就可以在阵列上分区、安装系统、软件以及进行其他操作了。对于操作系统而言,整个一个阵列就相当于一个硬盘。
假如某一硬盘出现了故障,那么只需要找出损毁的硬盘,再在RAID定义窗口中选择2,Rebuild RAID即可重建阵列
即然提到了RAID磁盘阵列,那么我们就先来了解一下什么是RAID?所谓的RAID,是Redundant Arrays of Independent Disks的简称……
一、什么是RAID?其具备哪些常用的工具模式?
即然提到了RAID磁盘阵列,那么我们就先来了解一下什么是RAID?所谓的RAID,是Redundant Arrays of Indepen
dent Disks的简称,中文为廉价冗余磁盘阵列。由1987年由加州大学伯克利分校提出的,初衷是为了将较廉价的多个小磁盘进行组合来替代价格昂贵的大容量磁盘,希望单个磁盘损坏后不会影响到其它磁盘的继续使用,使数据更加的安全。RAID作为一种廉价的磁盘冗余阵列,能够提供一个独立的大型存储设备解决方案。在提高硬盘容量的同时,还能够充分提高硬盘的速度,使数据更加安全,更加易于磁盘的管理。
了解RAID基本定义以后,我们再来看看RAID的几种常见工作模式。
1、RAID 0
RAID 0是最早出现的RAID模式,即Data Stripping数据分条技术。RAID 0是组建磁盘阵列中最简单的一种形式,只需要2块以上的硬盘即可,成本低,可以提高整个磁盘的性能和吞吐量。RAID 0没有提供冗余或错误修复能力,是实现成本是最低的。
RAID 0最简单的实现方式就是把N块同样的硬盘用硬件的形式通过智能磁盘控制器或用
操作系统中的磁盘驱动程序以软件的方式串联在一起创建一个大的卷集。在使用中电脑数据依次写入到各块硬盘中,它的最大优点就是可以整倍的提高硬盘的容量。如使用了三块80GB的硬盘组建成RAID 0模式,那么磁盘容量就会是240GB。其速度方面,各单独一块硬盘的速度完全相同。最大的缺点在于任何一块硬盘出现故障,整个系统将会受到破坏,可靠性仅为单独一块硬盘的1/N。
为了解决这一问题,便出一了RAID 0的另一种模式。即在N块硬盘上选择合理的带区来创建带区集。其原理就是将原先顺序写入的数据被分散到所有的四块硬盘中同时进行读写。四块硬盘的并行操作使同一时间内磁盘读写的速度提升了4倍。
在创建带区集时,合理的选择带区的大小非常重要。如果带区过大,可能一块磁盘上的带区空间就可以满足大部分的I/O操作,使数据的读写仍然只局限在少数的一、两块硬盘上,不能充分的发挥出并行操作的优势。另一方面,如果带区过小,任何I/O指令都可能引发大量的读写操作,占用过多的控制器总线带宽。因此,在创建带区集时,我们应当根据实际应用的需要,慎重的选择带区的大小。
带区集虽然可以把数据均匀的分配到所有的磁盘上进行读写。但如果我们把所有的硬盘都连接到一个控制器上的话,可能会带来潜在的危害。这是因为当我们频繁进行读写操作时,很容易使控制器或总线的负荷 超载。为了避免出现上述问题,建议用户可以使用多个磁盘控制器。最好解决方法还是为每一块硬盘都配备一个专门的磁盘控制器。
虽然RAID 0可以提供更多的空间和更好的性能,但是整个系统是非常不可靠的,如果出现故障,无法进行任何补救。所以,RAID 0一般只是在那些对数据安全性要求不高的情况下才被人们使用。
2、RAID 1
RAID 1称为磁盘镜像,原理是把一个磁盘的数据镜像到另一个磁盘上,也就是说数据在写入一块磁盘的同时,会在另一块闲置的磁盘上生成镜像文件,在不影响性能情况下最大限
度的保证系统的可靠性和可修复性上,只要系统中任何一对镜像盘中至少有一块磁盘可以使用,甚至可以在一半数量的硬盘出现问题时系统都可以正常运行,当一块硬盘失效时,系统会忽略该硬盘,转而使用剩余的镜像盘读写数据,具备很好的磁盘冗余能力。虽然这样对数据来讲绝对安全,但是成本也会明显增加,磁盘利用率为50%,以四块80GB容量的硬盘来讲,可利用的磁盘空间仅为160GB。另外,出现硬盘故障的RAID系统不再可靠,应当及时的更换损坏的硬盘,否则剩余的镜像盘也出现问题,那么整个系统就会崩溃。更换新盘后原有数据会需要很长时间同步镜像,外界对数据的访问不会受到影响,只是这时整个系统的性能有所下降。因此,RAID 1多用在保存关键性的重要数据的场合。
RAID 1主要是通过二次读写实现磁盘镜像,所以磁盘控制器的负载也相当大,尤其是在需要频繁写入数据的环境中。为了避免出现性能瓶颈,使用多个磁盘控制器就显得很有必要。
3、RAID0+1
从RAID 0+1名称上我们便可以看出是RAID0与RAID1的结合体。在我们单独使用RAID 1也会出现类似单独使用RAID 0那样的问题,即在同一时间内只能向一块磁盘写入数据,不能充分利用所有的资源。为了解决这一问题,我们可以在磁盘镜像中建立带区集。因为这种配置方式综合了带区集和镜像的优势,所以被称为RAID 0+1。把RAID0和RAID1技术结合起来,数据除分布在多个盘上外,每个盘都有其物理镜像盘,提供全冗余能力,允许一个以下磁盘故障,而不影响数据可用性,并具有快速读/写能力。RAID0+1要在磁盘镜像中建立带区集至少4个硬盘。
由于我们此次只是介绍家用台式机如何组建RAID磁盘阵列功能,目前主流的主板也只是提供这三种组建模式,因此其它诸如服务等的高级RAID模式,这里我们将不再过多的介绍。
二、主板芯片组RAID控制芯片介绍
Intel南桥芯片ICH5R、ICH6R集成有SATA-RAID控制器,但仅支持SATA-RAID,不支持PATA-RAID。Intel采用的是桥接技术,就是把SATA-RAID控制器桥接到IDE控制器,因此可以通过BIOS检测SATA硬盘,并且通过BIOS设置SATA-RAID。当连接SATA硬盘而又不做RAID时,是把SATA硬盘当作PATA硬盘处理的,安装OS时也不需要驱动软盘,在OS的设备管理器内也看不到SATA-RAID控制器,看到的是IDE ATAPI控制器,而且多了两个IDE通道(由两个SATA通道桥接的)。只有连接两个SATA硬盘,且作SATA-RAID时才使用SATA-RAID控制器,安装OS时需要需要驱动软盘,在OS的设备管理器内可以看到SATA-RAID控制器。安装ICH5R、ICH6R的RAID IAA驱动后,可以通过IAA程序查看RAID盘的性能参数。
VIA南桥芯片VT8237、VT8237R的SATA-RAID设计与Intel不同,它是把一个SATA-RAID控制器集成到8237南桥内,与南桥里的IDE控制器没有关系。当然这个SATA-RAID控制器也不见得是原生的SATA模式,因为传输速度也没有达到理想的SATA性能指标。BIOS不负责检测SATA硬盘,所以在BIOS里看不到SATA硬盘。SATA硬盘的检测和RAID设置需要通过SATA-RAID控制器自己BootROM(也可以叫SATA-RAID控制器的BIOS)。所以BIOS自检后会启动一个BootROM检测SATA硬盘,检测到SATA硬盘后就显示出硬盘信息,此时按快捷键Tab就可以进入BootROM设置SATA-RAID。在VIA的VT8237南桥的主板上使用SATA硬盘,无论是否做RAID安装OS时都需要驱动软盘,在OS的设备管理器内可以看到SATA-RAID控制器。VIA的芯片也只是集成了SATA-RAID控制器。
NVIDIA的nForce2/ nForce3/ nForce4芯片组的SATA/IDE/RAID处理方式是集Intel和VIA的优点于一身。第一是把SATA/IDE/RAID控制器桥接在一起,在不做RAID时,安装XP/2000也不需要任何驱动。第二是在BIOS里的SATA硬盘不像Intel那样需要特别设置,接上SATA硬盘BIOS就可以检测到。第三是不仅SATA硬盘可以组成RAID,PATA硬盘也可以组成RAID,PATA硬盘与SATA硬盘也可以组成RAID。这给需要RAID的用户带来极大的方便,Intel的ICH5R、ICH6R,VIA的VT8237都不支持PATA的IDE RAID。
三、NVIDIA芯片组BIOS设置和RAID设置简单介绍
nForce系列芯片组的BIOS里有关SATA和RAID的设置选项有两处,都在Integrated Perip
herals(整合周边)菜单内。
SATA的设置项:Serial-ATA,设定值有[Enabled], [Disabled]。这项的用途是开启或 关闭板载Serial-ATA控制器。使用SATA硬盘必须把此项设置为[Enabled]。如果不使用SATA硬盘可以将此项设置为[Disabled],可以减少占用的中断资源。
RAID的设置项在Integrated Peripherals/Onboard Device(板载设备)菜单内,光标移到Onboard Device,按进入如子菜单:RAID Config就是RAID配置选项,光标移到RAID Config,按就进入如RAID配置菜单:
第一项IDE RAID是确定是否设置RAID,设定值有[Enabled], [Disabled]。如果不做RAID,就保持缺省值[Disabled],此时下面的选项是不可设置的灰色。
如果做RAID就选择[Enabled],这时下面的选项才变成可以设置的黄色。IDE RAID下面是4个IDE(PATA)通道,再下面是SATA通道。nForce2芯片组是2个SATA通道,nForce3/4芯片组是4个SATA通道。可以根据你自己的意图设置,准备用哪个通道的硬盘做RAID,就把那个通道设置为[Enabled]。
设置完成就可退出保存BIOS设置,重新启动。这里要说明的是,当你设置RAID后,该通道就由RAID控制器管理,BIOS的Standard CMOS Features里看不到做RAID的硬盘了。
BIOS设置后,仅仅是指定那些通道的硬盘作RAID,并没有完成RAID的组建,前面说过做RAID的磁盘由RAID控制器管理,因此要由RAID控制器的RAID BIOS检测硬盘,以及设置RAID模式。BIOS启动自检后,RAID BIOS启动检测做RAID的硬盘,检测过程在显示器上显示,检测到硬盘后留给用户几秒钟时间,以便用户按F 1 0 进入RAID BIOS Setup。
nForce芯片组提供的RAID(冗余磁盘阵列)的模式共有下面四种:
RAID 0:硬盘串列方案,提高硬盘读写的速度。
RAID 1:镜像数据的技术。
RAID 0+1:由RAID 0和RAID 1阵列组成的技术。
常见的RAID形式有下面几种:
RAID 1
是不是担心你的硬盘会损坏从而导致你辛辛苦苦忘了备份的所有数据都会丢失掉?RAID 1能帮你解决问题。RAID 1至少需要两块相同容量的硬盘,这两个硬盘互为镜像,如果其中任何一个硬盘损坏了,你还有另外一个完整的备份――两块硬盘同时损坏的几率比一块硬盘小的多。当然,RAID 1 不能保护你硬盘上的正常数据不受病毒感染或者其他威胁,RAID 1只能 延长存储设备平均故障间隔时间(MTBF,Mean Time Between Failure)。如果硬盘发生损坏,只需将被损坏的盘片换成一片新的,而RAID 控制卡将复原镜像 阵列。
尽管事实上RAID 1使用了两个物理硬盘,操作系统却只能分辨出一个逻辑硬盘。因为一个盘上的数据是复制的另一张盘上的,所以一个双硬盘的RAID 1磁盘阵列的存储能力只能达到一张单独盘片的存储能力。
RAID 0
RAID 0控制器将数据分成许多小块,然后并行地将它们写到磁盘阵列中的各个硬盘上,并且磁盘阵列中存储空间没有冗余。数据块并行的写到阵列中的各个硬盘上,这提高了性能,但是极大的降低了可靠性。一个striped逻辑驱动器如果阵列当中的任何一个物理硬盘损坏的话就会导致系统无法恢复。举例来说,你有一个双硬盘组成RAID 0磁盘阵列,你的平均故障间隔时间(MTBF)减小为一半。RAID 0磁盘阵列中的任何一个硬盘的故障都将毁掉整个 磁盘阵列系统,并使得逻辑硬盘上的所有数据丢失。
尽管striping模式不存在冗余,但它至少使得整个磁盘阵列的物理驱动器的存储能力最大化。因为采用RAID 0 排列的逻辑驱动器覆盖着每个物理驱动器,磁盘阵列的总存储能力是物理驱动器的存储能力的总和。
RAID 1+0/0+1
RAID 1+0/0+1 - RAID 1+0和0+1模式是相似的,它们试图同时达到更好的性能和冗余,即综合RAID 0和 RAID 1两种磁盘阵列之长 。但是RAID 1+0 和0+1在处理 镜像和冗余上是有区别的。RAID 1+0是先分别利用两个硬盘组成RAID 1阵列,然后再把这两个阵列以RAID 0模式组合在一起,而RAID 0+1则刚好相反。
无论是RAID 1+0模式还是0+1模式其得到的存储能力是一样的。不管是RAID 1+0 还是0+1,其总的存储能力都是阵列中所有硬盘的存储能力之和的一半。同样是对各自组合方式下的逻辑盘做了镜像副本,因此所有硬盘总的存储能力只有一半是可用的。
RAID 1+0和0+1 磁盘阵列拥有相同的存储能力,同时它们都具备充分的冗余来预防其中一个单独的硬盘故障,但是一旦其中一个硬盘出现故障之后,两种模式的冗余能力就变得不同了:对于RAID 0+1磁盘阵列而言,如果故障硬盘所在的RAID 0模式的另外一个硬盘故障,当然对于这个磁盘镜像没有什么影响,不过如果出现在另外一个RAID 0阵列上,整个磁盘阵列就崩溃了;对于RAID 1+0模式,如果一个RAID 1阵列中的两块硬盘都故障了,那么整个磁盘阵列都会崩溃。因此,对于这两种模式,只要有一个硬盘故障,最好尽快的更换。
RAID 5
RAID 5不是利用镜像而是利用分散奇偶校验冗余数据。在RAID 0阵列中,数据是分散在阵列中的每块硬盘上,而在RAID 5阵列中,奇偶校验数据也是有序排列的。这些奇偶检验数据的索引是交叉分布在阵列中的每块硬盘上。维护这些奇偶检验数据的索引导致RAID 5阵列的性能慢下来,但给了它striped RAID 0阵列所不具备的冗余水平。如果一个硬盘失效,RAID 5磁盘阵列能利用其他物理驱动器的数据、奇偶校检数据和一些简单的二元数学算法来复原。
RAID 5磁盘阵列的存储能力取决于阵列中硬盘的个数。奇偶校检数据索引要求RAID 5阵列中的每个物理硬盘的容量大小是一致的。RAID 5 磁盘阵列中拥有的物理硬盘个数越多,总的存储能力越低,很明显,这是因为奇偶校检数据索引的缘故。我们采用了四块硬盘组成了RAID 5磁盘阵列来做对照试验,所以这个阵列的总容量是其中三块硬盘的容量之和。(不如就放上:RAID 5模式的有效容量是阵列中容量最小的硬盘容量乘上阵列中硬盘数目减去一以后的数,这里硬盘数目要减去一是因为其中有一块硬盘用来存放校验信息。)
最后,RAID 0 阵列提供最高的性能和最有效的可用容量,但是它降低了数据可靠性,这也许使得你在使用多块硬盘组成你的RAID 0 阵列后却还不如单独使用一块硬盘的情况好。RAID 1阵列通过镜像能提供冗余,但是它不能提供任何扩展的性能优势,因为镜像将占去你阵列中硬盘总容量的一半。
raid 0+1和1+0的区别
我们现在常用的RAID10其实是1+0而并不是0+1,看似简单只是个顺序问题。其实对应用来说是非常不同的。
RAID 0+1 - using 4 drives, two pairs are striped, and the results mirror each other. In this configuration, when one of the drives fails, it actually breaks the stipe that it belongs to, which in turn breaks the mirror... at this point, all you have is 1 stipe. At this point, if one drive fails, you are in trouble. To recover, the offending drive is removed, and the entire stipe needs to be resync'd.
RAID 1+0 - using 4 drives, two pairs are mirrored, and the results are used to create a single stripe. In this configuration, when one of the drives fails, it only breaks one mirror, without affecting the stripe... at this point, only 1/2 of the stipe is mirrored... but if a 2nd drive failure were to occur, it has a 2-in-3 chance of occuring on the last mirror... if it does, you are still OK. To recover, the offending drive is removed, and only the mirror of 1/2 the stripe needs to be resync'd.
RAID 10和RAID 0+1的区别
RAID 10和RAID0+1是完全不同的两个实现和设置方法
现在举两个例子,分别是单个盘阵2块disk和 3块disk的情况
(一)单个盘阵2块disk
RAID 10 (先作0,然后作1)
A
----]- RAID0(array 1)
B
---------------------]- RAID 1(array final)
C
----]- RAID0(array 2)
D
RAID 0+1(先作1,然后作0)
A
---]- RAID1(array 1)
B
--------------------]- RAID 0(array final)
C
---]- RAID1(array 2)
D
看上去是不是差不多?呵呵,先不要马上下结论,看三块盘以上会有啥变化
(二) 单个盘阵3块disk
RAID10
A
B-------]- RAID0
C
------------------]- RAID 1
E
F-------]- RAID0
G
RAID0+1因为是先做1,然后作0,因为RAID 1是镜像,需且只需两块硬盘,所以,在单个盘阵是2块以上的情况下,是实现不了 RAID0+1的
===============================================
上面说了 具体的配置区别
在实际的应用中,RAID10是追求在确保高速度访问情况下数据基本可靠的一种手段.
比如,在学校的FTP服务器上,一些文件被频繁的访问,但是要求这些文件本身具备一定的安全和可靠,所以,RAID10是比较理想的选择.
又比如,在财务部门等小型关键部门,需要存放一些比较重要的资料,以提供企业的其他部门,在一定的时间段(比如下班之前一个小时的结算时间,比如每个星期五上午的结算时间,而不是指在所有的时间段内)比较多的访问,所以在确保数据可靠性的情况下,采取RAID0+1的方式来稍微提高一下访问性能。
由此看出,这两种方式是完全不同的,应用的对象和场合也是完全不一样的。
在这里再次强调,如果真的想好好的设计和实施企业应用,就应该像称职的大夫一样,通过仔细甄别业务的不同特点,制定针对这种业务的解决方法,而不能随随便便的拿出RAID5一概而论,这是对用户的不负责任的工作态度。
根据我得到的反馈,对于采用精细调整的IT系统的企业,在将来漫长的运作过程中,出现问题的概率要远小于粗枝大叶胡乱部署的企业,特别是一些基本系统,比如mail,web,database等。
Linux由于其稳定和高度开放的特点,特别适合企业应用,不过前提是经过了精细的设计和调整,否则,其被应用到企业中,效果未见得比微软平台要好,甚至有可能完全抹煞了其稳定和高度开放的特性,成为企业构架IT系统中的败笔.