一、读取测试磁带
Load
Prevent (1)
Rewind
ModeSelect (block:0)
Read(1024) Check_Condition (EOF=1,
SenseInfo:0x00000400, ASCQ:0x0001)
Rewind
ModeSelect (block:0)
Read(1024) Check_Condition (EOF:1,
SenseInfo:0x00000400, ASCQ:0x0001)
Prevent (0)
流程说明:
1. 首先把磁带 Load 上来,
2. 并通过 Prevent 锁上,
3. Rewind
将磁带倒回来带头(BOP)
4. 通过 ModeSelect 将磁带的 Block 设成0, 这样处理主要是为了下面 Read
自由读取长度,
其实也可以不修改磁带的块大小(I佩服MS人了,小细节的处理真够细致呀)
5. Read
读取1024字节(这里 FIXED:0,采用自由长度),因为磁带是刚建出来的,无数据,
所以返回
Check_Condition(EOF=1, SenseInfo:0x00000400, ASCQ:0x0001)
Sense 信息表示读取中遇到了 End-of-FileMarks。
本次 Read 失败。
6. 针对上次
Read 失败后,重新Retry, 当然结果还是一样。
二、写入/读取磁带
Load
Rewind
Load
Prevent (1)
Rewind
Load
ModeSelect(block:65536)
Write(block=1)
Prevent (0)
Prevent (0)
Load
Prevent (1)
Rewind
Rewind
Read(block:1)
Space(code:filemark, count:1)
Check_Condition(Key:Blank_Check, SenseInfo:0x00000001, ASCQ:0x0005)
Read(block:1) Check_Condition(Key:Blank_Check, SenseInfo:0x00000001,
ASCQ:0x0005)
流程说明:
因为前个过程读取失败了,所以这个先写入,然后再读取进行校验。
1. 前几个命令还是一样,Load, Rewind, Prevent等
2. 恢复磁带BlockSize=65536
(默认BlockSize是65536)
3. 写入一个Block,这个Block里主要包含一些备份标签,如
"TAPE.BMTF.Media.LABEL...2010/04/12..."
4. 放开锁,保险起见,重做一次
5. 倒带再读出刚那个块的数据,因为刚写入,所以读出应该没有问题,读取完成后,Position应该处于
数据块的结束位置。
6. 通过Space跳过一个文件,因为还没有写入FileMark,所以返回CheckCondition。
7.
Read接着读取,因为处理磁带位置已经是处于数据的尾部,所以也是返回CheckCondition
注意:这个过程虽然写入了备份标签,但只是用来测试磁带是否正常可写,下一个过程还会再写一次标签来
覆盖这个数据块。因为能写入,并且读取正常,数据一致,所以磁带是正常的,而下面Space, Read 失败是
正常的。
三、磁带写入备份数据
Rewind
Write(block:1)
WriteFileMarks(count:1)
WriteFileMarks(count:0)
ReadPosition <---(FirstBlockLocation:2, LastBlockLocation:0,
NumberOfBlocksInBuffer:0, NumberOfBytesInBuffer:0)
Write(block:1)
Write(block:1)
Write(block:1)
Write(block:1)
WriteFileMark(count:1)
Rewind
Prevent(0)
流程说明:
1. 磁带测试正常以后,就可以写备份数据了,首先倒带
2.
重新写入备份标签,覆盖原来的测试数据
3. 标签写入完成后,写入结束标记,FileMarks(1),
FileMarks=0时,磁带位置不变
4. 读取当然磁带位置为:2,
(因为Write(block:1)写一个块,WriteFileMarks(count:1)写一个块,当然为2)
5.
开始写入文件数据 N个Write
6. 每个文件写完后,写结束标记FileMarks
7. 倒带,放锁
|
文件: | Ntback.rar |
大小: | 31KB |
下载: | 下载 |
|
阅读(1022) | 评论(0) | 转发(0) |