红联Linux门户
Linux帮助

RHEL6虚拟磁带机使用指南

发布时间:2014-12-03 15:05:15来源:linux网站作者:斩月

在linux上学习备份命令tar的时候,有提到使用磁带机将数据备份到磁带,但对于学习者来说,很少有机会使用真正的磁带机,只有在归档海量数据的时候,磁带机会比较常见,在使用Oracle rman进行备份和恢复的时候也需要磁带机,因而本章介绍下如何在rhel6 64位操作系统下模拟磁带机和模拟磁带机的简单使用。


一:配置相关环境,编译安装mhvtl.tgz(linux 虚拟带库)

[root@rhel6 src]# tar -zxvf mhvtl.tgz  
[root@rhel6 src]# cd mhvtl-0.18/ 
[root@rhel6 mhvtl-0.18]# yum -y install zlib-devel mtx mt-st lsscsi 
[root@rhel6 mhvtl-0.18]# useradd vtl 
[root@rhel6 mhvtl-0.18]# echo '123456' |passwd --stdin vtl 
Changing password for user vtl. 
passwd: all authentication tokens updated successfully. 
 
[root@rhel6 mhvtl-0.18]# mkdir /opt/mhvtl//虚拟带库存储路径 
[root@rhel6 mhvtl-0.18]# mkdir /etc/mhvtl//配置文件路径 
[root@rhel6 mhvtl-0.18]# chown -R vtl.vtl /opt/mhvtl/ /etc/mhvtl/ 
 
[root@rhel6 mhvtl-0.18]# cd kernel/  //需要安装kernel-devel和kernke-headers软件包,否则以下编译会报错 
[root@rhel6 kernel]# ls 
fetch24.c  fetch26.c  fetch27.c  fetch.c  Makefile  mhvtl.c  mhvtl-kmod.spec  vtl_common.h 
[root@rhel6 kernel]# make && make install 
[root@rhel6 kernel]# modprobe mhvtl 
[root@rhel6 kernel]# lsmod  |grep mhvtl  
mhvtl  26165  0  
 
[root@rhel6 kernel]# cd .. 
[root@rhel6 mhvtl-0.18]# make && make install 
 
[root@rhel6 mhvtl-0.18]# /etc/init.d/mhvtl start  //启动mhvtl程序 
vtltape: version 0.18.10 
vtltape: version 0.18.10 
vtltape: version 0.18.10 
vtltape: version 0.18.10 
vtltape: version 0.18.10 
vtltape: version 0.18.10 
vtltape: version 0.18.10 
vtltape: version 0.18.10 
vtllibrary: version 0.18.10 
vtllibrary process PID is 14448 
vtllibrary: version 0.18.10 
vtllibrary process PID is 14451 
 
[root@rhel6 mhvtl-0.18]# ls /etc/mhvtl/ 
device.conf  library_contents.10  library_contents.30  mhvtl.conf 
[root@rhel6 mhvtl-0.18]# ls /opt/mhvtl/ 
CLN101L4  E01002L4  E01007L4  E01012L4  E01017L4  E03002L4  E03007L4  E03012L4  E03017L4  F01031L5  F01036L5  F03031L5  F03036L5 
CLN102L5  E01003L4  E01008L4  E01013L4  E01018L4  E03003L4  E03008L4  E03013L4  E03018L4  F01032L5  F01037L5  F03032L5  F03037L5 
CLN301L4  E01004L4  E01009L4  E01014L4  E01019L4  E03004L4  E03009L4  E03014L4  E03019L4  F01033L5  F01038L5  F03033L5  F03038L5 
CLN302L5  E01005L4  E01010L4  E01015L4  E01020L4  E03005L4  E03010L4  E03015L4  E03020L4  F01034L5  F01039L5  F03034L5  F03039L5 
E01001L4  E01006L4  E01011L4  E01016L4  E03001L4  E03006L4  E03011L4  E03016L4  F01030L5  F01035L5  F03030L5  F03035L5
 

二:查看带库相关信息

