Cisco MDS 9000 Family Configuration Guide, Release 2.x
Creating Dynamic VSANs

Table Of Contents

Creating Dynamic VSANs

About DPVM

DPVM Requirements

Enabling DPVM

About DPVM Databases

Configuring Config and Pending Databases

Activating Config Databases

About Autolearned Entries

Enabling Autolearning

Clearing Learned Entries

Configuring DPVM Database Distribution

Disabling DPVM Database Distribution

Locking the Fabric

Committing Changes

Discarding Changes

Clearing a Locked Session

Database Merge Guidelines

Copying DPVM Databases

Comparing Database Differences

Displaying DPVM Configurations

Sample DPVM Configuration

Default Settings


Creating Dynamic VSANs


Port VSAN membership on the switch is assigned on a port-by-port basis. By default each port belongs to the default VSAN.

You can dynamically assign VSAN membership to ports by assigning VSANs based on the device WWN. This method is referred to as the Dynamic Port VSAN Membership (DPVM) feature. DPVM offers flexibility and eliminates the need to reconfigure the port VSAN membership to maintain fabric topology when a host or storage device connection is moved between two Cisco MDS switches or two ports within a switch. It retains the configured VSAN regardless of where a device is connected or moved. To assign VSANs statically, see Chapter 16, "Configuring and Managing VSANs.".

This chapter includes the following sections:

About DPVM

DPVM Requirements

Enabling DPVM

About DPVM Databases

Configuring Config and Pending Databases

Activating Config Databases

About Autolearned Entries

Enabling Autolearning

Configuring DPVM Database Distribution

Database Merge Guidelines

Copying DPVM Databases

Comparing Database Differences

Displaying DPVM Configurations

Sample DPVM Configuration

Default Settings

About DPVM

DPVM configurations are based on port world wide name (pWWN) and node world wide name (nWWN) assignments. A DPVM database contains mapping information for each device pWWN/nWWN assignment and the corresponding VSAN. The Cisco SAN-OS software checks the database during a device FLOGI and obtains the required VSAN details.

The pWWN identifies the host or device and the nWWN identifies a node consisting of multiple devices. You can assign any one of these identifiers or any combination of these identifiers to configure DPVM mapping. If you assign a combination, then preference is given to the pWWN.

DPVM uses the Cisco Fabric Services (CFS) infrastructure to allow efficient database management and distribution. DPVM uses the application driven, coordinated distribution mode and the fabric-wide distribution scope (see Chapter 5, "Using the CFS Infrastructure").


Note DPVM does not cause any changes to device addressing. DPVM only pertains to the VSAN membership of the device, ensuring that the host gets same VSAN membership on any port on the switch. For example, if a port on the switch has a hardware failure, you can move the host connection to another port on the switch and not need to update the VSAN membership manually.



Note DPVM is not supported on FL ports. DPVM is supported only on F ports.


DPVM Requirements

To use the DPVM feature as designed, be sure to verify the following requirements:

The interface through which the dynamic device connects to the Cisco MDS 9000 Family switch must be configured as an F port.

The static port VSAN of the F port should be valid (not isolated, not suspended and in existence).

The dynamic VSAN configured for the device in the DPVM database should be valid (not isolated, not suspended and in existence).


Note The DPVM feature overrides any existing static port VSAN membership configuration. If the VSAN corresponding to the dynamic port is deleted or suspended, the port is shut down.


Enabling DPVM

To begin configuring the DPVM feature, you must explicitly enable DPVM on the required switches in the fabric. By default, this feature is disabled in all switches in the Cisco MDS 9000 Family.

The configuration and verification commands for the DPVM feature are only available when DPVM is enabled on a switch. When you disable this feature, all related configurations are automatically discarded.

To enable DPVM on any participating switch, follow these steps:

 
Command
Purpose

Step 1 

switch# config t

switch(config)#

Enters configuration mode.

Step 2 

switch(config)# dpvm enable

Enables DPVM on that switch.

switch(config)# no dpvm enable

Disables (default) DPVM on that switch.

About DPVM Databases

The DPVM database consists of a series of device mapping entries. Each entry consists of a device pWWN/nWWN assignment along with the dynamic VSAN to be assigned. You can configure a maximum of 16,000 DPVM entries in the DPVM database. This database is global to the whole switch (and fabric) and is not maintained for each VSAN.

The DPVM feature uses three databases to accept and implement configurations.

Configuration (config) database—All configuration changes are stored in the configuration database when distribution is disabled.

Active database—The database currently enforced by the fabric.

