User Tools

Site Tools


storage:cisco_cmd

Cisco NX-OS SAN switches MDS

Show interface status

mds9506-1# show interface brief

-------------------------------------------------------------------------------
Interface  Vsan   Admin  Admin   Status       SFP    Oper  Oper   Port
                  Mode   Trunk                       Mode  Speed  Channel
                         Mode                              (Gbps)
-------------------------------------------------------------------------------
fc1/1      1      E      on      trunking     swl   TE     8      --
fc1/2      1      F      on      notConnected swl    --    --     --
fc1/3      1      F      off     up           swl   F      8      --
fc1/4      1      F      off     up           swl   F      8      --
fc1/5      1      F      off     up           swl   F      4      --
fc1/6      1      F      off     up           swl   F      8      --
fc1/7      1      F      off     up           swl   F      8      --
fc1/8      1      F      on      notConnected swl    --    --     --
fc1/9      1      F      off     up           swl   F      8      --
fc1/10     1      F      off     up           swl   F      8      --
fc1/11     1      F      on      notConnected swl    --    --     --
fc1/12     1      F      off     up           swl   F      8      --
fc1/13     1      F      off     up           swl   F      8      --
fc1/14     1      F      on      notConnected swl    --    --     --
fc1/15     1      F      off     up           swl   F      4      --
fc1/16     1      F      off     up           swl   F      8      --

Resetting statistics count

Run both commands, the first for standard stats and the second for debug. The debug command is a hidden one

mds9506-1# clear counters interface all
mds9506-1# debug system internal clear-counters all

Cisco scripting

I only have Cisco switches in my infrastructure (it has been a long time since I used a McDATA or Brocade) so this is only relevent to the Cisco switches. With Cisco you can configure all of your WWN aliases and zones before hand in a SAN-OS config text file and then upload that to the switch using the 'copy ftp:configfile.txt running-config' command.

https://community.emc.com/thread/97413?start=0&tstart=0

http://en.kioskea.net/faq/28828-sending-cisco-commands-sent-via-ssh-telnet

Cisco zoning commands

mdssw-1#  show flogi database
--------------------------------------------------------------------------------
INTERFACE        VSAN    FCID           PORT NAME               NODE NAME
--------------------------------------------------------------------------------
fc1/3            1     0xaa0660  50:05:07:63:0b:13:c1:0d 50:05:07:63:0b:ff:c1:0d
                           [ds8100_I0233]
fc1/4            1     0xaa08c0  10:00:00:00:c9:c6:20:a4 20:00:00:00:c9:c6:20:a4
                           [nim_p0]

Step: 1 Add interface to the target VSAN

vsan database
vsan 10 interface fc1/1
exit

Step: 2 Create fcalias

fcalias name host vsan 10
member pwwn 10:00:00:00:d9:81:4f:ba
exit

Step: 3 Create Zone Assuming we are zoning to a existing member, say ‘vmax_3ab’ for example

zone name zn_host_vmzx_3ab vsan 10
member fcalias host
member fcalias vmax_3ab
exit

Step: 4 Add zone to zoneset

zoneset name zoneset1 vsan 10
member zn_host_vmzx_3ab
exit

Step: 5 Activate zoneset

zoneset distribute vsan 10
zoneset activate name zoneset1 vsan 10

Step: 6 Commit

zone commit vsan 10
end

Step: 7 Copy running config to start-up config

copy run start

Step: 8 Verification

show zone name zn_host_vmzx_3ab

Interface Configuration Commands

switch(config)# interface fc slot/port
Selects a specific interface by slot and port.
switch(config-if)# no shutdown
Enables the interface.
switch(config)# interface mgmt0
switch(config-if)# no shutdown
switch(config-if)# ip address address netmask
Defines the IP address and the network mask.
switch(config-if)# switchport description description
Defines an interface description. Enter a description of 80 characters or less.
switch(config)# ip default-gateway destination-ip-address
switch(config)# ip route destination-ip-address destination-prefix-mask nexthop-destination-ip-address
Defines default gateway and static routes.

Create zoning by script

