Veritas Device Exclusion (vxdmpadm exclude) has changed with 7.4.1.3106 and 7.4.2.2203 to handle hardware path changes with RedHat 7.8 onwards

book

Article ID: 100051925

calendar_today

Updated On:

Description

Error Message

 


In the event that 2 hardware paths are created, the /etc/vx/vxpath_links script may fail to treat the device as an FC device, thus the operation fails to populate the PWWN + WWN related information correctly.

# cd /dev/disk/by-path

# ls -ll | grep sdbr
lrwxrwxrwx. 1 root root 10 Nov 19 06:50 fc-0x21000024ff4527e8-0x524a9376856e3010-lun-1 -> ../../sdbr
lrwxrwxrwx. 1 root root 10 Nov 19 06:50 pci-0000:04:00.0-fc-0x524a9376856e3010-lun-1 -> ../../sdbr


# vxdmpadm getctlr all
LNAME             PNAME                                    VENDOR               CTLR-ID
=====================================================================================================
c0                c0                                       -                    -
c12               c12                                      -                    -
c13               c13                                      -                    -
c14               c14                                      -                    -
c5                c5                                       -                    -
c515              c515                                     -                    -

Cause


Code changes have been done to make the vxpath_links script correctly detect the hardware paths for FC devices, even when there are multiple hardware paths.


The /etc/vx/vxpath_links and /lib/udev/vxpath_links scripts have been enhanced via the private hotfixes:


vm-rhel7_x86_64-HotFix-7.4.1.3106
vm-rhel7_x86_64-HotFix-7.4.2.2203


# grep "hwpath" /etc/vx/vxpath_links
generate_hwpath_info()
                hwpath=`find -L $BYPATH_DIR -samefile /dev/$pathname 2>/dev/null | grep -v "/fc-" | xargs basename 2>/dev/null`
                hwpath=`$PATH_ID /block/$pathname | grep -v "/fc-" | awk -F'=' '{print $2}'`
        if [ -z $hwpath ]
        target=$BYPATH_DIR/$hwpath
        gather_ddlconfig $pathname $hwpath

# Generate hwpath information for already discovered OS devices
                generate_hwpath_info $1
        generate_hwpath_info $1

 

# grep "hwpath" /lib/udev/vxpath_links
generate_hwpath_info()
                hwpath=`find -L $BYPATH_DIR -samefile /dev/$pathname 2>/dev/null | grep -v "/fc-" | xargs basename 2>/dev/null`
                hwpath=`$PATH_ID /block/$pathname | grep -v "/fc-" | awk -F'=' '{print $2}'`
        if [ -z $hwpath ]
        target=$BYPATH_DIR/$hwpath
        gather_ddlconfig $pathname $hwpath

# Generate hwpath information for already discovered OS devices
                generate_hwpath_info $1
        generate_hwpath_info $1

 

In doing so, the /etc/vx/vxvm.exclude file needs to be updated with the revised hardware path information.

 

Resolution

Where Veritas devices have been excluded using the vxdmpadm exclude functionality.

Pre Hot-fix installation:

# vxdmpadm exclude dmpnodename=purestorage0_00104299

The H/W address formatting is as follows:

# more /etc/vx/vxvm.exclude

exclude_all 0
paths
sdz fc-0x21000024ff452b88-0x524a9376856e3000-lun-25 purestorage0_00104299
sdgh fc-0x21000024ff4527e9-0x524a9376856e3011-lun-25 purestorage0_00104299
sdeg fc-0x21000024ff4527e8-0x524a9376856e3010-lun-25 purestorage0_00104299
sdbx fc-0x21000024ff452b89-0x524a9376856e3001-lun-25 purestorage0_00104299
#
controllers
#
product
#


Ensure VCS is stopped and vxconfigd is NOT running when applying the VxVM hot-fix.


Post Hot-fix installation:
Once the hot-fix has been applied, reboot the server.

# reboot

You will notice that the previously excluded devices will NOW be visible with "vxdisk list":

Example:

# vxdisk list | grep purestorage0_00104299
purestorage0_00104299 auto:none       -            -            online invalid thinrclm


To exclude the dmpnode again, follow the following steps:

1.] Using vxdmpadm include the dmpnodename once again. This will update the /etc/vx/vxvm.exclude file:

# vxdmpadm include dmpnodename=purestorage0_00104299

# more /etc/vx/vxvm.exclude
exclude_all 0
paths
#
controllers
#
product
#


# vxdisk list | grep purestorage0_00104299
purestorage0_00104299 auto:none       -            -            online invalid thinrclm

2.] Now the /etc/vx/vxvm.exclude contents have been refreshed, repeat the exclude operation to hide the dmpnode once again:
 

# vxdmpadm exclude dmpnodename=purestorage0_00104299
 

The dmpnode is no longer visible with "vxdisk list".

# vxdisk list | grep purestorage0_00104299

NOTE: The H/W path now includes the updated pci-H/W path address


