• [转] linux虚拟带库操作笔记


    原文来自:“王旺的书房” ---- http://blog.itpub.net/271063/viewspace-1059840/

    分类: Linux

    查看设备
    [root@node1 ~]# lsscsi -g
    [1:0:0:0] cd/dvd NECVMWar VMware IDE CDR10 1.00 /dev/sr0 /dev/sg0
    [2:0:0:0] disk VMware, VMware Virtual S 1.0 /dev/sda /dev/sg1
    [3:0:0:0] mediumx STK L700 0104 /dev/sch0 /dev/sg10
    [3:0:1:0] tape IBM ULT3580-TD5 0104 /dev/st0 /dev/sg2
    [3:0:2:0] tape IBM ULT3580-TD5 0104 /dev/st1 /dev/sg3
    [3:0:3:0] tape IBM ULT3580-TD4 0104 /dev/st2 /dev/sg4
    [3:0:4:0] tape IBM ULT3580-TD4 0104 /dev/st3 /dev/sg5
    [3:0:8:0] mediumx STK L80 0104 /dev/sch1 /dev/sg11
    [3:0:9:0] tape STK T10000B 0104 /dev/st4 /dev/sg6
    [3:0:10:0] tape STK T10000B 0104 /dev/st5 /dev/sg7
    [3:0:11:0] tape STK T10000B 0104 /dev/st6 /dev/sg8
    [3:0:12:0] tape STK T10000B 0104 /dev/st7 /dev/sg9
    [root@node1 ~]#[@more@]

    可以看到虚拟带库设备的两个机械臂和8个驱动器

    查看虚拟带库配置文件
    [root@node1 ~]# cat /etc/mhvtl/mhvtl.conf

    # Home directory for config file(s)
    MHVTL_CONFIG_PATH=/etc/mhvtl
    # Default media capacity (500 M) //磁带缺省容量500M
    CAPACITY=500
    # Set default verbosity [0|1|2|3]
    VERBOSE=1
    # Set kernel module debuging [0|1]
    VTL_DEBUG=0
    [root@node1 ~]#


    查看机械臂状态,4个驱动器,43个槽位
    [root@node1 ~]# mtx -f /dev/sg10 status
    Storage Changer /dev/sg10:4 Drives, 43 Slots ( 4 Import/Export )
    Data Transfer Element 0:Empty
    Data Transfer Element 1:Empty
    Data Transfer Element 2:Empty
    Data Transfer Element 3:Empty
    ......
    [root@node1 ~]#


    将1槽位的磁带放到0驱动器里
    [root@node1 ~]# mtx -f /dev/sg10 status |more
    Storage Changer /dev/sg10:4 Drives, 43 Slots ( 4 Import/Export )
    Data Transfer Element 0:Empty 0驱动器是空的。 /dev/st0
    Data Transfer Element 1:Empty
    Data Transfer Element 2:Empty
    Data Transfer Element 3:Empty
    Storage Element 1:Full :VolumeTag=E01001L4 磁带在1槽位
    Storage Element 2:Full :VolumeTag=E01002L4
    Storage Element 3:Full :VolumeTag=E01003L4
    ......
    [root@node1 ~]#
    [root@node1 ~]# mtx -f /dev/sg10 load 1 0 将1槽位的磁带放到0驱动中
    Loading media from Storage Element 1 into drive 0...done
    [root@node1 ~]# mtx -f /dev/sg10 status |more 再次查看
    Storage Changer /dev/sg10:4 Drives, 43 Slots ( 4 Import/Export )
    Data Transfer Element 0:Full (Storage Element 1 Loaded):VolumeTag = E01001L4
    E01001L4磁带已经进入0驱动器中
    Data Transfer Element 1:Empty
    Data Transfer Element 2:Empty
    Data Transfer Element 3:Empty
    Storage Element 1:Empty 1槽位已经空了
    Storage Element 2:Full :VolumeTag=E01002L4

    此时,查看st0状态 状态显示为file_number=0
    [root@node1 ~]# mt -f /dev/st0 status
    SCSI 2 tape drive:
    File number=0, block number=0, partition=0.
    Tape block size 0 bytes. Density code 0x46 (LTO-4).
    Soft error count since last status=0
    General status bits on (41010000):
    BOT ONLINE IM_REP_EN

    未装磁带的st0 与上面的不同,状态显示为file_number=-1
    [root@node1 ~]# mt -f /dev/st0 status
    SCSI 2 tape drive:
    File number=-1, block number=-1, partition=0.
    Tape block size 0 bytes. Density code 0x0 (default).
    Soft error count since last status=0
    General status bits on (50000):
    DR_OPEN IM_REP_EN
    [root@node1 ~]#


    ======================================== /dev/st0 ===================================================
    往磁带上写数据
    查看磁带上的数据
    [root@node1 ~]# tar -cvf /dev/st0 install.log
    install.log
    [root@node1 ~]# tar -tvf /dev/st0
    -rw-r--r-- root/root 51340 2012-11-06 16:22 install.log

    [root@node1 ~]# mt -f /dev/st0 tel
    At block 6.

    继续添加文件至磁带机
    [root@node1 ~]# tar -cvf /dev/st0 liblzo2_2-2.03-6.el6.i686.rpm
    liblzo2_2-2.03-6.el6.i686.rpm
    [root@node1 ~]#
    [root@node1 ~]# tar -tvf /dev/st0
    -rw-r--r-- root/root 49176 2012-11-30 09:41 liblzo2_2-2.03-6.el6.i686.rpm
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/st0 tel
    At block 0.
    [root@node1 ~]#
    因为使用的是自动回带设备,所以第2次备份会replace

    ======================================== tar -cvf ===================================================
    重新进行文件的归档
    [root@node1 ~]# mt -f /dev/nst0 erase 先清除磁带上的内容
    [root@node1 ~]# mt -f /dev/nst0 tel 查看磁带指针停止位置
    At block 0.
    [root@node1 ~]# tar -cvf /dev/nst0 install.log.syslog 归档第1个文件大小为11288
    install.log.syslog
    [root@node1 ~]# mt -f /dev/nst0 tel 第1个文件使用了2个块
    At block 3.
    [root@node1 ~]# tar -cvf /dev/nst0 liblzo2_2-2.03-6.el6.i686.rpm 归档第2个文件大小为49176
    liblzo2_2-2.03-6.el6.i686.rpm
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 tel 第2个文件使用了6个块 一共使用了8个块
    At block 9.
    [root@node1 ~]#
    [root@node1 ~]# tar -cvf /dev/nst0 anaconda-ks.cfg 归档第3个文件大小为2194
    anaconda-ks.cfg
    [root@node1 ~]# mt -f /dev/nst0 tel 第3个文件使用了2个块 一共使用了10个块
    At block 11.
    [root@node1 ~]# tar -tvf /dev/nst0 查看内容时报错 因为现在的指针指向的是11块的空白区域
    tar: This does not look like a tar archive
    tar: Exiting with failure status due to previous errors
    [root@node1 ~]#

    ======================================== tar -tvf ===================================================
    如果要查看已归档的内容,倒带至磁带头
    [root@node1 ~]# mt -f /dev/nst0 rewind 倒带
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 tel 此时在块0处
    At block 0.
    [root@node1 ~]# tar -tvf /dev/nst0 此时可以查看到第1个备份文件
    -rw-r--r-- root/root 11288 2012-11-06 16:19 install.log.syslog
    [root@node1 ~]# 查看完后,指针已经向前移动
    [root@node1 ~]# tar -tvf /dev/nst0 此时看不到归档内容,因为第2个备份文件使用的是从块3开始的内容
    tar: This does not look like a tar archive 经过这个错误,磁头又向前移动了
    tar: Exiting with failure status due to previous errors
    [root@node1 ~]# tar -tvf /dev/nst0 此时看到了第2个归档文件,因为
    -rw-r--r-- root/root 49176 2012-11-30 09:41 liblzo2_2-2.03-6.el6.i686.rpm
    [root@node1 ~]# mt -f /dev/nst0 tel 此时磁头移到了第8个块
    At block 8.
    [root@node1 ~]# mt -f /dev/nst0 tel 如果不进行tar命令,磁头不会移动
    At block 8.
    [root@node1 ~]# mt -f /dev/nst0 tel
    At block 8.
    [root@node1 ~]#
    [root@node1 ~]# tar -tvf /dev/nst0 第3个文件是从块9开始的,但此时磁头还没到块9,还在块8
    tar: This does not look like a tar archive 经过一个错误,磁头到了块9,
    tar: Exiting with failure status due to previous errors
    [root@node1 ~]# mt -f /dev/nst0 tel 磁头到了块9,
    At block 9.
    [root@node1 ~]# tar -tvf /dev/nst0 此时可以查看第3个备份文件 同时,磁头又向前移动了1块
    -rw------- root/root 2194 2012-11-06 16:22 anaconda-ks.cfg
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 tel
    At block 10.

    ======================================== tar -xvf ===================================================
    如果要把已经备份的文件,释放出来,同理,也要按序进行。操作如下:
    [root@node1 ~]# mt -f /dev/nst0 rewind 磁头回到0块,此时可以还原第1个文件
    [root@node1 ~]# mt -f /dev/nst0 tel
    At block 0.
    [root@node1 ~]# tar -xvf /dev/nst0
    install.log.syslog
    [root@node1 ~]# mt -f /dev/nst0 tel 当前磁头在块2,所以不能还原或查看第2个文件
    At block 2.
    [root@node1 ~]# tar -xvf /dev/nst0 错误一次,磁头移到块3,此时可以还原或查看第2个文件
    tar: This does not look like a tar archive
    tar: Exiting with failure status due to previous errors
    [root@node1 ~]# tar -xvf /dev/nst0
    liblzo2_2-2.03-6.el6.i686.rpm 当前磁头在块8,还是不能还原或查看第3个文件,第3个文件从块9始
    [root@node1 ~]# tar -xvf /dev/nst0 错误一次,磁头移一个块,现在磁头在块9
    tar: This does not look like a tar archive
    tar: Exiting with failure status due to previous errors
    [root@node1 ~]# tar -xvf /dev/nst0 磁头在块9,可以查看和恢复第3个文件了
    anaconda-ks.cfg
    [root@node1 ~]# mt -f /dev/nst0 tel 第3个文件还原之后,磁头停在第3个文件尾部,而不是块11
    At block 10.
    [root@node1 ~]#

    ======================================== fsf ===================================================
    如何使用fsf 来使用磁头前进一个文件
    [root@node1 ~]# mt -f /dev/nst0 tel 磁头回到0块,此时可以还原第1个文件
    At block 0.
    [root@node1 ~]#
    [root@node1 ~]# tar -tvf /dev/nst0 查询第1个文件
    -rw-r--r-- root/root 11288 2012-11-06 16:19 install.log.syslog
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 tel 目前在第1个文件尾,不能查询第2个文件
    At block 2.
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 fsf 1 让磁头前进一个文件,这样就能直接查询第2个文件了
    [root@node1 ~]#
    [root@node1 ~]# tar -tvf /dev/nst0
    -rw-r--r-- root/root 49176 2012-11-30 09:41 liblzo2_2-2.03-6.el6.i686.rpm
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 fsf 1 让磁头再前进一个文件,这样就能直接查询第3个文件了
    [root@node1 ~]#
    [root@node1 ~]# tar -tvf /dev/nst0
    -rw------- root/root 2194 2012-11-06 16:22 anaconda-ks.cfg
    [root@node1 ~]#

    ========================================== bsf =================================================
    到底当前磁头在什么位置呢? 在文件首还是文件尾?
    [root@node1 ~]# mt -f /dev/nst0 tel
    At block 0.
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 status
    SCSI 2 tape drive:
    File number=0, block number=0, partition=0.
    Tape block size 0 bytes. Density code 0x46 (LTO-4).
    Soft error count since last status=0
    General status bits on (41010000):
    BOT ONLINE IM_REP_EN 能不能这样理解? BOT : begin of tape ?
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 fsf 1 向前走一个文件
    [root@node1 ~]# mt -f /dev/nst0 status
    SCSI 2 tape drive:
    File number=1, block number=0, partition=0.
    Tape block size 0 bytes. Density code 0x46 (LTO-4).
    Soft error count since last status=0
    General status bits on (81010000):
    EOF ONLINE IM_REP_EN 到了第1个文件的尾端 end of file
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 tel 磁头处于3号块
    At block 3.
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 fsf 1 再向前走一个文件
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 tel 磁头处于9号块
    At block 9.
    [root@node1 ~]# mt -f /dev/nst0 status
    SCSI 2 tape drive:
    File number=2, block number=0, partition=0. 文件号=2 是第3个文件 块号=0 可以操作
    Tape block size 0 bytes. Density code 0x46 (LTO-4).
    Soft error count since last status=0
    General status bits on (81010000):
    EOF ONLINE IM_REP_EN 9号块也是2号文件的尾端 只要是EOF,就可操作文件
    [root@node1 ~]#
    [root@node1 ~]#

    使用回退稍微不同。
    [root@node1 ~]# mt -f /dev/nst0 bsf 1
    [root@node1 ~]# mt -f /dev/nst0 status
    SCSI 2 tape drive:
    File number=1, block number=-1, partition=0. 文件号=1 是第2个文件 块号=-1 是这个空间的最后一个块
    Tape block size 0 bytes. Density code 0x46 (LTO-4).
    Soft error count since last status=0
    General status bits on (1010000):
    ONLINE IM_REP_EN 没有出现EOF,此时不能使用tar命令
    [root@node1 ~]# mt -f /dev/nst0 tel 回退一个文件,仅是回退到上个文件的未尾
    At block 8.
    [root@node1 ~]#
    [root@node1 ~]# mt -f /dev/nst0 tel bsf之后,不能直接操作,可以再fsf前走一次
    At block 2.
    [root@node1 ~]# mt -f /dev/nst0 fsf 1
    [root@node1 ~]# mt -f /dev/nst0 tel 接着就可以tar 操作了
    At block 3.
    [root@node1 ~]#

    ========================================== 参考资料 =================================================
    http://www.cs.inf.ethz.ch/stricker/lab/linux_tape.html [ howto_tape.docx ]
    http://hi.baidu.com/widebright/item/3fec7fe6cc4214a9c00d7577
    [ 磁带机设备的管理和使用.txt ]


    AIX下的磁带使用参考
    http://www.ibm.com/developerworks/cn/aix/library/0904_wangwei_atape/
    [ AIX_tape.docx ]

  • 相关阅读:
    Python3 迭代器与生成器
    Kubernetes 1.24 正式发布,这里是更新功能总览!
    20192415 202120222 《网络与系统攻防技术》实验五实验报告
    20192415 202120222 《网络与系统攻防技术》实验六实验报告
    烦人的光荣榜
    pptVBA_多段文字拆为多个图形
    华为云对象存储客户端OBS Browser+下载
    InputNumber计数器
    VUE:为什么输入框无法输入内容?
    Springboot2.1.0整合RabbitMQ
  • 原文地址:https://www.cnblogs.com/fengaix6/p/4582208.html
Copyright © 2020-2023  润新知