Simple question - is fiber channel a full-duplex protocol? How to verify?
Scenario - I've setup a storage system (NetApp 3200-series with gobs of RAM, flash), Connection is simple, single path 4Gb fiber from the storage system to a host running Server 2008 R2. I use sqlio to generate a big read load, and I get my expected ~ 370MB/sec throughput with big enough block sizes.
Then, I do the same test but with big writes, and again get the same speed. Both times, I am verifying on the storage system that the actual reads/writes are happening. (Albeit, largely from cache in the case of the reads.)
Then I kick off both loads at once from the same host, and end up with ~ 230MB/sec reads, ~ 230MB/sec writes simultaneously across the single 4Gb path. This tells me that (a) I'm clearly not getting full duplex and (b) I do seem to be getting a smidge more than I would expect the interface to be capable of if operating half duplex, so maybe I am full duplex and just hitting a HBA chipset or other limitation.
Thoughts?
Note, I have duplicated the above both direct-attached (SAN to host) and with a FC switch in the middle.
Edit: I reduced the number of threads I was generating and am now seeing a solid 300MB/sec reads and 300MB/sec writes, each against its own LUN, simultaneously, across a single 4 gigabit fiber port, so I guess they really are full duplex.
Scenario - I've setup a storage system (NetApp 3200-series with gobs of RAM, flash), Connection is simple, single path 4Gb fiber from the storage system to a host running Server 2008 R2. I use sqlio to generate a big read load, and I get my expected ~ 370MB/sec throughput with big enough block sizes.
Then, I do the same test but with big writes, and again get the same speed. Both times, I am verifying on the storage system that the actual reads/writes are happening. (Albeit, largely from cache in the case of the reads.)
Then I kick off both loads at once from the same host, and end up with ~ 230MB/sec reads, ~ 230MB/sec writes simultaneously across the single 4Gb path. This tells me that (a) I'm clearly not getting full duplex and (b) I do seem to be getting a smidge more than I would expect the interface to be capable of if operating half duplex, so maybe I am full duplex and just hitting a HBA chipset or other limitation.
Thoughts?
Note, I have duplicated the above both direct-attached (SAN to host) and with a FC switch in the middle.
Edit: I reduced the number of threads I was generating and am now seeing a solid 300MB/sec reads and 300MB/sec writes, each against its own LUN, simultaneously, across a single 4 gigabit fiber port, so I guess they really are full duplex.
Last edited: