计算机系统、盘装置以及数据更新控制方法

文档序号:6558751阅读:150来源:国知局
专利名称:计算机系统、盘装置以及数据更新控制方法
技术领域
本发明涉及计算机系统中的数据更新控制技术,所述计算机系统包括确保数据完整性的日志文件系统。
背景技术
近年来,随着互联网普及度的增加,涉及公司和客户之间的事务或者公司之间的事务的大多数工作已经使用计算机处理。对事务进行计算机处理需要存储各种数据的存储装置具有高可靠性和高响应性。
RAID系统使两个或更多个盘驱动器能够作为一个逻辑卷,并且提供高可靠性和性能。已经提出了用于增强RAID系统的响应性的其他多种技术(参见,例如,Jpn.Pat.Appln.KOKAI出版物Nos.11-53235和2001-75741)。
另一方面,已经开发出多种技术,所述多种技术用于即使在包括例如应用RAID系统的存储装置以及在所述存储装置中存储数据的主机的计算机系统中发生故障时,也会维持文件系统的一致性。日志系统是这些技术中的一种。
在日志文件系统中,文件系统的元数据将会被更新,更新之前和更新期间的数据内容被记录在日志中。因此,即使在因意外掉电等引起系统异常终止的情况下,当系统重新启动时,在系统异常终止时正在进行更新的数据可以在日志中被指定,并且可以快速恢复到一致的状态。
已经提出了另一种方法,其中在日志中不仅包括元数据而且包括用户数据。在所述方法中,在掉电或者系统异常终止的情况下也可以确保数据的完整性。
在元数据和用户数据都被存储在日志中的方法中,在元数据和用户数据被作为日志写入盘之后,实际的元数据和用户数据才被写入盘。这种二级写入提供原子性单个用户数据写入操作被成功地完成或者被取消而没有改变。如果直接尝试写入实际的元数据和用户数据并且写入失败,那么将不可能恢复由于不完全写入而丢失的数据(例如,用更新数据来改变的数据)。
由于这一原因,在这种方法中,元数据和用户数据在盘中写入两次。因此,存在这样的问题,即,与不使用日志的普通文件系统相比较,对盘的数据传送量增加一倍,并且在该过程中执行了两次写入。在包括上述的Jpn.Pat.Appln.KOKAI出版物Nos.11-53235和2001-75741的现有技术中,已注意到如何满足关于单独写入操作的高可靠性和高响应性的要求。而还没有注意到对整个系统中的写入效率的增强,对所述整个系统应用在日志中存储元数据和用户数据的文件系统。

发明内容
已经考虑到上述问题而做出本发明,并且本发明的目的是提供一种计算机系统、盘装置和数据更新控制方法,其增强记录用户数据作为日志的日志系统的写入性能,同时维持日志系统的高可靠性。
为了实现该目的,根据本发明的一个方面,提供一种包括盘装置和包括日志文件系统的主机的计算机系统,所述日志文件系统在预处理过程中在所述盘装置中记录日志,所述日志包括用于当更新所述盘装置上的数据时确保所述盘装置上的数据完整性的更新数据,所述盘装置包括能够永久存储所述日志的存储单元、被配置在存储单元中存储从主机发送的日志的存储控制单元、以及被配置根据来自主机的指令来执行与存储单元中存储的日志相对应的数据更新的更新单元,而所述主机的日志文件系统包括被配置每次更新所述盘装置上的数据时执行写入与所述更新数据相对应的日志的写入单元、以及被配置向所述盘装置通知执行与被写入的日志相对应的数据更新的指令的通知单元。
根据本发明的另一个方面,提供一种包括盘装置和包括日志文件系统的主机的计算机系统,所述日志文件系统在预处理过程中在所述盘装置中记录日志,所述日志包括用于当更新所述盘装置上的数据时确保所述盘装置上的数据完整性的更新数据,所述盘装置包括转换映射表,所述转换映射表存储盘上的逻辑地址和盘上的物理地址之间的对应关系;存储控制单元,其被配置在盘上的空白区域中存储从主机发送的日志,在所述盘上执行与所述日志对应的数据更新;以及操作单元,其被配置基于来自主机的指令来操作所述转换映射表,以便将存储在盘上空白区域的日志中包括的更新数据改变为实际的更新数据,而所述主机的日志文件系统包括被配置每次更新所述盘装置上的数据时执行写入与更新数据相对应的日志的写入单元、以及被配置向所述盘装置通知执行与被写入的日志相对应的数据更新的指令的通知单元。
本发明可以提供一种计算机系统、盘装置和数据更新控制方法,其增强记录用户数据作为日志的日志系统的写入性能,同时维持日志系统的高可靠性。
本发明的其它目的和优点将在随后的描述中阐述并且将在描述中部分地变得明显,或者可以从本发明的实施中了解本发明的目的和优点。可以通过下文中具体指出的手段和组合而实现和获得本发明的目的和优点。


