Cisco MDS9000 bug and work-around

Due to a bug with the Cisco mds9000 fibre switch and some power blades cause a race condition to happen.  The end result is the MDS switch doesn’t remove the Blade server WWNs.  When that system is (re)booted and polls the MDS switch, the MDS switch already ‘sees’ that WWN(s) and ignores the request.  This of course doesn’t go well for the blade server, as it can’t access it’s LUNs.

This document provides a sanity check to validate that we are enabling/disabling the correct paths on the server.

The basic strategy is as follows:

    1) Disable all the disk paths to a single fibre channel adapter on
the blade server
    2) Reset the port on the core Cisco MDS9000 switch that corresponds
to the paths we just disabled
    3) Enable all the disk paths that were disabled in step 1
    4) Confirm all the paths came back normally
    5) Repeat steps 1-4 for the other fibre channel adapter on the blade server

This document provides a sanity check to validate that we are enabling/disabling the correct paths on the blade server.

We can see that the blade server has paths running across the fscsi2 and fscsi3 fibre channel adapters.

    # lspath
    Enabled hdisk0  sas0
    Enabled hdisk1  fscsi2
    Enabled hdisk2  fscsi2
    Enabled hdisk3  fscsi2
    Enabled hdisk4  fscsi2
    Enabled hdisk5  fscsi2
    Enabled hdisk6  fscsi2
    Enabled hdisk7  fscsi2
    Enabled hdisk8  fscsi2
    Enabled hdisk9  fscsi2
    Enabled hdisk10 fscsi2
    Enabled hdisk11 fscsi2
    Enabled hdisk12 fscsi2
    Enabled hdisk13 fscsi2
    Enabled hdisk14 fscsi2
    Enabled hdisk15 fscsi2
    Enabled hdisk16 fscsi2
    Enabled hdisk17 fscsi2
    Enabled hdisk18 fscsi2
    Enabled hdisk19 fscsi2
    Enabled hdisk20 fscsi2
    Enabled hdisk21 fscsi2
    Enabled hdisk22 fscsi2
    Enabled hdisk23 fscsi2
    Enabled hdisk24 fscsi2
    Enabled hdisk25 fscsi2
    Enabled hdisk26 fscsi2
    Enabled hdisk27 fscsi2
    Enabled hdisk28 fscsi2
    Enabled hdisk29 fscsi2
    Enabled hdisk30 fscsi2
    Enabled hdisk31 fscsi2
    Enabled hdisk32 fscsi2
    Enabled hdisk1  fscsi2
    Enabled hdisk2  fscsi2
    Enabled hdisk3  fscsi2
    Enabled hdisk4  fscsi2
    Enabled hdisk5  fscsi2
    Enabled hdisk6  fscsi2
    Enabled hdisk7  fscsi2
    Enabled hdisk8  fscsi2
    Enabled hdisk9  fscsi2
    Enabled hdisk10 fscsi2
    Enabled hdisk11 fscsi2
    Enabled hdisk12 fscsi2
    Enabled hdisk13 fscsi2
    Enabled hdisk14 fscsi2
    Enabled hdisk15 fscsi2
    Enabled hdisk16 fscsi2
    Enabled hdisk17 fscsi2
    Enabled hdisk18 fscsi2
    Enabled hdisk19 fscsi2
    Enabled hdisk20 fscsi2
    Enabled hdisk21 fscsi2
    Enabled hdisk22 fscsi2
    Enabled hdisk23 fscsi2
    Enabled hdisk24 fscsi2
    Enabled hdisk25 fscsi2
    Enabled hdisk26 fscsi2
    Enabled hdisk27 fscsi2
    Enabled hdisk28 fscsi2
    Enabled hdisk29 fscsi2
    Enabled hdisk30 fscsi2
    Enabled hdisk31 fscsi2
    Enabled hdisk32 fscsi2
    Enabled hdisk1  fscsi3
    Enabled hdisk2  fscsi3
    Enabled hdisk3  fscsi3
    Enabled hdisk4  fscsi3
    Enabled hdisk5  fscsi3
    Enabled hdisk6  fscsi3
    Enabled hdisk7  fscsi3
    Enabled hdisk8  fscsi3
    Enabled hdisk9  fscsi3
    Enabled hdisk10 fscsi3
    Enabled hdisk11 fscsi3
    Enabled hdisk12 fscsi3
    Enabled hdisk13 fscsi3
    Enabled hdisk14 fscsi3
    Enabled hdisk15 fscsi3
    Enabled hdisk16 fscsi3
    Enabled hdisk17 fscsi3
    Enabled hdisk18 fscsi3
    Enabled hdisk19 fscsi3
    Enabled hdisk20 fscsi3
    Enabled hdisk21 fscsi3
    Enabled hdisk22 fscsi3
    Enabled hdisk23 fscsi3
    Enabled hdisk24 fscsi3
    Enabled hdisk25 fscsi3
    Enabled hdisk26 fscsi3
    Enabled hdisk27 fscsi3
    Enabled hdisk28 fscsi3
    Enabled hdisk29 fscsi3
    Enabled hdisk30 fscsi3
    Enabled hdisk31 fscsi3
    Enabled hdisk32 fscsi3
    Enabled hdisk1  fscsi3
    Enabled hdisk2  fscsi3
    Enabled hdisk3  fscsi3
    Enabled hdisk4  fscsi3
    Enabled hdisk5  fscsi3
    Enabled hdisk6  fscsi3
    Enabled hdisk7  fscsi3
    Enabled hdisk8  fscsi3
    Enabled hdisk9  fscsi3
    Enabled hdisk10 fscsi3
    Enabled hdisk11 fscsi3
    Enabled hdisk12 fscsi3
    Enabled hdisk13 fscsi3
    Enabled hdisk14 fscsi3
    Enabled hdisk15 fscsi3
    Enabled hdisk16 fscsi3
    Enabled hdisk17 fscsi3
    Enabled hdisk18 fscsi3
    Enabled hdisk19 fscsi3
    Enabled hdisk20 fscsi3
    Enabled hdisk21 fscsi3
    Enabled hdisk22 fscsi3
    Enabled hdisk23 fscsi3
    Enabled hdisk24 fscsi3
    Enabled hdisk25 fscsi3
    Enabled hdisk26 fscsi3
    Enabled hdisk27 fscsi3
    Enabled hdisk28 fscsi3
    Enabled hdisk29 fscsi3
    Enabled hdisk30 fscsi3
    Enabled hdisk31 fscsi3
    Enabled hdisk32 fscsi3
    Enabled hdisk1  fscsi3
    Enabled hdisk2  fscsi3
    Enabled hdisk3  fscsi3
    Enabled hdisk4  fscsi3
    Enabled hdisk5  fscsi3
    Enabled hdisk6  fscsi3
    Enabled hdisk7  fscsi3
    Enabled hdisk8  fscsi3
    Enabled hdisk9  fscsi3
    Enabled hdisk10 fscsi3
    Enabled hdisk11 fscsi3
    Enabled hdisk12 fscsi3
    Enabled hdisk13 fscsi3
    Enabled hdisk14 fscsi3
    Enabled hdisk15 fscsi3
    Enabled hdisk16 fscsi3
    Enabled hdisk17 fscsi3
    Enabled hdisk18 fscsi3
    Enabled hdisk19 fscsi3
    Enabled hdisk20 fscsi3
    Enabled hdisk21 fscsi3
    Enabled hdisk22 fscsi3
    Enabled hdisk23 fscsi3
    Enabled hdisk24 fscsi3
    Enabled hdisk25 fscsi3
    Enabled hdisk26 fscsi3
    Enabled hdisk27 fscsi3
    Enabled hdisk28 fscsi3
    Enabled hdisk29 fscsi3
    Enabled hdisk30 fscsi3
    Enabled hdisk31 fscsi3
    Enabled hdisk32 fscsi3

