[Samba] CTDB: Failed to connect client socket to daemon.
Achim Gottinger
achim at ag-web.biz
Mon Aug 18 07:39:57 MDT 2014
Am 18.08.2014 15:19, schrieb steve:
> On Mon, 2014-08-18 at 14:38 +0200, steve wrote:
>> On Mon, 2014-08-18 at 12:32 +0200, Achim Gottinger wrote:
>>> Am 18.08.2014 12:09, schrieb steve:
>>>> On Mon, 2014-08-18 at 11:31 +0200, Achim Gottinger wrote:
>>>>> Change service_name back to samba it
>>>>> Is Usedom by ctdb
>>>> OK. Thanks again. Getting closer. Changed smbd to samba:
>>>> sudo ctdb eventscript 50.samba startup
>>>> 2014/08/18 11:57:16.958275 [ 9029]: Invalid arguments
>>> First sorry for the typos, iphone autocorrection got me.
>> No problem. Thanks for your time and trouble.
>>> I assue you want to give ctdbd control over samba.
>>> https://ctdb/samba.org/samba.html
>> Yes.
>> ATM, we have both nodes live. But evidently that's very bad. We must
>> have only one node up at a time it seems.
>>
>>> Do you have CTDB_MANAGES_SAMBA="yes" in /etc/default/ctdb?
>> Yes:
>> /etc/default/ctdb
>>
>> CTDB_NODES=/etc/ctdb/nodes
>> CTDB_PUBLIC_ADDRESSES=/etc/ctdb/public_addresses
>> CTDB_MANAGES_SAMBA=yes
>> CTDB_SYSLOG=yes
>> CTDB_DEBUGLEVEL=3
>> CTDB_SERVICE_SMB=smbd
>>
>>> If so ctdb calls /etc/ctdb/event.d/50.samba. Are you sure you do not
>>> have exit 1 iin the service_start function any longer?
>>>
>>> Seen you enabled the script with
>>>
>>> ctdb enablescript samba
>> It was:
>> sudo ctdb enablescript 50.samba
>>
>>> I guess you can trigger an start with:
>>>
>>> ctdb -n 0 disable
>>> ctdb -n 0 enable
>> done.
>>> And
>>>
>>> ctdb scriptstatus
>> gives us:
>> sudo ctdb scriptstatus
>> monitor cycle never run
>>> should show if samba is up and running under ctdb control.
>> but:
>> sudo ctdb eventscript 50.samba startup
>> 2014/08/18 14:33:41.263631 [12631]: Invalid arguments
>>
>> here is /etc/ctdb/events.d/50.samba
>> #!/bin/sh
>> # ctdb event script for Samba
>>
>> [ -n "$CTDB_BASE" ] || \
>> export CTDB_BASE=$(cd -P $(dirname "$0") ; dirname "$PWD")
>>
>> . $CTDB_BASE/functions
>>
>> detect_init_style
>>
>> case $CTDB_INIT_STYLE in
>> suse)
>> CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb}
>> CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-nmb}
>> ;;
>> debian)
>> CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smbd}
>> CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""}
>> ;;
>> *)
>> # Use redhat style as default:
>> CTDB_SERVICE_SMB=${CTDB_SERVICE_SMB:-smb}
>> CTDB_SERVICE_NMB=${CTDB_SERVICE_NMB:-""}
>> ;;
>> esac
>>
>> service_name="samba"
>>
>> loadconfig
>>
>> ctdb_setup_service_state_dir
>>
>> service_start ()
>> {
>> # make sure samba is not already started
>> service "$CTDB_SERVICE_SMB" stop > /dev/null 2>&1
>> if [ -n "$CTDB_SERVICE_NMB" ] ; then
>> service "$CTDB_SERVICE_NMB" stop > /dev/null 2>&1
>> fi
>> killall -0 -q smbd && {
>> sleep 1
>> # make absolutely sure samba is dead
>> killall -q -9 smbd
>> }
>> killall -0 -q nmbd && {
>> sleep 1
>> # make absolutely sure samba is dead
>> killall -q -9 nmbd
>> }
>>
>> # start Samba service. Start it reniced, as under very heavy load
>> # the number of smbd processes will mean that it leaves few cycles
>> # for anything else
>> net serverid wipe
>>
>> if [ -n "$CTDB_SERVICE_NMB" ] ; then
>> nice_service "$CTDB_SERVICE_NMB" start || die "Failed to start nmbd"
>> fi
>>
>> nice_service "$CTDB_SERVICE_SMB" start || die "Failed to start
>> samba"
>> }
>>
>> service_stop ()
>> {
>> service "$CTDB_SERVICE_SMB" stop
>> if [ -n "$CTDB_SERVICE_NMB" ] ; then
>> service "$CTDB_SERVICE_NMB" stop
>> fi
>> }
>>
>> ######################################################################
>> # Show the testparm output using a cached smb.conf to avoid delays due
>> # to registry access.
>>
>> smbconf_cache="$service_state_dir/smb.conf.cache"
>>
>> testparm_foreground_update ()
>> {
>> _timeout="$1"
>>
>> if ! _out=$(timeout $_timeout testparm -v -s 2>/dev/null) ; then
>> if [ -f "$smbconf_cache" ] ; then
>> echo "WARNING: smb.conf cache update failed - using old cache file"
>> return 1
>> else
>> die "ERROR: smb.conf cache create failed"
>> fi
>> fi
>>
>> _tmpfile="${smbconf_cache}.$$"
>> # Patterns to exclude...
>> pat='^[[:space:]]+(registry[[:space:]]+shares|include|copy|
>> winbind[[:space:]]+separator)[[:space:]]+='
>> echo "$_out" | grep -Ev "$pat" >"$_tmpfile"
>> mv "$_tmpfile" "$smbconf_cache" # atomic
>>
>> return 0
>> }
>>
>> testparm_background_update ()
>> {
>> _timeout="$1"
>>
>> testparm_foreground_update $_timeout >/dev/null 2>&1 </dev/null &
>> }
>>
>> testparm_cat ()
>> {
>> testparm -s "$smbconf_cache" "$@" 2>/dev/null
>> }
>>
>> list_samba_shares ()
>> {
>> testparm_cat |
>> sed -n -e 's@^[[:space:]]*path[[:space:]]*=[[:space:]]@@p' |
>> sed -e 's/"//g'
>> }
>>
>> list_samba_ports ()
>> {
>> testparm_cat --parameter-name="smb ports" |
>> sed -e 's@,@ @g'
>> }
>>
>> ###########################
>>
>> ctdb_start_stop_service
>>
>> is_ctdb_managed_service || exit 0
>>
>> ###########################
>>
>> case "$1" in
>> startup)
>> ctdb_service_start
>> ;;
>>
>> shutdown)
>> ctdb_service_stop
>> ;;
>>
>> monitor)
>> testparm_foreground_update 10
>> ret=$?
>>
>> smb_ports="$CTDB_SAMBA_CHECK_PORTS"
>> if [ -z "$smb_ports" ] ; then
>> smb_ports=$(list_samba_ports)
>> [ -n "$smb_ports" ] || die "Failed to set smb ports"
>> fi
>> ctdb_check_tcp_ports $smb_ports || exit $?
>>
>> if [ "$CTDB_SAMBA_SKIP_SHARE_CHECK" != "yes" ] ; then
>> list_samba_shares | ctdb_check_directories || exit $?
>> fi
>>
>> if [ $ret -ne 0 ] ; then
>> testparm_background_update 10
>> fi
>> ;;
>>
>> *)
>> ctdb_standard_event_handler "$@"
>> ;;
>> esac
>> exit 0
>>
>>> You should start smbd/nmbd/winbindd instead for domain member and
>>>> standalone file server tasks
>>>>
>>> This is differnet because you call smbd and sometimes samba. :-)
>>>
>> Yes. Sorry. Stupid of us!
>>
>>
> ##############################################
> OK, we simplified the start and stop part of 50.samba to:
> service_start ()
> {
> service smbd start
> }
> service_stop ()
> {
> sudo service smbd stop
> }
>
> And the log changes to:
> Aug 18 15:09:06 uc1 ctdbd: 50.samba: ERROR: samba tcp port 445 is not
> responding
> Aug 18 15:09:06 uc1 ctdbd: server/eventscript.c:496 Eventscript monitor
> finished with state 1
>
> netstat shows nothing on 445 nor 139
>
> We can however start samba manually, whereupon the 445 error disappears.
> Presumably because then it _is_ responding?
>
> Still, if smbd is not up at the beginning, ctdb will not start it.
> Are we any closer?
>
>
>
The sytax to start ctdb managed services is
ctdb eventscrip startup
or to stop em
ctdb eventscript shutdown
I also get these "samba tcp port 445 is not responding" messages if i
shutdown eventscripts but they disappear after a few seconds.
ctdb scriptstatus
19 scripts were executed last monitor cycle
00.ctdb Status:OK Duration:0.017 Mon Aug 18 15:39:05 2014
01.reclock Status:OK Duration:0.038 Mon Aug 18 15:39:05 2014
10.interface Status:OK Duration:0.066 Mon Aug 18 15:39:05 2014
11.natgw Status:OK Duration:0.013 Mon Aug 18 15:39:05 2014
11.routing Status:OK Duration:0.013 Mon Aug 18 15:39:05 2014
13.per_ip_routing Status:OK Duration:0.013 Mon Aug 18 15:39:05 2014
20.multipathd Status:DISABLED
31.clamd Status:DISABLED
40.fs_use Status:DISABLED
40.vsftpd Status:OK Duration:0.013 Mon Aug 18 15:39:05 2014
41.httpd Status:OK Duration:0.013 Mon Aug 18 15:39:05 2014
49.winbind Status:OK Duration:0.017 Mon Aug 18 15:39:05 2014
50.samba Status:OK Duration:0.147 Mon Aug 18 15:39:05 2014
60.ganesha Status:DISABLED
60.nfs Status:OK Duration:0.017 Mon Aug 18 15:39:05 2014
62.cnfs Status:OK Duration:0.017 Mon Aug 18 15:39:05 2014
70.iscsi Status:OK Duration:0.013 Mon Aug 18 15:39:05 2014
91.lvs Status:OK Duration:0.013 Mon Aug 18 15:39:05 2014
99.timeout Status:DISABLED
More information about the samba
mailing list