具有检查点恢复功能的输入/输出装置的制作方法

文档序号:6410831阅读:203来源:国知局
专利名称:具有检查点恢复功能的输入/输出装置的制作方法
技术领域
本发明涉及了适用于具有检查点重新启动功能的计算机系统的一种输入/输出控制方法和一篇制作文章,具体地说,涉及了一种显著改善计算机系统输入/输出过程的控制方法,该方法对第二存储单元进行多路传输时,在获得下一个检查点之前所有的输入/输出过程无需处于等待状态。
近来,计算机系统的普遍使用与日俱增,这就要求计算机系统具有更高的可靠性。为了提高计算机系统的可靠性,产生了检查点重新启动系统。
在传统的、具有检查点重新启动系统的计算机系统中,在执行一个过程时周期性地获取检查点,在系统出现故障时,从某个获得的检查点处重新启动这个过程,以便从故障中得以继续执行,从而保持过程的主存状态、重新启动状态和某个输入/输出单元(如,一个磁盘中的内容)相一致,有必要执行一个固定的输入/输出请求,并确保发出,既使过程复后也是如此。基于这个原因,一般而言,既使在该输入/输出请求发出后,直到下一个检查点过程开始,这个执行被保留了起来,并且在检查点过程完全完成后,执行该输入/输出请求。
在这种传统的输入/输出控制方法中,除了读操作在主存状态恢复后没有写入读日志外,为了获得一个检查点,至少写操作的发出要比原有的写操作延迟一段时间。
另一方面,在具有容错特点的计算机系统中磁盘通常是多路工作的,这样提高了可靠性。在这种情况下,为了得到数据的可靠性,顺序地,而不是同时地,执行对每一个多路传输磁盘发出的输入/输出请求是必要的。这时操作的原理的解释参见