Pending database—All configuration changes are stored in the pending database when distribution is enabled (see the "Configuring DPVM Database Distribution" section).

Changes to the config database are not reflected in the active database until you activate the config database. Changes to the pending database are not reflected in the config/active database until you commit the pending database. This database structure allows you to create multiple entries, review changes, and let the config and pending databases take effect.

Configuring Config and Pending Databases

To create and populate the config and pending databases, follow these steps:

 
Command
Purpose

Step 1 

switch# config t

switch(config)#

Enters configuration mode.

Step 2 

switch(config)# dpvm database

switch(config-dpvm-db)#

Creates the config database.

switch(config)# no dpvm database

Deletes the config database.

Step 3 

switch(config-dpvm-db)# pwwn 12:33:56:78:90:12:34:56 vsan 100

Maps the specified device pWWN to VSAN 100.

switch(config-dpvm-db)# no pwwn 12:33:56:78:90:12:34:56 vsan 101

Removes the specified device pWWN mapping from the config database.

Step 4 

switch(config-dpvm-db)# nwwn 14:21:30:12:63:39:72:81 vsan 101

Maps the specified device nWWN to VSAN 101.

switch(config-dpvm-db)# no nwwn 14:21:30:12:63:39:72:80 vsan 101

Removes the specified device nWWN mapping from the config database.

Activating Config Databases

When you explicitly activate the config database, the config database becomes the active database. Activation may fail if conflicting entries are found between the config database and the currently active database. However, you can force activation to override conflicting entries.

To disable DPVM, you must explicitly deactivate the currently active DPVM database by issuing the no dpvm activate command.

To activate the DPVM config database, follow these steps:

 
Command
Purpose

Step 1 

switch# config t

switch(config)#

Enters configuration mode.

Step 2 

switch(config)# dpvm activate

Activates the config database.

switch(config)# no dpvm activate

Deactivates the currently active database.

switch(config)# dpvm activate force

Forcefully activates the config database to override conflicting entries.

About Autolearned Entries

The DPVM database can be configured to automatically learn (autolearn) about new devices within each VSAN. The autolearn feature can be enabled or disabled at any time. Learned entries are created by populating device pWWNs and VSANs in the DPVM active database. The DPVM active database should already be available to enable the autolearn feature.

You can delete any learned entry from the DPVM active database when you enable the autolearn feature. These entries only become permanent in the active database when you disable the autolearn feature.


Note Autolearning is only supported for devices connected to F ports. Devices connected to FL ports are not entered into the DPVM database because DPVM is not supported on FL ports.


The following conditions apply to learned entries:

If a device logs out while autolearn is enabled, that entry is automatically deleted from the DPVM active database.

If the same device logs multiple times into the switch through different ports, then the VSAN corresponding to last login is remembered.

Learned entries do not override previously configured and activated entries.

Learning is a two-part process—enabling autolearning followed by disabling autolearning.When the auto-learn option is enabled, the following applies:

Learning currently logged-in devices—occurs from the time learning is enabled.

Learning new device logins— occurs as and when new devices log in to the switch.

Enabling Autolearning

To enable autolearning, follow these steps:

 
Command
Purpose

Step 1 

switch# config t

switch(config)#

Enters configuration mode.

Step 2 

switch(config)# dpvm auto-learn

Enables learning on this switch.

switch(config)# no dpvm auto-learn

Disables (default) learning on this switch.

Clearing Learned Entries

You can clear DPVM entries from the active database (if autolearn is still enabled) using one of two methods.

To clear a single autolearn entry, use the clear dpvm auto-learn pwwn command.

switch# clear dpvm auto-learn pwwn 55:22:33:44:55:66:77:88

To clear all autolearn entries, use the clear dpvm auto-learn command.

switch# clear dpvm auto-learn 


Note These two commands do not start a session and can only be issued in the local switch.


Configuring DPVM Database Distribution

If the DPVM database is available on all switches in the fabric, devices can be moved anywhere and offer the greatest flexibility. To enable database distribution to the neighboring switches, the database should be consistently administered and distributed across all switches in the fabric. The Cisco SAN-OS software uses the Cisco Fabric Services (CFS) infrastructure to achieve this requirement (see Chapter 5, "Using the CFS Infrastructure").

Using the CFS infrastructure, each DPVM server learns the DPVM database from each of its neighboring switches during the ISL bring-up process. If you change the database locally, the DPVM server notifies its neighboring switches, and that database is updated by all switches in the Fabric.

If fabric distribution is enabled, all changes to the configuration database are stored in the pending database. These changes include the following tasks:

Adding, deleting, or modifying database entries.

