Linux

在 Oracle Linux 8 中未檢測到 HP 1/8 G2 介質更換器

  • August 17, 2021

我有一個連接到 SAN 交換機的 HP 1x8 G2 Autoloader,在我的 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

經過幾天和幾週,終於…

問題是什麼?

HP 1x8 G2 Autoloader 是一種多 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 的資訊:

什麼是 NMP?

什麼是 SATP 和 VMW_SATP_LOCAL?

引用自:https://serverfault.com/questions/1073209