通过 mtx 与 CentOS 7 上的磁带库交互

J.C*_*.C. 6 backup centos tape

我有一个 Quantum SuperLoader 3 通过 SAS 插入 CentOS 7 系统。它显示在dmesg和中,lsscsi并且由ch驱动程序处理。

$ lsscsi
[0:2:0:0]    disk    LSI      MR9271-8i        3.24  /dev/sda
[1:0:0:0]    tape    IBM      ULTRIUM-HH6      E4J1  /dev/st0
[1:0:0:1]    mediumx QUANTUM  UHDL             0091  /dev/sch0
Run Code Online (Sandbox Code Playgroud)

这是内核初始化:

$ dmesg
[   13.443589] scsi 1:0:0:0: Attached scsi generic sg2 type 1
[   13.444091] scsi 1:0:0:1: Attached scsi generic sg3 type 8
[   13.463023] SCSI Media Changer driver v0.25
[   13.463121] st: Version 20101219, fixed bufsize 32768, s/g segs 256
[   13.572514] ch0: type #1 (mt): 0x0+1 [medium transport]
[   13.572516] ch0: type #2 (st): 0x100+16 [storage]
[   13.572517] ch0: type #3 (ie): 0x0+0 [import/export]
[   13.572518] ch0: type #4 (dt): 0x20+1 [data transfer]
[   13.697117] ch0: dt 0x20: ch0: ID/LUN unknown
[   13.697119] ch0: INITIALIZE ELEMENT STATUS, may take some time ...
[   67.097903] ch0: ... finished
[   67.097910] ch 1:0:0:1: Attached scsi changer ch0
[   67.098792] st 1:0:0:0: Attached scsi tape st0
[   67.098796] st 1:0:0:0: st0: try direct i/o: yes (alignment 4 B)
Run Code Online (Sandbox Code Playgroud)

磁带机使用该mt-st包正常运行。我还安装mtx了与 Bacula 或 Amanda 一起使用的mtx驱动程序,但似乎期望使用与ch.

驱动程序似乎有某些工具ch,例如 scsi-changer,但它们似乎并不常用,因此我想必须有一种方法可以直接mtx使用ch驱动程序。

当以明显的方式调用时:

$ sudo mtx -f /dev/sch0 status
/dev/sch0 is not an sg device, or old sg driver
Run Code Online (Sandbox Code Playgroud)

/dev/sch0 是:

$ ls -lastZ /dev/sch0
crw-rw----. root cdrom system_u:object_r:device_t:s0    /dev/sch0
Run Code Online (Sandbox Code Playgroud)

我将尝试使用 kraxel.org SCSI 转换器,但鉴于 Amanda 缺乏支持,任何解决mtx问题的建议都将是一个福音。

J.C*_*.C. 8

弄清楚了!

mtx仅在“通用”SCSI 设备上起作用。内核驱动程序/dev/sch0提供的设备ch有点像红鲱鱼。

事实证明,除了创建的驱动程序支持的特定设备之外,SCSI 设备还被赋予了“通用”设备文件。你可以找到那些使用lsscsi

$ lsscsi --generic
[0:0:19:0]   enclosu CISCO    UCS 240          0809  -          /dev/sg0
[0:2:0:0]    disk    LSI      MR9271-8i        3.24  /dev/sda   /dev/sg1
[1:0:0:0]    tape    IBM      ULTRIUM-HH6      E4J1  /dev/st0   /dev/sg2
[1:0:0:1]    mediumx QUANTUM  UHDL             0091  /dev/sch0  /dev/sg3
Run Code Online (Sandbox Code Playgroud)

这些实际上在dmesg上面的输出中提到了。使用通用设备,mtx可以在 CentOS 7 上与 SuperLoader 3 配合使用:

$ sudo mtx -f /dev/sg3 status
  Storage Changer /dev/sg3:1 Drives, 16 Slots ( 0 Import/Export )
Data Transfer Element 0:Empty
      Storage Element 1:Empty
      Storage Element 2:Empty
      Storage Element 3:Empty
      Storage Element 4:Empty
      Storage Element 5:Empty
      Storage Element 6:Empty
      Storage Element 7:Empty
      Storage Element 8:Empty
      Storage Element 9:Empty
      Storage Element 10:Empty
      Storage Element 11:Empty
      Storage Element 12:Empty
      Storage Element 13:Empty
      Storage Element 14:Empty
      Storage Element 15:Empty
      Storage Element 16:Empty
Run Code Online (Sandbox Code Playgroud)

所有剩下要做的就是符号链接/dev/changer/dev/sg3提供方便。