Fibre Channel Zoning Guidelines

Fibre Channel (SAN) zoning provides connectivity between your storage and your hosts, either for a general purpose server, a specific application, or for a VMWare cluster.  SAN zoning can be very simple as long as you adhere to the rules.  The following are the “laws” I follow to help make zoning a simple and easy process.

Aliases are a friendly name that you can use to create an easy to read identifier for the World Wide Name (WWN).  Using the name “appserver_1” is much easier to read than 10:00:00:00:c9:30:d0:17. Line it up with all of the other WWNs in the fabric, and you can see the value of using aliases.

Using aliases is great idea, but if you do not stick with a consistent naming convention to identify the host and port, it will do you no good.  Keep it simple, concise, and easy to understand at a glance.  Unless the hostname is very cryptic, using the hostname is a great idea in the alias name.  I follow it up with an underscore, and then the HBA port number.  I start numbering my ports at 0, as both Emulex and QLogic start numbering their HBA ports at 0.  The alias would end up being “appserver_0” and “appserver_1” for 2 HBA ports.

For storage, you will want to use some sort of unique identifier, just like you would do for a host.  If the storage has hostname, use that as a prefix.  If there is not a hostname assigned to the storage, I would use the model of the array with the last 4 digits of the serial number as its identifying prefix.  I then add an underscore, some sort of modules number, another underscore, then the port number.  Each array does things slightly differently, so some modifications may be needed.  For example, a VNX, I may use VNX75001234_SPA_2_1, meaning this is a VNX7500 array with a serial number ending with 1234, storage controller SPA, slot 2, port 1.  With HP 3Par, I use 3Par1234_1_2_1, meaning it is 3Par with a serial ending with 1234, node 1, slot 2, port 1.  

Again, the idea is to be able to quickly identify the port by glancing at the alias.

Following the theme of using a simple to read hostname, the zones should be simple too.  I usually just put together two aliases, separated by an underscore (Sensing a pattern yet?). The zone will consist of the alias names used in the zone name.  So, appserver_0_VNX1234_SPA_2_1 has the aliases, appserver_0 and VNX1234_SPA_2_1.  

This is also known as single initiator zoning. For some storage vendors, like VNX, it’s just a good idea.  In other arrays, such as 3Par, port persistence will not work unless you follow a single initiator zoning method.  What this means is that your zones will have two entries.  The host and the storage.  Nothing else.  This will increase the number of zones in your switch, but will make troubleshooting much easier, as well as making the zones a very systematic process.  I start with a host port and zone up each port to the storage, then move to the next port.  Moving through a systematic process like this, you can ensure that you have all of the zones you need per switch.

Most storage arrays are designed for no single point of failure, and will come with at least two controllers.  Usually, these controllers will come with at least 2 ports.  It is also likely that the host has two ports.  (If not, get an HBA with two ports.  Single connected servers are a bad idea!) The ports should be split between the fabrics, so that each controller and host is connected to both fabrics.  If this is all followed, your host can be zoned up to both controllers on the array, one port on each.  You will want to do the same on the other fabric.  Some of the very, very high end storage, like VMAX, will need only 2 connections, however I still use 4 connections, 2 per fabric.  Doing this will ensure you will not have any single point of failure, allowing you to do maintenance on a controller, switch, or cable without taking a loss of connectivity to the storage.

Following these laws, you will be able to take something that has confused many storage and server administrators, simplify it, and ensure success on your SAN.