CRS falla al arrancar con el error CRS-6706: Oracle Clusterware Release patch level

Hoy vamos a ver una sencilla entrada que puede ocurrirnos al parchear el ASM

Los recursos de crs no levantan y recibimos el eror

[testserver]$ sudo $ORACLE_HOME/bin/crsctl start has
CRS-6706: Oracle Clusterware Release patch level ('3930441427') does not match Software patch level ('526767740'). Oracle Clusterware cannot be started.
CRS-4000: Command Start failed, or completed with errors.

En este caso oracle nos recomienda que desbloqueemos el crs y repitamos los pasos .
Aunque en la nota de oracle nos indiquen ejecutar

# /crs/install/roothas.sh -patch

Este es un comando muy vago, por lo que, mi recomendacion es, sabiendo donde ha fallado, ejecutar el pre o ppost pach

[testserver]$ sudo $ORACLE_HOME/crs/install/roothas.sh -prepatch
Using configuration parameter file: /u01/app/oracle/product/19c/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/oracle/crsdata/icdbstst01/crsconfig/hapatch_2023-08-09_10-55-17AM.log
2023/08/09 10:55:29 CLSRSC-347: Successfully unlock /u01/app/oracle/product/19c/grid
2023/08/09 10:55:29 CLSRSC-671: Pre-patch steps for patching GI home successfully completed.

[testserver]$ sudo $ORACLE_HOME/crs/install/roothas.sh -postpatch
Using configuration parameter file: /u01/app/oracle/product/19c/grid/crs/install/crsconfig_params
The log of current session can be found at:
  /u01/app/oracle/crsdata/icdbstst01/crsconfig/hapatch_2023-08-09_10-55-36AM.log
2023/08/09 10:55:40 CLSRSC-329: Replacing Clusterware entries in file 'oracle-ohasd.service'
2023/08/09 10:58:01 CLSRSC-672: Post-patch steps for patching GI home successfully completed.

[testserver]$ sudo $ORACLE_HOME/bin/crsctl start has
CRS-4640: Oracle High Availability Services is already active
CRS-4000: Command Start failed, or completed with errors.

Como veis, nada de que asustarse con los comandos indicados

Mas information en soporte con la nota

  • CRS-6706: Oracle Clusterware Release patch level (‘nnn’) does not match Software patch level (‘mmm’) (Doc ID 1639285.1)

Creación de Discos y ASM con Ansible

Siguiendo con las entradas de Aprovisionamiento de una base de datos con ansible vamos a ver la manera de automatizar la configuracion de discos de ASM mediante ansible.