Activating, deactivating, or deleting the configuration database.

Enabling or disabling autolearning.

These changes are distributed to all switches in a fabric when you commit the changes. You can also discard (abort) the changes at this point.


Tip You can view the contents of the pending database by issuing the show dpvm pending command.


Disabling DPVM Database Distribution

To disable DPVM database distribution to the neighboring switches, follow these steps:

 
Command
Purpose

Step 1 

switch# config t

switch(config)#

Enters configuration mode.

Step 2 

switch(config)# no dpvm distribute

Disables DPVM distribution to the neighboring switches.

switch(config)# dpvm distribute

Enables (default) DPVM distribution to the neighboring switches.

Locking the Fabric

The first action that modifies the existing configuration creates the pending database and locks the feature in the fabric. Once you lock the fabric, the following conditions apply:

No other user can make any configuration changes to this feature.

A copy of the configuration database becomes the pending database. Modifications from this point on are made to the pending database. The pending database remains in effect until you commit the modifications to the pending database or discard (abort) the changes to the pending database.

To lock the fabric and apply changes to the pending database, follow these steps:

 
Command
Purpose

Step 1 

switch# config t

switch(config)#

Enters configuration mode.

Step 2 

switch(config)# dpvm database

switch(config-dpvm-db)#

Accesses the DPVM config database.

Step 3 

switch(config-dpvm-db)# pwwn 11:22:33:44:55:66:77:88 vsan 11

Adds one entry to the DPVM config database.

Step 4 

switch(config-dpvm-db)# exit

switch(config)#

Exits to configuration mode.

Step 5 

switch(config)# dpvm activate

Activates the config database.

Committing Changes

If you commit the changes made to the configuration, the configuration in the pending database are distributed to other switches. On a successful commit, the configuration change is applied throughout the fabric and the lock is released.

To commit the pending database, follow these steps:

 
Command
Purpose

Step 1 

switch# config t

switch(config)#

Enters configuration mode.

Step 2 

switch(config)# dpvm commit

Commits the database entries that are currently in the pending database.

Discarding Changes

If you discard (abort) the changes made to the pending database, the configurations remains unaffected and the lock is released.

To discard the pending database, follow these steps:

 
Command
Purpose

Step 1 

switch# config t

switch(config)#

Enters configuration mode.

Step 2 

switch(config)# dpvm abort

Discards the database entries that are currently in the pending database.

Clearing a Locked Session

If you have performed a DPVM task and have forgotten to release the lock by either committing or discarding the changes, an administrator can release the lock from any switch in the fabric. If the administrator performs this task, your changes to the pending database are discarded and the fabric lock is released.


Tip The pending database is only available in the volatile directory and are subject to being discarded if the switch is restarted.


To use administrative privileges and release a locked DPVM session, use the clear dpvm session command in EXEC mode.

switch# clear dpvm session

Database Merge Guidelines

A database merge refers to a union of the configuration database and static (unlearned) entries in the active database. See the "CFS Merge Support" section on page 5-7 for detailed concepts.

When merging the database between two fabric, follow these guidelines:

Verify that the activation status and the auto-learn status is the same is both fabrics.

Verify that the combined number of device entries in each database does not exceed 16K.


Caution If you do not follow these two conditions, the merge will fail. The next distribution will forcefully synchronize the databases and the activation states in the fabric.

Copying DPVM Databases

The following circumstances may require the active database to be copied to the config database:

If the learned entries are only added to the active database.

If the config database or entries in the config database are accidently deleted.


Note If you copy the DPVM database and fabric distribution is enabled, you must commit the changes.


To copy the currently active database to the config database, use the dpvm database copy command.

switch# dpvm database copy active
Legend: "+" New Entry, "-" Missing Entry, "*" Possible Conflict Entry
---------------------------------------------------------------------
-  pwwn  12:33:56:78:90:12:34:56  vsan 100
-  nwwn  14:21:30:12:63:39:72:81  vsan 101

Comparing Database Differences

You can compare the DPVM databases as follows:

Use the dpvm database diff active command to compare the active database with the config database.

switch# dpvm database diff active
Legend: "+" New Entry, "-" Missing Entry, "*" Possible Conflict Entry
---------------------------------------------------------------------
-  pwwn  44:22:33:44:55:66:77:8 san 44
*  pwwn  11:22:33:44:55:66:77:88  vsan 11

Use the dpvm database diff config command to compare config database with the active database.

switch# dpvm database diff config
Legend: "+" New Entry, "-" Missing Entry, "*" Possible Conflict Entry
---------------------------------------------------------------------
+  pwwn  44:22:33:44:55:66:77:88  vsan 44
*  pwwn  11:22:33:44:55:66:77:88  vsan 22