cat mkzone.sh
#!/bin/sh
#
# mkzone.sh - Utility that will take a config file and generate a
#             procedure that can be used for Change Management as well
#             as cut/pasted into an ssh session to configure.
#             Script is able to be run on unix/linux platforms and
#             inside Cygwin on Windows.
#
# Usage: mkzone.sh <mkzone_config_file>
#
# Version: 0.50
# Date: 12/28//2011
#
# ****************************************************************************
# "THE BEER-WARE LICENSE" (Revision 42):
# johnny dot mastin at gmail dot com wrote this file. As long as you retain 
# this notice you can do whatever you want with this stuff. If we meet some 
# day, and you think this stuff is worth it, you can buy me a beer in return.
# ****************************************************************************
#
#

# Condense the config file. Get rid of blank lines and comments.
if [ ! -f ${1:-CONFIG} ]; then
     echo "ERROR: Config file ${1} not found."
     echo "Usage: mkzone.sh <mkzone_config_file>"
     echo ""
     exit 1
fi
cat ${1} | egrep -v "^$|^#" > /tmp/zones.config.$$
CONFIG=/tmp/zones.config.$$

# Set some variables.
VSAN=`grep "^VSAN," ${CONFIG} | cut -d, -f2`
SWITCH_NAME=`grep "^SwitchName," ${CONFIG} | cut -d, -f2`
ZONESET_NAME=`grep "^ZonesetName," ${CONFIG} | cut -d, -f2`
ZONE_BY=`grep "^ZoneBy," ${CONFIG} | cut -d, -f2`
DATE=`date '+%Y%m%d'`

# Give disclaimer to say the person should check these configs.
echo "*******************************************"
echo "**                NOTE                   **"
echo "*******************************************"
echo "Before adding this to Change Management and executing,"
echo "please double-check for accuracy as well as remove"
echo "any devalias lines for devices that already exist"
echo "in the database.  This also applies to the backout"
echo "procedures."
echo ""
echo "This note should be omitted from Change Management."
echo "Actual Procedure/Backout follows below."
echo ""
echo ""
echo ""
echo "cut here==========8<-----------------------"
echo ""
echo ""
echo ""

# Spit out some procedures for Change Management.
echo "*******************************************"
echo "**              Procedure                **"
echo "*******************************************"
echo ""
echo ""
echo "** Login to switch ${SWITCH_NAME}"
echo "** Enter the following commands:"
echo "copy run start"
echo "copy run bootflash:pre-${DATE}"
echo "config t"
echo ""
echo ""


# Create the devaliases.
echo "device-alias database"
for TYPE in SERVER ARRAY SWITCH
do
    for DEVICE in `grep "^${TYPE}" ${CONFIG} | cut -d, -f2| sort -u`
    do
      DEVICE_WWN=`grep ",${DEVICE}," ${CONFIG} | cut -d, -f3 | head -1`
      echo "device-alias name ${DEVICE} pwwn ${DEVICE_WWN}"
    done
done
echo "exit"
echo "device-alias commit"
echo ""

# Create all of the zones
for TYPE in `grep ARRAY ${CONFIG} | cut -d"," -f1 | cut -c6- | sort -u`
do
    SERVER_LIST=`grep "^SERVER${TYPE}," ${CONFIG} | cut -d, -f2`
    for SERVER in ${SERVER_LIST} 
    do
      SERVER_WWN=`grep ",${SERVER}," ${CONFIG} | cut -d, -f3 | head -1`
      ARRAY_LIST=`grep "^ARRAY${TYPE}" ${CONFIG} | cut -d, -f2`
      for ARRAY in ${ARRAY_LIST}
      do
          ARRAY_WWN=`grep ",${ARRAY}," ${CONFIG} | cut -d, -f3 | head -1`
          echo "zone name ${SERVER}_${ARRAY} vsan ${VSAN}"
          case ${ZONE_BY} in
          "pwwn")
                echo "    member pwwn ${SERVER_WWN}"
                echo "    member pwwn ${ARRAY_WWN}"
                ;;
          "devalias")
                echo "    member device-alias ${SERVER}"
                echo "    member device-alias ${ARRAY}"
                ;;
          *)
                echo "    member pwwn ${SERVER_WWN}"
                echo "    member pwwn ${ARRAY_WWN}"
                ;;
          esac
      done 
    done
