This document describes Smart Zoning, a feature introduced in NX-OS Release 5.2(6) that adds new keywords to the zoning commands in order to label members as initiator, target, or both. This feature is only available on MDS platforms. Nexus switches that support FCoE do not have Smart Zoning.
The purpose of these Smart Zoning keywords is to reduce the number of Access Control List (ACL) Ternary Content Addressable Memory (TCAM) entries, specifically those for target-target and initiator-initiator connectivity. As these are typically useless, and even problematic sometimes, there is no need to have them.
The alternative is Single Initiator (or Single-Init, Single-Target) zones, but in large environments, the creation of all these separate zones is a big operational overhead.
Smart Zoning combines the benefits of both approaches above:
Simplicity of operational management with a Single Zone for all initiators and targets of an application or cluster.
No wasted switch resources as with two member zones.
The benefit is particularly apparent in Cloud DC and Big Data deployments, where you have a lot of initiators (ESX nodes in a vCluster) that access the same targets (Data stores). If you need to add a new ESX to your cluster, you simply add one member to your zone and reactivate. This feature is integrated with Unified Computing System (UCS).
There is some similarity with Peer Zoning, which is described in the FC standard, but isn't a feature in NXOS. Peer zoning enforces all members in a zone to only communicate with a single 'peer' device. Smart Zoning can provide this, and more, and is generally a more flexible feature.
You can add one of the following keywords: “init”, “target”, “both”,
to any zone member in a smart zone, so that the Smart Zoning can create the right entries.
The valid combInations are
init <-> target
init <-> both
both <-> target
both <-> both
Smart Zone Appearance
zone name SmartZone vsan 1
member pwwn 10:00:00:00:c9:2f:02:db init member pwwn 21:00:00:04:cf:db:3e:a7 target member pwwn 21:00:00:20:37:15:dc:02 target member pwwn 10:00:00:00:c9:2e:ff:d5 init member pwwn 21:00:00:e0:8b:02:56:4b init member pwwn 21:00:00:e0:8b:03:43:6f init
Once enabled, you add the keywords init, target, or both to the member entry.
Smart Zoning only programs TCAMs with entries that connect initiator and target.
'both' works as a wildcard and will act as both initiator or target.
You do not need to manually edit all zones. There is a conversion utility which uses the FCNS data to add these keywords.
For example, both is used in replication scenarios where storage copy ports act as both init and target when they replicate data. However, you could also use a two member zone for that.
Convert to Smart Zoning
# conf t (config)# zone smart-zone enable vsan 1 Smart Zoning distribution initiated. Check zone status.
(config)# zone convert smart-zone vsan 1 (config)# zoneset activate name ZS_VSAN1 vsan 1
Disable Smart Zoning
# conf t (config)# clear zone smart-zoning vsan 1 WARNING: This command will clear smart zoning configs from the specified
zone/zoneset/fcalias/vsan. Do you want to continue? (y/n) [n] y
(config)# no zone smart-zoning enable vsan 1 WARNING: Disabling Smart Zoning feature may result in TCAM space to exceed
and zone to switch to soft zoning in case the current active database is more
than specified limits. Do you want to continue? (y/n) [n] y
Smart Zoning distribution initiated. check zone status
Disable Smart Zoning for Only One Zone
# conf t (config)# zone name DumbZone vsan 1 (config-zone)# attrib disable-smart-zoning
The above is for Basic Zoning mode. If you're running your vsan in Enhanced Zoning mode, you need to use attribute-groups (as with all attributes in Enhanced Mode).
# conf t
(config)# zone-attribute-group name DisabledSZAttrGr vsan 1
Enhanced zone session has been created. Please 'commit' the changes when done.
(config)# zone name EnhancedDumbZone vsan 1
(config-zone)# attribute-group DisabledSZAttrGr
Useful Troubleshooting Commands
# show zone status vsan 1 # show zoneset active vsan 1 # show running zone vsan 1 # show zone internal vsan 1 # show zone internal rscn acl-table current vsan 1 # show zone internal rscn acl-table previous vsan 1 # show zone smart-zoning auto-conv status vsan 1 # show zone smart-zoning error-log