Supongamos tenemos los prerrequisitos:

  • Un servidor OEL7 con el CRS instalado y el listener en marcha tal y como explicabamos en Instalando el grid infraesturcure con Ansible
    • Dos discos para nuestro diskgroup DATA
    • un disco para nuestro diskgroup FRA
    • un disco para nuestro diskgroup REDO1
    • un disco para nuestro diskgroup REDO2

        Para la ejecucion de nuestro taller de creacion de asm usaremos los siguientes ficheros del repositorio

        Raiz
        |
        |- vars:
             |- oracle_standard.yaml      Fichero con los estandares del departamento
        |
        |- templates
        |
         |- files
         |-REQ01_asm_create_disks.yaml  Ejemplo de informacon de  provisionamiento de discos para el ASM 
        |  
        | asmlib_configure.yaml         Playbook que configura el asmlib
        | asmlib_create_disks.yaml      Playbook que configura los discos de ASM 
        | asm_create.yaml               Playbook que crea una instancia +ASM con en el GRID y con los discos previamente instalados
        

        Ficheros de variables

        Al igual que en el resto de ejecuciones del taller vamos a necesitar el fichero oracle_standard.yaml que contiene todas la estandarizacion de nuestro departamento

        Ficheros informacion

        La creacion de discos necesita de la informacion de que discos del sistema operativo van a ir dedicados a que diskgroup, esta informacion la depositaremos en el directorio files, que va a ser el unico directorio donde deberemos/podremos modificar los ficheros .

        El formato del fichero sera el de una lista en yaml en el que indicaremos el nombre del dispositivo para cada uno de los diskgroups.
        [code lang=»py»]
        DATA:
        – /dev/sda
        – /dev/sdb
        FRA:
        – /dev/sdc
        REDO1:
        – /dev/sdd
        REDO2:
        – /dev/sde
        [/code]

        El nomre del fichero sera [REQ]_asm_create_disks. Donde REQ es el valor en mayusculas de la variable req que es el identificador unico de nuestro fichero, este identificador en un entorno de produccion real podria corresponderse con el numero de peticion del sistema gestion de la compañia.

        Creacion de los discos

        Una vez tenemos claros los ficheros de fuentes y variables ejecutaremos nuestros playbooks.

        asmlib_configure.yaml

        El playbook asmlib_configure.yaml vieje a ser el equialente a la ejecucion manual de oracleasm configure -i
        Como podeis ver en el codigo que es bastante basico, ejecuta la configuracion del oracleasm para cada uno de los campos obteniendo la informacion del fichero de variables generico

        [code lang=»py»]
        # Pamplona 2019
        # Playbook which configures_asmlib
        #
        # requires
        # env: name of the server which should be in the inventory
        # vars/oracle_standard.yaml configuration file with all the deppartment values

        – hosts: "{{env}}"
        remote_user: ansible
        become: yes
        become_user: root
        tasks:
        – fail: msg="Error no server definied, please define the env variable in the job"
        when: env is not defined

        – name: "Including standard variables"
        include_vars:
        file: "vars/oracle_standard.yaml"
        – name: configirando usuario
        command: /usr/sbin/oracleasm configure -u "{{oracle_user}}"

        – name: configurando grupo
        command: /usr/sbin/oracleasm configure -g "{{oracle_group}}"

        – name: seteamos al arranque
        command: /usr/sbin/oracleasm configure -e

        – name: activamos el logical block
        command: /usr/sbin/oracleasm configure -b

        – name: arrancamos
        command: /usr/sbin/oracleasm init

        – name: estado
        command: /usr/sbin/oracleasm status
        register: oasm_status

        [/code]

        asmlib_create_disks.yaml

        El segundo paso es la creacion de los discos en el asmlib .
        Este es el playbook que va a requerir de ese fichero externo [REQ]_asm_create_disks, para cada uno de los discos fisios incluidos.

        [code lang=»py»]
        # Pamplona 2019
        # Playbook which checks if the hosts has all the requested prerequisites
        #
        # requires
        # env: name of the server which should be in the inventory
        # REQ: number of request
        # vars/oracle_standard.yaml configuration file with all the department values

        – hosts: "{{env}}"
        remote_user: ansible
        become: yes
        become_user: root
        tasks:
        – fail: msg="Error no server definied, please define the env variable or de request number in the job"
        when: env is not defined or req is not defined

        – name: "Including standard variables"
        include_vars:
        file: "vars/oracle_standard.yaml"

        – name: "Including So {{version}} requisites"
        include_vars:
        file: "files/{{req|upper}}_asm_create_disks.yaml"

        – name: creating DATA disks
        shell:
        cmd: "/usr/sbin/asmtool -C -l /dev/oracleasm -n {{oracle_hostname|upper}}_DATA0{{ansible_loop.index}} -s {{item}} -a force=yes "
        loop: "{{DATA}}"
        loop_control:
        extended: yes

        – name: Creating FRA disks
        shell:
        cmd: "/usr/sbin/asmtool -C -l /dev/oracleasm -n {{oracle_hostname|upper}}_FRA0{{ansible_loop.index}} -s {{item}} -a force=yes "
        loop: "{{FRA}}"
        loop_control:
        extended: yes

        – name: Creating REDO1 disks
        shell:
        cmd: "/usr/sbin/asmtool -C -l /dev/oracleasm -n {{oracle_hostname|upper}}_REDO1_{{ansible_loop.index}} -s {{item}} -a force=yes "
        loop: "{{REDO1}}"
        loop_control:
        extended: yes

        – name: Creating REDO2 disks
        shell:
        cmd: "/usr/sbin/asmtool -C -l /dev/oracleasm -n {{oracle_hostname|upper}}_REDO2_{{ansible_loop.index}} -s {{item}} -a force=yes "
        loop: "{{REDO2}}"
        loop_control:
        extended: yes

        – name: scanning disks
        shell:
        cmd: "/usr/sbin/oracleasm scandisks"

        [/code]
        debilidades
        -Como curiosidad podeis ver que en mi taller no sigo las normativa de oracle, llamando a los diskgroups HOSTNAME_DATA en ved de DATA y manteniendo 2 grupos de REDO en ved e uno.
        -Este playbook solamente puede usarse para provisionamiento y no para añadir nuevos discos a un diskgroup ya exsistente ya que numerara los discos empezando desde cero. (uso del fact ansible_loop.index)

        Creacion del asm

        Llegados a este punto, tenemos el grid corriendo, el listener arriba y los dispositivos creados , por lo que solamente nos queda el crear el ASM
        El siguiente playbook simplemente va a llevar a cabo una creacion del ASM en modo command line silent y añadirle los discos a sus respectivos diskgroups

        [code lang=»py»]
        # Pamplona 2020
        # Playbook which creates a database
        #
        # requires
        # env: name of the server which should be in the inventory
        # vars/oracle_standard.yaml standard values for Oracle
        #

        – hosts: "{{env}}"
        vars:
        type: asm
        remote_user: ansible
        tasks:

        # checking prerequisites
        – fail:
        msg: "Error no server defined, please define the env variable in the job"
        when: env is not defined

        # Loading env
        – name: Including Standard_values
        include_vars:
        file: "vars/oracle_standard.yaml"

        – name: checking oratab
        shell:
        cmd: "cat /etc/oratab|grep +ASM |sed -e ‘s/# line added by Agent/ /g’ -e ‘s/:/ /g’|awk ‘{ print $1}’ "
        register: count

        – fail:
        msg: "ERROR: The chain {{item}} exists at {{env}} /etc/oratab file "
        when: item == "+ASM"
        with_items:
        – "{{count.stdout_lines}}"

        – set_fact:
        oracle_home: "{{oracle_home_directory.asm}}"
        when: type == ‘asm’

        – name: Creating syslog file
        copy:
        dest: /etc/rsyslog.d/30-oracle.conf
        content: |
        "local0.info {{oracle_home}}/rdbms/audit/asmaudit.log
        &~"
        force: yes
        become: yes
        become_user: root

        – name: Creating logrotate file
        copy:
        dest: /etc/logrotate.d/30-oracle_logs
        content: |
        "{{oracle_home}}/rdbms/audit/asmaudit.log {
        weekly
        rotate 4
        compress
        copytruncate
        delaycompress
        notifyempty
        }"
        force: yes
        become: yes
        become_user: root

        – name: create ASM
        become: yes
        become_user: "{{oracle_user}}"
        shell:
        cmd: "{{ oracle_home }}/bin/asmca -silent
        -configureASM
        -sysAsmPassword {{sysasm_passd}}
        -asmsnmpPassword {{asmdbsnmp_passwd}}
        -diskString \"/dev/oracleasm/disks/*\"
        -diskGroupName {{oracle_hostname|upper}}_DATA
        -disk \"/dev/oracleasm/disks/{{oracle_hostname|upper}}_DATA*\"
        -param ASM_POWER_LIMIT=1
        -param DIAGNOSTIC_DEST={{oracle_base}}
        -param AUDIT_SYSLOG_LEVEL=’local0.info’
        -param AUDIT_SYS_OPERATIONS=TRUE
        -redundancy EXTERNAL"

        – name: Create FRA, REDO1 and REDO2
        become: yes
        become_user: "{{oracle_user}}"
        shell:
        cmd: "{{ oracle_home }}/bin/asmca -silent
        -createDiskGroup
        -sysAsmPassword {{sysasm_passd}}
        -diskString \"/dev/oracleasm/disks/*\"
        -diskGroupName {{oracle_hostname|upper}}_{{item}}
        -disk \"/dev/oracleasm/disks/{{oracle_hostname|upper}}_{{item}}*\"
        -redundancy EXTERNAL "
        with_items:
        – FRA
        – REDO1
        – REDO2
        [/code]