被并入并构成说明书的一部分的

了本发明的实施例,并且与上面给出的一般描述和以下给出的实施例的详细描述一起用来解释本发明的原理。
图1示出根据本发明的第一实施例的计算机系统的配置;图2是说明由第一实施例的计算机系统执行的提交过程的具体处理过程的流程图;图3示出第一实施例的计算机系统中记录的日志的结构;图4是说明由第一实施例的计算机系统执行的检查点过程的具体处理过程的流程图;
图5是说明由第一实施例的计算机系统执行的用于向盘中写入日志内容的写入过程的具体过程的流程图;图6A和6B是用于说明第一实施例的计算机系统中减少数据传输的方案的示意图;图7是说明由第一实施例的计算机系统执行的恢复过程的具体处理过程的流程图;图8示出第一实施例的计算机系统的修改的配置;图9示出根据本发明的第二实施例的计算机系统的配置;图10示出在第二实施例的计算机系统中使用的转换映射表的条目的示例;以及图11是由第二实施例的计算机系统的盘控制单元执行的与转换映射表相关的过程的流程图。
具体实施例方式
本发明的实施例将参照附图进行描述。
(第一实施例)描述本发明的第一实施例。图1示出根据第一实施例的计算机系统的配置。
主机1包括日志文件系统、应用程序、存储器管理功能、过程管理功能、网络管理功能和用于管理到盘装置的连接的设备驱动器。图1仅仅示出了与第一实施例的描述相关的文件系统高速缓存11和日志文件系统12。
主机1通过总线(例如SCSI总线、光纤信道)或者通过传输媒体与盘装置2连接。主机1将盘装置2识别作为块设备并访问它。
在主机1的存储器上提供文件系统高速缓存11,并且其被用作为存储盘装置2上呈现的数据的高速缓存。日志文件系统12是处理来自应用程序和操作系统的对盘的访问请求的文件系统。一接收到访问请求,日志文件系统12就根据所述访问请求访问文件系统高速缓存11或者盘装置2并且返回响应。
另一方面,盘装置2包括盘控制单元21、非易失性存储媒体22和盘23。盘控制单元21从主机1接收访问命令,例如SCSI命令,访问盘23并且把响应返回到主机1。
非易失性存储媒体22存储包括文件操作和被称作″日志″的数据的控制信息。存储器被用作为存储媒体22,其内容即使在掉电等情况下仍不会丢失。例如,诸如NVRAM的非易失性存储媒体或者具有备用电池的存储器可被用作为存储媒体22。简而言之,可以使用可永久存储数据的任何类型的存储器。在本说明书中,使用术语″非易失性存储媒体″的目的是为了易于理解。
在本实施例的计算机系统中,涉及文件系统的过程不是必需的。因此,下面的描述集中于涉及日志的过程。
涉及日志的过程包括下面的主要过程(1)文件数据或者文件系统元数据的更新过程,(a)当在文件上执行操作时,生成日志并写入盘中(提交过程),(b)将实际数据反映到盘上(检查点过程),以及(2)在发生意外掉电后,基于日志进行文件系统的恢复(恢复过程)。
下面将说明这些过程。
*提交过程提交过程是将作为文件操作结果而生成的盘数据的更新部分写入日志的过程。当完成文件数据或者文件系统元数据的更新时,所请求操作的结果最后由提交过程提交。即使在意外掉电或者系统崩溃的情况下,仍能确保反映出所请求操作的结果。
通常情况下,在不受掉电等影响的非易失性存储媒体中存储更新数据。从而执行提交过程。无需将更新数据反映在真实的盘上。如果数据保持与后面过程操作一致并且不因为掉电等而丢失,则这样的数据可以以任何形式存储。
图2是说明提交过程具体处理过程的流程图。
如果主机1的日志文件系统12接收到对文件进行更新的更新请求(步骤A1),则日志文件系统12首先更新在主机1的存储器上提供的文件系统高速缓存11上的数据(步骤A2)。然后,日志文件系统12指示盘装置2的盘控制单元21存储盘装置2中将由步骤A1的操作而改变的数据作为日志。另一方面,已接收该指令的盘装置2的盘控制单元21在非易失性存储媒体22中存储日志(步骤A3)。日志文件系统12返回响应,其指示完成与步骤A1中的操作有关的操作(步骤A4)。
文件系统高速缓存11中的数据将由随后要描述的检查点过程反映到盘装置2上。与通常的文件系统不同,不用执行在适当的时间把文件系统高速缓存11中的数据输出到盘的这样的过程。
当在完成步骤A1到A3的过程以前可能发生的掉电的情况时,仍不返回指示操作完成的响应,并且对盘上数据的处理没有在完成状态下中断。因此,即使数据处理操作的结果没有反映到盘上,也不会发生问题。另一方面,在从步骤A3过程的完成到检查点过程的完成期间,数据被记录在高速缓存和日志中(稍后描述)。在这种情况下,如果发生掉电,则文件系统高速缓存11上的数据就会丢失。然而,如将要稍后描述的那样,数据本身不会丢失,因为步骤A1的操作通过基于非易失性存储媒体22中存储的日志来更新盘上的数据而被反映到盘装置2中。
图3示出步骤A3中记录的日志的结构。如图3所示,日志包括头部和主体。头部存储关于盘装置2上的位置和存储在日志主体中的数据的大小的记录信息。另一方面,所述主体存储将在盘装置2中存储的块的映象。因此,所述主体由用于存取盘装置2的最小存取单元(例如就盘来说为扇区)的多种大小的数据组成。
*检查点过程检查点过程是用于将操作请求的结果反映到盘装置2的实际位置上的文件系统或者文件的过程。在现有技术的检查点过程中,将文件系统高速缓存11的数据写入盘装置2中,从而使盘装置2中的数据与过程操作的结果相对应。相比之下,在本实施例的计算机系统的检查点过程中,盘装置2的盘控制单元21引用日志的数据并执行向盘中写入。从而,减少了主机1和盘装置2之间的数据传输。这一点体现在本实施例的计算机系统中。
图4是说明检查点过程的具体处理过程的流程图。
开始时,主机1的日志文件系统12检查是否满足启动检查点过程的条件(步骤B1)。启动检查点过程的条件的例子如下。
(1)日志存储区满,不能存储更多的日志。
由于缺少空白空间禁用了对文件系统或者文件的操作请求的执行,因此所述条件是必要的,以在日志区域中创建空白空间。
(2)在文件系统高速缓存中不存在空白空间。
如上面(1)中所述,缺少空白空间禁用了对文件系统或者文件的操作请求的执行。
(3)其它(例如预定时间间隔的流逝)。
从可靠性的角度,需要在例如预定时间间隔内维持盘中的数据的匹配。
如果满足上述启动检查点过程的条件中的任何一个(步骤B1中为是),则日志文件系统12指示盘装置2的盘控制单元21执行检查点过程(步骤B2)。另一方面,当接收到指令时,盘控制单元21将与非易失性存储媒体22中存储的所有日志相对应的内容写入盘23中(步骤B3),并且返回指示检查点过程完成的响应(步骤B4)。
图5是说明步骤B3中执行的将日志的内容写入盘23中的详细处理过程的流程图。
开始时,盘控制单元21检查是否存在仍要处理的未处理日志(步骤C1)。如果存在未处理的日志(步骤C1中为是),则盘控制单元21引用未处理日志的头部并且根据盘23上的数据位置和数据大小将在主体中存储的数据写入盘23中(步骤C2)。只要仍留有未处理日志,盘控制单元21就重复从步骤C1开始的过程。如果部存在未处理的日志(步骤C1中为否),则盘控制单元21记录所有日志中的数据的无效性(步骤C3)。执行此步骤以便完成对于盘的数据匹配过程。
具体而言,通过执行根据此过程的检查点过程,可以减少在主机1和盘装置2之间的数据传输。图6A和6B是说明在本实施例的计算机系统中减少数据传输的方案的示意图。图6A说明根据上面所描述的过程执行检查点过程的情况下的数据传输,而图6B说明根据传统过程执行检查点过程的情况下的数据传输。如图6A和图6B所示,在现有技术中,当要执行检查点过程时,直到某一时间点时已经写入的所有数据需要重新传输。相比之下,在本实施例的计算机系统中,当日志文件系统12只向盘控制单元21传输指示执行检查点过程的通知时它也应该有上述能力。
在这个例子中,日志存储在非易失性存储媒体22中。即使日志存储在盘23中远离实际数据,本发明的计算机系统的数据更新控制方法也可以被有效地实现。
*恢复过程恢复过程是用于恢复由于意外掉电、系统异常终止等导致的对文件系统或者文件的操作过程没有完全完成时的状态的过程。日志文件系统12通过向盘装置2写入作为日志而记录的数据来执行恢复过程。在通常情况下,当在启动时检测到全部过程在上一次操作时没有被正常执行时,执行所述恢复过程。
图7是说明恢复过程的具体处理过程的流程图。
开始时,主机1的日志文件系统12指示盘装置2的盘控制单元21执行恢复过程(步骤D1)。另一方面,在接收到所述指令时,盘控制单元21向盘23中写入对应于存储在非易失性存储媒体22中的所有日志的内容(步骤D2)。然后,盘控制单元21返回指示恢复过程完成的响应(步骤D3)。步骤D2中执行的向盘中写入日志的过程与和检查点过程有关的已经描述的图4中的步骤B3的操作过程相同。
如上面所描述的,根据本实施例的计算机系统,在保证以记录用户数据作为日志的日志系统的高可靠性的同时,能够提高日志系统的效率。
同时,通常情况下,盘装置2包括用于存储要向盘23中写入的数据的高速缓存。为增强盘装置2的可靠性,采取措施来防止由于掉电等导致的高速缓存中数据的丢失并且保护高速缓存中的数据。因此,如图8所示,作为所述实施例的修改,把高速缓存分配在非易失性存储媒体22中是有效的。即,存储日志的非易失性存储媒体22的区域也用作盘23的高速缓存。
在该修改中,应注意到在相同的非易失性存储媒体上存在日志和盘高速缓存这样的事实。该修改意在快速执行向盘23中写入日志的写入过程。更具体地,在通过盘装置2的盘控制单元21写入日志数据的写入过程中,非易失性存储媒体22上的日志数据不会被再次写入盘23,但是日志数据仍然同样地保留在盘高速缓存的区域中。这通过使盘控制单元21更新用于管理盘高速缓存的区域的管理数据(例如,盘高速缓存目录)来实现。
作为盘高速缓存来管理的日志数据经延迟后被写入盘23中,和通常的高速缓存数据被写入盘中的情况下所使用的方式相同。甚至在意外掉电等情况下,盘控制单元21也执行用于在高速缓存中的数据和盘中的数据之间建立匹配的过程,作为用于高速缓存数据的恢复过程。
如上面所述,通过将日志数据转换为盘高速缓存数据,检查点过程可以被高速执行而无需等待用于向盘中实际写入日志数据的过程完成。
(第二实施例)接下来,描述本发明的第二实施例。图9示出根据第二实施例的计算机系统的配置。
在第一实施例的计算机系统中,如果在非易失性存储媒体中提供日志,则它应该有上述能力,并且没有必要将日志作为文件存储在盘23上。另一方面,在第二实施例的计算机系统中,日志作为文件被存储在盘23上,以便应付更新数据的量非常大以至于日志量也变得非常大的情况。因此,在第二实施例的计算机系统中,是否在盘装置2中提供被用作为高速缓存的非易失性存储媒体无关紧要。
首先,给出转换映射表24和使用转换映射表24的第二实施例的计算机系统的盘控制单元21的操作原理的说明。
转换映射表24存储从主机1访问的盘23的地址(逻辑地址)和盘23中的实际存储位置(物理地址)。通常,逻辑地址与物理地址相对应。在转换映射表24包括如图10所示的条目的情况下,位于逻辑地址A1的数据被存储在物理地址B1。因此,至于对逻辑地址A的访问,盘控制单元21实际上执行的是对物理地址B的访问。图11是说明涉及转换映射表24的盘控制单元21的过程的流程图。
盘控制单元21检查是否在转换映射表24中提供逻辑地址(步骤E1)。如果提供了逻辑地址(步骤E1中为是),则盘控制单元21从转换映射表24中获得相应的物理地址,并且确定所述物理地址是要访问的地址(步骤E2)。如果在转换映射表24中不提供逻辑地址(步骤E1中为否),则盘控制单元21确定逻辑地址是要访问的地址(步骤E3)。盘控制单元21执行步骤E2或者步骤E3中所确定的对要访问地址的实际访问(步骤E4)。
以下,将只描述不同于第一实施例的计算机系统的操作的部分。
提交过程、检查点过程和恢复过程所使用的日志数据存储在盘23上提供的日志文件中。这相当于将第一实施例中存储在非易失性存储媒体22中的日志数据移到盘23中的情况。由于保证了盘23上文件的非易失性,因此确保了与上面所描述的情况相同的可靠性。
对于在检查点过程中将反映盘23上的日志数据的过程,第二实施例的计算机系统不同于第一实施例的计算机系统。
在检查点过程中,盘控制单元21在转换映射表24中登记一对逻辑地址以及一个物理地址,所述逻辑地址与头部中存储的有关日志文件的日志数据中的每一个的地址相对应,所述物理地址与盘23上的日志主体中存储的地址相对应(这个过程在图4的步骤B3中执行)。
简而言之,仅通过操作转换映射表24就可以将日志文件上的数据登记为盘上的实际数据,而不需要执行新的数据写入或者复制。从减少主机1和盘装置2之间的数据传输的角度,第二实施例的计算机系统与第一实施例的计算机系统类似。但是可以减少盘装置2中对盘23的数据写入量。
本领域的技术人员将很容易地想到其他优点和修改。因此,本发明在其更广的方面中并不局限于这里所示出和描述的典型实施例和具体细节。因此,在不脱离由所附权利要求及其等价物所定义的主要发明概念的精神和范围的情况下,可以做出多种修改。
权利要求
1.一种计算机系统,包括盘装置和主机,所述主机包括在预处理过程中在盘装置中记录日志的日志文件系统,所述日志包括更新数据以确保当更新盘装置上的数据时盘装置上的数据的完整性,所述盘装置的特征在于包括存储器单元,所述存储器单元能够永久存储日志;存储控制单元,所述存储控制单元被配置将从主机发送的日志存储到所述存储器单元中;以及更新单元,所述更新单元被配置根据来自主机的指令来执行与所述存储器单元中存储的日志相对应的数据更新,以及所述主机的日志文件系统包括写入单元,所述写入单元被配置每当更新盘装置上的数据时,执行向盘装置写入与所述数据更新相对应的日志;以及通知单元,所述通知单元被配置向盘装置通知执行与被写入的日志相对应的数据更新的指令。
2.一种计算机系统,包括盘装置和主机,所述主机包括在预处理过程中在盘装置中记录日志的日志文件系统,所述日志包括更新数据以确保当更新盘装置上的数据时盘装置上的数据的完整性,所述盘装置的特征在于包括转换映射表,所述转换映射表存储盘上的逻辑地址和盘上的物理地址之间的对应关系;存储控制单元,所述存储控制单元被配置在所述盘上的空白区域中存储从主机发送的日志,在所述盘上执行与所述日志对应的数据更新;以及操作单元,所述操作单元被配置基于来自主机的指令来操作所述转换映射表,以便将存储在所述盘上的空白区域中的日志中包括的更新数据改变为实际的更新数据,以及所述主机的日志文件系统包括写入单元,所述写入单元被配置每当更新盘装置上的数据时,执行向盘装置写入与所述数据更新相对应的日志;以及通知单元,所述通知单元被配置向盘装置通知执行与被写入的日志相对应的数据更新的指令。
3.一种盘装置,其特征在于包括存储器单元,所述存储器单元能够永久存储包括更新数据的日志,所述更新数据在数据更新时在预处理过程中进行记录,从而确保数据的完整性;存储控制单元,所述存储控制单元被配置将从主机发送的日志存储到所述存储器单元中;以及更新单元,所述更新单元被配置根据来自主机的指令来执行与所述存储器单元中存储的日志相对应的数据更新。
4.根据权利要求3所述的盘装置,其特征在于还包括分配单元,所述分配单元被配置动态地为对所述日志所存储的存储器单元上的区域的盘访问分配高速缓存区域。
5.一种盘装置,其特征在于包括转换映射表,所述转换映射表存储盘上的逻辑地址和盘上的物理地址之间的对应关系;存储控制单元,所述存储控制单元被配置在所述盘上的空白区域中存储从主机发送的日志,在所述盘上执行与所述日志对应的数据更新,所述日志包括更新数据,所述更新数据在数据更新时在预处理过程中进行记录,从而确保数据的完整性;以及操作单元,所述操作单元被配置基于来自主机的指令来操作所述转换映射表,以便将存储在所述空白区域中的日志中包括的更新数据改变为实际的更新数据。
6.一种用于计算机系统的数据更新控制方法,所述计算机系统包括盘装置和主机,所述盘装置包括能够永久存储数据的存储器单元,所述主机包括在预处理过程中在盘装置中记录日志的日志文件系统,所述日志包括更新数据以确保当更新盘装置上的数据时盘装置上的数据的完整性,所述方法的特征在于包括每次更新数据时,执行向所述盘装置写入与所述数据更新相对应的日志;以及使所述盘装置执行与在存储器单元中的被写入日志相对应的数据更新。
7.一种用于计算机系统的数据更新控制方法,所述计算机系统包括盘装置和主机,所述盘装置包括存储盘上的逻辑地址和盘上物理地址之间的对应关系的转换映射表,所述主机包括在预处理过程中在盘装置中记录日志的日志文件系统,所述日志包括更新数据以确保当更新盘装置上的数据时盘装置上的数据的完整性,所述方法的特征在于包括每次更新数据时,在所述盘装置的空白区域中存储与所述数据更新相对应的日志;以及操作所述转换映射表以便将存储在所述空白区域中的日志中包括的更新数据改变为实际的更新数据。
全文摘要
一种计算机系统包括盘装置(2)和包括日志文件系统(12)的主机(1)。所述盘装置包括能够永久存储日志的存储器单元(22),将从主机发送的日志存储到所述存储器单元中的存储控制单元(21),以及根据来自主机的指令来执行与所述存储器单元中存储的日志对应的数据更新的更新单元(21)。所述主机的日志文件系统包括写入单元和通知单元,所述写入单元在每次更新盘装置上的数据时执行向盘装置写入与所述数据更新相对应的日志,所述通知单元向所述盘装置通知执行与被写入的日志相对应的数据更新的指令。
文档编号G06F11/14GK1848071SQ20061008203
公开日2006年10月18日 申请日期2006年3月24日 优先权日2005年3月24日
发明者友田正宪 申请人:株式会社东芝, 东芝解决方案株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1