专利名称:检测数据块中的损坏的方法和系统的制作方法
技术领域:
本发明涉及用于检测数据块中的损坏(corruption)的方法。在 其他方面,本发明涉及计算机程序产品,其适于执行按照本发明的方 法,并且本发明涉及一种数据处理系统和一种磁带记录装置。
背景技术:
已知在经由磁带记录装置访问的磁带上备份在诸如计算机系统 的硬盘之类的主存储器上存储的数据。使用磁带作为备份存储介质的 主要原因之一是其提供了用于存储大量备份数据的稳定的、可靠的和 较为便宜的选择。作为由与磁带记录装置链接的计算机系统容纳的计算机程序产 品的应用可以经由磁带记录装置的驱动器向磁带记录装置提供要备 份的数据。所述数据通常被提供为数据块序列,其中,每个数据块具 有预先给定的块尺寸,例如256千字节。按照现有技术,由所述应用提供的数据块由磁带记录装置写入到 磁带驱动器,并且仅仅被检查在磁带记录装置侧上的写入误差。所述 应用本身不在写入处理期间检查是否被写入的数据块已经被正确地 写到磁带。这样做是为了保持磁带记录装置工作在流模式中,以便将 写入处理量和对应的磁带记录装置的性能保持在高水平。为了验证数 据块没有被损坏并且被正确地写入到磁带记录装置,所述应用可以再 次读取整个磁带。通常这样做是当磁带记录装置不用于备份操作的时 候,并且可能是相对于当数据已经被提供到磁带记录装置的时间点的 几天、几个星期或者甚至几年后。这从应用视角看不是理想的,因为 当检测到损坏时,可能不再能够获得已经被存储的初始数据。因此需要一种用于检测数据块中的损坏的改进的方法,并且需要
一种改进的数据处理系统,其允许检测损坏,特别是在数据块已经被 写入到磁带后。因此还需要一种改进的磁带记录装置。发明内容按照本发明的 一个实施例,提供了 一种用于检测要被磁带记录装 置存储的数据块中的损坏的方法。所述磁带记录装置包括写入头、读 取头和存储緩沖器。所述磁带记录装置还与服务器系统链接,所述服务器系统执行应用和设备驱动程序(device driver)。所述磁带记录 装置可以被所述应用经由第一任务和第二任务通过所述设备驱动程 序访问。按照本发明的所述方法包括步骤经由第一任务向所述磁带 记录装置发送所述数据块,其中,所述磁带记录装置通过使用所述写 入头向磁带写入所述数据块,其中,所述磁带记录装置通过使用读取 头从磁带读取写入的数据块,其中,所述磁带记录装置在所述存储緩 冲器中存储所重读的数据块。在另一个步骤中,从所述存储緩沖器经 由所述第二任务读取所述重读的数据块。然后在所述应用侧比较所述 数据块和所述重读的数据块,其中,如果所述数据块和所述重读的数 据块的比较显示差别,则检测到损坏。按照本发明的方法特别有益,因为在所述数据块已经被写入到磁 带和提供到第二任务后或多或少地被直接重读,以便它可以被所述应 用检查损坏,而不用重新定位所述磁带(例如反绕)并且不用中断向 磁带的写入。因此,可以基本上实时地检测到数据块中的损坏,而不 影响磁带记录装置的写入处理量(性能)。由此,当在原始数据块和 重读的数据块之间的比较显示差别时,数据块被识别为损坏。所述损 坏可能是由于写入误差或者例如经由存储区域网络(SAN)从服务器的改变。所述第一任务和第二任务是同时或者准同时运行的、由所述应用 产生的任务。所述第一和第二任务可以涉及例如由所述应用产生或者 从所述应用派生的线程、子程序或者(子)进程,如果可以从所述应 用产生线程或者进程,则所述应用到基本上依赖于下层的操作系统。按照本发明的一个实施例,所述方法还包括步骤如果数据块和 重读的数据块之间的比较显示差别,则停止经由第一任务来发送另外 的数据块。然后,经由所述第二任务来向所述第一任务发送第一消息, 其中,所述第一消息指示所述数据块已经被错误地存储。所述数据块 被经由第一任务再次重发到磁带记录装置,以便例如在"一次写入-多 次读取"(WORM)媒体的情况下,可以由重发的数据块改写原始存 储的数据块,或者可以将原始存储的数据块标注为被损坏、被重发和 被附加。在检测到错误地在磁带上存储数据块后将所述数据块替换为 重发的数据块提供了下述优点当要由所述应用存储的所有数据块被 写入到磁带时,所述磁带可以被归档,并且不能再次被重读以检查任 何损坏。按照本发明的一个实施例,响应于接收到输入/输出消息或者中 断信号,通过第二任务从所述存储緩冲器读取所述重读的数据块,其 中,从所述磁带记录装置向所述服务器系统发送所述输入/输出消息或 者中断信号。所述磁带记录装置仅仅可以被一个任务使用。因此,其 控制所述磁带记录装置的情况下,仅仅第一任务与所述磁带记录装置 直接通信。所述磁带记录装置还适于内部检查是否数据块的写入已经 成功和无错误。然后所述磁带记录装置信号通过使用所述输入/输出消 息或者中断信号向所述第二任务以信号通知(signal)它已经提供了 所述存储緩冲器中的数据块。这提供了下述优点 一方面,由所述磁 带记录装置向所述第二任务通知其应当从所述存储緩冲器读出数据, 并且检查数据块损坏,另一方面,仅仅所述第一任务能够写入数据块 和向所述磁带记录装置发送包括指令的消息。按照本发明的一个实施例,所述数据块包括第一数据和第二数 据,其中,所述第二数据提供关于循环冗余校验的信息,其中,在已 经经由所述第 一任务向所述磁带记录装置发送所述数据块之前,所述 应用对于所述第一数据执行所述循环冗余校验,其中,通过对于在重 读的数据块中包括的所述第一数据执行另一个循环冗余校验,所述第
二应用任务产生第三数据,并且其中,通过第二和第三数据的比较来 比较所述数据块和所述重读的数据块。所述应用由此从已经实际创建 所述第 一数据的另 一个应用接收要存储的所述第 一数据。然后对所述 第一数据执行循环冗余校验,由此产生所述第二数据。包括所述第一 和第二数据的所述数据块然后被发送到所述磁带记录装置。然后从所 述重读的数据块提取所述第一数据,并且通过对于所述第一数据执行 循环冗余校验而产生第三数据。如果所述第三数据匹配所述第二数 据,则所述重读的数据块的所述第 一数据匹配由所述另 一个应用原始 接收的所述第一数据,因此,所述第一数据已经被正确地存储和归档 在磁带上。如果所述第三数据与所述第二数据不匹配,则所述重读的 数据块的所述第一数据可能与由所述另一个应用原始接收的所述第 一数据不同,因此必须向磁带重写所述第一数据。按照本发明的 一个实施例,所述数据块被存储在所述服务器系统 上,并且例如经由所存储的数据块和所述重读的数据块的逐位比较, 将所述数据块直接与所述重读的数据块相比较。然后,在已经执行了 所述比较后,删除所存储的数据块。在前一个实施例中所述的循环冗余校验的使用提供了下述优点当经由所述第二数据和所述第三数据 的比较而比较所述数据块和所述重读的数据块时不在应用侧上保存 所述数据块。所述第一数据是应当在磁带上备份的数据。所述第二数 据是写入数据块之前从所述第一数据产生的数据,并且所述第三数据 是在已经重读所述数据块后从所述第一数据产生的数据。因此,检查 所述数据块所需要的信息被保持在所述第二数据中,并且被存储在磁 带上。相反,在服务器侧保持所述数据块提供了优点不是必须执行 确定所述第二和第三数据的步骤。这可以提高服务器系统的整体性 能,因为不需要用于确定所述第二和第三数据的CPU时间。在另一个方面,本发明涉及一种计算机程序产品,其包括计算机 可执行指令,用于执行上述的按照本发明的方法。在另 一个方面,本发明涉及一种用于检测在要由磁带记录装置存 储的数据块中的损坏的方法,其中,所述磁带记录装置包括写入头、
读取头和存储緩冲器。所述磁带记录装置适于接收磁带,并且与服务 器系统链接。所述服务器系统执行应用和设备驱动程序。所述应用能 够经由第 一任务和第二任务通过所述设备驱动程序来访问所述磁带记录系统,并且按照本发明的所述方法包括步骤从所述第一任务接 收所述数据块。而且,所述数据块被使用所述写入头写入到磁带,并 且通过使用所述读取头从所述磁带再次重读。在另一个步骤中,所述 重读的数据块被存储在所述存储緩冲器中,并且被提供到所述第二任 务,而不中断向磁带的应用写入。按照本发明的一个实施例,实现了一种存储緩冲器管理,用于防 止磁带驱动器用完存储緩冲器空间。所述重读的数据块被使用先入先 出(FIFO)算法被置于存储緩冲器中。对于存储緩沖器管理定义了低 和高门限值,其也被表示为低和高水线标志(watermark)。只要重 读的数据块填充存储緩沖器使得存储緩沖器的填充水平未达到低的 水线标志,则所述磁带记录装置以最大的写入速度工作。 一旦填充水 平达到低水线标志,则磁带驱动器开始将写入变慢。这导致磁带记录 装置将较少的重读数据块置入存储緩冲器中,因为如果写入较少的数 据块,则较少的数据块被重读和置于存储緩冲器中。所述磁带记录装 置根据在低和高水线标志之间的存储緩沖器利用率来动态调节其写 入处理量。在存储緩冲器利用率等于所定义的低水线标志的情况下, 所述磁带记录装置(最低程度地)放慢向磁带写入数据块。所述磁带 记录装置越来越放慢向磁带写入数据块,直到在填充水平达到高水线 标志的点达到最大程序的变慢。 一旦存储緩沖器利用率达到所定义的 高水线标志,则所述磁带记录装置可以停止向磁带写入数据块,或者 可以开始从存储緩沖器删除重读的数据块。使用FIFO算法来进行从 存储緩冲器删除重读的数据块(首先删除在存储緩沖器中的最旧的重 读的数据块)。当停止向磁带写入数据块时,所述应用可以验证存储 緩冲器中的所有数据块,但是磁带记录装置的写入处理量受到负面的 影响。相反,当从存储緩冲器删除重读的数据块时,所述应用不能验 证所有的重读数据块,对于写入处理量的影响被最小化。可以由所述应用通过向所述磁带记录装置发送指令来控制当存储緩冲器利用率 达到所定义的高水线标志时所述磁带记录装置如何动作。按照本发明的一个实施例,在第二任务已经从所述存储緩冲器读 取重读的数据块后从所述存储緩沖器删除重读的数据块。由于所述存 储緩沖器应当向所述第二任务提供数据,可以在由所述第二任务读出 重读的数据块后将其删除,以便不浪费在所述存储緩冲器上的任何存 储空间。按照本发明的一个实施例,按照本发明的所述方法包括步骤从 所述第一任务接收指令,其中,所述指令包括关于在所述存储緩冲器 中的数据块的处理的信息。按照本发明的一个实施例,按照本发明的所述方法还包括步骤 通过所述第一任务检测所述磁带记录装置的卸下(dismount);向所 述第二任务以信号通知所述卸下。所述第二任务仅仅是读取已经被置 于所述磁带记录装置的存储緩沖器中的数据块。当不必要时,所述第 二任务不定位磁带驱动器,并且不向所述磁带记录装置发送任何控制 命令。如果不能在存储緩沖器中获得数据,则第二任务等待直到可以 获得数据或者所述磁带被卸下。如果在第一任务和第二任务之间没有 同步,则必须有一种机制来向第二任务以信号通知所述第一任务不向 所述磁带记录装置提供任何其他的数据块,并且可以中止第二任务。 这是通过经由输入/输出消息或者中断信号向所述第二任务以信号通 知磁带的卸下来完成的。在另一个方面,本发明涉及一种计算机程序产品,其包括计算机 可执行指令,用于执行按照本发明的上述方法。而且,本发明涉及一种数据处理系统,其包括磁带记录装置和服 务器系统。所述磁带记录装置包括写入头、读取头和存储緩冲器,所 述磁带记录装置与所述服务器系统链接。所述服务器系统适于执行应 用和设备驱动程序,所述应用能够经由第 一任务和第二任务通过所述 设备驱动程序访问所述磁带记录装置。所述数据处理系统还包括用于 经由所述第一任务向所述磁带记录装置发送数据块的装置,其中,所
述磁带记录装置通过使用写入头向磁带写入所述数据块,其中,所述 磁带记录装置通过使用读取头从磁带读取写入的数据块,其中,所述 磁带记录装置在所述存储緩沖器中存储所重读的数据块。所述数据处理系统还包括用于从所述存储緩冲器经由所述第二任务读取所述重 读的数据块的装置;以及,用于比较所述数据块和所述重读的数据块 的装置,其中,如果所述数据块和所述重读的数据块的比较显示差别, 则检测到损坏。在另一个方面,本发明涉及一种磁带记录装置,其包括写入头、 读取头和存储緩沖器,并且适于接收磁带。所述磁带记录装置与服务 器系统链接,所述服务器系统能够执行应用和设备驱动程序。所述应 用能够经由第一任务和第二任务通过所述设备驱动程序访问所述磁 带记录装置,并且所述磁带记录装置包括接收部件,用于从所述第一 任务接收所述数据块。所述磁带记录装置还包括写入部件,用于通过 使用写入头向磁带写入所述数据块;读取部件,用于通过使用读取头 从磁带读取数据块。而且,所述磁带记录装置包括存储部件,用于 在所述存储緩冲器中存储所重读的数据块;以及用于向所述第二任务 提供所述重读的数据块的装置。
下面,仅仅参见附图通过示例来更详细地说明本发明的优选实施 例,其中图1示出了一种数据处理系统的方框图,图2示出了图解按照本发明的方法的基本步骤的流程图,图3示出了图解按照本发明的方法的基本步骤的流程图,图4示意地示出了如何比较数据块和重读的数据块,图5示出了数据处理系统的另一个方框图,图6示意地示出了存储緩沖器的填充水平的图。
具体实施例方式
图1示出了数据处理系统100的方框图。所述数据处理系统100 包括服务器系统102和磁带记录装置104。服务器系统102还包括微 处理器106、存储设备108、输入设备110和屏幕112。服务器系统 102可以被看作计算机系统,其中,用户能够通过使用输入设备110 (键盘或者指示设备等)和屏幕112交互。微处理器106执行用于磁带记录装置104的计算机程序产品114 和设备驱动程序116。计算机程序产品114和设备驱动程序116都被 永久存储在存储设备108上,并且例如在下述时间被装载到微处理器 106中当上述的用户请求执行将其数据备份在磁带记录装置104上 或者当服务器系统102被启动时。服务器系统102和磁带记录装置104通过连接118而彼此连接。 连接118可以例如是SCSI电缆或者经由诸如存储区域网络(SAN) 的网络的连接。磁带记录装置104包括微处理器120、写入头122、读取头124、 磁带126和存储緩沖器128。写入头122和读取头124被布置成使得 读取头124能够从磁带读取先前被写入头122写入的数据块,而不必 反绕磁带。因此,磁带记录装置104可以工作在流模式中,因此数据 块可以被写入头122写入到磁带126,并且被读取头124随后重读。磁带记录装置104的微处理器120也执行计算机程序产品130, 所述计算机程序产品130永久地被存储在存储设备上(在图1中为了 筒单而未示出),并且当磁带记录装置104启动时,被装载到微处理 器120中。计算机程序产品114可以被看作将数据从服务器系统向磁带记 录装置104迁移的应用。为此,计算机程序产品114使用第一线程132 和第二线程134。因此在此处所述的实施例中,所述第一任务和第二 任务分别涉及第一和第二线程。在运行中,经由第一线程132向磁带 记录装置104发送数据块136。第一线程132向设备驱动程序116发 送所述数据块136。所述设备驱动程序116进一步经由连接118向磁 带记录装置104传送所述数据块136。
计算机程序产品130被适配使得其能够接收数据块136,并且其 控制写入头122来向磁带126写入数据块136。然后由读取头124重 读数据块136,并且所述重读的数据块138被存储在存储緩冲器128 中,从这里使得其能够访问第二线程134。
第二线程134从存储緩冲器128读出重读的数据块138。然后将 数据块136与重读的数据块138相比较。如果在数据块136和重读的 数据块138之间检测到差别,则显示数据块136的损坏。
如果检测到损坏,则第二线程134向第一线程132发送第一消息 140。第一消息140指示数据块136被错误地写入。第一线程132然 后停止发送另外的数据块。数据块136被重发到磁带记录装置104, 第一线程132启动磁带126反绕到已经存储数据块136的位置,并且 在接收到重发的数据块后,旧的数据块136被重写,因此被替换为新 的重发的数据块。在WORM磁带媒体的情况下,不能重写损坏的数 据块。因此,损坏的数据块被无效,并且将重发的数据块附加到磁带 上的数据的末尾。
为了使得第一和第二线程132和134使用磁带记录装置104,设 备驱动程序116必须创建两个独立的设备专用文件,以便每个线程可 以使用与磁带记录装置104相关联的设备专用文件之一。因此,从逻 辑的角度来看,磁带记录装置104可被计算机程序产品114看为两个 磁带记录装置。但是,第二线程134不与磁带记录装置104通信以对 其进行控制。第二线程134仅仅读取被置于存储緩冲器128中的数据 块;其既不将磁带126定位到写入头122,也不将磁带126定位到读 取头124。
图2示出了图解由用于检测要由磁带记录装置存储的数据块中 的损坏的方法执行的基本步骤的方框图,其中,所述磁带记录装置包 括写入头、读取头和存储緩冲器,其中,所述磁带记录装置还与服务 器系统链接,其中,所述服务器系统执行应用,其中,所述磁带记录 装置可以被所述应用经由第一任务和第二任务访问。在步骤200中, 经由第一任务向所述磁带记录装置发送所述数据块。所述磁带记录装
置通过使用所述写入头向磁带写入所述数据块,并且通过使用读取头 从磁带再次读取写入的数据块。重读的数据块被存储在所述磁带记录装置的存储緩冲器中。在步骤202中,从所述存储緩冲器经由所述第 二任务读取所述重读的数据块。在步骤204中,比较所述数据块和所 述重读的数据块,其中,如果所述数据块和所述重读的数据块的比较 显示差别,则检测到损坏。图3示出了图解了由用于检测要由磁带记录装置存储的数据块 中的损坏的方法执行的基本步骤的方框图。所述磁带记录装置包括写 入头、读取头和存储緩冲器。所述磁带记录装置与服务器系统链接。 所述服务器系统执行应用,所述应用能够经由第一任务和第二任务来 访问所述磁带记录装置。在由按照本发明的方法执行的步骤300中, 从所述第一任务接收所述数据块。在步骤302中,所述数据块被使用 所述写入头写入到磁带,并且在步骤304,通过使用所述读取头从所 述磁带读取所述数据块。在步骤306中,所述重读的数据块被存储在 磁带记录装置的所述存储緩沖器中。而且,在步骤M8中,所述重读 的数据块被提供到所述第二任务。图4图解了如何可以比较数据块136和重读的数据块138。为了便于理解所述比较过程,参见图1中所述的部件。重读的数据块138 比较第一数据400和第二数据402。第一数据400引用由计算机程序 产品114初始接收并且应当被备份的数据。计算机程序产品l"对于 第一数据400执行循环冗余校验,由此产生第二数据402。因此,第 二数据402被计算机程序产品114增加。包括第一数据400和第二数 据402的数据块136然后被传送到已经在图1中描述的磁带记录装置。 重读的数据块138因此包括第一数据400和第二数据402。当第一数 据400是要备份的数据时,重要的是,在第一数据400中没有损坏。 为了检查损坏,通过再次对于第一数据400执行如箭头所示的循环冗 余校验(CRC)而产生第三数据404。然后,将第二数据402与第三 数据404相比较。如果第二和第三数据匹配,则数据块136已经被无 错误地写入。否则,数据块136需要被再次写入磁带。 图5示出了数据处理系统500的方框图。所述数据处理系统500 包括服务器系统502和磁带记录装置504。服务器系统502对于服务 器系统502的微处理器执行计算机程序产品506 (所述微处理器在图 5中未示出)。计算机程序产品506包括第一线程5 08和第二线程510。 服务器系统502还在服务器系统502的微处理器上执行设备驱动程序 512。磁带记录装置504包括写入头514、读取头516、存储緩冲器517 和磁带518。磁带的运动方向由箭头指示。所述设备驱动程序512提 供第一设备句柄(handle) 520和第二设备句柄522,其中,第一设备 句柄520与第一设备专用文件名称相关联,其中,第二设备句柄522 与第二设备专用文件名称相关联。所述第 一线程508经由第 一数据句 柄520的第一设备专用文件名称与磁带记录装置504通信,并且所述 第二线程510经由所述第二设备句柄522的第二设备专用文件名称与 所述磁带记录装置链接。设备句柄520与光纤耦合接口 524链接,所述光纤耦合接口 524 经由连接532与磁带记录装置504的光纤耦合接口 528连接。类似地, 设备句柄522与光纤耦合接口 526链接,所述光纤耦合接口 526经由 连接534与磁带记录装置504的光纤耦合接口 530连接。因此,由于 提供了与光纤耦合接口 524和528或者光纤耦合接口 526和530相关 联的两个连接532和534,因此设备驱动程序能够将磁带记录装置504 表示为两个逻辑磁带记录装置。第 一线程508经由设备句柄520和连接532向所述磁带记录装置 发送数据块序列,诸如数据块n 536、数据块n+l 538、数据块n+2 540 和数据块n+3 542。所述磁带记录装置向磁带518写入数据块536........ 542序列。在图5上指示了在磁带518上写入数据块536........ 542的位置。读取头516还重读先前已经被写入头写入的数据块。读取头已经 例如读取了数据块n-4 550、数据块n-3 548、数据块n-2 546和数据 块n-1 544,并且存储在存储緩冲器517上,从那里,它们被第二线程
510读出。将重读的数据块544........ 550中的每一个与原始的数据块相比较。所述比较可以例如基于上面例如在图4的说明中所述的循环冗 余校验。如果例如数据块n-2 546被检测为错误地写入到磁带518,则第 二线程510以信号通知第一线程508,数据块n-2 546没有被正确地存 储。于是所述磁带被反绕。数据块的序列的发送以数据块546再次开 始,后随数据块544、 536、 538、.......图6示意地示出了存储緩沖器的填充水平600的图。所述填充水 平600涉及相对于由存储緩沖器提供的存储空间的总量的被占用的存 储空间量。因此,O百分比的填充水平指示存储緩沖器完全空,而100% 的填充水平指示存储緩冲器完全被填满数据。诸如数据块606、 608沖器中。数据块606、 60^和610中的每个数据块对于提高填充水平 做出贡献。通过使用先入先出算法来存储数据块606、 608和610。第 一门限值602和第二门限值604被定义(它们例如被存储在磁带记录 装置104的存储器件上,从那里,它们可以被计算机程序产品130访 问,参考图1)。只要重读的数据块606、 608和610未填充存储緩沖 器使得填充水平600超过第一门限值602,则所述磁带记录装置以最 大的写入速度操作。 一旦重读的数据块606、 608和610填充存储緩 冲器以至于填充水平600超过第一门限值602,则磁带驱动器开始将 写入变慢。这导致由所述磁带记录装置将较少的另外的重读数据块置 于存储緩冲器中,因为如果较少的数据块被写入,则较少的数据块被 重读和置于存储緩冲器中。所述磁带记录装置根据在第 一和第二门限 值602和604之间的填充水平来动态地调整其写入处理量。如果所述 填充水平等于第一门限值,则所述磁带记录装置(最小程度地)放慢 向磁带的数据块写入,所述磁带记录装置越来越放慢向磁带的数据块 写入。直到在填充水平达到第二门限值604的点达到最大程度的放慢。 一旦所述填充水平达到第二门限值604,则所述磁带记录装置可以停
止向磁带写入数据块,或者可以开始从存储緩沖器删除重读的数据块606、 608和610。使用FIFO算法来进行从存储緩沖器删除重读的数 据块(首先删除存储緩沖器中最旧的重读数据块)。停止向磁带写入 数据块使得所述应用可以验证存储緩沖器中的所有数据块,但是对写 入处理量产生负面影响,因为磁带记录装置需要停止写入数据块。从 存储緩冲器删除重读的数据块的方法不允许所述应用验证所有的重 读数据块,但是对于写入处理量没有影响,因为所述磁带记录装置可 以在任何时间继续向磁带写入。可以由所述应用例如通过向所述磁带 记录装置发送指令来控制当填充水平600达到第二门限值604时所述 磁带记录装置如何动作。
权利要求
1.一种用于检测要被磁带记录装置(104)存储的数据块(136)中的损坏的方法,所述磁带记录装置包括写入头(122)、读取头(124)和存储缓冲器(128),所述磁带记录装置与服务器系统(102)链接,所述服务器系统执行应用(114)和设备驱动程序(116),所述磁带记录装置能够被所述应用经由第一任务(132)和第二任务(134)通过所述设备驱动程序访问,所述方法包括步骤-经由所述第一任务向所述磁带记录装置发送所述数据块,所述磁带记录装置通过使用所述写入头向磁带(126)写入所述数据块,所述磁带记录装置通过使用所述读取头从所述磁带读取所述写入的数据块,所述磁带记录装置在所述存储缓冲器中存储所述重读的数据块(138);-从所述存储缓冲器经由所述第二任务读取所述重读的数据块,而不反绕所述磁带并且不中断写入操作;-比较所述数据块(136)和所述重读的数据块(138),其中,如果所述数据块和所述重读的数据块的所述比较显示出差别,则检测到所述写入错误。
2. 按照权利要求l的方法,所述方法还包括-如果所述数据块和所述重读的数据块之间的比较显示出差别, 则向第一任务发送第一消息,所述第一消息指示所述数据块被错误地 存储;-响应于接收到所述第一消息,停止经由所述第一任务来发送另 外的数据块;-经由所述第一任务来向所述磁带记录装置重发所述数据块; -重写所述数据块,或者使所述数据块无效并且将重发的数据块 附加到磁带上的数据的末尾。
3. 按照权利要求l或者2的方法,其中,在由所述第二任务从 所述磁带记录装置接收到输入/输出消息或者中断信号后,从所述存储 緩沖器读取所述重读的数据块。
4. 按照权利要求1-3中的任何一项的方法,其中,所述数据块 (136)包括第一数据(400)和第二数据(402),所述第二数据提供关于循环冗余校验的信息,其中,在经由所述第一任务(132)向 所述磁带记录装置(104)发送所述数据块之前,所述应用(114)对 于所述第一数据执行所述循环冗余校验,其中,通过由第二任务(134 ) 对于包括在重读的数据块中的第一数据(400)执行另一个循环冗余 校验,所述应用(114)产生第三数据(404),并且其中通过所述第 二和第三数据的比较来比较所述数据块和所述重读的数据块。
5. 按照权利要求1-3中的任何一项的方法,所述方法还包括在 所述服务器系统(102)上存储所述数据块(136),其中,经由所述 存储的数据块和所述重读的数据块的逐位比较,将所述数据块与所述 重读的数据块(138)相比较。
6. —种计算机程序产品,包括计算机可执行指令,用于执行按 照前述权利要求中的任何一项的方法。
7. —种用于检测要由磁带记录装置(104 )存储的数据块(136 ) 中的损坏的方法,所述磁带记录装置包括写入头(122 )、读取头(124 ) 和存储緩沖器(128),所述磁带记录装置与服务器系统(102)链接, 所述服务器系统执行应用(114),所述应用能够经由第一任务(132) 和第二任务(134)来访问所述磁带记录装置,所述方法包括-从所述第一任务接收所述数据块; -通过使用所述写入头将所述数据块写入磁带(126); -通过使用所述读取头从所述磁带读取所述数据块; -将所述重读的数据块(138)存储在所述存储緩沖器中; -向所述第二任务提供所述重读的数据块。
8. 按照权利要求7的方法,还包括 -监视所述存储緩沖器的填充水平;-通过使用先入先出(FIFO)算法在所述存储器中存储所述重读 的数据块(138); -按照所述FIFO算法删除已经存储在所述存储緩沖器冲的重读 的数据块;-如果所述填充水平小于预设的第一门限值,则以最大的写入速 度向所述磁带(126)写入所述数据块(136);-如果所述填充水平超过所述第一门P艮值,但是不超过预设的第 二门限值,则以降低的写入速度来写入所述数据块;-如果所述填充水平超过所述第二门限值,则不用第二任务执行 验证,停止写入所述数据块或者与按照FIFO算法从存储緩冲器删除 重读的数据块相结合继续写入所述数据块。
9. 按照权利要求7的方法,还包括-从所述第一任务接收指令,所述指令包括关于在所述存储緩冲 器中的所述重读的数据块(138)的处理的信息。
10. 按照权利要求7、 8或者9的方法,还包括如果所述第二 任务已经读出所述重读的数据块,则从所述存储緩沖器删除所述重读 的数据块(138)。
11. 一种数据处理系统,包括磁带记录装置(104)和服务器系 统(102),所述磁带记录装置包括写入头(122)、读取头(124) 和存储緩冲器(128),所述磁带记录装置与所述服务器系统链接, 所述服务器系统适于执行应用(114)和设备驱动程序(116),所述 应用能够经由第一任务(132)和笫二任务(134)通过所述设备驱动 程序访问所述磁带记录装置,所述数据处理系统包括-用于经由所述第一任务向所述磁带记录装置发送数据块(136 ) 的装置,所述磁带记录装置通过使用所述写入头向磁带(126)写入 所述数据块,所述磁带记录装置通过使用所述读取头从所述磁带读取 所述写入的数据块,所述磁带记录装置在所述存储緩沖器中存储所述 重读的数据块;-用于从所述存储緩沖器经由所述第二任务读取所述重读的数据 块(138)的装置;-用于比较所述数据块和所述重读的数据块的装置,其中,如果所述数据块和所述重读的数据块的比较显示出差别,则检测到所述损 坏。
12. 按照权利要求ll的数据处理系统,还包括-用于如果所述数据块和所述重读的数据块的比较显示出差别、 则停止经由所述第二任务发送另外的数据块的装置;-用于向所述第一任务发送第一消息的装置,所述第一消息指示 所述数据块被错误地存储;-用于经由所述第 一任务向所述磁带记录装置重发所述数据块的装置。
13. 按照权利要求11或者12的数据处理系统,还包括-用于从所述磁带记录装置接收输入/输出消息或者中断信号的装置;-用于在接收到所述输入/输出消息或者中断信号后启动所述第 一数据的所述读取的装置;-用于重写所述数据块的装置。
14. 按照权利要求11-13中的任何一项的数据处理系统,所述数 据处理系统还包括-用于接收第一数据(400)的装置;-用于通过使用所述第一数据的循环冗余校验来产生第二数据 (402)的装置;-用于从所迷第一数据和所述第二数据产生所述数据块的装置; -用于通过使用在所述重读的数据块中包括的第一数据的循环冗 余校验而产生第三数据(404)的装置;-用于比较所述第二数据与所述第三数据的装置;-用于检测在所述第二和第三数据之间的差别的装置。
15. —种磁带记录装置(104 ),包括写入头(122 )、读取头(124 ) 和存储緩沖器(128),所述磁带记录装置适于接收磁带(126),所 述磁带记录装置与服务器系统(102)链接,所述服务器系统能够执 行应用(114)和设备驱动程序(116),所述应用能够经由第一任务(132)和第二任务(134)通过所述设备驱动程序访问所述磁带记录 装置,所述磁带记录装置包括-接收部件,用于从所述第一任务接收所述数据块; -写入部件,用于通过使用所述写入头向所述磁带写入所述数据块;-读取部件,用于通过使用所述读取头从所述磁带读取所述数据块;-存储部件,用于在所述存储緩冲器上存储所述重读的数据块; -用于向所述第二任务提供所述重读的数据块的装置。
16. 按照权利要求15的磁带记录装置,还包括-用于在所述第二任务已经从所述存储緩冲器读取所述重读的数 据块后从所述存储緩冲器删除所述重读的数据块的装置;-用于向磁带上先前写入初始数据块的位置重写所述数据块的装置;-用于使所述数据块无效、并且将重发的数据块附加到用于 WORM媒体的磁带上的数据的末尾的装置。
17. 按照权利要求15或者16的磁带记录装置,还包括用于从 所述第一任务接收指令的装置,所述指令包括关于在所述存储緩冲器 中的所述数据块的处理的信息和/或关于使得能够将所述重读的数据 块置于所述存储緩冲器中的信息。
18. 按照权利要求15、 16或者17的磁带记录装置,还包括 -用于监视所述存储緩沖器的填充水平的装置;-用于通过使用先入先出(FIFO )算法来在所述存储緩沖器中存 储所述重读的数据块的装置;-用于按照所述FIFO算法删除已经在所述存储緩冲器中存储的 重读的数据块的装置;-用于如果所述填充水平低于预i殳的第一门限值、则以最大的写 入速度向所述磁带(126)写入所述数据块(138)的装置;-用于如果所述填充水平超过所述第一门限值但是不超过预设的 第二门限值、则以降低的写入速度写入所述数据块的装置;-用于如果所述填充水平超过所述第二门限值、则丢弃所述数据 块的装置。
全文摘要
本发明涉及一种用于检测要被磁带记录装置存储的数据块中的损坏的方法,磁带记录装置包括写入头、读取头和存储缓冲器,所述磁带记录装置与服务器系统链接,服务器系统执行应用和设备驱动程序,磁带记录装置能够被所述应用经由第一任务和第二任务通过所述设备驱动程序访问。经由第一任务向所述磁带记录装置发送所述数据块。磁带记录装置通过使用所述写入头向磁带写入所述数据块,并且通过使用读取头从磁带重读写入的数据块。所述磁带记录装置然后在存储缓冲器中存储所重读的数据块。然后从存储缓冲器经由第二任务读取所述重读的数据块。然后比较数据块和所述重读的数据块,其中,如果所述数据块和所述重读的数据块的比较显示差别,则检测到损坏。
文档编号G11B20/18GK101159158SQ20071016201
公开日2008年4月9日 申请日期2007年9月29日 优先权日2006年10月2日
发明者霍尔格·玛滕斯 申请人:国际商业机器公司