Configurar el CRS de la 12.2 sin tener ASM

Hoy vamos a ver una entrada sencilla que puede habernos traido dolores de cabeza.

Con los nuevos cambios en la instalacion en la version 12.2 al instalar el crs ( que no deja de ser un «unzip») nos encontramos que el binario crsctl no esta lincado.

Cuando intentamos usar el configuratdor del CRS ($GI_HOME/gridSetup.sh ), nos encontramos que nos exige el ASM para poder continuar, asi que
¿Como podemos configurar nuestro CRS sin ASM ?
La solucion es muy sencilla, y pasa por ejecutar el comando roothas.pl
Como usuario root ejecutaremos

export GI_HOME=/u01/app/oracle/product/12.2.0.1/grid
$GI_HOME/perl/bin/perl -I $GI_HOME/perl/lib -I $GI_HOME/crs/install
$GI_HOME/crs/install/roothas.pl

Con esto conseguiremos el ultimo proceso de lincado , que es el que crea los binarios crscrl y la configuracion de nuestro grid a nivel de sistema operativo.

Hemos de tener en cuenta que , este proceso no crea el listener, asi que, como usuario oracle y con las variables de entorno del grid cargado deberemos de ejecutar despues

srvctl add listener -oraclehome $ORACLE_HOME -listener LISTENER 

