
I was attempting to migrate Oracle ASM UDEV-managed disks to Oracle ASM Filter Driver (AFD). Although I followed all the documented steps for migrating the disks, I encountered the following error when trying to set the disk strings:
This error occurred specifically during the step where I attempted to configure the ASM disk discovery string.
[oracle@node2 ~]$ asmcmd dsset 'AFD:*'
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-15014: path '/dev/sdd' is not in the discovery set (DBD ERROR: OCIStmtExecute)
However, below is the current status of the environment:
[root@node2 ~]# afddriverstate supported
AFD-9200: Supported
[root@node2 ~]# afddriverstate loaded
AFD-9205: AFD device driver loaded status: 'true'
[root@node2 ~]#
[root@node2 ~]#
[root@node2 ~]# afddriverstate version
AFD-9325: Driver OS kernel version = 5.15.0-6.80.3.1.el8uek.aarch64.
AFD-9326: Driver build number = 221122.0736.
AFD-9212: Driver build version = 19.0.0.0.0 (19.18.0.0.0).
AFD-9547: Driver available build number = 221122.0736.
AFD-9548: Driver available build version = 19.0.0.0.0 (19.18.0.0.0).
[root@node2 ~]# afddriverstate loaded
AFD-9205: AFD device driver loaded status: 'true'
Below are the exisitng stettings :
[root@node2 ~]# asmcmd dsget
parameter:/dev/sd*
profile:/dev/sd*
[root@node2 ~]#
SQL> show parameter asm
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskgroups string
asm_diskstring string /dev/sd*
asm_power_limit integer 1
asm_preferred_read_failure_groups string
SQL>
Before the installation, I had already labeled the disks for AFD. We can also verify the disk labels using the kfod utility.
[root@node2 ~]# kfod OP=DISKS status=TRUE disks=ASM label=TRUE dscvgroup=TRUE asm_diskstring=AFD:*
--------------------------------------------------------------------------------
Disk Size Header Path Disk Group Site Failgroup Disk-Label User Group
================================================================================
1: 20480 MB MEMBER AFD:DATA1 DATA # # DATA1
2: 20480 MB MEMBER AFD:DATA2 DATA # # DATA2
3: 20480 MB MEMBER AFD:DATA3 DATA # # DATA3
[root@node2 ~]#
But asmcmd lsdsk gave the below output which is not correct :
asmcmd lsdsk
Path
/dev/sdb
/dev/sdc
/dev/sdd
Solution:
I applied the following workaround to overcome this issue. We provided both values in the asmcmd dsset command as shown below:
[root@node2 ~]# asmcmd dsset 'AFD:*','/dev/sd*'
[root@node2 ~]# asmcmd dsget
parameter:AFD:*, /dev/sd*
profile:AFD:*,/dev/sd*
[root@node2 ~]#
Once the stack was restarted, everything came back without any issues.
After that, I reconfigured the parameter as shown below, and it was set successfully without any errors.
[root@node2 ~]#
[root@node2 ~]# asmcmd dsset 'AFD:*'
[root@node2 ~]#
Also the below query only showing the AFD labeled disks.
select group_number, name, state, header_status, mount_status, path, library
from v$asm_disk order by group_number, name;SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> SQL> ASMFD Configuration
SQL> SQL> 2
Grp Name State Header Mount Path Library
--- ------------------ ------- ------- ------- ---------------- --------------------------------------------
1 DATA1 NORMAL MEMBER CACHED AFD:DATA1 AFD Library - Generic , version 3 (KABI_V3)
1 DATA2 NORMAL MEMBER CACHED AFD:DATA2 AFD Library - Generic , version 3 (KABI_V3)
1 DATA3 NORMAL MEMBER CACHED AFD:DATA3 AFD Library - Generic , version 3 (KABI_V3)
SQL>
In the above I have demonstrated how to overcome the said error.

Leave a comment