图1。
其中,文档通过多路传输方法进行管理,即,主文档和影子文档是分别管理的。这些文档可以多路传输到不同的磁盘中,也可以多路传输到同一磁盘的不同逻辑分区中。
如果一个应用程序发出一个写请求(图1中的(1)),文档管理系统向某一设备驱动器发出指令,对主文档进行写操作(图1中的(2))。
设备驱动器通知写操作结束(图1中的(3))之后,文档管理系统对影子文档发出进行写操作的指令(图1中的(4))。
在通知对影子文档写操作完成(图1中的(5))之后,文档管理系统通知应用程序写操作已经完成(图1中的(6))。
因此,对于具有上述检查点机制、文档是多路传输的计算机系统中的写操作的请求,请求的发出在得到检查点之前一直是处于等待状态的,只要对两个多路传输的文档的写操作没有完成,这个逻辑输入/输出请求也就没有完成。出于这个原因,整个处理时间变得长了一些。此时的操作原理的解释参见图2。
例如,如果应用程序发出一个写请求(图2中的(1)),文档管理系统在获得下一个检查点之前一直等待发出这个请求(图2中的(2))。在得到检查点时(图2中的(3)),文档管理系统向设备驱动器发出指令,执行等待的对主文档写操作的请求(图2中的(4))。
在这以后的过程和图1中的过程相同,即设备驱动器通知写操作结束(图2中的(5)),文档管理系统发出指令对影子文档进行写操作(图2中的(6))。当得到对影子文档写操作结束的通知后(图2中的(7)),再通知应用程序写操作已结束(图2中的(8))。
换句话说,对于对第二存储单元的写请求,由于图2中的(2)所示的处理时间变长,整个系统的响应时间也变得长了一些。
日本专利申请5-30577(USSN No.992219,申请日期1992年12月17日,受让人IBM公司)揭示了一种用于多路传输远程数据的系统和方法。这个系统是DASD(直接存取存储设备)多路传输系统,并且第二盘面处于远程位置。输入数据直接写入主磁盘,数据按每个顺序的检查点分成组,以使写入第二盘面。但是这一系统中的检查点对应于在一系列信息包形成后看作顺序单元进行处理的顺序检查点,因此这些检查点与本发明中所描述的用于恢复系统的检查点是不一样的。换句话说,IBM系统中的检查点用于多路传输数据(为了获得异步传输的信息包在顺序上的匹配)。与此相反,本发明具体实现方法中的检查点用于采用检查点恢复系统的计算机系统中的数据匹配。由于IBM的系统没有采用重新启动系统,检查点的时间间隔要比本发明中的要长一些。
本发明的一个目的在于提出一种输入/输出的控制方法和一篇有关制作的文章,它们显著地提高了计算机系统中的输入/输出处理能力,在对第二存储单元进行多路传输时;在获得下一个检查点之前无需使所有有输入/输出过程处于等待状态。
本发明提出的输入/输出控制方法适用于多路传输和管理多存储地点中单一数据的计算机系统,该计算机系统包括有周期性地获取检查点的检查点获取装置,使得在过程被中断时能够重新启动这个中断了的过程。这一输入/输出控制方法的特点是计算机进行分步控制,第一步,在接收到对第二存储单元写数据的请求时,确定第二存储单元中多个存储位置作为数据写操作的地点;第二步,无需等待下一个检查点,将接收到的请求发出,在第二存储单元中已确定的多个存储位置上将数据写入至少一个或多个存储位置中;第三点,在获得下一个检查点之后,不是在第二步中发出的写数据的地点的指定地点上执行数据操作;第四步,当过程从获得的前一检查点重新启动时,通过其它地点中的数据恢复已写入数据的地点中的数据。
例如,在本发明中,在接收到数据写请求时,不等待得到下一个检查点,在多路传输到主文档和影子文档这两个文档中的主文档中执行数据写操作。另一方面,在对主文档写操作完成并获得下一个检查点之后,在影子文档中执行写操作。
一般而言,由于获得检查点的时间间隔比在主文档中执行写操作所需的时间要小得多,在绝大多数情况下,在主文档执行写操作过程中即可获得下一个检查点。因此,对影子文档执行写操作几乎不需要等待,由此大大地减少了执行写操作所需的时间。
下面考虑从前一个检查点重新启动由于故障造成中断的过程这一情况。
在本发明中,对于这一情况是通过影子文档中的数据恢复写入主文档的数据的,因此不会发生任何不一致。其结果可以避免在获得下一个检查点之前输入/输出过程处于等待这一问题,进而大大改善了处理输入/输出过程的能力。
此外,在适用于组成奇偶位组并管理多个第二存储单元中单一数据的计算机系统的输入/输出控制方法中,计算机系统应包括获取检查点的装置,周期性地获取检查点,以在某个过程被中断时重新启动这个被中断的过程,这种输入/输出控制方法的特点是计算的分步控制第一步,在接收到对第二存储单元的写数据请求时,计算更新后的奇偶位;第二步,不等待下一个检查点,执行对第二存储单元的写数据的请求;第三步,在获得下一个检查点后执行第一步中计算的奇偶位的写操作过程;第四步,在从获得的前一检查点处重新启动该过程时,用根据奇偶位计算出的数据恢复在第二步中写入的数据。
在本发明中,当接收到数据写请求时,不等待获得下一个检查点就执行该数据写过程,但是要更新的奇偶位的写操作过程是在数据写过程完成并获得下一个检查点之后执行的。
在这种情况下,由于得到检查点所需比起对文档进行写操作所需的时间来足够小,在大多数情况下在对文档进入写操作时就可得到下一检查点。因此,当写入奇偶位时,不需要等待时间,从而大大地减小了处理时间。
下面考虑重新开始一个由于故障等原因从上一检查起被中断了过的情况。
在这种情况下,由于在本发明中写入文件的数据由奇偶位进行恢复,因而不存在任意不匹配。这样可避免I/O过程在得到下一检查点之前必须等待的情形,从而可迅速提高处理能力。
另外,在适用于组成奇偶位组并管理多个第二存储单元中的信息的计算机系统的输入/输出控制方法中,所述计算机系统包括获取检查点的装置,周期性地获取检查点,以在某个过程被中断时重新启动的这个被中断的过程,这个输入/输出控制方法的特点是计算机的分步控制第一步,在接收到对第二存储单元的数据写请求时,计算更新后的奇偶位;第二步,不等等获得下一个检查点就执行第一步中计算出的奇偶位的写操作过程;第三点,在获得下一个检查点后对第二存储单元执行数写操作;第四步,当从获得的前一个检查点处重新启动过程时,根据第二存储单元中的数据计算出的奇偶位恢复第二步中定入的奇偶位。
在本发明中,在接收到数据写请求时,数据写过程的执行是与要更新的奇偶位相关联的,不等待下一个检查点就执行奇偶位写过程,而数据写过程是在奇偶位写过程结束并获得下一个检查点后执行的。
在这种情况下,由于获得检查点的时间间隔比进行奇偶位写操作所需要的时间要小,在绝大多数情况下,在奇偶位写过程中可以获得下一个检查点。因此,在写数据时不需要等待,因此大大地减少了处理时间。
这里探讨了从前一个检查点重新启动由于计算机故障等造成中断的过程这一情况。
对于这种情况,由于本发明是用文档中的数据来恢复奇偶位的,所以没有任何的失配。其结果可以避免在获得下一个检查点之前,输入/输出过程处于等待的现象,因此显著地改善了处理能力。
如上所述,根据本发明,在具有检查点重新启动功能的计算机系统中,通过对多地点存储的单一数据的管理,保证了数据的可靠性,向检查点造成的输入/输出请求发出的延迟得到了减少,并且显著地提高了计算机系统在一般操作中的性能。
在下面的描述中,可以发现本发明的其他一些目的和优点,其中的一部分可以从叙述中得到,也可以从本发明的实践中得以领会。特别地,从下面所给出的实施方法及其组合中可以实现和获得本发明的目的与优点。
附图是与技术说明密切相关的组成部分,阐明了本发明的具体实现方法附图和前面所述的一般性描述以及下面将给出的具体实施方法的详细描述一起作为本发明原理的解释。
图1解释了传统计算机系统中发送输入/输出的操作。
图2也解释了传统计算机系统中发送输入/输出的操作。
图3是一个方框图,给出了本发明第一个实施例的计算机系统的一个例子。
图4是一个功能框图,给出了本发明第一个实施例的计算机系统的概要组成。
图5A和5B是两个流程图,解释了第一个实施例的计算机的操作步骤。
图6解释了第一个实施例的计算机系统的操作原理。
图7A和7B是两个流程图,解释了本发明第二个实施例的计算机系统的操作步骤。
图8A和8B是两个流程图,解释了第二个实施例的计算机系统的操作步骤。
图9A和9B是两个概念示意图,解释第三等级和第五等级的RAID(冗余阵列磁盘机)。
下面将阐述由附图所示的本发明的具体实施例。(第一实施例)图3是一个框图,给出了第一实施例的计算机系统的一个例子。如图所示,计算机系统由CPU(中央处理器)31、主存37、磁盘驱动器34和35、控制磁盘驱动器的磁盘控制器39和41、和连接上述部件的系统总线35组成。由图5A、5B、7A、7B、8A和8B所示的程序存储在主存37中。在图3中的CPU个数为1,但也可以是多个CPU。
图4是本发明第一实施例的计算机系统概要组成框图。
在这一实施例中,计算机系统完全由操作系统2控制,而操作系统2是由文档管理系统21、设备驱动器22和检查点管理系统23组成。
文档管理系统21管理磁盘3a和3b中的文档。设备驱动器22向磁盘3a和3b输入/输出数据。检查点管理系统23管理检查点的获取。
在本实施例中的计算机系统中,当一个应用程序1发出一个写数据的请求时,这个写请求送往文档管理系统21。接收到这个写请求的文档管理系统21确定存储地点和怎样将数据传输到数据存储地点。此处,数据将多路传输并存储到磁盘3a(主磁盘)和磁盘3b(影子磁盘)。
接着,文档管理系统21向设备驱动器22发出一个指令,这样数据写入主磁盘3a。接收这个指令的设备驱动器对磁盘3a执行这个写操作过程。
在大多数情况下,在写过程的执行过程中可以获得一个检查点,并由检查点管理系统23将检查点通知给文档管理系统。
当设备驱动器22完成对磁盘3a的数据写过程时,驱动器22通知文档管理系统写过程的结束。接收到来自检查点管理系统23获得检查点的信息的文档管理系统21命令设备驱动器22对影子磁盘3b写数据。最后,当文档管理系统21完成对影子磁盘的写操作过程时,文档管理系统通知应用程序1写操作过程的完成。
在从故障前的那个检查点重新启动写操作的情况中,文档管理系统21命令设备驱动器22从磁盘3b中读出有关数据,用影子磁盘3b中的数据恢复主磁盘3a中的数据。
下面阐述由图5A和5B给出的实现方法中的操作步骤。
图5A是正常操作过程的流程图。
在接收到来自应用程序1的写请求(步骤A1)后,文档管理系统21命令设备驱动器22对主磁盘3a写数据,接收到这个指令的设备驱动器22对磁盘3a执行写操作(步骤A2)。
当文档管理系统21完成写操作过程(步骤A3中的Y)时,文档管理系统21判断是否获得了检查点(步骤A4)。当获得检查点(步骤A4中的Y)时,文档管理系统21命令设备驱动器22对影子磁盘3b写数据(步骤A5)。当该写操作过程结束(步骤A6中的Y)时,文档管理系统通知应用程序1写操作过程的完成(步骤A7)。
图5B是从故障前的那个检查点重新启动写操作的操作过程的流程图。
在这种情况中,文档管理系统21命令设备驱动器22从磁盘3b中读出数据(步骤B1)。当影子磁盘3b的读操作过程结束后(步骤B2中的Y),读出的数据再次写入主磁盘3a中(步骤3到步骤4)。最后主磁盘3a中的数据得到了恢复。
图6给出了该实施例的操作原理。
例如,当应用程序发出写操作请求时(图6中的(1)),文档管理系统不等待获得下一个检查点就向设备驱动器发出写主文档的指令(图6中的(2))。
由于获得检查点的时间间隔比写主文档过程所需时间要小,所以在绝大多数情况下在写主文档过程期间能够获得下一个检查点(图6中的(3))。当设备驱动器通知写操作完成时(图6中的(4)),文档管理系统向设备驱动器发出指令对影子文档写数据(图6中的(5))。当写影子文档结束被通知后(图6中的(6)),文档管理系统通知应用程序写操作的结束(图6中的(7))。
这样就避免了在获得下一个检查点之前,输入/输出过程总是处于等待状态的现象。此外,当使用影子文档中的数据恢复主文档中的数据时,不会产生任何不一致。(第二实施例)下面说明图7A和7B给出的第二实施例。
该实施例的处理过程与第一实施例相同。但是在第一实施例中用到了主文档和影子文档,因此磁盘是多路传输的,并由此获得可靠性。与此相反,在第二实施例中,可靠性是通过包括多个磁盘3a和3b中组成的奇偶位组而获得的。例如,具体地说,在图9A所示的第三等级的冗余阵列磁盘组(RAID3)中,输入数据分解为位元,存储在多个硬盘(HDDs)中。奇偶位用于错误检验码。对于图9B所示的第五等级的冗余阵列磁盘组(RAID5),输入数据交错存储在磁盘的扇区中,每一个磁盘都是独立操作的,这样可以并行地处理写指令。奇偶位分散地记入多个硬盘中。
下面介绍如图7A所示的具有上述布局的本实施例的操作过程。
图7A是正常操作过程的流程图。
当文档管理系统21接收到来自应用程序1的写操作请求(步骤C1)时,文档管理系统21计算要更新的、通过一种已知的方法在写数据后得到的奇偶位(步骤C2)。然后,文档管理系统21命令设备驱动器22写数据,接收到这个命令的设备驱动器22执行数据写操作过程(步骤C3)。
当写操作过程完成时(步骤C4中的Y),文档管理系统21判断是否获得了检查点(步骤C5)。在获得检查点后(步骤C5中的Y),文档管理系统指示设备驱动器写奇偶位(步骤C6)。当写操作过程结束时(步骤C7中的Y),文档管理系统21通知应用程序写操作过程的完成(步骤C8)。
图7B中的流程图给出了从故障前的那个检查点重新启动写操作的操作过程。
在这种情况下,文档管理系统21根据步骤C2计算的奇偶位和步骤C3写入的数据,在写操作之前用已知的方法进行数据的计算(步骤D1)。然后,将计算后的数据重新写入步骤C2所执行的写操作的地点,这样该数据得到了恢复。
结果,和第一实施例相类似,避免了在获得下一个检查点之前,输入/输出过程处于等待的现象。其次,由于数据是通过奇偶位恢复的,所以不会产生任何的不一致。
将写数据和写奇偶位相交换,也可以取得同样的效果。
即如图8A所示,这里数据写过程是在奇偶位写过程完成之后执行的(条件是获得了下一个检查点),如图8B所示,当从前一个检查点重新启动时,原有的奇偶位根据步骤E2中用已知的方法计算的奇偶位,和步骤E6中写入的数据,用已知的方法得以恢复,步骤E4中宣入的奇偶位被已恢复的奇偶位所替代(步骤F2和F3),这样数据就可被恢复了。
此外,在上述的实现方法中,写主文档和影子文档的时序控制、写数据和写奇偶位的时序控制可以由文档管理系统进行,也可以由设备驱动器进行。
对于本领域的专业技术人员很容易发现本发明的其他优点和改进。由于本发明在其广度上并不限定于这里给出和阐明的特定的细节、典型的设备、和图例,因此在不违背所附的权利要求或与其相当的陈述中所定义的基本发明构思的精神和范围,可以做出各式各样的修改。
权利要求
1.一种用于多路传输和管理多个存储地点中单一数据的计算机系统的输入/输出控制方法,所述计算机系统包括能够周期性地获得用于在过程被中断后能重新启动该过程的检查点的检查点获取装置,所述输入/输出控制方法,包括如下步骤在接收到对第二存储单元写数据的请求后,确定(图5A)第二存储单元中多个地点作为写数据的地点;下等待下一个检查点,将接收到的数据写请求发送给(图5A)第二存储单元中已确定的多个存储地点中至少一个或多个地点;对这些地点,不是在获取下一个检查点之后在发出接收到的请求步骤中执行数据写的地点,执行(图5A)写操作过程;由于系统故障写过程被中断后,写过程从获得的前一个检查点处重新启动时,通过其它地点的数据恢复(图5B)在发出已接收到的写请求步骤中写操作过程执行地点中的数据。
2.一种用于构成奇偶位组和管理多个第二存储单元中单一数据的计算机系统的输入/输出控制方法,所述计算机系统包括有为了在过程被中断后能够重新启动被中断了的过程而周期性地获取检查点的检查点获取装置,所述输入/输出控制方法包括如下步骤在接收到对第二存储单元写数据请求后,在计算更新后的(图7A中的C2)奇偶位;不等待下一个检查点,对第二存储单元发出(图7A中的C3)数据写请求;在获得下一个检查点后,发出(图7A中的C6)在计算步骤中计算出的奇偶位的写请求;并且在由于系统故障过程被中断后,从获得的前一个检查点处重新启动该过程时,通过奇偶位计算的数据恢复(图7B)在发出接到写请求步骤中写入的数据。
3.一种用于构成奇偶位组和管理多个第二存储单元中单一数据的计算机系统的输入/输出控制方法,所述计算机系统包括有为了在过程被中断后能够重新启动被中断了的过程而周期性地获取检查点的检查点获取装置,所述输入/输出控制方法包括如下步骤在接收到对第二存储单元写数据请求后,计算(图8A中的E2)更新后奇偶位;不等待下一个检查点,对第二存储单元发出(图8A中的E3)计算步骤中计算出的奇偶位写请求;在获得下一个检查点后,向第二存储单元发出(图8A中的E6)数据写请求;并且在由于系统故障过程被中断后,从获得的前一检查点处重新启动该过程时,通过根据第二存储单元中的数据计算出的奇偶位,恢复(图8B)发出接收到的请求步骤中写入的奇偶位。
4.一种制成品,包括具有计算机可读的程序代码设备的可用于计算机的媒介,该媒介使得计算机为重新启动被中断的过程而周期性地获得检查点,计算机系统复制和管理多存储地点中的单一数据,上述制成品中的计算机可读的程序代码设备包括在接收到对于第二存储单元的数据写请求时使计算机在第二存储单元中指定多个位的计算机可读程序代码设备(图5A),使得计算机不等待下一个检查点就将接收到的数据写请求发送给第二存储单元中至少一个或多个已分配的地点的计算机可读的程序代码设备(图5A),使得计算机不等待下一个检查点就将接收到的数据写请求发送给第二存储单元中至少一个或多个已分配的地点的计算机可读的程序代码设备(图5A);使得计算机在获得下一个检查点在将所接收的数据写请求发送给第二存储单元中已分配地点中剩余的地点的计算机可读的程序代码设备(图5B);以及使得计算机在由于计算机系统故障致使过程中断后从获得的前一个检查点处用剩余地点中的数据恢复至少一个或多个地点中数据的计算机可读的程序代码设备(图5B)。
5.一种制成品,包括具有计算机可读的程序代码设备的可用于计算机的介质,该介质使得计算机为重新启动被中断的过程而周期性地获得检查点,计算机系统在多个第二存储单元中构成管理数据的奇偶位组,上述制成品中的计算机可读的程序代码设备包括使得计算机根据接收的对第二存储单元的数据写请求,在更新数据后计算奇偶位的计算机可读的程序代码设备(图7A中的C2);使得计算机不等待下一个检查点就将数据写请求发送给第二存储单元的计算机可读的程序代码设备(图7A中的C3);使得计算机在获得下一个检查点后,发出计算出的奇偶数据的写请求的计算机可读的程序代码设备(图7A中的C6);以及使得计算机在由于计算机故障造成过程中断后,从获得的前一个检查点处重新启动该过程时,用根据奇偶数据计算出的数据恢复写入的数据的计算机可读的程序代码设备(图7B)。
6.一种制成品,包括具有计算机可读的程序代码设备的可用于计算机的介质,该介质使得计算机为重新启动被中断的过程而周期性地获取检查点,计算机系统在多个第二存储单元中构成管理数据的奇偶位组的,所述制成品中的计算机可读程序代码设备包括使得计算机根据接收对第二存储单元写数据的请求,在更新数据后计算奇偶位的计算机可读的程序代码设备(图8A中的E2);使得计算机不等待下一个检查点就向第二存储单元发出奇偶位写请求的计算机可读的程序代码设备(图8A中的E3);使得计算机在获得下一个检查点后向第二存储单元发出数据写请求的计算机可读的程序代码设备(图8A中的E6);以及使得计算机在由于系统故障使过程中断后,从获得的前一个检查点处,重新启动该过程时,用根据第二存储单元中的数据计算出的奇偶位,恢复已写入的奇偶位的计算机可读的程序代码设备(图8B)。
全文摘要
在本发明中,当接收到来自应用程序的数据写请求时,不等待下一个检查点就将接收到的数据写请求发送给磁盘(主磁盘),并在获得下一个检查点后将数据写请求发送给磁盘(影子磁盘)。当从获得的前一个检查处重新启动一个过程时,(主)磁盘中的数据通过(影子)磁盘中的数据得以恢复。结果,减少了由于检查点造成的输入/输出请求的延迟,由此大大地改善了正常操作时的系统性能。
文档编号G06F11/14GK1156858SQ96122088
公开日1997年8月13日 申请日期1996年10月30日 优先权日1996年1月31日
发明者佐久间毅 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1