Since Oracle 26ai does not support Oracle Filter Drive, this is the process of migrating from ASMFD to ASMLIB v3.

This is the high level plan we are going to follow:

1. Verify AFD disks
2. Verify compatible parameter
3. crsctl stop has
4. acfsload stop
5. asmcmd afd_deconfigure
6. Install ASMLIB v3
7. oracleasm init
8. oracleasm configure -i
9. systemctl enable --now oracleasm
10. oracleasm scandisks
11. oracleasm listdisks
12. acfsload start
13. crsctl start has
14. Verify ORCL: paths

1. Verify AFD disks

	[oracle@oraclelinux8 ~]$ asmcmd lsdsk
	Path
	AFD:DATA1
	AFD:FRA1
	AFD:FRA2
	[oracle@oraclelinux8 ~]$
	[oracle@oraclelinux8 ~]$ asmcmd lsdsk -p
	Group_Num  Disk_Num      Incarn  Mount_Stat  Header_Stat  Mode_Stat  State   Path
			1         0  4076446309  CACHED      MEMBER       ONLINE     NORMAL  AFD:DATA1
			2         0  4076446310  CACHED      MEMBER       ONLINE     NORMAL  AFD:FRA1
			2         1  4076446311  CACHED      MEMBER       ONLINE     NORMAL  AFD:FRA2
	[oracle@oraclelinux8 ~]$ asmcmd afd_lsdsk
	--------------------------------------------------------------------------------
	Label                     Filtering   Path
	================================================================================
	DATA1                      DISABLED   /dev/sdb1
	FRA1                       DISABLED   /dev/sdc1
	FRA2                       DISABLED   /dev/sdd1
	[oracle@oraclelinux8 ~]$ asmcmd dsget
	parameter:/dev/sd*, AFD:*
	profile:/dev/sd*,AFD:*
	[oracle@oraclelinux8 ~]$ asmcmd lsdg
	State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
	MOUNTED  EXTERN  N         512             512   4096  4194304     51196    47396                0           47396              0             N  DATA/
	MOUNTED  EXTERN  N         512             512   4096  4194304     40952    33652                0           33652              0             N  FRA/
	[oracle@oraclelinux8 ~]$
	
	
	**save config just incase:
	
	oracle@oraclelinux8 ~]$ mkdir -p /tmp/asmfd-migration
	[oracle@oraclelinux8 ~]$ asmcmd lsdsk -p > /tmp/asmfd-migration/lsdsk-before.txt
	[oracle@oraclelinux8 ~]$ asmcmd afd_lsdsk > /tmp/asmfd-migration/afd-before.txt
	[oracle@oraclelinux8 ~]$ asmcmd dsget > /tmp/asmfd-migration/dsget-before.txt
	[oracle@oraclelinux8 ~]$ asmcmd lsdg > /tmp/asmfd-migration/lsdg-before.txt
	[oracle@oraclelinux8 ~]$ lsblk -o NAME,SIZE,TYPE,FSTYPE,WWN,SERIAL > /tmp/asmfd-migration/lsblk-before.txt
	[oracle@oraclelinux8 ~]$ ls -l /dev/disk/by-id/ > /tmp/asmfd-migration/by-id-before.txt

2.Verify compatible parameter (Oracle recommends compatible.rdbms >= 12.2.0.1.0)

	col NAME format a10
	col COMPATIBILITY format a20
	col DATABASE_COMPATIBILITY format a30
	select name, compatibility, database_compatibility from v$asm_diskgroup;
	
	NAME       COMPATIBILITY        DATABASE_COMPATIBILITY
	---------- -------------------- ------------------------------
	DATA       19.0.0.0.0           10.1.0.0.0
	FRA        19.0.0.0.0           10.1.0.0.0
	SQL>
	
	
	If not, update with this:
	
	[oracle@oraclelinux8 ~]$ asmcmd setattr -G DATA compatible.rdbms 19.0.0.0.0
	[oracle@oraclelinux8 ~]$ asmcmd setattr -G FRA compatible.rdbms 19.0.0.0.0
	
	
	col NAME format a10
	col COMPATIBILITY format a20
	col DATABASE_COMPATIBILITY format a30
	select name, compatibility, database_compatibility from v$asm_diskgroup;
	
	NAME       COMPATIBILITY        DATABASE_COMPATIBILITY
	---------- -------------------- ------------------------------
	DATA       19.0.0.0.0           19.0.0.0.0
	FRA        19.0.0.0.0           19.0.0.0.0

