Troubleshoot: PRVE-0474 y PRVE-0473

Errores con Berkeley Packet Filter Devices en AIX

La abrumadora mayoría de mis clientes usa Linux, pero aún quedan algunos fieles a AIX, y fue justamente uno de ellos quien me contactó por unos mensajes de error al intentar instalar (por primera vez) Oracle Grid Infrastructure 19c en un nuevo clúster. 

Debo confesar que, al ver en la cadena de errores “Berkeley Packet Filter“, no tenía idea de qué se trataba ni de los problemas que podría causar, así que, si quieres ahorrarte los dolores de cabeza, a continuación te detallo los pasos a seguir en este escenario.

El problema

Apoyado en la Guía de Instalación de Grid Infrastructure para IBM AIX, mi cliente tenía todo preparado para empezar la configuración de su nuevo Cluster Oracle 19.30, y como primer paso ejecutó la validación con Oracle Cluster Verification Utility, topándose con el primer problema:

$ ./runcluvfy.sh stage -pre crsinst -n server1,server2

Performing following verification checks . . .

  Physical Memory ...PASSED
  Available Physical Memory ...PASSED
  Swap Size ...PASSED
  . 
  . 
  .
  User Equivalence ...PASSED
  File system mount options for path /var ... PASSED
  Berkeley Packet Filter devices /dev/bpf* existence and validation check ...FAILED (PRVE-0474)
  ORAck checks ...INFORMATION (PRVH-1507)

Pre-check for cluster services setup was unsuccessful on all the nodes.

Failures were encountered during execution of CVU vertfication request "stage -pre crsinst".

Berkeley Packet Filter devices /dev/bpf* existence and validation check
...FAILED 
server2: PRVE-0474 : Berkeley Packet Filter devices do not exist under
          directory /dev on nodes "server2"
server1: PRVE-0474 : Berkeley Packet Filter devices do not exist under
          directory /dev on nodes "server1"

CVU operation performed:    stage -pre crsinst
Date:                       Jul 9, 2026 11:08:05 AM
CVU version:                19:30.0.0.0 (122925a1x)
CVU home:                   /oracle/app/19.30.0/grid
User:                       grid
Operating system:           AIX7.2

Se obtiene el error PRVE-0474 en ambos nodos, señalando que no existen dispositivos asociados a Berkeley Packet Filter (BPF).

Sin más demora, se realiza la búsqueda en My Oracle Support, encontrando el documento KB149319 PRVE-0474 : Berkeley Packet Filter Devices do not Exist Under directory /dev on Nodes “Node1”, que detalla la causa raíz del problema:

Los dispositivos Berkeley Packet Filter /dev/bpf* no existen en el sistema. Oracle utiliza el comando ioctl para acceder a los dispositivos bpf.

Pues bien, aun cuando no está detallado en la Guía de Instalación, es evidente que es necesario completar esta configuración para poder continuar.

Procedemos a implementar la solución, detallada en el documento de My Oracle Support, consistente en ejecutar el comando tcpdump -D, esto en ambos nodos del clúster.

# ls -lart /dev/bpf*
ls: 0653-341 The file /dev/bpf* does not exist.

# /usr/sbin/tcpdump -D
1.eno
2.enl
3.loo [Loopback]
Luego de ello comprobamos que efectivamente se han creado 20 dispositivos bpf[0-19].
# ls -lart /dev/bpf*
cr--------    1 root     system       43,  0 Jul 09 15:43 /dev/bpf0
cr--------    1 root     system       43,  1 Jul 09 15:43 /dev/bpf1
cr--------    1 root     system       43, 10 Jul 09 15:43 /dev/bpf10
cr--------    1 root     system       43, 11 Jul 09 15:43 /dev/bpf11
cr--------    1 root     system       43, 12 Jul 09 15:43 /dev/bpf12
cr--------    1 root     system       43, 13 Jul 09 15:43 /dev/bpf13
cr--------    1 root     system       43, 14 Jul 09 15:43 /dev/bpf14
cr--------    1 root     system       43, 15 Jul 09 15:43 /dev/bpf15
cr--------    1 root     system       43, 16 Jul 09 15:43 /dev/bpf16
cr--------    1 root     system       43, 17 Jul 09 15:43 /dev/bpf17
cr--------    1 root     system       43, 18 Jul 09 15:43 /dev/bpf18
cr--------    1 root     system       43, 19 Jul 09 15:43 /dev/bpf19
cr--------    1 root     system       43,  2 Jul 09 15:43 /dev/bpf2
cr--------    1 root     system       43,  3 Jul 09 15:43 /dev/bpf3
cr--------    1 root     system       43,  4 Jul 09 15:43 /dev/bpf4
cr--------    1 root     system       43,  5 Jul 09 15:43 /dev/bpf5
cr--------    1 root     system       43,  6 Jul 09 15:43 /dev/bpf6
cr--------    1 root     system       43,  7 Jul 09 15:43 /dev/bpf7
cr--------    1 root     system       43,  8 Jul 09 15:43 /dev/bpf8
cr--------    1 root     system       43,  9 Jul 09 15:43 /dev/bpf9