The WWN’s of those two adapters are:

    $ hostname
    server01
    $ lscfg -vl fcs2 | grep Network
         Network Address.............1000005D495D3250
    $ lscfg -vl fcs3 | grep Network
         Network Address.............1001005D495D3251

Those WWN’s are each connected to a different core Cisco switch

  • fcs2 –  1000005D495D3250 – sw2 fc1/3
  • fcs3 –  1001005D495D3251 – sw1 fc10/4

The first reset will be the switch port on sw1-fc10/4 that the 1001005D495D3251 WWN is connected to. You will note that WWN is from the fcs3 adapter. We will disable all of the paths going through the fcs3 fibre channel adapter with the following command:

lspath | grep fscsi3 | awk '{print "chpath -s Disabled -l " $2 " -p
" $3}' | sort | uniq

    chpath -s Disabled -l hdisk1  -p fscsi3
    chpath -s Disabled -l hdisk2  -p fscsi3
    chpath -s Disabled -l hdisk3  -p fscsi3
    chpath -s Disabled -l hdisk4  -p fscsi3
    chpath -s Disabled -l hdisk5  -p fscsi3
    chpath -s Disabled -l hdisk6  -p fscsi3
    chpath -s Disabled -l hdisk7  -p fscsi3
    chpath -s Disabled -l hdisk8  -p fscsi3
    chpath -s Disabled -l hdisk9  -p fscsi3
    chpath -s Disabled -l hdisk10 -p fscsi3
    chpath -s Disabled -l hdisk11 -p fscsi3
    chpath -s Disabled -l hdisk12 -p fscsi3
    chpath -s Disabled -l hdisk13 -p fscsi3
    chpath -s Disabled -l hdisk14 -p fscsi3
    chpath -s Disabled -l hdisk15 -p fscsi3
    chpath -s Disabled -l hdisk16 -p fscsi3
    chpath -s Disabled -l hdisk17 -p fscsi3
    chpath -s Disabled -l hdisk18 -p fscsi3
    chpath -s Disabled -l hdisk19 -p fscsi3
    chpath -s Disabled -l hdisk20 -p fscsi3
    chpath -s Disabled -l hdisk21 -p fscsi3
    chpath -s Disabled -l hdisk22 -p fscsi3
    chpath -s Disabled -l hdisk23 -p fscsi3
    chpath -s Disabled -l hdisk24 -p fscsi3
    chpath -s Disabled -l hdisk25 -p fscsi3
    chpath -s Disabled -l hdisk26 -p fscsi3
    chpath -s Disabled -l hdisk27 -p fscsi3
    chpath -s Disabled -l hdisk28 -p fscsi3
    chpath -s Disabled -l hdisk29 -p fscsi3
    chpath -s Disabled -l hdisk30 -p fscsi3
    chpath -s Disabled -l hdisk31 -p fscsi3
    chpath -s Disabled -l hdisk32 -p fscsi3