3. crsctl stop has

	[root@oraclelinux8 ~]# crsctl stop has

4. acfsload stop

	[root@oraclelinux8 ~]# $ORACLE_HOME/bin/acfsload stop

5. asmcmd afd_deconfigure

	[root@oraclelinux8 ~]#  $ORACLE_HOME/bin/asmcmd afd_deconfigure

6. Install ASMLIB v3

	Check repository can see the packages:
	
	IF NO:
	
	[root@oraclelinux8 ~]# dnf list available oracleasmlib oracleasm-support
	Last metadata expiration check: 2:33:07 ago on Mon 21 Sep 2026 13:22:58 BST.
	Error: No matching Packages to list
	[root@oraclelinux8 ~]#
	
	Enable ADDONS:
	
	root@oraclelinux8 ~]# dnf repolist --all | grep -Ei 'addon|asm|uek'
	ol8_UEKR6                  Latest Unbreakable Enterprise Kernel Release disabled
	ol8_UEKR6_RDMA             Oracle Linux 8 UEK6 RDMA (x86_64)            disabled
	ol8_UEKR7                  Latest Unbreakable Enterprise Kernel Release enabled
	ol8_UEKR7_RDMA             Oracle Linux 8 UEK7 RDMA (x86_64)            disabled
	ol8_addons                 Oracle Linux 8 Addons (x86_64)               disabled
	[root@oraclelinux8 ~]#
	
	[root@oraclelinux8 ~]# dnf config-manager --enable ol8_addons
	[root@oraclelinux8 ~]# dnf repolist --all | grep -Ei 'addon|asm|uek'
	ol8_UEKR6                  Latest Unbreakable Enterprise Kernel Release disabled
	ol8_UEKR6_RDMA             Oracle Linux 8 UEK6 RDMA (x86_64)            disabled
	ol8_UEKR7                  Latest Unbreakable Enterprise Kernel Release enabled
	ol8_UEKR7_RDMA             Oracle Linux 8 UEK7 RDMA (x86_64)            disabled
	ol8_addons                 Oracle Linux 8 Addons (x86_64)               enabled
	[root@oraclelinux8 ~]#
	
	[root@oraclelinux8 ~]# dnf clean metadata
	[root@oraclelinux8 ~]# dnf makecache
	
	[root@oraclelinux8 ~]# dnf list available oracleasmlib oracleasm-support
	Last metadata expiration check: 0:01:00 ago on Mon 21 Sep 2026 16:02:28 BST.
	Available Packages
	oracleasm-support.src                         3.1.1-6.el8                         ol8_addons
	oracleasm-support.x86_64                      3.1.1-6.el8                         ol8_addons
	[root@oraclelinux8 ~]#
	
	Install oracleasm-support:
	
	[root@oraclelinux8 ~]# dnf install oracleasm-support
	
	Download and Install oracleasmlib from Oracle ASMLib Downloads for Oracle Linux 8
	
	[root@oraclelinux8 tmp]# dnf install ./oracleasmlib-3.1.3-1.el8.x86_64.rpm
	
	Confirm both are installed:
	
	[root@oraclelinux8 ~]# rpm -qa | grep -E 'oracleasm|oracleasmlib'
	oracleasm-support-3.1.1-6.el8.x86_64
	oracleasmlib-3.1.3-1.el8.x86_64
	[root@oraclelinux8 ~]#

