具有永久性存储器的可恢复磁盘控制系统的制作方法

文档序号:6410266阅读:183来源:国知局
专利名称:具有永久性存储器的可恢复磁盘控制系统的制作方法
技术领域
本发明是关于一种使用校验点(checkpoint)方法的计算机系统,特别是关于一种磁盘控制系统,它能实现高速磁盘访问以避免伴随校验点方法的处理延迟。
使用校验点方法的计算机系统把对磁盘装置的写操作推迟到获得下一个校验点的时候进行。否则,如果由于故障使计算机系统下一次从最后一个校验点重新启动,磁盘装置便不能恢复到最后一个校验点时的状态。这使系统性能大大降低。
本发明的目的是提供一种可恢复磁盘装置,它不发生伴随校验点方法的处理延迟。
本发明的另一个目的是通过使用永久性存储器来加速磁盘写操作。
根据本发明,前述目标以及其他目标是通过提供执行校验点操作的计算机系统来实现的,如果发生了故障,该系统从最后一个校验点状态重新开始。该计算机系统的组成是一个磁盘装置用于读和存储数据,一个向磁盘装置发出写或读请求的操作系统,一个永久性存储器,在永久性存储器中存储写数据和伴随的写请求的写请求存储装置,以及把被写请求存储装置写入永久性存储器的写数据存入磁盘装置中的磁盘写装置。该磁盘写装置进一步包括一个存储装置,用于根据在上一个校验点之前产生的写请求将写数据从永久性存储器写入到磁盘装置中。
根据本发明的另一方面,还提供了一种控制磁盘访问的方法,其组成步骤是首先把从操作系统到磁盘装置的写数据和伴随的写请求存储到永久性存储器中,第二步是把存储在永久性存储器中的写数据存入磁盘装置,这第二存储步骤包括把在上一个校验点之前产生的写数据从永久性存储器写入磁盘装置中。
本发明把操作系统要求的写数据存到永久性存储器中。本发明还把执行上一个校验点之前产生的写请求所对应的写数据从永久性存储器写入磁盘装置中。
本发明的磁盘控制系统能保证抗故障性。本发明的磁盘控制器避免了由于检验校验点执行情况所造成的处理延迟,从而能改善磁盘访问的等待时间。
从下文中的详细描述,可以清楚本发明的其他目标、特点和优点。然而,应该理解,尽管详细描述和具体实例给出了本发明的最佳实施例,但只是举例说明而已,因为那些精通本门技术的人们可从本发明的描述中清楚地看到,在本发明的精神和范围内可有多种变化和修改。


