IPVS : Module is wrong version.

Rodrigo Henriquez M. rhenriqu en antonia.lj.cl
Jue Mar 25 14:26:46 CLT 2004


Hola.

He instalado Debian Sid con kernel 2.6.3-1-386 en dos 
maquinas que haran de enrutadores para una granja de
servidores web.

Instale ipvsadm y estoy creando la solucion de LVS con 
ldirectord y heartbeat.

Todo esta instalado y bien configurado.

El problema es que cuando inicio ldirectord me devuelve
un 'Module is wrong version' a pesar de que ni modprobe(8)
ni insmod(8) reclamaron algo. 

Extracto del log de ldirectord:

DEBUG2: Running exec(/usr/sbin/ldirectord -d /etc/ha.d/ldirectord.cf start)
Running exec(/usr/sbin/ldirectord -d /etc/ha.d/ldirectord.cf start)
DEBUG2: Starting Linux Director v1.62.2.11 with pid: 301
Starting Linux Director v1.62.2.11 with pid: 301
DEBUG2: Running system(/sbin/ipvsadm -A -t 200.100.200.188:80 -s rr -p 600 )
Running system(/sbin/ipvsadm -A -t 200.100.200.188:80 -s rr -p 600 )
Module is wrong version
DEBUG2: system(/sbin/ipvsadm -A -t 200.100.200.188:80 -s rr -p 600 ) failed
system(/sbin/ipvsadm -A -t 200.100.200.188:80 -s rr -p 600 ) failed
DEBUG2: Added virtual server: 200.100.200.188:80
Added virtual server: 200.100.200.188:80
DEBUG2: Running system(/sbin/ipvsadm -a -t 200.100.200.188:80 -r 192.168.60.61:80 -g -w 1)
Running system(/sbin/ipvsadm -a -t 200.100.200.188:80 -r 192.168.60.61:80 -g -w 1)
Module is wrong version
DEBUG2: system(/sbin/ipvsadm -a -t 200.100.200.188:80 -r 192.168.60.61:80 -g -w 1) failed


Lo raro es que el modulo esta cargado:

clu1 # lsmod |grep ip_vs
ip_vs_ftp               5380  0 
ip_vs_lc                1920  0 
ip_vs_wlc               2048  0 
ip_vs                  78400  6 ip_vs_ftp,ip_vs_lc,ip_vs_wlc


El kernel lo baje directamente de apt(1) y yo no lo he
recompilado.

Aca esta la salida de strace(1) para el comando de ipvsadm(8):


execve("/sbin/ipvsadm", ["/sbin/ipvsadm", "-A", "-t", "200.100.200.188:08", "-s", "rr", "-p", "600"], [/* 14 vars */]) = 0
uname({sys="Linux", node="lvs1", ...})  = 0
brk(0)                                  = 0x804f000
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x40017000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.preload", O_RDONLY)    = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat64(3, {st_mode=S_IFREG|0644, st_size=11661, ...}) = 0
old_mmap(NULL, 11661, PROT_READ, MAP_PRIVATE, 3, 0) = 0x40018000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/libpopt.so.0", O_RDONLY)     = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\20\24\0"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=26592, ...}) = 0
old_mmap(NULL, 29680, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x4001b000
old_mmap(0x40022000, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x6000) = 0x40022000
close(3)                                = 0
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
open("/lib/tls/libc.so.6", O_RDONLY)    = 3
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0\240X\1"..., 512) = 512
fstat64(3, {st_mode=S_IFREG|0644, st_size=1271388, ...}) = 0
old_mmap(NULL, 1281772, PROT_READ|PROT_EXEC, MAP_PRIVATE, 3, 0) = 0x40023000
old_mmap(0x40151000, 36864, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED, 3, 0x12d000) = 0x40151000
old_mmap(0x4015a000, 7916, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0x4015a000
close(3)                                = 0
old_mmap(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x4015c000
set_thread_area({entry_number:-1 -> 6, base_addr:0x4015c4a0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0
munmap(0x40018000, 11661)               = 0
socket(PF_INET, SOCK_RAW, IPPROTO_RAW)  = 3
getsockopt(3, SOL_IP, 0x481 /* IP_??? */, "\10\1\1\0\0\20\0\0\0\0\0\0", [12]) = 0
brk(0)                                  = 0x804f000
brk(0x8070000)                          = 0x8070000
brk(0)                                  = 0x8070000
setsockopt(3, SOL_IP, 0x482 /* IP_??? */, "\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 92) = -1 EINVAL (Invalid argument)
write(2, "Module is wrong version\n", 24Module is wrong version
) = 24
close(3)                                = 0
exit_group(-1)                          = ?



Alguien tiene alguna idea?

En este momento estoy compilando un kernel aparte, pero
me parece extran~o que un kernel que viene _de fabrica_
tenga problemas.


Saludos y gracias por sus sugerencias.

--
BOFH excuse #79:

Look, buddy:  Windows 3.1 IS A General Protection Fault.


Más información sobre la lista de distribución Linux