设备设计为使用一组全局资源为每个机头上的 LUN 提供服务。因此通常不需要限制客户机上的队列深度,因为设备的 FC 端口可以处理大量的并发请求。 即使这样,还是存在极小的队列溢出可能,而队列溢出会导致 SCSI 传输错误。此类队列溢出通常与以下一个或多个原因有关:
前端端口过载-与一个 FC 端口关联的主机太多和/或通过一个 FC 端口访问的 LUN 太多
设备在降级模式下运行,例如在设计为主动-主动群集配置的环境中进行群集接管时
虽然队列溢出的可能性很小,但是如果愿意根据客户机限制队列深度,则可以完全消除该可能性。要确定合适的队列深度限制,应该使用目标端口的数量乘以每个端口的最大并发命令 (2048),然后用得到的数字除以置备的 LUN 数量。要适应降级运行模式,应该对群集对等设备中的 LUN 数量求和,以确定 LUN 的数量,但是将两个群集对等设备的最小值用作目标端口的数量。例如,在主动-主动 7420 双机头群集中,如果一个机头具有 2 个 FC 端口和 100 个 LUN,而另一个机头具有 4 个 FC 端口和 28 个 LUN,则应该使用最保守的最大队列深度:两个端口乘以 2048 个命令,除以 100 个 LUN 与 28 个 LUN 的和-即每个 LUN 32 个命令。
最大队列深度的调整是特定于启动器的,但是在 Solaris 上,这将通过调整全局变量 ssd_max_throttle 来实现。
要对链路级别问题进行故障排除,例如光纤损坏或电缆接触不良,请查看每个 FC 端口的错误统计信息:如果任何数字明显为非零或不断增加,则可能表明出现了链路问题,应该执行链路级别诊断。