How to simulate sd instance movements on Linux(RedHat) to trigger inconsistent VxVM device suppression

book

Article ID: 100037780

calendar_today

Updated On:

Description

Description

This documents attempts to explain how to simulate sd instance movements on Linux(RedHat) to trigger inconsistent VxVM device suppression.
 

Veritas disk access name "emc0_0289" will be excluded from veritas Volume Manager's (VxVM) view.
 

# vxdisk list
DEVICE       TYPE            DISK         GROUP        STATUS
disk_0       auto:none       -            -            online invalid
emc0_0288    auto:cdsdisk    -            -            online
emc0_0289    auto:cdsdisk    -            -            online                  <<< to be excluded


Note: Veritas disk access name "emc0_0289" has two paths, "sdbn" and "sdat" at this time.
 

# vxdisk path | grep emc0_0289
sdbn                        emc0_0289            -            -            ENABLED
sdat                        emc0_0289            -            -            ENABLED


# vxdmpadm exclude vxvm dmpnodename=emc0_0289


The above vxdmpadm CLI device suppression operation populates the /etc/vx/vxvm.exclude file with the following content:


# more /etc/vx/vxvm.exclude

exclude_all 0
paths
sdbn pci-0000:02:05.0-fc-0x5006048c5368e5af:0x0108000000000000 emc0_0289
sdat pci-0000:02:05.0-fc-0x5006048c5368e58f:0x011b000000000000 emc0_0289
#
controllers
#
product
#
pathgroups
#

 

The Veritas disk access name "emc0_0289" is not longer visible to VxVM and such command as "vxdisk list" or "vxdisk path" and so on.


Revised output


# vxdisk path | grep emc0_0289
 


# vxdisk list
DEVICE       TYPE            DISK         GROUP        STATUS
disk_0       auto:none       -            -            online invalid
emc0_0288    auto:cdsdisk    -            -            online

# vxdisk path | grep emc0_0288
sdbm                        emc0_0288            -            -            ENABLED
sdas                        emc0_0288            -            -            ENABLED

 

LUN reconfiguration steps

 

# vxdisk rm emc0_0288


# symmask list hba

Identifier        Type   Adapter           Physical Device Path      Dir:P
----------------  -----  ----------------  ------------------------  -----
210000e08b1c1df0  Fibre  210000e08b1c1df0  /dev/sdad                 16C:0
                                           /dev/sdau                 16C:1

 


# symmask -sid 822 remove devs 0288 -wwn 210000e08b1c1df0 -dir 16c -p 0
# symmask -sid 822 remove devs 0288 -wwn 210000e08b1c1df0 -dir 16c -p 1


# symmask -sid 822 refresh -nopr

Symmetrix FA/SE directors updated with contents of SymMask Database 000290300822


# symcfg -sid 822 discover

Attempting discovery of Symmetrix 000290300822

This operation may take up to a few minutes. Please be patient...

 

The system is rebooted.


Following the system restart, Veritas disk access name "emc0_0289" is visible once again, no longer suppressed.

# vxdisk list
DEVICE       TYPE            DISK         GROUP        STATUS
disk_0       auto:none       -            -            online invalid
emc0_0289    auto:cdsdisk    -            -            online                  <<< device is excluded


Note: The native sd paths for "emc0_0289" have changed from "sdbn" and "sdat" to "sdbl" and "sdas".
 

# vxdisk path | grep emc0_0289
sdbl                        emc0_0289            -            -            ENABLED
sdas                        emc0_0289            -            -            ENABLED
 

# more /etc/vx/vxvm.exclude
exclude_all 0
paths
sdbn pci-0000:02:05.0-fc-0x5006048c5368e5af:0x0108000000000000 emc0_0289
sdat pci-0000:02:05.0-fc-0x5006048c5368e58f:0x011b000000000000 emc0_0289
#
controllers
#
product
#
pathgroups
#
 

Workaround:


1.] udevtrigger

2.] vxdisk scandisks

# vxdisk list
DEVICE       TYPE            DISK         GROUP        STATUS
disk_0       auto:none       -            -            online invalid


Note: The device suppression is active again for "emc0_0289"


Summary


Veritas Volume Manager 5.1 SP1 RP1 P1 (Linux) introduces persistent device exclusion following LUN reconfiguration events
( as per Etrack 2241750 [Product Enhancement][VxVM]Introduce persistent device exclusion following LUN reconfiguration events on Linux)

The mappings created by the udev-rule are lost during the execution of the make_devices function of the vxvm-startup script, where /dev/vx is mounted on tmpfs. As a result, during discovery, vxconfigd will not be able to determine the hardware path for the excluded devices and hence the exclusion does not work.