# more /etc/vx/vxvm.exclude
exclude_all 0
paths
sdef pci-0000:04:00.0-fc-0x524a9376856e3010-lun-25 purestorage0_00104299
sdz pci-0000:03:00.0-fc-0x524a9376856e3000-lun-25 purestorage0_00104299
sdgk pci-0000:04:00.1-fc-0x524a9376856e3011-lun-25 purestorage0_00104299
sdcb pci-0000:03:00.1-fc-0x524a9376856e3001-lun-25 purestorage0_00104299
#
controllers
#
product
#

 

Sample /dev/vx/.dmp details:

 

# cd /dev/vx/.dmp
# ll


total 0
lrwxrwxrwx. 1 root root  16 Nov 20 07:53 c0 -> pci-0000:02:00.0
lrwxrwxrwx. 1 root root  16 Nov 20 07:53 c11 -> pci-0000:03:00.0
lrwxrwxrwx. 1 root root  16 Nov 20 07:53 c12 -> pci-0000:03:00.1
lrwxrwxrwx. 1 root root  16 Nov 20 07:53 c13 -> pci-0000:04:00.0
lrwxrwxrwx. 1 root root  16 Nov 20 07:53 c14 -> pci-0000:04:00.1
drwxr-xr-x. 6 root root 120 Nov 20 07:52 HBA
lrwxrwxrwx. 1 root root  47 Nov 20 07:53 sda -> /dev/disk/by-path/pci-0000:02:00.0-scsi-0:2:0:0
lrwxrwxrwx. 1 root root  62 Nov 20 07:53 sdaa -> /dev/disk/by-path/pci-0000:03:00.1-fc-0x524a9376856e3001-lun-1
lrwxrwxrwx. 1 root root  63 Nov 20 07:53 sdab -> /dev/disk/by-path/pci-0000:03:00.0-fc-0x524a9376856e3000-lun-26
lrwxrwxrwx. 1 root root  62 Nov 20 07:53 sdac -> /dev/disk/by-path/pci-0000:03:00.1-fc-0x524a9376856e3001-lun-2
lrwxrwxrwx. 1 root root  63 Nov 20 07:53 sdad -> /dev/disk/by-path/pci-0000:03:00.0-fc-0x524a9376856e3000-lun-27

 

It is essential the /etc/vx/ddlconfig.info is populated with the HBA details:


Sample output
 

# grep HBA /etc/vx/ddlconfig.info
HBA c14,qla2xxx,8.07.00 (90d5),QLogic Corporation,BFD1221A59886,fabric,20:00:00:24:ff:45:27:e9
HBA c13,qla2xxx,8.07.00 (90d5),QLogic Corporation,BFD1221A59886,fabric,20:00:00:24:ff:45:27:e8
HBA c12,qla2xxx,8.07.00 (90d5),QLogic Corporation,BFD1221A59748,fabric,20:00:00:24:ff:45:2b:89
HBA c11,qla2xxx,8.07.00 (90d5),QLogic Corporation,BFD1221A59748,fabric,20:00:00:24:ff:45:2b:88


# ls -l /dev/vx/.dmp/HBA/11/
total 0
drwxr-xr-x. 2 root root 1240 Nov 21 03:25 52:4a:93:76:85:6e:30:00
lrwxrwxrwx. 1 root root   20 Nov 21 03:25 info -> /etc/vx/.hba/11/info


# ls -l /dev/vx/.dmp/HBA/12/
total 0
drwxr-xr-x. 2 root root 1240 Nov 21 03:25 52:4a:93:76:85:6e:30:01
lrwxrwxrwx. 1 root root   20 Nov 21 03:25 info -> /etc/vx/.hba/12/info


# ls -l /dev/vx/.dmp/HBA/13/
total 0
drwxr-xr-x. 2 root root 1240 Nov 21 03:25 52:4a:93:76:85:6e:30:10
lrwxrwxrwx. 1 root root   20 Nov 21 03:25 info -> /etc/vx/.hba/13/info


# ls -l /dev/vx/.dmp/HBA/14/
total 0
drwxr-xr-x. 2 root root 1240 Nov 21 03:25 52:4a:93:76:85:6e:30:11
lrwxrwxrwx. 1 root root   20 Nov 21 03:25 info -> /etc/vx/.hba/14/info

 

Please contact Veritas Technical Support to obtain the following Private hot-fixes:


vm-rhel7_x86_64-HotFix-7.4.1.3106
vm-rhel7_x86_64-HotFix-7.4.2.2203

 

Issue/Introduction

The Udev rules file (/usr/lib/udev/rules.d/63-fc-wwpn-id.rules) for newer RHEL 7 releases will generate additional hardware paths for FC devices. This results in 2 x hardware paths (fc and pci) being generated for the same device. The /etc/vx/vxpath_links and /lib/udev/vxpath_links scripts will only consider a single hardware path for the FC device.
Environment:
# cat /etc/redhat-release
Red Hat Enterprise Linux Server release 7.8 (Maipo) # rpm -qa | grep sg3
sg3_utils-1.37-19.el7.x86_64
sg3_utils-libs-1.37-19.el7.x86_64
# rpm -ql sg3_utils-1.37-19.el7.x86_64 | grep wwpn
/usr/lib/udev/fc_wwpn_id
/usr/lib/udev/rules.d/63-fc-wwpn-id.rules