Fibre Channel host configuration guidelines
Use the following guidelines to configure host settings in different environments.
It is not possible to negotiate the queue depth for initiator by using Fibre Channel protocol. To avoid congestion issues and allow a certain level of software flow control, each initiator port is configured to limit the number of outstanding I/Os to each target port so that the outstanding I/Os from all initiator ports does not exceed the number of concurrent I/O that are supported by the target port.
There are two ways to limit the initiator outstanding I/O – per LUN limits or per remote port limits. Not each Fibre Channel adapter allows per remote port limits, but all support limit per LUN (mapped volume). For example, Broadcom HBAs have driver settings for queue depths of target and LUN, but Qlogic HBAs have driver settings for LUN queue depth only. Additionally, QLogic has firmware options for throttling the I/O, and can be configured by using QLogic CLI (the limits appear to be per source port and not per remote target). A combination of one or multiple initiator parameters allow the customer to achieve desirable initiator configuration.
These parameters are critical for both performance (small number of hosts) and congestion avoidance (large number of hosts). The initiator configuration needs to be correctly defined as a function of number of active hosts. This defines the number of maximal I/O per host.
Use the following table to determine settings for initiator configuration for the number of I/Os per remote ports. These values are dependent on how many hosts are active on each target port:
Active ports per canister | 100% host per ports | 75% host per ports | 50% host per ports | 25% host per ports | 10% host per ports | |||||
---|---|---|---|---|---|---|---|---|---|---|
Hosts per port | Initiator setting | Hosts per port | Initiator setting | Hosts per port | Initiator setting | Hosts per port | Initiator setting | Hosts per port | Initiator setting | |
8 | 512 | 8 | 384 | 11 | 256 | 16 | 128 | 32 | 51 | 80 |
12 | 341 | 12 | 256 | 16 | 171 | 24 | 85 | 48 | 34 | 120 |
16 | 256 | 16 | 192 | 21 | 128 | 32 | 64 | 64 | 26 | 160 |
20 | 205 | 20 | 154 | 27 | 102 | 40 | 51 | 80 | 20 | 200 |
24 | 171 | 24 | 128 | 32 | 85 | 48 | 43 | 96 | 17 | 240 |
The preceding table evaluates the number of maximal concurrent I/Os from each host, when each host is doing I/O, based on the number of active hosts. Use the following information to change host configuration when large number of hosts are configured.
- Minimum number of target ports enabled per canister is 8. Do not exceed 24 target ports per system.
- Queue depth on hosts is 16 with number of ports per canister <= 12.
- Queue depth on hosts is 32, if number of configured ports on each canister is > 12.
- Minimum number of target ports enabled per canister is 8. Do not exceed 24 target ports per system.
- Queue depth on hosts is 32.
- Use default queue depth of 64, if at least 8 ports are enabled on each canister, otherwise, host queue depth is limited to 32.