[Samba] URGENT CTDB: Which event scripts MUST be enable?

Martin Schwenke
2021-01-12T02:21:38Z

Hi Bob,

On Mon, 11 Jan 2021 18:18:05 -0500, Robert Buck via samba
<samba at lists.samba.org> wrote:

> We're using CTDB with winbind and samba.
>
> What event scripts of these MUST be enabled?
>
> # ctdb event script list legacy
>   00.ctdb
>   01.reclock
>   05.system
>   06.nfs
>   10.interface
>   11.natgw
>   11.routing
>   13.per_ip_routing
>   20.multipathd
>   31.clamd
>   40.vsftpd
>   41.httpd
>
> ** 49.winbind* 50.samba*
>   60.nfs
>   70.iscsi
>   91.lvs
>
> Are we supposed to enable reclock, system, or ctdb?

Since you're using winbindd and smbd you almost certainly want
49.winbind and 50.samba to be enabled.  However, it is possible to
start/stop/monitor these services using some other custom mechanism, so
disabling them is not out of the question.

* 00.ctdb is considered mandatory

  It does several things:

  - Checks for corrupt TDB files... so corrupt, volatile TDBs can be
    backed up for later analysis

  - Creates $CTDB_SCRIPT_VARDIR, which is used by other scripts to
    store state

  - Processes /etc/ctdb/ctdb.tunables (or similar)

  - Attaches ctdb.tdb, which is only current used by statd-callout,
    when using NFS

  The documentation clearly needs to be improved.  :-(

  Both ctdb/wscript (used by "make install") and
  ctdb/packaging/RPM/ctdb.spec.in (may be used to build standalone RPM
  package(s)) attempt to ensure that this script is enabled.

* 01.reclock is only really used to create the directory containing the
  recovery lock

  If you're using a helper (via "! ..." syntax) then you don't
need
  this.

  The comment at the top of this script has bit-rotted.  :-(

  01.reclock is enabled by default at first-time install since we don't
  know how the recovery lock will be configured.

* 05.system is used to monitor system resources

  If you have better resource monitoring in place then you can happily
  disable this script.

  05.system is enabled by default at first-time install because
  we have seen many cases where performance issues and other issues
  have been reported, there is a resource problem on a node and the
  user is blissfully unaware... and blames CTDB for performing badly.
  The entire purpose of this script is for us to be able to look at
  someone's logs and say "performance was bad because you ran out of
  memory" or similar.  ;-)

* 10.interface is used to manage public IP addresses

  This monitors interfaces and, when directed by the daemon, "moves"
  public IP addresses

  I think that in a previous email you said that you are current unable
  to use CTDB's public IP addresses, so you probably don't need this.

  10.interface is enabled by default at first-time install because we
  assume most people will use public IP addresses.

peace & happiness,
martin