[root@rhel6 mhvtl-0.18]# lsscsi -g 
[0:0:0:0]diskATA  ST3160815AS  4.AA  /dev/sda   /dev/sg0 
[8:0:0:0]storage IET  Controller   0001  - /dev/sg1 
[8:0:0:1]diskIET  VIRTUAL-DISK 0001  /dev/sdb   /dev/sg2 
[9:0:0:0]mediumx STK  L700 550V  /dev/sch0  /dev/sg11  //为带库机械手 
[9:0:1:0]tapeIBM  ULT3580-TD5  550V  /dev/st0   /dev/sg3 
[9:0:2:0]tapeIBM  ULT3580-TD5  550V  /dev/st1   /dev/sg4 
[9:0:3:0]tapeIBM  ULT3580-TD4  550V  /dev/st2   /dev/sg5 
[9:0:4:0]tapeIBM  ULT3580-TD4  550V  /dev/st3   /dev/sg6 
[9:0:8:0]mediumx SPECTRA  PYTHON   550V  /dev/sch1  /dev/sg12  //为带库机械手 
[9:0:9:0]tapeIBM  ULT3580-TD4  550V  /dev/st4   /dev/sg7 
[9:0:10:0]   tapeIBM  ULT3580-TD4  550V  /dev/st5   /dev/sg8 
[9:0:11:0]   tapeIBM  ULT3580-TD4  550V  /dev/st6   /dev/sg9 
[9:0:12:0]   tapeIBM  ULT3580-TD4  550V  /dev/st7   /dev/sg10 
 
[root@rhel6 mhvtl-0.18]# lsscsi -l 
[0:0:0:0]diskATA  ST3160815AS  4.AA  /dev/sda  
state=running queue_depth=31 scsi_level=6 type=0 device_blocked=0 timeout=30
[8:0:0:0]storage IET  Controller   0001  -
state=running queue_depth=32 scsi_level=6 type=12 device_blocked=0 timeout=0
[8:0:0:1]diskIET  VIRTUAL-DISK 0001  /dev/sdb  
state=running queue_depth=32 scsi_level=6 type=0 device_blocked=0 timeout=30
[9:0:0:0]mediumx STK  L700 550V  /dev/sch0 
state=running queue_depth=32 scsi_level=6 type=8 device_blocked=0 timeout=0
[9:0:1:0]tapeIBM  ULT3580-TD5  550V  /dev/st0  
state=running queue_depth=32 scsi_level=6 type=1 device_blocked=0 timeout=900
[9:0:2:0]tapeIBM  ULT3580-TD5  550V  /dev/st1  
state=running queue_depth=32 scsi_level=6 type=1 device_blocked=0 timeout=900
[9:0:3:0]tapeIBM  ULT3580-TD4  550V  /dev/st2  
state=running queue_depth=32 scsi_level=6 type=1 device_blocked=0 timeout=900
[9:0:4:0]tapeIBM  ULT3580-TD4  550V  /dev/st3  
state=running queue_depth=32 scsi_level=6 type=1 device_blocked=0 timeout=900
[9:0:8:0]mediumx SPECTRA  PYTHON   550V  /dev/sch1 
state=running queue_depth=32 scsi_level=6 type=8 device_blocked=0 timeout=0
[9:0:9:0]tapeIBM  ULT3580-TD4  550V  /dev/st4  
state=running queue_depth=32 scsi_level=6 type=1 device_blocked=0 timeout=900
[9:0:10:0]   tapeIBM  ULT3580-TD4  550V  /dev/st5  
state=running queue_depth=32 scsi_level=6 type=1 device_blocked=0 timeout=900
[9:0:11:0]   tapeIBM  ULT3580-TD4  550V  /dev/st6  
state=running queue_depth=32 scsi_level=6 type=1 device_blocked=0 timeout=900
[9:0:12:0]   tapeIBM  ULT3580-TD4  550V  /dev/st7  
state=running queue_depth=32 scsi_level=6 type=1 device_blocked=0 timeout=900

[root@rhel6 ~]# mtx -f /dev/sg11 status 
Storage Changer /dev/sg11: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@rhel6 ~]# mtx -f /dev/sg11 load 1 0  //将磁带从1号槽位装入driver 0
Loading media from Storage Element 1 into drive 0...done 
 
