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 - -
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.
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
Red Hat Enterprise Linux Server release 7.8 (Maipo)
# rpm -qa | grep sg3sg3_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