首页> 中国专利> 用浮动校验组提高盘阵列记录系统可靠性的方法及其系统

用浮动校验组提高盘阵列记录系统可靠性的方法及其系统

摘要

用浮动校验组提高盘阵列记录系统可靠性的方法及其系统,属于盘阵列记录系统可靠性技术领域,其特征为:盘阵列系统的校验组是浮动的,当校验组存在一个存储设备失效时校验组降级运行。某个校验组内失效的存储设备数超过1个时,系统就把和失效存储设备位于同一串列即通道上且所在校验组尚未降级的存储设备和当前失效设备相互换,于是,原来即将由某校验组失效而引起的系统失效就转化为两个校验组的降级运行,直到每个校验组的最后失效存储设备数都达到1个时,若再有存储设备失效,则整个系统才失效。相应地给了系统框图。该法的实质是整体最优,它可充分利用系统中的冗余资源进行动态配置,只有当系统冗余资源全部耗尽,系统才失效。

著录项

  • 公开/公告号CN1444140A

    专利类型发明专利

  • 公开/公告日2003-09-24

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN02104070.2

  • 申请日2002-03-08

  • 分类号G06F11/22;

  • 代理机构

  • 代理人

  • 地址 100084 北京100084-82信箱

  • 入库时间 2023-12-17 14:57:04

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2008-05-07

    专利权的终止(未缴年费专利权终止)

    专利权的终止(未缴年费专利权终止)

  • 2005-10-26

    授权

    授权

  • 2003-12-17

    实质审查的生效

    实质审查的生效

  • 2003-09-24

    公开

    公开

  • 2002-07-31

    实质审查的生效

    实质审查的生效

说明书

技术领域

一种用浮动校验组提高盘阵列记录系统可靠性的方法及其系统,属于盘阵列记录系统可靠性技术领域。

背景技术

盘阵列技术(RAID-Redundant Array of Independent Disks)就是采用数据分块和冗余技术把一些小型的廉价存储驱动器组合起来,使其性能超过那些价格昂贵的大存储驱动器。该技术是由美国加州大学伯克利(Berkeley)分校的Patterson、Gibson和Katz在1987年的一篇论文中提出的,同时又提出了几种不同类型的盘阵列结构并分析了其可靠性。以后又出现了许多新的阵列结构和算法,如一维、二维ODDEVEN编码以及RM2双盘容错编码、RS编码等来提高其系统可靠性。但是,对于实时高速连续数据记录系统而言,要求能连续记录80MB/s的数据流达15分钟以上,即数据量大于72GB。该技术方案采用了多个存储设备组成并行记录的阵列。由于记录的数据是实时且不可重复的或者重复的代价太大,所以对阵列系统的可靠性提出了很高的要求。为此要在阵列中采用高效的容错结构,简单易行的容错编码方式来满足高速实时性的要求,以便于硬件实现同时又确保其系统可靠性,于是,我们有针对性地提出了本发明专利申请。

发明内容

本发明的目的在于提出一种用浮动校验组提高盘阵列记录系统可靠性的方法及其系统以满足高速实时地连续记录数据流的要求。其实就是使系统中的校验组不固定,而是根据系统中存储设备的失效情况,随时作动态调整。具体而言,就是当某个校验组有某存储设备失效时系统实行降级运行记录。一旦发生两个存储设备失效,系统就把和上述某存储设备位于同一串列上且所在的校验组尚未失效的存储设备和当前的某失效存储设备相交换。这样,原来由某个校验组内两个存储设备失效所能引起的系统失效就转化为两个校验组的降级运行。依次类推,直至系统中的每个校验组都降级运行。此时,再有存储设备失效,则整个系统才可能失效。一般说来,每个校验组内允许失效的存储设备数为1个,也即系统可以容忍全部N个校验组内最终出现N盘失效,且在浮动校验过程中N个失效盘在通道内的位置是可以任意的,否则系统就会失效。

本发明的用浮动校验组提高盘阵列记录系统可靠性的方法其特征在于:它依次含有以下步骤:

(1)系统自检;

