iSCSI 网络中的队列深度限制
队列深度是可在某一设备上并行运行的 I/O 操作数。如果要为 iSCSI 网络设计一个配置,那么必须估算每个节点的队列深度以避免应用程序故障。
如果节点达到已排队命令的最大数量,那么它将向主机返回错误代码,例如 Resource unavailable。 许多操作系统在该情况持续超过 15 秒的情况下无法恢复。这可能会导致一个或多个服务器在服务器上显示应用程序错误和应用程序故障。
队列深度计算公式考虑以下因素:
- 最大已排队命令数对于每个节点进行计算。I/O 组中有两个节点。I/O 组中的一个节点不可用时,系统必须继续运行。 因此,I/O 组被视为与节点拥有相同数量的已排队命令。如果一个节点发生故障,那么每个磁盘的路径数都会减半。
- 如果卷被映射为让多个服务器都可以看到,那么这些服务器中的每一个都可以向其发送命令。
- 如果设备驱动程序在执行命令时超时,那么它会立即重新发出该命令。这些命令存储在命令队列中。
计算了队列深度限制后,必须应用该限制。每个操作系统都有特定方法来对每个卷都限制队列深度;请参阅您的主机操作系统文档来更改队列深度。