Use the show dpvm pending-diff command (when CFS distribution is enabled) to compare the pending database with the config database.

To add pending database entries to the DPVM config database, follow these steps:

 
Command
Purpose

Step 1 

switch# config t

switch(config)#

Enters configuration mode.

Step 2 

switch(config)# dpvm distribute

Enables CFS distribution.

Step 3 

switch(config)# dpvm database

Accesses the DPVM config database.

Step 4 

switch(config-dpvm-db)# pwwn 44:22:33:44:55:66:77:88 vsan 55

switch(config-dpvm-db)# pwwn 55:22:33:44:55:66:77:88 vsan 55

Adds two entries to the DPVM config database.

Displaying DPVM Configurations

Use the show dpvm command to display information about WWNs configured on a per VSAN basis (see Examples 17-1 to 17-6).

Example 17-1 Displays the DPVM Configuration Status

switch# show dpvm status
DB is activated successfully, auto-learn is on

Example 17-2 Displays the DPVM Current Dynamic Ports for the Specified VSAN

switch# show dpvm ports vsan 10
--------------------------------------------------------------
Interface Vsan Device pWWN             Device nWWN
--------------------------------------------------------------
fc1/2     10   29:a0:00:05:30:00:6b:a0 fe:65:00:05:30:00:2b:a0

Example 17-3 Displays the DPVM Config Database

switch# show dpvm database
pwwn  11:22:33:44:55:66:77:88  vsan 11
pwwn  22:22:33:44:55:66:77:88  vsan 22
pwwn  33:22:33:44:55:66:77:88  vsan 33
pwwn  44:22:33:44:55:66:77:88  vsan 44
[Total 4 entries]

Example 17-4 Displays the DPVM Active Database

switch# show dpvm database active
pwwn  11:22:33:44:55:66:77:88  vsan 22
pwwn  22:22:33:44:55:66:77:88  vsan 22
pwwn  33:22:33:44:55:66:77:88  vsan 33
[Total 3 entries]
* is auto-learnt entry

Example 17-5 Displays DPVM Config Database

switch# show dpvm database
pwwn  11:22:33:44:55:66:77:88  vsan 11
pwwn  22:22:33:44:55:66:77:88  vsan 22
pwwn  33:22:33:44:55:66:77:88  vsan 33
pwwn  44:22:33:44:55:66:77:88  vsan 44
[Total 4 entries]

Example 17-6 Compares Pending Database with the Config Database

switch# show dpvm pending-diff
Legend: "+" New Entry, "-" Missing Entry, "*" Possible Conflict Entry
---------------------------------------------------------------------
+  pwwn  55:22:33:44:55:66:77:88  vsan 55
-  pwwn  11:22:33:44:55:66:77:88  vsan 11
*  pwwn  44:22:33:44:55:66:77:88  vsan 44

Sample DPVM Configuration

To configure a basic DPVM scenario, follow these steps:


Step 1 Enable the DPVM feature and enable DPVM distribution.

switch1# config 
Enter configuration commands, one per line.  End with CNTL/Z. 
switch1(config)# dpvm enable 
switch1(config)# end 
switch1# show dpvm database 
switch1# show dpvm database active 
switch1# show dpvm status 

At this stage, the configuration does not have an active database and the auto-learn option is disabled.

Step 2 Activate a null (empty) database so it can be populated with autolearned entries.

switch1# config 
Enter configuration commands, one per line.  End with CNTL/Z. 
switch1(config)# dpvm activate 
switch1(config)# dpvm commit 
switch1(config)# end 
switch1# show dpvm database 
switch1# show dpvm database active 
switch1# show dpvm status 

At this stage, the database is successfully activated and the auto-learn option continues to be disabled.

Step 3 Enable the auto-learn option and commit the configuration changes.

switch1# config 
Enter configuration commands, one per line.  End with CNTL/Z. 
switch1(config)# dpvm auto-learn 
switch1(config)# dpvm commit 
switch1(config)# end 
switch1# show dpvm database active 
pwwn 21:00:00:e0:8b:0e:74:8a vsan 4(*) 
pwwn 21:01:00:e0:8b:2e:87:8a vsan 5(*) 
[Total 2 entries] 
* is auto-learnt entry 
switch1# show dpvm ports 
-------------------------------------------------------------- 
Interface   Vsan        Device pWWN       Device nWWN 
-------------------------------------------------------------- 
fc1/24       4   21:00:00:e0:8b:0e:74:8a  20:00:00:e0:8b:0e:74:8a 
fc1/27       5   21:01:00:e0:8b:2e:87:8a  20:01:00:e0:8b:2e:87:8a 
switch1# show flogi database 
--------------------------------------------------------------------------- 
INTERFACE  VSAN    FCID            PORT NAME               NODE NAME      
--------------------------------------------------------------------------- 
fc1/24     4     0xe70100  21:00:00:e0:8b:0e:74:8a  20:00:00:e0:8b:0e:74:8a 
fc1/27     5     0xe80100  21:01:00:e0:8b:2e:87:8a  20:01:00:e0:8b:2e:87:8a 