[root@rhel6 ~]# mtx -f /dev/sg11 status 
Storage Changer /dev/sg11:4 Drives, 43 Slots ( 4 Import/Export ) 
Data Transfer Element 0:Full (Storage Element 1 Loaded):VolumeTag = E01001L4 
Data Transfer Element 1:Empty 
Data Transfer Element 2:Empty 
Data Transfer Element 3:Empty  
————————输出省略————————————


三:使用磁带机,nst0代表不回卷设备

1.将数据归档到模拟磁带机 
[root@rhel6 media]# mt -f /dev/nst0 tel 
At block 0. 
[root@rhel6 media]# tar -cvf /dev/nst0 张敬轩\ -\ 定局\ -\ 盛世仁杰主题曲.mp3  
张敬轩 - 定局 - 盛世仁杰主题曲.mp3 
[root@rhel6 media]# mt -f /dev/nst0 tel 
At block 350. 
 
2.倒带至磁带头并查看磁带内容,查看完内容后,会把磁带指针停止在内容位置后 
[root@rhel6 media]# mt -f /dev/nst0 rewind 
[root@rhel6 media]# mt -f /dev/nst0 tel 
At block 0. 
[root@rhel6 media]# tar -tvf /dev/nst0 
-rw-r--r-- nobody/nobody 3569715 2010-07-26 04:54 张敬轩 - 定局 - 盛世仁杰主题曲.mp3 
[root@rhel6 media]# mt -f /dev/nst0 tel 
At block 349. 
 
3.继续添加文件至磁带机 
[root@rhel6 media]# tar -cvf /dev/nst0 /boot/vmlinuz-2.6.32-71.el6.x86_64  
/boot/vmlinuz-2.6.32-71.el6.x86_64 
[root@rhel6 media]# mt -f /dev/nst0 tel 
At block 721. 
 
4.从磁带机中导出归档文件 
[root@rhel6 media]# mt -f /dev/nst0 rewind  
[root@rhel6 media]# tar -tvf /dev/nst0 
-rw-r--r-- nobody/nobody 3569715 2010-07-26 04:54 张敬轩 - 定局 - 盛世仁杰主题曲.mp3 
 
