У меня есть виртуальная машина Debian, работающая на VMware, где cat /sys/class/scsi_host/host?/proc_name
возвращает следующий вывод:
ata_piix
ata_piix
mptspi
Из этого я понимаю, что виртуальная машина имеет три (виртуальных) SCSI HBA.
Как я могу узнать, какие из этих HBA (host0
, host1
, или host2
) поддерживает виртуальный диск моей виртуальной машины?
vSphere Client показывает виртуальные машины Hard Disk 1
с участием Virtual Device Node: SCSI (0:0) Hard Disk 1
и это SCSI controller 0
так как SCSI Controller Type: LSI Logic Parallel
. На хосте, по-видимому, работает VMware ESXi 6.0.0.
Есть несколько способов сделать это - я только что перечислил два ниже.
Использовать hwinfo
если он у вас установлен:
$ hwinfo --disk
...
28: IDE 06.0: 10600 Disk
...
SysFS Device Link: /devices/pci0000:00/0000:00:01.0/0000:01:00.0/host0/port-0:6/end_device-0:6/target0:0:6/0:0:6:0
...
Driver: "mpt3sas", "sd"
Driver Modules: "mpt3sas", "sd_mod"
Device File: /dev/sdg
...
Контроллер находится в SysFS Device Link (PCI ID 01: 00.0 идентифицирует его).
Найдите диски, связанные с вашими контроллерами:
$ lspci
...
03:00.0 Serial Attached SCSI controller: VMware PVSCSI SCSI Controller (rev 02)
$ ls -l /sys/block/sd* |grep 03:00
lrwxrwxrwx 1 root root 0 Dec 20 10:19 /sys/block/sda -> ../devices/pci0000:00/0000:00:15.0/0000:03:00.0/host0/target0:0:0/0:0:0:0/block/sda
lrwxrwxrwx 1 root root 0 Dec 20 10:19 /sys/block/sdb -> ../devices/pci0000:00/0000:00:15.0/0000:03:00.0/host0/target0:0:1/0:0:1:0/block/sdb
Выше мы находим идентификаторы PCI для контроллеров дисков, а затем выясняем, какие диски подключены к интересующему нас контроллеру (в данном случае 03:00 это идентификатор контроллера).
Примечание: Приведенные выше выходные данные команд поступают с двух разных машин.