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:

Table 1. Setting host configuration. Optimal setting for initiator configuration for active hosts
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.

Large number of hosts (>= 1024)
  • 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.
Medium number of hosts (between 512 and 1024)
  • Minimum number of target ports enabled per canister is 8. Do not exceed 24 target ports per system.
  • Queue depth on hosts is 32.
Smaller number of hosts (< 512)
  • Use default queue depth of 64, if at least 8 ports are enabled on each canister, otherwise, host queue depth is limited to 32.