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]
# 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
$ ./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
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:
- 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
- El dispositivo que causa conflicto es __vg43 por lo que investigamos si está en uso.
# fuser /dev/__vg43
/dev/__vg43:
- 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
- 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.
# rm /dev/__vg43
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.