7. oracleasm init

	[root@oraclelinux8 ~]# /usr/sbin/oracleasm init
	oracleasm.service not started
	Please run 'systemctl start oracleasm.service' to start oracleasm
	[root@oraclelinux8 ~]# systemctl start oracleasm.service
	[root@oraclelinux8 ~]#
	
	[root@oraclelinux8 ~]# oracleasm status
	Checking if the oracleasm kernel module is loaded: no (not required with UEK7)
	Checking if /dev/oracleasm is mounted: no (not required with UEK7)
	Checking which I/O Interface is in use: io_uring (KABI_V3)
	Checking if ASMLIB can be loaded: no (loading library failed)
	Checking if io_uring is enabled: yes
	Checking if io_uring is accessible to the configured DB user: no (User ${ORACLEASM_UID} not found in /etc/passwd)
	Checking if ASM disks have the correct ownership and permissions: yes
	Checking if ASM I/O filter is set up: yes
	[root@oraclelinux8 ~]#

8. oracleasm configure -i

	[root@oraclelinux8 ~]# /usr/sbin/oracleasm configure -i
	Configuring the Oracle ASM system service.
	
	This will configure the on-boot properties of the Oracle ASM system
	service.  The following questions will determine whether the service
	is started on boot and what permissions it will have.  The current
	values will be shown in brackets ('[]').  Hitting <ENTER> without
	typing an answer will keep that current value.  Ctrl-C will abort.
	
	Default user to own the ASM disk devices []: oracle
	Default group to own the ASM disk devices []: asmdba
	Start Oracle ASM system service on boot (y/n) [y]: y
	Scan for Oracle ASM disks when starting the oracleasm service (y/n) [y]: y
	Maximum number of ASM disks that can be used on system [2048]:
	Enable iofilter if kernel supports it (y/n) [y]: y
	Writing Oracle ASM system service configuration: done
	
	Configuration changes only come into effect after the Oracle ASM
	system service is restarted.  Please run 'systemctl restart oracleasm'
	after making changes.
	
	WARNING: All of your Oracle and ASM instances must be stopped prior
	to restarting the oracleasm service.
	
	[root@oraclelinux8 ~]#
	
	[root@oraclelinux8 ~]# grep "^[^#;]"  /etc/sysconfig/oracleasm
	ORACLEASM_UID=oracle
	ORACLEASM_GID=asmdba
	ORACLEASM_SCANBOOT=true
	ORACLEASM_SCANORDER=""
	ORACLEASM_SCANEXCLUDE=""
	ORACLEASM_SCAN_DIRECTORIES=""
	ORACLEASM_USE_LOGICAL_BLOCK_SIZE=
	ORACLEASM_CONFIG_MAX_DISKS=2048
	ORACLEASM_ENABLE_IOFILTER=true
	[root@oraclelinux8 ~]#

9. systemctl enable –now oracleasm

	[root@oraclelinux8 ~]# systemctl enable --now oracleasm
	[root@oraclelinux8 ~]# systemctl status oracleasm
	● oracleasm.service - Oracle ASM Service
	Loaded: loaded (/usr/lib/systemd/system/oracleasm.service; enabled; vendor preset: disabled)
	Active: active (exited) since Mon 2026-09-21 16:53:01 BST; 2min 27s ago
	Main PID: 3829975 (code=exited, status=0/SUCCESS)
		Tasks: 0 (limit: 251416)
	Memory: 0B
	CGroup: /system.slice/oracleasm.service
	
	Sep 21 16:53:00 oraclelinux8 systemd[1]: Starting Oracle ASM Service...
	Sep 21 16:53:00 oraclelinux8 oracleasm.init[3829993]: Mounting oracleasm driver filesystem: Not applicable with UEK7
	Sep 21 16:53:00 oraclelinux8 oracleasm.init[3830049]: Reloading disk partitions: done
	Sep 21 16:53:00 oraclelinux8 oracleasm.init[3830049]: Cleaning any stale ASM disks...
	Sep 21 16:53:00 oraclelinux8 oracleasm.init[3830049]: Setting up iofilter map for ASM disks: done
	Sep 21 16:53:00 oraclelinux8 oracleasm.init[3830065]: Scanning system for ASM disks...
	Sep 21 16:53:01 oraclelinux8 oracleasm.init[3830207]: Disk scan successful
	Sep 21 16:53:01 oraclelinux8 systemd[1]: Started Oracle ASM Service.
	[root@oraclelinux8 ~]#