Total number of flogi = 2. 

switch195# show dpvm status 
DB is activated successfully, auto-learn is on 

At this stage, the currently logged in devices (and their current VSAN assignment) populate the active database. However the entries are not yet permanent in the active database.

The output of the show dpvm ports and the show flogi database commands displays two other devices that have logged in (referred to as switch9 and switch3 in this sample configuration).

Step 4 Access switch9 and issue the following commands.

switch9# show dpvm database active 
pwwn 21:00:00:e0:8b:0e:87:8a vsan 1(*) 
pwwn 21:01:00:e0:8b:2e:74:8a vsan 1(*) 
[Total 2 entries] 
* is auto-learnt entry 
switch9# show dpvm status 
DB is activated successfully, auto-learn is on 

Step 5 Access switch3 and issue the following commands.

switch3# show dpvm database active 
pwwn 21:00:00:e0:8b:0e:76:8a vsan 1(*) 
pwwn 21:01:00:e0:8b:2e:76:8a vsan 1(*) 
[Total 2 entries] 
* is auto-learnt entry 
switch3# show dpvm status 
DB is activated successfully, auto-learn is on 

Step 6 Disable autoloearning in switch1 and commit the configuration changes.

switch1# config 
Enter configuration commands, one per line.  End with CNTL/Z. 
switch1(config)# no dpvm auto-learn 
switch1(config)# dpvm commit 
switch1(config)# end 
switch1# show dpvm status 
DB is activated successfully, auto-learn is off 
switch1# show dpvm database active 
pwwn 21:00:00:e0:8b:0e:74:8a vsan 4 
pwwn 21:01:00:e0:8b:2e:87:8a vsan 5 
pwwn 21:00:00:e0:8b:0e:87:8a vsan 1 
pwwn 21:01:00:e0:8b:2e:74:8a vsan 1 
pwwn 21:00:00:e0:8b:0e:76:8a vsan 1 
pwwn 21:01:00:e0:8b:2e:76:8a vsan 1 
[Total 6 entries] 
* is auto-learnt entry 
switch1# show dpvm status 
DB is activated successfully, auto-learn is off 

At this stage, the autolearned entries are made permanent in the active database.

Step 7 Access switch9 and issue the following commands.

switch9# show dpvm database active 
pwwn 21:00:00:e0:8b:0e:87:8a vsan 1 
pwwn 21:01:00:e0:8b:2e:74:8a vsan 1 
pwwn 21:00:00:e0:8b:0e:76:8a vsan 1 
pwwn 21:01:00:e0:8b:2e:76:8a vsan 1 
pwwn 21:00:00:e0:8b:0e:74:8a vsan 4 
pwwn 21:01:00:e0:8b:2e:87:8a vsan 5 
[Total 6 entries] 
* is auto-learnt entry 
switch9# show dpvm status 
DB is activated successfully, auto-learn is off 

Step 8 Access switch3 and issue the following commands.

switch3# show dpvm database active 
pwwn 21:00:00:e0:8b:0e:76:8a vsan 1 
pwwn 21:01:00:e0:8b:2e:76:8a vsan 1 
pwwn 21:00:00:e0:8b:0e:87:8a vsan 1 
pwwn 21:01:00:e0:8b:2e:74:8a vsan 1 
pwwn 21:00:00:e0:8b:0e:74:8a vsan 4 
pwwn 21:01:00:e0:8b:2e:87:8a vsan 5 
[Total 6 entries] 
* is auto-learnt entry 
switch3# show dpvm status 
DB is activated successfully, auto-learn is off 


Note These basic steps help you ascertain that the information is identical in all the switches in the fabric.


You have now configured a basic DPVM scenario in a Cisco MDS 9000 Family switch.


Default Settings

Table 17-1 lists the default settings for DPVM parameters.

Table 17-1 Default DPVM Parameters 

Parameters
Default

DPVM

Disabled.

DPVM distribution

Enabled.

Autolearning

Disabled.