Fibre Channel (SAN)

Reply
Occasional Contributor
cworley
Posts: 5
Registered: ‎01-03-2013

NOOB trying to use zoning instead of trunking

Two Brocade switches: one embedded in an HP blade server.  SAN has 8 FC8 ports.  If I direct-connect SAN to blade switch unidirectional I/O performance is > 6GB/s.  If I trunk (8 ports) another 40-port FC8 Brocade switch to the blade switch (without a trunking license), and connect the 8 SAN ports to this second switch, unidirectional performance drops to 4GB/s.  All 8 trunked ports are blinking, so all seem to be in use, I guess without a trunking license, traffic is poorly balanced.

Figuring the 8-port groups on the 40-port switch somehow map to underlying hardware grouping/routing, I staggered the connections.  Rather than the SAN in the 1st 8-port group and the trunk in the second 8-port group, I used two ports from the SAN and two ports from the trunk in each 8-port group.  That got me up to 5.3GB/s unidirectionally (actually, just writes; reads still crawling at 4.2GB/s)... still 1GB/s off what I could get w/o the 40-port switch.

I figured I could use port zoning to mimic the original direct connection: pair one port from the SAN (or the SANs WWPN for that port) with one port from the trunk on the 40 port switch into a zone (no zoning on the blade system switch).  Any of the blades could then use only one port on ether switch to access one target port.

But, something is amiss... I must not understand zoning.

Going back to the configuration where the SAN is connected to the 40-port switch in ports 0...7, and the trunk is in ports from 8...15.  I paired 0/8, 1/9, 2/1... 7/15 into eight zones:

swd77:bd> zonecreate "p0", "2,0; 2,8"

swd77:bd> zonecreate "p1", "2,1; 2,9"

swd77:bd> zonecreate "p2", "2,2; 2,10"

swd77:bd> zonecreate "p3", "2,3; 2,11"

swd77:bd> zonecreate "p4", "2,4; 2,12"

swd77:bd> zonecreate "p5", "2,5; 2,13"

swd77:bd> zonecreate "p6", "2,6; 2,14"

swd77:bd> zonecreate "p7", "2,7; 2,15"

swd77:bd> cfgcreate "c1","p0;p1;p2;p3;p4;p5;p6;p7"

swd77:bd> cfgshow

Defined configuration:

cfg:   c1      p0; p1; p2; p3; p4; p5; p6; p7

zone:  p0      2,0; 2,8

zone:  p1      2,1; 2,9

zone:  p2      2,2; 2,10

zone:  p3      2,3; 2,11

zone:  p4      2,4; 2,12

zone:  p5      2,5; 2,13

zone:  p6      2,6; 2,14

zone:  p7      2,7; 2,15

Effective configuration:

no configuration in effect

swd77:bd> cfgenable "c1"

But, once enabled, the blades no longer see the SAN at all.

Please tell me where my thinking is wrong, and the correct way to do this (short of getting a trunking license).

Contributor
jaymike3
Posts: 39
Registered: ‎10-26-2010

Re: NOOB trying to use zoning instead of trunking

I'm not sure I fully understand your config, but you're probably running up against a couple of misconceptions.

For one, your zoning definitions consist of just a single domain (domain 2). If you really have two distinct switches in play (and your initiators and targets span across those two) then you need to have both domains represented in the zoning configuration. That would explain why visibility was lost once you enabled the cfg.

Secondly, you would not typically zone in your E_Port (ISL, or switch-to-switch) connections. Traditional zoning really only consists of the end devices and the E_Ports need not be part of the zoning definitions. I believe an exception to this might be the use of "Traffic Isolation" zones (aka TI Zones) which you can use to dedicate ISL traffic. I only have a passing knowledge and cannot claim 1st-hand experience with them, but I know they are not created like regular zones. The Admin Guide would have the details.

I'm not sure what is at the root of your degrading performance, but I wanted to point out the zoning stuff. I'd probably start simple with one connection going end to end and then watch how the characteristics change as you scale up.

Regular Contributor
Guldmyr
Posts: 188
Registered: ‎01-08-2011

Re: NOOB trying to use zoning instead of trunking

After you get the zoning working you can use the command "portperfshow" to monitor utilization of the links.

A monitoring tool (Brocade Network Advisor perhaps?) sounds useful here, you can then spot for porterrors and see actually how loaded each links is.

Look into exchange-based routing (CLI command aptpolicy on both switches) and if DLS is enabled (CLI command dlsshow).

"If I trunk (8 ports) another 40-port FC8 Brocade switch to the blade switch (without a trunking license),"

The connections between the switches are called ISLs (not trunks) if you don't have trunking license.

Occasional Contributor
cworley
Posts: 5
Registered: ‎01-03-2013

Re: NOOB trying to use zoning instead of trunking

Thanks... that did it.  I needed to use "zone --create -t ti ..." to get the intended effect, and include the ports from both switches in each zone.   This brings me within 100MB/s when the second switch is not in play.

Occasional Contributor
cworley
Posts: 5
Registered: ‎01-03-2013

Re: NOOB trying to use zoning instead of trunking

I do feel like the zoning I ended up with was incredibly redundant in order to specify something simple.  If I could have just done the "ti" zoning, and left all the rest undefined (to just use the ti zoning), it would have been much simpler.

Assuming "blades" is the alias of all my blades WWPNs, and t0...t7 are the individual WWPN aliases of each target port on the SAN, the following worked:

zone --create -t ti "p0" -p "1,17;2,0;2,1"

zone --create -t ti "p1" -p "1,18;2,4;2,5"

zone --create -t ti "p2" -p "1,19;2,8;2,9"

zone --create -t ti "p3" -p "1,20;2,12;2,13"

zone --create -t ti "p4" -p "1,21;2,16;2,17"

zone --create -t ti "p5" -p "1,22;2,20;2,21"

zone --create -t ti "p6" -p "1,23;2,24;2,25"

zone --create -t ti "p7" -p "1,0;2,28;2,29"

zonecreate "b0","blades;1,17;2,0; 2,1;t0"

zonecreate "b1","blades;1,18; 2,4; 2,5;t1"

zonecreate "b2","blades;1,19; 2,8; 2,9;t2"

zonecreate "b3","blades;1,20; 2,12; 2,13;t3"

zonecreate "b4","blades;1,21; 2,16; 2,17;t4"

zonecreate "b5","blades;1,22; 2,20; 2,21;t5"

zonecreate "b6","blades;1,23; 2,24; 2,25;t6"

zonecreate "b7","blades;1,0; 2,28; 2,29;t7"

cfgcreate "c1","b0;b1;b2;b3;b4;b5;b6;b7"

cfgenable "c1"

Note that initially I had detailed that the target ports were all in the first group of eight ports, and the trunk was all in the second group of eight ports, so I was pairing target port "2,0" with trunk/ISL port "2,8".  After finding that segregating got better performance with no zoning, I left it segregated for the traffic isolation specification, so targets are now in ports: 0, 4, 8 , 12, 16, 20, 24, and 28, and the trunks/ISL's to the blade switch were in the adjacent ports: 1, 5, 9, 13, 17, 21, 25 and 29... and I zoned together the adjacent ports (i.e. target port "2,0" and trunk/ISL port "2,1").

The redundancy is in using these ports in the "ti" zoning as well as the regular zoning: note how the specifications for "p0" and "b0" both list the same set of ports ("1,17;2,0;2,1"... the "1,17" is the port on the blade system side).

Is that necessary?

Occasional Contributor
cworley
Posts: 5
Registered: ‎01-03-2013

Re: NOOB trying to use zoning instead of trunking

Never mind that last question... no redundancy was necessary... all those "b*" zones could be lumped into one zone that simply included all blade and SAN WWPN's... the "ti" zoning takes care of the balancing.

Join the Community

Get quick and easy access to valuable resource designed to help you manage your Brocade Network.