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.