desinstalacion del grid control

Tras un largo periodo de inactividad, vamos a añadir una pequeña entrada con la manera de desinstalar el grid control de Oracle .

Al contrario de cuando se tiene una base ded datos sencilla de Oracle donde con borrar binarios, inventario y oratab el sistema ( en unix) queda lo sufucientemente limpio como para llevar a cabo una reinstalacion, si tenemos que reinstalar un grid infraestructure por que ha habido problemas en la instalacion o por que queremos quitarlo, no se puede hacer «a las bravas».

La manera de lelvarlo a cabo es muy sencilla.
Solamente tenemos que ir al $GRID_HOME/deinstall y ejecutar ./deinstall
Este proceso se ha de ejecutar como propietario del grid, y , al igual que la instalacion, en un momento determinado nos solicitará la ejecucion de una cadena como root.

[grid@serverpruebas ] cd  $GRID_HOME/deinstall
[grid@serverpruebas ] ls 
bootstrap.pl         bootstrap_files.lst  deinstall            deinstall.pl         deinstall.xml        jlib                 readme.txt           response             sshUserSetup.sh      utl
[grid@serverpruebas ]./deinstall 	
Checking for required files and bootstrapping ...
Please wait ...
Location of logs /tmp/deinstall2016-11-03_09-31-33PM/logs/

############ ORACLE DECONFIG TOOL START ############


######################### DECONFIG CHECK OPERATION START #########################
## [START] Install check configuration ##


Checking for existence of the Oracle home location /opt/app/oracle/product/12.1.0/grid
Oracle Home type selected for deinstall is: Oracle Grid Infrastructure for a Standalone Server
Oracle Base selected for deinstall is: /opt/app/oracle
Checking for existence of central inventory location /opt/app/oraInventory
Checking for existence of the Oracle Grid Infrastructure home /opt/app/oracle/product/12.1.0/grid

## [END] Install check configuration ##

Traces log file: /tmp/deinstall2016-11-03_09-31-33PM/logs//crsdc_2016-11-03_09-32-36PM.log

Network Configuration check config START

Network de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/netdc_check2016-11-03_09-32-38-PM.log

Network Configuration check config END

Asm Check Configuration START

ASM de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/asmcadc_check2016-11-03_09-32-39-PM.log

ASM configuration was not detected in this Oracle home. Was ASM configured in this Oracle home (y|n) [n]: y
Automatic Storage Management (ASM) instance is detected in this Oracle home /opt/app/oracle/product/12.1.0/grid.
ASM Diagnostic Destination : /opt/app/oracle
ASM Diskgroups :
ASM diskstring : 
Diskgroups will not be dropped
 If you want to retain the existing diskgroups or if any of the information detected is incorrect, you can modify by entering 'y'. Do you  want to modify above information (y|n) [n]:
Database Check Configuration START

Database de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/databasedc_check2016-11-03_09-32-50-PM.log

Database Check Configuration END

######################### DECONFIG CHECK OPERATION END #########################


####################### DECONFIG CHECK OPERATION SUMMARY #######################
Oracle Grid Infrastructure Home is: /opt/app/oracle/product/12.1.0/grid
The following nodes are part of this cluster: null
The cluster node(s) on which the Oracle home deinstallation will be performed are:null
Oracle Home selected for deinstall is: /opt/app/oracle/product/12.1.0/grid
Inventory Location where the Oracle home registered is: /opt/app/oraInventory
ASM instance will be de-configured from this Oracle home
Do you want to continue (y - yes, n - no)? [n]: y
A log of this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.out'
Any error messages from this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.err'

######################## DECONFIG CLEAN OPERATION START ########################
Database de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/databasedc_clean2016-11-03_09-32-53-PM.log
ASM de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/asmcadc_clean2016-11-03_09-32-53-PM.log
ASM Clean Configuration START
ASM Clean Configuration END

