1 About Oracle ASMLIB
Oracle ASMLIB is a recommended support library for Oracle Automatic Storage Management (ASM).
Using ASMLIB permits filtering out non-Oracle write I/Os and preventing them from overwriting ASM devices. This protection mechanism saves ASM disk groups from accidental overwrites of ASM data by non-Oracle entities. ASMLIB also supports thin provisioning and end-to-end data integrity protection, where the underlying storage provides this support.
ASMLIB Feature Support Matrix
ASMLIB provides a range of features that are dependent on facilities in the system kernel and on the version of the ASMLIB software installed. This table provides a reference that you can use to identify the appropriate minimum software version and platform and kernel combination that you need to take advantage of the different features in ASMLIB.
Table 1-1 Feature Support Matrix
Platform | Library to Kernel Interface | Read/Write I/O | End-to-End Data Integrity | I/O Filter | Automatic Block Size Selection | Thin Provisioning |
---|---|---|---|---|---|---|
Oracle Linux 10 with UEK 8 | Built-in (io_uring) | 3.0.0 | 3.1.0 | 3.0.0 | 3.1.0 | 3.1.0 |
Oracle Linux 10 with RHCK | Built-in (io_uring) | 3.0.0 | - | - | 3.1.0 | 3.1.0 |
Oracle Linux 9 with UEK 8 | Built-in (io_uring) | 3.0.0 | 3.1.0 | 3.0.0 | 3.1.0 | 3.1.0 |
Oracle Linux 9 with UEK R7 | Built-in (io_uring) | 3.0.0 | - | 3.0.0 | 3.1.0 | 3.1.0 |
Oracle Linux 9 with RHCK | Built-in (io_uring) | 3.0.0 | - | 3.0.0 Foot 1 | 3.1.0 | 3.1.0 |
Oracle Linux 8 with UEK R7 | Built-in (io_uring) | 3.0.0 | - | 3.0.0 | 3.1.0 | 3.1.0 |
Oracle Linux 8 with UEK R6 | Built-in (oracleasm) | 2.0.8 | 2.0.8 | - | 3.1.0 Foot 2 | - |
Oracle Linux 8 with RHCK | RPM (kmod-redhat-oracleasm) | 2.0.8 | - | - | - | - |
RHEL 10 | Built-in (io_uring) | 3.0.0 Foot 3 | - | - | 3.1.0 | 3.1.0 |
RHEL 9 | Built-in (io_uring) | 3.0.0 Foot 4 | - | 3.0.0 Foot 5 | 3.1.0 | 3.1.0 |
RHEL 8 | RPM (kmod-redhat-oracleasm) | 2.0.8 | - | - | - | - |
SLES 15 | RPM (oracleasm-kmp-default) | 2.0.8 | 2.0.8 | - | 3.1.1Foot 6 | - |
Footnote 1 I/O Filter is available for x86_64 only.
Footnote 2 kernel-uek-5.4.17-2136.342.1 or later is required to support Automatic Block Size Selection on UEKR6.
Footnote 3 io_uring interface marked Tech Preview.
Footnote 4 io_uring interface marked Tech Preview.
Footnote 5 I/O Filter is available for x86_64 only.
Footnote 6 oracleasm-kmp-default-2.0.8-150600.16.13.2 or later is required to support Automatic Block Size Selection.
Release Notes for Oracle ASMLIB 3.1.1
Oracle ASMLIB is updated to version 3.1.1. The following notable changes are included:
- ASMLIB can now discover ASM disk labels on unpartitioned block devices.
- ASMLIB attempts additional retries when the kernel reports transient I/O errors.
- ASMLIB no longer lowers maxio for devices which report an invalid optimal I/O size.
Release Notes for Oracle ASMLIB 3.1
ASMLIB is updated to version 3.1. The following notable changes are included:
-
End-to-End Data Integrity: ASMLIB can use end-to-end data integrity protection when running on UEK R8 or later. This feature adds a layer of protection against data corruption by attaching integrity metadata to each I/O. The attached integrity metadata can be validated by I/O controller and storage device on write operations, and by ASM on read operations.
End-to-end data integrity protection requires ASM disks to be placed on storage devices formatted with the T10 Protection Information, Type 1. Associated SCSI storage controllers must support Data Integrity Extensions (DIX). NVMe storage controllers must support the separate metadata buffer feature.
-
Automatic Block Size Selection: ASM can now select whether to use the logical or the physical block size on a per-I/O basis. This feature makes it possible for ASM to migrate or access disks that were originally configured using different block sizes. In earlier releases, the block size selection was global and applied to all disks on a system.
To use per-I/O block size selection, the
ORACLEASM_USE_LOGICAL_BLOCK_SIZE
configuration option must be set tofalse
and the Oracle Database must be patched to implement the per-I/O block size capability. See Known Issues.
-
Thin Provisioning: Unmap support is included, making it possible to reclaim unused disk space on thin-provisioned storage devices. This capability requires KABI_V3 (UEK R7 or later). Use
oracleasm querydisk -i
ororacleasm discover -l
to query whether an ASM disk supports thin provisioning. -
When using KABI_V3 (UEK R7 or later) a universally unique identifier (UUID) is reported for those SCSI and NVMe storage devices that support it. Use
oracleasm querydisk -i
ororacleasm discover -l
to get the UUID that uniquely identifies a storage device to ASM across all nodes in a cluster.
Release Notes for oracleasm-support
3.1
The following notable changes are included in oracleasm-support
version
3.1:
-
Disk labeling operations now inhibit writing ASM disks that are marked as being members of an ASM disk group. This is done to prevent inadvertently deleting or renaming ASM disks that are actively in use by other nodes in a cluster.
-
Checks were added to the
oracleasm status
command to validate that theoracleasm
service is fully operational. The checks include verifying that ASMLIB is installed and that theio_uring
interface is accessible to the configuredORACLEASM_UID
/ORACLEASM_GID
. -
The
-i
option is added to theoracleasm querydisk
command to print detailed information about the specified ASM disk.The
-l
option is added to theoracleasm discover
command to print detailed information about all ASM disks attached to the system.The detailed information printed in each case includes device node, disk UUID, ASM disk group name, disk size, logical and physical block sizes, maximum I/O size, and whether the disk supports end-to-end data integrity and thin provisioning. Note that some information is only available when using KABI_V3 interface (UEK R7 or later).
Known Issues
-
The following Oracle Database patches must be installed to support mounting and migration of disks created using different ASM block sizes:
-
Patch 37347369 - VOTING DISK CREATED WITH AFD ON 512E DISK IN PAST DOES NOT WORK WITH ASMLIB
-
Patch 37230154 - ASMCMD AFD_DECONFIGURE FAILS TO DELETE AFD RESOURCE
-
Release Notes for Oracle ASMLIB 3.0
Previous releases of Oracle ASMLIB supported several versions of interfaces implemented
by the oracleasm
driver over the years. The library picked the correct
interface based on the oracleasm
version reported by the kernel at
runtime. Therefore, a single library binary could be used with various kernel
releases.
Starting with ASMLIB version 3.0, another I/O submission interface is added to the
library. The new I/O submission interface takes advantage of the high performance
io_uring
interface available in modern Linux kernels. If ASMLIB
version 3.0 is loaded on a system that doesn't have an oracleasm
driver
loaded, is running a kernel that has io_uring
enabled, and that
supports a recent enough version of io_uring
, the
io_uring
interface is used to submit I/O to the kernel instead of
oracleasm
.
The single ASMLIB version 3.0 binary handles all previous I/O submission interface
versions in addition to io_uring
and therefore no configuration changes
are required when switching between kernels that don't have io_uring
enabled and those that do.
The library automatically uses the appropriate interface for the running kernel.
Known Issues
-
Data integrity passthrough not supported with the
io_uring
interface.Data integrity passthrough isn't supported when using the
io_uring
interface, because of a kernel limitation. This issue might be resolved in a later kernel version.Note that this limitation doesn't apply when running ASMLIB version 3.0 with the
oracleasm
driver on UEK R6. -
ASMLIB version 3.0 for Arm is only supported with Oracle Database 19c
Release Notes for oracleasm-support
3.0
The oracleasm-support
package has been enhanced to work with version 3.0
of ASMLIB, which uses the generic io_uring
interface to manage ASM
disks on kernels that include this functionality. The updated
oracleasm-support
package continues to work with older kernels with
backward compatibility. The command syntax remains the same irrespective of the kernel
that's running.
I/O Filter: On systems running UEK R7 or Oracle Linux 9 with RHCK,
oracleasm-support
automatically adds an I/O filter to protect ASM
disks against accidental overwrites. The filter rejects any write operations that aren't
started by ASM and prevents writes to ASM disks by admin commands such as
dd
after disks have been instantiated. No new user level commands
are required to manage the I/O filter map. If a disk device is found to have a valid ASM
disk label, a filter map entry is automatically added.
The oracleasm
configuration has a new parameter
ORACLEASM_CONFIG_MAX_DISKS
, which specifies the maximum number of
ASM disks that can be used in the system. This parameter is used to calculate the size
of I/O filter map.
I/O filtering depends on BPF (Berkeley Packet Filter) functionality within the kernel.
Known Issues
-
oracleasm-support-3.0.0-7
or later required for use with Oracle ASM Dynamic Volume Manager (Oracle ADVM)You must install the
oracleasm-support-3.0.0-7
or later to use ASMLIB with Oracle ADVM on UEK R7 or later.Patch 37405185 - ADD SUPPORT FOR ASMLIB V3 IN ADVM
is also required in the Oracle Clusterware home directory.