[root@rhel6 media]# mt -f /dev/nst0 rewind 
[root@rhel6 media]# rm -i 张敬轩\ -\ 定局\ -\ 盛世仁杰主题曲.mp3//删除本地文件 
rm: remove regular file `张敬轩 - 定局 - 盛世仁杰主题曲.mp3'? y 
 
[[root@rhel6 media]# tar -xvf /dev/nst0  //导出第一个文件 
张敬轩 - 定局 - 盛世仁杰主题曲.mp3 
 
[root@rhel6 media]# tar -xvf /dev/nst0   //导出第二个文件 
boot/vmlinuz-2.6.32-71.el6.x86_64 
 
验证: 
[root@rhel6 media]# ls 
boot  张敬轩 - 定局 - 盛世仁杰主题曲.mp3 
[root@rhel6 media]# ls boot/ 
vmlinuz-2.6.32-71.el6.x86_64 

5.清除磁带机中的数据并倒带至磁带头 
[root@rhel6 media]# mt -f /dev/nst0 erase 
[root@rhel6 media]# mt -f /dev/nst0 tel 
At block 0.


四:卸载磁带机

[root@rhel6 media]# mtx -f /dev/sg11 unload 1 0 
Unloading drive 0 into Storage Element 1...done


【注意事项】

【本文档所带来的系列数据风险作者不予承担】
################################################
# HP380 G3 DAT72 磁带机启用简明
# DB 2.2
################################################
# 说明:
#echo "engage scsi" >> /proc/driver/cciss/cciss0 (0 or 1)与启用的阵列卡有关
#cat /proc/scsi/scsi查看设备是否已经启用

/dev/st0回卷设备名
/dev/nst0不回卷设备名

mt -f /dev/st0 tel查看当前位置后回卷

mt -f /dev/nst0 tel查看当前位置后不回卷

mt -f /dev/nst0 status查看当前状态后不回卷

mt -f /dev/nst0 asf 1前往block 1处后不回卷【一般不用】

tar tvf /dev/nst0查看目录树后不回卷

tar tvf /dev/st0查看目录树后回卷至0

mt -f /dev/nst0 rewindrewind 它可以使磁带快倒至磁带头

mt -f /dev/nst0 eodeod 定位磁带到最后可进行追加写入

mt -f /dev/nst0 fsf [欲前进的记录段数]fsf 它可以使磁带快速前进若干段记录[默认一段]

mt -f /dev/nst0 bsf [欲退回的记录段数]bsf 它可以使磁带快速后退若干段记录[默认一段]

mt -f /dev/nst0 offlineoffline 使磁带快倒至磁带头并弹出磁带机

mt -f /dev/st0 erase清除数据后倒至磁带头【危险操作、时间较长】

mt -f /dev/st0 retension拉紧磁带

################################################

1.1ERP全备份
#################
#echo "engage scsi" >> /proc/driver/cciss/cciss0 (0 or 1)与启用的阵列卡有关
#cat /proc/scsi/scsi查看磁带机启用状态
#mt -f /dev/nst0 rewind回卷至磁带最开头
#nohup tar cf /dev/nst0 /ora1159/prod &备份/ora1159/prod后不回卷【大约3小时】
#mt -f /dev/nst0 offlineoffline 使磁带快倒至磁带头并弹出磁带机

1.2ERP全恢复
#################
#echo "engage scsi" >> /proc/driver/cciss/cciss0 (0 or 1)与启用的阵列卡有关
#cat /proc/scsi/scsi查看磁带机启用状态
#df -h查看/XXXXX/YYYYY可用空间大于70GB
#cd /XXXXX/YYYYY进入目标恢复目录
#mt -f /dev/nst0 rewind回卷至磁带最开头
#nohup tar -xpf /dev/nst0 &恢复开始【大约3小时】
#mt -f /dev/nst0 offlineoffline 使磁带快倒至磁带头并弹出磁带机

1.3ERP proddata备份
########################
#echo "engage scsi" >> /proc/driver/cciss/cciss0 (0 or 1)与启用的阵列卡有关
#cat /proc/scsi/scsi查看磁带机启用状态
#nohup tar cf /dev/nst0 /ora1159/prod/proddata &【注意使用不回卷设备名,一盘磁带备份2次,第二次备份完后再取出磁带】

1.4ERP proddata恢复【注意:恢复磁带第1段数据】
##################################################
#echo "engage scsi" >> /proc/driver/cciss/cciss0 (0 or 1)与启用的阵列卡有关
#cat /proc/scsi/scsi查看磁带机启用状态
#df -h查看/XXXXX/YYYYY可用空间大于40GB
#cd /XXXXX/YYYYY进入目标恢复目录
#mt -f /dev/nst0 rewind回卷至磁带最开头
#nohup tar -xpf /dev/nst0 &恢复开始【大约2小时】

1.5ERP proddata恢复【注意:恢复磁带第2段数据】
##################################################
#echo "engage scsi" >> /proc/driver/cciss/cciss0 (0 or 1)与启用的阵列卡有关
#cat /proc/scsi/scsi查看磁带机启用状态
#df -h查看/XXXXX/YYYYY可用空间大于40GB
#cd /XXXXX/YYYYY进入目标恢复目录
#mt -f /dev/nst0 rewind回卷至磁带最开头
#mt -f /dev/nst0 fsf前进至第2段记录的开始【与1.4的差别所在】
#nohup tar -xpf /dev/nst0 &恢复开始【大约2小时】

################################################
[root@erpapp diskA]# cat /proc/scsi/scsi
Attached devices: none
[root@erpapp diskA]# echo "engage scsi" >> /proc/driver/cciss/cciss0
[root@erpapp diskA]# cat /proc/scsi/scsi
Attached devices:
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: HP   Model: C7438A   Rev: V312
Type:   Sequential-AccessANSI SCSI revision: 03
[root@erpapp diskA]#

################################################
异地使用磁带机(必须为可信任用户)
1)备份数据至异地磁带机
tar cvf - dirname|rsh remote dd of=/dev/rmt/0
2)从异地磁带机读取数据 
rsh remote dd if=/dev/rmt/0 tar xvf -