Question :Comment activer ou désactiver temporairement les ports HBA, sans redémarrage ?
1. Localisez l'adresse HBA sur le bus PCI :
# lspci -k ... 19:00.0 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02) Subsystem: QLogic Corp. Device 0171 Kernel driver in use: qla2xxx 19:00.1 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02) Subsystem: QLogic Corp. Device 0171 Kernel driver in use: qla2xxx ...
Méthode alternative pour les périphériques bloqués :
– Les périphériques blocs ont leur adresse de bus PCI disponible par le nom du disque :
# ls -l /dev/disk/by-path/ | grep -v part lrwxrwxrwx 1 root root 9 Jan 8 04:03 pci-0000:19:00.0-fc-0x21000024ff49572c-lun-0 -> ../../sdx lrwxrwxrwx 1 root root 9 Dec 29 10:36 pci-0000:19:00.0-fc-0x21000024ff49572c-lun-1 -> ../../sdy lrwxrwxrwx 1 root root 10 Jan 8 04:07 pci-0000:19:00.0-fc-0x21000024ff49572c-lun-10 -> ../../sdbx lrwxrwxrwx 1 root root 10 Jan 8 04:07 pci-0000:19:00.0-fc-0x21000024ff49572c-lun-11 -> ../../sdby lrwxrwxrwx 1 root root 10 Jan 8 04:07 pci-0000:19:00.0-fc-0x21000024ff49572c-lun-12 -> ../../sdbz lrwxrwxrwx 1 root root 9 Dec 29 10:36 pci-0000:19:00.0-fc-0x21000024ff49572c-lun-2 -> ../../sdz
2. Déconnectez le périphérique PCI du bus PCI en utilisant le nom du pilote de périphérique et l'adresse PCIbus trouvés précédemment :
# echo '[pci-device-id]' > /sys/bus/pci/drivers/[pci-driver-name]/unbind
Par exemple, détachez le périphérique /dev/sdy du PCIbus :
# echo '0000:19:00.0' > /sys/bus/pci/drivers/qla2xxx/unbind
3. Connectez l'appareil au pilote :
# echo "[pci-device-id]" > /sys/bus/pci/drivers/[pci_driver_name]/bind
Par exemple, faites en sorte que le périphérique PCI 0000:19:00.0 soit contrôlé par le pilote qla2xxx :
# echo '0000:19:00.0' > /sys/bus/pci/drivers/qla2xxx/bind