done
echo "exit"
echo ""

# If you are modifying an existing zoneset for a vsan, it is a good idea
# to copy it to a new zoneset name and activate the new zoneset.  That 
# way, the old zoneset is avaialable for fallback.
ZONESET_CLONE=`grep "^ZonesetClone," ${CONFIG} | cut -d, -f2`
if [ ${ZONESET_CLONE} != "NOT_IN_USE" ]; then
 echo "zoneset clone ${ZONESET_CLONE} ${ZONESET_NAME} vsan ${VSAN}"
fi

# Create the active zoneset and activate it
echo "zoneset name ${ZONESET_NAME} vsan ${VSAN}"

for TYPE in `grep ARRAY ${CONFIG} | cut -d"," -f1 | cut -c6- | sort -u`
do
    SERVER_LIST=`grep "^SERVER${TYPE}," ${CONFIG} | cut -d, -f2`
    for SERVER in ${SERVER_LIST} 
    do
      ARRAY_LIST=`grep "^ARRAY${TYPE}" ${CONFIG} | cut -d, -f2`
      for ARRAY in ${ARRAY_LIST}
      do
          echo "member ${SERVER}_${ARRAY}"
      done 
    done
done
echo "exit"
echo ""
echo "zoneset activate name ${ZONESET_NAME} vsan ${VSAN}"
echo ""

echo ""
echo "copy run start"
echo "copy run bootflash:post-${DATE}"
echo ""
echo "** Logout of switch ${SWITCH_NAME}"



echo ""
echo ""
echo "*******************************************"
echo "**         Backout Procedure             **"
echo "*******************************************"
echo ""
echo ""
echo "** Login to switch ${SWITCH_NAME}"
echo "** Enter the following commands:"
echo "copy run start"
echo "copy run bootflash:pre-${DATE}"
echo "config t"
echo ""
echo ""

# If you have an old zoneset, activate that.
if [ ${ZONESET_CLONE} != "NOT_IN_USE" ]; then
 echo "zoneset activate name ${ZONESET_CLONE} vsan ${VSAN}"
 echo "no zoneset name ${ZONESET_NAME} vsan ${VSAN}"
else
 echo "no zoneset activate name ${ZONESET_NAME} vsan ${VSAN}"
fi
echo ""

# Delete all of the zones
for TYPE in `grep ARRAY ${CONFIG} | cut -d"," -f1 | cut -c6- | sort -u`
do
    SERVER_LIST=`grep "^SERVER${TYPE}," ${CONFIG} | cut -d, -f2`
    for SERVER in ${SERVER_LIST} 
    do
      ARRAY_LIST=`grep "^ARRAY${TYPE}" ${CONFIG} | cut -d, -f2`
      for ARRAY in ${ARRAY_LIST}
      do
          echo "no zone name ${SERVER}_${ARRAY} vsan ${VSAN}"
      done 
    done
done
echo ""

# Remove the devaliases.
echo "device-alias database"
for TYPE in SERVER ARRAY SWITCH
do
    for DEVICE in `grep "^${TYPE}" ${CONFIG} | cut -d, -f2 | sort -u`
    do
      DEVICE_WWN=`grep ",${DEVICE}," ${CONFIG} | cut -d, -f3 | head -1`
      echo "no device-alias name ${DEVICE} pwwn ${DEVICE_WWN}"
    done
done
echo "exit"
echo "device-alias commit"
echo ""
echo ""
echo "copy run start"
echo "copy run bootflash:post-${DATE}"
echo ""
echo "** Logout of switch ${SWITCH_NAME}"


# Clean up and exit.
#rm /tmp/zones.config.$$
exit 0

http://en.kioskea.net/faq/28828-sending-cisco-commands-sent-via-ssh-telnet

Create zoning by script bis

This is my modifications for AIX…and other I check on which fabric the port is loggin and the propose a zoning based on predefined storage, also add a second port for AIX servers using NPIV.

