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와 함께 우분투 서버 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"가 중단되었음을 나타냅니다.

터미널에서 "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를 시작해야 합니다.

관련 정보