We therefore modified the /etc/vx/vxvm-startup script to call udevtrigger before vxconfigd starts.

 


make_devices()
{
       #
       # create devices needed under /dev/vx
       # Handle special-case for selinux enabled systems
       #
       [ -d /dev/vx ] || /bin/mkdir -m 0755 -p /dev/vx
       [ -x /usr/sbin/selinuxenabled ] && selinuxenabled || {
               # Make /dev/vx available on tmpfs
               /bin/mount -t tmpfs -o size=4k,nr_inodes=2097152,mode=0755
                       tmpfs /dev/vx
       }
      /sbin/udevtrigger                               <<<< added this new entry
       /bin/mkdir -m 0755 /dev/vx/dmp 2>/dev/null
       /bin/ln -s /dev/vx/dmp /dev/vx/rdmp 2>/dev/null
       /bin/mknod /dev/vx/config c $VXVM_MAJOR_NUMBER 0 2>/dev/null
       /bin/mknod /dev/vx/trace c $VXVM_MAJOR_NUMBER 1 2>/dev/null
       /bin/mknod /dev/vx/iod c $VXVM_MAJOR_NUMBER 2 2>/dev/null
       /bin/mknod -m 646 /dev/vx/info c $VXVM_MAJOR_NUMBER 3 2>/dev/null
       /bin/mknod /dev/vx/task c $VXVM_MAJOR_NUMBER 4 2>/dev/null
       /bin/mknod /dev/vx/taskmon c $VXVM_MAJOR_NUMBER 5 2>/dev/null
       /bin/mknod /dev/vx/clust c $VXVM_MAJOR_NUMBER 6 2>/dev/null
       /bin/mknod /dev/vx/netiod c $VXVM_MAJOR_NUMBER 7 2>/dev/null
       /bin/mknod /dev/vx/vcevent c $VXVM_MAJOR_NUMBER 8 2>/dev/null
       /bin/mknod /dev/vx/esd c $VXVM_MAJOR_NUMBER 9 2>/dev/null
       /bin/mknod /dev/vx/vsevent c $VXVM_MAJOR_NUMBER 10 2>/dev/null
       /bin/mknod /dev/vx/dmpconfig b $VXDMP_MAJOR_NUMBER 1048575 2> /dev/null
}



 
Process performed again with the "udevtrigger" entry present in /etc/vx/vxvm-startup


Note: With the above "udevtrigger" in place, the device exclusion is persistent across a reboot as shown below:

 

# vxdisk list
DEVICE       TYPE            DISK         GROUP        STATUS
disk_0       auto:none       -            -            online invalid
emc0_0288    auto:cdsdisk    -            -            online                       <<< to be masked at the array level
emc0_0289    auto:cdsdisk    -            -            online                  <<< to be suppressed from VxVM's view

 

Veritas disk access name "emc0_0289" will be suppressed from VxVM's view:


# vxdisk path | grep emc0_0289
sdbl                        emc0_0289            -            -            ENABLED
sdas                        emc0_0289            -            -            ENABLED


Note: The native sd paths for "emc0_0289" are "sdbl" and "sdas".

 

# vxdmpadm exclude vxvm dmpnodename=emc0_0289


Veritas disk access name "emc0_0288" will be masked from the server at the array level.

# vxdisk path | grep emc0_0288
sdbp                        emc0_0288            -            -            ENABLED
sdbq                        emc0_0288            -            -            ENABLED

 

# vxdisk rm emc0_0288
 

# symmask -sid 822 remove devs 0288 -wwn 210000e08b1c1df0 -dir 16c -p 0

# symmask -sid 822 remove devs 0288 -wwn 210000e08b1c1df0 -dir 16c -p 1

# symmask -sid 822 refresh


Refresh Symmetrix FA/SE directors with contents of SymMask database 000290300822 (y/[n]) ? y

Symmetrix FA/SE directors updated with contents of SymMask Database 000290300822


# symcfg -sid 822 discover

Attempting discovery of Symmetrix 000290300822

This operation may take up to a few minutes. Please be patient...
#



The server is then rebooted.


Note: Following the system restart, Veritas disk access name "emc0_0289" is still suppressed from VxVM's view.
 

# vxdisk list
DEVICE       TYPE            DISK         GROUP        STATUS
disk_0       auto:none       -            -            online invalid



 

Issue/Introduction

How to simulate sd instance movements on Linux(RedHat) to trigger inconsistent VxVM device suppression