专利名称:处理读取错误的读取装置、系统、其方法以及程序的制作方法
技术领域:
本发明涉及用于当在与主计算机连接的带读取装置中产生了不可恢复 的读取错误时迅速并且适宜地继续数据的读取的技术。
背景技术:
在从磁带读取数字数据的带驱动器中,存在着记录在磁带上的数据的 一部分因某种原因而不能读取的情况。在产生了不可恢复的读取错误的情 况下,以往的带驱动器向主计算机报告读取错误,于是暂时结束读取。为 了继续数据的读取,主计算机的应用需要避开产生了错误的部分并从其后 方读取数据。
主计算机用读取了多少记录和文件标记的量来管理数据的读取位置, 其中记录是从主计算机看的数据的最小单位,文件标记表示归结为1个的 记录的边界。另一方面,带驱动器以与主计算机不同的数据单元单位将数 据记录在磁带上。因此,在数据单元中包含多个记录以及文件标记。但是, 记录的长度并不限定为必须固定。此外,带驱动器也大多是对从主计算机 接收到的数据进行压缩后记录。因此,在数据单元因某种原因而不能读取 的情况下,主计算机不能得知包含在其中的记录的数量以及文件标记的数 量。
因而,主计算机为了避开产生了错误的部分,必须执行以下方法中的
任意一个l)一点一点地向前推进读取位置,其中每一次尝试是否能够读 取数据,或者2)使读取位置移动到充分远离的位置并开始读取。但是, 在方法l)中,需要多次重试从而花费时间。另一方面,在方法2)中,连 原本能够读取的数据也将舍弃。
在产生了不可恢复的读取错误的情况下,作为向主计算机传送接着能 够读取的数据位置的以往技术,例如有专利文献l。专利文献l将遵循以
组为单位处理数据从而经由带进行记录/再现的先进智能磁带(Advanced Intelligent Tape ( AIT ))标准的带驱动装置、控制该带驱动装置的主系统 作为对象。并且,专利文献l公开了这样的技术通过在将组单位的数据 分配到主系统的作为最小处理单位的扇区单位时使组的开头与扇区的开头 一致,在再现错误发生时,仅从带驱动装置将组的开头的记录号与构成组 的每一帧的错误信息返回给主系统,在主系统侧能够计算有错误的扇区。 专利文献1:专利公开公报2002-251843号(第4-5页、第8页) 但是,专利文献l的技术是以记录在磁带上的数据的长度可以换算为 在主计算机中处理的数据长度为前提的技术。因此,在作为从主计算机看 的数据的最小单位的记录的长度是可变的情况下、在带驱动器对来自主计 算机的数据进行压缩后记录在磁带上的情况下等,不能使用专利文献l的 技术,从而在主计算机中迅速并且适宜地发现接着可以读取的位置依然是 困难的。
发明内容
因而,本发明的目的在于提供一种能够解决上述问题的带读取装置、 系统、方法以及考呈序。
实现上述目的的本发明,利用如下那样的处理来自带介质的数据读取 错误的带读取装置来实现。
该带读取装置包括数据读取部,其从带介质读取作为数据读取单位
的数据单元的每一个的数据;读取控制部,其根据来自主计算机的命令,
控制由数据读取部进行的数据的读取,并当在数据单元的读取中产生了错 误的情况下,以跳过产生了错误的数据单元而读取下一个能够读取的、错
误之后的数据单元的方式进行控制;计算部,其根据与在错误产生之前读
取的、错误之前的数据单元中所包含的记录以及表示归结为1个的记录的 边界的边界标记有关的信息和与错误之后的数据单元中所包含的记录以及
边界标记有关的信息,计算包含在产生了错误的数据单元中的记录的数量
以及边界标记的数量;以及通信部,其向主计算机传送与计算出的记录的 数量以及计算出的边界标记的数量有关的数量信息。
优选地,与错误之前的数据单元中所包含的记录以及边界标记有关的 信息是错误之前的数据单元中所包含的记录以及边界标记的各自的数量和 从带介质的开头开始数的、到错误之前的数据单元的前1个数据单元为止 的记录以及边界标记的各自的数量。此外,与错误之后的数据单元中所包 含的记录以及边界标记有关的信息是从带介质的开头开始数的、到产生了 错误的数据单元为止的记录以及边界标记的各自的数量。
在此情况下,求取从由带介质的开头开始数的、到产生了错误的数据 单元为止的记录的数量中减去由带介质的开头开始数的、到错误之前的数 据单元的前1个数据单元为止的记录数的值。并且,如果从该值中进一步 减去错误之前的数据单元中所包含的记录数,则求取出包含在检测到了错 误的数据单元中的记录的数。边界标记的数量也同样能够求取出。
进一步优选地,上述带介质以及上述带读取装置遵循线性磁带开放协 议(LTO)标准。并且,与错误之前的数据单元中所包含的记录以及边界 标记有关的信息从包含在错误之前的数据单元中的记载数据单元的内容的 数据集信息表(DSIT)获得。此外,与错误之后的数据单元中所包含的记
此外,优选地,上述带读取装置还包括生成部,其生成计算出的记 录的数量的伪记录以及计算出的边界标记的数量的边界标记;其中,上述 通信部,作为数量信息向主计算机传送所生成的伪记录以及边界标记。
进一步优选地,上述生成部将在从主计算机对带读取装置发布的命令 中所指示的读取数据的长度作为伪记录的长度,生成伪记录。或者,上述 带读取装置能够设定将伪记录的长度设定为0的0字节块模式,在设定了 0字节块模式的情况下,上述生成部生成长度为0的伪记录。
此外,进一步优选地,上述通信部根据小型计算机系统接口 (Small Computer System Interface, SCSI)协议与主计算机通信。并且,上述
生成部根据包含在读命令中的固定位、抑制不正确长度指示符(SILI)位 及传输长度,以及与模式选择命令一 同预先从主计算机发送的块描述符中 所包含的块长度,确定伪记录的长度,并生成伪记录。
此外,优选地,上述通信部,与表示数据是伪数据的伪信息一同,向 主计算机发送伪记录以及边界标记。进而优选地,上述通信部根据SCSI 协议与主计算机通信。并且,上述通信部向主计算机传送用于通知产生了 错误的校验条件以及用于通知错误的内容的、在检测钥中设置了介质错误 后的检测数据。
此外,优选地,带读取装置能够设定在产生了读取错误的情况下仅返 回读取错误的常规操作模式和在产生了读取错误的情况下返回与包含在产 生了读取错误的部分中的记录的数量以及边界标记的数量有关的数量信息 的拯救模式中的任意一种。此外,上述主计算机根据从带读取装置接收到 的记录的数量和边界标记的数量识别数据位置。
此外,实现上述目的的本发明,利用包含带读取装置和与带读取装置 连接的主计算机、如下那样的处理来自带介质的数据读取错误的系统来实 现。
该带读取装置具备从主计算机接收数据读取命令的接收部、上述的 带读取装置的读取部、读取控制部、计算部、生成部以及发送部(上述的 通信部的一部分)。
此外,该主计算机具备将数据读取命令发送到带读取装置的发送部; 接收与计算出的记录的数量以及计算出的边界标记的数量有关的数量信息
的接收部;以及根据数量信息判断数据的读取位置的判断部。从带读取装 置,与表示数据是伪数据的伪信息一同,传送作为数量信息生成的伪记录 以及边界标记;判断部根据伪信息判断接收到的伪记录以及边界标记是否 是伪数据,从而判断数据的读取位置。
或者,带读取装置具备从主计算机接收数据读取命令的接收部;上 述的带读取装置的读取部、读取控制部、存储由读取部读取的数据单元的
緩沖器以及从緩冲器获取与在错误产生之前读取的、错误之前的数据单元
中所包含的记录以a示归结为1个的记录的边界的边界标记有关的第1
信息和与错误之后的数据单元中所包含的记录以及边界标记有关的第2信 息,并向主计算机发送的发送部(上述的通信部的一部分)。
并且,主计算机具备将数据读取命令发送到带读取装置的发送部; 接收第1信息以及笫2信息的接收部;以及判断部,其根据第1信息以及 第2信息,计算包含在产生了错误的数据单元中的记录的数量以及边界标 记的数量,从而判断数据的读取位置。
以上,作为处理来自带介质的数据读取错误的带读取装置以及处理来 自带介质的数据读取错误的系统说明了本发明,但本发明还能够作为方法、 程序或者存储有程序的存储介质来掌握。
如果采用本发明,则主计算机写入到带介质上的记录的长度并不限于 是固定的,此外,即使在数据压缩后将数据记录在带介质上的情况下,也 能够在从带介质的数据读取中产生了不可恢复的读取错误的情况下,在主 计算机中容易并且适宜地推测在产生了读取错误的带介质上的数据单元内 包含多少左右的数据。
图l表示本发明的一种实施方式的处理来自带介质的数据读取错误的
系统10的结构的一例;
图2 (a)表示本实施方式的带介质200中遵从LTO标准的记录区域
的构成的一例,图2 (b)表示LTO数据格式的数据集的构成;
图3 (a)表示在LTO标准的带介质200中最初写入数据的状态,图
3 (b)表示在图3 (a)所示的状态的带介质200上覆写了数据后的状态; 图4表示本实施方式的带读取装置IOO的功能结构的一例; 图5表示在LTO标准的带介质200上产生了读取错误的状态; 图6表示本实施方式的主计算机400的功能结构的一例; 图7是表示本实施方式的带读取装置100中的应答读命令从而读取数
据的处理的流程的流程图8是表示本实施方式的带读取装置100中的错误处理的流程的流程
图9是表示本实施方式的带读取装置100中的伪记录的生成以及伪信 息的发送处理的流程的流程图10是表示本实施方式的主计算机400中的读取错误的处理的流程的 流禾呈图;以及
图11表示本实施方式的带读取装置100和主计算机400的硬盘结构的 一例的图。
具体实施例方式
以下,根据附图详细说明用于实施本发明的最佳的方式,但以下的实 施方式并不限定权利要求的范围的发明,此外,在实施方式中说明的特征 的组合的全部并不限定为是发明的解决手段所必须的。而且,在实施方式 的说明的全体中,对于相同的要素标注相同的标号。
图l表示本发明的一种实施方式的处理来自带介质的数据读取错误的 系统10的结构的一例。本实施方式的处理来自带介质的数据读取错误的系 统10的目的在于即使在根据来自主计算机400的读取命令,带读取装置 100从带介质200读取数据时产生了不能恢复的读取错误,主计算机400 也能够推测在产生了错误的带介质200上的一部分中包含了多少左右的数 据。
处理读取错误的系统10具备从带介质200读取数据的带读取装置 100;与带读取装置100连接的主计算机400。带读取装置100和主计算机 400经由SCSI接口、 LAN ( Local Area Network,局域网)等网络300连 接。此外,带读取装置100和主计算机400也可以经由专用线路或者因特 网等网络300连接。而且,带读取装置100也可以利用SCSI接口、 LAN 等通信接口与个人计算机等信息处理装置连接,经由信息处理装置与网络 300连接。
带读取装置100例如是LTO( Linear Tape Open:线性磁带开放协议)
标准的带记录装置,带介质200例如是LTO标准的带介质。而且,所谓 LTO标准,是Hewlett-Packard公司、IBM公司、Quantum公司这3家 公司共同开发的开放格式的标准。
带读取装置100根据来自主计算机400的数据读取命令,从带介质200 读取作为数据的读取单位的数据单元的每一个的数据。当在读取中产生了 错误的情况下,带读取装置100跳过产生了错误的数据单元而读取下一可 以读取的、错误之后的数据单元。并且,带读取装置100根据包含在产生 错误之前读取的数据单元中的、与该数据单元的内容有关的信息和包含在 错误之后的数据单元中的、与该数据单元的内^f关的信息,计算在产生 了错误的数据单元中包含多少左右的数据,更详细地说,计算包含在产生 了错误的数据单元中的记录的数量以及表示归结为1个的记录的边界的边 界标记的数量。而且,记录和边界标记是从主计算机400看的、所处理的 数据的最小单位,在SCSI接口下,边界标记被称为文件标记。以下,将 边4才示^己i己为i4牛才示子己。
带读取装置100生成所计算出的记录的数量的伪记录和所计算出的文
件标记的数量的文件标记,并将它们与表示数据是伪数据的伪信息一同传
送给主计算机400。主计算机400,在与伪信息一同接收到伪记录以及文件 标记时,根据伪信息判断接收到的伪记录以及文件标记是否是伪数据。
如上所述,由于带读取装置IOO根据产生了读取错误的带介质的一部 分的前后数据,计算包含在产生了读取错误的数据单元(可以是多个数据 单元)中的记录以及文件标记的数量,并将与所计算出的数量有关的信息 传送给主计算机400,所以主计算机400能够推测在产生了错误的带介质 200的一部分上包含多少记录以及文件标记。而且,在此,因为带读取装 置100将与数量有关的信息作为该数量的伪记录以及文件标记传送给主计 算机400,所以也不会有数据的读取被中断的情况。
图2 (a)表示本实施方式的带介质200中记录区域的构成的一例。在 此,说明LTO标准的带介质200。在LTO数据格式中,从主计算机400 接收到的记录以及文件标记一旦被压缩,其后,被以称为数据集(DataSet
(DS) )201的单位记录在带介质200上。如图2(a)所示,对于DS201, 从带介质200的开头位置、即磁带始端(Beginning Of Tape (BOT))开 始顺序标注编号。此外,如图2(b)所示,DS由数据区域203和数据集 信息表(Data Set Information Table (DSIT) ) 205这2个区域构成。数 据区域203是如其名字那样记录数据的区域,在DSIT205中,记载数据区 域的内容。
在本发明中,为了计算包含在产生了错误的DS中的记录数和文件标 记数,使用包含于DSIT205中的多个信息中以下的信息,即,包含DSIT205 的DS201的编号、包含在DS201中的记录以及文件标记的数量、从BOT 到之前的DS201所包含的记录以及文件标记的数量以及磁带写通过 (TapeWitePass (TWP))。在此,TWP是用于判断数据是否是旧数据 的信息,在最初记录数据时其值是l,其后在每次覆写数据时值增加1。
参照图3,说明利用TWP判断数据的新旧的方法。如图3 (a)所示, 最初在带介质200上从DS#N-1 211至DS#N+1 215记录有数据。因为任意 一个DS都是最初写入到带介质200上的,所以其TWP的值表示1。接着, 图3 (b)表示在该状态的带介质200上进一步覆写数据的状态。如果看 DS#N-1 211,则因为被覆写了数据,所以TWP的值增加1,从而变成了 2。 接着,如果看DS#N213,则因带介质200表面的损伤而不能写入。在LTO 标准中,在因为这样的某些原因而不能在带介质200上写入数据的情况下, 只要是带介质200上的、距有问题的部分在4米以内,就允许继续写入。 因此,在图3b)中,跳过产生了问题的DS弁N213,在DS弁N+1215的位 置覆写DS#N。因为DS#N215是,级写了的数据,所以其TWP的值增加 1,从而变成了 2。
在此,如果从图3(b)的状态的带介质200读取数据,则编号N的 DS存在2个。因而,如果看TWP的值,则在DS弁N213中为1,在DS#N 215中为2。因而,得知TWP的值大的DS^N215的数据是新的数据。这 样,在LTO标准中,通过看TWP的值能够判断数据的新旧。而且,在此 虽然说明了 LTO标准的带介质200,但只要是采用在每个数据单元中记载
与上述包含在DSIT中的信息相当的信息的格式的标准,当然就可以应用 本发明。
图4表示本实施方式的带读取装置100的功能结构的一例。带读取装 置100包含通信部110、緩沖器120、读取部130、控制器135。控制器135 控制带读取装置100全体,进而,其包含读取控制部140、计算部150、生 成部160。通信部110与主计算机400进行通信,还能够识别为接收部以 及发送部。而且,以下,设定为带读取装置100和主计算机400的通信经 由SCSI接口 。通信部(接收部)110从主计算机400接收读取命令。
读取部130从带介质200读取作为数据读取单位的数据单元,即DS 的每一个的数据并存储在緩冲器120中。读取控制部140按照主计算机400 的读取命令,控制由读取部130进行的数据的读取。当在DS的读取中产 生了错误的情况下,读取控制部140控制读取部130,使其跳过产生了错 误的DS而读取下一个可以读取的、错误之后的DS,并存储在緩冲器120 中。如果以图5所示的带介质200为例说明,则读取部130在读取了 DS221 之后,跳过产生了读取错误的DS223(可以是多个DS),将下一个可以读 取的、错误之后的DS225存储在緩冲器120中。
计算部150从緩冲器120读取与在产生错误之前读取的、错误之前的 DS221中所包含的记录以及文件标记有关的信息和与包含在错误之后的 DS225中的记录以及文件标记有关的信息,并计算包含在产生了错误的 DS223 (可以是多个DS)中的记录的数量以及文件标记的数量。以下,对 计算进行详细说明。
计算部150从错误之前的DS221的DSIT中获取TWPn、 DS221的编 号DSn、从BOT到之前的DS所包含的记录的数量Rn以及文件标记的数 量Fn、包含在DS221中的记录的数量rn以及文件标记的数量fn。此外, 计算部150从错误之后的DS225的DSIT中获取TWPm、 DS221的编号 I)Sm、从BOT到之前的DS所包含的记录的数量Rm以及文件标记的数量 Fm。
在此,在计算包含在DS223(可以是多个DS )中的记录的数量等之前,
计算部150首先确认所读取的、错误前后的DS221和DS225的数据的连续 性。数据的不连续,如上所述,例如是在覆写数据时因带介质200的表面 的损伤等发生写入错误、结果残留旧的数据时引起。因为这样的旧的数据 应该废弃,所以在本发明中最初确认数据的连续性。
数据的连续性的确认能够利用以下的4个条件式来确认。
Rm> =Rn、 Fm> =Fn、 TWPm> =TWPn、 DSm>DSn。
对于错误前后的DS221和DS225,在上述4个条件式全部得到满足的情况 下,可以说DS221和DS225连续。在上述4个条件式的任意一个未得到满 足的情况下,计算部150废弃错误之后的DS225,对于接着DS225连续读 取的下一个DS重复同样的检查。在此,假设对于DS221和DS225能够确
认数据的连续性。
如果能够确认数据的连续性,则计算部150计算包含在产生了错误的 DS223 (可以是多个DS)中的记录的数量以及文件标记的数量。在从BOT 到DS221之前的DS所包含的记录的数量Rn以及文件标记的数量Fn、包 含在DS221中的记录的数量rn以及文件标记的数量fn之间,以下的关系 式成立。
Rn+l=Rn+rn Fn+i=Fn+fn
因而,包含在产生了错误的DS223 (可以是多个DS)中的记录的数量 rx和文件标记的数量fx能够用下式求得。
fx=Fm-Fn-fn
如果根据上述式子由计算部150计算出记录的数量以及文件标记的数 量,则通信部(发送部)110将该数量信息向主计算机400发送。在本发 明的一种实施方式的带读取装置100中,通信部(发送部)110将计算出
的记录的数量以及计算出的文件标记的数量与错误信息一起直接向主计算
机400发送。在此情况下,主计算机400为了继续数据的读取,需要根据 计算出的记录的数量以及计算出的文件标记的数量确定下一个数据读取位置。
因而,本发明的另一实施方式的带读取装置100进一步包含生成部 160,其以数据的读取不中断的方式,生成计算出的记录的数量的伪记录以 及计算出的文件标记的数量的文件标记。并且,通信部(发送部)IIO,作 为数量信息,将所生成的伪记录以及伪的文件标记向主计算机400发送。 在此情况下,生成部160能够将从主计算机400对带读取装置100发送的 命令中所指示的读取数据的长度作为伪记录的长度生成伪记录。具体地,
生成部160根据从主计算机400发送的读命令中所包含的固定位(Fixed Bit )、抑制不正确长度指示符(Suppress Incorrect Length Indicator( SILI)) 位以及传输长度(TransferLength )、此外先于读命令而与模式选择 (ModeSelect )命令 一 同从主计算机400发送的块描述符 (BlockDescriptor)中所包含的块长度(BlockLength ),确定伪记录的长 度。
在说明确定伪记录的长度的具体的方法之前,首先说明SCSI命令。
模式选择命令是用于在向带驱动器指示读取、写入等之前向带驱动器传送
构成数据的命令。在与模式选择命令一起传送的模式数据中定义8字节的 块描述符(BD)字段,在BD字段的5 7字节中定义的块长度例如用作为 在一连串的读取操作中使用的逻辑块的长度。
接着,说明读(Read)命令。在读命令中,在l字节l位上定义抑制 不正确长度指示符位(SILI)字段,在1字节0位上定义固定字段,在2 字节 4字节上定义传输长度字段。在固定字段被设定为l,传输长度字段 不是0,并且SILI被设定为0的情况下,块长度的长度的块被读出并被返 回给主计算机。此时,传输长度字段的值表示应该返回给主计算机的块的 数量。另一方面,在SILI被设定为1的情况下,带驱动器将校验条件 (CheckCondition )状态返回给主计算机。校验条件状态是在需要向主计算机传送错误、告警等的情况下,相对
于带驱动器接收到的SCSI命令返回的状态。因为仅是传送校验条件状态
有问题的状态,所以为了通知错误的细节,带驱动器进一步返回检测数据
(SenseData )。在检测数据中,在2字节0 3位上定义检测钥(SenseKey ) 字段,利用检测钥字段表示错误的内容。而且,该检测数据,在光纤信道 等串行SCSI中,能够与校验条件状态同时向主计算机返回。另一方面, 在并行SCSI中,为了获知错误的细节,检测数据能够相对于从主计算机 发布的请求检测(RequestSense )命令发送。
返回读命令,在固定字段被设定为0并且传输长度字段不是0的情况 下,传输长度的长度的单个块被读出。但是,如果此时SILI字段被设定为 0,则存在根据能够读取的数据的长度、块长度的值,需要校验条件状态的 报告的情况。
在本发明的一种实施方式的带读取装置100中,利用上述的SCSI命 令推测并确定向主计算机400返回的伪记录的长度。即,在读命令中的固 定字段被设定为1的情况下,生成部160将块长度的长度设定为伪记录的 长度。此外,在固定字段被设定为0的情况下,生成部160将传输长度的 长度设定为伪记录的长度。但是,在固定字段被设定为O并且SILI字段被 设定为1的情况下,只要块长度不是O,生成部160就将块长度的长度设 定为伪记录的长度。
在此,还能够新定义将伪记录的长度设定为0并返回的0字节块模式, 使记录长度的推测不依赖于带读取装置100。在此情况下,因为按照一般 的数据读取顺序将包含在产生了错误的部分中的记录的数量和文件标记的 数量传送给主计算机400,所以与单纯地将上述计算出的记录的数量和计 算出的文件标记的数量返回给主计算机400的情况不同,数据读取并不被 中断。而且,0字节块模式例如能够利用模式选择命令在带读取装置100 中设定。
通信部(发送部)110将由生成部160生成的上述伪记录和文件标记, 与表示数据是伪数据的伪信息一同传送给主计算机400。作为一例,通信
部(发送部)110将校验条件和检测数据传送给主计算机400。
图6表示本实施方式的主计算机400的功能结构的一例。主计算机400 包含发送部410、接收部420、判断部430。发送部410将上述的模式选择 命令、读命令等与读取有关的命令传送到带读取装置100。接收部420从 带读取装置100接收数量信息。并且,判断部430根据数量信息判断数据 读取位置。在优选的实施方式中,接收部420从带读取装置100、与伪信 息一同接收作为数量信息的伪记录以及文件标记。并且,判断部430根据 伪信息,判断作为数量信息接收到的记录以及文件标记是否是伪数据。如 上所述,带读取装置100,作为一例,将校验条件和检测数据返回给主计 算机400 。主计算机400根据接收到校验条件这一 点获知产生了什么问题, 并且为了获知错误内容而检查检测数据。并且,主计算机400,当在作为 伪信息的检测钥中设置了介质错误(MediumError)的情况下,判断为接 收到的记录以及文件标记是伪数据。
如上所述,如果采用本发明的实施方式的带读取装置100,则即使在 产生了读取错误的情况下,也因为计算包含在产生了错误的部分中的记录 数以及文件标记数并传送到主计算机400,所以在利用接收到的记录的数 量和文件标记数管理数据的读取位置的主计算机400中,能够正确地识别 并管理数据位置。但是,还考虑在产生了读取错误的情况下,希望详细调 查错误的原因等暂时中断读取的情况。因而,也可以准备在产生了读取错 误的情况下仅返回读取错误的常规操作模式,和在产生了读取错误的情况 下返回包含在产生了读取错误的部分中的记录的数量和文件标记的数量的 拯救模式2种模式,并且主计算机400选择模式并设定在带读取装置100 中。模式的设定例如能够利用模式选择命令进行。
接着,参照图7至图9的流程图,说明本实施方式的带读取装置100 的动作。在图7的步骤100,通信部(接收部)110从主计算机400接收数 据读取命令,即读命令。读取部130利用读取控制部140的控制,按照读 命令从带介质200以DS单位读取数据(S110)。在数据的读取中产生了 错误的情况下(S120:是),处理前进到步骤130,执4亍错误处理。另一
方面,在没有问题地读取DS的情况下(S120:否),读取部130将读取 的DS存储在緩沖器120中(S140)。在多个DS被存储在緩沖器120中 的时刻,通信部(发送部)110将该多个DS传送给主计算机400 ( S150 )。 并且,处理结束。
接着,参照图8的流程图,说明步骤130的错误处理。当在数据的读 取中产生了错误的情况下,读取控制部140控制读取部130,使其跳过产 生了错误的DS而读取下一个可以读取的、错误之后的DS (S200)。读取 部130将所读取的、错误之后的DS存储在緩冲器120中。计算部150从 存储在緩沖器120中的、错误之前的DS的DSIT和错误之后的DS的DSIT, 分别获取与包含在错误之前的DS中的记录以及文件标记有关的信息、与 包含在错误之后的DS中的记录以及文件标记有关的信息,计算包含在产 生了错误的DS (可以是多个DS)中的记录的数量以及文件标记的数量 (S210)。具体的计算方法如上所述,为了避免重复在此省略。其后,生 成部160生成计算出的记录的数量的伪记录和计算出的文件标记数的文件 标记,通信部(发送部)110将生成的伪记录和文件标记与伪信息一同向 主计算机400发送(S220 )。
接着,参照图9的流程图,说明步骤220的处理。将由计算部150计 算出的、包含在产生了错误的DS中的记录的数量设定为rx,将文件标记 的数量设定为fx。处理从步骤300开始,首先,生成部160将iv fx分别 作为初始值代入到变量r、变量f中。接着,在步骤S310,生成部160检 查变量r、变量f的值,如果其都是O则结束处理(S310:是)。当在步骤 310中为否的情况下,生成部160进一步检查变量r的值是否大于O。因为 在最初进行步骤310、步骤320的判断的情况下,变量r的值大于O,所以 为了确定伪记录的长度而前进到下一步骤330。
在变量r的值大于0的情况下(S320:是),生成部检查读命令 的固定字段(S330)。在本发明的实施方式的带读取装置100中,生成部 160,在固定字段未被设定为1的情况下,并不立即将读命令的传输长度的 值设定为伪记录的长度,而是如上所述,检查读命令的SILI字段,并且在
SILI被设定为l的情况下,只要预先从主计算机400指定的块长度的值不 是0,就将块长度的值设定为伪记录的长度。因而,当在步骤330中为否 的情况下,生成部160检查读命令的SILI字段(S340 )。在SILI被设定 为1的情况下(S340:是),生成部160进一步检查块长度的值(S350 ), 在不是0的情况下(S350:否),将块长度的值设定为伪记录的长度(S360 )。 在SILI未被设定为1的情况下(S340:否),或者虽然SILI械/没定 为1但块长度的值是0的情况下(S350:是),前进到步骤370,生成部 160判断是否设定了将伪记录的长度设定为0返回的0字节块模式。在未 设定O字节块模式的情况下(S370:否),生成部160将读命令的传输长 度的值设定为伪记录的长度(S380)。在设定了 0字节块模式的情况下 (S370:是),生成部160将伪记录的长度设定为0。而后,从步骤S360、 380以及390前进到步骤400,生成部160将变量r的值减1。此外,在步 骤450,通信部(发送部)110向主计算机400返回用于通知读取错误的校 验条件。进而,通信部(发送部)110返回在检测钥中加入了介质错误后 的检测数据,使得主计算机400能够识别所发送的记录是具有推测出的长 度的伪记录(S450)。其后,处理返回步骤310,以计算出的数rx重复, 生成伪i己录。
另一方面,在固定字段被设定为1的情况下(S330:是),生成部160 将块长度的值设定为伪记录的长度(S410)。而后,在步骤420将变量r 的值减1,并且生成部160判断是否是最后的记录(S430)。这是因为在 固定字段被设定为1的情况下成为连续的读取,因而只在最后的记录之后 返回伪信息的缘故。因而,在不是最后的记录的情况下(S430:否),处 理返回步骤310,继续生成伪记录。在是最后的记录的情况下(S430:是), 前进到步骤S450,如上述说明的那样将伪信息返回给主计算机400。
返回步骤320,在变量r小于等于0的情况下(S320:否),此次通 信部(发送部)110将文件标记向主计算机400传送(S460)。具体地, 通信部(发送部)110返回用于使主计算机400得知读取错误的校验条件, 此时生成部160i殳立检测数据的文件标记的位。此外,以主计算机400能够识别所发送的文件标记是伪数据的方式,通信部(发送部)110返回在 检测钥中设置了介质错误后的检测数据。其后,处理返回步骤310,以计 算出的数fx重复,返回伪的文件标记。
以下,参照图10的流程图,说明本实施方式的主计算机400的动作。 在图10的步骤500,主计算机400的发送部410对带读取装置100发送读 命令。在步骤510,接收部420从带读取装置100,作为针对读命令的应答 接收记录、文件标记。此时,判断部430判断是否接着记录、文件标记, 校验条件和检测数据一并被传送(S520)。在校验条件被发送了的情况下 (S520:是),判断部430为了调查错误的内容,检查在检测数据的检测 钥字段中是否设置了介质错误。在设置了介质错误的情况下,判断部430 判断接收到的记录以及文件标记是否是伪的数据(S530),并结束处理。 而且,主计算机400,在判断为接收到的记录以及文件标记是伪数据的情 况下,可以简单地丟弃伪的记录以及文件标记,或者也可以进行恢复相当 于伪的记录以及文件标记的丟失的数据的处理、补全的处理。
图11的左侧表示本实施方式的带读取装置100的硬件结构的一例。带 读取装置100包含由总线相互连接的带驱动器630、 CPU600、 RAM610、 ROM620以及通信接口 640。带驱动器630从带介质200读取数据,并提 供给RAM160。 ROM620存储在带读取装置100的启动时CPU600所执行 的引导程序、启动后使带读取装置100工作的程序等。并且,CPU600使 用RAM610执行这些程序。本发明的处理来自带介质的数据读取错误的带 读取装置用的程序也存储在ROM620中,使用RAM610由CPU600执行。 带读取装置用的程序使带读取装置IOO作为数据读取部130、读取控制部 140、计算部150、生成部160、通信部110发挥作用。其具体的功能以及 动作因为与使用图4、图7至图9所说明的相同,故省略说明。
提供给带读取装置100的程序由带驱动器630从带介质200读取,并 安装在带读取装置100中。代之,也可以通信接口 640经由串行端口等输 入输出装置或者网络,从主计算机400取得程序,并安装在带读取装置100 中。提供给带读取装置100的程序存储在带介质加0、软盘、CD-ROM、
DVD、 PD等光学记录介质、MD等光磁性存储介质、ic卡等半导体存储 器等记录介质中来由使用者提供。
图11的右侧表示本实施方式的主计算机400的硬件结构的一例。主计 算机400具备包含由主控制器710相互连接的CPU700以及RAM720的 CPU周边部;包含由输入输出控制器730与主控制器710连接的通信接口 760、硬盘驱动器740以及CD-ROM驱动器750的输入输出部;具有与输 入输出控制器730连接的超级I/O控制器770以及与超级I/O控制器770 连接的软盘驱动器780、快闪ROM7卯以及键盘鼠标控制器800的传统输 入输出部。
主控制器710以高的传输速率将访问RAM720的CPU700与RAM720 连接。CPU700根据存储在硬盘中的程序工作,进行各部分的控制。本发
使用RAM720由CPU700执行。主计算机用的程序使主计算机400作为发 送部410、接收部420、判断部430发挥作用。其具体的功能以及动作因为 与使用图5以及图IO所说明的相同,所以省略说明。
输入输出控制器730将作为比较高速的输入输出装置的通信接口 760 、 硬盘驱动器740以及CD-ROM驱动器750与主控制器710连接。通信接 口 760经由网络与带读取装置100等外部装置通信。CD-ROM驱动器750 从CD-ROM读取程序或者数据,经由通信接口 760提供给带读取装置100。
此外,在输入输出控制器730上连接有软盘驱动器780、键盘鼠标控 制器800等比较低速的输入输出装置、快闪ROM790。快闪ROM7卯存 储在主计算机400的启动时CPU700所执行的引导程序、依赖于主计算机 400的硬盘的程序等。软盘驱动器780从软盘读取程序或者数据并经由 RAM720提供给超级I/O控制器770。超级I/O控制器770连接软盘驱动 器,例如经由并^f亍端口、串行端口、键盘端口、鼠标端口等连接各种输入 输出装置。
以上虽然使用实施方式进行了本发明的说明,但本发明的技术范围并 不限于上述实施方式所记载的范围。例如,在上述的实施方式中,包含在
产生了错误的带介质200的一部分中的记录以及文件标记的数量是在带读 取装置100的计算部150中计算的。但是,带读取装置100的发送部110 可以从存储由读取部130读取的数据单元的緩冲器120获取与在产生错误 之前读取的、错误之前的数据单元中所包含的记录以及表示归结为l个的 记录的边界的边界标记有关的第l信息;与错误之后的数据单元中所包含 的记录以及边界标记有关的第2信息并向主计算机400传送。而后在主计 算机400的判断部430中,可以根据第1信息以及第2信息计算包含在产 生了错误的数据单元中的记录的数量以及边界标记的数量,从而判断数据 的读取位置。这样,本领域的技术人员可以明了,在上述的实施方式中, 可以加以各种的改变或者改进。因而,加以这样的改变或者改进后的方式 当然也包含在本发明的技术范围内。
权利要求
1. 一种带读取装置,其处理来自带介质的数据读取错误,包括读取部,其从上述带介质读取作为数据读取单位的数据单元的每一个的数据;读取控制部,其根据来自主计算机的命令,控制由上述读取部进行的数据的读取,并当在上述数据单元的读取中产生了错误的情况下,以跳过产生了上述错误的数据单元而读取下一个能够读取的、错误之后的数据单元的方式进行控制;计算部,其根据与在上述错误产生之前读取的、错误之前的数据单元中所包含的记录以及表示归结为1个的记录的边界的边界标记有关的信息和与上述错误之后的数据单元中所包含的记录以及边界标记有关的信息,计算包含在产生了上述错误的数据单元中的记录的数量以及边界标记的数量;以及通信部,其向上述主计算机传送与计算出的上述记录的数量以及计算出的上述边界标记的数量有关的数量信息。
2. 根据权利要求l所述的带读取装置,其中上述与错误之前的数据单 元中所包含的记录以及边界标记有关的信息是上述错误之前的数据单元中 所包含的记录以及边界标记的各自的数量和从上述带介质的开头开始数 的、到上述错误之前的数据单元的前1个数据单元为止的记录以及边界标 记的各自的数量,上述与错误之后的数据单元中所包含的记录以及边界标 记有关的信息是从上述带介质的开头开始数的、到产生了上述错误的数据 单元为止的记录以及边界标记的各自的数量。
3,根据权利要求2所述的带读取装置,其中上述带介质以及上述带读 取装置遵循线性磁带开放协议(LTO)标准,上述与错误之前的数据单元 中所包含的记录以及边界标记有关的信息从包含在上述错误之前的数据单 元中的、记载数据单元的内容的数据集信息表(DSIT)获得,上述与4普误 之后的数据单元中所包含的记录以及边界标记有关的信息从包含在上述错 误之后的数据单元中的DSIT获得。
4.根据权利要求l所述的带读取装置,还包括生成部,其生成计算出的上述记录的数量的伪记录以及计算出的上述 边界标记的数量的边界标记;其中,上述通信部,作为数量信息向上述主计算机传送所生成的上述 伪记录以及上述边界标记。
5,根据权利要求4所述的带读取装置,其中上述生成部将在从上述主 计算机对上述带读取装置发布的命令中所指示的读取数据的长度作为伪记录的长度,生成伪记录。
6. 根据权利要求5所述的带读取装置,其中上述通信部根据小型计算 机系统接口 ( SCSI)协议与上述主计算机通信;上述生成部根据包含在读命令中的固定位、抑制不正确长度指示符 (SILI)位及传输长度,以及与模式选择命令一同预先从上述主计算机发 送的块描述符中所包含的块长度,确定伪记录的长度,并生成伪记录。
7. 根据权利要求4所述的带读取装置,其中上述通信部,与表示数据 是伪数据的伪信息一同,向上述主计算机发送上述伪记录以及上述边界标 记。
8. 根据权利要求7所述的带读取装置,其中上述通信部根据SCSI协 议与上述主计算机通信;上述通信部进一步向上述主计算机传送用于通知产生了错误的才交验条 件以及用于通知错误的内容的、在检测钥中设置了介质错误后的检测数据。
9. 根据权利要求4所述的带读取装置,其中能够设定将伪记录的长度 设定为0的0字节块模式。
10. 根据权利要求l所述的带读取装置,其中能够设定常规操作模式 和拯救模式中的任意一种,常规操作模式在产生了读取错误的情况下仅返 回读取错误,拯救模式在产生了读取错误的情况下返回与包含在产生了读 取错误的部分中的记录的数量以及边界标记的数量有关的数量信息。
11. 根据权利要求1所述的带读取装置,其中上述主计算机根据从上 述带读取装置接收到的记录的数量和边界标记的数量识别数据位置。
12. —种从带介质读取数据的系统,其处理来自带介质的数据读取错 误,包括带读取装置;以及 与上述带读取装置连接的主计算机; 其中,上述带读取装置包括 接收部,其从上述主计算机接收数据读取命令; 读取部,其从上述带介质读取作为数据的读取单位的数据单元的每一 个的数据;读取控制部,其根据上述数据读取命令,控制由上述读取部进行的数 据的读取,并当在上述数据单元的读取中产生了错误的情况下,以跳过产 生了上述错误的数据单元而读取下一个能够读取的、错误之后的数据单元 的方式进行控制;计算部,其;^艮据与在上述错误产生之前读取的、错误之前的数据单元 中所包含的记录以及表示归结为1个的记录的边界的边界标记有关的信息 和与上述错误之后的数据单元中所包含的记录以及边界标记有关的信息, 计算包含在产生了错误的数据单元中的记录的数量以及边界标记的数量; 以及发送部,其向上述主计算机传送与计算出的上述记录的数量以及计算 出的上述边界标记的数量有关的数量信息; 上述主计算机包括将上述数据读取命令发送到上述带读取装置的发送部; 接收上述数量信息的接收部;以及 根据上述数量信息判断数据的读取位置的判断部。
13. 根据权利要求12所述的系统,其中上述带读取装置还包括 生成部,其生成计算出的上述记录的数量的伪记录以及计算出的上述边界标记的数量的边界标记;上述带读取装置的上述发送部,与表示数据是伪数据的伪信息一同,向上述主计算机发送作为数量信息生成的上述伪记录以及上述边界标记;上述判断部根据上述伪信息判断接收到的上述伪记录以及上述边界标 记是否是伪数据,从而判断数据的读取位置。
14. 一种从带介质读取数据的系统,其处理来自带介质的数据读取错 误,包括带读取装置;以及 与上述带读取装置连接的主计算机; 其中,上述带读取装置包括 接收部,其从上述主计算机接收数据读取命令; 读取部,其从上述带介质读取作为数据的读取单位的数据单元的每一 个的数据;读取控制部,其根据上述数据读取命令,控制由上述读取部进行的数 据的读取,并当在上述数据单元的读取中产生了错误的情况下,以跳过产 生了上述错误的数据单元而读取下一个能够读取的、错误之后的数据单元 的方式进行控制;緩冲器,其存储由上述读取部读取的数据单元;以及发送部,其从上述緩冲器获取与在上述错误产生之前读取的、错误之 前的数据单元中所包含的记录以及表示归结为1个的记录的边界的边界标 记有关的第1信息和与上述错误之后的数据单元中所包含的记录以及边界 标记有关的第2信息,并向上述主计算机传送;上述主计算机包括将上述数据读取命令发送到上述带读取装置的发送部; 接收上述第1信息以及第2信息的接收部;以及 判断部,其祁4居上述第l信息以及第2信息,计算包含在产生了错误 的数据单元中的记录的数量以及边界标记的数量,从而判断数据的读取位置。
15. —种从带介质读取数据的方法,其在带读取装置中处理来自带介 质的数据读取错误,包括从主计算机接收数据读取命令的步骤;根据上述数据读取命令,控制作为数据的读取单位的数据单元的每一 个的数据的读取,并当在上述数据的读取中产生了错误的情况下,以跳过 产生了上述错误的数据单元而读取下一个能够读取的、错误之后的数据单 元的方式进行控制的步骤;根据与在上述错误产生之前读取的、错误之前的数据单元中所包含的 记录以及表示归结为1个的记录的边界的边界标记有关的信息和与上述错 误之后的数据单元中所包含的记录以及边界标记有关的信息,计算包含在 产生了错误的数据单元中的记录的数量以及上述边界标记的数量的步骤; 以及向上述主计算机传送与计算出的上述记录的数量以及计算出的上述边 界标记的数量有关的数量信息。
16. —种从带介质读取数据的方法,其在包含带读取装置和与上述带 读取装置连接的主计算机的系统中,处理来自带介质的数据读取错误,其 在上述带读取装置中包括从上述主计算机接收数据读取命令的步骤;根据上述数椐读取命令,控制以作为数据的读取单位的数据单元单位 的数据的读取,并当在上述数据的读取中产生了错误的情况下,以跳过产 生了上述错误的数据单元而读取下一个能够读取的、错误之后的数据单元 的方式进行控制的步骤;根据与在上述错误产生之前读取的、错误之前的数据单元中所包含的 记录以及表示归结为1个的记录的边界的边界标记有关的信息和与上述错 误之后的数据单元中所包含的记录以及边界标记有关的信息,计算包含在 产生了错误的数据单元中的记录的数量以及边界标记的数量的步骤;以及向上述主计算机传送与计算出的上述记录的数量以及计算出的上述边 界标记的数量有关的数量信息;在上述主计算机中包括将上述数据读取命令发送到上述带读取装置的步骤;接收上述数量信息的步骤;以及 根据上述数量信息判断数据的读取位置的步骤。
17. 根据权利要求16所述的方法,其中在上述带读取装置中还包括 生成计算出的上述记录的数量的伪记录以及计算出的上述边界标记的数量的边界标记的步骤;上述带读取装置中的上述发送的步骤,与表示数据是伪数据的伪信息 一同,向上述主计算机发送作为上述数量信息生成的上述伪记录以及上述 边界标记;上述判断的步骤根据上述伪信息判断接收到的上述伪记录以及上述边 界标记是否是伪数据,从而判断数据的读取位置。
18. —种带读取装置用程序,是处理来自带介质的数据读取错误的带 读取装置用的程序,其使上述带读取装置作为以下部件发挥作用读取部,其从上述带介质读取作为数据的读取单位的数据单元的每一 个的数据;读取控制部,其根据来自主计算机的命令,控制由上述读取部进行的 数据的读取,并当在上述数据单元的读取中产生了错误的情况下,以跳过 产生了上述错误的数据单元而读取下一个能够读取的、错误之后的数据单 元的方式进行控制;计算部,其才艮据与在上述错误产生之前读取的、错误之前的数据单元中所包含的记录以及表示归结为1个的记录的边界的边界标记有关的信息 和与上述错误之后的数据单元中所包含的记录以及边界标记有关的信息, 计算包含在产生了错误的数据单元中的记录的数量以及边界标记的数量; 以及通信部,其向上述主计算机传送与计算出的上述记录的数量以及计算 出的上述边界标记的数量有关的数量信息。
19. 一种系统用的程序,是包含带读取装置和与上述带读取装置连接 的主计算机的系统用的程序,其使上述带读取装置作为以下部件发挥作用接收部,其从上述主计算机接收数据读取命令;读取部,其从上述带介质读取作为数据的读取单位的数据单元的每一个的数据;读取控制部,其根据上述数据读取命令,控制由上述读取部进行的数 据的读取,并当在上述数据单元的读取中产生了错误的情况下,以跳过产 生了上述错误的数据单元而读取下一个能够读取的、错误之后的数据单元 的方式进行控制;计算部,其根据与在上述错误产生之前读取的、错误之前的数据单元 中所包含的记录以及表示归结为1个的记录的边界的边界标记有关的信息 和与上述错误之后的数据单元中所包含的记录以及边界标记有关的信息, 计算包含在产生了错误的数据单元中的记录的数量以及边界标记的数量; 以及发送部,其向上述主计算机传送与计算出的上述记录的数量以及计算 出的上述边界标记的数量有关的数量信息; 使上述主计算机作为以下部件发挥作用 将上述数据读取命令发送到上述带读取装置的发送部; 接收上述数量信息的接收部;以及 根据上述数量信息判断数据的读取位置的判断部。
全文摘要
本发明提供一种用于在产生了读取错误的情况下,迅速并且适宜地继续数据读取的技术。带读取装置具备从带介质以数据单元单位读取数据的读取部;读取控制部,其根据来自主机的命令,控制数据读取部的数据读取,并当在数据单元的读取中产生了错误的情况下,以跳过产生了错误的数据单元而读取下一个能够读取的、错误之后的数据单元的方式进行控制;计算部,其根据与在错误之前的数据单元中包含的记录及表示归结为1个的记录的边界的边界标记有关的信息和与错误之后的数据单元中包含的记录及边界标记有关的信息,计算包含在被检测到错误的数据单元中的记录的数量及边界标记的数量;向主机传送与计算出的记录及边界标记的数量有关的数量信息的通信部。
文档编号G11B20/10GK101395568SQ200780007500
公开日2009年3月25日 申请日期2007年3月2日 优先权日2006年3月3日
发明者吉村克巳, 户坂英司, 片桐隆司 申请人:国际商业机器公司