Network Configuration clean config START

Network de-configuration trace file location: /tmp/deinstall2016-11-03_09-31-33PM/logs/netdc_clean2016-11-03_09-33-02-PM.log

De-configuring Listener configuration file...
Listener configuration file de-configured successfully.

De-configuring Naming Methods configuration file...
Naming Methods configuration file de-configured successfully.

De-configuring backup files...
Backup files de-configured successfully.

The network configuration has been cleaned up successfully.

Network Configuration clean config END


---------------------------------------->

Run the following command as the root user or the administrator on node "serverpruebas-m".

/tmp/deinstall2016-11-03_09-31-33PM/perl/bin/perl -I/tmp/deinstall2016-11-03_09-31-33PM/perl/lib -I/tmp/deinstall2016-11-03_09-31-33PM/crs/install /tmp/deinstall2016-11-03_09-31-33PM/crs/install/roothas.pl -force  -deconfig -paramfile "/mp/deinstall2016-11-03_09-31-33PM/response/deinstall_OraGI12Home1.rsp"

Press Enter after you finish running the above commands

<----------------------------------------



######################### DECONFIG CLEAN OPERATION END #########################


####################### DECONFIG CLEAN OPERATION SUMMARY #######################
ASM instance was de-configured successfully from the Oracle home
The stopping and de-configuring of Oracle Restart failed. Fix the problem and rerun this tool to completely remove the Oracle Restart configuration and the software
Oracle Restart was already stopped and de-configured on node "serverpruebas-m"
Oracle Restart is stopped and de-configured successfully.
#######################################################################


############# ORACLE DECONFIG TOOL END #############

Using properties file /tmp/deinstall2016-11-03_09-31-33PM/response/deinstall_2016-11-03_09-32-35-PM.rsp
Location of logs /tmp/deinstall2016-11-03_09-31-33PM/logs/

############ ORACLE DEINSTALL TOOL START ############





####################### DEINSTALL CHECK OPERATION SUMMARY #######################
A log of this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.out'
Any error messages from this session will be written to: '/tmp/deinstall2016-11-03_09-31-33PM/logs/deinstall_deconfig2016-11-03_09-32-35-PM.err'

######################## DEINSTALL CLEAN OPERATION START ########################
## [START] Preparing for Deinstall ##
Setting LOCAL_NODE to serverpruebas-m
Setting CRS_HOME to true
Setting oracle.installer.invPtrLoc to /tmp/deinstall2016-11-03_09-31-33PM/oraInst.loc
Setting oracle.installer.local to false

## [END] Preparing for Deinstall ##

Setting the force flag to false
Setting the force flag to cleanup the Oracle Base
Oracle Universal Installer clean START


Detach Oracle home '/opt/app/oracle/product/12.1.0/grid' from the central inventory on the local node : Done

Failed to delete the directory '/opt/app/oracle/product/12.1.0/grid'. The directory is in use.
Delete directory '/opt/app/oracle/product/12.1.0/grid' on the local node : Failed <<<<

Delete directory '/opt/app/oraInventory' on the local node : Done

Failed to delete the directory '/opt/app/oracle/product/12.1.0/grid'. The directory is in use.
The Oracle Base directory '/opt/app/oracle' will not be removed on local node. The directory is not empty.

Oracle Universal Installer cleanup was successful.

Oracle Universal Installer clean END


## [START] Oracle install clean ##

Clean install operation removing temporary directory '/tmp/deinstall2016-11-03_09-31-33PM' on node 'serverpruebas-m'

## [END] Oracle install clean ##


######################### DEINSTALL CLEAN OPERATION END #########################


####################### DEINSTALL CLEAN OPERATION SUMMARY #######################
Successfully detached Oracle home '/opt/app/oracle/product/12.1.0/grid' from the central inventory on the local node.
Failed to delete directory '/opt/app/oracle/product/12.1.0/grid' on the local node.
Successfully deleted directory '/opt/app/oraInventory' on the local node.
Oracle Universal Installer cleanup was successful.


Run 'rm -r /etc/oraInst.loc' as root on node(s) 'serverpruebas-m' at the end of the session.

Run 'rm -r /opt/ORCLfmap' as root on node(s) 'serverpruebas-m' at the end of the session.
Run 'rm -r /etc/oratab' as root on node(s) 'serverpruebas-m' at the end of the session.
Oracle deinstall tool successfully cleaned up temporary directories.
#######################################################################


