The duplicate “fc-” path is created by /usr/lib/udev/rules.d/63-fc-wwpn-id.rules and not /usr/lib/udev/rules.d/60-persistent-storage.rules.
The /usr/lib/udev/rules.d/63-fc-wwpn-id.rules is installed with rpm sg3_utils-1.37-19.el7.x86_64
With the earlier sg3_utils rpms, the 63-fc-wwpn-id.rules did not exist.
rhel 7.5:
# grep "/fc\-" /usr/lib/udev/rules.d/*
sg3_utils-1.37-12.el7.x86_64
sg3_utils-libs-1.37-12.el7.x86_64
# rpm -ql sg3_utils-1.37-12.el7.x86_64 | grep wwpn
rhel7.8:
# grep "/fc\-" /usr/lib/udev/rules.d/*
/usr/lib/udev/rules.d/63-fc-wwpn-id.rules:ENV{DEVTYPE}=="disk", SYMLINK+="disk/by-path/fc-$env{FC_INITIATOR_WWPN}-$env{FC_TARGET_WWPN}-lun-$env{FC_TARGET_LUN}"
/usr/lib/udev/rules.d/63-fc-wwpn-id.rules:ENV{DEVTYPE}=="partition", SYMLINK+="disk/by-path/fc-$env{FC_INITIATOR_WWPN}-$env{FC_TARGET_WWPN}-lun-$env{FC_TARGET_LUN}-part%n"
# rpm -qa | grep sg3
sg3_utils-libs-1.37-19.el7.x86_64
sg3_utils-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
vxpath_links script
The /lib/udev/vxpath_links script is processed during the boot process and parses the device names to create the /dev/vx/.dmp/devname symlinks pointing to /dev/disk/by-path/physname.
The /etc/vx/vxpath_links script is used to generate WWN & PWWN information whenever devices are discovered in the /dev/vx/.dmp directory.
Whenever vxesd (eventsource) starts, it reads the /dev/vx/.dmp contents and populates the WWN & PWWN information in /etc/vx/ddlconfig.info file.
VxVM tracks the hardware physical path by referencing the "/dev/vx/.dmp/" directory contents, which contains symbolic links between sd names and hardware paths.
DMP reads the /dev/vx/.dmp/devname symlink to get the physical path name for saving the path-specific configuration changes.
Modify
The /etc/vx/vxpath_links and /lib/udev/vxpath_links script needs to include the following hwpath attribute updates shown in red.
grep hwpath vxpath_links
generate_hwpath_info()
#hwpath=`find -L $BYPATH_DIR -samefile /dev/$pathname 2>/dev/null | xargs basename 2>/dev/nul
hwpath=`find -L $BYPATH_DIR -samefile /dev/$pathname 2>/dev/null | grep -v "/fc-" | xargs basename 2>/dev/null`
#hwpath=`$PATH_ID /block/$pathname | awk -F'=' '{print $2}'`
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