Linux下使用磁带机的方式有多种,主要有通过Amanda、Tar等软件进行操作。
Amanda是提供了远程集中备份的功能,通过分别设置客户端、服务器端,实现远程集中存储备份。而Tar主要用于单机环境下,将数据直接写入磁带的备份。针对单一节点的备份,只要简单的使用Tar命令进行备份、恢复即可。
安装
对于目前厂家的HP DAT24/40系列外置SCSI磁带机,都带有自动回卷功能。将其接在外置SCSI的总线上,并重新启动服务器。重新引导后,执行dmesg将可以看到新的磁带机设备叫/dev/st0。
blk: queue ef0d7a14, I/O limit 4095Mb (mask 0xffffffff)audit subsystem ver 0.1 initialized(scsi0:A:3): 10.000MB/s transfers (10.000MHz, offset 15) Vendor: HP Model: C1537A Rev: L805 Type: Sequential-Access ANSI SCSI revision: 02blk: queue ef0e4614, I/O limit 4095Mb (mask 0xffffffff)Attached scsi tape st0 at scsi0, channel 0, id 3, lun 0
磁带操作
装入磁带后,可执行如下操作:
倒带,将磁带卷至起始位置
mt -f /dev/st0 rewind
擦除,擦掉磁带上的内容
mt -f /dev/st0 erase
注意:擦除工作非常慢,并且对磁带有损伤,最好不要执行,当数据写满后,可以继续写入数据并覆盖原有数据,无须执行擦除动作。新磁带打开封装后立刻可以使用,不需要执行擦除。
出带,将磁带卷至初始位置然后从磁带机内弹出
mt –f /dev/st0 offline
数据操作
基本操作如下:
1. 列目录操作tar tvf /dev/st0
假如磁带上没有任何文件,则列目录会报错,这个错误没有关系,不影响磁带的使用。
[root@dev131 /root]# tar tvf /dev/st0tar: /dev/st0: Cannot read: Input/output errortar: At beginning of tape, quitting nowtar: Error is not recoverable: exiting now[root@dev131 /root]#
2. 写入数据操作tar cvf /dev/st0 <要写入的文件名>
写入数据的方法有两种:不打包直接写入文件和打包压缩后写入文件。二者各有优缺点。不打包直接写入文件的方法,看起来效率低,操作复杂,但是可以提高数据的生存率。磁带是一种线性存储的设备,所有数据紧挨着顺序写入。当磁带的某一点损坏的时候,其余位置的磁带还可以继续读取,其中的文件也都能读出。如果采用了打包压缩后写入的方法,则磁带上存储的只有一个文件。当磁带有任何一个地方发生了故障无法读取,则这个压缩文件将缺少一些细节,即使是一个bit的错误,也将导致压缩文件报告CRC错误无法解压。所以,如果是存储大量的数据,建议直接写入。如果是存取小文件,则最好打包并给文件名加时间标记写入。
例如要将/root/test1.tar.gz写入到磁带并覆盖磁带的内容:
tar cvf /dev/st0 test1.tar.gz
磁带机的传输速度比较慢,对于不是很大的文件备份,稍等几秒,写入即可完成。使用参数cvf将覆盖此带上的已有文件。
随后列出磁带上的文件:
[root@dev131 /root]# tar tvf /dev/st0-rw-r--r-- root/root 320 2006-12-01 09:29:02 test1.tar.gz[root@dev131 /root]#
可看到数据写入成功。
注意:这个命令只能在磁带是全新的时候写入,在第二次执行的时候,就会覆盖掉磁带上原来的数据。另外,使用tar命令备份,要求备份文件体积必须小于单盘磁带的容量,即一个文件不能跨越两盘磁带。如果遇到这种情况,则不能使用tar命令备份,需要换其他备份程序进行操作。