############# ORACLE DEINSTALL TOOL END #############

Como veis, tremendamente sencillo si se hace de manera ordenada

ASMLIB en redhat7

Hoy vamos a ver en una sencilla entrada los pasos para instalar ASMlib en redhat 7

Tal como nos indica la web de Oracle, lo primero que hay que hacer es descargar los paquetes correspondientes a la distribución.
En nuestro caso serán los paquetes

oracleasmlib-2.0.12-1.el7.x86_64.rpm
oracleasm-support-2.1.8-3.el7.x86_64.rpm

descargamos estos paquetes a nuestro directorio, y los instalamos con la opcion localinstall del YUM, esto nos encontrará automáticamente el paquete kmod-oracleasm.x86_64

[root@localhost ~]# yum localinstall ./oracleasmlib-2.0.12-1.el7.x86_64.rpm oracleasm-support-2.1.8-3.el7.x86_64.rpm
Complementos cargados:langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered to Red Hat Subscription Management. You can use subscription-manager to register.
Examinando ./oracleasmlib-2.0.12-1.el7.x86_64.rpm: oracleasmlib-2.0.12-1.el7.x86_64
Marcando ./oracleasmlib-2.0.12-1.el7.x86_64.rpm para ser instalado
Examinando oracleasm-support-2.1.8-3.el7.x86_64.rpm: oracleasm-support-2.1.8-3.el7.x86_64
Marcando oracleasm-support-2.1.8-3.el7.x86_64.rpm para ser instalado
Resolviendo dependencias
--> Ejecutando prueba de transacción
---> Paquete oracleasm-support.x86_64 0:2.1.8-3.el7 debe ser instalado
---> Paquete oracleasmlib.x86_64 0:2.0.12-1.el7 debe ser instalado
--> Procesando dependencias: oracleasm >= 1.0.4 para el paquete: oracleasmlib-2.0.12-1.el7.x86_64
--> Ejecutando prueba de transacción
---> Paquete kmod-oracleasm.x86_64 0:2.0.8-15.el7 debe ser instalado
--> Resolución de dependencias finalizada
Dependencias resueltas
===========================================================================================================
 Package                     Arquitectura     Versión         Repositorio                             Tamaño
============================================================================================================
Instalando:
 oracleasm-support           x86_64           2.1.8-3.el7     /oracleasm-support-2.1.8-3.el7.x86_64   242 k
 oracleasmlib                x86_64           2.0.12-1.el7    /oracleasmlib-2.0.12-1.el7.x86_64       39 k
Instalando para las dependencias:
 kmod-oracleasm              x86_64           2.0.8-15.el7    local                                   35 k
Resumen de la transacción
=====================================================================================================
Instalar  2 Paquetes (+1 Paquete dependiente)
Tamaño total: 316 k
Tamaño total de la descarga: 35 k
Tamaño instalado: 405 k
Is this ok [y/d/N]: y
Downloading packages:
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Instalando    : kmod-oracleasm-2.0.8-15.el7.x86_64    1/3
  Instalando    : oracleasmlib-2.0.12-1.el7.x86_64      2/3
  Instalando    : oracleasm-support-2.1.8-3.el7.x86_64  3/3
Nota: Reenviando petición a 'systemctl enable oracleasm.service'.
Created symlink from /etc/systemd/system/multi-user.target.wants/oracleasm.service to /usr/lib/systemd/system/oracleasm.service.
  Comprobando   : oracleasmlib-2.0.12-1.el7.x86_64             1/3
  Comprobando   : oracleasm-support-2.1.8-3.el7.x86_64         2/3
  Comprobando   : kmod-oracleasm-2.0.8-15.el7.x86_64           3/3
Instalado:
  oracleasm-support.x86_64 0:2.1.8-3.el7
 oracleasmlib.x86_64 0:2.0.12-1.el7
Dependencia(s) instalada(s):
  kmod-oracleasm.x86_64 0:2.0.8-15.el7

Mediante este paquete propio de redHat kmod-oracleasm nos ahorramos los problemas que teníamos anteriormente con los módulos del kernel y que solucionábamos de manera casera con cargar módulos de oracleasm sin la versión exacta del kernel

mas info en :

  • https://access.redhat.com/solutions/315643
  • http://www.oracle.com/technetwork/server-storage/linux/asmlib/rhel7-2773795.html