El script CTDB Samba no se puede iniciar

El script CTDB Samba no se puede iniciar

Aquí está el resultado de tail -f /var/log/ctdb/log.ctdb

2020/01/27 18:52:52.317670 ctdbd[3330]: Running the "startup" event.
2020/01/27 18:53:22.323208 ctdbd[3330]: startup event failed
2020/01/27 18:53:22.439563 ctdb-eventd[3332]: event_debug: ===== Start of hung script debug for PID="3678", event="startup" =====
2020/01/27 18:53:22.439703 ctdb-eventd[3332]: event_debug: pstree -p -a 3678:
2020/01/27 18:53:22.439764 ctdb-eventd[3332]: event_debug: 50.samba.script,3678 /etc/ctdb/events/legacy/50.samba.script startup
2020/01/27 18:53:22.439822 ctdb-eventd[3332]: event_debug:   `-service,3758 /sbin/service nmbd start
2020/01/27 18:53:22.439877 ctdb-eventd[3332]: event_debug:       `-service,3762 /sbin/service nmbd start
2020/01/27 18:53:22.439953 ctdb-eventd[3332]: event_debug:           |-sed,3764 -ne s/\.socket\s*[a-z]*\s*$/.socket/p
2020/01/27 18:53:22.440012 ctdb-eventd[3332]: event_debug:           `-systemctl,3763 list-unit-files --full --type=socket
2020/01/27 18:53:22.440068 ctdb-eventd[3332]: event_debug: ---- ctdb scriptstatus startup: ----
2020/01/27 18:53:22.440133 ctdb-eventd[3332]: event_debug: 00.ctdb              OK         0.017 Mon Jan 27 18:52:52 2020
2020/01/27 18:53:22.440203 ctdb-eventd[3332]: event_debug: 01.reclock           OK         0.010 Mon Jan 27 18:52:52 2020
2020/01/27 18:53:22.440259 ctdb-eventd[3332]: event_debug: 05.system            OK         0.010 Mon Jan 27 18:52:52 2020
2020/01/27 18:53:22.440314 ctdb-eventd[3332]: event_debug: 10.interface         OK         0.064 Mon Jan 27 18:52:52 2020
2020/01/27 18:53:22.440382 ctdb-eventd[3332]: event_debug: 50.samba             TIMEDOUT   Mon Jan 27 18:52:52 2020
2020/01/27 18:53:22.440438 ctdb-eventd[3332]: event_debug:   OUTPUT:
2020/01/27 18:53:22.440492 ctdb-eventd[3332]: event_debug: event daemon helper failed with error 46
2020/01/27 18:53:22.440558 ctdb-eventd[3332]: event_debug: ===== End of hung script debug for PID="3678", event="startup" =====

Lo extraño es que esto estaba sucediendo en mis dos nodos la semana pasada, pero cuando los encendí nuevamente, el primer nodo funcionó y el segundo nodo me da este error.

Estoy habilitando el script con

ctdb event script enable legacy 50.samba

Aquí está mi smb.conf.

[global]
        workgroup = WORKGROUP2
        clustering = yes
        netbios name = gluster
        idmap backend = tdb2

[share]
        path = /mnt/gfs/share
        valid users = fsuser
        readonly = no
        browsable = yes

Estoy ejecutando el servidor ubuntu 19.10 con las últimas versiones de ctdb y samba. El sistema de archivos compartido es glusterfs y esa parte funciona como debería y pasa la prueba de ping_pong.

También veo este mensaje usando journalctl -b

Dec 03 16:28:18 gfs1 systemd[1]: /lib/systemd/system/dbus.socket:4: ListenStream= references a path below legacy directory /var/run/, updating /var/run/dbus/system_bus_socket → /run/dbus/system_bus_socket; please update the unit file acc
Dec 03 16:28:18 gfs1 systemd[1]: /lib/systemd/system/smbd.service:9: PIDFile= references a path below legacy directory /var/run/, updating /var/run/samba/smbd.pid → /run/samba/smbd.pid; please update the unit file accordingly.
Dec 03 16:28:18 gfs1 systemd[1]: /lib/systemd/system/nmbd.service:9: PIDFile= references a path below legacy directory /var/run/, updating /var/run/samba/nmbd.pid → /run/samba/nmbd.pid; please update the unit file accordingly.
Dec 03 16:28:18 gfs1 systemd[1]: Set up automount Arbitrary Executable File Formats File System Automount Point.

Respuesta1

La salida de pstree sugiere que el "servicio nmbd start" se bloquea cuando intenta hacer cosas con systemd.

¿Qué sucede si intentas "service nmbd start" en una terminal? ¿Qué tal "systemctl start nmbd"?

Respuesta2

He encontrado una solución a esto. Desactivo el script heredado ctdb samba y uso los scripts de inicio systemctl normales.

sudo systemctl edit ctdb

Agregue lo siguiente y guarde y salga.

[Unit]
Require=mnt-gfs.mount
After=mnt-gfs.mount

Para averiguar su .mount, puede ejecutar este comando y cambiar el parche de montaje con su punto de montaje glusterfs u otros sistemas de archivos distribuidos.

sudo systemctl list-units | grep '/mnt/gfs' | awk '{ print $1 }'

Entonces es sólo cuestión de editar los archivos de servicio smbd y nmbd.

sudo systemctl edit smbd.service
sudo systemctl edit nmbd.service

Luego agregue esto a los dos archivos anteriores, guarde y salga de cada uno.

[Unit]
After=ctdb.service

Asegúrese de que ctdb esté en funcionamiento y ejecute este comando (inícielo con systemctl start ctdb si no se está ejecutando)

sudo ctdb event script enable legacy 50.samba

Reinicie su nodo y debería montar el recurso compartido de su sistema de archivos distribuido, iniciar ctdb y luego iniciar smbd y nmbd.

información relacionada