根据执行任务以及用户所能承受的投资能力的不同,实现容错系统的常用方法有以下几种。
(一)空闲备件
“空闲备件”,其意思是在系统中配置一个处于空闲状态的备用部件。该方法是提供容错的一条途径,当原部件出现故障时,该空闲备件就不再“空闲”,它就取代原部件的功能。这种类型的容错的一个简单例子是将一台慢速打印机连到系统上,只有在当前所使用的打印系统出现故障时才使用该打印机。
(二)负载平衡
负载平衡是另一种提供容错的途径,在具体的实现时使用两个部件共同承担一项任务,一旦其中的一个部件出现故障,另一个部件立即将原来由两个部件负担的任务全部承担下来,负载平衡方法通常使用在双电源的服务器系统中。如果一个电源出现了故障,另一个电源就承担原来两倍的负载。
在网络系统中常见的负载平衡是对称多处理。在对称多处理中,系统中的每一个处理器都能执行系统中的所有工作。这意味着,这种系统在不同的处理器之间竭尽全力保持负载平衡。由于这个原因,对称多处理能才在CPU级别上提供容错的能力。
(三)镜像
在容错系统中镜像技术是常用的一种实现容错的方法。在镜像技术中,两个部件要求执行完全相同的工作,如果其中的一个出现故障,另一个系统则继续工作。通常这种方法用在磁盘子系统中,两个磁盘控制器对同样型号的磁盘的相同扇区内写入完全相同的数据。
在镜像技术中,要求两个系统完全相同,而且两个系统都完成同一个任务。当故障发生时,系统将其识别出来并切换到单个系统操作状态。
事实证明,对磁盘系统而言镜像技术能很好地工作,但如果要实现整个系统的镜像是比较困难的。其原因是在两台机器上对内部总线传输和软件产生的系统故障等事件使用镜像技术是存在一定的难度的。
(四)复现
复现又称延迟镜像,它是镜像技术的一个变种。在复现技术中,需要有两个系统:辅助系统和原系统。辅助系统从原系统中接收数据,当原系统出现故障时,辅助系统就接替原系统的工作。利用这种方式用户就可以在接近出故障的地方重新开始工作。复现与镜像的主要不同之处在于重新开始工作以及在原系统上建立的数据被复制到辅助系统上时存在着一定的时间延迟。换句话来说,复现并非是精确的镜像系统。尽管如此,在高可用性系统中还使用复现技术的原因是可以减少网络数据的丢失。
复现系统如要代替原系统在网络系统充分发挥其作用,就必须复现原系统的安全信息和机制,包括用户ID、登录初始化、用户名和其他授权过程。
(五)冗余系统配件
在系统中重复配置一些关键的部件可以增强故障的容错性。被重复配置的部件通常有如下几种:主处理器、电源、I/O设备和通道。
采用冗余系统配件的措施有些必须在系统设计之时就得考虑进去,有的则可以在系统安装之后再加进去。
1.电源
目前,在网络系统使用双电源系统已经较普遍,这两个电力供应系统应是负载平衡的,当系统工作时它们都为系统提供电力,而且,当其中的一个电源出现故障时,另一个电源就得自动地承担起整个系统的电力供应,以确保系统的正常运行。这样必须保证每一个供电系统都有独自承受整个负载的供电能力。
通常,在配有双电源系统的系统中,也可能配置其他的一些冗余部件,如网卡、I/O卡和磁盘等。所有这些增加的冗余设备也都消耗额外的功率,同时,也产生了更多的热量。因此,必须考虑系统的散热问题,保证系统的通风良好。
2.110设备和通道
从内存向磁盘或其他的存储介质传输数据是一个很复杂的过程,而且,这个过程是非常频繁的。因此,这些存储设备故障率普遍都比较高。
使用冗余设备和I/O控制器可以防止出现设备故障而丢失数据,常用的方法是采用冗余磁盘对称镜像和冗余磁盘对称双联。前者是接在单个控制器上的,后者是连接在冗余控制器上的。双联较镜像具有更高的安全性能和处理速度,这是因为额外的控制器可以在系统的磁盘控制器发生故障时接替工作,并且两个控制器可以同时读入以提高系统的性能。
3.主处理器
在网络系统中,虽然主处理器不会经常发生故障,但是,主处理器一旦发生故障,整个网络系统将处于崩溃状态。因此,为了提高系统的可靠性,在系统中可增加辅助CPU。辅助CPU必须能精确地追踪原CPU的操作,同时又不影响其操作。实现的方法是在辅助处理器中应用镜像技术跟随原处理器的状态。如果原处理器出了故障,辅助处理器在内存存储器中已装载了必要的信息并能接过对系统的控制权。
对称多处理器在某种程度上提供了系统的容错性。例如,在双CPU机器中,如果其中一个CPU发生了故障,系统仍能在另一个CPU上运行。
(六)存储系统的冗余(www.xing528.com)
存储子系统是网络系统中最易发生故障的部分。下面介绍实现存储系统冗余的最为流行的几种方法,即磁盘镜像、磁盘双联和冗余磁盘阵列。
1.磁盘镜像
磁盘镜像是常见的,也是常用的实现存储系统容错的方法之一。使用这种方法时两个磁盘的格式需相同,即主磁盘和辅助磁盘的分区大小应当是一样的。如果主磁盘的分区大于辅助磁盘,当主磁盘的存储容量达到辅助磁盘的容量时就不再进行镜像操作了。
使用磁盘镜像技术对磁盘进行写操作时有些额外的性能开销。只有当两个磁盘都完成了对相同数据的写操作后才算结束,所用的时间较一个磁盘写入一次数据的要长一些。利用磁盘镜像技术对一个磁盘进行读数据操作时,另一个磁盘可以将其磁头定位在下一个要读的数据块处,这样,比起用一个磁盘驱动器进行读操作要快得多,其原因是等待磁头定位所造成的时间延迟减少了。
2.磁盘双联
在镜像磁盘对中增加一个I/O控制器便称为磁盘双联。由于对I/O总线争用次数的减少而提高了系统的性能。I/O总线实质上是串行的,而并非并行的,这意味着连在一条总线上的每一个设备是与其他设备共享该总线的,在一个时刻只能有一个设备被写入。
3.冗余磁盘阵列
冗余磁盘阵列(RAID)是一种能够在不经历任何故障时间的情况下更换正在出错的磁盘或已发生故障的磁盘的存储系统,它是保证磁盘子系统非故障时间的一条途径。
RAID的另一个优点是在其上面传输数据的速率远远高于单独在一个磁盘上传输数据时的速率。即数据能够从RAID上较快地读出来。
(1)RAID级别。冗余磁盘阵列的实现有多种途径,这完全取决于它的种类、费用以及所需的非故障时间。目前所使用的RAID是以它的级别来描述的,共分7个级别,它们是:0级RAID、1级RAID、2级RAID、3级RAID、4级RAID、5级RAID和6级RAID。
0级RAID并不是真正的RAID结构,没有数据冗余。RAID0连续地分割数据并并行地读/写于多个磁盘上,因此具有很高的数据传输率。但RAID0在提高性能的同时,并没有提供数据可靠性,如果一个磁盘失效,将影响整个数据。因此,RAID0不可应用于数据可用性要求高的关键应用。
1级RAID系统是磁盘镜像。RAID1通过数据镜像实现数据冗余,在两对分离的磁盘上产生互为备份的数据。RAID1可以提高读的性能,当原始数据繁忙时,可直接从镜像复制中读取数据。RAID1是磁盘阵列中费用最高的,但提供了最高的数据可用率。当一个磁盘失效时,系统可以自动地切换到镜像磁盘上,而不需要重组失效的数据。
从概念上讲,RAID2同RAID3类似,两者都是将数据条块化分布于不同的硬盘上,条块单位为位或字节。然而RAID2使用称为“加重平均纠错码”的编码技术来提供错误检查及恢复。这种编码技术需要多个磁盘存放检查及恢复信息,使得RAID2技术实施更复杂。因此,在商业环境中很少使用。
3级RAID系统在4个磁盘之间进行条状数据写入,它有专用的校验磁盘,即校验信息写入的第5个磁盘。在这类系统中,如果其中的一个磁盘损坏,可以将一个新的磁盘插入RAID插槽中,然后可以通过计算其余3个磁盘和校验磁盘上的数据重新在新的磁盘上建立数据。
4级RAID系统同RAID2、RAID3一样,RAID4、RAID5也同样将数据条块化并分布于不同的磁盘上,但条块单位为块或记录。RAID4使用一块磁盘作为奇偶校验盘,但每次写操作都需要访问奇偶盘,成为提高写操作效率的瓶颈,在商业应用中很少使用。
5级RAID系统没有单独指定的奇偶盘,而是交叉地存取数据及奇偶校验信息于所有磁盘上。在RAID5上,读/写指针可同时对阵列设备进行操作,提供更高的数据流量。RAID5更适合于小数据块,随机读写的数据。RAID3与RAID5相比,主要的区别在于RAID3每进行一次数据传输,需涉及所有的阵列盘。而对于RAID5来说,大部分数据传输只对一块磁盘操作,可进行并行操作。在RAID5中有“写损失”,即每一次写操作,将产生4个实际的读/写操作,其中两次读旧的数据及奇偶信息,两次写新的数据及奇偶信息。
6级RAID系统与RAID5相比,增加了第二个独立的奇偶校验信息块。两个独立的奇偶系统使用不同的算法,数据的可靠性非常高。即使两块磁盘同时失效,也不会影响数据的使用。但需要分配给奇偶校验信息更大的磁盘空间,相对于RAID5有更大的“写损失”。RAID6地写性能非常差,较差的性能和复杂的操作使得RAID6很少使用。
(2)校验。在上述几种RAID实现方法中除1级RAID和0级RAID系统不用校验外,其余都采用了校验磁盘。冗余磁盘阵列系统中使用异或算法建立写到磁盘上的校验信息。它是通过硬件芯片而不是处理存储空间来完成的。因此,具有相当快的计算速度。
校验的主要功能是当系统中某一个磁盘发生故障需要更换时,使用校验重建算法由其他磁盘上的数据重建故障磁盘上的数据。
RAID控制器采用校验相类似的方法,可以在插入RAID插槽中的新的替换磁盘上重建丢失的数据,这种方法称校验重建。
校验重建是一种复杂的过程,重建进程需要记住它被中断时已经重建的磁道,记住这些磁盘都是同步运转的,写入操作必须同步进行。如果这时有新的数据需要更新写入磁盘,情况就会变得复杂。校验重建在重建开始时将会导致系统性能的大幅下降。
(3)设备更换。RAID系统提供两种更换设备的方法:热更换和热共享。
热更换指在冗余磁盘阵列接入系统给系统提供磁盘I/O功能时,可以从其插槽中插入或拔出设备的能力。热共享设备是指在RAID系统的插槽中的一个额外的驱动器,它可以在任何磁盘出现故障时自动地被插入到RAID阵列中去(即热共享)。这种设备常用于安装了多个RAID阵列的RAID插槽中。
(4)RAID控制器。冗余磁盘阵列系统是由多个磁盘组成的一个系统,但是,从宿主主机的I/O控制器来看,RAID系统仿佛是一个磁盘。在RAID系统中还有另一个控制器,它才是真正执行所有磁盘I/O功能的部件,它负责多种操作,其中包括写入操作时重建校验信息和校验重建的操作。RAID系统的很多功能是由该控制来决定的。
冗余的RAID控制器能够提供容错,也能为冗余磁盘阵列系统提供容错的功能。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。