root@nimbcp - /root/scripts/san > cat config_file
# Choose an array in ds8800-prd ds8800-bcp svc-prd svc-bcp
# ARRAYx,<storage>
# the array number and server number must match
ARRAY1,svc-bcp
ARRAY2,svc-bcp
# add SERVERx,<fcalias>,<WWN>
# WWN can be with different formats: C05076004B64002A c0:50:76:00:4b:64:00:2a
SERVER1,v_prodaix1_p0,c0507604669b0050
SERVER1,v_prodaix1_p1,c0507604670b0052
SERVER1,v_prodaix1_p2,c0507604670b0054
SERVER1,v_prodaix1_p3,c0507604670b0056
root@nim - /root/scripts/san > cat mkzone.sh
#!/bin/ksh93
#set -x
#
# mkzone.sh - Utility that will take a config file and generate a
#             procedure that can be used for Change Management as well
#             as cut/pasted into an ssh session to configure.
#             Script is able to be run on unix/linux platforms and
#             inside Cygwin on Windows.
#
# Usage: mkzone.sh <mkzone_config_file>
#
# Version: 0.50
# Date: 12/28//2011
#
# ****************************************************************************
# "THE BEER-WARE LICENSE" (Revision 42):
# johnny dot mastin at gmail dot com wrote this file. As long as you retain
# this notice you can do whatever you want with this stuff. If we meet some
# day, and you think this stuff is worth it, you can buy me a beer in return.
# ****************************************************************************
#
#show flogi database
#

# Condense the config file. Get rid of blank lines and comments.
if [ ! -f ${1:-CONFIG} ]; then
     echo "ERROR: Config file ${1} not found."
     echo "Usage: mkzone.sh <mkzone_config_file>"
     echo ""
     exit 1
fi

logpath=/root/scripts/san/logs
errlog=$logpath/errlog
cat ${1} | egrep -v "^$|^#" > $logpath/zones.config.$$


CONFIG=$logpath/zones.config.$$
CONFIG1=$logpath/zones.config.ok

HOST_FABRIC_A=mdssw-1
HOST_FABRIC_B=mdssw-4
ALL_HOST_A="mdssw-1 mdssw-3"
ALL_HOST_B="mdssw-2 mdssw-4"
LOGIN=admin

# Set some variables.
#VSAN=`grep "^VSAN," ${CONFIG} | cut -d, -f2`
#SWITCH_NAME=`grep "^SwitchName," ${CONFIG} | cut -d, -f2`
#ZONESET_NAME=`grep "^ZonesetName," ${CONFIG} | cut -d, -f2`
#ZONE_BY=`grep "^ZoneBy," ${CONFIG} | cut -d, -f2`
DATE=`date '+%Y%m%d'`

if [ -e $errlog ]
then
  rm $errlog
fi

convert_wwn ()
{
wwn=$1
wwn_nodot=$(echo $wwn | sed 's/://g;s/\.//g' | tr 'a-z' 'A-Z')
wwn_dot=$(echo $wwn_nodot | sed 's/../&:/g;s/:$//' | tr 'A-Z' 'a-z')
echo $wwn_dot
}

ssh $LOGIN@mdssw-1 "show flogi database" | grep : | grep fc > $logpath/flogi.A 2>/dev/null
ssh $LOGIN@mdssw-3 "show flogi database" | grep : | grep fc >> $logpath/flogi.A 2>/dev/null
ssh $LOGIN@mdssw-2 "show flogi database" | grep : | grep fc > $logpath/flogi.B 2>/dev/null
ssh $LOGIN@mdssw-4 "show flogi database" | grep : | grep fc >> $logpath/flogi.B 2>/dev/null