Now that the paths have been disabled, the SAN Administrator will reset the appropriate port on the MDS9000 switch. (This is done in the gui for the affected switch).

After the Cisco MDS9000 switch port that the above WWN is connected to has been reset, we will re-enable the above paths with the following command:

    lspath | grep fscsi3 | awk '{print "chpath -s Enabled -l " $2 " -p "
$3}' | sort | uniq

    chpath -s Enabled -l hdisk1  -p fscsi3
    chpath -s Enabled -l hdisk2  -p fscsi3
    chpath -s Enabled -l hdisk3  -p fscsi3
    chpath -s Enabled -l hdisk4  -p fscsi3
    chpath -s Enabled -l hdisk5  -p fscsi3
    chpath -s Enabled -l hdisk6  -p fscsi3
    chpath -s Enabled -l hdisk7  -p fscsi3
    chpath -s Enabled -l hdisk8  -p fscsi3
    chpath -s Enabled -l hdisk9  -p fscsi3
    chpath -s Enabled -l hdisk10 -p fscsi3
    chpath -s Enabled -l hdisk11 -p fscsi3
    chpath -s Enabled -l hdisk12 -p fscsi3
    chpath -s Enabled -l hdisk13 -p fscsi3
    chpath -s Enabled -l hdisk14 -p fscsi3
    chpath -s Enabled -l hdisk15 -p fscsi3
    chpath -s Enabled -l hdisk16 -p fscsi3
    chpath -s Enabled -l hdisk17 -p fscsi3
    chpath -s Enabled -l hdisk18 -p fscsi3
    chpath -s Enabled -l hdisk19 -p fscsi3
    chpath -s Enabled -l hdisk20 -p fscsi3
    chpath -s Enabled -l hdisk21 -p fscsi3
    chpath -s Enabled -l hdisk22 -p fscsi3
    chpath -s Enabled -l hdisk23 -p fscsi3
    chpath -s Enabled -l hdisk24 -p fscsi3
    chpath -s Enabled -l hdisk25 -p fscsi3
    chpath -s Enabled -l hdisk26 -p fscsi3
    chpath -s Enabled -l hdisk27 -p fscsi3
    chpath -s Enabled -l hdisk28 -p fscsi3
    chpath -s Enabled -l hdisk29 -p fscsi3
    chpath -s Enabled -l hdisk30 -p fscsi3
    chpath -s Enabled -l hdisk31 -p fscsi3
    chpath -s Enabled -l hdisk32 -p fscsi3

Now confirm all the paths on the blade server are in an enabled state using # lspath

NOTE: If all the paths are not in an Enabled state, stop here and troubleshoot. Do not continue until all the paths are in an Enabled state.

If all the paths are in an enabled state, then one can move on to the next adapter and follow the procedure above to reset the SAN ports.

1 thought on “Cisco MDS9000 bug and work-around”

Comments are closed.