CTDB Samba 腳本無法啟動

CTDB Samba 腳本無法啟動

這是 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" =====

奇怪的是,上週我的兩個節點上發生了這種情況,但是當我再次啟動它們時,第一個節點工作了,第二個節點給了我這個錯誤。

我正在啟用腳本

ctdb event script enable legacy 50.samba

這是我的 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

我正在運行帶有最新 ctdb 和 samba 的 ubuntu 伺服器 19.10。共用檔案系統是 glusterfs,該部分正常運作並通過了 ping_pong 測試。

我也使用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.

答案1

pstree 輸出表示「service nmbd start」在嘗試執行 systemd 作業時掛起。

如果您在終端機中嘗試“service nmbd start”會發生什麼? “systemctl start nmbd”怎麼樣?

答案2

我已經找到了解決這個問題的方法。我禁用 ctdb samba 舊腳本並使用正常的 systemctl 啟動腳本。

sudo systemctl edit ctdb

添加以下內容並儲存退出

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

若要找出您的 .mount,您可以執行此命令並使用 glusterfs 或其他分散式檔案系統掛載點切換掛載補丁。

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

然後只需編輯 smbd 和 nmbd 服務文件即可。

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

然後將其添加到上述兩個文件中,保存並退出每個文件

[Unit]
After=ctdb.service

確保 ctdb 已啟動並正在運行,然後運行此命令(如果未運行,請使用 systemctl start ctdb 啟動它)

sudo ctdb event script enable legacy 50.samba

重新啟動節點,它應該掛載分散式檔案系統共享,啟動 ctdb,然後啟動 smbd 和 nmbd。

相關內容