10. oracleasm scandisks

	[root@oraclelinux8 ~]# oracleasm scandisks
	Reloading disk partitions: done
	Cleaning any stale ASM disks...
	Setting up iofilter map for ASM disks: done
	Scanning system for ASM disks...
	[root@oraclelinux8 ~]# 

11. oracleasm listdisks

	[root@oraclelinux8 ~]# oracleasm listdisks
	DATA1
	FRA1
	FRA2
	[root@oraclelinux8 ~]#

12. acfsload start

	[root@oraclelinux8 ~]# acfsload start
	ACFS-9391: Checking for existing ADVM/ACFS installation.
	ACFS-9392: Validating ADVM/ACFS installation files for operating system.
	ACFS-9393: Verifying ASM Administrator setup.
	ACFS-9308: Loading installed ADVM/ACFS drivers.
	ACFS-9154: Loading 'oracleoks.ko' driver.
	ACFS-9154: Loading 'oracleadvm.ko' driver.
	ACFS-9154: Loading 'oracleacfs.ko' driver.
	ACFS-9325:     Driver OS kernel version = 5.15.0-201.135.6.el8uek.x86_64.
	ACFS-9326:     Driver build number = 260602.
	ACFS-9231:     Driver build version = 19.0.0.0.0 (19.32.0.0.0).
	ACFS-9547:     Driver available build number = 260602.
	ACFS-9232:     Driver available build version = 19.0.0.0.0 (19.32.0.0.0).
	ACFS-9549:     Kernel and command versions.
	Kernel:
		Build version: 19.0.0.0.0
		Build full version: 19.32.0.0.0
		Build hash:    9256567290
		Bug numbers:   NoTransactionInformation
	Commands:
		Build version: 19.0.0.0.0
		Build full version: 19.32.0.0.0
		Build hash:    9256567290
		Bug numbers:   NoTransactionInformation
	ACFS-9327: Verifying ADVM/ACFS devices.
	ACFS-9156: Detecting control device '/dev/asm/.asm_ctl_spec'.
	ACFS-9156: Detecting control device '/dev/ofsctl'.
	ACFS-9294: updating file /etc/sysconfig/oracledrivers.conf
	ACFS-9322: completed
	[root@oraclelinux8 ~]#

13. crsctl start has

	[root@oraclelinux8 ~]# crsctl start has

