Cette section décrit les problèmes liés au matériel dans la version Oracle Solaris 11.4.
La fonctionnalité de multipathing d'Oracle Solaris peut rencontrer des erreurs d'E/S sur des cibles de stockage ALUA (Asymmetric Logical Unit Access) lors du basculement de chemin en cas d'incident. Ces erreurs ne se produisent qu'avec les unités de stockage connectées via le transport SAS SCSI. Un périphérique connecté via SAS SCSI est énuméré par cfgadm -alv sous un contrôleur de type scsi-sas:
c7 connected configured unknown unavailable scsi-sas n /devices/pci@301/pci@1/scsi@0/iport@1:scsi c7::w5000cca02f187da1,0 connected configured unknown Client Device: /dev/dsk/c0t5000CCA02F187DA0d0s0(sd7)
En outre, la commande mpathadm show lu indique des chemins d'accès multiples asymétriques :
# mpathadm show lu /dev/dsk/c0t5000CCA02F187DA0d0s0 Logical Unit: /dev/rdsk/c0t5000CCA02F187DA0d0s2 mpath-support: libmpscsi_vhci.so ... Asymmetric: yes
Si ce problème survient, vous verrez une erreur du type suivant (des sauts de ligne ont été ajoutés pour améliorer la lisibilité) :
Jul 15 2018 13:22:45.123456789 ereport.io.scsi.cmd.disk.tran nvlist version: 0 class = ereport.io.scsi.cmd.disk.tran ... thread-stacks = stack[0] = genunix`fm_dev_report_postv+2c8() |scsi`scsi_fm_report_post+204() |sd`sd_report_post+a04() |sd`sd_intr_report_post+150() |sd`sd_return_command+15c() |sd`sdintr+a00()|scsi`scsi_hba_pkt_comp+e94() |scsi_vhci`vhci_intr+d6c() |scsi`scsi_hba_pkt_comp+e94() |scsi`scsi_pkt_comp_daemon+c8() ... pkt-reason = 0x1a pkt-state = 0x0 pkt-stats = 0x0 ...
Solution de contournement : En attendant qu'un correctif soit publié, vous pouvez contourner ce problème en augmentant les valeurs des paramètres réglables sd et ssd pour une paire VID/PID concernée. Modifiez /etc/driver/drv/sd.conf ou /etc/driver/drv/ssd.conf comme indiqué dans l'exemple suivant :
sd-config-list = "VID PID", "path-busy-retry-count:4294967295, path-busy-retry-timeout:180000";
Notez que la valeur indiquée pour path-busy-retry-count dans cet exemple correspond au paramètre maximal autorisé. Une valeur inférieure devrait fonctionner, mais cela dépend de l'architecture du système et d'autres facteurs. Par conséquent, il est impossible d'indiquer la valeur minimale qui fonctionnera pour chaque cas.
Cette solution de contournement comporte les restrictions et limites suivantes :
Une valeur path-busy-retry-count élevée peut entraîner la rotation du noyau en attendant que le basculement ait lieu. Il en résulte une forte utilisation de la CPU. Par conséquent, un système sur lequel cette solution de contournement est mise en œuvre pourra présenter une charge plus élevée et des performances moindres. Une fois le basculement terminé, une récupération du système a lieu.
Ces paramètres réglables sont susceptibles de changer à l'avenir et ne devraient plus être utilisés lorsqu'un correctif sera disponible pour le bogue 28337990. Reportez-vous à la section relative aux bogues corrigés dans les fichiers Readme de la SRU.
Ces paramètres réglables ne devraient être utilisés à aucune autre fin, sauf si Oracle le recommande explicitement.
Une erreur grave peut se produire si un outil ou utilitaire InfiniBand (IB) tel que ibqueryerrors ou ibdiagnet est en cours d'exécution alors qu'une opération de reconfiguration dynamique (DR) est effectuée sur un adaptateur HCA. L'opération DR peut provenir de commandes telles quecfgadm ou ldm remove-io qui servent à retirer un périphérique HCA ou à annuler sa configuration. Reportez-vous aux pages de manuel ibqueryerrors(8), ibdiagnet(1), cfgadm(8) et ldm(8) pour plus d'informations.
Si une erreur grave se produit pour cette raison, un message semblable au suivant s'affiche :
panic[cpu14]/thread=c0405b9fe3980: BAD TRAP: type=31 rp=2a101bcf320 addr=62 mmu_fsr=0 occurred in module "ibtl" due to a NULL pointer dereference
En principe, si un outil IB est actif et utilise un adaptateur HCA sur lequel a lieu une tentative de DR, l'opération DR échoue en indiquant que le HCA est en cours d'utilisation.
Solution de contournement : Assurez-vous qu'aucun outil, utilitaire ou application InfiniBand (tels que ibqueryerrors ou ibdiagnet) n'est actif pendant l'exécution d'une opération DR sur un périphérique HCA InfiniBand.
Lorsque la connexion à une cible est temporairement interrompue, le délai maximal de tentatives de connexion iSCSI par défaut de 180 secondes (3 minutes) peut être insuffisant pour les initiateurs qui utilisent un périphérique d'initialisation iSCSI. Le message d'erreur suivant s'affiche :
NOTICE: iscsi connection(19) unable to connect to target iqn.1986-03.com.sun:02:hostname, target address 192.168.001.160
Solution de contournement : Augmentez le délai maximal de tentative de connexion iSCSI jusqu'à 1080 secondes (18 minutes) au moins sur les initiateurs qui utilisent le périphérique d'initialisation iSCSI.