(2)设定通道数N,校验组数M;

(3)设每个校验组最终允许失效的存储设备数为1个;

(4)进行数据记录;

(5)判别是否有失效的存储设备,如有,则判别失效的存储设备的位置(i,j):i为通道序号,j为校验组序号;

(6)判别是否有未降级工作的校验组k,如果没有,则记录系统失效,报警;如果有,则执行下一步骤;

(7)把第j列校验组内失效的存储设备(i,j)与第k列校验组内任一未失效的存储设备互相切换;

(8)第j列、第k列校验组都降级记录;

(9)继续进行记录直到每个校验组的失效存储设备数都已达到1个时,系统记录失效并报警。

本发明的用浮动校验组提高盘阵列记录系统可靠性的系统,其特征在于:它含有输入为流速VH的高速数据流的阵列控制器,输入信号都是阵列控制器输出的流速为VH/N的数据流的N个串列控制器及作数据校验用的第N+1个串列控制器,输入端各与N个串列控制器输出端相连的N行通道M列校验组的存储设备阵列和第N+1行通道的M个校验组,与N+1个串列控制器和阵列控制器双向连接的主控单元。

使用证明:它达到了预期目的。

附图说明:

图1:3通道(串列)4校验组的阵列:

①,初始状态;

②,第2通道、第1校验组的一个存储设备失效;

③,在②的基础上,又有第1通过、第3校验组的一个存储设备失效,

④,在③基础上,又有第3通道、第1校验组的一个存储设备失效;

⑤,第2通道、第1校验组的一个失效的存储设备和第2通道、第2校验组的一个未失效的存储设备互换,使每个通道只有一个存储设备失效,系统降级记录。

图2:阵列式高速连续数据存储系统结构图

图3:数据分割及校验生成方案。

图4:记录系统程序流程示意框图。

图5:记录系统程序流程详细框图。

具体实施方式

在图2中,阵列控制器采用Xilinx公司的FPGA(现场可编程门阵列)芯片XCS30,它的功能是分割降速,产生校验数据,它可把流速为VH的高速连续数据流H分成N路,并把各路数据用“异或”编码产生一路校验数据流,图2中阴影盘上的数据即是同组内其余盘上数据由“异或”产生的校验数据。分割降速后每路数据的流速为VH/N。串列控制器主要由LSILogic公司的总线主控型SCSI(小型计算机系统接口)芯片LSI53C770和Intel公司的嵌入式微处理器实现。串列控制器的主要功能是在主控单元控制下对SCSI硬盘进行控制,把分割降速的数据记录到SCSI硬盘上。每个串列控制器可以挂M个SCSI硬盘,受SCSI总线所限,M≤15。分割降速后的数据进入串列控制器后由它把数据分块后并轮流写到M个SCSI硬盘上,分块的大小是相同的。N+1个串列控制器组成N+1个数据通道,每个通道的控制器控制M个硬盘,整个系统的硬盘数可为M×(N+1)个。同一列号的SCSI硬盘组成一个校验组,每组中有N个数据盘,1个校验盘,主控单元采用Intel公司的MCS-51单片机,其主要功能是根据用户输入信息协调串列控制器及阵列控制器的工作,负责监控系统的运行。

在本实施方式中,记录系统由1个阵列控制器,5个串列控制器,1个主控单元,25个Seagate ST39236 SCSI硬盘组成。数据源为80MB/s的高速数据流,阵列控制器把80MB/s的数据流分割降速为每个通道是20MB/s的数据流。串列控制器把每个通道是20MB/s的数据流记录到硬盘上。

再见图3。本系统工作命令参数的命令格式为,字节0:055H为记录数据,0AAH为读取数据;字节1、2:文件号。两个字节表示所要记录/读取的文件号,依次为高、低字节。

字节3、4:文件扇区数。两个字节表示所要进行的记录/读取文件的起始扇区数,依次为高、低字节。

字节5:分块的大小,01H为128KB,02H为256KB,03H为512KB,04H为1MB。向双单口RAM写入055H,00H,02H,00H,0AFH,04H表示通过串列控制器要进行记录数据,文件号为0002H,文件扇区数为第00AFH,记录数据块为1MB大小。

