You might need to tune your FC queue depth on the host to achieve the maximum values for hosts per controller and FC port fan-in. The maximum number of LUNs and the number of HBAs that can connect to an FC port are limited by the available queue depth on the FC target ports.
Queue depth is the number of I/O requests (SCSI commands) that can be queued at one time on a storage controller. Each I/O request from the host's initiator HBA to the storage controller's target adapter consumes a queue entry. Typically, a higher queue depth equates to better performance. However, if the storage controller's maximum queue depth is reached, that storage controller rejects incoming commands by returning a QFULL response to them. If a large number of hosts are accessing a storage controller, plan carefully to avoid QFULL conditions, which significantly degrade system performance and can lead to errors on some systems.
In a configuration with multiple initiators (hosts), all hosts should have similar queue depths. This prevents hosts with small queue depths from being starved by hosts with large queue depths.
You have 15 hosts with one initiator connected to each of two target ports on the storage controller. 15 x 128 = 1,920. 1,920 is less than the total queue depth limit of 2,048, so you can set the queue depth for all your initiators to 128.
You have 30 hosts with one initiator connected to each of two target ports on the storage controller. 30 x 128 = 3,840. 3,840 is greater than the total queue depth limit of 2,048, so you should choose one of the options under step 3 for remediation.
The desired queue depth of 3,840 exceeds the available queue depth per port. To remedy this, you can add a two-port FC target adapter to each controller, then rezone your FC switches so that 15 of your 30 hosts connect to one set of ports, and the remaining 15 hosts connect to a second set of ports. The queue depth per port is then reduced to 15 x 128 = 1,920.
Needed queue depth = (Number of I/O per second) x (Response time)
For example, if you need 40,000 I/O per second with a response time of 3 milliseconds, the needed queue depth = 40,000 x (.003) = 120.
The desired queue depth of 3,840 exceeds the available queue depth per port. You have 10 "large" hosts that have high storage I/O needs, and 20 "small" hosts that have low I/O needs. Set the initiator queue depth on the "large" hosts to 128 and the initiator queue depth on the "small" hosts to 32.
Your resulting total queue depth is (10 x 128) + (20 x 32) = 1,920.
You can spread the available queue depth equally across each initiator.
Your resulting queue depth per initiator is 2,048/30 = 68