grep "^ARRAY" ${CONFIG} > $CONFIG1.A
grep "^ARRAY" ${CONFIG} > $CONFIG1.B
for line in $(grep "^SERVER" ${CONFIG})
do
  DEVICE_WWN=$(echo $line | cut -d, -f3)
  ## This is specific for AIX to add the second WWN for each FC port
  LAST_DIGIT=$(echo $DEVICE_WWN | rev | cut -c1 | rev)
  BEGIN_DIGITS=$(echo $DEVICE_WWN | rev | cut -c2- | rev)
  LAST_DIGIT1=$((0x$LAST_DIGIT + 1))
  LAST_DIGIT_HEX=$(echo 16o${LAST_DIGIT1}p |dc)
  DEVICE_WWN1=$(echo ${BEGIN_DIGITS}${LAST_DIGIT_HEX})
  ## End This is specific for AIX to add the second WWN for each FC port
  PWWN=$(convert_wwn $DEVICE_WWN)
  fabric=$(grep "$PWWN" $logpath/flogi.* | cut -d'.' -f2- | cut -d':' -f1)
  line1=$(echo $line | cut -d',' -f1-2)
  echo $fabric | egrep "A|B" > /dev/null
  if [ $? -ne 0 ]
  then
    echo "$PWWN doesn't exists on a FABRIC"
  else
    echo $line1,$PWWN,$fabric >> $CONFIG1.$fabric
  fi
done

for connect in ${HOST_FABRIC_A} ${HOST_FABRIC_B}
do
  # Backup of config before
  ssh $LOGIN@$connect "show zoneset active" > $logpath/zoneset_active_before.$connect.$DATE 2>/dev/null
  ssh $LOGIN@$connect "show startup-config" > $logpath/backup_config.$connect.$DATE 2>/dev/null
  ssh $LOGIN@$connect "show zoneset brief active" > $logpath/zoneset.$connect 2>/dev/null
  VSAN=$(grep "zoneset name" $logpath/zoneset.$connect | awk '{print $5}')
  ZONESET_NAME=$(grep "zoneset name" $logpath/zoneset.$connect | awk '{print $3}')

  echo $ZONESET_NAME | grep "cfg_A" > /dev/null 2>&1
  if [ $? -eq 0 ]
  then
    CONFIGOK="${CONFIG1}.A"
  else
    echo $ZONESET_NAME | grep "cfg_B" > /dev/null 2>&1
    if [ $? -eq 0 ]
    then
      CONFIGOK="${CONFIG1}.B"
    else
      echo "ERROR fabric not found"
      exit 1
    fi
  fi

  banner "$connect"
  echo "** Login to switch ${connect}"
  echo "** Enter the following commands:"
  echo "***************************************************"
  echo ""
  echo "ssh $LOGIN@${connect}"
  echo "copy run start"
#  echo "copy run bootflash:pre-${DATE}"
  echo ""

  # Check alias
  ssh $LOGIN@$connect "show fcalias" > $logpath/fcalias.$connect 2>/dev/null
  # Create the fcaliases.
  echo "config t"
  for TYPE in SERVER
  do
    for DEVICE in $(grep "^${TYPE}" ${CONFIGOK} | cut -d, -f2| sort -u)
    do
      DEVICE_WWN=$(grep ",${DEVICE}," ${CONFIGOK} | cut -d, -f3 | head -1)
      PWWN=$(convert_wwn $DEVICE_WWN)
      PWWN1=$(convert_wwn $DEVICE_WWN1)
