教你如何组建磁盘阵列组图Word格式.docx
《教你如何组建磁盘阵列组图Word格式.docx》由会员分享,可在线阅读,更多相关《教你如何组建磁盘阵列组图Word格式.docx(17页珍藏版)》请在冰豆网上搜索。
![教你如何组建磁盘阵列组图Word格式.docx](https://file1.bdocx.com/fileroot1/2022-11/23/3bc133d1-1d9d-41b6-af49-f44db6f75eef/3bc133d1-1d9d-41b6-af49-f44db6f75eef1.gif)
RAID0及RAID1适用于PC及PC相关的系统如小型的网络服务器(networkserver)及需要高磁盘容量与快速磁盘存取的工作站等,因为比较便宜,但因一般人对磁盘阵列不了解,没有看到磁盘阵列对他们价值,市场尚未打开;
RAID2及RAID3适用于大型电脑及影像、CAD/CAM等处理;
RAID5多用于OLTP,因有金融机构及大型数据处理中心的迫切需要,故使用较多而较有名气,但也因此形成很多人对磁盘阵列的误解,以为磁盘阵列非要RAID5不可;
RAID4较少使用,因为两者有其共同之处,而RAID4有其先天的限制。
其他如RAID6,RAID7,乃至RAID10等,都是厂商各做各的,并无一致的标准,在此不作说明。
介绍各个RAIDlevel之前,先看看形成磁盘阵列的两个基本技术:
译为磁盘延伸,能确切的表示diskspanning这种技术的含义。
如下图所示,DFTraid磁盘阵列控制器,联接了四个磁盘:
这四个磁盘形成一个阵列(array),而磁盘阵列的控制器(RAIDcontroller)是将此四个磁盘视为单一的磁盘,如DOS环境下的C:
盘。
这是diskspanning的意义,因为把小容量的磁盘延伸为大容量的单一磁盘,用户不必规划数据在各磁盘的分布,而且提高了磁盘空间的使用率。
DFTraid的SCSI磁盘阵列更可连接几十个磁盘,形成数十GB到数百GB的阵列,使磁盘容量几乎可作无限的延伸;
而各个磁盘一起作取存的动作,比单一磁盘更为快捷。
很明显的,有此阵列的形成而产生RAID的各种技术。
我们也可从上图看出inexpensive(便宜)的意义,因为四个250MBbytes的磁盘比一个1GBytes的磁盘要便宜,尤其以前大磁盘的价格非常昴贵,但在磁盘越来越便宜的今天,inexpensive已非磁盘阵列的重点,虽然对于需要大磁盘容量的系统,仍是考虑的要点。
磁盘
因为磁盘阵列是将同一阵列的多个磁盘视为单一的虚拟磁盘(virtualdisk),所以其数据是以分段(blockorsegment)的方式顺序存放在磁盘阵列中,如下图:
磁盘0
磁盘1
磁盘2
磁盘3
A0-A1
B0-B1
C0-C1
D0-D1
A2-A3
B2-B3
C2-C3
D2-D3
A4-A5
B4-B5
C4-C5
D4-C5
A6-A7
B6-B7
C6-C7
D6-D7
数据按需要分段,从第一个磁盘开始放,放到最後一个磁盘再回到第一个磁盘放起,直到数据分布完毕。
至于分段的大小视系统而定,有的系统或以1KB最有效率,或以4KB,或以6KB,甚至是4MB或8MB的,但除非数据小于一个扇区(sector,即521bytes),否则其分段应是512byte的倍数。
因为磁盘的读写是以一个扇区为单位,若数据小于512bytes,系统读取该扇区后,还要做组合或分组(视读或写而定)的动作,浪费时间。
从上图我们可以看出,数据以分段于在不同的磁盘,整个阵列的各个磁盘可同时作读写,故数据分段使数据的存取有最好的效率,理论上本来读一个包含四个分段的数据所需要的时间约=(磁盘的accesstime+数据的transfertime)X4次,现在只要一次就可以完成。
若以N表示磁盘的数目,R表示读取,W表示写入,S表示可使用空间,则数据分段的性能为:
R:
N(可同时读取所有磁盘)
W:
N(可同时写入所有磁盘)
S:
N(可利用所有的磁盘,并有最佳的使用率)
Diskstriping也称为RAID0,很多人以为RAID0没有甚么,其实这是非常错误的观念,因为RAID0使磁盘的输出入有最高的效率。
而磁盘阵列有更好效率的原因除数据分段外,它可以同时执行多个输出入的要求,因为阵列中的每一个磁盘都能独立动作,分段放在不同的磁盘,不同的磁盘可同时作读写,而且能在快取内存及磁盘作并行存取(parallelaccess)的动作,但只有硬件的磁盘阵列才有此性能表现。
从上面两点我们可以看出,diskspanning定义了RAID的基本形式,提供了一个便宜、灵活、高性能的系统结构,而diskstriping解决了数据的存取效率和磁盘的利用率问题,RAID1至RAID5是在此基础上提供磁盘安全的方案。
RAID1
RAID1是使用磁盘镜像(diskmirroring)的技术。
磁盘镜像应用在RAID1之前就在很多系统中使用,它的方式是在工作磁盘(workingdisk)之外再加一额外的备份磁盘(backupdisk),两个磁盘所储存的数据完全一样,数据写入工作磁盘的同时亦写入备份磁盘。
磁盘镜像不见得就是RAID1,如NovellNetWare亦有提供磁盘镜像的功能,但并不表示NetWare有了RAID1的功能。
一般磁盘镜像和RAID1有二点最大的不同:
RAID1无工作磁盘和备份磁盘之分,多个磁盘可同时动作而有重叠(overlapping)读取的功能,甚至不同的镜像磁盘可同时作写入的动作,这是一种最佳化的方式,称为负载平衡(load-balance)。
例如有多个用户在同一时间要读取数据,系统能同时驱动互相镜像的磁盘,同时读取数据,以减轻系统的负载,增加I/O的性能。
RAID1的磁盘是以磁盘延伸的方式形成阵列,而数据是以数据分段的方式作储存,因而在读取时,它几乎和RAID0有同样的性能。
从RAID的结构就可以很清楚的看出RAID1和一般磁盘镜像的不同。
下图为RAID1,每一笔数据都储存两份
磁盘0
A0
A2
A4
B1
A1
A3
B0
B2
从上图可以看出:
N/2(同时写入磁盘数)
N/2(利用率)
读取数据时可用到所有的磁盘,充分发挥数据分段的优点;
写入数据时,因为有备份,所以要写入两个磁盘,其效率是N/2,磁盘空间的使用率也只有全部磁盘的一半。
很多人以为RAID1要加一个额外的磁盘,形成浪费而不看好RAID1,事实上磁盘越来越便宜,并不见得造成负担,况且RAID1有最好的容错(faulttolerance)能力,其效率也是除RAID0之外最好的。
我们可视应用的不同,在同一磁盘阵列中使用不同的RAIDlevel,如华艺科技公司的DFTraid系列都可同一磁盘阵列中定义八个逻辑磁盘(logicdisk),分别使用不同的RAIDlevel,分为C:
D:
及E:
三个逻辑磁盘(或LUN0,LUN1,LUN2).
RAID1完全做到了容错包括不停机(non-stop),当某一磁盘发生故障,可将此磁盘拆下来而不影向其他磁盘的操作;
待新的磁盘换上去之后,系统即时做镜像,将数据重新复上去,RAID1在容错及存取的性能上是所有RAIDlevel之冠。
在磁盘阵列的技术上,从RAID1到RAID5,不停机的意思表示在工作时如发生磁盘故障,系统能持续工作而不停顿,仍然可作磁盘的存取,正常的读写数据;
而容错则表示即使磁盘故障,数据仍能保持完整,可让系统存取到正确的数据,而SCSI的磁盘阵列更可在工作中抽换磁盘,并可自动重建故障磁盘的数据。
磁盘阵列之所以能做到容错及不停机,是因为它有冗余的磁盘空间可资利用,这也就是Redundant的意义。
RAID2
RAID2是把数据分散为位元(bit)或块(block),加入海明码HammingCode,在磁盘阵列中作间隔写入(interleaving)到每个磁盘中,而且地址(address)都一样,也就是在各个磁盘中,其数据都在相同的磁道(cylinderortrack)及扇区中。
RAID2的设计是使用共轴同步(spindlesynchronize)的技术,存取数据时,整个磁盘阵列一起动作,在各作磁盘的相同位置作平行存取,所以有最好的存取时间(accesstime),其总线(bus)是特别的设计,以大带宽(bandwide)并行传输所存取的数据,所以有最好的传输时间(transfertime)。
在大型档案的存取应用,RAID2有最好的性能,但如果档案太小,会将其性能拉下来,因为磁盘的存取是以扇区为单位,而RAID2的存取是所有磁盘平行动作,而且是作单位元的存取,故小于一个扇区的数据量会使其性能大打折扣。
RAID2是设计给需要连续且大量数据的电脑使用的,如大型电脑(mainframetosupercomputer)、作影像处理或CAD/CAM的工作站(workstation)等,并不适用于一般的多用户环境、网络服务器(networkserver),小型机或PC。
RAID2的安全采用内存阵列(memoryarray)的技术,使用多个额外的磁盘作单位错误校正(single-bitcorrection)及双位错误检测(double-bitdetection);
至于需要多少个额外的磁盘,则视其所采用的方法及结构而定,例如八个数据磁盘的阵列可能需要三个额外的磁盘,有三十二个数据磁盘的高档阵列可能需要七个额外的磁盘。
RAID3
RAID3的数据储存及存取方式都和RAID2一样,但在安全方面以奇偶校验(paritycheck)取代海明码做错误校正及检测,所以只需要一个额外的校检磁盘(paritydisk)。
奇偶校验值的计算是以各个磁盘的相对应位作XOR的逻辑运算,然后将结果写入奇偶校验磁盘,任何数据的修改都要做奇偶校验计算,如下图:
磁盘4
B3
C2
B4
C3
C0
C4
C1
D0
P
如某一磁盘故障,换上新的磁盘后,整个磁盘阵列(包括奇偶校验磁盘)需重新计算一次,将故障磁盘的数据恢复并写入新磁盘中;
如奇偶校验磁盘故障,则重新计算奇偶校验值,以达容错的要求.
较之RAID1及RAID2,RAID3有85%的磁盘空间利用率,其性能比RAID2稍差,因为要做奇偶校验计算;
共轴同步的平行存取在读档案时有很好的性能,但在写入时较慢,需要重新计算及修改奇偶校验磁盘的内容。
RAID3和RAID2有同样的应用方式,适用大档案及大量数据输出入的应用,并不适用于PC及网络服务器。
RAID4
RAID4也使用一个校验磁盘,但和RAID3不一样,如下图:
B3-B4
D1-D2
E4-F0
D3-D4
F1-F2
A4-B0
F3-F4
B1-B2
C4-D0
G0-G1
RAID4是以扇区作数据分段,各磁盘相同位置的分段形成一个校验磁盘分段(parityblock),放在校验磁盘。
这种方式可在不同的磁盘平行执行不同的读取命今,大幅提高磁盘阵列的读取性能;
但写入数据时,因受限于校验磁盘,同一时间只能作一次,启动所有磁盘读取数据形成同一校验分段的所有数据分段,与要写入的数据做好校验计算再写入。
即使如此,小型档案的写入仍然比RAID3要快,因其校验计算较简单而非作位(bitlevel)的计算;
但校验磁盘形成RAID4的瓶颈,降低了性能,因有RAID5而使得RAID4较少使用。
RAID5
RAID5避免了RAID4的瓶颈,方法是不用校验磁盘而将校验数据以循环的方式放在每一个磁盘中,如下图:
A2-B3
B2-B2
磁盘阵列的第一个磁盘分段是校验值,第二个磁盘至后一个磁盘再折回第一个磁盘的分段是数据,然后第二个磁盘的分段是校验值,从第三个磁盘再折回第二个磁盘的分段是数据,以此类推,直到放完为止。
图中的第一个parityblock是由A0,A1...,B1,B2计算出来,第二个parityblock是由B3,B4,...,C4,D0计算出来,也就是校验值是由各磁盘同一位置的分段的数据所计算出来。
这种方式能大幅增加小档案的存取性能,不但可同时读取,甚至有可能同时执行多个写入的动作,如可写入数据到磁盘1而其parityblock在磁盘2,同时写入数据到磁盘4而其parityblock在磁盘1,这对联机交易处理(OLTP,on-lineTransactionProcessing)如银行系统、金融、股市等或大型数据库的处理提供了最佳的解决方案(solution),因为这些应用的每一笔数据量小,磁盘输出入频繁而且必须容错。
事实上RAID5的性能并无如此理想,因为任何数据的修改,都要把同一parityblock的所有数据读出来修改后,做完校验计算再写回去,也就是RMWcycle(Read-Modify-Writecycle,这个cycle没有包括校验计算);
正因为牵一而动全身,所以:
1(可同时写入磁盘数)
N-1(利用率)
RAID5的控制比较复杂,尤其是利用硬件对磁盘阵列的控制,因为这种方式的应用比其他的RAIDlevel要掌握更多的事情,有更多的输出入需求,既要速度快,又要处理数据,计算校验值,做错误校正等,所以价格较高;
其应用最好是OLTP,至于用于PC等,不见得有最佳的性能。
3.RAID的对比:
下面几个表列是RAID的一些性质:
操作
工作模式
最少硬盘需求量
可用容量
RAID0
磁盘延伸和数据分布
2
T
数据分布和镜像
T/2
共轴同步,并行传输,ECC
3
T*(n-1)/n
共轴同步,并行传输,Parity
数据分布,固定Parity
RAID5
数据分布,分布Parity
RAID的性能与可用性:
RAIDLevel
用户数据利用率
BandwidthPerformance
Transaction
Performance
数据可用性
1
0.25
0.0005
0.5
0.85
0.67
0.9999
0.75
0.61
以上数据基于4个磁盘,传输块大小1K,75%的读概率,数据可用性的计算基于同样的损坏概率
4.RAID的概述:
没有任何额外的磁盘或空间作安全准备,所以一般人不重视它,这是误解,其实它有最好的效率及空间利用率,对于追求效率的应用,非常理想,可同时用其他的RAIDlevel或其他的备份方式以补其不足,保护重要的数据。
有最佳的安全性,100%不停机,即使有一个磁盘损坏也能照常作业而不影向其效能(对能并行存取的系统稍有影响),因为数据是作重复储存。
RAID1的并行读取几乎有RAID0的性能,因为可同时读取相互镜像的磁盘;
写入也只比RAID0略逊,因为同时写入两个磁盘并没有增加多少工作。
虽然RAID1要增加一倍的磁盘做镜像,但作为采用磁盘阵列的进入点,它是最便宜的一个方案,是新设磁盘阵列的用户之最佳选择。
在不停机及容错的表现都很好,但如有磁盘故障,对性能的影响较大,大容量的快取内存有助于维持性能,但在OLTP的应用上,因为每一笔数据或记录(record)都很小,对磁盘的存取频繁,故有一定程度的影响。
某一磁盘故障时,读取该磁盘的数据需把共用同一parityblock的所有数据及校验值读出来,再把故障磁盘的数据计算出来;
写入时,除了要重覆读取的程序外,还要再做校验值的计算,然后再写入更新的数据及校验值;
等换上新的磁盘,系统要计算整个磁盘阵列的数据以回复故障磁盘的数据,时间要很长,如系统的工作负载很重的话,有很多输出入的需求在排队等候时,会把系统的性能拉下来。
但如使用硬件磁盘阵列的话,其性能就可以得到大幅度的改进,因为硬件磁盘阵列如DFTraid系列本身有内置的CPU与主机系统并行运作,所有存取磁盘的输出入工作都在磁盘阵列本身完成,不花费主机的时间,配合磁盘阵列的快取内存的使用,可以提高系统的整体性能,而优越的总线控制更能增加数据的传输速率,即使在磁盘故障的情况下,主机系统的性能也不会有明显的降低。
RAID5要做的事情太多,所以价格较贵,不适于小系统,但如果是大系统使用大的磁盘阵列的话,RAID5却是最便宜的方案。
总而言之,RAID0及RAID1最适合PC及图形工作站的用户,提供最佳的性能及最便宜的价格,所以RAID0及RAID1多是使用IDE界面,以低成本符合PC市埸的需求。
RAID2及RAID3适用于大档案且输入输出需求不频繁的应用如影像处理及CAD/CAM等;
而RAID5则适用于银行、金融、股市、数据库等大型数据处理中心的OLTP应用;
RAID4与RAID5有相同的特性及应用方式,但有其先天的限制,所以并不受推荐。
5.磁盘阵列的额外容错功能:
SpareorStandbydriver
事实上容错功能已成为磁盘阵列最受青睐的特性,为了加强容错的功能以及使系统在磁盘故障的情况下能迅速的重建数据,以维持系统的性能,一般的磁盘阵列系统都可使用热备份(hotspareorhotstandbydriver)的功能,所谓热备份是在建立(configure)磁盘阵列系统的时候,将其中一磁盘指定为后备磁盘,此一磁盘在平常并不操作,但若阵列中某一磁盘发生故障时,磁盘阵列即以后备磁盘取代故障磁盘,并自动将故障磁盘的数据重建(rebuild)在后备磁盘之上,因为反应快速,加上快取内存减少了磁盘的存取,所以数据重建很快即可完成,对系统的性能影响不大。
对于要求不停机的大型数据处理中心或控制中心而言,热备份更是一项重要的功能,因为可避免晚间或无人持守时发生磁盘故障所引起的种种不便。
另一个额外的容错功能是坏扇区转移(badsectorreassignment)。
坏扇区是磁盘故障的主要原因,通常磁盘在读写时发生坏扇区的情况即表示此磁盘故障,不能再作读写,甚至有很多系统会因为不能完成读写的动作而死机,但若因为某一扇区的损坏而使工作不能完成或要更换磁盘,则使得系统性能大打折扣,而系统的维护成本也未免太高了。
坏扇区转移是当磁盘阵列系统发现磁盘有坏扇区时,以另一空白且无故障的扇区取代该扇区,以延长磁盘的使用寿命,减少坏磁盘的发生率以及系统的维护成本。
所以坏扇区转移功能使磁盘阵列具有更好的容错性,同时使整个系统有最好的成本效益比。
其他如可外接电池备援磁盘阵列的快取内存,以避免突然断电时数据尚未写回磁盘而损失;
或在RAID1时作写入一致性的检查等,虽是小技术,但亦不可忽视。
6.硬件磁盘阵列还是软件磁盘阵列
市面上有所谓硬件磁盘阵列与软件磁盘阵列之分,因为软件磁盘阵列是使用一块SCSI卡与磁盘连接,一般用户误以为是硬件磁盘阵列。
以上所述主要是针对硬件磁盘阵列,其与软件磁盘阵列有几个最大的区别:
l一个完整的磁盘阵列硬件与系统相接。
l内置CPU,与主机并行运作,所有的I/O都在磁盘阵列中完成,减轻主机的工作负载,增加系统整体性能。
l有卓越