免責事項:これは英文の記事「"Unable to map SG array on path vmhba" and "lost volume access" on ESXi 8.0 U3 with qedf driver」の日本語訳です。記事はベストエフォートで翻訳を進めているため、ローカライズ化コンテンツは最新情報ではない可能性があります。最新情報は英語版の記事で参照してください。
var/run/log/vmkernel.log ファイル内に以下のエラーが出力される:qedf:vmhba#:qedfc_eh_abort:####:Info: IO not found
Unable to map SG array on path vmhba##:C#:T#:L#. Status: DMA mapping could not be completed DMA Error: Can't meet SG element alignment.
ESXi ホストがボリュームにアクセスできなくなり、/var/run/log/hostd.log に以下のエラーが出力される:
YYYY-MM-DDTHH:MM:SS.SSSZ In(14) vobd[2097573]: [vmfsCorrelator] 5023532722987us: [vob.vmfs.heartbeat.timedout] 5fd008d5-########-####-######## VMware-DatastoreLost access to volume ########-########-####-##########98 (datastore) due to connectivity issues. Recovery attempt is in progress and outcome will be reported shortly.Lost access to volume ########-########-####-########## (datastore) due to connectivity issues. Recovery attempt is in progress and outcome will be reported shortly.,Information,,esx.problem.vmfs.heartbeat.timedout,,Hostname,MM/DD/YYYY, HH:MM:SS"
VMware ESXi 8.0 Update 3
QLogic FastLinQ QL41xxx Series 10/25 GbE Controller (FCoE)
qedf ドライバ
この問題は、qedf ドライバによって提示される DMA の制約と、Pluggable Storage Architecture (PSA) のロジックの競合によって発生します。
大きなブロックサイズの I/O 要求が発行されると、これらの制約に基づいて要求が誤って分割される可能性があり、その結果、DMA マッピングの失敗や、それに続くボリュームアクセスの喪失につながります。
ESXi 8.0.3 では、大きなブロックに対する DMA 割り当ての最適化は、ESXi の詳細設定パラメータである ScsiPathSplitUseSimpleCloneBuffer によって制御されています。
この問題は、VMware ESXi 8.0 Update 3h リリース ノート に記載の通り、ESXi バージョン 8.0 U3h 以降で修正されています。
この問題を回避するには、影響を受ける ESXi ホスト上の SCSI パス分割の設定を変更します。
ScsiPathSplitUseSimpleCloneBuffer の設定値を確認します。(Default は 1 です): esxcli system settings advanced list -o /Scsi/ScsiPathSplitUseSimpleCloneBuffer
Path: /Scsi/ScsiPathSplitUseSimpleCloneBuffer Type: integer Int Value: 1 <<<<==== 現在デフォルト値の 1 が設定されています。 Default Int Value: 1 Min Value: 0 Max Value: 1 String Value: Default String Value: Valid Characters: Description: Use simple clone buffers to split IOs at path layer whenever possible. Host Specific: false Impact: noneesxcli system settings advanced set -o /Scsi/ScsiPathSplitUseSimpleCloneBuffer -i 0esxcli system settings advanced list -o /Scsi/ScsiPathSplitUseSimpleCloneBuffer
Path: /Scsi/ScsiPathSplitUseSimpleCloneBuffer Type: integer Int Value: 0 <<<<==== 手順 2 の後にこの値が 0 に変更されます。 Default Int Value: 1 Min Value: 0 Max Value: 1 String Value: Default String Value: Valid Characters: Description: Use simple clone buffers to split IOs at path layer whenever possible. Host Specific: false Impact: none上記操作に再起動は必要なく、再起動後も対象設定が引き継がれます。
Emulex アダプタ (lpfc ドライバ) または qlnativefc ドライバを使用する QLogic アダプタ を使用するホストではこの問題の発生は確認されていません。