Introduction
As I had explained in my two previous posts, the ASMlib v3 provide support for database servers running in Oracle Linux 8 and 9 with moderns kernels like UEK 5.15 and RHCK 5.14. In my last post, I demonstrated how to install the new ASMlib v3 in a new build. In this post, I will show you how to update an exisiting installation from ASMlib v2 to ASMlib v3, which allow us to update the Kernel from UEK6 to UEK7 smootly.
About the plan
If your database server don’t use the pattern ‘ORCL:*’ as prefix to discover the ASM disks, you need make sure that “asm_diskstring” parameter is updated in SPFILE to this value before shutdown the ASM instance or Grid stack. With the parameter updated in ASM spfile, we can shutdown the Grid stack and update the oracleasm-support and oracleasmlib packages.
After complete the ASMlib upgrade and validate that ASM instance can startup and mount the diskgroups normally, you can stop the Grid stack again and proceed to OS kernel update. You could update the ASMlib after the Kernel, or even update the Kernel as part of the ASMlib update before starting the Grid infrastructure, but I really recommend you to isolate these two things.
If you update the Kernel first, and you face any issue with the ASMlib update that require rollback, you will need rollback the Kernel to reinstall the ASMlib v2. Also, if you update the Kernel and reboot the SO before validate the ASM instance using the new ASMlib, in case of any problem, you will not know if the root cause was the ASMlib update, or the Kernel update.
Before begin (Known issues)
If your database server has ASM Disk with Physical Sector Size different from Logical Sector Size and you are not yet using ORCL:* asm diskstring, you must analyse the Doc ID 1500460.1 carefully. This note from Oracle Support contains detalied information about some issues that you can face when move from directly reference for disk devices to ASMlib label interface (ORCL:*).
Update 26-mar-2025
Thank you Allan Graves for this comment on my Linkedin post:
if you are using Clusterware, please ensure you have the latest ASMLib and Bug# 37405185 – ADD SUPPORT FOR ASMLIB V3 IN ADVM installed. Please see known issues: https://docs.oracle.com/en/operating-systems/oracle-linux/asmlib/asmlib-AboutASMLib.html#asmlib3.0-relnotes
Downloads
You can see my last post here showing how to download the new ASMlib packages.
Important to note, the version used in this example can become obsolete over the time, so always download the latest version available in repository.
Step by step
1) Connect to the ASM instance and make sure that asm_diskstring is defined to ‘ORCL:*’ in SPFILE:
SQL> alter system set asm_diskstring='ORCL:*' scope=spfile;
2) As root user, shutdown the Grid stack:
crsctl stop has
3) Stop the ASMlib service in systemd:
systemctl stop oracleasm
4) Now install the oracleasm-support v3 rpm:
dnf localinstall oracleasm-support-3.0.0-7.el8.x86_64.rpm
5) So install the oracleasmlib v3 rpm:
dnf localinstall oracleasmlib-3.0.0-13.el8.x86_64.rpm
6) OPTIONAL: Check the current state of “/etc/sysconfig/oracleasm” file:
cat /etc/sysconfig/oracleasm
7) We need execute the “oracleasm configure -i”, so the ASMlib will update the “/etc/sysconfig/oracleasm” file with two new parameters.
Just accept the pre-defined value:
oracleasm configure -i
8) OPTIONAL: Checking the configuration file:
cat /etc/sysconfig/oracleasm
You should see these new parameters added by the step 7:
# ORACLEASM_CONFIG_MAX_DISKS: Maximum number of ASM disks that may be
# used in the system. The default is 2048.
ORACLEASM_CONFIG_MAX_DISKS=2048
# ORACLEASM_ENABLE_IOFILTER: 'true' means to setup iofilter for ASM disks
# if the kernel supports BPF.
ORACLEASM_ENABLE_IOFILTER=true
9) Start the ASMlib service again:
systemctl start oracleasm
10) Execute the “oracleasm listdisks” to confirm that disks was successfully scanned and recognized by the new ASMlib version:
oracleasm listdisks
12) So, start the Grid services:
crsctl start has
13) Validation: Connect to the ASM instance with SQLPLUS and check the following parameters:
- Confirm that ASM instance is using SPFILE
- Confirm that asm_diskstring parameter is using ‘ORCL:*’ prefix
- Query the V$ASM_DISK and confirm that disks was recognized with ORCL:* path
show parameter spfile; show parameter asm_diskstring select path from v$asm_disk;
Demo with Oracle Restart
[grid@lab01 ~]$ sqlplus / as sysasm
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Feb 18 20:57:15 2025
Version 19.24.0.0.0
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.24.0.0.0
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/ASM/ASMPARAMETERFILE/reg
istry.253.1168022355
SQL> show parameter asm_diskstring;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring string /dev/oracleasm/disks/*
SQL>
SQL> set lines 300
col name format a30
select group_number, name, state, type, sector_size, logical_sector_size, offline_disks from v$asm_diskgroup;SQL> SQL>
GROUP_NUMBER NAME STATE TYPE SECTOR_SIZE LOGICAL_SECTOR_SIZE OFFLINE_DISKS
------------ ------------------------------ ----------- ------ ----------- ------------------- -------------
1 DATA MOUNTED EXTERN 512 512 0
2 RECO MOUNTED EXTERN 512 512 0
SQL>
SQL>
SQL> set pages 50
set lines 300
col path format a30
col header_status format a20
col mount_status format a20
select inst_id, group_number, disk_number, path, header_status, mount_status, state, sector_size, logical_sector_size
from gv$asm_disk
order by 1,2,3;SQL> SQL> SQL> SQL> SQL> 2 3
INST_ID GROUP_NUMBER DISK_NUMBER PATH HEADER_STATUS MOUNT_STATUS STATE SECTOR_SIZE LOGICAL_SECTOR_SIZE
---------- ------------ ----------- ------------------------------ -------------------- -------------------- -------- ----------- -------------------
1 1 0 /dev/oracleasm/disks/DATA1 MEMBER CACHED NORMAL 512 512
1 1 1 /dev/oracleasm/disks/DATA2 MEMBER CACHED NORMAL 512 512
1 1 2 /dev/oracleasm/disks/DATA3 MEMBER CACHED NORMAL 512 512
1 1 3 /dev/oracleasm/disks/DATA4 MEMBER CACHED NORMAL 512 512
1 1 4 /dev/oracleasm/disks/DATA5 MEMBER CACHED NORMAL 512 512
1 1 5 /dev/oracleasm/disks/DATA6 MEMBER CACHED NORMAL 512 512
1 1 6 /dev/oracleasm/disks/DATA7 MEMBER CACHED NORMAL 512 512
1 1 7 /dev/oracleasm/disks/DATA8 MEMBER CACHED NORMAL 512 512
1 2 0 /dev/oracleasm/disks/RECO4 MEMBER CACHED NORMAL 512 512
1 2 1 /dev/oracleasm/disks/RECO3 MEMBER CACHED NORMAL 512 512
1 2 2 /dev/oracleasm/disks/RECO2 MEMBER CACHED NORMAL 512 512
1 2 3 /dev/oracleasm/disks/RECO1 MEMBER CACHED NORMAL 512 512
1 2 4 /dev/oracleasm/disks/RECO5 MEMBER CACHED NORMAL 512 512
1 2 5 /dev/oracleasm/disks/RECO6 MEMBER CACHED NORMAL 512 512
1 2 6 /dev/oracleasm/disks/RECO7 MEMBER CACHED NORMAL 512 512
1 2 7 /dev/oracleasm/disks/RECO8 MEMBER CACHED NORMAL 512 512
16 rows selected.
SQL> alter system set asm_diskstring='ORCL:*' scope=spfile;
System altered.
SQL> exit
Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.24.0.0.0
[grid@lab01 ~]$
[grid@lab01 ~]$ crsctl stop has
CRS-2791: Starting shutdown of Oracle High Availability Services-managed resources on 'lab01'
CRS-2673: Attempting to stop 'ora.cdbdg_a.db' on 'lab01'
CRS-2673: Attempting to stop 'ora.LISTENER.lsnr' on 'lab01'
CRS-2677: Stop of 'ora.LISTENER.lsnr' on 'lab01' succeeded
CRS-2677: Stop of 'ora.cdbdg_a.db' on 'lab01' succeeded
CRS-2673: Attempting to stop 'ora.RECO.dg' on 'lab01'
CRS-2677: Stop of 'ora.RECO.dg' on 'lab01' succeeded
CRS-2673: Attempting to stop 'ora.cdbtst.db' on 'lab01'
CRS-2677: Stop of 'ora.cdbtst.db' on 'lab01' succeeded
CRS-2673: Attempting to stop 'ora.DATA.dg' on 'lab01'
CRS-2677: Stop of 'ora.DATA.dg' on 'lab01' succeeded
CRS-2673: Attempting to stop 'ora.asm' on 'lab01'
CRS-2677: Stop of 'ora.asm' on 'lab01' succeeded
CRS-2673: Attempting to stop 'ora.evmd' on 'lab01'
CRS-2677: Stop of 'ora.evmd' on 'lab01' succeeded
CRS-2673: Attempting to stop 'ora.cssd' on 'lab01'
CRS-2677: Stop of 'ora.cssd' on 'lab01' succeeded
CRS-2793: Shutdown of Oracle High Availability Services-managed resources on 'lab01' has completed
CRS-4133: Oracle High Availability Services has been stopped.
[grid@lab01 ~]$
[grid@lab01 ~]$ exit
logout
[root@lab01 ~]#
[root@lab01 ~]# dnf list installed | grep oracleasm
oracleasm-support.x86_64 2.1.12-1.el8 @@commandline
oracleasmlib.x86_64 2.0.17-1.el8 @@commandline
[root@lab01 ~]#
[root@lab01 ~]# oracleasm version
oracleasm version 2.1.12
[root@lab01 ~]#
[root@lab01 ~]# ls -lrt *.rpm
-rw-r--r-- 1 root root 99852 Feb 28 2020 oracleasm-support-2.1.12-1.el8.x86_64.rpm
-rw-r--r-- 1 root root 27092 Jun 1 2020 oracleasmlib-2.0.17-1.el8.x86_64.rpm
-rw-r--r-- 1 root root 47512 Feb 17 21:14 oracleasmlib-3.0.0-13.el8.x86_64.rpm
-rw-r--r-- 1 root root 111504 Feb 18 20:55 oracleasm-support-3.0.0-7.el8.x86_64.rpm
[root@lab01 ~]#
[root@lab01 ~]# systemctl stop oracleasm
[root@lab01 ~]#
[root@lab01 ~]# dnf localinstall oracleasm-support-3.0.0-7.el8.x86_64.rpm
Last metadata expiration check: 3:18:29 ago on Tue 18 Feb 2025 05:41:57 PM -03.
Dependencies resolved.
============================================================================================================================================================================================================================================
Package Architecture Version Repository Size
============================================================================================================================================================================================================================================
Upgrading:
oracleasm-support x86_64 3.0.0-7.el8 @commandline 109 k
Transaction Summary
============================================================================================================================================================================================================================================
Upgrade 1 Package
Total size: 109 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Running scriptlet: oracleasm-support-3.0.0-7.el8.x86_64 1/1
Upgrading : oracleasm-support-3.0.0-7.el8.x86_64 1/2
Running scriptlet: oracleasm-support-3.0.0-7.el8.x86_64 1/2
Note: Forwarding request to 'systemctl enable oracleasm.service'.
Synchronizing state of oracleasm.service with SysV service script with /usr/lib/systemd/systemd-sysv-install.
Executing: /usr/lib/systemd/systemd-sysv-install enable oracleasm
Cleanup : oracleasm-support-2.1.12-1.el8.x86_64 2/2
Running scriptlet: oracleasm-support-2.1.12-1.el8.x86_64 2/2
Verifying : oracleasm-support-3.0.0-7.el8.x86_64 1/2
Verifying : oracleasm-support-2.1.12-1.el8.x86_64 2/2
Upgraded:
oracleasm-support-3.0.0-7.el8.x86_64
Complete!
[root@lab01 ~]#
[root@lab01 ~]# dnf localinstall oracleasmlib-3.0.0-13.el8.x86_64.rpm
Last metadata expiration check: 3:18:44 ago on Tue 18 Feb 2025 05:41:57 PM -03.
Dependencies resolved.
============================================================================================================================================================================================================================================
Package Architecture Version Repository Size
============================================================================================================================================================================================================================================
Upgrading:
oracleasmlib x86_64 3.0.0-13.el8 @commandline 46 k
Transaction Summary
============================================================================================================================================================================================================================================
Upgrade 1 Package
Total size: 46 k
Is this ok [y/N]: y
Downloading Packages:
Running transaction check
Transaction check succeeded.
Running transaction test
Transaction test succeeded.
Running transaction
Preparing : 1/1
Upgrading : oracleasmlib-3.0.0-13.el8.x86_64 1/2
Cleanup : oracleasmlib-2.0.17-1.el8.x86_64 2/2
Running scriptlet: oracleasmlib-2.0.17-1.el8.x86_64 2/2
Verifying : oracleasmlib-3.0.0-13.el8.x86_64 1/2
Verifying : oracleasmlib-2.0.17-1.el8.x86_64 2/2
Upgraded:
oracleasmlib-3.0.0-13.el8.x86_64
Complete!
[root@lab01 ~]#
[root@lab01 ~]# cat /etc/sysconfig/oracleasm
#
# This is a configuration file for automatic loading of the Oracle
# Automatic Storage Management library kernel driver. It is generated
# By running /etc/init.d/oracleasm configure. Please use that method
# to modify this file
#
# ORACLEASM_ENABLED: 'true' means to load the driver on boot.
ORACLEASM_ENABLED=true
# ORACLEASM_UID: Default user owning the /dev/oracleasm mount point.
ORACLEASM_UID=grid
# ORACLEASM_GID: Default group owning the /dev/oracleasm mount point.
ORACLEASM_GID=oinstall
# ORACLEASM_SCANBOOT: 'true' means scan for ASM disks on boot.
ORACLEASM_SCANBOOT=true
# ORACLEASM_SCANORDER: Matching patterns to order disk scanning
ORACLEASM_SCANORDER=""
# ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan
ORACLEASM_SCANEXCLUDE=""
# ORACLEASM_SCAN_DIRECTORIES: Scan disks under these directories
ORACLEASM_SCAN_DIRECTORIES=""
# ORACLEASM_USE_LOGICAL_BLOCK_SIZE: 'true' means use the logical block size
# reported by the underlying disk instead of the physical. The default
# is 'false'
ORACLEASM_USE_LOGICAL_BLOCK_SIZE=false
[root@lab01 ~]#
[root@lab01 ~]# oracleasm configure -i
Configuring the Oracle ASM library driver.
This will configure the on-boot properties of the Oracle ASM library
driver. The following questions will determine whether the driver is
loaded 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 driver interface [grid]:
Default group to own the driver interface [oinstall]:
Start Oracle ASM library driver on boot (y/n) [y]:
Scan for Oracle ASM disks on boot (y/n) [y]:
Maximum number of disks that may be used in ASM system [2048]:
Enable iofilter if kernel supports it (y/n) [y]:
Writing Oracle ASM library driver configuration: done
[root@lab01 ~]#
[root@lab01 ~]# cat /etc/sysconfig/oracleasm
#
# This is a configuration file for automatic loading of the Oracle
# Automatic Storage Management library kernel driver. It is generated
# By running /etc/init.d/oracleasm configure. Please use that method
# to modify this file
#
# ORACLEASM_ENABLED: 'true' means to load the driver on boot.
ORACLEASM_ENABLED=true
# ORACLEASM_UID: Default user owning the /dev/oracleasm mount point.
ORACLEASM_UID=grid
# ORACLEASM_GID: Default group owning the /dev/oracleasm mount point.
ORACLEASM_GID=oinstall
# ORACLEASM_SCANBOOT: 'true' means scan for ASM disks on boot.
ORACLEASM_SCANBOOT=true
# ORACLEASM_SCANORDER: Matching patterns to order disk scanning
ORACLEASM_SCANORDER=""
# ORACLEASM_SCANEXCLUDE: Matching patterns to exclude disks from scan
ORACLEASM_SCANEXCLUDE=""
# ORACLEASM_SCAN_DIRECTORIES: Scan disks under these directories
ORACLEASM_SCAN_DIRECTORIES=""
# ORACLEASM_USE_LOGICAL_BLOCK_SIZE: 'true' means use the logical block size
# reported by the underlying disk instead of the physical. The default
# is 'false'
ORACLEASM_USE_LOGICAL_BLOCK_SIZE=false
# ORACLEASM_CONFIG_MAX_DISKS: Maximum number of ASM disks that may be
# used in the system. The default is 2048.
ORACLEASM_CONFIG_MAX_DISKS=2048
# ORACLEASM_ENABLE_IOFILTER: 'true' means to setup iofilter for ASM disks
# if the kernel supports BPF.
ORACLEASM_ENABLE_IOFILTER=true
[root@lab01 ~]#
[root@lab01 ~]# system start oracleasm
-bash: system: command not found
[root@lab01 ~]#
[root@lab01 ~]# systemctl start oracleasm
[root@lab01 ~]#
[root@lab01 ~]# systemctl status oracleasm
● oracleasm.service - Load oracleasm Modules
Loaded: loaded (/usr/lib/systemd/system/oracleasm.service; enabled; vendor preset: disabled)
Active: active (exited) since Tue 2025-02-18 21:01:36 -03; 4s ago
Process: 47031 ExecStart=/usr/sbin/oracleasm.init start_sysctl (code=exited, status=0/SUCCESS)
Process: 47029 ExecStartPre=/usr/bin/udevadm settle -t 120 (code=exited, status=0/SUCCESS)
Main PID: 47031 (code=exited, status=0/SUCCESS)
Feb 18 21:01:35 lab01 systemd[1]: Starting Load oracleasm Modules...
Feb 18 21:01:35 lab01 oracleasm.init[47031]: Initializing the Oracle ASMLib driver: OK
Feb 18 21:01:36 lab01 oracleasm.init[47031]: Scanning the system for Oracle ASMLib disks: OK
Feb 18 21:01:36 lab01 systemd[1]: Started Load oracleasm Modules.
[root@lab01 ~]#
[root@lab01 ~]#
[root@lab01 ~]# oracleasm listdisks
DATA1
DATA2
DATA3
DATA4
DATA5
DATA6
DATA7
DATA8
RECO1
RECO2
RECO3
RECO4
RECO5
RECO6
RECO7
RECO8
[root@lab01 ~]#
[root@lab01 ~]# su - grid
Last login: Tue Feb 18 20:56:26 -03 2025 on pts/1
[grid@lab01 ~]$
[grid@lab01 ~]$ crsctl start has
CRS-4123: Oracle High Availability Services has been started.
[grid@lab01 ~]$
[grid@lab01 ~]$ sqlplus / as sysasm
SQL*Plus: Release 19.0.0.0.0 - Production on Tue Feb 18 21:04:52 2025
Version 19.24.0.0.0
Copyright (c) 1982, 2024, Oracle. All rights reserved.
Connected to:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.24.0.0.0
SQL> show parameter spfile;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
spfile string +DATA/ASM/ASMPARAMETERFILE/reg
istry.253.1168022355
SQL> show parameter asm_diskstring;
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
asm_diskstring string ORCL:*
SQL>
SQL>
SQL> set lines 300
col name format a30
select group_number, name, state, type, sector_size, logical_sector_size, offline_disks from v$asm_diskgroup;SQL> SQL>
GROUP_NUMBER NAME STATE TYPE SECTOR_SIZE LOGICAL_SECTOR_SIZE OFFLINE_DISKS
------------ ------------------------------ ----------- ------ ----------- ------------------- -------------
1 DATA MOUNTED EXTERN 512 512 0
2 RECO MOUNTED EXTERN 512 512 0
SQL>
SQL> set pages 50
set lines 300
col path format a30
col header_status format a20
col mount_status format a20
select inst_id, group_number, disk_number, path, header_status, mount_status, state, sector_size, logical_sector_size
from gv$asm_disk
order by 1,2,3;SQL> SQL> SQL> SQL> SQL> 2 3
INST_ID GROUP_NUMBER DISK_NUMBER PATH HEADER_STATUS MOUNT_STATUS STATE SECTOR_SIZE LOGICAL_SECTOR_SIZE
---------- ------------ ----------- ------------------------------ -------------------- -------------------- -------- ----------- -------------------
1 1 0 ORCL:DATA1 MEMBER CACHED NORMAL 512 512
1 1 1 ORCL:DATA2 MEMBER CACHED NORMAL 512 512
1 1 2 ORCL:DATA3 MEMBER CACHED NORMAL 512 512
1 1 3 ORCL:DATA4 MEMBER CACHED NORMAL 512 512
1 1 4 ORCL:DATA5 MEMBER CACHED NORMAL 512 512
1 1 5 ORCL:DATA6 MEMBER CACHED NORMAL 512 512
1 1 6 ORCL:DATA7 MEMBER CACHED NORMAL 512 512
1 1 7 ORCL:DATA8 MEMBER CACHED NORMAL 512 512
1 2 0 ORCL:RECO4 MEMBER CACHED NORMAL 512 512
1 2 1 ORCL:RECO3 MEMBER CACHED NORMAL 512 512
1 2 2 ORCL:RECO2 MEMBER CACHED NORMAL 512 512
1 2 3 ORCL:RECO1 MEMBER CACHED NORMAL 512 512
1 2 4 ORCL:RECO5 MEMBER CACHED NORMAL 512 512
1 2 5 ORCL:RECO6 MEMBER CACHED NORMAL 512 512
1 2 6 ORCL:RECO7 MEMBER CACHED NORMAL 512 512
1 2 7 ORCL:RECO8 MEMBER CACHED NORMAL 512 512
16 rows selected.
SQL>
How it Works with Oracle RAC
With Oracle RAC, we can use the same procedure in rolling mode, one node per time, like a DB or GI patching. The ASM cluster nodes can run normally with different asm_diskstring during the update process. For example, we can restart Node1 with asm_diskstring ‘ORCL:*’ and ASMlib V3, while Node2 still using asm_diskstring ‘/dev/oracleasm/disks’ (or anything else) with ASMlib v2.
Update 26-mar-2025
Thank you Allan Graves for this comment on my Linkedin post:
if you are using Clusterware, please ensure you have the latest ASMLib and Bug# 37405185 – ADD SUPPORT FOR ASMLIB V3 IN ADVM installed. Please see known issues: https://docs.oracle.com/en/operating-systems/oracle-linux/asmlib/asmlib-AboutASMLib.html#asmlib3.0-relnotes
ASMlib v3 with UEK6 vs UEK7
The ASMlib v3 supports both UEK6 and UEK7, but uses a different internel interface to work properly on each kernel. When running in UEK6, the ASMlib v3 still using the same interface as ASMlib v2 (you should see “KABI_V2” in “oracleasm status”), and when running in UEK7, the ASMlib v3 uses the new IO_URING interface, which is identified as “KABI_V3” in the “oracleasm status” command.
Example 1: ASMlib v2 on OEL8.10 with UEK6.
Before update the ASMlib, you will see anything like this:
[root@lab01 ~]# uname -r
5.4.17-2136.317.5.5.el8uek.x86_64
[root@lab01 ~]#
[root@lab01 ~]# oracleasm version
oracleasm version 2.1.12
[root@lab01 ~]#
[root@lab01 ~]# oracleasm status
Checking if ASM is loaded: yes
Checking if /dev/oracleasm is mounted: yes
Example 2: ASMlib v3 on OEL 8.10 with UEK6
After update the ASMlib to version 3 and before update the Kernel to UEK7, you should see the new version of ASMlib using the interface KABI_V2. It is essentially the same interface used in the ASMlib v2, although this is not showed in the status of the old version.
[root@lab01 ~]# uname -r
5.4.17-2136.317.5.5.el8uek.x86_64
[root@lab01 ~]#
[root@lab01 ~]# oracleasm version
oracleasm version 3.0.0
[root@lab01 ~]#
[root@lab01 ~]# oracleasm status
Checking if the oracleasm kernel module is loaded: yes
Checking if /dev/oracleasm is mounted: yes
Checking which I/O Interface is in use: oracleasm driver (KABI_V2)
Example 3: ASMlib v3 on OEL 8.10 with UEK7
And after update the OS Kernel to UEK7, now you can see the ASMlib v3 using the new interface KABI_V3, which uses IO_URING:
[root@lab01 ~]# uname -r
5.15.0-306.177.4.el8uek.x86_64
[root@lab01 ~]#
[root@lab01 ~]# oracleasm version
oracleasm version 3.0.0
[root@lab01 ~]#
[root@lab01 ~]# oracleasm status
Checking if the oracleasm kernel module is loaded: no (Not required with kernel 5.15.0)
Checking if /dev/oracleasm is mounted: no (Not required with kernel 5.15.0)
Checking which I/O Interface is in use: io_uring (KABI_V3)
Checking if io_uring is enabled: yes
Checking if ASM disks have the correct ownership and permissions: yes
Conclusion
After complete these steps, you are ready to update the OS Kernel from UEK6 to UEK7. I have successfully performed several tests with Oracle Restart and Oracle Clusterware before writing this blog post, but I really recommend you to execute your own test in your own Infrastructure before execute this in production environment.
Again, if you are not using ORCL:* as disk prefix yet, and your database server has disks with Physical Sector size greater than Logical Sector size, you need review the Doc ID 1500460.1 carefully. If you are not sure about that, I recommend you to open a Service Request to Oracle Support.
In my last post, I demonstrated how to install the new ASMlib v3 in a new build : could you please send me link
Sure. This was written in portuguese, but you can transalate in your browser:
https://dibiei.blog/2025/02/04/instalacao-do-asmlib-v3-no-redhat-9-5/
Great tutorial. Thank You
Thank you for your feedback 🙂