CTDB Samba-Skript kann nicht gestartet werden

CTDB Samba-Skript kann nicht gestartet werden

Hier ist die Ausgabe von 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" =====

Das Merkwürdige ist, dass dies letzte Woche auf meinen beiden Knoten passiert ist, aber als ich sie beide erneut gestartet habe, funktionierte der erste Knoten und der zweite Knoten gab mir diesen Fehler aus.

Ich aktiviere das Skript mit

ctdb event script enable legacy 50.samba

Hier ist meine 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

Ich verwende Ubuntu Server 19.10 mit der neuesten Version von ctdb und Samba. Das gemeinsam genutzte Dateisystem ist Glusterfs und dieser Teil funktioniert wie vorgesehen und besteht den Ping-Pong-Test.

Ich sehe diese Meldung auch bei Verwendung von 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.

Antwort1

Die pstree-Ausgabe lässt darauf schließen, dass „service nmbd start“ hängen bleibt, wenn es versucht, systemd-Aufgaben auszuführen.

Was passiert, wenn Sie in einem Terminal „service nmbd start“ versuchen? Wie wäre es mit „systemctl start nmbd“?

Antwort2

Ich habe eine Lösung dafür gefunden. Ich deaktiviere das alte ctdb-Samba-Skript und verwende die normalen Systemctl-Startskripte.

sudo systemctl edit ctdb

Fügen Sie Folgendes hinzu, speichern Sie und beenden Sie

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

Um Ihre .mount-Datei herauszufinden, können Sie diesen Befehl ausführen und den Mount-Patch mit Ihrem Glusterfs- oder anderen Mount-Punkt für verteilte Dateisysteme austauschen.

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

Dann müssen Sie nur noch die SMBD- und NMBD-Servicedateien bearbeiten.

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

Fügen Sie dies dann zu beiden oben genannten Dateien hinzu, speichern und beenden Sie jede

[Unit]
After=ctdb.service

Stellen Sie sicher, dass ctdb ausgeführt wird, und führen Sie diesen Befehl aus (starten Sie es mit systemctl start ctdb, wenn es nicht ausgeführt wird).

sudo ctdb event script enable legacy 50.samba

Starten Sie Ihren Knoten neu. Er sollte dann die Freigabe Ihres verteilten Dateisystems mounten, ctdb starten und dann smbd und nmbd starten.

verwandte Informationen