Chinaunix首页 | 论坛 | 博客
  • 博客访问: 133301
  • 博文数量: 38
  • 博客积分: 1277
  • 博客等级: 中尉
  • 技术积分: 450
  • 用 户 组: 普通用户
  • 注册时间: 2009-10-11 23:24
文章分类

全部博文(38)

文章存档

2012年(2)

2011年(7)

2010年(24)

2009年(5)

分类: 服务器与存储

2010-04-11 03:18:13


一、读取测试磁带
    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
下载:下载

阅读(1015) | 评论(0) | 转发(0) |
0

上一篇:pyTarget history

下一篇:pyTarget增加VTL功能

给主人留下些什么吧!~~