#echo "$PWWN"
      grep "fcalias $DEVICE " $logpath/fcalias.$connect > /dev/null 2>&1
      if [ $? -eq 0 ]
      then
        grep -p "$PWWN" $logpath/fcalias.$connect > /dev/null 2>&1
        if [ $? -eq 0 ]
        then
          echo "FCalias $DEVICE $DEVICE_WWN still exists" >> $errlog
        else
          echo "FCalias $DEVICE still exists but with wrong WWN" >> $errlog
        fi
      else
        grep $PWWN $logpath/fcalias.$connect > /dev/null 2>&1
        if [ $? -eq 0 ]
        then
          echo "WWN $PWWN still exists" >> $errlog
          grep -p "$PWWN" $logpath/fcalias.$connect >> $errlog
        fi
        echo "fcalias name ${DEVICE} vsan ${VSAN}"
        echo "member pwwn ${PWWN}"
        echo "member pwwn ${PWWN1}"
      fi
    done
  done
  echo "exit"
  echo ""

  # Create all of the zones
  echo "config t"
  ZONE_ADD=""

  for line in $(grep "^SERVER" ${CONFIGOK})
  do
    SERVER=$(echo $line | cut -d, -f2)
    NUMBER=$(echo $line | cut -d, -f1 | sed 's/SERVER//')
    for storage in $(grep "^ARRAY${NUMBER}," ${CONFIGOK} | cut -d, -f2- | sed 's/,/\ /g')
    do
      case ${storage} in
                svc-prd)   word1=svc3-prd ; word2=svc4-prd ;;
                svc-bcp)   word1=svc3-bcp ; word2=svc4-bcp ;;
                ds8800-prd) word1=ds8800-prd ; word2=ds8800-prd ;;
                ds8800-bcp) word1=ds8800-bcp ; word2=ds8800-bcp ;;
      esac
      for ARRAY in $(egrep "$word1|$word2" $logpath/fcalias.$connect | awk '{print $3}' | grep -v "_mm_")
      do
        echo "zone name ${SERVER}_${ARRAY} vsan ${VSAN}"
        echo "member fcalias ${SERVER}"
        echo "member fcalias ${ARRAY}"
        ZONE_ADD=$(echo "$ZONE_ADD ${SERVER}_${ARRAY}")
      done
    done
  done
  echo "exit"
  echo ""

  # Create the active zoneset and activate it
  echo "zoneset name ${ZONESET_NAME} vsan ${VSAN}"

  for ZONEADD in ${ZONE_ADD}
  do
    echo "member ${ZONEADD}"
  done
  echo "exit"
  echo "zoneset distribute vsan ${VSAN}"
  echo "sleep 10"
  echo "zoneset activate name ${ZONESET_NAME} vsan ${VSAN}"
  echo "sleep 10"
  echo "copy run start"
#  echo "copy run bootflash:post-${DATE}"
  echo "exit"
  echo "exit"
  echo "***************************************************"
  echo "** Logout of switch ${connect}"

  # Backup of config after
  #ssh $LOGIN@$connect "show zoneset active" > $logpath/zoneset_active_after.$DATE 2>/dev/null

done

if [ -e $errlog ]
then
  echo
  echo "***** Warning report:"
  cat $errlog
fi



# Clean up and exit.
rm $CONFIG
exit 0

Cisco MDS – How To Remove Zones from an Active Zoneset

1. Firstly we need to know the specific names of the Zones that we intend to delete. To gather the full list of zone members within a Zoneset run show zoneset vsan xx. The output will return all of the member names for the Zoneset, the output can be reduced if you know the naming conventions associated with the hosts; for example if the Zone names begin with V21212Oracle-1 then issuing the command show zoneset brief | include V21212Oracle-1 will return in this case all the Zones associated with Oracle-1: RZ1

2. To View the active Zones for Oracle-1 within the Zonseset: show zoneset active | include V21212Oracle-1 RZ2

3. Example of Removing half the Zones (Paths) associated with host Oracle-1 from the active Zoneset name vsan10_zs: config t zoneset name vsan10_zs vsan 10 no member V21212Oracle-1_hba1-VMAX40K_9e0 no member V21212Oracle-1_hba1-VMAX40K_11e0 no member V21212Oracle-1_hba2-VMAX40K_7e0 no member V21212Oracle-1_hba2-VMAX40K_5e0

4. Re-activating the Zoneset vsan10_zs after the config changes of removing the specified Zoneset members: zoneset activate name vsan10_zs vsan 10 zone commit vsan 10

5. Finally removing the Zones from the configuration: no zone name V21212Oracle-1_hba1-VMAX40K_9e0 vsan 10 no zone name V21212Oracle-1_hba1-VMAX40K_11e0 vsan 10 no zone name V21212Oracle-1_hba2-VMAX40K_7e0 vsan 10 no zone name V21212Oracle-1_hba2-VMAX40K_5e0 vsan 10 zone commit vsan 10 end copy run start

