Introduction
This document examines situations that can arise when you allow two Cisco MDS switches to merge zone information after each already has zoning information, and an Extended Inter-Switch Link Protocol (EISL) link is configured between them.
Prerequisites
Requirements
Cisco recommends that you have knowledge of these topics:
Components Used
This document is not restricted to specific software and hardware versions.
The information presented in this document was created from devices in a specific lab environment. All of the devices used in this document started with a cleared (default) configuration. If you are working in a live network, ensure that you understand the potential impact of any command before using it.
Zoning
Concept
When two Fibre Channel (FC) switches that have already been configured with active zonesets and are not yet connected are brought together with an EISL link, the zonesets merge. Steps must be taken, however, in order to ensure zone consistency before you configure and activate new zones.
Best Practices
When a zone merge occurs, as long as there is not competing information, each switch learns the others zones. Each switch then has three configuration entities. The switches have:
The saved configuration in NVRAM. This is the configuration as it was the last time the copy running-configuration startup-configuration command was issued.
The running configuration. This represents the configuration brought into memory upon the last time the MDS was brought up, plus any changes that have been made to the configuration. With reference to the zoning information, the running configuration represents the configurable database, known as the full database.
The configured zoning information from the running configuration plus the zoning information learned from the zone merge. This combination of configured and learned zone information is the active zoneset.
When an MDS is booted, it comes up with the configuration previously saved in NVRAM. If you configured the switch after configuration was loaded from NVRAM, there is a difference between the bootup and running configuration until the running configuration is saved to the startup configuration. This can be likened to having a file on the local hard drive of your PC. The file is saved and static, but if you open the file and edit, there exists a difference between the changed file and the file that still exists on saved storage. Only when you save the changes, does the saved entity represent the changes made to the file.
When zoning information is learned from a zone merge, this learned information is not part of the running configuration. Only when the zone copy active-zoneset full-zoneset vsan X command is issued does the learned information become incorporated into the running configuration. This is key because when a zone merge is initiated by a new EISL link or activation of a zoneset, the zoneset part is ignored by the other switch and the member zone information is considered topical.
Caution: The zone copy command deletes all fcalias configuration.
Example
For example, you have two standalone MDS switches, already in place and each with their own configured zone and zoneset information. Switch 1 has an active zoneset known as set A, and Switch 2 has an active zoneset known as set B. Within set A on Switch 1 is zone 1, and on Switch 2, set B has member zone 2. When an ISL link is created between these two switches, each sends their zoneset which includes their zone information to the other switch. On a merge, the switch selects the zoneset name with the higher ASCII value and then merges their zone member. After the merge, both switches have a zoneset name set B with zone member zone 1 and zone 2.
Everything should still work for all of the devices in zone 1 and zone 2. In order to add a new zone, you have to create a new zone, add the new zone to the zoneset, and then activate the zoneset. For more information about "Merging a Zone Database" or "Configuring and Managing Zones", refer to Configuring and Managing Zones.
Step-by-step, the switches are booted up and have no zoning information. You need to create the zones on the switches and add them to the zonesets. Refer to this sample command output.
Create zone and zoneset. Activate on Switch 1.
Switch#1# config t
Enter configuration commands, one per line. End with CNTL/Z.
Switch#1(config)# vsan database
Switch#1(config-vsan-db)# vsan 100
Switch#1(config-vsan-db)# exit
Switch#1(config)# zone name zone1 vsan 100
Switch#1(config-zone)# member pwwn 11:11:11:11:11:11:11:1a
Switch#1(config-zone)# member pwwn 11:11:11:11:11:11:11:1b
Switch#1(config-zone)# exit
Switch#1(config)# zoneset name setA vsan 100
Switch#1(config-zoneset)# member zone1
Switch#1(config-zoneset)# exit
Switch#1(config)# zoneset activate name setA vsan 100
Zoneset activation initiated. check zone status
Switch#1(config)# exit
Switch#1# sh zoneset active vsan 100
zoneset name setA vsan 100
zone name zone1 vsan 100
pwwn 11:11:11:11:11:11:11:1a
pwwn 11:11:11:11:11:11:11:12b
Switch#1#
Create zone and zoneset. Activate on Switch 2.
Switch#2# config t
Enter configuration commands, one per line. End with CNTL/Z.
Switch#2(config)# vsan database
Switch#2(config-vsan-db)# vsan 100
Switch#2(config-vsan-db)# exit
Switch#2(config)# zone name zone2 vsan 100
Switch#2(config-zone)# member pwwn 22:22:22:22:22:22:22:2a
Switch#2(config-zone)# member pwwn 22:22:22:22:22:22:22:2b
Switch#2(config-zone)# exit
Switch#2(config)# zoneset name setB vsan 100
Switch#2(config-zoneset)# member zone2
Switch#2(config-zoneset)# exit
Switch#2(config)# zoneset activate name setB vsan 100
Zoneset activation initiated. check zone status
Switch#2(config)# exit
Switch#2# sh zoneset active vsan 100
zoneset name setB vsan 100
zone name zone2 vsan 100
pwwn 22:22:22:22:22:22:22:22
pwwn 22:22:22:22:22:22:22:2b
Switch#2#
Now, bring up an ISL link between the switches and allow the zoning information to merge.
Bring ISL link up and verify zone merge on Switch 1.
Switch#1# config t
Enter configuration commands, one per line. End with CNTL/Z.
Switch#1(config)# int fc1/5
Switch#1(config-if)# no shut
Switch#1(config-if)# exit
Switch#1(config)# exit
Note: Make sure VSAN 100 is allowed on ISL.
Switch#1# sh zoneset active vsan 100
zoneset name setB vsan 100
zone name zone1 vsan 100
pwwn 11:11:11:11:11:11:11:1a
pwwn 11:11:11:11:11:11:11:1b
zone name zone2 vsan 100
pwwn 22:22:22:22:22:22:22:2a
pwwn 22:22:22:22:22:22:22:2b
Switch#1# sh zoneset vsan 100
zoneset name setA vsan 100
zone name zone1 vsan 100
pwwn 11:11:11:11:11:11:11:1a
pwwn 11:11:11:11:11:11:11:1b
Bring ISL link up and verify zone merge on Switch 2.
Switch#2# config t
Enter configuration commands, one per line. End with CNTL/Z.
Switch#2(config)# int fc2/5
Switch#2(config-if)# no shut
Switch#2(config-if)# exit
Switch#2(config)# exit
Switch#2# sh zoneset active vsan 100
zoneset name setB vsan 100
zone name zone1 vsan 100
pwwn 11:11:11:11:11:11:11:1a
pwwn 11:11:11:11:11:11:11:1b
zone name zone2 vsan 100
pwwn 22:22:22:22:22:22:22:2a
pwwn 22:22:22:22:22:22:22:2b
Switch#2# sh zoneset vsan 100
zoneset name setB vsan 100
zone name zone2 vsan 100
pwwn 22:22:22:22:22:22:22:2a
pwwn 22:22:22:22:22:22:22:2b
Notice that after the zone merge, the active zoneset name is setB on both switches. A = 65 and B = 66 in decimal. For more information about the ASCII table, refer to ASCII Table and Description.
In order to avoid future zoneset activation problems, the zone copy active-zoneset full-zoneset vsan 100 command should be issued at this point on the switch. First, examine if the command is issued, and how the new zoning information is handled. When the zone copy command is issued, it adds the learned zone information, zone 2 in this case, to the running configuration. If zone 2 has not been copied from residing in memory to copied into the running configuration, zone 2 information is not pushed back out.
Caution: The zone copy command deletes all fcalias configuration.
Running Configuration of Switch1
Before the zone copy active-zoneset full-zoneset vsan 100 command is issued:
Switch1# sh run | b "Active Zone Database Section for vsan 100"
!Active Zone Database Section for vsan 100
zone name zone1 vsan 100
pwwn 11:11:11:11:11:11:11:1a
pwwn 11:11:11:11:11:11:11:1b
zone name zone2 vsan 100
pwwn 22:22:22:22:22:22:22:2a
pwwn 22:22:22:22:22:22:22:2b
zoneset name setB vsan 100
member zone1
member zone2
zoneset activate name setB vsan 100
do clear zone database vsan 100
!Full Zone Database Section for vsan 100
zone name zone1 vsan 100
pwwn 11:11:11:11:11:11:11:1a
pwwn 11:11:11:11:11:11:11:1b
zoneset name setA vsan 100
member zone1
After the zone copy active-zoneset full-zoneset vsan 100 command is issued:
Switch1# zone copy active-zoneset full-zoneset vsan 100
WARNING: This command may overwrite common zones in the full zoneset. Do you want to continue? (y/n) [n] y
Switch1# sh run | b "Active Zone Database Section for vsan 100"
!Active Zone Database Section for vsan 100
zone name zone1 vsan 100
pwwn 11:11:11:11:11:11:11:1a
pwwn 11:11:11:11:11:11:11:1b
zone name zone2 vsan 100
pwwn 22:22:22:22:22:22:22:2a
pwwn 22:22:22:22:22:22:22:2b
zoneset name setB vsan 100
member zone1
member zone2
zoneset activate name setB vsan 100
do clear zone database vsan 100
!Full Zone Database Section for vsan 100
zone name zone1 vsan 100
pwwn 11:11:11:11:11:11:11:1a
pwwn 11:11:11:11:11:11:11:1b
zone name zone2 vsan 100
pwwn 22:22:22:22:22:22:22:2a
pwwn 22:22:22:22:22:22:22:2b
zoneset name setA vsan 100
member zone1
zoneset name setB vsan 100
member zone1
member zone2
Running Configuration of Switch2
Before the zone copy active-zoneset full-zoneset vsan 100 command is entered:
Switch2# sh run | b "Active Zone Database Section for vsan 100"
!Active Zone Database Section for vsan 100
zone name zone2 vsan 100
pwwn 22:22:22:22:22:22:22:2a
pwwn 22:22:22:22:22:22:22:2b
zone name zone1 vsan 100
pwwn 11:11:11:11:11:11:11:1a
pwwn 11:11:11:11:11:11:11:1b
zoneset name setB vsan 100
member zone2
member zone1
zoneset activate name setB vsan 100
do clear zone database vsan 100
!Full Zone Database Section for vsan 100
zone name zone2 vsan 100
pwwn 22:22:22:22:22:22:22:2a
pwwn 22:22:22:22:22:22:22:2b
zoneset name setB vsan 100
member zone2
After the zone copy active-zoneset full-zoneset vsan 100 command is entered:
Switch2# zone copy active-zoneset full-zoneset vsan 100
WARNING: This command may overwrite common zones in the full zoneset. Do you want to continue? (y/n) [n] y
Switch2# sh run | b "Active Zone Database Section for vsan 100"
!Active Zone Database Section for vsan 100
zone name zone2 vsan 100
pwwn 22:22:22:22:22:22:22:2a
pwwn 22:22:22:22:22:22:22:2b
zone name zone1 vsan 100
pwwn 11:11:11:11:11:11:11:1a
pwwn 11:11:11:11:11:11:11:1b
zoneset name setB vsan 100
member zone2
member zone1
zoneset activate name setB vsan 100
do clear zone database vsan 100
!Full Zone Database Section for vsan 100
zone name zone2 vsan 100
pwwn 22:22:22:22:22:22:22:2a
pwwn 22:22:22:22:22:22:22:2b
zone name zone1 vsan 100
pwwn 11:11:11:11:11:11:11:1a
pwwn 11:11:11:11:11:11:11:1b
zoneset name setB vsan 100
member zone2
member zone1
In reference back to the three entities of configuration, they are as follows on zone 1 before the zone merge:
Saved configuration: nothing since zone information has not been saved by issuing the copy run start command.
Running configuration: consists of zone 1.
Configured and learned information: consists of zone 1.
After the zone merge, the entities are:
Saved configuration: nothing has been saved.
Running configuration: consists of zone 1.
Configured and learned information: consists of zone 1 and zone 2.
Zone 2 has not become part of the running configuration. Zone 2 has been learned, and is in the active zoneset. Only when the zone copy active-zoneset full-zoneset vsan 100 command is issued, zone 2 becomes copied from being learned to added to the running configuration. The configuration looks as follows after the command is issued:
Caution: The zone copy command deletes all fcalias configuration.
Saved configuration: nothing has been saved.
Running configuration: consists of zone 1 and zone 2.
Configured and learned information: consists of zone 1 and zone 2.
Commands
By default, the zone in basic mode distributes the active zoneset database only, this command was introduced in 1.0.4. SAN-OS propagates the active zoneset and full zoneset database:
zoneset distribute full vsan <vsan_id>
This command must be explicitly enabled on each Virtual Storage Area Network (VSAN) on every switch, if the zone update or zoneset activation will be completed on any switch in the fabric with basic zoning. This eliminates the need to do a zone copy prior to zoning changes completed on any switch in the fabric. It is still necessary, however, to issue the copy running start command in order to save to full zoneset in NVRAM prior to rebooting the switch. This command is not necessary on zone in enhance mode as it distributes the active zoneset and full zoneset database automatically after zoneset activation.
Related Information