图1是使用校验点的计算机系统的示意性方框图,该系统中应用了本发明的磁盘控制系统。
图2是一个示意性方框图,显示出一个计算机系统的一个实施例的各个部件,在该系统中的写请求把数据送到一个永久性存储器中。
图3是一个示意性方框图,显示出数据从不确定队列到确定队列的运动。
图4(a)是一个流程图,显示出本磁盘控制系统的写过程。
图4(b)是一个流程图,显示出本磁盘控制系统的校验点操作。
图4(c)是一个流程图,显示出本磁盘控制系统的后台处理。
图5(a)是一个方框图,显示出一个永久性存储器的链式控制结构。
图5(b)是一个流程图,显示出一个磁盘写处理。
图5(c)显示出永久性存储器中的写入数据与写请求结构。
图6和图7的方框图显示出当在计算机系统中发生故障时磁盘控制系统的操作。
图8是一时序图,显示出计算机系统中发生故障时磁盘控制系统的操作。
图9(a)是一个流程图,显示出该磁盘控制系统的恢复序列(1)。
图9(b)是一个流程图,显示出该磁盘控制系统的恢复序列(2)。
图9(c)是一个流程图,显示出该磁盘控制系统的读处理。
现在参考附图解释本发明的一个实施例。
图1(a)是使用校验点方法的一个计算机系统的方框图,对该系统应用了本发明的磁盘控制系统。
当处理器1更新一个主存储器2的内容时,该计算机系统把被更新部分的更新前映象记录到一个日志(log)存储器6中。在校验点把该处理器现场信息及一个高速缓存存储器的内容写入主存储器。从最后一个校验点重新启动数据处理所需要的状态信息被保存在主存储器和日志存储器中。当发生故障时,计算机系统把更新前映象写回主存储器的被更新部分,从而恢复主存储在上一个校验点的状态。在校验点操作的结尾,日志存储器内容被清除。再有,本发明的计算机系统有一个永久性存储器3作为辅助存储器,还有一个磁盘装置4。
图1(b)是本发明的磁盘控制系统的方框图。如图1(b)所示,该磁盘控制系统有一个写请求存储装置11,写请求固定装置12,写请求删除装置13和磁盘写装置14。
当操作系统产生一个向磁盘装置写的请求时,写请求存储装置将写请求及伴随的写数据存入永久性存储器。尽管在这一点上将写请求保持在永久性存储器中,但在下一个校验点之前不能把伴随的数据写入磁盘装置。如果在下一个校验点操作结束之前发生故障,则废弃该写请求与写入数据。下文中我们把在这种状态下存储于永久性存储器中的写请求和数据称作不确定状态。
当下一个校验点操作被执行而无任何故障时,写请求固定装置把永久性存储器中的写请求的状态改变成确定状态。这意味着即使在这种状态改变之后发生了故障,该写请求也肯定地要被执行。
如果在下一个校验点操作之前发生故障,则写请求删除装置删除处于不确定状态的磁盘写请求和伴随的数据。
磁盘写装置根据保持在永久性存储器中的处于确定状态的磁盘写请求去执行一个磁盘写操作。
下面参考图2-9来解释本发明的操作,这些附图是说明本发明一个实施例操作的方框图和流程图。
首先,如图1(a)所示,当从操作系统接收到一个向磁盘装置写的请求时;写请求存储装置把这个写请求及伴随的写数据存入永久性存储器。
如图2描述的那样,永久性存储器有一个不确定队列31和一个确定队列32。在上一个校验点之后收到的写请求及伴随的写数据被存入永久性存储器中的不确定队列。一旦无故障执行了该校验点,在不确定队列中的写请求及伴随的写数据被移送到永久性存储器的确定队列中。
当一写请求被写请求存储装置写入永久性存储器的不确定队列时,磁盘控制系统通知操作系统“写完成”(图4(a)中的S13)。于是操作系统不必等待写请求的实际完成,这一点显著地改善了性能。
下面参考图3解释在校验点执行过程中磁盘控制系统的操作。
假定本计算机系统的校验点是在图2所示状态下执行的。当永久性存储被写数据填满时,校验点是被强迫执行的。磁盘控制系统检验永久性存储器空闲空间的大小。如果永久性存储器的容量低于一个预先确定值,或者在执行计算机系统校验点之后已经过去了一个固定时间,则重新启动来自操作系统的I/O(输入/输出)操作。当校验点正在被执行时,来自操作系统的I/O处理被延迟。
在校验点执行过程中,首先由写请求固定装置把不确定队列中存储的写请求和它们的写数据移到确定队列中(图3及图4(b)中的S15)。这种移动不一定需要整个数据物理上的移动,只是要改变指针。下面参考图5解释控制存于永久性存储器中写请求和写数据的方法。
在校验点之后,磁盘写装置根据确定队列(图(3)和图4(c)中的S17)中所存写请求执行磁盘写操作。建议由磁盘写装置执行的向磁盘装置的写操作根据写请求的优先级和计算机系统的负载正常地执行。
永久性存储器中包含一个不确定队列,一个确定队列,多个请求结构和写数据(参见图5(a))。不确定队列和确定队列有一个控制块(示画出)用于管理请求结构。如图5(a)所示,不确定队列有两个请求结构4和5。如图5(a)所示,确定队列有三个请求结构1、2和3。如图5(a)所示,关于请求结构的控制信息有一个写标志以表明正在向磁盘写数据,还有写入数据和下一个请求结构的指针信息,磁盘号N、扇区号M,以及写数据的总量L,为了把保存在确定队列的写数据写入磁盘装置。写数据的总量为512字节的倍数。例如,写结构3有写数据2×512字节。
当执行了下一个校验点操作时,请求结构3的下一个请求指针信息被改变成指向请求结构4。请求结构5的下一个请求指针信息保持不变。不确定队列的控制块还有一个装置用于管理请求结构4直至下一个校验点操作被执行时为止。在下一个校验点操作被执行之后,不确定队列的控制块不管理请求结构4。
其次,参考图3来解释向磁盘的写操作。磁盘写装置搜索确定队列,找出尚未设置写标志的请求结构(图5(b)中的S100)。磁盘写装置从控制块中逐个得到请求结构号、写数据量、以及请求结构的控制信息。然后磁盘写装置通过确定队列的控制块对尚未设置写标志的请求结构1设置写标志(图5(b)中的S110)。磁盘写装置根据请求结构1将写数据存入磁盘(图5(b)中的S130)。当盘的写过程结束时,磁盘写装置通过控制块从链路中删除请求结构和伴随的数据(图5(b)的S170)。按类似的方式对请求结构2、3、4和5逐个设置写标志。请求结构2、3、4和5的写数据被写入磁盘装置。
这里参考图6-8来解释计算机系统中发生故障的本发明的操作。
如图8所示,一个来自操作系统的磁盘写请求将写请求和写数据A、B和C逐个存入永久性存储器中的不确定队列(图8中的点①)。操作系统从永久性存储器中的不确定队列读出数据C(图8中的点②)。在下一次校验点操作过程中(如图8中所示),在这样的条件下,被存于永久性存储器的不确定队列中的A、B和C链接于一个确定队列(图8中的CKP点)。同样,在上一个校验点之后产生的来自操作系统的磁盘写请求和写数据被链接于不确定队列。
其后,写请求和写D、E及F被逐个链接于永久性存储器的不确定队列中(图8中的点③)。来自操作系统的一个磁盘读请求从永久性存储器的不确定队列中读出数据F并从确定队列中读出数据C。
假定在该校验点之后计算机系统中发生了故障(图8中的故障点)。如图6和8所示,三个写请求6d-6f(D、E、F)被存于不确定队列。也如图6和8所示,三个写请求6a-6c(A、B、C)被存于确定队列中。
在这种情况下,本发明的计算机系统首先把计算机系统恢复到上一个校验点状态(图8中的CKP点)。在恢复过程之后,计算机系统从校验点状态开始重新启动。
当计算机系统被重新启动时,磁盘控制系统由写请求废弃装置废弃全部存于永久性存储器中不确定队列中的写请求6d-6f(图9(a)中的S17)。因为如前所述那样该系统从上一个校验点状态重新启动,故写请求6d-6f会被重新发出。
图7显示出这一恢复处理之后永久性存储器的状态。
另一方面,即使计算机系统的状态转回到上一个校验点,在永久性存储器中的确定队列中存放的写请求6a-6c仍然有效。所以磁盘写请求6a-6c被磁盘写装置正常地存储于磁盘装置中(图9(b)中的S19)。
结果,利用这个可恢复磁盘控制系统,在校验点方法控制下保持了磁盘操作的相容性。此外,能排除根据校验点方法磁盘写的延迟。这样,能改进磁盘访问的等待时间。
接下来参考图8和9解释来自操作系统的读请求。
在这时,磁盘控制系统确定是否存在要从永久性存储器读出的数据(图9(c)中的S21)。如果有要读出的数据(图9(c)中S21的“是”),便从永久性存储器中读出数据(图8中的②和④点以及图9(c)中的S25)。在此之后,这个读处理过程结束。
另一方面,如果没有要从永久性存储器中读出的数据(图9(c)中S21的“否”),磁盘控制系统则访问磁盘装置(图9(c)中的S23)。在这一点,推荐从磁盘装置读出的数据能存储于永久性存储器中。
如前面详细描述的那样,当在计算机系统中发生故障时,本发明可能已经把一个写请求存于永久性存储器的确定队列中。在上一个校验点之前产生的写请求被执行。本发明还把一个写请求存于永久性存储器的不确定队列中,在上一个校验点之后产生的写请求在下一个校验点之后执行。例如,即使在计算机系统中发生了电源故障,写请求的信息仍然保留,因为写请求信息被存于永久性存储器中。
本发明的磁盘控制系统放弃那些存于永久性存储器不确定队列中的在上一个校验点操作之后产生的全部写请求和写数据。然而,在确定队列中的数据被写入磁盘装置。这样,即使由于电源故障使计算机系统故障,也会在计算机系统重新引导时将确定队列中的写数据写入磁盘装置。
与处理来自操作系统的写请求同时,在上一个校验点之前产生的写数据被存于磁盘装置。
再有,至于对磁盘的读请求,本发明的磁盘控制系统首先检查所请求的数据是否在永久性存储器中,从而使读请求保持一致性(coherency),恰如同对磁盘的正常访问一样。
结果,本发明的磁盘控制系统能保证计算机系统的故障耐受性。本发明的磁盘控制系统能通过避免由校验点执行过程造成的延迟来改善磁盘访问的等待时间。
依据上述说明,对本发明的多种修正和改变是可能的。所以应该理解,在所附权利要求的范围内,本发明能以不同于这里具体描述的其他方式予以实现。
权利要求
1.周期性执行校验点操作的一种计算机系统,该系统从发生故障之前的上一个校验点重新启动,该系统的组成是用于存储在该系统中要被处理的数据的磁盘装置(4),向磁盘装置发出写请求的操作系统(15)。其特点在于该系统进一步包括用于读和存储数据的磁盘装置;用于向磁盘装置发出写或读请求的操作系统;永久性存储器(3);用于在永久性存储器中存储写数据和伴随的写请求的写请求存储装置(11、图4(a));以及磁盘写装置(14,图4(c)、图5(b)),用于把写请求存储装置存入永久性存储器的写数据存入磁盘装置,该磁盘写装置进一步包括根据上一个校验点之前产生的写请求将写数据从永久性存储器写入磁盘装置的装置。
2.权利要求1的计算机系统,其特点在于该系统还包括这样一个装置(图4(a)中的S13),当发出一个从操作系统向磁盘装置的写请求时,在把写请求和伴随的写数据写入永久性存储器后,该装置向操作系统发出一个“写完成”的通知。
3.权利要求1的计算机系统,其特点在于该系统进一步包括当操作系统向磁盘装置发出一个读请求时,如果在永久性存储器上存在相应数据,则从永久性存储器中读出所写数据的装置(图9(c)中的S25);以及如果在永久性存储器上没有相应数据时从磁盘装置中读出所写数据的装置(图9(c)的S21、S23)。
4.权利要求1的计算机系统,其特点在于该系统还包括写请求废弃装置(13、图9(a)的S17),用于当系统中发生故障时使上一个校验点之后产生的写数据和相应写请求失效。
5.权利要求1的计算机系统,其特点在于写请求存储装置包括一个不确定队列(31)用于存储在上一个校验点之后产生的写请求,以及一个确定队列(32)用于存储上一个校验点之前产生的写请求。
6.权利要求5的计算机系统,其特点在于该系统进一步包括写请求固定(fix)装置(12、图4(b)的S15)用于在执行校验点操作时把存于不确定队列的写数据移至确定队列。
7.权利要求5的计算机系统,其特点在于该写请求存储装置包括将写请求及伴随的写数据存入不确定队列的装置(图4(a)的S10)。
8.权利要求5的计算机系统,其特点在于该磁盘写装置包括将存于确定队列的写数据存入磁盘装置的装置(图4(c)的S17)。
9.权利要求5的计算机系统,其特点在于该系统包括在重新引导该计算机系统时将确定队列中的全部写数据存入磁盘装置的装置(图9(b)的S19)。
10.权利要求5的计算机系统,其特点在于该不确定队列和确定队列包括控制块装置(图5)用于控制每个写数据和伴随的写请求,每个写数据有一个请求结构(图5(a)和(c))用于链接写数据和下一个请求结构。
11.权利要求10的计算机系统,其特点在于该请求结构包括一个写标志(图5(c)用于指示执行了向磁盘装置的写操作)。
12.权利要求11的计算机系统,其特点在于磁盘写装置的组成是检测是否设置了写标志的装置(图5(b)的S100);如果写标志未设置则去设置写标志的装置(图5(b)的S110);根据请求结构信息将确定队列的写数据存入磁盘装置的装置图5(b)的S130);以及当向磁盘装置写入数据完成时删掉该请求结构及伴随的写数据的装置(图5(b)的S150)。
13.控制磁盘访问的一种方法,其组成步骤是首先将从操作系统向磁盘装置的写数据和伴随的写请求存入一个永久性存储器;其次是将永久性存储器中存储的写数据存入磁盘装置,这第二存储步骤包括将上一个校验点之前产生的写数据从永久性存储器存入磁盘装置的步骤。
14.权利要求13的方法,还包括一个通知步骤(图4(a)的S13),该步骤是当从操作系统向磁盘装置发出写请求时,在把写数据及伴随的写请求存入永久性存储器后向操作系统发出“写完成”通知。
15.权利要求13的方法,还包括下列步骤首先,当操作系统向磁盘装置发出读请求时,如果在永久性存储器中存储的写数据中存在被请求的写数据,则从永久性存储器中读取该写数据(图9(c)的S25);以及其次,如果在永久性存储器(3)中存储的写数据中没有被请求的写数据,则从磁盘装置中读出写数据(图9(c)的S21、S23)。
16.权利要求13的方法,还包括一个步骤如果已经发生了一个故障,则使上一个校验点之后产生的写数据及相应的写请求变成无效(13、图9(a)的S17)。
17.权利要求13的方法,这里的永久性存储器包括一个不确定队列(31)用于存储上一个校验点之后产生的写数据及伴随的写请求,以及一个确定队列(32)用于把上一个校验点之前产生的写数据存入磁盘装置,所述方法还包括一个步骤,即当执行校验点操作时,把存于不确定队列的写请求和写数据移到确定队列(12、图4(b)的S15)。
18.权利要求13的方法,这里的永久性存储器包括一个不确定队列(31)用于存储上一个校验点之后产生的写数据及伴随的写请求以及一个确定队列(32)用于把上一个校验点之前产生的写数据存入磁盘装置,这里的第二个存储步骤包括了把确定队列中存储的写数据存入磁盘装置的步骤(图4(c)的S17)。
19.权利要求13的方法,这里的永久性存储器包括一个不确定队列(31)用于存储上一个校验点之后产生的写数据和伴随的写请求以及一个确定队列(32)用于将上一个校验点之前产生的写数据和伴随的写请求存入磁盘装置,所述方法进一步包括一个步骤,即在恢复计算机系统时将确定队列中存储的全部写数据存入磁盘装置。
20.权利要求13的方法,这里的永久性存储器包括一个不确定队列(31)用于存储上一个校验点之后产生的写数据和伴随的写请求,这里的第一存储步骤包括一个步骤,即在发生故障之后废弃不确定队列中的写数据和写请求(图9(a)的S17)。
全文摘要
一个用于包括一个校验点操作的计算机系统的可恢复磁盘控制系统10。当操作系统15产生一个向磁盘装置4的写请求时,写请求及伴随的写数据被存入一个永久性存储器3中。操作系统立即得到通知,如同写请求已被完成那样。向磁盘装置写入数据被推迟到下一个校验点,在下一个校验点执行结尾,该写请求被调度执行。如果在调度该写请求之前发生了故障,则该写请求被废弃。
文档编号G06F3/06GK1145488SQ9610533
公开日1997年3月19日 申请日期1996年5月21日 优先权日1995年6月19日
发明者清水邦保, 平山秀昭 申请人:株式会社东芝
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1