このセクションでは、Oracle Solaris 11.4 リリースでのハードウェアに関する問題について説明します。
Oracle Solaris マルチパス化では、パスのフェイルオーバー中に非対称論理ユニットアクセス (ALUA) ストレージターゲット上で I/O エラーが発生することがあります。これは、SAS SCSI トランスポートを介して接続されているストレージでのみ発生します。cfgadm -alv では、SAS SCSI を介して接続されているデバイスは 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)
また、mpathadm show lu コマンドは非対称マルチパス化を要求します。
# mpathadm show lu /dev/dsk/c0t5000CCA02F187DA0d0s0 Logical Unit: /dev/rdsk/c0t5000CCA02F187DA0d0s2 mpath-support: libmpscsi_vhci.so ... Asymmetric: yes
この問題が発生した場合は、次のようなエラーが表示されます (読みやすいように人為的に改行されています)。
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 ...
回避方法: 修正がリリースされるまでは、影響を受ける VID/PID ペアの sd および ssd チューニング可能値を大きくすることで、この問題を回避できます。次の例に示すように、/etc/driver/drv/sd.conf または /etc/driver/drv/ssd.conf を変更します。
sd-config-list = "VID PID", "path-busy-retry-count:4294967295, path-busy-retry-timeout:180000";
この例に示されている path-busy-retry-count の値は、許容される最大の設定です。より低い値も機能するはずですが、どの値が機能するかは、システムアーキテクチャーおよびその他の状況によって異なります。したがって、どの場合にも機能する最小の値を示すことはできません。
この回避方法には次の制限事項があります。
path-busy-retry-count 値を大きくすると、フェイルオーバーの発生を待つ間にカーネルがスピンする可能性があります。これによって CPU 使用率が高くなります。したがって、この回避方法が有効になっているシステムでは、負荷が高くなり、パフォーマンスが低下することがあります。フェイルオーバーが完了すると、システムは回復します。
これらのチューニング可能値は、将来変更される可能性があり、バグ 28337990 の修正が利用可能になったあとは使用すべきではありません。SRU の Readme ファイルの修正されているバグに関するセクションを参照してください。
Oracle から明示的に推奨された場合を除き、これらのチューニング可能値をほかの目的に使用しないでください。
HCA での動的再構成 (DR) 操作の実行中に、ibqueryerrors や ibdiagnet などの InfiniBand (IB) ツールまたはユーティリティーが実行されている場合は、パニックが発生することがあります。DR 操作は、cfgadm や ldm remove-io など、結果として HCA デバイスを削除または構成解除するコマンドから発生した可能性があります。詳細は、ibqueryerrors(8)、ibdiagnet(1)、cfgadm(8)、および ldm(8) のマニュアルページを参照してください。
この理由でパニックが発生した場合は、次のようなエラーメッセージが表示されます。
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
通常、IB ツールがアクティブで、DR 操作の試行されている HCA を使用している場合、DR 操作は失敗し、HCA が使用中であることが示されます。
回避方法: InfiniBand HCA デバイスでの DR 操作の実行中に、InfiniBand のツール、ユーティリティー、またはアプリケーション (ibqueryerrors や ibdiagnet など) がアクティブになっていないことを確認してください。
ターゲットへの接続が一時的に中断された場合、180 秒 (3 分) のデフォルトの iSCSI 最大接続再試行時間は、iSCSI ブートデバイスを使用しているイニシエータには不十分である可能性があります。次のエラーメッセージが表示されます。
NOTICE: iscsi connection(19) unable to connect to target iqn.1986-03.com.sun:02:hostname, target address 192.168.001.160
回避方法: iSCSI ブートデバイスを使用しているイニシエータでは、iSCSI 最大接続再試行時間を少なくとも 1080 秒 (18 分) に増やします。