【IT168 技术】RAID通过同时使用多个磁盘,提高了传输速率,RAID通过在多个磁盘上同时存储和读取数据来大幅提高存储系统的数据吞吐量。同时通过数据校验,RAID还可以提供容错功能。
一、原有FTP服务器存储系统存在的问题
1.FTP服务器作为局域网信息资源的存储中心.本来数据的吞吐流量就非常大,对硬盘的读、写操作有着极高的速度和稳定性要求,加上机房没有专用的存储设备,所有数据都存储在FTP服务器的本地硬盘上,加重了服务器的负担,原有存储系统已经不能够承受如此大的性能要求。
2.当多用户并发访问FTP服务器或者多用户同时访问同一文件时,硬盘的响应时间和寻道时间都会大大增加,服务器对各个客户端请求的响应速度和传输速度也会降低很多甚至中断。而更多的时候是这两种情是况同时发生的,存储器的性能在某种程度上决定了FTP服务器的性能。
3.机房原有FTP服务器使用的是传统的IDE硬盘而且两个磁盘是主从关系,当总线上传输数据时在同一时间只能有一个磁盘处于执行读、写状态,另一磁盘处于wait状态,只有当前磁盘操作完成之后才能获得总线的控制权,那么服务器对客户端的响应和传输受到制约。
二、使用RAID技术改变了FTP服务器的性能
RAID技术的使用从根本上改变了存储器的结构和存储方法,是由美国加州大学伯克利分校的D.A.Patterson教授在1988年提出的,RAID的全称是廉价磁盘冗余阵列(Redundant Array of Inexpensive Disks),是一种把多块独立的硬盘(物理硬盘)按不同方式组合起来形成一个硬盘组(逻辑硬盘),从而提供比单个硬盘更高的存储性能和提供数据冗余的技术。RAID卡控制器把数据以块或者带为单位,运用了交叉存储的方法,把数据按照交叉的顺序存储到不同的硬盘上。条带化实现了可以同时访问多个磁盘上的数据,平衡I/O负载,加大了数据存储空问和加快了数据访问速度,减少了由硬盘机械系统引起的时间延迟,提高了磁盘系统的I/O能力。RAID卡控制器上有一个相当于CPU的芯片,能够处理大部分工作。减轻了中央处理器的负担(CPU的占用率)。
做RAID之前要考虑的问题主要有以下几点:
1.选用什么样的硬盘作为存储介质
硬盘作为数据的存储介质,其稳定性和读写性能就显得尤其重要。与个人PC使用IDE硬盘不同,高性能服务器一般选用SCSl(Small Computer Systdn Interface小型计算机系统接口)或者SAS(Serial Attached SCSI即串行连接SCSI,是新一代的SCSI技术)硬盘作为存储器介质。
服务器使用的硬盘转速快,可以达到10000 rpm或15000 rpm,还配置了较大的回写式缓存,平均访问时间比较短,外部传输率和内部传输率更高,采用Ultra wideSCSI、Ultra2 Wide SCSI、Uhra 160 SCSI、Ultra320 SCSI等标准的接口,每秒的数据传输率分别可以达到40MB/s、80MB/s、160MB/s、320MB/s。热插拔(Hot Swap)是一些服务器支持的硬盘安装方式,可以在服务器不停机的情况下,拔出或插入一块硬盘,操作系统自动识别硬盘的改动。这种技术对于24小时不间断运行的服务器来说,是非常必要的。
因为它无论在转速、读写速度还是在并发访问时的所需的寻址时间上,以及缓存大小上都要比IDE硬盘性能高的多,因此机房的FTP服务器选用SCSI或者SAS硬盘作为存储器介质。
2.选用什么级别的RAID
RAID级别的选择有三个主要因素:数据安全性(数据冗余)、性能和成本。如果不要求安全性,选择RAID 0以获得非常好的性能。如果安全性和性能是重要的而成本不是一个主要因素.则根据硬盘数量选择RAID 1。如果可用性、成本和性能都同样重要,则根据一般的数据传输和硬盘的数量选择RAID 3或RAID 5。
RAID 0要实现必须要有两个以上硬盘驱动器,RAID0实现了带区组,数据并不是保存在一个硬盘上,而是分成数据块保存在不同驱动器上。因为将数据分布在不同驱动器上,所以数据吞吐率大大提高,驱动器的负载也比较平衡。如果刚好所需要的数据在不同的驱动器上效率最好。它不需要计算校验码,实现容易。它的缺点是没有数据差错控制,如果一个驱动器中的数据发生错误,即使其它盘上的数据正确也无济于事了。不应该将它用于对数据稳定性要求高的场合。如果用户进行图象(包括动画)编辑和其它要求传输比较大的场合使用RAID0比较合适。同时,RAID0可以提高数据传输速率,比如所需读取的文件分布在两个硬盘上,这两个硬盘可以同时读取。那么原来读取同样文件的时间被缩短为1/2。在所有的级别中,RAID 0的速度是最快的。但是RAID 0没有冗余功能的,如果一个磁盘(物理)损坏,则所有的数据都无法使用。
RAIDl对于使用这种结构的设备来说,RAID控制器必须能够同时对两个盘进行读操作和对两个镜象盘进行写操作。通过下面的结构图可以看到必须有两个驱动器,因为是镜象结构在一组盘出现问题时,可以使用镜象,提高系统的容错能力,比较容易设计和实现。每读一次盘只能读出一块数据,也就是说数据块传送速率与单独的盘的读取速率相同。因为RAIDl的校验十分完备,因此对系统的处理能力有很大的影响,通常的RAID功能由软件实现,而这样的实现方法在服务器负载比较重的时候会大大影响服务器效率。所以当系统需要极高的可靠性时,如进行数据统计,那么使用RAIDl比较合适。而且RAIDl技术支持“热替换”,即不断电的情况F对故障磁盘进行更换,更换完毕只要从镜像盘上恢复数据即可。当主硬盘损坏时,镜像硬盘就可以代替主硬盘工作。镜像硬盘相当于一个备份盘,可想而知,这种硬盘模式的安全性是非常高的,RAID 1的数据安全性在所有的RAll)级别上来说是最好的。但是其磁盘的利用率却只有50%,是所有RAID级别中最低的。
RAID 3访问数据时一次处理一个带区,这样可以提高读取和写入速度,它和RAID 0一样以并行的方式来存放数,但速度没有RAID 0快。校验码在写人数据时产生并保存在另一个磁盘上。需要实现时用户必须要有三个以上的驱动器,写入速率与读出速率都很高,因为校验位比较少,因此计算时问相对而言比较少。RAID3使用单独一块磁盘存放奇偶校验信息。如果某一块数据磁盘失效,奇偶校验盘及其他数据盘可以重新产生数据。如果奇偶艋失效,则不影响数据使用,当新校验盘就绪后会利用数据盘的数据生成校验信息写入校验盘。RAID 3对于大量的连续数据可提供很好的传输率,但对于随机数据,奇偶盘会成为写操作的瓶颈。利用单独的校验盘来保护数据虽然没有镜像的安全性高,但是硬盘利用率得到了很大的提高,为N-1。
RAID 5是一种存储性能、数据安全和存储成本兼顾的存储解决方案。它使用的是I)isk Striping(硬盘分割)技术。RAID 5不对存储的数据进行备份,而是把数据和相对应的奇偶校验信息存储到组成RAID5的各个磁盘上,并且奇偶校验信息和相对应的数据分别存储于不同的磁盘上。当RAID5的一个磁盘数据发生损坏后,利用剩下的数据和相应的奇偶校验信息去恢复被损坏的数据。RAID 5可以理解为是RAID 0和RAID 1的折中方案。RAID 5可以为系统提供数据安全保障,但保障程度要比RAID 1低,但磁盘宅间利用率要比RAID 1高。RAID 5具有和RAID 0相近似的数据读取速度,只是多了一个奇偶校验信息,写入S数据的速度比对单个磁盘进行写入操作稍慢。
使用第三方的RAID卡建立阵列,根据使用硬盘种类的不同选择相应种类的RAID卡,比如SCSI RAID卡或者SAS RAID卡,但有一点是需要注意的,做RAID的硬盘一般要选择品牌型号一致的产品,因为不同型号的硬盘在电气性能上和数据读写速度性能上是有差别的,对阵列的稳定性会有很大影响。
就机房FTP服务器而言,需要长时间不间断高负荷的工作,对硬盘的存取速度和无故障工作时间有着很高的要求,于是综合脚DO和RAIDl各自的特点,选用RAID5作为存储级别。
下面来分析一下RAID 5如何实现对数据的还原,使用4块硬盘来构成一个RAID 5阵列,用户定义的分割文件大小为64KB,此时需要存储的文件大小为384KB。首先,当RAID控制器接收到这部分数据之后利用一定的算法得出校验信息,然后将这192KB的文件分割成六个大小为64KB大小的文件碎片(A1,A2,AS,B1,磁,B3),将A1,A2,AS这三个文件碎片同时分别存往0号硬盘、1号硬盘和2号硬盘,最后校验信息Ap被发往3号硬盘。数据碎片B1,B2,B3分别发往0号硬盘,1号硬盘,3号硬盘,校验信息Bp被发往2号硬盘,这样往复进行使得校验信息平均分布在4个硬盘上,对于硬盘的读写更为平均,可以延长硬盘的无故障工作时间从而提高阵列的稳定性和安全性。如果这个阵列当中某个硬盘损坏了,还是可以恢复原来的数据,比如用来存储校验信息的3号硬盘损坏了,可以通过1号和2号硬盘来重新生成校验信息;如果损坏的是0号、1号或者2号硬盘,可以利用3号硬盘七存储的校验信息和其他的数据盘上的数据重新计算生成原来的数据。
三、总结
RAID技术的应用很大程度上提高了服务器的的I/0性能,可以更安全高效稳定的响应客户机的访问请求并及时进行数据服务,尽量减少由硬件故障所造成的数据损失和提升性能,但并不能完全保障数据的安全,防不了黑客人侵和病毒侵害,所以要保证数据的安全性还是要多管齐下。本文只是从硬盘和RAID的角度做一个比较,所以在要在存储重要数据的服务器上做RAID,定期异机备份数据,才能确保服务器稳定性及数据安全。