Instalando las templates de Oracle para OVM e intentando usar ADVM/ACFS «AFD is not supported»

 

Quizás te hayas encontrado en la situación de querer instalar las templates de Oracle para OVM, y además utilizar ADVM/ACFS para algún filesystem, y te hayas encontrado este mensaje de error:

WARNING (node:nodo01): AFD requested via CLONE_AFD_ENABLED=yes in params.ini, however the automated check (/u01/app/18.4.0/grid/bin/afddriverstate supported) returns that AFD is not supported on the running kernel (4.14.35-1818.3.3.el7uek.x86_64 - x86_64) hence disabling AFD and continuing with operations; to skip this check set CLONE_SKIP_AFD_COMPATIBLE_CHECK=yes in params.ini (see output below):
AFD-620: AFD is not supported on this operating system version: '4.14.35-1818.3.3.el7uek.x86_64'
AFD-9201: Not Supported

 

Comprobamos que, efectivamente, nuestro kernel no es válido para soportar el módulo ADVM/ACFS:

[root@nodo01 /]# afddriverstate supported
AFD-620: AFD is not supported on this operating system version: '4.14.35-1818.3.3.el7uek.x86_64'
AFD-9201: Not Supported

[root@nodo01 /]# acfsdriverstate supported
ACFS-9459: ADVM/ACFS is not supported on this OS version: '4.14.35-1818.3.3.el7uek.x86_64'
ACFS-9201: Not Supported

 

En las templates, puede ocurrir, que vengan con una versión del kernel diferente a la que está soportada para la compilación del módulo para ADVM/ACFS:

Comprobamos la versión del kernel del sistema operativo:

[root@nodo01 /]# uname -r
4.14.35-1818.3.3.el7uek.x86_64

 

Comprobamos los kernels instalados y disponibles en la máquina:

[root@nodo01 /]# yum list *kernel-uek*
Loaded plugins: ulninfo
Installed Packages
kernel-uek.x86_64 4.1.12-124.20.3.el7uek installed
kernel-uek.x86_64 4.14.35-1818.3.3.el7uek installed
kernel-uek-firmware.noarch 4.1.12-124.20.3.el7uek installed
Available Packages
kernel-uek.x86_64 4.14.35-1818.5.4.el7uek ol7_UEKR5
kernel-uek-debug.x86_64 4.14.35-1818.5.4.el7uek ol7_UEKR5
kernel-uek-debug-devel.x86_64 4.14.35-1818.5.4.el7uek ol7_UEKR5
kernel-uek-devel.x86_64 4.14.35-1818.5.4.el7uek ol7_UEKR5
kernel-uek-doc.noarch 4.14.35-1818.5.4.el7uek ol7_UEKR5
kernel-uek-firmware.noarch 4.1.12-124.23.2.el7uek ol7_UEKR4
kernel-uek-tools.x86_64 4.14.35-1818.5.4.el7uek ol7_UEKR5

 

Vamos a comprobar para el módulo de ADVM/ACFS (4.1.12-112) qué kernels son compatibles:

[root@nodo01 /]# ls -l $GRID_HOME/usm/install/Oracle/EL7UEK/x86_64/
total 20
drwxr-xr-x. 3 oracle oinstall 4096 Feb 7 2018 3.8.13-35
drwxr-xr-x. 3 oracle oinstall 4096 Feb 7 2018 4.1.12
drwxr-xr-x. 3 oracle oinstall 4096 Oct 21 12:27 4.1.12-103
drwxr-xr-x. 3 oracle oinstall 4096 Jul 18 20:09 4.1.12-112.16.4
drwxr-xr-x. 3 oracle oinstall 4096 Jul 18 20:09 4.1.12-94.8.2

 

En el que vemos que el 4.1.12-124 es compatible:

[root@nodo01 /]# ls $GRID_HOME/usm/install/Oracle/EL7UEK/x86_64/4.1.12-112.16.4/4.1.12-112.16.4-x86_64/bin/oracleoks.ko | /sbin/weak-modules --verbose --dry-run --no-initramfs --add-modules | grep compatible
Module oracleoks.ko from kernel 4.1.12-112.16.4.el7uek.x86_64 is not compatible with kernel 3.10.0-862.14.4.0.1.el7.x86_64 in symbols:  filp_open revert_creds __init_rwsem _copy_from_user __bitmap_weight set_user_nice proc_create_data prepare_to_wait_event kernel_accept kernel_recvmsg kmem_cache_create vfs_writev kmem_cache_alloc_trace down_read_trylock __put_cred wake_up_process __stack_chk_fail make_kuid kmem_cache_alloc flush_signals vm_stat prepare_creds down_write init_net up_write cpu_present_mask kmem_cache_free inet_csk_delete_keepalive_timer lock_sock_nested current_task proc_mkdir inet_csk_reset_keepalive_timer vfs_readv kernel_read _copy_to_user make_kgid down_write_trylock down_read kthread_create_on_node override_creds __preempt_count vfs_fsync sock_create_kern filp_close remove_proc_entry sock_release send_sig kernel_sendmsg up_read kmalloc_caches cpu_tss kmem_cache_destroy release_sock module_layout
Module oracleoks.ko from kernel 4.1.12-112.16.4.el7uek.x86_64 is compatible with kernel 4.1.12-124.20.3.el7uek.x86_64
Module oracleoks.ko from kernel 4.1.12-112.16.4.el7uek.x86_64 is not compatible with kernel 4.14.35-1818.3.3.el7uek.x86_64 in symbols:  filp_open vscnprintf revert_creds __init_rwsem _copy_from_user finish_wait set_user_nice up proc_create_data prepare_to_wait_event __wake_up kernel_accept vsnprintf kernel_recvmsg kmem_cache_create vfs_writev _raw_spin_lock_irqsave _raw_spin_lock kmem_cache_alloc_trace down_read_trylock __put_cred wake_up_process schedule_timeout msecs_to_jiffies make_kuid pv_irq_ops kmem_cache_alloc flush_signals vm_stat prepare_creds down_write init_net up_write mod_timer down cpu_present_mask kmem_cache_free inet_csk_delete_keepalive_timer lock_sock_nested down_trylock current_task _raw_spin_unlock_irqrestore proc_mkdir inet_csk_reset_keepalive_timer vfs_readv del_timer_sync kernel_read wait_for_completion nr_cpu_ids _copy_to_user __init_waitqueue_head make_kgid down_write_trylock down_read jiffies kthread_create_on_node override_creds vfs_fsync prepare_to_wait_exclusive sock_create_kern init_timer_key filp_close remove_proc_entry sock_release current_kernel_time send_sig autoremove_wake_function _raw_spin_unlock kernel_sendmsg up_read complete_and_exit kmalloc_caches cpu_tss kmem_cache_destroy release_sock module_layout

 

A partir de aquí ya es fácil, tenemos que decirle a la máquina que arranque con el mayor kernel (4.1.12-124) que está soportado para ese módulo.

Miramos el kernel por defecto que tiene para arrancar:

[root@nodo01 ~]# grubby --default-kernel
/boot/vmlinuz-4.14.35-1818.3.3.el7uek.x86_64

 

Y le decimos que arranque con el último mayor compilado para el módulo, que era el 4.1.12-124:

[root@nodo01 ~]# grubby --set-default /boot/vmlinuz-4.1.12-124.20.3.el7uek.x86_64

 

Reiniciamos el servidor y comprobamos si el módulo de ADVM/ACFS funciona:

[root@nodo01 ~]# uname -r
4.1.12-124.20.3.el7uek.x86_64

[root@nodo01 ~]# export ORACLE_HOME=/u01/app/18.4.0/grid
[root@nodo01 ~]# export ORACLE_BASE=/u01/app
[root@nodo01 ~]# export PATH=$PATH:$ORACLE_HOME/bin

[root@nodo01 /]# afddriverstate supported
AFD-9200: Supported
[root@nodo01 ~]# acfsdriverstate supported
ACFS-9200: Supported

 

Añadiendo valor con Arumel!!