系统工作步骤及实现浮动校验组功能的步骤见图5。

(1)上电后:各模块(阵列控制器、串列控制器,主控单元和SCSI硬盘)进行自检;

(2)阵列控制器初始化XCS30芯片进行逻辑配置,产生4条分割数据通通和一条校验数据通道,配置成功后向主控单元发中断信号。

(3)串列控制器初始化,通过双端口RAM CY7C136接受主控单元输入的参数:数据通道数N=4,校验数据通道1条,各路挂着的硬盘数M=5,同时,给每个SCSI硬盘编号,从SCSI_ID_0~SCSI_ID_4。每个串列控制器初始化成功后向主控单元发中断信号。主控单元根据不同串列控制器的中断端口向不同串列控制器设置数据通道号:String_ID_0~sString_ID_4。

(4)主控单元向5个串列控制器的双端口RAM写入工作命令参数后并发中断信号通知串列控制器。5路串列控制器接受到工作命令后分别向主控单元发出中断信号。

(5)主控单元向阵列控制器和串列控制器发出中断信号并开始进行数据记录。

(6)系统正常工作,进行记录。阵列控制器分割80MB/s数据流为5路20MB/s的数据流,其中一路是校验数据,每路串列控制器把数据分为大小为1MB的数据块按顺序分配到5个SCSI硬盘上。每路串列控制器上的同样SCSI_ID号的硬盘组成一个校验组。

(7)当某个串列控制器上的SCSI硬盘发生失效,SCSI硬盘将向串列控制器上LSI53C770SCSI协议芯片发出错信息,串列控制软件产生一个中断信号并根据该中断信号了解到失效硬盘的SCSI_ID号,再把该SCSI_ID号写入串列控制器双端口RAM,并产生中断信号通知主控单元。

(8)主控单元接到读串列控制器的中断信号并判断出其String_ID号,从其双端口RAM中取得失效硬盘的SCSI_ID号,把它们记录到主控单元程序的二维数组String_Disk中写成(String_ID,SCSI_ID)。该SCSI_ID号硬盘所在的校验组处于降级记录状态,系统未失效。

(9)判别出又有串列控制器上的SCSI硬盘发生失效,如同步骤(7)、(8),取得新的一组(String_ID’,SCSI_ID’)元素记录到二维数组String_Disk里与保存的元素比较:

当SCSI_ID不等于SCSI_ID’时,表示SCSI_ID’所在的校验组和其他SDSI_ID所在的校验组都只有一个硬盘失效,处于降级记录状态系统来失效,再转到(9);

当SCSI_ID等于SCSI_ID’时,表示String_ID串列控制器和String_ID’串列控制器中的标号相同的硬盘发生失效,如图1中的状态④。如不采取措施,该校验组失效,从而使系统失效。转入下一步骤。

(10)主控单元根据二维数组String_ID里的元素判断出是否存在没有失效的硬盘的校验组。

如果存在,判断出String_ID’串列控制器中没有失效的硬盘的号如图1状态⑤中的String_ID_2、SCSI_ID_2~SCSI_ID_4。取其中最小的硬盘ID号min(SCSI_ID),主控单元向String_ID’串列控制器发出中断通知,String_ID’串列控制器程序里把失效的SCSI_ID’硬盘的ID’号和最小值为min(SCSI_ID)硬盘的ID号互换,使原来有两个硬盘失效的SCSI_ID’所在的校验组将只有一个硬盘失效,而原来没有硬盘失效的号为min(SCSI_ID)所在的组有一个硬盘失效,两个校验组都处于降级记录状态,整个系统可继续进行记录而不失效,转到步骤(9)。

如果存在,没有失效的硬盘的校验组,即每个校验组的失效硬盘数已达到允许值,则转到下一步骤。

(11)系统失效,主控单元向阵列控制器和串列控制器发出中断命令,使其停止工作报警。

4路5校验组改进前后可靠性对照见表1。表1

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号