Confirm configuration conatins the correct Active Zoning: show zoneset brief | include V21212Oracle-1 show zoneset active | include V21212Oracle-1

Cisco MDS Zoning – RENAME

In this post, I’ll detail some useful commands that can be leveraged to rename Cisco zoning components:

  FCALIAS
  ZONE
  ZONESET

RENAME ALIAS FOR HOSTS (vsan id of 10):

switch(config)# fcalias rename old-AliasName new-AliasName vsan 10
RENAME ZONES:
switch(config)# zone rename old-ZoneName new-ZoneName vsan 10
RENAME ZONESETS:
switch(config)# zoneset rename old-ZoneSetName new-ZoneSetName vsan 10

Once complete Activate and Commit these changes:

zoneset activate name vsan10_zs vsan 10
zone commit vsan 10

Displays alias mappings.

switch# show fcalias

Displays zone mappings.

switch# show zone

Displays all zone sets.

switch# show zoneset

Displays the active zone set for each VSAN, including which devices have logged in and are communicating.

switch# show zoneset active

Displays the devices that have logged into the fabric. Retrieve pWWNs for aliases and zoning from this database.

switch# show flogi database

VSAN Commands

Creates the VSAN with the specified vsan-id range.

switch(config)# vsan database
switch(config-vsan-db)# vsan <vsan-id>

Adds a description to a VSAN, where vsan-id is the VSAN and vsan-name is the VSAN description.

switch(config-vsan-db)# vsan <vsan-id> name <vsan-name>

Adds an interface to a VSAN, where vsan-id is the VSAN number and type, slot/port is the interface.

switch(config-vsan-db)# vsan <vsan-id> interface <type slot/port>

Adds a specified range of interfaces into a VSAN from the same line card.

switch(config-vsan-db)# vsan <vsan-id> interface <type slot/port - port>

Lists all VSANs.

switch# show vsan

Lists ports within a VSAN.

switch# show vsan membership

Fcdomain Commands

Forces the VSAN to reconfigure without data traffic disruption.

switch(config)# fcdomain restart vsan <vsan-id>

Forces the VSAN to reconfigure with data traffic disruption

switch(config)# fcdomain restart disruptive <vsan vsan-id>

Configures the switch in the specified VSAN to request a preferred domain ID.

switch (config)# fcdomain domain <id> preferred vsan <vsan-id>

Configures the switch in the specified VSAN to take only a specific ID and moves the local interfaces in the VSAN to an isolated state if the domain ID is not granted.

switch(config)# fcdomain domain <id> static vsan <vsan-id>

Alias, Zone, and Zone Set Commands

Displays the devices that have logged into the fabric. Retrieve pWWNs for aliases and zoning from this database.

switch# show flogi database

Displays device name server registration information per VSAN.

switch# show fcns database

Configures an alias mapping for a device where alias-name is the canonical name within the VSAN.

switch(config)# fcalias name <alias-name> vsan <vsan-id>

Defines a mapping of pWWN hh:hh:hh… to the fcalias name. pWWN can be retrieved from the FLOGI or FCNS database.

switch(config-fcalias)# member pwwn <hh:hh:hh…>

Creates a named zone within the VSAN.

switch(config)# zone name <name> vsan <vsan-id>

Adds the node referenced by the named fcalias to the zone.

switch(config-zone)# member fcalias <name>

Adds the device referenced by pWWN hh:hh:hh… to the zone.

switch(config-zone)# member pwwn <hh:hh:hh….>

Creates a named zone set within the VSAN and adds a named zone to the zone set.

switch(config)# zoneset name <name> vsan <vsan-id>
switch(config-zoneset)# member <name>

Configures the switch to distribute all zone sets rather than just the active zone set for the VSAN.

switch(config)# zoneset distribute full vsan <vsan-id>

Displays alias mappings.

switch# show fcalias

Displays zone mappings.

switch# show zone

Displays all zone sets.

switch# show zoneset

Displays the active zone set for each VSAN, including which devices have logged in and are communicating.

switch# show zoneset active
storage/cisco_cmd.txt · Last modified: 2021/01/01 21:25 (external edit)