2009
12.25

FC Zone Merge

Be the first to like.
Share

We need to migrate some data (VMware volumes, Oracle RAC diskgroups, …) from the “old” SAN infrastructure, to the “new” one. When we’re done, the old SAN disk space will be repurposed and used for storing backups, etc. To achieve these goals, we need to connect together both Fibre Channel environments. As usual, a SAN is designed with an even number of switches and comprise two distinct fabrics.

Old: Two (IBM rebranded, rack mounted) Brocade switches, Fabric OS v3.1.1b
New: Two (IBM rebranded, sitting in an IBM blade chassis) Brocade switches, Fabric OS v6.1.1d

First thing to do, is connect each old switch to its new twin. An ISL for each switch couple is needed. Being “Brocade on Brocade”, setting up the ISL is no big deal, just leave the ports in Auto mode, they will negotiate the speed and become E-port(s) all by themselves.

So far so good, but to have something working at all, we need to take care of merging Zone information between old and new. Without that, the switches won’t let packets flow through the ISL, complaining about e.g. “port 17, Zone conflict“.

Zone conflict basically means that an “object” (alias, zone, config, …) on switch new, hasn’t got the exact same definition on switch old. It means that we have to somehow import old Zoning info into the new switches. The complete Zoning info, even aliases that don’t belong specifically to the new environment.

And I was about to forget: give your switches each a different FC Domain ID. The one with the lowest ID will be deemed as “Principal” for the fabric it sits in.

Back to the merge, the quickest way to do it is:

  • Download the old switch configuration to your PC, via the GUI or the CLI (configDownload command).
  • The configuration is a mere text file, snip everything from it but the “[Zoning]” section:
    [Zoning]
    cfg.SANCFG:Z_HOST40;Z_ORACLE1;Z_HOST01;Z_HOST02;Z_ORACLE2;Z_HOST03
    zone.Z_ORACLE1:SERV_ORACLE1;ARRAY_CTRL_A;ARRAY_CTRL_B
    zone.Z_ORACLE2:ARRAY_CTRL_A;ARRAY_CTRL_B;SERV_ORACLE2
    zone.Z_HOST01:ARRAY_CTRL_B;ARRAY_CTRL_A;SRV_HOST01
    zone.Z_HOST02:ARRAY_CTRL_A;ARRAY_CTRL_B;SRV_HOST02
    zone.Z_HOST03:ARRAY_CTRL_A;ARRAY_CTRL_B;SRV_HOST03
    zone.Z_HOST40:SRV_HOST40;ARRAY_CTRL_A;ARRAY_CTRL_B
    alias.ARRAY_CTRL_A:1,1
    alias.ARRAY_CTRL_B:1,2
    alias.SERV_ORACLE1:1,6
    alias.SERV_ORACLE2:1,3
    alias.SRV_HOST01:1,7
    alias.SRV_HOST02:1,0
    alias.SRV_HOST03:1,4
    alias.SRV_HOST40:1,5
    enable:SANCFG
  • WARNING: Don’t take the above naming convention as good practice, it is not! Also, I won’t really suggest to use port-based zoning, as in the example…
  • Upload the modified text file (containing nothing else than the “[Zoning]” section on the new switch (configUpload command). Fabric OS will leave untouched the remaining parts of the configuration (thank goodness!) and just update the Zoning info.
  • The switches should now Zone merge nicely and you can modify the active Zone Config from either one of them (switch A will see the ports/WWNs connected to switch B).

That’s it, it worked for me…