14. Verify ORCL: paths

	[oracle@oraclelinux8 ~]$ asmcmd lsdsk
	Path
	ORCL:DATA1
	ORCL:FRA1
	ORCL:FRA2
	[oracle@oraclelinux8 ~]$
	
	
	[oracle@oraclelinux8 ~]$ asmcmd lsdsk -p
	Group_Num  Disk_Num      Incarn  Mount_Stat  Header_Stat  Mode_Stat  State   Path
			1         0  4074880182  CACHED      MEMBER       ONLINE     NORMAL  ORCL:DATA1
			2         0  4074880183  CACHED      MEMBER       ONLINE     NORMAL  ORCL:FRA1
			2         1  4074880184  CACHED      MEMBER       ONLINE     NORMAL  ORCL:FRA2
	[oracle@oraclelinux8 ~]$ asmcmd lsdg
	State    Type    Rebal  Sector  Logical_Sector  Block       AU  Total_MB  Free_MB  Req_mir_free_MB  Usable_file_MB  Offline_disks  Voting_files  Name
	MOUNTED  EXTERN  N         512             512   4096  4194304     51196    47396                0           47396              0             N  DATA/
	MOUNTED  EXTERN  N         512             512   4096  4194304     40952    33608                0           33608              0             N  FRA/
	[oracle@oraclelinux8 ~]$ asmcmd dsget
	parameter:/dev/sd*, AFD:*
	profile:/dev/sd*,AFD:*
	[oracle@oraclelinux8 ~]$
	
	SQL> show parameter asm_diskstring
	
	NAME                                 TYPE        VALUE
	------------------------------------ ----------- ------------------------------
	asm_diskstring                       string      /dev/sd*, AFD:*
	
	**** IF dsget still list AFD, we need to change:
	
	[oracle@oraclelinux8 ~]$ asmcmd dsset 'ORCL:*'
	[oracle@oraclelinux8 ~]$ asmcmd dsget
	parameter:ORCL:*
	profile:ORCL:*
	[oracle@oraclelinux8 ~]$
	
	
	
	Confirm it has been changed:
	
	[oracle@oraclelinux8 ~]$ oracleasm listdisks
	DATA1
	FRA1
	FRA2
	[oracle@oraclelinux8 ~]$
	
	[oracle@oraclelinux8 ~]$ asmcmd lsdsk
	Path
	ORCL:DATA1
	ORCL:FRA1
	ORCL:FRA2
	[oracle@oraclelinux8 ~]$
	
	SQL> show parameter asm_diskstring;
	
	NAME                                 TYPE        VALUE
	------------------------------------ ----------- ------------------------------
	asm_diskstring                       string      ORCL:*
	
	
	set lines 200
	col path format a30
	col name format a15
	
	select group_number,
		disk_number,
		name,
		path,
		mount_status,
		header_status,
		state
	from v$asm_disk
	order by group_number, disk_number;
	
	GROUP_NUMBER DISK_NUMBER NAME            PATH                           MOUNT_S HEADER_STATU STATE
	------------ ----------- --------------- ------------------------------ ------- ------------ --------
			1           0 DATA1           ORCL:DATA1                     CACHED  MEMBER       NORMAL
			2           0 FRA1            ORCL:FRA1                      CACHED  MEMBER       NORMAL
			2           1 FRA2            ORCL:FRA2                      CACHED  MEMBER       NORMAL
	

At this point, All should be done, just check all is up and running:

[oracle@oraclelinux8 ~]$ crsctl stat res -t
--------------------------------------------------------------------------------
Name           Target  State        Server                   State details
--------------------------------------------------------------------------------
Local Resources
--------------------------------------------------------------------------------
ora.DATA.dg
               ONLINE  ONLINE       oraclelinux8             STABLE
ora.FRA.dg
               ONLINE  ONLINE       oraclelinux8             STABLE
ora.LISTENER.lsnr
               ONLINE  ONLINE       oraclelinux8             STABLE
ora.asm
               ONLINE  ONLINE       oraclelinux8             Started,STABLE
ora.ons
               OFFLINE OFFLINE      oraclelinux8             STABLE
--------------------------------------------------------------------------------
Cluster Resources
--------------------------------------------------------------------------------
ora.cssd
      1        ONLINE  ONLINE       oraclelinux8             STABLE
ora.dbtest.db
      1        ONLINE  ONLINE       oraclelinux8             Open,HOME=/u01/app/o
                                                             racle/product/19c/db
                                                             _1,STABLE
ora.diskmon
      1        OFFLINE OFFLINE                               STABLE
ora.evmd
      1        ONLINE  ONLINE       oraclelinux8             STABLE
--------------------------------------------------------------------------------
[oracle@oraclelinux8 ~]$

Last modified: 21 September 2026

Author

Comments

Write a Reply or Comment

Your email address will not be published.