Després d’investigar i recompilar alguns kernels jugant amb parches he trobat la solució al problema.
Un resum del problema podria ser:
[root@compute-0-0 root]# /etc/init.d/gmond status
gmond dead but subsys locked
Tenia 2 possibles aproximacions, investigar sobre els pegats del nucli per donar-li suport nptl o investigar l’ús de les llibreries estandards que feia Ganglia. Per Murphy, primer vaig anar a la del nucli, gastant 3 dies sense resultats. I avui, per desesperació he anat cap a la de les llibreries.
Observant les llibreries compartides que utilitza gmond (amb greceptor és el mateix cas) podem veure:
[root@compute-0-0 root]# ldd /usr/sbin/gmond
libdl.so.2 => /lib/libdl.so.2 (0×40020000)
libresolv.so.2 => /lib/libresolv.so.2 (0×40023000)
libnsl.so.1 => /lib/libnsl.so.1 (0×40035000)
libpthread.so.0 => /lib/tls/libpthread.so.0 (0×4004a000)
libc.so.6 => /lib/tls/libc.so.6 (0×4005a000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0×40000000)
Aquí veiem que utilitza les llibreries situades a /lib/tls, que són les llibreries compilades amb suport per NPTL, pro com el nucli no disposa d’aquest suport es penja a l’hora de crear els threads (LinuxThreads del vanilla versus NPTL threads de la llibreria TLS).
Primera solució a lo cutre:
# mv /lib/tls /lib/tls-mala
Doncs sorprenentment ha funcionat. Després de realitzar aquest canvi tornem a fer ldd a veure que trobem:
[root@compute-0-0 root]# ldd /usr/sbin/gmond
libdl.so.2 => /lib/libdl.so.2 (0×40020000)
libresolv.so.2 => /lib/libresolv.so.2 (0×40023000)
libnsl.so.1 => /lib/libnsl.so.1 (0×40035000)
libpthread.so.0 => /lib/i686/libpthread.so.0 (0×4004a000)
libc.so.6 => /lib/i686/libc.so.6 (0×4009b000)
/lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0×40000000)
Voilà! Ara, automàticament agafa unes noves llibreries (les estandard) sense suport per NPTL, i inmediatament podem comprobar que ja funciona bé:
[root@compute-0-0 root]# /etc/init.d/gmond restart
Shutting down GANGLIA gmond: [FAILED]
Starting GANGLIA gmond: [ OK ]
[root@compute-0-0 root]# /etc/init.d/gmond status
gmond (pid 2803 2802 2801) is running…
Des del monitor web del Ganglia igualment podem veure que el sistema ha detectat que el compute-0-0 està actiu. Visca!
Només quedaran 2 passos:
- Comunicar-ho a la llista de Rocks
- Introduir-ho dintre el procediment general d’instalació del clúster.
Comentaris recents