Segundo intento

Con la confianza de que finalmente está todo en orden, ejecutamos una vez más la validación con Oracle Cluster Verification Utility, solo para encontrarnos con un nuevo problema:
$ ./runcluvfy.sh stage -pre crsinst -n server1,server2

Performing following verification checks . . .

  Physical Memory ...PASSED
  Available Physical Memory ...PASSED
  Swap Size ...PASSED
  . 
  . 
  .
  User Equivalence ...PASSED
  File system mount options for path /var ... PASSED
  Berkeley Packet Filter devices /dev/bpf* existence and validation check ...WARNING (PRVE-0473)
  ORAck checks ...INFORMATION (PRVH-1507)

Pre-check for cluster services setup was successful.

Warnings were encountered during execution of CVU vertfication request "stage -pre crsinst".

Berkeley Packet Filter devices /dev/bpf* existence and validation check
...WARNING
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf19" is created 
         with major number "43" which is already in use by devices 
         "/dev/__vg43" on node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf18" is created 
         with major number "43" which is already in use by devices 
         "/dev/__vg43" on node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf13" is created 
         with major number "43" which is already in use by devices 
         "/dev/__vg43" on node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf16" is created 
         with major number "43" which is already in use by devices 
         "/dev/__vg43" on node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf2" is created with 
         major number "43" which is already in use by devices "/dev/__vg43" on 
         node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf3" is created with 
         major number "43" which is already in use by devices "/dev/__vg43" on 
         node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf14" is created 
         with major number "43" which is already in use by devices 
         "/dev/__vg43" on node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf17" is created 
         with major number "43" which is already in use by devices 
         "/dev/__vg43" on node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf10" is created 
         with major number "43" which is already in use by devices 
         "/dev/__vg43" on node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf7" is created with 
         major number "43" which is already in use by devices "/dev/__vg43" on 
         node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf15" is created 
         with major number "43" which is already in use by devices 
         "/dev/__vg43" on node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf1" is created with 
         major number "43" which is already in use by devices "/dev/__vg43" on 
         node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf9" is created with 
         major number "43" which is already in use by devices "/dev/__vg43" on 
         node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf8" is created with 
         major number "43" which is already in use by devices "/dev/__vg43" on 
         node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf12" is created 
         with major number "43" which is already in use by devices 
         "/dev/__vg43" on node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf5" is created with 
         major number "43" which is already in use by devices "/dev/__vg43" on 
         node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf4" is created with 
         major number "43" which is already in use by devices "/dev/__vg43" on 
         node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf6" is created with 
         major number "43" which is already in use by devices "/dev/__vg43" on 
         node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf0" is created with 
         major number "43" which is already in use by devices "/dev/__vg43" on 
         node "server1".
server1: PRVE-0473 : Berkeley Packet Filter device "/dev/bpf11" is created 
         with major number "43" which is already in use by devices 
         "/dev/__vg43" on node "server1".

ORAchk checks ...INFORMATION
PRVH-1507 : ORAchk/EXAchk checks are skipped.

CVU operation performed:    stage -pre crsinst
Date:                       Jul 9, 2026 3:59:56 PM
CVU version:                19:30.0.0.0 (122925a1x)
CVU home:                   /oracle/app/19.30.0/grid
User:                       grid
Operating system:           AIX7.2
Ahora, el error PRVE-0473 nos alerta de que los dispositivos BPF recién creados tienen un major que ¡ya está en uso por otro dispositivo!

Territorio inexplorado

Buscamos en My Oracle Support y no encontramos nada; buscamos en la web y corrimos con la misma suerte, por lo que era hora de solicitar el apoyo del soporte de IBM, quienes prontamente indicaron seguir estos pasos:

  1. Como el mensaje apunta a que hay conflictos con el major, empezamos por listar los dispositivos con major=43.
