我有一台连接到 SAN 交换机的 HP 1x8 G2 自动加载机,在我的 VMware 环境中,我有一个应该可以使用磁带的 Oracle Linux。问题是将磁带连接到 VM 后,未检测到介质更换器,但磁带驱动器正常!
$ cat /proc/scsi/scsi
Attached devices:
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: VMware Model: Virtual disk Rev: 2.0
Type: Direct-Access ANSI SCSI revision: 06
Host: scsi2 Channel: 00 Id: 01 Lun: 00
Vendor: HP Model: Ultrium 6-SCSI Rev: 25MW
Type: Sequential-Access ANSI SCSI revision: 06
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: NECVMWar Model: VMware IDE CDR00 Rev: 1.00
Type: CD-ROM ANSI SCSI revision: 05
$ lsscsi -g
[0:0:0:0] cd/dvd NECVMWar VMware IDE CDR00 1.00 /dev/sr0 /dev/sg2
[2:0:0:0] disk VMware Virtual disk 2.0 /dev/sda /dev/sg0
[2:0:1:0] tape HP Ultrium 6-SCSI 25MW /dev/st0 /dev/sg1
$ ls -l /dev/tape/by-path
lrwxrwxrwx 1 root root 9 Jul 30 08:49 pci-0000:00:10.0-scsi-0:0:1:0 -> ../../st0
lrwxrwxrwx 1 root root 10 Jul 30 08:49 pci-0000:00:10.0-scsi-0:0:1:0-nst -> ../../nst0
$ lsmod | grep scsi
scsi_transport_spi 32768 1 mptspi
mptscsih 36864 1 mptspi
mptbase 94208 2 mptspi,mptscsih
$ lsmod | grep sg
sg 36864 0
$ lsmod | grep st
st 61440
我安装了适用于 Centos 8 的最新版本的 HPE 阵列控制器
$ yum list installed
kmod-hpsa.x86_64 3.4.20-5.el8_4.elrepo @elrepo
磁带自动装载机原本处于顺序模式,我将其改为自动模式。
内核信息:
$ uname -r
5.4.17-2102.202.5.el8uek.x86_64
mtx 输出:
$ mtx -f /dev/nst0 status
mtx: Request Sense: Long Report=yes
mtx: Request Sense: Valid Residual=no
mtx: Request Sense: Error Code=70 (Current)
mtx: Request Sense: Sense Key=Illegal Request
mtx: Request Sense: FileMark=no
mtx: Request Sense: EOM=no
mtx: Request Sense: ILI=no
mtx: Request Sense: Additional Sense Code = 20
mtx: Request Sense: Additional Sense Qualifier = 00
mtx: Request Sense: BPV=no
mtx: Request Sense: Error in CDB=no
mtx: Request Sense: SKSV=no
READ ELEMENT STATUS Command Failed
$ mtx -f /dev/nst0 inquiry
Product Type: Tape Drive
Vendor ID: 'HP '
Product ID: 'Ultrium 6-SCSI '
Revision: '25MW'
Attached Changer API: No
答案1
经过几天和几周的时间,终于……
问题是什么?
HP 1x8 G2 自动加载器是一种多 LUN 设备。任何想要使用磁带的系统都必须找到具有一个 SCSI 路径但有两个 LUN ID 的介质充电器和磁带驱动器。此功能称为多 LUN 扫描。
在我的测试中,当磁带连接到安装了 Centos 7(裸机)的 HP-DL380 时,我没有遇到问题。但在虚拟化环境中。ESXi 无法检测到介质更换器。
解决方案:
01-通过 ssh 登录 ESXi 主机
02- 在 scsidevs 列表中找到 HBA:
# esxcfg-scsidevs -a
03- 将 VMW_SATP_LOCAL 规则设置为设备:
# esxcli storage nmp rule add --driver=<HBA_DRIVER> --satp VMW_SATP_LOCAL
04- 重新启动主机 05- 检查 HBA 上的设备并找到介质更换器和磁带驱动器 06- 通过 SCSI 设备将设备添加到 VM
如果您想了解有关 NMP、SATP 和 VMW_SATP_LOCAL 的更多信息: