Brocade – Alias and Zone syntax. Or how FOS is a love / hate thing.

I’ve been spending a lot of time recently working through some storage performance issues at a client. One of the outcomes of this work was that a serious amount of remediation was required within their two FC fabrics, as they were running a lot of multi-initiator – multi-target zoning and other crazy stuff. I spent a lot of time rebuilding the configs for the Brocade-based fabrics, and had a colleague double-check my work.

Now, for those of you playing along at home, you might remember that I’ve spent the last 7 years or so working primarily on Cisco MDS environments, so doing work with Brocade gear was meant to be a refreshing change. And for the most part it was. In any case, I generatedĀ 148 new aliases and 365 new zone sets, and hoped like heck I hadn’t missed anything.

Here’s the syntax of the commands I was using.

alicreate "SAN1_SPA5","50:06:01:65:3e:a0:1e:d7"
alicreate "SAN1_SPB4","50:06:01:6c:3e:a0:1e:d7"
alicreate "A-HOST1_HBA0","20:00:00:00:c9:53:71:ba"
zonecreate "A-HOST1_HBA0_SAN1_SPA5","A-HOST1_HBA0;SAN1_SPA5"
zonecreate "A-HOST1_HBA0_SAN1_SPB4","A-HOST1_HBA0;SAN1_SPB4"
cfgcreate "PROD1","A-HOST1_HBA0_SAN1_SPA5"
cfgadd "PROD1","A-HOST1_HBA0_SAN1_SPB4"
cfgenable "PROD1"

In this example, I’m creating an alias for two FE ports on a VNX and one host port, zoning them together, and creating a new configuration and adding the zone sets to it. The naming convention I generally use is HOSTNAME_HBAx. Nothing spectacular, and it all looks okay in theory. Except when I saved and enable the configuration, a whole bunch of hosts were missing paths. Anyway, great story Dan, but what was the problem?


Seriously, the problem was dashes in the aliases. The CLI was just ignoring them. Change those to underscores and you’re good to go.

Am I overreacting when I feel really disappointed that this is still a thing with FOS 7.x? If someone wants to set me straight I’m happy to hear the whys and wherefores about this. In the end it was all sorted fairly rapidly, and there were no outages which was great.

Brocade interop mode 0

I had the joy of finishing off a data migration project on the weekend. The final step was to remove some McData Spherion 4500 FC switches from a stretched fabric. Normally, I’d just move some cables and ISLs about and rip out the switches (do you like my calculated approach to infrastructure projects?). However, in this instance, the McData switches were the last ones in the fabric and the fabric was running McData OpenFabric mode (aka interop mode 3). Pulling out the switches wasn’t really a problem, as the Brocade SilkWorm 300 switches that were left just took over and kept things going under interop mode 3. Cool, let’s get out of here now …

The problem was that the client really wanted to go back to native mode. So we were running versions 6.1.0c and 6.2.0c on the Brocade switches, and version 9.7.2 on the McData switches. When I changed the switches back to interop modeĀ 0 (aka “native” mode), the zoning information all went and disappeared. 96 zonesets, 63 aliases and 1 configuration save later we were all up and running again. But I did think that maybe I could have saved myself 3 hours of copy and paste if I’d somehow done things a little smarter.