# ls -lart /dev | grep " 43,"
cr--------    1 root     system       43,  0 Jun 23 14:31 /dev/__vg43
cr--------    1 root     system       43,  0 Jul 09 15:43 /dev/bpf0
cr--------    1 root     system       43,  1 Jul 09 15:43 /dev/bpf1
cr--------    1 root     system       43, 10 Jul 09 15:43 /dev/bpf10
cr--------    1 root     system       43, 11 Jul 09 15:43 /dev/bpf11
cr--------    1 root     system       43, 12 Jul 09 15:43 /dev/bpf12
cr--------    1 root     system       43, 13 Jul 09 15:43 /dev/bpf13
cr--------    1 root     system       43, 14 Jul 09 15:43 /dev/bpf14
cr--------    1 root     system       43, 15 Jul 09 15:43 /dev/bpf15
cr--------    1 root     system       43, 16 Jul 09 15:43 /dev/bpf16
cr--------    1 root     system       43, 17 Jul 09 15:43 /dev/bpf17
cr--------    1 root     system       43, 18 Jul 09 15:43 /dev/bpf18
cr--------    1 root     system       43, 19 Jul 09 15:43 /dev/bpf19
cr--------    1 root     system       43,  2 Jul 09 15:43 /dev/bpf2
cr--------    1 root     system       43,  3 Jul 09 15:43 /dev/bpf3
cr--------    1 root     system       43,  4 Jul 09 15:43 /dev/bpf4
cr--------    1 root     system       43,  5 Jul 09 15:43 /dev/bpf5
cr--------    1 root     system       43,  6 Jul 09 15:43 /dev/bpf6
cr--------    1 root     system       43,  7 Jul 09 15:43 /dev/bpf7
cr--------    1 root     system       43,  8 Jul 09 15:43 /dev/bpf8
cr--------    1 root     system       43,  9 Jul 09 15:43 /dev/bpf9
  1. El dispositivo que causa conflicto es __vg43 por lo que investigamos si está en uso.
# fuser /dev/__vg43
/dev/__vg43:
  1. Al confirmar que ningún proceso tiene el dispositivo en uso, nos resta verificar si está o no registrado en el Object Data Manager (ODM).
# odmget -q "name=__vg43" CuDv
  1. Como odmget no devuelve datos, se puede concluir que no hay ningún objeto detrás del dispositivo __vg43 y, por consiguiente, es seguro removerlo.

De vuelta a la normalidad

Como bien dicen: “a la tercera va la vencida”, así que ejecutamos una vez más la validación con Oracle Cluster Verification Utility, cruzamos los dedos y vemos que, luego de unos minutos, ¡esta vez termina limpiamente!

$ ./runcluvfy.sh stage -pre crsinst -n server1,server2

Performing following verification checks . . .

  Physical Memory ...PASSED
  Available Physical Memory ...PASSED
  Swap Size ...PASSED
  . 
  . 
  .
  User Equivalence ...PASSED
  File system mount options for path /var ... PASSED
  Berkeley Packet Filter devices /dev/bpf* existence and validation check ...PASSED
  ORAck checks ...INFORMATION (PRVH-1507)

Pre-check for cluster services setup was successful on all the nodes.

CVU operation performed:    stage -pre crsinst
Date:                       Jul 9, 2026 4:21:43 PM
CVU version:                19:30.0.0.0 (122925a1x)
CVU home:                   /oracle/app/19.30.0/grid
User:                       grid
Operating system:           AIX7.2

Conclusiones

La documentación no lo indicaba, pero para poder instalar Oracle Grid Infrastructure 12c o superior es necesario configurar los dispositivos Berkeley Packet Filter, algo que, en condiciones normales, se limita a ejecutar un comando, pero acá ya tienes el paso a paso para cuando te topes con conflictos inesperados.

¿Te pareció interesante este artículo?, ¿te quedaron algunas dudas?, ¿quieres sugerirme un tema a tratar?, pues déjame tus comentarios o ¡contáctame ahora mismo!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Posts Relacionados

Patching the database
Aprende a parchar una base de datos Oracle RAC con AutoUpgrade y usando Gold Image.
Install with Gold Image - AutoUpgrade
Aprende a crear y usar un Gold Image con AutoUpgrade para la instalación de un nuevo Oracle Home.
AutoUpgrade patching - final situation
Aprende a parchar una base de datos Oracle Single Instance con AutoUpgrade.

¿Necesitas Ayuda?

Completa estos datos y estaré en contacto a la brevedad.